• Hola a todos! 🙂

    El tema es el siguiente:

    Estoy haciendo un plugin para modificar el checkout para que, si en mi carrito hay productos de «x» categoría, en el checkout me muestre todos los campos disponibles, y si hay productos de «y» categoría, me oculte las opciones de enviar a una dirección diferente….

    Les pongo el código que tengo:

    add_action('after_setup_theme','customized_checkout');
    	
    	function customized_checkout(){
    	// establecemos que una variable falsa hasta que encontremos un producto en esa categoría 
            $cat_check = false; 
            
        // verifique cada artículo del carrito para nuestra categoría 
            foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {  
        
        if (has_term ('Suscripciones', 'product_cat', $cart_item['product_id'])) { 
            $cat_check = true; 
            break; 
        } 
    } 
            
    // si un producto en el carrito está en nuestra categoría, haga algo 
    if ($cat_check) { 
        //aquí iría el código para no mostrar enviar a una dirección diferente
    }
    } 

    Hasta aquí he llegado ya que si activo el plugin se daña la web con el mensaje: Ha habido un error critico en tu web… y al parecer el error está en el código del foreach, ya que si he intentado quitarlo y ya no salta el error…

    Estoy muy perdido, te agradecería tres millones si me das alguna luz…

    Gracias!

Viendo 1 respuesta (de un total de 1)
  • Hola!

    Yo tengo algo parecido así, a ver si te sirve:

    	foreach( WC()->cart->get_cart() as $cart_item ) {
    	   $product_in_cart = $cart_item['product_id']; 
    	   if ( !has_term( 'Suscripciones', 'product_cat', $product_in_cart->id ) ) 
    	   {
    	   	$cat_check = true;
    	   }
    	}
    

    Saludos,

Viendo 1 respuesta (de un total de 1)
  • El debate ‘Checkout Condicional’ está cerrado a nuevas respuestas.