我的一个客户的网站太慢了,它的等待时间是6到7秒。我找到了根本原因,这是因为wp_options table中充满了大量客户会话数据,这些数据将表大小增加到1.7 GB。删除200万行需要6-7个小时。我知道我现在可以通过转到Woocomerce > System Status > Tools > Clear all会话和清除瞬态来手动删除会话和瞬态,但我希望它在一两天后自动完成。有没有什么可以做的,比如创建cron job等等?谢谢
发布于 2015-06-29 22:01:23
也许你应该试试这个插件:
发布于 2020-11-12 22:52:13
很久以后,但是那个awnser将会帮助一些人
下面的代码将每天(从您当前的时间)执行,即clean session/cart Woocommerce。
// clean cart every day
if (!wp_next_scheduled('cron_wc_clean_cart')) {
wp_schedule_event( time(), 'daily', 'cron_wc_clean_cart' );
}
add_action ( 'cron_wc_clean_cart', 'wc_clean_session_cart' );
function wc_clean_session_cart() {
global $wpdb;
$wpdb->query( "TRUNCATE {$wpdb->prefix}woocommerce_sessions" );
$wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key='_woocommerce_persistent_cart_" . get_current_blog_id() . "';" );
wp_cache_flush();
}对于瞬态,它在wc中的函数:
wc_delete_expired_transients()https://stackoverflow.com/questions/31116753
复制相似问题