is_requirements_met()) { //Return if requirements are not met. return; } //load dependencies $this->load_dependencies(); // Register Activation hook callback. add_action('lr_plugin_activate', array(get_class(), 'install'), 10, 1); add_action('lr_plugin_deactivate', array(get_class(), 'uninstall'), 10, 1); add_action('lr_admin_page', array('LR_Social_Login', 'create_loginradius_menu'), 2); } public static function create_loginradius_menu() { add_submenu_page('LoginRadius', 'Social Login Settings', 'Social Login', 'manage_options', 'SocialLogin', array('LR_Social_Login_Admin', 'options_page')); } /** * Checks that the WordPress setup meets the plugin requirements * * @global string $wp_version * * @return boolean */ private function is_requirements_met() { global $wp_version; if (!version_compare($wp_version, self:: $wp_min_version, '>=')) { add_action('admin_notices', array($this, 'notify_admin')); return false; } return true; } /** * Display admin notice if requirements are not made */ public static function notify_admin() { echo '

'; echo __('Sorry, This LoginRadius plugin requires WordPress ' . self::$wp_min_version . ' or higher. Please upgrade your WordPress setup', 'lr-plugin-slug'); echo '

'; } /** * Loads PHP files that required by the plug-in * * @global loginRadiusSettings, loginRadiusObject */ private function load_dependencies() { global $loginradius_api_settings, $loginRadiusSettings, $socialLoginObject, $loginRadiusLoginIsBpActive, $apiClient_class; $apiClient_class = '\LoginRadiusSDK\Clients\WPHttpClient'; //Load required files. $loginRadiusSDKs = array('LoginRadius', 'LoginRadiusException', 'Clients/IHttpClient', 'Clients/DefaultHttpClient', 'SocialLogin/GetProvidersAPI', 'SocialLogin/SocialLoginAPI', 'CustomerRegistration/AccountAPI', 'CustomerRegistration/CustomObjectAPI', 'CustomerRegistration/UserAPI' ); foreach ($loginRadiusSDKs as $fileName) { require_once ( LR_ROOT_DIR . 'lr-social-login/lib/LoginRadiusSDK/' . $fileName . '.php' ); } require_once ( LR_ROOT_DIR . 'lr-social-login/lib/WPHttpClient.php' ); $apikey = isset($loginradius_api_settings['LoginRadius_apikey']) ? $loginradius_api_settings['LoginRadius_apikey'] : ''; $secret = isset($loginradius_api_settings['LoginRadius_secret']) ? $loginradius_api_settings['LoginRadius_secret'] : ''; try { $socialLoginObject = new \LoginRadiusSDK\SocialLogin\SocialLoginAPI($apikey, $secret, array('authentication' => false, 'output_format' => 'json')); } catch (\LoginRadiusSDK\LoginRadiusException $e) { } if (!empty($apikey) && !empty($secret)) { //Load required files. require_once( LR_ROOT_DIR . 'lr-social-login/common/class-loginradius-common.php' ); require_once( LR_ROOT_DIR . 'lr-social-login/common/loginradius-ajax.php' ); require_once( LR_ROOT_DIR . 'lr-social-login/widgets/lr-social-login-widget.php' ); require_once( LR_ROOT_DIR . 'lr-social-login/widgets/lr-social-linking-widget.php' ); require_once( LR_ROOT_DIR . 'lr-social-login/public/inc/login/class-login-helper.php' ); // Get LoginRadius plugin options. $loginRadiusSettings = get_option('LoginRadius_settings'); $loginRadiusLoginIsBpActive = false; add_action('bp_include', array('Login_Helper', 'set_budddy_press_status_variable')); // Admin Panel // load admin functionality require_once( LR_ROOT_DIR . 'lr-social-login/admin/class-loginradius-admin.php' ); // Load public functionality require_once( LR_ROOT_DIR . 'lr-social-login/public/class-loginradius-front.php' ); } } /** * Function for setting default options while plgin is activating. */ public static function install($blog_id) { require_once ( dirname(__FILE__) . '/install.php' ); LR_Social_Login_Install::set_default_options($blog_id); } public static function uninstall($blog_id) { if ($blog_id) { delete_blog_option($blog_id, 'LoginRadius_settings'); } else { delete_option('LoginRadius_settings'); } } public static function reset_options() { if (isset($_POST['reset'])) { self::uninstall(false); self::install(false); echo ''; echo ''; } } } new LR_Social_Login(); }