Estoy tratando de agregar una página de pedido de revisión en mi tienda web Woocommerce. Actualmente, cuando agrego artículos al carrito, puedo proceder a la página de pago donde se requieren y envían las direcciones de facturación y envío, luego, el siguiente paso es la página de Pago (con PayPal). Quiero agregar una página de revisión del pedido antes de que vaya a la página de pago, por lo que después de ingresar las direcciones en la página de pago y el usuario hace clic en continuar, se debe mostrar una página de resumen/revisión del pedido con los totales del pedido y las direcciones ingresadas previamente. , y un enlace para regresar si diez usuarios desean cambiar una dirección. Me gusta una página de confirmación. Luego, una vez que el usuario procede, va a la página de pago.
He investigado esto sin suerte. Intenté esta acción en el functions.php
pero no funciona:
add_action( 'woocommerce_review_order_before_submit','woocommerce_order_details_table');
¿Hay alguna manera de hacer esto con woocommerce? Tampoco hay configuración para esto en el panel de administración.
Recientemente me encontré con este problema. Mi solución fue crear una página llamada ‘Revisar pedido’ en el back-end de WordPress e ingresar el código abreviado [woocommerce_checkout]
en el editor de contenido. Luego creo un page-review-order.php en la raíz de mi tema hijo.
En mi page-review-order.php, establecí las siguientes definiciones:
if ( ! defined( 'THIS_IS_CHECKOUT' ) )
{
define( 'THIS_IS_CHECKOUT', true );
}
if ( ! defined( 'THIS_IS_REVIEW') )
{
define( 'THIS_IS_REVIEW', true);
}
Desde aquí pude pasar por el proceso de pago típico y obtener la información que necesitaba sin mucha molestia, pero podía intercambiar qué partes del proceso podrían pertenecer a la página de pago y qué partes podrían pertenecer a la página de revisión con lo siguiente :
if (defined( 'THIS_IS_REVIEW'))
{
$reviewPage = true;
}
-
¿Puedes explicar con más detalle cómo hiciste esto? Quiero hacer lo mismo. ¡Gracias!
– harinsa
4 de septiembre de 2015 a las 9:25
Mirando una configuración de WooCommerce que administro, puedo ver que puede configurar una página de ‘Carrito’ en el administrador a través de WooCommerce> Configuración> Pago (pestaña en la parte superior).
Desplácese hacia abajo hasta ‘Páginas de pago’ y asegúrese de tener seleccionada una ‘Página de carrito’. Si no crea una página llamada, por ejemplo, ‘Carrito de la compra’ y le agrega el siguiente código abreviado: [woocommerce_cart]
Una vez que haya hecho eso, regrese a la página de configuración anterior de WooCommerce y seleccione la nueva página que creó.
Esta página se coloca antes de los detalles de facturación en el proceso de pago.
Déjeme saber si esto ayuda.
-
Todo esto está configurado. Solo para aclarar que el sitio funciona, el pago y el pago funcionan. Lo que quiero es agregar una página entre la página de pago y la página de pago que les pida a los usuarios que confirmen sus direcciones de facturación y envío ingresadas en la página de pago, si confirman que avanzan para pagar o regresan a la página de pago. para editar una dirección
– Probador
15 de agosto de 2014 a las 13:56
Aunque esta podría no ser la solución perfecta, así es como lo solucioné.
Por favor, eche un vistazo a este hilo de stackoverflow.
Insertamos una entrada oculta confirm-order-flag
indicando si está por revisar o ya se revisó.
Luego, después de la validación, usamos woocommerce_after_checkout_validation
para comprobar este valor. Si es para ser revisado, agregamos un error falso.
En jQuery comprobamos el número de errores, que será uno si es para revisar y 2 (o más) si tiene errores (Si tiene 0, ya estás en la página de revisión).
$(document.body).on('checkout_error', function () {
var error_count = $('.woocommerce-error li').length;
var url_params = form_parameters_to_url();
if (error_count == 1) { // Validation Passed (Just the Fake Error I Created Exists)
window.location = "review_page_url";
}else{ // Validation Failed (Real Errors Exists, Remove the Fake One)
$('.woocommerce-error li').each(function(){
var error_text = $(this).text();
if (error_text == 'custom_notice'){
$(this).css('display', 'none');
}
});
}
});
En la URL de la página de revisión también inserto el [woocommerce_checkout]
shortcode, pero esta vez en un contenedor con una identificación: #confirm_order_page
. Uso jQuery nuevamente para establecer el valor de la entrada oculta en 0:
$('#confirmation_form #place_order').click(function () {
$('#confirm-order-flag').val('');
});
Entonces no tiene errores y pasa la validación. Oculto el formulario en la página de revisión de css. Puede que no sea la solución perfecta, pero podría ayudarlo a comenzar con este problema.
¿Has resuelto tu problema mientras tanto?
– GDY
16 oct 2015 a las 6:35