概要
woocommerce_webhook_disabled_due_delivery_failuresアクションは、WooCommerceのWebhookが配信失敗によって無効化された際にフックされるイベントです。このアクションは、Webhookの配信が失敗し、特定の条件(例えば、一定回数の配信失敗)を満たした場合にトリガーされます。開発者はこのアクションを使用して、Webhookが無効化された際にカスタムの処理を実施することができます。
主に以下のような機能実装時に使用されます:
1. エラーロギングの実装
2. Webhookの配信失敗に基づいてユーザー通知
3. 管理者へのメール通知
4. リトライロジックの実装
5. 類似イベントのトラッキング
6. Webhookの状態を監視するためのダッシュボード機能
構文
add_action('woocommerce_webhook_disabled_due_delivery_failures', 'custom_function_name', 10, 1);
パラメータ
$webhook(WC_Webhook): 無効化されたWebhookオブジェクト
戻り値
このアクション自体は戻り値を持ちませんが、フックされた関数内で何らかの値を返すことができます。
使用可能なプラグインバージョン
- WooCommerce: 3.5.0以降
- WordPress: 5.0以降
サンプルコード
サンプル1: ログにエラーを書き込む
このサンプルコードは、Webhookが無効化されたときにエラーログに記録します。
add_action('woocommerce_webhook_disabled_due_delivery_failures', 'log_webhook_failure', 10, 1);
function log_webhook_failure($webhook) {
$message = sprintf('Webhook ID %d has been disabled due to delivery failures.', $webhook->get_id());
error_log($message);
}
サンプル2: 管理者へメール通知
このサンプルコードは、Webhookの無効化を管理者にメール通知します。
add_action('woocommerce_webhook_disabled_due_delivery_failures', 'notify_admin_of_webhook_failure', 10, 1);
function notify_admin_of_webhook_failure($webhook) {
$to = get_option('admin_email');
$subject = 'Webhook Disabled Notification';
$message = sprintf('The webhook with ID %d has been disabled due to delivery failures.', $webhook->get_id());
wp_mail($to, $subject, $message);
}
サンプル3: リトライロジックの実行
このサンプルでは、Webhookが無効化された場合にリトライを試みる関数を呼び出します。
add_action('woocommerce_webhook_disabled_due_delivery_failures', 'retry_webhook_delivery', 10, 1);
function retry_webhook_delivery($webhook) {
// 実際のリトライ処理をここに実装
// 例えば再配信のためにWebhookを再設定するなど
}
サンプル4: Webhookステータスのダッシュボードに表示
このサンプルはWebhookの状態をカスタムダッシュボードに表示します。
add_action('woocommerce_webhook_disabled_due_delivery_failures', 'update_dashboard_webhook_status', 10, 1);
function update_dashboard_webhook_status($webhook) {
// Webhookステータスをデータベースに保存
update_option('webhook_status_' . $webhook->get_id(), 'disabled_due_to_delivery_failures');
}
サンプル5: Webhookとの統合のトラッキング
このサンプルコードはWebhookの統合とトラッキングを行います。
add_action('woocommerce_webhook_disabled_due_delivery_failures', 'track_webhook_integration_failure', 10, 1);
function track_webhook_integration_failure($webhook) {
// 表や別の管理システムに失敗を記録
// ここで失敗回数や時間を記録することができる。
}
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| 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 |