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 / Miscellaneous.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 40 minutes 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
Miscellaneous.php
217 lines
1 <?php namespace ProfilePress\Core\Classes;
2
3 namespace ProfilePress\Core\Classes;
4
5 class Miscellaneous
6 {
7 public function __construct()
8 {
9 $basename = plugin_basename(PROFILEPRESS_SYSTEM_FILE_PATH);
10 $prefix = is_network_admin() ? 'network_admin_' : '';
11 add_filter("{$prefix}plugin_action_links_$basename", [$this, 'action_links'], 10, 4);
12
13 add_filter('plugin_row_meta', array(__CLASS__, 'plugin_row_meta'), 10, 2);
14
15
16 // slim seo compatibility
17 add_filter('slim_seo_skipped_shortcodes', [$this, 'skip_ppress_shortcodes']);
18 add_action('admin_bar_menu', [$this, 'maybe_add_store_mode_admin_bar_menu'], 9999);
19
20 add_action('wp_print_styles', [$this, 'store_mode_admin_bar_print_link_styles']);
21 add_action('admin_print_styles', [$this, 'store_mode_admin_bar_print_link_styles']);
22
23 add_action('admin_init', [$this, 'register_privacy_policy_template']);
24
25 add_filter('display_post_states', [$this, 'add_display_page_states'], 10, 2);
26 }
27
28 /**
29 * Add a page display state for special ProfilePress pages in the page list table.
30 *
31 * @param array $post_states An array of post display states.
32 * @param \WP_Post $post The current post object.
33 *
34 * @return array
35 */
36 function add_display_page_states($post_states, $post)
37 {
38 $mark = '<img style="width:15px;vertical-align:middle;margin-bottom:4px;" src="' . PPRESS_ASSETS_URL . '/images/logo-icomark.png" title="ProfilePress">';
39
40 switch ($post->ID) {
41 case ppress_settings_by_key('checkout_page_id', 0, true):
42 case ppress_settings_by_key('set_login_url', 0, true):
43 case ppress_settings_by_key('set_registration_url', 0, true):
44 case ppress_settings_by_key('set_lost_password_url', 0, true):
45 case ppress_settings_by_key('edit_user_profile_url', 0, true):
46 case ppress_settings_by_key('set_user_profile_shortcode', 0, true):
47 case ppress_settings_by_key('payment_success_page_id', 0, true):
48 case ppress_settings_by_key('payment_failure_page_id', 0, true):
49 case ppress_settings_by_key('terms_page_id', 0, true):
50 $post_states['ppress_page'] = $mark;
51 break;
52 }
53
54 return $post_states;
55 }
56
57 /**
58 * Register the template for a privacy policy.
59 *
60 * Note, this is just a suggestion and should be customized to meet your businesses needs.
61 *
62 */
63 function register_privacy_policy_template()
64 {
65 if ( ! function_exists('wp_add_privacy_policy_content')) {
66 return;
67 }
68
69 $content = '<p>' . esc_html__("During user registration and checkout, we'll ask you to provide information, including your name, billing address, email address, phone number, and optional account information like username and password.", 'wp-user-avatar') . '</p>';
70 $content .= '<p>' . esc_html__("We may also collect your credit card number, expiration date, and security code and pass them to our payment gateway to process your purchase.", 'wp-user-avatar') . '</p>';
71
72 $content .= '<p>' . esc_html__("We use the information we collect to:", 'wp-user-avatar') . '</p>';
73
74 $content .= '<ul>';
75 $content .= '<li>' . esc_html__("Set up your account", 'wp-user-avatar') . '</li>';
76 $content .= '<li>' . esc_html__("Process payments and prevent fraud", 'wp-user-avatar') . '</li>';
77 $content .= '<li>' . esc_html__("To prepopulate the checkout form for future purchases", 'wp-user-avatar') . '</li>';
78 $content .= '<li>' . esc_html__("To get in touch with you if needed to discuss your order", 'wp-user-avatar') . '</li>';
79 $content .= '<li>' . esc_html__("Comply with any legal obligations we have, such as calculating taxes", 'wp-user-avatar') . '</li>';
80 $content .= '<li>' . esc_html__("Send you information about your account and order", 'wp-user-avatar') . '</li>';
81 $content .= '<li>' . esc_html__("Respond to your requests, including refunds and complaints", 'wp-user-avatar') . '</li>';
82 $content .= '<li>' . esc_html__("Send you marketing messages, if you choose to receive them", 'wp-user-avatar') . '</li>';
83 $content .= '</ul>';
84
85 $content .= '<p>' . esc_html__("We generally store information about you for as long as we need the information for the purposes we collect and use it, and we are not legally required to continue to keep it. For example, we will store your order information for tax and accounting purposes.", 'wp-user-avatar') . '</p>';
86 $content .= '<p>' . esc_html__("We'll also use cookies to keep track of cart contents while you're browsing our site.", 'wp-user-avatar') . '</p>';
87
88 wp_add_privacy_policy_content('ProfilePress', wp_kses_post(apply_filters('ppress_privacy_policy_content', $content)));
89 }
90
91 public function maybe_add_store_mode_admin_bar_menu($wp_admin_bar)
92 {
93 // Bail if no admin bar
94 if (empty($wp_admin_bar)) {
95 return;
96 }
97
98 // Bail if user cannot manage shop settings
99 if ( ! current_user_can('manage_options')) {
100 return;
101 }
102
103 if ( ! ppress_is_any_enabled_payment_method()) return;
104
105 $text = ! ppress_is_test_mode() ? __('Live', 'wp-user-avatar') : __('Test Mode', 'wp-user-avatar');
106
107 $mode = ! ppress_is_test_mode() ? 'live' : 'test';
108
109 $wp_admin_bar->add_menu(array(
110 'id' => 'ppress-store-menu',
111 'title' => sprintf(__('ProfilePress %s', 'wp-user-avatar'), '<span class="ppress-mode ppress-mode-' . esc_attr($mode) . '">' . $text . '</span>'),
112 'parent' => false,
113 'href' => add_query_arg(
114 ['view' => 'payments', 'section' => 'payment-methods'],
115 PPRESS_SETTINGS_SETTING_PAGE
116 )
117 ));
118 }
119
120 public function store_mode_admin_bar_print_link_styles()
121 {
122 // Bail if user cannot manage shop settings
123 if ( ! current_user_can('manage_options')) {
124 return;
125 } ?>
126
127 <style type="text/css" id="ppress-store-menu-styling">
128 #wp-admin-bar-ppress-store-menu .ppress-mode {
129 color: #fff;
130 background-color: #0073aa;
131 padding: 3px 7px;
132 font-weight: 600;
133 border-radius: 3px;
134 font-size: 12px;
135 }
136
137 #wp-admin-bar-ppress-store-menu .ppress-mode-live {
138 background-color: #32CD32;
139 }
140
141 #wp-admin-bar-ppress-store-menu .ppress-mode-test {
142 background-color: #ffde92;
143 color: #a04903;
144 }
145 </style>
146
147 <?php
148 }
149
150 public function action_links($actions, $plugin_file, $plugin_data, $context)
151 {
152 $custom_actions = array(
153 'settings' => sprintf('<a href="%s">%s</a>', PPRESS_SETTINGS_SETTING_PAGE, esc_html__('Settings', 'wp-user-avatar')),
154 );
155
156 if ( ! ExtensionManager::is_premium()) {
157 $custom_actions['ppress_upgrade'] = sprintf(
158 '<a style="color:#d54e21;font-weight:bold" href="%s" target="_blank">%s</a>', 'https://profilepress.com/pricing/?utm_source=wp_dashboard&utm_medium=upgrade&utm_campaign=action_link',
159 __('Go Premium', 'wp-user-avatar')
160 );
161 }
162
163 // add the links to the front of the actions list
164 return array_merge($custom_actions, $actions);
165 }
166
167 /**
168 * Show row meta on the plugin screen.
169 *
170 * @param mixed $links Plugin Row Meta
171 * @param mixed $file Plugin Base file
172 *
173 * @return array
174 */
175 public static function plugin_row_meta($links, $file)
176 {
177 if (strpos($file, 'wp-user-avatar.php') !== false) {
178 $row_meta = array(
179 'docs' => '<a target="_blank" href="' . ppress_upgrade_urls_affilify('https://profilepress.com/docs/') . '" aria-label="' . esc_attr__('View ProfilePress documentation', 'wp-user-avatar') . '">' . esc_html__('Docs', 'wp-user-avatar') . '</a>',
180 );
181
182 if ( ! ExtensionManager::is_premium()) {
183 $url = 'https://profilepress.com/pricing/?utm_source=wp_dashboard&utm_medium=upgrade&utm_campaign=row_meta';
184 $row_meta['upgrade_pro'] = '<a target="_blank" style="color:#d54e21;font-weight:bold" href="' . ppress_upgrade_urls_affilify($url) . '" aria-label="' . esc_attr__('Upgrade to PRO', 'wp-user-avatar') . '">' . esc_html__('Go Premium', 'wp-user-avatar') . '</a>';
185 }
186
187 return array_merge($links, $row_meta);
188 }
189
190 return (array)$links;
191 }
192
193 public function skip_ppress_shortcodes($shortcodes)
194 {
195 $shortcodes[] = 'profilepress-registration';
196 $shortcodes[] = 'profilepress-login';
197 $shortcodes[] = 'profilepress-password-reset';
198 $shortcodes[] = 'profilepress-my-account';
199 $shortcodes[] = 'profilepress-member-directory';
200 $shortcodes[] = 'profilepress-melange';
201 $shortcodes[] = 'profilepress-user-profile';
202 $shortcodes[] = 'profilepress-edit-profile';
203
204 return $shortcodes;
205 }
206
207 public static function get_instance()
208 {
209 static $instance = null;
210
211 if (is_null($instance)) {
212 $instance = new self();
213 }
214
215 return $instance;
216 }
217 }