Вопрос: Как мне создать определенную страницу входа для конкретного пользователя?

Интересно, как я могу создать две отдельные страницы входа для двух конкретных пользователей?

Скажем, например: у меня два пользователя на моем сайте. Admin и Viewer.

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

Надеюсь, вы поможете мне с этим вопросом. Спасибо!

<

Ответы и комментарии:

Вы просто хотите их найти / оформить или вы хотите, чтобы учетные записи не могли войти в систему вместе с «неправильной» формой?
Создан 14-10-2016 08:41 Rarst

ах нет Я хочу создать две формы входа. один для пользователей-администраторов и один для пользователей-зрителей
Создан 17-10-2016 07:55 Sayroose

Привет, Энди, как я могу указать логин, чтобы ограничить только роль зрителя, пользователи могут войти в систему, используя форму? Я сделаю две формы входа. для администраторов и для зрителей. Спасибо
Создан 17-10-2016 05:35 Sayroose

Привет Кристиан, я только что попробовал плагин, который вы сказали. создал форму входа, используя шорткод. администратор все еще может войти, используя форму. Я хочу иметь форму только для пользователей зрителей. я не вижу никаких настроек для плагина.
Создан 17-10-2016 05:48 Sayroose

По теме ответ:
Вы можете просто поставить <? Php wp_login_form (); ?> в любой из ваших шаблонов тем, чтобы отобразить форму входа в систему на вашем сайте.
Или создайте свой собственный короткий код [loginform], поместив его в functions.php вашей темы:
function wpse_242473_login_form () {
    return wp_login_form ('echo' => false);
}

add_shortcode ('loginform', 'wpse_242473_login_form');
Создан 14-10-2016 11:58

Существует функция wp_login_form ([/ * массив аргументов * /]), которая отображает форму входа в систему, которую вы можете вставить в каждый шаблон. Когда вы посмотрите на внутренности, вы увидите, что действие формы указывает на:
esc_url (site_url ('wp-login.php', 'login_post'))

… (По крайней мере, если вы не использовали аргумент $ args ['redirect']). Это означает, что wp-login.php обрабатывает вход. Теперь у вас есть несколько вариантов:

Вы можете использовать аргументы для функции или глобально установить фильтр login_form_defaults, который позволяет вам изменять значения по умолчанию, например, redirect, который по умолчанию указывает на текущий сайт:
(is_ssl ()? 'https: //': 'http: //'). $ _SERVER ['HTTP_HOST']. $ _SERVER [ 'REQUEST_URI'],

Затем вы можете использовать фильтр для перенаправления на основе роли (или выполнить выход из системы, если вошедшая в систему роль пользователя не соответствует роли, для которой вы хотите разрешить вход из этого шаблона):
 apply_filters ('login_redirect', $ redirect_to, $ required_redirect_to, $ user);

Вы отказываетесь от этой идеи, поскольку не можете определить разницу между администратором и гостем, поскольку вы не знаете роль пользователя до того, как он вошел в систему.
Создан 18-10-2016 07:26 kaiser♦42.9k13113202

Для пользовательской формы пользовательского регистра вы можете использовать Расширенные пользовательские поля для создания внешней формы.
Вы можете настроить пользовательские поля для регистрации, используя ACF, и установить правила расположения для группы полей, когда пользовательская форма равна «Регистрация» и «Добавить / редактировать».
Я сделал нечто подобное, подключившись к фильтру acf / pre_save_post и выполнив следующее:

дезинфицировать входы
зарегистрируйте пользователя с помощью register_new_user (), который обрабатывает генерацию пароля и уведомление по электронной почте
используйте wp_update_user () и update_user_meta () для сопоставления соответствующих настраиваемых полей ACF с настраиваемыми полями профиля пользователя WP
установить роль нового пользователя
используйте wp_mail () для отправки электронной почты администратору, если требуется

