Hướng Dẫn Xóa Hàng Loạt Sản Phẩm Cũ Trong WooCommerce Bằng Code PHP

22/09/2024
12 Phút đọc
105 Lượt xem
Đánh giá
4.4/5 - (100 bình chọn)

Trong quá trình vận hành một cửa hàng trực tuyến trên WooCommerce, việc quản lý kho sản phẩm là rất quan trọng. Đặc biệt, nếu bạn cần xóa các sản phẩm cũ không còn sử dụng hoặc không còn bán nữa, bài viết này sẽ hướng dẫn cách tự động xóa các sản phẩm cũ trước một ngày cố định bằng cách sử dụng đoạn code PHP dưới đây.

1. Giới thiệu về đoạn code xóa sản phẩm cũ

Đoạn code này giúp bạn xóa sản phẩm cũ trong WooCommerce dựa trên ngày tạo của sản phẩm. Các sản phẩm được tạo trước ngày 18/08/2024 sẽ bị xóa tự động, bao gồm cả hình ảnh đính kèm sản phẩm. Điều này giúp dọn dẹp kho sản phẩm cũ, giải phóng dung lượng lưu trữ trên hosting, và giữ cho trang web luôn sạch sẽ, gọn gàng.

Huong Dan Xoa San Pham Cu Trong WooCommerce Bang Code PHP Muathemewpgiare
Hướng Dẫn Xóa Sản Phẩm Cũ Trong WooCommerce Bằng Code PHP

2. Giải thích chi tiết từng phần của code

2.1. Hàm delete_old_products

Đây là hàm chính, chịu trách nhiệm xóa các sản phẩm cũ.

2.2. Hàm delete_all_attached_media

Hàm này được dùng để xóa tất cả các hình ảnh và tệp tin đính kèm với sản phẩm trước khi xóa sản phẩm.

3. Chi tiết các bước hoạt động của đoạn code

Bước 1: Xác định các sản phẩm cũ

  • Đầu tiên, hàm delete_old_products() sẽ tạo một query để lấy tất cả sản phẩm có ngày tạo trước 18/08/2024.
  • Query này chỉ lấy ID của các sản phẩm để tăng tốc độ xử lý.

Bước 2: Xóa các sản phẩm cũ

  • Với mỗi ID sản phẩm lấy được, hàm sẽ:
    • Xóa toàn bộ hình ảnh và file đính kèm của sản phẩm bằng cách sử dụng hàm delete_all_attached_media().
    • Sau đó, sử dụng hàm wp_delete_post() để xóa sản phẩm khỏi cơ sở dữ liệu WooCommerce.

Bước 3: Đảm bảo dữ liệu được reset

  • Cuối cùng, sau khi hoàn thành quá trình xóa, hàm wp_reset_postdata() được gọi để đảm bảo không ảnh hưởng đến các query khác trong WordPress.

4. Tại sao nên sử dụng đoạn code này?

  • Tiết kiệm thời gian: Thay vì phải thủ công kiểm tra và xóa từng sản phẩm cũ, bạn có thể tự động hóa quá trình này.
  • Giải phóng dung lượng lưu trữ: Khi xóa các sản phẩm cũ và các hình ảnh đính kèm, bạn sẽ giải phóng được không gian lưu trữ trên máy chủ, giúp website hoạt động trơn tru hơn.
  • Quản lý kho hàng hiệu quả: Đoạn code này giúp bạn duy trì kho sản phẩm gọn gàng, xóa bỏ những sản phẩm không còn sử dụng.

5. Cách áp dụng đoạn code

  • Bạn có thể thêm đoạn code này vào file functions.php của theme đang sử dụng hoặc tạo thành một plugin riêng để quản lý việc xóa sản phẩm cũ.
  • Để chạy hàm này tự động theo chu kỳ (ví dụ mỗi tháng), bạn có thể sử dụng WordPress Cron Jobs để lên lịch tự động thực hiện.

6. Lưu ý khi sử dụng

  • Xóa vĩnh viễn: Đoạn code sử dụng wp_delete_post() với tham số true, có nghĩa là các sản phẩm sẽ bị xóa vĩnh viễn, không vào thùng rác. Bạn nên sao lưu dữ liệu trước khi chạy.
  • Ngày sản phẩm cũ: Bạn có thể thay đổi ngày giới hạn trong before => '2024-08-18' thành bất kỳ ngày nào bạn muốn để tùy chỉnh việc xóa sản phẩm.

