Approvare l'hook di commento?


8

Sto cercando di inviare e-mail agli abbonati quando un commento è stato approvato.

Le due azioni nel Codice sono:

1.

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

Dove sono gli argomenti comment_IDe approval status(0 o 1).

2.

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

Con argomento comment_ID

Per impostazione predefinita, i commenti non vengono approvati quando vengono pubblicati, quindi penso che li modificherei quando li approvo, ma non è chiaro nel Codice. Quale opzione devo usare quando approvo un commento?

Risposte:


14

Proprio come i post, un commento può avere una serie di stati diversi, quindi invece di nominare un hook con ogni stato, hanno hook di transizione, che ti dicono quale stato aveva prima e qual è il nuovo stato. Nel tuo caso, questo potrebbe fare il trucco:

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

Fateci sapere come va?


Il tag non sarebbe comment_ (vecchio stato) _to_ (nuovo stato), che si trova anche nel Codice?
AlxVallejo,

2
Potrebbe anche essere, ma implica che conosci il vecchio status. È possibile approvare un commento contrassegnato come spam o approvare un commento non approvato, quindi è necessario utilizzare due hook per attivare la funzione. Direi di andare con la transizione, perché semplifica la manutenzione del codice.
Tomas Buteler,

testato con una semplice wp_mail();funzione, ma non ho ricevuto il messaggio di prova. sta funzionando per te? Uso wp 3.5.1
Attila

@ user9909 l'ho appena testato con la versione 3.5.1 e funziona. Inizia con un codice più semplice (error_log () nel mio caso) e debug da lì, forse? L'uso di wp_mail () significa ulteriori luoghi in cui le cose possono andare storte, incluse molte che non hanno nulla a che fare con WP.
Tomas Buteler,

1
Utilizza l'hook wp_insert_comment per catturare i commenti che sono stati approvati automaticamente al volo.
Joseph Persie,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.