Php 为什么_术语不适用于和运算符?
我正在与WooCommerce中的多个条件合作,根据购物车中的现有类别执行特定操作:Php 为什么_术语不适用于和运算符?,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在与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[
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']);
}
}
}
编辑:实现完整的功能,使用&&但它不能按预期工作。例如:我希望,如果只有两个特定类别执行此类操作(如果类别1和类别2)
它怎么能工作?为什么它不起作用?谢谢使用
&&
而不是和
布尔运算符
使用
|
而不是或
布尔运算符。我已经更新了帖子,使用它不起作用。我已经确保分类存在于购物车中,如果我使用| |,如果它能工作,但不能满足我的要求。我阅读代码的方式是这样的,布尔运算符不是问题。我认为这是你使用函数的方式,如果返回一个正确的布尔值或1或0或NULL返回。请你再解释一下好吗?请阅读:处理布尔值和逻辑,这有点棘手。你必须预测正确或错误的结果。