WooCommerceのマイアカウントの各ページは動的に生成されているため、管理画面からページタイトルの変更ができません。プログラムコードを記述する必要があります。
というわけで、マイアカウントの各ページタイトルを任意のテキストに変更するスニペットをメモ。
マイアカウントの各ページタイトルを任意のテキストに変更
以下のコードをテーマのfunctions.phpなどに貼り付けます。
function my_the_title( $title, $id ) {
if ( is_wc_endpoint_url( 'orders' ) && in_the_loop() ) {
$title = 'My Orders';
}
elseif ( is_wc_endpoint_url( 'downloads' ) && in_the_loop() ) {
$title = 'My Downloads';
}
elseif ( is_wc_endpoint_url( 'edit-account' ) && in_the_loop() ) {
$title = 'My Account Details';
}
elseif ( is_wc_endpoint_url( 'edit-address' ) && in_the_loop() ) {
$title = 'My Addresses';
}
elseif ( is_wc_endpoint_url( 'payment-methods' ) && in_the_loop() ) {
$title = 'My Payment Methods';
}
elseif ( is_wc_endpoint_url( 'lost-password' ) && in_the_loop() ) {
$title = 'My Lost Password';
}
return $title;
}
add_filter( 'the_title', 'my_the_title', 20, 2 );
WooCommerce自体もthe_title
のフックに関数を登録しているので、念のためadd_filter
のプライオリティ値を「20」にして優先度を上げています。(WooCommerce側のプライオリティ値はデフォルトの10です。)
各々WoCommerceの設定で指定しているエンドポイントのページ毎に、$title
の文字列を適宜変更して使ってみて下さい。
補足ですが、「マイアカウント」のページは設定した固定ページのタイトル変更で可能です。
参考ページ
以下ページが参考になりました:
Change & Rename WooCommerce Endpoints in My Accounts Page
こちらのページでは独自のエンドポイント追加方法なども紹介しているので助かりますね。
2017年7月19日追記
WooCommerce Subscriptionsを使うとマイアカウントに新たに「Subscriptions」という項目が現れます。しかし、上記のコードではこのページタイトルだけ変更できません。プラグインの中身を見てみると、どうやら故意的にフックで変更できないようにされており、専用フックすら用意されていませんでした。
ですので、以下のようにテキストで判定して変更してやりましょう。
function my_the_title( $title, $id ) {
if ( in_the_loop() && is_account_page() ) {
if ( 'Subscriptions' == $title ) {
$title = '購読';
}
}
return $title;
}
add_filter( 'the_title', 'my_the_title', 20, 2 );
4行目でハードコーディングしている「Subscriptions」というテキストは現在日本語翻訳されていないので英語になっています。将来日本語対応されたり、Loco Translateなどで独自に翻訳している場合は4行目の「Subscriptions」を適宜変更する必要があります。
マイアカウントページのメニュー名も変更する場合はこちらの記事をご参考下さい。
それにしてもWooCommerceの日本語情報は少ないです。作成するECサイトが小規模ならWelcartが日本語情報もありますし使いやすいのですが、ある程度の規模ですと(特に多言語対応なら)WooCommerceがオススメです。
デフォルトでレスポンシブ対応、ダウンロード商品対応、拡張プラグインが豊富、開発者向けにカスタマイズしやすいプログラム構造になっている、と良い点が多いです。