概要
woocommerce_add_cart_item_data フィルタは、WooCommerceにおいてカートに追加される商品のデータを拡張するために使用されるフックです。このフィルタを使用することで、カートアイテムにカスタムデータを追加したり、既存のデータを変更することが可能です。このフィルタは、主に以下のような機能を実装する際に利用されます。
- カスタム商品属性の追加
- ギフトメッセージの保存
- カスタマーノートの追加
- 特別価格や割引情報の追加
- 商品購入時の追加オプションの保存
- カートアイテムに基づいたカスタム処理の実行
構文
add_filter('woocommerce_add_cart_item_data', 'custom_function_name', 10, 2);
custom_function_name: カートアイテムデータに追加するロジックを記述する関数10: フィルタの優先度(デフォルトは10)2: このフィルタに渡される引数の数
パラメータ
このフィルタには主に2つのパラメータがあります。
$cart_item_data: カートアイテムに関するデータの配列$product_id: カートに追加された商品のID
戻り値
フィルタの戻り値は、変更または追加されたカートアイテムデータの配列です。
バージョン情報
- 使用可能なプラグイン: WooCommerce
- 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_filter('woocommerce_add_cart_item_data', 'add_custom_item_data', 10, 2);
function add_custom_item_data($cart_item_data, $product_id) {
$cart_item_data['custom_attribute'] = 'value';
return $cart_item_data;
}
サンプル2: ギフトメッセージの保存
このサンプルでは、ユーザーが商品をカートに追加する際にギフトメッセージを记录します。
add_filter('woocommerce_add_cart_item_data', 'save_gift_message', 10, 2);
function save_gift_message($cart_item_data, $product_id) {
if (isset($_POST['gift_message'])) {
$cart_item_data['gift_message'] = sanitize_text_field($_POST['gift_message']);
}
return $cart_item_data;
}
サンプル3: カスタマーノートの追加
この例では、カートアイテムにカスタマーノートを追加します。
add_filter('woocommerce_add_cart_item_data', 'add_customer_note', 10, 2);
function add_customer_note($cart_item_data, $product_id) {
$cart_item_data['customer_note'] = 'Please deliver between 2-4 PM.';
return $cart_item_data;
}
サンプル4: 割引情報の追加
このサンプルコードでは、割引情報をカートアイテムに追加します。
add_filter('woocommerce_add_cart_item_data', 'add_discount_info', 10, 2);
function add_discount_info($cart_item_data, $product_id) {
$cart_item_data['discount_info'] = '10% OFF';
return $cart_item_data;
}
サンプル5: 購入オプションの保存
このサンプルでは、商品の購入時に選択された追加オプションを保存します。
add_filter('woocommerce_add_cart_item_data', 'save_custom_options', 10, 2);
function save_custom_options($cart_item_data, $product_id) {
if (isset($_POST['custom_options'])) {
$cart_item_data['custom_options'] = $_POST['custom_options'];
}
return $cart_item_data;
}
これらのサンプルコードは、woocommerce_add_cart_item_data フィルタを使用してカートアイテムにカスタムデータを追加する方法の例です。