概要
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
フィルタを使用してカートアイテムにカスタムデータを追加する方法の例です。