Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 强制特定的商业产品以单独的顺序销售_Php_Wordpress_Woocommerce_Product_Cart - Fatal编程技术网

Php 强制特定的商业产品以单独的顺序销售

Php 强制特定的商业产品以单独的顺序销售,php,wordpress,woocommerce,product,cart,Php,Wordpress,Woocommerce,Product,Cart,我试图强迫WooCommerce中的特定产品单独销售。 然而,我希望这个产品能无限量销售 根据答案代码,该代码运行良好,我目前正在使用: function filter\u woo commerce\u add\u to\u cart\u validation($passed,$product\u id,$quantity,$variation\u id=null,$variations=null){ //要单独购买的产品id $product_id_单独=666; //设置变量 $单独=正确;

我试图强迫WooCommerce中的特定产品单独销售。 然而,我希望这个产品能无限量销售

根据答案代码,该代码运行良好,我目前正在使用:

function filter\u woo commerce\u add\u to\u cart\u validation($passed,$product\u id,$quantity,$variation\u id=null,$variations=null){
//要单独购买的产品id
$product_id_单独=666;
//设置变量
$单独=正确;
//如果通过
如果($通过){
//如果添加产品时购物车不为空
如果(!WC()->购物车->为空(){
//如果添加了产品id=仅产品id
如果($product\U id\U ONLY==$product\U id){
$one=假;
}否则{
//为购物车项目生成唯一ID
$product\U cart\U id=WC()->cart->generate\U cart\U id($product\U id\U ONLY);
//检查产品是否在购物车中
$in_cart=WC()->cart->find_product_in_cart($product_cart_id);
//如果产品已在购物车中
如果($in_cart){
$one=假;
}
}
}否则{
如果($product\U id\U ONLY==$product\U id){
$单独=正确;
}
}
}
如果($单独==假){
//设置错误消息
$message='产品666必须单独购买';
wc_添加_通知(uuu($message,'woocommerce'),'error');
$passed=false;
}
返回$passed;
}
添加过滤器(“woocommerce\u添加到购物车\u验证”、“filter\u woocommerce\u添加到购物车\u验证”,10,5);

如果购物车是空的,我可以添加ID为666的产品和自定义数量

将产品ID 666添加到购物车后,我无法将其他产品添加到购物车

如果我开始向一个空购物车添加另一个产品,我就不能向购物车添加产品ID 666


问题是,如果我将产品ID 666添加到空购物车中,我无法通过将更多产品添加到购物车中来增加产品666的数量。

要强制单独销售特定产品,请使用:

function filter\u woo commerce\u add\u to\u cart\u validation($passed,$product\u id,$quantity,$variation\u id=null,$variations=null){
//要单独购买的产品id
$product_id_单独=666;
//设置变量
$flag=false;
//如果添加产品时购物车不为空
如果(!WC()->购物车->为空(){
//为购物车项目生成唯一ID
$product\U cart\U id=WC()->cart->generate\U cart\U id($product\U id\U ONLY);
//检查产品是否在购物车中
$in_cart=WC()->cart->find_product_in_cart($product_cart_id);
//如果产品已在购物车中,则添加的产品ID不单独等于产品ID
if($in_cart&&($product_id!=$product_id_){
$flag=true;
//购物车中没有单独的产品ID&添加的产品ID等于单独的产品ID
}elseif(!$in_cart&($product_id===$product_id本身)){
$flag=true;
}
}
//真的
如果($flag){
//设置错误消息
wc_添加_通知(sprintf(
__(“产品%s必须单独购买”,“woocommerce”),
仅$product\u id\u一项,
)“错误”);
//通过=错误
$passed=false;
}
返回$passed;
}
添加过滤器(“woocommerce\u添加到购物车\u验证”、“filter\u woocommerce\u添加到购物车\u验证”,10,5);

添加ID为666的产品时:

  • 如果购物车为空,则可以添加任意数量的产品
  • 如果购物车不是空的&ID为666的产品不在购物车中,请停止
  • 如果购物车不是空的&ID为666的产品在购物车中,请继续
添加具有不同ID的产品时:

  • 如果购物车为空,则可以添加任意数量的产品
  • 如果购物车不是空的&ID为666的产品不在购物车中,请继续
  • 如果购物车不是空的&ID为666的产品在购物车中,请停止

您的代码工作正常。我可以添加多个数量。如果您使用的是现有代码,请始终引用,因为它为提到的作者提供了适当的信用,只要购物车是空的,代码允许我添加多个数量。将任意数量的产品添加到购物车中。然后再尝试添加相同数量的产品,这是不允许的。非常感谢!这正是我想要它做的。