Php 使用WordPress表格向第三方发送数据

Php 使用WordPress表格向第三方发送数据,php,wordpress,gravity-forms-plugin,Php,Wordpress,Gravity Forms Plugin,我使用functions.php中的以下内容通过cURL提交给第三方。 问题是这个代码对我所有的表单实例都是通用的,我的WP站点上有无数的重力表单,我只需要一个就可以转到这个第三方 add_action( 'gform_after_submission', 'post_to_third_party', 10, 2 ); function post_to_third_party( $entry, $form ) { $post_url = 'http://thirdparty.com';

我使用functions.php中的以下内容通过cURL提交给第三方。 问题是这个代码对我所有的表单实例都是通用的,我的WP站点上有无数的重力表单,我只需要一个就可以转到这个第三方

add_action( 'gform_after_submission', 'post_to_third_party', 10, 2 );
function post_to_third_party( $entry, $form ) {

    $post_url = 'http://thirdparty.com';
    $body = array(
        'first_name' => rgar( $entry, '1.3' ), 
        'last_name' => rgar( $entry, '1.6' ), 
        'message' => rgar( $entry, '3' ),
        );

    $request = new WP_Http();
    $response = $request->post( $post_url, array( 'body' => $body ) );

}

如何选择使用此第三方呼叫的表单?

您发布的链接包含您需要了解的关于重力表单的几乎所有文档。您只需检查$form参数以查找当前表单使用的任何标识符:

add_action( 'gform_after_submission', 'post_to_third_party', 10, 2 );
function post_to_third_party( $entry, $form ) {
    if($form['title'] !== 'your-form-title'){ //Check the title
        return; //If the title doesn't match, don't POST
    }
    $post_url = 'http://thirdparty.com';
    $body = array(
        'first_name' => rgar( $entry, '1.3' ), 
        'last_name' => rgar( $entry, '1.6' ), 
        'message' => rgar( $entry, '3' ),
        );

    $request = new WP_Http();
    $response = $request->post( $post_url, array( 'body' => $body ) );

}

这会事先检查标题,以确定是否确实要将信息发布到第三方URL。虽然检查标题肯定会使代码更具可读性,但实际上我建议检查表单的ID以提高可靠性

您发布的链接包含您需要了解的有关重力表单的几乎所有文档。您只需检查$form参数以查找当前表单使用的任何标识符:

add_action( 'gform_after_submission', 'post_to_third_party', 10, 2 );
function post_to_third_party( $entry, $form ) {
    if($form['title'] !== 'your-form-title'){ //Check the title
        return; //If the title doesn't match, don't POST
    }
    $post_url = 'http://thirdparty.com';
    $body = array(
        'first_name' => rgar( $entry, '1.3' ), 
        'last_name' => rgar( $entry, '1.6' ), 
        'message' => rgar( $entry, '3' ),
        );

    $request = new WP_Http();
    $response = $request->post( $post_url, array( 'body' => $body ) );

}

这会事先检查标题,以确定是否确实要将信息发布到第三方URL。虽然检查标题肯定会使代码更具可读性,但实际上我建议检查表单的ID以提高可靠性

允许我设置多个第三方表单并与gravity表单完全集成。

允许我设置多个第三方表单并与gravity表单完全集成。

您可以将表单id附加到动作名称以挂接到特定表单:

add_action( 'gform_after_submission_5', 'post_to_third_party', 10, 2 );

.

您可以将表单id附加到操作名称中,以便挂接到特定表单中:

add_action( 'gform_after_submission_5', 'post_to_third_party', 10, 2 );

.

这应该是公认的答案,因为它正好解决了Sam的问题。10、2、1.3、1.6和3的值代表什么?@joshmax中的10和2表示回调函数接收的参数的优先级和数量。是一个Gravity Forms辅助函数,它通过给定的键从数组中检索值。在本例中,$entry变量由字段ID键入,因此这些数字表示这些ID。这应该是可接受的答案,因为它正好解决了Sam的问题。10、2、1.3、1.6和3值表示什么?@joshmax中的10和2表示回调函数接收的参数的优先级和数量。是一个Gravity Forms辅助函数,它通过给定的键从数组中检索值。在本例中,$entry变量由字段ID键入,因此这些数字表示这些ID。您是如何配置它的?我想不出来我在重力表单中使用“高级字段”时遇到了一个问题,比如地址字段。字段名为“input_1.3”,id为“input_2_1_3”。第三方集成映射表示您可以使用名称或id,但当名称中有一个点时,它不起作用。只需将名称中的点替换为下划线即可。例如:输入\u 1.3->输入\u 1\u 3。。。¯_ツ_/''您是如何配置它的?我想不出来我在重力表单中使用“高级字段”时遇到了一个问题,比如地址字段。字段名为“input_1.3”,id为“input_2_1_3”。第三方集成映射表示您可以使用名称或id,但当名称中有一个点时,它不起作用。只需将名称中的点替换为下划线即可。例如:输入\u 1.3->输入\u 1\u 3。。。¯_ツ_/¯