Lưu ý quan trọng trước khi sử dụng đoạn code

Trước khi thực hiện đoạn code xóa sản phẩm cũ trong WooCommerce, có một số bước quan trọng bạn cần thực hiện để đảm bảo an toàn và tránh mất dữ liệu:

6.1. Sao lưu dữ liệu toàn bộ website

  • Sao lưu toàn bộ cơ sở dữ liệu: Đảm bảo bạn có một bản sao lưu đầy đủ của cơ sở dữ liệu WordPress, bao gồm tất cả sản phẩm, đơn hàng, và thông tin liên quan khác.
  • Sao lưu thư mục media: Vì đoạn code sẽ xóa cả sản phẩm và hình ảnh đính kèm, hãy sao lưu thư mục wp-content/uploads nơi chứa tất cả các tệp tin media.Công cụ hỗ trợ sao lưu:
    • Sử dụng plugin sao lưu tự động như UpdraftPlus, Duplicator, hoặc All-in-One WP Migration để tạo bản sao lưu.
    • Nếu bạn có quyền truy cập cPanel hoặc hosting, bạn cũng có thể tải xuống toàn bộ thư mục và cơ sở dữ liệu từ đó.

6.2. Kiểm tra kỹ sản phẩm cần xóa

  • Xác định rõ thời điểm giới hạn xóa sản phẩm trong đoạn code. Thay đổi ngày trong đoạn before => '2024-08-18' sao cho phù hợp với nhu cầu thực tế của bạn.
  • Để chắc chắn, bạn có thể chạy thử một query kiểm tra các sản phẩm sẽ bị xóa mà không thực hiện xóa thực tế. Cách đơn giản là chỉ chạy query và in ra danh sách sản phẩm trước khi xóa.

Ví dụ:

6.3. Kiểm tra môi trường thử nghiệm (staging)

  • Test trên môi trường thử nghiệm: Trước khi áp dụng trực tiếp lên trang web chính, hãy chạy thử đoạn code trên môi trường thử nghiệm (staging) để đảm bảo mọi thứ hoạt động chính xác và không có lỗi xảy ra.
  • Sao lưu môi trường thử nghiệm để dễ dàng khôi phục nếu cần.

6.4. Thay đổi tạm thời để kiểm tra kết quả trước khi xóa

  • Trước khi xóa vĩnh viễn, có thể thay đổi đoạn wp_delete_post( $product_id, true ); thành wp_trash_post( $product_id ); để các sản phẩm bị chuyển vào thùng rác thay vì bị xóa hoàn toàn. Điều này cho phép bạn kiểm tra sản phẩm nào sẽ bị xóa và có thể khôi phục nếu cần.

6.5. Lưu ý về thời gian chạy và tài nguyên

  • Hạn chế thời gian chạy: Nếu bạn có một số lượng sản phẩm lớn cần xóa, đoạn code có thể gây ảnh hưởng đến hiệu suất của website. Hãy cân nhắc chạy đoạn code vào những thời điểm ít khách hàng truy cập hoặc chia thành từng đợt xóa để giảm tải cho máy chủ.

6.6. Theo dõi và kiểm tra sau khi xóa

  • Sau khi chạy code xóa, hãy kiểm tra lại kho sản phẩm và đảm bảo rằng các sản phẩm cần xóa đã được xử lý chính xác.
  • Kiểm tra xem hình ảnh và file đính kèm đã được xóa đúng cách, và không còn sản phẩm cũ nào tồn tại trên website.

7. Đoạn code hoàn chỉnh

Chúc các bạn thành công.

 

Thông báo chính thức: Muathemewpgiare chân thành mong muốn được đồng hành và hỗ trợ tốt nhất cho các khách hàng trong quá trình sử dụng giao diện WordPress. Vì vậy, khi mua những theme wordpress tại chúng tôi, chúng tôi cam kết hỗ trợ quý khách hàng hết sức có thể.

Chúng tôi hiểu rằng sự lựa chọn của quý khách là rất quan trọng. Việc mua source code tại chúng tôi không chỉ giúp đảm bảo chất lượng mà còn nhận được sự hỗ trợ tận tâm từ Muathemewpgiare. Chúng tôi rất mong quý khách cân nhắc kỹ, tránh những rủi ro không đáng có khi mua các source code không rõ nguồn gốc. Chúng tôi luôn sẵn sàng hỗ trợ và đồng hành cùng quý khách. Xin chân thành cảm ơn!

Để lại một bình luận