Please can someone give me a way to register enqueue my styles but in the event that the page is SSL it loads another set of styles?
I currently use:
if ( !function_exists( 'my_main_styles' ) ) {
	function my_main_styles() {		 
        wp_register_style('simpleGrid', get_template_directory_uri() . '/simpleGrid.css');
	wp_register_style("main-styles", get_stylesheet_directory_uri() . "/style.css");	 
	wp_enqueue_style('simpleGrid'); 
	wp_enqueue_style('main-styles');
	}
}
add_action('wp_print_styles', 'my_main_styles');
so if it is SSL it should load 2 different style sheets called:
        wp_register_style('simpleGrid', get_template_directory_uri() . '/simpleGrid-https.css');
	wp_register_style("main-styles", get_stylesheet_directory_uri() . "/style-https.css");
and when these are printed in the header they should be forced to https so that they don't trigger warnings.
			
Arnav Joy answers:
								try this
<?php							
if ( !function_exists( 'my_main_styles' ) ) {
	function my_main_styles() {		 
		 if(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443){
		 		
				wp_register_style('simpleGrid', str_replace( 'http','https',get_template_directory_uri() ). '/simpleGrid-https.css');
				wp_register_style("main-styles", str_replace( 'http','https',get_template_directory_uri() ). . "/style-https.css");
				
		 }
		 else{
		 
		 	
				wp_register_style('simpleGrid', get_template_directory_uri() . '/simpleGrid.css');
		
				wp_register_style("main-styles", get_stylesheet_directory_uri() . "/style.css");	
		 
		 }
 
	wp_enqueue_style('simpleGrid'); 
	wp_enqueue_style('main-styles');
	}
}
add_action('wp_print_styles', 'my_main_styles');
julesphoto comments:
										That's seems to detect http or https but the url it generates is wrong:
<link rel='stylesheet' id='main-styles-css'  href='https://www.domain.comhttpss://www.domain.com/wp-content/themes/example/style-https.css?ver=3.6.1' type='text/css' media='all' />									
Arnav Joy comments:
										try this
<?php									
if ( !function_exists( 'my_main_styles' ) ) {
	function my_main_styles() {		 
		 if(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443){
		    
			     $new_url =  str_replace( 'http','https',get_template_directory_uri() );
		 		
				wp_register_style('simpleGrid', str_replace( 'http',$new_url. '/simpleGrid-https.css');
				wp_register_style("main-styles", str_replace( 'http',$new_url . "/style-https.css");
				
		 }
		 else{
		 
		 	
				wp_register_style('simpleGrid', get_template_directory_uri() . '/simpleGrid.css');
		
				wp_register_style("main-styles", get_stylesheet_directory_uri() . "/style.css");	
		 
		 }
 
	wp_enqueue_style('simpleGrid'); 
	wp_enqueue_style('main-styles');
	}
}
add_action('wp_print_styles', 'my_main_styles');
julesphoto comments:
										syntax error, unexpected ';' on this line:
				wp_register_style('simpleGrid', str_replace( 'http', $new_url . '/simpleGrid-https.css');									
Arnav Joy comments:
										ohh sorry
try these two 
	wp_register_style('simpleGrid',   $new_url. '/simpleGrid-https.css');
	wp_register_style("main-styles",  $new_url . "/style-https.css");
julesphoto comments:
										That still has the same issue of inserting the link wrong:
<link rel='stylesheet' id='main-styles-css' href='https://www.domain.comhttpss://www.domain.com/wp-content/themes/example/style-https.css?ver=3.6.1' type='text/css' media='all' />									
julesphoto comments:
										$protocol = is_ssl() ? 'https' : 'http';
????									
julesphoto comments:
										or
wp_redirect(preg_replace('|^https://|', 'http://',									
Arnav Joy comments:
										in my system it is working fine .
this problem is only for "main-styles-css" or for both?
are you sure there is no other code or plugin is installed to modify url?									
julesphoto comments:
										The problem is for both links.
I have this at the top of my https header.
<?php if($_SERVER["HTTPS"] != "on") {									
   header("HTTP/1.1 301 Moved Permanently");
   header("Location: https://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]);
   exit();
}
?>
Arnav Joy comments:
try removing these lines once and check
julesphoto comments:
If I remove those lines it works normally as the page is no longer being forced to SSL. So it gives me the http versions of the stylesheets.
Arnav Joy comments:
										try this , with your code enabled
$new_url = '/wp-content/themes/example';									
	
	wp_register_style('simpleGrid',   $new_url. '/simpleGrid-https.css');
	wp_register_style("main-styles",  $new_url . "/style-https.css");
	
julesphoto comments:
Thanks I figured it out!!
Hariprasad Vijayan answers:
								Try this,
if ( !function_exists( 'my_main_styles' ) ) {
	function my_main_styles() {
    wp_register_style('simpleGrid', get_template_directory_uri() . '/simpleGrid.css');
	wp_register_style("main-styles", get_stylesheet_directory_uri() . "/style.css");	 
	wp_enqueue_style('simpleGrid'); 
	wp_enqueue_style('main-styles');
	}
add_action('wp_enqueue_scripts', 'my_main_styles',99);
}
julesphoto comments:
This doesn't switch style sheets depending on http or https.