嘿 @troygrady,抱歉回复缓慢(我负责处理 WP Discourse 插件上的问题)。我将分别处理时区和位置设置(它们是无关的)。
时区
您能否澄清一下,您的意思是希望用户的活动以_他们_的本地时间显示吗?如果是这样,与 Wordpress 不同,这在 Discourse 中是默认的(无需使用 DiscourseConnect),并且即使用户未设置也会自动更新。例如,我最近从“Australia/Perth”时区切换到了“Europe/Oslo”。我没有更改此处的个人资料中的时区设置,它现在显示为
您想要与此不同的行为吗?
位置
您可以将 Wordpress 用户个人资料中的位置设置与 Discourse 中用户个人资料的位置字段同步。它默认不同步,因为 Wordpress 中没有与 Discourse 中的位置字段等效的标准字段。您需要在此处添加一些代码。在您的主题的 functions.php 文件或其他可以添加代码的位置,您需要添加类似以下内容,关键部分是使用 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 );
请注意,您需要将 ‘user_location_meta’ 替换为您 Wordpress 实例中用于存储用户位置的用户元字段(即您正在使用的插件用于将用户位置添加到 Wordpress 的任何字段)。
另请注意,Discourse 位置字段只是一个“字符串”字段,这意味着它将仅显示输入其中的任何内容。它不会影响用户的时区,也不是地理位置(即与地图以任何方式关联)。
