Dieses Plugin ermöglicht die Synchronisierung von WooCommerce-Mitgliedschaften mit Discourse-Gruppen.
Voraussetzungen
Damit dies funktioniert, muss DiscourseConnect aktiviert sein, wobei entweder Wordpress oder Discourse als DiscourseConnect-Anbieter fungiert.
Schritte
-
Installieren Sie dieses Wordpress-Plugin: GitHub - paviliondev/discourse-woocommerce · GitHub.
-
Verwenden Sie den Wordpress-Theme-Editor, um diese Werte an die gewünschte WooCommerce
plan_idsowie die Discoursegroup_idundgroup_nameanzupassen, die Sie synchronisieren möchten:$member_group_map[] = (object) array('plan_id' => 51, 'group_id' => 43, 'group_name' => 'group1'); $member_group_map[] = (object) array('plan_id' => 62, 'group_id' => 44, 'group_name' => 'group2');Sie können so viele Einträge hinzufügen, wie Sie möchten (oder vorhandene entfernen).
-
WooCommerce-Mitgliedschafts-Plan-IDs finden Sie in der URL, während Sie den Plan in Wordpress bearbeiten: https://site/wp-admin/post.php?post=441&action=edit
-
Die Discourse-Gruppen-ID finden Sie hier: Login | HSTS Redirection Community
-
Optionaler Schritt
- Installieren Sie WP Crontrol – WordPress plugin | WordPress.org und planen Sie
run_full_wc_membership_syncso ein, dass es alle 24 Stunden ausgeführt wird. Dies führt eine vollständige Synchronisierung durch, um die Konsistenz sicherzustellen.
Technische Hinweise
Der einzige zuverlässige Weg, sowohl die Erstellung als auch die Statusänderung einer Mitgliedschaft in WooCommerce zu erfassen, ist die Verwendung des Admin-Hooks wc_memberships_user_membership_saved. Sie können dies in Kombination mit dem Hook wc_memberships_user_membership_status_changed verwenden, dies sollte jedoch nicht notwendig sein.
Dieser Code verwendet das WooCommerce-Logger-System, um Informationen in /wp-content/uploads/wc-logs/{log_file} zu protokollieren. Falls es nicht funktioniert, überprüfen Sie die Ausgabe dort. Sie werden Logs sehen, die wie folgt aussehen und Ihnen die Phasen der Logik aufzeigen:
2019-05-23T07:01:57+00:00 INFO Running handle_wc_membership_saved 1, 92, 1
2019-05-23T07:01:57+00:00 INFO angus@email.com membership of VIP Membership changed to wcm-active
2019-05-23T07:01:57+00:00 INFO Sending PUT request to http://localhost:3000/groups/41/members with angus@email.com
2019-05-23T07:01:57+00:00 INFO Response from Discourse: 200 OK
Verwendungshinweise
Die Synchronisierung funktioniert nicht, wenn Sie im Wordpress-Adminbereich auf „Benutzer-Mitgliedschaft löschen“ klicken. Es gibt keinen Hook in WooCommerce, der beim Klicken darauf ausgelöst wird. Ändern Sie stattdessen den Status der Mitgliedschaft.
