Vérifier si l’utilisateur dispose d’un abonnement actif pour WooCommerce Subscriptions

Mis à jour le :

Si vous conjuguez la puissance de WooCommerce avec l’extension WooCommerce Subscriptions vous serez en mesure de vendre des abonnements à vos membres.

C’est le système que nous avons mis en place sur le site de la communauté WPFR pour les adhésions. Un besoin courant consiste à vérifier qu’un utilisateur dispose d’un abonnement actif afin de lui donner l’accès à des informations privées.

Pour s’assurer que l’utilisateur connecté sur votre site dispose d’un abonnement en règle, vous devez utiliser la condition suivante dans votre code :

<?php if (wcs_user_has_subscription('', 10, 'active')) : // Replace 10 by WooCommerce Subscription Product ID ?>
<?php _e('Hello World', 'textdomain'); ?>
<?php else : ?>
<p><?php _e('Sorry you have to be an active subscriber to get access.', 'textdomain'); ?></p>
<?php endif; ?>

Dans l’exemple ci-dessous, nous affichons le texte Hello World si l’utilisateur connecté dispose d’un abonnement actif. Si tel n’est pas le cas alors nous l’informons qu’il ne dispose pas des autorisations nécessaires.

Pour appliquer cette technique sur votre projet, remplacez l’identifiant produit par le vôtre – 10 dans cet exemple. Il peut être obtenu facilement en survolant le produit dans la section WooCommerce de votre administration WordPress.

Le code présenté ici reste très basique afin de comprendre le fonctionnement de la condition. Libre à vous de combiner ce dernier avec d’autres fonctions PHP de WordPress.

WooCommerce Subscriptions fait parti de ma liste d’extensions favorites pour WooCommerce, et vous ?

Avatar de Aurélien Denis

Protégez votre site WordPress

Vos données sont précieuses,
ne prenez pas le risque de tout perdre.
Confiez-moi votre maintenance !

Ces articles devraient t’intéresser…

11 réponses
  1. Avatar de Eric
    Eric

    Bonjour,
    je vais très prochainement ouvrir mon e-commerce. Je travaille actuellement sur le site et j’ai quelques interrogations:
    Je souhaite proposer une formule d’abonnement (non obligatoire)
    Du coup, si le client souscrit à l’abonnement annuel, il aura des réductions sur chaque produit. Celui qui ne souscrira pas paiera donc le produit au prix réel. Est-il simple de faire cette manipulation en installant le plug-in woocommerce subscriptions?
    Je souhaite que le client puisse voir les deux tarifs proposés et ainsi visualiser l’économie realisée sur chaque produit puis sur son bon de commande global. Je ne trouve pas de tuto (ou peut-être ai-je mal cherché)

    J’espère que mon message est suffisamment clair, car peut-être doit -on utiliser des mots plus ‘techniques’ mais ceux_là ne me viennent pas spontanément

    Merci à celui ou celle qui pourra me répondre.
    J’espère aussi que j’ai posté au bon endroit

    Eric

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Je vous conseille de combiner WooCommerce Subscriptions avec une extension de tarification de prix dynamique comme Dynamic Pricing (ou équivalente) pour faire cela.

      1. Avatar de Eric
        Eric

        Ok Aurélien, auriez-vous un lien à me proposer pour rajouter cette extension? ce ne sera pas trop compliqué à gérer? existe t-il des tuto? Merci en tout cas pour votre réponse

        1. Avatar de Aurélien Denis
          Aurélien Denis

          Pas de tutoriel en stock ici, le lien vers l’extension à laquelle je pense : https://woocommerce.com/products/dynamic-pricing/

  2. Avatar de picpool
    picpool

    Je ne sais pas trop…En fait j’ai finalement utilisé ce code qui fonctionne bien :
    https://clicknathan.com/web-design/conditional-statement-woocommerce-subscriptions/
    merci

  3. Avatar de picpool
    picpool

    Bonjour

    J’utilise ce code dans mon sidebar.php mais il ne fonctionne que sur la homepage c ‘est bizarre non ?
    merci

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Tout dépend où la sidebar est appelée.

  4. Avatar de Raphael
    Raphael

    Un article qui tombe a point nommé, pile au moment ou je travail sur cette problématique ????
    Dis moi Aurélien, je cherche à faire un site de new uniquement sur abonnement.
    – Un visiteur lambda ne verra que les titres et un résumé.
    – Les abonnés pourront quand à eux lire l’intégralité des articles et accéder à d’autres contenus.
    Crois tu que WooCommerce Subscriptions puisse gérer des roles ?

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Pour répondre à ton besoin, tu devrais coupler WooCommerce Subscriptions pour la gestion des abonnements à WooCommerce Memberships pour la restriction d’accès aux contenus. 😉

      1. Avatar de Raphael
        Raphael

        Ah en effet, ça semble une bonne idée ! Merci bcp ????
        Et sais tu si il y a des possibilités d’offrir une version d’essai d’un mois (par ex) puis d’envoyer automatiquement un email pour encourager a prendre un abonnement ?
        J’ai vu ce plugin https://automatewoo.com qu’en penses tu ?

        1. Avatar de Aurélien Denis
          Aurélien Denis

          Oui c’est possible ! Je connais pas l’extension mentionnée par contre.