プラグインWooCommerceのwoocommerce_webhook_process_deliveryアクションの使用方法・解説

概要

woocommerce_webhook_process_deliveryは、WooCommerceにおけるWebhookが配信される際にトリガーされるアクションフックです。このフックは、外部サービスとWooCommerceの連携を円滑に行うために使用され、特にデータの同期や通知機能の実装に役立ちます。以下のような機能を実装する際によく使われます。

  1. 在庫管理システムとのデータ同期
  2. 配送トラッキング情報の送信
  3. 顧客への自動通知機能
  4. サードパーティの決済ゲートウェイとの連携
  5. CRMシステムへのデータ送信
  6. マーケティングプラットフォームとの連携

構文

do_action('woocommerce_webhook_process_delivery', $response, $webhook, $delivery);

パラメータ

  • $response: Webhookのレスポンスデータ。
  • $webhook: 使用されているWebhookの情報。
  • $delivery: Webhookの配信情報。

戻り値

特に戻り値はありませんが、フックを利用することで他の処理を実行することができます。

使用可能なバージョン

  • WooCommerce バージョン: 2.2.0 以降
  • WordPress バージョン: 4.0 以降

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード 1: Webhookのレスポンスをロギングする

このサンプルコードは、Webhookの配信情報をログに記録します。

add_action('woocommerce_webhook_process_delivery', 'log_webhook_delivery', 10, 3);

function log_webhook_delivery($response, $webhook, $delivery) {
    error_log(json_encode($response));
}

引用元: https://developer.wordpress.org/reference/functions/error_log/

サンプルコード 2: Custom処理を実行する

このサンプルコードでは、特定のWebhookに対してカスタム処理を実行します。

add_action('woocommerce_webhook_process_delivery', 'custom_webhook_action', 10, 3);

function custom_webhook_action($response, $webhook, $delivery) {
    if ($webhook->name === 'Custom Webhook') {
        // カスタム処理を実行
    }
}

引用元: https://developer.wordpress.org/reference/functions/add_action/

サンプルコード 3: データを外部APIに送信する

このサンプルコードは、受信したWebhookデータを外部APIに送信する処理を行います。

add_action('woocommerce_webhook_process_delivery', 'send_data_to_external_api', 10, 3);

function send_data_to_external_api($response, $webhook, $delivery) {
    $api_url = 'https://externalapi.com/endpoint';
    wp_remote_post($api_url, [
        'body' => json_encode($response),
        'headers' => ['Content-Type' => 'application/json']
    ]);
}

引用元: https://developer.wordpress.org/reference/functions/wp_remote_post/

サンプルコード 4: Webhookの失敗時にエラーログを記録する

このサンプルコードは、Webhookの配信に失敗した場合にエラーログを記録します。

add_action('woocommerce_webhook_process_delivery', 'handle_webhook_error', 10, 3);

function handle_webhook_error($response, $webhook, $delivery) {
    if ($response['status'] !== 200) {
        error_log('Webhook delivery failed: ' . $webhook->name);
    }
}

引用元: https://developer.wordpress.org/reference/classes/wp_error/

サンプルコード 5: メール送信を行う

このサンプルコードでは、Webhookが受信されたときにメール通知を送信します。

add_action('woocommerce_webhook_process_delivery', 'send_email_notification', 10, 3);

function send_email_notification($response, $webhook, $delivery) {
    wp_mail('admin@example.com', 'Webhook Delivered', 'A webhook has been delivered: ' . json_encode($response));
}

引用元: https://developer.wordpress.org/reference/functions/wp_mail/

これらのサンプルコードは、WooCommerceにおけるWebhook処理を拡張するための基本的な実装方法を示しています。それぞれのコードは、特定の用途に応じて変更や拡張が可能です。

この関数について質問する


上の計算式の答えを入力してください