Filter order with transection id or not. If completed order has transection id this will be completed. Custom meta query. woocommerce order transection _id query. Order Date query in wordpress. Order Created date query. Custom Query Args Wc_get_orders.


$order_statuses = array('wc-completed','wc-processing');       

$args = array(
    'limit' => 50,
    'return' => '*',
    'status' => $order_statuses,
    'date_query' => array(
        array(
            'after'     =>  $purchaseDateFrom,
            'before'    => $purchaseDateTo,
            'inclusive' => true,
        ),
    ),

   'meta_transaction_id' => 'just-a-value',
    
);
$query = new WC_Order_Query($args);
////////////////////////////////// 

function handle_custom_query_var($query, $query_vars)
{

    elseif(isset($_GET['payment_status']) && $_GET['payment_status']=='unpaid'){
        if ( ! empty( $query_vars['meta_transaction_id'] ) ) {
            $query['meta_query'][] = array(
                'key' => '_transaction_id',
                'value' => '',
                'compare' => 'NOT EXISTS'
            );
        }
    }
    else{

    }
    return $query;
}
add_filter('woocommerce_order_data_store_cpt_get_orders_query', 'handle_custom_query_var', 10, 2);