Можно ли разрешить определенный купон WooCommerce только на невыполненных заказах?
Я пытался использовать Если товары WooCommerce Cart находятся на складе, не применяйте купон код ответа, ограничивающий использование товаров, которые не были заказаны.
я изменился if( $stock_info < 1 ){
в if( $stock_info > 0 ){
вместо
Но тогда я могу использовать купоны только на невыплаченных заказах … но где я могу сделать это для определенного купона?
Могу ли я использовать его идентификатор? но где?
Следующий код сделает определенные коды купонов действительными, если в корзине есть товары с переупорядочением:
add_filter( 'woocommerce_coupon_is_valid', 'specific_coupons_valid_for_backorders', 10, 3 );
function specific_coupons_valid_for_backorders( $is_valid, $coupon, $discount ){
// HERE below define in the array your coupon codes
$coupon_codes = array( 'summer', 'tenpercent' );
if( in_array( $coupon->get_code(), $coupon_codes ) ) {
$is_valid = false;
// Loop through cart items and check for backordered items
foreach ( WC()->cart->get_cart() as $cart_item ) {
if( $cart_item['data']->is_on_backorder( $cart_item['quantity'] ) ) {
$is_valid = true; // Backorder found, coupon is valid
break; // Stop and exit from the loop
}
}
}
return $is_valid;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Других решений пока нет …