Задать вопрос
Ответы пользователя по тегу WordPress
  • Как создать доп. поле в профиле пользователя с возможностью обновление а не замены данных в нем?

    xbreaker
    @xbreaker
    Создаете свое поле и вешаете его на хуки, например, функцией my_mega_field
    add_action( 'show_user_profile', 'my_mega_field' );
    add_action( 'edit_user_profile', 'my_mega_field' );
    
    function my_mega_field( $user )
    {
        ?>
            <table class="form-table">
                <tr>
                    <th><label for="mego_pole">Mego Pole</label></th>
                    <td><input type="text" name="mego_pole" value="<?php echo esc_attr(get_the_author_meta( 'mego_pole', $user->ID )); ?>" class="regular-text" /></td>
                </tr>
            </table>
        <?php
    }


    После этого создаете таблицу в БД, где будете хранить историю, а в функции сохранения значения своих полей добавляете запись в эту таблицу предыдущего значения (save_pole) и опять вешаете хуки, но уже на сохранение профиля:
    add_action( 'personal_options_update', 'my_mega_save_function_with_history' );
    add_action( 'edit_user_profile_update', 'my_mega_save_function_with_history' );
    
    function my_mega_save_function_with_history( $user_id )
    {
      save_old_pole( get_the_author_meta( 'mego_pole', $user->ID ) );
      update_user_meta( $user_id,'mego_pole', sanitize_text_field( $_POST['mego_pole'] ) );
    }
    Ответ написан
    Комментировать