.hr-title, .gap-30, .gap-10 {display: none;}
.kleo-facebook-connect.btn.btn-default {
background-color: #3b5997;
border-color: #2b4780;
color: #fff;
border-radius: 2px;
font-size: 13px;
font-weight: normal;
margin: 3px 0;
min-width: 80px;
transition: all 0.4s ease-in-out 0s;
cursor: pointer;
display: inline-block;
line-height: 1.42857;
padding: 6px 12px;
text-align: center;
text-decoration: none;
vertical-align: middle;
white-space: nowrap;
}
';
}
}
if ( sq_option( 'facebook_login', 0 ) == 1 ) {
add_action( 'kleo_after_body', 'kleo_fb_head' );
add_action( 'login_head', 'kleo_fb_head' );
add_action( 'login_head', 'kleo_fb_loginform_script' );
add_action( 'wp_footer', 'kleo_fb_footer', 99 );
add_action( 'login_footer', 'kleo_fb_footer', 99 );
}
if ( ! function_exists( 'kleo_fb_intialize' ) ) {
function kleo_fb_intialize()
{
/* If not our action, bail out */
if (!isset($_POST['action']) || (isset($_POST['action']) && $_POST['action'] != 'fb_intialize')) {
return false;
}
@error_reporting(0); // Don't break the JSON result
header('Content-type: application/json');
if (is_user_logged_in()) {
die(wp_json_encode(array('error' => __('You are already logged in.', 'kleo_framework'))));
}
if (!isset($_REQUEST['FB_response']) || !isset($_REQUEST['FB_userdata'])) {
die(wp_json_encode(array('error' => __('Authentication required.', 'kleo_framework'))));
}
$FB_response = $_REQUEST['FB_response'];
$FB_userdata = $_REQUEST['FB_userdata'];
$FB_userid = $FB_userdata['id'];
if (!$FB_userid) {
die(wp_json_encode(array('error' => __('Please connect your facebook account.', 'kleo_framework'))));
}
global $wpdb;
//check if we already have matched our facebook account
$user_ID = $wpdb->get_var("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '_fbid' AND meta_value = '$FB_userid'");
$redirect = '';
$redirect_type = 'redirect';
//if facebook is not connected
if (!$user_ID) {
$user_email = $FB_userdata['email'];
$user_ID = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_email = '" . $wpdb->escape($user_email) . "'");
//Register user
if (!$user_ID) {
if (!get_option('users_can_register')) {
die(wp_json_encode(array('error' => __('Registration is not open at this time. Please come back later.', 'kleo_framework'))));
}
if (sq_option('facebook_register', 0) == 0) {
die(wp_json_encode(array('error' => __('Registration using Facebook is not currently allowed. Please use our Register page', 'kleo_framework'))));
}
extract($FB_userdata);
$display_name = $name;
$first_name = '';
$last_name = '';
$name_array = explode(' ', $name, 2);
$first_name = $name_array[0];
if (isset($name_array[1])) {
$last_name = $name_array[1];
}
if (empty($verified) || !$verified) {
die(wp_json_encode(array('error' => __('Your facebook account is not verified. You have to verify your account before proceed login or registering on this site.', 'kleo_framework'))));
}
$user_email = $email;
if (empty($user_email)) {
die(wp_json_encode(array('error' => __('Please click again to login with Facebook and allow the application to use your email address', 'kleo_framework'))));
}
if (empty($name)) {
die(wp_json_encode(array(
'error' => 'empty_name',
__('We didn\'t find your name. Please complete your facebook account before proceeding.', 'kleo_framework')
)));
}
$user_login = sanitize_title_with_dashes(sanitize_user($display_name, true));
if (username_exists($user_login)) {
$user_login = $user_login . time();
}
$user_pass = wp_generate_password(12, false);
$userdata = compact('user_login', 'user_email', 'user_pass', 'display_name', 'first_name', 'last_name');
$userdata = apply_filters('kleo_fb_register_data', $userdata);
$user_ID = wp_insert_user($userdata);
if (is_wp_error($user_ID)) {
die(wp_json_encode(array('error' => $user_ID->get_error_message())));
}
if (sq_option('facebook_sent_email_login_details', '1') == '1') {
//send email with password
wp_new_user_notification($user_ID, wp_unslash($user_pass));
}
//add Facebook image
update_user_meta($user_ID, 'kleo_fb_picture', 'https://graph.facebook.com/' . $id . '/picture');
do_action('fb_register_action', $user_ID);
do_action('user_register', $user_ID);
update_user_meta($user_ID, '_fbid', $id);
$logintype = 'register';
/* Registration logic redirect */
if (function_exists('bp_is_active') && sq_option('facebook_register_redirect', 'default') == 'default') {
$redirect_url = bp_core_get_user_domain($user_ID) . 'profile/edit/group/1/?fb=registered';
} elseif (sq_option('facebook_register_redirect', 'default') == 'reload') {
$redirect_type = 'reload';
$redirect_url = home_url();
} elseif (sq_option('facebook_register_redirect', 'default') == 'custom') {
$redirect_url = sq_option('facebook_register_redirect_url', '');
if (function_exists('bp_is_active')) {
$logged_in_link = bp_core_get_user_domain($user_ID);
$redirect_url = str_replace('##profile_link##', $logged_in_link, $redirect_url);
}
}
if (!isset($redirect_url) || empty($redirect_url)) {
$redirect_type = 'reload';
$redirect_url = home_url();
}
$redirect = apply_filters('kleo_fb_register_redirect', $redirect_url, $user_ID);
} else {
update_user_meta($user_ID, '_fbid', $FB_userdata['id']);
//add Facebook image
update_user_meta($user_ID, 'kleo_fb_picture', 'https://graph.facebook.com/' . $FB_userdata['id'] . '/picture');
$logintype = 'login';
}
} else {
$logintype = 'login';
}
$user = get_user_by('id', $user_ID);
if ($logintype == 'login') {
$redirect_to = home_url();
if (function_exists('bp_is_active')) {
$redirect_to = bp_core_get_user_domain($user_ID);
}
/* Check the configured type of redirect */
if (sq_option('login_redirect') == 'reload') {
$redirect_type = 'reload';
}
/**
* Filter the login redirect URL.
*
* @since 3.0.0
*
* @param string $redirect_to The redirect destination URL.
* @param string $requested_redirect_to The requested redirect destination URL passed as a parameter.
* @param WP_User|WP_Error $user WP_User object if login was successful, WP_Error object otherwise.
*/
$redirect = apply_filters('login_redirect', $redirect_to, '', $user);
}
wp_set_auth_cookie($user_ID, false, false);
/**
* Fires after the user has successfully logged in.
*
* @since 1.5.0
*
* @param string $user_login Username.
* @param WP_User $user WP_User object of the logged-in user.
*/
do_action('wp_login', $user->user_login, $user);
die(wp_json_encode(array(
'loggedin' => true,
'type' => $logintype,
'url' => $redirect,
'redirectType' => $redirect_type,
'message' => __('Login successful, redirecting...', 'kleo_framework'),
)));
}
}
if ( ! is_admin() ) {
add_action( 'init', 'kleo_fb_intialize' );
}
//If registered via Facebook -> show message
add_action( 'template_notices', 'kleo_fb_register_message' );
if ( ! function_exists( 'kleo_fb_register_message' ) ) {
function kleo_fb_register_message() {
if ( isset( $_GET['fb'] ) && $_GET['fb'] == 'registered' ) {
echo '';
echo __( 'Thank you for registering. Please make sure to complete your profile fields below.', 'kleo_framework' );
echo '
';
}
}
}
//display Facebook avatar
if ( sq_option( 'facebook_avatar', 1 ) == 1 ) {
//show Facebook avatar in WP
add_filter( 'get_avatar', 'kleo_fb_show_avatar', 5, 5 );
//show Facebook avatar in Buddypress
add_filter( 'bp_core_fetch_avatar', 'kleo_fb_bp_show_avatar', 3, 5 );
//show Facebook avatar in Buddypress - url version
add_filter( 'bp_core_fetch_avatar_url', 'kleo_fb_bp_show_avatar_url', 3, 2 );
}
if ( ! function_exists( 'kleo_fb_show_avatar' ) ) {
function kleo_fb_show_avatar($avatar = '', $id_or_email, $size = 96, $default = '', $alt = false)
{
$id = 0;
if (is_numeric($id_or_email)) {
$id = $id_or_email;
} elseif (is_string($id_or_email)) {
$u = get_user_by('email', $id_or_email);
if ($u) {
$id = $u->id;
}
} elseif (is_object($id_or_email)) {
$id = $id_or_email->user_id;
}
if ($id == 0) {
return $avatar;
}
//if we have an avatar uploaded and is not Gravatar return it
if (strpos($avatar, home_url()) !== false && strpos($avatar, 'gravatar') === false) {
return $avatar;
}
//if we don't have a Facebook photo
$pic = get_user_meta($id, 'kleo_fb_picture', true);
if (!$pic || $pic == '') {
return $avatar;
}
$avatar = preg_replace('/src=("|\').*?("|\')/i', 'src=\'' . $pic . apply_filters('fb_show_avatar_params', '?width=580&height=580') . '\'', $avatar);
return $avatar;
}
}
if ( ! function_exists( 'kleo_fb_bp_show_avatar' ) ) {
function kleo_fb_bp_show_avatar($avatar = '', $params, $id)
{
if (!is_numeric($id) || strpos($avatar, 'gravatar') === false) {
return $avatar;
}
//if we have an avatar uploaded and is not Gravatar return it
if (strpos($avatar, home_url()) !== false && strpos($avatar, 'gravatar') === false) {
return $avatar;
}
$pic = get_user_meta($id, 'kleo_fb_picture', true);
if (!$pic || $pic == '') {
return $avatar;
}
$avatar = preg_replace('/src=("|\').*?("|\')/i', 'src=\'' . $pic . apply_filters('fb_show_avatar_params', '?width=580&height=580') . '\'', $avatar);
return $avatar;
}
}
if ( ! function_exists( 'kleo_fb_bp_show_avatar_url' ) ) {
function kleo_fb_bp_show_avatar_url($gravatar, $params)
{
//if we have an avatar uploaded and is not Gravatar return it
if (strpos($gravatar, home_url()) !== false && strpos($gravatar, 'gravatar') === false) {
return $gravatar;
}
$pic = get_user_meta($params['item_id'], 'kleo_fb_picture', true);
if (!$pic || $pic == '') {
return $gravatar;
}
return $pic . apply_filters('fb_show_avatar_params', '?width=580&height=580');
}
}
/* Add a new activity stream when registering with Facebook */
if ( ! function_exists( 'sq_fb_register_activity' ) ) {
/**
* @param int $user_id
*
* @return void
*/
function sq_fb_register_activity( $user_id ) {
if ( ! function_exists( 'bp_activity_add' ) ) {
return;
}
$userlink = bp_core_get_userlink( $user_id );
bp_activity_add( array(
'user_id' => $user_id,
'action' => apply_filters( 'xprofile_fb_register_action', sprintf( __( '%s became a registered member', 'buddypress' ), $userlink ), $user_id ),
'component' => 'xprofile',
'type' => 'new_member',
) );
}
}
add_action( 'fb_register_action', 'sq_fb_register_activity' );