是否可以在使用重力表单创建用户时设置新用户的站点时区?

时间:2013-12-21 作者:Denis Lam

比如说,我有一个运行Buddypress的多站点网络,并用GF用户注册插件安装了Gravity表单。在新用户/站点注册期间,是否有任何方法可以让用户通过从重力表单下拉菜单中选择他们想要的时区来设置他们的时区?

基本上,我不希望用户必须登录到WP,然后转到常规设置来更改时区。是否有任何方法可以在不必编辑任何核心WP代码的情况下实现这一点?

1 个回复
SO网友:Mark Kaplun

引用自How to get WordPress Time Zone setting? 您可以设置选项\'gmt_offset\' 与UTC有适当的偏移。

您应该添加选项,以便仅在站点创建表单中对其进行控制。如果您将它也放在注册到现有站点(如主站点)的用户上,用户将能够在创建时更改设置,这应该只有管理员才能做到。

如果您的表单调用wpmu_new_blog() 您可以根据表单中提供的数据在博客创建时设置该选项。

function wpse_127265_timezone( $blog_id )
{
    switch_to_blog( $blog_id );
    update_option(\'gmt_offset\',$_POST[\'gmt_offset\']);
    restore_current_blog();
}

add_action( \'wpmu_new_blog\', \'wpse_127265_timezone\' );
如果该数据是注册表的一部分(意味着该网站是在用户激活后创建的),那么事情会变得更加复杂,您需要将数据存储在其他地方,直到激活完成。

结束

相关推荐

WordPress MultiSite可以使用了吗?

我计划为不同类型的社区创建一个网站。例如,不同类型的开发人员。PHPJavaAndroidTC每种类型都有不同的注册和配置文件字段。现在我的困惑是,要么我应该创建多站点网络,每个站点将包含不同的开发人员,要么只有一个站点可以明智地完成这项工作?我需要做的一些事情是允许用户随时开始使用其他网站,例如,如果x用户注册了Java,现在他想注册PHP,他应该能够在不再次注册的情况下放置他的内容,并且用户id也应该是相同的,所以每当我通过用户id获取内容时,它都会给我来自同一用户的不同网站的所有数据。另一个问题是,