Este Plugin permite sincronizar as WooCommerce Memberships com os Grupos do Discourse.
Pré-requisitos
Para que isso funcione, você precisa ter o DiscourseConnect ativado, com o WordPress ou o Discourse como provedor do DiscourseConnect.
Passos
-
Instale este plugin do WordPress: GitHub - paviliondev/discourse-woocommerce · GitHub.
-
Use o editor de temas do WordPress para atualizar esses números com o
plan_idda WooCommerce e ogroup_idegroup_namedo Discourse que deseja sincronizar:$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');Você pode adicionar tantas entradas quanto desejar (ou remover as existentes).
-
Os IDs dos planos de associação da WooCommerce podem ser encontrados na URL ao editar o plano no WordPress: https://site/wp-admin/post.php?post=441&action=edit
-
O ID do grupo do Discourse pode ser encontrado aqui: Login | HSTS Redirection Community
-
Passo Opcional
- Instale o WP Crontrol – Plugin do WordPress | WordPress.org e agende
run_full_wc_membership_syncpara executar a cada 24 horas. Isso realizará uma sincronização completa para garantir a consistência.
Notas Técnicas
A única maneira confiável de capturar tanto a criação da associação quanto a mudança de status na WooCommerce é usando o hook de administrador wc_memberships_user_membership_saved. Você pode usá-lo em combinação com o hook wc_memberships_user_membership_status_changed, mas isso não deve ser necessário.
Este código usa o logger da WooCommerce para registrar informações em /wp-content/uploads/wc-logs/{log_file}. Se não estiver funcionando, verifique a saída lá. Você verá logs assim, mostrando as etapas da lógica:
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
Notas de Uso
A sincronização não funcionará se você clicar em “Delete User Membership” (Excluir Associação do Usuário) no painel administrativo do WordPress. Não há nenhum hook na WooCommerce que seja acionado ao clicar nisso. Altere o status da associação em vez disso.


