Automattic\WooCommerce\Admin\API\Reports

DataStore::get_object_where_filter()protectedWC 1.0

Get WHERE filter by object ids subquery.

Метод класса: DataStore{}

Хуков нет.

Возвращает

Строку.

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->get_object_where_filter( $select_table, $select_field, $filter_table, $filter_field, $compare, $id_list );
$select_table(строка) (обязательный)
Select table name.
$select_field(строка) (обязательный)
Select table object ID field name.
$filter_table(строка) (обязательный)
Lookup table name.
$filter_field(строка) (обязательный)
Lookup table object ID field name.
$compare(строка) (обязательный)
Comparison string (IN|NOT IN).
$id_list(строка) (обязательный)
Comma separated ID list.

Код DataStore::get_object_where_filter() WC 8.7.0

protected function get_object_where_filter( $select_table, $select_field, $filter_table, $filter_field, $compare, $id_list ) {
	global $wpdb;
	if ( empty( $id_list ) ) {
		return '';
	}

	$lookup_name = isset( $wpdb->$filter_table ) ? $wpdb->$filter_table : $wpdb->prefix . $filter_table;
	// phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
	return " {$select_table}.{$select_field} {$compare} (
		SELECT
			DISTINCT {$filter_table}.{$select_field}
		FROM
			{$filter_table}
		WHERE
			{$filter_table}.{$filter_field} IN ({$id_list})
	)";
	// phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
}