{"id":34,"date":"2025-12-15T11:24:15","date_gmt":"2025-12-15T11:24:15","guid":{"rendered":"https:\/\/wipsite.in\/agent_s\/?page_id=34"},"modified":"2026-06-23T07:53:10","modified_gmt":"2026-06-23T07:53:10","slug":"subscription","status":"publish","type":"page","link":"https:\/\/wipsite.in\/agent_web_v2\/subscription\/","title":{"rendered":"subscription"},"content":{"rendered":"        <style>\n            \/* Custom Select2 Styling for Checkout *\/\n            .custom-stripe-checkout input::placeholder {\n                color: #8f9ba8 !important;\n                font-weight: 400 !important;\n            }\n            .custom-stripe-checkout input,\n            .custom-stripe-checkout select {\n                color: #30313d !important;\n                font-size: 16px !important;\n                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n            }\n            .custom-stripe-checkout .select2-container--default .select2-selection--single {\n                border: none !important;\n                background: transparent !important;\n                height: 44px !important;\n            }\n            .custom-stripe-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {\n                line-height: 44px !important;\n                padding-left: 14px !important;\n                color: #30313d !important;\n                font-size: 16px !important;\n            }\n            .custom-stripe-checkout .select2-container--default .select2-selection--single .select2-selection__placeholder {\n                color: #8f9ba8 !important;\n            }\n            .custom-stripe-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {\n                height: 44px !important;\n            }\n            .custom-stripe-checkout .select2-search--dropdown .select2-search__field {\n                outline: none;\n                border: 1px solid #e6e6e6;\n                border-radius: 4px;\n                padding: 6px 10px;\n            }\n            .select2-dropdown {\n                border: 1px solid #e6e6e6 !important;\n                border-radius: 8px !important;\n                box-shadow: 0 4px 15px rgba(0,0,0,0.08) !important;\n                padding-bottom: 4px;\n            }\n            .select2-results__option {\n                padding: 10px 14px !important;\n                font-size: 14px !important;\n                color: #30313d !important;\n            }\n            .select2-container--default .select2-results__option--highlighted[aria-selected] {\n                background-color: #f8f9fa !important;\n                color: #1a1f36 !important;\n                font-weight: 500;\n            }\n            .select2-container--default .select2-results__option[aria-selected=true] {\n                background-color: #e6e6e6 !important;\n            }\n            \n            \/* Intl-Tel-Input Styling *\/\n            .custom-stripe-checkout .iti {\n                width: 100%;\n            }\n            .custom-stripe-checkout .iti__flag-container {\n                padding: 0;\n            }\n            .custom-stripe-checkout .iti__selected-flag {\n                background: transparent !important;\n                padding-left: 12px;\n                outline: none !important;\n                border: none !important;\n                box-shadow: none !important;\n            }\n            .custom-stripe-checkout .iti__selected-flag:hover, \n            .custom-stripe-checkout .iti__selected-flag:focus,\n            .custom-stripe-checkout .iti__selected-flag[aria-expanded=\"true\"] {\n                background: transparent !important;\n                outline: none !important;\n                border: none !important;\n                box-shadow: none !important;\n            }\n            .custom-stripe-checkout .iti__selected-dial-code {\n                color: #30313d;\n                font-size: 16px;\n                font-weight: 400;\n                margin-left: 4px;\n            }\n            .custom-stripe-checkout .iti__arrow {\n                border-top-color: #8f9ba8;\n            }\n            .custom-stripe-checkout .iti__arrow--up {\n                border-bottom-color: #8f9ba8;\n                border-top: none;\n            }\n            .custom-stripe-checkout .iti__country-list {\n                border: 1px solid #e6e6e6 !important;\n                border-radius: 8px !important;\n                box-shadow: 0 4px 15px rgba(0,0,0,0.08) !important;\n                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n                font-size: 14px;\n                margin-top: 4px;\n                overflow-x: hidden;\n            }\n            .custom-stripe-checkout .iti__country {\n                padding: 10px 14px !important;\n                outline: none !important;\n            }\n            .custom-stripe-checkout .iti__country-name {\n                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n                font-weight: 400 !important;\n                color: #30313d !important;\n            }\n            .custom-stripe-checkout .iti__dial-code {\n                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n                font-weight: 400 !important;\n                color: #8f9ba8 !important;\n            }\n            .custom-stripe-checkout .iti__country.iti__highlight {\n                background-color: #f8f9fa !important;\n            }\n            .custom-stripe-checkout .iti__country.iti__active {\n                background-color: #e6e6e6 !important;\n            }\n            .custom-stripe-checkout .iti__divider {\n                border-bottom: 1px solid #e6e6e6;\n                padding-bottom: 5px;\n                margin-bottom: 5px;\n            }\n        <\/style>\n        <div class=\"agent-crm-checkout-container custom-stripe-checkout\" data-price-id=\"price_1Tl8nUAed87xgZSOQbqv5X8C\" style=\"position: relative; width: 100%; max-width: 600px; margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; color: #30313d; background: #fff; padding: 30px; border-radius: 8px; box-sizing: border-box;\">\n            \n            <form id=\"agent-crm-payment-form\">\n                \n                <!-- Express Checkout removed per user request -->\n                \n                <div class=\"checkout-section\" style=\"margin-bottom: 24px;\">\n                    <h3 style=\"font-size: 16px; font-weight: 600; margin-bottom: 12px; color: #30313d;\">Your account<\/h3>\n                    \n                    <div style=\"display: flex; flex-direction: column; gap: 16px; margin-bottom: 24px;\">\n                        <!-- <h4 style=\"font-size: 14px; font-weight: 600; color: #30313d; margin: 0;\">Contact details<\/h4> -->\n\n                        <div>\n                            <label style=\"display: block; font-size: 13px; font-weight: 500; color: #30313d; margin-bottom: 6px;\">Email address<\/label>\n                            <div style=\"border: 1px solid #e6e6e6; border-radius: 5px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.02); position: relative; overflow: hidden;\">\n                                <input type=\"email\" id=\"checkout-email\" required placeholder=\"name@example.com\" style=\"border: none; padding: 12px 14px; width: 100%; outline: none; background: transparent; box-sizing: border-box;\">\n                                <i class=\"fa-solid fa-spinner fa-spin\" id=\"email-spinner\" style=\"display: none; color: #8f9ba8; position: absolute; right: 14px; top: 15px;\"><\/i>\n                            <\/div>\n                        <\/div>\n                        \n                        <div id=\"existing-user-message\" style=\"display: none; background: #f1fbe5; color: #395c14; padding: 24px 20px; border: 1px solid #cde3b1; border-radius: 8px; font-size: 14px; flex-direction: column; align-items: center; text-align: center; margin: 0;\">\n                            <div style=\"background: #dff2c6; border-radius: 50%; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; margin-bottom: 12px;\">\n                                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"color: #5c8a22;\">\n                                    <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"><\/path>\n                                    <circle cx=\"12\" cy=\"7\" r=\"4\"><\/circle>\n                                <\/svg>\n                            <\/div>\n                            <strong style=\"font-size: 16px; margin-bottom: 8px; color: #395c14; font-weight: 700;\">Account Already Exists<\/strong>\n                            <p style=\"margin: 0 0 16px 0; color: #4a701b; line-height: 1.5; font-size: 13.5px;\">It looks like the email address you entered is already associated with an active partner account. Please log in to manage your profile.<\/p>\n                            <a href=\"#\" id=\"existing-user-login-btn\" style=\"display: inline-block; background: #5c8a22; color: #fff; padding: 10px 24px; text-decoration: none; border-radius: 6px; font-weight: 600; font-size: 14px; box-shadow: 0 1px 2px rgba(0,0,0,0.05); transition: background-color 0.2s;\" onmouseover=\"this.style.backgroundColor='#4a701b'\" onmouseout=\"this.style.backgroundColor='#5c8a22'\">Log In to Your Account<\/a>\n                        <\/div>\n\n                        <div id=\"additional-fields\" style=\"display: none;\">\n                            <div style=\"display: flex; flex-direction: column; gap: 16px;\">\n                                <div style=\"display: flex; gap: 12px;\">\n                                    <div style=\"flex: 1;\">\n                                        <label style=\"display: block; font-size: 13px; font-weight: 500; color: #30313d; margin-bottom: 6px;\">Mobile number<\/label>\n                                        <div id=\"phone-wrapper\" style=\"border: 1px solid #e6e6e6; border-radius: 5px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.02); transition: border-color 0.2s;\">\n                                            <input type=\"tel\" id=\"checkout-phone\" placeholder=\"Mobile number\" style=\"border: none; padding-top: 12px; padding-bottom: 12px; padding-right: 14px; width: 100%; outline: none; background: transparent; box-sizing: border-box;\">\n                                        <\/div>\n                                        <div id=\"phone-error-message\" style=\"color: #df1b41; font-size: 13px; margin-top: 4px; display: none;\"><\/div>\n                                    <\/div>\n                                    <div style=\"flex: 1;\">\n                                        <label style=\"display: block; font-size: 13px; font-weight: 500; color: #30313d; margin-bottom: 6px;\">Full name<\/label>\n                                        <div style=\"border: 1px solid #e6e6e6; border-radius: 5px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.02); overflow: hidden;\">\n                                            <input type=\"text\" id=\"checkout-name\" required placeholder=\"Full name\" style=\"border: none; padding: 12px 14px; width: 100%; outline: none; background: transparent; box-sizing: border-box;\">\n                                        <\/div>\n                                    <\/div>\n                                <\/div>\n\n                                <div>\n                                    <label style=\"display: block; font-size: 13px; font-weight: 500; color: #30313d; margin-bottom: 6px;\">Country\/Territory<\/label>\n                                    <div style=\"border: 1px solid #e6e6e6; border-radius: 5px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.02); position: relative; overflow: hidden;\">\n                                        <select id=\"checkout-country\" required style=\"border: none; padding: 12px 14px; width: 100%; outline: none; background: transparent; appearance: none; -webkit-appearance: none; cursor: pointer; height: 44px; box-sizing: border-box;\">\n                                            <option value=\"\" disabled selected>Select Country<\/option>\n                                        <\/select>\n                                    <\/div>\n                                <\/div>\n                                \n                                <div id=\"password-field-container\" style=\"display: flex; flex-direction: column; padding: 20px; border: 1px solid #e6e6e6; border-radius: 8px; background: #fafafa; margin-top: 8px;\">\n                                    <h3 style=\"font-size: 15px; font-weight: 600; margin: 0 0 6px 0; color: #1a1f36;\">Join Agent.Sellit<\/h3>\n                                    <p style=\"font-size: 13px; color: #6b7c93; margin: 0 0 16px 0;\">Create a password to securely create your Agent.Sellit account.<\/p>\n                                    \n                                    <label style=\"display: block; font-size: 13px; font-weight: 500; color: #30313d; margin-bottom: 6px;\">Password<\/label>\n                                    <div style=\"position: relative; border: 1px solid #e6e6e6; border-radius: 5px; background: #fff; overflow: hidden; transition: border-color 0.2s;\" id=\"password-input-wrapper\">\n                                        <input type=\"password\" id=\"checkout-password\" placeholder=\"\" autocomplete=\"new-password\" style=\"border: none; padding: 12px 14px; width: calc(100% - 40px); outline: none; background: transparent; letter-spacing: 2px;\">\n                                        <i class=\"fa-regular fa-eye-slash\" id=\"toggle-password-visibility\" style=\"position: absolute; right: 12px; top: 15px; color: #8f9ba8; cursor: pointer;\"><\/i>\n                                    <\/div>\n                                    \n                                    <div style=\"margin-top: 12px;\">\n                                        <div style=\"display: flex; height: 4px; background: #e6e6e6; border-radius: 2px; overflow: hidden;\">\n                                            <div id=\"password-strength-bar\" style=\"width: 0%; background: #df1b41; transition: width 0.3s, background-color 0.3s;\"><\/div>\n                                        <\/div>\n                                        <div style=\"font-size: 13px; color: #30313d; margin-top: 8px;\">Password strength: <span id=\"password-strength-text\" style=\"color: #6b7c93;\">Weak<\/span><\/div>\n                                        <div style=\"font-size: 13px; color: #6b7c93; margin-top: 4px;\">Must include 1 uppercase letter, 1 symbol<\/div>\n                                        <div id=\"password-error-message\" style=\"font-size: 13px; color: #df1b41; margin-top: 6px; display: none; align-items: center; gap: 4px;\">\n                                            <i class=\"fa-solid fa-xmark\"><\/i> Your password doesn't meet the security criteria.\n                                        <\/div>\n                                    <\/div>\n                                    \n                                    <div style=\"margin-top: 16px;\">\n                                        <span style=\"display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid #e6e6e6; border-radius: 4px; font-size: 12px; color: #6b7c93; background: #fff;\">\n                                            <i class=\"fa-solid fa-lock\" style=\"font-size: 10px;\"><\/i> Safe and secure\n                                        <\/span>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"checkout-section\" id=\"payment-method-section\">\n                    <h3 style=\"font-size: 16px; font-weight: 600; margin-bottom: 12px; color: #30313d;\">Payment method<\/h3>\n                    <div id=\"payment-element\"><\/div>\n                    <div id=\"payment-message\" style=\"display: none; color: #df1b41; margin-top: 10px; font-size: 13px;\"><\/div>\n                <\/div>\n\n                <div id=\"save-info-section\" style=\"display: flex; align-items: flex-start; gap: 10px; margin-bottom: 24px; padding: 16px; border: 1px solid #e6e6e6; border-radius: 5px; margin-top: 20px;\">\n                    <input type=\"checkbox\" id=\"save-info\" style=\"margin-top: 3px;\">\n                    <div>\n                        <strong style=\"display: block; font-size: 13px; font-weight: 600; margin-bottom: 2px;\">Save my information for faster checkout<\/strong>\n                        <p style=\"margin: 0; color: #6b7c93; font-size: 12px; line-height: 1.4;\">Pay securely at Tomm luxury real estate llc and everywhere Link is accepted.<\/p>\n                    <\/div>\n                <\/div>\n\n                <button id=\"submit-button\" class=\"checkout-submit-btn\" style=\"width: 100%; background: #d2fd9c; color: #394508; border: none; border-radius: 5px; padding: 14px; font-size: 16px; font-weight: 600; cursor: pointer;\">\n                    <span id=\"button-text\">Start your trial<\/span>\n                    <div class=\"spinner\" id=\"spinner\" style=\"display: none;\">Loading...<\/div>\n                <\/button>\n                \n                <p style=\"margin-top: 16px; font-size: 13px; color: #6b7c93; text-align: center; line-height: 1.5;\">\n                    By subscribing, you authorize TOMM Luxury Real Estate LLC to charge you according to the terms until you cancel.\n                <\/p>\n\n                <script>\n                    let emailDebounceTimer;\n                    let lastCheckedEmail = '';\n                    \n                    const checkEmail = function(emailStr) {\n                        const email = emailStr.trim();\n                        \n                        const existingUserMsg = document.getElementById('existing-user-message');\n                        const submitBtn = document.getElementById('submit-button');\n                        const additionalFields = document.getElementById('additional-fields');\n                        \n                        if (!email || !email.includes('@') || email.length < 5) {\n                            if (existingUserMsg) existingUserMsg.style.display = 'none';\n                            if (additionalFields) additionalFields.style.display = 'none';\n                            if (submitBtn) {\n                                submitBtn.disabled = false;\n                                submitBtn.style.opacity = '1';\n                                submitBtn.style.cursor = 'pointer';\n                            }\n                            lastCheckedEmail = '';\n                            return;\n                        }\n                        if (email === lastCheckedEmail) return;\n                        lastCheckedEmail = email;\n                        \n                        const spinner = document.getElementById('email-spinner');\n                        const phoneInput = document.getElementById('checkout-phone');\n                        const nameInput = document.getElementById('checkout-name');\n                        const countryInput = document.getElementById('checkout-country');\n                        const passwordContainer = document.getElementById('password-field-container');\n                        const passwordInput = document.getElementById('checkout-password');\n                        \n                        spinner.style.display = 'block';\n                        \n                        jQuery.post(agentCrmCheckoutData.ajax_url, {\n                            action: 'agent_crm_check_email',\n                            nonce: agentCrmCheckoutData.nonce,\n                            email: email\n                        }, function(response) {\n                            spinner.style.display = 'none';\n                            \n                            const summaryVal = document.querySelector('.summary-val');\n                            const trialInfoBlock = document.getElementById('trial-info-block');\n                            const nextPaymentVal = document.querySelector('.next-payment');\n                            \n                            const date = new Date();\n                            date.setDate(date.getDate() + 90);\n                            const trialEndDate = date.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });\n\n                            const existingUserMsg = document.getElementById('existing-user-message');\n                            const loginBtn = document.getElementById('existing-user-login-btn');\n                            const paymentMethodSection = document.getElementById('payment-method-section');\n                            const saveInfoSection = document.getElementById('save-info-section');\n                            const submitBtn = document.getElementById('submit-button');\n\n                            if (response.success && response.data && response.data.is_existing) {\n                                additionalFields.style.display = 'none';\n                                phoneInput.removeAttribute('required');\n                                nameInput.removeAttribute('required');\n                                countryInput.removeAttribute('required');\n                                passwordInput.removeAttribute('required');\n                                \n                                existingUserMsg.style.display = 'flex';\n                                loginBtn.href = agentCrmCheckoutData.existing_user_redirect_url;\n                                \n                                submitBtn.disabled = true;\n                                submitBtn.style.opacity = '0.5';\n                                submitBtn.style.cursor = 'not-allowed';\n                                return;\n                            } else {\n                                additionalFields.style.display = 'block';\n                                existingUserMsg.style.display = 'none';\n                                \n                                \/\/ Initialize Select2 AFTER container is visible to fix floating\/width bug\n                                if (!jQuery('#checkout-country').hasClass(\"select2-hidden-accessible\")) {\n                                    jQuery('#checkout-country').select2({\n                                        width: '100%',\n                                        placeholder: 'Select Country *'\n                                    });\n                                }\n\n                                \/\/ Initialize intl-tel-input for phone field if not already initialized\n                                if (!window.iti) {\n                                    const phoneInputEl = document.querySelector(\"#checkout-phone\");\n                                    window.iti = window.intlTelInput(phoneInputEl, {\n                                        initialCountry: \"ae\",\n                                        separateDialCode: true,\n                                        dropdownContainer: document.body,\n                                        utilsScript: \"https:\/\/cdn.jsdelivr.net\/npm\/intl-tel-input@18.2.1\/build\/js\/utils.js\"\n                                    });\n                                    \n                                    \/\/ Sync phone country code when Country dropdown changes\n                                    jQuery('#checkout-country').on('change', function() {\n                                        var selectedCountry = jQuery(this).val();\n                                        if (selectedCountry && window.iti) {\n                                            window.iti.setCountry(selectedCountry.toLowerCase());\n                                        }\n                                    });\n                                    \n                                    \/\/ Real-time validation on blur\n                                    phoneInputEl.addEventListener('blur', function() {\n                                        const phoneErrorMsg = document.getElementById('phone-error-message');\n                                        const phoneWrapper = document.getElementById('phone-wrapper');\n                                        \n                                        \/\/ Only validate if they've typed something\n                                        if (phoneInputEl.value.trim()) {\n                                            if (!window.iti.isValidNumber()) {\n                                                if (phoneErrorMsg) {\n                                                    phoneErrorMsg.textContent = \"Please enter a valid mobile number.\";\n                                                    phoneErrorMsg.style.display = 'block';\n                                                }\n                                                if (phoneWrapper) phoneWrapper.style.border = '1px solid #df1b41';\n                                            } else {\n                                                if (phoneErrorMsg) phoneErrorMsg.style.display = 'none';\n                                                if (phoneWrapper) phoneWrapper.style.border = '1px solid #e6e6e6';\n                                            }\n                                        }\n                                    });\n                                    \n                                    \/\/ Clear error when they start typing again\n                                    phoneInputEl.addEventListener('input', function() {\n                                        const phoneErrorMsg = document.getElementById('phone-error-message');\n                                        const phoneWrapper = document.getElementById('phone-wrapper');\n                                        if (phoneErrorMsg) phoneErrorMsg.style.display = 'none';\n                                        if (phoneWrapper) phoneWrapper.style.border = '1px solid #e6e6e6';\n                                    });\n                                }\n\n                                submitBtn.disabled = false;\n                                submitBtn.style.opacity = '1';\n                                submitBtn.style.cursor = 'pointer';\n\n                                phoneInput.value = '';\n                                phoneInput.readOnly = false;\n                                phoneInput.style.color = 'inherit';\n                                phoneInput.setAttribute('required', 'required');\n                                \n                                nameInput.value = '';\n                                nameInput.readOnly = false;\n                                nameInput.style.color = 'inherit';\n                                nameInput.setAttribute('required', 'required');\n                                \n                                countryInput.value = '';\n                                countryInput.disabled = false;\n                                countryInput.style.color = 'inherit';\n                                countryInput.setAttribute('required', 'required');\n                                \n                                passwordInput.value = '';\n                                \n                                passwordContainer.style.display = 'flex';\n                                passwordInput.setAttribute('required', 'required');\n\n                                if (summaryVal) {\n                                    summaryVal.textContent = 'AED 00';\n                                }\n\n                                window.isExistingCrmUser = false;\n                            }\n                        }).fail(function() {\n                            spinner.style.display = 'none';\n                            additionalFields.style.display = 'block';\n                            passwordContainer.style.display = 'flex';\n                            phoneInput.setAttribute('required', 'required');\n                            nameInput.setAttribute('required', 'required');\n                            countryInput.setAttribute('required', 'required');\n                            passwordInput.setAttribute('required', 'required');\n                        });\n                    };\n\n                    const emailInputEl = document.getElementById('checkout-email');\n                    if (emailInputEl) {\n                        emailInputEl.addEventListener('input', function() {\n                            clearTimeout(emailDebounceTimer);\n                            emailDebounceTimer = setTimeout(() => {\n                                checkEmail(this.value);\n                            }, 800);\n                        });\n                        \n                        emailInputEl.addEventListener('blur', function() {\n                            clearTimeout(emailDebounceTimer);\n                            checkEmail(this.value);\n                        });\n                    }\n\n                    \/\/ Password UI logic\n                    const passwordInputUI = document.getElementById('checkout-password');\n                    const toggleVisibility = document.getElementById('toggle-password-visibility');\n                    const strengthBar = document.getElementById('password-strength-bar');\n                    const strengthText = document.getElementById('password-strength-text');\n                    const errorMsg = document.getElementById('password-error-message');\n                    const passWrapper = document.getElementById('password-input-wrapper');\n\n                    if (toggleVisibility && passwordInputUI) {\n                        toggleVisibility.addEventListener('click', function() {\n                            const type = passwordInputUI.getAttribute('type') === 'password' ? 'text' : 'password';\n                            passwordInputUI.setAttribute('type', type);\n                            this.className = type === 'password' ? 'fa-regular fa-eye-slash' : 'fa-regular fa-eye';\n                        });\n\n                        passwordInputUI.addEventListener('input', function() {\n                            const val = this.value;\n                            let score = 0;\n                            const hasUpper = \/[A-Z]\/.test(val);\n                            const hasSymbol = \/[!@#$%^&*(),.?\":{}|<>]\/.test(val);\n                            const hasMinLength = val.length >= 8;\n\n                            if (val.length > 0) score += 1;\n                            if (hasMinLength) score += 1;\n                            if (hasUpper) score += 1;\n                            if (hasSymbol) score += 1;\n\n                            if (score === 0) {\n                                strengthBar.style.width = '0%';\n                                strengthText.textContent = 'Weak';\n                                strengthText.style.color = '#6b7c93';\n                                passWrapper.style.borderColor = '#e6e6e6';\n                                errorMsg.style.display = 'none';\n                            } else if (score <= 2) {\n                                strengthBar.style.width = '33%';\n                                strengthBar.style.backgroundColor = '#df1b41';\n                                strengthText.textContent = 'Weak';\n                                strengthText.style.color = '#df1b41';\n                            } else if (score === 3) {\n                                strengthBar.style.width = '66%';\n                                strengthBar.style.backgroundColor = '#f4b400';\n                                strengthText.textContent = 'Fair';\n                                strengthText.style.color = '#f4b400';\n                            } else {\n                                strengthBar.style.width = '100%';\n                                strengthBar.style.backgroundColor = '#00d084';\n                                strengthText.textContent = 'Better';\n                                strengthText.style.color = '#00d084';\n                            }\n\n                            if (val.length > 0 && (!hasUpper || !hasSymbol || !hasMinLength)) {\n                                passWrapper.style.borderColor = '#df1b41';\n                                errorMsg.style.display = 'flex';\n                                passwordInputUI.setCustomValidity(\"Must include 1 uppercase letter, 1 symbol, and be at least 8 characters\");\n                            } else {\n                                passWrapper.style.borderColor = score >= 4 ? '#00d084' : '#e6e6e6';\n                                errorMsg.style.display = 'none';\n                                passwordInputUI.setCustomValidity(\"\");\n                            }\n                        });\n                    }\n\n                    \/\/ Load countries\n                    document.addEventListener('DOMContentLoaded', function() {\n                        if (typeof jQuery === 'undefined') {\n                            console.error('jQuery is not loaded');\n                            return;\n                        }\n                        const $ = jQuery;\n                        const countrySelect = $('#checkout-country');\n\n                        $.post(agentCrmCheckoutData.ajax_url, {\n                            action: 'agent_crm_get_countries',\n                            nonce: agentCrmCheckoutData.nonce\n                        }, function(response) {\n                            if (response.success && response.data) {\n                                \/\/ Clear existing options except placeholder\n                                countrySelect.empty();\n                                countrySelect.append('<option value=\"\" disabled selected>Select Country *<\/option>');\n                                \n                                \/\/ Append new options\n                                response.data.forEach(function(country) {\n                                    countrySelect.append(new Option(country.name, country.id));\n                                });\n                                \n                                \/\/ Refresh Select2 if already initialized\n                                if (countrySelect.hasClass(\"select2-hidden-accessible\")) {\n                                    countrySelect.trigger('change');\n                                }\n                            }\n                        }).fail(function() {\n                            console.error(\"Failed to load countries.\");\n                        });\n                    });\n                <\/script>\n\n                <div style=\"display: flex; justify-content: center; gap: 10px; margin-top: 20px; font-size: 11px; color: #8f9ba8;\">\n                    Powered by <strong>stripe<\/strong> | <a href=\"#\" style=\"color: #8f9ba8; text-decoration: none;\">Terms<\/a> <a href=\"#\" style=\"color: #8f9ba8; text-decoration: none;\">Privacy<\/a>\n                <\/div>\n            <\/form>\n        <\/div>\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"subscribe-template.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-34","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/wipsite.in\/agent_web_v2\/wp-json\/wp\/v2\/pages\/34","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wipsite.in\/agent_web_v2\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wipsite.in\/agent_web_v2\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wipsite.in\/agent_web_v2\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wipsite.in\/agent_web_v2\/wp-json\/wp\/v2\/comments?post=34"}],"version-history":[{"count":9,"href":"https:\/\/wipsite.in\/agent_web_v2\/wp-json\/wp\/v2\/pages\/34\/revisions"}],"predecessor-version":[{"id":282,"href":"https:\/\/wipsite.in\/agent_web_v2\/wp-json\/wp\/v2\/pages\/34\/revisions\/282"}],"wp:attachment":[{"href":"https:\/\/wipsite.in\/agent_web_v2\/wp-json\/wp\/v2\/media?parent=34"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}