Tengo una incompatibilidad con dos complementos. allí necesito deshabilitar el check out rápido de PayPal si se está comprando un producto de una categoría especial. esto funciona perfectamente bien desde una perspectiva frontend:
add_filter( 'woocommerce_available_payment_gateways', 'abo_no_paypalCheckout' );
function abo_no_paypalCheckout( $available_gateways ) {
global $woocommerce;
$cat_in_cart = false;
if (WC()->cart && !WC()->cart->is_empty()){
// Loop through all products in the Cart
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
#echo ($cart_item['product_id']);
// If Cart has category "download", set $cat_in_cart to true
if ( (has_term( 'abc', 'product_cat', $cart_item['product_id'] )) ) {
$cat_in_cart = true;
break;
}
}
}
// Do something if category "download" is in the Cart
if ( $cat_in_cart ) {
unset( $available_gateways['ppec_paypal'] );
}
return $available_gateways;
}
de alguna manera recibo un error fatal al intentar acceder a woo> configuración> pagos y esto en el registro:
2020-10-19T12:05:58+00:00 Error CRÍTICO no detectado: llamada a una función miembro get_cart() en nulo en /www/shop/public/wp-content/themes/woondershop-pt-child/functions.php :536 Rastreo de pila: #0 /www/shop/public/wp-includes/class-wp-hook.php(288): abo_no_paypalCheckout(Array) #1 /www/shop/public/wp-includes/plugin.php( 206): WP_Hook->apply_filters(Array, Array) #2 /www/shop/public/wp-content/plugins/woocommerce/includes/class-wc-payment-gateways.php(160): apply_filters(‘woocommerce_ava.. .’, Array) #3 /www/shop/public/wp-content/plugins/woocommerce-subscriptions/includes/gateways/class-wc-subscriptions-payment-gateways.php(115): WC_Payment_Gateways->get_available_payment_gateways() # 4 /www/shop/public/wp-content/plugins/woocommerce-subscriptions/includes/admin/class-wc-subscriptions-admin.php(1853): WC_Subscriptions_Payment_Gateways::one_gateway_supports(‘subscriptions’) #5 /www/shop /public/wp-includes/class-wp-hook.php(288): WC_Subscriptions_Admin::add_recurring_payment_gateway_informatio en /www/shop/public/wp-content/themes/woondershop-pt-child/functions.php en Zeile 536
la línea 536 es el comienzo del foreach.
¿algunas ideas?
¡gracias!
— EDITAR —
código arreglado!
.