PluginProbe ʕ •ᴥ•ʔ
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress / 4.0.3
Paid Membership Plugin, Ecommerce, User Registration Form, Login Form, User Profile & Restrict Content – ProfilePress v4.0.3
4.17.2 4.17.1 4.17.0 4.16.19 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 / Membership / Controllers / FrontendController.php
wp-user-avatar / src / Membership / Controllers Last commit date
BaseController.php 4 years ago CheckoutController.php 4 years ago CheckoutResponse.php 4 years ago CheckoutSessionData.php 4 years ago CheckoutTrait.php 4 years ago FrontendController.php 4 years ago SubscriptionPlanController.php 4 years ago index.php 4 years ago
FrontendController.php
106 lines
1 <?php
2
3 namespace ProfilePress\Core\Membership\Controllers;
4
5 class FrontendController extends BaseController
6 {
7 public function __construct()
8 {
9 add_action('wp', array($this, 'prevent_caching'), 0);
10 }
11
12 /**
13 * Prevent caching on dynamic pages.
14 */
15 public function prevent_caching()
16 {
17 if ( ! is_blog_installed()) {
18 return;
19 }
20
21 $page_ids = array_filter([
22 ppress_settings_by_key('set_login_url', false, true),
23 ppress_settings_by_key('set_registration_url', false, true),
24 ppress_settings_by_key('checkout_page_id', false, true),
25 ppress_settings_by_key('payment_success_page_id', false, true),
26 ppress_settings_by_key('edit_user_profile_url', false, true)
27 ]);
28
29 $do_not_cache = apply_filters('ppress_no_cache', is_page($page_ids));
30
31 if ($do_not_cache) {
32
33 add_filter('nocache_headers', [$this, 'additional_nocache_headers'], 99);
34
35 ppress_maybe_define_constant('DONOTCACHEPAGE', true);
36 ppress_maybe_define_constant('DONOTCACHEOBJECT', true);
37 ppress_maybe_define_constant('DONOTCACHEDB', true);
38 nocache_headers();
39 $this->exclude_page_from_wpe_server_cache();
40 remove_filter('nocache_headers', [$this, 'additional_nocache_headers'], 99);
41 }
42 }
43
44 /**
45 * Set additional nocache headers.
46 *
47 * @param array $headers {
48 * Header names and field values.
49 *
50 * @type string $Expires Expires header.
51 * @type string $Cache-Control Cache-Control header.
52 * }
53 * @return array
54 * @see wp_get_nocache_headers()
55 *
56 */
57 public function additional_nocache_headers($headers)
58 {
59 // First tree are the default ones.
60 $nocache_headers_cache_control = array(
61 'no-cache',
62 'must-revalidate',
63 'max-age=0',
64 'no-store',
65 );
66
67 if ( ! empty($headers['Cache-Control'])) {
68 $original_headers_cache_control = array_map('trim', explode(',', $headers['Cache-Control']));
69 // Merge original headers with our nocache headers.
70 $nocache_headers_cache_control = array_merge($nocache_headers_cache_control, $original_headers_cache_control);
71 // Avoid duplicates.
72 $nocache_headers_cache_control = array_unique($nocache_headers_cache_control);
73 }
74
75 $headers['Cache-Control'] = implode(', ', $nocache_headers_cache_control);
76
77 return $headers;
78
79 }
80
81 /**
82 * Sets a browser cookie that tells WP Engine to exclude a page from server caching.
83 *
84 * @see https://wpengine.com/support/cache/#Default_Cache_Exclusions
85 * @see https://wpengine.com/support/determining-wp-engine-environment/
86 *
87 * @return void
88 */
89 public function exclude_page_from_wpe_server_cache()
90 {
91 if (function_exists('is_wpe') && is_wpe()) {
92 /*
93 * If "Settings -> Permalinks" is "Plain", i.e. the `permalink_structure` option is '',
94 * allow the entire site to be cached by WP Engine.
95 * Note: This will prevent users from being able to successfully use the "Lost your password?" feature.
96 */
97 if (isset($GLOBALS['wp_rewrite']) && ! $GLOBALS['wp_rewrite']->using_permalinks()) {
98 return;
99 }
100
101 $path = wp_parse_url(get_permalink(), PHP_URL_PATH);
102 $cookie_domain = ! defined( 'COOKIE_DOMAIN' ) ? false : COOKIE_DOMAIN;
103 setcookie('wordpress_wpe_no_cache', '1', 0, $path, $cookie_domain, is_ssl(), true);
104 }
105 }
106 }