【问题标题】:Send automatic Email to the Customer by Order depending on the week days in WooCommerce根据 WooCommerce 中的工作日,按订单向客户发送自动电子邮件
【发布时间】:2016-09-30 20:56:25
【问题描述】:

是否可以根据 WooCommerce 中的工作日按订单向客户发送电子邮件?

例如:如果有人在周一、周二和周三下订单,则发送第一封电子邮件。

否则,如果有人在周四、周五和周六下订单,则会发送第二封电子邮件。

【问题讨论】:

    标签: php wordpress woocommerce orders email-notifications


    【解决方案1】:

    (已更新) - 首先您需要使用 php 函数 date() 以这种方式找到星期几:

    $today= date('L');
    

    然后我们需要定义第一个电子邮件操作的天数和第二个电子邮件操作的天数,将这些天数存储在一个数组中:

    $days1 = array( 'monday', 'tuesday', 'Wednesday' );
    $days2 = array( 'thursday', 'friday', 'saturday' ); 
    

    现在我们需要比较当天的 $today$days1 和 **$days**2 以进行操作:

    if ( in_array( $today, $days1 ) ) {
        // do something
    } else if {
        // do something else
    } else {
        exit; // do nothing
    }
    

    现在,例如,我们可以使用this answer to your question的钩子将前一个与它结合起来,这样:

    add_action( 'woocommerce_payment_complete', 'order_completed' )
    function order_completed( $order_id ) {
        $today= date('L');
        $days1 = array( 'monday', 'tuesday', 'Wednesday' );
        $days2 = array( 'thursday', 'friday', 'saturday' ); 
        $user_email = $current_user->user_email;
        $to = sanitize_email( $user_email );
        $headers = 'From: Your Name <your@email.com>' . "\r\n";
        if ( in_array( $today, $days1 ) ) {
            wp_mail($to, 'subject', 'This is custom email 1', $headers );
        } elseif ( in_array( $today, $days2 ) ) {
            wp_mail($to, 'subject', 'This is custom email 2', $headers );
        } else {
            exit; // do nothing
        }
    }
    

    您也可以根据需要使用这些钩子中的一个,甚至可以将它们组合在一起:

    add_action( 'woocommerce_order_status_pending', 'my_custom_action');
    add_action( 'woocommerce_order_status_failed',  'my_custom_action');
    add_action( 'woocommerce_order_status_on-hold', 'my_custom_action');
    add_action( 'woocommerce_order_status_processing', 'my_custom_action');
    add_action( 'woocommerce_order_status_completed', 'my_custom_action');
    add_action( 'woocommerce_order_status_refunded', 'my_custom_action');
    add_action( 'woocommerce_order_status_cancelled', 'my_custom_action');
    add_action( 'woocommerce_payment_complete', 'my_custom_action' ); // Using this one
    add_action( 'woocommerce_thankyou', 'my_custom_action' ); // this could be convenient too
    function my_custom_function($order_id) {
        // your code goes here
    }
    

    注意:所有这些代码都在您的活动子主题或主题的function.php 文件中

    【讨论】:

      猜你喜欢
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 2017-08-19
      • 1970-01-01
      • 2014-03-09
      • 2019-05-10
      • 1970-01-01
      相关资源
      最近更新 更多