{"id":3105,"date":"2025-06-05T14:26:13","date_gmt":"2025-06-05T14:26:13","guid":{"rendered":"https:\/\/agroxy.farm\/registration1\/"},"modified":"2026-04-03T11:02:43","modified_gmt":"2026-04-03T11:02:43","slug":"registration","status":"publish","type":"page","link":"https:\/\/agroxy.farm\/es\/registration\/","title":{"rendered":"Registro"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3105\" class=\"elementor elementor-3105 elementor-3100\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dbe23c2 e-flex e-con-boxed e-con e-parent\" data-id=\"dbe23c2\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dea31c5 elementor-widget elementor-widget-html\" data-id=\"dea31c5\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n  @media (max-width: 1024px) {\r\n    section {\r\n      display: flex !important;\r\n      justify-content: center !important;\r\n      align-items: center !important;\r\n      padding: 40px 20px !important;\r\n    }\r\n  }\r\n\r\n  @media (max-width: 768px) {\r\n    section {\r\n      display: flex !important;\r\n      justify-content: center !important;\r\n      align-items: center !important;\r\n      padding: 20px 10px !important;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<style>\r\n  .iti {\r\n    width: 100%;\r\n    margin-bottom: 5px;\r\n  }\r\n\r\n  .iti__wrapper {\r\n    width: 100%;\r\n  }\r\n\r\n  .iti__control {\r\n    height: 40px;\r\n    border-radius: 8px !important;\r\n    border: none !important;\r\n    background: rgba(255, 255, 255, 0.95) !important;\r\n    font-size: 14px;\r\n    color: black;\r\n  }\r\n\r\n  .iti__selected-dial-code {\r\n    color: black;\r\n    margin-left: 4px;\r\n    font-weight: 400;\r\n    font-size: 14px;\r\n    font-family: sans-serif;\r\n  }\r\n\r\n  .iti__selected-country {\r\n    background-image: none !important;\r\n    padding: 0 5px !important;\r\n  }\r\n\r\n  .iti--allow-dropdown .iti__country-container:not(:has(+ input[disabled])):not(:has(+ input[readonly])) .iti__selected-country-primary:hover,\r\n  .iti--allow-dropdown .iti__country-container:not(:has(+ input[disabled])):not(:has(+ input[readonly])) .iti__selected-country:has(+ .iti__dropdown-content:hover) .iti__selected-country-primary {\r\n    background-color: inherit !important;\r\n  }\r\n<\/style>\r\n\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/intl-tel-input@24.5.0\/build\/css\/intlTelInput.css\">\r\n\r\n<section\r\n  style=\"\r\n    width: 100%;\r\n    min-height: 100vh;\r\n    align-items: flex-start;\r\n    justify-content: center;\r\n    background: url('https:\/\/your-background-image.jpg') center\/cover no-repeat;\r\n    padding: 10px 0px 20px;\r\n    box-sizing: border-box;\r\n  \"\r\n>\r\n  <div\r\n    style=\"\r\n      width: 100%;\r\n      max-width: 520px;\r\n      background: rgba(255, 255, 255, 0.2);\r\n      backdrop-filter: blur(15px);\r\n      border-radius: 40px;\r\n      padding: 40px;\r\n      color: #000;\r\n      box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);\r\n    \"\r\n  >\r\n    <!-- \u041b\u043e\u0433\u043e\u0442\u0438\u043f -->\r\n    <a href=\"\/\" style=\"display: block; text-align: center; margin-bottom: 1px\">\r\n      <img decoding=\"async\"\r\n        src=\"https:\/\/agroxy.farm\/wp-content\/uploads\/2025\/06\/\u0411\u0435\u043b\u044b\u0439-\u043b\u043e\u0433\u043e.svg\"\r\n        alt=\"Logo\"\r\n        style=\"width: 220px\"\r\n      \/>\r\n    <\/a>\r\n\r\n    <!-- \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a -->\r\n    <h2\r\n      style=\"\r\n        font-size: 30px;\r\n        text-align: center;\r\n        margin-bottom: 10px;\r\n        color: white;\r\n      \"\r\n    >\r\n      Registro\r\n    <\/h2>\r\n\r\n    <form\r\n      id=\"registrationForm\"\r\n      style=\"display: flex; flex-direction: column; align-items: center\"\r\n    >\r\n      <!-- \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u044f -->\r\n      <label\r\n        for=\"company\"\r\n        style=\"width: 100%; font-size: 14px; margin-bottom: 5px\"\r\n      >\r\n        Nombre de empresa <span style=\"color: #ec7979; margin-left: 3px\">*<\/span>\r\n      <\/label>\r\n      <input\r\n        id=\"company_name\"\r\n        type=\"text\"\r\n        placeholder=\"\"\r\n        required\r\n        style=\"\r\n          width: 100%;\r\n          height: 40px;\r\n          margin-bottom: 5px;\r\n          border-radius: 8px;\r\n          border: none;\r\n          padding: 0 12px;\r\n          font-size: 14px;\r\n          background: rgba(255, 255, 255, 0.95);\r\n          color: black;\r\n        \"\r\n      \/>\r\n      <div\r\n        data-error=\"company_name\"\r\n        style=\"\r\n          display: none;\r\n          color: red;\r\n          font-size: 13px;\r\n          margin-bottom: 5px;\r\n          align-self: flex-start;\r\n          padding-left: 10px;\r\n        \"\r\n      ><\/div>\r\n\r\n      <!-- \u0424\u0418\u041e -->\r\n      <label\r\n        for=\"fullname\"\r\n        style=\"\r\n          width: 100%;\r\n          font-size: 14px;\r\n          margin-bottom: 5px;\r\n          margin-top: 10px;\r\n        \"\r\n      >\r\n        Nombre completo <span style=\"color: #ec7979; margin-left: 3px\">*<\/span>\r\n      <\/label>\r\n      <input\r\n        id=\"full_name\"\r\n        type=\"text\"\r\n        placeholder=\"\"\r\n        required\r\n        style=\"\r\n          width: 100%;\r\n          height: 40px;\r\n          margin-bottom: 5px;\r\n          border-radius: 8px;\r\n          border: none;\r\n          padding: 0 12px;\r\n          font-size: 14px;\r\n          background: rgba(255, 255, 255, 0.95);\r\n          color: black;\r\n        \"\r\n      \/>\r\n      <div\r\n        data-error=\"full_name\"\r\n        style=\"\r\n          display: none;\r\n          color: red;\r\n          font-size: 13px;\r\n          margin-bottom: 5px;\r\n          align-self: flex-start;\r\n          padding-left: 10px;\r\n        \"\r\n      ><\/div>\r\n\r\n      <!-- Email -->\r\n      <label\r\n        for=\"email\"\r\n        style=\"\r\n          width: 100%;\r\n          font-size: 14px;\r\n          margin-bottom: 5px;\r\n          margin-top: 10px;\r\n        \"\r\n      >\r\n        Correo electr\u00f3nico <span style=\"color: #ec7979; margin-left: 3px\">*<\/span>\r\n      <\/label>\r\n      <input\r\n        id=\"email\"\r\n        type=\"email\"\r\n        placeholder=\"\"\r\n        required\r\n        style=\"\r\n          width: 100%;\r\n          height: 40px;\r\n          margin-bottom: 5px;\r\n          border-radius: 8px;\r\n          border: none;\r\n          padding: 0 12px;\r\n          font-size: 14px;\r\n          background: rgba(255, 255, 255, 0.95);\r\n          color: black;\r\n        \"\r\n      \/>\r\n      <div\r\n        data-error=\"email\"\r\n        style=\"\r\n          display: none;\r\n          color: red;\r\n          font-size: 13px;\r\n          margin-bottom: 5px;\r\n          align-self: flex-start;\r\n          padding-left: 10px;\r\n        \"\r\n      ><\/div>\r\n\r\n      <!-- \u0422\u0435\u043b\u0435\u0444\u043e\u043d -->\r\n      <label\r\n        style=\"\r\n          width: 100%;\r\n          font-size: 14px;\r\n          margin-bottom: 5px;\r\n          margin-top: 10px;\r\n        \"\r\n        >N\u00famero de tel\u00e9fono\r\n        <span style=\"color: #ec7979; margin-left: 3px\">*<\/span><\/label\r\n      >\r\n     \r\n    <input type=\"tel\" id=\"phone\" required style=\"\r\n        display: flex;\r\n          align-items: center;\r\n          gap: 5px;\r\n          width: 100%;\r\n          height: 40px;\r\n          margin-bottom: 5px;\r\n          border-radius: 8px;\r\n          border: none;\r\n          padding-right: 12px;\r\n          font-size: 14px;\r\n          background: rgba(255, 255, 255, 0.95);\r\n          color: black;\r\n          font-family: sans-serif;\r\n          padding-left: 15px;\r\n          background-repeat: no-repeat;\r\n          background-position: 6px center;\r\n          background-size: 20px;\r\n    \" \/>\r\n      <input type=\"hidden\" id=\"full_phone_hidden\">\r\n\r\n      <div data-error=\"telephone\" style=\"\r\n          display: none;\r\n          color: red;\r\n          font-size: 13px;\r\n          margin-bottom: 5px;\r\n          align-self: flex-start;\r\n          padding-left: 10px;\r\n        \"><\/div>\r\n      <div\r\n        data-error=\"telephone\"\r\n        style=\"\r\n          display: none;\r\n          color: red;\r\n          font-size: 13px;\r\n          margin-bottom: 5px;\r\n          align-self: flex-start;\r\n          padding-left: 10px;\r\n        \"\r\n      ><\/div>\r\n\r\n      <!-- \u0427\u0435\u043a\u0431\u043e\u043a\u0441\u044b -->\r\n      <label\r\n        style=\"\r\n          width: 100%;\r\n          font-size: 14px;\r\n          display: flex;\r\n          align-items: center;\r\n          margin-bottom: 10px;\r\n          margin-top: 10px;\r\n        \"\r\n      >\r\n        <input\r\n          type=\"checkbox\"\r\n          id=\"notifications\"\r\n          checked\r\n          style=\"\r\n            margin-right: 8px;\r\n            accent-color: #659647;\r\n            width: 20px;\r\n            height: 20px;\r\n          \"\r\n        \/>\r\n        Notificar sobre noticias y actualizaciones\r\n      <\/label>\r\n\r\n      <label\r\n        style=\"\r\n          width: 100%;\r\n          font-size: 14px;\r\n          display: flex;\r\n          align-items: center;\r\n          margin-bottom: 20px;\r\n          flex-wrap:wrap;\r\n          gap: 2px;\r\n          row-gap: 5px;\r\n        \"\r\n      >\r\n        <input\r\n          id=\"terms\"\r\n          type=\"checkbox\"\r\n          required\r\n          style=\"\r\n            width: 20px;\r\n            height: 20px;\r\n            margin-right: 8px;\r\n            accent-color: #659647;\r\n          \"\r\n        \/>\r\n        Acepto los\r\n        <a target=\"_blank\" href=\"\/es\/terms-conditions\" style=\"color: #659647; margin-left: 4px\"\r\n          >T\u00e9rminos y Condiciones  <\/a\r\n        > <span style=\"margin-left:2px;\">y la<\/span><a target=\"_blank\" href=\"\/es\/privacy-policy\" style=\"color: #659647; margin-left: 4px\"\r\n          >Pol\u00edtica de Privacidad <\/a\r\n        ><span style=\"color: #ec7979; margin-left: 3px\">*<\/span>\r\n      <\/label>\r\n\r\n      <!-- \u041a\u043d\u043e\u043f\u043a\u0430 -->\r\n      <button\r\n        type=\"submit\"\r\n        id=\"loginBtn\"\r\n        style=\"\r\n          margin-top: 10px;\r\n          position: relative;\r\n          width: 100%;\r\n          max-width: 420px;\r\n          height: 48px;\r\n          background-color: #4caf50;\r\n          color: white;\r\n          font-size: 16px;\r\n          border: none;\r\n          border-radius: 30px;\r\n          cursor: pointer;\r\n          margin-bottom: 20px;\r\n          transition: all 0.3s ease;\r\n          overflow: hidden;\r\n        \"\r\n      >\r\n        <span id=\"buttonText\" style=\"transition: opacity 0.3s ease\"\r\n          >Crear una CUENTA<\/span\r\n        >\r\n        <div\r\n          id=\"loader\"\r\n          style=\"\r\n            position: absolute;\r\n            top: 50%;\r\n            left: 50%;\r\n            transform: translate(-50%, -50%);\r\n            width: 20px;\r\n            height: 20px;\r\n            border: 2px solid rgba(255, 255, 255, 0.3);\r\n            border-top: 2px solid white;\r\n            border-radius: 50%;\r\n            animation: spin 1s linear infinite;\r\n            opacity: 0;\r\n            transition: opacity 0.3s ease;\r\n          \"\r\n        ><\/div>\r\n      <\/button>\r\n\r\n      <p style=\"text-align: center; font-size: 14px; margin-bottom: 15px\">\r\n        \u00bfYa tienes una cuenta?\r\n        <a href=\"\/es\/login\" style=\"color: #659647; text-decoration: none;  padding: 4px 8px; color: #2E7D32; text-decoration: none; background-color: #81d50560; border-radius: 8px;\"\r\n          >Iniciar sesi\u00f3n<\/a\r\n        >\r\n      <\/p>\r\n\r\n      <hr\r\n        style=\"\r\n          width: 100%;\r\n          border: none;\r\n          border-top: 1px solid rgba(255, 255, 255, 0.3);\r\n          margin: 10px 0;\r\n        \"\r\n      \/>\r\n\r\n      <p style=\"text-align: center; margin-bottom: 20px; font-size: 14px\">\r\n        O inicia sesi\u00f3n con\r\n      <\/p>\r\n\r\n      <button\r\n        id=\"googleBtn\"\r\n        type=\"button\"\r\n        style=\"\r\n          width: 100%;\r\n          height: 50px;\r\n          background: white;\r\n          color: black;\r\n          border: none;\r\n          border-radius: 10px;\r\n          margin-bottom: 10px;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 14px;\r\n          cursor: pointer;\r\n        \"\r\n      >\r\n        <img decoding=\"async\"\r\n          src=\"https:\/\/www.svgrepo.com\/show\/475656\/google-color.svg\"\r\n          alt=\"Google logo\"\r\n          style=\"width: 18px; margin-right: 8px\"\r\n        \/>\r\n        Continuar con Google\r\n      <\/button>\r\n\r\n      <button\r\n        type=\"button\"\r\n        disabled\r\n        style=\"\r\n          width: 100%;\r\n          height: 50px;\r\n          background: white;\r\n          color: black;\r\n          border: none;\r\n          border-radius: 10px;\r\n          display: flex;\r\n          align-items: center;\r\n          justify-content: center;\r\n          font-size: 14px;\r\n          opacity: 0.7;\r\n          cursor: not-allowed;\r\n        \"\r\n      >\r\n        <img decoding=\"async\"\r\n          src=\"https:\/\/www.svgrepo.com\/show\/452196\/facebook-1.svg\"\r\n          alt=\"Facebook logo\"\r\n          style=\"width: 18px; margin-right: 8px\"\r\n        \/>\r\n        Continuar con Facebook\r\n      <\/button>\r\n    <\/form>\r\n  <\/div>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3ff41b7 elementor-widget elementor-widget-html\" data-id=\"3ff41b7\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n  @keyframes spin {\r\n    0% {\r\n      transform: translate(-50%, -50%) rotate(0deg);\r\n    }\r\n    100% {\r\n      transform: translate(-50%, -50%) rotate(360deg);\r\n    }\r\n  }\r\n<\/style>\r\n\r\n\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/intl-tel-input@24.5.0\/build\/js\/intlTelInputWithUtils.min.js\"><\/script>\r\n\r\n<script type=\"module\">\r\n    import es from \"https:\/\/cdn.jsdelivr.net\/npm\/intl-tel-input@24.5.0\/build\/js\/i18n\/es\/index.js\";\r\n\r\n    const input = document.querySelector(\"#phone\");\r\n    const hiddenInput = document.querySelector(\"#full_phone_hidden\");\r\n\r\n    const iti = window.intlTelInput(input, {\r\n        initialCountry: \"at\",\r\n        separateDialCode: true,\r\n        excludeCountries: [\"ru\", \"by\", \"az\", \"am\", \"kz\", \"kg\", \"md\", \"tj\", \"uz\", \"ua\"],\r\n        autoPlaceholder: \"aggressive\",\r\n        strictMode: true,\r\n        formatOnDisplay: true,\r\n        nationalMode: true,\r\n        i18n: es,\r\n    });\r\n\r\n    window.iti = iti;\r\n\r\n    const getMaskFromPlaceholder = () => {\r\n        const placeholder = input.getAttribute('placeholder') || '';\r\n        return placeholder;\r\n    };\r\n\r\n    const applyMask = (digits, mask) => {\r\n        if (!mask || !digits) return digits;\r\n\r\n        let result = '';\r\n        let digitIndex = 0;\r\n\r\n        for (let i = 0; i < mask.length && digitIndex < digits.length; i++) {\r\n            const maskChar = mask[i];\r\n\r\n            if (\/\\d\/.test(maskChar)) {\r\n                result += digits[digitIndex];\r\n                digitIndex++;\r\n            } else {\r\n                result += maskChar;\r\n            }\r\n        }\r\n\r\n        while (digitIndex < digits.length) {\r\n            result += digits[digitIndex];\r\n            digitIndex++;\r\n        }\r\n\r\n        return result;\r\n    };\r\n\r\n    const getMaxDigits = (mask) => {\r\n        if (!mask) return 15;\r\n        return (mask.match(\/\\d\/g) || []).length;\r\n    };\r\n\r\n    const handleInput = (e) => {\r\n        const cursorPosition = input.selectionStart || 0;\r\n        const oldValue = input.value;\r\n\r\n        let digits = input.value.replace(\/\\D\/g, '');\r\n\r\n        const mask = getMaskFromPlaceholder();\r\n        const maxDigits = getMaxDigits(mask);\r\n\r\n        if (digits.length > maxDigits) {\r\n            digits = digits.slice(0, maxDigits);\r\n        }\r\n\r\n        const formatted = applyMask(digits, mask);\r\n\r\n        if (formatted !== oldValue) {\r\n            const digitsBeforeCursor = oldValue.slice(0, cursorPosition).replace(\/\\D\/g, '').length;\r\n\r\n            input.value = formatted;\r\n\r\n            let newCursorPos = 0;\r\n            let digitCount = 0;\r\n\r\n            for (let i = 0; i < formatted.length; i++) {\r\n                if (\/\\d\/.test(formatted[i])) {\r\n                    digitCount++;\r\n                }\r\n                if (digitCount === digitsBeforeCursor) {\r\n                    newCursorPos = i + 1;\r\n                    break;\r\n                }\r\n            }\r\n\r\n            if (digitsBeforeCursor >= digits.length) {\r\n                newCursorPos = formatted.length;\r\n            }\r\n\r\n            input.setSelectionRange(newCursorPos, newCursorPos);\r\n        }\r\n\r\n        hiddenInput.value = iti.getNumber();\r\n    };\r\n\r\n    input.addEventListener('input', handleInput);\r\n    input.addEventListener('countrychange', () => {\r\n        input.value = \"\";\r\n        hiddenInput.value = \"\";\r\n    });\r\n<\/script>\r\n\r\n<script src=\"https:\/\/www.google.com\/recaptcha\/api.js?render=6LdGPn8rAAAAAKQ28rfXEJYCNI8EzYWsBBgTltp4\"><\/script>\r\n<script>\r\n  const CLIENT_ID =\r\n    \"11801709207-2uv15295p8gdtulvub4vcoejmh6tfmqj.apps.googleusercontent.com\";\r\n  const REDIRECT_URI = \"https:\/\/agroxy.farm\/oauth-redirect\";\r\n  const SCOPE = \"email profile openid\";\r\n  const RESPONSE_TYPE = \"token\";\r\n  let popup;\r\n\r\n  function openGoogleOAuthPopup() {\r\n    const width = 500;\r\n    const height = 600;\r\n    const left = window.screenX + (window.outerWidth - width) \/ 2;\r\n    const top = window.screenY + (window.outerHeight - height) \/ 2;\r\n\r\n    const authUrl =\r\n      \"https:\/\/accounts.google.com\/o\/oauth2\/v2\/auth?\" +\r\n      `client_id=${encodeURIComponent(CLIENT_ID)}` +\r\n      `&redirect_uri=${encodeURIComponent(REDIRECT_URI)}` +\r\n      `&response_type=${encodeURIComponent(RESPONSE_TYPE)}` +\r\n      `&scope=${encodeURIComponent(SCOPE)}` +\r\n      `&include_granted_scopes=true` +\r\n      `&prompt=select_account`;\r\n\r\n    popup = window.open(\r\n      authUrl,\r\n      \"googleAuthPopup\",\r\n      `width=${width},height=${height},left=${left},top=${top}`\r\n    );\r\n    if (!popup) {\r\n      return;\r\n    }\r\n  }\r\n\r\n  window.addEventListener(\"message\", async (event) => {\r\n    if (event.origin !== window.location.origin) {\r\n      return;\r\n    }\r\n    if (event.data.type === \"google_auth_token\") {\r\n      try {\r\n        const response = await fetch(\r\n          \"https:\/\/app.agroxy.farm\/api\/agroxy\/auth\/google\",\r\n          {\r\n            method: \"POST\",\r\n            headers: {\r\n              \"Content-Type\": \"application\/json\",\r\n              \"X-Language\": \"es\",\r\n            },\r\n            credentials: \"include\",\r\n            body: JSON.stringify({\r\n              token: event.data.token,\r\n            }),\r\n          }\r\n        );\r\n\r\n        const result = await response.json();\r\n        if (response.ok) {\r\n          location.href=\"https:\/\/app.agroxy.farm\/en\/crop\/field-map\";\r\n        }\r\n      } catch (error) {\r\n        console.log(error);\r\n      }\r\n    }\r\n  });\r\n\r\n  document\r\n    .getElementById(\"googleBtn\")\r\n    .addEventListener(\"click\", openGoogleOAuthPopup);\r\n<\/script>\r\n<script>\r\n  let isLoading = false;\r\n\r\n  function validatePhoneNumber() {\r\n    const phoneInput = document.getElementById(\"phone\");\r\n    const countryCode = document.getElementById(\"select-value\").textContent;\r\n    const maskElement = document.querySelector(`[data-code=\"${countryCode}\"]`);\r\n\r\n    if (!maskElement) {\r\n      return false;\r\n    }\r\n\r\n    if (!phoneInput.value) {\r\n      return true;\r\n    }\r\n\r\n    const mask = maskElement.getAttribute(\"data-mask\");\r\n    const phoneValue = phoneInput.value;\r\n\r\n    const expectedDigits = (mask.match(\/_\/g) || []).length;\r\n    const enteredDigits = phoneValue.replace(\/\\D\/g, \"\").length;\r\n\r\n    return enteredDigits === expectedDigits;\r\n  }\r\n\r\n  function toggleLoader() {\r\n    const btn = document.getElementById(\"loginBtn\");\r\n    const text = document.getElementById(\"buttonText\");\r\n    const loader = document.getElementById(\"loader\");\r\n\r\n    isLoading = !isLoading;\r\n\r\n    if (isLoading) {\r\n      \/\/ \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043b\u043e\u0430\u0434\u0435\u0440\r\n      btn.disabled = true;\r\n      btn.style.backgroundColor = \"#cccccc\";\r\n      btn.style.cursor = \"not-allowed\";\r\n      text.style.opacity = \"0\";\r\n      loader.style.opacity = \"1\";\r\n    } else {\r\n      \/\/ \u0421\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043b\u043e\u0430\u0434\u0435\u0440\r\n      btn.disabled = false;\r\n      btn.style.backgroundColor = \"#4CAF50\";\r\n      btn.style.cursor = \"pointer\";\r\n      text.style.opacity = \"1\";\r\n      loader.style.opacity = \"0\";\r\n    }\r\n  }\r\n\r\n  document\r\n    .getElementById(\"registrationForm\")\r\n    .addEventListener(\"submit\", async function (e) {\r\n      e.preventDefault();\r\n      if (isLoading) {\r\n        return;\r\n      }\r\n      toggleLoader();\r\n\r\n      const recaptchaToken = await new Promise((resolve, reject) => {\r\n        grecaptcha.ready(() => {\r\n          grecaptcha\r\n            .execute(\"6LdGPn8rAAAAAKQ28rfXEJYCNI8EzYWsBBgTltp4\", {\r\n              action: \"register\",\r\n            })\r\n            .then((token) => resolve(token))\r\n            .catch((error) => reject(error));\r\n        });\r\n      });\r\n\r\n      const companyName = document.getElementById(\"company_name\").value;\r\n      const fullName = document.getElementById(\"full_name\").value;\r\n      const email = document.getElementById(\"email\").value;\r\n      const phone = document.getElementById(\"phone\").value;\r\n      const notifications = document.querySelector(\"#notifications\").checked;\r\n      const terms = document.querySelector(\"#terms\").checked;\r\n\r\n      const fullPhone = window.iti.getNumber();\r\n      clearAllErrors();\r\n\r\n      if (companyName?.length > 255) {\r\n        toggleLoader();\r\n        showFieldErrors({ company_name: \"El nombre de la empresa es demasiado largo\" });\r\n        return;\r\n      }\r\n      if (fullName?.length > 255) {\r\n        toggleLoader();\r\n        showFieldErrors({ full_name: \"El nombre completo es demasiado largo\" });\r\n        return;\r\n      }\r\n\r\n      if (!validatePhoneNumber()) {\r\n        toggleLoader();\r\n        showFieldErrors({ telephone: \"Por favor, introduzca un n\u00famero de tel\u00e9fono v\u00e1lido\" });\r\n        return;\r\n      }\r\n\r\n      try {\r\n         const countryData = window.iti.getSelectedCountryData();\r\n        const response = await fetch(\r\n          \"https:\/\/app.agroxy.farm\/api\/agroxy\/auth\/sign-up\",\r\n          {\r\n            method: \"POST\",\r\n            headers: {\r\n              \"Content-Type\": \"application\/json\",\r\n            },\r\n            credentials: \"include\",\r\n            body: JSON.stringify({\r\n              organizationName: companyName,\r\n              fullName: fullName,\r\n              email: email,\r\n              phone: !fullPhone ? \"\" : fullPhone,\r\n              allowEmailNotification: notifications,\r\n              confirmTermsConfidentiality: terms,\r\n              reCaptcha: recaptchaToken,\r\n              from: \"web_email\",\r\n              countryId: countryData?.iso2.toUpperCase(),\r\n            }),\r\n          }\r\n        );\r\n\r\n        const result = await response.json();\r\n        if (response.ok) {\r\n          toggleLoader();\r\n          clearAllErrors();\r\n          window.location.href = \"\/es\/data-retrieval-page\";\r\n        } else {\r\n          toggleLoader();\r\n          const errBody = result;\r\n          if (errBody.message) {\r\n            showFieldErrors({ email: errBody.message }, response.status);\r\n          } else {\r\n            showFieldErrors(errBody, response.status);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        toggleLoader();\r\n        console.error(\"Error:\", error);\r\n      }\r\n    });\r\n\r\n  function showFieldErrors(errors, status) {\r\n    clearAllErrors();\r\n\r\n    if (status === 401) {\r\n      const errorDiv = document.querySelector(`[data-error=\"email\"]`);\r\n      errorDiv.innerHTML =\r\n        \"Error de registro. La cuenta ya se cre\u00f3, pero no se verific\u00f3. Para recibir un enlace de activaci\u00f3n <a href='\/es\/registration-resend-email' style='color: #659647; text-decoration: none;'>haga clic aqu\u00ed<\/a>\";\r\n      errorDiv.style.display = \"block\";\r\n      const inputField = document.getElementById(\"email\");\r\n      if (inputField) {\r\n        inputField.style.border = \"2px solid #ff4444\";\r\n        inputField.style.background = \"rgba(255, 68, 68, 0.1)\";\r\n      }\r\n      return;\r\n    }\r\n\r\n    if (status === 409) {\r\n      const errorDiv = document.querySelector(`[data-error=\"email\"]`);\r\n      errorDiv.innerHTML =\r\n        \"Ya existe un usuario con la misma direcci\u00f3n de correo electr\u00f3nico. <a href='\/login' style='color: #659647; text-decoration: none;'>Iniciar sesi\u00f3n<\/a> o <a href='\/es\/password-recovery-page' style='color: #659647; text-decoration: none;'>Recuperar su contrase\u00f1a<\/a>\";\r\n      errorDiv.style.display = \"block\";\r\n      const inputField = document.getElementById(\"email\");\r\n      if (inputField) {\r\n        inputField.style.border = \"2px solid #ff4444\";\r\n        inputField.style.background = \"rgba(255, 68, 68, 0.1)\";\r\n      }\r\n      return;\r\n    }\r\n\r\n    for (const [field, message] of Object.entries(errors)) {\r\n      const errorDiv = document.querySelector(`[data-error=\"${field}\"]`);\r\n      if (errorDiv) {\r\n        errorDiv.textContent = Array.isArray(message) ? message[0] : message;\r\n        errorDiv.style.display = \"block\";\r\n\r\n        const inputField = document.getElementById(field === 'telephone' ? 'phone': field);\r\n        if (inputField) {\r\n          inputField.style.border = \"2px solid #ff4444\";\r\n          inputField.style.background = \"rgba(255, 68, 68, 0.1)\";\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  function clearAllErrors() {\r\n    const errorDivs = document.querySelectorAll(\"[data-error]\");\r\n    errorDivs.forEach((errorDiv) => {\r\n      errorDiv.style.display = \"none\";\r\n      errorDiv.textContent = \"\";\r\n    });\r\n\r\n    const inputFields = [\"company_name\", \"full_name\", \"email\", \"phone\"];\r\n    inputFields.forEach((fieldId) => {\r\n      const inputField = document.getElementById(fieldId);\r\n      if (inputField) {\r\n        inputField.style.border = \"none\";\r\n        inputField.style.background = \"rgba(255,255,255,0.95)\";\r\n      }\r\n    });\r\n\r\n    \/\/ Clear country code select styling\r\n    const countryCodeSelect = document.getElementById(\"country-code\");\r\n    if (countryCodeSelect) {\r\n      countryCodeSelect.style.border = \"none\";\r\n      countryCodeSelect.style.background = \"rgba(255,255,255,0.95)\";\r\n    }\r\n  }\r\n\r\n  function clearFieldError(fieldName) {\r\n    const errorDiv = document.querySelector(`[data-error=\"${fieldName}\"]`);\r\n    if (errorDiv) {\r\n      errorDiv.style.display = \"none\";\r\n      errorDiv.textContent = \"\";\r\n    }\r\n\r\n    const inputField = document.getElementById(fieldName === 'telephone' ? 'phone': fieldName);\r\n\r\n    if (inputField) {\r\n      inputField.style.border = \"none\";\r\n      inputField.style.background = \"rgba(255,255,255,0.95)\";\r\n    }\r\n  }\r\n\r\n  \/\/ Add input event listeners to clear errors when user starts typing\r\n  document\r\n    .getElementById(\"company_name\")\r\n    .addEventListener(\"input\", () => clearFieldError(\"company_name\"));\r\n  document\r\n    .getElementById(\"full_name\")\r\n    .addEventListener(\"input\", () => clearFieldError(\"full_name\"));\r\n  document\r\n    .getElementById(\"email\")\r\n    .addEventListener(\"input\", () => clearFieldError(\"email\"));\r\n  document\r\n    .getElementById(\"phone\")\r\n    .addEventListener(\"input\", () => clearFieldError(\"phone\"));\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3988a9f elementor-widget elementor-widget-html\" data-id=\"3988a9f\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\n\n    async function autologin() {\n\n           try {\n\n        const response = await fetch(\n\n          \"https:\/\/app.agroxy.farm\/api\/agroxy\/auth\/session\/state\",\n\n          {\n\n            method: \"GET\",\n\n            headers: {\n\n              \"Content-Type\": \"application\/json\",\n\n              \"X-Language\": \"en\"\n\n            },\n\n            credentials: \"include\",\n\n          }\n\n        );\n\n        const result = await response.json();\n\n        if (result.data.isActive) {\n\n          location.href=\"https:\/\/app.agroxy.farm\/en\/crop\/field-map\";\n\n        }\n\n      } catch (error) {\n\n        console.log(error);\n\n      }\n\n    }\n\n    autologin();\n<\/script>\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>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Registro Nombre de empresa * Nombre completo * Correo electr\u00f3nico * N\u00famero de tel\u00e9fono * Notificar sobre noticias y actualizaciones Acepto los T\u00e9rminos y Condiciones y laPol\u00edtica de Privacidad * Crear una CUENTA \u00bfYa tienes una cuenta? Iniciar sesi\u00f3n O inicia sesi\u00f3n con Continuar con Google Continuar con Facebook<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-3105","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Registro - Agroxy.Farm<\/title>\n<meta name=\"description\" content=\"Register in the farm management system Agroxy.Farm\" \/>\n<meta name=\"robots\" content=\"noindex, nofollow\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Registro - Agroxy.Farm\" \/>\n<meta property=\"og:description\" content=\"Register in the farm management system Agroxy.Farm\" \/>\n<meta property=\"og:url\" content=\"https:\/\/agroxy.farm\/es\/registration\/\" \/>\n<meta property=\"og:site_name\" content=\"Agroxy.Farm\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-03T11:02:43+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/agroxy.farm\/es\/registration\/\",\"url\":\"https:\/\/agroxy.farm\/es\/registration\/\",\"name\":\"Registro - Agroxy.Farm\",\"isPartOf\":{\"@id\":\"https:\/\/agroxy.farm\/#website\"},\"datePublished\":\"2025-06-05T14:26:13+00:00\",\"dateModified\":\"2026-04-03T11:02:43+00:00\",\"description\":\"Register in the farm management system Agroxy.Farm\",\"breadcrumb\":{\"@id\":\"https:\/\/agroxy.farm\/es\/registration\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/agroxy.farm\/es\/registration\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/agroxy.farm\/es\/registration\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/agroxy.farm\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Registro\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/agroxy.farm\/#website\",\"url\":\"https:\/\/agroxy.farm\/\",\"name\":\"Agroxy.Farm\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/agroxy.farm\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/agroxy.farm\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/agroxy.farm\/#organization\",\"name\":\"Agroxy.Farm\",\"url\":\"https:\/\/agroxy.farm\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/agroxy.farm\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/agroxy.farm\/wp-content\/uploads\/2024\/12\/logo.svg\",\"contentUrl\":\"https:\/\/agroxy.farm\/wp-content\/uploads\/2024\/12\/logo.svg\",\"width\":209,\"height\":45,\"caption\":\"Agroxy.Farm\"},\"image\":{\"@id\":\"https:\/\/agroxy.farm\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Registro - Agroxy.Farm","description":"Register in the farm management system Agroxy.Farm","robots":{"index":"noindex","follow":"nofollow"},"og_locale":"es_ES","og_type":"article","og_title":"Registro - Agroxy.Farm","og_description":"Register in the farm management system Agroxy.Farm","og_url":"https:\/\/agroxy.farm\/es\/registration\/","og_site_name":"Agroxy.Farm","article_modified_time":"2026-04-03T11:02:43+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/agroxy.farm\/es\/registration\/","url":"https:\/\/agroxy.farm\/es\/registration\/","name":"Registro - Agroxy.Farm","isPartOf":{"@id":"https:\/\/agroxy.farm\/#website"},"datePublished":"2025-06-05T14:26:13+00:00","dateModified":"2026-04-03T11:02:43+00:00","description":"Register in the farm management system Agroxy.Farm","breadcrumb":{"@id":"https:\/\/agroxy.farm\/es\/registration\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/agroxy.farm\/es\/registration\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/agroxy.farm\/es\/registration\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/agroxy.farm\/es\/"},{"@type":"ListItem","position":2,"name":"Registro"}]},{"@type":"WebSite","@id":"https:\/\/agroxy.farm\/#website","url":"https:\/\/agroxy.farm\/","name":"Agroxy.Farm","description":"","publisher":{"@id":"https:\/\/agroxy.farm\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/agroxy.farm\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/agroxy.farm\/#organization","name":"Agroxy.Farm","url":"https:\/\/agroxy.farm\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/agroxy.farm\/#\/schema\/logo\/image\/","url":"https:\/\/agroxy.farm\/wp-content\/uploads\/2024\/12\/logo.svg","contentUrl":"https:\/\/agroxy.farm\/wp-content\/uploads\/2024\/12\/logo.svg","width":209,"height":45,"caption":"Agroxy.Farm"},"image":{"@id":"https:\/\/agroxy.farm\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/pages\/3105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/comments?post=3105"}],"version-history":[{"count":251,"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/pages\/3105\/revisions"}],"predecessor-version":[{"id":11003,"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/pages\/3105\/revisions\/11003"}],"wp:attachment":[{"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/media?parent=3105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}