2016-09-26 77 views
2

阵列的产品ID我试图禁用添加到购物车按钮的产品ID数组,但我找不到问题。禁用添加到购物车按钮的WooCommerce

我想要使用此功能:

add_filter('woocommerce_is_purchasable', 'my_woocommerce_is_purchasable', 10, 2); 

function my_woocommerce_is_purchasable($is_purchasable, $product) { 
    $id=check(); // This function return an array of IDs 
    foreach ($id as $id_p){ 
     return ($product->id = $id_p ? false : $is_purchasable); 
    } 
} 

这是我check()功能代码(更新)

function check() { 
    $listproduit = get_woocommerce_product_list(); 
    $score = get_score_user(); 
    foreach ($listproduit as $products) { 
     if ($products[1] >= 5000) { 
      $listid = $products[0]; 
      return $listid; 
      // print_r($listid); 
     } 
    } 
    return $listid; 
} 

但是,这是行不通的。

我在做什么错?

谢谢

+1

的'的foreach ...'具有内嵌'return'没有意义恕我直言。它会比较从check()函数返回的第一个条目,如果$ id_p不是false,它将返回false,否则返回$ is_purchasable的值。那是你打算做什么的? – SaschaM78

+0

我想将woocommerce_is_purchasable的值为$ is_purchasable = false应用于由check函数返回的产品id数组感谢您的帮助---->我想阻止底部添加到购物车的产品id – aminebj

回答

3

您必须返回true或false,并在您的条件中包含$ is_purchasable。

试试这个代码:

add_filter('woocommerce_is_purchasable', 'my_woocommerce_is_purchasable', 10, 2); 
function my_woocommerce_is_purchasable($is_purchasable, $product) { 
    $id = check(); 
    if(in_array($product->id, $id) && $is_purchasable) return false; 
    else return true; 
} 

此代码放在你的活跃儿童主题(或主题)的function.php文件或也以任何插件文件。

代码已经过测试并且功能完整。


更新您的check()函数的代码。我无法测试这个,但我已经做了一些修改。

下面是代码

function check() { 
    $listproduit = get_woocommerce_product_list(); 
    $listid = array(); 
    $score = get_score_user(); 
    foreach ($listproduit as $products) { 
     if ($products[1] >= 5000) { 
      $listid[] = $products[0]; 
     } 
    } 
    // print_r($listid); 
    return $listid; 
} 
+0

它不起作用它给一个产品的空白页面 – aminebj

+0

功能检查(){ $ listproduit = get_woocommerce_product_list(); $ score = get_score_user(); foreach($ listproduit as $ products) { if($ products [1]> = 5000) { $ listid = $ products [0]; return $ listid; print_r($ listid); } } return $ listid; } – aminebj

+0

这就是我需要的一些产品我该怎么做,请 – aminebj

相关问题