woocommerce - 根据在后端仪表板上选择的会员计划更改用户角色
问题描述
我正在尝试根据他的活跃会员计划更改用户角色。下面的代码没有启动,或者我这里的钩子有误。会员是在 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 );
解决方案
推荐阅读
- flutter - 如果 Flutter App 使用的某些包被停用或更改,会发生什么情况?
- json - JPA ManytoMany 仅返回 Spring 中的第一个对象
- python - 如何调整复杂类型数组的大小
- javascript - 使用 org.json.simple 包向 JSP 中的 Datatable 插件发送 ajax 响应
- apache-karaf - 如何使用 Pax-Web 在 Karaf 4.3.2 上运行 Vaadin 8 或 20 应用程序?
- c# - 如何为 ML.NET 规范化大型分类集的数组
- javascript - 仅渲染数组中对象的特定项
- nestjs - 为什么 .env 未定义?
- postgresql - 如何在postgres的RECURSIVE CTE内的CROSS JOIN LATERAL中应用多个条件
- r - 如果在 R 数据框中找到匹配的文本,则向上移动列