我有一定数量的工作cron工作。 siteground上的测试服务器正确且准时地运行所有cron作业。 hostgator上的工作服务器运行除了一个cron作业以外的所有作为提醒电子邮件,购买后48小时提醒等等。
/usr/bin/GET https://www.example.org/48-hours-reminder >/dev/null 2>&1
在该网址中,我有这个设置。
<?php
/**
* Template Name: Schedule 48 Hours
*/
session_start();
global $wpdb;
$start_time = strtotime('+48 hours');//strtotime('-6 hours');
$end_time = strtotime('+50 hours');//strtotime('+168 hours');
///runing Schedule to send out 24
$hours_48 = $wpdb->get_results("SELECT id, order_id, vehicle_name, start_date_time FROM booking WHERE status='paid' AND notified_48_hour=0 AND start_date_time > " . $start_time . " AND start_date_time < " . $end_time . " GROUP BY order_id ORDER BY start_date_time DESC");
foreach($hours_48 as $booking){
$order_id = $booking->order_id;
$book_id = $booking->id;
$subject = 'Reminder';
$headers = array('Content-Type: text/html; charset=UTF-8');
$headers = array(
'From: some@domain.org',
'CC: some@domain.org',
);
$content = get_48_hour_trip_confirmation_email_content($order_id);
$to = get_post_meta($order_id, 'user_email');
wp_mail($to, $subject, $content, $headers);
$wpdb->update(
'booking',
array(
'notified_48_hour' => 1,
),
array ('id' => $book_id )
);
}
我无法理解缺少什么,也不知道如果我的hostgator设置有问题。这个确切的代码在现场工作正常。任何人都有任何想法,我完全迷失在这里。
编辑-----
这似乎是我正在寻找的答案
$start_time = strtotime('+48 hours');//strtotime('-6 hours');
$end_time = strtotime('+50 hours');//strtotime('+168 hours');
$hours_48 = $wpdb->get_results("SELECT id, order_id, vehicle_name, start_date_time FROM fcb_booking WHERE status='paid' AND notified_48_hour=0 AND start_date_time > UNIX_TIMESTAMP(NOW() - INTERVAL 48 HOUR) GROUP BY order_id ORDER BY start_date_time DESC");
使用UNIX_TIMESTAMP(NOW() - INTERVAL 48 HOUR)