Gancho de correos basura

Quiero realizar una acción cuando uno de mis tipos de correos personalizados, borrar que gancho debo usar: wp_trash_mycpt o trash_mycpt mi acción debe ejecutarse únicamente cuando mycpt es 'publicar', 'borrador' o 'futuro' estado y se mueve hacia el estado de 'basura'. Cuando se extrae del basura sí mismo no hay ninguna razón para que vuelva a ejecutar la función..


Solución 1

El wp_trash_post podría ser lo que estás buscando: se ejecuta cuando un post o página está a punto de ser destrozado. Argumentos de la función de acción: post o página de identificación. Aquí hay un código no probado para empezar:
function my_wp_trash_post ($post_id) {
    $post_type = get_post_type( $post_id );
    $post_status = get_post_status( $post_id );
    if( $post_type == 'mycpt' && in_array($post_status, array('publish','draft','future')) ) {
        // do your stuff
    }
}
add_action('wp_trash_post', 'my_wp_trash_post');
function my_wp_trash_post ($post_id) {
    $post_type = get_post_type( $post_id );
    $post_status = get_post_status( $post_id );
    if( $post_type == 'mycpt' && in_array($post_status, array('publish','draft','future')) ) {
        // do your stuff
    }
}
add_action('wp_trash_post', 'my_wp_trash_post');
.

Solución 2

Ejecutar su función cuando post estado cambia de cualquiera de
publish
,
draft
o
future
Para
trash
.

<?php
function my_function() {
    global $post;
    if('my_post_type' == $post->post_type) {
        // do your stuff here
    }
}

add_action('publish_to_trash', 'my_function');
add_action('draft_to_trash',   'my_function');
add_action('future_to_trash',  'my_function');
Más info: Post Status Transitions Post Status Transitions .

Solución 3

Hay un
wp_trash_post
acción que se llama, pero la
post_status
se modifica por:
trash
previamente, es decir no sería capaz de verificar si el Post fue publicado, etc.. Editar soporto corregido, el
post_status
se modifica por:
trash
DESPUÉS de la acción se llama. Esto debería conseguirle comenzado sin embargo
add_action('wp_trash_post', 'my_wp_trash_post')
function my_wp_trash_post(){

    if($post->post_type === 'mycpt') :
        // Do what ever you need to do here
    endif;

}
Si es de cualquier uso, también hay un
delete_post
acción.

Para obtener más información, vea la referencia de acción para delete_posts.

delete_posts.

.




Problemas relacionados

Actualización post estado de publicar en basura por medio de mensajes

Consulta personalizada muestra tipos de correos personalizados en la basura

¿Cómo quitar el Restore enlace rápido editar?

Desactivar la basura para el tipo de entrada

Un gancho que provoca al borrar un post para obtener todos los comentarios de ámbito

Prensa rápida publicar correos gancho

woocommerce gancho publicar producto

¿Hay una acción que se llama cuando se restaura un post de la basura?

Filtro tipo personalizado en Admin

Crear acción ejecuta en trashed_post gancho para modificar el valor de post_meta

¿Cómo restaurar todos los elementos de la papelera

¿Save_post para el tipo de mensaje personalizado?

Source: Stack Exchange Inc; License: cc by-sa 3.0 Contacto / Contact