好的,我想出了几个可能的解决方案。
处理付款验证
WooCommerce的PayPal标准网关实际上支持PayPal的IPN服务。无论您选择哪种“钩子”路线,您都需要使用它。
如何设置PayPal IPN
PayPal IPN连接到任何一个作为资金接收者的帐户。例如,如果您以 myemail@gmail.com 获得付款,则需要使用该帐户设置IPN。IPN PayPal发出“付款完成”!(排序)通知到您选择的URL。要选择要PayPal向其发送通知的 URL,您需要执行以下步骤:
- 登录到PayPal
- 点击右上角的小脸图标
- 点击“个人资料和设置”
- 点击左侧边栏中的“我的销售工具”
- 找到“即时付款通知”并点击“更新”
- 启用它们并设置 URL。您的WooCommerce PayPal Payments Standard网关网址为:http://yoursite.com/?wc-api=WC_Gateway_Paypal(在WooCommerce的PayPal标准文档中注明)。
- 保存您的设置
您的WooCommerce安装现在将在付款完成后收到PayPal的声音。哦,顺便说一句,请确保:
- PayPal设置中的“收件人电子邮件”是否正确
- fsockopen在您的服务器上已启用(您可以在WooCommerce设置中检查此“系统状态”)
现在让我们开始工作
选项 1:自动完成已完成付款的订单,并挂接到woocommerce_order_status_completed
以执行您的特殊操作/功能
为了让您的产品在经过验证的付款后自动完成,您只需安装Mirko Grewing的神话般的WooCommerce自动完成订单插件即可。请务必设置正确的设置(将显示在 WooCommerce 设置中的“Woo Extra Options”选项卡下)。
现在,在验证付款时,您的订单将自动完成,您只需挂接到您的完成挂钩“woocommerce_order_status_completed即可获得特殊功能。
该方法的好处是,如果允许您以已完成的任何顺序挂钩 - 无论您是手动完成还是自动完成。换句话说,它非常通用。
选项 2:加入woocommerce_payment_complete_order_status
筛选器,表示付款成功。
我想这是不言自明的。这种方法的好处是,它几乎是整个过程的第一步,并且发生在上面的完成钩子之前(如果您适当地设置了优先级)。
我不知道一个是否比另一个更好,但它们似乎都实现了我的目标:在付款经过验证后执行操作。