Удалите определенные состояния, если какой-либо купон применяется в Woocommerce.

Я искал решение для этого в Google, но я не нашел ни одного. Есть ли способ скрыть какое-либо состояние, если купон активен?

Я нашел "Удалить определенные состояния страна в Woocommerce Checkout" код ответа, который работает с платежными шлюзами, и я пытаюсь адаптировать код для штатов:

add_filter('woocommerce_states', 'applied_coupons_hide_states', 20, 1 ); 
function applied_coupons_hide_states( $states){

    if( sizeof( WC()->cart->get_applied_coupons() ) > 0 ){

        foreach ( $states as $state_key => $state_value ) {

            if( $state_key != 'LMA,LIM' )
                unset($states[$state_key]);
        }
    }

    return $states;
}

Но я не могу заставить его работать. Что я делаю неправильно?

Любая помощь приветствуется.


person Elizabeth parodi roman    schedule 04.03.2019    source источник


Ответы (1)


В вашем коде есть некоторые ошибки… Я полагаю, что родственной страной является Перу (PE). Попробуйте следующее:

add_filter('woocommerce_states', 'applied_coupons_hide_states', 10, 1 ); 
function applied_coupons_hide_states( $states){
    // On cart or checkout pages, if any coupon is applied
    if( ( is_cart() || is_checkout() ) && sizeof( WC()->cart->get_applied_coupons() ) > 0 ){
        $country = 'PE'; // Defined country: Peru
        $targered_states = array('LMA','LIM'); // States to be removed

        foreach ( $targered_states as $state_code ) {
            if( isset($states['US'][$state_code]) ) {
                unset( $states['US'][$state_code] );
            }
        }
    }
    return $states;
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы). Проверено и работает.

Связанная тема: Удалить определенные штаты страны на Проверка Woocommerce

person LoicTheAztec    schedule 04.03.2019
comment
Спасибо за помощь, я прочитал некоторые из ваших ответов на похожие темы, я изо всех сил старался сделать эту работу, но я не мог, вы потрясающие, много граций де Вердад. - person Elizabeth parodi roman; 05.03.2019