是否可以通过订单向客户发送电子邮件,具体取决于WooCommerce中的工作日?
例如:如果某些人在星期一,星期二和星期三下订单,则会发送第一封电子邮件。
如果有人在周四,周五和周六发出命令,那么第二封电子邮件将被发送。
答案 0 :(得分:2)
(已更新) - 首先,您需要使用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
文件中