{"id":1547,"date":"2026-08-14T09:40:52","date_gmt":"2026-08-14T09:40:52","guid":{"rendered":"https:\/\/learn.newproferm.ro\/?page_id=1547"},"modified":"2026-11-06T08:50:26","modified_gmt":"2026-11-06T08:50:26","slug":"start-robotics-training","status":"publish","type":"page","link":"https:\/\/learn.newproferm.com\/ro\/start-robotics-training\/","title":{"rendered":"\u00cencepe\u021bi instruirea \u00een robotic\u0103"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1547\" class=\"elementor elementor-1547\">\n\t\t\t\t<div class=\"elementor-element elementor-element-340f854 e-flex e-con-boxed e-con e-parent\" data-id=\"340f854\" 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-b817544 elementor-widget elementor-widget-html\" data-id=\"b817544\" 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\n<div id=\"lr-account-box\" style=\"max-width:600px;margin:30px auto;padding:30px;background:#ffffff;border-radius:14px;box-shadow:0 5px 20px rgba(0,0,0,0.08);font-family:Arial,sans-serif;\">\n\n  <h2 style=\"text-align:center;color:#101a35;margin-bottom:8px;\">\n    Start Robotics Training\n  <\/h2>\n\n  <p style=\"text-align:center;color:#555;margin-bottom:25px;\">\n    Create your student account to begin your robotics training.\n  <\/p>\n\n  <!-- SESSION CHECK -->\n\n  <div id=\"lr-session-check\" style=\"text-align:center;padding:25px 10px;color:#555;\">\n    Checking student session...\n  <\/div>\n\n  <!-- REGISTER -->\n\n  <div id=\"lr-register-section\" style=\"display:none;\">\n\n    <form id=\"lrRegisterForm\">\n\n      <label style=\"font-weight:600;\">Full Name *<\/label>\n      <input type=\"text\" id=\"lr_name\" required\n        autocomplete=\"name\"\n        style=\"width:100%;padding:12px;margin:7px 0 16px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;\">\n\n      <label for=\"lr_nickname\" style=\"font-weight:600;\">Nickname (Public Leaderboard) *<\/label>\n      <input type=\"text\" id=\"lr_nickname\" required minlength=\"3\" maxlength=\"24\"\n        autocomplete=\"off\" pattern=\"[A-Za-z0-9_-]{3,24}\"\n        title=\"Use 3\u201324 letters, numbers, underscores or hyphens.\"\n        style=\"width:100%;padding:12px;margin:7px 0 6px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;\">\n      <div style=\"font-size:12px;color:#666;margin-bottom:16px;\">\n        This nickname will appear publicly in the leaderboard. Do not use your real name, email or phone number.\n      <\/div>\n\n      <label style=\"font-weight:600;\">Email *<\/label>\n      <input type=\"email\" id=\"lr_email\" required\n        autocomplete=\"email\"\n        style=\"width:100%;padding:12px;margin:7px 0 16px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;\">\n\n      <label style=\"font-weight:600;\">Country *<\/label>\n      <input type=\"text\" id=\"lr_country\" required\n        autocomplete=\"country-name\"\n        style=\"width:100%;padding:12px;margin:7px 0 16px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;\">\n\n      <label style=\"font-weight:600;\">Participant Category *<\/label>\n      <select id=\"lr_participant_category\" required\n        style=\"width:100%;padding:12px;margin:7px 0 16px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;background:#ffffff;\">\n        <option value=\"\">Select your category<\/option>\n        <option value=\"university\">University Student<\/option>\n        <option value=\"high_school\">High School Student<\/option>\n      <\/select>\n\n      <label style=\"font-weight:600;\">University \/ School *<\/label>\n      <input type=\"text\" id=\"lr_university\" required\n        autocomplete=\"organization\"\n        style=\"width:100%;padding:12px;margin:7px 0 16px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;\">\n\n      <label style=\"font-weight:600;\">Password *<\/label>\n      <input type=\"password\" id=\"lr_password\" required minlength=\"8\"\n        autocomplete=\"new-password\"\n        style=\"width:100%;padding:12px;margin:7px 0 6px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;\">\n\n      <div style=\"font-size:12px;color:#666;margin-bottom:16px;\">\n        Minimum 8 characters.\n      <\/div>\n\n      <label style=\"font-weight:600;\">Confirm Password *<\/label>\n      <input type=\"password\" id=\"lr_password_confirm\" required minlength=\"8\"\n        autocomplete=\"new-password\"\n        style=\"width:100%;padding:12px;margin:7px 0 20px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;\">\n\n      <label style=\"display:flex;align-items:flex-start;gap:10px;font-size:13px;color:#555;margin-bottom:22px;\">\n        <input type=\"checkbox\" id=\"lr_consent\" required style=\"margin-top:3px;\">\n        <span>\n          I have read the <a href=\"\/privacy-policy\/\" target=\"_blank\" rel=\"noopener noreferrer\">Privacy Policy<\/a> and <a href=\"\/terms-conditions\/\" target=\"_blank\" rel=\"noopener noreferrer\">Terms &amp; Conditions<\/a>, including the information about how my training data is processed.\n        <\/span>\n      <\/label>\n\n      <div id=\"lr-register-message\"\n        style=\"display:none;margin-bottom:16px;padding:12px;border-radius:6px;font-size:14px;\">\n      <\/div>\n\n      <button type=\"submit\" id=\"lr-register-button\"\n        style=\"width:100%;padding:15px;background:#081c75;color:white;border:none;border-radius:6px;font-weight:700;font-size:16px;cursor:pointer;\">\n        CREATE ACCOUNT & START TRAINING\n      <\/button>\n\n    <\/form>\n\n    <div style=\"text-align:center;margin-top:22px;color:#555;\">\n      Already have an account?\n      <button type=\"button\" id=\"lr-show-login\"\n        style=\"background:none;border:none;color:#081c75;font-weight:700;cursor:pointer;padding:5px;\">\n        LOG IN\n      <\/button>\n    <\/div>\n\n  <\/div>\n\n  <!-- LOGIN -->\n\n  <div id=\"lr-login-section\" style=\"display:none;\">\n\n    <p style=\"text-align:center;color:#555;margin-bottom:22px;\">\n      Log in to continue your robotics training from any device.\n    <\/p>\n\n    <form id=\"lrLoginForm\">\n\n      <label style=\"font-weight:600;\">Email *<\/label>\n      <input type=\"email\" id=\"lr_login_email\" required\n        autocomplete=\"email\"\n        style=\"width:100%;padding:12px;margin:7px 0 16px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;\">\n\n      <label style=\"font-weight:600;\">Password *<\/label>\n      <input type=\"password\" id=\"lr_login_password\" required\n        autocomplete=\"current-password\"\n        style=\"width:100%;padding:12px;margin:7px 0 20px;border:1px solid #ccc;border-radius:6px;box-sizing:border-box;\">\n\n      <div id=\"lr-login-message\"\n        style=\"display:none;margin-bottom:16px;padding:12px;border-radius:6px;font-size:14px;\">\n      <\/div>\n\n      <button type=\"submit\" id=\"lr-login-button\"\n        style=\"width:100%;padding:15px;background:#081c75;color:white;border:none;border-radius:6px;font-weight:700;font-size:16px;cursor:pointer;\">\n        LOG IN & CONTINUE TRAINING\n      <\/button>\n\n    <\/form>\n\n    <div style=\"text-align:right;margin-top:10px;\">\n      <button type=\"button\" id=\"lr-show-forgot\" style=\"background:none;border:none;color:#081c75;cursor:pointer;\">Forgot Password?<\/button>\n    <\/div>\n\n    <div style=\"text-align:center;margin-top:22px;color:#555;\">\n      Don't have an account?\n      <button type=\"button\" id=\"lr-show-register\"\n        style=\"background:none;border:none;color:#081c75;font-weight:700;cursor:pointer;padding:5px;\">\n        CREATE ACCOUNT\n      <\/button>\n    <\/div>\n\n  <\/div>\n\n  <div id=\"lr-forgot-section\" style=\"display:none;\">\n    <h3>Reset Password<\/h3>\n    <form id=\"lrForgotForm\">\n      <label>Email *<\/label>\n      <input type=\"email\" id=\"lr_forgot_email\" required autocomplete=\"email\" style=\"width:100%;padding:12px;margin:8px 0 16px;box-sizing:border-box;\">\n      <button type=\"submit\" style=\"width:100%;padding:14px;background:#081c75;color:#fff;border:0;border-radius:6px;\">SEND RESET LINK<\/button>\n    <\/form>\n    <p id=\"lr-forgot-message\" role=\"status\"><\/p>\n    <button type=\"button\" class=\"lr-back-login\">Back to Login<\/button>\n  <\/div>\n  <div id=\"lr-reset-section\" style=\"display:none;\">\n    <h3>Set New Password<\/h3>\n    <form id=\"lrResetForm\">\n      <label>New Password *<\/label>\n      <input type=\"password\" id=\"lr_reset_password\" minlength=\"8\" required autocomplete=\"new-password\" style=\"width:100%;padding:12px;margin:8px 0 16px;box-sizing:border-box;\">\n      <label>Confirm New Password *<\/label>\n      <input type=\"password\" id=\"lr_reset_confirm\" minlength=\"8\" required autocomplete=\"new-password\" style=\"width:100%;padding:12px;margin:8px 0 16px;box-sizing:border-box;\">\n      <button type=\"submit\" style=\"width:100%;padding:14px;background:#081c75;color:#fff;border:0;border-radius:6px;\">RESET PASSWORD<\/button>\n    <\/form>\n    <p id=\"lr-reset-message\" role=\"status\"><\/p>\n    <button type=\"button\" class=\"lr-back-login\">Back to Login<\/button>\n  <\/div>\n  <div id=\"lr-change-section\" style=\"display:none;\">\n    <h3>Change Password<\/h3>\n    <form id=\"lrChangeForm\">\n      <label>Current Password *<\/label>\n      <input type=\"password\" id=\"lr_current_password\" required autocomplete=\"current-password\" style=\"width:100%;padding:12px;margin:8px 0 16px;box-sizing:border-box;\">\n      <label>New Password *<\/label>\n      <input type=\"password\" id=\"lr_change_password\" minlength=\"8\" required autocomplete=\"new-password\" style=\"width:100%;padding:12px;margin:8px 0 16px;box-sizing:border-box;\">\n      <label>Confirm New Password *<\/label>\n      <input type=\"password\" id=\"lr_change_confirm\" minlength=\"8\" required autocomplete=\"new-password\" style=\"width:100%;padding:12px;margin:8px 0 16px;box-sizing:border-box;\">\n      <button type=\"submit\" style=\"width:100%;padding:14px;background:#081c75;color:#fff;border:0;border-radius:6px;\">CHANGE PASSWORD<\/button>\n    <\/form>\n    <p id=\"lr-change-message\" role=\"status\"><\/p>\n    <button type=\"button\" class=\"lr-back-login\">Back to Login<\/button>\n  <\/div>\n<\/div>\n\n<script>\n(function () {\n\n  const apiBase = \"\/wp-json\/learn-robotics\/v1\/student-account\";\n\n  \/* =========================================================\n   * REDIRECT AFTER LOGIN\n   * ========================================================= *\/\n\n  const urlParams =\n    new URLSearchParams(window.location.search);\n\n  const requestedRedirect =\n    urlParams.get(\"redirect_to\");\n\n  const afterLoginUrl =\n    requestedRedirect &&\n    requestedRedirect.startsWith(\"\/\") &&\n    !requestedRedirect.startsWith(\"\/\/\")\n      ? requestedRedirect\n      : \"\/student-dashboard\/\";\n\n  const sessionCheck =\n    document.getElementById(\"lr-session-check\");\n\n  const registerSection =\n    document.getElementById(\"lr-register-section\");\n\n  const loginSection =\n    document.getElementById(\"lr-login-section\");\n\n  const showLogin =\n    document.getElementById(\"lr-show-login\");\n\n  const showRegister =\n    document.getElementById(\"lr-show-register\");\n\n  const registerForm =\n    document.getElementById(\"lrRegisterForm\");\n\n  const loginForm =\n    document.getElementById(\"lrLoginForm\");\n\n  const registerMessage =\n    document.getElementById(\"lr-register-message\");\n\n  const loginMessage =\n    document.getElementById(\"lr-login-message\");\n\n  const registerButton =\n    document.getElementById(\"lr-register-button\");\n\n  const loginButton =\n    document.getElementById(\"lr-login-button\");\n\n  function showMessage(element, message, success) {\n\n    element.style.display = \"block\";\n\n    element.style.background =\n      success ? \"#eaf8ee\" : \"#fdecec\";\n\n    element.style.color =\n      success ? \"#176b32\" : \"#a61b1b\";\n\n    element.textContent = message;\n  }\n\n  \/* =========================================================\n   * SAVE STUDENT PROFILE\n   * ========================================================= *\/\n\n  function saveStudent(student) {\n\n    const profile = {\n      user_id: student.user_id || 0,\n      name: student.name || \"\",\n      email: student.email || \"\",\n      country: student.country || \"\",\n      participant_category: student.participant_category || \"\",\n      university: student.university || \"\"\n    };\n\n    localStorage.setItem(\n      \"learn_robotics_student\",\n      JSON.stringify(profile)\n    );\n\n    localStorage.setItem(\n      \"lrs_student_email\",\n      profile.email\n    );\n  }\n\n  \/* =========================================================\n   * CLEAR LOCAL STUDENT DATA\n   * ========================================================= *\/\n\n  function clearStudentLocalData() {\n\n    localStorage.removeItem(\n      \"learn_robotics_student\"\n    );\n\n    localStorage.removeItem(\n      \"lrs_student_email\"\n    );\n\n    \/*\n     * Remove old nonce left by version 1.0.2.\n     * It is no longer used.\n     *\/\n\n    sessionStorage.removeItem(\n      \"lrs_rest_nonce\"\n    );\n  }\n\n  \/* =========================================================\n   * SHOW ACCOUNT FORM\n   * ========================================================= *\/\n\n  function showAccountForm() {\n\n    sessionCheck.style.display = \"none\";\n\n    \/\/ MODIFICARE:\n    \/\/ ?mode=login deschide direct formularul LOGIN.\n    \/\/ URL-ul fara parametru pastreaza formularul REGISTER.\n\n    const openLogin =\n       [\"login\", \"change\"].includes(urlParams.get(\"mode\"));\n\n    loginSection.style.display =\n      openLogin ? \"block\" : \"none\";\n\n    registerSection.style.display =\n      openLogin ? \"none\" : \"block\";\n  }\n\n  \/* =========================================================\n   * CHECK CURRENT STUDENT SESSION\n   * ========================================================= *\/\n\n   const extraSections = ['lr-forgot-section','lr-reset-section','lr-change-section'];\n   function showExtra(id) {\n     sessionCheck.style.display = 'none';\n     registerSection.style.display = 'none';\n     loginSection.style.display = 'none';\n     extraSections.forEach(x => document.getElementById(x).style.display = x === id ? 'block' : 'none');\n   }\n   document.getElementById('lr-show-forgot').addEventListener('click', () => showExtra('lr-forgot-section'));\n   document.querySelectorAll('.lr-back-login').forEach(b => b.addEventListener('click', () => {\n     extraSections.forEach(x => document.getElementById(x).style.display = 'none');\n     loginSection.style.display = 'block';\n   }));\n   async function postAccount(path, payload) {\n     const r = await fetch(apiBase + path, {method:'POST', credentials:'same-origin', headers:{'Content-Type':'application\/json'}, body:JSON.stringify(payload)});\n     const data = await r.json();\n     if (!r.ok || !data.success) throw new Error(data.message || 'Request failed.');\n     return data.message;\n   }\n   function bindPasswordForm(formId, messageId, handler) {\n     document.getElementById(formId).addEventListener('submit', async e => {\n       e.preventDefault();\n       const msg = document.getElementById(messageId);\n       const btn = e.currentTarget.querySelector('button[type=\"submit\"]');\n       btn.disabled = true;\n       msg.textContent = 'Please wait...';\n       try { msg.textContent = await handler(); msg.style.color = '#176b32'; }\n       catch (err) { msg.textContent = err.message; msg.style.color = '#a61b1b'; }\n       finally { btn.disabled = false; }\n     });\n   }\n   bindPasswordForm('lrForgotForm','lr-forgot-message', () => postAccount('\/request-password-reset', {email:document.getElementById('lr_forgot_email').value.trim()}));\n   bindPasswordForm('lrResetForm','lr-reset-message', () => {\n     const password = document.getElementById('lr_reset_password').value;\n     if (password !== document.getElementById('lr_reset_confirm').value) throw new Error('Passwords do not match.');\n     return postAccount('\/reset-password',{login:urlParams.get('login') || '',key:urlParams.get('key') || '',password});\n   });\n   bindPasswordForm('lrChangeForm','lr-change-message', () => {\n     const new_password = document.getElementById('lr_change_password').value;\n     if (new_password !== document.getElementById('lr_change_confirm').value) throw new Error('Passwords do not match.');\n     return postAccount('\/change-password',{current_password:document.getElementById('lr_current_password').value,new_password});\n   });\n\n   async function checkStudentSession() {\n\n    if (urlParams.get('mode') === 'reset') { showExtra('lr-reset-section'); return; }\n    if (urlParams.get('mode') === 'forgot') { showExtra('lr-forgot-section'); return; }\n    try {\n\n      const response = await fetch(\n        apiBase + \"\/me\",\n        {\n          method: \"GET\",\n          credentials: \"same-origin\",\n          cache: \"no-store\"\n        }\n      );\n\n      const result = await response.json();\n\n      if (\n        response.ok &&\n        result.success &&\n        result.authenticated === true &&\n        result.student &&\n        result.student.email\n      ) {\n\n        saveStudent(\n          result.student\n        );\n\n        sessionCheck.textContent =\n          \"Student session found. Loading...\";\n\n        \/*\n         * If the student came from Real Robot,\n         * return to Real Robot.\n         * Otherwise go to Student Dashboard.\n         *\/\n\n         if (urlParams.get('mode') === 'change') { showExtra('lr-change-section'); return; }\n\n        window.location.replace(\n          afterLoginUrl\n        );\n\n        return;\n      }\n\n      \/*\n       * No active Learn Robotics student session.\n       *\/\n\n      clearStudentLocalData();\n\n      showAccountForm();\n\n    } catch (error) {\n\n      \/*\n       * Do not redirect on a temporary connection error.\n       *\/\n\n      showAccountForm();\n    }\n  }\n\n  \/* =========================================================\n   * SWITCH REGISTER \/ LOGIN\n   * ========================================================= *\/\n\n  showLogin.addEventListener(\n    \"click\",\n    function () {\n\n      registerSection.style.display = \"none\";\n\n      loginSection.style.display = \"block\";\n\n      loginMessage.style.display = \"none\";\n    }\n  );\n\n  showRegister.addEventListener(\n    \"click\",\n    function () {\n\n      loginSection.style.display = \"none\";\n\n      registerSection.style.display = \"block\";\n\n      registerMessage.style.display = \"none\";\n    }\n  );\n\n  \/* =========================================================\n   * REGISTER\n   * ========================================================= *\/\n\n  registerForm.addEventListener(\n    \"submit\",\n    async function (e) {\n\n      e.preventDefault();\n\n      const password =\n        document.getElementById(\n          \"lr_password\"\n        ).value;\n\n      const passwordConfirm =\n        document.getElementById(\n          \"lr_password_confirm\"\n        ).value;\n\n      if (password !== passwordConfirm) {\n\n        showMessage(\n          registerMessage,\n          \"Passwords do not match.\",\n          false\n        );\n\n        return;\n      }\n\n      if (password.length < 8) {\n\n        showMessage(\n          registerMessage,\n          \"Password must contain at least 8 characters.\",\n          false\n        );\n\n        return;\n      }\n\n      const data = {\n\n        name:\n          document.getElementById(\n            \"lr_name\"\n          ).value.trim(),\n\n        nickname:\n          document.getElementById(\n            \"lr_nickname\"\n          ).value.trim(),\n\n        email:\n          document.getElementById(\n            \"lr_email\"\n          ).value.trim(),\n\n        country:\n          document.getElementById(\n            \"lr_country\"\n          ).value.trim(),\n\n        participant_category:\n          document.getElementById(\n            \"lr_participant_category\"\n          ).value,\n\n        university:\n          document.getElementById(\n            \"lr_university\"\n          ).value.trim(),\n\n        password: password,\n\n        privacy_notice_acknowledged: document.getElementById(\"lr_consent\").checked\n      };\n\n      registerButton.disabled = true;\n\n      registerButton.textContent =\n        \"CREATING ACCOUNT...\";\n\n      try {\n\n        const response = await fetch(\n          apiBase + \"\/register\",\n          {\n            method: \"POST\",\n\n            credentials: \"same-origin\",\n\n            headers: {\n              \"Content-Type\": \"application\/json\"\n            },\n\n            body: JSON.stringify(data)\n          }\n        );\n\n        const result =\n          await response.json();\n\n        if (\n          !response.ok ||\n          !result.success\n        ) {\n\n          showMessage(\n            registerMessage,\n            result.message ||\n              \"Account could not be created.\",\n            false\n          );\n\n          registerButton.disabled = false;\n\n          registerButton.textContent =\n            \"CREATE ACCOUNT & START TRAINING\";\n\n          return;\n        }\n\n        \/*\n         * Student session was created server-side.\n         * Save profile locally for simulator compatibility.\n         *\/\n\n        saveStudent(\n          result.student\n        );\n\n        showMessage(\n          registerMessage,\n          \"Account created successfully. Starting training...\",\n          true\n        );\n\n        \/*\n         * Registration remains unchanged.\n         * A new student starts with Lesson 1.\n         *\/\n\n        window.location.href =\n          \"\/lesson-1-pick-place\/\";\n\n      } catch (error) {\n\n        showMessage(\n          registerMessage,\n          \"Connection error. Please try again.\",\n          false\n        );\n\n        registerButton.disabled = false;\n\n        registerButton.textContent =\n          \"CREATE ACCOUNT & START TRAINING\";\n      }\n\n    }\n  );\n\n  \/* =========================================================\n   * LOGIN\n   * ========================================================= *\/\n\n  loginForm.addEventListener(\n    \"submit\",\n    async function (e) {\n\n      e.preventDefault();\n\n      const data = {\n\n        email:\n          document.getElementById(\n            \"lr_login_email\"\n          ).value.trim(),\n\n        password:\n          document.getElementById(\n            \"lr_login_password\"\n          ).value\n      };\n\n      loginButton.disabled = true;\n\n      loginButton.textContent =\n        \"LOGGING IN...\";\n\n      try {\n\n        const response = await fetch(\n          apiBase + \"\/login\",\n          {\n            method: \"POST\",\n\n            credentials: \"same-origin\",\n\n            headers: {\n              \"Content-Type\": \"application\/json\"\n            },\n\n            body: JSON.stringify(data)\n          }\n        );\n\n        const result =\n          await response.json();\n\n        if (\n          !response.ok ||\n          !result.success\n        ) {\n\n          showMessage(\n            loginMessage,\n            result.message ||\n              \"Login failed.\",\n            false\n          );\n\n          loginButton.disabled = false;\n\n          loginButton.textContent =\n            \"LOG IN & CONTINUE TRAINING\";\n\n          return;\n        }\n\n        \/*\n         * Student session was created server-side.\n         * Save profile locally for simulator\/booking compatibility.\n         *\/\n\n        saveStudent(\n          result.student\n        );\n\n        showMessage(\n          loginMessage,\n          \"Login successful. Loading...\",\n          true\n        );\n\n        \/*\n         * Real Robot login -> Real Robot\n         * Normal login -> Student Dashboard\n         *\/\n\n        \/\/ If the student signed in to change their password, return to\n        \/\/ the authenticated change-password form, not the dashboard.\n        window.location.href =\n          urlParams.get('mode') === 'change'\n            ? '\/start-robotics-training\/?mode=change'\n            : afterLoginUrl;\n\n      } catch (error) {\n\n        showMessage(\n          loginMessage,\n          \"Connection error. Please try again.\",\n          false\n        );\n\n        loginButton.disabled = false;\n\n        loginButton.textContent =\n          \"LOG IN & CONTINUE TRAINING\";\n      }\n\n    }\n  );\n\n  \/* =========================================================\n   * START SESSION CHECK\n   * ========================================================= *\/\n\n  checkStudentSession();\n\n})();\n<\/script>\n\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>Start Robotics Training Create your student account to begin your robotics training. Checking student session&#8230; Full Name * Nickname (Public Leaderboard) * This nickname will appear publicly in the leaderboard. Do not use your real name, email or phone number. Email * Country * Participant Category * Select your categoryUniversity StudentHigh School Student University \/ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-1547","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/learn.newproferm.com\/ro\/wp-json\/wp\/v2\/pages\/1547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/learn.newproferm.com\/ro\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/learn.newproferm.com\/ro\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/learn.newproferm.com\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/learn.newproferm.com\/ro\/wp-json\/wp\/v2\/comments?post=1547"}],"version-history":[{"count":49,"href":"https:\/\/learn.newproferm.com\/ro\/wp-json\/wp\/v2\/pages\/1547\/revisions"}],"predecessor-version":[{"id":2511,"href":"https:\/\/learn.newproferm.com\/ro\/wp-json\/wp\/v2\/pages\/1547\/revisions\/2511"}],"wp:attachment":[{"href":"https:\/\/learn.newproferm.com\/ro\/wp-json\/wp\/v2\/media?parent=1547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}