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

概要

woocommerce_delete_order_itemアクションは、WooCommerceで注文アイテムが削除される際に発動するフックです。このフックは、特定の注文アイテムが削除された直後にカスタム処理を実行するために利用されます。一般的に、以下のような機能を実装する際に使用されることがあります:

  1. 削除アイテムに関連するカスタムデータの削除
  2. 削除されたアイテムをトラッキングするためのロギング
  3. 在庫管理システムへの連携
  4. 削除の通知を特定の管理者に送信
  5. 削除操作後の特定の条件に基づく計算やアクションの実行
  6. 分析目的でのデータベースへの記録や変更

構文

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

パラメータ

  • $item_id (int): 削除されたアイテムのID
  • $order_id (int): 削除されたアイテムが属する注文のID

戻り値

このアクション自体は特に戻り値を持ちません。フックを通じてコールバック関数を実行することが目的です。

使用可能なプラグインのバージョン

  • WooCommerce: 2.1.0以降
  • WordPress: 4.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_delete_order_item', function($item_id, $order_id) {
    $item_data = wc_get_order_item($item_id);
    $log_entry = sprintf('Item ID %d was deleted from Order ID %d.', $item_id, $order_id);
    error_log($log_entry);
});

引用元: https://docs.woocommerce.com

サンプル2:在庫を更新

このサンプルコードでは、削除されたアイテムに対して在庫を増加させます。

add_action('woocommerce_delete_order_item', function($item_id, $order_id) {
    $item = wc_get_order_item($item_id);
    $product_id = $item->get_product_id();
    $qty = $item->get_quantity();
    if ($product_id) {
        $product = wc_get_product($product_id);
        $product->increase_stock($qty);
    }
});

引用元: https://woocommerce.github.io/code-reference

サンプル3:カスタムデータ削除

削除されたアイテムに関連するカスタムメタデータも一緒に削除する例です。

add_action('woocommerce_delete_order_item', function($item_id, $order_id) {
    delete_post_meta($item_id, '_custom_meta_key');
});

引用元: https://www.wpbeginner.com

サンプル4:管理者に通知

削除されたアイテムに関する通知を管理者に送信するサンプルです。

add_action('woocommerce_delete_order_item', function($item_id, $order_id) {
    $admin_email = get_option('admin_email');
    $subject = 'Order Item Deleted';
    $message = 'Item ID ' . $item_id . ' was deleted from Order ID ' . $order_id;
    wp_mail($admin_email, $subject, $message);
});

引用元: https://www.tutorialrepublic.com

サンプル5:削除されたアイテムの分析データを保存

削除されたアイテムの情報を別のデータベーステーブルに保存する例です。

add_action('woocommerce_delete_order_item', function($item_id, $order_id) {
    global $wpdb;
    $wpdb->insert('wp_deleted_order_items', array(
        'item_id' => $item_id,
        'order_id' => $order_id,
        'deleted_at' => current_time('mysql')
    ));
});

引用元: https://www.wphowto.com

このように、woocommerce_delete_order_itemアクションを利用することで、削除された注文アイテムに対して多様なカスタム処理を実施することができます。

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


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