Еще немного информации о регистрации пользователя в ACF здесь.
function my_pre_save_user ($ post_id) {

    // Если у нас есть адрес электронной почты, добавьте пользователя
    // Это поле существует только в новой группе полей пользователя
   if (isset ($ _ POST ['acf'] ['добавить acf_field_ID здесь']) &&! empty ($ _ POST ['acf'] ['добавить acf_field_ID здесь'])) {

        // дезинфицировать наши входы
        $ sanitized_email = sanitize_email ($ _POST ['acf'] ['добавить acf_field_ID здесь']);
        $ sanitized_firstname = sanitize_text_field ($ _POST ['acf'] ['добавить acf_field_ID здесь']);
        $ sanitized_lastname = sanitize_text_field ($ _POST ['acf'] ['добавить acf_field_ID здесь']);
        $ sanitized_contactnumber = sanitize_text_field ($ _POST ['acf'] ['добавить acf_field_ID здесь']);

        // Подготовить основную информацию о пользователе
        $ username = $ sanitized_email;
        $ email = $ sanitized_email;
        $ display_name = $ sanitized_firstname. ' ». $ Sanitized_lastname;

         // Зарегистрировать пользователя и сохранить идентификатор как $ user_id, обрабатывать проверку, генерировать случайный пароль и отправлять пользователю уведомление по электронной почте
        $ user_id = register_new_user ($ username, $ email);

        // Если мы получим ошибку (например, пользователь уже существует)
        if (is_wp_error ($ user_id)) {
            // Показать ошибку
            echo 'Ошибка:'. $ user_id-> get_error_message ();
            // Выход
            выход;

        // Хорошо пойти
        } еще {

            // получаем одно значение из почтового объекта
            $ dmc_get_company_field = $ _POST ['acf'] ['добавить acf_field_ID здесь'];
            $ dmc_selected_exhibitor = get_field ($ dmc_get_company_field);

            // Обновление информации о новом пользователе
            wp_update_user (массив (
                'ID' => $ user_id,
                'first_name' => $ sanitized_firstname,
                'last_name' => $ sanitized_lastname,
                'display_name' => $ display_name
            ));

            // обновляем мета новых пользователей
            update_user_meta ($ user_id, 'dmc_exhibitor_company_name', $ dmc_get_company_field);
            update_user_meta ($ user_id, 'dmc_exhibitor_contact_number', $ sanitized_contactnumber);

            // обновить роль пользователя
            $ user_id_role = новый WP_User ($ user_id);
            $ user_id_role-> set_role ('contributor');
            $ profile_link = get_edit_user_link ($ user_id);

            $ to = "[добавить адреса электронной почты здесь]";
            $ headers [] = 'MIME-Version: 1.0';
            $ headers [] = 'Content-Type: text / html; кодировка = UTF-8' ;
            $ headers [] = 'Reply-To:'. $ Имя пользователя. '<'. $ email. '>';

            $ subject = "[добавить тему письма здесь]";
            $ body = "[добавить тело письма здесь]";

            // отправить письмо
            wp_mail ($ to, $ subject, $ body, $ headers);

            // перенаправить на страницу благодарности
            $ redirect_url = get_bloginfo ('url'). '[добавить URL для перенаправления сюда]';
            wp_redirect ($ redirect_url);

            // выход из этого скрипта
            выход;

        }

    } еще {
        return $ post_id;
    }

}
add_filter ('acf / pre_save_post', 'my_pre_save_user');
Создан 19-10-2016 01:37 davemac567619

Если вы пытаетесь создать отдельную форму входа на странице, отличной от формы для администраторов, вы можете легко использовать плагин. Есть несколько, бесплатно или премиум.
Я перечислю «Пользовательскую регистрационную форму для входа в веб-интерфейс», как я уже работал с ней в прошлом. Вы можете связаться с ним в WordPress Repository.

Он сгенерирует шорткод, который вы можете использовать на пользовательской странице только для ваших пользователей. Плагин также поставляется с регистрационным шорткодом, что облегчит жизнь вашему посетителю.
Надеюсь, что это ответ на ваш вопрос.
Создан 14-10-2016 08:24 Cristian Stan405