wp_transition_comment_status()
Calls special hooks when the status of a comment changes from one to another: for example, from unapproved to approved.
This function does not change the status of the comment, but only triggers 3 hooks. The function is called from other functions after the status of the comment has been changed to notify plugins, themes, and core functions about the change in the comment status.
To actually change the status of the comment, use the functions: wp_update_comment() from which this function is specifically called.
The function will trigger the following 2 hooks if the status of the updated comment differs from its previous status:
// Triggers whenever the status changes
do_action( 'transition_comment_status', $new_status, $old_status, $comment );
// triggers when the specified status changes to the specified one
do_action( "comment_{$old_status}_to_{$new_status}", $comment );
And the third hook always triggers when the function is called:
do_action( "comment_{$new_status}_{$comment_type}", $comment_ID, $comment );
The function is called every time the following functions are invoked:
Possible values for $new_status and $old_status
unapprovedapproveddelete
Comment statuses like: 0, hold, 1, approve will correspond to one of these names:
0 => 'unapproved', 'hold' => 'unapproved', 1 => 'approved', 'approve' => 'approved',
That is, all hook names look like this:
transition_comment_statuscomment_unapproved_to_approvedcomment_unapproved_to_deletecomment_approved_to_unapprovedcomment_approved_to_deletecomment_delete_to_approvedcomment_delete_to_unapprovedcomment_unapproved_{$comment_type}comment_approved_{$comment_type}comment_delete_{$comment_type}
Hooks from the function
Returns
null. Nothing.
Usage
wp_transition_comment_status( $new_status, $old_status, $comment );
- $new_status(string) (required)
- Name of the new status. Can be:
0,hold,unapproved,1,approve,approved,delete - $old_status(string) (required)
- Name of the old status. Can be one of the values of $new_status.
- $comment(object) (required)
- The comment object.
Examples
#1 Usage example
Send an email when a comment is approved.
add_action( 'comment_unapproved_to_approved', 'approve_comment_callback' );
function approve_comment_callback( $comment ){
// the comment changed its status from disapproved to approved
// do something here
// for example, send a letter to somewhere
// wp_mail( $comment->comment_author_email, $subject, $notification );
}
Changelog
| Since 2.7.0 | Introduced. |