Hola, ¿hay alguna acción que se pueda realizar mientras una publicación se mueve a la papelera? Intenté delete_post y deleted_post. Funciona dos veces para cada acción (antes y después de la acción tal como está escrita en el códice) y la salida se muestra solo cuando la publicación se elimina de la papelera. Ejemplo: quiero enviar un correo electrónico al autor indicando que su publicación se ha movido a la papelera por algún motivo y actualizar alguna user_meta. si yo uso
add_action('deleted_post', 'emailUser');
o
add_action('delete_post', 'emailUser');
funciona solo cuando la publicación se elimina de la papelera. . .
Actualización: lo hice funcionar para publicaciones de basura usando
add_action('trash_post', 'emailUser');
pero el problema para la doble ejecución de la función sigue ahí. . .
Respuestas:
¡Esto hará el truco!
Aquí agregamos la función y para evitar que el gancho se ejecute más de una vez usando did_action:
http://codex.wordpress.org/Function_Reference/did_action
Como siempre, este tipo de ganchos toman la forma
{post_status}_{post_type}
, por lo quetrash_post
,trash_page
,trash_customposttype
,publish_page
etc.fuente
Esa acción se llamará una vez cuando la publicación se mueva a la papelera, y luego nuevamente cuando la papelera se vacíe.
Su función podría verificar la presencia de una opción con la ID de publicación en el nombre, si la opción no está allí, envía el correo electrónico y luego establece la opción. Si la opción está allí (por ejemplo, se llama por segunda vez), no enviaría el correo electrónico.
¡Recuerde entonces eliminar la opción, para que su base de datos no se llene con ellas!
¡Avísame si eso funciona!
fuente
El gancho anterior no funcionó para mí en WP 4.7.5.
Esto es lo que funcionó para mí.
fuente