function add_fake_emails_for_testing() { for ($i = 1; $i <= 30; $i++) { rgt_fb_email_button_add_email("email{$i}@test.net"); } }
function rgt_fb_email_button_shortcode() { $options = get_option('rgt_fb_email_button_settings'); $app_id = $options['rgt_fb_email_button_app_id']; $app_secret = $options['rgt_fb_email_button_app_secret']; $site_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; wp_register_style('rgt_fb_email_button_css', plugins_url('fb_email_button_style.css', __FILE__)); wp_enqueue_style('rgt_fb_email_button_css'); if (!($app_id and $app_secret)) { $error = rgt_fb_email_button_error_wrapper('Facebook App ID and App Secret must be set in the Settings before using this plugin.'); return $error; } else { require_once __DIR__ . '/Facebook_SDK/autoload.php'; $fb = new Facebook\Facebook(['app_id' => $app_id, 'app_secret' => $app_secret, 'default_graph_version' => 'v2.5', 'default_access_token' => $app_id . '|' . $app_secret]); $helper = $fb->getRedirectLoginHelper(); if (isset($_GET['code'])) { // API Callback try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { $error = rgt_fb_email_button_error_wrapper('Invalid Facebook App Info.'); return $error; } catch (Facebook\Exceptions\FacebookSDKException $e) { $error = rgt_fb_email_button_error_wrapper('Invalid Facebook App Info.'); return $error; } if (isset($accessToken)) { $oAuth2Client = $fb->getOAuth2Client(); $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); $_SESSION['rgt_fb_email_button_facebook_access_token'] = (string) $longLivedAccessToken; // Get data $fb->setDefaultAccessToken($longLivedAccessToken); try { $response = $fb->get('/me?fields=email'); } catch (Facebook\Exceptions\FacebookResponseException $e) { $error = rgt_fb_email_button_error_wrapper('Graph returned an error: ' . $e->getMessage()); return $error; } catch (Facebook\Exceptions\FacebookSDKException $e) { $error = rgt_fb_email_button_error_wrapper('Facebook SDK returned an error: ' . $e->getMessage()); return $error; } $graphObject = $response->getGraphObject(); $id = $graphObject->getProperty('id'); $email = $graphObject->getProperty('email'); rgt_fb_email_button_add_email($email); $js_redirect = "<script>window.location = '" . strtok($site_url, '?') . "'</script>"; return $js_redirect; } } if (!isset($_SESSION['rgt_fb_email_button_facebook_access_token']) or !$_SESSION['rgt_fb_email_button_facebook_access_token']) { $permissions = array('public_profile', 'email'); $loginUrl = $helper->getLoginUrl($site_url, $permissions); $button = "<a class=\"btn_blue\" onclick=\"location.href='{$loginUrl}'\">Subscribe</a>"; } else { $button = "<a class=\"btn_green\">Subscribed!</a>"; } return $button; } }