Automattic\WooCommerce\Internal\DataStores\Orders
OrdersTableSearchQuery::get_where_for_products
Helper function to generate the WHERE clause for products search. Uses FTS when available.
Method of the class: OrdersTableSearchQuery{}
No Hooks.
Returns
String|null. WHERE clause for products search.
Usage
// private - for code of main (parent) class only $result = $this->get_where_for_products();
OrdersTableSearchQuery::get_where_for_products() OrdersTableSearchQuery::get where for products code WC 10.3.5
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 ) {
return self::PRODUCTS_JOIN_ALIAS . '.order_id IS NOT NULL';
}
// 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
}