Cześć, jest akcja, którą można wykonać, gdy post zostanie przeniesiony do kosza .... Próbowałem delete_post i delete_post. Działa, ale dwukrotnie dla każdej akcji (przed i po akcji zapisanej w kodeksie), a dane wyjściowe są wyświetlane tylko wtedy, gdy wiadomość jest usuwana z kosza. Przykład Chcę wysłać do autora wiadomość e-mail z informacją, że jego post został z jakiegoś powodu przeniesiony do kosza i zaktualizować część user_meta. jeśli użyję
add_action('deleted_post', 'emailUser');
lub
add_action('delete_post', 'emailUser');
działa tylko wtedy, gdy post zostanie usunięty z kosza. . .
Aktualizacja: sprawił, że działał dla postów w koszu za pomocą
add_action('trash_post', 'emailUser');
ale problem podwójnego wykonania funkcji wciąż istnieje. . .
Odpowiedzi:
To załatwi sprawę!
Tutaj dodajemy funkcję, aby zapobiec wykonywaniu haka więcej niż raz przy użyciu did
http://codex.wordpress.org/Function_Reference/did_action
Jak zawsze, te rodzaje haków przybrać formę
{post_status}_{post_type}
, taktrash_post
,trash_page
,trash_customposttype
,publish_page
etcźródło
Ta akcja zostanie wywołana raz, gdy post zostanie przeniesiony do kosza, a następnie ponownie, gdy kosz zostanie opróżniony.
Twoja funkcja może sprawdzić obecność opcji z identyfikatorem postu w nazwie, jeśli opcji nie ma, wysyła wiadomość e-mail, a następnie ustawia opcję. Jeśli istnieje taka opcja (np. Jest wywoływana po raz drugi), wiadomość e-mail nie zostanie wysłana.
Pamiętaj zatem o usunięciu opcji, aby baza danych się z nimi nie zapełniła!
Daj mi znać, czy działa!
źródło
Powyższy hak nie działał dla mnie w WP 4.7.5.
To działało dla mnie
źródło