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

时间:2014-01-09 05:59:14

标签: wordpress status forum role bbpress

我想检查用户状态并相应地更新他们的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。具有论坛角色'观众的用户的meta_value;是:a:2:{s:10:"subscriber";b:1;s:13:"bbp_spectator";b:1;}

1 个答案:

答案 0 :(得分:4)

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

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

更新后数据如下:

一个:2:{S:10: “订户”; B:1; S:15: “bbp_participant”; B:1;}