Intereting Posts
Могу ли я иметь другое меню для каждой родительской страницы? a: 0: {} заменяется на базу данных как s: 6: "a: 0: {}"; Контроль версий с командой разработчиков Как отображать информацию о внешней базе данных на моем сайте WordPress? Скрытие пользовательского типа сообщений из Google? Запретить wp_insert_user создавать дубликаты пользователей Закажите WP_Query несколькими полями, вычитая их друг от друга Как я могу это сделать? Изображение с водяным значком, как только оно будет установлено на странице редактирования после публикации Как гиперссылка содержимого с страницы архива с пользовательским пост-типом Вызов внешнего объекта в функции класса во время обратного вызова Альтернатива виджета «Страницы» для пользовательских типов сообщений? Передача файла вместо страницы wordpress Получать случайные пользовательские сообщения из настраиваемого типа сообщений Как создать перенаправление в файле .htaccess с двумя исключениями

Функция загрузки с помощью 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.