Пользовательский цикл WooCommerce - фильтры атрибутов не работаютPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Пользовательский цикл WooCommerce - фильтры атрибутов не работают

Сообщение Anonymous »

У меня возникли некоторые проблемы с некоторым циклом для листинга пользовательского каталога.

Цель: иметь простые продукты и несколько вариантов продуктов ( зависят от атрибута), указанного на странице каталога;

Я создал собственный цикл продукта, используя wc_get_products с типом array('simple', 'variation') но фильтры атрибутов, такие как размер или цвет, не работают с этим списком.

Это код:

Код: Выделить всё

$category = get_queried_object();

$currentCat = "";
if ( $category->slug != NULL ){
$currentCat = array($category->slug);
}

$paged                   = (get_query_var('paged')) ? absint(get_query_var('paged')) : 1;
$ordering                = WC()->query->get_catalog_ordering_args();
$ordering['orderby']     = array_shift(explode(' ', $ordering['orderby']));
$ordering['orderby']     = stristr($ordering['orderby'], 'price') ? 'meta_value_num' : $ordering['orderby'];
$products_per_page       = apply_filters('loop_shop_per_page', wc_get_default_products_per_row() * wc_get_default_product_rows_per_page());
$list_products       = wc_get_products(array(
'meta_key'             => '_price',
'status'               => 'publish',
'category'             => $currentCat,
'type'                 => array('simple', 'variation'),
'limit'                => $products_per_page,
'page'                => $paged,
'paginate'             => true,
'return'               => 'ids',
'orderby'              => $ordering['orderby'],
'order'                => $ordering['order'],
));

$totalProducts = (array) $list_products->products;

wc_set_loop_prop('current_page', $paged);
wc_set_loop_prop('is_paginated', wc_string_to_bool(true));
wc_set_loop_prop('page_template', get_page_template_slug());
wc_set_loop_prop('per_page', $products_per_page);
wc_set_loop_prop('total', $list_products->total);
wc_set_loop_prop('total_pages', $list_products->max_num_pages);
if($totalProducts) {
do_action('woocommerce_before_shop_loop');
woocommerce_product_loop_start();
foreach($totalProducts as $productID) {
$post_object = get_post($productID);
setup_postdata($GLOBALS['post'] =& $post_object);
wc_get_template_part('content', 'product');
}
wp_reset_postdata();
woocommerce_product_loop_end();
do_action('woocommerce_after_shop_loop');
} else {
do_action('woocommerce_no_products_found');
}
Кто-нибудь может мне помочь, чтобы фильтры начали работать??

Подробнее здесь: https://stackoverflow.com/questions/587 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»