本文整理汇总了PHP中_wsl__函数的典型用法代码示例。如果您正苦于以下问题:PHP _wsl__函数的具体用法?PHP _wsl__怎么用?PHP _wsl__使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了_wsl__函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: wsl_add_plugin_row_meta
/**
* Add faq and user guide links to plugin_row_meta
*/
function wsl_add_plugin_row_meta($links, $file)
{
static $this_plugin;
if (!$this_plugin) {
$this_plugin = plugin_basename(__FILE__);
}
if ($file == $this_plugin) {
$wsl_links = array('<a href="http://miled.github.io/wordpress-social-login/">' . _wsl__("Docs", 'wordpress-social-login') . '</a>', '<a href="http://miled.github.io/wordpress-social-login/support.html">' . _wsl__("Support", 'wordpress-social-login') . '</a>', '<a href="https://github.com/miled/wordpress-social-login">' . _wsl__("Fork me on Github", 'wordpress-social-login') . '</a>');
return array_merge($links, $wsl_links);
}
return $links;
}
示例2: wsl_process_login_authenticate_wp_user
function wsl_process_login_authenticate_wp_user($user_id, $provider, $redirect_to, $adapter, $hybridauth_user_profile)
{
// There was a bug when this function received non-integer user_id and updated random users, let's be safe
if (!is_integer($user_id)) {
return wsl_render_notices_pages(_wsl__("Invalid user_id", 'wordpress-social-login'));
}
// calculate user age
$user_age = $hybridauth_user_profile->age;
// not that precise you say... well welcome to my world
if (!$user_age && (int) $hybridauth_user_profile->birthYear) {
$user_age = (int) date("Y") - (int) $hybridauth_user_profile->birthYear;
}
// update some stuff
$newdata['user_id'] = $user_id;
//not to be changed
$newdata['user'] = $provider;
$newdata['user_gender'] = $hybridauth_user_profile->gender;
$newdata['user_age'] = $user_age;
$newdata['user_image'] = $hybridauth_user_profile->photoURL;
// HOOKABLE:
$newdata = apply_filters('wsl_hook_process_login_alter_update_userdata', $newdata, $hybridauth_user_profile, $provider);
update_user_meta($user_id, 'wsl_user', $newdata['user']);
update_user_meta($user_id, 'wsl_user_gender', $newdata['user_gender']);
update_user_meta($user_id, 'wsl_user_age', $newdata['user_age']);
update_user_meta($user_id, 'wsl_user_image', $newdata['user_image']);
// launch contact import if enabled
wsl_import_user_contacts($provider, $adapter, $user_id);
// store user hybridauth user profile if needed
wsl_store_hybridauth_user_data($user_id, $provider, $hybridauth_user_profile);
// Bouncer :: User Moderation : E-mail Confirmation — Yield to Theme My Login plugin
if (get_option('wsl_settings_bouncer_new_users_moderation_level') == 101) {
$redirect_to = site_url('wp-login.php', 'login_post') . (strpos(site_url('wp-login.php', 'login_post'), '?') ? '&' : '?') . "pending=activation";
@Theme_My_Login_User_Moderation::new_user_activation_notification($user_id);
} elseif (get_option('wsl_settings_bouncer_new_users_moderation_level') == 102) {
$redirect_to = site_url('wp-login.php', 'login_post') . (strpos(site_url('wp-login.php', 'login_post'), '?') ? '&' : '?') . "pending=approval";
} else {
// HOOKABLE:
do_action("wsl_hook_process_login_before_set_auth_cookie", $user_id, $provider, $hybridauth_user_profile);
// That's it. create a session for user_id and redirect him to redirect_to
wp_set_auth_cookie($user_id);
}
// HOOKABLE:
do_action("wsl_hook_process_login_before_redirect", $user_id, $provider, $hybridauth_user_profile);
wp_safe_redirect($redirect_to);
exit;
}
示例3: wsl_component_users_profiles
function wsl_component_users_profiles($user_id)
{
// HOOKABLE:
do_action("wsl_component_users_profiles_start");
$assets_base_url = WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . 'assets/img/16x16/';
$linked_accounts = wsl_get_stored_hybridauth_user_profiles_by_user_id($user_id);
// is it a WSL user?
if (!$linked_accounts) {
?>
<div style="padding: 15px; margin-bottom: 8px; border: 1px solid #ddd; background-color: #fff;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);">
<?php
_wsl_e("This's not a WSL user!", 'wordpress-social-login');
?>
.
</div>
<?php
return;
}
# http://hybridauth.sourceforge.net/userguide/Profile_Data_User_Profile.html
$ha_profile_fields = array(array('field' => 'identifier', 'label' => _wsl__("Provider user ID", 'wordpress-social-login'), 'description' => _wsl__("The Unique user's ID on the connected provider. Depending on the provider, this field can be an number, Email, URL, etc", 'wordpress-social-login')), array('field' => 'profileURL', 'label' => _wsl__("Profile URL", 'wordpress-social-login'), 'description' => _wsl__("Link to the user profile on the provider web site", 'wordpress-social-login')), array('field' => 'webSiteURL', 'label' => _wsl__("Website URL", 'wordpress-social-login'), 'description' => _wsl__("User website, blog or web page", 'wordpress-social-login')), array('field' => 'photoURL', 'label' => _wsl__("Photo URL", 'wordpress-social-login'), 'description' => _wsl__("Link to user picture or avatar on the provider web site", 'wordpress-social-login')), array('field' => 'displayName', 'label' => _wsl__("Display name", 'wordpress-social-login'), 'description' => _wsl__("User Display name. If not provided by social network, WSL will return a concatenation of the user first and last name", 'wordpress-social-login')), array('field' => 'description', 'label' => _wsl__("Description", 'wordpress-social-login'), 'description' => _wsl__("A short about me", 'wordpress-social-login')), array('field' => 'firstName', 'label' => _wsl__("First name", 'wordpress-social-login'), 'description' => _wsl__("User's first name", 'wordpress-social-login')), array('field' => 'lastName', 'label' => _wsl__("Last name", 'wordpress-social-login'), 'description' => _wsl__("User's last name", 'wordpress-social-login')), array('field' => 'gender', 'label' => _wsl__("Gender", 'wordpress-social-login'), 'description' => _wsl__("User's gender. Values are 'female', 'male' or blank", 'wordpress-social-login')), array('field' => 'language', 'label' => _wsl__("Language", 'wordpress-social-login'), 'description' => _wsl__("User's language", 'wordpress-social-login')), array('field' => 'age', 'label' => _wsl__("Age", 'wordpress-social-login'), 'description' => _wsl__("User' age. Note that WSL do not calculate this field. We return it as it was provided", 'wordpress-social-login')), array('field' => 'birthDay', 'label' => _wsl__("Birth day", 'wordpress-social-login'), 'description' => _wsl__("The day in the month in which the person was born. Not to confuse it with 'Birth date'", 'wordpress-social-login')), array('field' => 'birthMonth', 'label' => _wsl__("Birth month", 'wordpress-social-login'), 'description' => _wsl__("The month in which the person was born", 'wordpress-social-login')), array('field' => 'birthYear', 'label' => _wsl__("Birth year", 'wordpress-social-login'), 'description' => _wsl__("The year in which the person was born", 'wordpress-social-login')), array('field' => 'email', 'label' => _wsl__("Email", 'wordpress-social-login'), 'description' => _wsl__("User's email address. Note: some providers like Facebook and Google can provide verified emails. Users with the same verified email will be automatically linked", 'wordpress-social-login')), array('field' => 'phone', 'label' => _wsl__("Phone", 'wordpress-social-login'), 'description' => _wsl__("User's phone number", 'wordpress-social-login')), array('field' => 'address', 'label' => _wsl__("Address", 'wordpress-social-login'), 'description' => _wsl__("User's address", 'wordpress-social-login')), array('field' => 'country', 'label' => _wsl__("Country", 'wordpress-social-login'), 'description' => _wsl__("User's country", 'wordpress-social-login')), array('field' => 'region', 'label' => _wsl__("Region", 'wordpress-social-login'), 'description' => _wsl__("User's state or region", 'wordpress-social-login')), array('field' => 'city', 'label' => _wsl__("City", 'wordpress-social-login'), 'description' => _wsl__("User's city", 'wordpress-social-login')), array('field' => 'zip', 'label' => _wsl__("Zip", 'wordpress-social-login'), 'description' => _wsl__("User's zipcode", 'wordpress-social-login')));
$user_data = get_userdata($user_id);
add_thickbox();
$actions = array('edit_details' => '<a class="button button-secondary thickbox" href="' . admin_url('user-edit.php?user_id=' . $user_id . '&TB_iframe=true&width=1150&height=550') . '">' . _wsl__('Edit user details', 'wordpress-social-login') . '</a>', 'show_contacts' => '<a class="button button-secondary" href="' . admin_url('options-general.php?page=wordpress-social-login&wslp=contacts&uid=' . $user_id) . '">' . _wsl__('Show user contacts list', 'wordpress-social-login') . '</a>');
// HOOKABLE:
$actions = apply_filters('wsl_component_users_profiles_alter_actions_list', $actions, $user_id);
?>
<style>
table td, table th { border: 1px solid #DDDDDD; }
table th label { font-weight: bold; }
.form-table th { width:120px; text-align:right; }
p.description { font-size: 11px ! important; margin:0 ! important;}
</style>
<script>
function confirmDeleteWSLUser()
{
return confirm( <?php
echo json_encode(_wsl__("Are you sure you want to delete the user's social profiles and contacts?\n\nNote: The associated WordPress user won't be deleted.", 'wordpress-social-login'));
?>
);
}
</script>
<div style="margin-top: 15px;padding: 15px; margin-bottom: 8px; border: 1px solid #ddd; background-color: #fff;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);">
<h3 style="margin:0;"><?php
echo sprintf(_wsl__("%s's social profiles", 'wordpress-social-login'), $user_data->display_name);
?>
</h3>
<p style="float: <?php
if (is_rtl()) {
echo 'left';
} else {
echo 'right';
}
?>
;margin-top:-23px">
<?php
echo implode(' ', $actions);
?>
</p>
</div>
<div style="padding: 20px; border: 1px solid #ddd; background-color: #fff;">
<table class="wp-list-table widefat">
<tr><th width="200"><label><?php
_wsl_e("Wordpress User ID", 'wordpress-social-login');
?>
</label></th><td><?php
echo $user_data->ID;
?>
</td></tr>
<tr><th width="200"><label><?php
_wsl_e("Username", 'wordpress-social-login');
?>
</label></th><td><?php
echo $user_data->user_login;
?>
</td></tr>
<tr><th><label><?php
_wsl_e("Display name", 'wordpress-social-login');
?>
</label></th><td><?php
echo $user_data->display_name;
?>
</td></tr>
<tr><th><label><?php
_wsl_e("E-mail", 'wordpress-social-login');
?>
</label></th><td><a href="mailto:<?php
echo $user_data->user_email;
?>
" target="_blank"><?php
echo $user_data->user_email;
?>
</a></td></tr>
<tr><th><label><?php
_wsl_e("Website", 'wordpress-social-login');
?>
</label></th><td><a href="<?php
//.........这里部分代码省略.........
示例4: wsl_component_buddypress_setup_profile_mapping
function wsl_component_buddypress_setup_profile_mapping()
{
$assets_base_url = WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . 'assets/img/';
$wsl_settings_buddypress_enable_mapping = get_option('wsl_settings_buddypress_enable_mapping');
$wsl_settings_buddypress_xprofile_map = get_option('wsl_settings_buddypress_xprofile_map');
# http://hybridauth.sourceforge.net/userguide/Profile_Data_User_Profile.html
$ha_profile_fields = array(array('field' => 'provider', 'label' => _wsl__("Provider name", 'wordpress-social-login'), 'description' => _wsl__("The the provider or social network name the user used to connected", 'wordpress-social-login')), array('field' => 'identifier', 'label' => _wsl__("Provider user Identifier", 'wordpress-social-login'), 'description' => _wsl__("The Unique user's ID on the connected provider. Depending on the provider, this field can be an number, Email, URL, etc", 'wordpress-social-login')), array('field' => 'profileURL', 'label' => _wsl__("Profile URL", 'wordpress-social-login'), 'description' => _wsl__("Link to the user profile on the provider web site", 'wordpress-social-login')), array('field' => 'webSiteURL', 'label' => _wsl__("Website URL", 'wordpress-social-login'), 'description' => _wsl__("User website, blog or web page", 'wordpress-social-login')), array('field' => 'photoURL', 'label' => _wsl__("Photo URL", 'wordpress-social-login'), 'description' => _wsl__("Link to user picture or avatar on the provider web site", 'wordpress-social-login')), array('field' => 'displayName', 'label' => _wsl__("Display name", 'wordpress-social-login'), 'description' => _wsl__("User Display name. If not provided by social network, WSL will return a concatenation of the user first and last name", 'wordpress-social-login')), array('field' => 'description', 'label' => _wsl__("Description", 'wordpress-social-login'), 'description' => _wsl__("A short about me", 'wordpress-social-login')), array('field' => 'firstName', 'label' => _wsl__("First name", 'wordpress-social-login'), 'description' => _wsl__("User's first name", 'wordpress-social-login')), array('field' => 'lastName', 'label' => _wsl__("Last name", 'wordpress-social-login'), 'description' => _wsl__("User's last name", 'wordpress-social-login')), array('field' => 'gender', 'label' => _wsl__("Gender", 'wordpress-social-login'), 'description' => _wsl__("User's gender. Values are 'female', 'male' or blank", 'wordpress-social-login')), array('field' => 'language', 'label' => _wsl__("Language", 'wordpress-social-login'), 'description' => _wsl__("User's language", 'wordpress-social-login')), array('field' => 'age', 'label' => _wsl__("Age", 'wordpress-social-login'), 'description' => _wsl__("User' age. Note that WSL do not calculate this field. We return it as it was provided", 'wordpress-social-login')), array('field' => 'birthDay', 'label' => _wsl__("Birth day", 'wordpress-social-login'), 'description' => _wsl__("The day in the month in which the person was born. Not to confuse it with 'Birth date'", 'wordpress-social-login')), array('field' => 'birthMonth', 'label' => _wsl__("Birth month", 'wordpress-social-login'), 'description' => _wsl__("The month in which the person was born", 'wordpress-social-login')), array('field' => 'birthYear', 'label' => _wsl__("Birth year", 'wordpress-social-login'), 'description' => _wsl__("The year in which the person was born", 'wordpress-social-login')), array('field' => 'birthDate', 'label' => _wsl__("Birth date", 'wordpress-social-login'), 'description' => _wsl__("Complete birthday in which the person was born. Format: YYYY-MM-DD", 'wordpress-social-login')), array('field' => 'email', 'label' => _wsl__("Email", 'wordpress-social-login'), 'description' => _wsl__("User's email address. Not all of provider grant access to the user email", 'wordpress-social-login')), array('field' => 'phone', 'label' => _wsl__("Phone", 'wordpress-social-login'), 'description' => _wsl__("User's phone number", 'wordpress-social-login')), array('field' => 'address', 'label' => _wsl__("Address", 'wordpress-social-login'), 'description' => _wsl__("User's address", 'wordpress-social-login')), array('field' => 'country', 'label' => _wsl__("Country", 'wordpress-social-login'), 'description' => _wsl__("User's country", 'wordpress-social-login')), array('field' => 'region', 'label' => _wsl__("Region", 'wordpress-social-login'), 'description' => _wsl__("User's state or region", 'wordpress-social-login')), array('field' => 'city', 'label' => _wsl__("City", 'wordpress-social-login'), 'description' => _wsl__("User's city", 'wordpress-social-login')), array('field' => 'zip', 'label' => _wsl__("Zip", 'wordpress-social-login'), 'description' => _wsl__("User's zipcode", 'wordpress-social-login')));
?>
<div class="stuffbox">
<h3>
<label><?php
_wsl_e("Profile mappings", 'wordpress-social-login');
?>
</label>
</h3>
<div class="inside">
<p>
<?php
_wsl_e("When <b>Profile mapping</b> is enabled, WSL will try to automatically fill in Buddypress users profiles from their social networks profiles", 'wordpress-social-login');
?>
.
</p>
<p>
<b><?php
_wsl_e('Notes', 'wordpress-social-login');
?>
:</b>
</p>
<p class="description">
1. <?php
_wsl_e('<b>Profile mapping</b> will only work for new users. Profile mapping for returning users will implemented in future version of WSL', 'wordpress-social-login');
?>
.
<br />
2. <?php
_wsl_e('Not all the mapped fields will be filled. Some providers and social networks do not give away many information about their users', 'wordpress-social-login');
?>
.
<br />
3. <?php
_wsl_e('WSL can only map <b>Single Fields</b>. Supported fields types are: Multi-line Text Areax, Text Box, URL, Date Selector and Number', 'wordpress-social-login');
?>
.
</p>
<table width="100%" border="0" cellpadding="5" cellspacing="2" style="border-top:1px solid #ccc;">
<tr>
<td width="200" align="right"><strong><?php
_wsl_e("Enable profile mapping", 'wordpress-social-login');
?>
:</strong></td>
<td>
<select name="wsl_settings_buddypress_enable_mapping" id="wsl_settings_buddypress_enable_mapping" style="width:100px" onChange="toggleMapDiv();">
<option <?php
if ($wsl_settings_buddypress_enable_mapping == 1) {
echo "selected";
}
?>
value="1"><?php
_wsl_e("Yes", 'wordpress-social-login');
?>
</option>
<option <?php
if ($wsl_settings_buddypress_enable_mapping == 2) {
echo "selected";
}
?>
value="2"><?php
_wsl_e("No", 'wordpress-social-login');
?>
</option>
</select>
</td>
</tr>
</table>
<br>
</div>
</div>
<div id="xprofilemapdiv" class="stuffbox" style="<?php
if ($wsl_settings_buddypress_enable_mapping == 2) {
echo "display:none;";
}
?>
">
<h3>
<label><?php
_wsl_e("Fields Map", 'wordpress-social-login');
?>
</label>
</h3>
<div class="inside">
<p>
<?php
_wsl_e("Here you can create a new map by placing WSL users profiles fields to the appropriate destination fields", 'wordpress-social-login');
?>
.
//.........这里部分代码省略.........
示例5: wsl_component_networks_setup
//.........这里部分代码省略.........
<td><input dir="ltr" type="text" name="" value="<?php
echo strip_tags($provider_callback_url);
?>
" readonly="readonly"></td>
</tr>
<?php
}
?>
<?php
}
?>
<?php
}
// if require registration
?>
</tbody>
</table>
<?php
if (get_option('wsl_settings_' . $provider_id . '_enabled')) {
?>
<?php
if ($provider_id == "Steam") {
?>
<div class="fade updated">
<p>
<b><?php
_wsl_e("Notes", 'wordpress-social-login');
?>
:</b>
</p>
<p>
1. <?php
echo sprintf(_wsl__("<b>%s</b> do not require an external application, however if the Web API Key is provided, then WSL will be able to get more information about the connected %s users", 'wordpress-social-login'), $provider_name, $provider_name);
?>
.
<br />2. <?php
echo sprintf(_wsl__("<b>%s</b> do not provide their user's email address and by default a random email will then be generated for them instead", 'wordpress-social-login'), $provider_name);
?>
.
<?php
_wsl_e('To change this behaviour and to force new registered users to provide their emails before they get in, goto <b><a href="options-general.php?page=wordpress-social-login&wslp=bouncer">Bouncer</a></b> and enable <b>Profile Completion</b>', 'wordpress-social-login');
?>
.
</p>
</div>
<?php
} elseif ($provider_new_app_link && strlen(trim(get_option('wsl_settings_' . $provider_id . '_app_secret'))) == 0) {
?>
<div class="fade error">
<p>
<?php
echo sprintf(_wsl__('<b>%s</b> requires that you create an external application linking your website to their API. To know how to create this application, click on “Where do I get this info?” and follow the steps', 'wordpress-social-login'), $provider_name, $provider_name);
?>
.
</p>
</div>
<?php
} elseif (in_array($provider_id, array("Twitter", "Identica", "Tumblr", "Goodreads", "500px", "Vkontakte", "Gowalla", "Steam"))) {
?>
<div class="fade updated">
<p>
<b><?php
_wsl_e("Note", 'wordpress-social-login');
?>
示例6: wsl_component_networks_setup
//.........这里部分代码省略.........
echo 'wsl_settings_' . $provider_id . '_app_secret';
?>
" value="<?php
echo get_option('wsl_settings_' . $provider_id . '_app_secret');
?>
" ></td>
<td><a href="javascript:void(0)" onClick="toggleproviderhelp('<?php
echo $provider_id;
?>
')"><?php
_wsl_e("Where do I get this info?", 'wordpress-social-login');
?>
</a></td>
</tr>
<?php
}
// if require registration
?>
</tbody>
</table>
<?php
if (in_array($provider_id, array("Twitter", "Identica", "Tumblr", "Goodreads", "500px", "Vkontakte", "Gowalla", "Steam"))) {
?>
<br />
<hr />
<p style="margin-left:12px;margin-bottom:0px;">
<b style="color:#CB4B16;"><?php
_wsl_e("Note", 'wordpress-social-login');
?>
:</b>
<?php
echo sprintf(_wsl__("<b>%s</b> do not provide their user's email address and by default a random email will then be generated for them instead", 'wordpress-social-login'), $provider_name);
?>
.
<?php
_wsl_e('To change this behaviour and to force new registered users to provide their emails before they get in, goto <b><a href="options-general.php?page=wordpress-social-login&wslp=bouncer">Bouncer</a></b> and enable <b>Profile Completion</b>', 'wordpress-social-login');
?>
.
</p>
<?php
}
?>
<br />
<div
class="wsl_div_settings_help_<?php
echo $provider_id;
?>
"
style="<?php
if (isset($_REQUEST["enable"]) && !isset($_REQUEST["settings-updated"]) && $_REQUEST["enable"] == $provider_id) {
echo "-";
}
// <= lolz
?>
display:none;"
>
<hr class="wsl" />
<?php
if ($provider_new_app_link) {
?>
<?php
示例7: wsl_component_components_setup
function wsl_component_components_setup()
{
// HOOKABLE:
do_action("wsl_component_components_setup_start");
global $WORDPRESS_SOCIAL_LOGIN_COMPONENTS;
?>
<div style="padding: 15px; margin-bottom: 8px; border: 1px solid #ddd; background-color: #fff;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);">
<?php
_wsl_e("By default, only the three WSL core components are enabled. You can selectively enable or disable any of the non-core components by using the form below. Your WSL installation will continue to function. However, the features of the disabled components will no longer be accessible", 'wordpress-social-login');
?>
.
</div>
<form action="" method="post">
<table class="widefat fixed plugins" cellspacing="0">
<thead>
<tr>
<th scope="col" class="manage-column column-label" style="width: 190px;"><?php
_wsl_e("Component", 'wordpress-social-login');
?>
</th>
<th scope="col" class="manage-column column-description"><?php
_wsl_e("Description", 'wordpress-social-login');
?>
</th>
<th scope="col" class="manage-column column-action" style="width: 140px;"> </th>
</tr>
</thead>
<tfoot>
<tr>
<th scope="col" class="manage-column column-label" style="width: 190px;"><?php
_wsl_e("Component", 'wordpress-social-login');
?>
</th>
<th scope="col" class="manage-column column-description"><?php
_wsl_e("Description", 'wordpress-social-login');
?>
</th>
<th scope="col" class="manage-column column-action" style="width: 140px;"> </th>
</tr>
</tfoot>
<tbody id="the-list">
<?php
foreach ($WORDPRESS_SOCIAL_LOGIN_COMPONENTS as $name => $settings) {
$plugin_tr_class = '';
$plugin_notices = '';
$plugin_enablable = true;
if ($name == "core") {
continue;
}
$plugin_tr_class = $settings["enabled"] ? "active" : "inactive";
?>
<tr id="<?php
echo $name;
?>
" class="<?php
echo $name;
?>
<?php
echo $plugin_tr_class;
?>
">
<td class="component-label" style="width: 190px;">
<?php
if ($settings["type"] == "core") {
?>
<div class="icon16 icon-generic"></div>
<?php
} elseif ($settings["type"] == "addon") {
?>
<div class="icon16 icon-plugins"></div>
<?php
} else {
?>
<div class="icon16 icon-appearance"></div>
<?php
}
?>
<strong><?php
_wsl_e($settings["label"], 'wordpress-social-login');
?>
</strong>
</td>
<td class="column-description">
<p><?php
_wsl_e($settings["description"], 'wordpress-social-login');
?>
</p>
<?php
$meta = array();
if (isset($settings["version"])) {
$meta[] = sprintf(_wsl__("Version %s", 'wordpress-social-login'), $settings["version"]);
}
if (isset($settings["author"])) {
if (isset($settings["author_url"])) {
$meta[] = sprintf(_wsl__('By <a href="%s" target="_blank">%s</a>', 'wordpress-social-login'), $settings["author_url"], $settings["author"]);
} else {
//.........这里部分代码省略.........
示例8: wsl_manage_users_custom_column
/**
* Generate content for the added column to wp-admin/users.php
*/
function wsl_manage_users_custom_column($value, $column_name, $user_id)
{
if ('wsl_column' != $column_name) {
return $value;
}
$tmp = wsl_get_user_by_meta_key_and_user_id("wsl_user_image", $user_id);
if (!$tmp) {
return "";
}
return '<a href="options-general.php?page=wordpress-social-login&wslp=users&uid=' . $user_id . '">' . _wsl__("Profile", 'wordpress-social-login') . '</a> | <a href="options-general.php?page=wordpress-social-login&wslp=contacts&uid=' . $user_id . '">' . _wsl__("Contacts", 'wordpress-social-login') . '</a>';
}
示例9: wsl_component_contacts_list
function wsl_component_contacts_list($user_id)
{
// HOOKABLE:
do_action("wsl_component_contacts_list_start");
$assets_base_url = WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . '/assets/img/16x16/';
$user_data = get_userdata($user_id);
if (!$user_data) {
?>
<div style="padding: 15px; margin-bottom: 8px; border: 1px solid #ddd; background-color: #fff;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);">
<?php
_wsl_e("WordPress user not found!", 'wordpress-social-login');
?>
.
</div>
<?php
return;
}
add_thickbox();
$pagenum = isset($_GET['pagenum']) ? absint($_GET['pagenum']) : 1;
$limit = 50;
// number of rows in page
$offset = ($pagenum - 1) * $limit;
$num_of_pages = 0;
$total = wsl_get_stored_hybridauth_user_contacts_count_by_user_id($user_id);
$num_of_pages = ceil($total / $limit);
$user_contacts = wsl_get_stored_hybridauth_user_contacts_by_user_id($user_id, $offset, $limit);
$actions = array('edit_details' => '<a class="button button-secondary thickbox" href="' . admin_url('user-edit.php?user_id=' . $user_id . '&TB_iframe=true&width=1150&height=550') . '">' . _wsl__('Edit user details', 'wordpress-social-login') . '</a>', 'show_profiles' => '<a class="button button-secondary" href="' . admin_url('options-general.php?page=wordpress-social-login&wslp=users&uid=' . $user_id) . '">' . _wsl__('Show user social profiles', 'wordpress-social-login') . '</a>');
// HOOKABLE:
$actions = apply_filters('wsl_component_users_profile_alter_actions_list', $actions, $user_id);
?>
<div style="padding: 15px; margin-bottom: 8px; border: 1px solid #ddd; background-color: #fff;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);">
<h3 style="margin:0;"><?php
echo sprintf(_wsl__("%s's contacts list", 'wordpress-social-login'), $user_data->display_name);
?>
</h3>
<p style="float: <?php
if (is_rtl()) {
echo 'left';
} else {
echo 'right';
}
?>
;margin-top:-23px">
<?php
echo implode(' ', $actions);
?>
</p>
</div>
<style>
.widefatop td, .widefatop th { border: 1px solid #DDDDDD; }
.widefatop th label { font-weight: bold; }
</style>
<table cellspacing="0" class="wp-list-table widefat fixed users">
<thead>
<tr>
<th width="100"><span><?php
_wsl_e("Provider", 'wordpress-social-login');
?>
</span></th>
<th><span><?php
_wsl_e("Contact Name", 'wordpress-social-login');
?>
</span></th>
<th><span><?php
_wsl_e("Contact Email", 'wordpress-social-login');
?>
</span></th>
<th><span><?php
_wsl_e("Contact Profile Url", 'wordpress-social-login');
?>
</span></th>
</tr>
</thead>
<tfoot>
<tr>
<th width="100"><span><?php
_wsl_e("Provider", 'wordpress-social-login');
?>
</span></th>
<th><span><?php
_wsl_e("Contact Name", 'wordpress-social-login');
?>
</span></th>
<th><span><?php
_wsl_e("Contact Email", 'wordpress-social-login');
?>
</span></th>
<th><span><?php
_wsl_e("Contact Profile Url", 'wordpress-social-login');
?>
</span></th>
</tr>
</tfoot>
<tbody id="the-list">
<?php
$i = 0;
//.........这里部分代码省略.........
示例10: wsl_process_login_create_wp_user
function wsl_process_login_create_wp_user($provider, $hybridauth_user_profile, $request_user_login, $request_user_email)
{
// HOOKABLE: any action to fire right before a user created on database
do_action('wsl_hook_process_login_before_create_wp_user');
$user_login = null;
$user_email = null;
// if coming from "complete registration form"
if ($request_user_email && $request_user_login) {
$user_login = $request_user_login;
$user_email = $request_user_email;
} else {
// generate a valid user login
$user_login = trim(str_replace(' ', '_', strtolower($hybridauth_user_profile->displayName)));
$user_email = $hybridauth_user_profile->email;
if (empty($user_login)) {
$user_login = trim($hybridauth_user_profile->lastName . " " . $hybridauth_user_profile->firstName);
}
if (empty($user_login)) {
$user_login = strtolower($provider) . "_user_" . md5($hybridauth_user_profile->identifier);
}
// user name should be unique
if (username_exists($user_login)) {
$i = 1;
$user_login_tmp = $user_login;
do {
$user_login_tmp = $user_login . "_" . $i++;
} while (username_exists($user_login_tmp));
$user_login = $user_login_tmp;
}
// generate an email if none
if (!isset($user_email) or !is_email($user_email)) {
$user_email = strtolower($provider . "_user_" . $user_login) . "@example.com";
}
// email should be unique
if (email_exists($user_email)) {
do {
$user_email = md5(uniqid(wp_rand(10000, 99000))) . "@example.com";
} while (email_exists($user_email));
}
$user_login = sanitize_user($user_login, true);
if (!validate_username($user_login)) {
$user_login = strtolower($provider) . "_user_" . md5($hybridauth_user_profile->identifier);
}
}
$display_name = $hybridauth_user_profile->displayName;
if ($request_user_login || empty($display_name)) {
$display_name = $user_login;
}
$userdata = array('user_login' => $user_login, 'user_email' => $user_email, 'display_name' => $display_name, 'first_name' => $hybridauth_user_profile->firstName, 'last_name' => $hybridauth_user_profile->lastName, 'user_url' => $hybridauth_user_profile->profileURL, 'description' => $hybridauth_user_profile->description, 'user_pass' => wp_generate_password());
// Bouncer :: Membership level
if (get_option('wsl_settings_bouncer_new_users_membership_default_role') != "default") {
$userdata['role'] = get_option('wsl_settings_bouncer_new_users_membership_default_role');
}
// Bouncer :: User Moderation : None
if (get_option('wsl_settings_bouncer_new_users_moderation_level') == 1) {
// well do nothing..
}
// Bouncer :: User Moderation : Yield to Theme My Login plugin
if (get_option('wsl_settings_bouncer_new_users_moderation_level') > 100) {
$userdata['role'] = "pending";
}
// HOOKABLE: change the user data
if (apply_filters('wsl_hook_process_login_alter_userdata', $userdata, $provider, $hybridauth_user_profile)) {
$userdata = apply_filters('wsl_hook_process_login_alter_userdata', $userdata, $provider, $hybridauth_user_profile);
}
// HOOKABLE: any action to fire right before a user created on database
do_action('wsl_hook_process_login_before_insert_user', $userdata, $provider, $hybridauth_user_profile);
// HOOKABLE: delegate user insert to a custom function
$user_id = apply_filters('wsl_hook_process_login_alter_insert_user', $userdata, $provider, $hybridauth_user_profile);
// Create a new user
if (!$user_id || !is_integer($user_id)) {
$user_id = wp_insert_user($userdata);
}
// update user metadata
if ($user_id && is_integer($user_id)) {
update_user_meta($user_id, $provider, $hybridauth_user_profile->identifier);
} else {
if (is_wp_error($user_id)) {
echo $user_id->get_error_message();
} else {
return wsl_render_notices_pages(_wsl__("An error occurred while creating a new user!", 'wordpress-social-login'));
}
}
// Send notifications
if (get_option('wsl_settings_users_notification') == 1) {
wsl_admin_notification($user_id, $provider);
}
// HOOKABLE: any action to fire right after a user created on database
do_action('wsl_hook_process_login_after_create_wp_user', $user_id, $provider, $hybridauth_user_profile);
return array($user_id, $user_login, $user_email);
}
示例11: wsl_admin_welcome_panel
/**
* 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>
//.........这里部分代码省略.........
示例12: wsl_component_components_gallery
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");
}
示例13: wsl_check_compatibilities
/**
* Check and upgrade compatibilities from old WSL versions
*
* Here we attempt to:
* - set to default all settings when WSL is installed
* - make wsl compatible when updating from old versions by registring any option
*
* Side note: the things here are not optimal and the list is kind of long. If you have any
* better idea on how to tackle this issue, please don't hesitate to share it!
*/
function wsl_check_compatibilities()
{
# widget settings / customize
if (!get_option('wsl_settings_redirect_url')) {
update_option('wsl_settings_redirect_url', site_url());
}
if (!get_option('wsl_settings_connect_with_label')) {
update_option('wsl_settings_connect_with_label', "Connect with:");
}
if (!get_option('wsl_settings_use_popup')) {
update_option('wsl_settings_use_popup', 2);
}
if (!get_option('wsl_settings_widget_display')) {
update_option('wsl_settings_widget_display', 1);
}
if (!get_option('wsl_settings_authentication_widget_css')) {
update_option('wsl_settings_authentication_widget_css', "#wp-social-login-connect-with {font-weight: bold;}\n#wp-social-login-connect-options {padding:10px;}\n#wp-social-login-connect-options a {text-decoration: none;}\n#wp-social-login-connect-options img {border:0 none;}\n.wsl_connect_with_provider {}");
}
# bouncer
if (!get_option('wsl_settings_bouncer_registration_enabled')) {
update_option('wsl_settings_bouncer_registration_enabled', 1);
}
if (!get_option('wsl_settings_bouncer_authentication_enabled')) {
update_option('wsl_settings_bouncer_authentication_enabled', 1);
}
if (!get_option('wsl_settings_bouncer_linking_accounts_enabled')) {
update_option('wsl_settings_bouncer_linking_accounts_enabled', 2);
}
if (get_option('wsl_settings_bouncer_email_validation_enabled') == 1) {
update_option('wsl_settings_bouncer_profile_completion_require_email', 1);
delete_option('wsl_settings_bouncer_email_validation_enabled');
delete_option('wsl_settings_bouncer_email_validation_text_notice');
delete_option('wsl_settings_bouncer_email_validation_text_submit_button');
delete_option('wsl_settings_bouncer_email_validation_text_email');
delete_option('wsl_settings_bouncer_email_validation_text_username');
delete_option('wsl_settings_bouncer_email_validation_text_email_invalid');
delete_option('wsl_settings_bouncer_email_validation_text_username_invalid');
delete_option('wsl_settings_bouncer_email_validation_text_email_exists');
delete_option('wsl_settings_bouncer_email_validation_text_username_exists');
delete_option('wsl_settings_bouncer_email_validation_text_connected_with');
}
if (!get_option('wsl_settings_bouncer_profile_completion_require_email')) {
update_option('wsl_settings_bouncer_profile_completion_require_email', 2);
}
if (!get_option('wsl_settings_bouncer_profile_completion_change_email')) {
update_option('wsl_settings_bouncer_profile_completion_change_email', 2);
}
if (!get_option('wsl_settings_bouncer_profile_completion_change_username')) {
update_option('wsl_settings_bouncer_profile_completion_change_username', 2);
}
if (!get_option('wsl_settings_bouncer_profile_completion_text_notice')) {
update_option('wsl_settings_bouncer_profile_completion_text_notice', _wsl__("Almost there, we just need to check a couple of things", 'wordpress-social-login'));
}
if (!get_option('wsl_settings_bouncer_profile_completion_text_submit_button')) {
update_option('wsl_settings_bouncer_profile_completion_text_submit_button', _wsl__("Continue", 'wordpress-social-login'));
}
if (!get_option('wsl_settings_bouncer_profile_completion_text_email')) {
update_option('wsl_settings_bouncer_profile_completion_text_email', _wsl__("E-mail", 'wordpress-social-login'));
}
if (!get_option('wsl_settings_bouncer_profile_completion_text_username')) {
update_option('wsl_settings_bouncer_profile_completion_text_username', _wsl__("Username", 'wordpress-social-login'));
}
if (!get_option('wsl_settings_bouncer_profile_completion_text_email_invalid')) {
update_option('wsl_settings_bouncer_profile_completion_text_email_invalid', _wsl__("E-mail is not valid!", 'wordpress-social-login'));
}
if (!get_option('wsl_settings_bouncer_profile_completion_text_username_invalid')) {
update_option('wsl_settings_bouncer_profile_completion_text_username_invalid', _wsl__("Username is not valid!", 'wordpress-social-login'));
}
if (!get_option('wsl_settings_bouncer_profile_completion_text_email_exists')) {
update_option('wsl_settings_bouncer_profile_completion_text_email_exists', _wsl__("That E-mail is already registered!", 'wordpress-social-login'));
}
if (!get_option('wsl_settings_bouncer_profile_completion_text_username_exists')) {
update_option('wsl_settings_bouncer_profile_completion_text_username_exists', _wsl__("That Username is already registered!", 'wordpress-social-login'));
}
if (!get_option('wsl_settings_bouncer_profile_completion_text_connected_with')) {
update_option('wsl_settings_bouncer_profile_completion_text_connected_with', _wsl__("You are now connected via", 'wordpress-social-login'));
}
if (!get_option('wsl_settings_bouncer_new_users_moderation_level')) {
update_option('wsl_settings_bouncer_new_users_moderation_level', 1);
}
if (!get_option('wsl_settings_bouncer_new_users_membership_default_role')) {
update_option('wsl_settings_bouncer_new_users_membership_default_role', "default");
}
if (!get_option('wsl_settings_bouncer_new_users_restrict_domain_enabled')) {
update_option('wsl_settings_bouncer_new_users_restrict_domain_enabled', 2);
}
if (!get_option('wsl_settings_bouncer_new_users_restrict_domain_text_bounce')) {
update_option('wsl_settings_bouncer_new_users_restrict_domain_text_bounce', _wsl__("Bouncer says no.", 'wordpress-social-login'));
}
if (!get_option('wsl_settings_bouncer_new_users_restrict_email_enabled')) {
//.........这里部分代码省略.........
示例14: wsl_admin_welcome_panel
/**
* 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>
//.........这里部分代码省略.........
示例15: wsl_component_contacts
//.........这里部分代码省略.........
?>
.</li>
</ul>
</p>
</div>
</div>
<br style="clear:both;" />
<div style="margin-left:5px;margin-top:-20px;">
<input type="submit" class="button-primary" value="<?php
_wsl_e("Save Settings", 'wordpress-social-login');
?>
" />
</div>
</div>
</div>
</form>
<br style="clear:both;" />
<hr />
<h3><?php
_wsl_e("Users contacts list preview", 'wordpress-social-login');
?>
</h3>
<?php
}
// if( isset( $_REQUEST["uid"] ) && (int) $_REQUEST["uid"] ){
if ($user_id) {
$display_name = wsl_get_user_data_by_user_id("display_name", $user_id);
?>
<h3><?php
echo sprintf(_wsl__("%s contact's list", 'wordpress-social-login'), $display_name);
?>
</h3>
<?php
}
?>
<table cellspacing="0" class="wp-list-table widefat fixed users">
<thead>
<tr>
<th width="100"><span><?php
_wsl_e("Provider", 'wordpress-social-login');
?>
</span></th>
<th><span><?php
_wsl_e("User", 'wordpress-social-login');
?>
</span></th>
<th><span><?php
_wsl_e("Contact Name", 'wordpress-social-login');
?>
</span></th>
<th><span><?php
_wsl_e("Contact Email", 'wordpress-social-login');
?>
</span></th>
<th><span><?php
_wsl_e("Contact Profile Url", 'wordpress-social-login');
?>
</span></th>
</tr>
</thead>
<tfoot>