Задать вопрос
@Sice
Начинающий PHP программист

WooCommerce (WordPress) Как сортировать «Похожие товары»?

Доброго времени суток. Подскажите пожалуйста, как выбрать сортировку "Похожих товаров".
Хочу сделать, чтобы в "Похожие товары" показывались варианты, схожие с ценой уже выбранного продукта, то есть показывались похожие по цене.

Подскажите пожалуйста, как это можно сделать ?

Вот код функции, которая я так понимаю берет данные из базы данных:
public function shop_item_tab_similar( $post_id, $query = false ){

		if( !$query ){

			$cats = wp_get_post_terms( $post_id, 'product_cat' );
			$cat  = $cats[0];

			$query = array(
				'posts_per_page' 	=> 4,
				'paged' 			=> 1,
				'post_status' 		=> 'publish',
				'post_type' 		=> 'product',
				'exclude' 			=> $post_id,
				'tax_query' => array(
					array(
						'taxonomy' => 'product_cat',
						'field' => 'id',
						'terms' => $cat->term_id
					)
				),
				'meta_query' => array(
				    array(
				        'key' => '_price',
				        'value' => '0',
				        'compare' => '>',
				    ),
				    array(
				        'key' => '_stock_status',
				        'value' => 'instock',
				        'compare' => '=',
				    )
				)
			);

		}

		$items = $this->get_shop_items_by_query( $query );

		$similar = $this->application->get_include_contents( $this->blocksPath.'/product-tab-similar.php', array( 'similar' => $items ) );

		return array(
			'content' => $similar,
			'section' => "data-query='".json_encode($query)."'"
		);
	}
  • Вопрос задан
  • 440 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
if( !$query ){
$prise = get_post_meta($post_id,'_price',true);
      $query = array(
        'posts_per_page' 	=> 4,
        'paged' 			=> 1,
        'post_status' 		=> 'publish',
        'post_type' 		=> 'product',
        'exclude' 			=> $post_id,
        'meta_query' => array(
            array(
                'key' => '_price',
                'value' => $prise,
                'compare' => '=',
            ),
        )
      );

    }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Sice Автор вопроса
Начинающий PHP программист
Дабы не создавать новую тему, подскажите пожалуйста, как показывать результаты не чётко равные цены, а примерно, с разницей в 5-10 тысяч, например ?
Вот так
'compare' => '<',
Выводятся значения в разнобой совсем. А хотелось, чтобы показывались похожие товары примерно равные по цене по порядку.
Например, товар стоит 71 тысячу. Похожие товары показывают товар: 75 тысяч, 73, 70, 69 и так далее...
Не пойму, почему он так странно выводит. Когда нажимаешь "Еще товары", для того, чтобы показать еще 4 товара - он выводит значения намного выше чем стоимость выбранного товара, хотя выборка идёт вроде как Меньше (<)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы