Php 在WooCommerce中禁用订阅产品的优惠券
我正在尝试禁用通过“所有订阅产品”加载项设置的WooCommerce订阅的优惠券代码。我尝试了下面的代码片段,但它不是针对通过“AllProductsforSubscription”插件添加的订阅产品。我可能完全走错方向了 我有一个测试产品 下面是我的代码尝试:Php 在WooCommerce中禁用订阅产品的优惠券,php,wordpress,woocommerce,coupon,woocommerce-subscriptions,Php,Wordpress,Woocommerce,Coupon,Woocommerce Subscriptions,我正在尝试禁用通过“所有订阅产品”加载项设置的WooCommerce订阅的优惠券代码。我尝试了下面的代码片段,但它不是针对通过“AllProductsforSubscription”插件添加的订阅产品。我可能完全走错方向了 我有一个测试产品 下面是我的代码尝试: function sw_wc_apfs_disable_on_susbcription( $is_valid, $product, $instance, $values ) { if ( ! empty( $values[ ‘wcs
function sw_wc_apfs_disable_on_susbcription( $is_valid, $product, $instance, $values ) {
if ( ! empty( $values[ ‘wcsatt_data’][ ‘active_subscription_scheme’ ] ) ) {
$is_valid = false;
}
return $is_valid;
}
它不起作用…非常感谢您的帮助。您的代码有点不完整,因为代码中缺少钩子。你的代码中也有一些错误 只有3个参数
woocommerce\u优惠券\u是有效的
hook,因此您需要遍历购物车项目
下面是两个代码版本:
1) 。对于使用“所有订阅产品”加载项的订阅产品(代码已注释):
add_filter('woocommerce_coups_有效','disable_coups_for_subscription_products',10,3);
功能禁用订阅产品的优惠券($is_valid,$优惠券,$折扣){
//循环浏览购物车项目
foreach(WC()->cart->get_cart()作为$cart_项目){
//使用“用于订阅的所有产品”加载项检查订阅产品
if(isset($cart_项目['wcsatt_数据]['active_订阅方案]]))
&&!空($cart\u item['wcsatt\u data']['active\u subscription\u scheme'])){
$is_valid=false;//找到订阅产品:使优惠券“无效”
break;//停止并退出循环
}
}
return$是有效的;
}
代码进入活动子主题(或活动主题)的function.php文件。它应该有效
2) 。对于普通订阅产品(代码已注释):
add_filter('woocommerce_coups_有效','disable_coups_for_subscription_products',10,3);
功能禁用订阅产品的优惠券($is_valid,$优惠券,$折扣){
//循环浏览购物车项目
foreach(WC()->cart->get_cart()作为$cart_项目){
//检查订阅产品
if(在数组($cart\u item['data']->get\u type(),数组('subscription','subscription\u variation'))中){
$is_valid=false;//找到订阅产品:使优惠券“无效”
break;//停止并退出循环
}
}
return$是有效的;
}
代码进入活动子主题(或活动主题)的function.php文件。已测试并运行。您的代码有点不完整,因为代码中缺少钩子。你的代码中也有一些错误 只有3个参数
woocommerce\u优惠券\u是有效的
hook,因此您需要遍历购物车项目
下面是两个代码版本:
1) 。对于使用“所有订阅产品”加载项的订阅产品(代码已注释):
add_filter('woocommerce_coups_有效','disable_coups_for_subscription_products',10,3);
功能禁用订阅产品的优惠券($is_valid,$优惠券,$折扣){
//循环浏览购物车项目
foreach(WC()->cart->get_cart()作为$cart_项目){
//使用“用于订阅的所有产品”加载项检查订阅产品
if(isset($cart_项目['wcsatt_数据]['active_订阅方案]]))
&&!空($cart\u item['wcsatt\u data']['active\u subscription\u scheme'])){
$is_valid=false;//找到订阅产品:使优惠券“无效”
break;//停止并退出循环
}
}
return$是有效的;
}
代码进入活动子主题(或活动主题)的function.php文件。它应该有效
2) 。对于普通订阅产品(代码已注释):
add_filter('woocommerce_coups_有效','disable_coups_for_subscription_products',10,3);
功能禁用订阅产品的优惠券($is_valid,$优惠券,$折扣){
//循环浏览购物车项目
foreach(WC()->cart->get_cart()作为$cart_项目){
//检查订阅产品
if(在数组($cart\u item['data']->get\u type(),数组('subscription','subscription\u variation'))中){
$is_valid=false;//找到订阅产品:使优惠券“无效”
break;//停止并退出循环
}
}
return$是有效的;
}
代码进入活动子主题(或活动主题)的function.php文件。测试和工作