我试图从优惠券折扣中排除一些具有特定产品属性的产品变体。
在我的例子中,我的目标产品变体有一个产品属性"finish“设置为”经典框架“或”框框架“术语。
我尝试使用"https://stackoverflow.com/questions/54297527/exclude-variations-with-2-specific-attribute-terms-from-coupon-usage-in-woocomme/54310492#54310492“回答代码,当产品变体将产品属性"finish”设置为“经典框架”或"Box Frame“时,它确实会使优惠券无效。
但是,它也使得添加到cart中的任何其他项目的优惠券无效。
因此,例如,如果购物车中有3项:
因此,我想要的是,优惠券只适用于其他项目。
任何帮助都是非常感谢的。
发布于 2019-09-12 17:14:15
"https://stackoverflow.com/questions/54297527/exclude-variations-with-2-specific-attribute-terms-from-coupon-usage-in-woocomme/54310492#54310492“回答代码的目的是,如果有”经典框架“或”框帧“项设置为”Finish“产品属性(用于变体)的任何产品变体,则使优惠券无效。
是的,它使优惠券无效,即使没有它的其他项目,它是正确的行为。
为什么?
$is_valid属性时,某些产品的变化并不适用于其他产品。可能存在一个商业插件,它扩展了优惠券的可能性,允许将产品变体IDS (添加一个可用的过滤器钩子)排除在扩展功能之外。
发布于 2022-08-22 22:07:59
您可以使用此过滤器。
function filter_woocommerce_coupon_get_discount_amount( $discounting_amount, $price_to_discount , $cart_item, $single, $coupon ) {
// On backorder
if ( $cart_item['data']->get_attribute('attribute') !== 'attribute_value' ) {
$discounting_amount = 0;
}
return $discounting_amount;
}
add_filter( 'woocommerce_coupon_get_discount_amount', 'filter_woocommerce_coupon_get_discount_amount', 10, 5 );https://stackoverflow.com/questions/57909685
复制相似问题