Отправлять уведомление при использовании формы, защищенной паролем - wordpress

Я хочу настроить новое уведомление для администратора сайта (или один конкретный адрес электронной почты), когда пользователь во внешнем интерфейсе заполняет защищенную паролем форму Wordpress Core.

Я добавил поля в эту форму с помощью фильтра the_password_form.

Вот мой код для формы настраиваемого пароля:

add_filter( 'the_password_form', 'custom_password_form' );
function custom_password_form() {
    global $post;
    $o = '<form action="' . esc_url( site_url( 'wp-login.php?action=postpass', 'login_post' ) ) . '" method="post" class="password-form">
    <label for="Name">' . __( "Name:" ) . ' </label><input name="post_Name" type="text" placeholder="Name" required />
    <label for="Email">' . __( "Email:" ) . ' </label><input name="post_Email" type="email" size="20" placeholder="Email" required />
    <label for="password">' . __( "Password:" ) . ' </label><input name="post_password" id="password" type="password" size="20" placeholder="Password" required/>
    <input type="submit" name="post_Submit" value="' . esc_attr__( "Submit" ) . '" />
    </form>
    ';
    return $o;
}

Я считаю, что мне нужно создать действие, чтобы $ _GET содержимое входных данных формы, а затем настроить новое уведомление для отправки электронного письма, которое включает содержимое входных данных для имени и электронной почты (а не пароль).

Есть ли у кого-нибудь советы, как этого добиться?

Суммируя: Создайте действие, которое при отправке формы пароля получает содержимое входных данных в форме, настраивает уведомление и затем отправляет это уведомление на указанный адрес электронной почты, содержащий содержимое этих полей ввода.

Спасибо!

1
0
366
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте эту функцию.

add_filter( 'init', 'email_custom_password_form' );

function email_custom_password_form() {
    if($_REQUEST['action']=="postpass")
    {
        $to = get_option( 'admin_email' );
        $subject = 'Password Protection Form Notification';
        $headers = "MIME-Version: 1.0\r\n"; 
        $headers.= "Content-type: text/html; charset=iso-8859-1\r\n"; 
        $headers.= "From:<" . $to . ">\r\n";

        $message = 'Name: '.$_REQUEST['post_Name'].'<br>';
        $message.= 'Email: '.$_REQUEST['post_Email'].'<br>';

        wp_mail( $to, $subject, $message, $headers);
    }
}

Нет ли встроенного фильтра, который обрабатывает отправку формы, защищенной паролем?

pendo 10.08.2018 17:42

Думаю, есть add_action ('wp_login', 'do_anything'); но может быть не то, что вы ищете

Dammeul 10.08.2018 17:51

Для этого нет отдельного крючка - я так думаю.

Outsource WordPress 10.08.2018 18:06

Вау ... это потрясающе и такое маленькое количество кода. Спасибо. Я пытался использовать плагин и настраиваемый код, чтобы захватить входные данные и отправить их в плагин, чтобы затем отправить уведомление, так что это выглядит намного чище и проще для понимания!

Nick Lewis 10.08.2018 18:28

Другие вопросы по теме