На основе условного уведомления о доставке на основе времени и даты в коде ответа Woocommerce я пытаюсь отобразить сообщение о доставке со следующим слегка измененным кодом:
Я пробую этот код, но не нахожу результата, надеюсь:
add_action( 'woocommerce_before_customer_login_form', 'next_day_delivery' );
add_action( 'woocommerce_before_customer_login_form', 'next_day_delivery' );
add_action( 'woocommerce_before_checkout_form', 'next_day_delivery' );
add_action( 'woocommerce_before_shop_loop', 'next_day_delivery' );
add_action( 'woocommerce_before_single_product_summary', 'next_day_delivery' );
add_action( 'woocommerce_before_cart', 'next_day_delivery' );
function next_day_delivery() {
if( WC()->cart->is_empty() )
return; // Exit
// Set the time zone
date_default_timezone_set('Europe/Paris');
// From Monday to Thursday
$is_week_days = in_array( date('w'), array( 3, 4, 5, 6, 0 ) ) ? true : false;
$is_monday = date('w') == 1 ? true : false; // Monday
$is_tuesday = date('w') == 2 ? true : false; // Tuesday
$end_time = mktime('21', '00', '00', date('m'), date('d'), date('Y'));
$now_time = time();
$after_tomorow = date('l', strtotime('+2 days'));
$dateDiff = intval(($end_time - $now_time)/60);
$diff_hours = intval($dateDiff/60);
$diff_minutes = $dateDiff%60;
$hours_label = _n( 'heure', 'heures', $diff_hours, 'wooocommerce' );
$minutes_label = _n( 'minute', 'minutes', $diff_minutes, 'wooocommerce' );
if ( $is_monday && $now_time or $is_tuesday && $now_time < $end_time ) {
// print the information notice
$message = sprintf( __( '%s left to be delivered tomorrow!', 'woocommerce' ),
$diff_hours.' '.$hours_label.' and '.$diff_minutes.' '.$minutes_label);
}
elseif ( $end_time <= $now_time && $is_week_days ) {
$message = sprintf( __( 'Your order will be delivered this %s.', 'woocommerce' ), $after_tomorow );
} else {
$message = __( 'Your order will be prepared and shipped next upcoming monday and delivered on tuesday.', 'woocommerce' );
}
wc_print_notice( $message, 'success' );
}
Но я не могу заставить его работать для моих нужд…
Мы доставляем нашу продукцию каждый четверг, пятницу и субботу различными местными пунктами самовывоза. Поэтому я хотел бы иметь сообщение о доставке, использующее следующую логику:
- заказы, сделанные каждую неделю до 21:00 вторника (21:00 в часовом поясе Европа/Париж), должно быть указано: %s осталось доставить с четверга!
- заказы, сделанные каждую неделю после 21:00 вторника (21:00 в часовом поясе Европа/Париж), должны сказать, что Ваш заказ будет подготовлен и отправлен в следующую среду и доставлен в следующий четверг.
Любая помощь будет очень признательна.