1

我正在使用重力形式在 WordPress 上开发招聘系统。我们想要提供的一件事是轻松填写和提交标准的人力资源文书工作(W4、I9 等)。

其中一些表格具有在其他文档上重复的字段,并且在多个表格中,这可能成为填写信息的非常乏味的过程。社会安全号码就是一个简单的例子,但还有很多其他的,比如婚姻状况、姓名和地址。

我想让系统上的用户填写 I9 表格,然后当他们转到另一个表格(例如 W4、直接存款、一般信息表格等)时,他们输入的数据以前是预先填写在文件中的,他们只需要填写空白。

我已经在其他几个系统(例如 ExactHire 和 Formatta)上看到了此功能,但我似乎找不到有关如何重新创建该功能的信息。任何指导将不胜感激,因为我知道这是一个可以帮助很多表单用户的功能。先感谢您。

4

1 回答 1

0

有几种方法可以以重力形式预先填充字段。问题可能是数据来自哪里。如果他们已登录 - 这会容易得多。如果他们没有登录,您将不得不将信息存储在客户端的某个地方——比如在 cookie 中——但这可能不是最佳解决方案。

如果他们已登录,您可以查询由该用户 ID 填写的其他表单并以这种方式获取信息。或者,当他们第一次填写其中一个表单时,您可以更新他们用户的用户元数据,以提供存储此默认信息的位置。然后只需获取并使用 Gravity Forms 挂钩进行预填充。

如果他们没有登录,您可以将数据存储在 cookie 或本地存储中 - 尽管可能存在隐私问题。如果他们没有实际登录,则保留此信息要困难得多。

请参阅下面的链接,了解如何使用钩子预填充重力形式。

https://docs.gravityforms.com/gform_field_value_parameter_name/

如果有帮助,我可以举一个简短的例子。


编辑 1:要求提供一个示例。

我将首先确定跨表单重复的数据类型。听起来你已经很清楚了。

然后,弄清楚你想如何存储这些数据。通过 user_meta 添加其他字段可能最有意义,因为这些人将是用户。也许用户有一个个人资料页面,他们可以预先填写这些基本信息作为设置过程,然后使用它?也许一旦他们填写了他们的第一个表格,您就会收集当时的数据并将其保存在他们的用户身上。也许两者兼而有之!或者,您不能将信息存储在用户身上,而只是查询该用户填写的其他重力表格并以这种方式获取它,但这似乎可能效率低下,而且由于数据未按逻辑存储而变得混乱。

要将表单数据保存到用户元,您可以从下面的函数开始。请注意,这是非常基本的,应该改进(验证、如果值存在的条件逻辑等)。

注意:钩子“gform_after_submission”将针对所有表单。您可以通过在末尾添加表单 ID 来指定此目标的表单 ID。ID 为 3 的表单示例为:'gform_after_submission_3'

add_action( 'gform_after_submission', 'input_fields', 10, 2 );
function input_fields( $entry, $form ) {
    //this assumes 1 is the numerical ID of the gravity forms field.
    $marital_status = $entry[1];
    update_user_meta( get_current_user_id(), 'marital_status', $marital_status );
    // others here
}

要获取数据并自动填写表格,您必须拥有一些类似于下面的功能。

注意:您需要编辑重力表单,编辑字段,然后在“高级”下选择“允许动态填充字段” - 并为其命名。该名称在下面用作过滤器名称的后缀。例如:gform_field_value_NAME_YOU_GAVE_IT。下面我使用“marital_status”作为我的字段名称。

add_filter( 'gform_field_value_marital_status', 'populate_marital_status' );
function populate_marital_status( $value ) {
   $maritalStatus = get_user_meta( wp_get_current_user()->ID, 'marital_status', true );
   return $maritalStatus;
}
于 2018-07-27T17:19:13.290 回答