1

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

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

4

1 回答 1

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);
        }
    }
于 2013-08-24T22:20:15.163 回答