Автологин после регистрации
Прошу помощи с настройкой автологина и редиректом пользователя на разные страницы после регистрации.
- Для регистрации "закидываю" массив $userdata_for_registration через wp_insert_user().
- В зависимости от того, пустые переменные $maraphon_next_month или $maraphon_after_month хочу перенаправлять пользователя на разные страницы через wp_redirect, при этом пользователь должен автоматически залогинится в обоих случаях
- В functions.php создал 2 action с разными адресами для редиректа после регистрации.
Не работает... срабатывает только первое условие и первый action - всегда ведет на ../lk
Куки чистил, браузеры менял, переменные проверял
function complete_registration() {
global $wpdb, $reg_errors, $password, $email, $telephone, $first_name, $maraphon_next_month, $maraphon_after_month;
if ( count($reg_errors->get_error_messages()) < 1 ) {
$userdata_for_registration = array(
'user_login' => $email,
'user_email' => $email,
'user_pass' => $password,
'telephone' => $telephone,
'first_name' => $first_name,
);
$user = wp_insert_user( $userdata_for_registration );
//переадресация после регистрации с учетом выбранных услуг
if( !empty($maraphon_next_month) || !empty($maraphon_after_month)) {
do_action( 'user_register', 'auto_login_new_user' );
} else {
do_action( 'hello_user_register', 'hello_auto_login_new_user' );
};
}
}
Если переписать условие вот так, то все редиректится прекрасно (без автологина естественно).
//переадресация после регистрации с учетом выбранных услуг
if( !empty($maraphon_next_month) || !empty($maraphon_after_month)) {
header('Location: http://maraphone.ru/lk/');
} else {
header('Location: http://maraphone.ru/hello/');
};
Код из functions.php
function auto_login_new_user( $user_id ) {
wp_set_current_user($user_id);
wp_set_auth_cookie($user_id);
wp_redirect( 'http://maraphone.ru/lk' );
exit;
}
add_action( 'user_register', 'auto_login_new_user' );
function hello_auto_login_new_user( $user_id ) {
wp_set_current_user($user_id);
wp_set_auth_cookie($user_id);
wp_redirect( 'http://maraphone.ru/hello' );
exit;
}
add_action( 'hello_user_register', 'hello_auto_login_new_user' );
Помогите разобраться с этой магией
Ну так если тебе понятно где проблема, то и переделай тут, что бы проверить посмотри как работают эти проверки.
Разберись почему у тебя там всегда пусто.
А еще наверное нада это:
А так пробывал?
wp_set_current_user($user_id); wp_set_auth_cookie($user_id); header('Location: http://maraphone.ru/lk/');