un-loading https

I’m using this code in functions.php to load https on my events-manager pages:

function my_em_force_ssl( $template ) {
    if ( ! is_ssl() && em_is_event_page() ) {
        wp_redirect( str_replace( 'http:', 'https:', get_permalink() ) );
        die();
    }

    return $template;
}

add_filter( 'template_redirect', 'my_em_force_ssl', 10 );

Is there a way to unload or revert back to http when leaving those pages?

Related posts

1 comment

  1. Not tested, but give it a shot:

    function my_em_force_ssl() {
        if ( ! is_ssl() && em_is_event_page() ) {
            wp_redirect( str_replace( 'http:', 'https:', get_permalink() ) );
            exit;
        } elseif ( is_ssl() && ! em_is_event_page() && $_SERVER['REQUEST_METHOD'] === 'GET' ) {
            wp_redirect(
                str_replace( 'https:', 'http:',
                    add_query_arg(
                        $_GET, site_url( $GLOBALS['wp']->request )
                    )
                )
            );
            exit;       
        }
    }
    
    add_action( 'template_redirect', 'my_em_force_ssl', 10 );
    

    And a heads up, template_redirect is an action, so no need to accept & pass back params 🙂

Comments are closed.