Automattic\WooCommerce\Internal\DataStores\Orders

OrdersTableQuery::build_count_query()privateWC 1.0

Build SQL query for counting total number of results.

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

Хуки из метода

Возвращает

null. Ничего (null).

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

// private - только в коде основоного (родительского) класса
$result = $this->build_count_query( $fields, $join, $where, $groupby );
$fields(строка) (обязательный)
Prepared fields for SELECT clause.
$join(строка) (обязательный)
Prepared JOIN clause.
$where(строка) (обязательный)
Prepared WHERE clause.
$groupby(строка) (обязательный)
Prepared GROUP BY clause.

Код OrdersTableQuery::build_count_query() WC 8.7.0

private function build_count_query( $fields, $join, $where, $groupby ) {
	if ( ! isset( $this->sql ) || '' === $this->sql ) {
		wc_doing_it_wrong( __FUNCTION__, 'Count query can only be build after main query is built.', '7.3.0' );
	}
	$orders_table    = $this->tables['orders'];
	$this->count_sql = "SELECT COUNT(DISTINCT $fields) FROM  $orders_table $join WHERE $where";

	if ( ! $this->suppress_filters ) {
		/**
		 * Filters the count SQL query.
		 *
		 * @since 8.6.0
		 *
		 * @param string           $sql   The count SQL query.
		 * @param OrdersTableQuery $query The OrdersTableQuery instance (passed by reference).
		 * @param array            $args  Query args.
		 * @param string           $fields Prepared fields for SELECT clause.
		 * @param string           $join Prepared JOIN clause.
		 * @param string           $where Prepared WHERE clause.
		 * @param string           $groupby Prepared GROUP BY clause.
		 */
		$this->count_sql = apply_filters_ref_array( 'woocommerce_orders_table_query_count_sql', array( $this->count_sql, &$this, $this->args, $fields, $join, $where, $groupby ) );
	}
}