Mi sitio utiliza DiscourseConnect Provider, por lo que WordPress gestiona los inicios de sesión en Discourse.
Cuando un usuario se registra en WordPress, me gustaría que se creara inmediatamente un usuario de Discourse para él y se le enviara el correo electrónico de activación de Discourse. Pero eso no parece suceder.
He marcado la opción “Sincronizar datos de usuario” en la configuración de WordPress.
Parece que la descripción dice que creará un usuario de Discourse cuando inicien sesión en WordPress. Pero no veo que eso suceda. El usuario de Discourse no se crea hasta que visitan el sitio de Discourse.
¿Mi integración no está funcionando correctamente? ¿O estoy malinterpretando esta descripción?
Ahora entiendo. Está creando un nuevo usuario de Discourse cuando “inician sesión” en Wordpress. No está creando un nuevo usuario cuando se “registran” en Wordpress. Nuestros usuarios pueden registrarse y, al registrarse, se consideran inmediatamente conectados. Así que en ese punto han iniciado sesión pero no tienen un usuario de Discourse.
Si cierran sesión en WP y vuelven a iniciar sesión en WP, se crea un usuario de Discourse. Lo acabo de verificar.
No requerimos que los correos electrónicos sean verificados en Wordpress porque es un sitio WooCommerce y los registra automáticamente si realizan una compra sin haber iniciado sesión. La primera vez que visitan Discourse después de haber sido registrados, reciben el correo electrónico de verificación de dirección de Discourse.
Los usuarios problemáticos son aquellos que:\n\n* Se registran en WP pero no cierran sesión y vuelven a iniciar sesión\n* Nunca visitan Discourse (que es nuestro sitio de soporte para el sitio de comercio electrónico)\n\nWordpress/WooCommerce trata el autorregistro como un inicio de sesión: se consideran conectados inmediatamente después de registrarse. ¿Hay alguna manera de hacer que se cree un usuario de Discourse cuando se autorregistran y no solo cuando cierran sesión y vuelven a iniciar sesión?
Hola Ryan, tienes razón en que el plugin crea un usuario después del inicio de sesión. Específicamente, el plugin utiliza el hook wp_login. También existe un hook user_register en WordPress, sin embargo, la razón por la que el plugin no lo utiliza es porque este se activa inmediatamente después de que se inserta un registro en la base de datos de WordPress, independientemente de si sus detalles (en particular su correo electrónico) están verificados.
Para ser un poco descarado, creo que la pregunta aquí podría ser por qué WooCommerce no activa el hook wp_login si ese es el caso Pero, de manera más útil, es probable que haya algún otro hook o filtro que WooCommerce active inmediatamente después del registro y el inicio de sesión, si es que eso es lo que está haciendo.
La razón por la que no hemos incorporado esto en el plugin (hasta ahora) es porque, como puedes ver en tu caso, hay muchas maneras diferentes en que los usuarios pueden ser creados/registrados/iniciados sesión en WordPress.
Pero veamos si podemos hacer que tu caso específico funcione. Primero, necesitamos encontrar un hook que se active inmediatamente después de que ocurra tu registro/inicio de sesión automático. ¿Puedes confirmar exactamente cómo tienes configurado eso? Es decir, exactamente qué flujo estás utilizando. Cuanto más específico, mejor, por ejemplo, cualquier documentación que hayas utilizado.
Sospecho que WooCommerce es lo que está causando la confusión. Parece que iniciar sesión automáticamente después del registro es una característica de WooCommerce, no de WordPress. Y a propósito no activan las acciones de inicio de sesión.
Puedo buscar un hook de WooCommerce apropiado para usar en esto. ¿Hay alguna función de WP Discourse que pueda llamar o un hook que pueda activar para crear el usuario de Discourse si encuentro el hook correcto de WooCommerce?