会员价 9 折之后再叠一张 8 折券,99 元的商品实付 71.28 元,低于 75 元的进货价。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
add_filter('woocommerce_coupon_is_valid', function($valid, $coupon) {
return $valid && !has_member_price();
}, 10, 2);
会员折扣和优惠券各自计算后直接相乘,没有互斥规则。优惠券也没有排除已经参与会员价的商品。这一点先确认清楚,后面就不用反复试。
「权益优惠券叠加」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
具体做法是,先定叠加顺序和互斥关系,会员价与折扣券二选一;结算时设最低成交价,低于成本线直接提示不可用;优惠券适用范围里排除特价商品;用会员账号下几单不同组合,核对实付金额。
改完照着核一遍,会员账号使用折扣券时提示不可叠加,实付金额不低于设定的最低价。
