/** * Generate wsl admin pages * * wp-admin/options-general.php?page=wordpress-social-login&.. */ function wsl_admin_init() { // HOOKABLE: do_action("wsl_admin_init_start"); if (!wsl_check_requirements()) { wsl_admin_ui_fail(); exit; } global $WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS; global $WORDPRESS_SOCIAL_LOGIN_COMPONENTS; global $WORDPRESS_SOCIAL_LOGIN_PROVIDERS_CONFIG; global $WORDPRESS_SOCIAL_LOGIN_VERSION; global $wpdb; if (isset($_REQUEST["enable"]) && isset($WORDPRESS_SOCIAL_LOGIN_COMPONENTS[$_REQUEST["enable"]])) { $component = $_REQUEST["enable"]; $WORDPRESS_SOCIAL_LOGIN_COMPONENTS[$component]["enabled"] = true; update_option("wsl_components_" . $component . "_enabled", 1); wsl_register_components(); } if (isset($_REQUEST["disable"]) && isset($WORDPRESS_SOCIAL_LOGIN_COMPONENTS[$_REQUEST["disable"]])) { $component = $_REQUEST["disable"]; $WORDPRESS_SOCIAL_LOGIN_COMPONENTS[$component]["enabled"] = false; update_option("wsl_components_" . $component . "_enabled", 2); wsl_register_components(); } $wslp = "networks"; $wsldwp = 0; $assets_base_url = WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . '/assets/img/16x16/'; if (isset($_REQUEST["wslp"])) { $wslp = trim(strtolower(strip_tags($_REQUEST["wslp"]))); } if (isset($WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]) && $WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["enabled"]) { if (isset($WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["header_action"]) && $WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["header_action"]) { do_action($WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["header_action"]); } wsl_admin_ui_header($wslp); if (isset($WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["body_action"]) && $WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["body_action"]) { do_action($WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["body_action"]); } elseif (!(isset($WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["admin-url"]) && !$WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["admin-url"])) { include "components/{$wslp}/index.php"; wsl_admin_ui_footer(); } } else { wsl_admin_ui_header(); wsl_admin_ui_error(); } // HOOKABLE: do_action("wsl_admin_init_end"); }
/** * Generate wsl admin pages * * wp-admin/options-general.php?page=wordpress-social-login&.. */ function wsl_admin_main() { // HOOKABLE: do_action("wsl_admin_main_start"); if (!current_user_can('manage_options')) { wp_die('You do not have sufficient permissions to access this page.'); } if (!wsl_check_requirements()) { wsl_admin_ui_fail(); exit; } global $WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS; global $WORDPRESS_SOCIAL_LOGIN_COMPONENTS; global $WORDPRESS_SOCIAL_LOGIN_PROVIDERS_CONFIG; global $WORDPRESS_SOCIAL_LOGIN_VERSION; if (isset($_REQUEST["enable"]) && isset($WORDPRESS_SOCIAL_LOGIN_COMPONENTS[$_REQUEST["enable"]])) { $component = $_REQUEST["enable"]; $WORDPRESS_SOCIAL_LOGIN_COMPONENTS[$component]["enabled"] = true; update_option("wsl_components_" . $component . "_enabled", 1); wsl_register_components(); } if (isset($_REQUEST["disable"]) && isset($WORDPRESS_SOCIAL_LOGIN_COMPONENTS[$_REQUEST["disable"]])) { $component = $_REQUEST["disable"]; $WORDPRESS_SOCIAL_LOGIN_COMPONENTS[$component]["enabled"] = false; update_option("wsl_components_" . $component . "_enabled", 2); wsl_register_components(); } $wslp = "networks"; $wsldwp = 0; $assets_base_url = WORDPRESS_SOCIAL_LOGIN_PLUGIN_URL . 'assets/img/16x16/'; if (isset($_REQUEST["wslp"])) { $wslp = trim(strtolower(strip_tags($_REQUEST["wslp"]))); } wsl_admin_ui_header($wslp); if (isset($WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]) && $WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["enabled"]) { if (isset($WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["action"]) && $WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["action"]) { do_action($WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS[$wslp]["action"]); } else { include "components/{$wslp}/index.php"; } } else { wsl_admin_ui_error(); } wsl_admin_ui_footer(); // HOOKABLE: do_action("wsl_admin_main_end"); }
/** * Attempt to install/migrate/repair WSL upon activation * * Create wsl tables * Migrate old versions * Register default components */ function wsl_install() { wsl_database_install(); wsl_update_compatibilities(); wsl_register_components(); }
/** * Register WSL core settings ( options; components ) */ function wsl_register_setting() { global $WORDPRESS_SOCIAL_LOGIN_PROVIDERS_CONFIG; global $WORDPRESS_SOCIAL_LOGIN_COMPONENTS; global $WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS; // HOOKABLE: do_action('wsl_register_setting'); wsl_register_components(); // idps credentials foreach ($WORDPRESS_SOCIAL_LOGIN_PROVIDERS_CONFIG as $item) { $provider_id = isset($item["provider_id"]) ? $item["provider_id"] : null; $require_client_id = isset($item["require_client_id"]) ? $item["require_client_id"] : null; $require_registration = isset($item["new_app_link"]) ? $item["new_app_link"] : null; $default_api_scope = isset($item["default_api_scope"]) ? $item["default_api_scope"] : null; /** * @fixme * * Here we should only register enabled providers settings. postponed. patches are welcome. *** $default_network = isset( $item["default_network"] ) ? $item["default_network"] : null; if( ! $default_network || get_option( 'wsl_settings_' . $provider_id . '_enabled' ) != 1 .. ) { .. } */ register_setting('wsl-settings-group', 'wsl_settings_' . $provider_id . '_enabled'); // require application? if ($require_registration) { // api key or id ? if ($require_client_id) { register_setting('wsl-settings-group', 'wsl_settings_' . $provider_id . '_app_id'); } else { register_setting('wsl-settings-group', 'wsl_settings_' . $provider_id . '_app_key'); } // api secret register_setting('wsl-settings-group', 'wsl_settings_' . $provider_id . '_app_secret'); // api scope? if ($default_api_scope) { if (!get_option('wsl_settings_' . $provider_id . '_app_scope')) { update_option('wsl_settings_' . $provider_id . '_app_scope', $default_api_scope); } register_setting('wsl-settings-group', 'wsl_settings_' . $provider_id . '_app_scope'); } } } register_setting('wsl-settings-group-customize', 'wsl_settings_connect_with_label'); register_setting('wsl-settings-group-customize', 'wsl_settings_social_icon_set'); register_setting('wsl-settings-group-customize', 'wsl_settings_users_avatars'); register_setting('wsl-settings-group-customize', 'wsl_settings_use_popup'); register_setting('wsl-settings-group-customize', 'wsl_settings_widget_display'); register_setting('wsl-settings-group-customize', 'wsl_settings_redirect_url'); register_setting('wsl-settings-group-customize', 'wsl_settings_force_redirect_url'); register_setting('wsl-settings-group-customize', 'wsl_settings_users_notification'); register_setting('wsl-settings-group-customize', 'wsl_settings_authentication_widget_css'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_facebook'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_google'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_twitter'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_linkedin'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_live'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_vkontakte'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_registration_enabled'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_authentication_enabled'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_accounts_linking_enabled'); // Planned for 2.3 register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_require_email'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_change_username'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_hook_extra_fields'); // Planned for 2.3 register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_moderation_level'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_membership_default_role'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_domain_enabled'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_domain_list'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_domain_text_bounce'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_email_enabled'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_email_list'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_email_text_bounce'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_profile_enabled'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_profile_list'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_profile_text_bounce'); register_setting('wsl-settings-group-buddypress', 'wsl_settings_buddypress_enable_mapping'); register_setting('wsl-settings-group-buddypress', 'wsl_settings_buddypress_xprofile_map'); register_setting('wsl-settings-group-debug', 'wsl_settings_debug_mode_enabled'); register_setting('wsl-settings-group-development', 'wsl_settings_development_mode_enabled'); }
/** * Register wsl core settings ( options; components ) */ function wsl_register_setting() { global $WORDPRESS_SOCIAL_LOGIN_PROVIDERS_CONFIG; global $WORDPRESS_SOCIAL_LOGIN_COMPONENTS; global $WORDPRESS_SOCIAL_LOGIN_ADMIN_TABS; // HOOKABLE: do_action('wsl_register_setting_begin'); wsl_register_components(); // idps credentials foreach ($WORDPRESS_SOCIAL_LOGIN_PROVIDERS_CONFIG as $item) { $provider_id = @$item["provider_id"]; $require_client_id = @$item["require_client_id"]; $require_registration = @$item["new_app_link"]; register_setting('wsl-settings-group', 'wsl_settings_' . $provider_id . '_enabled'); if ($require_registration) { // require application? if ($require_client_id) { // key or id ? register_setting('wsl-settings-group', 'wsl_settings_' . $provider_id . '_app_id'); } else { register_setting('wsl-settings-group', 'wsl_settings_' . $provider_id . '_app_key'); } register_setting('wsl-settings-group', 'wsl_settings_' . $provider_id . '_app_secret'); } } register_setting('wsl-settings-group-customize', 'wsl_settings_connect_with_label'); register_setting('wsl-settings-group-customize', 'wsl_settings_social_icon_set'); register_setting('wsl-settings-group-customize', 'wsl_settings_users_avatars'); register_setting('wsl-settings-group-customize', 'wsl_settings_use_popup'); register_setting('wsl-settings-group-customize', 'wsl_settings_widget_display'); register_setting('wsl-settings-group-customize', 'wsl_settings_redirect_url'); register_setting('wsl-settings-group-customize', 'wsl_settings_users_notification'); register_setting('wsl-settings-group-customize', 'wsl_settings_authentication_widget_css'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_facebook'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_google'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_twitter'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_live'); register_setting('wsl-settings-group-contacts-import', 'wsl_settings_contacts_import_linkedin'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_registration_enabled'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_authentication_enabled'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_require_email'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_change_email'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_change_username'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_text_notice'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_text_submit_button'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_text_connected_with'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_text_email'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_text_username'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_text_email_invalid'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_text_username_invalid'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_text_email_exists'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_profile_completion_text_username_exists'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_moderation_level'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_membership_default_role'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_domain_enabled'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_domain_list'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_domain_text_bounce'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_email_enabled'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_email_list'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_email_text_bounce'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_profile_enabled'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_profile_list'); register_setting('wsl-settings-group-bouncer', 'wsl_settings_bouncer_new_users_restrict_profile_text_bounce'); register_setting('wsl-settings-group-advanced-settings', 'wsl_settings_base_url'); register_setting('wsl-settings-group-development', 'wsl_settings_development_mode_enabled'); add_option('wsl_settings_welcome_panel_enabled'); // update old/all default wsl-settings wsl_check_compatibilities(); // HOOKABLE: do_action('wsl_register_setting_end'); }