Intereting Posts
Добавление внешнего поля в мою почтовую форму (админ-часть) и публикацию (frontend side) Показать сообщение Автор Ссылка выше цикла Показать все сообщения всех категорий, но исключая категорию на пользовательской странице блога с разбивкой на страницы моей темы Должны ли мы использовать плагины, которые недоступны на официальном сайте WordPress? 404 Страница не отображается Почему мой автономный сайт разработки и онлайн-сайт ведут себя по-другому? Отправляет электронную почту администратору Как отключить определенное меню на странице администратора администратора Как показать файл .swf? Проблема создания пользовательской функции санитизации для раскрывающегося списка пользователей Оптимизация сайта WordPress Ссылка «Читать дальше» не отображается, когда длина сообщения находится под длиной выдержки Где реализовать пользовательский класс walker? Примечание: Неопределенное свойство: wpdb :: $ current_post Что может быть неправильным? Пользовательский запрос по полю автора и мета

Форма создания конечного пользователя! Как сохранить пользователя на одной странице в случае ошибки?

Недавно я попробовал добавить регистрационную форму для пользователя в конец моего сайта и использовал следующий код формы (основанный на этом, я обнаружил в ответе на вопрос о Front-End Register Form ) в файле шаблона:

<div id="tab2_login" class="tab_content_login" > <h3>Add a child</h3> <form method="post" action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" class="wp-user-form"> <div class="username"> <label for="user_login"><?php _e('Child Name'); ?>: </label> <input type="text" name="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" id="user_login" /> </div> <div class="email"> <input type="text" name="user_email" value="<?php echo esc_attr(stripslashes($user_email)); ?>" size="25" id="user_email" /> </div> <div class="login_fields"> <?php do_action('register_form'); ?> <input type="submit" name="user-submit" value="add child" class="user-submit" /> <?php $register = $_GET['register']; if($register == true) { //now add it to the link database echo '<p>User Added!</p>'; } ?> <input type="hidden" name="redirect_to" value="<?php echo $_SERVER['REQUEST_URI']; ?>?register=true" /> <input type="hidden" name="user-cookie" value="1" /> </div> </form> </div> 

Атрибут redirect_to устанавливается здесь на запрашивающую страницу, которая отлично работает, когда работает, заставляя блок if отображать дополнительное сообщение об успешном завершении.

Вопрос, который у меня возникает, – это когда обнаружена ошибка в wp-login.php (например, имя пользователя уже используется), как мне получить перенаправление, чтобы вернуться на эту страницу, в отличие от созданного логина / ошибки входа в wp-login отобразить? Я не вижу никакого очевидного крюка, чтобы схватить (хотя я еще никогда не использовал действия, так что может быть что-то упущено!)

Помощь и руководство очень ценятся!

Райан

Solutions Collecting From Web of "Форма создания конечного пользователя! Как сохранить пользователя на одной странице в случае ошибки?"

Присоединитесь к register_errors (WP Codex является крайне неполным, но см. Ссылки ниже).

Извините, это не более полезно – проблема немного сложнее, чем кажется с самого начала. Я расскажу об этом позже.

Ссылки:

Если я правильно вас понимаю, вам нужно проверить, зарегистрировано ли имя пользователя, и если да, перенаправитесь обратно в регистрационную форму? или что-то.

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

 function you_must_login() { global $post; if ( !is_single() ) // if not currently on a single post (can use any other conditional here of your choice) return; $post_ids = array( 188, 185, 171 ); // array of post IDs that force users to login before reading if ( in_array( (int) $post->ID, $post_ids ) && !is_user_logged_in() ) { auth_redirect(); // redirect to previous page after logging in } } 

Возможно, это может пригодиться вам. Я уверен, что вам, возможно, придется использовать auth_redirect.

Это перенаправляет ошибки на домашнюю страницу. Вставить функции functions.php

 // block wordpress default login if error for extra security function prevent_login_access() { if (strpos(strtolower($_SERVER['REQUEST_URI']), '/wp-login') !== false) { wp_redirect( home_url() ); } } add_action('init', 'prevent_login_access', 0); 

На той же странице я не знаю, извините, но с этим вы можете перенаправить ее на страницу пользовательских ошибок или что-то еще.