{"id":999011,"date":"2026-02-19T17:08:32","date_gmt":"2026-02-19T17:08:32","guid":{"rendered":"https:\/\/linkvista.me\/?page_id=999011"},"modified":"2026-02-19T17:15:28","modified_gmt":"2026-02-19T17:15:28","slug":"inscription","status":"publish","type":"page","link":"https:\/\/linkvista.me\/fr\/inscription\/","title":{"rendered":"Inscription"},"content":{"rendered":"<div class=\"et_d4_element et_pb_section et_pb_section_0  et_pb_css_mix_blend_mode et_section_regular et_block_section\" >\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_d4_element et_pb_row et_pb_row_0  et_pb_css_mix_blend_mode et_block_row\">\n\t\t\t\t<div class=\"et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_0  et_pb_css_mix_blend_mode et-last-child et_block_column\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_0  et_pb_text_align_left et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\">        <div id=\"lv-auth-wrap\">\n            <style>\n                #lv-auth-wrap {\n                    max-width: 460px;\n                    margin: 40px auto;\n                    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n                }\n                #lv-auth-wrap .lv-auth-box {\n                    background: #ffffff;\n                    border: 1px solid #e2e8f0;\n                    border-radius: 20px;\n                    padding: 40px;\n                    box-shadow: 0 4px 32px rgba(0,0,0,0.07);\n                }\n                #lv-auth-wrap .lv-auth-logo {\n                    text-align: center;\n                    font-size: 24px;\n                    font-weight: 800;\n                    color: #0f172a;\n                    margin-bottom: 6px;\n                    letter-spacing: -0.5px;\n                }\n                #lv-auth-wrap .lv-auth-logo span {\n                    background: linear-gradient(135deg, #7c3aed, #6366f1);\n                    -webkit-background-clip: text;\n                    -webkit-text-fill-color: transparent;\n                    background-clip: text;\n                }\n                #lv-auth-wrap .lv-auth-subtitle {\n                    text-align: center;\n                    color: #64748b;\n                    font-size: 14px;\n                    margin-bottom: 32px;\n                }\n                #lv-auth-wrap .lv-tab-nav {\n                    display: flex;\n                    background: #f1f5f9;\n                    border-radius: 10px;\n                    padding: 4px;\n                    margin-bottom: 28px;\n                    gap: 4px;\n                }\n                #lv-auth-wrap .lv-tab-btn {\n                    flex: 1;\n                    padding: 9px;\n                    border: none;\n                    background: transparent;\n                    border-radius: 8px;\n                    font-size: 14px;\n                    font-weight: 600;\n                    color: #64748b;\n                    cursor: pointer;\n                    transition: all 0.2s;\n                }\n                #lv-auth-wrap .lv-tab-btn.active {\n                    background: #ffffff;\n                    color: #0f172a;\n                    box-shadow: 0 1px 6px rgba(0,0,0,0.1);\n                }\n                #lv-auth-wrap .lv-auth-form { display: none; }\n                #lv-auth-wrap .lv-auth-form.active { display: block; }\n                #lv-auth-wrap .lv-field {\n                    margin-bottom: 18px;\n                }\n                #lv-auth-wrap .lv-field label {\n                    display: block;\n                    font-size: 13px;\n                    font-weight: 600;\n                    color: #374151;\n                    margin-bottom: 6px;\n                }\n                #lv-auth-wrap .lv-field input {\n                    width: 100%;\n                    padding: 12px 14px;\n                    border: 1px solid #e2e8f0;\n                    border-radius: 10px;\n                    font-size: 15px;\n                    color: #0f172a;\n                    background: #f8fafc;\n                    transition: border 0.2s, box-shadow 0.2s;\n                    box-sizing: border-box;\n                    outline: none;\n                }\n                #lv-auth-wrap .lv-field input:focus {\n                    border-color: #7c3aed;\n                    box-shadow: 0 0 0 3px rgba(124,58,237,0.12);\n                    background: #fff;\n                }\n                #lv-auth-wrap .lv-auth-submit {\n                    width: 100%;\n                    padding: 14px;\n                    background: linear-gradient(135deg, #7c3aed, #6366f1);\n                    color: #fff;\n                    border: none;\n                    border-radius: 10px;\n                    font-size: 16px;\n                    font-weight: 700;\n                    cursor: pointer;\n                    margin-top: 8px;\n                    transition: opacity 0.2s, transform 0.1s;\n                    letter-spacing: 0.01em;\n                }\n                #lv-auth-wrap .lv-auth-submit:hover { opacity: 0.9; }\n                #lv-auth-wrap .lv-auth-submit:active { transform: scale(0.99); }\n                #lv-auth-wrap .lv-auth-submit:disabled { opacity: 0.6; cursor: default; }\n                #lv-auth-wrap .lv-auth-msg {\n                    margin-top: 16px;\n                    padding: 12px 16px;\n                    border-radius: 10px;\n                    font-size: 14px;\n                    display: none;\n                    text-align: center;\n                }\n                #lv-auth-wrap .lv-auth-msg.success {\n                    background: #f0fdf4;\n                    color: #16a34a;\n                    border: 1px solid #bbf7d0;\n                }\n                #lv-auth-wrap .lv-auth-msg.error {\n                    background: #fef2f2;\n                    color: #dc2626;\n                    border: 1px solid #fecaca;\n                }\n                #lv-auth-wrap .lv-auth-footer {\n                    text-align: center;\n                    font-size: 13px;\n                    color: #94a3b8;\n                    margin-top: 20px;\n                }\n                #lv-auth-wrap .lv-auth-footer a {\n                    color: #7c3aed;\n                    text-decoration: none;\n                    font-weight: 600;\n                }\n            <\/style>\n\n            <div class=\"lv-auth-box\">\n                <div class=\"lv-auth-logo\">Link<span>Vista<\/span><\/div>\n                <p class=\"lv-auth-subtitle\">Votre page de liens personnalis\u00e9e<\/p>\n\n                <div class=\"lv-tab-nav\">\n                    <button class=\"lv-tab-btn active\" data-tab=\"register\">Cr\u00e9er un compte<\/button>\n                    <button class=\"lv-tab-btn\" data-tab=\"login\">Se connecter<\/button>\n                <\/div>\n\n                <!-- Formulaire inscription -->\n                <div class=\"lv-auth-form active\" id=\"lv-form-register\">\n                    <div class=\"lv-field\">\n                        <label for=\"lv-reg-username\">Nom d&#039;utilisateur <small style=\"color:#94a3b8;\">(appara\u00eet dans votre URL)<\/small><\/label>\n                        <input type=\"text\" id=\"lv-reg-username\" placeholder=\"ex : monprenom\" autocomplete=\"username\" \/>\n                    <\/div>\n                    <div class=\"lv-field\">\n                        <label for=\"lv-reg-email\">Adresse email<\/label>\n                        <input type=\"email\" id=\"lv-reg-email\" placeholder=\"you@example.com\" autocomplete=\"email\" \/>\n                    <\/div>\n                    <div class=\"lv-field\">\n                        <label for=\"lv-reg-password\">Mot de passe<\/label>\n                        <input type=\"password\" id=\"lv-reg-password\" placeholder=\"8 caract\u00e8res minimum\" autocomplete=\"new-password\" \/>\n                    <\/div>\n                    <button class=\"lv-auth-submit\" id=\"lv-reg-submit\">Cr\u00e9er mon compte gratuit<\/button>\n                    <div class=\"lv-auth-msg\" id=\"lv-reg-msg\"><\/div>\n                <\/div>\n\n                <!-- Formulaire connexion -->\n                <div class=\"lv-auth-form\" id=\"lv-form-login\">\n                    <div class=\"lv-field\">\n                        <label for=\"lv-log-username\">Nom d&#039;utilisateur ou email<\/label>\n                        <input type=\"text\" id=\"lv-log-username\" placeholder=\"inconu\" autocomplete=\"username\" \/>\n                    <\/div>\n                    <div class=\"lv-field\">\n                        <label for=\"lv-log-password\">Mot de passe<\/label>\n                        <input type=\"password\" id=\"lv-log-password\" placeholder=\"Votre mot de passe\" autocomplete=\"current-password\" \/>\n                    <\/div>\n                    <div style=\"text-align:right;margin-bottom:18px;\">\n                        <a href=\"https:\/\/linkvista.me\/fr\/wp-login.php?action=lostpassword\" style=\"font-size:13px;color:#7c3aed;text-decoration:none;\">Mot de passe oubli\u00e9 ?<\/a>\n                    <\/div>\n                    <button class=\"lv-auth-submit\" id=\"lv-log-submit\">Se connecter<\/button>\n                    <div class=\"lv-auth-msg\" id=\"lv-log-msg\"><\/div>\n                <\/div>\n            <\/div>\n\n            <p class=\"lv-auth-footer\">\n                En cr\u00e9ant un compte, vous acceptez nos <a href=\"#\">CGU<\/a> et notre <a href=\"#\">politique de confidentialit\u00e9<\/a>.            <\/p>\n        <\/div>\n\n        <script>\n        jQuery(function($) {\n            var ajax    = 'https:\/\/linkvista.me\/wp-admin\/admin-ajax.php';\n            var nonce   = 'c72f6afe5f';\n            var dashUrl = 'https:\/\/linkvista.me\/dashboard';\n\n            \/\/ Cha\u00eenes traduites pass\u00e9es depuis PHP vers JS\n            var i18n = {\n                fillFields:    'Veuillez remplir tous les champs.',\n                passMin:       'Le mot de passe doit contenir au moins 8 caract\u00e8res.',\n                registering:   'Inscription\u2026',\n                registered:    'Compte cr\u00e9\u00e9 ! Redirection\u2026',\n                btnCreate:     'Cr\u00e9er mon compte gratuit',\n                serverError:   'Erreur serveur.',\n                networkError:  'Erreur r\u00e9seau. V\u00e9rifiez votre connexion.',\n                unknownError:  'Erreur inconnue.',\n                connecting:    'Connexion\u2026',\n                connected:     'Connexion r\u00e9ussie ! Redirection\u2026',\n                btnLogin:      'Se connecter',\n                wrongCreds:    'Identifiants incorrects.',\n            };\n\n            \/\/ Tabs\n            $('.lv-tab-btn').on('click', function() {\n                $('.lv-tab-btn').removeClass('active');\n                $('.lv-auth-form').removeClass('active');\n                $(this).addClass('active');\n                $('#lv-form-' + $(this).data('tab')).addClass('active');\n            });\n\n            \/\/ Inscription\n            $('#lv-reg-submit').on('click', function() {\n                var $btn  = $(this);\n                var $msg  = $('#lv-reg-msg');\n                var user  = $('#lv-reg-username').val().trim();\n                var email = $('#lv-reg-email').val().trim();\n                var pass  = $('#lv-reg-password').val();\n\n                if (!user || !email || !pass) {\n                    $msg.text(i18n.fillFields).removeClass('success').addClass('error').show();\n                    return;\n                }\n                if (pass.length < 8) {\n                    $msg.text(i18n.passMin).removeClass('success').addClass('error').show();\n                    return;\n                }\n\n                $btn.prop('disabled', true).text(i18n.registering);\n                $.post(ajax, { action: 'lv_register_user', nonce: nonce, username: user, email: email, password: pass })\n                    .done(function(res) {\n                        if (typeof res === 'string') {\n                            try { res = JSON.parse(res); } catch(e) {\n                                $msg.text(i18n.serverError).removeClass('success').addClass('error').show();\n                                $btn.prop('disabled', false).text(i18n.btnCreate);\n                                return;\n                            }\n                        }\n                        if (res.success) {\n                            $msg.text(i18n.registered).removeClass('error').addClass('success').show();\n                            setTimeout(function() { window.location.href = dashUrl; }, 1200);\n                        } else {\n                            $msg.text(res.data || i18n.unknownError).removeClass('success').addClass('error').show();\n                            $btn.prop('disabled', false).text(i18n.btnCreate);\n                        }\n                    })\n                    .fail(function() {\n                        $msg.text(i18n.networkError).removeClass('success').addClass('error').show();\n                        $btn.prop('disabled', false).text(i18n.btnCreate);\n                    });\n            });\n\n            \/\/ Connexion\n            $('#lv-log-submit').on('click', function() {\n                var $btn  = $(this);\n                var $msg  = $('#lv-log-msg');\n                var user  = $('#lv-log-username').val().trim();\n                var pass  = $('#lv-log-password').val();\n\n                if (!user || !pass) {\n                    $msg.text(i18n.fillFields).removeClass('success').addClass('error').show();\n                    return;\n                }\n\n                $btn.prop('disabled', true).text(i18n.connecting);\n                $.post(ajax, { action: 'lv_login_user', nonce: nonce, username: user, password: pass })\n                    .done(function(res) {\n                        if (typeof res === 'string') {\n                            try { res = JSON.parse(res); } catch(e) {\n                                $msg.text(i18n.serverError).removeClass('success').addClass('error').show();\n                                $btn.prop('disabled', false).text(i18n.btnLogin);\n                                return;\n                            }\n                        }\n                        if (res.success) {\n                            $msg.text(i18n.connected).removeClass('error').addClass('success').show();\n                            setTimeout(function() { window.location.href = dashUrl; }, 1000);\n                        } else {\n                            $msg.text(res.data || i18n.wrongCreds).removeClass('success').addClass('error').show();\n                            $btn.prop('disabled', false).text(i18n.btnLogin);\n                        }\n                    })\n                    .fail(function() {\n                        $msg.text(i18n.networkError).removeClass('success').addClass('error').show();\n                        $btn.prop('disabled', false).text(i18n.btnLogin);\n                    });\n            });\n\n            \/\/ Enter sur les champs\n            $('#lv-reg-password').on('keydown', function(e) { if(e.key==='Enter') $('#lv-reg-submit').click(); });\n            $('#lv-log-password').on('keydown', function(e) { if(e.key==='Enter') $('#lv-log-submit').click(); });\n        });\n        <\/script>\n<\/div>\n\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>&#91;lv_register]<\/code><\/pre>\n<!-- \/wp:code -->","_et_gb_content_width":"","footnotes":""},"class_list":["post-999011","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/linkvista.me\/fr\/wp-json\/wp\/v2\/pages\/999011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linkvista.me\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/linkvista.me\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/linkvista.me\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linkvista.me\/fr\/wp-json\/wp\/v2\/comments?post=999011"}],"version-history":[{"count":5,"href":"https:\/\/linkvista.me\/fr\/wp-json\/wp\/v2\/pages\/999011\/revisions"}],"predecessor-version":[{"id":999017,"href":"https:\/\/linkvista.me\/fr\/wp-json\/wp\/v2\/pages\/999011\/revisions\/999017"}],"wp:attachment":[{"href":"https:\/\/linkvista.me\/fr\/wp-json\/wp\/v2\/media?parent=999011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}