我有一个会员网站,其中有一个特定的用户到期日期。我想要做的只是让他们的会员资格将在X天内过期并向他们发送电子邮件。
db中有一个名为“mm_user_data”的表,这是到期日存储在名为“expiration_date”的列中
我可以使用此代码检索所有用户的到期日期
$sql = "SELECT expiration_date FROM mm_user_data";
$expire= $wpdb->get_results($sql);
echo var_dump($expire);
输出是这个
[0]=> object(stdClass)#2455 (1) { ["expiration_date"]=> string(19) "2017-06-30 16:00:00" }
我需要做的是仅在“2017-06-30 16:00:00”在未来10天内检查和检索列wp_user_id,例如
我尝试了这个,但它似乎没有起作用
$daysPriorToRebill = 10;
$priorToRebillDate = date('Y-m-d', strtotime("-{$daysPriorToRebill} days"));
$sql3 = "SELECT wp_user_id
FROM mm_user_data
WHERE expiration_date = '".$daysPriorToRebill."'";
$userid = $wpdb->get_results($sql3);
echo var_dump($userid);
输出array(0) { }
。
从此我希望能够使用$userid
获取user_email,然后向他发送一封电子邮件作为续订提醒。所以我目前的具体问题是让上面的代码工作并检索用户的用户ID,这些用户ID将在10天后到期。
答案 0 :(得分:0)
我能够使用此代码
获取将在未来10天内过期的所有用户的IDAND expiration_date > '".$todaydate."'"
您注意到我添加了$priorToRebillDate
,因为它检索的所有会员资格的有效期限低于.section .text
.global _start
_start:
mov $0xDEADBEEF, %eax
,比当前日期提前10天,因此我需要将其停止带来任何已经过期的东西。
答案 1 :(得分:0)
使用DATE()
,CURDATE()
和DATEDIFF()
,您可以使用mysql查询检索所有用户,例如只剩下10天,直到订阅结束。
SELECT wp_user_id FROM mm_user_data WHERE DATEDIFF(CURDATE(),DATE(expiration_date)) = 10
此查询将返回订阅在10天内结束的所有用户ID。不需要用php进行痛苦的日期计算。