【问题标题】:Gravity Form Form Name Attribute重力形式形式名称属性
【发布时间】:2013-11-25 06:29:48
【问题描述】:

我使用的页面分析会自动收集表单数据。 Gravity Forms 创建没有任何名称属性的标签。我试图找出一种为表单标签分配名称属性的方法。 我最接近的是这个例子:

<?php
add_filter("gform_form_tag", "form_tag", 10, 2);
function form_tag($form_tag, $form){
if ($form["id"] == 3){
   $form_tag = preg_replace("|action='(.*?)'|", "action='custom_handler.php'", $form_tag);
   return $form_tag;
   }
}
?>

但我不确定如何使用 preg_replace 为相关表单创建名称属性。

【问题讨论】:

  • 我想出了一个适合自己的解决方案。为任何其他陷入困境的灵魂分享它。对我来说,我想要的只是为表单添加一个名称属性,以便我的分析获取一些可以理解的东西,而不是像 form-1234 这样的 id,所以我浏览了 plugin/gravityforms/forms_display.php 并在它创建新表单标签的地方对其进行了编辑。可以在第 435 到 440 行之间找到。创建了一个新变量来保存表单标题的值,对其进行编辑以删除空格。并将其插入到表单标签字符串中。

标签: php wordpress gravity-forms-plugin


【解决方案1】:

我的目标略有不同,但由于 Jeff 的想法,我想出了以下我认为值得分享的方法。

它将一个净化的表单名称数据属性附加到表单标签,而不涉及任何其他属性。

function add_form_name_data_attr($form_tag, $form){
    $form_tag = str_replace('>', ' data-form-name="' . sanitize_title($form['title']) . '">', $form_tag);

    return $form_tag;
}
add_filter('gform_form_tag', 'add_form_name_data_attr', 10, 2);

然后我可以在调用某个分析 API 时使用 JavaScript 中的数据属性来区分各种形式。

【讨论】:

    【解决方案2】:

    我编写了一个插件,它也使添加名称属性(或修改/添加/删除表单标签的任何其他属性)变得轻而易举。

    http://gravitywiz.com/gravity-forms-tag-editor/

    下面是添加 name 属性的示例:

    new GW_Tag_Editor( array(
        'tag'  => 'form',
        'name' => 'form_{formId}',
    ) );
    

    【讨论】:

      【解决方案3】:

      我想出了一个适合自己的解决方案。为任何其他陷入困境的灵魂分享它。对我来说,我想要的只是为表单添加一个名称属性,以便我的分析获取一些可以理解的东西,而不是像 form-1234 这样的 id,所以我浏览了 plugin/gravityforms/forms_display.php 并在它创建新表单标签的地方对其进行了编辑。可以在第 435 到 440 行之间找到。创建了一个新变量来保存表单标题的值,对其进行编辑以删除空格。并将其插入到表单标签字符串中。

      //Edited For Analytics
              $cm_form_name = str_replace(" ", "-", $form['title']);
              $form_string .= apply_filters("gform_form_tag_{$form_id}", apply_filters("gform_form_tag", "<form method='post' enctype='multipart/form-data' {$target} id='gform_{$form_id}' name='{$cm_form_name}' {$form_css_class} action='{$action}'>", $form), $form);
              //End Editing
              //Orginal String
              //$form_string .= apply_filters("gform_form_tag_{$form_id}", apply_filters("gform_form_tag", "<form method='post' enctype='multipart/form-data' {$target} id='gform_{$form_id}' {$form_css_class} action='{$action}'>", $form), $form);
      

      【讨论】:

        猜你喜欢
        • 2012-04-04
        • 1970-01-01
        • 2021-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多