概要
woocommerce_product_add_to_cart_text
フィルタは、WooCommerceで商品をカートに追加する際のボタンテキストをカスタマイズするために使用されます。このフィルタを使うことで、商品ごとに異なるテキストを表示したり、特定の条件に基づいてテキストを動的に変更することができます。このフィルタは、特に以下のようなシナリオで役立ちます。
- 特定の商品の場合に、ボタンのテキストを変更したい。
- 在庫がある商品と在庫がない商品で、異なるテキストを表示したい。
- 「カートに追加」の代わりに「購入する」を使用したい。
- 特定のユーザーのロールに応じて異なるテキストを表示したい。
- 商品のカスタムフィールドに基づいてボタンテキストを変更したい。
- セールやプロモーションに応じて特別なテキストを表示したい。
構文
add_filter('woocommerce_product_add_to_cart_text', 'custom_add_to_cart_text', 10, 2);
パラメータ
$text
: 現在のボタンテキスト。$product
: 現在の製品のオブジェクト。
戻り値
カスタマイズされたボタンテキスト。
使用可能なWooCommerceのバージョン
このフィルタはWooCommerce 2.1以降で使用可能です。
使用可能なWordPressのバージョン
このフィルタはWordPress 4.0以降で使用可能です。
サンプルコード
サンプルコード1: 特定の製品のボタンテキストを変更
add_filter('woocommerce_product_add_to_cart_text', 'custom_single_add_to_cart_text', 10, 2);
function custom_single_add_to_cart_text($text, $product) {
if ($product->get_id() === 123) { // product ID 123
return __('Special Buy Now', 'your-text-domain');
}
return $text;
}
このコードは、特定の製品(IDが123)の場合に、ボタンテキストを「Special Buy Now」に変更します。
引用元: https://www.example.com
サンプルコード2: 在庫がない商品に異なるテキストを表示
add_filter('woocommerce_product_add_to_cart_text', 'custom_out_of_stock_text', 10, 2);
function custom_out_of_stock_text($text, $product) {
if (!$product->is_in_stock()) {
return __('Out of Stock', 'your-text-domain');
}
return $text;
}
このサンプルは、在庫がない商品の場合にボタンテキストを「Out of Stock」に変更します。
引用元: https://www.example.com
サンプルコード3: ユーザーのロールに基づいてボタンテキストを変更
add_filter('woocommerce_product_add_to_cart_text', 'custom_button_text_by_role', 10, 2);
function custom_button_text_by_role($text, $product) {
if (current_user_can('administrator')) {
return __('Admin Buy', 'your-text-domain');
}
return $text;
}
このコードは、サイトの管理者が商品を表示している場合にボタンテキストを「Admin Buy」に変更します。
引用元: https://www.example.com
サンプルコード4: セール中の商品に専用のテキストを表示
add_filter('woocommerce_product_add_to_cart_text', 'custom_sale_button_text', 10, 2);
function custom_sale_button_text($text, $product) {
if ($product->is_on_sale()) {
return __('Limited Time Offer', 'your-text-domain');
}
return $text;
}
このサンプルは、セール中の製品のボタンテキストを「Limited Time Offer」に変更します。
引用元: https://www.example.com
サンプルコード5: カスタムフィールドに基づくボタンテキストの変更
add_filter('woocommerce_product_add_to_cart_text', 'custom_button_text_by_custom_field', 10, 2);
function custom_button_text_by_custom_field($text, $product) {
$custom_field_value = get_post_meta($product->get_id(), '_custom_button_text', true);
if (!empty($custom_field_value)) {
return $custom_field_value;
}
return $text;
}
このコードは、カスタムフィールド _custom_button_text
が設定されている場合に、その値をボタンテキストとして表示します。
引用元: https://www.example.com
この関数のアクションでの使用可能性
アクション名 | 使用可能性 |
---|---|
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 |