【问题标题】:Woocommerce: do not apply coupon to backorder itemsWoocommerce:不要将优惠券应用于缺货商品
【发布时间】:2019-09-04 05:35:13
【问题描述】:

我需要删除购物车中延期交货(和缺货)商品的优惠券折扣,但不删除其他符合条件的商品的折扣。例如。购物车中有 2 件商品,商品 1 有货并获得 20% 的优惠券折扣,商品 2 缺货,允许延期交货,但折扣为 0。有人可以建议任何解决方案、插件或功能吗?

【问题讨论】:

  • 这是不可能的或非常复杂的......即使是特价产品的 Woocommerce 功能也只能在全球范围内使用......所以你应该尝试以不同的方式重新考虑它。
  • 感谢@LoicTheAztec。好像你是对的,因为我正在寻找大约一周的解决方案,但没有找到任何解决方案。您认为唯一的解决方案是禁止延期交货吗?
  • 您也可以尝试使用:1)基于没有折扣的优惠券的负费用,因此您可以按项目进行任何折扣计算。 2) 将购物车商品价格更改为折扣价格,当优惠券(无折扣适用)且商品不缺货时。
  • 我知道,但是有一个专用的 WC_Product 条件函数,您可以使用 n 个购物车项目(和数量),例如:if( $product->is_on_backorder( $cart_item['quantity']) ) { /* Product is on backorders */ } else { /* Product is not on backorders */ } ... 所以在这种情况下,它会处理数量并使其工作。跨度>
  • 真丢脸,我不是程序员。我可以阅读并且有时可以自定义代码,但无法编写自己的代码(html 或 css 除外)。

标签: php wordpress woocommerce cart coupon


【解决方案1】:
// If WooCommerce Cart items are on backorder do not apply coupon
function filter_woocommerce_coupon_get_discount_amount($discount, $price_to_discount, $cart_item, $single, $coupon) {    
    // On backorder
    if ($cart_item['data']->is_on_backorder()) {
        $discount = 0;
    }

    return $discount;
}
add_filter('woocommerce_coupon_get_discount_amount', 'filter_woocommerce_coupon_get_discount_amount', 10, 5);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    相关资源
    最近更新 更多