Avisos
Vaciar todo

[Resuelto] Error grave Plugin Woocommerce  

 
Gabriel
 Gabriel
Reputable Member

Buenos días,

En el subdominio, donde tengo instalado Woocommerce, ayer tarde ví que empezó a funcionar de forma muy extraña todo el proceso de compra, bueno, mejor dicho, dejó de funcionar (no se actualizaban los cambios en el carrito, no se podía finalizar compra, no funcionaban las pasarelas de pago, ..). No daba error pero no funcionaba bien.

Al intentar entrar en el Panel de Administración me daba error (pantalla en blanco), así que mediante Wepanel he ido desactivando los plugins y probando hasta que he detectado que el que provoca el problema es Woocommerce v8.5.2. Lo he dejado desactivado y he sacado una copia mediante Wepanel-PhpMyAdmin he exportado copia de la base de datos (como precaución).

Antes de hacer nada he querido consultaros los pasos que me recomendais seguir.

Gracias

Contenido solo visible a usuarios registrados

Respondido : 15/02/2024 8:44 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Gabriel.

Revisando los log veo el siguiete error:

[15-Feb-2024 09:41:49 UTC] PHP Fatal error: Uncaught Error: Call to a member function get_cart() on null in /home/espanolc/public_html/escuela/wp-content/themes/Divi-child/functions.php:186
Stack trace:
#0 /home/espanolc/public_html/escuela/wp-content/themes/Divi-child/functions.php(199): is_product_in_cart()
#1 /home/espanolc/public_html/escuela/wp-includes/class-wp-hook.php(324): payment_gateway_disable_product()
#2 /home/espanolc/public_html/escuela/wp-includes/plugin.php(205): WP_Hook->apply_filters()
#3 /home/espanolc/public_html/escuela/wp-content/plugins/woocommerce/includes/class-wc-payment-gateways.php(333): apply_filters()
#4 /home/espanolc/public_html/escuela/wp-content/plugins/woocommerce/src/Admin/Features/OnboardingTasks/Tasks/Payments.php(93): WC_Payment_Gateways->get_available_payment_gateways()
#5 /home/espanolc/public_html/escuela/wp-content/plugins/woocommerce/src/Admin/Features/OnboardingTasks/Tasks/Payments.php(71): Automattic\WooCommerce\Admin\Features\OnboardingTasks\Tasks\Payments::has_gateways()
#6 /home/espanolc/public_html/escuela/wp-content/plugins/woocommerce/src/Admin/Features/OnboardingTasks/Tasks/WooCommercePayments.php(125): Automattic\WooCommerce\Admin\Features\OnboardingTasks\Tasks\Payments->is_complete()
#7 /home/espanolc/public_html/escuela/wp-content/plugins/woocommerce/src/Admin/Features/OnboardingTasks/TaskList.php(304): Automattic\WooCommerce\Admin\Features\OnboardingTasks\Tasks\WooCommercePayments->can_view()
#8 [internal function]: Automattic\WooCommerce\Admin\Features\OnboardingTasks\TaskList->Automattic\WooCommerce\Admin\Features\OnboardingTasks\{closure}()

 

Este error hace referencia a un codigo que tienes en el archivo functions.php del tema hijo de tu plantilla, concretamente es este el que está dando el error:

/* Quitar métodos de pago
* Oculta las pasarelas de pago disponibles por producto
* Añade este codigo a tu plugin de funciones o el archivo functions.php del tema activo
* En el ejemplo se desactiva la pasarela de TRANSFERENCIA BANCARIA (bacs) pero
* tambien puedes desactivar otras como Paypal (paypal), contrareembolso (cod) o Stripe (stripe), por ejemplo
* Cambia los IDs de producto de ejemplo en el array $prodids, p.ej. $prodids=array(237737,237738);
*/

//Primero comprobamos si el producto esta disponible o no en el carrito.

function is_product_in_cart( $prodids ){

$product_in_cart = false;

foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {

$product = $cart_item['data'];

    if ( in_array( $product->id, $prodids ) ) {
        $product_in_cart = true;
}
}

return $product_in_cart;

}

//  Luego ya desactivamos la pasarela que queramos por ID de producto. Cambia los números de ID en el array $prodids

function payment_gateway_disable_product( $available_gateways ) {

global $woocommerce;

//print_r( $available_gateways );

$prodids=array(237737,237738);

if ( isset( $available_gateways['bacs'] ) && is_product_in_cart( $prodids ) ) {
  unset(  $available_gateways['bacs'] );
}
return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_product' );

 

Prueba a eliminar o comentar este bloque de código y revisa si se soluciona.

 

Un Saludo

 

Respondido : 15/02/2024 9:53 am

Cursos Gratuitos WordPress

Gabriel
 Gabriel
Reputable Member

@pepesoler Sí, error mío, ya he eliminado esas líneas del functions.php y también otra en el wp-config.php por un comando duplicado DISALLOW_FILE_EDIT, ya puedo acceder al BackEnd y retomo el problema original que estoy teniendo desde hace un par de días con Woocommerce. No funciona correctamente el proceso de compra (no se actualizan los cambios en el carrito, no se puede finalizar compra, no funcionan las pasarelas de pago, ..). Ya no da error pero no se pueden realizar compras.

Cuando pulso en "¿YA eres cliente? no hace nada.

Captura01

No se actualiza el carrito, ni se pueden eliminar los productos

 

Captura02

  No funciona stripe, no puedo introducir los datos d ela tarjeta...

Captura03

No sé si me podeís orientar.

Gracias

Respondido : 15/02/2024 11:01 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Gabriel.

Pues creo que el problema lo tienes en el plugin Wordfence.

Hemos desactiva el plugin y vemos que carga, lo hemos vuelta activar y al parecer se soluciono:

screenshot escuela.espanolconcarmen.com 2024.02.15 12 27 01

.- Actualiza el plugin que veo que no está actualizado.

 

Un Saludo

Respondido : 15/02/2024 11:28 am

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

Gabriel
 Gabriel
Reputable Member

Sí, actualizaré el plugin. Ya parece que funciona pero veo que siguen existiendo errores por comandos obsoletos, intentaré ver de dónde pueden venir, a ver si puedo corregirlos.

Si veo que necesito más ayuda, abriré nuevo ticket, muchisimas gracias!

Respondido : 15/02/2024 1:22 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Gabriel.

Genial !!! Me alegra que lo solucionaras.

Cualquier consulta que tengas no dudes en comunicarlo.

 

Un Saludo

Respondido : 15/02/2024 2:00 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress