• Здравствуйте!
    Я хочу запретить всем пользователям редактировать поля — имя Фамилия.
    Эти поля заполняется во время регистрации.
    Собственно!
    Как запретить редактирование полей Имя — Фамилия в одной функции для всех надстроек? что бы пользователь не мог их изменять. Пожалуйста помогите.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Один из вариантов чтобы запретить редактирование полей «Имя» и «Фамилия» на странице редактирования профиля для всех пользователей, можно использовать фильтр user_profile_update_errors.

    Данный фильтр позволяет добавлять ошибки при обновлении профиля пользователя, что можно использовать для отключения редактирования полей.

    Вот пример кода, который можно добавить в файл functions.php вашей темы:

    function disable_user_profile_fields( $errors, $update, $user ) {
        if ( ! empty( $_POST['first_name'] ) && $_POST['first_name'] !== $user->first_name ) {
            $errors->add( 'first_name_error', __( 'Изменение имени запрещено.', 'text-domain' ) );
        }
        if ( ! empty( $_POST['last_name'] ) && $_POST['last_name'] !== $user->last_name ) {
            $errors->add( 'last_name_error', __( 'Изменение фамилии запрещено.', 'text-domain' ) );
        }
    }
    add_filter( 'user_profile_update_errors', 'disable_user_profile_fields', 10, 3 );

    Другой вариант: вообще можете просто с помощью css скрыть данные поля. visibility: hidden.

    При помощи js так же можно например запретить изменять данные строки.

    В общем можно по разному это сделать.

    Автор rafikovkamil9494

    (@rafikovkamil9494)

    Я поставил в файл functions.php в тему она не работает WOODMART

    function disable_user_profile_fields( $errors, $update, $user ) {
        if ( ! empty( $_POST['first_name'] ) && $_POST['first_name'] !== $user->first_name ) {
            $errors->add( 'first_name_error', __( 'Изменение имени запрещено.', 'text-domain' ) );
        }
        if ( ! empty( $_POST['last_name'] ) && $_POST['last_name'] !== $user->last_name ) {
            $errors->add( 'last_name_error', __( 'Изменение фамилии запрещено.', 'text-domain' ) );
        }
    }
    add_filter( 'user_profile_update_errors', 'disable_user_profile_fields', 10, 3 );
    • Ответ изменён 1 год, 3 месяца назад пользователем rafikovkamil9494.

    Не работает можно попробовать использовать JavaScript для блокировки полей «Имя» и «Фамилия» на странице профиля пользователя. Как пример:

    function disable_user_profile_fields_script() {
        global $pagenow;
        if ( $pagenow === 'profile.php' ) { ?>
            <script>
                jQuery(document).ready(function($) {
                    $('#first_name').attr('disabled', 'disabled');
                    $('#last_name').attr('disabled', 'disabled');
                });
            </script>
        <?php }
    }
    add_action( 'admin_head', 'disable_user_profile_fields_script' );

    Но есть один момент, пользователь может отключит у себя в браузере js, тогда это не работает.

    Автор rafikovkamil9494

    (@rafikovkamil9494)

    Вы не могли бы мне помочь зайти в ВП и сделать) если не сложно)

    буду очень благодарен!!!

    Модератор Yui

    (@fierevere)

    永子

    Вы не могли бы мне помочь зайти в ВП и сделать

    нет не могли, запрещено правилами форума и предлагать тоже запрещено

    Есть форум «Поиск специалистов«.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Запрет редактирования полей ФИО» закрыта для новых ответов.