概要
woocommerce_cart_item_set_quantity
アクションは、WooCommerce のカート内のアイテムの数量が変更されたときに実行されるフックです。このフックを使用することで、カート内のアイテムの数量が変更された際に、その数量に基づいてさまざまな処理を行うことができます。
このアクションは以下のような機能を実装する際によく使われます:
- カートアイテム数量変更時の在庫確認
- ユーザーへのメッセージ出力
- 特定条件下での割引適用
- カスタムデータの保存
- 数量変更時のトラッキング
- 他のプラグインとの連携
構文
add_action('woocommerce_cart_item_set_quantity', 'your_custom_function', 10, 3);
パラメータ
$cart_item_key
(string): カートアイテムのキー。$quantity
(int): 新しい数量。$cart
(array): 現在のカートの内容。
戻り値
このアクション自体は値を返しませんが、フック内での処理に応じて、カートの状態やデータに影響を与えることができます。
バージョン
- WooCommerce: 3.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_cart_item_set_quantity', 'check_inventory_on_quantity_change', 10, 3);
function check_inventory_on_quantity_change($cart_item_key, $quantity, $cart) {
$product = $cart[$cart_item_key]['data'];
if ($quantity > $product->get_stock_quantity()) {
wc_add_notice(__('Stock is insufficient for this product.', 'woocommerce'), 'error');
}
}
サンプルコード 2: ユーザーメッセージの表示
このコードは、ユーザーがカート内のアイテム数量を変更した際に、カスタムメッセージを表示します。
add_action('woocommerce_cart_item_set_quantity', 'display_custom_message_on_quantity_change', 10, 3);
function display_custom_message_on_quantity_change($cart_item_key, $quantity, $cart) {
wc_add_notice(__('You have updated the quantity!', 'woocommerce'), 'success');
}
サンプルコード 3: 割引の適用
このコードでは、特定の数量以上に変更された場合に、自動的に割引を適用します。
add_action('woocommerce_cart_item_set_quantity', 'apply_discount_on_bulk_purchase', 10, 3);
function apply_discount_on_bulk_purchase($cart_item_key, $quantity, $cart) {
if ($quantity >= 10) {
$cart[$cart_item_key]['data']->set_price(9.99); // 例えば、1つの価格を9.99に設定
}
}
サンプルコード 4: カスタムフィールドの保存
このコードは、数量変更時にカスタムフィールドを保存する例です。
add_action('woocommerce_cart_item_set_quantity', 'save_custom_field_on_quantity_change', 10, 3);
function save_custom_field_on_quantity_change($cart_item_key, $quantity, $cart) {
update_post_meta($cart[$cart_item_key]['product_id'], 'custom_quantity_field', $quantity);
}
サンプルコード 5: トラッキング
このコードでは、カート内の数量が変更されたときに、そのイベントをトラッキングするための処理を行います。
add_action('woocommerce_cart_item_set_quantity', 'track_quantity_change_event', 10, 3);
function track_quantity_change_event($cart_item_key, $quantity, $cart) {
// トラッキングのための処理をここに記述
error_log('Cart item quantity changed for item: ' . $cart_item_key . ' to ' . $quantity);
}
これらのサンプルコードは、WooCommerceの機能を拡張したり、特定の処理を実施する際に役立ちます。