PluginProbe
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor / 3.9.9
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor v3.9.9
4.0.3 4.0.2 4.0.1 4.0.0 3.16.6 3.16.5 3.16.4 3.16.3 3.16.2 3.16.1 3.16.0 3.15.9 3.9.9 3.9.5 3.9.6 3.9.7 3.9.8 1.1.7 1.1.8 1.1.9 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 All 341 releases
profile-builder / admin / add-ons.php

add-ons.php in User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor 3.9.9, at admin/add-ons.php

383 lines 26.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
4 if( ! class_exists( 'CL_Addons_List_Table' ) ) {
5 require_once( WPPB_PLUGIN_DIR . '/assets/lib/cl-add-ons-listing/cl-add-ons-listing.php' );
6 }
7
8 /**
9 * Function that creates the "Add-Ons" submenu page
10 *
11 * @since v.2.1.0
12 *
13 * @return void
14 */
15 function wppb_register_add_ons_submenu_page() {
16 add_submenu_page( 'profile-builder', __( 'Add-Ons', 'profile-builder' ), __( 'Add-Ons', 'profile-builder' ), 'manage_options', 'profile-builder-add-ons', 'wppb_add_ons_content' );
17 }
18 add_action( 'admin_menu', 'wppb_register_add_ons_submenu_page', 28 );
19
20
21 /**
22 * Function that adds content to the "Add-Ons" submenu page
23 *
24 * @since v.2.1.0
25 *
26 * @return string
27 */
28 function wppb_add_ons_content() {
29 //initialize the object
30 $pb_addons_listing = new CL_Addons_List_Table();
31 $pb_addons_listing->images_folder = WPPB_PLUGIN_URL.'assets/images/add-ons/';
32 $pb_addons_listing->text_domain = 'profile-builder';
33 $pb_addons_listing->header = array( 'title' => __('Profile Builder Add-ons', 'profile-builder' ) );
34 $pb_addons_listing->current_version = PROFILE_BUILDER;
35 $pb_addons_listing->tooltip_header = __( 'Profile Builder Add-ons', 'profile-builder' );
36 $pb_addons_listing->tooltip_content = sprintf( __( 'You must first purchase this version to have access to the addon %1$shere%2$s', 'profile-builder' ), '<a target="_blank" href="https://www.cozmoslabs.com/wordpress-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PB">', '</a>' );
37
38
39 //Add Pro Section
40 $pb_addons_listing->section_header = array( 'title' => __('Pro Add-ons', 'profile-builder' ), 'description' => __('These Add-ons are available with the Pro and Agency license', 'profile-builder') );
41 $pb_addons_listing->section_versions = array( 'Profile Builder Pro', 'Profile Builder Agency', 'Profile Builder Unlimited' );
42 $pb_addons_listing->items = array(
43 array( 'slug' => 'wppb_multipleRegistrationForms',
44 'type' => 'add-on',
45 'name' => __( 'Multiple Registration Forms', 'profile-builder' ),
46 'description' => __( 'Set up multiple registration forms with different fields for certain user roles. Helps capture different information from different types of users.', 'profile-builder' ),
47 'icon' => 'pb-add-on-multiple-registration-forms-logo.png',
48 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/modules/multiple-registration-forms/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
49 ),
50 array( 'slug' => 'wppb_multipleEditProfileForms',
51 'type' => 'add-on',
52 'name' => __( 'Multiple Edit Profile Forms', 'profile-builder' ),
53 'description' => __( 'Allow different user roles to edit their specific information. Set up multiple edit-profile forms with different fields for certain user roles.', 'profile-builder' ),
54 'icon' => 'pb-add-on-multiple-edit-profile-forms-icon.png',
55 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/modules/multiple-edit-profile-forms/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
56 ),
57 array( 'slug' => 'wppb_userListing',
58 'type' => 'add-on',
59 'name' => __( 'User Listing', 'profile-builder' ),
60 'description' => __( 'Easy to edit templates for listing your users as well as creating single user pages.', 'profile-builder' ),
61 'icon' => 'pb-add-on-userlisting-logo.png',
62 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/modules/user-listing/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
63 ),
64 array( 'slug' => 'wppb_customRedirect',
65 'type' => 'add-on',
66 'name' => __( 'Custom Redirects', 'profile-builder' ),
67 'description' => __( 'Redirect users after login, after they first register or when they try to access the default WordPress dashboard, login, lost password and registration forms.', 'profile-builder' ),
68 'icon' => 'pb-add-on-custom-redirects-logo.png',
69 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/modules/custom-redirects/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
70 ),
71 array( 'slug' => 'wppb_repeaterFields',
72 'type' => 'add-on',
73 'name' => __( 'Repeater Fields', 'profile-builder' ),
74 'description' => __( 'The Repeater Field Module makes it really easy to add repeater front-end fields or groups of fields to your user profile. Integration with both the Email Customizer and User Listing modules, makes creating advanced user profiles possible.', 'profile-builder' ),
75 'icon' => 'pb-add-on-repeater-fields-logo.png',
76 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/modules/repeater-fields/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
77 ),
78 array( 'slug' => 'buddypress',
79 'type' => 'add-on',
80 'name' => __( 'BuddyPress', 'profile-builder' ),
81 'description' => __( 'This integration add-on allows extending BuddyPress user profiles with Profile Builder user fields.', 'profile-builder' ),
82 'icon' => 'pb-add-on-buddypress-logo.png',
83 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/buddypress/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
84 'download_url' => 'https://www.cozmoslabs.com/add-ons/buddypress/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
85 ),
86 );
87 $pb_addons_listing->add_section();
88
89 //Add Hobbyist section
90 $pb_addons_listing->section_header = array( 'title' => __('Basic Add-ons', 'profile-builder' ), 'description' => __('These Add-ons are available with the Basic, Pro and Agency license', 'profile-builder') );
91 $pb_addons_listing->section_versions = array( 'Profile Builder Pro', 'Profile Builder Hobbyist', 'Profile Builder Basic', 'Profile Builder Agency', 'Profile Builder Unlimited' );
92 $pb_addons_listing->items = array(
93 array( 'slug' => 'social-connect',
94 'type' => 'add-on',
95 'name' => __( 'Social Connect', 'profile-builder' ),
96 'description' => __( 'Easily configure and enable social login on your website. Users can login with social platforms like Facebook, Google+ or Twitter.', 'profile-builder' ),
97 'icon' => 'pb-add-on-social-connect-logo.png',
98 'doc_url' => 'http://www.cozmoslabs.com/docs/profile-builder/add-ons/social-connect/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
99 'download_url' => 'https://www.cozmoslabs.com/add-ons/social-connect/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro'
100 ),
101 array( 'slug' => 'woocommerce',
102 'type' => 'add-on',
103 'name' => __( 'WooCommerce Sync', 'profile-builder' ),
104 'description' => __( 'Syncs Profile Builder with WooCommerce, allowing you to manage the user Shipping and Billing fields from WooCommerce with Profile Builder.', 'profile-builder' ),
105 'icon' => 'pb-add-on-woocommerce-logo.png',
106 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/woocommerce-sync/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
107 'download_url' => 'https://www.cozmoslabs.com/add-ons/woocommerce-sync/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
108 ),
109 array( 'slug' => 'multi-step-forms',
110 'type' => 'add-on',
111 'name' => __( 'Multi Step Forms', 'profile-builder' ),
112 'description' => __( 'Extends the functionality of Profile Builder by adding the possibility of having multi-page registration and edit-profile forms.', 'profile-builder' ),
113 'icon' => 'pb-add-on-multi-step-forms-logo.png',
114 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/multi-step-forms/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
115 'download_url' => 'https://www.cozmoslabs.com/add-ons/multi-step-forms/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
116 ),
117 array( 'slug' => 'mailchimp-integration',
118 'type' => 'add-on',
119 'name' => __( 'MailChimp', 'profile-builder' ),
120 'description' => __( 'Easily associate MailChimp list fields with Profile Builder fields and set advanced settings for each list.', 'profile-builder' ),
121 'icon' => 'pb-add-on-mailchimp-logo.png',
122 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/mailchimp/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
123 'download_url' => 'https://www.cozmoslabs.com/add-ons/profile-builder-mailchimp/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
124 ),
125 array( 'slug' => 'bbpress',
126 'type' => 'add-on',
127 'name' => __( 'bbPress', 'profile-builder' ),
128 'description' => __( 'This add-on allows you to integrate Profile Builder with the popular forums plugin, bbPress.', 'profile-builder' ),
129 'icon' => 'pb-add-on-bbpress-logo.jpg',
130 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/bbpress/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
131 'download_url' => 'https://www.cozmoslabs.com/add-ons/bbpress/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
132 ),
133 array( 'slug' => 'campaign-monitor',
134 'type' => 'add-on',
135 'name' => __( 'Campaign Monitor', 'profile-builder' ),
136 'description' => __( 'Easily associate Campaign Monitor client list fields with Profile Builder fields. Use Profile Builder Campaign Monitor Widget to add more subscribers to your lists.', 'profile-builder' ),
137 'icon' => 'pb-add-on-campaign-monitor-logo.png',
138 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/campaign-monitor/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
139 'download_url' => 'https://www.cozmoslabs.com/add-ons/profile-builder-campaign-monitor/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
140 ),
141 array( 'slug' => 'field-visibility',
142 'type' => 'add-on',
143 'name' => __( 'Field Visibility', 'profile-builder' ),
144 'description' => __( 'Extends the functionality of Profile Builder by allowing you to change visibility options for the extra fields.', 'profile-builder' ),
145 'icon' => 'pb-add-on-field-visibility-logo.png',
146 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/field-visibility/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
147 'download_url' => 'https://www.cozmoslabs.com/add-ons/field-visibility/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
148 ),
149 array( 'slug' => 'edit-profile-approved-by-admin',
150 'type' => 'add-on',
151 'name' => __( 'Edit Profile Approved by Admin', 'profile-builder' ),
152 'description' => __( 'Extends the functionality of Profile Builder by allowing administrators to approve profile changes made by users on individual fields.', 'profile-builder' ),
153 'icon' => 'pb-add-on-edit-profile-updates-approved-by-admins-logo.png',
154 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/edit-profile-approved-by-admin/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
155 'download_url' => 'https://www.cozmoslabs.com/add-ons/edit-profile-approved-by-admin/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
156 ),
157 array( 'slug' => 'custom-profile-menus',
158 'type' => 'add-on',
159 'name' => __( 'Custom Profile Menus', 'profile-builder' ),
160 'description' => __( 'Add custom menu items like Login/Logout or just Logout button and Login/Register/Edit Profile in iFrame Popup.', 'profile-builder' ),
161 'icon' => 'pb-add-on-custom-profile-menus-logo.png',
162 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/custom-profile-menus/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
163 'download_url' => 'https://www.cozmoslabs.com/add-ons/custom-profile-menus/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
164 ),
165 array( 'slug' => 'mailpoet-integration',
166 'type' => 'add-on',
167 'name' => __( 'MailPoet', 'profile-builder' ),
168 'description' => __( 'Allow users to subscribe to your MailPoet lists directly from the Register and Edit Profile forms.', 'profile-builder' ),
169 'icon' => 'pb-add-on-mailpoet-logo.png',
170 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/mailpoet/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
171 'download_url' => 'https://www.cozmoslabs.com/add-ons/mailpoet/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
172 ),
173 );
174 $pb_addons_listing->add_section();
175
176 //Add Free section
177 $pb_addons_listing->section_header = array( 'title' => __('Free Add-ons', 'profile-builder' ), 'description' => __('These Add-ons are available in all versions of Profile Builder', 'profile-builder') );
178 $pb_addons_listing->section_versions = array( 'Profile Builder Pro', 'Profile Builder Hobbyist', 'Profile Builder Free', 'Profile Builder Basic', 'Profile Builder Agency', 'Profile Builder Unlimited' );
179 $pb_addons_listing->items = array(
180 array( 'slug' => 'import-export',
181 'type' => 'add-on',
182 'name' => __( 'Import and Export', 'profile-builder' ),
183 'description' => __( 'With the help of this add-on you will be able to export all Profile Builder Settings data to a .json. You can then use this file as a back-up or you can import this data on another instance of Profile Builder.', 'profile-builder' ),
184 'icon' => 'pb-add-on-import-export-logo.png',
185 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/import-export-pb-settings/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
186 'download_url' => 'https://www.cozmoslabs.com/add-ons/import-export/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro'
187 ),
188 array( 'slug' => 'custom-css-classes-on-fields',
189 'type' => 'add-on',
190 'name' => __( 'Custom CSS Classes on Fields', 'profile-builder' ),
191 'description' => __( 'This add-on extends the functionality of Profile Builder by allowing you to add custom css classes for fields.', 'profile-builder' ),
192 'icon' => 'pb-add-on-classes-on-fields-logo.png',
193 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/custom-css-classes-on-fields-for-profile-builder/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
194 'download_url' => 'https://www.cozmoslabs.com/add-ons/custom-css-classes-fields/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro'
195 ),
196 array( 'slug' => 'maximum-character-length',
197 'type' => 'add-on',
198 'name' => __( 'Maximum Character Length', 'profile-builder' ),
199 'description' => __( 'Using this addon you can limit the maximum number of characters a user can type in a field added and managed with Profile Builder.', 'profile-builder' ),
200 'icon' => 'pb-add-on-maximum-character-length-logo.png',
201 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/maximum-character-length/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
202 'download_url' => 'https://www.cozmoslabs.com/add-ons/maximum-character-length/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro'
203 ),
204 array( 'slug' => 'labels-edit',
205 'type' => 'add-on',
206 'name' => __( 'Labels Edit', 'profile-builder' ),
207 'description' => __( 'This add-on extends the functionality of our plugin and let us easily edit all Profile Builder labels.', 'profile-builder' ),
208 'icon' => 'pb-add-on-labels-edit-logo.png',
209 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder/add-ons/labels-edit/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
210 'download_url' => 'https://www.cozmoslabs.com/add-ons/labels-edit/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro'
211 ),
212 array( 'slug' => 'gdpr-communication-preferences',
213 'type' => 'add-on',
214 'name' => __( 'GDPR Communication Preferences', 'profile-builder' ),
215 'description' => __( 'This add-on plugin adds a GDPR Communication preferences field to Profile Builder.', 'profile-builder' ),
216 'icon' => 'pb-add-on-gdpr-communication-preferences-logo.png',
217 'doc_url' => 'https://www.cozmoslabs.com/add-ons/gdpr-communication-preferences/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
218 'download_url' => 'https://www.cozmoslabs.com/add-ons/gdpr-communication-preferences/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro'
219 ),
220 );
221 $pb_addons_listing->add_section();
222
223
224
225 //Add Recommended Plugins
226 $pb_addons_listing->section_header = array( 'title' => __('Recommended Plugins', 'profile-builder' ), 'description' => __('These plugins are compatible with all versions of Profile Builder', 'profile-builder') );
227 $pb_addons_listing->section_versions = array( 'Profile Builder Pro', 'Profile Builder Hobbyist', 'Profile Builder Free', 'Profile Builder Basic', 'Profile Builder Agency', 'Profile Builder Unlimited' );
228 $pb_addons_listing->items = array(
229 array( 'slug' => 'translatepress-multilingual/index.php',
230 'type' => 'plugin',
231 'name' => __( 'TranslatePress', 'profile-builder' ),
232 'description' => __( 'Translate your Profile Builder forms with a WordPress translation plugin that anyone can use. It offers a simpler way to translate WordPress sites, with full support for WooCommerce and site builders.', 'profile-builder' ),
233 'icon' => 'pb-add-on-translatepress-logo.png',
234 'doc_url' => 'https://translatepress.com/docs/translatepress/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
235 'download_url' => 'https://wordpress.org/plugins/translatepress-multilingual/'
236 ),
237 array( 'slug' => 'paid-member-subscriptions/index.php',
238 'type' => 'plugin',
239 'name' => __( 'Paid Member Subscriptions', 'profile-builder' ),
240 'description' => __( 'Accept user payments, create subscription plans and restrict content on your membership site.', 'profile-builder' ),
241 'icon' => 'pb-add-on-pms-logo.png',
242 'doc_url' => 'https://www.cozmoslabs.com/docs/paid-member-subscriptions/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
243 'download_url' => 'https://wordpress.org/plugins/paid-member-subscriptions/'
244 ),
245 array( 'slug' => 'client-portal/index.php',
246 'type' => 'plugin',
247 'name' => __( 'Client Portal', 'profile-builder' ),
248 'description' => __( 'Create private pages for your website users that only an administrator can edit.', 'profile-builder' ),
249 'icon' => 'pb-add-on-client-portal-logo.png',
250 'doc_url' => 'https://www.cozmoslabs.com/55726-how-to-wordpress-client-portal-plugin/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
251 'download_url' => 'https://www.cozmoslabs.com/add-ons/client-portal/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro'
252 ),
253 array( 'slug' => 'custom-login-page-templates/custom-login-templates.php',
254 'type' => 'plugin',
255 'name' => __( 'Custom Login Page Templates', 'profile-builder' ),
256 'description' => __( 'Customizes the default WordPress Login Page with different templates, logo and background uploads and also adds support for custom CSS.', 'profile-builder' ),
257 'icon' => 'pb-add-on-custom-login-page-templates-logo.png',
258 'doc_url' => 'https://www.cozmoslabs.com/add-ons/custom-login-page-templates/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
259 'download_url' => 'https://www.cozmoslabs.com/add-ons/custom-login-page-templates/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro'
260 ),
261 array( 'slug' => 'passwordless-login/passwordless_login.php',
262 'type' => 'plugin',
263 'name' => __( 'Passwordless Login', 'profile-builder' ),
264 'description' => __( 'WordPress Passwordless Login is a plugin that allows your users to login without a password.', 'profile-builder' ),
265 'icon' => 'pb-add-on-passwordless-login-logo.png',
266 'doc_url' => 'https://www.cozmoslabs.com/docs/profile-builder-2/add-ons/passwordless-login/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro',
267 'download_url' => 'https://www.cozmoslabs.com/add-ons/passwordless-login/?utm_source=wpbackend&utm_medium=clientsite&utm_content=add-on-page&utm_campaign=PBPro'
268 ),
269 );
270 $pb_addons_listing->add_section();
271
272
273 //Display the whole listing
274 $pb_addons_listing->display_addons();
275 }
276
277
278 /**
279 * Add this for generating default options on first install
280 */
281 add_action( 'admin_init', 'wppb_generate_modules_default_values' );
282 function wppb_generate_modules_default_values(){
283 $wppb_module_settings = get_option( 'wppb_module_settings', 'not_found' );
284 if ( $wppb_module_settings == 'not_found' ){
285 $wppb_module_settings = array( 'wppb_userListing' => 'hide',
286 'wppb_customRedirect' => 'hide',
287 'wppb_emailCustomizer' => 'hide',
288 'wppb_multipleEditProfileForms' => 'hide',
289 'wppb_multipleRegistrationForms' => 'hide',
290 'wppb_repeaterFields' => 'hide'
291 );
292 update_option( 'wppb_module_settings', $wppb_module_settings );
293 }
294 }
295
296
297 /**
298 * For add-ons (not plugins) the implementation is speciffic to each plugin ( PB/PMS/TP ) and is done through filters in the plugin itself
299 */
300
301 /**
302 * Function that determines if a PB add-on is active
303 */
304 add_filter( 'cl_add_on_is_active', 'wppb_check_add_ons_activation', 10, 2 );
305 function wppb_check_add_ons_activation( $bool, $slug ){
306 return wppb_check_if_add_on_is_active($slug);
307 }
308
309 /**
310 * Function that activates a PB add-on
311 */
312 add_action( 'cl_add_ons_activate', 'wppb_activate_add_ons' );
313 function wppb_activate_add_ons( $slug ){
314 wppb_activate_or_deactivate_add_on( $slug, 'show' );
315
316 do_action( 'wppb_add_ons_activate', $slug );
317 }
318
319 /**
320 * Function that deactivates a PB add-on
321 */
322 add_action( 'cl_add_ons_deactivate', 'wppb_deactivate_add_ons' );
323 function wppb_deactivate_add_ons( $slug ){
324 wppb_activate_or_deactivate_add_on( $slug, 'hide' );
325
326 do_action( 'wppb_add_ons_deactivate', $slug );
327 }
328
329
330 /**
331 * Function used to activate or deactivate a PB add-on
332 */
333 function wppb_activate_or_deactivate_add_on( $slug, $action ){
334 //the old modules part
335 $wppb_module_settings = get_option( 'wppb_module_settings', 'not_found' );
336 if ( $wppb_module_settings != 'not_found' ){
337 foreach( $wppb_module_settings as $add_on_slug => $status ){
338 if( $slug == $add_on_slug ){
339 $wppb_module_settings[$add_on_slug] = $action;
340 }
341 }
342 }
343 update_option( 'wppb_module_settings', $wppb_module_settings );
344
345 //the free addons part
346 $wppb_free_add_ons_settings = get_option( 'wppb_free_add_ons_settings', array() );
347 if ( !empty( $wppb_free_add_ons_settings ) ){
348 foreach( $wppb_free_add_ons_settings as $add_on_slug => $status ){
349 if( $slug == $add_on_slug ){
350 if( $action == 'show' )
351 $wppb_free_add_ons_settings[$add_on_slug] = true;
352 elseif( $action == 'hide' )
353 $wppb_free_add_ons_settings[$add_on_slug] = false;
354 }
355 }
356 }
357 update_option( 'wppb_free_add_ons_settings', $wppb_free_add_ons_settings );
358
359 //the advanced addons part
360 $wppb_advanced_add_ons_settings = get_option( 'wppb_advanced_add_ons_settings', array() );
361 if ( !empty( $wppb_advanced_add_ons_settings ) ){
362 foreach( $wppb_advanced_add_ons_settings as $add_on_slug => $status ){
363 if( $slug == $add_on_slug ){
364 if( $action == 'show' )
365 $wppb_advanced_add_ons_settings[$add_on_slug] = true;
366 elseif( $action == 'hide' )
367 $wppb_advanced_add_ons_settings[$add_on_slug] = false;
368 }
369 }
370 }
371 update_option( 'wppb_advanced_add_ons_settings', $wppb_advanced_add_ons_settings );
372 }
373
374 /**
375 * Add a notice on the add-ons page if the save was successful
376 */
377 if ( isset($_GET['cl_add_ons_listing_success']) ){
378 if( class_exists('WPPB_Add_General_Notices') ) {
379 new WPPB_Add_General_Notices('cl_add_ons_listing_success',
380 sprintf(__('%1$sAdd-ons settings saved successfully%2$s', 'profile-builder'), "<p>", "</p>"),
381 'updated notice is-dismissible');
382 }
383 }