回答:
これをfunctions.php
ファイルに入れてください:
function wpse_131562_redirect() {
if (
! is_user_logged_in()
&& (is_woocommerce() || is_cart() || is_checkout())
) {
// feel free to customize the following line to suit your needs
wp_redirect(home_url());
exit;
}
}
add_action('template_redirect', 'wpse_131562_redirect');
それは何をするためのものか?ログインし
ていないユーザーがWooCommerceページを表示するかどうかを確認し、ホームページにリダイレクトします。
リダイレクトを変更しました
wp_redirect( site_url('my-account/') )
そのため、ログインまたは登録されていない場合、ユーザーは[マイアカウント]ページにリダイレクトされます。
My Account
ページにリダイレクトするのに最適な方法ではありません。WooCommerceの設定でリンクした[マイアカウント]ページのパーマリンクを取得することをお勧めします。この方法では、パーマリンクが変更されたり、パーマリンクを実行している多言語サイトがある場合は常に正しく取得されます。要するに、パーマリンク/スラッグ(またはURL全般)をハードコーディングしない方が良いでしょう。より良い方法は、次のようになりますwp_redirect( get_permalink( get_option( 'woocommerce_myaccount_page_id' ) ) );
これに変更します
wp_safe_redirect( wc_get_page_permalink( 'myaccount' ) );
の代わりに
wp_redirect( site_url('my-account/') );