概要
woocommerce_webhook_event
アクションは、WooCommerce内で発生するウェブフックイベントを処理するためのフックです。このアクションは、他のシステムと連携したり、特定のページや状態の変更時に自動的に処理を行うのに役立ちます。以下はこのアクションがよく使われるシナリオの例です。
- サードパーティサービスへの注文通知
- 在庫管理システムとの統合
- 受注完了後の自動メール送信
- 顧客のアクティビティを記録するログシステム
- 商品の状態変更をリアルタイムで反映するシステム
- マーケティングオートメーションツールとの連携
構文
add_action( 'woocommerce_webhook_event', 'your_custom_function', 10, 4 );
パラメータ
$webhook
– ウェブフックオブジェクト。$payload
– ウェブフックから送信されたペイロード。$url
– このウェブフックのURL。$http_status
– HTTPのステータスコード。
戻り値
このアクションは値を返しません。
バージョン情報
- WooCommerce: 3.0.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
add_action( 'woocommerce_webhook_event', 'send_payment_notification', 10, 4 );
function send_payment_notification( $webhook, $payload, $url, $http_status ) {
// 支払いの通知を外部サービスに送信
if ( $payload['event'] === 'payment.completed' ) {
// コードを追加して通知を送信
}
}
このサンプルコードは、支払いが完了した際に外部サービスに通知を送信するための処理を定義しています。
サンプルコード2
add_action( 'woocommerce_webhook_event', 'update_stock_on_webhook', 10, 4 );
function update_stock_on_webhook( $webhook, $payload, $url, $http_status ) {
// 在庫を更新するロジックを追加
if ( isset( $payload['product_id'] ) ) {
$product_id = $payload['product_id'];
// 在庫更新処理
}
}
このコードは、特定の商品IDに基づいて在庫を更新するロジックを実装しています。
サンプルコード3
add_action( 'woocommerce_webhook_event', 'log_event_to_database', 10, 4 );
function log_event_to_database( $webhook, $payload, $url, $http_status ) {
global $wpdb;
// イベント情報をデータベースに保存
$wpdb->insert(
'event_log',
array(
'event' => $payload['event'],
'data' => json_encode( $payload )
)
);
}
このサンプルは、ウェブフックによってトリガーされたイベントの情報をデータベースにログとして保存します。
サンプルコード4
add_action( 'woocommerce_webhook_event', 'send_custom_email', 10, 4 );
function send_custom_email( $webhook, $payload, $url, $http_status ) {
if ( $payload['event'] === 'order.updated' ) {
// カスタムメールを送信する処理
wp_mail( 'example@example.com', 'Order Updated', 'Order ID ' . $payload['order_id'] . ' has been updated.' );
}
}
このコードは、注文が更新されたときにカスタムメールを送信するための処理を行います。
サンプルコード5
add_action( 'woocommerce_webhook_event', 'sync_customer_data', 10, 4 );
function sync_customer_data( $webhook, $payload, $url, $http_status ) {
if ( $payload['event'] === 'customer.created' ) {
// 顧客データを別のシステムと同期
// 同期処理をここに実装する
}
}
このサンプルコーディングは、新規顧客が作成されたときに別のシステムと顧客データを同期するための処理になります。