概要
woocommerce_loop_add_to_cart_args
フィルタは、WooCommerce の商品ループ内での「カートに追加」ボタンの引数を変更するためのフックです。このフィルタを使うことで、ボタンのラベルや CSS クラス、その他の属性を簡単にカスタマイズできます。具体的には以下のような機能を実装する際によく使われます:
- カートに追加ボタンのラベルを変更
- ボタンのスタイルやクラスを変更
- ボタンの動作をカスタマイズ(JavaScriptなどの追加)
- 特定の条件に基づいてボタンを条件付きで表示
- 簡単なメッセージ通知の追加
- 商品の売り切れ時のボタンの変更
構文
add_filter('woocommerce_loop_add_to_cart_args', 'custom_add_to_cart_args', 10, 2);
パラメータ
$args
: 変更可能な引数の配列$product
: 現在の商品のオブジェクト
戻り値
フィルタを通過した $args
配列が戻り値となります。
使用可能なプラグインとバージョン
- WooCommerce バージョン: 4.0以上
- WordPress バージョン: 5.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_loop_add_to_cart_args', 'change_add_to_cart_label', 10, 2);
function change_add_to_cart_label($args, $product) {
$args['text'] = __('Add to my cart', 'woocommerce');
return $args;
}
このサンプルは、商品のカートに追加ボタンのテキストを「Add to my cart」に変更します。
サンプル 2: ボタンにカスタムクラスを追加する
add_filter('woocommerce_loop_add_to_cart_args', 'add_custom_class_to_cart_button', 10, 2);
function add_custom_class_to_cart_button($args, $product) {
$args['class'] .= ' custom-button-class';
return $args;
}
このサンプルは、カートに追加ボタンに「custom-button-class」というカスタムクラスを追加します。
サンプル 3: 特定の商品タイプのボタンを変更する
add_filter('woocommerce_loop_add_to_cart_args', 'change_button_for_product_type', 10, 2);
function change_button_for_product_type($args, $product) {
if ($product->get_type() === 'simple') {
$args['text'] = __('Buy Now', 'woocommerce');
}
return $args;
}
このサンプルは、シンプル商品タイプの場合にカートに追加ボタンのテキストを「Buy Now」に変更します。
サンプル 4: 売り切れ商品用のボタンラベルを変更する
add_filter('woocommerce_loop_add_to_cart_args', 'change_button_label_for_out_of_stock', 10, 2);
function change_button_label_for_out_of_stock($args, $product) {
if (!$product->is_in_stock()) {
$args['text'] = __('Out of Stock', 'woocommerce');
}
return $args;
}
このサンプルでは、在庫がない場合のボタンラベルを「Out of Stock」に変更します。
サンプル 5: ボタンにデータ属性を追加する
add_filter('woocommerce_loop_add_to_cart_args', 'add_data_attributes_to_cart_button', 10, 2);
function add_data_attributes_to_cart_button($args, $product) {
$args['attributes']['data-custom'] = 'my-custom-value';
return $args;
}
このサンプルは、「カートに追加」ボタンにデータ属性 data-custom
を追加します。