В предыдущих постах я говорил о том, как добавлять и удалять дополнительные поля без плагинов в пользовательских профилях в WordPress.
Остался последний этап — засунуть все эти поля в регистрацию, да и ещё и с валидацией. Приступим:
<?php add_action('register_form','show_fields'); add_action('register_post','check_fields',10,3); add_action('user_register', 'register_fields'); function show_fields() { /* добавляем поля "Город" и "Номер сотового" в форму регистрации в WordPress */ ?> <p> <label>Город<br/> <input id="city" class="input" type="text" value="<?php echo $_POST['city']; ?>" name="city" /></label> </p> <p> <label>Номер сотового<br/> <input id="mobile" class="input" type="text" value="<?php echo $_POST['mobile']; ?>" name="mobile" /></label> </p> <?php } function check_fields ( $login, $email, $errors ) { /* * Функция проверки полей, в этом примере только смотрит, чтобы они не оставались пустыми, * но можно задать и свои условия, * например запретить пользователям регистрироваться под одним и тем же номером телефона */ global $city, $mobile; if ($_POST['city'] == ''){ $errors->add( 'empty_realname', "ОШИБКА: Город?" ); } else { $city = $_POST['city']; } if ($_POST['mobile'] == ''){ $errors->add( 'empty_realname', "ОШИБКА: Номер телефона?" ); } else { $mobile = $_POST['mobile']; } return $errors; } function register_fields($user_id,$password= "",$meta=array()){ update_user_meta( $user_id, 'city', $_POST['city'] ); update_user_meta( $user_id, 'mobile', $_POST['mobile'] ); } |
В этом примере рассмотрены только текстовые поля, но аналогичным образом можно добавить выпадающие списки, радио-кнопки и чекбоксы.
Если всё же возникнут с этим трудности, я напишу решение в комментах.
Источник: misha.blog