{"id":3179,"date":"2025-06-06T08:55:21","date_gmt":"2025-06-06T08:55:21","guid":{"rendered":"https:\/\/agroxy.farm\/password-recovery-page-2\/"},"modified":"2025-11-21T12:30:14","modified_gmt":"2025-11-21T12:30:14","slug":"password-recovery-page","status":"publish","type":"page","link":"https:\/\/agroxy.farm\/es\/password-recovery-page\/","title":{"rendered":"Restablecer contrase\u00f1a"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3179\" class=\"elementor elementor-3179 elementor-3173\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c5efb1c e-flex e-con-boxed e-con e-parent\" data-id=\"c5efb1c\" 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-d90efe2 elementor-widget elementor-widget-html\" data-id=\"d90efe2\" 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<section style=\"\r\n  width: 100%;\r\n  min-height: 100vh;\r\n  align-items: center;\r\n  background: url('https:\/\/your-background-image.jpg') center\/cover no-repeat;\r\n  padding: 60px 0px 20px;\r\n  box-sizing: border-box;\r\n\">\r\n  <form id=\"emailForm\" style=\"\r\n    width: 100%;\r\n    max-width: 480px;\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.2);\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\" src=\"https:\/\/agroxy.farm\/wp-content\/uploads\/2025\/06\/\u0411\u0435\u043b\u044b\u0439-\u043b\u043e\u0433\u043e.svg\" alt=\"Logo\" style=\"width: 220px;\">\r\n    <\/a>\r\n\r\n    <!-- \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a -->\r\n    <h2 style=\"font-size: 30px; text-align: center; margin-bottom: 10px; color: white;\">Recuperaci\u00f3n de contrase\u00f1a<\/h2>\r\n\r\n    <label for=\"email\" style=\"width: 100%; max-width: 420px; font-size: 14px; margin-bottom: 10px; display: block;\">\r\n      Correo electr\u00f3nico <span style=\"color: #EC7979;\">*<\/span>\r\n    <\/label>\r\n    <input id=\"email\" type=\"email\" placeholder=\"Email\"\r\n      style=\"width: 100%; max-width: 420px; height: 40px; margin-bottom: 5px; border-radius: 8px; border: none;\r\n             padding: 0 12px; font-size: 14px; background: rgba(255,255,255,0.95); color: black;\" \/>\r\n             \r\n    <div id=\"email-error\" data-error=\"email\" style=\"display: none; color: red; font-size: 13px; margin-bottom: 5px; align-self: flex-start; padding-left: 10px;\"><\/div>\r\n\r\n <button type=\"submit\" id=\"loginBtn\" \r\n                style=\"margin-top: 10px; position: relative; width: 100%; max-width: 420px; height: 48px; background-color: #4CAF50; color: white; font-size: 16px; border: none; border-radius: 30px; cursor: pointer; margin-bottom: 20px; transition: all 0.3s ease; overflow: hidden;\">\r\n            <span id=\"buttonText\" style=\"transition: opacity 0.3s ease;\">RESTABLECER CONTRASE\u00d1A<\/span>\r\n            <div id=\"loader\" style=\"position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 20px; height: 20px; border: 2px solid rgba(255, 255, 255, 0.3); border-top: 2px solid white; border-radius: 50%; animation: spin 1s linear infinite; opacity: 0; transition: opacity 0.3s ease;\"><\/div>\r\n        <\/button>\r\n\r\n    <p style=\"text-align: center; font-size: 14px;\">\r\n      \u00bfYa tienes una cuenta? <a href=\"\/es\/login\" style=\"color: #659647; text-decoration: none;\">Iniciar sesi\u00f3n<\/a>\r\n    <\/p>\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-df3eaf6 elementor-widget elementor-widget-html\" data-id=\"df3eaf6\" 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<script src=\"https:\/\/www.google.com\/recaptcha\/api.js?render=6LdGPn8rAAAAAKQ28rfXEJYCNI8EzYWsBBgTltp4\"><\/script>\r\n<script>\r\n  let isLoading = false;\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(\"emailForm\")\r\n    .addEventListener(\"submit\", async function (e) {\r\n      e.preventDefault();\r\n\r\n      if (isLoading) {\r\n        return;\r\n      }\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 email = document.getElementById(\"email\").value;\r\n\r\n      clearAllErrors();\r\n\r\n      try {\r\n        const response = await fetch(\r\n          \"https:\/\/app.agroxy.farm\/api\/agroxy\/auth\/reset-password\/request\",\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              email,\r\n            }),\r\n          }\r\n        );\r\n\r\n        const result = await response.json();\r\n\r\n        if (response.ok) {\r\n          toggleLoader();\r\n          clearAllErrors();\r\n          window.location.href = \"\/es\/reset-password-letter-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    if (status === 405) {\r\n      const errorDiv = document.getElementById(`email-error`);\r\n\r\n      if (errorDiv) {\r\n        errorDiv.innerHTML =\r\n          'Correo electr\u00f3nico no confirmado. Para obtener un nuevo enlace,  <a href=\"\/es\/registration-resend-email\" style=\"color: #659647; text-decoration: none;\">haga clic aqu\u00ed<\/a>';\r\n\r\n        errorDiv.style.display = \"block\";\r\n\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      }\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);\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);\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  document\r\n    .getElementById(\"email\")\r\n    .addEventListener(\"input\", () => clearFieldError(\"email\"));\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-1d919dd elementor-widget elementor-widget-html\" data-id=\"1d919dd\" 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>Recuperaci\u00f3n de contrase\u00f1a Correo electr\u00f3nico * RESTABLECER CONTRASE\u00d1A \u00bfYa tienes una cuenta? Iniciar sesi\u00f3n<\/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-3179","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>Restablecer contrase\u00f1a - Agroxy.Farm<\/title>\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=\"Restablecer contrase\u00f1a - Agroxy.Farm\" \/>\n<meta property=\"og:description\" content=\"Recuperaci\u00f3n de contrase\u00f1a Correo electr\u00f3nico * RESTABLECER CONTRASE\u00d1A \u00bfYa tienes una cuenta? Iniciar sesi\u00f3n\" \/>\n<meta property=\"og:url\" content=\"https:\/\/agroxy.farm\/es\/password-recovery-page\/\" \/>\n<meta property=\"og:site_name\" content=\"Agroxy.Farm\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-21T12:30:14+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=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/agroxy.farm\/es\/password-recovery-page\/\",\"url\":\"https:\/\/agroxy.farm\/es\/password-recovery-page\/\",\"name\":\"Restablecer contrase\u00f1a - Agroxy.Farm\",\"isPartOf\":{\"@id\":\"https:\/\/agroxy.farm\/#website\"},\"datePublished\":\"2025-06-06T08:55:21+00:00\",\"dateModified\":\"2025-11-21T12:30:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/agroxy.farm\/es\/password-recovery-page\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/agroxy.farm\/es\/password-recovery-page\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/agroxy.farm\/es\/password-recovery-page\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/agroxy.farm\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Restablecer contrase\u00f1a\"}]},{\"@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":"Restablecer contrase\u00f1a - Agroxy.Farm","robots":{"index":"noindex","follow":"nofollow"},"og_locale":"es_ES","og_type":"article","og_title":"Restablecer contrase\u00f1a - Agroxy.Farm","og_description":"Recuperaci\u00f3n de contrase\u00f1a Correo electr\u00f3nico * RESTABLECER CONTRASE\u00d1A \u00bfYa tienes una cuenta? Iniciar sesi\u00f3n","og_url":"https:\/\/agroxy.farm\/es\/password-recovery-page\/","og_site_name":"Agroxy.Farm","article_modified_time":"2025-11-21T12:30:14+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/agroxy.farm\/es\/password-recovery-page\/","url":"https:\/\/agroxy.farm\/es\/password-recovery-page\/","name":"Restablecer contrase\u00f1a - Agroxy.Farm","isPartOf":{"@id":"https:\/\/agroxy.farm\/#website"},"datePublished":"2025-06-06T08:55:21+00:00","dateModified":"2025-11-21T12:30:14+00:00","breadcrumb":{"@id":"https:\/\/agroxy.farm\/es\/password-recovery-page\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/agroxy.farm\/es\/password-recovery-page\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/agroxy.farm\/es\/password-recovery-page\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/agroxy.farm\/es\/"},{"@type":"ListItem","position":2,"name":"Restablecer contrase\u00f1a"}]},{"@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\/3179","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=3179"}],"version-history":[{"count":88,"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/pages\/3179\/revisions"}],"predecessor-version":[{"id":10526,"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/pages\/3179\/revisions\/10526"}],"wp:attachment":[{"href":"https:\/\/agroxy.farm\/es\/wp-json\/wp\/v2\/media?parent=3179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}