WebhookでエントリーIDを送信する方法

はじめに

WebhooksアドオンでエントリーIDを送信しますか?フォームが送信されると割り当てられるエントリーIDは、WPFormsのエントリーを外部のCRMと相互参照するためにリンクする際に重要な役割を果たします。このチュートリアルでは、簡単なPHPスニペットを使ってこのプロセスを説明します。

フォームの作成

まずはフォームを作成し、必要なフィールドを追加しましょう。フォームの作成方法がわからない場合は、こちらのドキュメントを参考にしてください。

フォームを作成し、フィールドを追加します。

ウェブフックの設定

WebhooksでエントリーIDを送信するには、まずWebhooksアドオンを有効にする必要があります。Webhooksアドオンの設定についてサポートが必要な場合は、こちらの記事をご覧ください

アドオンを有効にするには、フォームビルダーに移動し、[設定]をクリックし、[Webhookを有効にする]をクリックします。Webhook URL を入力し、フォームフィールドをリクエストボディにマッピングし、Webhook に含める情報を指定します。

フォームフィールドを変数名にマッピングし、Webhook URLを入力します。

このチュートリアルでは、Webhook.siteを使用して、情報が Webhook を通して送信されていることをテストします。Webhook をセットアップするときは、投稿先の外部ソースの Webhook URL を使用し、変数を割り当てます。ウェブフックの受信を受け付ける外部ソースごとに、情報を送信するための変数の設定方法が異なる可能性があることを覚えておくことが重要です。フォームビルダーで代入している変数名と一致するように、その外部ソース内で変数を手動で作成する必要がないことを確認するために、その外部ソースを調査する必要があります。

スニペットの追加

次に、スニペットをサイトにコピーする。

スニペットをサイトに追加する方法や場所については、こちらのチュートリアルをご覧ください

/**
 * Send the entry id through webhooks request.
 *
 * @link https://wpforms.com/developers/how-to-send-the-entry-id-through-webhooks/
 */

function wpf_dev_webhooks_process_delivery_request_options( $options, $webhook_data, $fields, $form_data, $entry_id ) {
    
	// Optional, you can limit to specific forms. Below, we restrict output to
    // form #1899.
    if ( absint( $form_data[ 'id' ] ) !== 1899 ) {
        return $options;
    }
	
	$body = ! is_array( $options[ 'body' ] ) ? json_decode( $options[ 'body' ], true ) : $options[ 'body' ];
	
	// Create a new entry and assign the entry_id
	$body[ 'entry_id' ] = $entry_id;
	
	// Format request data.
	if ( !empty( $options[ 'method' ] ) && $options[ 'method' ] !== 'GET' && $webhook_data[ 'format' ] === 'json' ) {
		
		// Encode request body.
		$options[ 'body' ] = wp_json_encode( $body );
	}
	
	return $options;
}

add_filter( 'wpforms_webhooks_process_delivery_request_options', 'wpf_dev_webhooks_process_delivery_request_options', 100, 5);

このスニペットでは、entry_idという変数を webhook に追加し、フォームが送信されたときに WPForms から作成されるこの ID 番号を代入します。フォーム ID 番号がどこにあるかわからない場合は、こちらのチュートリアルをご覧ください

ウェブフックから送信された情報を見ると、マッピングされたフィールド名だけでなく、エントリーIDも表示されていることに気づくだろう。

次のスニペットを使って、エントリーIDをウェブフックに送ることができます。

これで完了です!これでエントリーIDをウェブフックに渡すことができます。Webhookでジオロケーション情報も送信したいですか?Webhookでジオロケーションを送信する方法の記事をご覧ください。