当前端用户填写 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 表单输入的内容,然后设置一个新的通知来发送一封电子邮件,其中包含姓名和电子邮件输入的内容(不是密码)。
有人对如何实现这一目标有任何建议吗?
简而言之: 创建一个操作,在提交密码表单时获取表单中的输入内容,设置通知,然后将该通知发送到包含这些输入字段内容的指定电子邮件地址。
谢谢!
最佳答案
试试这个功能。
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);
}
}
关于php - 使用密码保护表单时发送通知 - Wordpress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51789310/