Je l’ai fait, mais cette méthode ne suspend pas l’utilisateur dans Discourse, ce qui signifie qu’il continuera à recevoir des messages par e-mail et pourra interagir avec le forum de cette manière.
Ah, je vois. Je ne vois pas que le plugin dispose d’une fonction pour suspendre l’utilisateur (mais je ne sais peut-être pas où chercher). Le mieux que vous puissiez faire est d’ajouter un appel API au hook qui est déclenché lorsque l’abonnement échoue et de suspendre l’utilisateur à ce moment-là. Vous pouvez le trouver en utilisant Reverse engineer the Discourse API
Suspendre et réactiver des utilisateurs sera la partie facile. L’astuce consiste à déterminer sur quelles actions de WooCommerce s’accrocher.
Il semble que l’action woocommerce_subscription_status_updated devrait fonctionner. Ce hook passe trois paramètres : $subscription, $new_status, $old_status. Les paramètres de statut sont des chaînes de caractères, leur valeur devrait donc être assez explicite. Le paramètre $subscription est un objet WC_Subscription. Je suppose qu’il contient des détails permettant de trouver l’ID de l’utilisateur associé à l’abonnement. Je devrais cependant y jeter un coup d’œil pour confirmer.
Paramètres :$subscription Un objet WC_Subscription représentant l’abonnement dont le statut vient d’être modifié.
Description : Cette action est déclenchée après que le statut de l’abonnement spécifié par $subscription a été changé en « actif ». Le statut de l’abonnement peut être passé de « en attente » à « actif », de « en pause » à « actif », ou d’un autre statut personnalisé à « actif ».
Paramètres :$subscription Un objet WC_Subscription représentant l’abonnement dont le statut vient d’être modifié.
Description : Cette action est déclenchée après que le statut de l’abonnement spécifié par $subscription a été changé.
Le statut de l’abonnement peut être passé de « en attente » à « annulé », de « en pause » à « annulé », de « en attente d’annulation » à « annulé », ou d’un autre statut personnalisé à « annulé ».
Action :'woocommerce_subscription_status_expired'
Paramètres :$subscription Un objet WC_Subscription représentant l’abonnement dont le statut vient d’être modifié.
Description : Déclenchée lorsqu’un abonnement atteint la fin de sa durée, si une durée a été définie sur le produit d’abonnement au moment de l’achat ou si une date de fin a été définie autrement sur l’abonnement.