';
// HTML of the divider in case the buttons are below the login fields
if(!empty($divider_pos) && $divider_pos == 'above'){
$social_buttons .= '
OR
';
}
include_once LOGINIZER_DIR . '/main/login-providers.php';
foreach($providers as $provider => $settings){
if(empty($settings['enabled']) || empty($settings['tested'])){
continue;
}
// Filters Pro Only Auth
if(!empty($loginizer_login_providers[$provider]['premium']) && !defined('LOGINIZER_PREMIUM')){
continue;
}
$name = $loginizer_login_providers[$provider]['name'];
$color = $loginizer_login_providers[$provider]['color'];
$btn_style = 'default';
if(!empty($provider_settings[$provider]['button_style'])){
$btn_style = $provider_settings[$provider]['button_style'];
}
// TODO:: Improve the comment here
// The image is named based on button style as Facebook has different images for different style
// And if some more social options are added they could have the same behaviour too.
$img_url = LOGINIZER_URL .'/assets/images/social/'.$provider.'.png';
if('default' !== $btn_style){
if(file_exists(LOGINIZER_DIR .'/assets/images/social/'.$provider.'-'.$btn_style.'.png')){
$img_url = LOGINIZER_URL .'/assets/images/social/'.$provider.'-'.$btn_style.'.png';
}
}
$social_buttons .= '
';
}
if(empty($social_buttons)){
$social_buttons .= esc_html__('No Auth Provider configured', 'loginizer');
}
// HTML of the divider in case the buttons are above the login fields
if(!empty($divider_pos) && $divider_pos == 'below'){
$social_buttons .= '
OR
';
}
$social_buttons .= '
';
loginizer_add_social_js($page_type);
if($return){
return $social_buttons;
}
echo wp_kses($social_buttons, [
'div' => ['class' => true, 'id' => true, 'style' => true, 'onclick' => true],
'img' => ['src' => true, 'height' => true, 'alt' => true, 'width' => true],
'strong' => true,
]);
}
function loginizer_add_social_js($page_type){
global $loginizer;
if(wp_script_is('loginizer-social-js') || loginizer_is_blacklisted() || !empty($loginizer['social_script_added'])){
return;
}
$loginizer['social_script_added'] = false;
$func = 'append';
if(!empty($loginizer['social_settings']) && !empty($loginizer['social_settings'][$page_type]['button_position']) && strpos($loginizer['social_settings'][$page_type]['button_position'], 'above') !== FALSE){
$func = 'prepend';
}
$target_window = 'same';
if(isset($_GET['interim-login']) && $_GET['interim-login'] == 1){
$target_window = 'popup';
} elseif(!empty($loginizer['social_settings']['general']['target_window'])){
$target_window = $loginizer['social_settings']['general']['target_window'];
}
$social_nonce = wp_create_nonce('loginizer_social_check');
wp_register_script('loginizer-social-js', '', ['jquery'], LOGINIZER_VERSION, ['strategy' => false, 'in_footer' => true]);
wp_enqueue_script('loginizer-social-js');
wp_add_inline_script('loginizer-social-js', '
let lz_form = document.querySelectorAll("#loginform, #registerform, .woocommerce-form-login, .woocommerce-form-register, #front-login-form, #setupform"),
lz_social_btns = document.querySelectorAll("#lz-social-login-btns"),
lz_target_window = "'.esc_html($target_window).'",
lz_is_interim = "'.(!empty($_GET['interim-login']) ? '&interim-login=0' : '').'"; // as for interim it should only open a popup
if(lz_target_window == "same"){
let loader = "";
loader += "