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

概要

フィルタ woocommerce_get_checkout_order_received_url は、WooCommerce のチェックアウトプロセスにおいて、注文が受け取られた際にリダイレクトする URL をカスタマイズするために使用されます。このフィルタは、主に以下のような機能を実装する際に役立ちます:

  1. お礼ページのカスタマイズ
  2. 特定のキャンペーンやクーポン用のページにリダイレクト
  3. ユーザーのサンクスページのデザイン変更
  4. 行動追跡用のタグを追加したい場合
  5. 受注確認後の特別なオファーを表示するページにリダイレクト
  6. 他のプラグインとの連携による特定のフローを構築

構文

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'; // 外部サービスへのリダイレクト
}

このコードは、外部サービスとの統合を行い、受注確認後にそのサービスにリダイレクトします。

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


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