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.
Return Return
(array) Array of products, including parents of variations.
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;
}