备注表单与重力表单的连接

时间:2015-02-13 作者:manc

我想使用我构建的注释表单,然后将数据直接传输到重力表单中的条目中。我认为它可以从以下方面起作用:

有人填写了评论表。如果勾选了复选框,我会收集评论者的姓名和电子邮件,并将其作为条目添加到重力表单中。

没有人会看到真正的重力形式,但想知道如何做到这一点。我假设这是通过在提交注释后将参数传递到下一个URL来完成的,然后由一个函数捕获,然后使用此数据存储为条目。

1 个回复
最合适的回答,由SO网友:Rhys Wynne 整理而成

这可以使用comment_post 行动,以及GFAPI 类,该类处理WordPress中的条目。

首先需要使用comment_form_default_fields 作为复选框的字段。

function add_to_email_list_field($fields) {

    $fields[\'add-to-email\'] = \'<p class="comment-form-public">
    <input id="addtoemail" name="addtoemail" type="checkbox" />
    <label for="addtoemail">
    Check this box to add yourself to our email list.
    </label></p>\';
    return $fields;
}
add_filter(\'comment_form_default_fields\',\'add_to_email_list_field\');
这会在注释表单(实际注释框之前)中添加一个复选框。如果选中,我们需要向重力窗体添加一个入口对象。此表单假定第一个字段是名称,第二个字段是电子邮件,表单ID是1。这需要在您的站点上进行更改:-

function save_to_gravity_form( $post_id ) {
     $save_meta_checkbox = esc_attr( $_POST[\'addtoemail\'] );

    if ( $save_meta_checkbox == \'on\' ) {
        $entry = array( \'form_id\' => 1, // Change form ID to your Gravity Form ID
            1 => esc_attr( $_POST[\'name\'] ), // Change 1 to the field ID in your Gravity Form for Name 
            2 => esc_attr( $_POST[\'email\'] // Change 2 to the field ID in your Gravity Form for Email )
        );
        $entry_id = GFAPI::add_entry($entry);

        if ( is_wp_error( $entry_id ) ) {
            wp_die( $entry_id->get_error_message() );
        }
    }

}
add_action( \'comment_post\', \'save_to_gravity_form\', 1 );
这很快,所以希望这对您有效:)

结束

相关推荐

GET_COMMENTS不适用于自定义帖子类型

我正在尝试获取登录用户在“foods”CPT中的所有评论,但仍然没有成功。这是我的代码:<?php $args = array( \'user_id\' => $user->ID, \'post_type\' => \'foods\', // when I removed this, the list only showed the comments left on posts but not on Foods CPT