Hallo, gibt es eine Aktion, die ausgeführt werden kann, während ein Beitrag in den Papierkorb verschoben wird? Ich habe versucht, delete_post und delete_post. Es funktioniert nur zweimal für jede Aktion (vor und nach der Aktion, wie im Codex geschrieben) und die Ausgabe wird nur angezeigt, wenn der Beitrag aus dem Papierkorb gelöscht wird. Beispiel Ich möchte eine E-Mail an den Autor senden, in der angegeben wird, dass sein Beitrag aus irgendeinem Grund in den Papierkorb verschoben wurde, und einige user_meta aktualisieren. wenn ich benutze
add_action('deleted_post', 'emailUser');
oder
add_action('delete_post', 'emailUser');
Es funktioniert nur, wenn der Beitrag aus dem Papierkorb gelöscht wird. . .
Update: Es funktioniert für Müllposts mit
add_action('trash_post', 'emailUser');
Das Problem der doppelten Ausführung der Funktion besteht jedoch weiterhin. . .
Antworten:
Dies wird den Trick machen!
Hier fügen wir die Funktion hinzu und um zu verhindern, dass der Hook mehr als einmal mit did_action ausgeführt wird:
http://codex.wordpress.org/Function_Reference/did_action
Wie immer nimmt diese Art von Haken die Form
{post_status}_{post_type}
, sotrash_post
,trash_page
,trash_customposttype
,publish_page
usw.quelle
Diese Aktion wird einmal aufgerufen, wenn der Beitrag in den Papierkorb verschoben wird, und dann erneut, wenn der Papierkorb geleert wird.
Ihre Funktion kann prüfen, ob eine Option mit der Post-ID im Namen vorhanden ist. Wenn die Option nicht vorhanden ist, wird die E-Mail gesendet und die Option festgelegt. Wenn die Option vorhanden ist (z. B. ein zweites Mal aufgerufen wird), würden Sie die E-Mail nicht senden.
Denken Sie dann daran, die Option zu löschen, damit Ihre Datenbank nicht mit ihnen gefüllt wird!
Lassen Sie mich wissen, ob das funktioniert!
quelle
Der obige Hook hat in WP 4.7.5 bei mir nicht funktioniert.
Das hat bei mir funktioniert
quelle