WooCommerce Membershipsを使って会員割引機能を付けると、会員がログインしている状態だと商品に「Member discount!」というテキスト(HTML)が表示されます。
デフォルトだとサイトのデザインと統一感が無かったり、そもそも必要ないので削除したい、という要望があると思います。というわけでこのバッジのテキスト/HTML変更、削除するスニペットをメモ。
2017年11月27日:
WooCommerce Membershipsプラグインのアップデートが原因?か、バリエーション用フックの引数が3つから2つになっていたためコードを修正しました。
商品に付くバッジのテキスト、HTMLを変更する
以下のコードをfunctions.phpなどに記述してください。
// 「バリエーションのある商品」以外に付くバッジの変更
function my_wc_memberships_member_discount_badge( $badge, $the_post, $product ) {
$label = '会員割引';
$changed_badge = '<span class="onsale wc-memberships-member-discount">' . esc_html( $label ) . '</span>';
return $changed_badge;
}
add_filter( 'wc_memberships_member_discount_badge', 'my_wc_memberships_member_discount_badge', 10, 3 );
// 「バリエーションのある商品」に付くバッジの変更
function my_wc_memberships_variation_member_discount_badge( $badge, $product ) {
$label = '会員割引';
$changed_badge = '<span class="wc-memberships-variation-member-discount">' . esc_html( $label ) . '</span>';
return $changed_badge;
}
add_filter( 'wc_memberships_variation_member_discount_badge', 'my_wc_memberships_variation_member_discount_badge', 10, 2 );
テキストを変更したいときは$label
、HTMLを変更したい場合は$changed_badge
を適宜修正して使ってみてください。
バッジ自体を削除する
バッジの削除であればもっと簡潔なコードで対応できます。以下のコードをfunctions.phpに記述します。
// 「バリエーションのある商品」以外に付くバッジの削除
add_filter( 'wc_memberships_member_discount_badge', '__return_false' );
// 「バリエーションのある商品」に付くバッジの削除
add_filter( 'wc_memberships_variation_member_discount_badge', '__return_false' );
WooCommerceとそのプラグインは至る所にフックが用意してあるのでカスタマイズがしやすくて良いですね。