ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

追加のガイダンスについては、WPBeginner の カスタムコードの追加方法に関するチュートリアル を参照してください。

閉じる

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

はじめに

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

フォームの作成

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

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

Webhookの設定

Webhookを通じてエントリーIDを送信するには、まずWebhooksアドオンを有効にする必要があります。Webhooksアドオンの設定に支援が必要な場合は、この記事を確認してください

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

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

このチュートリアルの目的のために、Webhook.siteを使用して、情報がWebhookを通じて送信されていることをテストします。Webhookを設定する際には、外部ソースのWebhook URLを使用してデータを送信し、変数を割り当てます。Webhookを受け入れる各外部ソースは、情報を送信するための変数の設定方法が異なる場合があることに注意することが重要です。変数がフォームビルダーで割り当てているものと一致することを確認するために、手動で変数をソース内に作成する必要がないことを確認するために、この外部ソースを調査する必要があります。

スニペットの追加

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

スニペットをサイトに追加する方法と場所に関する支援については、このチュートリアルを参照してください

/**
 * 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と呼ばれる追加の変数をウェブフックに追加し、フォームID1899の場合にWPFormsによって作成されるこのID番号を割り当てます。このフォームID番号は、ご自身のIDに合わせて更新する必要があります。フォームID番号を見つける場所がわからない場合は、このチュートリアルを確認してください

これで、Webhookから送信された情報を見ると、マッピングされたフィールド名だけでなく、エントリーIDも含まれていることに気づくでしょう。

このスニペットを使用して、Webhookを通じてエントリーIDを送信できるようになりました

これで完了です!Webhookを通じてエントリーIDを渡せるようになりました。ジオロケーション情報もWebhookで送信しますか?Webhookでジオロケーションを送信する方法の記事をご覧ください。