Not redirect when login by social
-
Hi author, i’m using Kleo theme have login by facebook, when i edited wp login url and login by facebook at login page then it not redirect to any where and still have login form but come back to home page just logged in, login by account work ok. Please test with some social login.
My site: https://nhathoconggiao.com/
Now i set default login url- This topic was modified 7 years, 5 months ago by nguyendam.
Viewing 3 replies - 1 through 3 (of 3 total)
-
Hi,
Which plugin you use for Facebook Login functionality?Thanks
<?php function kleo_fb_head() { if ( is_user_logged_in() ) { return false; } ?> <div id="fb-root"></div> <?php } function kleo_fb_footer() { if ( is_user_logged_in() ) { return false; } ?> <script> // Additional JS functions here window.fbAsyncInit = function () { FB.init({ appId: '<?php echo sq_option( 'fb_app_id' ); ?>', // App ID version: 'v2.6', status: true, // check login status cookie: true, // enable cookies to allow the server to access the session xfbml: true, // parse XFBML oauth: true }); // Additional init code here jQuery('body').trigger('sq_fb.init'); }; // Load the SDK asynchronously (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/<?php echo apply_filters( 'kleo_facebook_js_locale', 'en_US' ); ?>/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> <script type="text/javascript"> var fbAjaxUrl = '<?php echo site_url( 'wp-login.php', 'login_post' ); ?>'; jQuery(document).ready(function () { jQuery('.kleo-facebook-connect').click(function () { // fix iOS Chrome if (navigator.userAgent.match('CriOS') || navigator.userAgent.match(/Android/i)) { window.open('https://www.facebook.com/dialog/oauth?client_id=<?php echo sq_option( 'fb_app_id' ); ?>&redirect_uri=' + document.location.href + '&scope=email&response_type=token', '', null); } else { FB.login(function (FB_response) { if (FB_response.authResponse) { fb_intialize(FB_response, ''); } }, { scope: 'email', auth_type: 'rerequest', return_scopes: true }); } }); if (navigator.userAgent.match('CriOS') || navigator.userAgent.match(/Android/i)) { jQuery("body").bind("sq_fb.init", function () { var accToken = jQuery.getUrlVar('#access_token'); if (accToken) { var fbArr = {scopes: "email"}; fb_intialize(fbArr, accToken); } }); } }); function fb_intialize(FB_response, token) { FB.api('/me', 'GET', { fields: 'id,email,verified,name', access_token: token }, function (FB_userdata) { jQuery.ajax({ type: 'POST', url: fbAjaxUrl, data: {"action": "fb_intialize", "FB_userdata": FB_userdata, "FB_response": FB_response}, success: function (user) { if (user.error) { alert(user.error); } else if (user.loggedin) { jQuery('#kleo-login-result').html(user.message); if (window.location.href.indexOf("wp-login.php") > -1) { window.location = user.url; } else if (user.redirectType == 'reload') { window.location.reload(); } else { window.location = user.url; } } } }); } ); } jQuery.extend({ getUrlVars: function () { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); for (var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); vars.push(hash[0]); vars[hash[0]] = hash[1]; } return vars; }, getUrlVar: function (name) { return jQuery.getUrlVars()[name]; } }); </script> <?php } function kleo_fb_loginform_script() { //Enqueue jQuery wp_enqueue_script( 'jquery' ); //Output CSS echo '<style type="text/css" media="screen"> .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; } </style>'; } 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 ); } 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() ) ) ); } //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 '<div class="clearfix"></div><div class="alert alert-success" id="message" data-alert>'; echo __( 'Thank you for registering. Please make sure to complete your profile fields below.', 'kleo_framework' ); echo '</div>'; } } } //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 ); } 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; } 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; } 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' );
All code for facebook.
I redirect to profile buddypress pageplease help
Viewing 3 replies - 1 through 3 (of 3 total)
- The topic ‘Not redirect when login by social’ is closed to new replies.