Trong quá trình sử dụng website WordPress đôi lúc bạn sẽ gặp tình trạng đầy dung lượng đột ngột. Trong khi website bạn không có quá nhiều dung lượng. Vậy thì vấn đề full dung lượng do đâu?
Trong Woocommerce, có tồn tại một Action Scheduler (bộ lập lịch hành động) là một thành phần của plugin Woocommerce để quản lý và theo dõi các hành động được lên lịch sẵn. Khi một tác vụ công việc được kích hoạt, nó sẽ được xử lý ngầm theo cách hoàn toàn tự động.
Bộ lập lịch hành động sẽ ghi lại nhật ký công việc mà bạn có thể xem chi tiết trong tab Scheduled Actions ở phần Status của Woocommerce. Trong database dữ liệu được lưu trữ trong bảng wp_actionscheduler_actions
và wp_actionscheduler_logs
( lưu ý phần tiền tố “wp_” là mặc định, có thể khác với prefix website bạn tự đặt). Lâu ngày có thể các tác vụ công việc sẽ ngày một nhiều hơn và khiến cho cơ sở dữ liệu trở nên cồng kềnh và làm chậm website của bạn.
Đối với những tác vụ đã hoàn thành (complete), bị lỗi (failed) hoặc bị htải củy (canceled) thì các bạn nên xóa đi để giảm ho cơ sở dữ liệu. Và sau đây là các cách “dọn dẹp” database của bạn
1. Empty trực tiếp trong phpMyAdmin
2. Dùng dòng lệnh SQL để thực thi
Cách 1 phía trên được coi là cách đơn giản nhất, hiệu quả ngay và không cần suy nghĩ gì. Tuy nhiên, để xoá từng thành phần thì bạn có thể dùng lần lượt các câu lệnh SQL dưới đây
DELETE FROM 'wp_actionscheduler_actions' WHERE 'status' = 'complete' DELETE FROM 'wp_actionscheduler_actions' WHERE 'status' = 'canceled' DELETE FROM 'wp_actionscheduler_actions' WHERE 'status' = 'failed'
Mỗi một dòng lệnh tương đương với 1 lệnh xoá tình trạng tương đương
Không nên xoá các hành động đang chờ hoạt động, nó nằm ở trạng thái “Pending”.
3. Viết hàm tự xử lý theo thời gian định trước
Đây là cách nhàn nhất vì hệ thống sẽ tự động thực hiện việc “dọn dẹp” này. Tuỳ theo nhu cầu thì bạn có thể đặt thời gian tương đương. Mặc định hệ thống Woocommerce thì sẽ lưu trong vòng 30 ngày, bạn có thể để nó dọn chỉ trong 1 ngày hoặc 7 ngày, tương ứng với các đoạn code dưới đây
# Tự động xoá nhật ký hành động đã sắp xếp trong 7 ngày add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' ); function wpb_action_scheduler_purge() { return WEEK_IN_SECONDS; }
# Tự động xoá nhật ký hành động đã sắp xếp trong 1 ngày add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' ); function wpb_action_scheduler_purge() { return DAY_IN_SECONDS; }
4. Thay đổi Storage Engine Database
Bạn hãy thay đổi kiểu bảng từ InnoDB sang MyISAM để hoàn tất.
Như vậy mình đã hoàn tất Hướng dẫn xoá Action Scheduler trong WooCommerce.
Chúc các bạn thực hiện thành công!
Tổng hợp!
Quét mã QR để đọc bài viết này để xem tiếp trên điện thoại