禁用添加到购物车按钮的WooCommerce
阵列的产品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;
}
但是,这是行不通的。
我在做什么错?
谢谢
您必须返回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;
}
它不起作用它给一个产品的空白页面 – aminebj
功能检查(){ $ 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
这就是我需要的一些产品我该怎么做,请 – aminebj
的'的foreach ...'具有内嵌'return'没有意义恕我直言。它会比较从check()函数返回的第一个条目,如果$ id_p不是false,它将返回false,否则返回$ is_purchasable的值。那是你打算做什么的? – SaschaM78
我想将woocommerce_is_purchasable的值为$ is_purchasable = false应用于由check函数返回的产品id数组感谢您的帮助---->我想阻止底部添加到购物车的产品id – aminebj