最近有客户问模板兔怎么后台群发邮件,然而wordpress并没有提供这种功能,所以我自己做了一个,实现了在后台群发邮件给所有注册成员的wordpress群发邮件功能,甚至发给非注册成员。

不过,功能是群发,而对于独一个收到邮件的用户不是这样,他们应该感觉是点对点的邮件发送。那么到底怎么实现的呢?请看源代码:

<?php
/**
* 通过本文件向站内所有用户发送邮件
* 以下只是本站的一个实例,你需要结合库内的其他功能自己深入开发,例如开发为后台的某项发邮件功能
* 本文暂且实现在后台向所有用户发送一份本周精选的邮件
*/

function mail_to_user($to,$subject,$message){
// $to 是向哪个邮箱发信 ,$message 是发信的内容,可以是HTML $subject 这封邮件的主题
$wp_email = ‘no-reply@’.preg_replace(‘#^www.#’,”,strtolower($_SERVER[‘SERVER_NAME’]));
$from = get_option(‘blogname’).”<$wp_email>”;
$headers = “$from n Content-Type: text/html; charset=”.get_option(‘blog_charset’).”n”;
wp_mail($to,$subject,$message,$headers);
}

add_action(‘admin_menu’, ‘mail_to_user_admin_menu’);
function mail_to_user_admin_menu(){
if(!empty($_POST)):
$page = @$_POST[‘page’];
$action = @$_POST[‘action’];
$mail_to = @$_POST[‘mail_to_user_who’];
$mail_subject = trim(@$_POST[‘mail_to_user_subject’]);
$mail_content = stripcslashes(stripslashes(@$_POST[‘mail_to_user_content’]));
$str = $mail_to;
$str = trim($str);
$str = ereg_replace(“t”,””,$str);
$str = ereg_replace(“rn”,””,$str);
$str = ereg_replace(“r”,””,$str);
$str = ereg_replace(“n”,””,$str);
$str = ereg_replace(” “,””,$str);
$mail_to = trim($str);
$mail_to = explode(‘;’,$mail_to);
if($page == @$_GET[‘page’] && $action == ‘send-mail’){
check_admin_referer(‘mail-to-user’);
if($mail_subject == ” || $mail_content == ” || $mail_to == ”){
wp_redirect(‘admin.php?page=’.$page.’&mailed=empty’);
exit;
}else{
update_option(‘mail_to_user_subject’,$mail_subject) or add_option(‘mail_to_user_subject’,$mail_subject);
update_option(‘mail_to_user_content’,$mail_content) or add_option(‘mail_to_user_content’,$mail_content);
foreach($mail_to as $to){
mail_to_user($to,$mail_subject,$mail_content);
}
wp_redirect(‘admin.php?page=’.$page.’&mailed=true’);
exit;
}
}
endif;
add_users_page(‘群发邮件’,’群发邮件’,’edit_users’,’mail_to_user_admin’,’mail_to_user_admin’);
}
function mail_to_user_admin(){
if(@$_GET[‘mailed’] == ‘true’)echo ‘<div id=”message” class=”updated fade”><p><strong>操作成功,请查看自己的邮箱检查发送是否成功,不要重新发送相同内容。</strong></p></div>’;
if(@$_GET[‘mailed’] == ’empty’)echo ‘<div id=”message” class=”updated fade”><p><strong>操作失败,请检查是否有内容为空</strong></p></div>’;
global $wpdb;
$maillist = ”;
$users = $wpdb->get_results(“SELECT ID,user_email,display_name FROM $wpdb->users WHERE user_status = ‘0’”);
foreach($users as $user){$maillist .= $user->display_name.'<‘.$user->user_email.’>;’.”n”;}
?>
<div class=”wrap”>
<form method=”post”>
<h2 class=”nav-tab-wrapper”>向用户发送邮件</h2>
<div class=”metabox-holder”>
<div class=”postbox”>
<div class=”inside” style=”border-bottom: 1px solid #CCC;margin: 0;padding: 8px 10px;”>
<input type=”text” class=”regular-text” value=”” name=”mail_to_user_subject” /> 填写邮件的主题,上一个主题:<?php echo stripslashes(get_option(‘mail_to_user_subject’)); ?>
</div>
<div class=”inside” style=”border-bottom: 1px solid #CCC;margin: 0;padding: 8px 10px;”>
填写邮件内容,可以是HTML代码<br />
<textarea class=”large-text code” style=”word-break:break-all;width:80%;height:200px;” rows=”4″ name=”mail_to_user_content”><?php echo stripcslashes(stripslashes(get_option(‘mail_to_user_content’))); ?></textarea>
</div>
<div class=”inside” style=”border-bottom: 1px solid #CCC;margin: 0;padding: 8px 10px;”>
填写收件人列表,不同收件人用;(英语分号)隔开,格式如”昵称&lt;mailho@qq.com&gt;;”,默认情况下列出了所有当前注册用户,你可以全选删除后自己填写<br />
<textarea class=”large-text code” style=”word-break:break-all;width:80%;height:100px;” rows=”4″ name=”mail_to_user_who”><?php echo $maillist; ?></textarea>
</div>
</div>
</div>
<p class=”submit”>
<input name=”save” type=”submit” class=”button-primary” value=”发送” />
<input type=”hidden” name=”action” value=”send-mail” />
<input type=”hidden” name=”page” value=”<?php echo $_GET[‘page’]; ?>” />
<?php wp_nonce_field(‘mail-to-user’); ?>
</p>
</form>
<?php
}

将这个文件mail_to_user.php include进主题目录下的functions.php中:

include_once(‘./mail_to_user.php’);

即可在后台启用该功能。实现的大致思路如下:

1、利用wordpress邮件发送函数wp_mail实现邮件发送;

2、添加后台页面,该页面会出现在后台“用户”菜单下;

3、只设置了主题文本框,邮件内容文本框,要发送的邮件列表三个项目;

4、提交时进行一些判断,符合条件才能发送邮件;

5、发送邮件:将提交过来的邮件列表进行数组化,遍历数组,向每一个值对应的邮箱发送邮件。


新软师兄 » wordpress如何向已注册用户群发邮件营销推广
50T免费网盘资源大集合【持续更中~~~~】:点击查看

dase kand pornhan.mobi xvideo desi gay pcso 2pm result today pinoytvfriends.com where i can watch bad romeo كلام فى النيك wfporn.com قصص محارم حديثة busporn porngugu.mobi indian sexx vedios sex ka video noticieroporno.com himachal pradesh sex com
nero hentai hentaitgp.com ламия хентай www.mom xxx.com alohaporn.me sahara knite mature fucking tubepatrolporn.com bhabi sex indian girl sex gotporn.mobi xnxx family strocks ang probinsyano july 20 2022 full episode youtube pilipinoteleserye.com ano ang pambansang sasakyan ng pilipinas
احلي سكس محارم pornxporn.org نيك فلاحى multi.xnxx alohaporn.net telugu sex chart سكس قصيرات arabysexy.org نيك نقاب www assames sex com umora.info desi sexy bhabi 8teenx bukaporn.com india hot sex videos