[WooCommerce] Thiết lập các plugin cache

Bài này thuộc phần 29 của 32 phần trong serie Học Woocommerce

Nếu bạn sử dụng plugin tạo bộ nhớ đệm (cache) để tăng tốc website như WP Super Cache, W3 Total Cache, Zen Cache, WP-FFPC,….sẽ gặp phải một vấn đề đó là các trang như giỏ hàng, thanh toán,…sẽ bị lưu cache nên khách gặp khó khăn trong việc sử dụng. Vì vậy tốt hơn hết, chúng ta hãy thêm danh sách những trang đặc biệt đó vào danh sách không lưu cache trong các plugin. Nếu bạn vẫn chưa biết làm thế nào thì bài hướng dẫn này sẽ giúp bạn.

Đối với WP Super Cache

Nếu bạn đang sử dụng WP Super Cache thì bạn hãy vào Settings -> WP Super Cache -> Advanced và tìm đến phần như ảnh bên dưới và nhập tên slug của trang cần loại trừ lưu cache vào.

Thiết lập WP Super Cache cho WooCommerce

Thiết lập WP Super Cache cho WooCommerce

Sau đó ấn Save Strings.

Đối với W3 Total Cache

Bạn vào Performence -> Page Cache và tìm đến phần “Never cache the following pages” rồi điền đường dẫn các trang cần loại bỏ lưu cache vào.

woocoomerce-w3totalcache

Thiết lập W3 Total Cache cho WooCommerce

Đối với Zen Cache

Bạn tìm tới mục URI Exclusion Patterns và khai báo vào như hình dưới.

woocoomerce-zencache

Thiết lập Zen Cache cho WooCommerce.

Đối với WP-FFPC

Bạn vào mục Cache exceptions và điền vào phần “Don’t cache following URL paths – use with caution!“.

woocoomerce-ffpc

Thiết lập FFPC cho WooCommerce.

Đối với máy chủ sử dụng EasyEngine

Nếu bạn đang dùng EasyEngine thì có thể sẽ cần phải sửa tập tin cấu hình cache mà bạn đang sử dụng. Ví dụ bạn sử dụng loại thiết lập --wpfc thì hãy vào thư mục /etc/nginx/common và tìm tập tin wpfc.confwpfc-hhvm.conf rồi thêm đoạn sau vào trên location / {.

# Skip cache on WooCommerce pages
if ($request_uri ~* "/store.*|/cart.*|/my-account.*|/checkout.*|/addons.*") {
 set $skip_cache 1;
}

# Skip cache for WooCommerce query string
if ( $arg_add-to-cart != "" ) {
 set $skip_cache 1;
}

# Skip cache when WooCommerce cart is not empty
if ( $cookie_woocommerce_items_in_cart != "0" ) {
 set $skip_cache 1;
}

Nếu chèn đúng thì nó sẽ trông giống thế này.

# 

set $skip_cache 0;

# POST requests and URL with a query string should always go to php
if ($request_method = POST) {
 set $skip_cache 1;
}

if ($query_string != "") {
 set $skip_cache 1;
}

# Don't cache URL containing the following segments
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|wp-.*.php|index.php|/feed/|sitemap$
 set $skip_cache 1;
}

# Don't use the cache for logged in users or recent commenter
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_n$
 set $skip_cache 1;
}

# Skip cache on WooCommerce pages
if ($request_uri ~* "/store.*|/cart.*|/my-account.*|/checkout.*|/addons.*") {
 set $skip_cache 1;
}

# Skip cache for WooCommerce query string
if ( $arg_add-to-cart != "" ) {
 set $skip_cache 1;
}

# Skip cache when WooCommerce cart is not empty
if ( $cookie_woocommerce_items_in_cart != "0" ) {
 set $skip_cache 1;
}

# Use cached or actual file if they exists, Otherwise pass request to WordPress
location / {
 try_files $uri $uri/ /index.php?$args;
}

location ~ ^/wp-content/cache/minify/(.+\.(css|js))$ {
 try_files $uri /wp-content/plugins/w3-total-cache/pub/minify.php?file=$$
}

location ~ \.php$ {

 set $rt_session "";

 if ($http_cookie ~* "wc_session_cookie_[^=]*=([^%]+)%7C") {
 set $rt_session wc_session_cookie_$1;
 }

 if ($skip_cache = 0 ) {
 more_clear_headers "Set-Cookie*";
 set $rt_session "";
 }

 fastcgi_cache_key "$scheme$request_method$host$request_uri$rt_session";

 try_files $uri =404;


 include fastcgi_params;
 fastcgi_pass php;

 fastcgi_cache_bypass $skip_cache;
 fastcgi_no_cache $skip_cache;

 fastcgi_cache WORDPRESS;
}

location ~ /purge(/.*) {
 fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
}

Sau đó nhớ khởi động lại NGINX nhé.

sudo service nginx restart

Ở trên là các thiết lập plugin cache thông dụng để sử dụng tốt với WooCommerce. Nếu bạn đang dùng plugin cache nào đó mà không có trong danh sách này thì hãy vào hoidap.thachpham.com yêu cầu trợ giúp nhé.

Thạch Phạm

Đam mê với web và lập trình, thích viết và chia sẻ, nghiện cà phê và xăm mình, hứng thú với nhạc dân ca và nhạc không lời.

Xem thêm bài viết Subscribe

Để lại bình luận

2 Bình luận trên "[WooCommerce] Thiết lập các plugin cache"

avatar
Sắp xếp theo:   mới nhất | cũ nhất | đánh giá nhiều
Hưng
Khách

Mình dùng WP Fastest Cache thì thiết lập bỏ cache ở đâu vậy bạn.
Vì cài WP Super Cache nhưng không được, Mình đã add vào y chang như hướng dẫn của Thạch, báo đã thành công hết nhưng test thì không thấy @@ nên chuyển qua dùng WP Fastest Cache.

wpDiscuz
menu
menu