Intereting Posts
Частное обновление темы с zip-архивом без деактивации темы Класс, вызываемый в шаблоне, AJAX не регистрируется Ошибка проверки ajax nonce Правильный способ скрыть псевдо-страницы от показа? Как я могу предотвратить публикацию сообщений без заголовка в моем запросе? вставить категорию из формы в сообщение Установка кода Google Analytics на WordPress блоге Как сохранить WP от повторного сжатия изображений Full Size URL-адреса изображений не перенаправляются должным образом Удаленная страница архива по типу публикации сообщений показывает страницу блога Получить URL-адреса для всех размеров изображения через панель администратора проверьте, существует ли заголовок сообщения в пользовательском типе сообщения на странице Как правильно изменить шаблон плагина (view)? Ошибка 404 Категория Noticias CPT, разбиение на страницы Как сделать страницу профиля для каждой публикации пользователя в блоге?

Функция загрузки с помощью login_redirect

Я пытаюсь загрузить сообщение после успешного входа в интерфейс.

У меня есть скрипт, который работает как функция,

function myscript() { ?> <script type="text/javascript"> $( document ).ready(function() { $('<div class="item login">Success! You\'re now signed in.</div>').appendTo('.pop-notice').delay(6000).queue(function() { $(this).remove(); }); }); </script> <?php } 

Который я затем пытаюсь загрузить в нижний колонтитул на login_redirect.

 function my_login_redirect() { add_action( 'wp_footer', 'myscript' ); } add_filter( 'login_redirect', 'my_login_redirect', 10, 3 ); 

Но это просто не работает. Не уверен, какой крючок я действительно должен использовать.

Веб-сайт: http://dev.podcamptoronto.com/. Использование системы входа в систему для социальных сетей, «социальный вход в WordPress». Но он сам использует собственную функцию входа, поэтому я не думаю, что это мешает.

Solutions Collecting From Web of "Функция загрузки с помощью login_redirect"

Могло быть много подходов к этому. Шахта приведена ниже.

  1. Сначала вы храните время, в которое пользователь вошел в систему, чтобы вы могли отобразить успешное всплывающее окно входа для X минут.

     function store_login_time($user_login, $user) { $userID = $user->ID; update_user_meta( $userID, '_login_time_', time() ); } add_action('wp_login', 'store_login_time', 10, 2); 
  2. Затем вы используете этот код для отображения кода на первой странице веб-сайта в течение X минут (1 минута в моем примере) с использованием действия wp_head .

     function myscript() { $to_time = time(); $from_time = get_user_meta( get_current_user_id(), '_login_time_', true ); $diff = round(abs($to_time - $from_time) / 60,2); // This will run till 1 minute after logging in .. // For Seconds use 0.1 to 0.9 if ( is_front_page() && $diff < "1" ){ ?> <script type="text/javascript"> $( document ).ready(function() { $('<div class="item login">Success! You\'re now signed in.</div>').appendTo('.pop-notice').delay(6000).queue(function() { $(this).remove(); }); }); </script> <?php } } add_action('wp_head', 'myscript'); 

Вы можете добавить дополнительные параметры для пользовательских ролей в соответствии с вашими потребностями.

login_redirect – это фильтр, поэтому технически то, что вы делаете, – это злоупотребление крючком, но что более важно, login_redirect запускается до перенаправления, что приводит к загрузке новой страницы. HTTP и PHP в этом контексте являются апатридами, что означает, что код не заполняется через загрузку страницы.

То, что вам нужно сделать, это передать аргумент через URL-адрес …

 function my_login_redirect($redirect) { return esc_url(add_query_arg('lgn',true,$request)); } add_filter('login_redirect','my_login_redirect',10); 

Затем используйте эту переменную для запуска вашего сообщения через PHP напрямую или с помощью JavaSAcript.