使用 pmpro 和 wp-discourse 更新会员等级

这是 [Simon Cossar] (https://meta.discourse.org/u/Simon_Cossar)团队 使用的相同函数,请参阅此链接:

Manage group membership in Discourse with WP Discourse SSO

我使用了相同的函数,需要帮助。我也在上面的消息中发布了代码。

这是我的更新会员等级代码:

function action_pmpro_after_change_membership_level( $level_id, $user_id, $cancel_level ) {

    $group_name = dcpmp_get_level_for_id( $level_id );
    if ( is_wp_error( $group_name ) ) {

        return null;
    }
    $groupname = DiscourseUtilities::get_discourse_user( $user_id, false );
    
    // 移除用户。
    $result = DiscourseUtilities::remove_user_from_discourse_group( $user_id, $groupname );
    if ( ! empty( $result->success ) ) {
        // 删除会员等级元数据键。
        delete_user_meta( $user_id, "dcpmp_group_{$groupname}" );
    }
    
    $result1 = DiscourseUtilities::add_user_to_discourse_group( $user_id, $group_name );

    if ( ! empty( $result1->success ) ) {

        // 如果用户已添加到组中,则添加一个可在以后使用的元数据键值对。
        add_user_meta( $user_id, "dcpmp_group_{$group_name}", 1, true );
    }

    
    return $result;
    return $result1;
    
}
add_action( 'pmpro_after_change_membership_level', 'action_pmpro_after_change_membership_level', 10, 3 );