0; // phpcs:ignore WordPress.Security.NonceVerification.Recommended } /** * Prevent WordPress from treating Commerce7 ?page=N as WP page pagination. * * @param array $query_vars Parsed query variables. * @return array */ add_filter( 'request', function ( $query_vars ) { if ( ! c7wp_has_commerce7_pagination_query() ) { return $query_vars; } $routes = c7wp_get_frontend_route_slugs(); $is_c7_route = false; if ( ! empty( $query_vars['c7slug'] ) ) { $is_c7_route = true; } elseif ( ! empty( $query_vars['pagename'] ) && in_array( $query_vars['pagename'], $routes, true ) ) { $is_c7_route = true; } if ( $is_c7_route && isset( $query_vars['page'] ) ) { unset( $query_vars['page'] ); } return $query_vars; } ); /** * Disable canonical redirects on Commerce7 routes that use ?page=N pagination. * * @param string|false $redirect_url Canonical redirect URL. * @param string $requested_url Requested URL. * @return string|false */ add_filter( 'redirect_canonical', function ( $redirect_url, $requested_url ) { if ( ! c7wp_has_commerce7_pagination_query() ) { return $redirect_url; } if ( c7wp_is_frontend_route_request( $requested_url ) ) { return false; } return $redirect_url; }, 10, 2 ); add_filter( 'get_canonical_url', function ( $canonical_url ) { $options = get_option( 'c7wp_settings' ); if ( ! isset( $options['c7wp_frontend_routes'] ) || ! is_array( $options['c7wp_frontend_routes'] ) ) { $product_route = 'product'; $collection_route = 'collection'; } else { $product_route = $options['c7wp_frontend_routes']['product']; $collection_route = $options['c7wp_frontend_routes']['collection']; } if ( is_page( array( $product_route, $collection_route ) ) ) { return ''; } return $canonical_url; } );