概要
woocommerce_ajax_order_items_added
アクションは、WooCommerce においてユーザーがカートにアイテムを追加したときに発火します。このフックは、動的にカートの内容が変更される際に、追加の処理を実行するために利用されます。典型的な使い方には次のようなものがあります。
- カートアイテム数のトラッキング – 追加された商品の数をカウントする。
- 在庫状況の更新 – カートに追加された商品によって在庫数を減少させる。
- プロモーションの適用 – 特定の条件を満たした場合にキャンペーンを適用する。
- 通知やメッセージの表示 – ユーザーに追加されたアイテムに関する情報を提示する。
- カスタムイベントのトリガー – カートに商品が追加された際にトラッキング用イベントを送信する。
- 関連商品の提案 – カートに追加された商品に基づいて他の商品を提案する。
構文
add_action('woocommerce_ajax_order_items_added', 'your_function_name', 10, 1);
パラメータ
$cart_item_data
(array): カートに追加された商品の情報。
戻り値
このアクション自体は戻り値を持ちません。
使用可能なバージョン
- WooCommerce バージョン: 3.0 以降
- WordPress バージョン: 4.0 以降
サンプルコード
サンプル 1: カートに追加されたアイテムの通知を表示
このサンプルコードは、ユーザーがカートにアイテムを追加した際に、ダイアログボックスで通知を表示します。
add_action('woocommerce_ajax_order_items_added', 'notify_item_added');
function notify_item_added($cart_item_data) {
echo '<script>alert("アイテムがカートに追加されました!");</script>';
}
引用元: なし
サンプル 2: カートのアイテムを計測
このコードは、カートに追加されたアイテムの数量を計測して、毎回データベースに保存します。
add_action('woocommerce_ajax_order_items_added', 'track_cart_item_count');
function track_cart_item_count($cart_item_data) {
$item_count = WC()->cart->get_cart_contents_count();
// データベースに保存するロジックをここに追加
}
引用元: なし
サンプル 3: 在庫の減少
このサンプルでは、カートにアイテムを追加した際に、そのアイテムの在庫を減少させる処理を行います。
add_action('woocommerce_ajax_order_items_added', 'reduce_stock_on_add');
function reduce_stock_on_add($cart_item_data) {
$product_id = $cart_item_data['product_id'];
$product = wc_get_product($product_id);
$current_stock = $product->get_stock_quantity();
if ($current_stock > 0) {
$product->set_stock_quantity($current_stock - 1);
$product->save();
}
}
引用元: なし
サンプル 4: 特定の条件でディスカウントを適用
カートに追加された商品が特定の条件を満たす場合に、自動でディスカウントを適用します。
add_action('woocommerce_ajax_order_items_added', 'apply_discount_if_conditions_met');
function apply_discount_if_conditions_met($cart_item_data) {
if ($cart_item_data['product_id'] === 123) { // 条件を満たす場合
WC()->cart->add_fee('特別割引', -10); // -10ドルの割引
}
}
引用元: なし
サンプル 5: 関連商品の提案
カートにアイテムが追加された際に関連商品を提案する機能を追加します。
add_action('woocommerce_ajax_order_items_added', 'suggest_related_products');
function suggest_related_products($cart_item_data) {
$product_id = $cart_item_data['product_id'];
$related_products = wc_get_related_products($product_id);
if (!empty($related_products)) {
// 関連商品のリストを表示するロジックをここに追加
}
}
引用元: なし
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
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 |