The problem is that the popup need to access the opener screen which is http. Javascript blocks requests when frames uses different protocols.
I think we can trick the url to let the invitations send but they opener window will not be updated saying that the messages were sent.
Take a look to:
$.post(window.opener.WsiMyAjax.admin_url, $('#collect_emails').serialize(), function(response){
$('#<?php echo $_GET['widget_id'];?> #<?php echo $provider;?>-provider',window.opener.document).addClass('completed');
$('#<?php echo $_GET['widget_id'];?> #wsi_provider',window.opener.document).html('<?php echo ucfirst($provider);?>');
$('#<?php echo $_GET['widget_id'];?> .wsi_success',window.opener.document).fadeIn('slow',function(){
window.self.close();
<?php if( isset( $settings['redirect_url']) && $settings['redirect_url'] != '' ) :?>
window.opener.location.href = '<?php echo $settings['redirect_url'];?>';
<?php endif;?>
});
We could change the window.opener.WsiMyAjax.admin_url with <?php echo admin_url( ‘admin-ajax.php’,’https’ );?> and the messages will go but the other parts that uses window.openener.document won’t
The frontend of your site will remain http?