在 Memberpres 上按月付费后设置用户角色

问题描述

我正在建立一个网站,用户可以按月订阅以访问不同的课程。我已经设置了 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');

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...