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

11 дек. 2012 г., 20:57:29
Просмотры: 18.5K
Голосов: 0

Как я могу добавить поле в форму регистрации WordPress? Например, я хочу добавить поле "Имя" из профиля пользователей в форму регистрации, но не могу понять, как это сделать.

Название поля - first_name, но добавление <input type="text" name="first_name" id="first_name" value="<?php echo $_POST['first_name']; ?>" required="required" placeholder="<?php _e('Имя'); ?>" /> по какой-то причине не работает. Форма отправляется нормально, но поле "Имя" не заполняется в профиле в админке.

Я редактирую этот плагин для настройки формы регистрации: http://wordpress.org/extend/plugins/s8-custom-login-and-registration/

0
Все ответы на вопрос 2
5

Я не знаю, какой именно плагин вы используете, но способ добавления пользовательских полей в форму регистрации и сохранения их в профиле пользователя заключается в использовании хука register_form для вывода поля, а затем соответствующего фильтра/действия для обновления/сохранения профиля пользователя.

В вашем случае, например:

<?php
// вывод поля формы
add_action('register_form', 'ad_register_fields');
function ad_register_fields() {
?>
    <p>
        <label for="firstname"><?php _e('Имя') ?><br />
        <input type="firstname" name="firstname" id="firstname" class="input" value="<?php echo esc_attr($_POST['firstname']); ?>" size="25" tabindex="20" />
        </label>
    </p>
<?php
}

// сохранение нового имени
add_filter('pre_user_first_name', 'ad_user_firstname');
function ad_user_firstname($firstname) {
    if (isset($_POST['firstname'])) {
        $firstname = $_POST['firstname'];
    }
    return $firstname;
}
?>
11 дек. 2012 г. 22:58:14
Комментарии

Таким образом, это добавит поле к стандартной форме регистрации WordPress, верно?

JacobTheDev JacobTheDev
13 дек. 2012 г. 23:24:35

Да, это верно.

Ahmad M Ahmad M
14 дек. 2012 г. 10:37:32

@Ahmad M Есть ли способ добавить валидацию для этих дополнительных полей?

Vasanthan.R.P Vasanthan.R.P
6 апр. 2013 г. 08:08:09

Кто-нибудь знает, как добавить поле перед именем пользователя/email? Все добавляется после этих двух...

trainoasis trainoasis
9 авг. 2016 г. 11:26:12

Решение @Ahmad M отлично работает сегодня, но я пытаюсь добавить billing_phone (woocommerce) и не могу найти способ сохранить эти данные в профиле... Я также хотел бы сделать эти поля обязательными, и, если возможно, убрать "имя пользователя" и генерировать его автоматически из имени и фамилии

Leo Danos Leo Danos
25 янв. 2023 г. 21:53:55
0

Я нашел отличный бесплатный плагин, который отлично справляется с задачей.

http://wordpress.org/extend/plugins/user-registration-aide/

Очень прост в использовании, добавляет поля как на страницу регистрации, так и на страницу профиля.

14 дек. 2012 г. 18:13:46