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

概要

woocommerce_webhook_topic は、WooCommerceで発生するイベントを外部システムに通知するためのWebhookトピックを定義するアクションです。主に以下のような機能の実装に使用されます。

  1. 注文のステータス変更通知
  2. 在庫管理システムとの統合
  3. 顧客登録時の通知
  4. 返品処理の自動化
  5. 売上データの分析用外部サービスへの送信
  6. 特定の商品変更のリアルタイム通知

構文

do_action( 'woocommerce_webhook_topic', $topic, $data, $webhook );

パラメータ

  • $topic (string) – Webhookのトピック名。
  • $data (array) – Webhookに関連するデータ。
  • $webhook (object) – 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_order_status_changed', 'send_webhook_on_order_status_change', 10, 4 );

function send_webhook_on_order_status_change( $order_id, $old_status, $new_status, $order ) {
    $webhook_id = 123; // ここに事前に設定したWebhookのIDを入れる
    $topic = 'order.updated'; // Webhookトピック
    $data = array(
        'order_id' => $order_id,
        'new_status' => $new_status,
    );

    do_action( 'woocommerce_webhook_topic', $topic, $data, $webhook_id );
}

サンプルコード 2: 新規顧客登録時のWebhook通知

このコードは、新しい顧客が登録されたときにWebhookをトリガーします。

add_action( 'woocommerce_created_customer', 'send_webhook_on_new_customer', 10, 1 );

function send_webhook_on_new_customer( $customer_id ) {
    $topic = 'customer.created'; // Webhookトピック
    $data = array(
        'customer_id' => $customer_id,
    );

    do_action( 'woocommerce_webhook_topic', $topic, $data, null );
}

サンプルコード 3: 商品在庫変更時のWebhook通知

このコードは、商品在庫が変更されたときにWebhookをトリガーします。

add_action( 'woocommerce_update_product', 'send_webhook_on_product_update', 10, 1 );

function send_webhook_on_product_update( $product_id ) {
    $topic = 'product.updated'; // Webhookトピック
    $data = array(
        'product_id' => $product_id,
    );

    do_action( 'woocommerce_webhook_topic', $topic, $data, null );
}

サンプルコード 4: 返品リクエスト時のWebhook通知

このコードは、返品リクエストが作成されたときにWebhookをトリガーします。

add_action( 'woocommerce_order_return_request_created', 'send_webhook_on_return_request', 10, 1 );

function send_webhook_on_return_request( $return_request ) {
    $topic = 'return.request.created'; // Webhookトピック
    $data = $return_request; // 返品リクエストデータ

    do_action( 'woocommerce_webhook_topic', $topic, $data, null );
}

サンプルコード 5: 売上データ送信用Webhook通知

このコードは、売上データを外部システムに送信するWebhookをトリガーします。

add_action( 'woocommerce_thankyou', 'send_webhook_on_order_complete', 10, 1 );

function send_webhook_on_order_complete( $order_id ) {
    $topic = 'order.completed'; // Webhookトピック
    $data = array(
        'order_id' => $order_id,
        'amount' => get_post_meta( $order_id, '_order_total', true ),
    );

    do_action( 'woocommerce_webhook_topic', $topic, $data, null );
}

これらのサンプルコードは、woocommerce_webhook_topic アクションを使用して、特定のイベントが発生したときにWebhookをトリガーする方法を示しています。

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


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