我在Wordpress中使用重力形式爲客戶端創建提交表單。 Gravity Forms具有我需要的大部分需求,但我必須在插件本身中構建一些自定義字段(這應該是可擴展的)。重力形式:用戶創建的字段不發佈數據
因此,我創建了一個字段類型,可以在提交後提交視頻文件到Youtube。我打算使用文件上傳輸入類型,並在提交時抓取文件數據(或URL /路徑名)並將其上傳到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處理,我已經開始寫,將輸入發送到不同的插件。)
我創建了一個文件輸入類型,我相信我有正確的命名約定。 )在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;
}
?>
謝謝。