概要
woocommerce_cart___FUNCTION__
フィルタは、WooCommerceのカート機能に対してカスタマイズを行う際に利用される重要なフックです。このフィルタを使用することで、カートの内容や表示方法を自由に変更することができ、多くの機能を実装する際に役立ちます。具体的には以下のような機能に使用されることが多いです。
- カート内商品の表示項目のカスタマイズ
- クーポンコードや割引の適用処理の変更
- ユーザーごとのカートの管理
- カートの内容に基づく条件付きメッセージの表示
- カート計算ロジックの変更
- セッション管理や保存設定のカスタマイズ
構文
add_filter('woocommerce_cart___FUNCTION__', 'your_function_name', 10, 2);
パラメータ
your_function_name
: カスタマイズを行うための関数名。10
: フィルタの優先度。2
: 受け取る引数の数。
戻り値
フィルタで変更されたカートに関連するデータ。具体的な戻り値は実装内容に依存します。
使用可能なバージョン
- WooCommerceバージョン: 常に最新のものに対応
- WordPressバージョン: バージョン5.0以降が推奨されます
サンプルコード
サンプルコード1: カートにカスタムメッセージを追加
add_filter('woocommerce_cart_contents_count', 'add_custom_cart_message');
function add_custom_cart_message($count) {
if ($count > 0) {
$count .= ' items in your cart!';
}
return $count;
}
このコードは、カートのアイテム数の後に「items in your cart!」というカスタムメッセージを表示します。
サンプルコード2: 商品の小計をカスタマイズ
add_filter('woocommerce_cart_subtotal', 'custom_cart_subtotal', 10, 2);
function custom_cart_subtotal($cart_subtotal, $compound) {
return $cart_subtotal . ' (including Tax)';
}
こちらは、カート内の小計金額の後に「(including Tax)」というテキストを追加します。
サンプルコード3: カートに追加した商品の数量制限
add_filter('woocommerce_add_to_cart_validation', 'limit_product_quantity', 10, 3);
function limit_product_quantity($passed, $product_id, $qty) {
if ($qty > 5) {
wc_add_notice(__('You can only add a maximum of 5 items to your cart.'), 'error');
return false;
}
return $passed;
}
このコードは、ユーザーがカートに追加できる商品の数量を5個までに制限します。
サンプルコード4: カートの合計額にカスタムフィーを追加
add_action('woocommerce_cart_calculate_fees', 'add_custom_fee');
function add_custom_fee() {
global $woocommerce;
$percentage = 5; // 5% custom fee
$fee = ($woocommerce->cart->cart_contents_total + $woocommerce->cart->tax_total) * ($percentage / 100);
$woocommerce->cart->add_fee(__('Custom Fee', 'woocommerce'), $fee);
}
カート合計に対してカスタムフィーを追加するコードです。合計の5%を新しい手数料として追加します。
サンプルコード5: カートの更新時にメッセージを表示
add_action('woocommerce_cart_updated', 'cart_updated_message');
function cart_updated_message() {
wc_add_notice(__('Your cart has been updated.'), 'success');
}
このコードは、ユーザーがカートを更新した際に成功メッセージを表示します。
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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 |