web-dev-qa-db-fra.com

Contrôle s'il faut ou non supprimer un type de publication personnalisé

J'ai besoin de contrôler l'action trash/delete sur un type de publication personnalisé.

J'ai besoin de vérifier certaines conditions et de décider si je dois jeter le CPT ou non.

Le hook wp_trash_action qui est déclenché avant la fonction de corbeille ne me permet pas d'annuler la procédure de corbeille.

Pour être plus précis, je dois vérifier une condition lorsque l'utilisateur appuie sur TRASH. Si cette condition est fausse, je dois arrêter l'action de suppression. Si c'est vrai, cela devrait continuer.

1
e4rthdog

Accrochez-vous sur trashed_post et utilisez wp_untrash_post() pour inverser si une condition est remplie, exemple de pseudocode ...

add_action('trashed_post', 'wpse_218031_trashed_post');

function wpse_218031_trashed_post($post_id){
   //use post_id to check conditions... if not met call:
   if ( $some_condition ) {
       wp_untrash_post($post_id);
   }
}

trashed_post s'exécute après wp_trash_post et après que la publication soit placée dans la corbeille.

Soit dit en passant, si la constante EMPTY_TRASH_DAYS est définie et que false est posté, les posts seront définitivement supprimés et les hooks suivants ne seront pas activés, auquel cas wp_delete_post() sera appelé à la place.

3
userabuser