Je suis en train d'écrire un plugin qui a des codes courts frontaux qui affichent les informations/données d'un utilisateur. Si l'utilisateur n'est pas connecté, je dois rediriger vers une page/un formulaire de connexion front-end. Quelle serait la meilleure pratique ici? Mon plugin crée les pages que j'utilise et ajoute les codes courts à ces pages. Donc, s’il existe un moyen de "protéger" ces pages, j'aimerais bien les connaître.
Je ne suis pas sûr des meilleures pratiques, mais j'ai quelques pages personnalisées sensibles à la connexion qui affichent simplement un message si l'utilisateur n'est pas connecté et tente d'afficher directement la page:
$logged_in = is_user_logged_in();
if($logged_in) {
?>
<article id="post">
<?php the_content(); ?>
</article>
<?php
} else {
_e('You are not logged in. Please ', 'abc');
echo '<a href="' . site_url( 'login' ) . '">'. __('log in','abc') .'</a> ' . __('or','abc') . ' ';
echo '<a href="' . site_url( 'register' ) . '">'. __('register','abc') .'</a>.';
}
Remarque: les pages login
et register
sont également des pages personnalisées.
Vous ne pouvez pas rediriger les utilisateurs à partir d'un shortcode . Les codes courts s'exécutent trop tard - bien après l'envoi du contenu. Mais étant donné que votre plugin crée les pages , vous devriez pouvoir le faire:
function protect_plugin_page_wpse_101230() {
if(is_page('page-slug') && !is_user_logged_in()) {
wp_safe_redirect('your-login-page-url');
}
}
add_action('template_redirect','protect_plugin_page_wpse_101230');