function wsl_get_bp_user_custom_avatar($html, $args) { //Buddypress component should be enabled if (!wsl_is_component_enabled('buddypress')) { return $html; } //Check if avatars display is enabled if (!get_option('wsl_settings_users_avatars')) { return $html; } //Check arguments if (is_array($args)) { //User Object if (!empty($args['object']) and strtolower($args['object']) == 'user') { //User Identifier if (!empty($args['item_id']) and is_numeric($args['item_id'])) { $user_id = $args['item_id']; //Only Overwrite gravatars # https://wordpress.org/support/topic/buddypress-avatar-overwriting-problem?replies=1 if (bp_get_user_has_avatar($user_id)) { return $html; } $wsl_avatar = wsl_get_user_custom_avatar($user_id); //Retrieve Avatar if ($wsl_avatar) { $img_class = 'class="' . (!empty($args['class']) ? $args['class'] . ' ' : '') . 'avatar-wordpress-social-login" '; $img_width = !empty($args['width']) ? 'width="' . $args['width'] . '" ' : 'width="' . bp_core_avatar_full_width() . '" '; $img_height = !empty($args['height']) ? 'height="' . $args['height'] . '" ' : 'height="' . bp_core_avatar_full_height() . '" '; $img_alt = !empty($args['alt']) ? 'alt="' . esc_attr($args['alt']) . '" ' : ''; //Replace $wsl_html = preg_replace('#<img[^>]+>#i', '<img src="' . $wsl_avatar . '" ' . $img_alt . $img_class . $img_height . $img_width . '/>', $html); // HOOKABLE: return apply_filters('wsl_hook_alter_get_bp_user_custom_avatar', $wsl_html, $user_id, $wsl_avatar, $html, $args); } } } } return $html; }
function test_component_bouncer_enabled() { $this->assertTrue(wsl_is_component_enabled('bouncer')); }
/** * Build required hybridauth configuration for the given provider */ function wsl_process_login_build_provider_config($provider) { $config = array(); $config["base_url"] = WORDPRESS_SOCIAL_LOGIN_HYBRIDAUTH_ENDPOINT_URL; $config["providers"] = array(); $config["providers"][$provider] = array(); $config["providers"][$provider]["enabled"] = true; $config["providers"][$provider]["keys"] = array('id' => null, 'key' => null, 'secret' => null); // provider application id ? if (get_option('wsl_settings_' . $provider . '_app_id')) { $config["providers"][$provider]["keys"]["id"] = get_option('wsl_settings_' . $provider . '_app_id'); } // provider application key ? if (get_option('wsl_settings_' . $provider . '_app_key')) { $config["providers"][$provider]["keys"]["key"] = get_option('wsl_settings_' . $provider . '_app_key'); } // provider application secret ? if (get_option('wsl_settings_' . $provider . '_app_secret')) { $config["providers"][$provider]["keys"]["secret"] = get_option('wsl_settings_' . $provider . '_app_secret'); } // set custom endpoint? if (in_array(strtolower($provider), array('dribbble'))) { $config["providers"][$provider]["endpoint"] = WORDPRESS_SOCIAL_LOGIN_HYBRIDAUTH_ENDPOINT_URL . 'endpoints/' . strtolower($provider) . '.php'; } // set default scope if (get_option('wsl_settings_' . $provider . '_app_scope')) { $config["providers"][$provider]["scope"] = get_option('wsl_settings_' . $provider . '_app_scope'); } // set custom config for facebook if (strtolower($provider) == "facebook") { $config["providers"][$provider]["display"] = "popup"; $config["providers"][$provider]["trustForwarded"] = true; // switch to fb::display 'page' if wsl auth in page if (get_option('wsl_settings_use_popup') == 2) { $config["providers"][$provider]["display"] = "page"; } } // set custom config for google if (strtolower($provider) == "google") { // if contacts import enabled, we request an extra permission 'https://www.google.com/m8/feeds/' if (wsl_is_component_enabled('contacts') && get_option('wsl_settings_contacts_import_google') == 1) { $config["providers"][$provider]["scope"] .= " https://www.google.com/m8/feeds/"; } } $provider_scope = isset($config["providers"][$provider]["scope"]) ? $config["providers"][$provider]["scope"] : ''; // HOOKABLE: allow to overwrite scopes $config["providers"][$provider]["scope"] = apply_filters('wsl_hook_alter_provider_scope', $provider_scope, $provider); // HOOKABLE: allow to overwrite hybridauth config for the selected provider $config["providers"][$provider] = apply_filters('wsl_hook_alter_provider_config', $config["providers"][$provider], $provider); return $config; }
function wsl_component_networks_basicinsights() { // HOOKABLE: do_action("wsl_component_networks_basicinsights_start"); global $wpdb; $sql = "SELECT count( * ) as items FROM `{$wpdb->prefix}users`"; $rs1 = $wpdb->get_results($sql); $sql = "SELECT count( * ) as items FROM `{$wpdb->prefix}usermeta` where meta_key = 'wsl_user'"; $rs2 = $wpdb->get_results($sql); $total_users = (int) $rs1[0]->items; $total_users_wsl = (int) $rs2[0]->items; $users_conversion = 100 * $total_users_wsl / $total_users; if ($total_users_wsl && wsl_is_component_enabled("basicinsights")) { ?> <div class="postbox " id="linksubmitdiv"> <div class="inside"> <div id="submitlink" class="submitbox"> <h3 style="cursor: default;"><?php _wsl_e("Insights", 'wordpress-social-login'); ?> </h3> <div id="minor-publishing"> <div id="misc-publishing-actions"> <div style="padding:20px;padding-top:0px;"> <h4 style="border-bottom:1px solid #ccc"><?php _wsl_e("Conversions", 'wordpress-social-login'); ?> </h4> <table width="90%"> <tr> <td width="60%"><?php _wsl_e("WP users", 'wordpress-social-login'); ?> </td><td><?php echo $total_users; ?> </td> </tr> <tr> <td><?php _wsl_e("WSL users", 'wordpress-social-login'); ?> </td><td><?php echo $total_users_wsl; ?> </td> </tr> <tr> <td><?php _wsl_e("Conversions", 'wordpress-social-login'); ?> </td><td style="border-top:1px solid #ccc">+<b><?php echo number_format($users_conversion, 2, '.', ''); ?> </b> %</td> </tr> </table> <?php $sql = "SELECT meta_value, count( * ) as items FROM `{$wpdb->prefix}usermeta` where meta_key = 'wsl_user' group by meta_value order by items desc "; $rs1 = $wpdb->get_results($sql); $assets_base_url = WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . '/assets/img/16x16/'; ?> <h4 style="border-bottom:1px solid #ccc"><?php _wsl_e("By provider", 'wordpress-social-login'); ?> </h4> <table width="90%"> <?php foreach ($rs1 as $item) { if (!$item->meta_value) { $item->meta_value = "Unknown"; } ?> <tr> <td width="60%"> <img src="<?php echo $assets_base_url . strtolower($item->meta_value) . '.png'; ?> " style="vertical-align:top;width:16px;height:16px;" /> <?php echo $item->meta_value; ?> </td> <td> <?php echo $item->items; ?> </td> </tr> <?php } ?> <tr> <td align="right"> </td><td style="border-top:1px solid #ccc"><b><?php echo $total_users_wsl; ?> </b> <?php _wsl_e("WSL users", 'wordpress-social-login'); ?> </td> </tr> </table> <?php $sql = "SELECT meta_value, count( * ) as items FROM `{$wpdb->prefix}usermeta` where meta_key = 'wsl_user_gender' group by meta_value order by items desc "; $rs = $wpdb->get_results($sql); ?> <h4 style="border-bottom:1px solid #ccc"><?php _wsl_e("By gender", 'wordpress-social-login'); ?> </h4> <table width="90%"> <?php foreach ($rs as $item) { if (!$item->meta_value) { $item->meta_value = "Unknown"; } ?> <tr> <td width="60%"> <?php echo ucfirst($item->meta_value); ?> </td> <td> <?php echo $item->items; ?> </td> </tr> <?php } ?> </table> <?php $sql = "SELECT meta_value, count( * ) as items FROM `{$wpdb->prefix}usermeta` where meta_key = 'wsl_user_age' group by meta_value order by items desc limit 21"; $rs = $wpdb->get_results($sql); ?> <h4 style="border-bottom:1px solid #ccc"><?php _wsl_e("By age", 'wordpress-social-login'); ?> </h4> <table width="90%"> <?php $t_ages = 0; $n_ages = 0; foreach ($rs as $item) { if (!$item->meta_value) { $item->meta_value = "Unknown"; } else { $t_ages += (int) $item->meta_value; $n_ages++; } ?> <tr> <td width="60%"> <?php echo $item->meta_value; ?> </td> <td> <?php echo $item->items; ?> </td> </tr> <?php } if ($n_ages) { $a_ages = $t_ages / $n_ages; } ?> </td> </tr> <tr> <td align="right"> </td><td style="border-top:1px solid #ccc"><b><?php echo number_format($a_ages, 1, '.', ''); ?> </b> <?php _wsl_e("yrs in average", 'wordpress-social-login'); ?> </td> </tr> </table> </div> </div> </div> </div> </div> </div> <?php } // HOOKABLE: do_action("wsl_component_networks_basicinsights_end"); }
function wsl_buddypress_xprofile_mapping($user_id, $provider, $hybridauth_user_profile) { // component Buddypress should be enabled if (!wsl_is_component_enabled('buddypress')) { return; } do_action('bp_setup_globals'); // make sure buddypress is loaded. // > is this a legit way to check? if (!function_exists('xprofile_set_field_data')) { return; } // check if profiles mapping is enabled $wsl_settings_buddypress_enable_mapping = get_option('wsl_settings_buddypress_enable_mapping'); if ($wsl_settings_buddypress_enable_mapping != 1) { return; } // get current mapping $wsl_settings_buddypress_xprofile_map = get_option('wsl_settings_buddypress_xprofile_map'); $hybridauth_fields = array('identifier', 'profileURL', 'webSiteURL', 'photoURL', 'displayName', 'description', 'firstName', 'lastName', 'gender', 'language', 'age', 'birthDay', 'birthMonth', 'birthYear', 'email', 'phone', 'address', 'country', 'region', 'city', 'zip'); $hybridauth_user_profile = (array) $hybridauth_user_profile; // all check: start mapping process if ($wsl_settings_buddypress_xprofile_map) { foreach ($wsl_settings_buddypress_xprofile_map as $buddypress_field_id => $field_name) { // if data can be found in hybridauth profile if (in_array($field_name, $hybridauth_fields)) { $value = $hybridauth_user_profile[$field_name]; xprofile_set_field_data($buddypress_field_id, $user_id, $value); } // if eq provider if ($field_name == 'provider') { xprofile_set_field_data($buddypress_field_id, $user_id, $provider); } // if eq birthDate if ($field_name == 'birthDate') { $value = str_pad((int) $hybridauth_user_profile['birthYear'], 4, '0', STR_PAD_LEFT) . '-' . str_pad((int) $hybridauth_user_profile['birthMonth'], 2, '0', STR_PAD_LEFT) . '-' . str_pad((int) $hybridauth_user_profile['birthDay'], 2, '0', STR_PAD_LEFT) . ' 00:00:00'; xprofile_set_field_data($buddypress_field_id, $user_id, $value); } } } }