概要
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 |