提醒运行SQL查询的cron作业无法通过电子邮件发送预订用户

时间:2018-01-11 09:13:10

标签: php sql cron

我有一定数量的工作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)

0 个答案:

没有答案