重力表单:用户创建的字段不发布数据

时间:2012-04-14 14:48:59

标签: php wordpress-plugin wordpress

我在Wordpress中使用Gravity Forms为客户创建提交表单。 Gravity Forms具有此任务所需的大部分要求,但我必须在插件本身中构建一些自定义字段(应该是可扩展的)。

因此,我正在创建一个字段类型,在提交后将视频文件上传到Youtube。我计划使用文件上传输入类型,并在提交时获取文件数据(或url / pathname)并将其上传到Youtube。这是我必须在三周内建立的客户项目的一部分。

我使用以下钩子创建了一个自定义字段:(抱歉可怕的格式化;链接和代码混合不好)

add_action(" gform_field_input ", array('GFYoutubeUpload', 'add_gf_fieldtype'), 10, 5)

add_filter(" gform_editor_js_set_default_values ", array('GFYoutubeUpload', 'add_gf_defaults'));

add_action(" gform_editor_js ", array('GFYoutubeUpload', 'add_gf_formeditor'));

add_filter(" gform_field_type_title ", array('GFYoutubeUpload', 'add_gf_title'));

add_filter(" gform_add_field_buttons ", array('GFYoutubeUpload', 'add_gf_button'));

(我还有一个pre_submission处理程序,我已经开始编写,它将把输入发送到另一个插件。)

我已经创建了一个File输入类型,我相信我有正确的命名约定。我在下面发布了我的功能以供审阅。)输入类型在Wordpress管理页面和Gravity Forms表单预览中正确显示,但是当我发布表单时,我的自定义字段没有与之关联的值。 ($ _POST中没有任何内容对应它。)

查看下面的代码,有人能告诉我创建此输入时出错了吗?是否有另一个我不知道的钩子,我需要使用它来处理我添加到表单中的数据?

<?php
     /* Register the cusitom field type with Gravity Forms. */ 
     public static function add_gf_fieldtype($input, $field, $value, $lead_id, $form_id) {  
         if ($field["type"] == "youtube") {  
             $input_name = $form_id .'_'. $field['id'];  
             $css = isset($field['cssClass']) ? $field['cssClass'] : '';  

             return sprintf("<div class='ginput_container'><input name='input_%s' id='input_%s_%s' class='%s' value='' type='file' /></div>", $field["id"], $form_id, $field["id"], $field["type"]. ' ' .esc_attr($css). ' ' .$field['size']);  
         }  

         return $input;  
     }
?>

谢谢。

1 个答案:

答案 0 :(得分:0)

答案实际上很简单 - 它不是重力形式;这是基本的PHP。我使用$_POST超全局而不是$_FILES,数据实际存在。希望这会帮助遇到此问题的其他人。