使用密码保护的表单时发送通知-Wordpress

时间:2018-08-10 15:03:24

标签: php wordpress forms notifications

当前端的用户填写受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表单输入的内容,然后设置一个新通知以发送包含Name和Email输入内容(而不是密码)的电子邮件。

有人对如何实现这一目标有任何建议吗?

简而言之: 创建一个操作,在提交密码表单时获取该表单中输入的内容,设置一个通知,然后将该通知发送到包含那些输入字段内容的指定电子邮件地址。

谢谢!

1 个答案:

答案 0 :(得分: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);
    }
}