Avisos
Vaciar todo

[Resuelto] Ha habido un error crítico en esta web | Esto sólo aparece en Análisis de Woocommerce  

 
Rosa Carolina
 Rosa Carolina
Usuario activo

Hola!
Cómo están?

Tengo un caso muy raro, tengo un error crítico pero sólo en el apartado de Análisis de Wocommerce, luego todo funciona perfecto y entran los pedidos sin drama.

Esto no me permite saber como voy en las ventas y el problema es una línea de código.
Cómo puedo agregar una variable para qué no lea esto si no es en la página de finalizar compra?  
Sólo quiero que lo lea en esa página (Finalizar-compra), osino trae problemas ya que Wc_costumer no existe y da nulo.

add_filter('woocommerce_available_payment_gateways','deshabilitar_por_ciudad',10,1);

function deshabilitar_por_ciudad($array_payments) {

if(WC()->customer->get_billing_state() != 'Asunción' && WC()->customer->get_billing_state() != 'Lambare' && WC()->customer->get_billing_state() != 'Fernando de la Mora' ) // Acá hay miles más pero para no alargar dejo ahí

unset($array_payments['cod']); // Deshabilito el pago en efectivo

return $array_payments;

}

 

 

Contenido solo visible a usuarios registrados

Respondido : 29/06/2021 3:25 pm
Rosa Carolina
 Rosa Carolina
Usuario activo

Luego de leer lo que les puse se me ocurrió la solución, agregué esta línea de código:

if( is_admin() )
return $available_gateways;

El código funcional y final quedó así:


/Deshabilitar pago en efectivo por ciudades
add_filter('woocommerce_available_payment_gateways','deshabilitar_por_ciudad',10,1);

function deshabilitar_por_ciudad($array_payments) {
//Para que no lea backend
if( is_admin() )
return $available_gateways;


if(WC()->customer->get_billing_state() != 'Asunción' && WC()->customer->get_billing_state() != 'Lambare' && WC()->customer->get_billing_state() != 'Fernando de la Mora' && WC()->customer->get_billing_state() != 'Loma Pyta' && WC()->customer->get_billing_state() != 'Villa Elisa' && WC()->customer->get_billing_state() != 'Zeballos' && WC()->customer->get_billing_state() != 'San Antonio' && WC()->customer->get_billing_state() != 'San Lorenzo' && WC()->customer->get_billing_state() != 'Luque' && WC()->customer->get_billing_state() != 'Mariano Roque Alonso' && WC()->customer->get_billing_state() != 'Ñemby' && WC()->customer->get_billing_state() != 'Limpio' && WC()->customer->get_billing_state() != 'Capiata' && WC()->customer->get_billing_state() != 'Ypané' && WC()->customer->get_billing_state() != 'Areguá' )
unset($array_payments['cod']); // Deshabilito el pago en efectivo

return $array_payments;
} // fin

Espero que le sirva a alguien que viva en Latinoamérica y quiera esconder algún método de pago según la ciudad, estado, país.

PD: no pongo WC()->customer->get_billing_state() = $String; //por que salta un error, así funciona perfecto hasta ahora jaja

Graciaaas!

 

Respondido : 29/06/2021 3:33 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Pepe
 Pepe
Soporte CMS Webempresa Moderator

Hola Rosa.

Ostras genial !!! me alegra qu elo solucionaras.

Muchas gracias por informarnos, estoy seguro que les vendrá muy bien a otros usuarios con el mismo problema y por supuesto a nosotros.

 

Cerramos el tema.

Un saludo y de nuevo agradecerte que aportes soluciones a el Foro.

Respondido : 29/06/2021 3:47 pm