【问题标题】:Dynamic Mailing List from MySQL query [closed]来自 MySQL 查询的动态邮件列表 [关闭]
【发布时间】:2018-10-18 14:36:11
【问题描述】:

我最近在我的 Wordpress (woocommerce) 网站上实施了“奖励积分”系统。

我构建了一个 MySQL 查询来显示我的每个客户的姓名、电子邮件地址和当前积分余额:

SELECT  
            b1.meta_value AS first_name, 
            b2.meta_value as last_name, 
            b3.meta_value as points_balance,
            a.user_email,
            p.points_balance

FROM    wp_zaydb6_users a
                INNER JOIN wp_usermeta b1 ON b1.user_id = a.ID AND b1.meta_key = 'first_name' 
                INNER JOIN wp_usermeta b2 ON b2.user_id = a.ID AND b2.meta_key = 'last_name'
                INNER JOIN wp_usermeta b3 ON b3.user_id = a.ID AND b3.meta_key = 'wc_points_balance'

WHERE  b3.meta_value > 0

这会返回如下内容:

John    Smith   511 j.smith@gmail.com
Michael Barrymore   71  MICHAEL@BARRYMORE.COM.AU
Bob Monkhouse   326 Bob.monkhouse@bobmonk.at
Jane    Doe 176 Jane.Doe@janedoe.ch
Ricky   Martin  511 r.martin@gmail.com

我的下一步是构建一个脚本(bash,但最好是 PHP),它将遍历每条记录,提取每个“First_name”,打印 points_balance 并将其通过电子邮件发送给相关用户。这一切都需要包装成 HTML 格式的电子邮件,而不是纯文本。

我还没有构建动态邮件列表,所以这对我来说是全新的。

最好的前进方式是什么?

【问题讨论】:

标签: php mysql bash woocommerce phpmailer


【解决方案1】:

我有一个旧系统必须做这样的事情,而且我以一种非常快但很老套的方式来做。

$row_message = fetch_html_template('renew_error'); //returns the html template text, that has special markings like [name], [username].
$row_message['text'] = str_replace('[name]', $variableThatHasUsersName, $row_message['text']);

这是一种非常肮脏且快速的修复方法。如果您想扩展它,您可以多次使用 str_replace 来处理任意数量的变量。

附:如果这对您有帮助,请接受答案。

【讨论】:

  • @/u/thefolenangel - 我将使用您提供的示例,如果我能得到它,我确实会接受作为答案:)
  • @Huskie69 很酷,只是不要忘记,当我说 html 模板时,我指的是您将要使用的整个 html,只是表示为一个字符串 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-23
  • 1970-01-01
相关资源
最近更新 更多