Grote WooCommerce database opschonen

02-02-2021

wordpress

De WooCommerce Action Scheduler genereert geplande acties die regelmatig (kunnen) vastlopen met een mislukte, geannuleerde, in behandeling zijnde maar ook met de voltooide status. Dit kan resulteren in enorm grote databasetabellen, met name de wp_actionscheduler_actions kan heel groot worden (en in mindere mate de wp_actionscheduler_logs tabel). De acties met de status mislukt, geannuleerd of voltooid kun je veilig verwijderen uit de wp_actionscheduler_actions tabel. Die doe je vrij gemakkelijk via phpMyadmin of een andere database tool door deze query te draaien:

DELETE FROM `wp_actionscheduler_actions` WHERE `status` IN ('canceled', 'failed', 'complete');

Dan is er nog een query voor de pending status:

DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'pending'

Met deze dien je wat voorzichtiger om te gaan aangezien er wellicht acties momenteel lopend zijn. Je kunt dit checken in de WordPress backend via WooCommerce> Status> Geplande acties.

Voor de wp_actionscheduler_logs tabel geldt; als deze grote vormen begint aan te nemen kun je deze gewoon leeg maken.

Voltooide acties worden normaal gesproken na 30 dagen verwijderd door de actieplanner, maar er is een filter dat die instelling kan wijzigen. Dit doe je via je functions.php bestand in je template map of je maakt een losse plugin. Hierin plaats je de volgende code:

add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
/*
* Change Action Scheduler default purge to 1 week
*/
function wpb_action_scheduler_purge() {
  return WEEK_IN_SECONDS;
}
Kom je er alsnog niet uit en heb je hulp nodig? Aarzel niet om contact op te nemen!
About image