whooohq / whq-woocommerce-chilexpress-shipping

Chilexpress Shipping method for WooCommerce / Agrega Chilexpress como método de envío para WooCommerce
https://wordpress.org/plugins/woo-chilexpress-shipping/
GNU General Public License v2.0
23 stars 12 forks source link

Problema con mapeo servicio express #209

Closed PatrickCaneloDigital closed 3 years ago

PatrickCaneloDigital commented 3 years ago

Un cliente me acaba de avisar de un problema... Al probar regiones remotas como Antofagasta, Iquique o Arica y tener definido nuevos nombres para el servicio

El servicio 5 extendido (parece que chilexpress en ciertas comunas lo nombra extremo) nunca queda mapeado sino se mapea el servicio express.

Razon por eso es que el "express" siempre hace el stringif con "Chilexpress" y por ende el servicio extendido (en alto hospicio me lo llama extremo) nunca queda mapeado.

Adicionalmente a eso: el "SIN SERVICIO" tambien mapeaba con "express" porque el haystack contiene Chilexpress Por ende sugiero el siguiente cambio a) reordenar los servicios incluyendo extremo y SIN SERVICIO b) express tiene que ir al final porque sino será siempre mapeado cuando el nombre completo contenga Chilexpress b) en vez de ocupar if ocupar elsif, asi cuando mapee un item, no tratará de mapear por segunda vez el express

`if (stripos($values[1], 'ultra rapido') !== false) { write_log('ultra rapido !== false'); $values[1] = $this->title . ' (' . $renames[0] . ')'; }

                        elseif (stripos($values[1], 'overnight') !== false) {
                            write_log('overnight !== false');
                            $values[1] = $this->title . ' (' . $renames[1] . ')';
                        }

                        elseif (stripos($values[1], 'prioritario') !== false) {
                            write_log('prioritario !== false');
                            $values[1] = $this->title . ' (' . $renames[2] . ')';
                        }

                        elseif (stripos($values[1], 'extremos') !== false) {
                            write_log('extremos !== false');
                            $values[1] = $this->title . ' (' . $renames[4] . ')';
                        }

                        elseif (stripos($values[1], 'extendido') !== false) {
                            write_log('extendido !== false');
                            $values[1] = $this->title . ' (' . $renames[4] . ')';
                        }

                        elseif (stripos($values[1], 'sin servicio') !== false) {
                            write_log('sin servicio !== false');
                            $values[1] = $this->title . ' (SIN SERVICIO)';
                        }

                        elseif (stripos($values[1], 'express') !== false) {
                            write_log('express !== false');
                            $values[1] = $this->title . ' (' . $renames[3] . ')';
                        }`
TCattd commented 3 years ago

@PatrickCaneloDigital gracias por la ayuda con esto. De verdad. Muchas gracias. Consulta, ¿tu snippet está probado en producción ya?

PatrickCaneloDigital commented 3 years ago

de nada estimado, para eso estamos...

si, el cliente lo acaba de probar

TCattd commented 3 years ago

Gracias!

Publicada la versión 1.4.32 con el arreglo.

Ahora el renombrado de servicios acepta los 7 tipos de respuestas de servicio: Ultra Rápido, Overnight, Prioritario, Express, Extendido, Extremos, Sin Servicio.

El plugin fija unos defaults en caso que se actualice desde una versión anterior y solo tengan 5 renombrados configurados (para que el 6to y 7mo funcionen igual).

PatrickCaneloDigital commented 3 years ago

Estimado, acabo de revisar la clase y el servicio express tiene que ir al final de los else if si o si... (porque siempre mapea con Chilexpress) sino pasa que el servicio "Despacho con Chilexpress (EXTREMO)" (5) igual es mapeado a "express" (4)

Aqui el debug log donde lo descubrí: [15-Jan-2021 21:14:24 UTC] [WCCHP]$values[1] > A Domicilio Chilexpress (EXTREMOS) [15-Jan-2021 21:14:24 UTC] [WCCHP]$renames[0] > Ultra Rápido [15-Jan-2021 21:14:24 UTC] [WCCHP]$renames[1] > Overnight [15-Jan-2021 21:14:24 UTC] [WCCHP]$renames[2] > Despacho de 3 a 7 días hábiles [15-Jan-2021 21:14:24 UTC] [WCCHP]$renames[3] > Despacho de 4 a 10 días hábiles [15-Jan-2021 21:14:24 UTC] [WCCHP]$renames[4] > Despacho de 5 a 15 días hábiles [15-Jan-2021 21:14:24 UTC] [WCCHP]extremos !== false [15-Jan-2021 21:14:24 UTC] [WCCHP]express !== false

el nombre del metodo es "A Domicilo Chilexpress" (en este caso me parece que el cliente lo nombró así grafik

Por eso el stripos para express idealmente va al final ya que en este caso el nombre del servicio es mas probable que haya sido elegido por el admin como titulo

grafik

TCattd commented 3 years ago

Sorry @PatrickCaneloDigital Arreglado en 1.4.33