Методы получения диапазона цен для вариантов в WooCommerce

Чтобы получить ценовой диапазон вариантов в WooCommerce, вы можете использовать следующие методы:

  1. Метод 1: использование класса WC_Product_Variableи его методов:

    // Get the product ID
    $product_id = get_the_ID();
    // Create an instance of the WC_Product_Variable class
    $product = new WC_Product_Variable($product_id);
    // Get the variations of the product
    $variations = $product->get_available_variations();
    // Initialize variables
    $min_price = PHP_INT_MAX;
    $max_price = 0;
    // Loop through the variations and find the minimum and maximum prices
    foreach ($variations as $variation) {
       $price = floatval($variation['display_price']);
       if ($price < $min_price) {
           $min_price = $price;
       }
       if ($price > $max_price) {
           $max_price = $price;
       }
    }
    // Output the price range
    echo 'Price Range: $' . $min_price . ' - $' . $max_price;
  2. Метод 2. Использование пользовательских запросов к базе данных:

    // Get the product ID
    $product_id = get_the_ID();
    // Query the database to get the variation prices
    global $wpdb;
    $query = $wpdb->prepare("
       SELECT MIN(meta.meta_value) as min_price, MAX(meta.meta_value) as max_price
       FROM {$wpdb->prefix}posts as posts
       INNER JOIN {$wpdb->prefix}postmeta as meta ON posts.ID = meta.post_id
       WHERE posts.post_parent = %d
       AND posts.post_type = 'product_variation'
       AND meta.meta_key = '_price'
    ", $product_id);
    // Execute the query
    $result = $wpdb->get_row($query);
    // Output the price range
    echo 'Price Range: $' . $result->min_price . ' - $' . $result->max_price;

Обратите внимание, что для реализации этих методов могут потребоваться знания кодирования, поэтому всегда рекомендуется создавать резервные копии ваших данных и тщательно тестировать их, прежде чем вносить какие-либо изменения в настройки WooCommerce.