PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.9.0
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.9.0
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 3 years ago AdminBarDashboardAccess 3 years ago Classes 3 years ago ContentProtection 3 years ago Functions 3 years ago Membership 3 years ago NavigationMenuLinks 3 years ago RegisterActivation 3 years ago ShortcodeParser 3 years ago Themes 3 years ago Widgets 3 years ago lib 3 years ago templates 3 years ago Base.php 3 years ago Cron.php 3 years ago DBTables.php 3 years ago DBUpdates.php 3 years ago RegisterScripts.php 3 years ago eu-vat-rates.json 4 years ago
Base.php
289 lines
1 <?php
2
3 namespace ProfilePress\Core;
4
5 use ProfilePress\Core\Admin\ProfileCustomFields;
6 use ProfilePress\Core\Admin\SettingsPages\AdminFooter;
7 use ProfilePress\Core\Admin\SettingsPages\ExtensionsSettingsPage;
8 use ProfilePress\Core\Admin\SettingsPages\IDUserColumn;
9 use ProfilePress\Core\Admin\SettingsPages\LicenseUpgrader;
10 use ProfilePress\Core\Admin\SettingsPages\MailOptin;
11 use ProfilePress\Core\Admin\SettingsPages\MemberDirectories;
12 use ProfilePress\Core\Admin\SettingsPages\Membership\CheckListHeader;
13 use ProfilePress\Core\Admin\SettingsPages\Membership\CheckoutFieldsManager;
14 use ProfilePress\Core\Admin\SettingsPages\Membership\CouponsPage\SettingsPage as CouponsSettingsPage;
15 use ProfilePress\Core\Admin\SettingsPages\Membership\CustomersPage\SettingsPage as CustomersPageSettingsPage;
16 use ProfilePress\Core\Admin\SettingsPages\Membership\GroupsPage\SettingsPage as GroupsSettingsPageAlias;
17 use ProfilePress\Core\Admin\SettingsPages\Membership\OrdersPage\SettingsPage as OrdersPageSettingsPage;
18 use ProfilePress\Core\Admin\SettingsPages\Membership\PaymentMethods;
19 use ProfilePress\Core\Admin\SettingsPages\Membership\PaymentSettings;
20 use ProfilePress\Core\Admin\SettingsPages\Membership\PlansPage\SettingsPage as PlansSettingsPage;
21 use ProfilePress\Core\Admin\SettingsPages\Membership\SubscriptionsPage\SettingsPage as SubscriptionsPageSettingsPage;
22 use ProfilePress\Core\Admin\SettingsPages\ToolsSettingsPage;
23 use ProfilePress\Core\Classes\BlockRegistrations;
24 use ProfilePress\Core\Classes\GlobalSiteAccess;
25 use ProfilePress\Core\ContentProtection;
26 use ProfilePress\Core\Admin\SettingsPages\EmailSettings\DefaultTemplateCustomizer;
27 use ProfilePress\Core\Admin\SettingsPages\EmailSettings\EmailSettingsPage;
28 use ProfilePress\Core\Admin\SettingsPages\Forms;
29 use ProfilePress\Core\Admin\SettingsPages\GeneralSettings;
30 use ProfilePress\Core\Classes\AdminNotices;
31 use ProfilePress\Core\Classes\AjaxHandler;
32 use ProfilePress\Core\Classes\BuddyPressBbPress;
33 use ProfilePress\Core\Classes\FormPreviewHandler;
34 use ProfilePress\Core\Classes\GDPR;
35 use ProfilePress\Core\Classes\Miscellaneous;
36 use ProfilePress\Core\Classes\ModifyRedirectDefaultLinks;
37 use ProfilePress\Core\Classes\PPRESS_Session;
38 use ProfilePress\Core\Classes\ProfileUrlRewrite;
39 use ProfilePress\Core\Classes\UserAvatar;
40 use ProfilePress\Core\Classes\UsernameEmailRestrictLogin;
41 use ProfilePress\Core\Classes\UserSignupLocationListingPage;
42 use ProfilePress\Core\ContentProtection\SettingsPage as ContentProtectionSettingsPage;
43 use ProfilePress\Core\RegisterActivation\CreateDBTables;
44 use ProfilePress\Core\Widgets\Init as WidgetsInit;
45 use ProfilePressVendor\PAnD;
46
47 define('PROFILEPRESS_SRC', plugin_dir_path(PROFILEPRESS_SYSTEM_FILE_PATH) . 'src/');
48 define('PPRESS_ADMIN_SETTINGS_PAGE_FOLDER', PROFILEPRESS_SRC . 'Admin/SettingsPages/');
49
50 define('PPRESS_ERROR_LOG_FOLDER', WP_CONTENT_DIR . "/uploads/profilepress-logs/");
51
52 define('PPRESS_SETTINGS_SLUG', 'ppress-config');
53 define('PPRESS_FORMS_SETTINGS_SLUG', 'ppress-forms');
54 define('PPRESS_MEMBER_DIRECTORIES_SLUG', 'ppress-directories');
55
56 define('PPRESS_CONTENT_PROTECTION_SETTINGS_SLUG', 'ppress-content-protection');
57 define('PPRESS_DASHBOARD_SETTINGS_SLUG', 'ppress-dashboard');
58 define('PPRESS_MEMBERSHIP_PLANS_SETTINGS_SLUG', 'ppress-plans');
59 define('PPRESS_MEMBERSHIP_ORDERS_SETTINGS_SLUG', 'ppress-orders');
60 define('PPRESS_MEMBERSHIP_CUSTOMERS_SETTINGS_SLUG', 'ppress-customers');
61 define('PPRESS_MEMBERSHIP_SUBSCRIPTIONS_SETTINGS_SLUG', 'ppress-subscriptions');
62 define('PPRESS_EXTENSIONS_SETTINGS_SLUG', 'ppress-extensions');
63
64 define('PPRESS_SETTINGS_SETTING_PAGE', admin_url('admin.php?page=' . PPRESS_SETTINGS_SLUG));
65 define('PPRESS_SETTINGS_SETTING_GENERAL_PAGE', add_query_arg(['section' => 'general'], admin_url('admin.php?page=' . PPRESS_SETTINGS_SLUG)));
66 define('PPRESS_CUSTOM_FIELDS_SETTINGS_PAGE', add_query_arg(['view' => 'custom-fields'], PPRESS_SETTINGS_SETTING_PAGE));
67 define('PPRESS_CONTACT_INFO_SETTINGS_PAGE', add_query_arg(['section' => 'contact-info'], PPRESS_CUSTOM_FIELDS_SETTINGS_PAGE));
68 define('PPRESS_SETTINGS_EMAIL_SETTING_PAGE', add_query_arg('view', 'email', PPRESS_SETTINGS_SETTING_PAGE));
69 define('PPRESS_FORMS_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_FORMS_SETTINGS_SLUG));
70 define('PPRESS_MEMBER_DIRECTORIES_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_MEMBER_DIRECTORIES_SLUG));
71 define('PPRESS_USER_PROFILES_SETTINGS_PAGE', add_query_arg('form-type', 'user-profile', PPRESS_FORMS_SETTINGS_PAGE));
72 define('PPRESS_CONTENT_PROTECTION_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_CONTENT_PROTECTION_SETTINGS_SLUG));
73 define('PPRESS_EXTENSIONS_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_EXTENSIONS_SETTINGS_SLUG));
74 define('PPRESS_DASHBOARD_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_DASHBOARD_SETTINGS_SLUG));
75 define('PPRESS_MEMBERSHIP_DOWNLOAD_LOGS_SETTINGS_PAGE', add_query_arg('view', 'download-logs', PPRESS_DASHBOARD_SETTINGS_PAGE));
76 define('PPRESS_MEMBERSHIP_SUBSCRIPTION_PLANS_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_MEMBERSHIP_PLANS_SETTINGS_SLUG));
77 define('PPRESS_MEMBERSHIP_COUPONS_SETTINGS_PAGE', add_query_arg('view', 'coupons', PPRESS_MEMBERSHIP_SUBSCRIPTION_PLANS_SETTINGS_PAGE));
78 define('PPRESS_MEMBERSHIP_GROUPS_SETTINGS_PAGE', add_query_arg('view', 'groups', PPRESS_MEMBERSHIP_SUBSCRIPTION_PLANS_SETTINGS_PAGE));
79 define('PPRESS_MEMBERSHIP_ORDERS_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_MEMBERSHIP_ORDERS_SETTINGS_SLUG));
80 define('PPRESS_MEMBERSHIP_SUBSCRIPTIONS_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_MEMBERSHIP_SUBSCRIPTIONS_SETTINGS_SLUG));
81 define('PPRESS_MEMBERSHIP_CUSTOMERS_SETTINGS_PAGE', admin_url('admin.php?page=' . PPRESS_MEMBERSHIP_CUSTOMERS_SETTINGS_SLUG));
82
83 define('PPRESS_LICENSE_SETTINGS_PAGE', add_query_arg('view', 'license', PPRESS_SETTINGS_SETTING_PAGE));
84
85 define('PPRESS_SETTINGS_DB_OPTION_NAME', 'ppress_settings_data');
86 define('PPRESS_FORMS_DB_OPTION_NAME', 'pp_forms');
87 define('PPRESS_CONTACT_INFO_OPTION_NAME', 'ppress_contact_info');
88 define('PPRESS_PAYMENT_METHODS_OPTION_NAME', 'ppress_payment_methods');
89 define('PPRESS_FILE_DOWNLOADS_OPTION_NAME', 'ppress_file_downloads');
90 define('PPRESS_TAXES_OPTION_NAME', 'ppress_taxes');
91
92 define('PPRESS_ASSETS_URL', plugin_dir_url(PROFILEPRESS_SYSTEM_FILE_PATH) . 'assets');
93
94 // Directory for uploaded avatar
95 define("PPRESS_AVATAR_UPLOAD_DIR", apply_filters('ppress_avatar_folder', WP_CONTENT_DIR . '/uploads/pp-avatar/'));
96 define("PPRESS_COVER_IMAGE_UPLOAD_DIR", apply_filters('ppress_cover_image_folder', WP_CONTENT_DIR . '/uploads/pp-avatar/cover/'));
97
98 define("PPRESS_AVATAR_UPLOAD_URL", apply_filters('ppress_avatar_url', WP_CONTENT_URL . '/uploads/pp-avatar/'));
99 define("PPRESS_COVER_IMAGE_UPLOAD_URL", apply_filters('ppress_cover_image_url', WP_CONTENT_URL . '/uploads/pp-avatar/cover/'));
100
101 // Directory for file custom fields
102 define("PPRESS_FILE_UPLOAD_DIR", apply_filters('ppress_files_folder', WP_CONTENT_DIR . '/uploads/pp-files/'));
103 define("PPRESS_FILE_UPLOAD_URL", apply_filters('ppress_files_url', WP_CONTENT_URL . '/uploads/pp-files/'));
104
105 class Base extends DBTables
106 {
107 // core contact info fields
108 const cif_facebook = 'facebook';
109 const cif_twitter = 'twitter';
110 const cif_linkedin = 'linkedin';
111 const cif_youtube = 'youtube';
112 const cif_vk = 'vk';
113 const cif_instagram = 'instagram';
114 const cif_github = 'github';
115 const cif_pinterest = 'pinterest';
116
117 public function __construct()
118 {
119 register_activation_hook(PROFILEPRESS_SYSTEM_FILE_PATH, ['ProfilePress\Core\RegisterActivation\Base', 'run_install']);
120
121 if (version_compare(get_bloginfo('version'), '5.1', '<')) {
122 add_action('wpmu_new_blog', ['ProfilePress\Core\RegisterActivation\Base', 'multisite_new_blog_install']);
123 } else {
124 add_action('wp_insert_site', function (\WP_Site $new_site) {
125 RegisterActivation\Base::multisite_new_blog_install($new_site->blog_id);
126 });
127 }
128
129 add_action('activate_blog', ['ProfilePress\Core\RegisterActivation\Base', 'multisite_new_blog_install']);
130
131 add_filter('wpmu_drop_tables', array($this, 'wpmu_drop_tables'));
132
133 add_action('admin_init', function () {
134 if (isset($_GET['ppress_create_pages']) && $_GET['ppress_create_pages'] == 'true' && current_user_can('manage_options')) {
135 check_admin_referer('ppress_create_pages', 'ppress_nonce');
136 RegisterActivation\Base::create_pages();
137 PAnD::set_admin_notice_cache('ppress-create-plugin-pages-notice', 'forever');
138 wp_safe_redirect(PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#global_pages');
139 exit;
140 }
141 });
142
143 // handles edge case where register activation isn't triggered especially when migrating from wp user avatar.
144 add_action('admin_init', function () {
145 if (get_option('ppress_plugin_activated') != 'true') {
146 RegisterActivation\Base::run_install();
147 }
148 });
149
150 do_action('ppress_before_loaded');
151
152 Cron::get_instance();
153 GlobalSiteAccess::init();
154 BlockRegistrations::init();
155 DefaultTemplateCustomizer::get_instance();
156 RegisterScripts::get_instance();
157 PPRESS_Session::get_instance();
158 UserAvatar::get_instance();
159 ModifyRedirectDefaultLinks::get_instance();
160 UsernameEmailRestrictLogin::get_instance();
161 BuddyPressBbPress::get_instance();
162 AjaxHandler::get_instance();
163 ShortcodeParser\Init::get_instance();
164 Miscellaneous::get_instance();
165 ProfileUrlRewrite::get_instance();
166 WidgetsInit::init();
167 AdminBarDashboardAccess\Init::get_instance();
168 FormPreviewHandler::get_instance();
169 ContentProtection\Init::get_instance();
170 NavigationMenuLinks\Init::init();
171 Membership\Init::init();
172
173 LicenseUpgrader::get_instance();
174
175 $this->admin_hooks();
176
177 do_action('ppress_loaded');
178
179 add_action('admin_init', [$this, 'older_to_v4_upgrader']);
180 add_action('plugins_loaded', [$this, 'db_updates']);
181 add_action('plugins_loaded', [$this, 'register_metadata_table']);
182 }
183
184 function register_metadata_table()
185 {
186 global $wpdb;
187
188 $wpdb->ppress_ordermeta = Base::order_meta_db_table();
189 }
190
191 public function admin_hooks()
192 {
193 if ( ! is_admin()) {
194 return;
195 }
196
197 do_action('ppress_admin_before_hooks');
198
199 CheckListHeader::get_instance();
200
201 Admin\SettingsPages\Membership\DashboardPage\SettingsPage::get_instance();
202 Admin\SettingsPages\Membership\DownloadLogsPage\SettingsPage::get_instance();
203 PlansSettingsPage::get_instance();
204 GroupsSettingsPageAlias::get_instance();
205 OrdersPageSettingsPage::get_instance();
206 SubscriptionsPageSettingsPage::get_instance();
207 CustomersPageSettingsPage::get_instance();
208 ContentProtectionSettingsPage::get_instance();
209
210 Forms::get_instance();
211 MemberDirectories::get_instance();
212
213 GeneralSettings::get_instance();
214 MailOptin::get_instance();
215 ExtensionsSettingsPage::get_instance();
216
217 CouponsSettingsPage::get_instance();
218 PaymentSettings::get_instance();
219 PaymentMethods::get_instance();
220 CheckoutFieldsManager::get_instance();
221 Admin\SettingsPages\Membership\TaxSettings\SettingsPage::get_instance();
222
223 ProfileCustomFields::get_instance();
224 EmailSettingsPage::get_instance();
225 ToolsSettingsPage::get_instance();
226
227 AdminNotices::get_instance();
228 UserSignupLocationListingPage::get_instance();
229 AdminFooter::get_instance();
230 IDUserColumn::get_instance();
231 GDPR::get_instance();
232 \PPressBFnote::instance();
233
234 do_action('ppress_admin_hooks');
235 }
236
237 public function db_updates()
238 {
239 if ( ! is_admin()) return;
240
241 DBUpdates::get_instance()->maybe_update();
242 }
243
244 public function older_to_v4_upgrader()
245 {
246 if (current_user_can('activate_plugins') && get_option('ppress_new_v4_install') != 'true') {
247 CreateDBTables::membership_db_make();
248 RegisterActivation\Base::membership_default_settings();
249 //RegisterActivation\Base::create_membership_pages();
250 RegisterActivation\Base::clear_wpengine_cache();
251 add_option('ppress_new_v4_install', 'true');
252 }
253 }
254
255 public function wpmu_drop_tables($tables)
256 {
257 $tables[] = Base::form_db_table();
258 $tables[] = Base::form_meta_db_table();
259 $tables[] = Base::meta_data_db_table();
260 $tables[] = Base::passwordless_login_db_table();
261 $tables[] = Base::profile_fields_db_table();
262 $tables[] = Base::subscription_plans_db_table();
263
264 $tables = apply_filters('ppress_drop_mu_database_tables', $tables);
265
266 return $tables;
267 }
268
269 /**
270 * Singleton.
271 *
272 * @return Base
273 */
274 public static function get_instance()
275 {
276 /** WP User Avatar Adapter STARTS */
277 require dirname(PROFILEPRESS_SYSTEM_FILE_PATH) . '/deprecated/wp-user-avatar/wp-user-avatar.php';
278 /** WP User Avatar Adapter ENDS */
279
280 static $instance = null;
281
282 if (is_null($instance)) {
283 $instance = new self();
284 }
285
286 return $instance;
287 }
288 }
289