Я бы хотел отфильтровать Продукты по их доступным вариантам.
Случай (только примеры): покупатель хочет найти обувь от «Nike» размером «42». Таким образом, он может искать его с помощью опции «фильтровать по атрибутам продукта» из woocommerce. У меня уже есть логика для этого, но скорость загрузки просто медленная.
Я ищу лучший крючок для woocommerce и несколько советов, если у вас, ребята, есть возможность увеличить скорость загрузки.
add_action('woocommerce_before_shop_loop_item_title','wk_out_of_stock_variations_CUP_loop');
function wk_out_of_stock_variations_CUP_loop()
{
global $product;
global $wpdb;
$id = $product->get_id();
$filter = array();
$product_test = $product->get_available_variations();
foreach( $_GET as $key => $value ) {
$expl_get = explode( '_', $key );
if( $expl_get[0] == 'filter' ) {
$filter[$expl_get[1]] = $value;
}
}
foreach ( $filter as $key => $value ) {
foreach( $product_test as $prd_var ) {
if( $prd_var["attributes"]["attribute_pa_$key"] == $value ) {
break;
} else {
echo "<style>.post-$id{display: none !important}</style>";
}
}
}
}
В $filter
заданы условия фильтра («Размер», «Цвет» ...). Отображается в URL как параметр $_GET
, например /?filter_1=2&filter_2=5