/**
  * Outputs the content of the widget
  * 
  * Handles to show output of widget 
  * at front side sidebar
  * 
  * @package Easy Digital Downloads - Social Login
  * @since 1.1.0
  * 
  */
 function widget($args, $instance)
 {
     global $wpdb, $post, $edd_options;
     extract($args);
     $title = apply_filters('widget_title', $instance['title']);
     if (!is_user_logged_in() && edd_slg_check_social_enable()) {
         echo $before_widget;
         // get redirect url from settings
         $defaulturl = isset($edd_options['edd_slg_redirect_url']) && !empty($edd_options['edd_slg_redirect_url']) ? $edd_options['edd_slg_redirect_url'] : edd_slg_get_current_page_url();
         //session create for redirect url
         EDD()->session->set('edd_slg_stcd_redirect_url_widget', $defaulturl);
         echo '<div class="edd-slg-social-container edd-slg-widget-content">';
         echo $before_title . $title . $after_title;
         $this->render->edd_slg_social_login_inner_buttons();
         //end container
         echo '</div><!--.edd-slg-widget-content-->';
         echo $after_widget;
     }
 }
 /**
  * Show All Social Login Buttons
  * 
  * Handles to show all social login buttons on the viewing page
  * whereever user put shortcode
  * 
  * @package Easy Digital Downloads - Social Login
  * @since 1.1.0
  */
 public function edd_slg_social_login($atts, $content)
 {
     global $edd_options, $post;
     extract(shortcode_atts(array('title' => '', 'redirect_url' => '', 'showonpage' => false), $atts));
     $showbuttons = true;
     // if show only on inners pages is set and current page is not inner page
     if (!empty($showonpage) && !is_singular()) {
         $showbuttons = false;
     }
     //check show social buttons or not
     if ($showbuttons) {
         //check user is logged in to site or not and any single social login button is enable or not
         if (!is_user_logged_in() && edd_slg_check_social_enable()) {
             // login heading from setting page
             $login_heading = isset($edd_options['edd_slg_login_heading']) ? $edd_options['edd_slg_login_heading'] : '';
             //  check title first from shortcode
             $login_heading = !empty($title) ? $title : $login_heading;
             // get redirect url from settings
             $defaulturl = isset($edd_options['edd_slg_redirect_url']) && !empty($edd_options['edd_slg_redirect_url']) ? $edd_options['edd_slg_redirect_url'] : edd_slg_get_current_page_url();
             //redirect url for shortcode
             $defaulturl = isset($redirect_url) && !empty($redirect_url) ? $redirect_url : $defaulturl;
             //session create for access token & secrets
             EDD()->session->set('edd_slg_stcd_redirect_url', $defaulturl);
             // get html for all social login buttons
             ob_start();
             echo '<fieldset id="edd_slg_social_login" class="edd-slg-social-container">';
             if (!empty($login_heading)) {
                 echo '<span><legend>' . $login_heading . '</legend></span>';
             }
             $this->render->edd_slg_social_login_inner_buttons($redirect_url);
             echo '</fieldset><!--#edd_slg_social_login-->';
             $content .= ob_get_clean();
         }
     }
     return $content;
 }
    /**
     * Load Login Page For Social
     * 
     * Handles to load login page for social
     * when no email address found
     * 
     * @package Easy Digital Downloads - Social Login
     * @since 1.0.0
     */
    public function edd_slg_social_login_redirect()
    {
        global $edd_options;
        $socialtype = isset($_GET['eddslgnetwork']) ? $_GET['eddslgnetwork'] : '';
        //get all social networks
        $allsocialtypes = edd_slg_social_networks();
        if (!is_user_logged_in() && isset($_GET['edd_slg_social_login']) && !empty($socialtype) && array_key_exists($socialtype, $allsocialtypes)) {
            // get redirect url from shortcode
            $stcd_redirect_url = EDD()->session->get('edd_slg_stcd_redirect_url');
            //check button clicked from widget then redirect to widget page url
            if (isset($_GET['container']) && $_GET['container'] == 'widget') {
                // get redirect url from widget
                $stcd_redirect_url = EDD()->session->get('edd_slg_stcd_redirect_url_widget');
            }
            $redirect_url = !empty($stcd_redirect_url) ? $stcd_redirect_url : edd_slg_get_current_page_url();
            $data = array();
            //wordpress error class
            $errors = new WP_Error();
            switch ($socialtype) {
                case 'twitter':
                    //get twitter user data
                    $tw_userdata = $this->socialtwitter->edd_slg_get_twitter_user_data();
                    //check user id is set or not for twitter
                    if (!empty($tw_userdata) && isset($tw_userdata->id) && !empty($tw_userdata->id)) {
                        $data['first_name'] = $tw_userdata->name;
                        $data['last_name'] = '';
                        $data['name'] = $tw_userdata->screen_name;
                        //display name of user
                        $data['type'] = 'twitter';
                        $data['all'] = $tw_userdata;
                        $data['link'] = 'https://twitter.com/' . $tw_userdata->screen_name;
                        $data['id'] = $tw_userdata->id;
                    }
                    break;
            }
            //if cart is empty or user is not logged in social media
            //and accessing the url then send back user to checkout page
            if (!isset($data['id']) || empty($data['id'])) {
                /*if( isset( $_GET['page_id'] ) && !empty( $_GET['page_id'] ) ) {
                			$redirect_url = get_permalink( $_GET['page_id'] );
                		} else {
                			$redirect_url = home_url();
                		}*/
                if (isset($_SESSION['edd']['edd_slg_stcd_redirect_url_widget'])) {
                    unset($_SESSION['edd']['edd_slg_stcd_redirect_url_widget']);
                }
                if (isset($_SESSION['edd']['edd_slg_stcd_redirect_url'])) {
                    unset($_SESSION['edd']['edd_slg_stcd_redirect_url']);
                }
                wp_redirect($redirect_url);
                exit;
                //send user to checkout page
                //edd_slg_send_on_checkout_page();
            }
            //when user will click submit button of custom login
            //check user clicks submit button of registration page and get parameter should be valid param
            if (isset($_POST['edd-slg-submit']) && !empty($_POST['edd-slg-submit']) && $_POST['edd-slg-submit'] == __('Register', 'eddslg')) {
                $loginurl = wp_login_url();
                if (isset($_POST['edd_slg_social_email'])) {
                    //check email is set or not
                    $socialemail = $_POST['edd_slg_social_email'];
                    if (empty($socialemail)) {
                        //if email is empty
                        $errors->add('empty_email', '<strong>' . __('ERROR', 'eddslg') . ' :</strong> ' . __('Enter your email address.', 'eddslg'));
                    } elseif (!is_email($socialemail)) {
                        //if email is not valid
                        $errors->add('invalid_email', '<strong>' . __('ERROR', 'eddslg') . ' :</strong> ' . __('The email address did not validate.', 'eddslg'));
                        $socialemail = '';
                    } elseif (email_exists($socialemail)) {
                        //if email is exist or not
                        $errors->add('email_exists', '<strong>' . __('ERROR', 'eddslg') . ' :</strong> ' . __('Email already exists, If you have an account login first.', 'eddslg'));
                    }
                    if ($errors->get_error_code() == '') {
                        //
                        if (!empty($data)) {
                            //check user data is not empty
                            $data['email'] = $socialemail;
                            //create user
                            $usercreated = $this->edd_slg_add_user($data);
                            if (isset($_SESSION['edd']['edd_slg_stcd_redirect_url_widget'])) {
                                unset($_SESSION['edd']['edd_slg_stcd_redirect_url_widget']);
                            }
                            if (isset($_SESSION['edd']['edd_slg_stcd_redirect_url'])) {
                                unset($_SESSION['edd']['edd_slg_stcd_redirect_url']);
                            }
                            wp_redirect($redirect_url);
                            exit;
                            //send user to checkout page
                            //edd_slg_send_on_checkout_page();
                        }
                    }
                }
            }
            //redirect user to custom registration form
            if (isset($_GET['edd_slg_social_login']) && !empty($_GET['edd_slg_social_login'])) {
                //login call back url after registration
                /*$callbackurl = wp_login_url();
                		$callbackurl = add_query_arg('edd_slg_social_login_done', 1, $callbackurl);*/
                $socialemail = isset($_POST['edd_slg_social_email']) ? $_POST['edd_slg_social_email'] : '';
                //check the user who is going to connect with site
                //it is alreay exist with same data or not
                //if user is exist then simply make that user logged in
                $metaquery = array(array('key' => 'edd_slg_social_user_connect_via', 'value' => $data['type']), array('key' => 'edd_slg_social_identifier', 'value' => $data['id']));
                $getusers = get_users(array('meta_query' => $metaquery));
                $wpuser = array_shift($getusers);
                //getting users
                //check user is exist or not conected with same metabox
                if (!empty($wpuser)) {
                    //make user logged in
                    wp_set_auth_cookie($wpuser->ID, false);
                    if (isset($_SESSION['edd']['edd_slg_stcd_redirect_url_widget'])) {
                        unset($_SESSION['edd']['edd_slg_stcd_redirect_url_widget']);
                    }
                    if (isset($_SESSION['edd']['edd_slg_stcd_redirect_url'])) {
                        unset($_SESSION['edd']['edd_slg_stcd_redirect_url']);
                    }
                    wp_redirect($redirect_url);
                    exit;
                } else {
                    //if user is not exist then show register user form
                    login_header(__('Registration Form', 'eddslg'), '<p class="message register">' . __('Please enter your email address to complete registration.', 'eddslg') . '</p>', $errors);
                    ?>
						<form name="registerform" id="registerform" action="" method="post">
							  <p>
								  <label for="wcsl_email"><?php 
                    _e('E-mail', 'eddslg');
                    ?>
<br />
								  <input type="text" name="edd_slg_social_email" id="edd_slg_social_email" class="input" value="<?php 
                    echo $socialemail;
                    ?>
" size="25" tabindex="20" /></label>
							  </p>
							  <p id="reg_passmail">
							  	<?php 
                    _e('Username and Password will be sent to your email.', 'eddslg');
                    ?>
							  </p>
							  <br class="clear" />
							  <p class="submit"><input type="submit" name="edd-slg-submit" id="edd-slg-submit" class="button-primary" value="<?php 
                    _e('Register', 'eddslg');
                    ?>
" tabindex="100" /></p>
						</form>
					<?php 
                    login_footer('user_login');
                    exit;
                }
            }
        }
    }
