{"id":137555,"date":"2026-02-19T13:31:43","date_gmt":"2026-02-19T03:31:43","guid":{"rendered":"https:\/\/myinspector.com.au\/index.php\/client-login\/"},"modified":"2026-07-08T18:08:26","modified_gmt":"2026-07-08T08:08:26","slug":"client-login","status":"publish","type":"page","link":"https:\/\/myinspector.com.au\/index.php\/client-login\/","title":{"rendered":"Client Login"},"content":{"rendered":"<p>Secure client login for Speedy Quote customers to access saved quotes and project updates.<\/p>\n\r\n<div class=\"sq-login-container\">\r\n    <div class=\"sq-login-box\">\r\n        <div class=\"sq-login-tabs\">\r\n            <button type=\"button\" class=\"sq-tab-btn active\" data-tab=\"login\">\r\n                Log In            <\/button>\r\n            <button type=\"button\" class=\"sq-tab-btn\" data-tab=\"register\">\r\n                Create Account            <\/button>\r\n        <\/div>\r\n        \r\n        <!-- Login Form -->\r\n        <form class=\"sq-login-form sq-tab-content active\" id=\"sq-login-form\" data-tab=\"login\">\r\n            <h2>Welcome Back<\/h2>\r\n            <p>Log in to manage your quotes<\/p>\r\n            \r\n            <div class=\"sq-field-group\">\r\n                <label class=\"sq-field-label\">Email Address<\/label>\r\n                <input type=\"email\" name=\"email\" class=\"sq-field-input\" required>\r\n            <\/div>\r\n            \r\n            <div class=\"sq-field-group\">\r\n                <label class=\"sq-field-label\">Password<\/label>\r\n                <input type=\"password\" name=\"password\" class=\"sq-field-input\" required>\r\n            <\/div>\r\n            \r\n            <div class=\"sq-field-group sq-checkbox-group\">\r\n                <label>\r\n                    <input type=\"checkbox\" name=\"remember\" value=\"true\">\r\n                    Remember me                <\/label>\r\n            <\/div>\r\n            \r\n            <div class=\"sq-form-error\" style=\"display: none;\"><\/div>\r\n            \r\n            <button type=\"submit\" class=\"sq-btn sq-btn-primary sq-btn-block\">\r\n                Log In            <\/button>\r\n            \r\n            <p class=\"sq-forgot-link\">\r\n                <a href=\"https:\/\/myinspector.com.au\/wp-login.php?action=lostpassword\">\r\n                    Forgot your password?                <\/a>\r\n            <\/p>\r\n        <\/form>\r\n        \r\n        <!-- Register Form -->\r\n        <form class=\"sq-login-form sq-tab-content\" id=\"sq-register-form\" data-tab=\"register\">\r\n            <h2>Create Account<\/h2>\r\n            <p>Create an account to track your quotes<\/p>\r\n            \r\n            <div class=\"sq-field-group\">\r\n                <label class=\"sq-field-label\">Full Name<\/label>\r\n                <input type=\"text\" name=\"name\" class=\"sq-field-input\" required>\r\n            <\/div>\r\n            \r\n            <div class=\"sq-field-group\">\r\n                <label class=\"sq-field-label\">Email Address<\/label>\r\n                <input type=\"email\" name=\"email\" class=\"sq-field-input\" required>\r\n            <\/div>\r\n            \r\n            <div class=\"sq-field-group\">\r\n                <label class=\"sq-field-label\">Phone (optional)<\/label>\r\n                <input type=\"tel\" name=\"phone\" class=\"sq-field-input\">\r\n            <\/div>\r\n            \r\n            <div class=\"sq-field-group\">\r\n                <label class=\"sq-field-label\">Password<\/label>\r\n                <input type=\"password\" name=\"password\" class=\"sq-field-input\" required minlength=\"8\">\r\n                <p class=\"sq-field-hint\">Minimum 8 characters<\/p>\r\n            <\/div>\r\n            \r\n            <div class=\"sq-form-error\" style=\"display: none;\"><\/div>\r\n            \r\n            <button type=\"submit\" class=\"sq-btn sq-btn-primary sq-btn-block\">\r\n                Create Account            <\/button>\r\n        <\/form>\r\n    <\/div>\r\n<\/div>\r\n\r\n<style>\r\n.sq-login-container {\r\n    max-width: 400px;\r\n    margin: 3rem auto;\r\n    padding: 0 1rem;\r\n}\r\n\r\n.sq-login-box {\r\n    background: #fff;\r\n    border-radius: 12px;\r\n    box-shadow: 0 4px 20px rgba(0,0,0,0.1);\r\n    overflow: hidden;\r\n}\r\n\r\n.sq-login-tabs {\r\n    display: flex;\r\n    border-bottom: 1px solid #e2e8f0;\r\n}\r\n\r\n.sq-tab-btn {\r\n    flex: 1;\r\n    padding: 1rem;\r\n    border: none;\r\n    background: #f8fafc;\r\n    font-size: 1rem;\r\n    font-weight: 500;\r\n    color: #64748b;\r\n    cursor: pointer;\r\n    transition: all 0.2s;\r\n}\r\n\r\n.sq-tab-btn.active {\r\n    background: #fff;\r\n    color: #2563eb;\r\n}\r\n\r\n.sq-login-form {\r\n    padding: 2rem;\r\n    display: none;\r\n}\r\n\r\n.sq-login-form.active {\r\n    display: block;\r\n}\r\n\r\n.sq-login-form h2 {\r\n    margin: 0 0 0.5rem;\r\n    font-size: 1.5rem;\r\n}\r\n\r\n.sq-login-form > p {\r\n    color: #64748b;\r\n    margin: 0 0 1.5rem;\r\n}\r\n\r\n.sq-checkbox-group label {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.5rem;\r\n    cursor: pointer;\r\n}\r\n\r\n.sq-btn-block {\r\n    width: 100%;\r\n}\r\n\r\n.sq-form-error {\r\n    background: #fef2f2;\r\n    color: #dc2626;\r\n    padding: 0.75rem;\r\n    border-radius: 6px;\r\n    margin-bottom: 1rem;\r\n    font-size: 0.9rem;\r\n}\r\n\r\n.sq-forgot-link {\r\n    text-align: center;\r\n    margin-top: 1rem;\r\n}\r\n\r\n.sq-field-hint {\r\n    font-size: 0.8rem;\r\n    color: #64748b;\r\n    margin: 0.25rem 0 0;\r\n}\r\n<\/style>\r\n\r\n<script>\r\njQuery(document).ready(function($) {\r\n    var nonce = 'c837b1672d';\r\n    \r\n    \/\/ Tab switching\r\n    $('.sq-tab-btn').on('click', function() {\r\n        var tab = $(this).data('tab');\r\n        $('.sq-tab-btn').removeClass('active');\r\n        $(this).addClass('active');\r\n        $('.sq-tab-content').removeClass('active');\r\n        $('[data-tab=\"' + tab + '\"]').addClass('active');\r\n    });\r\n    \r\n    \/\/ Login\r\n    $('#sq-login-form').on('submit', function(e) {\r\n        e.preventDefault();\r\n        var $form = $(this);\r\n        var $error = $form.find('.sq-form-error');\r\n        var $btn = $form.find('button[type=\"submit\"]');\r\n        \r\n        $btn.prop('disabled', true).text('Logging in...');\r\n        $error.hide();\r\n        \r\n        $.ajax({\r\n            url: 'https:\/\/myinspector.com.au\/wp-admin\/admin-ajax.php',\r\n            type: 'POST',\r\n            data: {\r\n                action: 'sq_client_login',\r\n                nonce: nonce,\r\n                email: $form.find('[name=\"email\"]').val(),\r\n                password: $form.find('[name=\"password\"]').val(),\r\n                remember: $form.find('[name=\"remember\"]').is(':checked') ? 'true' : 'false'\r\n            },\r\n            success: function(response) {\r\n                if (response.success) {\r\n                    window.location.href = response.data.redirect;\r\n                } else {\r\n                    $error.text(response.data.message).show();\r\n                    $btn.prop('disabled', false).text('Log In');\r\n                }\r\n            },\r\n            error: function() {\r\n                $error.text('An error occurred. Please try again.').show();\r\n                $btn.prop('disabled', false).text('Log In');\r\n            }\r\n        });\r\n    });\r\n    \r\n    \/\/ Register\r\n    $('#sq-register-form').on('submit', function(e) {\r\n        e.preventDefault();\r\n        var $form = $(this);\r\n        var $error = $form.find('.sq-form-error');\r\n        var $btn = $form.find('button[type=\"submit\"]');\r\n        \r\n        $btn.prop('disabled', true).text('Creating account...');\r\n        $error.hide();\r\n        \r\n        $.ajax({\r\n            url: 'https:\/\/myinspector.com.au\/wp-admin\/admin-ajax.php',\r\n            type: 'POST',\r\n            data: {\r\n                action: 'sq_client_register',\r\n                nonce: nonce,\r\n                name: $form.find('[name=\"name\"]').val(),\r\n                email: $form.find('[name=\"email\"]').val(),\r\n                phone: $form.find('[name=\"phone\"]').val(),\r\n                password: $form.find('[name=\"password\"]').val()\r\n            },\r\n            success: function(response) {\r\n                if (response.success) {\r\n                    window.location.href = response.data.redirect;\r\n                } else {\r\n                    $error.text(response.data.message).show();\r\n                    $btn.prop('disabled', false).text('Create Account');\r\n                    \r\n                    \/\/ If existing user, switch to login tab\r\n                    if (response.data.existing_user) {\r\n                        $('.sq-tab-btn[data-tab=\"login\"]').click();\r\n                    }\r\n                }\r\n            },\r\n            error: function() {\r\n                $error.text('An error occurred. Please try again.').show();\r\n                $btn.prop('disabled', false).text('Create Account');\r\n            }\r\n        });\r\n    });\r\n});\r\n<\/script>\r\n\n","protected":false},"excerpt":{"rendered":"<p>Secure client login for Home Inspections Australia quote customers to access saved quotes and project information.<\/p>\n","protected":false},"author":1,"featured_media":137572,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-137555","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/myinspector.com.au\/index.php\/wp-json\/wp\/v2\/pages\/137555","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myinspector.com.au\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/myinspector.com.au\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/myinspector.com.au\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/myinspector.com.au\/index.php\/wp-json\/wp\/v2\/comments?post=137555"}],"version-history":[{"count":1,"href":"https:\/\/myinspector.com.au\/index.php\/wp-json\/wp\/v2\/pages\/137555\/revisions"}],"predecessor-version":[{"id":137570,"href":"https:\/\/myinspector.com.au\/index.php\/wp-json\/wp\/v2\/pages\/137555\/revisions\/137570"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/myinspector.com.au\/index.php\/wp-json\/wp\/v2\/media\/137572"}],"wp:attachment":[{"href":"https:\/\/myinspector.com.au\/index.php\/wp-json\/wp\/v2\/media?parent=137555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}