Я использую бронирование woocommerce, и мне нужно сгенерировать ограничение купона для заказов.
Все мои заказы имеют продолжительность один час, и клиенты могут использовать купоны, чтобы снизить стоимость бронирования, но я должен ограничить использование этих купонов, основываясь на дне, когда будет использоваться бронирование, а не на дне, когда бронирование сгенерировано.
Например, у меня есть купон, и я забронировал номер в понедельник на номер в сб. В этом случае купон должен быть не очень хорошим. Но если я попытаюсь забронировать номер в любой день недели, например, на следующий понедельник, купон должен быть хорошим.
В этом случае мне нужно ограничить использование в выходные дни.
Пока мой код:
add_filter( 'woocommerce_coupon_is_valid', 'coupon_week_days_check', 10, 2);
function coupon_week_days_check( $valid, $coupon ) {
// Set HERE your coupon slug <=== <=== <=== <=== <=== <=== <=== <=== <=== <===
$coupon_code_wd = 'couponyes';
// Set HERE your defined invalid days (others: 'Mon', 'Tue', 'Wed', 'Thu', 'Fri' ) <=== <===
$invalid_days = array( 'Sat', 'Sun');
$now_day = date ( 'D' ); // Now day in short format
// WooCommerce version compatibility
if ( version_compare( WC_VERSION, '3.0', '<' ) ) {
$coupon_code = strtolower($coupon->code); // Older than 3.0
} else {
$coupon_code = strtolower($coupon->get_code()); // 3.0+
}
// When 'xyz' is set and if is not a week day we remove coupon and we display a notice
if( $coupon_code_wd == $coupon_code && in_array($now_day, $invalid_days) ){
// if not a week day
$valid = false;
}
return $valid;
}
Есть идеи?