概要
woocommerce_get_return_url
フィルタは、WooCommerceの支払い後にリダイレクトされるURLをカスタマイズするために使用されます。このフィルタは、特定の条件やニーズに基づいて、購入後のユーザーエクスペリエンスを調整する際に非常に便利です。以下は、このフィルタがよく使われる機能の例です。
- 特定のページへのリダイレクト
- カスタムURLの設定
- ユーザーレベルに応じたリダイレクト
- エラーメッセージ表示後のカスタムページ遷移
- 特定の商品の場合にのみ異なるリダイレクト
- ログインユーザーとゲストユーザーで異なるURL設定
構文
add_filter('woocommerce_get_return_url', 'custom_return_url', 10, 2);
パラメータ
$return_url
: デフォルトのリターンURL。$order
: 現在の注文オブジェクト。
戻り値
- カスタマイズされたリターンURL。
使用可能なプラグインWooCommerceのバージョン
- WooCommerce 2.1.0 以降
WordPressのバージョン
- WordPress 4.0 以降
サンプルコード
サンプル1: 特定のページにリダイレクト
このサンプルコードは、ユーザーが支払い完了後に特定のページ(例:謝辞ページ)にリダイレクトされるように設定します。
add_filter('woocommerce_get_return_url', 'redirect_to_thank_you_page', 10, 2);
function redirect_to_thank_you_page($return_url, $order) {
return site_url('/thank-you');
}
引用元: https://developer.wordpress.org/reference/hooks/woocommerce_get_return_url/
サンプル2: ログインしているユーザー用のリダイレクト
このコードは、ログインユーザーに異なるリダイレクトURLを設定します。
add_filter('woocommerce_get_return_url', 'custom_redirect_for_logged_in_users', 10, 2);
function custom_redirect_for_logged_in_users($return_url, $order) {
if (is_user_logged_in()) {
return site_url('/my-account/orders');
}
return $return_url;
}
引用元: https://developer.wordpress.org/reference/hooks/woocommerce_get_return_url/
サンプル3: カスタムパラメータを追加
このサンプルは、リターンURLにカスタムパラメータを追加します。
add_filter('woocommerce_get_return_url', 'add_custom_parameter_to_return_url', 10, 2);
function add_custom_parameter_to_return_url($return_url, $order) {
return $return_url . '?custom_param=value';
}
引用元: https://developer.wordpress.org/reference/hooks/woocommerce_get_return_url/
サンプル4: 特定の商品購入時のリダイレクト
特定の商品が購入された場合にのみ、リダイレクトURLを変更する例です。
add_filter('woocommerce_get_return_url', 'redirect_specific_product', 10, 2);
function redirect_specific_product($return_url, $order) {
foreach ($order->get_items() as $item) {
if ($item->get_product_id() == 123) { // 商品ID123の場合
return site_url('/special-page');
}
}
return $return_url;
}
引用元: https://developer.wordpress.org/reference/hooks/woocommerce_get_return_url/
サンプル5: エラー表示後の異なるリダイレクト
ユーザーがエラーが発生した際に、特定のエラーページにリダイレクトする方法です。
add_filter('woocommerce_get_return_url', 'error_redirect_to_custom_page', 10, 2);
function error_redirect_to_custom_page($return_url, $order) {
if ($order->has_status('failed')) {
return site_url('/error-page');
}
return $return_url;
}
引用元: https://developer.wordpress.org/reference/hooks/woocommerce_get_return_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 |