概要
woocommerce_saved_order_items
は、WooCommerceのアクションフックで、保存された注文アイテムがデータベースに保存された後に実行されます。このアクションは、WooCommerceプラグインの開発者が、特定の処理やカスタマイズを行うために利用することができます。具体的には、以下のような機能を実装する際によく使われます。
- 注文アイテムにカスタムデータを追加する。
- 注文処理後の通知を送信する。
- アナリティクスデータを収集する。
- ユーザーの注文履歴に変更を加える。
- サードパーティのサービスとの連携を行う。
- ショップのレポートを生成する。
構文
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)を適用します。