Xoá toàn bộ review pending trong WooCommerce

Đây là nhật ký công việc tiếp tục trong bài trước () mà tôi đã chia sẽ khi tối ưu database trong .

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é.

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 để 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.

5/5 - (68 votes)

vutruso

Vũ Trụ Số chuyên cung cấp hosting cho WordPress, dịch vụ thiết kế website, quản trị website cho doanh nghiệp, các dịch vụ bảo mật website WordPress, tăng tốc website WordPress