Notre MemberPress Developer Tools Add-on (module d'extension des outils de développement) étend MemberPress pour inclure un API REST complète et capacité d'événements Webhook complète.
Si la documentation sur cette page semble légère pour des outils de développement, c'est parce que toute la documentation pour les événements webhook et les URL de l'API REST se trouve dans l'interface du plugin. L'interface vous donnera des résultats dynamiques à partir desquels vous pourrez travailler et la possibilité de tester les webhooks directement depuis votre site. Vous pouvez également vous référer aux documents supplémentaires suivants pour plus d'informations :
- Outils du développeur Actions
- Outils du développeur Déclencheurs d'événements
- Comment ajouter des Usermeta via l'API REST (Outils pour développeurs)
Il n'y a rien de plus facile que de commencer... voici comment faire
- Assurez-vous que votre clé d'activation MemberPress correspond à l'application MemberPress Plus ou MemberPress Pro edition.
- Pour installer le module complémentaire MemberPress Developer Tools, rendez-vous sur la page MemberPress > Modules complémentaires et cliquez sur le bouton "Installer le module complémentaire".
- Pour utiliser l'API REST de MemberPress, vous devez utiliser WordPress 4.7+.
- Une fois le module complémentaire Developer Tools installé et activé, vous devriez voir apparaître un nouvel élément dans votre menu MemberPress :
- À partir du menu Développeur, vous pourrez désormais configurer des webhooks, consulter la documentation dynamique sur les événements webhooks et les tester, et consulter la documentation dynamique sur toutes les URL de l'API REST de MemberPress :
Exemple de code cURL en PHP
Cet exemple ajoute un membre, l'affecte à une adhésion (par le biais d'une transaction) et déclenche un courrier électronique de bienvenue :
'testingboy897@test.com', 'username' => 'testingboy897@test.com', 'first_name' => 'test', 'last_name' => 'test_last_name', 'send_welcome_email' => true, // Déclenche un email de bienvenue - ceci ne fonctionne que si l'on ajoute une transaction (ci-dessous) 'transaction' => [ 'membership' => 376, // ID de l'adhésion 'amount' => '0.00', 'total' => '0.00', 'tax_amount' => '0.00', 'tax_rate' => '0.000', 'trans_num' => 'mp-txn-' . uniqid(), 'status' => 'complete', 'gateway' => 'free', 'created_at' => gmdate( 'c' ), 'expires_at' => '0000-00-00 00:00:00' ] ] ) ; curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ) ; curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "POST" ) ; curl_setopt( $ch, CURLOPT_POSTFIELDS, $data_string ) ; $header = array() ; $header[] = 'MEMBERPRESS-API-KEY : MgCUGSO5Qg' ; // Votre clé API des outils de développement MemberPress ici $header[] = 'Content-Type : application/json' ; $header[] = 'Content-Length : ' . strlen($data_string) ; curl_setopt($ch, CURLOPT_HTTPHEADER, $header) ; $response = curl_exec($ch) ; if(curl_errno($ch)){ lance une nouvelle Exception(curl_error($ch)) ; } echo $response ; curl_close($ch) ;
Clé Webhook
Depuis la version MemberPress Developer Tools Add-on 1.2.5, nous avons introduit un paramètre de clé Webhook qui peut être trouvé dans le menu MemberPress > Développeurs > onglet Webhook.
Vous pouvez utiliser la clé pour authentifier les demandes POST du webhook. Elle est générée automatiquement par le module complémentaire MemberPress, mais si vous pensez que votre clé a été compromise, vous pouvez régénérer une nouvelle clé webhook à tout moment.
Pour valider la demande de webhook, récupérez les en-têtes HTTP et recherchez memberpress-webhook-key. Voici un exemple d'en-tête HTTP avec memberpress-webhook-key reçu après avoir créé une nouvelle URL Webhook dans le menu MemberPress > Développeurs > onglet Webhook et écouté les événements d'inscription :
Dépannage de l'authentification de base
La méthode d'authentification préférée est la clé API fournie par MemberPress Developer Tools. Cependant, nous savons que beaucoup d'entre vous utilisent également la méthode d'authentification de base, moins sûre, pour se connecter à l'API WP. Cependant, cette méthode peut présenter quelques difficultés, que les informations ci-dessous peuvent vous aider à résoudre.
Si vous avez du mal à faire fonctionner l'authentification de base, assurez-vous d'avoir a installé le plugin Application Passwords et a suivi ses instructions.
Une demande d'authentification de base typique se présente comme suit :
Nom de l'en-tête :
Autorisation
Valeur de l'en-tête :
Basic base64_encode( wp_admin_user_login_here:application_passwords_password_here )
Votre utilisateur doit avoir le remove_users ou MemberPress Developer Tools renverra une réponse 401.
Si vous ne parvenez toujours pas à vous authentifier, il se peut que votre serveur d'hébergement ait des problèmes de configuration. Pour en savoir plus sur la cause la plus fréquente, cliquez ici. Les variables PHP_AUTH_USER et PHP_AUTH_PW doivent être définies pour le plugin Application Passwords. Si elles ne sont pas définies, Application Passwords ne parviendra pas à authentifier l'utilisateur, et vous devrez travailler avec votre hébergeur pour le corriger. En général, il faut ajouter quelque chose comme ce qui suit au fichier .htaccess :
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
En cas d'échec, il est préférable d'utiliser la clé de l'API dans le fichier MEMBERPRESS-API-KEY à la place de l'en-tête de requête HTTP. Vous trouverez ci-dessous un exemple de code avec la clé API et PHP cURL :
<?php $url = 'http://testsite.com/wp-json/mp/v1/me' ; $ch = curl_init( $url ) ; curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ) ; $headers = [ 'MEMBERPRESS-API-KEY : MdCUPSO5Qr', 'Content-Type : application/json' ] ; curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ) ; $response = curl_exec( $ch ) ; if( curl_errno( $ch ) ) { throw new Exception( curl_error( $ch ) ) ; } curl_close($ch) ; echo $response ;
Dépannage des webhooks
Si vos webhooks de test fonctionnent, mais que vos tests live ne se déclenchent pas, alors WP Cron est probablement désactivé ou ne fonctionne pas comme il le devrait. Les outils de développement MemberPress s'appuient sur WP Cron pour envoyer les webhooks.
Dans ce cas, le moyen le plus simple de vérifier est de consulter la table wp_mepr_jobs dans votre base de données pour voir si les tâches du webhook y sont bloquées avec un statut "en attente".
Dans la mesure du possible, nous recommandons de désactiver le chargement de page basé sur WP Cron et de le déclencher à la place à partir d'un cron côté serveur qui s'exécute toutes les minutes. SiteGround a un excellent article sur faire cela ici. Et WordPress.org a quelques des informations complémentaires ici. Malheureusement, nous ne pouvons pas vous aider à le faire, et votre hébergeur devra vous aider à le mettre en place.
Si vous n'arrivez pas à faire fonctionner WP Cron correctement, même après avoir activé un cron côté serveur, vous pouvez (en dernier recours) lancer la requête suivante :
UPDATE wp_options SET option_value = '' WHERE option_name = 'cron' ;