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

概要

woocommerce_shipping_address_map_url_parts フィルタは、WooCommerceにおける配送先住所のマップURLをカスタマイズするために使用されます。これにより、ユーザーが入力した住所から生成されるマップリンクのパラメータを変更したり、追加の情報を処理することが可能です。このフィルタは特に、マップ表示や地図サービスのカスタマイズに役立つことが多いです。

以下は、このフィルタがよく使用される機能の例です:

  1. 住所情報のフォーマットを変更
  2. 地図サービスのURLに特定のクエリパラメータを追加
  3. 複数の地図プロバイダーをサポート
  4. ユーザーの所在地に基づいてマップリンクをダイナミックに生成
  5. リダイレクト先のURLを条件に応じて変更
  6. マップリンクのアイコンやスタイルを変更

このフィルタは、WooCommerceのバージョン4.0以上、およびWordPressのバージョン5.0以上で使用可能です。

構文

add_filter( 'woocommerce_shipping_address_map_url_parts', 'custom_map_url_parts_function', 10, 2 );

パラメータ

  • $parts (array): マップURLを構成するパーツの配列。
  • $order (WC_Order): WooCommerceの注文オブジェクト。

戻り値

  • (array): 修正されたマップURLのパーツの配列。

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

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

function customize_shipping_address_map_url( $parts, $order ) {
    // 特定の住所に基づいて地図サービスのプロバイダーを変更する
    if ( $order->get_shipping_country() === 'US' ) {
        $parts['service'] = 'google';
    }
    return $parts;
}

このサンプルコードは、アメリカ合衆国の住所に対してGoogleマップのサービスを特定するために地図サービスの部分を変更しています。

サンプルコード 2

add_filter( 'woocommerce_shipping_address_map_url_parts', 'add_custom_query_param', 10, 2 );

function add_custom_query_param( $parts, $order ) {
    // マップURLに新しいクエリパラメータを追加する
    $parts['query'] .= '&utm_source=woocommerce';
    return $parts;
}

このサンプルコードは、生成されるマップURLにトラッキング用のクエリパラメータを追加しています。

サンプルコード 3

add_filter( 'woocommerce_shipping_address_map_url_parts', 'format_address_output', 10, 2 );

function format_address_output( $parts, $order ) {
    // 住所を整形してマップに表示する
    $parts['address'] = urlencode( $order->get_formatted_shipping_address() );
    return $parts;
}

このサンプルコードは、整形された配送先住所をマップURLにエンコードして追加しています。

サンプルコード 4

add_filter( 'woocommerce_shipping_address_map_url_parts', 'set_default_map_provider', 10, 2 );

function set_default_map_provider( $parts, $order ) {
    // デフォルトのマッププロバイダーを設定
    $parts['service'] = 'openstreetmap';
    return $parts;
}

このサンプルコードは、すべてのマップURLのデフォルトのプロバイダーをOpenStreetMapに設定しています。

サンプルコード 5

add_filter( 'woocommerce_shipping_address_map_url_parts', 'conditional_map_link', 10, 2 );

function conditional_map_link( $parts, $order ) {
    // 住所の種類によって異なるマップURLを返す
    if ( strpos( $order->get_shipping_address_1(), 'Suite' ) !== false ) {
        $parts['address'] = 'https://maps.example.com/suite-address'; 
    }
    return $parts;
}

このサンプルコードは、住所に「Suite」が含まれている場合に異なるマップURLを設定します。

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


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