PluginProbe
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP / 1.2.73
UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP v1.2.73
1.2.73 1.2.72 1.2.71 1.2.70 1.2.69 1.2.68 1.2.67 1.2.66 1.2.65 1.2.64 1.2.63 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 All 173 releases
← All changes | includes/class-userswp.php +866 -559 1.0.211.2.73 View file →
@@ -1,5 +1,6 @@
1 1 <?php
2 +
2 3 /**
3 4 * The file that defines the core plugin class
4 5 *
5 6 * A class definition that includes attributes and functions used across both the
@@ -7,655 +8,961 @@
7 8 *
8 9 * @since 1.0.0
9 10 * @author GeoDirectory Team <info@wpgeodirectory.com>
10 11 */
11 -class UsersWP {
12 +final class UsersWP {
12 13
13 - /**
14 - * The loader that's responsible for maintaining and registering all hooks that power
15 - * the plugin.
16 - *
17 - * @since 1.0.0
18 - * @access protected
19 - * @var UsersWP_Loader $loader Maintains and registers all hooks for the plugin.
20 - */
21 - protected $loader;
14 + public $profile;
15 + public $forms;
16 + public $notices;
17 + /**
18 + * The current version of the plugin.
19 + *
20 + * @since 1.0.0
21 + * @access protected
22 + * @var string $version The current version of the plugin.
23 + */
24 + protected $plugin_name;
25 + protected $version;
26 + protected $i18n;
27 + protected $templates;
28 + protected $meta;
29 + protected $pages;
30 + protected $files;
31 + protected $shortcodes;
32 + protected $assets;
33 + protected $admin;
34 + protected $menus;
35 + protected $admin_menus;
36 + protected $form_builder;
37 + protected $ajax;
38 + protected $tools;
39 + protected $tables;
40 + protected $notifications;
22 41
42 + /**
43 + * Define the core functionality of the plugin.
44 + *
45 + * Set the plugin name and the plugin version that can be used throughout the plugin.
46 + * Load the dependencies, define the locale, and set the hooks for the admin area and
47 + * the public-facing side of the site.
48 + *
49 + * @since 1.0.0
50 + */
51 + public function __construct() {
52 + $this->plugin_name = USERSWP_NAME;
53 + $this->version = USERSWP_VERSION;
23 54
24 - /**
25 - * The current version of the plugin.
26 - *
27 - * @since 1.0.0
28 - * @access protected
29 - * @var string $version The current version of the plugin.
30 - */
31 - protected $version;
32 -
33 - protected $profile;
34 - protected $forms;
35 - protected $i18n;
36 - protected $notices;
37 - protected $templates;
38 - protected $meta;
39 - protected $pages;
40 - protected $files;
41 - protected $shortcodes;
42 - protected $assets;
43 - protected $admin;
44 - protected $admin_settings;
45 - protected $menus;
46 - protected $form_builder;
47 - protected $ajax;
48 - protected $tools;
49 - protected $tables;
50 55
51 - /**
52 - * Define the core functionality of the plugin.
53 - *
54 - * Set the plugin name and the plugin version that can be used throughout the plugin.
55 - * Load the dependencies, define the locale, and set the hooks for the admin area and
56 - * the public-facing side of the site.
57 - *
58 - * @since 1.0.0
59 - */
60 - public function __construct() {
56 + $this->load_dependencies();
57 + $this->init_hooks();
61 58
62 - $this->plugin_name = USERSWP_NAME;
63 - $this->version = USERSWP_VERSION;
59 + $this->meta = new UsersWP_Meta();
60 + $this->pages = new UsersWP_Pages();
61 + $this->profile = new UsersWP_Profile();
62 + $this->forms = new UsersWP_Forms();
63 + $this->templates = new UsersWP_Templates();
64 + $this->notices = new UsersWP_Notices();
65 + $this->assets = new UsersWP_Public();
66 + $this->form_builder = new UsersWP_Form_Builder();
67 + $this->menus = new UsersWP_Menus();
68 + $this->tools = new UsersWP_Tools();
69 + $this->tables = new UsersWP_Tables();
70 + $this->admin = new UsersWP_Admin();
71 + $this->admin_menus = new UsersWP_Admin_Menus();
72 + $this->ajax = new UsersWP_Ajax();
73 + $this->files = new UsersWP_Files();
74 + $this->notifications = new UsersWP_Notifications();
64 75
76 + // actions and filters
77 + $this->load_assets_actions_and_filters( $this->assets );
78 + $this->load_meta_actions_and_filters( $this->meta );
79 + $this->load_files_actions_and_filters( $this->files );
80 + $this->load_forms_actions_and_filters( $this->forms );
81 + $this->load_notices_actions_and_filters( $this->notices );
82 + $this->load_pages_actions_and_filters( $this->pages );
83 + $this->load_profile_actions_and_filters( $this->profile );
84 + $this->load_tables_actions_and_filters( $this->tables );
85 + $this->load_templates_actions_and_filters( $this->templates );
86 + $this->load_tools_actions_and_filters( $this->tools );
87 + $this->load_notifications_actions_and_filters( $this->notifications );
65 88
66 - $this->load_dependencies();
67 - $this->init_hooks();
89 + //admin
90 + $this->load_form_builder_actions_and_filters( $this->form_builder );
91 + $this->load_menus_actions_and_filters( $this->menus );
92 + }
68 93
69 - $this->loader = new UsersWP_Loader();
70 - $this->meta = new UsersWP_Meta();
71 - $this->pages = new UsersWP_Pages();
72 - $this->profile = new UsersWP_Profile();
73 - $this->forms = new UsersWP_Forms();
74 - $this->templates = new UsersWP_Templates();
75 - $this->i18n = new UsersWP_i18n();
76 - $this->notices = new UsersWP_Notices();
77 - $this->assets = new UsersWP_Public();
78 - $this->form_builder = new UsersWP_Form_Builder();
79 - $this->menus = new UsersWP_Menus();
80 - $this->tools = new UsersWP_Tools();
81 - $this->tables = new UsersWP_Tables();
94 + /**
95 + * Load the required dependencies for this plugin.
96 + *
97 + * @since 1.0.0
98 + * @access private
99 + */
100 + private function load_dependencies() {
101 + global $uwp_options;
82 102
83 - $this->shortcodes = new UsersWP_Shortcodes($this->templates);
84 - $this->admin_settings = new UsersWP_Admin_Settings($this->form_builder);
85 - $this->admin = new UsersWP_Admin($this->admin_settings);
86 - $this->ajax = new UsersWP_Ajax($this->form_builder);
87 - $this->files = new UsersWP_Files();
88 - $this->notifications = new UsersWP_Notifications();
89 - $this->status = new UsersWP_Status();
103 + if ( ! function_exists( 'is_plugin_active' ) ) {
104 + /**
105 + * Load all plugin functions from WordPress.
106 + */
107 + require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
108 + }
90 109
91 -
92 - // actions and filters
93 - $this->load_assets_actions_and_filters($this->assets);
94 - $this->load_meta_actions_and_filters($this->meta);
95 - $this->load_ajax_actions_and_filters($this->ajax);
96 - $this->load_files_actions_and_filters($this->files);
97 - $this->load_forms_actions_and_filters($this->forms);
98 - $this->load_i18n_actions_and_filters($this->i18n);
99 - $this->load_notices_actions_and_filters($this->notices);
100 - $this->load_pages_actions_and_filters($this->pages);
101 - $this->load_profile_actions_and_filters($this->profile);
102 - $this->load_shortcodes_actions_and_filters($this->shortcodes);
103 - $this->load_tables_actions_and_filters($this->tables);
104 - $this->load_templates_actions_and_filters($this->templates);
105 - $this->load_tools_actions_and_filters($this->tools);
106 - $this->load_notifications_actions_and_filters($this->notifications);
107 - $this->load_status_actions_and_filters($this->status);
110 + require_once dirname( dirname( __FILE__ ) ) . '/admin/settings/functions.php';
108 111
109 - //admin
110 - $this->load_form_builder_actions_and_filters($this->form_builder);
111 - $this->load_menus_actions_and_filters($this->menus);
112 - $this->load_admin_actions_and_filters($this->admin);
113 - $this->load_admin_settings_actions_and_filters($this->admin_settings);
114 -
115 - }
112 + $uwp_options = uwp_get_settings();
116 113
117 - /**
118 - * Hook into actions and filters.
119 - */
120 - private function init_hooks() {
121 - register_activation_hook( USERSWP_PLUGIN_FILE, array( 'UsersWP_Activator', 'activate' ) );
122 - register_deactivation_hook( USERSWP_PLUGIN_FILE, array( 'UsersWP_Deactivator', 'deactivate' ) );
123 - add_action( 'admin_init', array('UsersWP_Activator', 'uwp_automatic_upgrade') );
124 - add_action( 'init', array( 'UsersWP_Activator', 'init_background_updater' ), 5 );
125 - }
114 + require_once dirname( dirname( __FILE__ ) ) . '/admin/settings/class-uwp-font-awesome-settings.php';
126 115
116 + require_once( dirname( dirname( __FILE__ ) ) . '/upgrade.php' );
127 117
128 - public function load_assets_actions_and_filters($instance) {
129 - add_action( 'wp_enqueue_scripts', array($instance, 'enqueue_styles') );
130 - add_action( 'wp_enqueue_scripts', array($instance, 'enqueue_scripts') );
131 - }
118 + /**
119 + * The class responsible for activation functionality
120 + * of the plugin.
121 + */
122 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-activator.php';
132 123
133 - public function load_meta_actions_and_filters($instance) {
134 - add_action('user_register', array($instance, 'sync_usermeta'), 10, 1);
135 - add_action('delete_user', array($instance, 'delete_usermeta_for_user'), 10, 1);
136 - add_action('remove_user_from_blog', array($instance, 'remove_user_from_blog'), 10, 2);
137 - add_action('wp_login', array($instance, 'save_user_ip_on_login') ,10,2);
138 - add_filter('uwp_before_extra_fields_save', array($instance, 'save_user_ip_on_register'), 10, 3);
139 - add_filter('uwp_update_usermeta', array($instance, 'modify_datepicker_value_on_update'), 10, 3);
140 - add_filter('uwp_get_usermeta', array($instance, 'modify_datepicker_value_on_get'), 10, 4);
141 - add_filter('user_row_actions', array($instance, 'uwp_user_row_actions'), 10, 2);
142 - add_action('bulk_actions-users', array($instance, 'uwp_users_bulk_actions'));
143 - add_action('handle_bulk_actions-users', array($instance, 'uwp_handle_users_bulk_actions'), 10, 3);
144 - add_filter('init', array($instance, 'uwp_process_user_actions'));
145 - add_action('admin_notices', array($instance, 'uwp_show_update_messages'));
146 - }
147 -
148 - public function load_ajax_actions_and_filters($instance) {
149 - add_action('wp_ajax_uwp_ajax_action', array($instance, 'handler'));
150 - }
124 + /**
125 + * The libraries required.
126 + */
127 + require_once dirname( dirname( __FILE__ ) ) . '/vendor/autoload.php';
151 128
152 - public function load_files_actions_and_filters($instance) {
153 - if($instance->uwp_doing_upload()){
154 - add_filter( 'wp_handle_upload_prefilter', array($instance, 'uwp_wp_media_restrict_file_types') );
155 - }
156 - add_filter('uwp_get_max_upload_size', array($instance, 'uwp_modify_get_max_upload_size'), 10, 2);
157 - }
129 + /**
130 + * Contains functions for templates.
131 + */
132 + require_once( dirname( dirname( __FILE__ ) ) . '/includes/template-functions.php' );
158 133
159 - public function load_forms_actions_and_filters($instance) {
160 - // general
161 - add_action('init', array($instance, 'init_notices'), 1);
162 - add_action('uwp_loaded', array($instance, 'handler'));
163 - add_action('init', array($instance, 'uwp_privacy_submit_handler'));
164 - add_action('uwp_template_display_notices', array($instance, 'display_notices'), 10, 1);
165 - add_action('wp_ajax_uwp_upload_file_remove', array($instance, 'uwp_upload_file_remove'));
166 - //User search form
167 - add_action('uwp_users_page_search_form_inner', array($instance, 'uwp_users_search_form_text_field'), 10, 1);
168 - add_action('uwp_users_page_search_form_inner', array($instance, 'uwp_users_search_form_submit'), 50, 1);
169 - add_action('personal_options_update', array($instance, 'update_profile_extra_admin_edit'), 10, 1);
170 - add_action('edit_user_profile_update', array($instance, 'update_profile_extra_admin_edit'), 10, 1);
171 - add_action('user_edit_form_tag', array($instance, 'add_multipart_to_admin_edit_form'));
172 - add_action('uwp_template_form_title_after', array($instance, 'uwp_display_username_in_account'), 10, 1);
134 + /**
135 + * The class responsible for sending emails
136 + * of the plugin.
137 + */
138 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-emails.php';
173 139
140 + /**
141 + * The class responsible for reading and updating meta
142 + * of the plugin.
143 + */
144 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-meta.php';
174 145
175 - // Forms
176 - add_filter('uwp_form_input_html_datepicker', array($instance, 'uwp_form_input_datepicker'), 10, 4);
177 - add_filter('uwp_form_input_html_time', array($instance, 'uwp_form_input_time'), 10, 4);
178 - add_filter('uwp_form_input_html_select', array($instance, 'uwp_form_input_select'), 10, 4);
179 - add_filter('uwp_form_input_html_multiselect', array($instance, 'uwp_form_input_multiselect'), 10, 4);
180 - add_filter('uwp_form_input_html_text', array($instance, 'uwp_form_input_text'), 10, 4);
181 - add_filter('uwp_form_input_html_textarea', array($instance, 'uwp_form_input_textarea'), 10, 4);
182 - add_filter('uwp_form_input_html_fieldset', array($instance, 'uwp_form_input_fieldset'), 10, 4);
183 - add_filter('uwp_form_input_html_file', array($instance, 'uwp_form_input_file'), 10, 4);
184 - add_filter('uwp_form_input_html_checkbox', array($instance, 'uwp_form_input_checkbox'), 10, 4);
185 - add_filter('uwp_form_input_html_radio', array($instance, 'uwp_form_input_radio'), 10, 4);
186 - add_filter('uwp_form_input_html_url', array($instance, 'uwp_form_input_url'), 10, 4);
187 - add_filter('uwp_form_input_html_email', array($instance, 'uwp_form_input_email'), 10, 4);
188 - add_filter('uwp_form_input_html_password', array($instance, 'uwp_form_input_password'), 10, 4);
189 - // Country select
190 - add_filter('uwp_form_input_html_select_country', array($instance, 'uwp_form_input_select_country'), 10, 4);
191 - add_filter('uwp_forms_check_for_send_mail_errors', array($instance, 'uwp_forms_check_for_send_mail_errors'), 10, 3);
192 - add_filter('uwp_form_input_email_uwp_account_email_after', array($instance, 'uwp_register_confirm_email_field'), 10, 4);
193 - add_filter('uwp_form_input_password_uwp_account_password_after', array($instance, 'uwp_register_confirm_password_field'), 10, 4);
194 -
195 - // Emails
196 - add_filter('uwp_send_mail_extras', array($instance, 'init_mail_extras'), 10, 3);
197 - add_filter('uwp_send_admin_mail_extras', array($instance, 'init_admin_mail_extras'), 10, 3);
198 -
199 - }
146 + /**
147 + * The class responsible for userswp dates
148 + * of the plugin.
149 + */
150 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-date.php';
200 151
201 - public function load_i18n_actions_and_filters($instance) {
202 - add_action( 'init', array($instance, 'load_plugin_textdomain'));
203 - }
152 + /**
153 + * The class responsible for userswp pages
154 + * of the plugin.
155 + */
156 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-pages.php';
204 157
205 - public function load_notices_actions_and_filters($instance) {
206 - add_action('uwp_template_display_notices', array($instance, 'display_registration_disabled_notice'));
207 - add_action('uwp_template_display_notices', array($instance, 'form_notice_by_key'));
208 - add_action( 'admin_notices', array( $instance, 'show_admin_notices' ) );
209 - add_action( 'admin_notices', array($instance, 'uwp_admin_notices') );
210 - }
158 + /**
159 + * The class responsible for uploading files
160 + * of the plugin.
161 + */
162 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-files.php';
211 163
212 - public function load_pages_actions_and_filters($instance) {
213 - add_action( 'wpmu_new_blog', array($instance, 'wpmu_generate_default_pages_on_new_site'), 10, 6 );
214 - }
164 + /**
165 + * The class responsible for defining form handler functionality
166 + * of the plugin.
167 + */
168 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-forms.php';
215 169
216 - public function load_profile_actions_and_filters($instance) {
217 - add_action( 'template_redirect', array($instance, 'uwp_redirect_author_page') , 10 , 2 );
218 - //profile page
219 - add_filter('query_vars', array($instance, 'profile_query_vars'), 10, 1 );
220 - add_action('init', array($instance, 'rewrite_profile_link') , 10, 1 );
221 - add_filter( 'uwp_profile_link', array($instance, 'get_profile_link'), 10, 2 );
222 - add_filter( 'edit_profile_url', array($instance, 'uwp_modify_admin_bar_edit_profile_url'), 10, 3);
223 - add_filter( 'the_title', array($instance, 'modify_profile_page_title'), 10, 2 );
224 - add_filter( 'get_comment_author_link', array($instance, 'uwp_get_comment_author_link') , 10 , 2 );
225 - add_action( 'uwp_profile_header', array($instance, 'get_profile_header'), 10, 1 );
226 - add_action( 'uwp_users_profile_header', array($instance, 'get_profile_header'), 10, 1 );
227 - add_action( 'uwp_profile_title', array($instance, 'get_profile_title'), 10, 1 );
228 - add_action( 'uwp_profile_social', array($instance, 'get_profile_social'), 10, 1 );
170 + /**
171 + * The class responsible for form validation
172 + * of the plugin.
173 + */
174 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-validation.php';
229 175
230 - //Fields as tabs
231 - add_action( 'uwp_available_tab_items', array($instance, 'uwp_extra_fields_available_tab_items'), 10, 1 );
232 - add_action( 'uwp_profile_tabs', array($instance, 'uwp_extra_fields_as_tabs'), 10, 3 );
176 + /**
177 + * Country helpers
178 + */
179 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-countries.php';
233 180
234 - // Popup and crop functions
235 - add_filter( 'ajax_query_attachments_args', array($instance, 'uwp_restrict_attachment_display') );
181 + /**
182 + * The class responsible for defining ajax handler functionality
183 + * of the plugin.
184 + */
185 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-ajax.php';
236 186
237 - add_action( 'uwp_handle_file_upload_error_checks', array($instance, 'uwp_handle_file_upload_error_checks'), 10, 4 );
238 - add_action( 'wp_ajax_uwp_avatar_banner_upload', array($instance, 'uwp_ajax_avatar_banner_upload') );
239 - //add_action( 'wp_ajax_uwp_ajax_image_crop_popup', array($instance, 'uwp_ajax_image_crop_popup') );
240 - add_action( 'wp_ajax_uwp_ajax_image_crop_popup_form', array($instance, 'uwp_ajax_image_crop_popup_form') );
241 - add_action( 'wp_head', array($instance, 'uwp_define_ajaxurl') );
242 - add_action( 'uwp_profile_header', array($instance, 'uwp_image_crop_init'), 10, 1 );
243 - add_action( 'uwp_admin_profile_edit', array($instance, 'uwp_image_crop_init'), 10, 1 );
187 + /**
188 + * The class responsible for defining all shortcodes
189 + */
190 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-templates.php';
244 191
245 - // Profile Tabs
246 - add_action( 'uwp_profile_content', array($instance, 'get_profile_tabs_content'), 10, 1 );
247 - add_action( 'uwp_profile_more_info_tab_content', array($instance, 'get_profile_more_info'), 10, 1);
248 - add_action( 'uwp_profile_posts_tab_content', array($instance, 'get_profile_posts'), 10, 1);
249 - add_action( 'uwp_profile_comments_tab_content', array($instance, 'get_profile_comments'), 10, 1);
250 - add_action( 'uwp_profile_tab_content', array($instance, 'uwp_extra_fields_as_tab_values'), 10, 2 );
192 + /**
193 + * The class responsible for defining profile content
194 + */
195 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-profile.php';
251 196
252 - // Profile Pagination
253 - add_action( 'uwp_profile_pagination', array($instance, 'get_profile_pagination'));
197 + /**
198 + * The class responsible for defining all menus items.
199 + */
200 + require_once dirname( dirname( __FILE__ ) ) . '/admin/menus/class-checklist.php';
254 201
255 - // Users
256 - add_action( 'uwp_users_search', array($instance, 'uwp_users_search'));
257 - add_action( 'uwp_users_list', array($instance, 'uwp_users_list'));
258 - add_action( 'uwp_users_extra', array($instance, 'get_users_extra'));
259 - add_action( 'uwp_profile_bio', array($instance, 'get_profile_side_extra'));
260 - add_action( 'wpdiscuz_profile_url', array($instance, 'uwp_wpdiscuz_profile_url'), 10, 2);
202 + /**
203 + * The class responsible for defining all menus in the admin area.
204 + */
205 + require_once dirname( dirname( __FILE__ ) ) . '/admin/menus/class-menus.php';
261 206
262 - // User, allow subscribers to upload profile and banner pictures
263 - add_filter( 'plupload_default_params', array($instance, 'add_uwp_plupload_param'), 10, 1 );
264 - add_filter( 'user_has_cap', array($instance, 'allow_all_users_profile_uploads'), 10, 4 );
265 - }
207 + /**
208 + * The class responsible for defining all actions that occur in the admin area.
209 + */
210 + require_once dirname( dirname( __FILE__ ) ) . '/admin/class-admin.php';
266 211
267 - public function load_shortcodes_actions_and_filters($instance) {
268 - add_shortcode( 'uwp_forgot', array($instance, 'forgot'));
269 - add_shortcode( 'uwp_change', array($instance, 'change'));
270 - add_shortcode( 'uwp_reset', array($instance, 'reset'));
271 - add_shortcode( 'uwp_account', array($instance, 'account'));
272 - add_shortcode( 'uwp_profile', array($instance, 'profile'));
273 - add_shortcode( 'uwp_users', array($instance, 'users'));
274 - }
275 -
276 - public function load_tables_actions_and_filters($instance) {
277 - add_filter( 'wpmu_drop_tables', array($instance, 'drop_tables_on_delete_blog'));
278 - }
279 -
280 - public function load_templates_actions_and_filters($instance) {
212 + /**
213 + * The class responsible for defining all actions that occur for setup wizard.
214 + */
215 + if ( isset( $_GET['page'] ) && 'uwp-setup' == $_GET['page'] ) {
216 + require_once dirname( dirname( __FILE__ ) ) . '/admin/class-admin-setup-wizard.php';
217 + }
281 218
219 + /**
220 + * The class responsible for defining all actions help screen.
221 + */
222 + require_once dirname( dirname( __FILE__ ) ) . '/admin/class-uwp-admin-help.php';
282 223
224 + /**
225 + * The class responsible for defining all menus in the admin area.
226 + */
227 + require_once dirname( dirname( __FILE__ ) ) . '/admin/class-uwp-admin-menus.php';
283 228
284 - add_action( 'template_redirect', array($instance, 'change_default_password_redirect') );
285 - add_action( 'uwp_template_fields', array($instance, 'uwp_template_fields'), 10, 1 );
286 - add_action( 'uwp_template_fields', array($instance, 'uwp_template_extra_fields'), 10, 1 );
287 - add_action( 'uwp_account_form_display', array($instance, 'uwp_account_edit_form_display'), 10, 1 );
288 - add_action( 'wp_logout', array($instance, 'logout_redirect'));
289 - add_action( 'init', array($instance, 'wp_login_redirect'));
290 - add_action( 'admin_init', array($instance, 'uwp_activation_redirect'));
291 - // Redirect functions
292 - add_action( 'template_redirect', array($instance, 'profile_redirect'), 10);
293 - add_action( 'template_redirect', array($instance, 'access_checks'), 20);
294 - // Admin user edit page
295 - add_action( 'edit_user_profile', array($instance, 'get_profile_extra_admin_edit'), 10, 1 );
296 - add_action( 'show_user_profile', array($instance, 'get_profile_extra_admin_edit'), 10, 1 );
229 + /**
230 + * The class responsible for defining all admin area settings.
231 + */
232 + require_once dirname( dirname( __FILE__ ) ) . '/admin/settings/class-settings.php';
297 233
234 + /**
235 + * The class responsible for default content.
236 + */
237 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-uwp-defaults.php';
298 238
299 - add_filter( 'wp_setup_nav_menu_item', array($instance, 'uwp_setup_nav_menu_item'), 10, 1 );
300 - add_filter( 'the_content', array($instance, 'uwp_author_page_content'), 10, 1 );
301 - add_filter( 'body_class', array($instance, 'uwp_add_body_class'), 10, 1 );
239 + /**
240 + * The class responsible for defining all actions that occur in the public-facing
241 + * side of the site.
242 + */
243 + require_once dirname( dirname( __FILE__ ) ) . '/public/class-public.php';
302 244
303 - // filter the login url
304 - add_filter( 'login_url', array($instance, 'wp_login_url'), 10, 3 );
305 - }
306 -
307 - public function load_tools_actions_and_filters($instance) {
308 - add_action('uwp_admin_sub_menus', array($instance, 'uwp_add_admin_tools_sub_menu'), 100, 1);
309 - add_action('uwp_tools_settings_main_tab_content', array($instance, 'uwp_tools_main_tab_content'));
310 - add_action('wp_ajax_uwp_process_diagnosis', array($instance, 'uwp_process_diagnosis_ajax'));
311 - }
245 + /**
246 + * The class responsible for table functions
247 + */
248 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-tables.php';
312 249
313 - public function load_notifications_actions_and_filters($instance){
314 - add_action('uwp_account_form_display', array($instance, 'uwp_user_notifications_form_front'), 10, 1);
315 - add_action('init', array($instance, 'uwp_notification_submit_handler'));
316 - }
250 + /**
251 + * The class responsible for admin settings functions
252 + */
253 + include_once dirname( dirname( __FILE__ ) ) . '/admin/settings/class-uwp-settings-page.php';
317 254
318 - public function load_status_actions_and_filters($instance){
319 - add_action('uwp_admin_sub_menus', array($instance, 'uwp_add_admin_status_sub_menu'), 100, 1);
320 - add_action('uwp_status_settings_main_tab_content', array($instance, 'uwp_status_main_tab_content'));
321 - }
255 + /**
256 + * The class responsible for adding fields in forms
257 + */
258 + require_once dirname( dirname( __FILE__ ) ) . '/admin/settings/class-formbuilder.php';
322 259
323 - public function load_form_builder_actions_and_filters($instance) {
324 - // Actions
325 - add_action('admin_init', array($instance, 'uwp_form_builder_dummy_fields'));
326 - add_action('uwp_manage_available_fields_predefined', array($instance, 'uwp_manage_available_fields_predefined'));
327 - add_action('uwp_manage_available_fields_custom', array($instance, 'uwp_manage_available_fields_custom'));
328 - add_action('uwp_manage_available_fields', array($instance, 'uwp_manage_available_fields'));
329 - add_action('uwp_manage_selected_fields', array($instance, 'uwp_manage_selected_fields'));
330 - add_action('uwp_admin_extra_custom_fields', array($instance, 'uwp_advance_admin_custom_fields'), 10, 2);
331 - add_action('uwp_manage_available_fields', array($instance, 'uwp_manage_register_available_fields'), 10, 1);
332 - add_action('uwp_manage_selected_fields', array($instance, 'uwp_manage_register_selected_fields'), 10, 1);
333 - add_action('wp_ajax_uwp_ajax_register_action', array($instance, 'uwp_register_ajax_handler'));
260 + /**
261 + * The class responsible for adding admin table listing
262 + */
263 + require_once dirname ( dirname ( __FILE__ ) ) . '/admin/tables/class-user-types-table.php';
334 264
265 + /**
266 + * The class responsible for adding user types
267 + */
268 + require_once dirname( dirname( __FILE__ ) ) . '/admin/settings/class-user-types.php';
335 269
336 - // Filters
337 - add_filter('uwp_builder_extra_fields_multiselect', array($instance, 'uwp_builder_extra_fields_smr'), 10, 4);
338 - add_filter('uwp_builder_extra_fields_select', array($instance, 'uwp_builder_extra_fields_smr'), 10, 4);
339 - add_filter('uwp_builder_extra_fields_radio', array($instance, 'uwp_builder_extra_fields_smr'), 10, 4);
340 - add_filter('uwp_builder_extra_fields_datepicker', array($instance, 'uwp_builder_extra_fields_datepicker'), 10, 4);
341 - add_filter('uwp_builder_extra_fields_password', array($instance, 'uwp_builder_extra_fields_password'), 10, 4);
342 - add_filter('uwp_builder_extra_fields_email', array($instance, 'uwp_builder_extra_fields_email'), 10, 4);
343 - add_filter('uwp_builder_extra_fields_file', array($instance, 'uwp_builder_extra_fields_file'), 10, 4);
344 - add_filter('uwp_builder_data_type_text', array($instance, 'uwp_builder_data_type_text'), 10, 4);
345 - add_filter('uwp_form_builder_available_fields_head', array($instance, 'uwp_register_available_fields_head'), 10, 2);
346 - add_filter('uwp_form_builder_available_fields_note', array($instance, 'uwp_register_available_fields_note'), 10, 2);
347 - add_filter('uwp_form_builder_selected_fields_head', array($instance, 'uwp_register_selected_fields_head'), 10, 2);
348 - add_filter('uwp_form_builder_selected_fields_note', array($instance, 'uwp_register_selected_fields_note'), 10, 2);
349 - add_filter('uwp_register_fields', array($instance, 'uwp_register_extra_fields'), 10, 2);
350 - // htmlvar not needed for taxonomy
351 - add_filter('uwp_builder_htmlvar_name_taxonomy',array($instance, 'uwp_return_empty_string'),10,4);
352 - // default_value not needed for textarea, html, file, fieldset
353 - add_filter('uwp_builder_default_value_textarea',array($instance, 'uwp_return_empty_string'),10,4);
354 - add_filter('uwp_builder_default_value_html',array($instance, 'uwp_return_empty_string'),10,4);
355 - add_filter('uwp_builder_default_value_file',array($instance, 'uwp_return_empty_string'),10,4);
356 - add_filter('uwp_builder_default_value_fieldset',array($instance, 'uwp_return_empty_string'),10,4);
357 - // is_required not needed for fieldset
358 - add_filter('uwp_builder_is_required_fieldset',array($instance, 'uwp_return_empty_string'),10,4);
359 - add_filter('uwp_builder_required_msg_fieldset',array($instance, 'uwp_return_empty_string'),10,4);
360 - // field_icon not needed for fieldset
361 - add_filter('uwp_builder_css_class_fieldset',array($instance, 'uwp_return_empty_string'),10,4);
362 - // filters for which is_public not required
363 - add_filter('uwp_builder_is_public_password',array($instance, 'uwp_return_empty_string'),10,4);
364 - }
270 + /**
271 + * The class responsible for defining all admin area settings.
272 + */
273 + require_once dirname( dirname( __FILE__ ) ) . '/admin/settings/class-uwp-settings-profile-tabs.php';
365 274
366 - public function load_menus_actions_and_filters($instance) {
367 - add_action( 'load-nav-menus.php', array($instance, 'users_wp_admin_menu_metabox') );
368 - }
275 + /**
276 + * The class responsible for user sorting builder.
277 + */
278 + require_once dirname( dirname( __FILE__ ) ) . '/admin/settings/class-uwp-settings-user-sorting.php';
369 279
370 - public function load_admin_actions_and_filters($instance) {
371 - add_action( 'admin_enqueue_scripts', array($instance, 'enqueue_styles') );
372 - add_action( 'admin_enqueue_scripts', array($instance, 'enqueue_scripts') );
373 - add_action( 'admin_menu', array($instance, 'setup_admin_menus') );
374 - add_action('admin_head', array($instance, 'uwp_admin_only_css'));
375 - }
280 + /**
281 + * The class responsible for adding tools functions
282 + */
283 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-tools.php';
376 284
377 - public function load_admin_settings_actions_and_filters($instance) {
378 - $instance->init_settings();
285 + /**
286 + * The class responsible for displaying notices
287 + */
288 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-notices.php';
379 289
380 - add_action( 'admin_init', array($instance, 'uwp_register_settings') );
381 - //register settings
382 - add_action( 'userswp_settings_main_tab_content', array($instance, 'get_general_content') );
383 - add_action( 'userswp_settings_register_tab_content', array($instance, 'generic_display_form') );
384 - add_action( 'userswp_settings_login_tab_content', array($instance, 'generic_display_form') );
385 - add_action( 'userswp_settings_account_tab_content', array($instance, 'generic_display_form') );
386 - add_action( 'userswp_settings_profile_tab_content', array($instance, 'generic_display_form') );
387 - add_action( 'userswp_settings_users_tab_content', array($instance, 'generic_display_form') );
388 - add_action( 'userswp_settings_change_tab_content', array($instance, 'generic_display_form') );
389 - add_action( 'userswp_settings_uninstall_tab_content', array($instance, 'generic_display_form') );
290 + /**
291 + * contents helpers files and functions.
292 + */
293 + require_once( dirname( dirname( __FILE__ ) ) . '/includes/helpers.php' );
390 294
391 - add_action( 'uwp_form_builder_settings_main_tab_content_before', array($instance, 'get_form_builder_tabs') );
392 - add_action( 'uwp_form_builder_settings_main_tab_content', array($instance, 'get_form_builder_content') );
393 - add_filter( 'uwp_display_form_title', array($instance, 'display_form_title'), 10, 3 );
394 - add_action( 'uwp_notifications_settings_main_tab_content', array($instance, 'get_notifications_content') );
395 - add_action( 'uwp_notifications_settings_admin_tab_content', array($instance, 'generic_display_form') );
396 - }
295 + /**
296 + * The class for login widget.
297 + */
298 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/login.php' );
397 299
300 + /**
301 + * The class for register widget.
302 + */
303 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/register.php' );
398 304
399 -
400 - /**
401 - * Run the loader to execute all of the hooks with WordPress.
402 - *
403 - * @since 1.0.0
404 - */
405 - public function run() {
406 - $this->loader->run();
407 - }
305 + /**
306 + * The class for forgot password widget.
307 + */
308 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/forgot.php' );
408 309
409 - /**
410 - * The name of the plugin used to uniquely identify it within the context of
411 - * WordPress and to define internationalization functionality.
412 - *
413 - * @since 1.0.0
414 - * @return string The name of the plugin.
415 - */
416 - public function get_plugin_name() {
417 - return $this->plugin_name;
418 - }
310 + /**
311 + * The class for reset password widget.
312 + */
313 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/reset.php' );
419 314
420 - /**
421 - * The reference to the class that orchestrates the hooks with the plugin.
422 - *
423 - * @since 1.0.0
424 - * @return UsersWP_Loader Orchestrates the hooks of the plugin.
425 - */
426 - public function get_loader() {
427 - return $this->loader;
428 - }
315 + /**
316 + * The class for change password widget.
317 + */
318 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/change.php' );
429 319
430 - /**
431 - * Retrieve the version number of the plugin.
432 - *
433 - * @since 1.0.0
434 - * @return string The version number of the plugin.
435 - */
436 - public function get_version() {
437 - return $this->version;
438 - }
320 + /**
321 + * The class for users widget.
322 + */
323 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/users.php' );
439 324
440 - /**
441 - * Load the required dependencies for this plugin.
442 - *
443 - * @since 1.0.0
444 - * @access private
445 - */
446 - private function load_dependencies() {
447 - if ( ! function_exists( 'is_plugin_active' ) ) {
448 - /**
449 - * Load all plugin functions from WordPress.
450 - */
451 - require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
452 - }
325 + /**
326 + * The class for users item widget.
327 + */
328 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/users-item.php' );
453 329
454 - /**
455 - * The class responsible for orchestrating the actions and filters of the
456 - * core plugin.
457 - */
458 - require_once dirname(dirname( __FILE__ )) . '/includes/class-loader.php';
330 + /**
331 + * The class for account widget.
332 + */
333 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/account.php' );
459 334
460 - /**
461 - * The class responsible for defining internationalization functionality
462 - * of the plugin.
463 - */
464 - require_once dirname(dirname( __FILE__ )) . '/includes/class-i18n.php';
335 + /**
336 + * The class for profile widget.
337 + */
338 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/profile.php' );
465 339
466 - /**
467 - * The class responsible for activation functionality
468 - * of the plugin.
469 - */
470 - require_once dirname(dirname( __FILE__ )) . '/includes/class-activator.php';
340 + /**
341 + * The class for profile sections widget.
342 + */
343 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/profile-section.php' );
471 344
472 - /**
473 - * The class responsible for deactivation functionality
474 - * of the plugin.
475 - */
476 - require_once dirname(dirname( __FILE__ )) . '/includes/class-deactivator.php';
345 + /**
346 + * The class profile header widget
347 + */
348 + require_once dirname( dirname( __FILE__ ) ) . '/widgets/profile-header.php';
477 349
478 - /**
479 - * The class responsible for sending emails
480 - * of the plugin.
481 - */
482 - require_once dirname(dirname( __FILE__ )) . '/includes/class-emails.php';
350 + /**
351 + * The class for user title widget.
352 + */
353 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/user-title.php' );
483 354
484 - /**
485 - * The class responsible for reading and updating meta
486 - * of the plugin.
487 - */
488 - require_once dirname(dirname( __FILE__ )) . '/includes/class-meta.php';
355 + /**
356 + * The class for user avatar widget.
357 + */
358 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/user-avatar.php' );
489 359
490 - /**
491 - * The class responsible for userswp dates
492 - * of the plugin.
493 - */
494 - require_once dirname(dirname( __FILE__ )) . '/includes/class-date.php';
360 + /**
361 + * The class for user post count widget.
362 + */
363 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/user-post-counts.php' );
495 364
496 - /**
497 - * The class responsible for userswp pages
498 - * of the plugin.
499 - */
500 - require_once dirname(dirname( __FILE__ )) . '/includes/class-pages.php';
365 + /**
366 + * The class for user cover widget.
367 + */
368 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/user-cover.php' );
501 369
502 - /**
503 - * The class responsible for uploading files
504 - * of the plugin.
505 - */
506 - require_once dirname(dirname( __FILE__ )) . '/includes/class-files.php';
370 + /**
371 + * The class for profile social fields widget.
372 + */
373 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/profile-social.php' );
507 374
508 - /**
509 - * The class responsible for defining form handler functionality
510 - * of the plugin.
511 - */
512 - require_once dirname(dirname( __FILE__ )) . '/includes/class-forms.php';
375 + /**
376 + * The class for profile action buttons fields widget.
377 + */
378 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/profile-actions.php' );
513 379
514 - /**
515 - * The class responsible for form validation
516 - * of the plugin.
517 - */
518 - require_once dirname(dirname( __FILE__ )) . '/includes/class-validation.php';
380 + /**
381 + * The class for profile buttons fields widget.
382 + */
383 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/user-actions.php' );
519 384
520 - /**
521 - * Country helpers
522 - */
523 - require_once dirname(dirname( __FILE__ )) . '/includes/class-countries.php';
385 + /**
386 + * The class for profile content widget.
387 + */
388 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/profile-tabs.php' );
524 389
525 - /**
526 - * The class responsible for defining ajax handler functionality
527 - * of the plugin.
528 - */
529 - require_once dirname(dirname( __FILE__ )) . '/includes/class-ajax.php';
390 + /**
391 + * The class for user meta widget.
392 + */
393 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/user-meta.php' );
530 394
531 - /**
532 - * The class responsible for defining all shortcodes
533 - */
534 - require_once dirname(dirname( __FILE__ )) . '/includes/class-templates.php';
395 + /**
396 + * The class for users search widget.
397 + */
398 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/users-search.php' );
535 399
536 - /**
537 - * The class responsible for defining profile content
538 - */
539 - require_once dirname(dirname( __FILE__ )) . '/includes/class-profile.php';
400 + /**
401 + * The class for user list sorting widget.
402 + */
403 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/users-loop-actions.php' );
540 404
541 - /**
542 - * The class responsible for defining all shortcodes
543 - */
544 - require_once dirname(dirname( __FILE__ )) . '/includes/class-shortcodes.php';
405 + /**
406 + * The class for users list widget.
407 + */
408 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/users-loop.php' );
545 409
546 - /**
547 - * The class responsible for defining all menus items.
548 - */
549 - require_once dirname(dirname( __FILE__ )) . '/admin/menus/class-checklist.php';
410 + /**
411 + * The class for output location widget.
412 + */
413 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/output-location.php' );
550 414
551 - /**
552 - * The class responsible for defining all menus in the admin area.
553 - */
554 - require_once dirname(dirname( __FILE__ )) . '/admin/menus/class-menus.php';
415 + /**
416 + * The class for author box widget.
417 + */
418 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/authorbox.php' );
555 419
556 - /**
557 - * The class responsible for defining all actions that occur in the admin area.
558 - */
559 - require_once dirname(dirname( __FILE__ )) . '/admin/class-admin.php';
420 + /**
421 + * The class for user badge widget.
422 + */
423 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/user-badge.php' );
560 424
561 - /**
562 - * The class responsible for defining all admin area settings.
563 - */
564 - require_once dirname(dirname( __FILE__ )) . '/admin/settings/class-settings.php';
425 + /**
426 + * The class for button group widget.
427 + */
428 + require_once( dirname( dirname( __FILE__ ) ) . '/widgets/button-group.php' );
565 429
566 - /**
567 - * The class responsible for defining all actions that occur in the public-facing
568 - * side of the site.
569 - */
570 - require_once dirname(dirname( __FILE__ )) . '/public/class-public.php';
430 + /**
431 + * The class responsible for displaying notices
432 + */
433 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-import-export.php';
571 434
572 - /**
573 - * The class responsible for table functions
574 - */
575 - require_once dirname(dirname( __FILE__ )) . '/includes/class-tables.php';
435 + /**
436 + * The class responsible for displaying notices
437 + */
438 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-user-notifications.php';
576 439
577 - /**
578 - * The class responsible for adding fields in forms
579 - */
580 - require_once dirname(dirname( __FILE__ )) . '/admin/settings/class-formbuilder.php';
440 + /**
441 + * The class responsible for account handling
442 + */
443 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-account.php';
581 444
582 - /**
583 - * The class responsible for setting field callbacks
584 - */
585 - require_once dirname(dirname( __FILE__ )) . '/includes/class-callback.php';
445 + /**
446 + * The class responsible for adding tools functions
447 + */
448 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-status.php';
586 449
587 - /**
588 - * The class responsible for adding tools functions
589 - */
590 - require_once dirname(dirname( __FILE__ )) . '/includes/class-tools.php';
450 + /**
451 + * The class responsible for extensions screen functions on admin side
452 + */
453 + require_once dirname( dirname( __FILE__ ) ) . '/includes/libraries/class-ayecode-addons.php';
591 454
592 - /**
593 - * The class responsible for displaying notices
594 - */
595 - require_once dirname(dirname( __FILE__ )) . '/includes/class-notices.php';
455 + /**
456 + * The class responsible for extensions screen functions on admin side
457 + */
458 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-addons.php';
596 459
597 - /**
598 - * The libraries required.
599 - */
600 - require_once dirname(dirname( __FILE__ )) . '/vendor/autoload.php';
460 + /**
461 + * The file is responsible for defining deprecated functions.
462 + */
463 + require_once dirname( dirname( __FILE__ ) ) . '/includes/deprecated-functions.php';
601 464
602 - /**
603 - * contents helpers files and functions.
604 - */
605 - require_once( dirname(dirname( __FILE__ )) .'/includes/helpers.php' );
465 + /**
466 + * The class responsible for privacy policy functions
467 + */
468 + require_once dirname( dirname( __FILE__ ) ) . '/includes/abstract-uwp-privacy.php';
469 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-uwp-privacy.php';
606 470
607 - /**
608 - * The class for login widget.
609 - */
610 - require_once( dirname(dirname( __FILE__ )) .'/widgets/login.php' );
471 + /**
472 + * The class responsible for SEO functions
473 + */
474 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-uwp-seo.php';
611 475
612 - /**
613 - * The class for register widget.
614 - */
615 - require_once( dirname(dirname( __FILE__ )) .'/widgets/register.php' );
476 + /**
477 + * The class responsible for compatibility with other themes and plugins
478 + */
479 + require_once dirname( dirname( __FILE__ ) ) . '/includes/class-uwp-compatibility.php';
616 480
617 - /**
618 - * The class responsible for displaying notices
619 - */
620 - require_once dirname(dirname( __FILE__ )) . '/includes/class-import-export.php';
481 + if ( is_plugin_active( 'uwp_geodirectory/uwp_geodirectory.php' ) ) {
482 + deactivate_plugins( 'uwp_geodirectory/uwp_geodirectory.php' );
483 + }
621 484
622 - /**
623 - * The class responsible for displaying notices
624 - */
625 - require_once dirname(dirname( __FILE__ )) . '/includes/class-user-notifications.php';
485 + if ( is_plugin_active( 'geodirectory/geodirectory.php' ) || class_exists( 'GeoDirectory' ) ) {
486 + /**
487 + * The class responsible for displaying notices
488 + *
489 + * @since 1.0.12
490 + */
491 + require_once dirname( dirname( __FILE__ ) ) . '/includes/libraries/class-geodirectory-plugin.php';
492 + }
626 493
627 - /**
628 - * The class responsible for adding tools functions
629 - */
630 - require_once dirname(dirname( __FILE__ )) . '/includes/class-status.php';
494 + if ( class_exists( 'WPInv_Plugin' ) ) {
495 + /**
496 + * The class responsible for displaying notices
497 + *
498 + * @since 1.0.12
499 + */
500 + require_once dirname( dirname( __FILE__ ) ) . '/includes/libraries/class-invoicing-plugin.php';
501 + }
502 + }
631 503
632 - /**
633 - * The class responsible for privacy policy functions
634 - */
635 - require_once dirname(dirname( __FILE__ )) . '/includes/abstract-uwp-privacy.php';
636 - require_once dirname(dirname( __FILE__ )) . '/includes/class-uwp-privacy.php';
504 + /**
505 + * Hook into actions and filters.
506 + */
507 + private function init_hooks() {
508 + register_activation_hook( USERSWP_PLUGIN_FILE, array( 'UsersWP_Activator', 'activate' ) );
509 + add_action( 'admin_init', array( 'UsersWP_Activator', 'automatic_upgrade' ) );
510 + add_action( 'init', array( 'UsersWP_Activator', 'init_background_updater' ), 5 );
511 + add_action( 'widgets_init', array( $this, 'register_widgets' ) );
512 + add_action( 'plugins_loaded', array( $this, 'load_plugin_textdomain' ) );
513 + add_action( 'uwp_flush_rewrite_rules', array( $this, 'flush_rewrite_rules' ) );
514 + add_action( 'uwp_language_file_add_string', array( $this, 'register_string' ), 10, 1 );
515 + add_action( 'after_setup_theme', array( $this, 'hide_admin_bar' ));
516 + }
637 517
638 - if ( is_plugin_active( 'uwp_geodirectory/uwp_geodirectory.php' ) ) {
639 - deactivate_plugins( 'uwp_geodirectory/uwp_geodirectory.php' );
640 - }
518 + /**
519 + * Actions for assets
520 + *
521 + * @param $instance
522 + */
523 + public function load_assets_actions_and_filters( $instance ) {
524 + add_action( 'wp_enqueue_scripts', array( $instance, 'enqueue_styles' ) );
525 + add_action( 'wp_enqueue_scripts', array( $instance, 'enqueue_scripts' ) );
526 + }
641 527
642 - if ( is_plugin_active( 'geodirectory/geodirectory.php' ) || class_exists('GeoDirectory') ) {
643 - /**
644 - * The class responsible for displaying notices
645 - *
646 - * @since 1.0.12
647 - */
648 - require_once dirname(dirname( __FILE__ )) . '/includes/libraries/class-geodirectory-plugin.php';
649 - }
528 + /**
529 + * Actions for meta data
530 + *
531 + * @param $instance
532 + */
533 + public function load_meta_actions_and_filters( $instance ) {
534 + add_action( 'user_register', array( $instance, 'sync_usermeta' ), 10, 1 );
535 + add_action( 'delete_user', array( $instance, 'delete_usermeta_for_user' ), 10, 1 );
536 + add_action( 'remove_user_from_blog', array( $instance, 'remove_user_from_blog' ), 10, 2 );
537 + add_action( 'wp_login', array( $instance, 'save_user_ip_on_login' ), 10, 2 );
538 + add_filter( 'uwp_before_extra_fields_save', array( $instance, 'save_user_ip_on_register' ), 10, 3 );
539 + add_filter( 'uwp_update_usermeta', array( $instance, 'modify_datepicker_value_on_update' ), 10, 3 );
540 + add_filter( 'uwp_get_usermeta', array( $instance, 'modify_datepicker_value_on_get' ), 10, 4 );
541 + add_action( 'get_user_metadata', array( $instance, 'dynamically_add_user_meta' ), 10, 4 );
542 + // enqueue select2 on auth pages.
543 + add_filter( 'aui_is_conditional_select2', array( $this, 'enqueue_select2_on_auth_pages'), 10, 1 );
544 + }
650 545
651 - if ( class_exists('WPInv_Invoice') ) {
652 - /**
653 - * The class responsible for displaying notices
654 - *
655 - * @since 1.0.12
656 - */
657 - require_once dirname(dirname( __FILE__ )) . '/includes/libraries/class-invoicing-plugin.php';
658 - }
659 - }
546 + public function load_files_actions_and_filters( $instance ) {
547 + if ( $instance->doing_upload() ) {
548 + add_filter( 'wp_handle_upload_prefilter', array( $instance, 'wp_media_restrict_file_types' ) );
549 + }
550 + add_filter( 'uwp_get_max_upload_size', array( $instance, 'uwp_modify_get_max_upload_size' ), 10, 2 );
551 + }
660 552
553 + /**
554 + * Actions for forms
555 + *
556 + * @param $instance
557 + */
558 + public function load_forms_actions_and_filters( $instance ) {
559 + // login
560 + add_action( 'wp_ajax_nopriv_uwp_ajax_login_form', array( $instance, 'ajax_login_form' ) );
561 + add_action( 'wp_ajax_nopriv_uwp_ajax_login', array( $instance, 'process_login' ) );
562 + add_action( 'wp_ajax_nopriv_uwp_ajax_login_process_2fa', array( $instance, 'process_login_2fa' ) );
563 +
564 + // register
565 + add_action( 'wp_ajax_nopriv_uwp_ajax_register_form', array( $instance, 'ajax_register_form' ) );
566 + add_action( 'wp_ajax_nopriv_uwp_ajax_register', array( $instance, 'process_register' ) );
567 +
568 + // forgot
569 + add_action( 'wp_ajax_nopriv_uwp_ajax_forgot_password_form', array( $instance, 'ajax_forgot_password_form' ) );
570 + add_action( 'wp_ajax_nopriv_uwp_ajax_forgot_password', array( $instance, 'process_forgot' ) );
571 +
572 + // general
573 + add_action( 'init', array( $instance, 'init_notices' ), 1 );
574 + add_action( 'init', array( $instance, 'handler' ), 11 );
575 + add_action( 'init', array( $instance, 'privacy_submit_handler' ) );
576 + add_action( 'uwp_template_display_notices', array( $instance, 'display_notices' ), 10, 1 );
577 + add_action( 'wp_ajax_uwp_upload_file_remove', array( $instance, 'upload_file_remove' ) );
578 + //User search form
579 + add_action( 'personal_options_update', array( $instance, 'update_profile_extra_admin_edit' ), 10, 1 );
580 + add_action( 'edit_user_profile_update', array( $instance, 'update_profile_extra_admin_edit' ), 10, 1 );
581 + add_action( 'user_edit_form_tag', array( $instance, 'add_multipart_to_admin_edit_form' ) );
582 + add_action( 'template_redirect', array( $instance, 'process_login' ) );
583 + add_action( 'template_redirect', array( $instance, 'process_register' ) );
584 + add_action( 'template_redirect', array( $instance, 'process_account' ) );
585 + add_action( 'template_redirect', array( $instance, 'process_forgot' ) );
586 + add_action( 'template_redirect', array( $instance, 'process_change' ) );
587 + add_action( 'template_redirect', array( $instance, 'process_reset' ) );
588 +
589 + // Forms
590 + add_filter( 'uwp_form_input_html_datepicker', array( $instance, 'form_input_datepicker' ), 10, 4 );
591 + add_filter( 'uwp_form_input_html_time', array( $instance, 'form_input_time' ), 10, 4 );
592 + add_filter( 'uwp_form_input_html_select', array( $instance, 'form_input_select' ), 10, 4 );
593 + add_filter( 'uwp_form_input_html_multiselect', array( $instance, 'form_input_multiselect' ), 10, 4 );
594 + add_filter( 'uwp_form_input_html_text', array( $instance, 'form_input_text' ), 10, 4 );
595 + add_filter( 'uwp_form_input_html_textarea', array( $instance, 'form_input_textarea' ), 10, 4 );
596 + add_filter( 'uwp_form_input_html_editor', array( $instance, 'form_input_editor' ), 10, 4 );
597 + add_filter( 'uwp_form_input_html_fieldset', array( $instance, 'form_input_fieldset' ), 10, 4 );
598 + add_filter( 'uwp_form_input_html_file', array( $instance, 'form_input_file' ), 10, 4 );
599 + add_filter( 'uwp_form_input_html_checkbox', array( $instance, 'form_input_checkbox' ), 10, 4 );
600 + add_filter( 'uwp_form_input_html_radio', array( $instance, 'form_input_radio' ), 10, 4 );
601 + add_filter( 'uwp_form_input_html_url', array( $instance, 'form_input_url' ), 10, 4 );
602 + add_filter( 'uwp_form_input_html_email', array( $instance, 'form_input_email' ), 10, 4 );
603 + add_filter( 'uwp_form_input_html_password', array( $instance, 'form_input_password' ), 10, 4 );
604 + add_filter( 'uwp_form_input_html_checkbox_register_gdpr', array( $instance, 'form_input_register_gdpr' ), 10, 4 );
605 + add_filter( 'uwp_form_input_html_checkbox_register_tos', array( $instance, 'form_input_register_tos' ), 10, 4 );
606 + // Country select
607 + add_filter( 'uwp_form_input_html_select_uwp_country', array( $instance, 'form_input_select_country' ), 10, 4 );
608 + add_filter( 'uwp_form_input_html_phone', array( $instance, 'form_input_phone' ), 10, 4 );
609 + add_filter( 'uwp_form_input_email_email_after', array( $instance, 'register_confirm_email_field' ), 10, 4 );
610 + add_filter( 'uwp_form_input_password_password_after', array( $instance, 'register_confirm_password_field' ), 10, 4 );
611 + add_filter( 'uwp_form_input_html_custom_html', array( $instance, 'form_custom_html' ), 10, 4 );
612 + add_filter( 'uwp_form_input_html_select_uwp_language', array( $instance, 'form_input_uwp_language' ), 10, 4 );
613 +
614 + // Emails
615 + add_filter( 'uwp_send_mail_form_fields', array( $instance, 'init_mail_form_fields' ), 10, 4 );
616 + }
617 +
618 + /**
619 + * Actions for notices
620 + *
621 + * @param $instance
622 + */
623 + public function load_notices_actions_and_filters( $instance ) {
624 + add_action( 'uwp_template_display_notices', array( $instance, 'display_registration_disabled_notice' ) );
625 + add_action( 'uwp_template_display_notices', array( $instance, 'form_notice_by_key' ) );
626 + add_action( 'admin_notices', array( $instance, 'show_admin_notices' ) );
627 + add_action( 'admin_notices', array( $instance, 'try_bootstrap' ) );
628 + add_action( 'admin_notices', array( $instance, 'yoast_user_archives_disabled' ) );
629 + add_action( 'admin_init', array( $instance, 'admin_init_handler' ) );
630 + }
631 +
632 + /**
633 + * Actions for pages
634 + *
635 + * @param $instance
636 + */
637 + public function load_pages_actions_and_filters( $instance ) {
638 + add_action( 'wp_initialize_site', array( $instance, 'wpmu_generate_default_pages_on_new_site' ), 10, 1 );
639 + add_filter( 'display_post_states', array( $instance, 'add_display_post_states' ), 10, 2 );
640 + }
641 +
642 + /**
643 + * Actions for user profile
644 + *
645 + * @param $instance
646 + */
647 + public function load_profile_actions_and_filters( $instance ) {
648 + add_action( 'template_redirect', array( $instance, 'redirect_author_page' ), 10, 2 );
649 + // Profile page
650 + add_filter( 'query_vars', array( $instance, 'profile_query_vars' ), 10, 1 );
651 + add_action( 'init', array( $instance, 'rewrite_profile_link' ), 10, 1 );
652 + add_filter( 'author_link', array( $instance, 'get_author_link' ), 11, 2 );
653 + add_filter( 'edit_profile_url', array( $instance, 'modify_admin_bar_edit_profile_url' ), 10, 3 );
654 + add_filter( 'the_title', array( $instance, 'modify_profile_page_title' ), 10, 2 );
655 + add_filter( 'get_comment_author_link', array( $instance, 'get_comment_author_link' ), 10, 2 );
656 + add_action( 'uwp_user_title', array( $instance, 'get_profile_title' ), 10, 2 );
657 + add_action( 'uwp_profile_social', array( $instance, 'get_profile_social' ), 10, 2 );
658 + add_filter( 'get_avatar_url', array( $instance, 'get_avatar_url' ), 99, 2 );
659 +
660 + // Popup and crop functions
661 + add_filter( 'ajax_query_attachments_args', array( $instance, 'restrict_attachment_display' ) );
662 + add_action( 'uwp_handle_file_upload_error_checks', array( $instance, 'handle_file_upload_error_checks' ), 10, 4 );
663 + add_action( 'wp_ajax_uwp_avatar_banner_upload', array( $instance, 'ajax_avatar_banner_upload' ) );
664 + add_action( 'wp_ajax_uwp_ajax_image_crop_popup_form', array( $instance, 'ajax_image_crop_popup_form' ) );
665 + add_action( 'wp_ajax_uwp_ajax_profile_image_remove', array( $instance, 'ajax_profile_image_remove' ) );
666 + add_action( 'wp_head', array( $instance, 'define_ajaxurl' ) );
667 + add_action( 'uwp_profile_header', array( $instance, 'image_crop_init' ), 10, 1 );
668 + add_action( 'uwp_admin_profile_edit', array( $instance, 'image_crop_init' ), 10, 1 );
669 +
670 + // Profile Tabs
671 + add_action( 'uwp_profile_more_info_tab_content', array( $instance, 'get_profile_more_info' ), 10, 1 );
672 + add_action( 'uwp_profile_posts_tab_content', array( $instance, 'get_profile_posts' ), 10, 1 );
673 + add_action( 'uwp_profile_comments_tab_content', array( $instance, 'get_profile_comments' ), 10, 1 );
674 + add_action( 'uwp_profile_user-comments_tab_content', array( $instance, 'get_profile_user_comments' ), 10, 1 );
675 +
676 + // Profile Pagination
677 + add_action( 'uwp_profile_pagination', array( $instance, 'get_profile_pagination' ) );
678 +
679 + // Profile title
680 + add_action( 'uwp_profile_after_title', array( $instance, 'edit_profile_button' ), 10, 1 );
681 +
682 + // Users
683 + add_action( 'uwp_output_location', array( $instance, 'show_output_location_data' ), 10, 2 );
684 + add_action( 'wpdiscuz_profile_url', array( $instance, 'wpdiscuz_profile_url' ), 10, 2 );
685 +
686 + // User, allow subscribers to upload profile and banner pictures
687 + add_filter( 'plupload_default_params', array( $instance, 'add_uwp_plupload_param' ), 10, 1 );
688 + add_filter( 'user_has_cap', array( $instance, 'allow_all_users_profile_uploads' ), 10, 4 );
689 + }
690 +
691 + /**
692 + * Actions for database tables
693 + *
694 + * @param $instance
695 + */
696 + public function load_tables_actions_and_filters( $instance ) {
697 + add_filter( 'wpmu_drop_tables', array( $instance, 'drop_tables_on_delete_blog' ) );
698 + }
699 +
700 + /**
701 + * Actions for templates
702 + *
703 + * @param $instance
704 + */
705 + public function load_templates_actions_and_filters( $instance ) {
706 + add_action( 'template_redirect', array( $instance, 'change_default_password_redirect' ) );
707 + add_action( 'uwp_template_fields', array( $instance, 'template_fields' ), 10, 2 );
708 + add_action( 'uwp_template_fields', array( $instance, 'template_extra_fields' ), 10, 2 );
709 + add_action( 'uwp_account_form_display', array( $instance, 'privacy_edit_form_display' ), 10, 1 );
710 + add_action( 'wp_logout', array( $instance, 'logout_redirect' ) );
711 + add_action( 'init', array( $instance, 'wp_login_redirect' ) );
712 + add_action( 'init', array( $instance, 'wp_register_redirect' ) );
713 + // Redirect functions
714 + add_action( 'template_redirect', array( $instance, 'profile_redirect' ), 10 );
715 + add_action( 'template_redirect', array( $instance, 'access_checks' ), 20 );
716 + add_action( 'wp', array( $instance, 'redirect_templates_sub_pages' ) );
717 + add_action( 'wp_login', array( $instance, 'unconfirmed_login_redirect' ), 10, 2 );
718 +
719 + add_filter( 'wp_setup_nav_menu_item', array( $instance, 'setup_nav_menu_item' ), 10, 1 );
720 + add_filter( 'the_content', array( $instance, 'author_page_content' ), 10, 1 );
721 + add_filter( 'the_content', array( $instance, 'author_box_page_content' ), 10, 1 );
722 + add_filter( 'the_content', array( $instance, 'setup_singular_page_content' ), 10, 1 );
723 + add_filter( 'the_content', array( $instance, 'set_the_content_hook' ), 5, 1 );
724 + add_filter( 'body_class', array( $instance, 'add_body_class' ), 10, 1 );
725 +
726 + // Filter the login and register url
727 + add_filter( 'login_url', array( $instance, 'wp_login_url' ), 10, 3 );
728 + add_filter( 'register_url', array( $instance, 'wp_register_url' ), 10, 1 );
729 + add_filter( 'lostpassword_url', array( $instance, 'wp_lostpassword_url' ), 10, 1 );
730 +
731 + // Oxygen plugin
732 + if ( defined( 'CT_VERSION' ) ) {
733 + add_filter( 'uwp_get_template', array( $instance, 'oxygen_override_template' ), 11, 5 );
734 + }
735 + }
736 +
737 + /**
738 + * Actions for tools
739 + *
740 + * @param $instance
741 + */
742 + public function load_tools_actions_and_filters( $instance ) {
743 + add_action( 'uwp_admin_sub_menus', array( $instance, 'uwp_add_admin_tools_sub_menu' ), 100, 1 );
744 + add_action( 'uwp_tools_settings_main_tab_content', array( $instance, 'uwp_tools_main_tab_content' ) );
745 + add_action( 'wp_ajax_uwp_process_diagnosis', array( $instance, 'uwp_process_diagnosis_ajax' ) );
746 + }
747 +
748 + /**
749 + * Actions for notifications
750 + *
751 + * @param $instance
752 + */
753 + public function load_notifications_actions_and_filters( $instance ) {
754 + add_action( 'uwp_account_form_display', array( $instance, 'user_notifications_form_front' ), 10, 1 );
755 + add_action( 'init', array( $instance, 'notification_submit_handler' ) );
756 + }
757 +
758 + /**
759 + * Actions for form builder
760 + *
761 + * @param $instance
762 + */
763 + public function load_form_builder_actions_and_filters( $instance ) {
764 + // Actions
765 + add_action( 'uwp_manage_available_fields_predefined', array( $instance, 'manage_available_fields_predefined' ) );
766 + add_action( 'uwp_manage_available_fields_custom', array( $instance, 'manage_available_fields_custom' ) );
767 + add_action( 'uwp_manage_available_fields', array( $instance, 'manage_available_fields' ) );
768 + add_action( 'uwp_manage_selected_fields', array( $instance, 'manage_selected_fields' ) );
769 + add_action( 'uwp_admin_extra_custom_fields', array( $instance, 'advance_admin_custom_fields' ), 10, 2 );
770 +
771 + add_filter( 'uwp_before_form_builder_content', array( $instance, 'multiple_registration_form' ) );
772 + add_filter( 'uwp_before_available_fields', array( $instance, 'display_before_available_fields' ) );
773 +
774 + add_action( 'wp_ajax_uwp_ajax_register_action', array( $instance, 'register_ajax_handler' ) );
775 + add_action( 'wp_ajax_uwp_ajax_action', array( $instance, 'create_field' ) );
776 + add_action( 'uwp_form_builder_tabs_content', array( $instance, 'uwp_form_builder' ) );
777 +
778 + // Filters
779 + add_filter( 'uwp_builder_extra_fields_multiselect', array( $instance, 'builder_extra_fields_smr' ), 10, 4 );
780 + add_filter( 'uwp_builder_extra_fields_select', array( $instance, 'builder_extra_fields_smr' ), 10, 4 );
781 + add_filter( 'uwp_builder_extra_fields_radio', array( $instance, 'builder_extra_fields_smr' ), 10, 4 );
782 + add_filter( 'uwp_builder_extra_fields_datepicker', array( $instance, 'builder_extra_fields_datepicker' ), 10, 4 );
783 + add_filter( 'uwp_builder_extra_fields_password', array( $instance, 'builder_extra_fields_password' ), 10, 4 );
784 + add_filter( 'uwp_builder_extra_fields_email', array( $instance, 'builder_extra_fields_email' ), 10, 4 );
785 + add_filter( 'uwp_builder_extra_fields_file', array( $instance, 'builder_extra_fields_file' ), 10, 4 );
786 + add_filter( 'uwp_builder_data_type_text', array( $instance, 'builder_data_type_text' ), 10, 4 );
787 + add_filter( 'uwp_form_builder_available_fields_head', array( $instance, 'register_available_fields_head' ), 10, 2 );
788 + add_filter( 'uwp_form_builder_available_fields_note', array( $instance, 'register_available_fields_note' ), 10, 2 );
789 + add_filter( 'uwp_form_builder_selected_fields_head', array( $instance, 'register_selected_fields_head' ), 10, 2 );
790 + add_filter( 'uwp_form_builder_selected_fields_note', array( $instance, 'register_selected_fields_note' ), 10, 2 );
791 + // htmlvar not needed for taxonomy
792 + add_filter( 'uwp_builder_htmlvar_name_taxonomy', array( $instance, 'return_empty_string' ), 10, 4 );
793 + // default_value not needed for textarea, html, file, fieldset
794 + add_filter( 'uwp_builder_default_value_textarea', array( $instance, 'return_empty_string' ), 10, 4 );
795 + add_filter( 'uwp_builder_default_value_html', array( $instance, 'return_empty_string' ), 10, 4 );
796 + add_filter( 'uwp_builder_default_value_file', array( $instance, 'return_empty_string' ), 10, 4 );
797 + add_filter( 'uwp_builder_default_value_fieldset', array( $instance, 'return_empty_string' ), 10, 4 );
798 + // is_required not needed for fieldset
799 + add_filter( 'uwp_builder_is_required_fieldset', array( $instance, 'return_empty_string' ), 10, 4 );
800 + add_filter( 'uwp_builder_required_msg_fieldset', array( $instance, 'return_empty_string' ), 10, 4 );
801 + // field_icon not needed for fieldset
802 + add_filter( 'uwp_builder_css_class_fieldset', array( $instance, 'return_empty_string' ), 10, 4 );
803 + // filters for which is_public not required
804 + add_filter( 'uwp_builder_is_public_password', array( $instance, 'return_empty_string' ), 10, 4 );
805 + add_filter( 'uwp_builder_validation_pattern_text', array( $instance, 'validation_pattern' ), 10, 4 );
806 + add_filter( 'uwp_builder_validation_pattern_email', array( $instance, 'validation_pattern' ), 10, 4 );
807 + add_filter( 'uwp_builder_validation_pattern_phone', array( $instance, 'validation_pattern' ), 10, 4 );
808 + add_filter( 'uwp_builder_validation_pattern_url', array( $instance, 'validation_pattern' ), 10, 4 );
809 + }
810 +
811 + /**
812 + * Actions for admin menus
813 + *
814 + * @param $instance
815 + */
816 + public function load_menus_actions_and_filters( $instance ) {
817 + add_action( 'load-nav-menus.php', array( $instance, 'users_wp_admin_menu_metabox' ) );
818 + add_action( 'admin_bar_menu', array( $instance, 'admin_bar_menu' ), 51 );
819 + }
820 +
821 + /**
822 + * Registers an individual text string for WPML translation.
823 + *
824 + * @since 1.2.2
825 + *
826 + * @param string $string The string that needs to be translated.
827 + * @param string $domain The plugin domain. Default userswp.
828 + * @param string $name The name of the string which helps to know what's being translated.
829 + */
830 + public static function register_string( $string, $domain = 'userswp', $name = '' ) {
831 + do_action( 'wpml_register_single_string', $domain, $name, $string );
832 + }
833 +
834 + /**
835 + * Register widgets
836 + *
837 + */
838 + public function register_widgets() {
839 + global $pagenow;
840 +
841 + $block_widget_init_screens = function_exists( 'sd_pagenow_exclude' ) ? sd_pagenow_exclude() : array();
842 +
843 + if ( is_admin() && $pagenow && in_array( $pagenow, $block_widget_init_screens ) ) {
844 + // Don't initiate in these conditions.
845 + } else {
846 + $exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array();
847 + $widgets = $this->get_widgets();
848 +
849 + if ( ! empty( $widgets ) ) {
850 + foreach ( $widgets as $widget ) {
851 + if ( ! in_array( $widget, $exclude ) ) {
852 + // SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it.
853 + if ( is_subclass_of( $widget, 'WP_Widget' ) ) {
854 + register_widget( $widget );
855 + } else {
856 + new $widget();
857 + }
858 + }
859 + }
860 + }
861 + }
862 + }
863 +
864 + public function get_widgets(){
865 + $widgets = array(
866 + 'UWP_Register_Widget',
867 + 'UWP_Forgot_Widget',
868 + 'UWP_Login_Widget',
869 + 'UWP_Change_Widget',
870 + 'UWP_Reset_Widget',
871 + 'UWP_Users_Widget',
872 + 'UWP_Users_Item_Widget',
873 + 'UWP_Account_Widget',
874 + 'UWP_Profile_Widget',
875 + 'UWP_Profile_Header_Widget',
876 + 'UWP_Profile_Social_Widget',
877 + 'UWP_Profile_Tabs_Widget',
878 + 'UWP_Profile_Actions_Widget',
879 + 'UWP_Profile_Section_Widget',
880 + 'UWP_User_Title_Widget',
881 + 'UWP_User_Avatar_Widget',
882 + 'UWP_User_Cover_Widget',
883 + 'UWP_User_Post_Counts_Widget',
884 + 'UWP_User_Meta_Widget',
885 + 'UWP_Users_Search_Widget',
886 + 'UWP_Users_Loop_Actions',
887 + 'UWP_Users_Loop_Widget',
888 + 'UWP_User_Actions_Widget',
889 + 'UWP_Output_Location_Widget',
890 + 'UWP_Author_Box_Widget',
891 + 'UWP_Button_Group_Widget',
892 + 'UWP_User_Badge_Widget',
893 + );
894 +
895 + return apply_filters('uwp_get_widgets', $widgets );
896 + }
897 +
898 + /**
899 + * Load the plugin text domain for translation.
900 + *
901 + * @since 1.0.0
902 + * @package userswp
903 + * @return void
904 + */
905 + public function load_plugin_textdomain() {
906 + // Determines the current locale.
907 + if ( function_exists( 'determine_locale' ) ) {
908 + $locale = determine_locale();
909 + } else if ( function_exists( 'get_user_locale' ) ) {
910 + $locale = get_user_locale();
911 + } else {
912 + $locale = get_locale();
913 + }
914 +
915 + /**
916 + * Filter the locale to use for translations.
917 + */
918 + $locale = apply_filters( 'plugin_locale', $locale, 'userswp' );
919 +
920 + unload_textdomain( 'userswp', true );
921 + load_textdomain( 'userswp', WP_LANG_DIR . '/userswp/userswp-' . $locale . '.mo' );
922 + load_plugin_textdomain( 'userswp', false, plugin_basename( dirname( USERSWP_PLUGIN_FILE ) ) . '/languages/' );
923 +
924 + do_action( 'uwp_loaded' );
925 + }
926 +
927 + /**
928 + * Ensure Select2 is enqueued in auth pages only if not already done.
929 + *
930 + * @return void
931 + *
932 + * @since 1.2.29
933 + */
934 + public function enqueue_select2_on_auth_pages() {
935 + if ( ! wp_script_is( 'select2', 'enqueued' ) ) {
936 + wp_enqueue_script( 'select2' );
937 + }
938 + }
939 +
940 + /**
941 + * Flush rewrite rules.
942 + *
943 + * @return void
944 + */
945 + public function flush_rewrite_rules() {
946 + flush_rewrite_rules();
947 + }
948 +
949 + /**
950 + * Hide admin bar based on settings.
951 + */
952 + public function hide_admin_bar() {
953 + $is_hidden = false;
954 +
955 + if ( is_user_logged_in() ) {
956 + $user = get_userdata( (int) get_current_user_id() );
957 +
958 + if ( ! empty( $user ) && isset( $user->roles[0] ) ) {
959 + $user_role = $user->roles[0];
960 + $is_hidden = uwp_get_option( 'hide_admin_bar_'.$user_role );
961 + }
962 + }
963 +
964 + if ( $is_hidden ) {
965 + show_admin_bar( false );
966 + }
967 + }
661 968 }