Hallo @troygrady, Entschuldigung für die langsame Antwort (ich beantworte Fragen zum WP Discourse-Plugin). Ich werde die Zeitzonen- und Standort-Einstellungen separat behandeln (sie sind nicht miteinander verbunden).
Zeitzone
Könnten Sie bitte klarstellen, ob Sie meinen, dass die Aktivitäten der Benutzer ihnen in ihrer lokalen Zeit angezeigt werden sollen? Wenn ja, ist dies im Gegensatz zu Wordpress derzeit standardmäßig in Discourse (ohne die Verwendung von DiscourseConnect) und wird automatisch aktualisiert, wenn es nicht vom Benutzer festgelegt wurde. Ich bin zum Beispiel kürzlich von der Zeitzone Australia/Perth zu Europe/Oslo gewechselt. Ich habe die Zeitzoneneinstellung in meinem Profil hier auf Meta nicht geändert, und sie lautet jetzt
Wünschen Sie ein anderes Verhalten als dieses?
Standort
Sie können einen in einem Wordpress-Benutzerprofil festgelegten Standort mit dem Standortfeld im Profil des Benutzers in Discourse synchronisieren. Es wird nicht standardmäßig synchronisiert, da es kein Standardfeld in Wordpress gibt, das dem Standortfeld in Discourse entspricht. Sie müssen hier etwas Code hinzufügen. In der Datei functions.php Ihres Themes oder an einer anderen Stelle, an der Sie Code hinzufügen können, müssen Sie etwas wie das Folgende hinzufügen, wobei der entscheidende Teil die Verwendung des wpdc_sso_params-Filters ist.
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 );
Beachten Sie, dass Sie ‘user_location_meta’ durch das Benutzer-Meta-Feld ersetzen müssen, das verwendet wird, um den Standort des Benutzers in Ihrer Wordpress-Instanz zu speichern (d. h. welches Feld auch immer von dem Plugin verwendet wird, das Sie verwenden, um Benutzerstandorte zu Wordpress hinzuzufügen).
Beachten Sie auch, dass das Discourse-Standortfeld nur ein “String”-Feld ist, was bedeutet, dass es einfach alles anzeigt, was buchstäblich hineingeschrieben wird. Es hat keinen Einfluss auf die Zeitzone des Benutzers und ist keine Geolokalisierung (d. h. in keiner Weise mit Kartierung verbunden).