将重力表单条目发送到第 3 方 API

Rya*_*ebo 2 php forms api wordpress gravity-forms-plugin

我目前正在尝试将信息从 Gravity Froms 发送到第三方 API。据我所知,Gravity Forms 中有一个gform_after_submission挂钩可以将信息发送到第三方 API。

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' ),
    );
    GFCommon::log_debug( 'gform_after_submission: body => ' . print_r( $body, true ) );

    $request = new WP_Http();
    $response = $request->post( $post_url, array( 'body' => $body ) );
    GFCommon::log_debug( 'gform_after_submission: response => ' . print_r( $response, true ) );
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用它,但我还需要根据 API 提供的不同方法发送信息。在本例中,我正在创建一个表单,供用户输入新的奖励卡或转让卡。基本上我必须查看我的表单并发送一个调用来检查旧卡号的方法,发送一个调用来添加/更新客户,等等。

现在使用 Gravity Forms gform_after_submission,我怎样才能实现将信息输入 API 上的正确方法所需的一切。请理解,这是我第一次将信息从重力形式发送到这样的 API。

小智 5

function post_to_third_party( $entry, $form ) {

//To fetch input inserted into your gravity form//
$old_card  = rgpost( 'input_6' );
$new_card  = rgpost( 'input_3' );

///to send that fetched data to third-party api///
$post_url = 'http://thirdparty.com/{APi request}';
$body = array(
        'old_card' => $old_card, 
        'new_card' => $new_card, 
 );

    GFCommon::log_debug( 'gform_after_submission: body => ' . print_r( $body, true ) );

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

  //response from api whether card is exist or not///
  $res = json_decode($response['body'],true);

  ///here you can put your logic as per the response//
}
add_action( 'gform_after_submission_4', 'post_to_third_party', 10, 2 );
Run Code Online (Sandbox Code Playgroud)

希望我已经解释得很好并帮助您更好地理解事情。您可以根据需要更改表单数据,祝您好运。

  • 它可能会帮助其他人。您还可以使用这些 WordPress 函数来发出发布请求 -> `wp_remote_post` 和 `wp_safe_remote_post` (3认同)