首页 > 解决方案 > 根据在后端仪表板上选择的会员计划更改用户角色

问题描述

我正在尝试根据他的活跃会员计划更改用户角色。下面的代码没有启动,或者我这里的钩子有误。会员是在 Woocommerce 会员仪表板上手动添加的。Woocommerce > 会员资格 > 添加会员 > 选择一个计划 > 保存会员资格。在下拉菜单中选择计划后,它还应该分配给我创建的特定自定义用户角色。

银牌 (slug -silver) - 活跃会员计划

silver-user - 自定义用户角色

function memberships_update_user_role_with_membership( $user_membership, $old_status, $new_status ) {

    $user_id = $user_membership->get_user_id();
    $wp_user = get_userdata( $user_id );
    $roles   = $wp_user->roles;

    
    if (wc_memberships_is_user_active_member($user_id, 'silver')) {
        return;
    }

    $wp_user->remove_role( 'customer' );
    $wp_user->add_role( 'silver-user' );
}
add_action( 'wc_memberships_user_membership_status_changed', 'memberships_update_user_role_with_membership', 10, 3 );

标签: woocommercehook-woocommercemembershipuser-roleswoocommerce-memberships

解决方案


推荐阅读