DiscourseConnect et fuseau horaire / localisation de l'utilisateur

Salut @troygrady, désolé pour la réponse lente (je réponds aux questions sur le plugin WP Discourse). J’aborderai les paramètres de fuseau horaire et de localisation séparément (ils sont sans rapport).

Fuseau horaire

Pourriez-vous simplement clarifier si vous souhaitez que l’activité des utilisateurs s’affiche pour eux dans leur heure locale ? Si c’est le cas, contrairement à Wordpress, c’est actuellement le comportement par défaut dans Discourse (sans aucune utilisation de DiscourseConnect), et cela se mettra automatiquement à jour si l’utilisateur ne le définit pas. Par exemple, je suis récemment passé du fuseau horaire Australia/Perth à Europe/Oslo. Je n’ai pas touché au paramètre de fuseau horaire dans mon profil ici sur meta, et il indique maintenant

Voulez-vous un comportement différent de celui-ci ?

Localisation

Vous pouvez synchroniser une localisation définie dans un profil utilisateur Wordpress avec le champ de localisation dans le profil utilisateur sur Discourse. Cela ne se synchronise pas par défaut car il n’y a pas de champ standard dans Wordpress qui soit équivalent au champ de localisation dans Discourse. Vous devez ajouter du code ici. Dans le fichier functions.php de votre thème ou à un autre endroit où vous pouvez ajouter du code, vous devez ajouter quelque chose comme suit, la partie clé utilisant le filtre wpdc_sso_params.

function sync_discourse_location( $params, $user ) {
    $location = get_user_meta( $user->ID, 'user_location_meta', true );
    if ( $location  ) {
        $params['location'] = $location;
    }
    return $params;
}
add_filter( 'wpdc_sso_params', 'sync_discourse_location', 10, 2 );

Notez que vous devrez remplacer ‘user_location_meta’ par le champ meta utilisateur qui est utilisé pour stocker la localisation de l’utilisateur sur votre instance Wordpress (c’est-à-dire le champ utilisé par le plugin que vous utilisez pour ajouter des localisations utilisateur à Wordpress).

Notez également que le champ de localisation de Discourse est juste un champ de type “chaîne de caractères”, ce qui signifie qu’il affichera littéralement tout ce qui y est mis. Il n’a aucun effet sur le fuseau horaire de l’utilisateur et n’est pas une géolocalisation (c’est-à-dire connecté à la cartographie d’une quelconque manière).

1 « J'aime »