在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' );
例如,如果将两个不同的类别添加到购物车:其中一个类别为“卡片”和“反转”,则必须为“类型”字段,而在另一类别中则不需要。还有其他领域,但不扩展,这是一个小例子。
会有更好的方法或在其他情况下调用该字段吗?