此插件允许您将 WooCommerce 会员资格与 Discourse 群组同步。
先决条件
要使其正常工作,您必须启用 DiscourseConnect,并将 WordPress 或 Discourse 设置为 DiscourseConnect 提供商。
步骤
-
安装此 WordPress 插件:https://github.com/paviliondev/discourse-woocommerce。
-
使用 WordPress 主题编辑器更新以下数字,将其更改为您想要同步的 WooCommerce plan_id、Discourse group_id 和 group_name:
$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');您可以添加任意数量的条目(或移除现有条目)。
-
WooCommerce 会员计划 ID 可在 WordPress 中编辑计划时的 URL 中找到:https://site/wp-admin/post.php?post=441&action=edit
-
Discourse 群组 ID 可在以下位置找到:Login | HSTS Redirection Community
-
可选步骤
- 安装 WP Crontrol – WordPress 插件 | WordPress.org 并安排
run_full_wc_membership_sync每 24 小时运行一次。这将执行完整同步以确保一致性。
技术说明
捕获 WooCommerce 中会员资格创建和状态变更的唯一可靠方法是使用 wc_memberships_user_membership_saved 管理钩子。您可以将其与 wc_memberships_user_membership_status_changed 钩子结合使用,但通常没有必要。
此代码使用 WooCommerce 日志记录器将信息记录到 /wp-content/uploads/wc-logs/{log_file}。如果无法正常工作,请检查该位置的输出。您将看到如下所示的日志,展示逻辑的各个阶段:
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
使用说明
如果您在 WordPress 管理面板中点击“删除用户会员资格”,同步将不会生效。WooCommerce 中没有在此操作被点击时触发的钩子。请改为更改会员资格的状态。


