WC_Admin_List_Table_Products::add_variation_parents_for_shipping_class( array $pieces, WP_Query $wp_query )

Modifies post query so that it includes parent products whose variations have particular shipping class assigned.


Description Description


Parameters Parameters

$pieces

(Required) Array of SELECT statement pieces (from, where, etc).

$wp_query

(Required) WP_Query instance.


Top ↑

Return Return

(array) Array of products, including parents of variations.


Top ↑

Source Source

File: includes/admin/list-tables/class-wc-admin-list-table-products.php

	public function add_variation_parents_for_shipping_class( $pieces, $wp_query ) {
		global $wpdb;
		if ( isset( $_GET['product_shipping_class'] ) && '0' !== $_GET['product_shipping_class'] ) { // WPCS: input var ok.
			$replaced_where   = str_replace( ".post_type = 'product'", ".post_type = 'product_variation'", $pieces['where'] );
			$pieces['where'] .= " OR {$wpdb->posts}.ID in (
				SELECT {$wpdb->posts}.post_parent FROM
				{$wpdb->posts} LEFT JOIN {$wpdb->term_relationships} ON ({$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id)
				WHERE 1=1 $replaced_where
			)";
			return $pieces;
		}
		return $pieces;
	}

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.