プラグインWooCommerceのwoocommerce_format_weight関数の使用方法・解説

概要

woocommerce_format_weight関数はWooCommerceにおいて、商品重量を指定された単位でフォーマットするための関数です。主に、以下のような機能を実装する際によく使用されます:

  1. 商品詳細ページでの重量表示のカスタマイズ
  2. カート内の商品の重量表示
  3. 注文確認メールにおける商品重量の表示
  4. 配送オプションの選択時における重量の考慮
  5. プロダクトデータのエクスポート機能における重量表示
  6. 商品のフィルタリング機能における重量に基づくクエリ

構文

woocommerce_format_weight( $weight, $unit = '' );

パラメータ

  • $weight (float) – フォーマットしたい重量の値。
  • $unit (string) – 必要に応じて指定する単位(例:’kg’, ‘lb’)。

戻り値

  • (string) フォーマットされた重量の表示。

使用可能なプラグインバージョン

  • WooCommerce: 3.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_action( 'woocommerce_single_product_summary', 'display_product_weight', 20 );
function display_product_weight() {
    global $product;
    $weight = $product->get_weight();
    echo '<p>重量: ' . woocommerce_format_weight( $weight ) . '</p>';
}

引用元: https://www.wpbeginner.com

サンプル2: カート内商品の重量合計を表示

カートのフロントエンドで商品の合計重量を表示するサンプルです。

add_action( 'woocommerce_cart_totals_after_order_total', 'display_cart_total_weight' );
function display_cart_total_weight() {
    $total_weight = 0;

    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        $product = $cart_item['data'];
        $total_weight += (float) $product->get_weight() * $cart_item['quantity'];
    }

    echo '<tr><th>合計重量:</th><td>' . woocommerce_format_weight( $total_weight ) . '</td></tr>';
}

引用元: https://www.wplift.com

サンプル3: 注文確認メールへの重量追加

このコードは、注文確認メールに商品の重量を追加する例です。

add_action( 'woocommerce_email_order_meta', 'add_weight_to_order_email', 10, 3 );
function add_weight_to_order_email( $order, $sent_to_admin, $plain_text ) {
    foreach ( $order->get_items() as $item_id => $item ) {
        $product = $item->get_product();
        $weight = $product->get_weight();
        echo '商品の重量: ' . woocommerce_format_weight( $weight ) . '<br>';
    }
}

引用元: https://www.wpthemes.com

サンプル4: 配送オプションに重量を含める

配送オプションにおける重量情報を利用する例です。

add_filter( 'woocommerce_package_rates', 'customize_shipping_package_rates', 10, 2 );
function customize_shipping_package_rates( $rates, $package ) {
    $total_weight = 0;

    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
        $product = $cart_item['data'];
        $total_weight += (float) $product->get_weight() * $cart_item['quantity'];
    }

    // ここで重量に基づいて配送オプションをカスタマイズ
    // 例:重量が大きい場合は追加費用を加える等

    return $rates;
}

引用元: https://www.sitepoint.com

サンプル5: 商品リストでの重量表示

商品アーカイブページで商品の重量を一覧表示するサンプルです。

add_action( 'woocommerce_after_shop_loop_item_title', 'display_product_list_weight', 5 );
function display_product_list_weight() {
    global $product;
    $weight = $product->get_weight();
    if ( ! empty( $weight ) ) {
        echo '<span class="product-weight">重量: ' . woocommerce_format_weight( $weight ) . '</span>';
    }
}

引用元: https://www.themeisle.com

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


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