public get_available_variations ( ) : array | ||
return | array |
public function get_available_variations()
{
$available_variations = array();
foreach ($this->get_children() as $child_id) {
$variation = wc_get_product($child_id);
// Hide out of stock variations if 'Hide out of stock items from the catalog' is checked
if (!$variation->exists() || 'yes' === get_option('woocommerce_hide_out_of_stock_items') && !$variation->is_in_stock()) {
continue;
}
// Filter 'woocommerce_hide_invisible_variations' to optionally hide invisible variations (disabled variations and variations with empty price)
if (apply_filters('woocommerce_hide_invisible_variations', false, $this->get_id(), $variation) && !$variation->variation_is_visible()) {
continue;
}
$available_variations[] = $this->get_available_variation($variation);
}
return $available_variations;
}
private function get_product_attr($postID) { global $woocommerce; $return = array(); $product = new WC_Product_Variable($postID); #Step 1: Get product varations $available_variations = $product->get_available_variations(); #Step 2: Get product variation id $variation_id = $available_variations[0]['variation_id']; // Getting the variable id of just the 1st product. You can loop $available_variations to get info about each variation. #Step 3: Create the variable product object $variable_product1 = new WC_Product_Variation($variation_id); #Step 4: You have the data. Have fun :) $return['regular_price'] = get_post_meta($postID, '_regular_price', true); return $return; }