Algunas preguntas y algunas notas
Sin embargo, serán los mismos en los nuevos registros, ya que estás utilizando DiscourseConnect. Supongo que estás de acuerdo con eso, y solo te preocupa la sincronización en sí (es decir, después de la creación de la cuenta).
¿Cómo imaginas el caso en que un usuario crea una cuenta de Wordpress y aún no ha iniciado sesión en Discourse? No existirá ninguna cuenta de Discourse. En ese caso, el campo Nombre de usuario de Discourse no sería editable.
Tenga en cuenta que la webhook “Actualizar datos de usuario” (ver “Webhooks” en la configuración de WP Discourse) actualizará el Nombre de usuario de Discourse en Wordpress cuando se cambie en Discourse. Esa es una parte de la sincronización bidireccional que estás imaginando.
Entonces, específicamente, lo que buscas es que el plugin WP Discourse actualice el nombre de usuario del usuario en Discourse cuando cambie, ¿verdad?
Ahora, ese campo es utilizado por diferentes personas para diferentes propósitos. Algunas personas quieren poder editar ese campo sin actualizar el nombre de usuario del usuario de Discourse asociado con la cuenta que usan con DiscourseConnect.
Sin embargo, hay una solución relativamente sencilla. Podríamos simplemente agregar una acción en algún lugar alrededor de aquí para que puedas usar una solicitud PUT a Discourse para actualizar el nombre de usuario en Discourse, es decir, como lo estás haciendo ahora. Simplemente agregaría que la forma fácil de hacerlo es usar el método abstraído discourse_request en las Utilidades del Plugin de WP, es decir,
use WPDiscourse\\Utilities\\Utilities as DiscourseUtilities;
$path = ''
$args = array(
);
$response = DiscourseUtilities::discourse_request( $path, $args );
Usando tanto la webhook como la devolución de llamada de acción, tendrías una sincronización bidireccional de la manera que estás imaginando, asumiendo que has tenido en cuenta las dos preguntas que planteé anteriormente.
Estaré encantado de revisar y fusionar una PR con una acción adicional en esa línea.