Есть ли лучшее решение для фильтрации доступных вариантов продукта в WOOCOMMERCE? - PullRequest
0 голосов
/ 23 мая 2019

Я бы хотел отфильтровать Продукты по их доступным вариантам. Случай (только примеры): покупатель хочет найти обувь от «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

...