@rifat2125

Как сделать свою сортировку товаров по нескольким кастомным параметрам в Woocommerce?

Здравствуйте!
У меня на сайте два кастомных параметра: is_product_sold и is_temporarily_unavailable.

Задача отсортировать товары так, чтобы товары у которых включен один из этих параметров, уходили в самый конец списка и при этом все товары были отсортированы по дате.

По одному параметру отсортировать получилось, а как добавить второй - не знаю.

add_action( 'woocommerce_product_query', 'product_query_by_modified_date' );
function product_query_by_modified_date( $query ) {
    if ( ! isset( $_GET['orderby'] ) && ! is_admin() ) {
		$args = array(
			'relation' => 'OR',
			array(
				'key'     => 'is_product_sold',
				'compare' => 'NOT EXISTS',
			),
			array(
				'relation' => 'OR',
				array(
					'key'   => 'is_product_sold',
					'value' => 'on',
				),
				array(
					'key'     => 'is_product_sold',
					'value'   => 'on',
					'compare' => '!=',
				),
			),
		);
		$query->set( 'meta_query', $args );
        $query->set( 'orderby', array( 'meta_value' => 'ASC', 'date' => 'DESC' ) );
	}
}
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы