Как подготовить поля в WooCommerce - PullRequest
0 голосов
/ 09 июля 2019

В форме оформления заказа WooCommerce я настроил поля.Я должен показать, что поля зависят от каждой категории, в двух категориях (микрокредиты, персональные кредиты) показаны все поля.В других категориях показаны только некоторые.

Общая категория - 6 (микрокредиты, персональные кредиты, корпоративные кредиты, карты, сберегательные продукты, инвестиции).Я думал об условной организации, но когда я удалил поле, используя unset, а другая категория требовала этого, я не смог этого сделать.

У меня следующий код:

function campos_checkout_condicional( $fields ){    
    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {        
        $product_id   = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );        

            if( has_term( array('micro-prestamos','prestamos-personales'), 'product_cat', get_post( $product_id ) ) ){
                return $fields;
            }

            if( has_term( 'tarjetas', 'product_cat', get_post( $product_id ) ) ){            
               unset($fields['billing']['billing_company']);
               unset($fields['billing']['billing_genero']);
            }
            if ( has_term( 'inversion', 'product_cat', get_post( $product_id ) ) ){
               $fields['billing']['billing_genero'];

            }   

    }
return $fields;
}

add_action( 'woocommerce_checkout_fields', 'campos_checkout_condicional' ); 

Например, если в корзину добавлены две разные категории: «Карты» и «Инверсия» в одной, поле «жанр» является обязательным, а в другой - нет.Есть и другие поля, но это не маленький пример.

Будет ли какой-нибудь способ сделать это лучше или вызвать поле в другом состоянии?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...