Este Plugin te permite sincronizar WooCommerce Memberships con Discourse Groups.
Prerrequisitos
Para que esto funcione, debes tener DiscourseConnect habilitado, con WordPress o Discourse como proveedor de DiscourseConnect.
Pasos
-
Instala este plugin de WordPress GitHub - paviliondev/discourse-woocommerce · GitHub.
-
Usa el editor de temas de WordPress para actualizar estos números con el plan_id de WooCommerce y el group_id y group_name de Discourse que deseas 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');Puedes agregar tantas entradas como desees (o eliminar las existentes).
-
Los IDs de los planes de membresía de WooCommerce se pueden encontrar en la URL mientras editas el plan en WordPress: https://site/wp-admin/post.php?post=441&action=edit
-
El ID del grupo de Discourse se puede encontrar aquí: Login | HSTS Redirection Community
-
Paso Opcional
- Instala WP Crontrol – Plugin de WordPress | WordPress.org y programa
run_full_wc_membership_syncpara que se ejecute cada 24 horas. Esto realizará una sincronización completa para garantizar la consistencia.
Notas Técnicas
La única forma confiable de capturar tanto la creación de la membresía como el cambio de estado en WooCommerce es utilizando el hook de administrador wc_memberships_user_membership_saved. Puedes usarlo en combinación con el hook wc_memberships_user_membership_status_changed, pero no debería ser necesario.
Este código utiliza el registrador de WooCommerce para registrar información en /wp-content/uploads/wc-logs/{log_file}. Si no funciona, verifica la salida allí. Verás registros que se ven así, mostrando las etapas de la lógica:
2019-05-23T07:01:57+00:00 INFO Ejecutando handle_wc_membership_saved 1, 92, 1
2019-05-23T07:01:57+00:00 INFO La membresía de angus@email.com de VIP Membership cambió a wcm-active
2019-05-23T07:01:57+00:00 INFO Enviando solicitud PUT a http://localhost:3000/groups/41/members con angus@email.com
2019-05-23T07:01:57+00:00 INFO Respuesta de Discourse: 200 OK
Notas de Uso
La sincronización no funcionará si haces clic en “Eliminar membresía de usuario” en el panel de administración de WordPress. No hay un hook en WooCommerce que se active al hacer clic en eso. Cambia el estado de la membresía en su lugar.


