プラグインWooCommerceのwoocommerce_webhook_deletedアクションの使用方法・解説

概要

woocommerce_webhook_deletedは、WooCommerceのウェブフックが削除されたときにトリガーされるアクションフックです。このアクションは、他のシステムとのインテグレーションや、特定のアクションを実行する際に便利です。具体的には、次のような場合に利用されます。

  1. ウェブフックが削除された際に、データベースから関連情報をクリーンアップする。
  2. 削除されたウェブフックに基づいて、外部サービスとの接続を解除する。
  3. ユーザー通知を送信して、ウェブフックが削除されたことを通知する。
  4. ログを記録して、削除アクションの監査を行う。
  5. ウェブフックの設定をリセットする。
  6. 他のコンポーネントに通知して、関連するアクションを実行する。

構文

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 );
}

このコードは、ウェブフックの削除をカスタムログファイルに記録します。

この関数について質問する


上の計算式の答えを入力してください