Добавление полей в форму регистрации

В предыдущих постах я говорил о том, как добавлять и удалять дополнительные поля без плагинов в пользовательских профилях в 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

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: