[WooCommerce Memberships]商品に付くバッジのテキスト、HTMLを変更・削除する

  • 更新日:
  • 公開日:

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とそのプラグインは至る所にフックが用意してあるのでカスタマイズがしやすくて良いですね。

書いた人

Symbol Mark

Ryoichi(しつ)

除菌ティッシュを買い込んで使いきれずによく乾かす人。

療養目的で退職し、どうやって生きていくか模索中。最近は勉強目的でLaravelやVue.js弄ったり、趣味で音で遊んでます。

※2019年10月16日現在ブログリニューアル中です。崩れなどが発生していたらすみません。

うぇぶ: @s_ryone