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