Ejecutamos una membresía a través de nuestro sistema Wordpress/Woocommerce. Hemos estado usando Discourse en un subdominio con el SSO durante un par de años y ha estado funcionando muy bien. Tengo código en mi archivo de funciones que agrega/elimina el acceso al Grupo cuando la persona se une/cancela respectivamente.
Hemos agregado una función en nuestra membresía donde las personas pueden unirse a un pequeño grupo de 6-8 personas para llamadas semanales de Zoom.
Para administrar esto, hemos creado un Tipo de Publicación de Wordpress llamado “Cohortes” que contiene la información de la llamada semanal y luego hemos asignado esas Cohortes a un Usuario utilizando campos de usuario personalizados.
Esto es lo que me gustaría hacer:
Crear un Grupo para cada una de las Cohortes.
Crear una Subcategoría para cada una de las Cohortes a la que solo el Grupo del punto #1 tenga acceso.
Poner a cada uno de los Miembros en su Grupo respectivo, lo que les dará acceso a su subcategoría para su Co horte.
Sé cómo hacer el punto #3, pero ¿hay alguna forma de agregar programáticamente Grupos y Subcategorías (con la configuración de seguridad)?
No puedo encontrar esta funcionalidad en las utilidades de WP-Discourse. Además, al observar la API, puedo ver dónde agregar categorías, pero no las funciones de seguridad.
Sí, es posible. Puedes hacer cualquier solicitud de API a Discourse desde WordPress usando el método de utilidad discourse_request, es decir:
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$args = array(
"body" => "",
"type" => "post"
);
$response = DiscourseUtilities::discourse_request( $path, $args );
Esto formateará la solicitud correctamente y utilizará la clave API y el usuario que has proporcionado en la configuración de WP Discourse. Necesitarás una clave global para las acciones a las que te refieres (si también estás usando la misma clave para la funcionalidad normal de WP Discourse).
Ten en cuenta que la “configuración de seguridad” se maneja a través del parámetro permissions. Solo necesitas darle un objeto con los nombres de los grupos como claves y enteros de nivel de permiso como valores, por ejemplo:
Lo siento Tim, he estado ausente los últimos días. Parece que el método discourse_request necesita ser ajustado para soportar esto. Haré un PR para eso la próxima semana y probablemente tardará otra semana en fusionarse.
Si lo quieres antes, puedes usar los métodos WP subyacentes de esta manera:
Hola @timgrahl, ¿podrías compartir una función que funcione para WordPress con WooCommerce para agregar/eliminar usuarios a grupos?
Estoy usando WooCommerce con membresías y tratando de hacer que esto funcione… si el usuario de WordPress tiene una membresía activa de WooCommerce, entonces el usuario se agregará al grupo X… cuando la membresía se cancele o expire, el usuario se eliminará del grupo X.