Как установить задержку на стороне клиента перед перенаправлением?

После регистрации пользователя и нажатия кнопки регистрации на экране появится сообщение, подтверждающее электронную почту на той же странице, но страница сразу же перенаправляется, и у пользователя не хватает времени для просмотра сообщения. Я хочу установить задержку (например, 5 секунд) перед действием перенаправления, и после этого будет выполнено действие перенаправления.

    if ( is_wp_error($user_id) ){
throw new Exception($user_id->get_error_message() , 401);
}

$data     = get_userdata( $user_id );
$userdata = QA_Member::convert($data);
// generate new nonces
$msg = ae_get_option( 'user_confirm' ) ? __('You have registered an account successfully but are not able to join the discussions yet. Please confirm your email address first.', ET_DOMAIN) : __('You are registered and logged in successfully.', ET_DOMAIN) ;
$response = array(
'success'       => true,
'code'          => 200,
'msg'           => $msg,
'data'          => $userdata,
'redirect'      => apply_filters( 'qa_filter_redirect_link_after_register', home_url() )
);

} catch (Exception $e) {
$response = array(
'success' => false,
'code'    => $e->getCode(),
'msg'     => $e->getMessage()
);
}
wp_send_json( $response );
}

0

Решение

Лучший способ сделать это — реализовать перенаправление в JS, а не в PHP. Например, вы можете поставить этот код JS для вашего обратного вызова ajax:

window.setTimeout( function(){
window.location = "PATH_TO_REDIRECT";
}, 100 );
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector