概要
woocommerce_account_endpoint_page_not_found
フィルタは、WooCommerceプラグインにおいて、未定義のアカウントエンドポイントが訪問された際に発動されるフックです。このフィルタを使用することで、404エラーページをカスタマイズしたり、特定のアクションを実行したりすることができます。以下のような機能を実装する際によく利用されます:
- カスタム404エラーページの表示
- ユーザーに特定のメッセージを表示
- カスタムリダイレクト処理
- エラーログの記録
- ヘルプページへの誘導
- アカウント情報の安全性を確保する警告表示
構文
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」エンドポイントがリクエストされた場合にサポートページへのメッセージを表示します。