Мне нужно ограничить использование этих купонов, исходя из дня, когда будет использоваться бронирование, а не дня, когда было сгенерировано бронирование.
Я нашел этот замечательный кусок кода от LoicTheAztec, которыйделает именно это, но я понятия не имею, как добавить больше купонов (вместо одного «abcxxr»?
// Utility function to check coupon code 'abcxxr'
function check_coupon_code( $coupon ){
// Set HERE your coupon slug
$coupon_code_wd = 'abcxxr';
$coupon_code = strtolower($coupon->get_code()); // WC 3.0+
$coupon_code_wd = strtolower($coupon_code_wd);
$found = false;
// Loop through cart items to get the chosen day and check it
foreach( WC()->cart->get_cart() as $cart_item ){
if( $coupon_code_wd == $coupon_code && isset( $cart_item['booking']['_date'] ) ){
$the_day = date('D' , strtotime($cart_item['booking']['_date']));
if( in_array( $the_day, array('Sat', 'Sun') ) ){
$found = true;
}
}
}
return $found;
}
// Coupon validity checking
add_filter( 'woocommerce_coupon_is_valid', 'coupon_week_days_check', 10, 2);
function coupon_week_days_check( $valid, $coupon ) {
if( check_coupon_code( $coupon ) ){
$valid = false;
}
return $valid;
}
// Coupon validity checking error message
add_filter('woocommerce_coupon_error', 'coupon_week_days_error_message', 10, 3);
function coupon_week_days_error_message( $err, $err_code, $coupon ) {
if( intval($err_code) === WC_COUPON::E_WC_COUPON_INVALID_FILTERED && check_coupon_code( $coupon ) ) {
$err = __( "This coupon $coupon_code_wd is valid for week days only…", "woocommerce" );
}
return $err;
}
Можно ли отредактировать этот код, чтобы я мог добавить больше кодов купонов (желательно 4-5)) что будет ограничено в те же дни? Спасибо, очень признателен за помощь!