À mesure que le plugin Discourse Subscriptions mûrit, je souhaite commencer à planifier le transfert de mes adhésions existantes de WooCommerce Subscriptions vers Discourse Subscriptions. La procédure ci-dessous devrait s’appliquer à d’autres plugins de gestion d’adhésions/abonnements WordPress, pas uniquement à WooCommerce.
Cette transition comporte trois éléments à traiter :
Créer des abonnements dans Stripe
Lier l’abonnement Stripe à l’utilisateur dans Discourse
Inverser le SSO afin que Discourse devienne le fournisseur d’identité et WordPress le client
(1) Création des abonnements dans Stripe
Il semble que la création des abonnements dans Stripe pour les utilisateurs existants soit actuellement un processus manuel. Mes membres sont déjà dans Stripe, donc le flux de travail ressemblerait à ceci :
Exporter tous les abonnés et les données depuis WooCommerce Subscriptions
Créer un abonnement dans Stripe pour un utilisateur depuis le tableau de bord client de Stripe et programmer le premier paiement pour qu’il corresponde à la date d’expiration de l’abonnement WooCommerce existant.
Annuler l’abonnement de l’utilisateur dans WooCommerce.
Désactiver WooCommerce Subscriptions une fois tous les utilisateurs traités.
(2) Liaison de l’abonnement Stripe à l’utilisateur dans Discourse
Une fois l’utilisateur configuré avec un abonnement dans Stripe, comment pouvons-nous ajouter cet utilisateur existant à un plan d’abonnement dans Discourse ? Cela est nécessaire pour permettre à l’utilisateur d’annuler l’abonnement et de le retirer du groupe si le paiement Stripe échoue.
(3) Inversion du SSO pour utiliser Discourse comme fournisseur et WP comme client
Je suis bloqué sur la question de savoir si le point n°2 est réalisable et j’aimerais savoir si quelqu’un a déjà effectué ce changement.
La tâche rake rake subscriptions:import peut-elle être étendue ou une autre tâche ajoutée pour importer et lier également les abonnements des utilisateurs ?
Oui, ce n’est pas quelque chose que le plugin pourra prendre en charge. Cependant, vous pourriez être en mesure d’utiliser l’API Stripe pour automatiser une partie de cela si vous avez des compétences en programmation. Sinon, la méthode manuelle pourrait être la seule option.
Juste pour être sûr de bien comprendre votre problème : vous avez créé les abonnements dans Stripe et vous souhaitez rétroactiver l’accès dans Discourse ? Est-ce exact ?
Je pense qu’il devrait y avoir un moyen de le faire via la tâche rake, mais ce n’est malheureusement pas quelque chose que je pourrai aborder prochainement. Cela serait cependant pr-welcome Vous devrez créer un enregistrement DiscourseSubscriptions::Customer avec toutes les informations appropriées, puis ajouter l’utilisateur au groupe.
Vous pourriez même l’exécuter manuellement depuis la console :
Oui. Cela se produira une fois les étapes de (1) terminées, lorsque le client dans Stripe se verra attribuer un nouvel abonnement.
Le client existe déjà dans Stripe (dans mon cas), car WooCommerce Subscriptions crée un client dans Stripe lors de l’achat d’un abonnement, de sorte que les données pertinentes sont déjà présentes — y compris les informations de la carte de crédit.
Serait-il possible d’alimenter ce processus avec un fichier CSV plutôt que de le faire un par un ?
Je pense que cela constituera un obstacle majeur pour toute communauté déjà établie basée sur des abonnements ; par conséquent, nous verrons probablement seulement les nouvelles communautés l’adopter.
Parfait — merci Justin. Je comprends et j’attends avec impatience les développements à venir. Je prévois cela comme un projet d’hiver car cela nécessiterait de toute façon de nombreuses étapes manuelles.
Félicitations, Justin ! C’est une réalisation majeure ! J’ai commencé à jouer avec hier et j’ai hâte de commencer à l’utiliser. Je vais également commencer à examiner les moyens d’aider les équipes de migration à migrer depuis des solutions comme WooCommerce. Il n’est pas encore clair à ce stade s’il s’agira d’une tâche rake « simple » (haha !) ou si cela ressemblera davantage à une migration de forum où chaque tâche est unique (je m’attends à ce que ce soit le cas).
Le défi consistera à récupérer les informations clients depuis Stripe et à les intégrer dans la table Customer du plugin, puis à les faire correspondre correctement. À partir de là, il s’agira surtout d’ajouter des adhésions à des groupes. Mais vous avez probablement raison : chaque cas sera unique.
À première vue, cela ressemble à une adresse e-mail de Stripe, donc l’astuce consistera à ce qu’ils aient une adresse e-mail différente dans Discourse…
En plus de l’adresse e-mail, Stripe et WooCommerce Subscriptions partagent également l’ID client : cus_ABCdefxyz, l’ID de carte : src_1234ABxyzasdf et l’ID de transaction : ch_0123ABCDefgh.
À ma connaissance, PMPro fait de même.
À mon avis, la meilleure approche consiste à exporter un tableau depuis les deux applications, à vérifier qu’ils correspondent dans un tableur, puis à utiliser ce fichier CSV comme source.
Je suis curieux de savoir si cela a fonctionné. Je cherche à aider un client à migrer depuis MemberPress et il semble que je devrai faire quelque chose de similaire. J’aimerais apprendre de quiconque a essayé quelque chose de similaire.