wpseek.com
A WordPress-centric search engine for devs and theme authors



wp_untrash_comment › WordPress Function

Since2.9.0
Deprecatedn/a
› wp_untrash_comment ( $comment_id )
Parameters:
  • (int|WP_Comment) $comment_id Comment ID or WP_Comment object.
    Required: Yes
Returns:
  • (bool) True on success, false on failure.
Defined at:
Codex:
Change Log:
  • 7.2.0

Removes a comment from the Trash



Source

function wp_untrash_comment( $comment_id ) {
	$comment = get_comment( $comment_id );
	if ( ! $comment ) {
		return false;
	}

	/**
	 * Fires immediately before a comment is restored from the Trash.
	 *
	 * @since 2.9.0
	 * @since 4.9.0 Added the `$comment` parameter.
	 *
	 * @param string     $comment_id The comment ID as a numeric string.
	 * @param WP_Comment $comment    The comment to be untrashed.
	 */
	do_action( 'untrash_comment', $comment->comment_ID, $comment );

	$status = (string) get_comment_meta( $comment->comment_ID, '_wp_trash_meta_status', true );
	if ( empty( $status ) ) {
		$status = '0';
	}

	if ( wp_set_comment_status( $comment, $status ) ) {
		delete_comment_meta( $comment->comment_ID, '_wp_trash_meta_time' );
		delete_comment_meta( $comment->comment_ID, '_wp_trash_meta_status' );

		/**
		 * Fires immediately after a comment is restored from the Trash.
		 *
		 * @since 2.9.0
		 * @since 4.9.0 Added the `$comment` parameter.
		 *
		 * @param string     $comment_id The comment ID as a numeric string.
		 * @param WP_Comment $comment    The untrashed comment.
		 */
		do_action( 'untrashed_comment', $comment->comment_ID, $comment );

		// For top level 'note' type comments, also restore the children trashed along with it.
		if ( 'note' === $comment->comment_type && 0 === (int) $comment->comment_parent ) {
			$children = get_comment_meta( $comment->comment_ID, '_wp_trash_meta_children', true );
			delete_comment_meta( $comment->comment_ID, '_wp_trash_meta_children' );

			if ( ! is_array( $children ) ) {
				return true;
			}

			$success = true;
			foreach ( $children as $child_id ) {
				$child = get_comment( (int) $child_id );

				// Skip children that have been deleted, moved, or restored in the meantime.
				if (
					! $child ||
					'note' !== $child->comment_type ||
					(int) $child->comment_parent !== (int) $comment->comment_ID ||
					'trash' !== wp_get_comment_status( $child )
				) {
					continue;
				}

				if ( ! wp_untrash_comment( $child ) ) {
					$success = false;
				}
			}
			return $success;
		}

		return true;
	}

	return false;
}