我正在WooCommerce中使用多个条件,根据购物车中的现有类别执行特定操作:
if( (has_term( 'prestamos-empresa', 'product_cat', get_post( $product_id ))) && (has_term( 'productos-de-ahorro', 'product_cat', get_post( $product_id ))) ){
unset($fields['billing']['info_financiera']);
unset($fields['billing']['billing_iban']);
unset($fields['billing']['billing_titularcuenta']);
unset($fields['billing']['billing_sinmoroso']);
unset($fields['billing']['billing_cargorol']);
unset($fields['billing']['billing_ingreso']);
unset($fields['billing']['billing_tipocontrato']);
unset($fields['billing']['billing_antiguedad']);
unset($fields['billing']['billing_fechasueldo']);
}
如果我使用OR运算符(如果可以),也尝试&&,什么也没有。我将保留另一段代码:
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 );
// Si esta Micro Prestamos o Prestamos Personales en carrito devolver todos los campos.
if( has_term( array('micro-prestamos','prestamos-personales'), 'product_cat', get_post( $product_id ) ) ){
return $fields;
}
// Solo prestamos empresas y productos de ahorro en carrito.
if( (has_term( 'prestamos-empresa', 'product_cat', get_post( $product_id ))) && (has_term( 'productos-de-ahorro', 'product_cat', get_post( $product_id ))) ){
unset($fields['billing']['info_financiera']);
unset($fields['billing']['billing_iban']);
unset($fields['billing']['billing_titularcuenta']);
unset($fields['billing']['billing_sinmoroso']);
unset($fields['billing']['billing_cargorol']);
unset($fields['billing']['billing_ingreso']);
unset($fields['billing']['billing_tipocontrato']);
unset($fields['billing']['billing_antiguedad']);
unset($fields['billing']['billing_fechasueldo']);
}
// Solo prestamos empresa e inversion // Solo productos de ahorro y inversion
if( ((has_term( 'prestamos-empresa', 'product_cat', get_post( $product_id ))) && (has_term( 'inversion', 'product_cat', get_post( $product_id )))) || ((has_term( 'productos-de-ahorro', 'product_cat', get_post( $product_id ))) && (has_term( 'inversion', 'product_cat', get_post( $product_id )))) ){
unset($fields['billing']['info_financiera']);
unset($fields['billing']['billing_iban']);
unset($fields['billing']['billing_titularcuenta']);
unset($fields['billing']['billing_sinmoroso']);
unset($fields['billing']['billing_fechasueldo']);
}
}
}
编辑:实现完整的功能,使用&&,并且不能按预期工作。例如:我希望只有两个特定类别时才能执行此操作(如果category1 && category2)...
它如何工作?为什么不起作用?谢谢
答案 0 :(得分:0)
使用&&
代替AND
布尔运算符。
使用||
代替OR
布尔运算符。