在交货日期前一天发送提醒备注

时间:2017-10-11 08:37:05

标签: php wordpress email woocommerce orders

我对编码非常陌生,我想在WooCommerce 3.1.1中创建一个可以在交付日期前一天发送电子邮件提醒的功能。

我正在使用插件WooCommerce Delivery Slots,并在此处获取有关投放日期的信息:http://docs.iconicwp.com/article/53-get-the-delivery-date-for-an-order

我不知道如何继续使这个功能起作用。

add_action("init", "send_reminder_note");

function send_reminder_note($order_id) {
$order = wc_get_order( $order_id );

foreach ( $order_id as $id ) {

    //Get all order data
    $order_data = $order->get_data(); // The Order data
    $order_id = $order_data['id'];
    $order_parent_id = $order_data['parent_id'];
    $order_status = $order_data['status'];
    $order_billing_email = $order_data['billing']['email'];

    //Get one day before delivery date
    $date = get_post_meta( $order_id, 'jckwds_date', true ); // delivery date
    $date_temp = get_post_meta( $order_id, 'jckwds_date', true );
    $date = date("Ymd", strtotime("-1 days"));

    //Send emils if orders is completed and one day before delivery date
    if($order_status == 'completed' ) {
        if($date_temp >= $date){
            $to = $order_billing_email;
            $subject = 'Reminder your package will be sent tomorrow';
            $body = 'your order will be sent tommorow';
            $headers = array('Content-Type: text/html; charset=UTF-8');

            wp_mail( $to, $subject, $body, $headers );

        }
    }

}
}

1 个答案:

答案 0 :(得分:0)

我不确定是否理解了你的问题。 如果您的订单表中的jckwds_date字段是交货日期,

我建议您设置一个cron(https://en.wikipedia.org/wiki/Cron)并每天运行一次。这个cron将运行一个PHP文件,其函数类似于您编写的函数,但是使用此流程:

  • 查询jckwds_date ==明天的日期
  • 的数据库
  • 对于每个订单,请发送确认电子邮件

我希望这会有所帮助。