Automattic\WooCommerce\Admin\API\Reports\Stock

Controller::add_wp_query_orderby()public staticWC 1.0

Custom orderby clauses using the lookup tables.

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

Хуков нет.

Возвращает

Массив.

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

$result = Controller::add_wp_query_orderby( $args, $wp_query );
$args(массив) (обязательный)
Query args.
$wp_query(объект) (обязательный)
WP_Query object.

Код Controller::add_wp_query_orderby() WC 8.7.0

public static function add_wp_query_orderby( $args, $wp_query ) {
	global $wpdb;

	$orderby = $wp_query->get( 'orderby' );
	$order   = esc_sql( $wp_query->get( 'order' ) ? $wp_query->get( 'order' ) : 'desc' );

	switch ( $orderby ) {
		case 'stock_quantity':
			$args['join']    = self::append_product_sorting_table_join( $args['join'] );
			$args['orderby'] = " wc_product_meta_lookup.stock_quantity {$order}, wc_product_meta_lookup.product_id {$order} ";
			break;
		case 'stock_status':
			$args['join']    = self::append_product_sorting_table_join( $args['join'] );
			$args['orderby'] = " wc_product_meta_lookup.stock_status {$order}, wc_product_meta_lookup.stock_quantity {$order} ";
			break;
		case 'sku':
			$args['join']    = self::append_product_sorting_table_join( $args['join'] );
			$args['orderby'] = " wc_product_meta_lookup.sku {$order}, wc_product_meta_lookup.product_id {$order} ";
			break;
	}

	return $args;
}