自动删除woocommerce客户会话和瞬态

时间:2015-06-29 13:16:26

标签: wordpress woocommerce

我的客户网站之一放慢了太多,等待时间为6到7秒。我找到了根本原因,因为wp_options table填充了大量客户会话数据,将表大小增加到1.7 GB。删除200万行需要6-7个小时。我知道我现在可以通过转到Woocomerce > System Status > Tools > Clear all会话&手动删除会话和瞬变。明确的瞬态,但我希望它在一两天后自动完成。有没有什么可以像创建cron job等那样做? 感谢

2 个答案:

答案 0 :(得分:2)

也许你应该尝试这个插件:

Delete Expired Transients

答案 1 :(得分:1)

很久以后,但那个遮阳篷可以帮助某人

下面的代码将每天(从您当前的时间)执行干净的会话/购物车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()