// ----------------------------
// Detect Quantity Change and Recalculate Totals
add_action('woocommerce_checkout_update_order_review', 'update_item_quantity_checkout');
function update_item_quantity_checkout($post_data) {
// Phân tích dữ liệu POST từ form checkout
parse_str($post_data, $post_data_array);
$updated_qty = false;
foreach ($post_data_array as $key => $value) {
// Kiểm tra các khóa bắt đầu bằng 'shipping_method_qty_'
if (substr($key, 0, 20) === 'shipping_method_qty_') {
// Lấy ID sản phẩm từ khóa
$id = substr($key, 20);
// Cập nhật số lượng sản phẩm trong giỏ hàng
WC()->cart->set_quantity($post_data_array['product_key_' . $id], $post_data_array[$key], false);
$updated_qty = true;
}
}
// Tính toán lại tổng nếu số lượng đã được cập nhật
if ($updated_qty) WC()->cart->calculate_totals();
}