示例#4
0
 /**
  * Get auth url for twitter
  *
  * @param Easy Digital Downloads - Social Login
  * @since 1.0.0
  */
 public function edd_slg_get_twitter_auth_url()
 {
     // Save temporary credentials to session.
     // Get temporary credentials.
     global $post;
     //load twitter class
     $twitter = $this->edd_slg_load_twitter();
     //check twitter class is loaded or not
     if (!$twitter) {
         return false;
     }
     $request_token = $this->twitter->getRequestToken(edd_slg_get_current_page_url());
     // get_permalink( $post->ID )
     // If last connection failed don't display authorization link.
     switch ($this->twitter->http_code) {
         //
         case 200:
             //$edd_slg_twt_oauth_token = EDD()->session->get( 'edd_slg_twt_oauth_token' );
             //if( empty( $edd_slg_twt_oauth_token ) ) {
             // Build authorize URL and redirect user to Twitter.
             // Save temporary credentials to session.
             EDD()->session->set('edd_slg_twt_oauth_token', $request_token['oauth_token']);
             EDD()->session->set('edd_slg_twt_oauth_token_secret', $request_token['oauth_token_secret']);
             //}
             $token = $request_token['oauth_token'];
             $url = $this->twitter->getAuthorizeURL($token);
             break;
         default:
             // Show notification if something went wrong.
             $url = '';
     }
     return $url;
 }