Setujui komen komentar?

8

Saya mencari untuk mengirim email ke pelanggan ketika komentar telah disetujui.

Dua tindakan dalam Codex adalah:

1.

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

Di mana argumennya comment_IDdan approval status(0 atau 1).

2.

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

Dengan argumen comment_ID

Secara default, komentar tidak disetujui ketika diposting, jadi saya pikir saya akan mengeditnya ketika saya menyetujuinya tetapi tidak jelas dalam Codex. Opsi mana yang harus saya gunakan ketika saya menyetujui komentar?

AlxVallejo
sumber

Jawaban:

14

Sama seperti posting, komentar dapat memiliki larik status yang berbeda, jadi alih-alih memberi nama kail dengan masing-masing status, komentar memiliki kait transisi, yang memberi tahu Anda apa statusnya sebelumnya dan apa status baru. Dalam kasus Anda, ini mungkin melakukan trik:

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
        }
    }
}

Marilah kita tahu bagaimana kelanjutannya?

Tomas Buteler
sumber
Bukankah tag itu comment_ (status lama) _to_ (status baru), juga ditemukan di Codex?
AlxVallejo
2
Bisa jadi juga, tetapi itu menyiratkan bahwa Anda tahu status lama. Anda dapat menyetujui komentar yang ditandai sebagai spam, atau menyetujui komentar yang tidak disetujui, jadi Anda harus menggunakan dua kait untuk memicu fungsi Anda. Saya akan mengatakan pergi dengan transisi, karena itu membuat kode Anda lebih mudah dipelihara.
Tomas Buteler
diuji dengan wp_mail();fungsi sederhana , tetapi tidak mendapatkan pesan tes. ini bekerja untukmu? Saya menggunakan wp 3.5.1
Attila
@ user9909 baru saja mengujinya menjalankan 3.5.1 dan berfungsi. Mulai dengan kode yang lebih sederhana (error_log () dalam kasus saya) dan debug dari sana, mungkin? Menggunakan wp_mail () berarti tempat-tempat tambahan di mana terjadi kesalahan, termasuk banyak yang tidak ada hubungannya dengan WP.
Tomas Buteler
1
Gunakan kait wp_insert_comment untuk menangkap komentar yang secara otomatis disetujui saat itu juga.
Joseph Persie