私は現在ウーコマースを使用していて、誰もログインしていないユーザーをホームページにリダイレクトしたいと思っています
私は調査を行い、is_user_logged_in()を使用してユーザーがログインしているかどうかを確認できると判断しました。
私はwoocommerce/woocommerce-functions.phpに実装しようとしました
// When default permalinks are enabled, redirect shop page to post type archive url
if (is_user_logged_in() && isset($_GET['page_id']) && $_GET['page_id'] > 0 && get_option( 'permalink_structure' )=="" && $_GET['page_id'] == woocommerce_get_page_id('shop') ) :
wp_safe_redirect( get_post_type_archive_link('product') );
exit;
endif;
それでも、ページを表示することはできます
あなたは、リダイレクトを有効にしたいWooページのページテンプレートの先頭に、関数ファイルではなくコードを挿入したいと思うでしょう。そのため、たとえば、個々の商品ページにアクセスしようとしたときにユーザーをリダイレクトしたい場合は、プラグイン - > woocommerce - > templates - > single-product.phpページの一番上に表示することができます。
ただし、テンプレートを編集するときは、コピーを作成してテーマディレクトリに配置することをお勧めします。これにより、Wooが更新されたときに変更内容が上書きされることはありません。だから私は上記の例では(私のテーマに適用)。私はsingle-product.phpをコピーしてそれをthemes-> agencyファイルに入れてからそのファイルに変更を加えます。そうすれば、あなたのテーマはWooテンプレートファイルの中のファイルの前に常にそのファイルを使うでしょう。
まず最初に他人のプラグインやコアワードプレスファイルを編集しないでください。
きれいなフォーマットはIDEコードの強調表示、中括弧のマッチング、構文チェッカー、その他の便利なツールを壊すので、きれいなフォーマットではなく中括弧を使う
それで、このコードを入れてください:
// When default permalinks are enabled, redirect shop page to post type archive url
if (is_user_logged_in() && isset($_GET['page_id']) && $_GET['page_id'] > 0 && get_option( 'permalink_structure' )=="" && $_GET['page_id'] == woocommerce_get_page_id('shop') ) {
wp_redirect( get_post_type_archive_link('product') );
die();
}
どちらかで:
コードfunctions.php
を使用してください。
add_filter('woocommerce_login_redirect', 'wc_login_redirect');
function wc_login_redirect( $redirect_to ) {
$redirect_to = 'https://www.example.com/';
return $redirect_to;
}