PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 3.1
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v3.1
4.16.18 4.16.17 4.16.16 trunk 1.0 1.0.1 1.0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5a 1.1.6 1.1.7 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.4 1.4.1 1.4.2 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.1.9 2.2.10 2.2.11 2.2.12 2.2.13 2.2.14 2.2.15 2.2.16 2.2.2 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 3.0 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 4.0.0 4.0.1 4.0.2 4.0.3 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.13.3 4.13.4 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.15.0 4.15.1 4.15.10 4.15.11 4.15.12 4.15.13 4.15.14 4.15.15 4.15.16 4.15.17 4.15.18 4.15.19 4.15.2 4.15.20 4.15.20.1 4.15.21 4.15.22 4.15.23 4.15.24 4.15.25 4.15.3 4.15.4 4.15.5 4.15.6 4.15.7 4.15.8 4.15.9 4.16.0 4.16.1 4.16.10 4.16.11 4.16.12 4.16.13 4.16.14 4.16.15 4.16.2 4.16.3 4.16.4 4.16.5 4.16.6 4.16.7 4.16.8 4.16.9 4.2.0 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.7.0 4.8.0 4.9.0
wp-user-avatar / src / Base.php
wp-user-avatar / src Last commit date
Admin 5 years ago AdminBarDashboardAccess 5 years ago Classes 5 years ago ContentProtection 5 years ago Functions 5 years ago NavigationMenuLinks 5 years ago RegisterActivation 5 years ago ShortcodeParser 5 years ago Themes 5 years ago Widgets 5 years ago lib 5 years ago Base.php 5 years ago DBUpdates.php 5 years ago RegisterScripts.php 5 years ago
Base.php
279 lines
1 <?php
2
3 namespace ProfilePress\Core;
4
5 use ProfilePress\Core\Admin\SettingsPages\AdminFooter;
6 use ProfilePress\Core\Admin\SettingsPages\ExtensionsSettingsPage;
7 use ProfilePress\Core\Admin\SettingsPages\IDUserColumn;
8 use ProfilePress\Core\Admin\SettingsPages\MemberDirectories;
9 use ProfilePress\Core\Admin\SettingsPages\ToolsSettingsPage;
10 use ProfilePress\Core\Classes\GlobalSiteAccess;
11 use ProfilePress\Core\ContentProtection;
12 use ProfilePress\Core\Admin\SettingsPages\EmailSettings\DefaultTemplateCustomizer;
13 use ProfilePress\Core\Admin\SettingsPages\EmailSettings\EmailSettingsPage;
14 use ProfilePress\Core\Admin\SettingsPages\Forms;
15 use ProfilePress\Core\Admin\SettingsPages\GeneralSettings;
16 use ProfilePress\Core\Classes\AdminNotices;
17 use ProfilePress\Core\Classes\AjaxHandler;
18 use ProfilePress\Core\Classes\BuddyPressBbPress;
19 use ProfilePress\Core\Classes\FormPreviewHandler;
20 use ProfilePress\Core\Classes\GDPR;
21 use ProfilePress\Core\Classes\Miscellaneous;
22 use ProfilePress\Core\Classes\ModifyRedirectDefaultLinks;
23 use ProfilePress\Core\Classes\PPRESS_Session;
24 use ProfilePress\Core\Classes\ProfileUrlRewrite;
25 use ProfilePress\Core\Classes\UserAvatar;
26 use ProfilePress\Core\Classes\UsernameEmailRestrictLogin;
27 use ProfilePress\Core\Classes\UserSignupLocationListingPage;
28 use ProfilePress\Core\ShortcodeParser\Builder\EditProfileBuilder;
29 use ProfilePress\Core\ShortcodeParser\Builder\GlobalShortcodes;
30 use ProfilePress\Core\ShortcodeParser\Builder\PasswordResetBuilder;
31 use ProfilePress\Core\ShortcodeParser\Builder\RegistrationFormBuilder;
32 use ProfilePress\Core\ShortcodeParser\EditProfileTag;
33 use ProfilePress\Core\ShortcodeParser\FrontendProfileTag;
34 use ProfilePress\Core\ShortcodeParser\Builder\LoginFormBuilder;
35 use ProfilePress\Core\ShortcodeParser\LoginFormTag;
36 use ProfilePress\Core\ShortcodeParser\MelangeTag;
37 use ProfilePress\Core\ShortcodeParser\MemberDirectoryTag;
38 use ProfilePress\Core\ShortcodeParser\MyAccount\MyAccountTag;
39 use ProfilePress\Core\ShortcodeParser\PasswordResetTag;
40 use ProfilePress\Core\ShortcodeParser\RegistrationFormTag;
41 use ProfilePress\Core\Widgets\Init as WidgetsInit;
42
43 define('PROFILEPRESS_SRC', plugin_dir_path(PROFILEPRESS_SYSTEM_FILE_PATH) . 'src/');
44 define('PPRESS_ADMIN_SETTINGS_PAGE_FOLDER', PROFILEPRESS_SRC . 'Admin/SettingsPages/');
45
46 define('PPRESS_ERROR_LOG_FOLDER', WP_CONTENT_DIR . "/uploads/profilepress-logs/");
47
48 define('PPRESS_SETTINGS_SLUG', 'pp-config');
49 define('PPRESS_FORMS_SETTINGS_SLUG', 'pp-forms');
50 define('PPRESS_MEMBER_DIRECTORIES_SLUG', 'pp-directories');
51
52 define('PPRESS_CONTENT_PROTECTION_SETTINGS_SLUG', 'pp-content-protection');
53 define('PPRESS_EXTENSIONS_SETTINGS_SLUG', 'pp-extensions');
54
55 define('PPRESS_SETTINGS_SETTING_PAGE', admin_url('admin.php?page=' . PPRESS_SETTINGS_SLUG));
56 define('PPRESS_CUSTOM_FIELDS_SETTINGS_PAGE', add_query_arg(['view' => 'custom-fields'], PPRESS_SETTINGS_SETTING_PAGE));
57 define('PPRESS_CONTACT_INFO_SETTINGS_PAGE', add_query_arg(['view' => 'custom-fields', 'type' => 'contact-info'], PPRESS_SETTINGS_SETTING_PAGE));
58 define('PPRESS_SETTINGS_EMAIL_SETTING_PAGE', add_query_arg('view', 'email', PPRESS_SETTINGS_SETTING_PAGE));
59 define('PPRESS_FORMS_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_FORMS_SETTINGS_SLUG));
60 define('PPRESS_MEMBER_DIRECTORIES_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_MEMBER_DIRECTORIES_SLUG));
61 define('PPRESS_USER_PROFILES_SETTINGS_PAGE', add_query_arg('form-type', 'user-profile', PPRESS_FORMS_SETTINGS_PAGE));
62 define('PPRESS_CONTENT_PROTECTION_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_CONTENT_PROTECTION_SETTINGS_SLUG));
63 define('PPRESS_EXTENSIONS_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_EXTENSIONS_SETTINGS_SLUG));
64
65 define('PPRESS_LICENSE_SETTINGS_PAGE', add_query_arg('view', 'license', PPRESS_SETTINGS_SETTING_PAGE));
66
67 define('PPRESS_SETTINGS_DB_OPTION_NAME', 'ppress_settings_data');
68 define('PPRESS_FORMS_DB_OPTION_NAME', 'pp_forms');
69 define('PPRESS_CONTACT_INFO_OPTION_NAME', 'ppress_contact_info');
70
71 define('PPRESS_ASSETS_URL', plugin_dir_url(PROFILEPRESS_SYSTEM_FILE_PATH) . 'assets');
72
73 // Directory for uploaded avatar
74 define("PPRESS_AVATAR_UPLOAD_DIR", apply_filters('ppress_avatar_folder', WP_CONTENT_DIR . '/uploads/pp-avatar/'));
75 define("PPRESS_COVER_IMAGE_UPLOAD_DIR", apply_filters('ppress_cover_image_folder', WP_CONTENT_DIR . '/uploads/pp-avatar/cover/'));
76
77 define("PPRESS_AVATAR_UPLOAD_URL", apply_filters('ppress_avatar_url', WP_CONTENT_URL . '/uploads/pp-avatar/'));
78 define("PPRESS_COVER_IMAGE_UPLOAD_URL", apply_filters('ppress_cover_image_url', WP_CONTENT_URL . '/uploads/pp-avatar/cover/'));
79
80 // Directory for file custom fields
81 define("PPRESS_FILE_UPLOAD_DIR", apply_filters('ppress_files_folder', WP_CONTENT_DIR . '/uploads/pp-files/'));
82 define("PPRESS_FILE_UPLOAD_URL", apply_filters('ppress_files_url', WP_CONTENT_URL . '/uploads/pp-files/'));
83
84 class Base
85 {
86 // core contact info fields
87 const cif_facebook = 'facebook';
88 const cif_twitter = 'twitter';
89 const cif_linkedin = 'linkedin';
90 const cif_youtube = 'youtube';
91 const cif_vk = 'vk';
92 const cif_instagram = 'instagram';
93 const cif_github = 'github';
94
95 public function __construct()
96 {
97 register_activation_hook(PROFILEPRESS_SYSTEM_FILE_PATH, ['ProfilePress\Core\RegisterActivation\Base', 'run_install']);
98
99 if (version_compare(get_bloginfo('version'), '5.1', '<')) {
100 add_action('wpmu_new_blog', ['ProfilePress\Core\RegisterActivation\Base', 'multisite_new_blog_install']);
101 } else {
102 add_action('wp_insert_site', function (\WP_Site $new_site) {
103 RegisterActivation\Base::multisite_new_blog_install($new_site->blog_id);
104 });
105 }
106
107 add_action('activate_blog', ['ProfilePress\Core\RegisterActivation\Base', 'multisite_new_blog_install']);
108
109 add_filter('wpmu_drop_tables', array($this, 'wpmu_drop_tables'));
110
111 add_action('admin_init', function () {
112 if (isset($_GET['ppress_create_pages']) && $_GET['ppress_create_pages'] == 'true' && current_user_can('manage_options')) {
113 check_admin_referer('ppress_create_pages', 'ppress_nonce');
114 RegisterActivation\Base::create_pages();
115 \PAnD::set_admin_notice_cache('ppress-create-plugin-pages-notice', 'forever');
116 wp_safe_redirect(PPRESS_SETTINGS_SETTING_PAGE . '#global_settings');
117 exit;
118 }
119 });
120
121 // handles edge case where register activation isn't triggered especially when migrating from wp user avatar.
122 add_action('admin_init', function () {
123 if (get_option('ppress_plugin_activated') != 'true') {
124 RegisterActivation\Base::run_install();
125 }
126 });
127
128 do_action('ppress_loaded');
129
130 GlobalSiteAccess::init();
131
132 DefaultTemplateCustomizer::get_instance();
133
134 RegisterScripts::get_instance();
135
136 PPRESS_Session::get_instance();
137
138 UserAvatar::get_instance();
139 ModifyRedirectDefaultLinks::get_instance();
140 UsernameEmailRestrictLogin::get_instance();
141 BuddyPressBbPress::get_instance();
142 AjaxHandler::get_instance();
143
144 GlobalShortcodes::initialize();
145 EditProfileBuilder::get_instance();
146 LoginFormBuilder::get_instance();
147 PasswordResetBuilder::get_instance();
148 RegistrationFormBuilder::initialize();
149
150 LoginFormTag::get_instance();
151 EditProfileTag::get_instance();
152 FrontendProfileTag::get_instance();
153 MelangeTag::get_instance();
154 PasswordResetTag::get_instance();
155 RegistrationFormTag::get_instance();
156 MyAccountTag::get_instance();
157 MemberDirectoryTag::get_instance();
158
159 Miscellaneous::get_instance();
160 ProfileUrlRewrite::get_instance();
161
162 WidgetsInit::init();
163
164 AdminBarDashboardAccess\Init::get_instance();
165
166 FormPreviewHandler::get_instance();
167
168 ContentProtection\Init::get_instance();
169
170 NavigationMenuLinks\Init::init();
171
172 $this->admin_hooks();
173
174 add_action('plugins_loaded', [$this, 'db_updates']);
175 }
176
177 public static function form_db_table()
178 {
179 global $wpdb;
180
181 return $wpdb->prefix . 'ppress_forms';
182 }
183
184 public static function form_meta_db_table()
185 {
186 global $wpdb;
187
188 return $wpdb->prefix . 'ppress_formsmeta';
189 }
190
191 public static function passwordless_login_db_table()
192 {
193 global $wpdb;
194
195 return $wpdb->prefix . 'ppress_passwordless';
196 }
197
198 public static function meta_data_db_table()
199 {
200 global $wpdb;
201
202 return $wpdb->prefix . 'ppress_meta_data';
203 }
204
205 public static function profile_fields_db_table()
206 {
207 global $wpdb;
208
209 return $wpdb->prefix . 'ppress_profile_fields';
210 }
211
212 public function admin_hooks()
213 {
214 if ( ! is_admin()) {
215 return;
216 }
217
218 GeneralSettings::get_instance();
219 EmailSettingsPage::get_instance();
220
221 ToolsSettingsPage::get_instance();
222
223 Forms::get_instance();
224 MemberDirectories::get_instance();
225 ExtensionsSettingsPage::get_instance();
226
227 AdminNotices::get_instance();
228 UserSignupLocationListingPage::get_instance();
229 AdminFooter::get_instance();
230
231 IDUserColumn::get_instance();
232
233 GDPR::get_instance();
234
235 do_action('ppress_admin_hooks');
236 }
237
238 public function db_updates()
239 {
240 if ( ! is_admin()) {
241 return;
242 }
243
244 DBUpdates::get_instance()->maybe_update();
245 }
246
247 public function wpmu_drop_tables($tables)
248 {
249 $tables[] = Base::form_db_table();
250 $tables[] = Base::form_meta_db_table();
251 $tables[] = Base::meta_data_db_table();
252 $tables[] = Base::passwordless_login_db_table();
253 $tables[] = Base::profile_fields_db_table();
254
255 $tables = apply_filters('ppress_drop_mu_database_tables', $tables);
256
257 return $tables;
258 }
259
260 /**
261 * Singleton.
262 *
263 * @return Base
264 */
265 public static function get_instance()
266 {
267 /** WP User Avatar Adapter STARTS */
268 require dirname(PROFILEPRESS_SYSTEM_FILE_PATH) . '/deprecated/wp-user-avatar/wp-user-avatar.php';
269 /** WP User Avatar Adapter ENDS */
270
271 static $instance = null;
272
273 if (is_null($instance)) {
274 $instance = new self();
275 }
276
277 return $instance;
278 }
279 }