'Woocommerce | Order variations list by attributes order

I have created a dynamic ajax add to cart button on the catalog page. I need the order of the variations to be displayed according to the main attribute orders and not as it's crated on the product page.

This is the Code I'm using:

<?php
    global $product;
    $variations = $product->get_available_variations();
    $variations_ids = wp_list_pluck( $variations, 'variation_id' );

    foreach ($variations_ids as $variations_id) {
        $variation = wc_get_product($variations_id);
        $variationName = implode(" / ", $variation->get_variation_attributes());
        $variation_obj = new WC_Product_variation($variations_id);
        $stock = $variation_obj->get_stock_quantity();
    ?>
    <?php if( $stock != 0 || ! $variation_obj->get_manage_stock() ){ ?>
        <div class="variation variation-<?php echo $variations_id; ?>" data-act="atc" data-variation-id="<?php echo $variations_id; ?>" data-variation="/?add-to-cart=<?php echo $variations_id; ?>"><?php echo $variationName; ?></div>
    <?php } else { ?>
        <div class="out-of-stock variation"><?php echo $variationName; ?></div>
    <?php } ?>

<?php } ?>


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source