概要
woocommerce_webhook_deleted
は、WooCommerceのウェブフックが削除されたときにトリガーされるアクションフックです。このアクションは、他のシステムとのインテグレーションや、特定のアクションを実行する際に便利です。具体的には、次のような場合に利用されます。
- ウェブフックが削除された際に、データベースから関連情報をクリーンアップする。
- 削除されたウェブフックに基づいて、外部サービスとの接続を解除する。
- ユーザー通知を送信して、ウェブフックが削除されたことを通知する。
- ログを記録して、削除アクションの監査を行う。
- ウェブフックの設定をリセットする。
- 他のコンポーネントに通知して、関連するアクションを実行する。
構文
do_action( 'woocommerce_webhook_deleted', $webhook_id, $webhook );
パラメータ
$webhook_id
(int): 削除されたウェブフックのID。$webhook
(WC_Webhook): 削除されたウェブフックのインスタンス。
戻り値
なし。
互換性
- WooCommerceバージョン: 3.0.0以降
- WordPressバージョン: 4.0.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_deleted', 'custom_webhook_deleted_action', 10, 2 );
function custom_webhook_deleted_action( $webhook_id, $webhook ) {
// 削除されたウェブフックのIDをログに記録
error_log( "Webhook Deleted: ID - " . $webhook_id );
}
このコードは、ウェブフックが削除されるとそのIDをWordPressのエラーログに記録します。
サンプルコード 2
add_action( 'woocommerce_webhook_deleted', 'remove_webhook_from_external_service', 10, 2 );
function remove_webhook_from_external_service( $webhook_id, $webhook ) {
// 外部サービスとの接続を解除するAPIを呼び出し
wp_remote_post( 'https://api.example.com/remove-webhook', [
'body' => json_encode( [ 'id' => $webhook_id ] ),
'headers' => [ 'Content-Type' => 'application/json' ],
]);
}
このコードは、ウェブフックが削除された際に、外部サービスからウェブフックを削除するためのAPIを呼び出します。
サンプルコード 3
add_action( 'woocommerce_webhook_deleted', 'notify_user_webhook_deleted', 10, 2 );
function notify_user_webhook_deleted( $webhook_id, $webhook ) {
// ユーザーにウェブフック削除の通知を送信
$user_email = get_option( 'admin_email' );
wp_mail( $user_email, 'Webhook Deleted', 'A webhook has been deleted with ID: ' . $webhook_id );
}
このコードは、ウェブフックが削除されたときに、管理者にメールで通知を送信します。
サンプルコード 4
add_action( 'woocommerce_webhook_deleted', 'clean_up_related_data', 10, 2 );
function clean_up_related_data( $webhook_id, $webhook ) {
// 削除されたウェブフックに関連するカスタムメタデータを削除する
delete_post_meta( $webhook_id, 'related_meta_key' );
}
このコードは、削除されたウェブフックに関連するカスタムメタデータを削除します。
サンプルコード 5
add_action( 'woocommerce_webhook_deleted', 'log_webhook_deletion', 10, 2 );
function log_webhook_deletion( $webhook_id, $webhook ) {
// ウェブフック削除の詳細をカスタムログファイルに記録
$log_entry = sprintf( 'Webhook ID %d deleted at %s', $webhook_id, current_time( 'mysql' ) );
file_put_contents( plugin_dir_path( __FILE__ ) . 'webhook-deletion.log', $log_entry . PHP_EOL, FILE_APPEND );
}
このコードは、ウェブフックの削除をカスタムログファイルに記録します。