2017-06-23 154 views
0

我想根據當前的購物車內容在分類頁面上有條件地隱藏一組Woocommerce產品。我有一個類別叫四個產品箱。其中兩個也在紙板類別,兩個在塑料類別。以編程方式隱藏Woocommerce產品

如果帶有ID 23的產品已經在購物車中,我想展示塑料盒。如果不是,我想隱藏它們。我知道如何檢查購物車的內容,但是一旦我有了答案,我該如何從該頁面的塑料類別中隱藏產品?

add_action('woocommerce_before_shop_loop', 'my_before_shop_loop'); 

function my_before_shop_loop() { 
    global $woocommerce; 

    $flag = 0; 

    foreach($woocommerce->cart->get_cart() as $key => $val) { 
     $_product = $val['data']; 

     if ($_product->id == '23') { 
      $flag = 1; 
     } 
    } 

    if ($flag == 0) { 

     // hide products that are in the plastic category 
     // this is where I need help 

    } 
} 

回答

1

您正在使用的鉤子在產品從數據庫中獲取後觸發。您可以從查詢本身過濾產品。在下面的代碼中,您可以傳遞您想要在前端隱藏的產品。

function custom_pre_get_posts_query($q) { 

     // Do your cart logic here 

     // Get ids of products which you want to hide 
     $array_of_product_id = array(); 

     $q->set('post__not_in', $array_of_product_id); 

    } 
    add_action('woocommerce_product_query', 'custom_pre_get_posts_query'); 
+0

This Works,thank you。 – poptartgun

相關問題