Можно ли отправить электронное письмо клиентам по заказу в зависимости от дней недели в WooCommerce?
Например: если кто-то делает заказ в понедельник, вторник и среду, отправляется первое электронное письмо.
иначе, если кто-то сделает заказ в четверг, пятницу и субботу, будет отправлено второе письмо.
(Обновлено) — Сначала вам нужно найти текущий день недели с помощью функции 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
}
Теперь, например, мы можем использовать крючок этот ответ на ваш вопрос комбинируя предыдущее с этим, таким образом:
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 <[email protected]>' . "\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
файл вашей активной дочерней темы или темы
Других решений пока нет …