SemenZ35 27.07.2023 19:17

Как создать пользовательскую страницу в WordPress?

Здравствуйте! Я новичок в WordPress и столкнулся с проблемой создания пользовательской страницы. Мне требуется создать страницу, на которой пользователи смогут редактировать свои профили. Я пытался использовать функцию wp_insert_post, но не могу разобраться, как правильно настроить форму и сохранить данные. Помогите, пожалуйста, разобраться с этим. Вот пример кода, который я написал, но он не работает:

// Подключение шаблона страницы
get_header();

// Проверка, есть ли пользователь
if( is_user_logged_in() ) {
    // Отображение формы редактирования профиля
    echo '<form>';
    echo '<input type="text" name="username" value="' . esc_attr( $current_user->user_login ) . '" />';
    echo '<input type="text" name="email" value="' . esc_attr( $current_user->user_email ) . '" />';
    echo '<input type="submit" value="Сохранить" />';
    echo '</form>';

    // Получение данных из формы и обновление профиля
    if( isset( $_POST['username'] ) && isset( $_POST['email'] ) ) {
        $user_id = get_current_user_id();
        wp_update_user( array(
            'ID' => $user_id,
            'user_login' => sanitize_text_field( $_POST['username'] ),
            'user_email' => sanitize_email( $_POST['email'] )
        ) );
    }
} else {
    // Отображение сообщения о необходимости входа
    echo 'Пожалуйста, войдите в свой аккаунт для доступа к редактированию профиля.';
}

// Подключение подвала
get_footer();
Буду благодарен за любую помощь и подсказки по правильной реализации создания пользовательской страницы в WordPress. Спасибо!

Ответы:

rusakoff38 27.07.2023 19:27
Рекомендую использовать функцию wp_create_nonce для безопасности формы и пройтись по документации WordPress о создании пользовательских страниц для получения правильной реализации.
Egor24Partner 27.07.2023 19:42
Для создания пользовательской страницы в WordPress, на которой пользователи могут редактировать свои профили, ты можешь использовать следующий подход: 1. Добавление шорткода: Создай новый файл в директории темы WordPress (обычно в папке "wp-content/themes/название_темы") и назови его "profile-page.php". В этом файле ты можешь разместить HTML-код формы редактирования профиля. Затем внутри файла functions.php своей темы добавь следующий код:

function profile_page_shortcode() {
    ob_start();

    // Проверка, есть ли пользователь
    if( is_user_logged_in() ) {
        // Отображение формы редактирования профиля
        echo '<form method="POST" action="">';
        echo '<input type="text" name="username" value="' . esc_attr( wp_get_current_user()->user_login ) . '" />';
        echo '<input type="text" name="email" value="' . esc_attr( wp_get_current_user()->user_email ) . '" />';
        echo '<input type="submit" value="Сохранить" />';
        echo '</form>';

        // Получение данных из формы и обновление профиля
        if( isset( $_POST['username'] ) && isset( $_POST['email'] ) ) {
            $user_id = get_current_user_id();
            wp_update_user( array(
                'ID' => $user_id,
                'user_login' => sanitize_text_field( $_POST['username'] ),
                'user_email' => sanitize_email( $_POST['email'] )
            ) );
        }
    } else {
        // Отображение сообщения о необходимости входа
        echo 'Пожалуйста, войдите в свой аккаунт для доступа к редактированию профиля.';
    }

    return ob_get_clean();
}
add_shortcode( 'profile_page', 'profile_page_shortcode' );
2. Добавление шорткода на страницу: Теперь ты можешь создать страницу через админ-панель WordPress и добавить на эту страницу шорткод [profile_page]. Когда пользователь зайдет на эту страницу, он увидит форму для редактирования своего профиля. После сохранения формы профиль будет обновлен. Надеюсь, эта информация поможет тебе создать пользовательскую страницу для редактирования профиля на WordPress. Если у тебя остались вопросы, не стесняйся задавать их. Удачи!

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