Buenos días,
Hace un rato me llegó un aviso de error de Wordpress, concretamente en la página nav-menus.php. Lo comprobé y no puedo editar los menús existentes ni crear ninguno nuevo.
Desde el soporte de webempresa me dicen que los errores aparecen en dos líneas del archivo functions.php que modifiqué hace unos días para añadir dos métodos de pago a excluir en el método de envío "recogida en local", concretamente redsys y bizum. Hasta ahora el código funcionaba bien y no daba este error, fue al incluir las dos líneas nuevas de exclusiones cuando empezó a ocasionar el problema.
El código completo es este:
/**
* Eliminar formas de pago telematicas para recogida en tienda
*/
function my_custom_available_payment_gateways( $gateways ) {
$chosen_shipping_rates = WC()->session->get( 'chosen_shipping_methods' );
// When 'local pickup' has been chosen as shipping rate
if ( in_array( 'local_pickup:224', $chosen_shipping_rates ) ) :
// Quitar transferencia bancaria
unset( $gateways['bacs'] );
// Quitar PayPal
unset( $gateways['paypal'] );
// Quitar Tarjeta
unset( $gateways['redsys'] );
// Quitar Bizum
unset( $gateways['bizum'] );
endif;
return $gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'my_custom_available_payment_gateways' );
Los errores los detecta en estas líneas:
43 $chosen_shipping_rates = WC()->session->get( 'chosen_shipping_methods' );
46 if ( in_array( 'local_pickup:224', $chosen_shipping_rates ) ) :
¿Podrían echarme una mano a detectar dónde puede estar el error?
Muchas gracias y un saludo
Hola Natalia.
Pues decirme para qué dominio es la consulta, veo que tienes varios dominios y no se exactamente a qué dominio haces referencia.
Un saludo
@pepesoler Perdona, pensaba que lo había indicado. Es www.discosaltafidelidad.es
Hola Natalia,
En este caso podrías probar si con el siguiente codigo no te genera el error, prueba comentar el código que tienes anteriormente para desactivar los métodos de pago cuando se seleccione recogida local y prueba añadir el siguiente
/**
* Filtrar pasarelas de pago por metodo de envio
*/
add_filter( 'woocommerce_available_payment_gateways', 'mis_pasarelas_disponibles' );
function mis_pasarelas_disponibles( $available_gateways ) {
global $woocommerce;
if ( !is_admin() ) {
$chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
$chosen_shipping = $chosen_methods[0];
if ( isset( $available_gateways['bacs'] ) && 0 === strpos( $chosen_shipping, 'local_pickup' ) ) {
unset( $available_gateways['bacs'] );
unset( $available_gateways['paypal'] );
unset( $available_gateways['redsys'] );
unset( $available_gateways['bizum'] );
}
}
return $available_gateways;
}
Luego comprueba si con ello los métodos se desactivan y no te genera el error con los menús.
PD: Recuerda realizar una copia de seguridad de tu sitio web antes de realizar cualquier cambio, de esta forma si se genera algún error puedes restaurarla -> https://www.webempresa.com/blog/backups-wordpress-en-2-minutos-con-all-in-one-migration.html
Un Saludo
Un millón de gracias, @karen. El código funciona perfectamente y ya puedo editar los menús.
Hola Natalia,
Enhorabuena ha funcionado, encantados de poder ayudarte 😀 , nos pone muy contentos que nuestros clientes estén felices con nuestro trabajo. 🤩
¿Te importaría dedicarle un minuto a dejarnos una reseña / opinión en TrustPilot, Facebook o Google, lo que te vaya mejor?
TrustPilot: https://es.trustpilot.com/evaluate/webempresa.com
Facebook: https://www.webempresa.com/testimonio-facebook
Google: https://www.webempresa.com/testimonio-google
Nos ayudaría a que otr@s usuarios se decidan por nosotr@s si saben lo que nos decís.
Gracias de parte de todo el equipo.
Escríbenos si tienes cualquier otra consulta
Un saludo 😊