Automattic\WooCommerce\Internal\DataStores\Orders

OrdersTableDataStore::get_order_table_select_statement()privateWC 1.0

Helper method to generate combined select statement.

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

Хуков нет.

Возвращает

Строку. Select SQL statement to fetch order.

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

// private - только в коде основоного (родительского) класса
$result = $this->get_order_table_select_statement();

Код OrdersTableDataStore::get_order_table_select_statement() WC 8.7.0

private function get_order_table_select_statement() {
	$order_table                  = $this::get_orders_table_name();
	$order_table_alias            = $this->get_order_table_alias();
	$billing_address_table_alias  = $this->get_address_table_alias( 'billing' );
	$shipping_address_table_alias = $this->get_address_table_alias( 'shipping' );
	$op_data_table_alias          = $this->get_op_table_alias();
	$billing_address_clauses      = $this->join_billing_address_table_to_order_query( $order_table_alias, $billing_address_table_alias );
	$shipping_address_clauses     = $this->join_shipping_address_table_to_order_query( $order_table_alias, $shipping_address_table_alias );
	$operational_data_clauses     = $this->join_operational_data_table_to_order_query( $order_table_alias, $op_data_table_alias );

	/**
	 * We fully spell out address table columns because they have duplicate columns for billing and shipping and would be overwritten if we don't spell them out. There is not such duplication in the operational data table and orders table, so select with `alias`.* is fine.
	 * We do spell ID columns manually, as they are duplicate.
	 */
	return "
SELECT $order_table_alias.id as o_id, $op_data_table_alias.id as p_id, $order_table_alias.*, {$billing_address_clauses['select']}, {$shipping_address_clauses['select']}, $op_data_table_alias.*
FROM $order_table $order_table_alias
LEFT JOIN {$billing_address_clauses['join']}
LEFT JOIN {$shipping_address_clauses['join']}
LEFT JOIN {$operational_data_clauses['join']}
";
}