重力形式-用其他形式的数据填充字段

时间:2018-07-27 07:55:58

标签: wordpress gravity-forms-plugin gravityforms

我正在使用重力形式在WordPress上开发招聘系统。我们要提供的一件事就是轻松填写并提交标准的HR文书(W4,I9等)。

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

我想让系统上的用户填写I9表格,然后在他们转到其他表格(例如W4,直接存款,一般信息表格等)时填写。 ),那么他们先前输入的数据将被预先填充到文档中,而他们只需要填写空白即可。

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

1 个答案:

答案 0 :(得分: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。在下面,我使用“婚姻状况”作为字段名称。

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;
}