如何在注册后捕获Memberpress用户信息

时间:2019-04-25 作者:RBD

我目前正在开发一个网站,用户可以使用memberpress购买订阅,我想在注册过程完成后捕获用户数据,并完成支付交易。如果我通过仪表板手动添加成员,我可以捕获用户信息,因为不涉及支付网关,使用此代码

  function mepr_capture_new_member_added($event) {
    $user = $event->get_data();
    //mail(\'myemail\', \'mp user added\', \'new user added successfully\');
  }
  add_action(\'mepr-event-member-added\', \'mepr_capture_new_member_added\');
由于我是WordPress开发的新手,我不知道如何在我的其他页面模板上访问这些数据,这就是为什么我要发送一封电子邮件来测试它是否有效。我能够找出事务完成事件的操作挂钩,但它似乎不能正常工作。这是代码

function mepr_capture_new_one_time_sub($event) {
    $transaction = $event->get_data();
    $user = $transaction->user();
    //mail(\'myemail\', \'user purchased subscription\', \'user-transaction-completed event captured \'); }

add_action(\'mepr-event-non-recurring-transaction-completed\', \'mepr_capture_new_one_time_sub\');
我已经阅读了完整的memberpress文档,但与开发相关的资源不是我想要的,他们为webhooks提供了一个选项,我可以在用户注册和支付交易完成后在zapier上捕获数据,但我需要我网站上的数据,所以zapier不是一个选项,他们还提供rest API,但我想捕获“注册和事务完成”事件的用户信息,我认为rest API不可能做到这一点,请告诉我如何克服此问题,我们将不胜感激。

2 个回复
SO网友:RBD

在搜索了大约2天之后,我找到了一种方法,可以在注册过程完成并且用户的付款通过支付网关后捕获该用户,我现在的做法是,当注册过程完成时,用户被重定向到thank-you页面,并在该页面上传递一个包含subscr\\u id的查询字符串,我捕获该subscr\\u id并手动从数据库中提取用户,它工作得非常好,过程是无缝的,我还可以使用其他页面模板上的数据。

您只需从$\\u get[\'subscr\\u id\']中获取subscr\\u id,并使用它从“wp\\u mepr\\u subscriptions”表中捕获与此订阅关联的用户,然后使用用户id从wordpress的“wp\\u usermeta”表中获取用户详细信息,希望对其他人有所帮助:)

SO网友:Jordan

您可以使用操作获取用户mepr-txn-status-complete 在成功的交易中激发。如果需要,可以使用自定义元字段来检查这是否是第一次针对该用户运行此函数。这属于主题的函数文件或自定义插件。

function capture_completed_transaction($txn) {
    $subscription = $txn->subscription();

    // Ensure the subscription is legit
    if($subscription === false) { return; }

    // Use any of the following objects to interact with as needed
    $user = new MeprUser($txn->user_id); //A MeprUser object
    $membership = new MeprProduct($txn->product_id); //A MeprProduct object
    $users_memberships = $user->active_product_subscriptions(\'ids\'); //An array of membership CPT ID\'s

    $current_user = new WP_User($txn->user_id);
    if ( ! $current_user->exists() ) {
        return;
    }

  }
add_action(\'mepr-txn-status-complete\', \'capture_completed_transaction\');
令人遗憾的是,MemberPress的文档缺乏,在经历了许多挫折之后,我发现了以下有用的要点:MemberPress Subscription Actions