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

概要

woocommerce_check_cart_items アクションは、WooCommerce のカート内のアイテムを確認する際にフックされるもので、カートのアイテムが変更されたときに特定の処理を追加するために使用されます。このアクションは、以下のような機能を実装するためによく使われます。

  1. カートアイテムの数量制限
  2. 特定の商品がカートに入った場合の割引適用
  3. 在庫数量のチェック
  4. 購入制限商品の通知
  5. カートの更新時にユーザーにメッセージを表示
  6. カートアイテムのカスタムフィルタリング

構文

add_action('woocommerce_check_cart_items', 'function_name');

パラメータ

このアクションには引数がありませんが、WooCommerce のカートデータにアクセスするためにグローバル変数 $woocommerce を使用することができます。

戻り値

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

互換性

  • WooCommerce バージョン: 2.1.0 以降
  • WordPress バージョン: 4.4 以降

この関数のアクションでの使用可能性

アクション 使用例
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_check_cart_items', 'limit_cart_items');

function limit_cart_items() {
    foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
        if ($cart_item['quantity'] > 10) {
            wc_add_notice('1アイテムの数量は10を超えることはできません。', 'error');
            WC()->cart->set_quantity($cart_item_key, 10);
        }
    }
}

このサンプルコードは、カート内の任意の商品が数量10を超えた場合にメッセージを表示し、数量を10にリセットする機能を実装しています。

サンプル 2: 特定商品に割引を適用

add_action('woocommerce_check_cart_items', 'apply_discount_for_special_item');

function apply_discount_for_special_item() {
    $special_item_id = 123; // 特定の商品ID
    $cart_items = WC()->cart->get_cart();

    foreach ($cart_items as $cart_item_key => $cart_item) {
        if ($cart_item['product_id'] === $special_item_id) {
            // 割引適用のロジック
            WC()->cart->add_fee('特別割引', -10);
            break;
        }
    }
}

このサンプルコードは、特定の商品がカートに入っている場合に、カートに割引料金を追加する機能を提供しています。

サンプル 3: 在庫チェックの実装

add_action('woocommerce_check_cart_items', 'check_inventory');

function check_inventory() {
    foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
        $product = wc_get_product($cart_item['product_id']);
        if (!$product->is_in_stock()) {
            wc_add_notice($product->get_name().'は在庫切れです。カートから削除しました。', 'error');
            WC()->cart->remove_cart_item($cart_item_key);
        }
    }
}

このサンプルコードは、カート内の商品の在庫をチェックし、在庫がない商品をカートから削除する機能を実装しています。

サンプル 4: 購入制限商品の通知

add_action('woocommerce_check_cart_items', 'notify_restricted_items');

function notify_restricted_items() {
    $restricted_items = [456, 789]; // 制限商品IDの配列
    foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
        if (in_array($cart_item['product_id'], $restricted_items)) {
            wc_add_notice('選択された商品には購入制限があります。', 'error');
            break;
        }
    }
}

このサンプルコードは、購入制限がある特定の商品がカートに入った場合に警告メッセージを表示する機能を提供しています。

サンプル 5: カート更新時のカスタムメッセージ表示

add_action('woocommerce_check_cart_items', 'display_custom_message_on_cart_update');

function display_custom_message_on_cart_update() {
    wc_add_notice('カートが更新されました。内容をご確認ください。', 'notice');
}

このサンプルコードは、カートが更新された時にカスタムメッセージを表示する機能を実装しています。

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


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