
Xoá toàn bộ review pending trong WooCommerce
Sơ đồ trang
Đây là nhật ký công việc tiếp tục trong bài trước (Code xóa dữ liệu Flamingo khi sử dụng Contact Form 7) mà tôi đã chia sẽ khi tối ưu database trong công việc tối ưu tốc độ website.
Như bài viết trước bạn thấy Flamingo tạo 28k post thì nó như nào, và website mình tối ưu khá cũ kỹ nên spam review đến tận 10k nữa thì sẽ làm database nó ì ạch cỡ nào
Xoá toàn bộ review pending trong WooCommerce
Bắt tay luôn vào việc xoá review pending trong WooCommerce với 1 số cách sau.
1. Xoá review pending thủ công
Xoá thủ công thì bạn vào https://websitecuaban.com/wp-admin/edit.php?post_type=product&page=product-reviews
rồi chọn xoá thủ công thôi :)) chắc mỏi tay
2. Sử dụng SQL query (cách nhanh nhất)
Bạn đăng nhập vào host, vào phpmyadmin và chạy lệnh sql ở dưới là được
-- Xóa tất cả comment trong trạng thái pending DELETE FROM wp_comments WHERE comment_approved = '0'; -- Đồng thời xóa metadata của các comment đó DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_ID FROM wp_comments);
Nhớ thay wp_
thành table prefix của bạn nhé
3. Sử dụng code PHP
Vì khách không có tài khoản truy cập vào PHPMyadmin nên phải chọn giải pháp tạo file này để xử lý. Nếu bạn truy cập được vào PHPMYADMIN thì hãy sử dụng nhé.
Bài viết liên quan
Vào thư mục gốc chứa website tạo 1 file tên là delete-review.php
sau đó dán code phía dưới vào và lưu lại
<?php // Đặt file này tại thư mục gốc WordPress với tên delete-review.php // Tắt báo lỗi error_reporting(0); // Tải WordPress environment if (file_exists('wp-load.php')) { require_once('wp-load.php'); } else if (file_exists('../wp-load.php')) { require_once('../wp-load.php'); } else if (file_exists('../../wp-load.php')) { require_once('../../wp-load.php'); } else { die('Không thể tìm thấy file wp-load.php'); } // Xác thực quản trị viên if (!current_user_can('manage_options')) { // Thử xác thực bằng tham số truy vấn if (!isset($_GET['auth']) || $_GET['auth'] !== 'your_secret_key_here') { die('Bạn không có quyền truy cập trang này'); } } // Hiển thị giao diện echo '<!DOCTYPE html> <html> <head> <title>Xóa Comment Pending</title> <meta name="robots" content="noindex,nofollow"> <style> body { font-family: Arial, sans-serif; margin: 20px; line-height: 1.6; } .container { max-width: 800px; margin: 0 auto; background: #f9f9f9; padding: 20px; border-radius: 5px; } .button { background: #e74c3c; color: white; border: none; padding: 10px 15px; cursor: pointer; border-radius: 3px; } .warning { color: red; font-weight: bold; } </style> </head> <body> <div class="container"> <h1>Công cụ xóa comment pending</h1>'; // Kiểm tra nếu người dùng đã nhấn nút xóa if (isset($_POST['delete_comments']) && $_POST['confirm'] === 'yes') { global $wpdb; // Đếm số lượng comment pending $count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'"); if ($count > 0) { // Bắt đầu xóa $deleted = $wpdb->query("DELETE FROM $wpdb->comments WHERE comment_approved = '0'"); // Dọn dẹp commentmeta $deleted_meta = $wpdb->query("DELETE FROM $wpdb->commentmeta WHERE comment_id NOT IN (SELECT comment_ID FROM $wpdb->comments)"); echo "<h2>Kết quả</h2>"; echo "<p>Đã xóa thành công $deleted comment pending.</p>"; echo "<p>Đã xóa $deleted_meta bản ghi commentmeta.</p>"; echo "<p>Hoàn tất. <span class='warning'>Hãy xóa file này ngay lập tức để đảm bảo an toàn.</span></p>"; } else { echo "<p>Không tìm thấy comment pending nào.</p>"; } } else { // Đếm comment pending global $wpdb; $count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments WHERE comment_approved = '0'"); echo "<p>Hệ thống của bạn hiện có <strong>$count</strong> comment đang ở trạng thái pending.</p>"; if ($count > 0) { echo '<form method="post"> <p class="warning">CẢNH BÁO: Hành động này sẽ xóa vĩnh viễn tất cả comment pending và không thể hoàn tác!</p> <p><label><input type="checkbox" name="confirm" value="yes" required> Tôi đã hiểu và muốn tiếp tục</label></p> <p><input type="submit" name="delete_comments" value="Xóa tất cả comment pending" class="button"></p> </form>'; } } echo '</div></body></html>'; // Kết thúc script exit; ?>
Sau khi tạo file xong và dán code vào, bạn truy cập vào https://websitecuaban.com/delete-review.php
sau đó check vào tôi đồng ý và xoá tất cả comment pedding
Lưu ý công cụ này mình dùng chính xác và chưa gặp bất cứ sự cố nào, tuy nhiên bạn vẫn nên backup database trước khi thực hiện nhé
Công cụ chạy trong chớp mắt là xong và cho ra thông báo như sau.
4. Sử dụng Plugin
Có một số plugin có thể giúp bạn quản lý và xóa hàng loạt comment:
- WP Bulk Delete
- Comment Cleaner
Kết luận
Xoá toàn bộ review spam trong tình trạng pending trong WooCommerce chỉ đơn giản như trên thôi.
Nếu bạn có comment spam thì có thể tham khảo bài viết cách xóa toàn bộ comment spam / pending WordPress để xử lý nhanh chóng và triệt để
Hy vọng bài viết sẽ giúp ích được cho nhiều người.