{"id":4278,"date":"2026-02-16T13:11:35","date_gmt":"2026-02-16T13:11:35","guid":{"rendered":"https:\/\/dev2.marketsonline.co.za\/micon\/?page_id=4278"},"modified":"2026-03-11T10:17:59","modified_gmt":"2026-03-11T10:17:59","slug":"test","status":"publish","type":"page","link":"https:\/\/dev2.marketsonline.co.za\/micon\/test\/","title":{"rendered":"Test"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4278\" class=\"elementor elementor-4278\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d054eb2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d054eb2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-05e9c21\" data-id=\"05e9c21\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-87bb9d0 elementor-widget elementor-widget-html\" data-id=\"87bb9d0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- \n  Course Completion Form\n  \n  Instructions:\n  1. In Rise 360, go to the LAST lesson of your course\n  2. Add a \"Text & Media\" block or \"Labeled Graphic\" block\n  3. If Rise allows HTML editing, paste this entire code\n  4. If not, you'll need to add this to the exported index.html file\n  \n  This code will:\n  - Read email from URL parameter\n  - Auto-detect course name from URL\n  - Pre-fill all form fields\n  - Hide all fields from user\n  - Show only a submit button\n  - Trigger form submission to HubSpot \u2192 Zapier\n-->\n\n<div class=\"course-completion-wrapper\">\n  <div class=\"completion-message\">\n    <h2>\ud83c\udf89 Congratulations!<\/h2>\n    <p>You've completed this course. Click below to record your completion.<\/p>\n  <\/div>\n  \n  <div class=\"completion-form-container\">\n    <!-- HubSpot Form Embed -->\n    <script charset=\"utf-8\" type=\"text\/javascript\" src=\"\/\/js-eu1.hsforms.net\/forms\/embed\/v2.js\"><\/script>\n    <script>\n      hbspt.forms.create({\n        portalId: \"144927887\",\n        formId: \"3a6b4687-d777-4f95-98d7-be21157feb6c\",\n        region: \"eu1\",\n        onFormReady: function($form) {\n          console.log('\u2713 Form loaded and ready');\n          preFillAndHideFields();\n        }\n      });\n    <\/script>\n  <\/div>\n<\/div>\n\n<style>\n  .course-completion-wrapper {\n    max-width: 600px;\n    margin: 40px auto;\n    padding: 30px;\n    background: #f8f9fa;\n    border-radius: 12px;\n    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n    text-align: center;\n  }\n  \n  .completion-message h2 {\n    color: #00a300;\n    font-size: 32px;\n    margin: 0 0 10px 0;\n  }\n  \n  .completion-message p {\n    color: #516f90;\n    font-size: 16px;\n    margin: 0 0 30px 0;\n  }\n  \n  .completion-form-container {\n    margin-top: 20px;\n  }\n  \n  \/* Hide all form fields - only show submit button *\/\n  .completion-form-container .hs-form-field {\n    display: none !important;\n  }\n  \n  \/* Show and style the submit button *\/\n  .completion-form-container .hs-submit {\n    display: block !important;\n  }\n  \n  .completion-form-container .hs-button {\n    background: #00a300;\n    color: white;\n    border: none;\n    padding: 16px 48px;\n    font-size: 18px;\n    font-weight: 600;\n    border-radius: 8px;\n    cursor: pointer;\n    transition: all 0.3s ease;\n    box-shadow: 0 4px 12px rgba(0, 163, 0, 0.3);\n  }\n  \n  .completion-form-container .hs-button:hover {\n    background: #008f00;\n    transform: translateY(-2px);\n    box-shadow: 0 6px 16px rgba(0, 163, 0, 0.4);\n  }\n  \n  .completion-form-container .hs-button:active {\n    transform: translateY(0);\n  }\n  \n  \/* Success message styling *\/\n  .completion-form-container .submitted-message {\n    color: #00a300;\n    font-size: 18px;\n    font-weight: 600;\n    padding: 20px;\n    background: #e8f5e9;\n    border-radius: 8px;\n    margin-top: 20px;\n  }\n<\/style>\n\n<script>\n  (function() {\n    console.log('Course Completion Tracker - Initializing...');\n    \n    \/\/ Get email from URL parameter\n    function getEmailFromUrl() {\n      var urlParams = new URLSearchParams(window.location.search);\n      var email = urlParams.get('email');\n      \n      if (email) {\n        console.log('\u2713 Email found in URL:', email);\n      } else {\n        console.warn('\u26a0\ufe0f No email in URL - checking cookies...');\n        email = getCookie('learner_email');\n        if (email) {\n          console.log('\u2713 Email found in cookie:', email);\n        }\n      }\n      \n      return email;\n    }\n    \n    \/\/ Get email from cookie (fallback)\n    function getCookie(name) {\n      var value = \"; \" + document.cookie;\n      var parts = value.split(\"; \" + name + \"=\");\n      if (parts.length == 2) {\n        return parts.pop().split(\";\").shift();\n      }\n      return null;\n    }\n    \n    \/\/ Get course name from URL path\n    function getCourseName() {\n      var path = window.location.pathname;\n      console.log('Full URL path:', path);\n      \n      \/\/ Extract course name from path: \/pub\/Wilderness-Academy\/Introduction-to-Botswana\/\n      var match = path.match(\/\\\/Wilderness-Academy\\\/([^\\\/]+)\/);\n      \n      if (match && match[1]) {\n        \/\/ Convert URL-friendly name to readable name\n        \/\/ \"Introduction-to-Botswana\" \u2192 \"Introduction to Botswana\"\n        var courseName = match[1].replace(\/-\/g, ' ').replace(\/\\\/\/g, '');\n        console.log('\u2713 Course name detected:', courseName);\n        return courseName;\n      }\n      \n      console.warn('\u26a0\ufe0f Could not detect course name from URL');\n      return 'Unknown Course';\n    }\n    \n    \/\/ Get current date in ISO format\n    function getCurrentDate() {\n      var now = new Date();\n      var isoDate = now.toISOString(); \/\/ Full ISO 8601 format\n      console.log('\u2713 Completion date:', isoDate);\n      return isoDate;\n    }\n    \n    \/\/ Pre-fill and hide all form fields\n    function preFillAndHideFields() {\n      console.log('Pre-filling form fields...');\n      \n      var userEmail = getEmailFromUrl();\n      var courseName = getCourseName();\n      var completionDate = getCurrentDate();\n      \n      \/\/ Wait a moment for form to fully render\n      setTimeout(function() {\n        \/\/ Pre-fill email field\n        var emailField = document.querySelector('input[name=\"email\"]');\n        if (emailField) {\n          if (userEmail) {\n            emailField.value = userEmail;\n            emailField.dispatchEvent(new Event('input', { bubbles: true }));\n            emailField.dispatchEvent(new Event('change', { bubbles: true }));\n            console.log('\u2713 Email field pre-filled:', userEmail);\n          } else {\n            console.error('\u2717 No email available - user will need to enter manually');\n            \/\/ Show the email field if no email found\n            var emailFieldWrapper = emailField.closest('.hs-form-field');\n            if (emailFieldWrapper) {\n              emailFieldWrapper.style.display = 'block';\n            }\n          }\n        } else {\n          console.error('\u2717 Email field not found');\n        }\n        \n        \/\/ Pre-fill course name field\n        var courseField = document.querySelector('input[name=\"course_name\"]');\n        if (courseField) {\n          courseField.value = courseName;\n          courseField.dispatchEvent(new Event('input', { bubbles: true }));\n          courseField.dispatchEvent(new Event('change', { bubbles: true }));\n          console.log('\u2713 Course name field pre-filled:', courseName);\n        } else {\n          console.error('\u2717 Course name field not found - check field name in HubSpot');\n        }\n        \n        \/\/ Pre-fill completion date field\n        var dateField = document.querySelector('input[name=\"completion_date\"]');\n        if (dateField) {\n          dateField.value = completionDate;\n          dateField.dispatchEvent(new Event('input', { bubbles: true }));\n          dateField.dispatchEvent(new Event('change', { bubbles: true }));\n          console.log('\u2713 Completion date field pre-filled:', completionDate);\n        } else {\n          console.error('\u2717 Completion date field not found - check field name in HubSpot');\n        }\n        \n        console.log('========================================');\n        console.log('Form Pre-fill Summary:');\n        console.log('Email:', userEmail || 'NOT FOUND');\n        console.log('Course:', courseName);\n        console.log('Date:', completionDate);\n        console.log('========================================');\n        \n      }, 500); \/\/ Wait 500ms for form to render\n    }\n    \n    \/\/ Make function globally accessible for HubSpot callback\n    window.preFillAndHideFields = preFillAndHideFields;\n    \n    \/\/ Listen for form submission\n    window.addEventListener('message', function(event) {\n      if (event.data.type === 'hsFormCallback') {\n        if (event.data.eventName === 'onFormSubmitted') {\n          console.log('\u2705 Form submitted successfully!');\n          console.log('Submission data:', event.data);\n          \n          \/\/ Optional: Redirect to a thank you page or show a message\n          \/\/ setTimeout(function() {\n          \/\/   window.location.href = '\/thank-you';\n          \/\/ }, 2000);\n        }\n      }\n    });\n    \n    console.log('\u2713 Course Completion Tracker - Ready');\n  })();\n<\/script>\n\n<!-- \n  SETUP NOTES:\n  \n  1. FORM FIELD NAMES IN HUBSPOT:\n     Make sure your HubSpot form has these EXACT field names:\n     - email\n     - course_name\n     - completion_date\n  \n  2. TESTING:\n     - Access course with ?email=test@example.com in URL\n     - Go to last page\n     - Open browser console (F12)\n     - Look for green checkmarks confirming fields are pre-filled\n     - You should only see a green \"Complete Course\" button\n     - Click button to submit\n  \n  3. TROUBLESHOOTING:\n     - If email field is visible, email wasn't in URL\n     - Check console for error messages\n     - Verify field names match exactly in HubSpot\n  \n  4. ZAPIER SETUP:\n     - Trigger: HubSpot - New Form Submission\n     - Form: Select this completion form\n     - Action: HubSpot - Send Custom Behavioral Event\n     - Map the email, course_name, and completion_date fields\n-->\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\ud83c\udf89 Congratulations! You&#8217;ve completed this course. Click below to record your completion.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_vp_format_video_url":"","_vp_image_focal_point":[],"footnotes":""},"class_list":["post-4278","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Test - Micon<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dev2.marketsonline.co.za\/micon\/test\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Test - Micon\" \/>\n<meta property=\"og:description\" content=\"\ud83c\udf89 Congratulations! You&#8217;ve completed this course. Click below to record your completion.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dev2.marketsonline.co.za\/micon\/test\/\" \/>\n<meta property=\"og:site_name\" content=\"Micon\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-11T10:17:59+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dev2.marketsonline.co.za\/micon\/test\/\",\"url\":\"https:\/\/dev2.marketsonline.co.za\/micon\/test\/\",\"name\":\"Test - Micon\",\"isPartOf\":{\"@id\":\"https:\/\/dev2.marketsonline.co.za\/micon\/#website\"},\"datePublished\":\"2026-02-16T13:11:35+00:00\",\"dateModified\":\"2026-03-11T10:17:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/dev2.marketsonline.co.za\/micon\/test\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dev2.marketsonline.co.za\/micon\/test\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dev2.marketsonline.co.za\/micon\/test\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dev2.marketsonline.co.za\/micon\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Test\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dev2.marketsonline.co.za\/micon\/#website\",\"url\":\"https:\/\/dev2.marketsonline.co.za\/micon\/\",\"name\":\"Micon\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/dev2.marketsonline.co.za\/micon\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dev2.marketsonline.co.za\/micon\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/dev2.marketsonline.co.za\/micon\/#organization\",\"name\":\"Micon\",\"url\":\"https:\/\/dev2.marketsonline.co.za\/micon\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/dev2.marketsonline.co.za\/micon\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/dev2.marketsonline.co.za\/micon\/wp-content\/uploads\/2025\/07\/Micon-Logo-Light-Version-1.svg\",\"contentUrl\":\"https:\/\/dev2.marketsonline.co.za\/micon\/wp-content\/uploads\/2025\/07\/Micon-Logo-Light-Version-1.svg\",\"width\":194,\"height\":82,\"caption\":\"Micon\"},\"image\":{\"@id\":\"https:\/\/dev2.marketsonline.co.za\/micon\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Test - Micon","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dev2.marketsonline.co.za\/micon\/test\/","og_locale":"en_US","og_type":"article","og_title":"Test - Micon","og_description":"\ud83c\udf89 Congratulations! You&#8217;ve completed this course. Click below to record your completion.","og_url":"https:\/\/dev2.marketsonline.co.za\/micon\/test\/","og_site_name":"Micon","article_modified_time":"2026-03-11T10:17:59+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dev2.marketsonline.co.za\/micon\/test\/","url":"https:\/\/dev2.marketsonline.co.za\/micon\/test\/","name":"Test - Micon","isPartOf":{"@id":"https:\/\/dev2.marketsonline.co.za\/micon\/#website"},"datePublished":"2026-02-16T13:11:35+00:00","dateModified":"2026-03-11T10:17:59+00:00","breadcrumb":{"@id":"https:\/\/dev2.marketsonline.co.za\/micon\/test\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dev2.marketsonline.co.za\/micon\/test\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dev2.marketsonline.co.za\/micon\/test\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dev2.marketsonline.co.za\/micon\/"},{"@type":"ListItem","position":2,"name":"Test"}]},{"@type":"WebSite","@id":"https:\/\/dev2.marketsonline.co.za\/micon\/#website","url":"https:\/\/dev2.marketsonline.co.za\/micon\/","name":"Micon","description":"","publisher":{"@id":"https:\/\/dev2.marketsonline.co.za\/micon\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dev2.marketsonline.co.za\/micon\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dev2.marketsonline.co.za\/micon\/#organization","name":"Micon","url":"https:\/\/dev2.marketsonline.co.za\/micon\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dev2.marketsonline.co.za\/micon\/#\/schema\/logo\/image\/","url":"https:\/\/dev2.marketsonline.co.za\/micon\/wp-content\/uploads\/2025\/07\/Micon-Logo-Light-Version-1.svg","contentUrl":"https:\/\/dev2.marketsonline.co.za\/micon\/wp-content\/uploads\/2025\/07\/Micon-Logo-Light-Version-1.svg","width":194,"height":82,"caption":"Micon"},"image":{"@id":"https:\/\/dev2.marketsonline.co.za\/micon\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/dev2.marketsonline.co.za\/micon\/wp-json\/wp\/v2\/pages\/4278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev2.marketsonline.co.za\/micon\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dev2.marketsonline.co.za\/micon\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dev2.marketsonline.co.za\/micon\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dev2.marketsonline.co.za\/micon\/wp-json\/wp\/v2\/comments?post=4278"}],"version-history":[{"count":25,"href":"https:\/\/dev2.marketsonline.co.za\/micon\/wp-json\/wp\/v2\/pages\/4278\/revisions"}],"predecessor-version":[{"id":4305,"href":"https:\/\/dev2.marketsonline.co.za\/micon\/wp-json\/wp\/v2\/pages\/4278\/revisions\/4305"}],"wp:attachment":[{"href":"https:\/\/dev2.marketsonline.co.za\/micon\/wp-json\/wp\/v2\/media?parent=4278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}