Automattic\WooCommerce\Internal\Admin\ProductReviews

ReviewsCommentsOverrides{}WC 1.0

Tweaks the WordPress comments page to exclude reviews.

No Hooks.

Usage

$ReviewsCommentsOverrides = new ReviewsCommentsOverrides();
// use class methods

Methods

  1. public __construct()
  2. public exclude_reviews_from_comments( $args )

ReviewsCommentsOverrides{} code WC 10.9.4

class ReviewsCommentsOverrides {

	/**
	 * Constructor.
	 */
	public function __construct() {
		add_filter( 'comments_list_table_query_args', array( $this, 'exclude_reviews_from_comments' ) );
	}

	/**
	 * Excludes product reviews from showing in the comments page.
	 *
	 * @param array|mixed $args {@see WP_Comment_Query} query args.
	 * @return array
	 *
	 * @internal For exclusive usage of WooCommerce core, backwards compatibility not guaranteed.
	 */
	public function exclude_reviews_from_comments( $args ): array {
		$screen = get_current_screen();

		// We only wish to intervene if the edit comments screen has been requested.
		if ( ! $screen instanceof WP_Screen || 'edit-comments' !== $screen->id ) {
			return $args;
		}

		if ( ! empty( $args['post_type'] ) && $args['post_type'] !== 'any' ) {
			$post_types = (array) $args['post_type'];
		} else {
			$post_types = get_post_types();
		}

		$index = array_search( 'product', $post_types );

		if ( $index !== false ) {
			unset( $post_types[ $index ] );
		}

		if ( ! is_array( $args ) ) {
			$args = [];
		}

		$args['post_type'] = $post_types;

		return $args;
	}

}