4

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

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

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

4

1 回答 1

1

(更新)date() - 首先,您需要以这种方式使用 php 函数找到一周中的当前日期:

$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
}

现在,例如,我们可以使用这个答案的钩子来结合前面的问题,这样:

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您的活动子主题或主题的文件中

于 2016-06-18T03:25:41.320 回答