プラグインWooCommerceのwoocommerce_shipping_rate_labelフィルタの使用方法・解説

概要

woocommerce_shipping_rate_label フィルタは、WooCommerce の配送料金のラベルを変更するために使用されます。このフィルタを使うことで、特定の条件に基づいて配送料金の表示をカスタマイズすることができます。以下はこのフィルタがよく使われる機能の例です。

  1. 配送方法名の翻訳
  2. 配送オプションにカスタムテキストを追加
  3. 配送オプションのアイコン表示
  4. 表示される価格のフォーマット変更
  5. 特定の条件下でのラベルの非表示
  6. ユーザーの地域に基づくラベルの変更

構文

add_filter( 'woocommerce_shipping_rate_label', 'custom_shipping_rate_label', 10, 2 );
  • woocommerce_shipping_rate_label: フィルターフックの名前
  • custom_shipping_rate_label: コールバック関数の名前
  • 10: 優先度(デフォルト値)
  • 2: 受け取る引数の数

パラメータ

  1. $label (string): 現在のラベル
  2. $method (WC_Shipping_Method): 配送メソッドのオブジェクト

戻り値

  • $label (string): キャンセルされた場合に変更されたラベル

プラグイン及びワードプレスのバージョン

WooCommerce: 2.0 以降
WordPress: 4.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_shipping_rate_label', 'translate_shipping_labels', 10, 2 );
function translate_shipping_labels( $label, $method ) {
    if ( $method->id === 'flat_rate' ) {
        return '平置き配送料';
    }
    return $label;
}

このコードは、フラットレート配送のラベルを日本語の「平置き配送料」に変更します。

サンプル2: 特定の条件でラベルを変更する

add_filter( 'woocommerce_shipping_rate_label', 'conditional_shipping_label', 10, 2 );
function conditional_shipping_label( $label, $method ) {
    if ( WC()->customer->get_shipping_country() === 'JP' ) {
        return '日本国内配送';
    }
    return $label;
}

このコードは、配送先が日本の場合にラベルを「日本国内配送」に変更します。

サンプル3: カスタムテキストを追加する

add_filter( 'woocommerce_shipping_rate_label', 'add_custom_text_to_shipping_label', 10, 2 );
function add_custom_text_to_shipping_label( $label, $method ) {
    return $label . ' (追加料金が発生する場合があります)';
}

このコードは、全ての配送ラベルに「(追加料金が発生する場合があります)」というテキストを追加します。

サンプル4: 配送料金にアイコンを追加する

add_filter( 'woocommerce_shipping_rate_label', 'add_icon_to_shipping_label', 10, 2 );
function add_icon_to_shipping_label( $label, $method ) {
    return '<img src="icon_url_here" alt="アイコン" /> ' . $label;
}

このコードは、各配送ラベルの前にアイコンを表示します。

サンプル5: 条件に応じてラベルを非表示にする

add_filter( 'woocommerce_shipping_rate_label', 'hide_shipping_label_in_condition', 10, 2 );
function hide_shipping_label_in_condition( $label, $method ) {
    if ( is_cart() && WC()->cart->total < 5000 ) {
        return '';
    }
    return $label;
}

このコードは、カートの合計が5000円未満の場合に配送ラベルを非表示にします。

この関数について質問する


上の計算式の答えを入力してください