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

概要

woocommerce_saved_order_itemsは、WooCommerceのアクションフックで、保存された注文アイテムがデータベースに保存された後に実行されます。このアクションは、WooCommerceプラグインの開発者が、特定の処理やカスタマイズを行うために利用することができます。具体的には、以下のような機能を実装する際によく使われます。

  1. 注文アイテムにカスタムデータを追加する。
  2. 注文処理後の通知を送信する。
  3. アナリティクスデータを収集する。
  4. ユーザーの注文履歴に変更を加える。
  5. サードパーティのサービスとの連携を行う。
  6. ショップのレポートを生成する。

構文

do_action('woocommerce_saved_order_items', $order_id, $items);

パラメータ

  • $order_id: 保存された注文のID。
  • $items: 注文アイテムの配列。

戻り値

このアクションは戻り値を持ちません。

使用可能なバージョン

  • WooCommerceのバージョン: 2.0.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_saved_order_items', 'custom_function_after_order_saved', 10, 2);
function custom_function_after_order_saved($order_id, $items) {
    // ここでカスタマイズされた処理を実行。
    // 例: 注文完了後にカスタムメールを送信する。
    $order = wc_get_order($order_id);
    $to = $order->get_billing_email();
    $subject = 'Thank you for your order!';
    $message = 'Your order has been saved successfully.';
    wp_mail($to, $subject, $message);
}

このサンプルコードは、注文が保存された後にカスタムメールを送信する機能を実装しています。

サンプルコード2

add_action('woocommerce_saved_order_items', 'log_order_items', 10, 2);
function log_order_items($order_id, $items) {
    // 注文アイテムをログに記録する
    error_log('Order ID: ' . $order_id);
    foreach ($items as $item_id => $item) {
        error_log('Item ID: ' . $item_id . ' - Product ID: ' . $item->get_product_id());
    }
}

このサンプルコードは、保存された注文アイテムの情報をエラーログに記録します。

サンプルコード3

add_action('woocommerce_saved_order_items', 'update_custom_order_meta', 10, 2);
function update_custom_order_meta($order_id, $items) {
    // 注文アイテムにカスタムメタデータを追加する
    foreach ($items as $item_id => $item) {
        $item->update_meta_data('custom_meta_key', 'custom_meta_value');
        $item->save();
    }
}

このサンプルコードは、各注文アイテムにカスタムメタデータを追加します。

サンプルコード4

add_action('woocommerce_saved_order_items', 'send_webhook_on_order_save', 10, 2);
function send_webhook_on_order_save($order_id, $items) {
    // 外部APIにウェブフックを送信する
    $url = 'https://example.com/webhook';
    $data = array('order_id' => $order_id, 'items' => $items);
    wp_remote_post($url, array('body' => json_encode($data)));
}

このサンプルコードは、保存された注文の情報を外部APIにウェブフックとして送信します。

サンプルコード5

add_action('woocommerce_saved_order_items', 'custom_coupon_application', 10, 2);
function custom_coupon_application($order_id, $items) {
    // 特定の条件でクーポンを適用する
    $order = wc_get_order($order_id);
    if ($order->get_total() > 100) {
        $order->apply_coupon('FREESHIP');
    }
}

このサンプルコードは、注文合計が100ドルを超える場合に特定のクーポン(FREESHIP)を適用します。

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


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