在用户完成配置文件表单后重定向

时间:2018-08-01 作者:laluk

我有一个用户注册表的实施和工作在网站的前端正确。我的主要问题是,我想在完成配置文件表单后重定向用户。

我的想法是显示一个包含一些内容的页面,让用户知道他们的帐户正在被审查。因此,这类用户将拥有一个名为“批准中的成员”的新角色,一旦管理员审核他们的个人资料并批准他们,他们将获得“活动成员”角色。

现在一切正常,但我无法在完成个人资料后将其重定向到我之前提到的页面。

我是一个非常新的使用可湿性粉剂,所以任何帮助或建议将不胜感激。谢谢

5 个回复
SO网友:Andrea Somovigo

未测试,但使用挂钩user_register 您应该能够做到:

add_action( \'user_register\', \'stack_310127_redirect\', 10, 1 );
function stack_310127_redirect( $user_id ){
  wp_redirect( \'http://www.example.com/yoururl\' ); 
  exit;
}

SO网友:Trilok

请在你的主题函数上输入下面的代码。php文件

add_action(\'user_register\',\'post_user_reg_redirect\');
function post_user_reg_redirect( $user_id )
{           
            $url = \'http://example.com\';          
             wp_redirect($url);
             die();     

}

SO网友:laluk

我想我已经找到了解决这个问题的方法,但我需要你们的帮助。

使用以下挂钩:

add_action( \'member_role_upgrade\', \'my_member_role_upgrade\', 10, 2 );
function my_member_role_upgrade( $old_role, $new_role ) {
  if ( $new_role === \'member-in-approval\' ) {

      $url = \'http://example.com\';          
       wp_redirect($url);
       die(); 

}
}
如有任何反馈,将不胜感激。

SO网友:Serkan Algur

用户注册后可以使用简单重定向。如果表单没有使用Javascript ajax,可以将其与注册函数一起使用(示例);

$new_user = wp_insert_user(array(
    \'user_login\'        => $user_login,
    \'user_pass\'         => $user_pass,
    \'user_email\'        => $user_email,
    \'first_name\'        => $user_first,
    \'last_name\'         => $user_last,
    \'user_registered\'   => date(\'Y-m-d H:i:s\'),
    \'role\'              => \'subscriber\'
    )
);
  if($new_user) {
     // Maybe you have some custom user metas
        update_user_meta($new_user,\'customarea\',\'custom value\');

     // log the new user in
        wp_setcookie($user_login, $user_pass, true);
        wp_set_current_user($new_user_id, $user_login); 
        do_action(\'wp_login\', $user_login);

    // send the newly created user to the home page after logging them in
        wp_redirect(home_url()); exit;
  }

SO网友:laluk

因此,经过一番努力(作为Wordpress新手),我找到了一个可能的解决方案,在完成用户前端配置文件后重定向用户。

以下是我如何实现此功能的:

add_action( \'member_role_upgrade\', \'my_member_role_upgrade\', 10, 3 );
function my_member_role_upgrade( $old_role, $new_role, $user_id ) {
      if ( $new_role === \'member-in-approval\' ) {

      $user_id = wp_update_user( array( \'ID\' => $user_id, \'role\' => \'member-in-approval\' ) );
      $url = \'http://example.com/profile-under-review/\';
      wp_redirect($url);
      die();

      }
}
像往常一样,如有任何反馈,我们将不胜感激。谢谢

结束