web-dev-qa-db-fra.com

Rendre les pages WooCommerce accessibles uniquement aux utilisateurs connectés

J'ai un site Web utilisant WordPress et un site de commerce électronique utilisant WooCommerce. Je souhaite que ma boutique (et toutes ses pages) ne soit vue que par les utilisateurs connectés.

Via le plug-in User Access Manager , j'ai refusé l'accès à la page de la boutique, mais avec un lien direct vers un produit, etc., on peut néanmoins accéder à cette page particulière, même si l'utilisateur n'est pas connecté.

Comment rediriger les utilisateurs qui ne sont pas connectés vers une autre page s'ils tentent d'accéder à une page WooCommerce?

11
Alessandro

Mettez ceci dans votre fichier functions.php:

function wpse_131562_redirect() {
    if (
        ! is_user_logged_in()
        && (is_woocommerce() || is_cart() || is_checkout())
    ) {
        // feel free to customize the following line to suit your needs
        wp_redirect(home_url());
        exit;
    }
}
add_action('template_redirect', 'wpse_131562_redirect');

Qu'est ce que ça fait?
Nous vérifions si un utilisateur non connecté veut voir une page WooCommerce et le redirigeons vers notre page d'accueil.

23
tfrommen

Je viens de changer la redirection en

wp_redirect( site_url('my-account/') )

de sorte que les utilisateurs sont redirigés sur la page "Mon compte" s'ils ne sont pas connectés ou enregistrés.

7
Pierre