{"id":567,"date":"2025-03-18T10:46:36","date_gmt":"2025-03-18T10:46:36","guid":{"rendered":"https:\/\/zabalimp.es\/?page_id=567"},"modified":"2025-03-18T10:50:13","modified_gmt":"2025-03-18T10:50:13","slug":"registrar-servicio","status":"publish","type":"page","link":"https:\/\/zabalimp.es\/en\/registrar-servicio\/","title":{"rendered":"Registrar Servicio"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"567\" class=\"elementor elementor-567\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d2bc3e1 e-flex e-con-boxed e-con e-parent\" data-id=\"d2bc3e1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8c35eed elementor-widget elementor-widget-shortcode\" data-id=\"8c35eed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\t\t<div data-elementor-type=\"page\" data-elementor-id=\"556\" class=\"elementor elementor-556\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t<div class=\"elementor-element elementor-element-11d44017 e-con-full e-flex e-con e-parent\" data-id=\"11d44017\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-78ccbbd8 elementor-button-align-stretch elementor-widget elementor-widget-form\" data-id=\"78ccbbd8\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;step_next_label&quot;:&quot;Continuar&quot;,&quot;step_previous_label&quot;:&quot;Atras&quot;,&quot;step_type&quot;:&quot;progress_bar&quot;,&quot;button_width&quot;:&quot;100&quot;}\" data-widget_type=\"form.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<form class=\"elementor-form\" method=\"post\" id=\"formRegi\" name=\"Registrar\" action=\"\">\n\t\t\t<input type=\"hidden\" name=\"post_id\" value=\"556\"\/>\n\t\t\t<input type=\"hidden\" name=\"form_id\" value=\"78ccbbd8\"\/>\n\t\t\t<input type=\"hidden\" name=\"referer_title\" value=\"Registrar Servicio\" \/>\n\n\t\t\t\t\t\t\t<input type=\"hidden\" name=\"queried_id\" value=\"567\"\/>\n\t\t\t\n\t\t\t<div class=\"elementor-form-fields-wrapper elementor-labels-above\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-name_reg elementor-col-100 elementor-field-required elementor-mark-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-name_reg\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tNombre de la empresa\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[name_reg]\" id=\"form-field-name_reg\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" required=\"required\" aria-required=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-text elementor-field-group elementor-column elementor-field-group-nie_reg elementor-col-100 elementor-field-required elementor-mark-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-nie_reg\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tTAX ID\/CIF\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"text\" name=\"form_fields[nie_reg]\" id=\"form-field-nie_reg\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" required=\"required\" aria-required=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-email elementor-field-group elementor-column elementor-field-group-email_reg elementor-col-100 elementor-field-required elementor-mark-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-email_reg\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tCorreo Electr\u00f3nico\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"email\" name=\"form_fields[email_reg]\" id=\"form-field-email_reg\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" required=\"required\" aria-required=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-tel elementor-field-group elementor-column elementor-field-group-tel_reg elementor-col-100 elementor-field-required elementor-mark-required\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-tel_reg\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tPhone \t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t<input size=\"1\" type=\"tel\" name=\"form_fields[tel_reg]\" id=\"form-field-tel_reg\" class=\"elementor-field elementor-size-sm  elementor-field-textual\" required=\"required\" aria-required=\"true\" pattern=\"[0-9()#&amp;+*-=.]+\" title=\"Only numbers and telephone characters (#, -, *, etc) are accepted.\">\n\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-url elementor-field-group elementor-column elementor-field-group-url_reg elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-url_reg\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tP\u00e1gina Web\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<input size=\"1\" type=\"url\" name=\"form_fields[url_reg]\" id=\"form-field-url_reg\" class=\"elementor-field elementor-size-sm  elementor-field-textual\">\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-checkbox elementor-field-group elementor-column elementor-field-group-select_serv_reg elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-select_serv_reg\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tServicios ofrecidos\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t<div class=\"elementor-field-subgroup\"><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Cuidado de personas mayores\" id=\"form-field-select_serv_reg-0\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-0\">Cuidado de personas mayores<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Cuidado infantil\" id=\"form-field-select_serv_reg-1\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-1\">Child care<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Limpieza\" id=\"form-field-select_serv_reg-2\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-2\">Cleaning<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Asistencia domiciliaria\" id=\"form-field-select_serv_reg-3\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-3\">Asistencia domiciliaria<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Servicio de empleadas del hogar\" id=\"form-field-select_serv_reg-4\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-4\">Servicio de empleadas del hogar<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Acompa\u00f1amiento en hospitales\" id=\"form-field-select_serv_reg-5\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-5\">Acompa\u00f1amiento en hospitales<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Servicio de canguros\" id=\"form-field-select_serv_reg-6\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-6\">Servicio de canguros<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Terapia ocupacional\" id=\"form-field-select_serv_reg-7\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-7\">Terapia ocupacional<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Rehabilitaci\u00f3n y fisioterapia a domicilio\" id=\"form-field-select_serv_reg-8\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-8\">Rehabilitaci\u00f3n y fisioterapia a domicilio<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Venta de productos ortop\u00e9dicos\" id=\"form-field-select_serv_reg-9\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-9\">Venta de productos ortop\u00e9dicos<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Clases particulares a domicilio\" id=\"form-field-select_serv_reg-10\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-10\">Clases particulares a domicilio<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Servicio de ch\u00f3fer privado\" id=\"form-field-select_serv_reg-11\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-11\">Servicio de ch\u00f3fer privado<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Limpieza de oficinas\" id=\"form-field-select_serv_reg-12\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-12\">Limpieza de oficinas<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Mantenimiento de edificios\" id=\"form-field-select_serv_reg-13\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-13\">Mantenimiento de edificios<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Servicios para comunidades de vecinos\" id=\"form-field-select_serv_reg-14\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-14\">Servicios para comunidades de vecinos<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Control de accesos y conserjer\u00eda \" id=\"form-field-select_serv_reg-15\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-15\">Control de accesos y conserjer\u00eda <\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Limpieza industrial \" id=\"form-field-select_serv_reg-16\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-16\">Limpieza industrial <\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Desinfecci\u00f3n de espacios\" id=\"form-field-select_serv_reg-17\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-17\">Desinfecci\u00f3n de espacios<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Servicios auxiliares para empresas\" id=\"form-field-select_serv_reg-18\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-18\">Servicios auxiliares para empresas<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Gesti\u00f3n de residuos\" id=\"form-field-select_serv_reg-19\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-19\">Gesti\u00f3n de residuos<\/label><\/span><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\"Recepcionistas y atenci\u00f3n al cliente\" id=\"form-field-select_serv_reg-20\" name=\"form_fields[select_serv_reg][]\"> <label for=\"form-field-select_serv_reg-20\">Recepcionistas y atenci\u00f3n al cliente<\/label><\/span><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-type-checkbox elementor-field-group elementor-column elementor-field-group-field_67afdad elementor-col-100\">\n\t\t\t\t\t\t\t\t\t\t\t\t<label for=\"form-field-field_67afdad\" class=\"elementor-field-label\">\n\t\t\t\t\t\t\t\tI have read and accept the <a href=\"\/en\/privacy-policy\/\" target=\"_blank\">privacy policy<\/a>\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t<div class=\"elementor-field-subgroup\"><span class=\"elementor-field-option\"><input type=\"checkbox\" value=\" \" id=\"form-field-field_67afdad-0\" name=\"form_fields[field_67afdad]\"> <label for=\"form-field-field_67afdad-0\"> <\/label><\/span><\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons\">\n\t\t\t\t\t<button class=\"elementor-button elementor-size-sm\" type=\"submit\" id=\"registrar\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Send to<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<input type=\"hidden\" name=\"trp-form-language\" value=\"en\"\/><\/form>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7048667e elementor-widget elementor-widget-html\" data-id=\"7048667e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n    validarDuplicado(\"form-field-nie_reg\", \"nif_cif\");\r\n    validarDuplicado(\"form-field-email_reg\", \"email\");\r\n    validarDuplicado(\"form-field-tel_reg\", \"telefono\");\r\n    console.log(\"\ud83d\ude80 [JS] Script de validaci\u00f3n de NIF\/CIF\/NIE cargado.\");\r\n\r\n    let nifCifInput = document.getElementById(\"form-field-nie_reg\");\r\n    let btnEnviar = document.getElementById(\"registrar\");\r\n\r\n    if (!nifCifInput) {\r\n        console.error(\"\u274c [JS] No se encontr\u00f3 el campo NIF\/CIF\");\r\n        return;\r\n    }\r\n\r\n    let validationMessage = document.createElement(\"div\");\r\n    validationMessage.id = \"nif-cif-validation\";\r\n    validationMessage.style.marginTop = \"5px\";\r\n    validationMessage.style.fontSize = \"14px\";\r\n    nifCifInput.parentNode.appendChild(validationMessage);\r\n\r\n    \/\/ \ud83c\udfaf \u2705 \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u043d\u043b\u0430\u0439\u043d-\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438\r\n    nifCifInput.addEventListener(\"input\", async function () {\r\n        let dni = nifCifInput.value.trim().toUpperCase();\r\n\r\n        if (dni.length < 8) {\r\n            validationMessage.innerHTML = \"\u23f3 Introduciendo...\";\r\n            validationMessage.style.color = \"gray\";\r\n            return;\r\n        }\r\n\r\n        if (!validarDNI(dni) && !validarNIE(dni) && !validarCIF(dni)) {\r\n            validationMessage.innerHTML = \"\u274c Inv\u00e1lido\";\r\n            validationMessage.style.color = \"red\";\r\n            return;\r\n        }\r\n\r\n        validationMessage.innerHTML = \"\u23f3 Verificando online...\";\r\n        validationMessage.style.color = \"blue\";\r\n\r\n        try {\r\n            let response = await fetchDNI(dni);\r\n            console.log(\"\u2705 [JS] Respuesta de validaci\u00f3n:\", response);\r\n\r\n            if (response.info && response.info.message.includes(\"No pierdas el tiempo\")) {\r\n                validationMessage.innerHTML = \"\u274c No encontrado\";\r\n                validationMessage.style.color = \"orange\";\r\n            } else {\r\n                validationMessage.innerHTML = \"\u2705 V\u00e1lido\";\r\n                validationMessage.style.color = \"green\";\r\n            }\r\n        } catch (error) {\r\n            console.error(\"\u274c [JS] Error en la validaci\u00f3n:\", error);\r\n            validationMessage.innerHTML = \"\u26a0\ufe0f Error en la verificaci\u00f3n\";\r\n            validationMessage.style.color = \"red\";\r\n        }\r\n    });\r\n\r\n    \/\/ \u2705 **\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0441 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430\u043c\u0438 CORS**\r\nasync function fetchDNI(dni) {\r\n    let url = `https:\/\/zabalimp.es\/wp-admin\/admin-ajax.php?action=validar_dni&dni=${dni}`;\r\n\r\n    let response = await fetch(url, {\r\n        method: \"GET\",\r\n        headers: {\r\n            \"Accept\": \"application\/json\",\r\n            \"X-Requested-With\": \"XMLHttpRequest\"\r\n        }\r\n    });\r\n\r\n    return response.json();\r\n}\r\n\r\n\r\n    \/\/ \ud83d\udcdd **\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u0435\u0440\u0435\u0434 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u044b**\r\n    if (btnEnviar) {\r\n        btnEnviar.addEventListener(\"click\", async function (event) {\r\n            event.preventDefault();\r\n            document.querySelectorAll(\".error-campo\").forEach(el => el.remove());\r\n\r\n            console.log(\"\ud83d\udce9 [JS] Enviando datos de la empresa...\");\r\n\r\n            let nombre = document.getElementById(\"form-field-name_reg\").value.trim();\r\n            let nif_cif = nifCifInput.value.trim();\r\n            let email = document.getElementById(\"form-field-email_reg\").value.trim();\r\n            let telefono = document.getElementById(\"form-field-tel_reg\").value.trim();\r\n            let pagina_web = document.getElementById(\"form-field-url_reg\").value.trim() || null;\r\n\r\n            if (!nombre || !nif_cif || !email || !telefono) {\r\n                alert(\"\u26a0\ufe0f Todos los campos obligatorios deben estar llenos.\");\r\n                return;\r\n            }\r\n\r\n            if (!validarDNI(nif_cif) && !validarNIE(nif_cif) && !validarCIF(nif_cif)) {\r\n                alert(\"\u274c NIF\/CIF\/NIE no v\u00e1lido. Corrige antes de enviar.\");\r\n                return;\r\n            }\r\n\r\n                   \/\/ \ud83d\udd0d \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u0447\u0435\u043a\u0431\u043e\u043a\u0441\u044b\r\n            let checkboxes = Array.from(document.querySelectorAll(\"input[id^='form-field-select_serv_reg-']\"));\r\n            let serviciosText = checkboxes.filter(cb => cb.checked).map(cb => cb.value);\r\n            \r\n            \/\/ \ud83e\uddfc \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\r\n            let errorExistente = document.getElementById(\"error-servicios\");\r\n            if (errorExistente) errorExistente.remove();\r\n            \r\n            \/\/ \ud83e\uddf1 \u041d\u0430\u0439\u0434\u0451\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\r\n            let container = document.getElementById(\"select_serv_reg\") || checkboxes[0]?.parentNode;\r\n            \r\n            if (serviciosText.length === 0) {\r\n                alert(\"\u26a0\ufe0f Debes seleccionar al menos un servicio.\");\r\n            \r\n                if (container) {\r\n                    container.classList.add(\"checkbox-error\");\r\n                    container.scrollIntoView({ behavior: \"smooth\", block: \"center\" }); \/\/ \ud83d\udc48 \u041f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430 \u043a \u0447\u0435\u043a\u0431\u043e\u043a\u0441\u0430\u043c\r\n                }\r\n            \r\n                return;\r\n            }\r\n\r\n\r\n\r\n\r\n            let serviciosIDs = await obtenerIDsServicios(serviciosText);\r\n            console.log(\"\ud83d\udd22 [JS] Servicios convertidos en ID:\", serviciosIDs);\r\n\r\n            let formData = {\r\n                nombre: nombre,\r\n                nif_cif: nif_cif,\r\n                email: email,\r\n                telefono: telefono,\r\n                pagina_web: pagina_web,\r\n                servicios: serviciosIDs\r\n            };\r\n\r\n            console.log(\"\ud83d\udcca [JS] Datos enviados:\", formData);\r\n            \r\n            let checkboxPolitica = document.getElementById(\"form-field-field_67afdad-0\");\r\n\r\n            \/\/ \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c\r\n            let errorPolitica = document.getElementById(\"error-politica\");\r\n            if (errorPolitica) errorPolitica.remove();\r\n            \r\n            \/\/ \u0415\u0441\u043b\u0438 \u0447\u0435\u043a\u0431\u043e\u043a\u0441 \u043d\u0435 \u043e\u0442\u043c\u0435\u0447\u0435\u043d \u2014 \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0444\u043e\u0440\u043c\u0443\r\n            if (!checkboxPolitica || !checkboxPolitica.checked) {\r\n                let errorDiv = document.createElement(\"div\");\r\n                errorDiv.id = \"error-politica\";\r\n                errorDiv.textContent = \"\u26a0\ufe0f Debes aceptar la pol\u00edtica de privacidad.\";\r\n                errorDiv.style.color = \"red\";\r\n                errorDiv.style.fontSize = \"13px\";\r\n                errorDiv.style.marginTop = \"5px\";\r\n                checkboxPolitica.insertAdjacentElement(\"afterend\", errorDiv); \/\/ \u2b05\ufe0f \u0412\u0441\u0442\u0430\u0432\u0438\u043c \u043f\u043e\u0434 \u0447\u0435\u043a\u0431\u043e\u043a\u0441\r\n                return;\r\n            }\r\n            checkboxPolitica.addEventListener(\"change\", () => {\r\n                let error = document.getElementById(\"error-politica\");\r\n                if (checkboxPolitica.checked && error) {\r\n                    error.remove();\r\n                }\r\n            });\r\n            \r\n            \r\n\r\n            fetch(\"https:\/\/zabalimp.es\/wp-admin\/admin-ajax.php?action=registrar_empresa\", {\r\n                method: \"POST\",\r\n                headers: { \"Content-Type\": \"application\/json\" },\r\n                body: JSON.stringify(formData)\r\n            })\r\n            .then(response => response.json())\r\n            .then(data => {\r\n                console.log(\"\u2705 [JS] Respuesta del servidor:\", data);\r\n                if (data.success) {\r\n                    alert(\"\ud83c\udf89 Empresa registrada correctamente.\");\r\n                    window.location.reload();\r\n                } else {\r\n                    if (data.data && data.data.campos) {\r\n                        if (data.data.campos.nif_cif) mostrarErrorCampo(\"form-field-nie_reg\", data.data.campos.nif_cif);\r\n                        if (data.data.campos.email) mostrarErrorCampo(\"form-field-email_reg\", data.data.campos.email);\r\n                        if (data.data.campos.telefono) mostrarErrorCampo(\"form-field-tel_reg\", data.data.campos.telefono);\r\n                    } else {\r\n                        alert(\"\u274c Error al registrar la empresa: \" + (data.data.error || \"Error desconocido\"));\r\n                    }\r\n                }\r\n\r\n            })\r\n            .catch(error => {\r\n                console.error(\"\u274c [JS] Fetch error:\", error);\r\n                alert(\"\u274c Error al enviar datos.\");\r\n            });\r\n        });\r\n    } else {\r\n        console.error(\"\u274c [JS] No se encontr\u00f3 el bot\u00f3n con ID 'registrar'\");\r\n    }\r\n});\r\n\r\n\/\/ \u2705 **\u0424\u0443\u043d\u043a\u0446\u0438\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 DNI\/NIE\/CIF**\r\nfunction validarDNI(dni) {\r\n    let dniRegex = \/^[0-9]{8}[A-Z]$\/;\r\n    if (!dniRegex.test(dni)) return false;\r\n\r\n    let letras = \"TRWAGMYFPDXBNJZSQVHLCKE\";\r\n    let numero = parseInt(dni.slice(0, 8), 10);\r\n    let letraCalculada = letras[numero % 23];\r\n    \r\n    return dni.charAt(8) === letraCalculada;\r\n}\r\n\r\nfunction validarNIE(nie) {\r\n    let nieRegex = \/^[XYZ][0-9]{7}[A-Z]$\/;\r\n    if (!nieRegex.test(nie)) return false;\r\n\r\n    let letras = \"TRWAGMYFPDXBNJZSQVHLCKE\";\r\n    let numero = nie.replace(\"X\", \"0\").replace(\"Y\", \"1\").replace(\"Z\", \"2\");\r\n    numero = parseInt(numero.slice(0, 8), 10);\r\n    let letraCalculada = letras[numero % 23];\r\n\r\n    return nie.charAt(8) === letraCalculada;\r\n}\r\n\r\nfunction validarCIF(cif) {\r\n    let cifRegex = \/^[ABCDEFGHJNPQRSUVW][0-9]{7}[0-9A-J]$\/;\r\n    return cifRegex.test(cif);\r\n}\r\n\r\n\/\/ \u2705 **\u0424\u0443\u043d\u043a\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f ID \u0443\u0441\u043b\u0443\u0433 \u043f\u043e \u0438\u0445 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c**\r\nasync function obtenerIDsServicios(serviciosText) {\r\n    try {\r\n        if (serviciosText.length === 0) {\r\n            console.warn(\"\u26a0\ufe0f [JS] No hay servicios seleccionados.\");\r\n            return [];\r\n        }\r\n\r\n        let response = await fetch(\"https:\/\/zabalimp.es\/wp-admin\/admin-ajax.php?action=get_servicio_ids\", {\r\n            method: \"POST\",\r\n            headers: { \"Content-Type\": \"application\/json\" },\r\n            body: JSON.stringify({ servicios: serviciosText })\r\n        });\r\n\r\n        let data = await response.json();\r\n\r\n        if (data.success) {\r\n            return data.data.servicios_ids;\r\n        } else {\r\n            console.error(\"\u274c [JS] Error al obtener IDs de servicios:\", data.error);\r\n            return [];\r\n        }\r\n    } catch (error) {\r\n        console.error(\"\u274c [JS] Fetch error al obtener IDs de servicios:\", error);\r\n        return [];\r\n    }\r\n}\r\n\r\nfunction mostrarErrorCampo(idCampo, mensaje) {\r\n    let campo = document.getElementById(idCampo);\r\n    if (!campo) return;\r\n\r\n    let errorDiv = campo.nextElementSibling;\r\n    if (!errorDiv || !errorDiv.classList.contains(\"error-campo\")) {\r\n        errorDiv = document.createElement(\"div\");\r\n        errorDiv.className = \"error-campo\";\r\n        errorDiv.style.color = \"red\";\r\n        errorDiv.style.fontSize = \"13px\";\r\n        errorDiv.style.marginTop = \"4px\";\r\n        campo.parentNode.insertBefore(errorDiv, campo.nextSibling);\r\n    }\r\n\r\n    errorDiv.textContent = mensaje;\r\n}\r\nfunction validarDuplicado(campoId, campoNombre) {\r\n    const input = document.getElementById(campoId);\r\n    if (!input || !campoNombre) return;\r\n\r\n    input.addEventListener(\"input\", async () => {\r\n        const valor = input.value.trim();\r\n\r\n        \/\/ \u2705 \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043f\u0443\u0441\u0442\u044b\u0435 \u0438\u043b\u0438 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\r\n        if (!valor || valor.length < 3) {\r\n            let errorDiv = input.nextElementSibling;\r\n            if (!errorDiv || !errorDiv.classList.contains(\"error-campo\")) {\r\n                errorDiv = document.createElement(\"div\");\r\n                errorDiv.className = \"error-campo\";\r\n                errorDiv.style.fontSize = \"13px\";\r\n                errorDiv.style.marginTop = \"4px\";\r\n                input.parentNode.insertBefore(errorDiv, input.nextSibling);\r\n            }\r\n            errorDiv.textContent = \"\";\r\n            return;\r\n        }\r\n\r\n        console.log(\"\ud83d\udd0d Validando duplicado:\", campoNombre, valor);\r\n\r\n        try {\r\n            const response = await fetch(\"https:\/\/zabalimp.es\/wp-admin\/admin-ajax.php?action=verificar_dato_empresa\", {\r\n                method: \"POST\",\r\n                headers: { \"Content-Type\": \"application\/json\" },\r\n                body: JSON.stringify({ campo: campoNombre, valor: valor })\r\n            });\r\n\r\n            const data = await response.json();\r\n            console.log(\"\ud83d\udcec Respuesta duplicado:\", data);\r\n\r\n            let errorDiv = input.nextElementSibling;\r\n            if (!errorDiv || !errorDiv.classList.contains(\"error-campo\")) {\r\n                errorDiv = document.createElement(\"div\");\r\n                errorDiv.className = \"error-campo\";\r\n                errorDiv.style.fontSize = \"13px\";\r\n                errorDiv.style.marginTop = \"4px\";\r\n                input.parentNode.insertBefore(errorDiv, input.nextSibling);\r\n            }\r\n\r\n            if (data.success && data.data.existe) {\r\n                errorDiv.textContent = `\u26a0\ufe0f Este ${campoNombre.toUpperCase()} ya est\u00e1 registrado.`;\r\n                errorDiv.style.color = \"red\";\r\n            } else {\r\n                errorDiv.textContent = \"\";\r\n            }\r\n        } catch (error) {\r\n            console.error(`\u274c [JS] Error al verificar duplicado ${campoNombre}:`, error);\r\n        }\r\n    });\r\n}\r\n\r\n\r\n\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_joinchat":[],"footnotes":""},"class_list":["post-567","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/zabalimp.es\/en\/wp-json\/wp\/v2\/pages\/567","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zabalimp.es\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/zabalimp.es\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/zabalimp.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zabalimp.es\/en\/wp-json\/wp\/v2\/comments?post=567"}],"version-history":[{"count":0,"href":"https:\/\/zabalimp.es\/en\/wp-json\/wp\/v2\/pages\/567\/revisions"}],"wp:attachment":[{"href":"https:\/\/zabalimp.es\/en\/wp-json\/wp\/v2\/media?parent=567"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}