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

概要

woocommerce_account_endpoint_page_not_foundフィルタは、WooCommerceプラグインにおいて、未定義のアカウントエンドポイントが訪問された際に発動されるフックです。このフィルタを使用することで、404エラーページをカスタマイズしたり、特定のアクションを実行したりすることができます。以下のような機能を実装する際によく利用されます:

  1. カスタム404エラーページの表示
  2. ユーザーに特定のメッセージを表示
  3. カスタムリダイレクト処理
  4. エラーログの記録
  5. ヘルプページへの誘導
  6. アカウント情報の安全性を確保する警告表示

構文

add_filter( 'woocommerce_account_endpoint_page_not_found', 'your_custom_function', 10, 2 );

パラメータ

  • $is_found (bool): エンドポイントが見つかったかどうかの真偽値。
  • $endpoint (string): リクエストされたエンドポイント名。

戻り値

  • (mixed): フィルタ処理後の任意の返り値。通常はHTMLコンテンツを返す。

使用可能なプラグインバージョン

  • WooCommerceのバージョン: 3.0以上
  • 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_account_endpoint_page_not_found', function() {
    wp_redirect( home_url() );
    exit;
});

このサンプルコードは、未知のエンドポイントがリクエストされた時に、ユーザーをホームページにリダイレクトします。

サンプルコード2

add_filter( 'woocommerce_account_endpoint_page_not_found', function( $is_found, $endpoint ) {
    if ( $endpoint === 'custom-endpoint' ) {
        return '<h1>カスタムエラーページ</h1><p>このページは存在しません。</p>';
    }
    return $is_found;
});

このコードは、特定のカスタムエンドポイントに対してカスタムエラーページを表示します。

サンプルコード3

add_filter( 'woocommerce_account_endpoint_page_not_found', function() {
    error_log( '存在しないエンドポイントがリクエストされました。' );
});

このサンプルコードは、未定義のエンドポイントがリクエストされた際にエラーログを記録します。

サンプルコード4

add_filter( 'woocommerce_account_endpoint_page_not_found', function() {
    return '<h1>404 - ページが見つかりません</h1><p>あなたが探しているページは見つかりませんでした。</p>';
});

このコードは、404エラーページにカスタムメッセージを表示します。

サンプルコード5

add_filter( 'woocommerce_account_endpoint_page_not_found', function( $is_found, $endpoint ) {
    if ( $endpoint === 'help' ) {
        return '<h1>ヘルプページ</h1><p>必要な情報が見つからない場合、サポートチームにお問い合わせください。</p>';
    }
    return $is_found;
});

このサンプルコードは、「help」エンドポイントがリクエストされた場合にサポートページへのメッセージを表示します。

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


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