Phê duyệt móc bình luận?


8

Tôi đang tìm cách gửi email đến người đăng ký khi nhận xét đã được phê duyệt.

Hai hành động trong Codex là:

1.

add_action('comment_post', 'callback', $priority, $accepted_args);

Trong đó các đối số là comment_IDapproval status(0 hoặc 1).

2.

add_action('edit_comment', 'callback', $priority, $accepted_args);

Có tranh luận comment_ID

Theo mặc định, các bình luận không được chấp thuận khi chúng được đăng lên vì vậy tôi nghĩ rằng tôi sẽ chỉnh sửa chúng khi tôi phê duyệt nhưng không rõ ràng trong Codex. Tôi nên sử dụng tùy chọn nào khi phê duyệt nhận xét?

Câu trả lời:


14

Cũng giống như các bài đăng, một bình luận có thể có một loạt các trạng thái khác nhau, vì vậy thay vì đặt tên một hook với mỗi trạng thái, chúng có các hook chuyển tiếp, cho bạn biết trạng thái của nó trước đó và trạng thái mới là gì. Trong trường hợp của bạn, điều này có thể thực hiện các mẹo:

add_action('transition_comment_status', 'my_approve_comment_callback', 10, 3);
function my_approve_comment_callback($new_status, $old_status, $comment) {
    if($old_status != $new_status) {
        if($new_status == 'approved') {
            // Your code here
        }
    }
}

Hãy cho chúng tôi biết làm thế nào nó đi?


Không phải thẻ sẽ là comment_ (trạng thái cũ) _to_ (trạng thái mới), cũng được tìm thấy trong Codex?
AlxVallejo

2
Cũng có thể, nhưng nó ngụ ý rằng bạn biết tình trạng cũ. Bạn có thể phê duyệt một nhận xét được đánh dấu là spam hoặc phê duyệt một nhận xét không được chấp thuận, vì vậy bạn phải sử dụng hai móc để kích hoạt chức năng của mình. Tôi muốn nói là hãy chuyển đổi, vì nó giúp mã của bạn dễ bảo trì hơn.
Tomas Buteler

đã thử nghiệm với một wp_mail();chức năng đơn giản , nhưng không nhận được thông báo thử nghiệm. nó đang làm việc cho bạn? Tôi sử dụng wp 3.5.1
Attila

@ user9909 vừa kiểm tra nó chạy 3.5.1 và nó hoạt động. Bắt đầu với mã đơn giản hơn (error_log () trong trường hợp của tôi) và gỡ lỗi từ đó, có lẽ? Sử dụng wp_mail () có nghĩa là những nơi bổ sung mà mọi thứ có thể sai, bao gồm nhiều nơi không liên quan đến WP.
Tomas Buteler

1
Sử dụng hook wp_insert_comment để bắt các bình luận tự động được phê duyệt khi đang bay.
Joseph Persie
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.