MemberPress Entwickler-Tools Add-on erweitert MemberPress um eine vollständige REST-API und vollständige Webhook-Ereignisfähigkeit.
Wenn die Dokumentation auf dieser Seite für Entwickler-Tools etwas dürftig erscheint, liegt das daran, dass die gesamte Dokumentation für die Webhook-Ereignisse und REST-API-URLs in der Schnittstelle des Plugins zu finden ist. Über die Schnittstelle erhalten Sie dynamische Ergebnisse, mit denen Sie arbeiten können, und haben die Möglichkeit, Webhooks direkt von Ihrer Website aus zu testen. Weitere Informationen finden Sie auch in den folgenden zusätzlichen Dokumentationen:
- Entwickler-Tools-Aktionen
- Entwicklertools Ereignisauslöser
- Hinzufügen von Usermeta über REST API (Entwickler-Tools)
Der Einstieg könnte nicht einfacher sein... so geht's
- Stellen Sie sicher, dass Ihr MemberPress-Aktivierungsschlüssel für die MemberPress Plus oder MemberPress Pro Ausgabe.
- Um das MemberPress Developer Tools Add-on zu installieren, gehen Sie auf die Seite MemberPress > Add-ons, und klicken Sie auf die Schaltfläche "Add-on installieren".
- Um die MemberPress REST API nutzen zu können, müssen Sie WordPress 4.7+ verwenden.
- Sobald das Add-on Developer Tools installiert und aktiviert ist, sollten Sie einen neuen Eintrag in Ihrem MemberPress-Menü sehen:
- Über das Entwickler-Menü können Sie nun Webhooks einrichten, dynamische Dokumentation zu Webhook-Ereignissen anzeigen und testen sowie dynamische Dokumentation zu allen MemberPress REST API URLs anzeigen:
Beispiel PHP cURL Code
Dieses Beispiel fügt ein Mitglied hinzu, ordnet es einer Mitgliedschaft zu (über eine Transaktion) und löst dabei eine Willkommens-E-Mail aus:
'testingboy897@test.com', 'username' => 'testingboy897@test.com', 'vorname' => 'test', 'nachname' => 'test_nachname', 'send_welcome_email' => true, // Auslösen einer Willkommens-E-Mail - dies funktioniert nur, wenn eine Transaktion hinzugefügt wird (siehe unten) 'Transaktion' => [ 'membership' => 376, // ID der Mitgliedschaft 'Betrag' => '0.00', 'gesamt' => '0.00', 'tax_amount' => '0.00', 'steuer_satz' => '0.000', 'trans_num' => 'mp-txn-' . uniqid(), 'status' => 'complete', 'gateway' => 'frei', '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'; // Ihr API-KEY von MemberPress Developer Tools hier $header[] = 'Inhalt-Typ: application/json'; $header[] = 'Inhalts-Länge: ' . strlen($data_string); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $response = curl_exec($ch); if(curl_errno($ch)){ throw new Exception(curl_error($ch)); } echo $response; curl_close($ch);
Webhook-Schlüssel
Seit MemberPress Developer Tools Add-on 1.2.5 haben wir eine Webhook-Schlüssel-Einstellung eingeführt, die Sie im MemberPress-Menü > Entwickler > Registerkarte Webhook finden.
Sie können den Schlüssel verwenden, um Webhook-POST-Anfragen zu authentifizieren. Er wird automatisch vom MemberPress-Add-on generiert, aber wenn Sie glauben, dass Ihr Schlüssel kompromittiert wurde, können Sie jederzeit einen neuen Webhook-Schlüssel generieren.
Um die Webhook-Anfrage zu validieren, holen Sie die HTTP-Header ab und suchen Sie nach memberpress-webhook-key. Hier ist ein Beispiel für einen HTTP-Header mit memberpress-webhook-key, der nach dem Erstellen einer neuen Webhook-URL im MemberPress-Menü > Entwickler > Registerkarte "Webhook" und dem Abhören von Anmeldeereignissen empfangen wurde:
Fehlerbehebung bei der Basisauthentifizierung
Die bevorzugte Methode zur Authentifizierung ist der API-Schlüssel, der von MemberPress Developer Tools bereitgestellt wird. Wir wissen jedoch, dass viele von Ihnen auch die weniger sichere Methode der Basis-Authentifizierung verwenden, um sich mit der WP-API zu verbinden. Dies kann jedoch ein paar Herausforderungen mit sich bringen, bei denen Ihnen die folgenden Informationen helfen können.
Wenn Sie Probleme haben, die Basisauthentifizierung zum Laufen zu bringen, stellen Sie sicher, dass Sie die
das Plugin für Anwendungskennwörter installiert und befolgte dessen Anweisungen.
Eine typische Basic Auth-Anfrage sieht wie folgt aus:
Name der Überschrift:
Autorisierung
Kopfzeile Wert:
Basic base64_encode( wp_admin_user_login_here:application_passwords_password_here )
Ihr Benutzer sollte die
remove_users Fähigkeit, oder MemberPress Developer Tools gibt eine 401-Antwort zurück.
Wenn Sie sich immer noch nicht authentifizieren können, liegt möglicherweise ein Konfigurationsproblem auf Ihrem Hosting-Server vor.
Lesen Sie hier mehr über die häufigste Ursache. Für das Application Passwords Plugin müssen die Variablen PHP_AUTH_USER und PHP_AUTH_PW gesetzt sein. Wenn sie nicht gesetzt sind, kann Application Passwords den Benutzer nicht authentifizieren, und Sie müssen mit Ihrem Webhost zusammenarbeiten, um dies zu korrigieren. Normalerweise müssen Sie etwas wie das Folgende in die .htaccess-Datei einfügen:
SetEnvIf Autorisierung "(.*)" HTTP_AUTHORIZATION=$1
Wenn alles andere fehlschlägt, ist es am besten, einfach den API-Schlüssel in der
MEMBERPRESS-API-KEY HTTP-Anfrage-Header zu verwenden. Nachstehend finden Sie einen Beispielcode mit dem API-Schlüssel und 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;
Fehlerbehebung bei Webhooks
Wenn Ihre Test-Webhooks funktionieren, aber Ihre Live-Tests nicht ausgelöst werden, dann ist WP Cron höchstwahrscheinlich deaktiviert oder funktioniert nicht so, wie es sollte. Die MemberPress-Entwickler-Tools verlassen sich auf WP Cron, um die Webhooks zu senden.
In diesem Fall ist es am einfachsten, die Tabelle wp_mepr_jobs in Ihrer Datenbank zu überprüfen, um zu sehen, ob die Webhook-Aufträge dort mit dem Status "pending" hängen bleiben.
Wenn möglich, empfehlen wir, WP Cron für das Laden von Seiten zu deaktivieren und stattdessen einen serverseitigen Cron auszulösen, der jede Minute läuft. SiteGround hat einen großartigen Artikel über
dies hier zu tun. Und WordPress.org hat einige zusätzliche Informationen hier. Leider können wir Ihnen dabei nicht helfen, und Ihr Webhost muss Ihnen bei der Einrichtung helfen.
Wenn Sie nicht in der Lage sind, WP Cron korrekt zu starten, selbst nachdem Sie einen serverseitigen Cron aktiviert haben, dann müssen Sie (als letzten Ausweg) die folgende Abfrage stellen:
UPDATE wp_options SET option_value = '' WHERE option_name = 'cron';