В форме оформления заказа 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' );
Например, если в корзину добавлены две разные категории: «Карты» и «Инверсия» в одной, поле «жанр» является обязательным, а в другой - нет.Есть и другие поля, но это не маленький пример.
Будет ли какой-нибудь способ сделать это лучше или вызвать поле в другом состоянии?