PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / trunk
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress vtrunk
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 / Classes / ExtensionManager.php
wp-user-avatar / src / Classes Last commit date
Installer 3 years ago AdminNotices.php 2 months ago AjaxHandler.php 1 year ago Autologin.php 9 months ago BlockRegistrations.php 10 months ago BuddyPressBbPress.php 3 years ago DisableConcurrentLogins.php 2 years ago EditUserProfile.php 5 months ago ExtensionManager.php 1 month ago FileUploader.php 3 months ago FormPreviewHandler.php 5 months ago FormRepository.php 1 year ago FormShortcodeDefaults.php 1 month ago GDPR.php 3 years ago Geolocation.php 3 years ago GlobalSiteAccess.php 3 years ago ImageUploader.php 1 year ago LoginAuth.php 1 year ago Miscellaneous.php 3 years ago ModifyRedirectDefaultLinks.php 1 hour ago PPRESS_Session.php 1 year ago PROFILEPRESS_sql.php 1 year ago PasswordReset.php 1 year ago ProfileUrlRewrite.php 4 years ago RegistrationAuth.php 1 week ago SendEmail.php 3 years ago ShortcodeThemeFactory.php 5 years ago UserAvatar.php 1 year ago UserSignupLocationListingPage.php 3 years ago UsernameEmailRestrictLogin.php 4 years ago WPProfileFieldParserTrait.php 1 year ago WelcomeEmailAfterSignup.php 1 year ago default-email-template.php 1 year ago index.php 3 years ago
ExtensionManager.php
393 lines
1 <?php
2
3 namespace ProfilePress\Core\Classes;
4
5 use ProfilePress\Core\Membership\PaymentMethods\AbstractPaymentMethod;
6
7 class ExtensionManager
8 {
9 const DB_OPTION_NAME = 'ppress_extension_manager';
10
11 const EMAIL_CONFIRMATION = 'email_confirmation';
12 const PAYPAL = 'paypal';
13 const MOLLIE = 'mollie';
14 const RAZORPAY = 'razorpay';
15 const PAYSTACK = 'paystack';
16 const PADDLE = 'paddle';
17 const RECEIPT = 'receipt';
18 const BUDDYPRESS = 'buddypress';
19 const MULTISITE = 'multisite';
20 const WOOCOMMERCE = 'woocommerce';
21 const AKISMET = 'akismet';
22 const CAMPAIGN_MONITOR = 'campaign_monitor';
23 const MAILCHIMP = 'mailchimp';
24 const POLYLANG = 'polylang';
25 const PASSWORDLESS_LOGIN = 'passwordless_login';
26 const USER_MODERATION = 'user_moderation';
27 const RECAPTCHA = 'recaptcha';
28 const TURNSTILE = 'turnstile';
29 const SOCIAL_LOGIN = 'social_login';
30 const CUSTOM_FIELDS = 'custom_fields';
31 const TWOFA = 'TWOFA';
32 const METERED_PAYWALL = 'metered_paywall';
33 const LEARNDASH = 'learndash';
34 const TUTORLMS = 'tutorlms';
35 const ACADEMYLMS = 'academylms';
36 const MASTERSTUDY_LMS = 'masterstudy_lms';
37 const FLUENTCOMMUNITY = 'fluentcommunity';
38 const SENSEI_LMS = 'sensei_lms';
39 const LIFTERLMS = 'lifterlms';
40 const INVITATION_CODES = 'invitation_codes';
41 const MAILERLITE = 'mailerlite';
42 const BREVO = 'brevo';
43 const FIXED_SUBSCRIPTION_EXPIRATION = 'fixed_subscription_expiration';
44 const SLICEWP = 'slicewp';
45 const AFFILIATEWP = 'affiliatewp';
46 const AUTORENEWAL_CHECKBOX = 'autorenewal_checkbox';
47
48 public static function is_premium()
49 {
50 return class_exists('\ProfilePress\Libsodium\Libsodium') &&
51 defined('PROFILEPRESS_PRO_DETACH_LIBSODIUM');
52 }
53
54 public static function class_map()
55 {
56 return [
57 self::EMAIL_CONFIRMATION => 'ProfilePress\Libsodium\EmailConfirmation',
58 self::PAYPAL => 'ProfilePress\Libsodium\PayPal\Init',
59 self::MOLLIE => 'ProfilePress\Libsodium\Mollie\Init',
60 self::RAZORPAY => 'ProfilePress\Libsodium\Razorpay\Init',
61 self::PAYSTACK => 'ProfilePress\Libsodium\Paystack\Init',
62 self::PADDLE => 'ProfilePress\Libsodium\Paddle\Init',
63 self::RECEIPT => 'ProfilePress\Libsodium\Receipt\Init',
64 self::BUDDYPRESS => 'ProfilePress\Libsodium\BuddyPress\Init',
65 self::MULTISITE => 'ProfilePress\Libsodium\MultisiteIntegration\Init',
66 self::WOOCOMMERCE => 'ProfilePress\Libsodium\MultisiteIntegration\Init',
67 self::AKISMET => 'ProfilePress\Libsodium\AkismetIntegration',
68 self::CAMPAIGN_MONITOR => 'ProfilePress\Libsodium\CampaignMonitorIntegration\Init',
69 self::MAILCHIMP => 'ProfilePress\Libsodium\MailchimpIntegration\Init',
70 self::MAILERLITE => 'ProfilePress\Libsodium\MailerLiteIntegration\Init',
71 self::BREVO => 'ProfilePress\Libsodium\BrevoIntegration\Init',
72 self::POLYLANG => 'ProfilePress\Libsodium\PolylangIntegration',
73 self::PASSWORDLESS_LOGIN => 'ProfilePress\Libsodium\PasswordlessLogin',
74 self::USER_MODERATION => 'ProfilePress\Libsodium\UserModeration\UserModeration',
75 self::RECAPTCHA => 'ProfilePress\Libsodium\Recaptcha\Init',
76 self::TURNSTILE => 'ProfilePress\Libsodium\Turnstile\Init',
77 self::SOCIAL_LOGIN => 'ProfilePress\Libsodium\SocialLogin\Init',
78 self::CUSTOM_FIELDS => 'ProfilePress\Libsodium\CustomProfileFields\Init',
79 self::TWOFA => 'ProfilePress\Libsodium\TWOFA\Init',
80 self::METERED_PAYWALL => 'ProfilePress\Libsodium\MeteredPaywall\Init',
81 self::LEARNDASH => 'ProfilePress\Libsodium\Learndash\Init',
82 self::TUTORLMS => 'ProfilePress\Core\Integrations\TutorLMS\Init',
83 self::ACADEMYLMS => 'ProfilePress\Core\Integrations\AcademyLMS\Init',
84 self::SENSEI_LMS => 'ProfilePress\Libsodium\SenseiLMS\Init',
85 self::MASTERSTUDY_LMS => 'ProfilePress\Libsodium\MasterStudyLMS\Init',
86 self::FLUENTCOMMUNITY => 'ProfilePress\Libsodium\FluentCommunity\Init',
87 self::LIFTERLMS => 'ProfilePress\Libsodium\LifterLMS',
88 self::INVITATION_CODES => 'ProfilePress\Libsodium\InvitationCodes\Init',
89 self::FIXED_SUBSCRIPTION_EXPIRATION => 'ProfilePress\Libsodium\FixedSubscriptionExpiration',
90 self::SLICEWP => 'ProfilePress\Libsodium\SliceWP\Init',
91 self::AFFILIATEWP => 'ProfilePress\Libsodium\AffiliateWP\Init',
92 self::AUTORENEWAL_CHECKBOX => 'ProfilePress\Libsodium\AutoRenewalCheckbox\Init',
93 ];
94 }
95
96 public static function available_extensions()
97 {
98 return apply_filters('ppress_available_extensions', [
99 self::PAYPAL => [
100 'title' => 'PayPal',
101 'url' => 'https://profilepress.com/addons/paypal/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
102 'setting_url' => AbstractPaymentMethod::get_payment_method_admin_page_url(self::PAYPAL),
103 'description' => esc_html__('Accept payments and sell subscriptions via PayPal.', 'wp-user-avatar'),
104 'icon' => '<svg viewBox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="m186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zm-105.8-48.5h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0h-4.5c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zm211.5-129.7v352c0 26.5-21.5 48-48 48h-480c-26.5 0-48-21.5-48-48v-352c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-447.7 135.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7l-16.4 102.1c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4h17.2c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9 63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4h17.3c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7l16.2-101.2zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z"/></svg>',
105 ],
106 self::MOLLIE => [
107 'title' => 'Mollie',
108 'url' => 'https://profilepress.com/addons/mollie/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
109 'setting_url' => AbstractPaymentMethod::get_payment_method_admin_page_url(self::MOLLIE),
110 'description' => esc_html__('Accept payments and sell subscriptions via Mollie.', 'wp-user-avatar'),
111 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22"><g fill="none" class="nc-icon-wrapper"><path d="M22 11a11.05 11.05 0 0 1-.42 3.024C20.265 18.629 16.025 22 11 22 4.925 22 0 17.075 0 11S4.925 0 11 0c4.819 0 8.914 3.099 10.401 7.412C21.79 8.537 22 9.744 22 11z" fill="#000"/><path d="M17.787 6.609A5.129 5.129 0 0 1 19 9.937V16h-2.547V9.861c-.006-1.206-.953-2.191-2.105-2.191a2.5 2.5 0 0 0-.21.011c-1.03.11-1.895 1.137-1.895 2.244V16H9.696V9.879c-.005-1.213-.947-2.204-2.1-2.204-.066 0-.138.006-.21.012-1.025.111-1.894 1.136-1.894 2.25V16H3V9.861C3 7.18 5.077 5 7.624 5c1.274 0 2.487.56 3.362 1.533a4.521 4.521 0 0 1 3.788-1.516c1.163.105 2.232.67 3.013 1.592z" fill="#fff"/></g></svg>'
112 ],
113 self::RAZORPAY => [
114 'title' => 'Razorpay',
115 'url' => 'https://profilepress.com/addons/razorpay/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
116 'setting_url' => AbstractPaymentMethod::get_payment_method_admin_page_url(self::RAZORPAY),
117 'description' => esc_html__('Accept payments and sell subscriptions via Razorpay.', 'wp-user-avatar'),
118 'icon' => '<svg viewBox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="m64 32c-35.3 0-64 28.7-64 64v32h576v-32c0-35.3-28.7-64-64-64zm512 192h-576v192c0 35.3 28.7 64 64 64h448c35.3 0 64-28.7 64-64zm-464 128h64c8.8 0 16 7.2 16 16s-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h128c8.8 0 16 7.2 16 16s-7.2 16-16 16h-128c-8.8 0-16-7.2-16-16z"/></svg>'
119 ],
120 self::PAYSTACK => [
121 'title' => 'Paystack',
122 'url' => 'https://profilepress.com/addons/paystack/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
123 'setting_url' => AbstractPaymentMethod::get_payment_method_admin_page_url(self::PAYSTACK),
124 'description' => esc_html__('Accept payments and sell subscriptions via Paystack.', 'wp-user-avatar'),
125 'icon' => '<svg viewBox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="m64 32c-35.3 0-64 28.7-64 64v32h576v-32c0-35.3-28.7-64-64-64zm512 192h-576v192c0 35.3 28.7 64 64 64h448c35.3 0 64-28.7 64-64zm-464 128h64c8.8 0 16 7.2 16 16s-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16s7.2-16 16-16zm112 16c0-8.8 7.2-16 16-16h128c8.8 0 16 7.2 16 16s-7.2 16-16 16h-128c-8.8 0-16-7.2-16-16s7.2-16 16-16z"/></svg>'
126 ],
127 self::PADDLE => [
128 'title' => 'Paddle',
129 'url' => 'https://profilepress.com/addons/paddle/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
130 'setting_url' => AbstractPaymentMethod::get_payment_method_admin_page_url(self::PADDLE),
131 'description' => esc_html__('Accept payments and sell subscriptions via Paddle (Merchant of Record).', 'wp-user-avatar'),
132 'icon' => '<svg viewBox="0 0 24.6 30.6" xmlns="http://www.w3.org/2000/svg"><path fill="#0E1414" d="M0,11.2v-1.1c1.3,0,2.6-0.5,3.6-1.5C4.5,7.7,5,6.4,5,5.1h1c0,1.3,0.5,2.6,1.5,3.5c0.9,0.9,2.2,1.5,3.6,1.5v1.1c-1.3,0-2.6,0.5-3.6,1.5C6.6,13.6,6,14.8,6,16.2H5c0-1.3-0.5-2.6-1.5-3.5C2.6,11.7,1.3,11.2,0,11.2z M5,3.2h8.7c4.2,0,7.3,3,7.3,7.4c0,4.4-3,7.4-7.3,7.4H5v12.6h3.6v-9.4h5c6.1,0,10.9-4.8,10.9-10.6C24.6,4.8,19.8,0,13.7,0H5V3.2z"/></svg>'
133 ],
134 self::FIXED_SUBSCRIPTION_EXPIRATION => [
135 'title' => esc_html__('Fixed Subscription Expiration', 'wp-user-avatar'),
136 'url' => 'https://profilepress.com/addons/fixed-subscription-expiration/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
137 'description' => esc_html__('Set specific expiration dates for non-recurring membership plans.', 'wp-user-avatar'),
138 'icon' => '<span class="dashicons dashicons-clock"></span>'
139 ],
140 self::RECEIPT => [
141 'title' => esc_html__('Receipt', 'wp-user-avatar'),
142 'url' => 'https://profilepress.com/addons/receipt/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
143 'setting_url' => add_query_arg(['view' => 'payments', 'section' => 'settings'], PPRESS_SETTINGS_SETTING_PAGE) . '#receipt_disable_free_order_row',
144 'description' => esc_html__('Allow customers to view, print and download as PDF, the receipt of their orders.', 'wp-user-avatar'),
145 'icon' => '<svg viewBox="0 0 384 512" xmlns="http://www.w3.org/2000/svg"><path d="m14 2.2c8.5-3.9 18.5-2.5 25.6 3.6l40.4 34.6 40.4-34.6c9-7.7 22.3-7.7 31.2 0l40.4 34.6 40.4-34.6c9-7.7 22.2-7.7 31.2 0l40.4 34.6 40.4-34.6c7.1-6.1 17.1-7.5 25.6-3.6s14 12.4 14 21.8v464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6l-40.4-34.6-40.4 34.6c-9 7.7-22.2 7.7-31.2 0l-40.4-34.6-40.4 34.6c-9 7.7-22.3 7.7-31.2 0l-40.4-34.6-40.4 34.6c-7.1 6.1-17.1 7.5-25.6 3.6s-14-12.4-14-21.8v-464c0-9.4 5.5-17.9 14-21.8zm82 141.8c-8.8 0-16 7.2-16 16s7.2 16 16 16h192c8.8 0 16-7.2 16-16s-7.2-16-16-16zm-16 208c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16s-7.2-16-16-16h-192c-8.8 0-16 7.2-16 16zm16-112c-8.8 0-16 7.2-16 16s7.2 16 16 16h192c8.8 0 16-7.2 16-16s-7.2-16-16-16z"/></svg>'
146 ],
147 self::CUSTOM_FIELDS => [
148 'title' => esc_html__('Custom Fields', 'wp-user-avatar'),
149 'url' => 'https://profilepress.com/addons/custom-fields/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
150 'setting_url' => PPRESS_CUSTOM_FIELDS_SETTINGS_PAGE,
151 'description' => esc_html__('Collect unlimited additional information from users besides the standard profile data.', 'wp-user-avatar'),
152 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"></path></svg>'
153 ],
154 self::EMAIL_CONFIRMATION => [
155 'title' => esc_html__('Email Confirmation', 'wp-user-avatar'),
156 'url' => 'https://profilepress.com/addons/email-confirmation/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
157 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_ec_settings',
158 'description' => esc_html__('Ensure newly registered users confirm their email addresses before they can log in.', 'wp-user-avatar'),
159 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"></path></svg>'
160 ],
161 self::TWOFA => [
162 'title' => esc_html__('Two-Factor Authentication (2FA)', 'wp-user-avatar'),
163 'url' => 'https://profilepress.com/addons/2fa/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
164 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_2fa_settings',
165 'description' => esc_html__('Adds an additional layer of security to users accounts by requiring more than just a password to log in.', 'wp-user-avatar'),
166 'icon' => '<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABmJLR0QA/wD/AP+gvaeTAAACPElEQVRoge3Zz4tNYRzH8dcMIk0pViI1TZqIQn6NmR0rLPz6A6wsrGZsxJZkRU2zslLKRjOsbGQhaiwQSZkUsiPSRH6UsHjO7R63e++ce+4591y3865v5+n58X2eT8/v81BSUlLyP9GXstxynMJuLM2oLT/xEJfwLSOfTVkcVfgnJ5uN6sidIzmKqNihVhuVRvnGWHgWV1P4qMdxjEThTbjVSuE0QuJl5nAlhY96jKgKabld/Rk1onDynlR7sT1h3s2x8ChON8k7g1fxiLyFHMR4inL7ImvEnBoh5dBKwXNhlUvLUaxqlNhJIXcx0Ub5nZoI6ZmhVYSQPmzFiljcALZhUSxuLdYndVqEkCk8wQtBzDI8xWPVU8IevMZLHEvitAgho9F3DQaxGkNR3Fj03YUlQvvGJKCTk73CWVzAPTwTDokXsR/nojzXhH1kAJNJnBYh5HZkcc5EVuEjDrTitFy1uo1OChlXvTjdFJbhE/gq2WVrSzPnRcwRwop1X3UFa5uihOzI2mHeQ+u8sEcMReF6XMcGTMfiJmPl6tmdWid598inyMS+Fd7jpHBJgi+xtM/Czp6YolatG8IPhpmFMial03Pkg9AL0wtlbJVOCnkg/EqqHWKZ0Ekhj/J03jM7e1490u/fi1OcefzOusK8hKzDmwZpg3ibdYU9M7R6RkheQ+sdVjZIm8+jwjRCfsXCw8JRPAuGG9SRG4d14UNPGrry6a2dx9AJ4WEmq8fQH4KIy/iekc+SkpKSLuUvcZyz9d129/cAAAAASUVORK5CYII="/>'
167 ],
168 self::USER_MODERATION => [
169 'title' => esc_html__('User Moderation', 'wp-user-avatar'),
170 'url' => 'https://profilepress.com/addons/user-moderation/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
171 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#user_moderation',
172 'description' => esc_html__('Decide whether to approve newly registered users or not. You can also block and unblock users at any time.', 'wp-user-avatar'),
173 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"></path></svg>'
174 ],
175 self::SOCIAL_LOGIN => [
176 'title' => esc_html__('Social Login', 'wp-user-avatar'),
177 'url' => 'https://profilepress.com/addons/social-login/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
178 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#social_login_settings',
179 'description' => esc_html__('Let users easily register/login to your site using their social network accounts (Facebook, Twitter, Google, LinkedIn, Yahoo, Microsoft, Amazon, GitHub, WordPress.com, VK).', 'wp-user-avatar'),
180 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"></path></svg>'
181 ],
182 self::PASSWORDLESS_LOGIN => [
183 'title' => esc_html__('Passwordless Login', 'wp-user-avatar'),
184 'url' => 'https://profilepress.com/addons/passwordless-login/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
185 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#login_settings?passwordless_disable_admin_row',
186 'description' => esc_html__('Let users log in to your website via a one-time URL sent to their email addresses.', 'wp-user-avatar'),
187 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"></path></svg>'
188 ],
189 self::RECAPTCHA => [
190 'title' => esc_html__('Google reCAPTCHA', 'wp-user-avatar'),
191 'url' => 'https://profilepress.com/addons/recaptcha/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
192 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#recaptcha',
193 'description' => esc_html__('Protect your forms against spam and bot attacks.', 'wp-user-avatar'),
194 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z"></path></svg>'
195 ],
196 self::TURNSTILE => [
197 'title' => 'Cloudflare Turnstile',
198 'url' => 'https://profilepress.com/addons/cloudflare-turnstile/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
199 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#turnstile',
200 'description' => esc_html__('Protect forms from bot submissions and automated attacks by verifying that form submissions come from real human users rather than malicious scripts or bots.', 'wp-user-avatar'),
201 'icon' => '<svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m466.5 83.7-192-80a48.2 48.2 0 0 0 -36.9 0l-192 80c-17.9 7.4-29.6 24.9-29.6 44.3 0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0 85.7-35.7 221.6-159 221.6-380.3 0-19.4-11.7-36.9-29.5-44.3zm-210.4 362.6-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z"/></svg>'
202 ],
203 self::METERED_PAYWALL => [
204 'title' => esc_html__('Metered Paywall', 'wp-user-avatar'),
205 'url' => 'https://profilepress.com/addons/metered-paywall/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
206 'setting_url' => add_query_arg('view', 'metered-paywall', PPRESS_CONTENT_PROTECTION_SETTINGS_PAGE),
207 'description' => esc_html__('Let guest and visitors view limited number of restricted content.', 'wp-user-avatar'),
208 'icon' => '<span class="dashicons dashicons-welcome-view-site"></span>'
209 ],
210 self::MULTISITE => [
211 'title' => esc_html__('Site Creation', 'wp-user-avatar'),
212 'url' => 'https://profilepress.com/addons/site-creation/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
213 'description' => esc_html__('Allow users to create new sites on a multisite network via a registration form powered by ProfilePress.', 'wp-user-avatar'),
214 'icon' => '<span class="dashicons dashicons-networking"></span>',
215 'is_available' => function () {
216 return is_multisite() ? true : esc_html__('This is not a multisite installation', 'wp-user-avatar');
217 }
218 ],
219 self::INVITATION_CODES => [
220 'title' => esc_html__('Invite Codes', 'wp-user-avatar'),
221 'url' => 'https://profilepress.com/addons/invite-codes/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
222 'description' => esc_html__('Restrict WordPress registration to only users with invite codes.', 'wp-user-avatar'),
223 'icon' => '<svg viewBox="0 0 640 512" xmlns="http://www.w3.org/2000/svg"><path d="m610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5zm-114.5 27.2c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zm-400-144.5c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112s-111.9 50-111.9 111.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3c-63.7 0-115.3 51.6-115.3 115.2v28.8c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3zm-252.1-175.9c-11.6-11.5-27.5-18.6-45.1-18.6h-64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"/></svg>',
224 'setting_url' => add_query_arg('view', 'invite-codes', PPRESS_SETTINGS_SETTING_PAGE)
225 ],
226 self::AUTORENEWAL_CHECKBOX => [
227 'title' => esc_html__('Auto-Renewal Checkbox', 'wp-user-avatar'),
228 'url' => 'https://profilepress.com/addons/auto-renewal-checkbox/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
229 'description' => esc_html__('Allow members to decide whether to enable automatic recurring payments at specified intervals for their plan subscription during checkout.', 'wp-user-avatar'),
230 'icon' => '<svg viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="m400 480h-352c-26.51 0-48-21.49-48-48v-352c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059 184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0l-150.059 150.058-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"/></svg>',
231 'setting_url' => add_query_arg(['view' => 'payments', 'section' => 'settings'], PPRESS_SETTINGS_SETTING_PAGE) . '#checkout_auto_renewal_checkbox_row'
232 ],
233 self::MAILCHIMP => [
234 'title' => 'Mailchimp',
235 'url' => 'https://profilepress.com/addons/mailchimp/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
236 'setting_url' => add_query_arg(['view' => 'integrations', 'section' => 'mailchimp'], PPRESS_SETTINGS_SETTING_PAGE),
237 'description' => esc_html__('Subscribe members to your Mailchimp audiences when they register or subscribe to a membership plan. It can also automatically sync membership and profile changes with Mailchimp.', 'wp-user-avatar'),
238 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z"></path></svg>'
239 ],
240 self::CAMPAIGN_MONITOR => [
241 'title' => 'Campaign Monitor',
242 'url' => 'https://profilepress.com/addons/campaign-monitor/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
243 'setting_url' => add_query_arg(['view' => 'integrations', 'section' => 'campaign-monitor'], PPRESS_SETTINGS_SETTING_PAGE),
244 'description' => esc_html__('Subscribe members to your Campaign Monitor lists when they register or subscribe to a membership plan. It can also automatically sync membership and profile changes with Campaign Monitor.', 'wp-user-avatar'),
245 'icon' => '<span class="dashicons dashicons-email"></span>'
246 ],
247 self::MAILERLITE => [
248 'title' => 'MailerLite',
249 'url' => 'https://profilepress.com/addons/mailerlite/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
250 'setting_url' => add_query_arg(['view' => 'integrations', 'section' => 'mailerlite'], PPRESS_SETTINGS_SETTING_PAGE),
251 'description' => esc_html__('Subscribe members to your MailerLite groups when they register or subscribe to a membership plan. It can also automatically sync membership and profile changes with MailerLite.', 'wp-user-avatar'),
252 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 62.8 50.2"><path d="M-81.2 0h-48.9c-3.8 0-6.9 3.1-6.9 6.8v43.5l9.5-9.3h46.4c3.8 0 6.9-3.1 6.9-6.8V6.8c-.1-3.7-3.2-6.8-7-6.8z" style="fill:currentColor" transform="translate(137)"/><path d="M-90.2 15.8c5.2 0 7.6 4.1 7.6 8 0 1-.8 1.8-1.8 1.8H-94c.5 2.3 2.1 3.6 4.7 3.6 1.9 0 2.9-.4 3.9-.9.2-.1.5-.2.7-.2.9 0 1.7.7 1.7 1.6 0 .6-.4 1.1-1 1.5-1.3.7-2.7 1.4-5.5 1.4-5.2 0-8.3-3.1-8.3-8.4-.1-6.1 4.1-8.4 7.6-8.4zm-15.3-2.6c.6 0 1 .5 1 1v1.9h2.9c.9 0 1.7.7 1.7 1.6 0 .9-.7 1.6-1.7 1.6h-2.9V28c0 1.2.6 1.3 1.5 1.3.5 0 .8-.1 1.1-.1.2 0 .5-.1.7-.1.7 0 1.6.6 1.6 1.5 0 .6-.4 1.1-1 1.4-.9.4-1.7.6-2.7.6-3.2 0-4.9-1.5-4.9-4.4v-8.8h-1.7c-.6 0-1-.5-1-1 0-.3.1-.6.4-.9l4-4c.2 0 .5-.3 1-.3zm-18.7-3.8c1 0 1.8.8 1.8 1.8v19.4c0 1-.8 1.8-1.8 1.8s-1.8-.8-1.8-1.8V11.2c0-1 .8-1.8 1.8-1.8zm8.6 6.6c1 0 1.8.8 1.8 1.8v12.8c0 1-.8 1.8-1.8 1.8s-1.8-.8-1.8-1.8V17.8c0-1 .8-1.8 1.8-1.8zm25.5 3.1c-1.7 0-3.6 1-3.9 3.5h7.9c-.5-2.5-2.3-3.5-4-3.5zm-25.4-9.2c1.1 0 2 .9 2 2v.1c0 1.1-.9 2-2 2h-.2c-1.1 0-2-.9-2-2v-.1c0-1.1.9-2 2-2h.2z" style="fill:#fff" transform="translate(137)"/></svg>'
253 ],
254 self::BREVO => [
255 'title' => 'Brevo',
256 'url' => 'https://profilepress.com/addons/brevo/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
257 'setting_url' => add_query_arg(['view' => 'integrations', 'section' => 'brevo'], PPRESS_SETTINGS_SETTING_PAGE),
258 'description' => esc_html__('Subscribe members to your Brevo lists when they register or subscribe to a membership plan. It can also automatically sync membership and profile changes with Brevo.', 'wp-user-avatar'),
259 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="currentColor" d="M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zM7.2 4.8h5.747c2.34 0 3.895 1.406 3.895 3.516 0 1.022-.348 1.862-1.09 2.588C17.189 11.812 18 13.22 18 14.785c0 2.86-2.64 5.016-6.164 5.016H7.199v-15zm2.085 1.952v5.537h.07c.233-.432.858-.796 2.249-1.226 2.039-.659 3.037-1.52 3.037-2.655 0-.998-.766-1.656-1.924-1.656H9.285zm4.87 5.266c-.766.385-1.67.748-2.76 1.11-1.229.387-2.11 1.386-2.11 2.407v2.315h2.365c2.387 0 4.149-1.34 4.149-3.155 0-1.067-.625-2.087-1.645-2.677z"/></svg>'
260 ],
261 self::WOOCOMMERCE => [
262 'title' => 'WooCommerce',
263 'url' => 'https://profilepress.com/addons/woocommerce/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
264 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_wi_settings',
265 'description' => esc_html__('Create WooCommerce membership sites, members-only discounts and stores, manage WooCommerce billing and shipping fields, replaces WooCommerce login and edit account forms in checkout and "My Account" pages with that of ProfilePress.', 'wp-user-avatar'),
266 'icon' => '<span class="dashicons dashicons-cart"></span>',
267 'is_available' => function () {
268 return class_exists('WooCommerce') ? true : esc_html__('WooCommerce is not active', 'wp-user-avatar');
269 }
270 ],
271 self::TUTORLMS => [
272 'title' => 'Tutor LMS',
273 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_tutorlms_settings',
274 'url' => 'https://profilepress.com/addons/tutor-lms/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
275 'description' => esc_html__('Sell access to Tutor LMS courses, and enroll users after registration to specific courses.', 'wp-user-avatar'),
276 'icon' => '<span class="dashicons dashicons-welcome-learn-more"></span>',
277 'is_available' => function () {
278 return class_exists('\TUTOR\TUTOR') ? true : esc_html__('Tutor LMS is not active', 'wp-user-avatar');
279 }
280 ],
281 self::ACADEMYLMS => [
282 'title' => 'Academy LMS',
283 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_academylms_settings',
284 'url' => 'https://profilepress.com/addons/academy-lms/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
285 'description' => esc_html__('Sell access to Academy LMS courses, and enroll users after registration to specific courses.', 'wp-user-avatar'),
286 'icon' => '<span class="dashicons dashicons-welcome-learn-more"></span>',
287 'is_available' => function () {
288 return class_exists('\Academy') ? true : esc_html__('Academy LMS is not active', 'wp-user-avatar');
289 }
290 ],
291 self::LEARNDASH => [
292 'title' => 'LearnDash',
293 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_ld_settings',
294 'url' => 'https://profilepress.com/addons/learndash/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
295 'description' => esc_html__('Sell access to LearnDash courses and groups, enroll users after registration to specific courses and groups, and let users view their enrolled courses from the My Account page.', 'wp-user-avatar'),
296 'icon' => '<svg fill="none" height="84" viewBox="0 0 70 84" width="70" xmlns="http://www.w3.org/2000/svg"><g fill="#1e1e1e"><path d="m34.5815 21.2887c-1.1646-.0025-2.3181.225-3.3945.6695s-2.0544 1.0972-2.8779 1.9206c-.8234.8235-1.4761 1.8015-1.9206 2.8778-.4445 1.0764-.672 2.23-.6694 3.3945v51.2478c.0121.4305.1885.84.4931 1.1445.3045.3046.714.481 1.1445.4931 4.2642-.0076 8.3516-1.705 11.3669-4.7202 3.0153-3.0153 4.7126-7.1027 4.7203-11.367v-36.7982c.0025-1.1645-.225-2.3181-.6695-3.3945-.4444-1.0763-1.0971-2.0543-1.9206-2.8778-.8235-.8234-1.8015-1.4761-2.8778-1.9206-1.0764-.4445-2.23-.672-3.3945-.6695z"/><path d="m8.86236 46.3348c-1.16454-.0025-2.31812.225-3.3945.6695-1.07638.4444-2.05437 1.0971-2.87783 1.9206-.82345.8235-1.47616 1.8014-1.920633 2.8778-.444478 1.0764-.6719769 2.23-.669437 3.3945v27.1652c.0121336.4305.188563.84.493085 1.1445s.714045.481 1.144535.4931c4.26423-.0076 8.35163-1.705 11.36692-4.7203 3.0153-3.0152 4.7126-7.1026 4.7202-11.3669v-12.7156c.0026-1.1645-.2249-2.3181-.6694-3.3945s-1.0972-2.0543-1.9206-2.8778c-.8235-.8235-1.8015-1.4762-2.8778-1.9206-1.0764-.4445-2.23-.672-3.39454-.6695z"/><path d="m60.3036.00002103c-1.1646-.00253989-2.3181.22495897-3.3945.66943597-1.0764.444473-2.0544 1.097183-2.8778 1.920633-.8235.82346-1.4762 1.80145-1.9207 2.87783s-.672 2.22996-.6694 3.3945v73.11478c.0121.4305.1885.84.4931 1.1445.3045.3045.714.481 1.1445.4931 4.2642-.0076 8.3516-1.705 11.3669-4.7203 3.0153-3.0152 4.7126-7.1027 4.7203-11.3669v-58.66518c.0025-1.16454-.225-2.31812-.6695-3.3945-.4444-1.07638-1.0971-2.05437-1.9206-2.87783-.8235-.82345-1.8015-1.47616-2.8778-1.920633-1.0764-.444477-2.23-.67197586-3.3945-.66943597z"/></g></svg>',
297 'is_available' => function () {
298 return class_exists('\SFWD_LMS') ? true : esc_html__('LearnDash is not active', 'wp-user-avatar');
299 }
300 ],
301 self::LIFTERLMS => [
302 'title' => 'LifterLMS',
303 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_lifterlms_settings',
304 'url' => 'https://profilepress.com/addons/lifterlms/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
305 'description' => esc_html__('Sell access to LifterLMS courses and memberships, enroll users after registration to specific courses and memberships, and let users view their enrolled courses from the My Account page.', 'wp-user-avatar'),
306 'icon' => '<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.41421" viewBox="0 0 85 85" xmlns="http://www.w3.org/2000/svg"><path d="m.015.169h84v84h-84z" fill="none"/><path d="m29.061 50.631-2.258-1.29-6.066 10.452c-5.483-7.613-6.58-17.873-2.322-26.712l.064-.065c.258-.581.581-1.097.839-1.613 4.323-7.485 11.873-12.067 19.873-12.905 1.42-1.935 2.969-3.614 4.711-5.226-11.421-.645-22.843 5.032-28.972 15.615-7.872 13.679-4.258 30.841 7.872 40.263l6.065-18.003c.065-.128.13-.323.194-.516m36.908-16.712c3.227 7.421 3.033 16.195-1.291 23.681-.257.516-.58 1.031-.903 1.548l-.064.066c-5.549 8.129-14.97 12.323-24.326 11.355l6.066-10.453-2.259-1.291c-.129.13-.258.259-.387.389l-12.518 14.259c14.196 5.808 30.907.323 38.779-13.357 6.13-10.581 5.356-23.293-.967-32.842-.517 2.257-1.162 4.516-2.13 6.645"/><path d="m44.999 50.243c-1.614 2.13-4.194 3.228-6.968 3.485-.839.065-1.614-.387-2.001-1.161-1.162-2.517-1.548-5.291-.451-7.743l-12.648-7.291c-.838-.516-1.225-1.356-.967-2.258.193-.904.967-1.55 1.871-1.55l12.84-.451c.968-3.936 2.581-7.678 4.904-11.163 3.678-5.484 8.904-9.549 15.034-12.001 1.485-.581 2.968-1.096 4.453-1.484 1.096-.258 2.193.388 2.451 1.421.452 1.482.775 3.031 1.033 4.579.903 6.582-.065 13.163-2.903 19.099-1.807 3.743-4.324 6.97-7.228 9.808l6.001 11.292c.452.839.323 1.807-.387 2.452-.645.645-1.614.71-2.387.258zm9.549-27.035c1.936 1.162 2.581 3.614 1.485 5.549-1.098 1.936-3.613 2.582-5.55 1.485-1.935-1.098-2.58-3.614-1.484-5.55 1.162-1.935 3.614-2.581 5.549-1.484"/><path d="m26.093 72.118 13.679-15.551c-.516.065-1.032.129-1.549.194-2.064.129-4-.968-4.902-2.903-.259-.452-.453-.904-.646-1.42z"/></svg>',
307 'is_available' => function () {
308 return class_exists('\LifterLMS') ? true : esc_html__('LifterLMS is not active', 'wp-user-avatar');
309 }
310 ],
311 self::SENSEI_LMS => [
312 'title' => 'Sensei LMS',
313 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_sensei_settings',
314 'url' => 'https://profilepress.com/addons/sensei-lms/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
315 'description' => esc_html__('Sell access to Sensei courses and groups, and enroll users after registration to specific courses.', 'wp-user-avatar'),
316 'icon' => '<span class="dashicons dashicons-welcome-learn-more"></span>',
317 'is_available' => function () {
318 return function_exists('Sensei') ? true : esc_html__('Sensei LMS is not active', 'wp-user-avatar');
319 }
320 ],
321 self::MASTERSTUDY_LMS => [
322 'title' => 'MasterStudy LMS',
323 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_masterstudy_settings',
324 'url' => 'https://profilepress.com/addons/masterstudy-lms/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
325 'description' => esc_html__('Sell access to MasterStudy LMS courses, and enroll users after registration to specific courses.', 'wp-user-avatar'),
326 'icon' => '<span class="dashicons dashicons-welcome-learn-more"></span>',
327 'is_available' => function () {
328 return class_exists('\MasterStudy\Lms\Plugin') ? true : esc_html__('MasterStudy LMS is not active', 'wp-user-avatar');
329 }
330 ],
331 self::FLUENTCOMMUNITY => [
332 'title' => 'FluentCommunity',
333 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_fluentcommunity_settings',
334 'url' => 'https://profilepress.com/addons/fluentcommunity/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
335 'description' => esc_html__('Sell access to FluentCommunity spaces and courses, and enroll users in specific courses and spaces after registration.', 'wp-user-avatar'),
336 'icon' => '<svg fill="none" height="300" viewBox="0 0 300 300" width="300" xmlns="http://www.w3.org/2000/svg"><rect fill="#fff" height="300" rx="30" width="300"/><g fill="#000"><path d="m107.806 188.628 119.008-68.671c11.002-6.349 25.067-2.576 31.416 8.426l11.495 19.921-99.087 57.176c-22.004 12.697-50.135 5.152-62.832-16.852z"/><path d="m194.034 111.483-119.0078 68.671c-11.0021 6.349-25.0676 2.576-31.4161-8.426l-11.495-19.921 99.0869-57.1758c22.004-12.6971 50.135-5.1521 62.832 16.8518z"/></g></svg>',
337 'is_available' => function () {
338 return class_exists('\FluentCommunity\Framework\Foundation\Application') ? true : esc_html__('FluentCommunity is not active', 'wp-user-avatar');
339 }
340 ],
341 self::AFFILIATEWP => [
342 'title' => 'AffiliateWP',
343 'url' => 'https://profilepress.com/addons/affiliatewp/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
344 'description' => esc_html__('Integrate ProfilePress with AffiliateWP plugin so you to create an affiliate program for your membership website.', 'wp-user-avatar'),
345 'icon' => '<span class="dashicons dashicons-image-filter"></span>',
346 'is_available' => function () {
347 return class_exists('\Affiliate_WP') ? true : esc_html__('AffiliateWP is not active', 'wp-user-avatar');
348 }
349 ],
350 self::SLICEWP => [
351 'title' => 'SliceWP',
352 'url' => 'https://profilepress.com/addons/slicewp/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
353 'description' => esc_html__('Integrate ProfilePress with SliceWP affiliate plugin so you to start an affiliate program for your membership website.', 'wp-user-avatar'),
354 'icon' => '<span class="dashicons dashicons-chart-pie"></span>',
355 'is_available' => function () {
356 return class_exists('\SliceWP') ? true : esc_html__('SliceWP is not active', 'wp-user-avatar');
357 }
358 ],
359 self::BUDDYPRESS => [
360 'title' => esc_html__('BuddyPress / BuddyBoss', 'wp-user-avatar'),
361 'url' => 'https://profilepress.com/addons/buddypress/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
362 'description' => esc_html__('Sell access to groups, let users select groups to join during registration and sync WordPress profile fields with BuddyPress/BuddyBoss extended profile.', 'wp-user-avatar'),
363 'icon' => '<span class="dashicons dashicons-buddicons-buddypress-logo"></span>',
364 'is_available' => function () {
365 return class_exists('BuddyPress') ? true : esc_html__('BuddyPress/BuddyBoss plugin is not active', 'wp-user-avatar');
366 }
367 ],
368 self::AKISMET => [
369 'title' => 'Akismet',
370 'url' => 'https://profilepress.com/addons/akismet/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
371 'setting_url' => PPRESS_SETTINGS_SETTING_GENERAL_PAGE . '#pp_aki_settings',
372 'description' => esc_html__('Block spam and bot user registrations with Akismet and keep your membership site safe and secured.', 'wp-user-avatar'),
373 'icon' => '<span class="dashicons dashicons-shield"></span>'
374 ],
375 self::POLYLANG => [
376 'title' => 'Polylang',
377 'url' => 'https://profilepress.com/addons/polylang/?utm_source=liteplugin&utm_medium=extension-page&utm_campaign=learn-more',
378 'description' => esc_html__('It allows you to build multilingual login, registration, password reset and edit profile forms.', 'wp-user-avatar'),
379 'icon' => '<span class="dashicons dashicons-flag"></span>',
380 'is_available' => function () {
381 return class_exists('Polylang') ? true : esc_html__('Polylang plugin is not active', 'wp-user-avatar');
382 }
383 ],
384 ]);
385 }
386
387 public static function is_enabled($extension_id)
388 {
389 return class_exists(ppress_var(self::class_map(), $extension_id)) &&
390 ppress_var(get_option(self::DB_OPTION_NAME, []), $extension_id) == 'true';
391 }
392 }
393