Retrieving Product Variations.

PHP Code Snippets/Functions Reusable Custom Blocks
<?php
if (wc_get_product(get_the_ID())) {
    $product = wc_get_product(get_the_ID());
    $html = "<ul class='price-list'>";
    $htmlRfq = "<div class='rfq-variations'>";
    $attributesList = array();
    $rfqDisplayed = false;

    if ($product->is_type('variable')) {
        $vars = $product->get_available_variations();

        for ($i = 0; $i < count($vars); $i++) {
            $display_price = $vars[$i]['display_price'];

            if ($display_price == '0' && !$rfqDisplayed) {
                $htmlRfq .= "<div class='single-rfq'> > " . str_lreplace('-', ' ', $vars[$i]['attributes']['attribute_pa_variant']) . "<a data-slug='" . $vars[$i]['attributes']['attribute_pa_variant'] . "' class='wp-block-button__link wp-element-button rfq-trigger'> Request a Quote</a></div>";
                $rfqDisplayed = true; // Mark RFQ as displayed
            } else if ($display_price != '0' && $rfqDisplayed) {
                $attribute = str_lreplace('-', ' ', $vars[$i]['attributes']['attribute_pa_variant']);
                if (!in_array($attribute, $attributesList)) {
                    $attributesList[] = $attribute;
                    $currency_symbol = get_woocommerce_currency_symbol(); // Get WooCommerce currency symbol
                    $html .= "<li><span class='spec'>" . $attribute . "</span><span class='price-divider'></span><span class='var-price'>" . $currency_symbol . $display_price . "/m</span></li>";
                }
            }
        }
        $html .= "</ul>";
        $htmlRfq .= "</div>";

        echo $html;
        echo $htmlRfq;

    } else {
        echo "No variations found.";
    }
} else {
    echo "Not a product.";
}
?>

Leave a Reply

Your email address will not be published. Required fields are marked *