虚拟下载产品订单付款成功后,WooCommerce会自动完成订单,而对于实体产品或虚拟产品,订单不会自动完成。本文就来介绍WooCommerce自动完成订单的方法。
目录
为什么要自动完成订单
WooCommerce会将虚拟下载类产品的订单自动完成,这样客户付款成功后能立刻访问电子产品。但对于虚拟产品,WooCommerce会将状态设置为处理中,可能有些虚拟产品没有自动发货功能,需要人工干预,所以WooCommerce没有将这个逻辑写死。
某些情况下自动完成更合理,比如:
- 类似会员费这样的虚拟产品,买完一般就不需要后续处理,订单应该自动转为完成状态。
- 如果你的产品是序列号、优惠码、电影票等等,网站具备自动发货能力,比如直接通过邮件发送,或显示在订单里,这样也无需人工干预,可以自动完成订单。
- 单纯的不需要处理中这个状态,就想直接完成,节省时间。
使用插件自动完成订单
插件Autocomplete WooCommerce Orders可以实现这个功能,在后台搜索安装后,找到位于WooCommerce > Settings > AutoComplete Orders
下的选项,简单直白,就四个选项,分别是:
- 关闭
- 自动完成已付款的虚拟产品订单
- 自动完成已付款的所有订单
- 自动完成所有订单(无论付款与否)
插件安装后,默认状态是关闭,一定记得来设置里选择自己需要的选项。
针对PayPal的特殊处理
该插件专门说明,针对PayPal付款,需要做到以下两点才能正常工作:
- 确保PayPal Standard付款方式里设置的邮箱是你PayPal账户的主邮箱
- 开启PDT(Payment Data Transfer)
什么是PDT,和IPN有什么区别
PDT(Payment Data Transfer)和IPN(Instant Payment Notification)比较类似,主要区别是时效性:
- PDT一般和Auto Return同时使用,用户付款后可以自动返回你的站点,立即告知站点付款是否成功,这样你可以在thank you页面根据付款状态显示信息。
- IPN是服务器发器的异步通知,即使用户付款后立刻关闭浏览器,不返回站点,IPN也能确保把付款状态通知给站点,只是有时快,有时慢,不一定是即时的。
一般可以选择同时使用PDT和IPN。回到该插件,即使不开启PDT,订单最终也会自动完成,但时效性不能保证,如果你需要用户立刻能访问所购买的服务,就要开启PDT。
如何开启PDT
1)登录PayPal账户,打开账户设置(Account Settings
),在左侧的菜单栏底部“PRODUCTS & SERVICES”区域里,找到Website payments
,打开。
2)从右侧区域找到Website preferences
,点击Update
按钮打开。
3)先在Auto Return
里填写返回地址,例如:
https://www.solagirl.net/checkout/order-received/
4)点击Save后,Token就会显示出来,再选择On
打开PDT即可。
5)在WooCommerce的PayPal设置里填写Token。
结束语
本文介绍的内容都是基于PayPal Standard,这是WooCommerce插件源代码里带的PayPal支付功能,如果你使用的是第三方插件,设置方式可能不同。另外,如果对PayPal设置有疑问,可以参考WooCommerce的官方文档,写的很详细。
如果想测试付款,可以使用PayPal Sandbox,用虚拟账户买卖,查看流水,获取API。
另外,WooCommerce从2021年7月份就不再支持PayPal Standard功能了,新安装的站点也会自动隐藏这个支付接口,取而代之的是WooCommerce PayPal Payments插件,需要自己安装,设置方式和功能与PayPal Standard有很大差异,写次文时尚未测试该插件。