概要
フィルタ woocommerce_get_checkout_order_received_url
は、WooCommerce のチェックアウトプロセスにおいて、注文が受け取られた際にリダイレクトする URL をカスタマイズするために使用されます。このフィルタは、主に以下のような機能を実装する際に役立ちます:
- お礼ページのカスタマイズ
- 特定のキャンペーンやクーポン用のページにリダイレクト
- ユーザーのサンクスページのデザイン変更
- 行動追跡用のタグを追加したい場合
- 受注確認後の特別なオファーを表示するページにリダイレクト
- 他のプラグインとの連携による特定のフローを構築
構文
add_filter( 'woocommerce_get_checkout_order_received_url', 'custom_checkout_order_received_url', 10, 2 );
パラメータ
$location
(string): デフォルトの受注確認ページの URL。$order
(WC_Order): 完了した注文オブジェクト。
戻り値
- string: 修正された受注確認ページの URL。
使用可能なプラグインWooCommerceのバージョン
- WooCommerce 2.6以上
使用可能なワードプレスのバージョン
- 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_get_checkout_order_received_url', 'redirect_after_checkout', 10, 2 );
function redirect_after_checkout( $location, $order ) {
return 'https://example.com/thank-you'; // カスタムお礼ページのURL
}
このサンプルコードは、チェックアウト後のリダイレクト先を特定のカスタムお礼ページに変更します。
サンプルコード 2: キャンペーン用の特別なページにリダイレクト
add_filter( 'woocommerce_get_checkout_order_received_url', 'campaign_redirect', 10, 2 );
function campaign_redirect( $location, $order ) {
if ( $order->get_meta( 'campaign_code' ) == 'SPRING2023' ) {
return 'https://example.com/spring-campaign'; // キャンペーン用ページ
}
return $location;
}
このコードは、特定のキャンペーンコードが使用された場合に、特定のページにリダイレクトします。
サンプルコード 3: 受注確認のトラッキング用パラメータ追加
add_filter( 'woocommerce_get_checkout_order_received_url', 'add_tracking_parameters', 10, 2 );
function add_tracking_parameters( $location, $order ) {
$tracking_param = '?ref=checkout'; // トラッキングパラメータ
return $location . $tracking_param;
}
このコードは、受注確認ページのURLにトラッキングパラメータを追加します。
サンプルコード 4: 条件に応じた異なるサンクスページを表示
add_filter( 'woocommerce_get_checkout_order_received_url', 'conditional_thank_you_page', 10, 2 );
function conditional_thank_you_page( $location, $order ) {
if ( $order->get_total() > 100 ) {
return 'https://example.com/thank-you-high'; // 高額購入者用サンクスページ
}
return 'https://example.com/thank-you-low'; // 低額購入者用サンクスページ
}
このサンプルコードは、注文金額に応じて異なるサンクスページにリダイレクトします。
サンプルコード 5: 外部サービスとの統合用リダイレクト
add_filter( 'woocommerce_get_checkout_order_received_url', 'integrate_external_service', 10, 2 );
function integrate_external_service( $location, $order ) {
// 外部サービスへデータ送信処理ここに記述
return 'https://external-service.com/redirect'; // 外部サービスへのリダイレクト
}
このコードは、外部サービスとの統合を行い、受注確認後にそのサービスにリダイレクトします。