{"id":701,"date":"2021-06-18T13:35:52","date_gmt":"2021-06-18T13:35:52","guid":{"rendered":"https:\/\/www.climbcs.com\/uk\/subscribe\/"},"modified":"2025-06-02T12:11:29","modified_gmt":"2025-06-02T11:11:29","slug":"subscribe","status":"publish","type":"page","link":"https:\/\/www.climbcs.com\/uk\/subscribe\/","title":{"rendered":"Subscribe to our Newsletter"},"content":{"rendered":"            <section id=\"wmx-section-wrapper-rlicobh\" class=\"block block--section-wrapper pt-lg-6 pt-4 pb-lg-6 pb-4 \" style=\"background-color:var(--bs-gray-200);\" data-wmx-wpb=\"section-wrapper\" >\n                <div class=\"container\">\n                    <div class=\"row\">\n                        <div class=\"col-12\">\n                                                                <div class=\"inner-wrapper\">\n\n        \n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<h1 class=\"wp-block-heading\">Subscribe to our Newsletter<\/h1>\n<\/div>\n<\/div>\n\n\n    <\/div>\n\n                            <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n        \n\n            <section id=\"wmx-section-wrapper-e0ngti6\" class=\"block block--section-wrapper pt-lg-6 pt-4 pb-lg-6 pb-4 \" data-wmx-wpb=\"section-wrapper\" >\n                <div class=\"container\">\n                    <div class=\"row\">\n                        <div class=\"col-12\">\n                                                                <div class=\"inner-wrapper\">\n\n        \n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\" style=\"flex-basis:30%\">\n<h2 class=\"wp-block-heading\">Don&#8217;t miss out!<\/h2>\n\n\n\n<p>Stay up-to-date with the latest product releases, events and vendor news by adding your details below.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column\">\n<style>p{margin-bottom:18px !important;}<\/style><div class=\"dynamics-form \" data-form-id=\"b2a5f70f-6a31-f011-8c4e-7c1e52469f7d\" data-form-api-url=\"https:\/\/public-usa.mkt.dynamics.com\/api\/v1.0\/orgs\/6da31373-1eaa-ee11-be32-000d3a10620e\/landingpageforms\" data-cached-form-url=\"https:\/\/assets1-usa.mkt.dynamics.com\/6da31373-1eaa-ee11-be32-000d3a10620e\/digitalassets\/forms\/b2a5f70f-6a31-f011-8c4e-7c1e52469f7d\"><\/div><script src=\"https:\/\/cxppusa1formui01cdnsa01-endpoint.azureedge.net\/usa\/FormLoader\/FormLoader.bundle.js\"><\/script><script>\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n    \/\/ Initial setup for forms that are already loaded\n    setupFloatingLabels();\n    \n    \/\/ Create a MutationObserver to watch for dynamically added forms\n    const observer = new MutationObserver(function(mutations) {\n        mutations.forEach(function(mutation) {\n            if (mutation.addedNodes && mutation.addedNodes.length > 0) {\n                \/\/ Check if our form has been loaded\n                if (document.querySelector(\".dynamics-form .textFormFieldBlock, .dynamics-form .phoneFormFieldBlock\")) {\n                    setupFloatingLabels();\n                }\n            }\n        });\n    });\n    \n    \/\/ Start observing the document with the configured parameters\n    observer.observe(document.body, { childList: true, subtree: true });\n    \n    \/\/ Function to setup floating labels and enhance accessibility\n    function setupFloatingLabels() {\n        \/\/ Include phoneFormFieldBlock in the selector\n        const formBlocks = document.querySelectorAll(\".dynamics-form .textFormFieldBlock, .dynamics-form .phoneFormFieldBlock, .dynamics-form .optionSetFormFieldBlock\");\n\n        formBlocks.forEach(block => {\n            let inputElement;\n            \n            \/\/ Special handling for phone fields which have a nested structure\n            if (block.classList.contains(\"phoneFormFieldBlock\")) {\n                inputElement = block.querySelector(\".phoneCountryCode input\");\n                console.log(\"Phone field found:\", inputElement); \/\/ Debug\n            } else {\n                inputElement = block.querySelector(\"input, textarea, select\");\n            }\n            \n            const label = block.querySelector(\"label\");\n            \n            if (!inputElement || !label) {\n                console.log(\"Missing input or label for block:\", block); \/\/ Debug\n                return;\n            }\n            \n            \/\/ Add ARIA attributes to improve accessibility\n            inputElement.setAttribute(\"aria-labelledby\", label.id || inputElement.id + \"-label\");\n            \n            if (!label.id) {\n                label.id = inputElement.id + \"-label\";\n            }\n            \n            \/\/ Check if field is required\n            const isRequired = block.hasAttribute(\"data-required\") || \n                              inputElement.hasAttribute(\"required\") || \n                              block.getAttribute(\"data-required\") === \"required\";\n            \n            if (isRequired) {\n                inputElement.setAttribute(\"aria-required\", \"true\");\n                \n                \/\/ Add required indicator to label for screen readers\n                if (!label.querySelector(\".sr-only\")) {\n                    const requiredText = document.createElement(\"span\");\n                    requiredText.className = \"sr-only\";\n                    requiredText.textContent = \" (required)\";\n                    label.appendChild(requiredText);\n                }\n            } else {\n                inputElement.setAttribute(\"aria-required\", \"false\");\n            }\n            \n            if (inputElement.tagName.toLowerCase() === 'textarea') {\n                inputElement.setAttribute(\"role\", \"textbox\");\n                inputElement.setAttribute(\"aria-multiline\", \"true\");\n            } else if (inputElement.tagName.toLowerCase() === 'select') {\n                inputElement.setAttribute(\"role\", \"combobox\");\n                inputElement.setAttribute(\"aria-expanded\", \"false\");\n                \n                \/\/ Add event listener for select to show expanded state\n                inputElement.addEventListener(\"click\", () => {\n                    inputElement.setAttribute(\"aria-expanded\", \"true\");\n                });\n                \n                \/\/ When select loses focus, set expanded to false\n                inputElement.addEventListener(\"blur\", () => {\n                    inputElement.setAttribute(\"aria-expanded\", \"false\");\n                });\n            } else {\n                inputElement.setAttribute(\"role\", \"textbox\");\n            }\n            \n            \/\/ Check if input has value on page load\n            const hasValue = inputElement.value || \n                            (inputElement.tagName.toLowerCase() === 'select' && \n                             inputElement.selectedIndex > 0);\n            \n            if (hasValue) {\n                label.classList.add(\"label-floating\");\n            }\n            \n            \/\/ Handle focus event\n            inputElement.addEventListener(\"focus\", () => {\n                label.classList.add(\"label-floating\");\n                \/\/ Announce to screen readers that label has moved (optional)\n                inputElement.setAttribute(\"aria-describedby\", inputElement.id + \"-desc\");\n                \n                \/\/ Create or update description for screen readers\n                let srDesc = document.getElementById(inputElement.id + \"-desc\");\n                if (!srDesc) {\n                    srDesc = document.createElement(\"div\");\n                    srDesc.id = inputElement.id + \"-desc\";\n                    srDesc.className = \"sr-only\";\n                    srDesc.setAttribute(\"aria-live\", \"polite\");\n                    block.appendChild(srDesc);\n                }\n            });\n            \n            \/\/ Handle blur event\n            inputElement.addEventListener(\"blur\", () => {\n                const hasValueAfterBlur = inputElement.value || \n                                         (inputElement.tagName.toLowerCase() === 'select' && \n                                          inputElement.selectedIndex > 0);\n                                          \n                if (!hasValueAfterBlur) {\n                    label.classList.remove(\"label-floating\");\n                }\n            });\n            \n            \/\/ Special handling for select elements - keep label floating if an option is selected\n            if (inputElement.tagName.toLowerCase() === 'select') {\n                inputElement.addEventListener(\"change\", () => {\n                    if (inputElement.selectedIndex > 0) {\n                        label.classList.add(\"label-floating\");\n                    } else if (inputElement.selectedIndex === 0 && !inputElement.value) {\n                        label.classList.remove(\"label-floating\");\n                    }\n                });\n            }\n            \n            \/\/ Add error handling for accessibility\n            const form = block.closest(\"form\");\n            if (form) {\n                form.addEventListener(\"submit\", function(e) {\n                    \/\/ Check validity\n                    if (inputElement.hasAttribute(\"required\") && \n                        ((inputElement.tagName.toLowerCase() !== 'select' && !inputElement.value) || \n                         (inputElement.tagName.toLowerCase() === 'select' && inputElement.selectedIndex === 0))) {\n                        \n                        \/\/ Create or update error message\n                        let errorMsg = document.getElementById(inputElement.id + \"-error\");\n                        if (!errorMsg) {\n                            errorMsg = document.createElement(\"div\");\n                            errorMsg.id = inputElement.id + \"-error\";\n                            errorMsg.className = \"error-message\";\n                            errorMsg.setAttribute(\"role\", \"alert\");\n                            errorMsg.setAttribute(\"aria-live\", \"assertive\");\n                            block.appendChild(errorMsg);\n                        }\n                        errorMsg.textContent = label.textContent.replace(\" (required)\", \"\") + \" is required\";\n                        \n                        \/\/ Link the error message to the input\n                        inputElement.setAttribute(\"aria-invalid\", \"true\");\n                        inputElement.setAttribute(\"aria-describedby\", \n                            (inputElement.getAttribute(\"aria-describedby\") || \"\") + \" \" + inputElement.id + \"-error\");\n                    }\n                });\n            }\n        });\n        \n        \/\/ Add overall form accessibility improvements\n        const forms = document.querySelectorAll(\".dynamics-form form\");\n        forms.forEach(form => {\n            \/\/ Ensure the form has a proper role\n            form.setAttribute(\"role\", \"form\");\n            \n            \/\/ Add appropriate labels to submit buttons\n            const submitButtons = form.querySelectorAll(\"button[type='submit']\");\n            submitButtons.forEach(button => {\n                if (!button.getAttribute(\"aria-label\")) {\n                    button.setAttribute(\"aria-label\", \"Submit form\");\n                }\n            });\n        });\n    }\n});\n<\/script>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<p class=\"has-body-small-font-size\">By submitting this form you are agreeing to our&nbsp;<a href=\"https:\/\/www.climbcs.com\/uk\/legal\/privacy\/\" target=\"_blank\" rel=\"noreferrer noopener\">Privacy Policy<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/www.climbcs.com\/uk\/legal\/website-terms-of-use\/\" target=\"_blank\" rel=\"noreferrer noopener\">Website Terms of Use<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n    <\/div>\n\n                            <\/div>\n                    <\/div>\n                <\/div>\n            <\/section>\n        ","protected":false},"excerpt":{"rendered":"","protected":false},"author":19,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-701","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Subscribe to our Newsletter - Climb Channel Solutions UK<\/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:\/\/www.climbcs.com\/uk\/subscribe\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Subscribe to our Newsletter - Climb Channel Solutions UK\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.climbcs.com\/uk\/subscribe\/\" \/>\n<meta property=\"og:site_name\" content=\"Climb Channel Solutions UK\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-02T11:11:29+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@climbcs_uk\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/subscribe\\\/\",\"url\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/subscribe\\\/\",\"name\":\"Subscribe to our Newsletter - Climb Channel Solutions UK\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/#website\"},\"datePublished\":\"2021-06-18T13:35:52+00:00\",\"dateModified\":\"2025-06-02T11:11:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/subscribe\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/subscribe\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/subscribe\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Subscribe to our Newsletter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/#website\",\"url\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/\",\"name\":\"Climb Channel Solutions UK\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/#organization\",\"name\":\"Climb Channel Solutions UK\",\"url\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/svg\\\/Climb-CS-colour-for-light-background.svg\",\"contentUrl\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/wp-content\\\/uploads\\\/sites\\\/4\\\/svg\\\/Climb-CS-colour-for-light-background.svg\",\"width\":1024,\"height\":325,\"caption\":\"Climb Channel Solutions UK\"},\"image\":{\"@id\":\"https:\\\/\\\/www.climbcs.com\\\/uk\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/climbcs_uk\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Subscribe to our Newsletter - Climb Channel Solutions UK","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:\/\/www.climbcs.com\/uk\/subscribe\/","og_locale":"en_US","og_type":"article","og_title":"Subscribe to our Newsletter - Climb Channel Solutions UK","og_url":"https:\/\/www.climbcs.com\/uk\/subscribe\/","og_site_name":"Climb Channel Solutions UK","article_modified_time":"2025-06-02T11:11:29+00:00","twitter_card":"summary_large_image","twitter_site":"@climbcs_uk","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.climbcs.com\/uk\/subscribe\/","url":"https:\/\/www.climbcs.com\/uk\/subscribe\/","name":"Subscribe to our Newsletter - Climb Channel Solutions UK","isPartOf":{"@id":"https:\/\/www.climbcs.com\/uk\/#website"},"datePublished":"2021-06-18T13:35:52+00:00","dateModified":"2025-06-02T11:11:29+00:00","breadcrumb":{"@id":"https:\/\/www.climbcs.com\/uk\/subscribe\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.climbcs.com\/uk\/subscribe\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.climbcs.com\/uk\/subscribe\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.climbcs.com\/uk\/"},{"@type":"ListItem","position":2,"name":"Subscribe to our Newsletter"}]},{"@type":"WebSite","@id":"https:\/\/www.climbcs.com\/uk\/#website","url":"https:\/\/www.climbcs.com\/uk\/","name":"Climb Channel Solutions UK","description":"","publisher":{"@id":"https:\/\/www.climbcs.com\/uk\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.climbcs.com\/uk\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.climbcs.com\/uk\/#organization","name":"Climb Channel Solutions UK","url":"https:\/\/www.climbcs.com\/uk\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.climbcs.com\/uk\/#\/schema\/logo\/image\/","url":"https:\/\/www.climbcs.com\/uk\/wp-content\/uploads\/sites\/4\/svg\/Climb-CS-colour-for-light-background.svg","contentUrl":"https:\/\/www.climbcs.com\/uk\/wp-content\/uploads\/sites\/4\/svg\/Climb-CS-colour-for-light-background.svg","width":1024,"height":325,"caption":"Climb Channel Solutions UK"},"image":{"@id":"https:\/\/www.climbcs.com\/uk\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/climbcs_uk"]}]}},"_links":{"self":[{"href":"https:\/\/www.climbcs.com\/uk\/wp-json\/wp\/v2\/pages\/701","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.climbcs.com\/uk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.climbcs.com\/uk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.climbcs.com\/uk\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/www.climbcs.com\/uk\/wp-json\/wp\/v2\/comments?post=701"}],"version-history":[{"count":0,"href":"https:\/\/www.climbcs.com\/uk\/wp-json\/wp\/v2\/pages\/701\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.climbcs.com\/uk\/wp-json\/wp\/v2\/media?parent=701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}