¿Cómo mostrar los artículos del carrito de WooCommerce en la página de pago?

3 minutos de lectura

avatar de usuario
Yazmín

Estoy trabajando en este sitio web donde se me pidió que agregara una lista de los artículos del carrito a la página de pago. Decidí agregar el

[woocommerce_cart] 

shortcode a la página de pago, arriba del

[woocommerce_checkout]

shortcode y simplemente use CSS para ocultar el botón “Continuar con el pago ->” en el carrito en la página de pago.

Sin embargo, esto ha introducido un nuevo problema. Ahora, cuando se selecciona el envío en la página de pago, el envío predeterminado es el que se configuró para el carrito en la página del carrito… incluso cuando se selecciona un nuevo envío en la página de pago.

Claramente, esta no era la forma de agregar la salida del carrito a la página de pago.

¿Hay un código abreviado solo para mostrar los artículos del carrito?

¿Qué necesito editar para mostrar los artículos del carrito en la página de pago?

Voy a responder mi propia pregunta, ya que la resolví con un poco de exploración adicional. Con suerte, ayudará a alguien más más adelante en el camino.

No encontré un código abreviado para simplemente agregar el carrito en la parte superior de la página de pago. Tuve que editar el archivo de plantilla directamente.

Entonces, copié:

/wp-content/plugins/woocommerce/templates/checkout/form-checkout.php

a:

/wp-content/mytheme/woocommerce/checkout/form-checkout.php

para hacer mis ediciones en ese archivo directamente para no perderlas cuando se actualice WooCommerce. Luego copié el código del formulario de:

/wp-content/plugins/woocommerce/templates/cart/cart.php

Y lo pegué en el archivo que copié en mi directorio de temas:

/wp-content/mytheme/woocommerce/checkout/form-checkout.php

donde quería que apareciera el formulario.

Puede haber formas más elegantes, pero esto solucionó mi problema.

  • Para obtener solo una lista de productos sin la posibilidad de modificar el carrito, puede comentar las columnas y toda la última fila para eliminar el botón de actualización. Comenté las columnas 1,2,4,5 y la última fila. Para las columnas, asegúrese de comentar el encabezado

    y el contenido

    – saltman

    6 de diciembre de 2018 a las 18:54

    También puedes usar un gancho para esto.

    // put this in functions.php, it will produce code before the form
    add_action('woocommerce_before_checkout_form','show_cart_summary',9);
    
    // gets the cart template and outputs it before the form
    function show_cart_summary( ) {
      wc_get_template_part( 'cart/cart' );
    }
    

    he creado un carro-parte.php plantilla que contiene solo la mesa del carrito y reemplazó el código con wc_get_template_part( ‘carrito/carrito’,’pieza’ );

    avatar de usuario
    Tomas Clyde

    Una forma más fácil de hacer esto es agregando el siguiente código en su funciones.php archivo en su tema hijo.

    De esta manera, no necesitará agregar ninguna plantilla ni modificar ningún código central de woocommerce.

    function remove_cart_collaterals() {
        if (is_checkout()) {
            remove_action('woocommerce_cart_collaterals', 'woocommerce_cross_sell_display');
            remove_action('woocommerce_cart_collaterals', 'woocommerce_cart_totals', 10);
        }
    }
    add_action('wp', 'remove_cart_collaterals');  
    

    ¿Ha sido útil esta solución?