跳到主要内容

优惠券

以下优惠券过滤器可用:

  • coupons
  • showApplyCouponNotice
  • showRemoveCouponNotice

coupons

描述

当前功能是在购物车和结账侧边栏中显示优惠券代码。 如果您动态生成一个用户不友好的优惠券代码,这可能会不理想。 因此,可能需要更改此代码的显示方式。 为了实现这一点,存在过滤器 coupons。 此过滤器也可以用于显示或隐藏优惠券。 此过滤器不能用于更改优惠券的价值/总额。 这不会反映在购物车总额中。

参数

  • _coupons_ object - 包含以下键的优惠券对象:
    • _code_ string - 优惠券代码。
    • _discount_type_ string - 折扣类型。 可以是 percentfixed_cart
    • _totals_ object - 包含以下键的总额对象:
      • _currency_code_ string - 货币代码。
      • _currency_decimal_separator_ string - 货币小数分隔符。
      • _currency_minor_unit_ number - 货币最小单位。
      • _currency_prefix_ string - 货币前缀。
      • _currency_suffix_ string - 货币后缀。
      • _currency_symbol_ string - 货币符号。
      • _currency_thousand_separator_ string - 货币千位分隔符。
      • _total_discount_ string - 总折扣。
      • _total_discount_tax_ string - 总折扣税额。
  • _extensions_ object (默认: {}) - 扩展对象。
  • _args_ object - 包含以下键的参数对象:
    • _context_ string (默认: summary) - 项目的上下文。

返回值

  • array - 包含与上述相同键的对象数组。

代码示例

const { registerCheckoutFilters } = window.wc.blocksCheckout;

const modifyCoupons = ( coupons, extensions, args ) => {
return coupons.map( ( coupon ) => {
if ( ! coupon.label.match( /autocoupon(?:_\d+)+/ ) ) {
return coupon;
}

return {
...coupon,
label: 'Automatic coupon',
};
} );
};

registerCheckoutFilters( 'example-extension', {
coupons: modifyCoupons,
} );

过滤器也可以组合使用。 请参阅 组合过滤器 以获取示例。

截图

前面后面
应用优惠券过滤器之前的效果应用优惠券过滤器之后的效果

showApplyCouponNotice

描述

参数

  • value boolean (默认值: true) - 是否显示“应用优惠券”提示。
  • extensions object (默认值: {}) - 扩展对象。
  • args object - 参数对象,包含以下键:
    • context string (允许的值: wc/cartwc/checkout) - 优惠券提示的上下文。
    • couponCode string - 优惠券代码。

返回值

  • boolean - 是否显示“应用优惠券”提示。

代码示例

基础示例

const { registerCheckoutFilters } = window.wc.blocksCheckout;

const modifyShowApplyCouponNotice = ( defaultValue, extensions, args ) => {
return false;
};

registerCheckoutFilters( 'example-extension', {
showApplyCouponNotice: modifyShowApplyCouponNotice,
} );

高级示例

const { registerCheckoutFilters } = window.wc.blocksCheckout;

const modifyShowApplyCouponNotice = ( defaultValue, extensions, args ) => {
if ( args?.couponCode === '10off' ) {
return false;
}

return defaultValue;
};

registerCheckoutFilters( 'example-extension', {
showApplyCouponNotice: modifyShowApplyCouponNotice,
} );

过滤器也可以组合使用。请参阅 组合过滤器 示例。

截图

前面后面
应用“显示应用优惠券提示”过滤器之前的效果应用“显示应用优惠券提示”过滤器之后的效果

showRemoveCouponNotice

描述

参数

  • _value_ boolean (默认值: true) - 是否显示移除优惠券的提示。
  • _extensions_ object (默认值: {}) - 扩展对象。
  • _args_ object - 参数对象,包含以下键:
    • _context_ string (允许的值: wc/cartwc/checkout) - 优惠券提示的上下文。
    • _couponCode_ string - 优惠券代码。

返回值

  • boolean - 是否显示移除优惠券的提示。

代码示例

基础示例

const { registerCheckoutFilters } = window.wc.blocksCheckout;

const modifyShowRemoveCouponNotice = ( defaultValue, extensions, args ) => {
return false;
};

registerCheckoutFilters( 'example-extension', {
showRemoveCouponNotice: modifyShowRemoveCouponNotice,
} );

高级示例

const { registerCheckoutFilters } = window.wc.blocksCheckout;

const modifyShowRemoveCouponNotice = ( defaultValue, extensions, args ) => {
if ( args?.couponCode === '10off' ) {
return false;
}

return defaultValue;
};

registerCheckoutFilters( 'example-extension', {
showRemoveCouponNotice: modifyShowRemoveCouponNotice,
} );

过滤器也可以组合使用。请参阅 组合过滤器 示例。

截图

前面后面
应用“显示移除优惠券提示”过滤器前应用“显示移除优惠券提示”过滤器后