WC_Product_Variable::get_available_variations PHP Method

get_available_variations() public method

Get an array of available variations for the current product.
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;
    }

Usage Example

 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;
 }
All Usage Examples Of WC_Product_Variable::get_available_variations