Support » Plugin: WooCommerce » WooCommerce get_author_posts_url() redirecting to shop base

  • I’ve noticed that when I have WooCommerce enabled and use get_author_posts_url() it automatically redirects to the ‘shop base’ when the user’s role is Customer.

    When I change the user to Subscriber get_author_posts_url() works correctly.

    I’ve disabled all plugins to systematically identify what was causing the issue and can confirm that it’s only when WooCommerce is enabled. I’ve also flushed rewrites. I’ve also even tried using $user->add_role( 'subscriber' ) to the user’s capabability array.

    Does anyone know why this is happening and how I can suppress it? (i.e. don’t redirect get_author_posts_url() for users with a customer role.

    Thanks in advance!

Viewing 2 replies - 1 through 2 (of 2 total)
  • I found!

    So in WooCommerce, this is achieved by the following code in wp-content/plugins/woocommerce/includes/wc-user-functions.php:

     * Disable author archives for customers.
     * @since 2.5.0
    function wc_disable_author_archives_for_customers() {
    	global $wp_query, $author;
    	if ( is_author() ) {
    		$user = get_user_by( 'id', $author );
    		if ( isset( $user->roles[0] ) && 'customer' === $user->roles[0] ) {
    			wp_redirect( wc_get_page_permalink( 'shop' ) );
    add_action( 'template_redirect', 'wc_disable_author_archives_for_customers' );

    In your theme’s functions.php (or somewhere else appropriate), you could turn that off:

    /* This removes the function that redirects customers to the shop page */
    function enable_author_archives_for_customers() {
      remove_action('template_redirect', 'wc_disable_author_archives_for_customers');
    add_action( 'after_setup_theme', 'enable_author_archives_for_customers' );

    Thanks @pmariano

    I tested that out and it works perfectly!

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘WooCommerce get_author_posts_url() redirecting to shop base’ is closed to new replies.