Как создать новые поля ACF (Advanced Custom Fields) для пользователя в личном кабинете (ЛК)?

Как можно реализовать вывод полей ACF в режиме редактирования на кастомной странице пользователя, аналогично интерфейсу админки WP, в его Личном Кабинете?
  • 27 октября 2023 г. 20:08
Ответы на вопрос 1
1. Чтобы создать новые поля ACF для пользователя в личном кабинете, вам понадобится использовать хуки и фильтры WordPress.

2. В функции `functions.php` вашей темы или плагина добавьте следующий код:

```php
// Добавление полей ACF в профиль пользователя
add_action( 'show_user_profile', 'my_acf_user_profile_fields' );
add_action( 'edit_user_profile', 'my_acf_user_profile_fields' );

function my_acf_user_profile_fields( $user ) {
    // Получение значений полей ACF
    $field_value = get_field( 'field_name', 'user_' . $user->ID );
    ?>
    <h3><?php esc_html_e( 'Custom Fields', 'textdomain' ); ?></h3>
    <table class="form-table">
        <tr>
            <th><label for="field_name"><?php esc_html_e( 'Field Name', 'textdomain' ); ?></label></th>
            <td>
                <input type="text" name="field_name" id="field_name" value="<?php echo esc_attr( $field_value ); ?>" class="regular-text" />
                <p class="description"><?php esc_html_e( 'Description for this field.', 'textdomain' ); ?></p>
            </td>
        </tr>
        <!-- Добавьте дополнительные поля ACF здесь -->
    </table>
    <?php
}

// Сохранение значений полей ACF пользователя
add_action( 'personal_options_update', 'my_acf_user_profile_fields_save' );
add_action( 'edit_user_profile_update', 'my_acf_user_profile_fields_save' );

function my_acf_user_profile_fields_save( $user_id ) {
    // Сохранение значения поля ACF
    update_field( 'field_name', $_POST['field_name'], 'user_' . $user_id );
    // Сохраните значения для других полей ACF здесь
}
```

3. Замените `'field_name'` на реальное имя поля ACF, которое вы хотите добавить.

4. Теперь поля ACF будут отображаться на странице редактирования профиля пользователя в разделе "Custom Fields".

Обратите внимание, что для корректной работы кода вам потребуется установить и настроить плагин Advanced Custom Fields.
Похожие вопросы