WooCommerce挂钩用于“付款完成后”操作

2022-08-30 11:12:41

我正在使用WooCommerce和Wordpress。我有一个自定义的许可证密钥生成器,我希望当有人通过WooCommerce成功购买我的插件时,它会生成许可证密钥。

这似乎很简单:

  1. 用户在我的网站上完成结账
  2. 用户被重新定向到PayPal,并在其中输入其付款凭据
  3. PayPal告诉我的网站付款已完成
  4. 我挂接到某种“付款完成”或“order_complete”WooCommerce操作并生成许可证。

问题是:我真的不确定什么钩子可以很好地工作。Woocommerce在他们的网站上列出了他们的全部钩子集合,但几乎没有关于哪个对什么有好处的文档。

仅基于钩子名称,我认为这将是一个很好的操作。不幸的是,它似乎根本没有被解雇;我读过的一些地方说它从未被解雇过。woocommerce_payment_complete

我也读过一些关于PayPal IPN的内容,但我不明白我怎么能从中挂接到通知(这是否连接到Woocommerce钩子?

简而言之,我想在付款验证后立即生成许可证密钥。为了实现这一目标,我应该挂上什么?


答案 1

好的,我想出了几个可能的解决方案。

处理付款验证

WooCommerce的PayPal标准网关实际上支持PayPal的IPN服务。无论您选择哪种“钩子”路线,您都需要使用它。

如何设置PayPal IPN

PayPal IPN连接到任何一个作为资金接收者的帐户。例如,如果您以 myemail@gmail.com 获得付款,则需要使用该帐户设置IPN。IPN PayPal发出“付款完成”!(排序)通知到您选择的URL。要选择要PayPal向其发送通知的 URL,您需要执行以下步骤:

  1. 登录到PayPal
  2. 点击右上角的小脸图标
  3. 点击“个人资料和设置”
  4. 点击左侧边栏中的“我的销售工具”
  5. 找到“即时付款通知”并点击“更新”
  6. 启用它们并设置 URL。您的WooCommerce PayPal Payments Standard网关网址为:http://yoursite.com/?wc-api=WC_Gateway_Paypal(在WooCommerce的PayPal标准文档中注明)。
  7. 保存您的设置

您的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筛选器,表示付款成功。

我想这是不言自明的。这种方法的好处是,它几乎是整个过程的第一步,并且发生在上面的完成钩子之前(如果您适当地设置了优先级)。

我不知道一个是否比另一个更好,但它们似乎都实现了我的目标:在付款经过验证后执行操作。


答案 2

woocommerce_payment_complete_order_status付款被取消时也会触发。我刚刚在Woocommerce 3.1.2上使用PayPal作为网关进行了测试。

该操作似乎仅在付款成功时触发。woocommerce_payment_complete


推荐