Automattic\WooCommerce\Internal\DataStores\Orders
OrdersTableSearchQuery::get_where_for_products()
Helper function to generate the WHERE clause for products search. Uses FTS when available.
Метод класса: OrdersTableSearchQuery{}
Хуков нет.
Возвращает
Строку|null
. WHERE clause for products search.
Использование
// private - только в коде основоного (родительского) класса $result = $this->get_where_for_products();
Код OrdersTableSearchQuery::get_where_for_products() OrdersTableSearchQuery::get where for products WC 9.7.1
private function get_where_for_products() { global $wpdb; $db_util = wc_get_container()->get( DatabaseUtil::class ); $items_table = $this->query->get_table_name( 'items' ); $orders_table = $this->query->get_table_name( 'orders' ); $fts_enabled = get_option( CustomOrdersTableController::HPOS_FTS_INDEX_OPTION ) === 'yes' && get_option( CustomOrdersTableController::HPOS_FTS_ORDER_ITEM_INDEX_CREATED_OPTION ) === 'yes'; if ( $fts_enabled ) { // phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $orders_table and $items_table are hardcoded. return $wpdb->prepare( " $orders_table.id in ( SELECT order_id FROM $items_table search_query_items WHERE MATCH ( search_query_items.order_item_name ) AGAINST ( %s IN BOOLEAN MODE ) ) ", $wpdb->esc_like( $db_util->sanitise_boolean_fts_search_term( $this->search_term ) ), ); // phpcs:enable } // phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- $orders_table and $items_table are hardcoded. return $wpdb->prepare( " $orders_table.id in ( SELECT order_id FROM $items_table search_query_items WHERE search_query_items.order_item_name LIKE %s ) ", '%' . $wpdb->esc_like( $this->search_term ) . '%' ); // phpcs:enable }