如何使用钩子编辑重力形式?

时间:2014-01-03 01:01:01

标签: php wordpress twitter-bootstrap-3 gravity-forms-plugin

我正在制作一个简单的电子邮件注册表单,并希望删除重力表单所具有的所有膨胀。我知道我无法摆脱一些javascript,但我希望能够使用ul的表格工作,删除标题和描述等。

以下是电子邮件注册的静态html版本(我正在使用bootstrap 3): enter image description here

如何让我的引力形式来自:

<div class="gf_browser_chrome gform_wrapper" id="gform_wrapper_2"><form method="post" enctype="multipart/form-data" id="gform_2" action="/exrnawp/" class="form-horizontal">
                        <div class="gform_heading">
                            <span class="gform_description"></span>
                        </div>
                        <div class="gform_body">
                            <ul id="gform_fields_2" class="gform_fields top_label description_below"><li id="field_2_1" class="gfield               gfield_contains_required"><label class="gfield_label" for="input_2_1">Email<span class="gfield_required">*</span></label><div class="ginput_container"><input name="input_1" id="input_2_1" type="email" value="" class="medium" placeholder="Email Newsletter"></div></li>
                            </ul></div>
        <div class="gform_footer top_label"> <input type="submit" id="gform_submit_button_2" class="button gform_button" value="Get Updates!" onclick="if(window[&quot;gf_submitting_2&quot;]){return false;}  if( !jQuery(&quot;#gform_2&quot;)[0].checkValidity || jQuery(&quot;#gform_2&quot;)[0].checkValidity()){window[&quot;gf_submitting_2&quot;]=true;} ">
            <input type="hidden" class="gform_hidden" name="is_submit_2" value="1">
            <input type="hidden" class="gform_hidden" name="gform_submit" value="2">
            <input type="hidden" class="gform_hidden" name="gform_unique_id" value="">
            <input type="hidden" class="gform_hidden" name="state_2" value="WyJhOjA6e30iLCIxNTU1YWU5Yzg1OGIxMDQ3ZGY5ZGZlZGU2MzA1ODNlMSJd">
            <input type="hidden" class="gform_hidden" name="gform_target_page_number_2" id="gform_target_page_number_2" value="0">
            <input type="hidden" class="gform_hidden" name="gform_source_page_number_2" id="gform_source_page_number_2" value="1">
            <input type="hidden" name="gform_field_values" value="">

        </div>
                </form>
                </div>

到此:

<form class="form-inline" role="form">
  <div class="form-group">
    <input type="email" class="form-control" id="exampleInputEmail2" placeholder="Email Newsletter">
  </div>
  <button type="submit" class="btn btn-warning pull-right"><strong>SIGN UP</strong>    </button>
</form>

3 个答案:

答案 0 :(得分:1)

删除标题和说明HTML应该像传递&#34; false&#34;一样简单。为&#34;标题&#34;和&#34;描述&#34; [gravityform]短代码上的属性或者它们在gravity_form()函数上的等价物,如果你手动调用它。

如果您打算让Gravity Forms处理表单的提交,您需要留下大部分(如果不是全部)隐藏字段,这些字段用于允许GF识别提交了实际的Gravity表单(而不是其他表单和任何其他POST请求到您的站点)。

如果您感觉活泼,可以通过&#34; gform_get_form_filter&#34;完全重写表单的整个输出。钩。它没有记录,但它将整个表单标记作为字符串和$ form对象传递。

答案 1 :(得分:0)

我最终使用了jquery,它运行良好,但不是最有效的方法。

<script>
$(document).ready(function(){
    $( ".gform_body" ).replaceWith( "<div class='form-group'><input name='input_1' id='input_2_1' type='email' value='' class='medium form-control' placeholder='Email Newsletter'></div>" );
    $('#gform_submit_button_2').addClass('btn btn-warning pull-right');
});
</script>

答案 2 :(得分:0)

我知道这是一篇非常古老的文章,但是由于有关此问题的文档很差,人们可能最终会在这里寻找答案(就像我一样),所以我认为我会分享我最终的方法最终与。

因此,我所做的是使用PHP的DOMDocument类从.gform_body和.gform_footer容器以及ul元素中清除表单。然后,事情变得更加直接,因为您可以使用Gravity Forms的本机过滤器gform_field_containergform_field_inputgform_submit_button来修改字段。

有关更详细的描述,这是我的有关如何use DOMDocument to clean-up Gravity Form's markup的教程。