function wsl_component_help_sidebar() { // HOOKABLE: do_action("wsl_component_help_sidebar_start"); ?> <div class="postbox"> <div class="inside"> <h3><?php _wsl_e("About WordPress Social Login", 'wordpress-social-login'); ?> <?php echo wsl_get_version(); ?> </h3> <div style="padding:0 20px;"> <p> <?php _wsl_e('WordPress Social Login is a free and open source plugin made by the community, for the community', 'wordpress-social-login'); ?> . </p> <p> <?php _wsl_e('Basically, WordPress Social Login allow your website visitors and customers to register and login via social networks such as twitter, facebook and google but it has much more to offer', 'wordpress-social-login'); ?> . </p> <p> <?php _wsl_e('For more information about WordPress Social Login, refer to our online user guide', 'wordpress-social-login'); ?> . </p> </div> </div> </div> <div class="postbox"> <div class="inside"> <h3><?php _wsl_e("Thanks", 'wordpress-social-login'); ?> </h3> <div style="padding:0 20px;"> <p> <?php _wsl_e('Big thanks to everyone who have contributed to WordPress Social Login by submitting Patches, Ideas, Reviews and by Helping in the support forum', 'wordpress-social-login'); ?> . </p> </div> </div> </div> <?php // HOOKABLE: do_action("wsl_component_help_sidebar_end"); }
/** * Generate the HTML content of WSL Widget * * Note: * WSL shortcode arguments are still experimental and might change in future versions. * * [wordpress_social_login * auth_mode="login" * caption="Connect with" * enable_providers="facebook|google" * restrict_content="wsl_user_logged_in" * assets_base_url="http://example.com/wp-content/uploads/2022/01/" * ] * * Overall, WSL widget work with these simple rules : * 1. Shortcode arguments rule over the defaults * 2. Filters hooks rule over shortcode arguments * 3. Bouncer rules over everything */ function wsl_render_auth_widget($args = array()) { $auth_mode = isset($args['mode']) && $args['mode'] ? $args['mode'] : 'login'; // validate auth-mode if (!in_array($auth_mode, array('login', 'link', 'test'))) { return; } // auth-mode eq 'login' => display wsl widget only for NON logged in users // > this is the default mode of wsl widget. if ($auth_mode == 'login' && is_user_logged_in()) { return; } // auth-mode eq 'link' => display wsl widget only for LOGGED IN users // > this will allows users to manually link other social network accounts to their WordPress account if ($auth_mode == 'link' && !is_user_logged_in()) { return; } // auth-mode eq 'test' => display wsl widget only for LOGGED IN users only on dashboard // > used in Authentication Playground on WSL admin dashboard if ($auth_mode == 'test' && !is_user_logged_in() && !is_admin()) { return; } // Bouncer :: Allow authentication? if (get_option('wsl_settings_bouncer_authentication_enabled') == 2) { return; } // HOOKABLE: This action runs just before generating the WSL Widget. do_action('wsl_render_auth_widget_start'); global $WORDPRESS_SOCIAL_LOGIN_PROVIDERS_CONFIG; ob_start(); // Icon set. If eq 'none', we show text instead $social_icon_set = get_option('wsl_settings_social_icon_set'); // wpzoom icons set, is shown by default if (empty($social_icon_set)) { $social_icon_set = "wpzoom/"; } $assets_base_url = WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . 'assets/img/32x32/' . $social_icon_set . '/'; $assets_base_url = isset($args['assets_base_url']) && $args['assets_base_url'] ? $args['assets_base_url'] : $assets_base_url; // HOOKABLE: $assets_base_url = apply_filters('wsl_render_auth_widget_alter_assets_base_url', $assets_base_url); // get the current page url, which we will use to redirect the user to, // unless Widget::Force redirection is set to 'yes', then this will be ignored and Widget::Redirect URL will be used instead $redirect_to = wsl_get_current_url(); // Use the provided redirect_to if it is given and this is the login page. if (in_array($GLOBALS["pagenow"], array("wp-login.php", "wp-register.php")) && !empty($_REQUEST["redirect_to"])) { $redirect_to = $_REQUEST["redirect_to"]; } // build the authentication url which will call for wsl_process_login() : action=wordpress_social_authenticate $authenticate_base_url = site_url('wp-login.php', 'login_post') . (strpos(site_url('wp-login.php', 'login_post'), '?') ? '&' : '?') . "action=wordpress_social_authenticate&mode=login&"; // if not in mode login, we overwrite the auth base url // > admin auth playground if ($auth_mode == 'test') { $authenticate_base_url = home_url() . "/?action=wordpress_social_authenticate&mode=test&"; } elseif ($auth_mode == 'link') { $authenticate_base_url = home_url() . "/?action=wordpress_social_authenticate&mode=link&"; } // Connect with caption $connect_with_label = _wsl__(get_option('wsl_settings_connect_with_label'), 'wordpress-social-login'); $connect_with_label = isset($args['caption']) ? $args['caption'] : $connect_with_label; // HOOKABLE: $connect_with_label = apply_filters('wsl_render_auth_widget_alter_connect_with_label', $connect_with_label); ?> <!-- wsl_render_auth_widget WordPress Social Login <?php echo wsl_get_version(); ?> . http://wordpress.org/plugins/wordpress-social-login/ --> <?php // Widget::Custom CSS $widget_css = get_option('wsl_settings_authentication_widget_css'); // HOOKABLE: $widget_css = apply_filters('wsl_render_auth_widget_alter_widget_css', $widget_css, $redirect_to); // show the custom widget css if not empty if (!empty($widget_css)) { ?> <style type="text/css"> <?php echo preg_replace(array('%/\\*(?:(?!\\*/).)*\\*/%s', '/\\s{2,}/', "/\\s*([;{}])[\r\n\t\\s]/", '/\\s*;\\s*/', '/\\s*{\\s*/', '/;?\\s*}\\s*/'), array('', ' ', '$1', ';', '{', '}'), $widget_css); ?> </style> <?php } ?> <div class="wp-social-login-widget"> <div class="wp-social-login-connect-with"><?php echo $connect_with_label; ?> </div> <div class="wp-social-login-provider-list"> <?php // Widget::Authentication display $wsl_settings_use_popup = get_option('wsl_settings_use_popup'); // if a user is visiting using a mobile device, WSL will fall back to more in page $wsl_settings_use_popup = function_exists('wp_is_mobile') ? wp_is_mobile() ? 2 : $wsl_settings_use_popup : $wsl_settings_use_popup; $no_idp_used = true; // display provider icons foreach ($WORDPRESS_SOCIAL_LOGIN_PROVIDERS_CONFIG as $item) { $provider_id = isset($item["provider_id"]) ? $item["provider_id"] : ''; $provider_name = isset($item["provider_name"]) ? $item["provider_name"] : ''; // provider enabled? if (get_option('wsl_settings_' . $provider_id . '_enabled')) { // restrict the enabled providers list if (isset($args['enable_providers'])) { $enable_providers = explode('|', $args['enable_providers']); // might add a couple of pico seconds if (!in_array(strtolower($provider_id), $enable_providers)) { continue; } } // build authentication url $authenticate_url = $authenticate_base_url . "provider=" . $provider_id . "&redirect_to=" . urlencode($redirect_to); // http://codex.wordpress.org/Function_Reference/esc_url $authenticate_url = esc_url($authenticate_url); // in case, Widget::Authentication display is set to 'popup', then we overwrite 'authenticate_url' // > /assets/js/connect.js will take care of the rest if ($wsl_settings_use_popup == 1 && $auth_mode != 'test') { $authenticate_url = "javascript:void(0);"; } // HOOKABLE: allow user to rebuilt the auth url $authenticate_url = apply_filters('wsl_render_auth_widget_alter_authenticate_url', $authenticate_url, $provider_id, $auth_mode, $redirect_to, $wsl_settings_use_popup); // HOOKABLE: allow use of other icon sets $provider_icon_markup = apply_filters('wsl_render_auth_widget_alter_provider_icon_markup', $provider_id, $provider_name, $authenticate_url); if ($provider_icon_markup != $provider_id) { echo $provider_icon_markup; } else { ?> <a rel="nofollow" href="<?php echo $authenticate_url; ?> " title="<?php echo sprintf(_wsl__("%s", 'wordpress-social-login'), $provider_name); ?> " class="wp-social-login-provider wp-social-login-provider-<?php echo strtolower($provider_id); ?> " data-provider="<?php echo $provider_id; ?> "> <?php if ($social_icon_set == 'none') { echo apply_filters('wsl_render_auth_widget_alter_provider_name', '' . $provider_name); } else { ?> <img alt="<?php echo $provider_name; ?> " title="<?php echo sprintf(_wsl__("%s", 'wordpress-social-login'), $provider_name); ?> " src="<?php echo $assets_base_url . strtolower($provider_id) . '.png'; ?> " /><?php } ?> </a> <?php } $no_idp_used = false; } } ?> <?php // no provider enabled? if ($no_idp_used) { ?> <p style="background-color: #FFFFE0;border:1px solid #E6DB55;padding:5px;"> <?php _wsl_e('<strong>WordPress Social Login is not configured yet</strong>.<br />Please navigate to <strong>Settings > WP Social Login</strong> to configure this plugin.<br />For more information, refer to the <a rel="nofollow" href="http://miled.github.io/wordpress-social-login">online user guide</a>.', 'wordpress-social-login'); ?> . </p> <style>#wp-social-login-connect-with{display:none;}</style> <?php } ?> </div> <div class="wp-social-login-widget-clearing"></div> </div> <?php // provide popup url for hybridauth callback if ($wsl_settings_use_popup == 1) { ?> <input type="hidden" id="wsl_popup_base_url" value="<?php echo esc_url($authenticate_base_url); ?> " /> <input type="hidden" id="wsl_login_form_uri" value="<?php echo esc_url(site_url('wp-login.php', 'login_post')); ?> " /> <?php } // HOOKABLE: This action runs just after generating the WSL Widget. do_action('wsl_render_auth_widget_end'); ?> <!-- wsl_render_auth_widget --> <?php // Display WSL debugging area bellow the widget. // wsl_display_dev_mode_debugging_area(); // ! keep this line commented unless you know what you are doing :) return ob_get_clean(); }
/** * Display a debugging area. * * This function is highly inspired by the Query Monitor. * https://wordpress.org/plugins/query-monitor/ * * Note: in order for this function to display the sql queries, 'SAVEQUERIES' should be defined as true in 'wp-config.php' */ function wsl_display_dev_mode_debugging_area($keyword = 'wsl_') { global $wpdb, $wp_actions, $wp_filter; ?> <style> .wsl-dev-nonselectsql { color: #a0a !important; } .wsl-dev-expensivesql { color: #f44 !important; } .wsl-dev-optionfunc { color: #4a4 !important; } .wsl-dev-wslfunc { color: #1468fa !important; } .wsl-dev-nonwslfunc { color: #a0a !important; } .wsl-dev-usedhook, .wsl-dev-usedhook a { color: #1468fa; } .wsl-dev-usedwslhook { color: #a0a !important; } .wsl-dev-unusedhook, .wsl-dev-unusedhook a{ color: #a3a3a3 !important; } .wsl-dev-hookcallback, .wsl-dev-hookcallback a { color: #4a4 !important; } .wsl-dev-table { width:100%; border: 1px solid #e5e5e5; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04); border-spacing: 0; clear: both; margin: 0; width: 100%; } .wsl-dev-table td, .wsl-dev-table th { border: 1px solid #dddddd; padding: 8px 10px; background-color: #fff; text-align: left; } </style> <?php if (class_exists('Hybrid_Error', false) && Hybrid_Error::getApiError()) { ?> <h4>Provider API Error</h4> <table class="wsl-dev-table"> <tr> <td> <?php echo Hybrid_Error::getApiError(); ?> </td> </tr> </table> <?php } ?> <h4>SQL Queries</h4> <table class="wsl-dev-table"> <tr> <td colspan="3"> 1. SAVEQUERIES should be defined and set to TRUE in order for the queries to show up (http://codex.wordpress.org/Editing_wp-config.php#Save_queries_for_analysis) <br /> 2. Calls for get_option() don't necessarily result on a query to the database. WP use both cache and wp_load_alloptions() to load all options at once. Hence, it won't be shown here. </td> </tr> <?php $queries = $wpdb->queries; $total_wsl_queries = 0; $total_wsl_queries_time = 0; if ($queries) { foreach ($queries as $item) { $sql = trim($item[0]); $time = $item[1]; $stack = $item[2]; $sql = str_ireplace(array(' FROM ', ' WHERE ', ' LIMIT ', ' GROUP BY ', ' ORDER BY ', ' SET '), array("\n" . 'FROM ', "\n" . 'WHERE ', "\n" . 'LIMIT ', "\n" . 'GROUP BY ', "\n" . 'ORDER BY ', "\n" . 'SET '), $sql); # https://wordpress.org/plugins/query-monitor/ $callers = explode(',', $stack); $caller = trim(end($callers)); if (false !== strpos($caller, '(')) { $caller_name = substr($caller, 0, strpos($caller, '(')) . '()'; } else { $caller_name = $caller; } if (stristr($caller_name, $keyword) || stristr($sql, $keyword) || stristr($stack, $keyword)) { ?> <tr> <td valign="top" width="450"> <?php if (stristr($caller_name, $keyword)) { ?> <a href="https://github.com/hybridauth/WordPress-Social-Login/search?q=<?php echo $caller_name; ?> " target="_blank" class="wsl-dev-wslfunc"><?php echo $caller_name; ?> </a> <?php } else { ?> <a href="https://developer.wordpress.org/?s=<?php echo $caller_name; ?> " target="_blank" class="wsl-dev-nonwslfunc<?php if (stristr($caller_name, '_option')) { echo "- wsl-dev-optionfunc"; } ?> "><?php echo $caller_name; ?> </a> <?php } ?> <p style="font-size:11px; margin-left:10px"> <?php if (count($callers)) { # God damn it for ($i = count($callers) - 1; $i > 0; $i--) { if (!stristr($callers[$i], '.php') && !stristr($callers[$i], 'call_user_func_')) { echo "#{$i} " . $callers[$i] . '<br />'; } } } ?> </p> </td> <td valign="top" class="<?php if (!stristr('#' . $sql, '#select ')) { echo 'wsl-dev-nonselectsql'; } ?> "><?php echo nl2br($sql); ?> </td> <td valign="top" width="50" nowrap class="<?php if ($time > 0.05) { echo 'wsl-dev-expensivesql'; } ?> "><?php echo number_format($time, 4, '.', ''); ?> </td> </tr> <?php $total_wsl_queries++; $total_wsl_queries_time += $time; } } } ?> <tr> <td colspan="2">Total SQL Queries by WSL : <?php echo $total_wsl_queries; ?> </td> <td width="50" nowrap><?php echo number_format($total_wsl_queries_time, 4, '.', ''); ?> </td> </tr> </table> <h4>Hooks</h4> <table class="wsl-dev-table"> <?php if ($wp_actions) { foreach ($wp_actions as $name => $count) { if (isset($wp_filter[$name])) { $action = $wp_filter[$name]; if ($action) { foreach ($action as $priority => $callbacks) { foreach ($callbacks as $callback) { if (isset($callback['function']) && is_string($callback['function'])) { if (stristr($callback['function'], $keyword) || stristr($name, $keyword)) { ?> <tr> <td valign="top" width="270" nowrap class="wsl-dev-usedhook"> <?php if (stristr($name, $keyword)) { ?> <a class="wsl-dev-usedwslhook" href="https://github.com/hybridauth/WordPress-Social-Login/search?q=<?php echo $name; ?> " target="_blank"><?php echo $name; ?> </a> <?php } else { echo $name; } ?> </td> <td valign="top" class="wsl-dev-hookcallback"> <?php if (stristr($callback['function'], $keyword)) { ?> <a href="https://github.com/hybridauth/WordPress-Social-Login/search?q=<?php echo $callback['function']; ?> " target="_blank"><?php echo $callback['function']; ?> </a> <?php } else { echo $callback['function']; } // I hit a record ?> </td> <td valign="top" width="50"> <?php echo $priority; ?> </td> <td valign="top" width="50"> <?php echo $callback['accepted_args']; ?> </td> </tr> <?php } } } } } } elseif (stristr($name, $keyword)) { ?> <tr> <td valign="top" width="270" nowrap class="wsl-dev-unusedhook"> <a href="https://github.com/hybridauth/WordPress-Social-Login/search?q=<?php echo $name; ?> " target="_blank"><?php echo $name; ?> </a> </td> <td></td> <td></td> <td></td> </tr> <?php } } } ?> </table> <h4>PHP Session</h4> <table class="wsl-dev-table"> <?php foreach ($_SESSION as $k => $v) { ?> <tr><th width="270"><label><?php echo $k; ?> </label></th><td><?php print_r($v); ?> </td></tr> <?php } ?> </tbody> </table> <h4>Wordpress</h4> <table class="wsl-dev-table"> <tbody> <tr><th width="270"><label>Version</label></th><td><?php echo get_bloginfo('version'); ?> </td></tr> <tr><th><label>Multi-site</label></th><td><?php echo is_multisite() ? 'Yes' . "\n" : 'No'; ?> </td></tr> <tr><th><label>Site url</label></th><td><?php echo site_url(); ?> </td></tr> <tr><th><label>Home url</label></th><td><?php echo home_url(); ?> </td></tr> <tr><th><label>Plugins url</label></th><td><?php echo plugins_url(); ?> </td></tr> </tbody> </table> <h4>WSL</h4> <table class="wsl-dev-table"> <tbody> <tr><th width="270"><label>Version</label></th><td><?php echo wsl_get_version(); ?> </td></tr> <tr><th><label>Plugin path</label></th><td><?php echo WORDPRESS_SOCIAL_LOGIN_ABS_PATH; ?> </td></tr> <tr><th><label>Plugin url</label></th><td><?php echo WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL; ?> </td></tr> <tr><th><label>HA endpoint</label></th><td><?php echo WORDPRESS_SOCIAL_LOGIN_HYBRIDAUTH_ENDPOINT_URL; ?> </td></tr> </tbody> </table> <h4>Website</h4> <table class="wsl-dev-table"> <tbody> <tr><th width="270"><label>IP</label></th><td><?php echo $_SERVER['SERVER_ADDR']; ?> </td></tr> <tr><th><label>Domain</label></th><td><?php echo $_SERVER['HTTP_HOST']; ?> </td></tr> <tr><th><label>Port</label></th><td><?php echo isset($_SERVER['SERVER_PORT']) ? 'On (' . $_SERVER['SERVER_PORT'] . ')' : 'N/A'; ?> </td></tr> <tr><th><label>X Forward</label></th><td><?php echo isset($_SERVER['HTTP_X_FORWARDED_PROTO']) ? 'On (' . $_SERVER['HTTP_X_FORWARDED_PROTO'] . ')' : 'N/A'; ?> </td></tr> </tbody> </table> <h4>Software</h4> <table class="wsl-dev-table"> <tbody> <tr><th width="270"><label>Server</label></th><td><?php echo $_SERVER['SERVER_SOFTWARE']; ?> </td></tr> <tr><th><label>PHP</label></th><td><?php echo PHP_VERSION; ?> </td></tr> <tr><th><label>MySQL</label></th><td><?php echo $wpdb->db_version(); ?> </td></tr> <tr><th><label>Time</label></th><td><?php echo date(DATE_ATOM, time()); ?> / <?php echo time(); ?> </td></tr> </tbody> </table> <h4>MySQL</h4> <table class="wsl-dev-table"> <tbody> <tr><th width="270"><label>Host</label></th><td><?php echo $wpdb->dbhost; ?> </td></tr> <tr><th><label>User</label></th><td><?php echo $wpdb->dbuser; ?> </td></tr> <tr><th><label>Database</label></th><td><?php echo $wpdb->dbname; ?> </td></tr> <tr><th><label>Prefix</label></th><td><?php echo $wpdb->prefix; ?> </td></tr> <tr><th><label>Base_prefix</label></th><td><?php echo $wpdb->prefix; ?> </td></tr> <tr><th><label>Num_queries</label></th><td><?php echo $wpdb->num_queries; ?> </td></tr> </tbody> </table> <?php }
/** * Renders wsl admin welcome panel */ function wsl_admin_welcome_panel() { if (isset($_REQUEST["wsldwp"]) && (int) $_REQUEST["wsldwp"]) { $wsldwp = (int) $_REQUEST["wsldwp"]; update_option("wsl_settings_welcome_panel_enabled", wsl_get_version()); return; } // if new user or wsl updated, then we display wsl welcome panel if (get_option('wsl_settings_welcome_panel_enabled') == wsl_get_version()) { return; } $wslp = "networks"; if (isset($_REQUEST["wslp"])) { $wslp = $_REQUEST["wslp"]; } ?> <!-- if you want to know if a UI was made by developer, then here is a tip: he will always use tables //> wsl-w-panel is shamelessly borrowed and modified from wordpress welcome-panel --> <div id="wsl-w-panel"> <a href="options-general.php?page=wordpress-social-login&wslp=<?php echo $wslp; ?> &wsldwp=1" id="wsl-w-panel-dismiss" <?php if (is_rtl()) { echo 'style="left: 10px;right: auto;"'; } ?> ><?php _wsl_e("Dismiss", 'wordpress-social-login'); ?> </a> <table width="100%" border="0" style="margin:0;padding:0;"> <tr> <td width="10" valign="top"></td> <td width="300" valign="top"> <b style="font-size: 16px;"><?php _wsl_e("Welcome!", 'wordpress-social-login'); ?> </b> <p> <?php _wsl_e("If you are still new to WordPress Social Login, we have provided a few walkthroughs to get you started", 'wordpress-social-login'); ?> . </p> </td> <td width="40" valign="top"></td> <td width="260" valign="top"> <br /> <p> <b><?php _wsl_e("Get Started", 'wordpress-social-login'); ?> </b> </p> <ul style="margin-left:25px;"> <li><a href="http://miled.github.io/wordpress-social-login/overview.html" target="_blank"><?php _wsl_e('Plugin Overview', 'wordpress-social-login'); ?> </a></li> <li><a href="http://miled.github.io/wordpress-social-login/networks.html" target="_blank"><?php _wsl_e('Setup and Configuration', 'wordpress-social-login'); ?> </a></li> <li><a href="http://miled.github.io/wordpress-social-login/widget.html" target="_blank"><?php _wsl_e('Customize WSL Widgets', 'wordpress-social-login'); ?> </a></li> <li><a href="http://miled.github.io/wordpress-social-login/userdata.html" target="_blank"><?php _wsl_e('Manage users and contacts', 'wordpress-social-login'); ?> </a></li> <li><a href="http://miled.github.io/wordpress-social-login/documentation.html" target="_blank"><?php _wsl_e('WSL Developer API', 'wordpress-social-login'); ?> </a></li> </ul> </td> <td width="" valign="top"> <br /> <p> <b><?php echo sprintf(_wsl__("What's new on WSL %s", 'wordpress-social-login'), wsl_get_version()); ?> </b> </p> <ul style="margin-left:25px;"> <li><?php _wsl_e('...', 'wordpress-social-login'); ?> </li> </ul> </td> </tr> <tr id="wsl-w-panel-updates-tr"> <td colspan="5" style="border-top:1px solid #ccc;" id="wsl-w-panel-updates-td"> </td> </tr> </table> </div> <?php }
/** * Renders wsl admin welcome panel */ function wsl_admin_welcome_panel() { if (isset($_REQUEST["wsldwp"]) && (int) $_REQUEST["wsldwp"]) { $wsldwp = (int) $_REQUEST["wsldwp"]; update_option("wsl_settings_welcome_panel_enabled", wsl_get_version()); return; } // if new user or wsl updated, then we display wsl welcome panel if (get_option('wsl_settings_welcome_panel_enabled') == wsl_get_version()) { return; } $wslp = "networks"; if (isset($_REQUEST["wslp"])) { $wslp = $_REQUEST["wslp"]; } ?> <!-- if you want to know if a UI was made by developer, then here is a tip: he will always use tables //> wsl-w-panel is shamelessly borrowed and modified from wordpress welcome-panel --> <div id="wsl-w-panel"> <a href="options-general.php?page=wordpress-social-login&wslp=<?php echo $wslp; ?> &wsldwp=1" id="wsl-w-panel-dismiss" <?php if (is_rtl()) { echo 'style="left: 10px;right: auto;"'; } ?> ><?php _wsl_e("Dismiss", 'wordpress-social-login'); ?> </a> <table width="100%" border="0" style="margin:0;padding:0;"> <tr> <td width="10" valign="top"></td> <td width="300" valign="top"> <b style="font-size: 16px;"><?php _wsl_e("Welcome!", 'wordpress-social-login'); ?> </b> <p> <?php _wsl_e("If you are still new to WordPress Social Login, we have provided a few walkthroughs to get you started", 'wordpress-social-login'); ?> . </p> </td> <td width="40" valign="top"></td> <td width="260" valign="top"> <br /> <p> <b><?php _wsl_e("Get Started", 'wordpress-social-login'); ?> </b> </p> <ul style="margin-left:25px;"> <li><a href="http://miled.github.io/wordpress-social-login/overview.html" target="_blank"><?php _wsl_e('Plugin Overview', 'wordpress-social-login'); ?> </a></li> <li><a href="http://miled.github.io/wordpress-social-login/networks.html" target="_blank"><?php _wsl_e('Setup and Configuration', 'wordpress-social-login'); ?> </a></li> <li><a href="http://miled.github.io/wordpress-social-login/widget.html" target="_blank"><?php _wsl_e('Customize WSL Widgets', 'wordpress-social-login'); ?> </a></li> <li><a href="http://miled.github.io/wordpress-social-login/userdata.html" target="_blank"><?php _wsl_e('Manage users and contacts', 'wordpress-social-login'); ?> </a></li> <li><a href="http://miled.github.io/wordpress-social-login/documentation.html" target="_blank"><?php _wsl_e('WSL Developer API', 'wordpress-social-login'); ?> </a></li> </ul> </td> <td width="" valign="top"> <br /> <p> <b><?php echo sprintf(_wsl__("What's new on WSL %s", 'wordpress-social-login'), wsl_get_version()); ?> </b> </p> <ul style="margin-left:25px;"> <li><?php _wsl_e('WSL now support authentications through <a href="https://dribbble.com" target="_blank">Dribbble.com</a>. Hooray for fellow designers', 'wordpress-social-login'); ?> !</li> <li><?php _wsl_e('<a href="http://store.steampowered.com/" target="_blank">Steam</a> provider has been entirely reworked and now fully support the new Web API', 'wordpress-social-login'); ?> .</li> <li><?php _wsl_e('WSL admin interfaces have been reworked and can be now extended with hooks', 'wordpress-social-login'); ?> .</li> <li><?php _wsl_e('Profile completion form has received a visual update', 'wordpress-social-login'); ?> .</li> <li><?php _wsl_e('Bouncer Membership level can be now set to any user role', 'wordpress-social-login'); ?> .</li> <li><?php _wsl_e('WSL now provide an <a href="http://miled.github.io/wordpress-social-login/developer-api-apis.html" target="_blank">easier access</a> to social networks apis', 'wordpress-social-login'); ?> .</li> <li><?php _wsl_e('Fix several stability issues', 'wordpress-social-login'); ?> .</li> </ul> </td> </tr> <tr id="wsl-w-panel-updates-tr"> <td colspan="5" style="border-top:1px solid #ccc;" id="wsl-w-panel-updates-td"> </td> </tr> </table> </div> <?php }
function wsl_component_components_gallery() { return; // ya men 3ach // HOOKABLE: do_action("wsl_component_components_gallery_start"); $response = wp_remote_get('http://miled.github.io/wordpress-social-login/components-' . wsl_get_version() . '.json', array('timeout' => 15, 'sslverify' => false)); if (!is_wp_error($response)) { $response = wp_remote_retrieve_body($response); $components = json_decode($response); if ($components) { ?> <br /> <h2><?php _wsl_e("Other Components available", 'wordpress-social-login'); ?> </h2> <p><?php _wsl_e("These components and add-ons can extend the functionality of WordPress Social Login", 'wordpress-social-login'); ?> .</p> <?php foreach ($components as $item) { $item = (array) $item; ?> <div class="wsl_component_div"> <h3 style="margin:0px;"><?php _wsl_e($item['name'], 'wordpress-social-login'); ?> </h3> <div class="wsl_component_about_div"> <p> <?php _wsl_e($item['description'], 'wordpress-social-login'); ?> <br /> <?php echo sprintf(_wsl__('<em>By <a href="%s">%s</a></em>', 'wordpress-social-login'), $item['developer_link'], $item['developer_name']); ?> </p> </div> <a class="button button-secondary" href="<?php echo $item['download_link']; ?> " target="_blank"><?php _wsl_e("Get this Component", 'wordpress-social-login'); ?> </a> </div> <?php } ?> <div class="wsl_component_div"> <h3 style="margin:0px;"><?php _wsl_e("Build yours", 'wordpress-social-login'); ?> </h3> <div class="wsl_component_about_div"> <p><?php _wsl_e("Want to build your own custom <b>WordPress Social Login</b> component? It's pretty easy. Just refer to the online developer documentation.", 'wordpress-social-login'); ?> </p> </div> <a class="button button-primary" href="http://miled.github.io/wordpress-social-login/documentation.html" target="_blank"><?php _wsl_e("WSL Developer API", 'wordpress-social-login'); ?> </a> <a class="button button-secondary" href="http://miled.github.io/wordpress-social-login/submit-component.html" target="_blank"><?php _wsl_e("Submit your WSL Component", 'wordpress-social-login'); ?> </a> </div> <?php } } // HOOKABLE: do_action("wsl_component_components_gallery_end"); }