不确定调用这种重构的方式,或者是否有名称。但是我希望看到如何使用这段代码并将其重新格式化为“动态”?
例如,我们有一个网站,托管8-10个属性,每个属性都有联系表格。我讨厌为每个属性创建16条新行,如果添加更多行,文件将不断变大。
add_filter( 'gform_after_submission_x', 'set_post_content', 10, 3 ); //x to be replaced with form ID
function set_post_content( $entry, $form ) {
$post_url = 'https://abc.infusionsoft.com/app/form/process/xyz'; //xyz is unique to the form created in infusionsoft
$fields = array(
'inf_field_FirstName'=> rgar( $entry, 'a' ),//a can vary depending on the field ID for firstname
'inf_field_LastName'=> rgar( $entry, 'b' ),//b can vary depending on the field ID for lastname
'inf_field_Email'=> rgar( $entry, 'c' ),//c can vary depending on the field ID for email
'inf_form_xid' => 'xyz',//matches the unique ID in the $post_url string
'infusionsoft_version' => '1.70.0.77019',
'inf_form_name' => 'Web Form submitted'
);
GFCommon::log_debug( 'gform_confirmation: body => ' . print_r( $fields, true ) );
$request = new WP_Http();
$response = $request->post( $post_url, array( 'body' => $fields ) );
GFCommon::log_debug( 'gform_confirmation: response => ' . print_r( $response, true ) );
}
我希望我的评论有意义。本质上,变量仅出于示例目的:x,xyz,a,b和c必须是动态的,以便在提交表单时可以填写此变量,以便可以将数据发送到Infusionsoft。
答案 0 :(得分:0)
如果您的财产表格具有类似“ [[Property name]财产联系表格””的命名约定,则可以使用钩子 gform_after_submission 进行创建,以处理所提交的任何表格。然后,您可以进行快速检查以确保其是属性联系表单之一,然后使用单个功能处理每个表单。
如果每个表单都有唯一的发布网址,则可以将 xyz 变量添加到重力表单本身的隐藏字段中,然后将其附加到函数中的字符串变量中
add_action( 'gform_after_submission', 'set_post_content', 10, 2 );
function set_post_content( $entry, $form ) {
//logic to check that its a form for one of the properties
if(strpos($form['title'], 'property contact form(or whatever the naming
convention is') == false){
return false;
}
$post_url = 'https://abc.infusionsoft.com/app/form/process/' . rgar( $entry, 'xyz' ) ;
//the rest of the logic for the form
}