/**
* Tự động cập nhật giá khi thay đổi số lượng trên trang sản phẩm WooCommerce
* Code by muathemewpgiare02
*/
function muathemewpgiare02_update_price_script() {
if (is_product()) {
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
let originalPrice_muathemewpgiare02 = 0;
let pricePerUnit_muathemewpgiare02 = 0;
let priceUpdated_muathemewpgiare02 = false;
function storeOriginalPrice_muathemewpgiare02() {
let $priceElement = $('.summary .price .woocommerce-Price-amount').first();
if (!$priceElement.length) return;
let priceText = $priceElement.text().replace(/[^0-9.,]/g, '');
pricePerUnit_muathemewpgiare02 = parseFloat(priceText.replace(/,/g, '.'));
originalPrice_muathemewpgiare02 = pricePerUnit_muathemewpgiare02;
}
function updateDisplayPrice_muathemewpgiare02() {
let quantity = parseInt($('input.qty').val()) || 1;
let totalPrice = pricePerUnit_muathemewpgiare02 * quantity;
$('.summary .price .woocommerce-Price-amount').first().text(totalPrice.toFixed(2));
priceUpdated_muathemewpgiare02 = true;
}
function handleQuantityChanges_muathemewpgiare02() {
$('input.qty').on('input', updateDisplayPrice_muathemewpgiare02);
$('.plus, .minus').on('click', function() {
setTimeout(updateDisplayPrice_muathemewpgiare02, 100);
});
}
function resetPriceBeforeAddToCart_muathemewpgiare02() {
$('form.cart').on('submit', function() {
if (priceUpdated_muathemewpgiare02) {
$(this).append('<input type="hidden" name="original_price_muathemewpgiare02" value="' + pricePerUnit_muathemewpgiare02 + '">');
}
});
}
storeOriginalPrice_muathemewpgiare02();
handleQuantityChanges_muathemewpgiare02();
resetPriceBeforeAddToCart_muathemewpgiare02();
});
</script>
<?php
}
}
add_action('wp_footer', 'muathemewpgiare02_update_price_script', 99);
function muathemewpgiare02_store_original_price($cart_item_data, $product_id) {
if (isset($_POST['original_price_muathemewpgiare02'])) {
$cart_item_data['original_price_muathemewpgiare02'] = floatval($_POST['original_price_muathemewpgiare02']);
}
return $cart_item_data;
}
add_filter('woocommerce_add_cart_item_data', 'muathemewpgiare02_store_original_price', 10, 2);
function muathemewpgiare02_apply_original_price($cart_object) {
if (is_admin() && !defined('DOING_AJAX')) return;
foreach ($cart_object->get_cart() as $cart_item_key => $cart_item) {
if (isset($cart_item['original_price_muathemewpgiare02'])) {
$product = $cart_item['data'];
$original_price = floatval($cart_item['original_price_muathemewpgiare02']);
$product->set_price($original_price);
}
}
}
add_action('woocommerce_before_calculate_totals', 'muathemewpgiare02_apply_original_price', 10);