Finalizar compra posible, pese que "CHILEXPRESS (SIN SERVICIO)" #81
Comments
eso mismo pensaba, |
Lo tengo. Va el update en unos minutos. |
El cambio: El hook woocommerce_before_checkout_process no sirve, porque aún no existe una orden con el costo de envío asociado a ella. Y la data que viene en el $_POST de WC, no incluye el costo de envío tampoco. Así es que me colgué después, en esa misma rutina del método, pero en https://docs.woocommerce.com/wc-apidocs/source-class-WC_Checkout.html#983 woocommerce_checkout_order_processed tiene los datos de la orden, y con ello, el costo de envío (gracias a calculate_shipping()). :) |
super gracias... a mi si me funcionó con el "woocommerce_before_checkout_process"
|
Como lo hice, simplemente verifica primero si se está usando Chilexpress como método de envío. Tu sacaste el costo desde la session del usuario en WC. No se me había ocurrido eso. Podría evitar el crear la orden por completo así, si uso el hook que comenté en un inicio, y uso la data de la session como lo hiciste. Debería tener el costo del shipping igual, no?. |
buena pregunta... En todo caso sería mas bonito no crear la orden... voy a ver si se encuentra el costo de envio... pero en realidad la prueba de :0 (el id completo es 'chilexpress:0') es suficiente segun yo, ya que ese :0 solo queda seteado si hay un error en la API |
Aqui encontre algo que incluye el shipping_method_id y la tarifa de costo de envio:
|
Lo tengo, de nuevo :) No, el :0 al final en realidad es una ID que WC pone en los métodos de envío dependiendo del orden en el que están acá: http://prntscr.com/jcx0or http://prntscr.com/jcx16c Luego de eso, usando WC() (gracias por el ayuda memoria), puedo obtener el total del shipping antes de crear la orden. Moví el hook de vuelta a woocommerce_before_checkout_process con eso. Ahora no crea la orden. Va actualización, de nuevo. |
El detalle 28a9e30 Arriba la versión 1.3.12 Gracias por la ayuda, estimado! |
perfecto... muchas gracias... con eso estamos. |
un PD: La prueba que yo hacia tiene que ver con esto: PERO EN EL FONDO LA PRUEBA POR EL COSTO '0' y metodo de envio = chilexpress ES LO MISMO. |
En un sistema productivo el cliente me avisó ayer de una compra que entró con costo de envio cero y la indicación Chilexpress (Sin servicio)
Sin poder hacer mayor analysis, asumo que en un momento la api de chilexpress estaba caida, porque es el primer caso en 4 meses.
El plugin al parecer no posee un mecanismo de bloqueo para este caso, en el cual no hay costo de envio por la API, es decir el cliente igual puede finalizar la compra, pese que diga costo "0"
No se puede bloquear por ultimo el boton de finalizar compra mientras este elegido "Chilexpress (Sin servicio)"???
Acabo de hacer una prueba en un sistema de desarrollo mio, modificando el codigo del plugin para que me devuelva siempre "Chilexpress, sin servcio, costo 0"
Y efectivamente se puede pasar al proceso de pago sin ningun inconveniente.
A la rapida (sin haber revisado el codigo del plugin al respecto, veo solo dos opciones: rechazar la verificacion de envio de datos si chilexpress esta sin servicio.
No una opcion, pensaba en verificar en la pagina de pago cual metodo de envio esta elegido, pero no funciona ya que en ese momento el pedido ya esta finalizado...
Si averiguo algo lo posteo tambien, es decir voy a ver también como solucionarlo elegantemente
The text was updated successfully, but these errors were encountered: