Intereting Posts
Как добавить пользовательский термин в сообщение типа персонализированного сообщения? Наличие проблемы со следующими и предыдущими ссылками Как изменить заголовок сообщения WordPress? Возможности и сопоставление, необходимые для того, чтобы роль могла редактировать записи других пользователей настраиваемого типа, но только иметь возможность редактировать собственные записи в блоге Можно ли использовать один пул для множественных таксономий? Добавление похожих статей для публикации минимальное требование для добавления сообщений через базу данных Записи запроса по имени таксономии Быстрое редактирование: выбранная пользовательская таксономия не обновляется после сохранения Установите стандартное изображение по умолчанию для условий пользовательской таксономии Измените путь к файлу на get_template_part через плагин каковы условия WP_DEBUG? Функция wp_update_post работает с существующими сообщениями, но не с новыми сообщениями Установка WordPress в подпапку, не работающая с nginx Темы для WordPress для детей

Многоступенчатая регистрация WordPress: в 4 шага как?

Я видел на нескольких сайтах WordPress регистрацию, что процесс регистрации занимает 3 или 4 шага.

как я могу реализовать такой процесс для своей темы? то есть:

  1. выберите свою роль + заполните регистрационную форму —-> если ее ok submit, перейдите к шагу 2
  2. Детали профиля: user pic, some usermeta form —- <if ok ok submit then go step 3
  3. Предварительный профиль перед подтверждением — <перейти к шагу 4 или вернуться к шагу 3 для внесения изменений.
  4. полная регистрация успеха

ОБНОВИТЬ

Привет, ребята, я это немного вычислил (я использую тему jobroller, у которой есть обычная одношаговая регистрационная форма, но она имеет несколько этапов для подачи списка заданий). то, что я хотел, – это использовать те же самые (формы заявки на многоступенчатые формы) для регистрационной формы, чтобы пользователи были обязаны заполнять детали профиля или что-то в этом процессе. постановка на учет. поэтому я взломал оригинальную регистрацию темы jobroller (включая / theme-login.php), и вот что он дает.

тема-login.php

вот шаги регистрации функции, которые заменяют исходную jr_register_form()

 function jr_registration_steps() { // Show registration steps forms ### Prevent Caching nocache_headers(); jr_load_form_scripts(); //global $post, $posted; global $posted; $submitID = $post->ID; $posted = array(); $errors = new WP_Error(); if (!is_user_logged_in()) : $step = 1; else : $step = 2; if (!current_user_can('can_submit_job')) : //can_submit_listing redirect to my listing redirect_myjobs(); endif; endif; if (isset($_POST['register']) && $_POST['register']) { $result = jr_process_register_form( get_permalink($submitID) ); $errors = $result['errors']; $posted = $result['posted']; //} //elseif (isset($_POST['login']) && $_POST['login']) { //$errors = jr_process_login_form(); } elseif (isset($_POST['job_submit']) && $_POST['job_submit']) { $result = jr_process_submit_job_form();//jr_process_submit_user_registration_form $errors = $result['errors']; $posted = $result['posted']; if ($errors && sizeof($errors)>0 && $errors->get_error_code()) $step = 2; else $step = 3; } elseif (isset($_POST['preview_submit']) && $_POST['preview_submit']) { $step = 4; $posted = json_decode($_POST['posted']); } elseif (isset($_POST['confirm']) && $_POST['confirm']) { $step = 4; jr_process_confirm_job_form();//jr_process_confirm_user_registration_form } elseif (isset($_POST['goback']) && $_POST['goback']) { $posted = json_decode(stripslashes($_POST['posted']), true); } if( isset($_GET['checkemail']) && 'newpass' == $_GET['checkemail'] ) $message = __('Thank you for registering! An email has been sent to you containing your password.','appthemes'); get_template_part('header'); ?> <div class="section"> <div class="section_content"> <h1><?php _e('create an Account', 'appthemes'); ?></h1> <?php echo '<ol class="steps">'; for ($i = 1; $i <= 4; $i++) : echo '<li class="'; if ($step==$i) echo 'current '; if (($step-1)==$i) echo 'previous '; if ($i<$step) echo 'done'; echo '"><span class="'; if ($i==1) echo 'first'; if ($i==4) echo 'last'; echo '">'; switch ($i) : case 1 : _e('Create account', 'appthemes'); break; case 2 : _e('Enter Profile Details', 'appthemes'); break; case 3 : _e('Preview/Profile Options', 'appthemes'); break; case 4 : _e('Confirm', 'appthemes'); break; endswitch; echo '</span></li>'; endfor; echo '</ol><div class="clear"></div>'; // show the success message usually because a password has been emailed to new user if (isset($message) && !empty($message)) echo '<p class="success">'.$message.'</p>'; jr_show_errors( $errors ); switch ($step) : case 1 : jr_before_step_one(); // do_action hook ?> <p><?php _e('You must login or create an account in order to post a job &mdash; this will enable you to view, remove, or relist your listing in the future.', 'appthemes'); ?></p> <div class="col-1"> <?php jr_register_form( get_permalink($submitID), 'job_lister' ); ?> <!-- change job_lister to new role---> </div> <div class="col-2"> <?php jr_login_form( get_permalink($submitID), get_permalink($submitID) ); ?> <!-- delete---> </div> <div class="clear"></div> <?php jr_after_step_one(); // do_action hook break; case 2 : jr_before_step_two(); // do_action hook jr_submit_job_form(); //*****jr_submit_user_registration_form(); jr_after_step_two(); // do_action hook break; case 3 : jr_before_step_three(); // do_action hook jr_preview_job_form(); //*****jr_preview_user_registration_form(); jr_after_step_three(); // do_action hook break; case 4 : jr_before_step_four(); // do_action hook jr_confirm_job_form(); //*****jr_confirm_user_registration_form(); jr_after_step_four(); // do_action hook break; endswitch; ?> </div><!-- end section_content --> </div><!-- end section --> <div class="clear"></div> 

  <?php if (get_option('jr_show_sidebar')!=='no') get_sidebar('submit'); ?> <?php get_template_part('footer'); } 

здесь то, что у меня есть, включает / forms / register / register-process.php

Регистр-process.php

обратите внимание, что я изменил это внизу:

// redirect wp_redirect($success_redirect); wp_redirect($success_redirect);// redirect user to dashbord when registred exit();

к этому коду:

 $redirect_to = !empty( $_POST['redirect_to'] ) ? $_POST['redirect_to'] : '?action=register&step=2'; wp_safe_redirect( $redirect_to ); exit; 

чтобы добавить &step=2 в url, я думаю, вы можете добавить аналогичный код в другую форму для перенаправления и показать правильный шаг в URL после? action = register

я еще не закончил взломать код, чтобы он соответствовал моим потребностям, но то, что я предложил, – это начало, а другие могут помочь изменить или представить лучше.

надеюсь, это поможет вам 🙂