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

概要

woocommerce_deleted_order_items アクションは、WooCommerce の注文アイテムが削除されたときにトリガーされるフックです。このアクションは、特定の処理を行いたい際に使用され、主に以下のような機能でよく使われます。

  1. 注文履歴の記録更新
  2. 顧客インサイト情報の整理
  3. 在庫管理の調整
  4. 注文統計の生成
  5. アラートや通知システムのトリガー
  6. メンテナンスやクリーニングプロセスの実施

構文

do_action( 'woocommerce_deleted_order_items', $item_id, $order_id );

パラメータ

  • $item_id (int) – 削除された注文アイテムのID。
  • $order_id (int) – 削除されたアイテムが関連する注文のID。

戻り値

このアクション自体は値を返しません。フックされた関数が必要な処理を実行します。

使用可能なバージョン

  • WooCommerce バージョン: 3.0.0 以降
  • WordPress バージョン: 4.0 以降

サンプルコード

サンプル1:削除されたアイテムのロギング

add_action( 'woocommerce_deleted_order_items', 'log_deleted_order_item', 10, 2 );

function log_deleted_order_item( $item_id, $order_id ) {
    $log_message = "Order Item ID {$item_id} from Order ID {$order_id} has been deleted.";
    error_log( $log_message );
}

このコードは、削除された注文アイテムのIDとその関連注文IDをエラーログに記録します。

サンプル2:メール通知の送信

add_action( 'woocommerce_deleted_order_items', 'send_deletion_notification', 10, 2 );

function send_deletion_notification( $item_id, $order_id ) {
    $to = 'admin@example.com';
    $subject = '注文アイテム削除通知';
    $message = "Order Item ID {$item_id} from Order ID {$order_id} has been deleted.";
    wp_mail( $to, $subject, $message );
}

このコードは、特定の注文アイテムが削除されたときに管理者にメール通知を送ります。

サンプル3:在庫数の調整

add_action( 'woocommerce_deleted_order_items', 'adjust_inventory_on_item_delete', 10, 2 );

function adjust_inventory_on_item_delete( $item_id, $order_id ) {
    $item = WC_Order_Item_Product::get_item( $item_id );

    if ( $item ) {
        $product = $item->get_product();
        $product->increase_stock();
    }
}

このコードは、削除された注文アイテムに関連する製品の在庫数を増やします。

サンプル4:データベースのクリーンアップ

add_action( 'woocommerce_deleted_order_items', 'cleanup_database_after_item_delete', 10, 2 );

function cleanup_database_after_item_delete( $item_id, $order_id ) {
    global $wpdb;
    $wpdb->delete( 'wp_custom_table', array( 'item_id' => $item_id ) );
}

このコードは、削除されたアイテムに関連するカスタムテーブルからレコードを削除します。

サンプル5:ユーザーインターフェースへの通知

add_action( 'woocommerce_deleted_order_items', 'notify_user_of_item_deletion', 10, 2 );

function notify_user_of_item_deletion( $item_id, $order_id ) {
    $user_id = get_current_user_id();
    add_user_meta( $user_id, 'item_deletion_notice', "Your order item with ID {$item_id} has been deleted from Order ID {$order_id}." );
}

このコードは、現在のユーザーのメタデータに削除通知を追加します。

この関数のアクションでの使用可能性

アクション 使用の有無
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

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


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