web-dev-qa-db-fra.com

Champ de nom d'utilisateur pré-rempli

J'ai une demande étrange, mais j'espère que c'est faisable. Je souhaite pouvoir avoir plusieurs logos, pour mes clients, sur mon site. En fonction du logo sur lequel ils cliquent, il se dirige vers la page de connexion avec le nom d'utilisateur déjà saisi. Ainsi, s'ils cliquent sur le logo "Bob's Grill", ils se dirigent vers la page de connexion avec le nom d'utilisateur "Bob's Grill" déjà entré.

Y a-t-il un moyen de faire ça? Merci!

3
Tyler Johnson

Il y a moyen de tromper WP en pré-renseignant le champ du nom d'utilisateur, mais je suis à peu près sûr que cela impliquerait d'utiliser POST et de le faire croire qu'il y avait des erreurs dans une soumission précédente. .

Mon conseil serait d'utiliser simplement Javascript (ou jQuery, comme je l'ai fait ci-dessous). Il est encore "hacky", mais au moins, le travail est fait avec très peu de frais généraux et il est extrêmement facile à utiliser. Il ajoute un petit script qui vérifie le paramètre d'URL prérempli et déclenche l'auto-complétion s'il trouve quelque chose.

// Add jQuery if prepopulate GET is found
add_action('login_head', 'prepopulate_username_js');
function prepopulate_username_js() {
    if(isset($_GET['prepopulate'])) :
    ?>
    <script type="text/javascript">
        jQuery(function($){
            $('#user_login').val('<?php echo($_GET['prepopulate']); ?>');
        });
    </script>
    <?php
        endif;
}

Ensuite, lors de la création des liens sur les logos, utilisez simplement quelque chose dans les modèles de votre thème pour déclencher le script ci-dessus:

<a href="<?php echo(add_query_arg(array('prepopulate' => 'bob'), wp_login_url())); ?>">This will link to a prepopulated login form!</a> // change 'bob' for whatever is relevant
2
Tomas Buteler