Sorry, we don't support your browser.  Install a modern browser

Variation FIX in WooCore Template didnt work out - Code changed#228

I

I use WooCore for an Onlineshop. There is a code block, called Variation FIX. In this code block is this code inside:

(function ($) {
  $(document).ready(function () {
    var originePrice = $(".wc-single-price .price").html();

    $(".variations_form").on("woocommerce_variation_has_changed", function () {
      if ($(".variations_form select").val() == "") {
        $(".wc-single-price .price").html(originePrice);
      } else if (
        $(".woocommerce-variation-price .woocommerce-Price-amount").length
      ) {
        if ($(".woocommerce-variation-price span.price ins").length) {
          var variationPrice = $(
            ".woocommerce-variation-price span.price"
          ).html();

          $(".wc-single-price .price").html(variationPrice);
        } else {
          var variationPrice = $(
            ".woocommerce-variation-price .woocommerce-Price-amount"
          ).html();

          $(".wc-single-price .price").html(variationPrice);
        }
      }
    });
  });
})(jQuery);

But the price variation didnt work properly so I changed this to:

(function ($) {
  $(document).ready(function () {
    var originalPrice = $(".wc-single-price .price").html();

    $(".variations_form")
      .on("woocommerce_variation_has_changed", function () {
        updatePrice();
      })
      .on("show_variation", function (event, variation) {
        // Warte kurz, damit WooCommerce die Preise aktualisieren kann
        setTimeout(updatePrice, 100);
      })
      .on("reset_data", function () {
        $(".wc-single-price .price").html(originalPrice);
      });

    function updatePrice() {
      if ($(".variations_form select").val() == "") {
        $(".wc-single-price .price").html(originalPrice);
        return;
      }

      // Prüfe auf Variationspreis
      var $variationPrice = $(".woocommerce-variation-price");

      if ($variationPrice.length && $variationPrice.find(".price").html()) {
        var variationPriceHtml = $variationPrice.find(".price").html();
        $(".wc-single-price .price").html(variationPriceHtml);
      }
    }
  });
})(jQuery);

This works on my project. But I am not pretty sure if this code is good

11 days ago