Wordpress - 通过检查用户状态从 bbPress 外部更改论坛角色

Posted

技术标签:

【中文标题】Wordpress - 通过检查用户状态从 bbPress 外部更改论坛角色【英文标题】:Wordpress - Change forum role from outside bbPress by checking user status 【发布时间】:2014-01-27 13:22:13 【问题描述】:

我想检查用户状态并相应地更新他们的 bbPress 论坛角色。 (不是 Wordpress 角色。)

目的是为 BP-Registration-Options 插件添加功能,以调节用户注册(在 BuddyPress 中。当前,该插件在用户未获批准时将用户状态设置为 69,并阻止访问 BuddyPress 功能。但是,用户仍然可以登录。

当他们登录时,bbPress 会根据您在后端的设置自动设置用户论坛角色。在这种情况下,它被设置为“旁观者”。当用户被管理员批准时,他们的状态会发生变化,我希望它也将 bbPress 角色更新为“参与者”。

这是我的第一次尝试:

function bp_registration_options_additional() 
  if ( is_user_logged_in() )   
    $user_ID = get_current_user_id();
    $user = get_userdata( $user_ID );
      if (69 !== $user->user_status ) 

      // Here is where I need help. 

     //How to set the bbPress forum role to 'Participant'? 

    
  

add_action( 'wp_loaded', 'bp_registration_options_additional' );

谢谢!

WP:3.8 bbPress:版本 2.5.2

编辑:一些附加信息。论坛角色的 meta_key 是:wp_capabilities。具有论坛角色“观众”的用户的元值;是:a:2:s:10:"subscriber";b:1;s:13:"bbp_spectator";b:1;

【问题讨论】:

【参考方案1】:

有同样的要求 - 更新 wp_capabilities 字段 -

$wp_user_capabilities_arr = array( "subscriber" => true, "bbp_participant" => true ); update_user_meta($wp_user_id, "wp_capabilities", $wp_user_capabilities_arr);

更新后的数据如下:

a:2:s:10:"订阅者";b:1;s:15:"bbp_participant";b:1;

【讨论】:

以上是关于Wordpress - 通过检查用户状态从 bbPress 外部更改论坛角色的主要内容,如果未能解决你的问题,请参考以下文章

WordPress - 检查用户是不是登录

BeanPostProcessor —— 连接Spring IOC和AOP的桥梁

Wordpress:在前端检查自定义用户角色

PHP Wordpress:检查当前用户的角色

WordPress-按ID检查用户是否存在

Tinymce 文本区域通过拖动底部状态栏调整大小