Wordpress角色不';除非在管理面板中刷新用户页面,否则无法升级

Wordpress角色不';除非在管理面板中刷新用户页面,否则无法升级,wordpress,Wordpress,您好,我正在将Ultimate会员插件与S2member pro插件一起使用,Ultimate会员有自己的角色,称为社区角色。此外,S2member也有自己的角色,称为S2member\u level1我试图将这两个角色结合起来,例如,每当S2member\u level1角色有一些用户最终成员社区角色时,它们也会更改为premium。我用这段代码来实现这一点 global $ultimatemember; $user_id = get_current_user_id(); if( curren

您好,我正在将Ultimate会员插件与S2member pro插件一起使用,Ultimate会员有自己的角色,称为社区角色。此外,S2member也有自己的角色,称为
S2member\u level1
我试图将这两个角色结合起来,例如,每当
S2member\u level1
角色有一些用户最终成员社区角色时,它们也会更改为premium。我用这段代码来实现这一点

global $ultimatemember;
$user_id = get_current_user_id();
if( current_user_is(s2member_level1) ) {
  update_user_meta($user_id, 'role', 'premium');
} elseif ( current_user_is(s2member_level0) ){
  update_user_meta($user_id, 'role', 'member');
} else {

}
它的工作原理类似于,如果某个人拥有
s2member\u level1
角色,那么它会将最终成员角色更新为premium;如果
s2member\u level0
意味着该成员没有成员资格或其已过期,那么它也会将最终成员角色更改回作为wordpress角色订户的
member

问题: 它只在我刷新wordpress管理面板用户部分时起作用,而不是在我不刷新该部分时所有内容都会更新,并且用户s2member角色已更改,它不会做出反应用户仍然可以仅访问premium users部分,但当我刷新或访问用户wordpress管理面板部分时,应更新的所有角色都会更新,而无需此操作


为什么会发生这种情况以及如何解决?

对于像我这样的人,解决方案:

    global $ultimatemember;
$user_id = get_current_user_id();
if( current_user_is(s2member_level1) ) {
  update_user_meta($user_id, 'role', 'premium');
  delete_option( "um_cache_userdata_{$user_id}" );
} elseif ( current_user_is(s2member_level0) ){
  update_user_meta($user_id, 'role', 'member');
  delete_option( "um_cache_userdata_{$user_id}" );
} else {

}
我添加了
delete_选项(“um_cache_userdata{$user_id}”)


你可能会问这是什么,插件ultimate member有一个非常愚蠢的缓存系统,如果你想使用一些定制的东西,它不包括他们的缓存清理,所以每当你去用户那里,它就是ultimate member在页面加载时清理缓存的地方之一,最好将此代码包含到您将来将要执行的所有自定义代码中,因为它不会仅仅因为缓存问题而工作…

对于像我这样的人,解决方案:

    global $ultimatemember;
$user_id = get_current_user_id();
if( current_user_is(s2member_level1) ) {
  update_user_meta($user_id, 'role', 'premium');
  delete_option( "um_cache_userdata_{$user_id}" );
} elseif ( current_user_is(s2member_level0) ){
  update_user_meta($user_id, 'role', 'member');
  delete_option( "um_cache_userdata_{$user_id}" );
} else {

}
我添加了
delete_选项(“um_cache_userdata{$user_id}”)


你可能会问这是什么,插件ultimate member有一个非常愚蠢的缓存系统,如果你想使用一些定制的东西,它不包括他们的缓存清理,所以每当你去用户那里,它就是ultimate member在页面加载时清理缓存的地方之一,最好将此代码包含到您将来将要执行的所有自定义代码中,因为它不会仅仅因为缓存问题而工作…

我不理解他们为什么需要缓存用户数据,无论如何,我在高级自定义字段中遇到了同样的问题

我使用ACF在用户配置文件页面上显示和管理自定义用户字段

但此页面上的所有更改都不会显示在其模式信息页面上,因为存在缓存

我已删除所有旧缓存,然后关闭:

Ultimate Member->Settings->Advanced->停止缓存用户的配置文件数据


然后他们每次都从usermeta获取数据,并提交密钥。

我不明白他们为什么需要缓存用户数据,不管怎样,我在高级自定义字段中遇到了同样的问题

我使用ACF在用户配置文件页面上显示和管理自定义用户字段

但此页面上的所有更改都不会显示在其模式信息页面上,因为存在缓存

我已删除所有旧缓存,然后关闭:

Ultimate Member->Settings->Advanced->停止缓存用户的配置文件数据

然后,他们每次都从usermeta获取数据,并提交密钥