web-dev-qa-db-fra.com

Ajouter une action sur supprimer des commentaires?

J'ajoute quelques champs de saisie au formulaire de commentaire, et ces nouvelles données sont stockées dans la table commentmeta. Lorsqu'un commentaire est supprimé, les données sur commentmeta sont toujours présentes.

Comment puis-je supprimer ces données lorsqu'un commentaire est supprimé? (J'ai besoin d'une action similaire à delete_post mais pour les commentaires ... est-ce qu'elle existe?)

1
Dudo1985

Regardez la fonction wp_delete_comment(). Il déclenche une action avant la suppression du commentaire:

/**
 * Fires immediately before a comment is deleted from the database.
 *
 * @since 1.2.0
 *
 * @param int $comment_id The comment ID.
 */
do_action( 'delete_comment', $comment_id );

… Et un après suppression:

/**
 * Fires immediately after a comment is deleted from the database.
 *
 * @since 2.9.0
 *
 * @param int $comment_id The comment ID.
 */
do_action( 'deleted_comment', $comment_id );

Donc, vous pouvez lier votre rappel à cela:

add_action( 'deleted_comment', function( $comment_id ) {
    delete_comment_meta( $comment_id, 'your_meta_key' );
} );
4
fuxia