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

概要

woocommerce_order_get_formatted_shipping_address フィルタは、WooCommerceで注文の配送先住所を加工・整形するために使用されるフックです。このフィルタを利用することで、配送先住所のフォーマットを変更したり、独自のフィールドを追加したりすることができます。

よく使われる機能の例は以下の通りです:

  1. 配送先住所に特定のテキストを追加する
  2. 郵便番号の表記をカスタマイズする
  3. 配送先住所の順序を変更する
  4. 特定の条件に基づいて住所情報を変更する
  5. 配送業者に合わせた住所形式で出力する
  6. 管理画面や顧客向けのメールで見やすい住所形式にカスタマイズする

このフィルタは、WooCommerceのすべてのバージョンで利用可能で、WordPressのバージョン4.0以上で動作します。

構文

add_filter( 'woocommerce_order_get_formatted_shipping_address', 'custom_function_name', 10, 2 );

パラメータ

  • $address (array): 整形された配送先住所の配列。
  • $order (WC_Order): 対象の注文オブジェクト。

戻り値

  • 整形された配送先住所の文字列。

この関数のアクションでの使用可能性

アクション 使用例
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_order_get_formatted_shipping_address', 'add_custom_text_to_shipping_address', 10, 2 );

function add_custom_text_to_shipping_address( $address, $order ) {
    $address .= '<br>特記事項: お届け先の注意点をここに記載。';
    return $address;
}

このサンプルは、配送先住所の末尾に「特記事項: お届け先の注意点をここに記載。」というテキストを追加します。

サンプル2: 郵便番号の形式をカスタマイズ

add_filter( 'woocommerce_order_get_formatted_shipping_address', 'customize_postal_code_format', 10, 2 );

function customize_postal_code_format( $address, $order ) {
    // 郵便番号部分の整形
    $address = str_replace( '〒', '', $address );
    return $address;
}

このサンプルは、日本の郵便番号形式である「〒」を削除し、整形します。

サンプル3: 配送先住所の順序を変更

add_filter( 'woocommerce_order_get_formatted_shipping_address', 'reorder_shipping_address', 10, 2 );

function reorder_shipping_address( $address, $order ) {
    $address_parts = explode( '<br>', $address );
    // 配送先の都道府県を最初に表示
    $new_address = $address_parts[2] . '<br>' . implode( '<br>', $address_parts );

    return $new_address;
}

このサンプルは、配送先住所の都道府県を最初に表示するように順序を変更します。

サンプル4: 特定の条件に基づいて住所情報を変更

add_filter( 'woocommerce_order_get_formatted_shipping_address', 'conditional_shipping_address_formatting', 10, 2 );

function conditional_shipping_address_formatting( $address, $order ) {
    if ( $order->get_meta( 'special_shipping' ) ) {
        $address = '<strong>特別配達:</strong><br>' . $address;
    }
    return $address;
}

このサンプルは、特定のメタ情報(特別配達)を持つ場合に、配送先住所に「特別配達:」というラベルを追加します。

サンプル5: 配送業者に合わせた住所形式で出力

add_filter( 'woocommerce_order_get_formatted_shipping_address', 'format_address_for_courier', 10, 2 );

function format_address_for_courier( $address, $order ) {
    $address = str_replace( '<br>', ' | ', $address ); // 住所の区切りを変更
    return $address;
}

このサンプルは、住所の区切りを <br> から | に変更し、特定の配送業者向けにフォーマットを調整します。

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


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