我正在建立一个网站,用户按月付费以访问不同的课程。我有 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');
谢谢