jQuery(function ($) { if (typeof myPluginData !== 'undefined' && myPluginData.communes) { const comunasPorRegion = myPluginData.communes; console.log(comunasPorRegion); function updateCities(selectElement, region) { var comunaSelect = $(selectElement); comunaSelect.empty().append(''); if (comunasPorRegion[region]) { $.each(comunasPorRegion[region], function (key, value) { console.log(key, value); comunaSelect.append(''); }); } } function getPostalCode(city) { for (const regionCode in comunasPorRegion) { const comunas = comunasPorRegion[regionCode]; if (comunas[city]) { console.log(comunas[city]); return comunas[city].postal_code; // Retorna el código postal } } return ''; // Retorna vacío si no se encuentra la comuna } $('#billing_city').change(function () { const comunaSeleccionada = $(this).val(); const codigoPostal = getPostalCode(comunaSeleccionada); console.log(codigoPostal,comunaSeleccionada); $('#billing_postcode').val(codigoPostal); }); // Manejo de cambios en el select de la región para la dirección de facturación $('select#billing_state').change(function () { var regionSeleccionada = $(this).val(); updateCities('select#billing_city', regionSeleccionada); }); // Manejo de cambios en el select de la región para la dirección de envío $('select#shipping_state').change(function () { var regionSeleccionada = $(this).val(); updateCities('select#shipping_city', regionSeleccionada); }); // Cargar comunas al inicio si ya hay una región seleccionada en la dirección de facturación var regionInicialBilling = $('select#billing_state').val(); if (regionInicialBilling) { updateCities('select#billing_city', regionInicialBilling); } // Cargar comunas al inicio si ya hay una región seleccionada en la dirección de envío var regionInicialShipping = $('select#shipping_state').val(); if (regionInicialShipping) { updateCities('select#shipping_city', regionInicialShipping); } } else { console.error('No se encontraron datos de comunas.'); } // Función para actualizar las comunas en un select });