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;
}