WC_REST_Legacy_Orders_Controller::query_args()
Устарела с версии 3.0. Больше не поддерживается и может быть удалена. Рекомендуется заменить эту функцию на аналог.
Query args.
Метод класса: WC_REST_Legacy_Orders_Controller{}
Хуков нет.
Возвращает
Массив
.
Использование
$WC_REST_Legacy_Orders_Controller = new WC_REST_Legacy_Orders_Controller(); $WC_REST_Legacy_Orders_Controller->query_args( $args, $request );
- $args(массив) (обязательный)
- -
- $request(WP_REST_Request) (обязательный)
- -
Список изменений
Устарела с | 3.0 |
Код WC_REST_Legacy_Orders_Controller::query_args() WC REST Legacy Orders Controller::query args WC 8.3.1
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; }