// Catch Unauth Private Pages And Redirect To Woo Login
add_action( 'template_redirect', function() {
// Skip Authenticated Users
if( is_user_logged_in() ) {
return;
}
// Privately Published Page
$object = get_queried_object();
if( $object && isset( $object->post_status ) && $object->post_status == 'private' ) {
// Redirect To WooCommerce Login
wp_redirect(
get_permalink(
get_option( 'woocommerce_myaccount_page_id' )
) . '?ccom_redirect=' . urlencode( get_permalink( $object->ID ) )
);
}
} );
// Woo Login Redirect To Referrer
add_filter( 'woocommerce_login_redirect', function( $url ) {
if( isset( $_REQUEST['ccom_redirect'] ) ) {
return esc_url( $_REQUEST['ccom_redirect'] );
}
return $url;
} );
Private pages redirect to my-account login
Redirect unauthenticated traffic on private pages redirect to WooCommerce my-account login, then redirect back once they’re authenticated.
How to use
- Log into a staging, development, or locally hosted clone of your site
- Install and activate Code Snippets
- WP Admin > Snippets > Add New
- Copy and paste the code from the Description tab above
- Check to ensure formatting came over properly and no syntax errors show up in the editor
- Customize the code as desired
- Add a meaningful title
- Select whether to run on front-end or back-end (or both)
- Click “Save and Activate”
- Test your site to ensure it works
- Disable if any problems, or recover
- Repeat for live environment
License
All code snippets are licensed GPLv2 (or later) matching WordPress licensing.
Disclaimer of warranty:
Except when otherwise stated in writing the copyright holders and/or other parties provide the program as-is without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
Support
- Describe the issue and what you’ve observed.
- Describe your expected outcome(s).
- List steps to reproduce the issue.
- Optionally provide screen-shot or video URLs.
- Email to [email protected]
