Avisos
Vaciar todo

Reabro "woocommerce_sessions"

19 Respuestas
3 Usuarios
0 Reacciones
62 Visitas
Respuestas: 182
Reputable Member
Topic starter
 

Buenos días

Reabro la consulta que indico, por no ver opción a consultar en ella aunque me dice que no está terminada.

https://www.webempresa.com/foro/postid/487860

 

Como expuse hace unos días, la tabla indicada había subido hasta los 2,2gb y obviamente, es un disparate.

Lo solucioné por medio de las opciones de WC, pero creo y de cara a los clientes que no es la mejor forma ya que borra también los carros pendientes de compra y algunos de ellos son utilizados para hacer presupuestos (composición de PC's, temas de redes, ...)

Me preguntaba si hay algún plugin que nos permita vaciar dicha tabla a la par que mantener los carros durante x días.

Como siempre digo, gracias por vuestra ayuda.

 

PD/ He abierto ticket en el sistema porque a la vez que ha aumentado la tabla, tenemos problemas con el certificado que el servidor nos cede (quizá no tenga que ver, pero...).

Contenido solo visible a usuarios registrados


 
Respondido : 11/03/2026 6:40 am
Respuestas: 182
Reputable Member
Topic starter
 

Respondido por: Pepe

Hola Antonio.

Exacto, puedes sustituir el anterior por este

add_action('woocommerce_cleanup_sessions', 'mls_limpiar_sesiones');

function mls_limpiar_sesiones() {
global $wpdb;

// Limpiar sesiones WooCommerce expiradas
$wpdb->query(
"DELETE FROM {$wpdb->prefix}woocommerce_sessions
WHERE session_expiry < UNIX_TIMESTAMP()"
);
$wpdb->query("OPTIMIZE TABLE {$wpdb->prefix}woocommerce_sessions");

// Limpiar Action Scheduler (acciones completadas, canceladas y fallidas)
$wpdb->query(
"DELETE FROM {$wpdb->prefix}actionscheduler_actions
WHERE status IN ('complete', 'canceled', 'failed')"
);
$wpdb->query("OPTIMIZE TABLE {$wpdb->prefix}actionscheduler_actions");
}

add_action('init', function() {
if (!wp_next_scheduled('woocommerce_cleanup_sessions')) {
wp_schedule_event(time(), 'daily', 'woocommerce_cleanup_sessions');
}
});

 

Un saludo

Buenos días

Tras un finde de relax, ésta mañana observo que de las tres (3) tablas a optimizar, sólo una de ellas (actionscheduler_actions) ha sido optimizada.

Debe de haber algo en el código que no se ejecuta como debiera.

No se si es el orden de trabajo u otra cosa, pero ésta mañana la bdatos está en 1,7gb y la tabla "woocommerce_sessions" en 763Mb

 

Hago optimización de forma manual a través de woocommerce.

 


 
Respondido : 25/05/2026 5:29 am
Pepe
 Pepe
Respuestas: 42532
Illustrious Member
 

Hola Antonio.

El código se ejecuta cada 24 Horas, no se exactamente cuando se ejecutó por última vez, puedes modificar el tiempo de ejecución por ejemplo cada 12 horas:

Modifica esto:

add_action('init', function() {
if (!wp_next_scheduled('woocommerce_cleanup_sessions')) {
wp_schedule_event(time(), 'daily', 'woocommerce_cleanup_sessions');
}

 

Por esto:

add_action('init', function() {
if (!wp_next_scheduled('woocommerce_cleanup_sessions')) {
wp_schedule_event(time(), 'twicedaily', 'woocommerce_cleanup_sessions');
}
});

 

De todas formas esas tablas son las que menos te ocupan, las tablas que más te ocupan son dgwt_wcas_invindex_doclist ( tabla del plugin FiboSearch ), rank_math_internal_meta, rank_math_link_genius_audit, yoast_primary_term.

 

Si accedes a phpMyAdmin podrás ver el peso de cada tabla.

 

Un Saludo


 
Respondido : 25/05/2026 8:28 am
Respuestas: 182
Reputable Member
Topic starter
 

Buenos días

Sé de la tabla que comentas y con su volumen, la bdatos no supera 1gb (una vez optimizada)

He realizado las modificaciones propuestas y vamos a esperar unos días a ver qué tal.

Os mantengo informados.


 
Respondido : 26/05/2026 10:53 am
Pepe
 Pepe
Respuestas: 42532
Illustrious Member
 

Hola Antonio.

Ok dejo el hilo abierto.

 

Un saludo


 
Respondido : 26/05/2026 11:08 am
Página 2 / 2