如何在所有配置了s2Member的WordPress中,将EOT设置为从今天起的两周内到期的所有成员?

时间:2013-08-24 22:14:23

标签: php mysql wordpress

我计划在配置了s2Member的WordPress中,在会员资格EOT(期末)前两周向用户发送电子邮件。我打算设置一个WordPress cron作业来发送实际的电子邮件。

如何查询数据库并获取正确的用户?

1 个答案:

答案 0 :(得分:0)

试试这个:

$members = $wpdb->get_results(
    $wpdb->prepare(
        "
         SELECT
         DISTINCT(u.ID),
         u.display_name name,
         u.user_email memberemail,
         um.meta_value eot
         FROM {$wpdb->users} u
         LEFT JOIN {$wpdb->usermeta} um
         ON u.ID = um.user_id
         WHERE um.meta_key = 'wp_s2member_auto_eot_time'
        "), 
        ARRAY_A
    );

    foreach ($members as $member) {
        $round_numerator = 60 * 60 * 24;
        $rounded_time = ( round(strtotime('+13 days') / $round_numerator) * $round_numerator );
        $rounded_eot = ( round($member['eot'] / $round_numerator) * $round_numerator );
        if ($rounded_time !== $rounded_eot) {           
             unset($member);
        }
    }