Ich arbeite an WordPress Auto Login von YII2 Unten ist mein Code.WP Auto Login von Yii2 mit Curl funktioniert nicht beim ersten Laden
function.php (WP)
function autologin()
{
$strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/';
session_write_close();
$ch = curl_init("http://example.com/testregister/wplogin");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $strCookie);
$response = curl_exec($ch);
curl_close($ch);
$newres = json_decode($response);
$email = $newres->email;
$password = $newres->password;
$result = $newres->result;
if($result == 1)
{
$creds = array();
$creds['user_login'] = $email;
$creds['user_password'] = $password;
$creds['remember'] = false;
$user = wp_signon($creds);
if (is_wp_error($user))
{
echo $user->get_error_message();
}
}
else
{
wp_destroy_current_session();
wp_clear_auth_cookie();
do_action('wp_logout');
}
}
// ADD CODE JUST BEFORE HEADERS AND COOKIES ARE SENT
add_action('init', 'autologin');
testregister/wplogin: (YII2)
public function actionWplogin()
{
$userEmail = Yii::$app->user->identity->Email;
$userpw = Yii::$app->user->identity->Password;
$result = 1;
if($userEmail == "")
{
$result = 0;
}
return '{"email":"'.$userEmail.'", "password":"'.$userpw.'" ,"result":"'.$result.'"}';
}
Dieser Funktionsaufruf jedes Mal auf Last Wordpress-Seite. aber zum ersten Mal meldet es sich nicht an der Seite an.
Wenn ich wp_redirect(esc_url(home_url()));
benutze die Login-Funktionalität funktioniert gut, aber WP-Admin funktioniert nicht nach der Verwendung von Redirect.