WC_REST_Legacy_Orders_Controller::query_args()
Deprecated from version 3.0. It is no longer supported and can be removed in future releases. It is recommended to replace this function with the same one.
Query args.
Method of the class: WC_REST_Legacy_Orders_Controller{}
No Hooks.
Return
Array
.
Usage
$WC_REST_Legacy_Orders_Controller = new WC_REST_Legacy_Orders_Controller(); $WC_REST_Legacy_Orders_Controller->query_args( $args, $request );
- $args(array) (required)
- -
- $request(WP_REST_Request) (required)
- -
Changelog
Deprecated since | 3.0 |
WC_REST_Legacy_Orders_Controller::query_args() WC REST Legacy Orders Controller::query args code WC 8.7.0
public function query_args( $args, $request ) { global $wpdb; // Set post_status. if ( 'any' !== $request['status'] ) { $args['post_status'] = 'wc-' . $request['status']; } else { $args['post_status'] = 'any'; } if ( ! empty( $request['customer'] ) ) { if ( ! empty( $args['meta_query'] ) ) { $args['meta_query'] = array(); } $args['meta_query'][] = array( 'key' => '_customer_user', 'value' => $request['customer'], 'type' => 'NUMERIC', ); } // Search by product. if ( ! empty( $request['product'] ) ) { $order_ids = $wpdb->get_col( $wpdb->prepare( " SELECT order_id FROM {$wpdb->prefix}woocommerce_order_items WHERE order_item_id IN ( SELECT order_item_id FROM {$wpdb->prefix}woocommerce_order_itemmeta WHERE meta_key = '_product_id' AND meta_value = %d ) AND order_item_type = 'line_item' ", $request['product'] ) ); // Force WP_Query return empty if don't found any order. $order_ids = ! empty( $order_ids ) ? $order_ids : array( 0 ); $args['post__in'] = $order_ids; } // Search. if ( ! empty( $args['s'] ) ) { $order_ids = wc_order_search( $args['s'] ); if ( ! empty( $order_ids ) ) { unset( $args['s'] ); $args['post__in'] = array_merge( $order_ids, array( 0 ) ); } } return $args; }