Intereting Posts
WordPress автоматически добавляет «& nbsp;»? Пользовательская конечная точка внезапно не работает после (un) установки плагина Как изменить Wp Зарегистрироваться / Войти URL-адрес на мою персональную страницу Листинг сообщений по датам группировки Моя пользовательская страница настроек администратора не использует пользовательские CSS и JS даже после успешной регистрации и регистрации скриптов Ограничить запись в user_id ошибка разбивки на страницы в таксономии: предупреждение: деление на ноль Добавить пользовательский столбец в пользовательский тип типа сообщений в бэкэнд is_post_type_archive не работает в фиде Помогите с вопросами о «Добавление фильтра таксономии в список администраторов для пользовательского типа сообщений?» Пользовательский тип типа «Тип сообщения» не будет проходить с помощью довольно постоянных ссылок Управляемый событиями шаблон против MVC? Изменение пользователя сообщения путем изменения поля «post_author» в таблице «wp_posts» не вступает в силу. Где хранится реальная информация об авторе? Приостановите страницу с плагином до тех пор, пока все манипуляции с данными не будут завершены Почему цикл не пуст на некоторых 404-х?

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

Недавно я попробовал добавить регистрационную форму для пользователя в конец моего сайта и использовал следующий код формы (основанный на этом, я обнаружил в ответе на вопрос о 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); 

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