{"id":4643,"date":"2026-05-18T10:36:27","date_gmt":"2026-05-18T02:36:27","guid":{"rendered":"https:\/\/eticketing.my\/login\/"},"modified":"2026-05-18T10:36:27","modified_gmt":"2026-05-18T02:36:27","slug":"login","status":"publish","type":"page","link":"https:\/\/eticketing.my\/ms\/login\/","title":{"rendered":"Member Login"},"content":{"rendered":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Members Login<\/title>\n\n    <script src=\"https:\/\/accounts.google.com\/gsi\/client\" async defer><\/script>\n\n    <style>\n        :root {\n            --et-login-ink: #2e3136;\n            --et-login-muted: #7d828b;\n            --et-login-card: rgba(255, 255, 255, 0.96);\n            --et-login-border: rgba(226, 232, 240, 0.9);\n            --et-login-orange: #f88400;\n            --et-login-shadow: 0 22px 54px rgba(15, 23, 42, 0.08);\n        }\n\n        * {\n            box-sizing: border-box;\n        }\n\n        body {\n            margin: 0;\n            min-height: 100vh;\n            color: var(--et-login-ink);\n            background: #ffffff;\n        }\n\n        .etick-login-page {\n            width: min(1140px, calc(100% - 32px));\n            min-height: 100vh;\n            margin: 0 auto;\n            padding: 2rem 0 3.5rem;\n        }\n\n        .etick-login-shell {\n            margin: 0 auto;\n            padding: 0;\n            border-radius: 0;\n            box-shadow: none;\n            background: transparent;\n        }\n\n        .etick-login-layout {\n            display: grid;\n            grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);\n            gap: 1.15rem;\n            align-items: start;\n        }\n\n        .etick-login-showcase {\n            margin-bottom: 1.8rem;\n            text-align: left;\n        }\n\n        .etick-login-showcase-title {\n            margin: 0;\n            color: #30343a;\n            font-size: clamp(2.15rem, 4.6vw, 3.35rem);\n            font-weight: 900;\n            line-height: 0.97;\n            letter-spacing: -0.05em;\n        }\n\n        .etick-login-kicker {\n            display: inline-block;\n            margin-bottom: 0.5rem;\n            color: var(--et-login-orange);\n            font-size: 0.72rem;\n            font-weight: 900;\n            letter-spacing: 0.14em;\n            text-transform: uppercase;\n        }\n\n        .etick-login-showcase-copy {\n            max-width: 560px;\n            margin: 0.9rem 0 0;\n            color: var(--et-login-muted);\n            font-size: 1rem;\n            line-height: 1.65;\n        }\n\n        .etick-login-panel {\n            border: 1px solid var(--et-login-border);\n            border-radius: 18px;\n            background: var(--et-login-card);\n            box-shadow: var(--et-login-shadow);\n            overflow: hidden;\n        }\n\n        .etick-login-card {\n            width: 100%;\n            margin: 0;\n            padding: 1.2rem;\n        }\n\n        .etick-login-brand {\n            width: 180px;\n            max-width: 100%;\n            display: block;\n            margin-bottom: 1.2rem;\n        }\n\n        .etick-login-label {\n            display: inline-block;\n            padding: 0;\n            border-radius: 0;\n            background: transparent;\n            color: var(--et-login-orange);\n            font-size: 0.72rem;\n            font-weight: 900;\n            letter-spacing: 0.14em;\n            text-transform: uppercase;\n        }\n\n        .etick-login-card h2 {\n            margin: 0.55rem 0 0.65rem;\n            color: #30343a;\n            font-size: 1.55rem;\n            font-weight: 800;\n            line-height: 1.15;\n            letter-spacing: -0.03em;\n        }\n\n        .etick-login-card p {\n            margin: 0;\n            color: var(--et-login-muted);\n            font-size: 0.96rem;\n            line-height: 1.65;\n        }\n\n        .etick-login-points {\n            display: grid;\n            gap: 10px;\n            margin: 1.35rem 0 0;\n            padding: 0;\n            list-style: none;\n        }\n\n        .etick-login-points li {\n            display: flex;\n            align-items: center;\n            gap: 10px;\n            color: #6d737c;\n            font-size: 0.92rem;\n            font-weight: 500;\n        }\n\n        .etick-login-points li::before {\n            content: \"\";\n            width: 8px;\n            height: 8px;\n            flex: 0 0 auto;\n            border-radius: 999px;\n            background: var(--et-login-orange);\n            box-shadow: 0 0 0 4px rgba(248, 132, 0, 0.12);\n        }\n\n        .etick-login-divider {\n            display: flex;\n            align-items: center;\n            gap: 12px;\n            margin: 1.45rem 0 1rem;\n            color: #9aa0a8;\n            font-size: 0.68rem;\n            font-weight: 800;\n            text-transform: uppercase;\n            letter-spacing: 0.12em;\n        }\n\n        .etick-login-divider::before,\n        .etick-login-divider::after {\n            content: \"\";\n            flex: 1 1 auto;\n            height: 1px;\n            background: linear-gradient(90deg, transparent, rgba(148, 163, 184, 0.45), transparent);\n        }\n\n        .etick-login-button-shell {\n            display: grid;\n            gap: 14px;\n            justify-items: stretch;\n        }\n\n        #gButtonContainer {\n            width: 100%;\n            display: flex;\n            justify-content: center;\n            min-height: 46px;\n            overflow: visible;\n        }\n\n        #gButtonContainer > div {\n            max-width: 100% !important;\n        }\n\n        .etick-login-footnote {\n            margin-top: 16px;\n            color: #667085;\n            font-size: 0.82rem;\n            line-height: 1.6;\n        }\n\n        .etick-login-error {\n            margin: 0 0 16px;\n            padding: 12px 14px;\n            border-radius: 12px;\n            border: 1px solid rgba(239, 68, 68, 0.16);\n            background: #fef2f2;\n            color: #b91c1c;\n            font-size: 0.92rem;\n            line-height: 1.55;\n        }\n\n        @media (max-width: 980px) {\n            .etick-login-page {\n                min-height: auto;\n                width: min(100% - 24px, 640px);\n                padding: 2rem 0;\n            }\n\n            .etick-login-layout {\n                grid-template-columns: 1fr;\n                gap: 1.25rem;\n            }\n\n            .etick-login-panel {\n                align-items: start;\n            }\n        }\n\n        @media (max-width: 640px) {\n            .etick-login-page {\n                width: min(100% - 20px, 520px);\n                padding-top: 4.5rem;\n            }\n\n            .etick-login-showcase-title {\n                font-size: 2.05rem;\n                line-height: 1.02;\n                letter-spacing: 0;\n            }\n\n            .etick-login-showcase-copy {\n                font-size: 0.94rem;\n                line-height: 1.55;\n            }\n\n            .etick-login-card {\n                padding: 1rem;\n            }\n\n            .etick-login-brand {\n                width: 160px;\n            }\n\n            .etick-login-brand {\n                display: none;\n            }\n\n            .etick-login-card h2 {\n                margin: 0.5rem 0 0.6rem;\n                font-size: 1.35rem;\n            }\n\n            .etick-login-card p {\n                line-height: 1.55;\n                font-size: 0.94rem;\n            }\n\n            .etick-login-divider {\n                margin: 16px 0 12px;\n                font-size: 0.74rem;\n                letter-spacing: 0.06em;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"etick-login-page\">\n        <div class=\"etick-login-shell\">\n            <section class=\"etick-login-showcase\">\n                <span class=\"etick-login-kicker\">Membership Dashboard<\/span>\n                <h1 class=\"etick-login-showcase-title\">Member Login<\/h1>\n                <p class=\"etick-login-showcase-copy\">Sign in to manage bookings, check rewards, and move through checkout faster.<\/p>\n            <\/section>\n\n            <div class=\"etick-login-layout\">\n                <section class=\"etick-login-panel\">\n                    <div class=\"etick-login-card\">\n                        <img decoding=\"async\"\n                            class=\"etick-login-brand\"\n                            src=\"..\/wp-content\/plugins\/eticketing-booking\/assets\/shared\/img\/eticketing-logo.webp\"\n                            alt=\"Eticketing logo\">\n\n                        \n                        <span class=\"etick-login-label\">Secure Sign-In<\/span>\n                        <h2>Continue with Google<\/h2>\n                        <p>Use your Google account to access your member dashboard.<\/p>\n\n                        <div class=\"etick-login-divider\">Continue<\/div>\n\n                        <form method=\"post\" class=\"etick-login-button-shell\" action=\"\">\n                            <div id=\"gButtonContainer\"><\/div>\n                        <input type=\"hidden\" name=\"trp-form-language\" value=\"ms\"\/><\/form>\n\n                        <p class=\"etick-login-footnote\">Protected by Google sign-in. No separate password needed.<\/p>\n                    <\/div>\n                <\/section>\n\n                <section class=\"etick-login-panel\">\n                    <div class=\"etick-login-card\">\n                        <span class=\"etick-login-label\">Member Access<\/span>\n                        <h2>What you can do<\/h2>\n                        <ul class=\"etick-login-points\">\n                            <li>View booking history<\/li>\n                            <li>Track rewards<\/li>\n                            <li>Save time on your next trip<\/li>\n                        <\/ul>\n                    <\/div>\n                <\/section>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script type=\"text\/javascript\">\n        console.warn(\"ETICK MEMBER LOGIN SCRIPT PARSED\", {\n            source: \"StagingLive\/includes\/public\/membership\/views\/login.php\",\n            href: window.location.href\n        });\n\n        function handleCredentialResponse(response) {\n            \/\/ console.log(\"Google credential response:\", response);\n            \/\/ console.log(\"Google credential:\", response.credential);\n            const ajaxUrl = (\n                window.plugin_nav_data && window.plugin_nav_data.ajaxUrl\n            ) || (\n                window.session_etick && window.session_etick.ajax\n            ) || (\n                window.ajaxlocalize && window.ajaxlocalize.ajaxurl\n            ) || \"\/wp-admin\/admin-ajax.php\";\n\n            const formData = new FormData();\n            formData.append(\"action\", \"google_login\");\n            formData.append(\"token\", response.credential);\n\n            fetch(ajaxUrl, {\n                method: \"POST\",\n                credentials: \"same-origin\",\n                body: formData\n            })\n            .then(r => r.json())\n            .then((data => {\n                if (data.success && data.redirect) {\n                    try {\n                        window.localStorage.setItem(\"etick_member_nav_refresh\", String(Date.now()));\n                        document.dispatchEvent(new CustomEvent(\"etick:member-login\"));\n                    } catch (error) {}\n\n                    window.location.replace(data.redirect);\n                }\n            }))\n            .catch(console.error);\n        }\n\n        function renderGoogleButton() {\n            const buttonHost = document.getElementById(\"gButtonContainer\");\n            if (!buttonHost) {\n                return;\n            }\n\n            const hostWidth = buttonHost.clientWidth || buttonHost.parentElement?.clientWidth || 320;\n            const computedWidth = Math.max(200, Math.min(360, Math.floor(hostWidth - 2)));\n            buttonHost.innerHTML = \"\";\n\n            google.accounts.id.renderButton(\n                buttonHost,\n                {\n                    type: \"standard\",\n                    theme: \"outline\",\n                    size: \"large\",\n                    text: \"signin_with\",\n                    shape: \"pill\",\n                    logo_alignment: \"left\",\n                    width: computedWidth\n                }\n            );\n\n            \/\/ Defensive fit: some devices\/webviews still render a wider GSI iframe.\n            window.requestAnimationFrame(() => {\n                const iframe = buttonHost.querySelector(\"iframe\");\n                if (!iframe) {\n                    return;\n                }\n\n                const hostWidthNow = buttonHost.clientWidth || computedWidth;\n                const iframeWidth = iframe.offsetWidth || computedWidth;\n\n                iframe.style.transform = \"\";\n                iframe.style.transformOrigin = \"\";\n                buttonHost.style.height = \"\";\n\n                if (iframeWidth > hostWidthNow) {\n                    const scale = hostWidthNow \/ iframeWidth;\n                    iframe.style.transform = \"scale(\" + scale + \")\";\n                    iframe.style.transformOrigin = \"left top\";\n                    buttonHost.style.height = Math.ceil((iframe.offsetHeight || 44) * scale) + \"px\";\n                }\n            });\n        }\n\n        window.onload = function() {\n            google.accounts.id.initialize({\n                client_id: \"392034917323-t48dn89slejftgq2vvbr032nnfu5p8ss.apps.googleusercontent.com\",\n                callback: handleCredentialResponse,\n                ux_mode: \"popup\"\n            });\n\n            renderGoogleButton();\n            window.addEventListener(\"resize\", renderGoogleButton);\n        };\n    <\/script>\n<\/body>\n<\/html>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-4643","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Member Login - ETicketing<\/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:\/\/eticketing.my\/ms\/login\/\" \/>\n<meta property=\"og:locale\" content=\"ms_MY\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Member Login - ETicketing\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eticketing.my\/ms\/login\/\" \/>\n<meta property=\"og:site_name\" content=\"ETicketing\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/eticketing.myy\" \/>\n<meta property=\"og:image\" content=\"https:\/\/eticketing.my\/wp-content\/uploads\/2025\/08\/Special-Discount.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@eticketing_my\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eticketing.my\/login\/\",\"url\":\"https:\/\/eticketing.my\/login\/\",\"name\":\"Member Login - ETicketing\",\"isPartOf\":{\"@id\":\"https:\/\/eticketing.my\/#website\"},\"datePublished\":\"2026-05-18T02:36:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/eticketing.my\/login\/#breadcrumb\"},\"inLanguage\":\"ms-MY\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eticketing.my\/login\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eticketing.my\/login\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eticketing.my\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Member Login\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/eticketing.my\/#website\",\"url\":\"https:\/\/eticketing.my\/\",\"name\":\"ETicketing\",\"description\":\"Beli Tiket Bas Online. Mudah dan Murah.\",\"publisher\":{\"@id\":\"https:\/\/eticketing.my\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/eticketing.my\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ms-MY\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/eticketing.my\/#organization\",\"name\":\"ETicketing\",\"url\":\"https:\/\/eticketing.my\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ms-MY\",\"@id\":\"https:\/\/eticketing.my\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/eticketing.my\/wp-content\/uploads\/2025\/08\/Logo-Apps-Eticketing-Finalize-01-01.png\",\"contentUrl\":\"https:\/\/eticketing.my\/wp-content\/uploads\/2025\/08\/Logo-Apps-Eticketing-Finalize-01-01.png\",\"width\":300,\"height\":90,\"caption\":\"ETicketing\"},\"image\":{\"@id\":\"https:\/\/eticketing.my\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/eticketing.myy\",\"https:\/\/x.com\/eticketing_my\",\"https:\/\/www.tiktok.com\/@eticketing.my\",\"https:\/\/www.threads.com\/@eticketing.my\/\",\"https:\/\/www.instagram.com\/eticketing.my\/\",\"https:\/\/youtube.com\/@eticketing_my\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Member Login - ETicketing","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:\/\/eticketing.my\/ms\/login\/","og_locale":"ms_MY","og_type":"article","og_title":"Member Login - ETicketing","og_url":"https:\/\/eticketing.my\/ms\/login\/","og_site_name":"ETicketing","article_publisher":"https:\/\/www.facebook.com\/eticketing.myy","og_image":[{"width":1080,"height":576,"url":"https:\/\/eticketing.my\/wp-content\/uploads\/2025\/08\/Special-Discount.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@eticketing_my","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/eticketing.my\/login\/","url":"https:\/\/eticketing.my\/login\/","name":"Member Login - ETicketing","isPartOf":{"@id":"https:\/\/eticketing.my\/#website"},"datePublished":"2026-05-18T02:36:27+00:00","breadcrumb":{"@id":"https:\/\/eticketing.my\/login\/#breadcrumb"},"inLanguage":"ms-MY","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eticketing.my\/login\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eticketing.my\/login\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eticketing.my\/"},{"@type":"ListItem","position":2,"name":"Member Login"}]},{"@type":"WebSite","@id":"https:\/\/eticketing.my\/#website","url":"https:\/\/eticketing.my\/","name":"ETicketing","description":"Beli Tiket Bas Online. Mudah dan Murah.","publisher":{"@id":"https:\/\/eticketing.my\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eticketing.my\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ms-MY"},{"@type":"Organization","@id":"https:\/\/eticketing.my\/#organization","name":"ETicketing","url":"https:\/\/eticketing.my\/","logo":{"@type":"ImageObject","inLanguage":"ms-MY","@id":"https:\/\/eticketing.my\/#\/schema\/logo\/image\/","url":"https:\/\/eticketing.my\/wp-content\/uploads\/2025\/08\/Logo-Apps-Eticketing-Finalize-01-01.png","contentUrl":"https:\/\/eticketing.my\/wp-content\/uploads\/2025\/08\/Logo-Apps-Eticketing-Finalize-01-01.png","width":300,"height":90,"caption":"ETicketing"},"image":{"@id":"https:\/\/eticketing.my\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/eticketing.myy","https:\/\/x.com\/eticketing_my","https:\/\/www.tiktok.com\/@eticketing.my","https:\/\/www.threads.com\/@eticketing.my\/","https:\/\/www.instagram.com\/eticketing.my\/","https:\/\/youtube.com\/@eticketing_my"]}]}},"_links":{"self":[{"href":"https:\/\/eticketing.my\/ms\/wp-json\/wp\/v2\/pages\/4643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eticketing.my\/ms\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/eticketing.my\/ms\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/eticketing.my\/ms\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eticketing.my\/ms\/wp-json\/wp\/v2\/comments?post=4643"}],"version-history":[{"count":0,"href":"https:\/\/eticketing.my\/ms\/wp-json\/wp\/v2\/pages\/4643\/revisions"}],"wp:attachment":[{"href":"https:\/\/eticketing.my\/ms\/wp-json\/wp\/v2\/media?parent=4643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}