Вызов wp_signon не регистрирует пользователя в

В настоящее время я программирую единый механизм регистрации для моего сайта WordPress, чтобы система справки моей компании могла аутентифицироваться в WordPress.

Чтобы это произошло, я использую wp_signon (), чтобы подписать пользователя, если они еще не вошли. Вот упрощенная версия того, что я делаю:

<?php define('WP_USE_THEMES', false); require("wp-blog-header.php"); if(!is_user_logged_in() && $_POST["log"] == "") { //redirect to login form that submits to this PHP script exit(0); } if(!is_user_logged_in() && $_POST["log"] != "") { $creds = array('user_login' => $_POST["log"], 'user_password' => $_POST['pwd'], 'remember' => $_POST["rememberme"]); $user_info = wp_signon($creds, false); if(!is_a($user_info, 'WP_Error')) { $username = $_POST["log"]; wp_set_current_user($user->ID, $username); wp_set_auth_cookie($user->ID, true, false); do_action('wp_login', $username); } else { write_log(ERROR, "Error authenticating: " . $user_info->get_error_message($user_info->get_error_code())); } $user_info = wp_get_current_user(); /* Code from here uses user attributes to generate and encrypt a single sign-on token */ ?> 

Проблема, с которой я столкнулся, заключается в том, что даже после вызова wp_signon() , wp_set_current_user() , wp_set_auth_cookie() и действий входа, пользователь все еще не вошел в систему. Я получаю свой объект $ user_info, но они не вошли в систему WordPress, поэтому позже, когда они следуют за защищенной ссылкой из системы поддержки, они не могут попасть на страницу и снова войти в систему (таким образом, побеждая цель единого входа).

Кроме того, я попытался заменить весь wp_signon() на auth_redirect() и который успешно регистрирует пользователя на сайте, но я нахожу, что они перенаправляются на страницу профиля, даже если URL имеет параметр запроса чтобы перенаправить их обратно на мой скрипт.

Solutions Collecting From Web of "Вызов wp_signon не регистрирует пользователя в"