概要
woocommerce_deleted_order_items
アクションは、WooCommerce の注文アイテムが削除されたときにトリガーされるフックです。このアクションは、特定の処理を行いたい際に使用され、主に以下のような機能でよく使われます。
- 注文履歴の記録更新
- 顧客インサイト情報の整理
- 在庫管理の調整
- 注文統計の生成
- アラートや通知システムのトリガー
- メンテナンスやクリーニングプロセスの実施
構文
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 |