Php 强制特定的商业产品以单独的顺序销售
我试图强迫WooCommerce中的特定产品单独销售。 然而,我希望这个产品能无限量销售 根据答案代码,该代码运行良好,我目前正在使用: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; //设置变量 $单独=正确;
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为666的产品不在购物车中,请继续
- 如果购物车不是空的&ID为666的产品在购物车中,请停止