概要
woocommerce_shipping_address_map_url_parts
フィルタは、WooCommerceにおける配送先住所のマップURLをカスタマイズするために使用されます。これにより、ユーザーが入力した住所から生成されるマップリンクのパラメータを変更したり、追加の情報を処理することが可能です。このフィルタは特に、マップ表示や地図サービスのカスタマイズに役立つことが多いです。
以下は、このフィルタがよく使用される機能の例です:
- 住所情報のフォーマットを変更
- 地図サービスのURLに特定のクエリパラメータを追加
- 複数の地図プロバイダーをサポート
- ユーザーの所在地に基づいてマップリンクをダイナミックに生成
- リダイレクト先のURLを条件に応じて変更
- マップリンクのアイコンやスタイルを変更
このフィルタは、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を設定します。