概要
woocommerce_webhook_process_delivery
は、WooCommerceにおけるWebhookが配信される際にトリガーされるアクションフックです。このフックは、外部サービスとWooCommerceの連携を円滑に行うために使用され、特にデータの同期や通知機能の実装に役立ちます。以下のような機能を実装する際によく使われます。
- 在庫管理システムとのデータ同期
- 配送トラッキング情報の送信
- 顧客への自動通知機能
- サードパーティの決済ゲートウェイとの連携
- CRMシステムへのデータ送信
- マーケティングプラットフォームとの連携
構文
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処理を拡張するための基本的な実装方法を示しています。それぞれのコードは、特定の用途に応じて変更や拡張が可能です。