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’ );
Tomas ClydeUna 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?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.