【问题标题】:Send reminder note one day before delivery date在交货日期前一天发送提醒说明
【发布时间】:2017-10-11 08:37:05
【问题描述】:

我对编码很陌生,我想制作一个功能,可以在 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 );

        }
    }

}
}

【问题讨论】:

    标签: php wordpress email woocommerce orders


    【解决方案1】:

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

    我建议您设置一个 cron (https://en.wikipedia.org/wiki/Cron) 并每天运行一次。这个 cron 将运行一个 PHP 文件,其功能与您编写的类似,但流程如下:

    • 查询jckwds_date == 明天日期所在的数据库
    • 为每个订单发送确认电子邮件

    我希望这会有所帮助。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2016-11-25
    • 1970-01-01
    • 2021-05-06
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多