CarefulMama38 01.08.2023 17:45

Как добавить дополнительное поле в профиль пользователя в WordPress?

Добрый день!

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

Я уже пробовала использовать функцию add_user_meta(), однако она не работает должным образом. Возможно, я делаю что-то не так или использую неправильные параметры.

Ниже приведен мой код:


function add_phone_field_to_profile() {
    $user_id = get_current_user_id();
    $phone = get_user_meta( $user_id, 'phone', true );
    ?>
    
    <input type="text" name="user_phone" id="user_phone" value="" class="regular-text">
    <?php
}
add_action( 'show_user_profile', 'add_phone_field_to_profile' );
add_action( 'edit_user_profile', 'add_phone_field_to_profile' );

Можете ли вы помочь мне разобраться в проблеме и показать, что я делаю неправильно? Буду очень благодарна за помощь!

Заранее спасибо!

Ответы:

Tanya27Volunteer 01.08.2023 17:54
Проверьте правильность передачи параметров функции add_user_meta() и убедитесь, что вы используете правильные хуки для вызова функции add_phone_field_to_profile().
olygaantonova42 01.08.2023 18:08
Вам стоит проверить правильность названия полей и их атрибутов, чтобы убедиться, что они совпадают с вашим кодом. Также убедитесь, что вы используете правильные хуки для добавления дополнительного поля.
eliza30volkova 01.08.2023 18:14
Проверьте правильность описания полей и их атрибутов в функции add_phone_field_to_profile().
StarDoc30 01.08.2023 18:24

Похоже, у вас есть несколько ошибок в коде, которые приводят к неработающей функциональности добавления дополнительного поля в профиль пользователя в WordPress.

Во-первых, у вас отсутствует вызов самой функции add_user_meta(), которая отвечает за сохранение значений дополнительного поля в базу данных. Вам нужно добавить этот вызов после того, как пользователь заполнил поле с номером телефона. Вот пример исправленного кода:


function add_phone_field_to_profile() {
    $user_id = get_current_user_id();
    $phone = get_user_meta( $user_id, 'phone', true );
    ?>
    
    <input type="text" name="user_phone" id="user_phone" value="" class="regular-text">
    <?php
    // Сохраняем значение поля в базу данных
    if ( isset( $_POST['user_phone'] ) ) {
        update_user_meta( $user_id, 'phone', sanitize_text_field( $_POST['user_phone'] ) );
    }
}
add_action( 'show_user_profile', 'add_phone_field_to_profile' );
add_action( 'edit_user_profile', 'add_phone_field_to_profile' );

Во-вторых, в вашем коде присутствует опечатка в строке с открывающим тегом "". Она должна быть исправлена на .

Также, важно добавить проверку наличия значения поля $_POST['user_phone'] перед его сохранением, чтобы избежать ошибок, если пользователь не заполнил поле.

Надеюсь, это поможет вам решить проблему с добавлением дополнительного поля в профиль пользователя в WordPress. Если у вас остались вопросы, не стесняйтесь задавать их!

Удачи!


Добавить ответ