跳到主要内容

ArtinTech Solution

Auto-Selecting Free Shipping at a Cart Threshold in WooCommerce

“满一定金额免运费”是电商最常见的促销之一,WooCommerce 原生的免运费方式开箱即支持:设置最低订单金额,购物车达标后该方式就会可用。WooCommerce 不会做的,是自动把客户切换过去。

WooCommerce 自身行为中的缺口

如果客户在购物车越过免运费门槛之前(比如再加一件商品)已经选了付费配送,这个付费选项会一直保持选中。WooCommerce 只会在本次会话尚未选择任何配送方式时才选默认方式;一旦选定,就会被视为有意的决定而保持不变,即使新出现的选项对客户明显更划算。

两个修复而不是一个,以及为何两者都必要

第一种情况是客户直接在结账页修改购物车,比如用页面上的数量加减器增加数量。我们在浏览器端专门标记这一事件,将它与客户手动点击另一个配送单选按钮区分开,只有在该标记存在且免运费方式刚刚变为可用时,才自动选择免运费。之后客户手动点击付费方式则不受影响:该标记只会在下一次数量变化时再次触发,而不是每次重新计算都触发。

第二种情况是客户第一次进入结账页时,购物车已经满足条件。为此,我们在服务器端对 woocommerce_package_rates 加了一个小过滤器,把默认方式设为免运费,但仅限本次会话尚未选择任何方式时。如果已经存在真实的选择,过滤器什么也不做,因此它永远不会悄悄覆盖客户自己的决定。

两个修复遵循同一个原则:默认选择更好的选项,但绝不违背客户真正做出的选择。

要点总结

  • 添加一种配送方式并不等于把它设为默认;WooCommerce 有意保留会话中已有的选择。
  • 在浏览器端区分“购物车刚刚改变”和“客户刚刚点了配送选项”,是让自动选择功能既安全又不惹人烦的关键。
  • 服务器端的默认值只应作用于尚未做出的选择;显式检查这一点只需很少的代码,却能避免真正的体验倒退。

相关阅读:在结账时校验手机号码、我们的定制开发工作。

在您自己的 WooCommerce 或 WordPress 后台遇到类似限制?和我们聊聊:ArtinTech Solution 正是打造这类定制店铺工具的团队。

Share this article

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注