Отправлять автоматическое электронное письмо клиенту по заказу в зависимости от дней недели в WooCommerce

Можно ли отправить электронное письмо клиентам по заказу в зависимости от дней недели в WooCommerce?

Например: если кто-то делает заказ в понедельник, вторник и среду, то отправляется первое электронное письмо.

иначе, если кто-то сделает заказ в четверг, пятницу и субботу, будет отправлено второе электронное письмо.


person Muhammad Haris    schedule 01.06.2016    source источник


Ответы (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
}

Теперь, например, мы можем использовать хук этот ответ на ваш вопрос, объединяющий предыдущий с ним, таким образом:

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 файл вашей активной дочерней темы или темы

person LoicTheAztec    schedule 18.06.2016