1

我正在建立一个网站,用户按月付费以访问不同的课程。我有 Memberpress 设置来处理用户注册和每月订阅。

当用户选择一门课程时,我调用一个函数来设置用户角色。这样,我在本月剩下的时间里禁用其他课程。

一个月后,用户再次支付月费,可以选择新的课程。捕获该事件的最佳方法是什么,以便我可以向其中添加设置角色功能?

环顾四周后,我找到了两种解决方案,但我不确定哪一种可行,以及如何在不等待一个月收费的情况下对其进行测试。

钩子1:

function mepr_capture_new_recurring_sub($event) {
  $subscription = $event->get_data();
  $user = $subscription->user();
  
    $user_ID = get_current_user_id(); 
    $theUser = new WP_User($user_ID);
    $theUser->set_role( 'subscriber' );
}
add_action('mepr-event-subscription-created', 'mepr_capture_new_recurring_sub');

钩子2:

function catch_first_payment_after_trial($event) {
  $transaction = $event->get_data();
  $subscription = $transaction->subscription();
  $is_first_real_payment = false;

  if($subscription !== false) {
    if($subscription->trial && $subscription->trial_amount <= 0.00 && $subscription->txn_count == 1) {
      $is_first_real_payment = true;
    }
    elseif($subscription->trial && $subscription->trial_amount > 0.00 && $subscription->txn_count == 2) {
      $is_first_real_payment = true;
    }
  }

  if($is_first_real_payment) {
    $user_ID = get_current_user_id(); 
    $theUser = new WP_User($user_ID);
    $theUser->set_role( 'subscriber' );
  }
}
add_action('mepr-event-transaction-completed', 'catch_first_payment_after_trial');

谢谢

4

1 回答 1

0

不确定你是否还需要这个。但要进行测试,您可以手动添加 memberpress 事务。在最顶部的交易页面上有一个名为添加的按钮,使用它。

于 2021-10-12T17:58:17.147 回答