【问题标题】:Execute custom function after purchase a course/complete an order in LearnPress?在LearnPress中购买课程/完成订单后执行自定义功能?
【发布时间】:2020-04-02 14:44:54
【问题描述】:

当有人购买课程或订单成功完成时,我需要立即执行一个函数。我试图执行的函数实际上称为 API。我没有从 LearnPress 中看到合适的 Hook。

当我使用“user_register”(当有人注册这个钩子触发时)钩子时它工作得很好,但是当我使用 LearnPress 提供的这个“learn_press_confirm_order”钩子时它不起作用。

你们知道有什么合适的方法可以让我遵循并实现这一目标吗?谢谢你的时间

【问题讨论】:

  • 你能给出一个代码示例来说明你正在做什么。这通常会使找出问题所在变得更加容易
  • 这里可以看到代码 httpss://pastebin.com/aYp4kdda

标签: wordpress hook learnpress


【解决方案1】:

首先,您的 Lime API 密钥应被视为密码 - 不要在网络上共享它!立即转到您的 LimeLM 帐户,选择“设置”,然后选择“生成新密钥”。我会等:)

你的代码没有明显的问题,所以我会这样调试它:

  1. add_action 之后立即放置一个die('setup');。我们要确定这个文件实际上是被调用的。如果是,请删除die

  2. Wordpress 和 LearnPress 非常棒,因为您已经获得了源代码。转到wp-content/plugins/learnpress 并输入(在 Linux 或 *nix 上)

    grep -R "learn_press_confirm_order" .

    这将显示所有引用此操作的文件。只有一个:

    ./templates/order/confirm.php: transaction_method, $order->get_id() ); ?>

    所以打开一个编辑器并编辑wp-content/plugins/learnpress/templates/order/confirm.php。您需要确定:

    1. 您订购时文件是否正在运行。 (在顶部使用die,如果您可以看到您的网络服务器/php 日志文件,请使用error_log。)

    2. 我相当肯定此时您会发现错误,但出于某种原因,您可能会访问此页面,但未调用该操作。因此,您可能需要在此 confirm.php 页面上计算出确切的控制流程。同样,dieerror_log

您可以对 learnpress 的代码进行实时更改,以帮助您调试它。大多数人都害怕挖掘别人的代码,但这就是开源的巨大力量。完成后,您可以重新安装 learnpress。

期待听到它的进展:)

【讨论】:

  • 嗨,谢谢@craigmj,我按照你说的做了,似乎confirm.php没有执行var_dump(),die()我不知道为什么但我试图添加其他文件中的代码,并且工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多