【问题标题】:Why does is_user_logged_in() return false after redirect from another site?为什么 is_user_logged_in() 从另一个站点重定向后返回 false?
【发布时间】:2020-03-14 13:43:03
【问题描述】:

我正在开发一个 WordPress 网站,该网站会在用户注册该网站后重定向到外部支付网关。用户付款后,用户将被重定向到一个页面以完成注册。

这是用于重定向的代码:

$login_data = array();
$login_data['user_login'] = $email;
$login_data['user_password'] = $password;
$login_data['remember'] = true;
$user = wp_signon($login_data);
if(!is_wp_error($user)){
    wp_set_current_user( $user->ID, $email );
    wp_set_auth_cookie( $user->ID, true, false );
    wp_redirect("https://another_payment_gateway.com");
    exit;
}

用户被重定向并填写付款表单。成功后,用户将被重定向到登录页面。如果他们未登录,则会为未登录用户显示一个对话框。这是该页面上的代码:

if(is_user_logged_in()){
  $user = wp_get_current_user();
  //code for logged in users
}else{
  //message for non logged in users 
}

如果我转到帐户页面,则显示用户已登录。但是当从其他站点重定向时 is_user_logged_in() 返回 false。对此问题的任何见解将不胜感激。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:
    add_action( 'loop_start', 'your_function' );
    
    function your_function() {
      if ( is_user_logged_in() ) {
        echo '<li id="text-2" class="hide">';
      } else {
        echo '<li id="text-2">'; 
      }
    }
    

    请检查上面的钩子,对登录和未登录的用户是否有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      • 2020-04-09
      • 2019-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多