Version Description
- Fix: Take "Accepted Query Strings" into account when "Cache query strings" enabled
- Fix: Fix typo in variable for lazy loading
- Update: Add lazy load Google Maps reference to the general settings page
- Update: Support background-image: together with background: for lazy loading
Download this release
Release Info
Developer | joemoto |
Plugin | W3 Total Cache |
Version | 0.14.3 |
Comparing to | |
See all releases |
Code changes from version 0.14.2 to 0.14.3
- Cdn_StackPath2_Page_View.php +0 -1
- Cdn_StackPath2_Widget_View_Unauthorized.php +1 -1
- Cdnfsd_GeneralPage_View.php +16 -9
- Extension_Amp_Plugin.php +24 -18
- Extension_FragmentCache_Plugin_Admin.php +2 -3
- Generic_Plugin_Admin.php +3 -0
- Generic_WidgetBoldGrid_Logo.svg +1 -1
- Generic_WidgetCommunity.php +53 -0
- Generic_WidgetCommunity_View.php +42 -0
- PgCache_ContentGrabber.php +88 -53
- UsageStatistics_GeneralPage_View.php +27 -15
- UserExperience_GeneralPage_View.php +25 -3
- UserExperience_LazyLoad_Mutator.php +5 -5
- UserExperience_LazyLoad_Page_View.php +2 -0
- Util_Ui.php +31 -1
- inc/lightbox/upgrade.php +29 -20
- inc/options/dashboard.php +23 -8
- inc/options/general.php +3 -1
- inc/options/minify/css.php +11 -4
- inc/options/parts/dashboard_banner.php +54 -0
- inc/options/pgcache.php +1 -3
- pub/css/lightbox.css +79 -22
- pub/css/options.css +160 -38
- pub/css/widget.css +5 -0
- pub/fonts/source-a.svg +1 -3
- pub/fonts/w3tc.svg +1 -11
- pub/img/overlay/gauge-bg-tp.png +0 -0
- pub/img/overlay/list-check.png +0 -0
- pub/img/stats-bg.png +0 -0
- pub/img/transparent-comet-moon.png +0 -0
- pub/img/transparent-comet.png +0 -0
- pub/img/usage-statistics-widget.png +0 -0
- pub/img/w3tc_stackpath_logo.svg +1 -40
- pub/img/wpspin_light.gif +0 -0
- pub/js/lightbox.js +6 -1
- readme.txt +8 -2
- w3-total-cache-api.php +1 -1
- w3-total-cache.php +1 -1
Cdn_StackPath2_Page_View.php
CHANGED
@@ -17,7 +17,6 @@ if ( !defined( 'W3TC' ) )
|
|
17 |
<p>
|
18 |
Enhance your website Performance with StackPath's CDN services. StackPath works magically with W3 Total Cache to speed up your site around the world for as little as $10 a month.
|
19 |
</p>
|
20 |
-
<p>New customers are eligible for a free trial.</p>
|
21 |
<p>
|
22 |
<a href="<?php echo esc_url( W3TC_STACKPATH_SIGNUP_URL )?>" target="_blank" id="netdna-stackpath-create-account" class="button-primary"><?php w3tc_e( 'cdn.stackpath2.signUpAndSave', 'Sign Up Now and save!' ) ?></a>
|
23 |
</p>
|
17 |
<p>
|
18 |
Enhance your website Performance with StackPath's CDN services. StackPath works magically with W3 Total Cache to speed up your site around the world for as little as $10 a month.
|
19 |
</p>
|
|
|
20 |
<p>
|
21 |
<a href="<?php echo esc_url( W3TC_STACKPATH_SIGNUP_URL )?>" target="_blank" id="netdna-stackpath-create-account" class="button-primary"><?php w3tc_e( 'cdn.stackpath2.signUpAndSave', 'Sign Up Now and save!' ) ?></a>
|
22 |
</p>
|
Cdn_StackPath2_Widget_View_Unauthorized.php
CHANGED
@@ -17,7 +17,7 @@ if ( !defined( 'W3TC' ) )
|
|
17 |
<?php w3tc_e( 'cdn.stackpath.widget.v2.header',
|
18 |
"Enhance your website performance by adding StackPath's (<acronym title='Content Delivery Network'>CDN</acronym>) service to your site." ) ?>
|
19 |
</p>
|
20 |
-
<h4 class="w3tcstackpath_signup_h4"><?php _e( 'New customer? Sign up now
|
21 |
|
22 |
<p>
|
23 |
<?php w3tc_e( 'cdn.stackpath2.widget.v2.works_magically',
|
17 |
<?php w3tc_e( 'cdn.stackpath.widget.v2.header',
|
18 |
"Enhance your website performance by adding StackPath's (<acronym title='Content Delivery Network'>CDN</acronym>) service to your site." ) ?>
|
19 |
</p>
|
20 |
+
<h4 class="w3tcstackpath_signup_h4"><?php _e( 'New customer? Sign up now to speed up your site!', 'w3-total-cache' )?></h4>
|
21 |
|
22 |
<p>
|
23 |
<?php w3tc_e( 'cdn.stackpath2.widget.v2.works_magically',
|
Cdnfsd_GeneralPage_View.php
CHANGED
@@ -10,7 +10,8 @@ if ( !defined( 'W3TC' ) )
|
|
10 |
<?php printf( __( ' If you do not have a <acronym title="Content Delivery Network">CDN</acronym> provider try StackPath. <a href="%s" target="_blank">Sign up now to enjoy a special offer!</a>.', 'w3-total-cache' ), wp_nonce_url( Util_Ui::admin_url( 'admin.php?page=w3tc_dashboard&w3tc_cdn_maxcdn_signup' ), 'w3tc' ) ); ?>
|
11 |
<?php endif ?>
|
12 |
</p>
|
13 |
-
|
|
|
14 |
<?php
|
15 |
Util_Ui::config_item_pro( array(
|
16 |
'key' => 'cdnfsd.enabled',
|
@@ -20,14 +21,19 @@ if ( !defined( 'W3TC' ) )
|
|
20 |
'disabled' => ( $is_pro ? null : true ),
|
21 |
'excerpt' => __( 'Deliver visitors the lowest possible response and load times for all site content including HTML, media (e.g. images or fonts), CSS, and JavaScript.', 'w3-total-cache' ),
|
22 |
'description' => array(
|
23 |
-
__( '
|
24 |
-
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
)
|
27 |
-
) )
|
28 |
-
?>
|
29 |
|
30 |
-
<?php
|
31 |
Util_Ui::config_item( array(
|
32 |
'key' => 'cdnfsd.engine',
|
33 |
'label' => __( '<acronym title="Full Site Delivery">FSD</acronym> <acronym title="Content Delivery Network">CDN</acronym> Type:', 'w3-total-cache' ),
|
@@ -36,7 +42,8 @@ if ( !defined( 'W3TC' ) )
|
|
36 |
'value' => $cdnfsd_engine,
|
37 |
'disabled' => ( $is_pro ? null : true ),
|
38 |
'description' => __( 'Select the <acronym title="Content Delivery Network">CDN</acronym> type you wish to use.',
|
39 |
-
'w3-total-cache' ) . $cdnfsd_engine_extra_description
|
40 |
-
|
|
|
41 |
?>
|
42 |
</table>
|
10 |
<?php printf( __( ' If you do not have a <acronym title="Content Delivery Network">CDN</acronym> provider try StackPath. <a href="%s" target="_blank">Sign up now to enjoy a special offer!</a>.', 'w3-total-cache' ), wp_nonce_url( Util_Ui::admin_url( 'admin.php?page=w3tc_dashboard&w3tc_cdn_maxcdn_signup' ), 'w3tc' ) ); ?>
|
11 |
<?php endif ?>
|
12 |
</p>
|
13 |
+
|
14 |
+
<table class="<?php echo esc_attr( Util_Ui::table_class() ); ?>">
|
15 |
<?php
|
16 |
Util_Ui::config_item_pro( array(
|
17 |
'key' => 'cdnfsd.enabled',
|
21 |
'disabled' => ( $is_pro ? null : true ),
|
22 |
'excerpt' => __( 'Deliver visitors the lowest possible response and load times for all site content including HTML, media (e.g. images or fonts), CSS, and JavaScript.', 'w3-total-cache' ),
|
23 |
'description' => array(
|
24 |
+
__( 'Want even faster speeds? The full site delivery Content Delivery Network will speed up your website by over 60% to increase conversions, revenue and reach your website visitors globally. With a Full Site Content Delivery Network (CDN), your website and all its assets will be available instantly to your visitors all over the world at blazing fast speeds.', 'w3-total-cache' ),
|
25 |
+
wp_kses(
|
26 |
+
sprintf(
|
27 |
+
// translators: 1 The opening anchor tag linking to our support page, 2 its closing tag.
|
28 |
+
__( 'For even better performance, combine FSD with other powerful features like Browser Cache, Minify, Fragment caching, or Lazy Load! Did you know that we offer premium support, customization and audit services? %1$sClick here for more information%2$s.', 'w3-total-cache' ),
|
29 |
+
'<a href="' . esc_url( admin_url( 'admin.php?page=w3tc_support' ) ) . '">',
|
30 |
+
'</a>'
|
31 |
+
),
|
32 |
+
array( 'a' => array( 'href' => array() ) )
|
33 |
+
),
|
34 |
)
|
35 |
+
) );
|
|
|
36 |
|
|
|
37 |
Util_Ui::config_item( array(
|
38 |
'key' => 'cdnfsd.engine',
|
39 |
'label' => __( '<acronym title="Full Site Delivery">FSD</acronym> <acronym title="Content Delivery Network">CDN</acronym> Type:', 'w3-total-cache' ),
|
42 |
'value' => $cdnfsd_engine,
|
43 |
'disabled' => ( $is_pro ? null : true ),
|
44 |
'description' => __( 'Select the <acronym title="Content Delivery Network">CDN</acronym> type you wish to use.',
|
45 |
+
'w3-total-cache' ) . $cdnfsd_engine_extra_description,
|
46 |
+
'show_in_free' => false,
|
47 |
+
) );
|
48 |
?>
|
49 |
</table>
|
Extension_Amp_Plugin.php
CHANGED
@@ -192,36 +192,42 @@ class Extension_Amp_Plugin {
|
|
192 |
|
193 |
|
194 |
|
195 |
-
static public function
|
196 |
$c = Dispatcher::config();
|
197 |
|
198 |
if ( $c->get_string( array( 'amp', 'url_type' ) ) == 'querystring' ) {
|
199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
}
|
201 |
|
202 |
-
return $
|
203 |
}
|
204 |
|
205 |
|
206 |
|
207 |
-
static public function pagecache_page_key( $
|
208 |
$c = Dispatcher::config();
|
209 |
|
210 |
-
if (
|
211 |
-
$
|
212 |
|
213 |
-
if ( strpos( $url_postfix, '=' ) === false ) {
|
214 |
-
if ( preg_match( "~(\\?|&)$url_postfix(=[^&]*)?(&|$)~", $url ) ) {
|
215 |
-
$page_key[1] .= '_amp';
|
216 |
-
}
|
217 |
-
} else {
|
218 |
-
if ( preg_match( "~(\\?|&)$url_postfix(&|$)~", $url ) ) {
|
219 |
-
$page_key[1] .= '_amp';
|
220 |
-
}
|
221 |
-
}
|
222 |
}
|
223 |
|
224 |
-
return $
|
225 |
}
|
226 |
|
227 |
|
@@ -290,8 +296,8 @@ class Extension_Amp_Plugin {
|
|
290 |
|
291 |
|
292 |
|
293 |
-
w3tc_add_action( '
|
294 |
-
array( '\W3TC\Extension_Amp_Plugin', '
|
295 |
w3tc_add_action( 'pagecache_page_key',
|
296 |
array( '\W3TC\Extension_Amp_Plugin', 'pagecache_page_key' ) );
|
297 |
w3tc_add_action( 'wp_loaded',
|
192 |
|
193 |
|
194 |
|
195 |
+
static public function pagecache_normalize_url_fragments( $url_fragments ) {
|
196 |
$c = Dispatcher::config();
|
197 |
|
198 |
if ( $c->get_string( array( 'amp', 'url_type' ) ) == 'querystring' ) {
|
199 |
+
if ( !empty( $url_fragments['querystring'] ) ) {
|
200 |
+
$qs = $c->get_string( array( 'amp', 'url_postfix' ) );
|
201 |
+
|
202 |
+
$url_qs = substr( $url_fragments['querystring'], 1 ); // cut off "?"
|
203 |
+
|
204 |
+
$regexp = Util_Environment::preg_quote( str_replace( '+', ' ', $qs ) );
|
205 |
+
if ( @preg_match( "~^(.*?&|)$regexp(=[^&]*)?(&.*|)$~i", $url_qs, $m ) ) {
|
206 |
+
$url_qs = $m[1] . $m[3];
|
207 |
+
$url_qs = preg_replace( '~[&]+~', '&', $url_qs );
|
208 |
+
$url_qs = trim( $url_qs, '&' );
|
209 |
+
$url_qs = empty( $url_qs ) ? '' : '?' . $url_qs;
|
210 |
+
|
211 |
+
$url_fragments['querystring'] = $url_qs;
|
212 |
+
$url_fragments['amp_extension'] = 1;
|
213 |
+
}
|
214 |
+
}
|
215 |
}
|
216 |
|
217 |
+
return $url_fragments;
|
218 |
}
|
219 |
|
220 |
|
221 |
|
222 |
+
static public function pagecache_page_key( $o ) {
|
223 |
$c = Dispatcher::config();
|
224 |
|
225 |
+
if ( isset( $o['url_fragments']['amp_extension'] ) ) {
|
226 |
+
$o['key'][1] .= '_amp';
|
227 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
}
|
229 |
|
230 |
+
return $o;
|
231 |
}
|
232 |
|
233 |
|
296 |
|
297 |
|
298 |
|
299 |
+
w3tc_add_action( 'pagecache_normalize_url_fragments',
|
300 |
+
array( '\W3TC\Extension_Amp_Plugin', 'pagecache_normalize_url_fragments' ) );
|
301 |
w3tc_add_action( 'pagecache_page_key',
|
302 |
array( '\W3TC\Extension_Amp_Plugin', 'pagecache_page_key' ) );
|
303 |
w3tc_add_action( 'wp_loaded',
|
Extension_FragmentCache_Plugin_Admin.php
CHANGED
@@ -23,9 +23,8 @@ class Extension_FragmentCache_Plugin_Admin {
|
|
23 |
'pro_feature' => true,
|
24 |
'pro_excerpt' => __( 'Increase the performance of dynamic sites that cannot benefit from the caching of entire pages.', 'w3-total-cache' ),
|
25 |
'pro_description' => array(
|
26 |
-
__( 'Fragment caching extends the core functionality of WordPress by enabling caching policies to be set on groups of objects that are cached.
|
27 |
-
|
28 |
-
__( 'This feature gives you control over the caching policies by the group as well as visibility into the configuration by extending the WordPress Object API with additional functionality.', 'w3-total-cache' )
|
29 |
),
|
30 |
'settings_exists' => true,
|
31 |
'version' => '1.0',
|
23 |
'pro_feature' => true,
|
24 |
'pro_excerpt' => __( 'Increase the performance of dynamic sites that cannot benefit from the caching of entire pages.', 'w3-total-cache' ),
|
25 |
'pro_description' => array(
|
26 |
+
__( 'Fragment caching extends the core functionality of WordPress by enabling caching policies to be set on groups of objects that are cached. This allows you to optimize various elements in themes and plugins to use caching to save resources and reduce response times. You can also use caching methods like Memcached or Redis (for example) to scale. Instructions for use are available in the FAQ available under the help menu. This feature also gives you control over the caching policies by the group as well as visibility into the configuration by extending the WordPress Object API with additional functionality.', 'w3-total-cache' ),
|
27 |
+
__( 'Fragment caching is a powerful, but advanced feature. If you need help, take a look at our premium support, customization and audit services.', 'w3-total-cache' ),
|
|
|
28 |
),
|
29 |
'settings_exists' => true,
|
30 |
'version' => '1.0',
|
Generic_Plugin_Admin.php
CHANGED
@@ -41,6 +41,9 @@ class Generic_Plugin_Admin {
|
|
41 |
add_action( 'admin_init_w3tc_dashboard', array(
|
42 |
'\W3TC\Generic_WidgetServices',
|
43 |
'admin_init_w3tc_dashboard' ) );
|
|
|
|
|
|
|
44 |
add_action( 'admin_init_w3tc_dashboard', array(
|
45 |
'\W3TC\Generic_WidgetBoldGrid',
|
46 |
'admin_init_w3tc_dashboard' ) );
|
41 |
add_action( 'admin_init_w3tc_dashboard', array(
|
42 |
'\W3TC\Generic_WidgetServices',
|
43 |
'admin_init_w3tc_dashboard' ) );
|
44 |
+
add_action( 'admin_init_w3tc_dashboard', array(
|
45 |
+
'\W3TC\Generic_WidgetCommunity',
|
46 |
+
'admin_init_w3tc_dashboard' ) );
|
47 |
add_action( 'admin_init_w3tc_dashboard', array(
|
48 |
'\W3TC\Generic_WidgetBoldGrid',
|
49 |
'admin_init_w3tc_dashboard' ) );
|
Generic_WidgetBoldGrid_Logo.svg
CHANGED
@@ -1 +1 @@
|
|
1 |
-
<svg id="Layer_1" data-name="Layer 1"
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 1027.74 143.07"><defs><style>.cls-1{fill:#000}.cls-2{fill:#1a1a1a}</style></defs><title>boldgrid-logo-horizontal-black</title><rect width="68.07" height="38.4" x="28.5" y="78.46" class="cls-1" rx="5.33" ry="5.33"/><rect width="44.74" height="38.4" x="28.5" y="26.21" class="cls-1" rx="4.64" ry="4.64"/><path d="M123.55,143.07h-104A19.54,19.54,0,0,1,0,123.55v-104A19.54,19.54,0,0,1,19.51,0h104a19.54,19.54,0,0,1,19.51,19.51v4.39a5.25,5.25,0,1,1-10.51,0V19.51a9,9,0,0,0-9-9h-104a9,9,0,0,0-9,9v104a9,9,0,0,0,9,9h104a9,9,0,0,0,9-9V73a9,9,0,0,0-9-9H102.09a5.25,5.25,0,1,1,0-10.51h21.46A19.54,19.54,0,0,1,143.07,73v50.5A19.54,19.54,0,0,1,123.55,143.07Z" class="cls-1"/><path d="M237.06,123.24V19.83h27a55.25,55.25,0,0,1,13.22,1.48,28.51,28.51,0,0,1,10.19,4.58,21.12,21.12,0,0,1,6.57,8.05,27,27,0,0,1,2.36,11.75,29.66,29.66,0,0,1-4.36,16.1q-4.36,6.94-13.22,9.46a31.22,31.22,0,0,1,8.05,3,24,24,0,0,1,6.8,5.32A26.6,26.6,0,0,1,298.37,87a24.91,24.91,0,0,1,1.77,9.6,23.13,23.13,0,0,1-2.81,11.6,25.54,25.54,0,0,1-7.46,8.27,34.06,34.06,0,0,1-10.71,5,45.71,45.71,0,0,1-12.41,1.7ZM249.32,31.5V65.33h16q8.72,0,13.81-4.88t5.1-12.85q0-8.72-5.32-12.41T265,31.5Zm0,45.5v34.57h16.4a34,34,0,0,0,8.57-1,21.25,21.25,0,0,0,7-3.18,16.25,16.25,0,0,0,4.8-5.24,14.64,14.64,0,0,0,1.77-7.39,15.06,15.06,0,0,0-2.07-8,17.08,17.08,0,0,0-5.39-5.54A24.48,24.48,0,0,0,272.67,78a39.6,39.6,0,0,0-9-1Z" class="cls-2"/><path d="M332.94,71.68a51.5,51.5,0,0,1,4.14-20.46,53.43,53.43,0,0,1,28.07-28.37,52,52,0,0,1,41,0,54,54,0,0,1,28.37,28.37,52,52,0,0,1,0,41,53.44,53.44,0,0,1-28.37,28.07,52.86,52.86,0,0,1-41,0,52.9,52.9,0,0,1-28.07-28.07A51.33,51.33,0,0,1,332.94,71.68Zm12.26,0a40.76,40.76,0,0,0,11.89,29A42,42,0,0,0,370,109.5a40.07,40.07,0,0,0,31.62,0,42,42,0,0,0,12.93-8.79,41.59,41.59,0,0,0,8.72-45.06,41.36,41.36,0,0,0-21.64-21.94,40.07,40.07,0,0,0-31.62,0,41.36,41.36,0,0,0-21.64,21.94A40.47,40.47,0,0,0,345.2,71.68Z" class="cls-2"/><path d="M466.94,123.24V19.83H479.2v91.74h53.48v11.67Z" class="cls-2"/><path d="M565,19.83h24.08a55.74,55.74,0,0,1,20.09,3.62,49,49,0,0,1,16.55,10.42A49.78,49.78,0,0,1,637,50.19a53.47,53.47,0,0,1,4.14,21.5,56.8,56.8,0,0,1-3,17.88,45.9,45.9,0,0,1-9.83,16.62,51.76,51.76,0,0,1-17.65,12.26q-10.86,4.8-26.52,4.8H565ZM577.29,31.5v79.92h10.34a46.17,46.17,0,0,0,16.25-2.81A37.44,37.44,0,0,0,625.68,88a41,41,0,0,0,3.18-16.47A41.5,41.5,0,0,0,625.68,55,37.66,37.66,0,0,0,617,42.36a38.18,38.18,0,0,0-13.07-8.05,46.23,46.23,0,0,0-16.25-2.81Z" class="cls-2"/><path d="M725.62,84.83V78.92h19.5q4.43,0,6.21,1.63t1.77,5.91V117a58.78,58.78,0,0,1-12.63,5.39,49.9,49.9,0,0,1-14.26,2,51.32,51.32,0,0,1-20.54-4.14,52.89,52.89,0,0,1-28.07-28.07,51.34,51.34,0,0,1-4.14-20.54,51.88,51.88,0,0,1,4.14-20.61,53,53,0,0,1,11.3-16.84,54.28,54.28,0,0,1,16.77-11.38,50.55,50.55,0,0,1,20.54-4.21,51.71,51.71,0,0,1,14.26,1.92A55.35,55.35,0,0,1,753.25,26q-.89,1.19-1.7,2.51t-1.7,2.51a46.05,46.05,0,0,0-11.15-4.8,45.56,45.56,0,0,0-12.48-1.7,44.13,44.13,0,0,0-18.1,3.77,48,48,0,0,0-14.85,10.19,47.26,47.26,0,0,0-10,15,46.55,46.55,0,0,0-3.62,18.32,45.64,45.64,0,0,0,3.62,18.1,46.56,46.56,0,0,0,10,14.85,48.09,48.09,0,0,0,14.7,10,43.84,43.84,0,0,0,18,3.69,45.14,45.14,0,0,0,21-5V88.67a4.75,4.75,0,0,0-.74-2.81q-.74-1-3.25-1Z" class="cls-2"/><path d="M795.2,123.24V19.83h22.16a38.81,38.81,0,0,1,10,1.48A34.16,34.16,0,0,1,837.68,26a28.06,28.06,0,0,1,8.05,8.42A22.86,22.86,0,0,1,849,46.86q0,10.64-5.69,17.65t-16.47,9.23q5.91,12.56,11.75,24.82t11.6,24.67h-6.65Q837.75,110.83,832,98.72T820.47,74.34c-.89.1-1.75.17-2.58.22s-1.7.07-2.59.07h-14v48.61Zm6.06-54.66h15.37a34.18,34.18,0,0,0,12.78-2.07,22.43,22.43,0,0,0,8.13-5.32,18.37,18.37,0,0,0,4.21-7,24.4,24.4,0,0,0,1.18-7.31,17.11,17.11,0,0,0-2-8,22.06,22.06,0,0,0-5.54-6.8A27,27,0,0,0,827,27.43a30.58,30.58,0,0,0-10.27-1.7H801.26Z" class="cls-2"/><path d="M897.88,19.83h6.06V123.24h-6.06Z" class="cls-2"/><path d="M954,19.83h21.72a55.74,55.74,0,0,1,20.09,3.62,49.55,49.55,0,0,1,16.55,10.34,48.78,48.78,0,0,1,11.23,16.32,53.64,53.64,0,0,1,4.14,21.42,56.8,56.8,0,0,1-3,17.88,46.6,46.6,0,0,1-9.82,16.69,51.25,51.25,0,0,1-17.66,12.34q-10.86,4.8-26.52,4.8H954Zm6.06,5.91v91.45h12.85a54.16,54.16,0,0,0,21.42-3.92A45.26,45.26,0,0,0,1009.56,103a41.93,41.93,0,0,0,9.08-14.55,48.47,48.47,0,0,0,3-16.92,48,48,0,0,0-3.62-19,42.57,42.57,0,0,0-24.52-23.64,49.67,49.67,0,0,0-17.8-3.18Z" class="cls-2"/></svg>
|
Generic_WidgetCommunity.php
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace W3TC;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class Generic_Plugin_WidgetCommunity.
|
6 |
+
*
|
7 |
+
* @since 0.14.3
|
8 |
+
*/
|
9 |
+
class Generic_WidgetCommunity {
|
10 |
+
/**
|
11 |
+
* Dashboard setup action.
|
12 |
+
*
|
13 |
+
* @since 0.14.3
|
14 |
+
*/
|
15 |
+
static public function admin_init_w3tc_dashboard() {
|
16 |
+
// If we're on pro, abort.
|
17 |
+
if ( Util_Environment::is_w3tc_pro( Dispatcher::config() ) ) {
|
18 |
+
return;
|
19 |
+
}
|
20 |
+
|
21 |
+
$o = new Generic_WidgetCommunity();
|
22 |
+
|
23 |
+
add_action( 'w3tc_widget_setup', array( $o, 'wp_dashboard_setup' ), 1000 );
|
24 |
+
add_action( 'w3tc_network_dashboard_setup', array( $o, 'wp_dashboard_setup' ), 1000 );
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Add our community widget to the dashboard.
|
29 |
+
*
|
30 |
+
* @since 0.14.3
|
31 |
+
*/
|
32 |
+
function wp_dashboard_setup() {
|
33 |
+
Util_Widget::add(
|
34 |
+
'w3tc_community',
|
35 |
+
'<div class="w3tc-widget-w3tc-logo"></div>' .
|
36 |
+
'<div class="w3tc-widget-text">' .
|
37 |
+
__( 'W3TC Community Edition', 'w3-total-cache' ) .
|
38 |
+
'</div>',
|
39 |
+
array( $this, 'widget_form' ),
|
40 |
+
null,
|
41 |
+
'normal'
|
42 |
+
);
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Render the content of our widget.
|
47 |
+
*
|
48 |
+
* @since 0.14.3
|
49 |
+
*/
|
50 |
+
public function widget_form() {
|
51 |
+
include W3TC_DIR . '/Generic_WidgetCommunity_View.php';
|
52 |
+
}
|
53 |
+
}
|
Generic_WidgetCommunity_View.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace W3TC;
|
3 |
+
|
4 |
+
if ( !defined( 'W3TC' ) )
|
5 |
+
die();
|
6 |
+
?>
|
7 |
+
|
8 |
+
<p>
|
9 |
+
<?php echo wp_kses(
|
10 |
+
sprintf(
|
11 |
+
__( 'You\'re using the Community Edition of W3 Total Cache. Maximize your website\'s speed even more by upgrading to %1$sW3 Total Cache Pro%2$s to unlock:', 'w3-total-cache' ),
|
12 |
+
'<strong>',
|
13 |
+
'</strong>'
|
14 |
+
),
|
15 |
+
array( 'strong' => array() )
|
16 |
+
); ?>
|
17 |
+
</p>
|
18 |
+
|
19 |
+
<ul class="w3tc-visible-ul">
|
20 |
+
<li><?php esc_html_e( 'Advanced Analytics', 'w3-total-cache' ); ?></li>
|
21 |
+
<li><?php esc_html_e( 'Fragment Caching', 'w3-total-cache' ); ?></li>
|
22 |
+
<li><?php esc_html_e( 'Full Site Delivery', 'w3-total-cache' ); ?></li>
|
23 |
+
<li><?php esc_html_e( 'Extension Support', 'w3-total-cache' ); ?></li>
|
24 |
+
</ul>
|
25 |
+
|
26 |
+
<p>
|
27 |
+
<?php echo wp_kses(
|
28 |
+
sprintf(
|
29 |
+
__( 'Plus, there\'s even more that allow you to completely fine tune your website\'s performance.', 'w3-total-cache' ),
|
30 |
+
'<strong>',
|
31 |
+
'</strong>'
|
32 |
+
),
|
33 |
+
array( 'strong' => array() )
|
34 |
+
); ?>
|
35 |
+
</p>
|
36 |
+
|
37 |
+
<p>
|
38 |
+
<input
|
39 |
+
type="button"
|
40 |
+
class="button-primary button-buy-plugin"
|
41 |
+
data-src="community_widget" value="<?php esc_attr_e( 'Learn more about Pro', 'w3-total-cache' ) ?>" />
|
42 |
+
</p>
|
PgCache_ContentGrabber.php
CHANGED
@@ -53,19 +53,16 @@ class PgCache_ContentGrabber {
|
|
53 |
*/
|
54 |
var $_debug = false;
|
55 |
|
56 |
-
/**
|
57 |
-
* Request host
|
58 |
-
*
|
59 |
-
* @var string
|
60 |
-
*/
|
61 |
-
var $_request_host = '';
|
62 |
-
|
63 |
/**
|
64 |
* Request URI
|
65 |
*
|
66 |
* @var string
|
67 |
*/
|
68 |
-
|
|
|
|
|
|
|
|
|
69 |
|
70 |
/**
|
71 |
* Page key
|
@@ -124,8 +121,9 @@ class PgCache_ContentGrabber {
|
|
124 |
$this->_config = Dispatcher::config();
|
125 |
$this->_debug = $this->_config->get_boolean( 'pgcache.debug' );
|
126 |
|
127 |
-
$
|
128 |
-
|
|
|
129 |
|
130 |
$this->_request_uri = $_SERVER['REQUEST_URI'];
|
131 |
$this->_lifetime = $this->_config->get_integer( 'pgcache.lifetime' );
|
@@ -302,7 +300,7 @@ class PgCache_ContentGrabber {
|
|
302 |
if ( !$data ) {
|
303 |
if ( $this->_debug ) {
|
304 |
self::log( 'no cache entry for ' .
|
305 |
-
$this->
|
306 |
$this->_page_key );
|
307 |
}
|
308 |
|
@@ -323,7 +321,7 @@ class PgCache_ContentGrabber {
|
|
323 |
// return empty value if caching should not happen
|
324 |
$this->_page_group = apply_filters( 'w3tc_page_extract_group',
|
325 |
$page_key_extension['group'],
|
326 |
-
$this->
|
327 |
$page_key_extension );
|
328 |
$page_key_extension['group'] = $this->_page_group;
|
329 |
}
|
@@ -340,7 +338,7 @@ class PgCache_ContentGrabber {
|
|
340 |
$page_key_extension['encryption'],
|
341 |
$page_key_extension['compression'],
|
342 |
$page_key_extension['content_type'],
|
343 |
-
$this->
|
344 |
$page_key_extension );
|
345 |
}
|
346 |
|
@@ -556,7 +554,9 @@ class PgCache_ContentGrabber {
|
|
556 |
/**
|
557 |
* Skip if there is query in the request uri
|
558 |
*/
|
559 |
-
|
|
|
|
|
560 |
$should_reject_qs =
|
561 |
( !$this->_config->get_boolean( 'pgcache.cache.query' ) ||
|
562 |
$this->_config->get_string( 'pgcache.engine' ) == 'file_generic' );
|
@@ -567,7 +567,7 @@ class PgCache_ContentGrabber {
|
|
567 |
$should_reject_qs = false;
|
568 |
}
|
569 |
|
570 |
-
if ( $should_reject_qs
|
571 |
$this->cache_reject_reason = 'Requested URI contains query';
|
572 |
$this->process_status = 'miss_query_string';
|
573 |
|
@@ -1214,7 +1214,7 @@ class PgCache_ContentGrabber {
|
|
1214 |
// fill group
|
1215 |
$extension['group'] = $this->get_cache_group_by_uri( $this->_request_uri );
|
1216 |
$extension = w3tc_apply_filters( 'pagecache_key_extension', $extension,
|
1217 |
-
$this->
|
1218 |
|
1219 |
return $extension;
|
1220 |
}
|
@@ -1443,24 +1443,33 @@ class PgCache_ContentGrabber {
|
|
1443 |
*/
|
1444 |
function _get_page_key( $page_key_extension, $request_url = '' ) {
|
1445 |
// key url part
|
1446 |
-
if ( $request_url ) {
|
|
|
|
|
|
|
|
|
1447 |
$parts = parse_url( $request_url );
|
1448 |
|
1449 |
if ( isset( $parts['host'] ) ) {
|
1450 |
-
$
|
1451 |
( isset( $parts['port'] ) ? ':' . $parts['port'] : '' );
|
1452 |
} else {
|
1453 |
-
$
|
1454 |
}
|
1455 |
|
1456 |
-
$
|
1457 |
-
( isset( $parts['path'] ) ? $parts['path'] : '' )
|
|
|
1458 |
( isset( $parts['query'] ) ? '?' . $parts['query'] : '' );
|
1459 |
-
|
1460 |
-
|
1461 |
-
$key_urlpart = $request_url;
|
1462 |
}
|
1463 |
|
|
|
|
|
|
|
|
|
|
|
1464 |
$key_urlpart = $this->_get_page_key_urlpart( $key_urlpart, $page_key_extension );
|
1465 |
|
1466 |
// key extension
|
@@ -1484,8 +1493,8 @@ class PgCache_ContentGrabber {
|
|
1484 |
$page_key_extension['content_type'] : '';
|
1485 |
|
1486 |
if ( @preg_match( "~(text/xml|text/xsl|application/rdf\+xml|application/rss\+xml|application/atom\+xml)~i", $content_type ) ||
|
1487 |
-
preg_match( W3TC_FEED_REGEXP, $
|
1488 |
-
strpos( $
|
1489 |
$key_postfix = '.xml';
|
1490 |
}
|
1491 |
}
|
@@ -1493,18 +1502,22 @@ class PgCache_ContentGrabber {
|
|
1493 |
|
1494 |
// key compression
|
1495 |
$key_compression = '';
|
1496 |
-
if ( $page_key_extension['compression'] )
|
1497 |
$key_compression = '_' . $page_key_extension['compression'];
|
|
|
1498 |
|
1499 |
-
$key = w3tc_apply_filters( 'pagecache_page_key',
|
1500 |
-
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
|
|
|
|
|
|
1506 |
|
1507 |
-
return implode( '', $key );
|
1508 |
}
|
1509 |
|
1510 |
private function _get_page_key_urlpart( $key, $page_key_extension ) {
|
@@ -1539,11 +1552,6 @@ class PgCache_ContentGrabber {
|
|
1539 |
}
|
1540 |
}
|
1541 |
|
1542 |
-
if ( $this->_is_ignored_query_string( $key ) ) {
|
1543 |
-
// remove query string
|
1544 |
-
$key = preg_replace( '~\?.*$~', '', $key );
|
1545 |
-
}
|
1546 |
-
|
1547 |
return md5( $key );
|
1548 |
}
|
1549 |
|
@@ -1959,38 +1967,65 @@ class PgCache_ContentGrabber {
|
|
1959 |
return in_array( $content_type, $cache_headers );
|
1960 |
}
|
1961 |
|
1962 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1963 |
$ignore_qs = $this->_config->get_array( 'pgcache.accept.qs' );
|
1964 |
$ignore_qs = w3tc_apply_filters( 'pagecache_extract_accept_qs', $ignore_qs );
|
1965 |
Util_Rule::array_trim( $ignore_qs );
|
1966 |
|
1967 |
-
if ( empty( $ignore_qs ) ) {
|
1968 |
-
return
|
1969 |
}
|
1970 |
|
1971 |
-
$
|
1972 |
-
if ( $p === false ) {
|
1973 |
-
return false;
|
1974 |
-
}
|
1975 |
-
$uri = substr( $uri, $p + 1 );
|
1976 |
|
1977 |
foreach ( $ignore_qs as $qs ) {
|
1978 |
$m = null;
|
1979 |
if ( strpos( $qs, '=' ) === false ) {
|
1980 |
$regexp = Util_Environment::preg_quote( str_replace( '+', ' ', $qs ) );
|
1981 |
-
if ( @preg_match( "~^(.*?&|)$regexp(=[^&]*)?(&.*|)$~i", $
|
1982 |
-
$
|
1983 |
}
|
1984 |
} else {
|
1985 |
$regexp = Util_Environment::preg_quote( str_replace( '+', ' ', $qs ) );
|
1986 |
|
1987 |
-
if ( @preg_match( "~^(.*?&|)$regexp(&.*|)$~i", $
|
1988 |
-
$
|
1989 |
}
|
1990 |
}
|
1991 |
}
|
1992 |
|
1993 |
-
|
|
|
|
|
|
|
1994 |
}
|
1995 |
|
1996 |
/**
|
53 |
*/
|
54 |
var $_debug = false;
|
55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
/**
|
57 |
* Request URI
|
58 |
*
|
59 |
* @var string
|
60 |
*/
|
61 |
+
private $_request_uri;
|
62 |
+
|
63 |
+
// filled by _preprocess_request_uri
|
64 |
+
// - ['host' => 'path' => , 'querystring' => ]
|
65 |
+
private $_request_url_fragments;
|
66 |
|
67 |
/**
|
68 |
* Page key
|
121 |
$this->_config = Dispatcher::config();
|
122 |
$this->_debug = $this->_config->get_boolean( 'pgcache.debug' );
|
123 |
|
124 |
+
$this->_request_url_fragments = array(
|
125 |
+
'host' => Util_Environment::host_port()
|
126 |
+
);
|
127 |
|
128 |
$this->_request_uri = $_SERVER['REQUEST_URI'];
|
129 |
$this->_lifetime = $this->_config->get_integer( 'pgcache.lifetime' );
|
300 |
if ( !$data ) {
|
301 |
if ( $this->_debug ) {
|
302 |
self::log( 'no cache entry for ' .
|
303 |
+
$this->_request_url_fragments['host'] . $this->_request_uri . ' ' .
|
304 |
$this->_page_key );
|
305 |
}
|
306 |
|
321 |
// return empty value if caching should not happen
|
322 |
$this->_page_group = apply_filters( 'w3tc_page_extract_group',
|
323 |
$page_key_extension['group'],
|
324 |
+
$this->_request_url_fragments['host'] . $this->_request_uri,
|
325 |
$page_key_extension );
|
326 |
$page_key_extension['group'] = $this->_page_group;
|
327 |
}
|
338 |
$page_key_extension['encryption'],
|
339 |
$page_key_extension['compression'],
|
340 |
$page_key_extension['content_type'],
|
341 |
+
$this->_request_url_fragments['host'] . $this->_request_uri,
|
342 |
$page_key_extension );
|
343 |
}
|
344 |
|
554 |
/**
|
555 |
* Skip if there is query in the request uri
|
556 |
*/
|
557 |
+
$this->_preprocess_request_uri();
|
558 |
+
|
559 |
+
if ( !empty( $this->_request_url_fragments['querystring'] ) ) {
|
560 |
$should_reject_qs =
|
561 |
( !$this->_config->get_boolean( 'pgcache.cache.query' ) ||
|
562 |
$this->_config->get_string( 'pgcache.engine' ) == 'file_generic' );
|
567 |
$should_reject_qs = false;
|
568 |
}
|
569 |
|
570 |
+
if ( $should_reject_qs ) {
|
571 |
$this->cache_reject_reason = 'Requested URI contains query';
|
572 |
$this->process_status = 'miss_query_string';
|
573 |
|
1214 |
// fill group
|
1215 |
$extension['group'] = $this->get_cache_group_by_uri( $this->_request_uri );
|
1216 |
$extension = w3tc_apply_filters( 'pagecache_key_extension', $extension,
|
1217 |
+
$this->_request_url_fragments['host'], $this->_request_uri );
|
1218 |
|
1219 |
return $extension;
|
1220 |
}
|
1443 |
*/
|
1444 |
function _get_page_key( $page_key_extension, $request_url = '' ) {
|
1445 |
// key url part
|
1446 |
+
if ( empty( $request_url ) ) {
|
1447 |
+
$request_url_fragments = $this->_request_url_fragments;
|
1448 |
+
} else {
|
1449 |
+
$request_url_fragments = array();
|
1450 |
+
|
1451 |
$parts = parse_url( $request_url );
|
1452 |
|
1453 |
if ( isset( $parts['host'] ) ) {
|
1454 |
+
$request_url_fragments['host'] = $parts['host'] .
|
1455 |
( isset( $parts['port'] ) ? ':' . $parts['port'] : '' );
|
1456 |
} else {
|
1457 |
+
$request_url_fragments['host'] = $this->_request_url_fragments['host'];
|
1458 |
}
|
1459 |
|
1460 |
+
$request_url_fragments['path'] =
|
1461 |
+
( isset( $parts['path'] ) ? $parts['path'] : '' );
|
1462 |
+
$request_url_fragments['querystring'] =
|
1463 |
( isset( $parts['query'] ) ? '?' . $parts['query'] : '' );
|
1464 |
+
$request_url_fragments = $this->_normalize_url_fragments(
|
1465 |
+
$request_url_fragments );
|
|
|
1466 |
}
|
1467 |
|
1468 |
+
$key_urlpart =
|
1469 |
+
$request_url_fragments['host'] .
|
1470 |
+
$request_url_fragments['path'] .
|
1471 |
+
$request_url_fragments['querystring'];
|
1472 |
+
|
1473 |
$key_urlpart = $this->_get_page_key_urlpart( $key_urlpart, $page_key_extension );
|
1474 |
|
1475 |
// key extension
|
1493 |
$page_key_extension['content_type'] : '';
|
1494 |
|
1495 |
if ( @preg_match( "~(text/xml|text/xsl|application/rdf\+xml|application/rss\+xml|application/atom\+xml)~i", $content_type ) ||
|
1496 |
+
preg_match( W3TC_FEED_REGEXP, $request_url_fragments['path'] ) ||
|
1497 |
+
strpos( $request_url_fragments['path'], ".xsl" ) !== false ) {
|
1498 |
$key_postfix = '.xml';
|
1499 |
}
|
1500 |
}
|
1502 |
|
1503 |
// key compression
|
1504 |
$key_compression = '';
|
1505 |
+
if ( $page_key_extension['compression'] ) {
|
1506 |
$key_compression = '_' . $page_key_extension['compression'];
|
1507 |
+
}
|
1508 |
|
1509 |
+
$key = w3tc_apply_filters( 'pagecache_page_key', array(
|
1510 |
+
'key' => array(
|
1511 |
+
$key_urlpart,
|
1512 |
+
$key_extension,
|
1513 |
+
$key_postfix,
|
1514 |
+
$key_compression
|
1515 |
+
),
|
1516 |
+
'page_key_extension' => $page_key_extension,
|
1517 |
+
'url_fragments' => $this->_request_url_fragments
|
1518 |
+
) );
|
1519 |
|
1520 |
+
return implode( '', $key['key'] );
|
1521 |
}
|
1522 |
|
1523 |
private function _get_page_key_urlpart( $key, $page_key_extension ) {
|
1552 |
}
|
1553 |
}
|
1554 |
|
|
|
|
|
|
|
|
|
|
|
1555 |
return md5( $key );
|
1556 |
}
|
1557 |
|
1967 |
return in_array( $content_type, $cache_headers );
|
1968 |
}
|
1969 |
|
1970 |
+
/**
|
1971 |
+
* Fills $_request_url_fragments['path'], $_request_url_fragments['querystring']
|
1972 |
+
* with cache-related normalized values
|
1973 |
+
*/
|
1974 |
+
private function _preprocess_request_uri() {
|
1975 |
+
$p = explode( '?', $this->_request_uri, 2 );
|
1976 |
+
|
1977 |
+
$this->_request_url_fragments['path'] = $p[0];
|
1978 |
+
$this->_request_url_fragments['querystring'] =
|
1979 |
+
( empty( $p[1] ) ? '' : '?' . $p[1] );
|
1980 |
+
|
1981 |
+
$this->_request_url_fragments = $this->_normalize_url_fragments(
|
1982 |
+
$this->_request_url_fragments );
|
1983 |
+
}
|
1984 |
+
|
1985 |
+
|
1986 |
+
|
1987 |
+
private function _normalize_url_fragments( $fragments ) {
|
1988 |
+
$fragments = w3tc_apply_filters( 'pagecache_normalize_url_fragments',
|
1989 |
+
$fragments );
|
1990 |
+
$fragments['querystring'] = $this->_normalize_querystring(
|
1991 |
+
$fragments['querystring'] );
|
1992 |
+
|
1993 |
+
return $fragments;
|
1994 |
+
}
|
1995 |
+
|
1996 |
+
|
1997 |
+
|
1998 |
+
private function _normalize_querystring( $querystring ) {
|
1999 |
$ignore_qs = $this->_config->get_array( 'pgcache.accept.qs' );
|
2000 |
$ignore_qs = w3tc_apply_filters( 'pagecache_extract_accept_qs', $ignore_qs );
|
2001 |
Util_Rule::array_trim( $ignore_qs );
|
2002 |
|
2003 |
+
if ( empty( $ignore_qs ) || empty( $querystring ) ) {
|
2004 |
+
return $querystring;
|
2005 |
}
|
2006 |
|
2007 |
+
$querystring_naked = substr( $querystring, 1 );
|
|
|
|
|
|
|
|
|
2008 |
|
2009 |
foreach ( $ignore_qs as $qs ) {
|
2010 |
$m = null;
|
2011 |
if ( strpos( $qs, '=' ) === false ) {
|
2012 |
$regexp = Util_Environment::preg_quote( str_replace( '+', ' ', $qs ) );
|
2013 |
+
if ( @preg_match( "~^(.*?&|)$regexp(=[^&]*)?(&.*|)$~i", $querystring_naked, $m ) ) {
|
2014 |
+
$querystring_naked = $m[1] . $m[3];
|
2015 |
}
|
2016 |
} else {
|
2017 |
$regexp = Util_Environment::preg_quote( str_replace( '+', ' ', $qs ) );
|
2018 |
|
2019 |
+
if ( @preg_match( "~^(.*?&|)$regexp(&.*|)$~i", $querystring_naked, $m ) ) {
|
2020 |
+
$querystring_naked = $m[1] . $m[2];
|
2021 |
}
|
2022 |
}
|
2023 |
}
|
2024 |
|
2025 |
+
$querystring_naked = preg_replace( '~[&]+~', '&', $querystring_naked );
|
2026 |
+
$querystring_naked = trim( $querystring_naked, '&' );
|
2027 |
+
|
2028 |
+
return empty( $querystring_naked ) ? '' : '?' . $querystring_naked;
|
2029 |
}
|
2030 |
|
2031 |
/**
|
UsageStatistics_GeneralPage_View.php
CHANGED
@@ -10,25 +10,30 @@ $c = Dispatcher::config();
|
|
10 |
$is_pro = Util_Environment::is_w3tc_pro( $c );
|
11 |
|
12 |
?>
|
13 |
-
<p>Cache usage statistics.</p>
|
14 |
|
15 |
-
<table class="
|
16 |
<?php
|
17 |
Util_Ui::config_item_pro( array(
|
18 |
'key' => 'stats.enabled',
|
|
|
19 |
'control' => 'checkbox',
|
20 |
'checkbox_label' => __( 'Enable', 'w3-total-cache' ),
|
21 |
'disabled' => ( $is_pro ? null : true ),
|
22 |
'excerpt' => __( 'Enable statistics collection. Note that this consumes additional resources and is not recommended to be run continuously.',
|
23 |
'w3-total-cache' ),
|
24 |
'description' => array(
|
25 |
-
__( 'Statistics
|
26 |
-
|
27 |
__( 'Some statistics are available directly on your Performance Dashboard, however, the comprehensive suite of statistics are available on the Statistics screen. Web server logs created by Nginx or Apache can be analyzed if accessible.', 'w3-total-cache' ),
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
) );
|
33 |
Util_Ui::config_item( array(
|
34 |
'key' => 'stats.slot_seconds',
|
@@ -36,7 +41,8 @@ Util_Ui::config_item( array(
|
|
36 |
'control' => 'textbox',
|
37 |
'textbox_type' => 'number',
|
38 |
'description' =>
|
39 |
-
'The duration of time in seconds to collect statistics per interval.'
|
|
|
40 |
) );
|
41 |
Util_Ui::config_item( array(
|
42 |
'key' => 'stats.slots_count',
|
@@ -44,21 +50,24 @@ Util_Ui::config_item( array(
|
|
44 |
'control' => 'textbox',
|
45 |
'textbox_type' => 'number',
|
46 |
'description' =>
|
47 |
-
'The number of intervals that are represented in the graph.'
|
|
|
48 |
) );
|
49 |
|
50 |
Util_Ui::config_item( array(
|
51 |
'key' => 'stats.cpu.enabled',
|
52 |
'control' => 'checkbox',
|
53 |
'checkbox_label' => __( 'Use the system reported averages of CPU resource usage.', 'w3-total-cache' ),
|
54 |
-
'description' => __( 'Collect CPU usage', 'w3-total-cache' )
|
|
|
55 |
) );
|
56 |
Util_Ui::config_item( array(
|
57 |
'key' => 'stats.access_log.enabled',
|
58 |
'control' => 'checkbox',
|
59 |
'checkbox_label' => __( 'Parse server access log', 'w3-total-cache' ),
|
60 |
'disabled' => ( $is_pro ? null : true ),
|
61 |
-
'description' => __( 'Enable collecting statistics from an Access Log. This provides much more precise statistics.', 'w3-total-cache' )
|
|
|
62 |
) );
|
63 |
Util_Ui::config_item( array(
|
64 |
'key' => 'stats.access_log.webserver',
|
@@ -68,7 +77,8 @@ Util_Ui::config_item( array(
|
|
68 |
'apache' => 'Apache',
|
69 |
'nginx' => 'Nginx'
|
70 |
),
|
71 |
-
'description' => 'Webserver type generating access logs.'
|
|
|
72 |
) );
|
73 |
Util_Ui::config_item( array(
|
74 |
'key' => 'stats.access_log.filename',
|
@@ -77,7 +87,8 @@ Util_Ui::config_item( array(
|
|
77 |
'textbox_size' => 60,
|
78 |
'description' => 'Where your access log is located.',
|
79 |
'control_after' =>
|
80 |
-
'<input type="button" class="button" id="ustats_access_log_test" value="Test" /><span id="ustats_access_log_test_result" style="padding-left: 20px"></span>'
|
|
|
81 |
) );
|
82 |
Util_Ui::config_item( array(
|
83 |
'key' => 'stats.access_log.format',
|
@@ -87,7 +98,8 @@ Util_Ui::config_item( array(
|
|
87 |
'description' =>
|
88 |
'Format of your access log from webserver configuration.',
|
89 |
'control_after' =>
|
90 |
-
'<input type="button" class="button" id="ustats_access_log_format_reset" value="Reset to Default" />'
|
|
|
91 |
) );
|
92 |
?>
|
93 |
</table>
|
10 |
$is_pro = Util_Environment::is_w3tc_pro( $c );
|
11 |
|
12 |
?>
|
|
|
13 |
|
14 |
+
<table class="<?php echo esc_attr( Util_Ui::table_class() ); ?>">
|
15 |
<?php
|
16 |
Util_Ui::config_item_pro( array(
|
17 |
'key' => 'stats.enabled',
|
18 |
+
'label' => esc_html__( 'Cache usage statistics' ),
|
19 |
'control' => 'checkbox',
|
20 |
'checkbox_label' => __( 'Enable', 'w3-total-cache' ),
|
21 |
'disabled' => ( $is_pro ? null : true ),
|
22 |
'excerpt' => __( 'Enable statistics collection. Note that this consumes additional resources and is not recommended to be run continuously.',
|
23 |
'w3-total-cache' ),
|
24 |
'description' => array(
|
25 |
+
__( 'Statistics provides near-complete transparency into the behavior of your caching performance, allowing you to identify opportunities to further improve your website speed and ensure operations are working as expected. Includes metrics like cache sizes, object lifetimes, hit vs miss ratio, etc across every caching method configured in your settings.', 'w3-total-cache' ),
|
|
|
26 |
__( 'Some statistics are available directly on your Performance Dashboard, however, the comprehensive suite of statistics are available on the Statistics screen. Web server logs created by Nginx or Apache can be analyzed if accessible.', 'w3-total-cache' ),
|
27 |
+
wp_kses(
|
28 |
+
sprintf(
|
29 |
+
// translators: 1 The opening anchor tag linking to our support page, 2 its closing tag.
|
30 |
+
__( 'Use the caching statistics to compare the performance of different configurations like caching methods, object lifetimes and so on. Did you know that we offer premium support, customization and audit services? %1$sClick here for more information%2$s.', 'w3-total-cache' ),
|
31 |
+
'<a href="' . esc_url( admin_url( 'admin.php?page=w3tc_support' ) ) . '">',
|
32 |
+
'</a>'
|
33 |
+
),
|
34 |
+
array( 'a' => array( 'href' => array() ) )
|
35 |
+
),
|
36 |
+
),
|
37 |
) );
|
38 |
Util_Ui::config_item( array(
|
39 |
'key' => 'stats.slot_seconds',
|
41 |
'control' => 'textbox',
|
42 |
'textbox_type' => 'number',
|
43 |
'description' =>
|
44 |
+
'The duration of time in seconds to collect statistics per interval.',
|
45 |
+
'show_in_free' => false,
|
46 |
) );
|
47 |
Util_Ui::config_item( array(
|
48 |
'key' => 'stats.slots_count',
|
50 |
'control' => 'textbox',
|
51 |
'textbox_type' => 'number',
|
52 |
'description' =>
|
53 |
+
'The number of intervals that are represented in the graph.',
|
54 |
+
'show_in_free' => false,
|
55 |
) );
|
56 |
|
57 |
Util_Ui::config_item( array(
|
58 |
'key' => 'stats.cpu.enabled',
|
59 |
'control' => 'checkbox',
|
60 |
'checkbox_label' => __( 'Use the system reported averages of CPU resource usage.', 'w3-total-cache' ),
|
61 |
+
'description' => __( 'Collect CPU usage', 'w3-total-cache' ),
|
62 |
+
'show_in_free' => false,
|
63 |
) );
|
64 |
Util_Ui::config_item( array(
|
65 |
'key' => 'stats.access_log.enabled',
|
66 |
'control' => 'checkbox',
|
67 |
'checkbox_label' => __( 'Parse server access log', 'w3-total-cache' ),
|
68 |
'disabled' => ( $is_pro ? null : true ),
|
69 |
+
'description' => __( 'Enable collecting statistics from an Access Log. This provides much more precise statistics.', 'w3-total-cache' ),
|
70 |
+
'show_in_free' => false,
|
71 |
) );
|
72 |
Util_Ui::config_item( array(
|
73 |
'key' => 'stats.access_log.webserver',
|
77 |
'apache' => 'Apache',
|
78 |
'nginx' => 'Nginx'
|
79 |
),
|
80 |
+
'description' => 'Webserver type generating access logs.',
|
81 |
+
'show_in_free' => false,
|
82 |
) );
|
83 |
Util_Ui::config_item( array(
|
84 |
'key' => 'stats.access_log.filename',
|
87 |
'textbox_size' => 60,
|
88 |
'description' => 'Where your access log is located.',
|
89 |
'control_after' =>
|
90 |
+
'<input type="button" class="button" id="ustats_access_log_test" value="Test" /><span id="ustats_access_log_test_result" style="padding-left: 20px"></span>',
|
91 |
+
'show_in_free' => false,
|
92 |
) );
|
93 |
Util_Ui::config_item( array(
|
94 |
'key' => 'stats.access_log.format',
|
98 |
'description' =>
|
99 |
'Format of your access log from webserver configuration.',
|
100 |
'control_after' =>
|
101 |
+
'<input type="button" class="button" id="ustats_access_log_format_reset" value="Reset to Default" />',
|
102 |
+
'show_in_free' => false,
|
103 |
) );
|
104 |
?>
|
105 |
</table>
|
UserExperience_GeneralPage_View.php
CHANGED
@@ -17,12 +17,34 @@ Util_Ui::config_overloading_button( array(
|
|
17 |
Util_Ui::config_item( array(
|
18 |
'key' => 'lazyload.enabled',
|
19 |
'control' => 'checkbox',
|
20 |
-
'checkbox_label' => __( 'Lazy
|
21 |
'description' => __( 'Defer loading offscreen images.',
|
22 |
'w3-total-cache' )
|
23 |
) );
|
24 |
-
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
Util_Ui::config_item_extension_enabled( array(
|
27 |
'extension_id' => 'user-experience-emoji',
|
28 |
'checkbox_label' => __( 'Disable Emoji', 'w3-total-cache' ),
|
17 |
Util_Ui::config_item( array(
|
18 |
'key' => 'lazyload.enabled',
|
19 |
'control' => 'checkbox',
|
20 |
+
'checkbox_label' => __( 'Lazy Load Images', 'w3-total-cache' ),
|
21 |
'description' => __( 'Defer loading offscreen images.',
|
22 |
'w3-total-cache' )
|
23 |
) );
|
24 |
+
|
25 |
+
Util_Ui::config_item_pro( array(
|
26 |
+
'key' => 'lazyload_googlemaps_general_settings',
|
27 |
+
'control' => 'none',
|
28 |
+
'none_label' => __( 'Lazy Load Google Maps', 'w3-total-cache' ),
|
29 |
+
'excerpt' => wp_kses(
|
30 |
+
sprintf(
|
31 |
+
// Translators: 1 an opening anchor to the user experience page, 2 its closing anchor tag, 3 an opening strong tag, 4 its closing tag.
|
32 |
+
__( 'In addition to lazy loading images, with %3$sW3 Total Cache Pro%4$s you can lazy load %3$sGoogle Maps%4$s! More information and settings can be found on the %1$sUser Experience page%2$s.', 'w3-total-cache' ),
|
33 |
+
'<a href="' . admin_url( 'admin.php?page=w3tc_userexperience' ) . '">',
|
34 |
+
'</a>',
|
35 |
+
'<strong>',
|
36 |
+
'</strong>'
|
37 |
+
),
|
38 |
+
array(
|
39 |
+
'a' => array(
|
40 |
+
'href' => array(),
|
41 |
+
),
|
42 |
+
'strong' => array(),
|
43 |
+
)
|
44 |
+
),
|
45 |
+
'description' => array(),
|
46 |
+
) );
|
47 |
+
|
48 |
Util_Ui::config_item_extension_enabled( array(
|
49 |
'extension_id' => 'user-experience-emoji',
|
50 |
'checkbox_label' => __( 'Disable Emoji', 'w3-total-cache' ),
|
UserExperience_LazyLoad_Mutator.php
CHANGED
@@ -43,7 +43,7 @@ class UserExperience_LazyLoad_Mutator {
|
|
43 |
|
44 |
if ( $this->config->get_boolean( 'lazyload.process_background' ) ) {
|
45 |
$buffer = preg_replace_callback(
|
46 |
-
'~<[^>]+background
|
47 |
array( $this, 'tag_with_background' ), $buffer
|
48 |
);
|
49 |
}
|
@@ -132,7 +132,7 @@ class UserExperience_LazyLoad_Mutator {
|
|
132 |
return $dim;
|
133 |
}
|
134 |
|
135 |
-
$url = ( !empty( $m[4] ) ? $m[4] : ( ( !empty( $m[3] ) ? $m[3] : $
|
136 |
|
137 |
// full url found
|
138 |
if ( isset( $this->posts_by_url[$url] ) ) {
|
@@ -196,10 +196,10 @@ class UserExperience_LazyLoad_Mutator {
|
|
196 |
public function style_offload_background( $matches ) {
|
197 |
list( $match, $v1, $v2, $v, $quote ) = $matches;
|
198 |
$url_match = null;
|
199 |
-
preg_match( '~background
|
200 |
-
$v = preg_replace( '~background
|
201 |
|
202 |
-
return $v1 . $v2 . $v . $quote . ' data-bg=' . $quote . $url_match[
|
203 |
}
|
204 |
|
205 |
|
43 |
|
44 |
if ( $this->config->get_boolean( 'lazyload.process_background' ) ) {
|
45 |
$buffer = preg_replace_callback(
|
46 |
+
'~<[^>]+background(-image)?:\s*url[^>]+>~is',
|
47 |
array( $this, 'tag_with_background' ), $buffer
|
48 |
);
|
49 |
}
|
132 |
return $dim;
|
133 |
}
|
134 |
|
135 |
+
$url = ( !empty( $m[4] ) ? $m[4] : ( ( !empty( $m[3] ) ? $m[3] : $m[2] ) ) );
|
136 |
|
137 |
// full url found
|
138 |
if ( isset( $this->posts_by_url[$url] ) ) {
|
196 |
public function style_offload_background( $matches ) {
|
197 |
list( $match, $v1, $v2, $v, $quote ) = $matches;
|
198 |
$url_match = null;
|
199 |
+
preg_match( '~background(-image)?:\s*(url\([^>]+\))~is', $v, $url_match );
|
200 |
+
$v = preg_replace( '~background(-image)?:\s*url\([^>]+\)[;]?\s*~is', '', $v );
|
201 |
|
202 |
+
return $v1 . $v2 . $v . $quote . ' data-bg=' . $quote . $url_match[2] . $quote;
|
203 |
}
|
204 |
|
205 |
|
UserExperience_LazyLoad_Page_View.php
CHANGED
@@ -54,6 +54,8 @@ $is_google_maps_easy = ( in_array( 'google-maps-easy/gmp.php', $plugins ) );
|
|
54 |
);
|
55 |
|
56 |
?>
|
|
|
|
|
57 |
<tr>
|
58 |
<th>Google Maps</th>
|
59 |
<td>
|
54 |
);
|
55 |
|
56 |
?>
|
57 |
+
</table>
|
58 |
+
<table class="<?php echo esc_attr( Util_Ui::table_class() ); ?>">
|
59 |
<tr>
|
60 |
<th>Google Maps</th>
|
61 |
<td>
|
Util_Ui.php
CHANGED
@@ -640,10 +640,30 @@ class Util_Ui {
|
|
640 |
'value' => $a['value'],
|
641 |
'disabled' => $a['disabled']
|
642 |
) );
|
|
|
|
|
643 |
}
|
644 |
}
|
645 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
646 |
|
|
|
|
|
|
|
|
|
|
|
|
|
647 |
|
648 |
/**
|
649 |
* Renders <tr> element with controls
|
@@ -721,6 +741,17 @@ class Util_Ui {
|
|
721 |
* description => description shown to the user below
|
722 |
*/
|
723 |
static public function config_item( $a ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
724 |
$a = Util_Ui::config_item_preprocess( $a );
|
725 |
|
726 |
if ( $a['label_class'] == 'w3tc_single_column' ) {
|
@@ -938,7 +969,6 @@ class Util_Ui {
|
|
938 |
?>
|
939 |
</div>
|
940 |
<div class="w3tc-gopro-action">
|
941 |
-
<i>Pro Feature!</i>
|
942 |
<button class="button w3tc-gopro-button button-buy-plugin" data-src="<?php echo esc_attr( $button_data_src ) ?>">
|
943 |
Learn more about Pro
|
944 |
</button>
|
640 |
'value' => $a['value'],
|
641 |
'disabled' => $a['disabled']
|
642 |
) );
|
643 |
+
} elseif ( 'none' === $a['control'] ) {
|
644 |
+
esc_html_e( $a['none_label'] );
|
645 |
}
|
646 |
}
|
647 |
|
648 |
+
/**
|
649 |
+
* Get table classes for tables including pro features.
|
650 |
+
*
|
651 |
+
* When on the free version, tables with pro features have additional classes added to help highlight
|
652 |
+
* the premium feature. If the user is on pro, this class is omitted.
|
653 |
+
*
|
654 |
+
* @since 0.14.3
|
655 |
+
*
|
656 |
+
* @return string
|
657 |
+
*/
|
658 |
+
public static function table_class() {
|
659 |
+
$table_class[] = 'form-table';
|
660 |
|
661 |
+
if ( ! Util_Environment::is_w3tc_pro( Dispatcher::config() ) ) {
|
662 |
+
$table_class[] = 'w3tc-pro-feature';
|
663 |
+
}
|
664 |
+
|
665 |
+
return implode( ' ', $table_class );
|
666 |
+
}
|
667 |
|
668 |
/**
|
669 |
* Renders <tr> element with controls
|
741 |
* description => description shown to the user below
|
742 |
*/
|
743 |
static public function config_item( $a ) {
|
744 |
+
/*
|
745 |
+
* Some items we do not want shown in the free edition.
|
746 |
+
*
|
747 |
+
* By default, they will show in free, unless 'show_in_free' is specifically passed in as false.
|
748 |
+
*/
|
749 |
+
$is_w3tc_free = ! Util_Environment::is_w3tc_pro( Dispatcher::config() );
|
750 |
+
$show_in_free = ! isset( $a['show_in_free'] ) || (bool) $a['show_in_free'];
|
751 |
+
if ( ! $show_in_free && $is_w3tc_free ) {
|
752 |
+
return;
|
753 |
+
}
|
754 |
+
|
755 |
$a = Util_Ui::config_item_preprocess( $a );
|
756 |
|
757 |
if ( $a['label_class'] == 'w3tc_single_column' ) {
|
969 |
?>
|
970 |
</div>
|
971 |
<div class="w3tc-gopro-action">
|
|
|
972 |
<button class="button w3tc-gopro-button button-buy-plugin" data-src="<?php echo esc_attr( $button_data_src ) ?>">
|
973 |
Learn more about Pro
|
974 |
</button>
|
inc/lightbox/upgrade.php
CHANGED
@@ -3,28 +3,37 @@ namespace W3TC;
|
|
3 |
|
4 |
if ( !defined( 'W3TC' ) )
|
5 |
die();
|
6 |
-
|
7 |
-
|
8 |
?>
|
9 |
<div id="w3tc-upgrade">
|
10 |
-
|
11 |
-
<div
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
</div>
|
14 |
-
|
15 |
-
<div class="
|
16 |
-
|
17 |
-
<input id="w3tc-purchase" type="button"
|
18 |
-
class="btn w3tc-size image btn-default palette-turquoise secure"
|
19 |
-
value="<?php _e( 'Subscribe to Go Faster Now', 'w3-total-cache' ) ?> " />
|
20 |
-
<?php else: ?>
|
21 |
-
<a id="w3tc-purchase-link"
|
22 |
-
href="<?php echo \W3TC\Licensing_Core::purchase_url( $data_src, $renew_key, $client_id ) ?>"
|
23 |
-
target="_blank"
|
24 |
-
class="btn w3tc-size image btn-default palette-turquoise secure">
|
25 |
-
<?php _e( 'Subscribe to Go Faster Now', 'w3-total-cache' ) ?>
|
26 |
-
</a>
|
27 |
-
<?php endif ?>
|
28 |
</div>
|
29 |
-
|
30 |
</div>
|
3 |
|
4 |
if ( !defined( 'W3TC' ) )
|
5 |
die();
|
|
|
|
|
6 |
?>
|
7 |
<div id="w3tc-upgrade">
|
8 |
+
|
9 |
+
<div id="w3tc_upgrade_header">
|
10 |
+
|
11 |
+
<div>
|
12 |
+
<div>
|
13 |
+
<strong>W3 TOTAL CACHE</strong><br />
|
14 |
+
<span style="font-size:16px;"><?php esc_html_e( 'Unlock more performance options', 'w3-total-cache' ); ?></span>
|
15 |
+
</div>
|
16 |
+
</div>
|
17 |
+
|
18 |
+
<div>
|
19 |
+
<?php if ( \W3TC\Util_Environment::is_https() ): ?>
|
20 |
+
<input id="w3tc-purchase" type="button"
|
21 |
+
class="btn w3tc-size w3tc-palette-tp w3tc-gauge-tp"
|
22 |
+
value="<?php _e( 'Go Faster With Pro', 'w3-total-cache' ) ?> " />
|
23 |
+
<?php else: ?>
|
24 |
+
<a id="w3tc-purchase-link"
|
25 |
+
href="<?php echo \W3TC\Licensing_Core::purchase_url( $data_src, $renew_key, $client_id ) ?>"
|
26 |
+
target="_blank"
|
27 |
+
class="btn w3tc-size w3tc-palette-tp w3tc-gauge-tp">
|
28 |
+
<?php _e( 'Go Faster With Pro', 'w3-total-cache' ) ?>
|
29 |
+
</a>
|
30 |
+
<?php endif ?>
|
31 |
+
</div>
|
32 |
+
|
33 |
</div>
|
34 |
+
|
35 |
+
<div class="w3tc_overlay_upgrade_header">
|
36 |
+
<iframe src="https://www.w3-edge.com/checkout-ad/?data_src=<?php echo esc_attr( $data_src ) ?>&client_id=<?php echo esc_attr( $client_id ) ?>" width="100%" height="410px"></iframe>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
</div>
|
38 |
+
|
39 |
</div>
|
inc/options/dashboard.php
CHANGED
@@ -4,16 +4,31 @@ namespace W3TC;
|
|
4 |
if ( !defined( 'W3TC' ) )
|
5 |
die();
|
6 |
|
7 |
-
|
8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
|
10 |
-
|
11 |
-
|
12 |
-
, $enabled ? "enabled" : "disabled"
|
13 |
-
, $enabled ? __( 'enabled', 'w3-total-cache' ) : __( 'disabled', 'w3-total-cache' )
|
14 |
-
, Util_Environment::w3tc_edition( $this->_config ) );
|
15 |
?>
|
16 |
-
|
17 |
<form id="w3tc_dashboard" action="admin.php?page=<?php echo $this->_page; ?>" method="post">
|
18 |
<p>
|
19 |
Perform a
|
4 |
if ( !defined( 'W3TC' ) )
|
5 |
die();
|
6 |
|
7 |
+
/*
|
8 |
+
* Display the header for our dashboard.
|
9 |
+
*
|
10 |
+
* If we're on the pro version, we'll show the standard W3TC logo and a message stating the user is
|
11 |
+
* on pro. As of 0.14.3, the free version will instead show a really, really nice banner. Really terrific.
|
12 |
+
* Just fantasic. Other banners, not so good. Everyone agrees, believe me.
|
13 |
+
*/
|
14 |
+
if ( Util_Environment::is_w3tc_pro( Dispatcher::config() ) ) {
|
15 |
+
include W3TC_INC_DIR . '/options/common/header.php';
|
16 |
+
|
17 |
+
echo '<p>' .
|
18 |
+
sprintf( __( 'The plugin is currently <span class="w3tc-%s">%s</span> in <strong>%s</strong> mode.', 'w3-total-cache' )
|
19 |
+
, $enabled ? "enabled" : "disabled"
|
20 |
+
, $enabled ? __( 'enabled', 'w3-total-cache' ) : __( 'disabled', 'w3-total-cache' )
|
21 |
+
, Util_Environment::w3tc_edition( $this->_config ) ) .
|
22 |
+
'</p>';
|
23 |
+
} else {
|
24 |
+
// When header.php is not included (above), we need to do our head action and open the wrap.
|
25 |
+
do_action( 'w3tc-dashboard-head' );
|
26 |
+
echo '<div class="wrap" id="w3tc">';
|
27 |
|
28 |
+
include W3TC_INC_DIR . '/options/parts/dashboard_banner.php';
|
29 |
+
}
|
|
|
|
|
|
|
30 |
?>
|
31 |
+
|
32 |
<form id="w3tc_dashboard" action="admin.php?page=<?php echo $this->_page; ?>" method="post">
|
33 |
<p>
|
34 |
Perform a
|
inc/options/general.php
CHANGED
@@ -517,6 +517,8 @@ Util_Ui::config_item( array(
|
|
517 |
<p class="description"><?php _e( 'If selected, detailed caching information will appear at the end of each page in a <acronym title="Hypertext Markup Language">HTML</acronym> comment. View a page\'s source code to review.', 'w3-total-cache' ); ?></p>
|
518 |
</td>
|
519 |
</tr>
|
|
|
|
|
520 |
<tr>
|
521 |
<th><?php _e( 'Purge Logs:', 'w3-total-cache' ); ?></th>
|
522 |
<td>
|
@@ -547,7 +549,7 @@ Util_Ui::config_item( array(
|
|
547 |
\W3TC\Util_Ui::pro_wrap_description(
|
548 |
__( 'Purge Logs provide information on when your cache has been purged and what triggered it.', 'w3-total-cache' ),
|
549 |
array(
|
550 |
-
__( '
|
551 |
),
|
552 |
'general-purge-log'
|
553 |
);
|
517 |
<p class="description"><?php _e( 'If selected, detailed caching information will appear at the end of each page in a <acronym title="Hypertext Markup Language">HTML</acronym> comment. View a page\'s source code to review.', 'w3-total-cache' ); ?></p>
|
518 |
</td>
|
519 |
</tr>
|
520 |
+
</table>
|
521 |
+
<table class="<?php echo esc_attr( Util_Ui::table_class() ); ?>">
|
522 |
<tr>
|
523 |
<th><?php _e( 'Purge Logs:', 'w3-total-cache' ); ?></th>
|
524 |
<td>
|
549 |
\W3TC\Util_Ui::pro_wrap_description(
|
550 |
__( 'Purge Logs provide information on when your cache has been purged and what triggered it.', 'w3-total-cache' ),
|
551 |
array(
|
552 |
+
__( 'Sometimes, you\'ll encounter a complex issue involving your cache being purged for an unknown reason. The Purge Logs functionality can help you easily resolve those issues.', 'w3-total-cache' )
|
553 |
),
|
554 |
'general-purge-log'
|
555 |
);
|
inc/options/minify/css.php
CHANGED
@@ -19,10 +19,17 @@ Util_Ui::config_item_pro( array(
|
|
19 |
'label_class' => 'w3tc_no_trtd',
|
20 |
'excerpt' => __( 'Website visitors cannot navigate your website until a given page is ready - reduce the wait time with this feature.', 'w3-total-cache' ),
|
21 |
'description' => array(
|
22 |
-
__( '
|
23 |
-
|
24 |
-
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
) );
|
27 |
?>
|
28 |
|
19 |
'label_class' => 'w3tc_no_trtd',
|
20 |
'excerpt' => __( 'Website visitors cannot navigate your website until a given page is ready - reduce the wait time with this feature.', 'w3-total-cache' ),
|
21 |
'description' => array(
|
22 |
+
__( 'Faster paint time is a key last step in lowering bounce rates even for repeat page views. Enable this feature to significantly enhance your website’s user experience by reducing wait times and ensuring that users can interact with your website as quickly as possible.', 'w3-total-cache' ),
|
23 |
+
wp_kses(
|
24 |
+
sprintf(
|
25 |
+
// translators: 1 The opening anchor tag linking to our support page, 2 its closing tag.
|
26 |
+
__( 'Need help? Take a look at our %1$spremium support, customization and audit services%2$s.', 'w3-total-cache' ),
|
27 |
+
'<a href="' . esc_url( admin_url( 'admin.php?page=w3tc_support' ) ) . '">',
|
28 |
+
'</a>'
|
29 |
+
),
|
30 |
+
array( 'a' => array( 'href' => array() ) )
|
31 |
+
),
|
32 |
+
),
|
33 |
) );
|
34 |
?>
|
35 |
|
inc/options/parts/dashboard_banner.php
ADDED
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace W3TC;
|
3 |
+
|
4 |
+
if ( !defined( 'W3TC' ) )
|
5 |
+
die();
|
6 |
+
?>
|
7 |
+
|
8 |
+
<div id="w3tc_dashboard_banner" class="metabox-holder">
|
9 |
+
<div class="postbox">
|
10 |
+
<div class="w3tc-postbox-ad">
|
11 |
+
<?php
|
12 |
+
echo wp_kses(
|
13 |
+
sprintf(
|
14 |
+
// Translators: 1 the opening anchor tag to the w3tc_support page, 2 its closing tag, 3 a line break.
|
15 |
+
__( 'Did you know that we offer premium support services?%3$s Our experts will configure W3 Total Cache for you! %1$sClick here for info%2$s.', 'w3-total-cache' ),
|
16 |
+
'<a href="' . admin_url( 'admin.php?page=w3tc_support' ) . '">',
|
17 |
+
'</a>',
|
18 |
+
'<br />'
|
19 |
+
),
|
20 |
+
array(
|
21 |
+
'a' => array(
|
22 |
+
'href' => array()
|
23 |
+
),
|
24 |
+
'br' => array(),
|
25 |
+
)
|
26 |
+
);
|
27 |
+
?>
|
28 |
+
</div>
|
29 |
+
<h3 class="hndle">
|
30 |
+
<img style="height:32px;" src="<?php echo plugins_url( 'w3-total-cache/pub/img/W3TC_dashboard_logo_title.png' ); ?>" />
|
31 |
+
</h3>
|
32 |
+
<div class="inside">
|
33 |
+
<p>
|
34 |
+
<?php
|
35 |
+
echo wp_kses(
|
36 |
+
sprintf(
|
37 |
+
// Translators: 1 an opening strong tag, 2 its closing tag.
|
38 |
+
__( 'You\'re using the Community Edition of W3 Total Cache. Maximize your website\'s speed even more by upgrading to %1$sW3 Total Cache Pro%2$s to unlock advanced anaytics, fragment caching, full site delivery, extension support and other tools that will allow you to completely fine tune your website\'s performance.', 'w3-total-cache' ),
|
39 |
+
'<strong>',
|
40 |
+
'</strong>'
|
41 |
+
),
|
42 |
+
array( 'strong' => array() )
|
43 |
+
);
|
44 |
+
?>
|
45 |
+
</p>
|
46 |
+
<p>
|
47 |
+
<input
|
48 |
+
type="button"
|
49 |
+
class="button w3tc-gopro-button button-buy-plugin"
|
50 |
+
data-src="dashboard_banner" value="<?php esc_attr_e( 'Learn more about Pro', 'w3-total-cache' ) ?>" />
|
51 |
+
</p>
|
52 |
+
</div>
|
53 |
+
</div>
|
54 |
+
</div>
|
inc/options/pgcache.php
CHANGED
@@ -263,9 +263,7 @@ Util_Ui::postbox_header( __( 'Purge Policy: ', 'w3-total-cache' ) . implode( ',
|
|
263 |
'pro_feature' => true,
|
264 |
'pro_excerpt' => __( 'If you’re using the WordPress API make sure to use caching to scale performance.', 'w3-total-cache'),
|
265 |
'pro_description' => array(
|
266 |
-
__( 'If you use WordPress as a backend for integrations, API caching may be for you. Similar to page caching, repeat requests will benefit by having significantly lower response times and consume fewer resources to deliver.', 'w3-total-cache'),
|
267 |
-
|
268 |
-
__( 'Note: If WordPress is not used as a backend, for additional security, the API can be disabled completely.', 'w3-total-cache')
|
269 |
)
|
270 |
),
|
271 |
'disable' => 'Disable <acronym title="REpresentational State Transfer">REST</acronym> <acronym title="Application Programming Interface">API</acronym>',
|
263 |
'pro_feature' => true,
|
264 |
'pro_excerpt' => __( 'If you’re using the WordPress API make sure to use caching to scale performance.', 'w3-total-cache'),
|
265 |
'pro_description' => array(
|
266 |
+
__( 'If you use WordPress as a backend for integrations, API caching may be for you. Similar to page caching, repeat requests will benefit by having significantly lower response times and consume fewer resources to deliver. If WordPress is not used as a backend, for additional security, the API can be disabled completely.', 'w3-total-cache'),
|
|
|
|
|
267 |
)
|
268 |
),
|
269 |
'disable' => 'Disable <acronym title="REpresentational State Transfer">REST</acronym> <acronym title="Application Programming Interface">API</acronym>',
|
pub/css/lightbox.css
CHANGED
@@ -340,18 +340,6 @@ fieldset[disabled] .btn {
|
|
340 |
background-image: url(../img/overlay/ceo.png);
|
341 |
}
|
342 |
|
343 |
-
.w3tc-overlay #w3tc-upgrade ul {
|
344 |
-
width: 480px;
|
345 |
-
float: right;
|
346 |
-
margin-right: 20px;
|
347 |
-
}
|
348 |
-
.w3tc-overlay #w3tc-upgrade li {
|
349 |
-
background: url(../img/overlay/list-check.png) no-repeat 0px 3px;
|
350 |
-
color: #444;
|
351 |
-
list-style-type: none;
|
352 |
-
padding: 0 0 1px 20px;
|
353 |
-
}
|
354 |
-
|
355 |
.w3tc-overlay #w3tc-support-us header h2, header h3 {
|
356 |
margin:0;padding:0;
|
357 |
}
|
@@ -432,14 +420,10 @@ padding: 10px 20px 20px 20px;
|
|
432 |
padding: 10px 10px 10px 10px;
|
433 |
}
|
434 |
.w3tc_overlay_upgrade_header {
|
435 |
-
padding: 10px 10px 10px 10px;
|
436 |
background-color: #f3f3f3;
|
437 |
color: #cacaca;
|
438 |
-
|
439 |
-
|
440 |
-
border-top-right-radius: 6px;
|
441 |
-
-webkit-border-top-left-radius: 6px;
|
442 |
-
-webkit-border-top-right-radius: 6px;
|
443 |
}
|
444 |
|
445 |
.w3tc_overlay_upgrade_content_l {
|
@@ -491,9 +475,82 @@ padding: 10px 20px 20px 20px;
|
|
491 |
padding: none;
|
492 |
float: none;
|
493 |
}
|
|
|
494 |
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
499 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
background-image: url(../img/overlay/ceo.png);
|
341 |
}
|
342 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
343 |
.w3tc-overlay #w3tc-support-us header h2, header h3 {
|
344 |
margin:0;padding:0;
|
345 |
}
|
420 |
padding: 10px 10px 10px 10px;
|
421 |
}
|
422 |
.w3tc_overlay_upgrade_header {
|
|
|
423 |
background-color: #f3f3f3;
|
424 |
color: #cacaca;
|
425 |
+
height: calc(100% - 80px);
|
426 |
+
box-sizing: border-box;
|
|
|
|
|
|
|
427 |
}
|
428 |
|
429 |
.w3tc_overlay_upgrade_content_l {
|
475 |
padding: none;
|
476 |
float: none;
|
477 |
}
|
478 |
+
}
|
479 |
|
480 |
+
|
481 |
+
/**
|
482 |
+
* Colors.
|
483 |
+
*/
|
484 |
+
|
485 |
+
/* "tp" is Turquoise Pearl, courtesty of https://hexcolor.co/hex/30bec4. */
|
486 |
+
input.w3tc-palette-tp,
|
487 |
+
a.w3tc-palette-tp {
|
488 |
+
background-color: #30bec4;
|
489 |
+
color: #fff;
|
490 |
}
|
491 |
+
|
492 |
+
/* A button with an icon gauge to the right. */
|
493 |
+
#w3tc_upgrade_header .w3tc-gauge-tp {
|
494 |
+
background-image: url(../img/overlay/gauge-bg-tp.png);
|
495 |
+
background-position: calc(100% - 15px) center;
|
496 |
+
background-repeat: no-repeat;
|
497 |
+
text-decoration: none;
|
498 |
+
padding: 7px 60px 7px 12px;
|
499 |
+
}
|
500 |
+
|
501 |
+
|
502 |
+
/**
|
503 |
+
* Upgrade modal.
|
504 |
+
*/
|
505 |
+
|
506 |
+
#w3tc-upgrade {
|
507 |
+
padding: 10px;
|
508 |
+
box-sizing: border-box;
|
509 |
+
}
|
510 |
+
|
511 |
+
/* The close button will be different for the upgrade modal. */
|
512 |
+
.w3tc-overlay-upgrade .lightbox-close {
|
513 |
+
border-radius: 50%;
|
514 |
+
padding: 0;
|
515 |
+
background-position: 8px;
|
516 |
+
margin: 0;
|
517 |
+
top: -12px;
|
518 |
+
right: -12px;
|
519 |
+
width: 25px;
|
520 |
+
height: 25px;
|
521 |
+
}
|
522 |
+
|
523 |
+
#w3tc_upgrade_header {
|
524 |
+
display: flex;
|
525 |
+
background: #000;
|
526 |
+
border-bottom: 5px solid #30bec4;
|
527 |
+
color: #fff;
|
528 |
+
height: 75px;
|
529 |
+
position: relative;
|
530 |
+
}
|
531 |
+
|
532 |
+
#w3tc_upgrade_header > div {
|
533 |
+
flex: 1;
|
534 |
+
}
|
535 |
+
|
536 |
+
#w3tc_upgrade_header > div:first-child div {
|
537 |
+
position: absolute;
|
538 |
+
top: 17px;
|
539 |
+
left: 90px;
|
540 |
+
font-size: 20px;
|
541 |
+
line-height: 20px;
|
542 |
+
}
|
543 |
+
|
544 |
+
/* Go faster now button. It could be an anchor or an input. */
|
545 |
+
#w3tc_upgrade_header > div:nth-child(2) > *:first-child {
|
546 |
+
position: absolute;
|
547 |
+
top: 20px;
|
548 |
+
right: 90px;
|
549 |
+
}
|
550 |
+
|
551 |
+
/* Ensure a consistent background with the iframe and the modal elements. */
|
552 |
+
.w3tc-overlay-upgrade,
|
553 |
+
.w3tc_overlay_upgrade_header,
|
554 |
+
.w3tc-overlay-upgrade .lightbox-close {
|
555 |
+
background-color: #f1f1f1;
|
556 |
+
}
|
pub/css/options.css
CHANGED
@@ -470,46 +470,17 @@ th.w3tc_extensions_manage_column_check {
|
|
470 |
white-space: nowrap;
|
471 |
}
|
472 |
|
473 |
-
.w3tc-gopro {
|
474 |
-
background: #fbfbfb;
|
475 |
-
border-left: 4px solid #46b450;
|
476 |
-
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
|
477 |
-
padding: 5px;
|
478 |
-
grid-template-columns: 1fr auto;
|
479 |
-
display: grid;
|
480 |
-
grid-gap: 30px;
|
481 |
-
align-items: flex-start;
|
482 |
-
}
|
483 |
-
|
484 |
-
.w3tc-gopro-action strong,
|
485 |
-
.w3tc-gopro-action i {
|
486 |
-
display: block;
|
487 |
-
text-align: center;
|
488 |
-
}
|
489 |
-
|
490 |
-
.w3tc-gopro-action i {
|
491 |
-
margin-top: 2px;
|
492 |
-
margin-bottom: 10px;
|
493 |
-
}
|
494 |
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
.w3tc-gopro-more:focus {
|
500 |
-
box-shadow: none;
|
501 |
-
outline: none;
|
502 |
-
}
|
503 |
|
504 |
.w3tc-gopro-more .dashicons {
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
}
|
509 |
|
510 |
-
.w3tc-gopro-excerpt {
|
511 |
-
display: block;
|
512 |
-
}
|
513 |
.w3tc-gopro-description {
|
514 |
display: block;
|
515 |
max-height: 0px;
|
@@ -517,9 +488,8 @@ th.w3tc_extensions_manage_column_check {
|
|
517 |
overflow: hidden;
|
518 |
}
|
519 |
|
520 |
-
|
521 |
-
|
522 |
-
margin-left: -9px;
|
523 |
}
|
524 |
|
525 |
.button.w3tc-gopro-button {
|
@@ -535,3 +505,155 @@ th.w3tc_extensions_manage_column_check {
|
|
535 |
background: #009900;
|
536 |
color: #fff;
|
537 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
470 |
white-space: nowrap;
|
471 |
}
|
472 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
473 |
|
474 |
+
/**
|
475 |
+
* Go pro features.
|
476 |
+
*/
|
|
|
|
|
|
|
|
|
|
|
477 |
|
478 |
.w3tc-gopro-more .dashicons {
|
479 |
+
font-size: 1em;
|
480 |
+
margin-left: -3px;
|
481 |
+
vertical-align: baseline;
|
482 |
}
|
483 |
|
|
|
|
|
|
|
484 |
.w3tc-gopro-description {
|
485 |
display: block;
|
486 |
max-height: 0px;
|
488 |
overflow: hidden;
|
489 |
}
|
490 |
|
491 |
+
.w3tc-gopro-action {
|
492 |
+
margin-top: 15px;
|
|
|
493 |
}
|
494 |
|
495 |
.button.w3tc-gopro-button {
|
505 |
background: #009900;
|
506 |
color: #fff;
|
507 |
}
|
508 |
+
|
509 |
+
table:not(.w3tc-pro-feature) .w3tc-gopro {
|
510 |
+
border-left: 3px solid green;
|
511 |
+
margin: 5px -20px 5px -13px;
|
512 |
+
box-shadow: 0 5px 5px -3px #888;
|
513 |
+
background: #efefef;
|
514 |
+
padding: 10px;
|
515 |
+
background-image: linear-gradient( to right, #f1f1f1, #f1f1f1, #f1f1f1, #f1f1f1, #e7f3f3, #56bec1, #16252c );
|
516 |
+
position: relative;
|
517 |
+
padding-right: 280px;
|
518 |
+
}
|
519 |
+
|
520 |
+
/* Pro features on the Extensions page. */
|
521 |
+
#the-list .w3tc-gopro {
|
522 |
+
margin-right: -10px;
|
523 |
+
padding-right: 196px;
|
524 |
+
}
|
525 |
+
|
526 |
+
|
527 |
+
/**
|
528 |
+
* A Table for a pro feature.
|
529 |
+
*/
|
530 |
+
|
531 |
+
table.w3tc-pro-feature {
|
532 |
+
box-shadow: 0 5px 5px -3px #888;
|
533 |
+
margin-left: -10px;
|
534 |
+
margin-bottom: 45px;
|
535 |
+
width: calc(100% + 20px);
|
536 |
+
background: #fff;
|
537 |
+
position: relative;
|
538 |
+
}
|
539 |
+
|
540 |
+
table.w3tc-pro-feature:after,
|
541 |
+
table:not(.w3tc-pro-feature) .w3tc-gopro:after {
|
542 |
+
background-image: url("../img/transparent-comet.png");
|
543 |
+
background-repeat: no-repeat;
|
544 |
+
background-position: top right;
|
545 |
+
background-size: 100% 100%;
|
546 |
+
content:"";
|
547 |
+
width: 321px;
|
548 |
+
height: 174px;
|
549 |
+
position: absolute;
|
550 |
+
top: 0;
|
551 |
+
right: 0;
|
552 |
+
}
|
553 |
+
|
554 |
+
table.w3tc-pro-feature th,
|
555 |
+
table.w3tc-pro-feature td {
|
556 |
+
display: block;
|
557 |
+
box-sizing: border-box;
|
558 |
+
clear: both;
|
559 |
+
padding: 12px;
|
560 |
+
margin: 0;
|
561 |
+
}
|
562 |
+
|
563 |
+
table.w3tc-pro-feature th {
|
564 |
+
background: #294149;
|
565 |
+
color: #fff;
|
566 |
+
border-bottom: 5px solid #65bbbd;
|
567 |
+
width: 100%;
|
568 |
+
}
|
569 |
+
|
570 |
+
table.w3tc-pro-feature td {
|
571 |
+
background-image: linear-gradient( to right, #f1f1f1, #f1f1f1, #f1f1f1, #e7f3f3, #56bec1, #16252c );
|
572 |
+
padding-right: 401.25px;
|
573 |
+
}
|
574 |
+
|
575 |
+
/* Size of comet background for pro features not in a pro table. */
|
576 |
+
table:not(.w3tc-pro-feature) .w3tc-gopro:after {
|
577 |
+
width: 280px;
|
578 |
+
height: 152px;
|
579 |
+
}
|
580 |
+
|
581 |
+
/* Size of comet background for pro features on Extensions page. */
|
582 |
+
#the-list .plugin-description .w3tc-gopro:after {
|
583 |
+
width: 196px;
|
584 |
+
height: 106px;
|
585 |
+
}
|
586 |
+
|
587 |
+
@media ( max-width: 782px ) {
|
588 |
+
table.w3tc-pro-feature:after {
|
589 |
+
background-image: none;
|
590 |
+
}
|
591 |
+
|
592 |
+
table.w3tc-pro-feature td {
|
593 |
+
background-image: none;
|
594 |
+
}
|
595 |
+
|
596 |
+
table.w3tc-pro-feature td {
|
597 |
+
padding: 12px;
|
598 |
+
}
|
599 |
+
|
600 |
+
/* Pro features that aren't a <table>. A <tr> for example - User Experience > Lazy Load Google Maps. */
|
601 |
+
table:not(.w3tc-pro-feature) .w3tc-gopro {
|
602 |
+
padding-right: initial;
|
603 |
+
background: #efefef;
|
604 |
+
}
|
605 |
+
|
606 |
+
table:not(.w3tc-pro-feature) .w3tc-gopro:after {
|
607 |
+
background: none;
|
608 |
+
}
|
609 |
+
}
|
610 |
+
|
611 |
+
/**
|
612 |
+
* Banner ad on dashboard.
|
613 |
+
*/
|
614 |
+
|
615 |
+
#w3tc_dashboard_banner {
|
616 |
+
margin-right: 200px;
|
617 |
+
}
|
618 |
+
|
619 |
+
#w3tc #w3tc_dashboard_banner .inside {
|
620 |
+
background-image: url("../img/transparent-comet-moon.png"), linear-gradient( to right, #fff 60%, #56bec1 100% );
|
621 |
+
background-repeat: no-repeat;
|
622 |
+
background-position: top right;
|
623 |
+
background-size: contain;
|
624 |
+
margin: 0;
|
625 |
+
padding: 0 250px 12px 12px;
|
626 |
+
}
|
627 |
+
|
628 |
+
#w3tc_dashboard_banner .inside > p:first-of-type {
|
629 |
+
margin-top: 0;
|
630 |
+
padding-top: 1em;
|
631 |
+
}
|
632 |
+
|
633 |
+
#w3tc_dashboard_banner .hndle {
|
634 |
+
background: #eee;
|
635 |
+
border-bottom: 3px solid #65bbbd;
|
636 |
+
}
|
637 |
+
|
638 |
+
#w3tc_dashboard_banner .w3tc-postbox-ad {
|
639 |
+
position: absolute;
|
640 |
+
top: 13px;
|
641 |
+
right: 10px;
|
642 |
+
font-size: 12px;
|
643 |
+
max-width: calc( 100% - 200px );
|
644 |
+
}
|
645 |
+
|
646 |
+
@media screen and (max-width: 960px) {
|
647 |
+
#w3tc #w3tc_dashboard_banner {
|
648 |
+
margin: 45px auto auto auto;
|
649 |
+
}
|
650 |
+
|
651 |
+
#w3tc #w3tc_dashboard_banner .inside {
|
652 |
+
background: none;
|
653 |
+
padding: 12px;
|
654 |
+
}
|
655 |
+
|
656 |
+
#w3tc #w3tc_dashboard_banner .inside > p:first-of-type {
|
657 |
+
padding-top: initial;
|
658 |
+
}
|
659 |
+
}
|
pub/css/widget.css
CHANGED
@@ -15,6 +15,11 @@
|
|
15 |
margin-bottom: 15px;
|
16 |
}
|
17 |
|
|
|
|
|
|
|
|
|
|
|
18 |
#w3tc-dashboard-widgets #normal-sortables #w3tc_spreadtheword label{
|
19 |
display: block;
|
20 |
width: 70px;
|
15 |
margin-bottom: 15px;
|
16 |
}
|
17 |
|
18 |
+
#w3tc-dashboard-widgets ul.w3tc-visible-ul li {
|
19 |
+
list-style-type: disc;
|
20 |
+
margin-bottom: 0;
|
21 |
+
}
|
22 |
+
|
23 |
#w3tc-dashboard-widgets #normal-sortables #w3tc_spreadtheword label{
|
24 |
display: block;
|
25 |
width: 70px;
|
pub/fonts/source-a.svg
CHANGED
@@ -1,3 +1 @@
|
|
1 |
-
|
2 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
-
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16" width="16" height="16"><defs><path d="M10.39 6.69C10.79 6.9 11.26 6.9 11.67 6.7C12.35 6.36 13.75 5.68 14.43 5.34C14.71 5.2 14.71 4.8 14.43 4.65C13.12 3.96 9.87 2.25 8.56 1.57C8.11 1.33 7.57 1.3 7.09 1.49C6.33 1.8 4.85 2.4 4.11 2.7C3.78 2.84 3.76 3.29 4.07 3.46C5.46 4.17 8.97 5.96 10.39 6.69Z" id="bEaEbzNdf"></path><path d="M9.02 14.58C8.7 14.76 8.33 14.45 8.46 14.11C8.97 12.77 10.26 9.32 10.81 7.87C10.92 7.57 11.13 7.33 11.41 7.19C12.17 6.8 13.89 5.92 14.62 5.54C14.83 5.44 15.06 5.64 14.99 5.86C14.55 7.17 13.45 10.49 13.02 11.79C12.89 12.19 12.62 12.53 12.25 12.73C11.42 13.21 9.78 14.15 9.02 14.58Z" id="aSR8reqKk"></path><path d="M3.95 3.7L10.24 6.91L10.39 7.01L10.5 7.13L10.58 7.28L10.62 7.45L10.62 7.62L10.58 7.79L8.23 14.02L8.14 14.18L8.02 14.3L7.87 14.37L7.7 14.41L7.53 14.39L7.36 14.33L1.64 10.97L1.39 10.78L1.2 10.55L1.07 10.28L1 9.99L1 9.68L1.07 9.38L3.04 4.06L3.13 3.89L3.26 3.76L3.42 3.67L3.59 3.63L3.77 3.64L3.95 3.7ZM3.76 9.39L4.66 8.34L4.66 9.93L5.06 10.11L6.23 8.91L7.38 9.51L6.79 9.86L6.91 10.05L6.98 10.2L7.02 10.33L7.01 10.42L6.95 10.49L6.84 10.53L6.74 10.51L6.62 10.43L6.48 10.29L6.3 10.11L6.15 10.11L6.01 10.1L5.89 10.1L5.79 10.11L5.7 10.11L6.1 10.65L6.47 11.04L6.82 11.27L7.15 11.35L7.45 11.28L7.76 11.03L7.88 10.74L7.86 10.47L7.75 10.24L7.61 10.11L7.7 10.04L7.82 9.94L7.97 9.82L8.17 9.68L8.39 9.51L6.18 8.19L5.22 9.16L5.13 7.66L4.73 7.44L3.9 8.42L3.9 6.9L3.28 6.58L3.28 9.09L3.76 9.39Z" id="b5dPBHXJfL"></path></defs><g><g><g><use xlink:href="#bEaEbzNdf" opacity="1" fill="#000000" fill-opacity="1"></use></g><g><use xlink:href="#aSR8reqKk" opacity="1" fill="#000000" fill-opacity="1"></use></g><g><use xlink:href="#b5dPBHXJfL" opacity="1" fill="#000000" fill-opacity="1"></use></g></g></g></svg>
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" preserveAspectRatio="xMidYMid meet" version="1.1" viewBox="0 0 16 16"><defs><path id="bEaEbzNdf" d="M10.39 6.69C10.79 6.9 11.26 6.9 11.67 6.7C12.35 6.36 13.75 5.68 14.43 5.34C14.71 5.2 14.71 4.8 14.43 4.65C13.12 3.96 9.87 2.25 8.56 1.57C8.11 1.33 7.57 1.3 7.09 1.49C6.33 1.8 4.85 2.4 4.11 2.7C3.78 2.84 3.76 3.29 4.07 3.46C5.46 4.17 8.97 5.96 10.39 6.69Z"/><path id="aSR8reqKk" d="M9.02 14.58C8.7 14.76 8.33 14.45 8.46 14.11C8.97 12.77 10.26 9.32 10.81 7.87C10.92 7.57 11.13 7.33 11.41 7.19C12.17 6.8 13.89 5.92 14.62 5.54C14.83 5.44 15.06 5.64 14.99 5.86C14.55 7.17 13.45 10.49 13.02 11.79C12.89 12.19 12.62 12.53 12.25 12.73C11.42 13.21 9.78 14.15 9.02 14.58Z"/><path id="b5dPBHXJfL" d="M3.95 3.7L10.24 6.91L10.39 7.01L10.5 7.13L10.58 7.28L10.62 7.45L10.62 7.62L10.58 7.79L8.23 14.02L8.14 14.18L8.02 14.3L7.87 14.37L7.7 14.41L7.53 14.39L7.36 14.33L1.64 10.97L1.39 10.78L1.2 10.55L1.07 10.28L1 9.99L1 9.68L1.07 9.38L3.04 4.06L3.13 3.89L3.26 3.76L3.42 3.67L3.59 3.63L3.77 3.64L3.95 3.7ZM3.76 9.39L4.66 8.34L4.66 9.93L5.06 10.11L6.23 8.91L7.38 9.51L6.79 9.86L6.91 10.05L6.98 10.2L7.02 10.33L7.01 10.42L6.95 10.49L6.84 10.53L6.74 10.51L6.62 10.43L6.48 10.29L6.3 10.11L6.15 10.11L6.01 10.1L5.89 10.1L5.79 10.11L5.7 10.11L6.1 10.65L6.47 11.04L6.82 11.27L7.15 11.35L7.45 11.28L7.76 11.03L7.88 10.74L7.86 10.47L7.75 10.24L7.61 10.11L7.7 10.04L7.82 9.94L7.97 9.82L8.17 9.68L8.39 9.51L6.18 8.19L5.22 9.16L5.13 7.66L4.73 7.44L3.9 8.42L3.9 6.9L3.28 6.58L3.28 9.09L3.76 9.39Z"/></defs><g><g><g><use fill="#000" fill-opacity="1" opacity="1" xlink:href="#bEaEbzNdf"/></g><g><use fill="#000" fill-opacity="1" opacity="1" xlink:href="#aSR8reqKk"/></g><g><use fill="#000" fill-opacity="1" opacity="1" xlink:href="#b5dPBHXJfL"/></g></g></g></svg>
|
|
|
|
pub/fonts/w3tc.svg
CHANGED
@@ -1,11 +1 @@
|
|
1 |
-
|
2 |
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
-
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
-
<metadata>Generated by IcoMoon</metadata>
|
5 |
-
<defs>
|
6 |
-
<font id="w3tc" horiz-adv-x="1024">
|
7 |
-
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
8 |
-
<missing-glyph horiz-adv-x="1024" />
|
9 |
-
<glyph unicode=" " horiz-adv-x="512" d="" />
|
10 |
-
<glyph unicode="A" glyph-name="menu-icon" d="M664.96 531.84c25.6-13.44 55.68-13.44 81.92-0.64 43.52 21.76 133.12 65.28 176.64 87.040 17.92 8.96 17.92 34.56 0 44.16-83.84 44.16-291.84 153.6-375.68 197.12-28.8 15.36-63.36 17.28-94.080 5.12-48.64-19.84-143.36-58.24-190.72-77.44-21.12-8.96-22.4-37.76-2.56-48.64 88.96-45.44 313.6-160 404.48-206.72zM577.28 26.88c-20.48-11.52-44.16 8.32-35.84 30.080 32.64 85.76 115.2 306.56 150.4 399.36 7.040 19.2 20.48 34.56 38.4 43.52 48.64 24.96 158.72 81.28 205.44 105.6 13.44 6.4 28.16-6.4 23.68-20.48-28.16-83.84-98.56-296.32-126.080-379.52-8.32-25.6-25.6-47.36-49.28-60.16-53.12-30.72-158.080-90.88-206.72-118.4zM252.8 723.2l402.56-205.44 9.6-6.4 7.040-7.68 5.12-9.6 2.56-10.88v-10.88l-2.56-10.88-150.4-398.72-5.76-10.24-7.68-7.68-9.6-4.48-10.88-2.56-10.88 1.28-10.88 3.84-366.080 215.040-16 12.16-12.16 14.72-8.32 17.28-4.48 18.56v19.84l4.48 19.2 126.080 340.48 5.76 10.88 8.32 8.32 10.24 5.76 10.88 2.56 11.52-0.64 11.52-3.84zM240.64 359.040l57.6 67.2v-101.76l25.6-11.52 74.88 76.8 73.6-38.4-37.76-22.4 7.68-12.16 4.48-9.6 2.56-8.32-0.64-5.76-3.84-4.48-7.040-2.56-6.4 1.28-7.68 5.12-20.48 20.48h-9.6l-8.96 0.64h-7.68l-6.4-0.64h-5.76l25.6-34.56 23.68-24.96 22.4-14.72 21.12-5.12 19.2 4.48 19.84 16 7.68 18.56-1.28 17.28-7.040 14.72-8.96 8.32 5.76 4.48 7.68 6.4 9.6 7.68 12.8 8.96 14.080 10.88-141.44 84.48-61.44-62.080-5.76 96-25.6 14.080-53.12-62.72v97.28l-39.68 20.48v-160.64l30.72-19.2z" />
|
11 |
-
</font></defs></svg>
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg"><metadata>Generated by IcoMoon</metadata><defs><font id="w3tc" horiz-adv-x="1024"><font-face ascent="960" descent="-64" units-per-em="1024"/><glyph horiz-adv-x="512"/><glyph d="M664.96 531.84c25.6-13.44 55.68-13.44 81.92-0.64 43.52 21.76 133.12 65.28 176.64 87.040 17.92 8.96 17.92 34.56 0 44.16-83.84 44.16-291.84 153.6-375.68 197.12-28.8 15.36-63.36 17.28-94.080 5.12-48.64-19.84-143.36-58.24-190.72-77.44-21.12-8.96-22.4-37.76-2.56-48.64 88.96-45.44 313.6-160 404.48-206.72zM577.28 26.88c-20.48-11.52-44.16 8.32-35.84 30.080 32.64 85.76 115.2 306.56 150.4 399.36 7.040 19.2 20.48 34.56 38.4 43.52 48.64 24.96 158.72 81.28 205.44 105.6 13.44 6.4 28.16-6.4 23.68-20.48-28.16-83.84-98.56-296.32-126.080-379.52-8.32-25.6-25.6-47.36-49.28-60.16-53.12-30.72-158.080-90.88-206.72-118.4zM252.8 723.2l402.56-205.44 9.6-6.4 7.040-7.68 5.12-9.6 2.56-10.88v-10.88l-2.56-10.88-150.4-398.72-5.76-10.24-7.68-7.68-9.6-4.48-10.88-2.56-10.88 1.28-10.88 3.84-366.080 215.040-16 12.16-12.16 14.72-8.32 17.28-4.48 18.56v19.84l4.48 19.2 126.080 340.48 5.76 10.88 8.32 8.32 10.24 5.76 10.88 2.56 11.52-0.64 11.52-3.84zM240.64 359.040l57.6 67.2v-101.76l25.6-11.52 74.88 76.8 73.6-38.4-37.76-22.4 7.68-12.16 4.48-9.6 2.56-8.32-0.64-5.76-3.84-4.48-7.040-2.56-6.4 1.28-7.68 5.12-20.48 20.48h-9.6l-8.96 0.64h-7.68l-6.4-0.64h-5.76l25.6-34.56 23.68-24.96 22.4-14.72 21.12-5.12 19.2 4.48 19.84 16 7.68 18.56-1.28 17.28-7.040 14.72-8.96 8.32 5.76 4.48 7.68 6.4 9.6 7.68 12.8 8.96 14.080 10.88-141.44 84.48-61.44-62.080-5.76 96-25.6 14.080-53.12-62.72v97.28l-39.68 20.48v-160.64l30.72-19.2z" glyph-name="menu-icon" unicode="A"/></font></defs></svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pub/img/overlay/gauge-bg-tp.png
ADDED
Binary file
|
pub/img/overlay/list-check.png
DELETED
Binary file
|
pub/img/stats-bg.png
CHANGED
Binary file
|
pub/img/transparent-comet-moon.png
ADDED
Binary file
|
pub/img/transparent-comet.png
ADDED
Binary file
|
pub/img/usage-statistics-widget.png
CHANGED
Binary file
|
pub/img/w3tc_stackpath_logo.svg
CHANGED
@@ -1,40 +1 @@
|
|
1 |
-
|
2 |
-
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="Logo" x="0px" y="0px" viewBox="0 0 174 24" style="enable-background:new 0 0 174 24;" xml:space="preserve">
|
4 |
-
<style type="text/css">
|
5 |
-
.st0{fill:#000000;}
|
6 |
-
.st1{fill:url(#SVGID_1_);}
|
7 |
-
.st2{fill:url(#SVGID_2_);}
|
8 |
-
</style>
|
9 |
-
<g>
|
10 |
-
<g>
|
11 |
-
<g>
|
12 |
-
<path class="st0" d="M73.379,15.362l0.03,0.092c-0.102,2.639-0.876,4.651-2.322,6.043c-1.446,1.39-3.544,2.085-6.292,2.085 c-2.759,0-5.004-0.855-6.73-2.565c-1.728-1.709-2.59-3.93-2.59-6.658V9.663c0-2.721,0.829-4.936,2.489-6.653 c1.661-1.714,3.82-2.572,6.478-2.572c2.82,0,4.977,0.717,6.468,2.148c1.493,1.431,2.336,3.467,2.53,6.103l-0.031,0.093h-5.043 c-0.071-1.462-0.396-2.55-0.973-3.26c-0.579-0.711-1.562-1.066-2.951-1.066c-1.176,0-2.101,0.476-2.775,1.429 c-0.674,0.954-1.011,2.202-1.011,3.746v4.729c0,1.555,0.368,2.812,1.104,3.769c0.736,0.958,1.748,1.437,3.036,1.437 c1.246,0,2.13-0.334,2.651-1.005c0.522-0.669,0.819-1.734,0.891-3.198H73.379z"></path>
|
13 |
-
<path class="st0" d="M13.187,17.275c0-0.793-0.261-1.406-0.781-1.839c-0.521-0.432-1.457-0.89-2.806-1.375 c-2.82-0.896-4.91-1.855-6.269-2.882c-1.359-1.024-2.039-2.505-2.039-4.441c0-1.885,0.809-3.41,2.43-4.573 C5.342,1,7.397,0.418,9.892,0.418c2.473,0,4.499,0.641,6.078,1.923c1.578,1.282,2.342,2.934,2.291,4.952L18.23,7.386h-5.027 c0-0.895-0.302-1.626-0.906-2.186c-0.603-0.561-1.435-0.842-2.499-0.842c-1.042,0-1.86,0.232-2.453,0.696 C6.754,5.517,6.458,6.088,6.458,6.768c0,0.66,0.298,1.188,0.896,1.585c0.599,0.396,1.719,0.893,3.364,1.491 c2.535,0.762,4.444,1.699,5.726,2.811c1.282,1.112,1.923,2.643,1.923,4.589c0,1.977-0.763,3.525-2.291,4.643 c-1.527,1.117-3.554,1.676-6.078,1.676c-2.535,0-4.726-0.641-6.575-1.923c-1.85-1.283-2.75-3.13-2.698-5.539l0.031-0.093h5.043 c0,1.297,0.347,2.225,1.042,2.78c0.695,0.557,1.748,0.834,3.158,0.834c1.074,0,1.872-0.216,2.4-0.648 C12.924,18.541,13.187,17.974,13.187,17.275"></path>
|
14 |
-
<polygon class="st0" points="19.577,0.567 19.577,5.016 25.685,5.016 25.685,23.37 30.323,23.37 30.323,5.016 36.393,5.016 36.393,0.567 "></polygon>
|
15 |
-
<polygon class="st0" points="130.629,0.567 130.629,5.016 136.737,5.016 136.737,23.37 141.375,23.37 141.375,5.016 147.445,5.016 147.445,0.567 "></polygon>
|
16 |
-
<polygon class="st0" points="162.791,0.567 162.791,9.728 155.248,9.728 155.248,0.567 150.649,0.567 150.649,23.37 155.248,23.37 155.248,14.173 162.791,14.173 162.791,23.37 167.39,23.37 167.39,0.567 "></polygon>
|
17 |
-
<path class="st0" d="M101.775,15.549v7.815h-5.268V0.561h8.477c2.683,0,4.812,0.692,6.387,2.076 c1.574,1.384,2.362,3.192,2.362,5.427c0,2.244-0.789,4.054-2.362,5.426c-1.575,1.374-3.704,2.06-6.387,2.06H101.775z M101.775,11.478h3.209c1.14,0,2.007-0.315,2.603-0.947c0.596-0.631,0.894-1.443,0.894-2.434c0-1.014-0.298-1.843-0.894-2.492 c-0.595-0.646-1.462-0.97-2.603-0.97h-3.209V11.478z"></path>
|
18 |
-
<path class="st0" d="M93.306,22.301c-2.66-3.08-6.816-7.855-8.989-10.408l8.989-10.445V0.567h-1.418h-3.799 c-2.413,2.851-4.79,5.589-7.203,8.436V0.567h-4.6V23.37h4.6v-8.437l7.24,8.437h3.763h1.418V22.301z"></path>
|
19 |
-
<polygon class="st0" points="119.906,0.566 112.062,23.369 116.964,23.369 124.997,0.566 "></polygon>
|
20 |
-
<polygon class="st0" points="42.247,0.566 34.402,23.369 39.304,23.369 47.337,0.566 "></polygon>
|
21 |
-
<g>
|
22 |
-
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="58.0636" y1="15.3441" x2="43.8426" y2="10.168">
|
23 |
-
<stop offset="0.0555" style="stop-color:#000000"></stop>
|
24 |
-
<stop offset="1" style="stop-color:#000000;stop-opacity:0.2"></stop>
|
25 |
-
</linearGradient>
|
26 |
-
<polygon class="st1" points="47.337,0.567 44.883,7.533 47.337,14.554 42.41,14.554 40.844,18.998 48.732,18.998 50.24,23.369 55.143,23.369 "></polygon>
|
27 |
-
</g>
|
28 |
-
<g>
|
29 |
-
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="135.723" y1="15.3441" x2="121.5019" y2="10.168">
|
30 |
-
<stop offset="0.0555" style="stop-color:#000000"></stop>
|
31 |
-
<stop offset="1" style="stop-color:#000000;stop-opacity:0.2"></stop>
|
32 |
-
</linearGradient>
|
33 |
-
<polygon class="st2" points="124.996,0.567 122.542,7.533 124.996,14.554 120.069,14.554 118.504,18.998 126.392,18.998 127.899,23.369 132.802,23.369 "></polygon>
|
34 |
-
</g>
|
35 |
-
</g>
|
36 |
-
</g>
|
37 |
-
</g>
|
38 |
-
<path class="st0" d="M170.618,0.945h-0.696v1.895h-0.469V0.945h-0.688V0.565h1.853V0.945z"></path>
|
39 |
-
<path class="st0" d="M171.497,0.565l0.584,1.649l0.581-1.649h0.615v2.274h-0.47V2.218l0.047-1.073l-0.614,1.695h-0.321l-0.612-1.693 l0.047,1.072v0.622h-0.469V0.565H171.497z"></path>
|
40 |
-
</svg>
|
1 |
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="Logo" x="0" y="0" viewBox="0 0 174 24" xml:space="preserve" style="enable-background:new 0 0 174 24"><style type="text/css">.st0{fill:#000}.st1{fill:url(#SVGID_1_)}.st2{fill:url(#SVGID_2_)}</style><g><g><g><path d="M73.379,15.362l0.03,0.092c-0.102,2.639-0.876,4.651-2.322,6.043c-1.446,1.39-3.544,2.085-6.292,2.085 c-2.759,0-5.004-0.855-6.73-2.565c-1.728-1.709-2.59-3.93-2.59-6.658V9.663c0-2.721,0.829-4.936,2.489-6.653 c1.661-1.714,3.82-2.572,6.478-2.572c2.82,0,4.977,0.717,6.468,2.148c1.493,1.431,2.336,3.467,2.53,6.103l-0.031,0.093h-5.043 c-0.071-1.462-0.396-2.55-0.973-3.26c-0.579-0.711-1.562-1.066-2.951-1.066c-1.176,0-2.101,0.476-2.775,1.429 c-0.674,0.954-1.011,2.202-1.011,3.746v4.729c0,1.555,0.368,2.812,1.104,3.769c0.736,0.958,1.748,1.437,3.036,1.437 c1.246,0,2.13-0.334,2.651-1.005c0.522-0.669,0.819-1.734,0.891-3.198H73.379z" class="st0"/><path d="M13.187,17.275c0-0.793-0.261-1.406-0.781-1.839c-0.521-0.432-1.457-0.89-2.806-1.375 c-2.82-0.896-4.91-1.855-6.269-2.882c-1.359-1.024-2.039-2.505-2.039-4.441c0-1.885,0.809-3.41,2.43-4.573 C5.342,1,7.397,0.418,9.892,0.418c2.473,0,4.499,0.641,6.078,1.923c1.578,1.282,2.342,2.934,2.291,4.952L18.23,7.386h-5.027 c0-0.895-0.302-1.626-0.906-2.186c-0.603-0.561-1.435-0.842-2.499-0.842c-1.042,0-1.86,0.232-2.453,0.696 C6.754,5.517,6.458,6.088,6.458,6.768c0,0.66,0.298,1.188,0.896,1.585c0.599,0.396,1.719,0.893,3.364,1.491 c2.535,0.762,4.444,1.699,5.726,2.811c1.282,1.112,1.923,2.643,1.923,4.589c0,1.977-0.763,3.525-2.291,4.643 c-1.527,1.117-3.554,1.676-6.078,1.676c-2.535,0-4.726-0.641-6.575-1.923c-1.85-1.283-2.75-3.13-2.698-5.539l0.031-0.093h5.043 c0,1.297,0.347,2.225,1.042,2.78c0.695,0.557,1.748,0.834,3.158,0.834c1.074,0,1.872-0.216,2.4-0.648 C12.924,18.541,13.187,17.974,13.187,17.275" class="st0"/><polygon points="19.577 .567 19.577 5.016 25.685 5.016 25.685 23.37 30.323 23.37 30.323 5.016 36.393 5.016 36.393 .567" class="st0"/><polygon points="130.629 .567 130.629 5.016 136.737 5.016 136.737 23.37 141.375 23.37 141.375 5.016 147.445 5.016 147.445 .567" class="st0"/><polygon points="162.791 .567 162.791 9.728 155.248 9.728 155.248 .567 150.649 .567 150.649 23.37 155.248 23.37 155.248 14.173 162.791 14.173 162.791 23.37 167.39 23.37 167.39 .567" class="st0"/><path d="M101.775,15.549v7.815h-5.268V0.561h8.477c2.683,0,4.812,0.692,6.387,2.076 c1.574,1.384,2.362,3.192,2.362,5.427c0,2.244-0.789,4.054-2.362,5.426c-1.575,1.374-3.704,2.06-6.387,2.06H101.775z M101.775,11.478h3.209c1.14,0,2.007-0.315,2.603-0.947c0.596-0.631,0.894-1.443,0.894-2.434c0-1.014-0.298-1.843-0.894-2.492 c-0.595-0.646-1.462-0.97-2.603-0.97h-3.209V11.478z" class="st0"/><path d="M93.306,22.301c-2.66-3.08-6.816-7.855-8.989-10.408l8.989-10.445V0.567h-1.418h-3.799 c-2.413,2.851-4.79,5.589-7.203,8.436V0.567h-4.6V23.37h4.6v-8.437l7.24,8.437h3.763h1.418V22.301z" class="st0"/><polygon points="119.906 .566 112.062 23.369 116.964 23.369 124.997 .566" class="st0"/><polygon points="42.247 .566 34.402 23.369 39.304 23.369 47.337 .566" class="st0"/><g><linearGradient id="SVGID_1_" x1="58.064" x2="43.843" y1="15.344" y2="10.168" gradientUnits="userSpaceOnUse"><stop offset=".056" style="stop-color:#000"/><stop offset="1" style="stop-color:#000;stop-opacity:.2"/></linearGradient><polygon points="47.337 .567 44.883 7.533 47.337 14.554 42.41 14.554 40.844 18.998 48.732 18.998 50.24 23.369 55.143 23.369" class="st1"/></g><g><linearGradient id="SVGID_2_" x1="135.723" x2="121.502" y1="15.344" y2="10.168" gradientUnits="userSpaceOnUse"><stop offset=".056" style="stop-color:#000"/><stop offset="1" style="stop-color:#000;stop-opacity:.2"/></linearGradient><polygon points="124.996 .567 122.542 7.533 124.996 14.554 120.069 14.554 118.504 18.998 126.392 18.998 127.899 23.369 132.802 23.369" class="st2"/></g></g></g></g><path d="M170.618,0.945h-0.696v1.895h-0.469V0.945h-0.688V0.565h1.853V0.945z" class="st0"/><path d="M171.497,0.565l0.584,1.649l0.581-1.649h0.615v2.274h-0.47V2.218l0.047-1.073l-0.614,1.695h-0.321l-0.612-1.693 l0.047,1.072v0.622h-0.469V0.565H171.497z" class="st0"/></svg>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pub/img/wpspin_light.gif
CHANGED
Binary file
|
pub/js/lightbox.js
CHANGED
@@ -400,7 +400,8 @@ function w3tc_lightbox_upgrade(nonce, data_src, renew_key) {
|
|
400 |
(renew_key ? '&renew_key=' + encodeURIComponent(renew_key) : '') +
|
401 |
(client_id ? '&client_id=' + encodeURIComponent(client_id) : ''),
|
402 |
callback: function(lightbox) {
|
403 |
-
lightbox.options.height = jQuery('#w3tc-upgrade').
|
|
|
404 |
jQuery('.button-primary', lightbox.container).click(function() {
|
405 |
lightbox.close();
|
406 |
});
|
@@ -415,6 +416,10 @@ function w3tc_lightbox_upgrade(nonce, data_src, renew_key) {
|
|
415 |
scrollTop: jQuery("#licensing").offset().top
|
416 |
}, 2000);
|
417 |
});
|
|
|
|
|
|
|
|
|
418 |
lightbox.resize();
|
419 |
}
|
420 |
});
|
400 |
(renew_key ? '&renew_key=' + encodeURIComponent(renew_key) : '') +
|
401 |
(client_id ? '&client_id=' + encodeURIComponent(client_id) : ''),
|
402 |
callback: function(lightbox) {
|
403 |
+
lightbox.options.height = jQuery('#w3tc-upgrade').outerHeight();
|
404 |
+
|
405 |
jQuery('.button-primary', lightbox.container).click(function() {
|
406 |
lightbox.close();
|
407 |
});
|
416 |
scrollTop: jQuery("#licensing").offset().top
|
417 |
}, 2000);
|
418 |
});
|
419 |
+
|
420 |
+
// Allow for customizations of the "upgrade" overlay specifically.
|
421 |
+
jQuery( '.w3tc-overlay' ).addClass( 'w3tc-overlay-upgrade' );
|
422 |
+
|
423 |
lightbox.resize();
|
424 |
}
|
425 |
});
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: boldgrid, fredericktownes, maxicusc, gidomanders, bwmarkle, harryj
|
|
3 |
Tags: seo, cache, optimize, pagespeed, performance, caching, compression, maxcdn, nginx, varnish, redis, new relic, aws, amazon web services, s3, cloudfront, rackspace, cloudflare, azure, apache
|
4 |
Requires at least: 3.2
|
5 |
Tested up to: 5.4
|
6 |
-
Stable tag: 0.14.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -275,8 +275,14 @@ Please reach out to all of these people and support their projects if you're so
|
|
275 |
|
276 |
== Changelog ==
|
277 |
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
= 0.14.2 =
|
279 |
-
* Fixed WP-CLI
|
280 |
* Fix: Avoid PREG_JIT_STACKLIMIT_ERROR in minify
|
281 |
* Fix: Prevent empty needle PHP warning
|
282 |
* Update: Allow to specify URIs with a query string in Additional Pages
|
3 |
Tags: seo, cache, optimize, pagespeed, performance, caching, compression, maxcdn, nginx, varnish, redis, new relic, aws, amazon web services, s3, cloudfront, rackspace, cloudflare, azure, apache
|
4 |
Requires at least: 3.2
|
5 |
Tested up to: 5.4
|
6 |
+
Stable tag: 0.14.3
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
275 |
|
276 |
== Changelog ==
|
277 |
|
278 |
+
= 0.14.3 =
|
279 |
+
* Fix: Take "Accepted Query Strings" into account when "Cache query strings" enabled
|
280 |
+
* Fix: Fix typo in variable for lazy loading
|
281 |
+
* Update: Add lazy load Google Maps reference to the general settings page
|
282 |
+
* Update: Support background-image: together with background: for lazy loading
|
283 |
+
|
284 |
= 0.14.2 =
|
285 |
+
* Fixed WP-CLI rediect issue in multisite
|
286 |
* Fix: Avoid PREG_JIT_STACKLIMIT_ERROR in minify
|
287 |
* Fix: Prevent empty needle PHP warning
|
288 |
* Update: Allow to specify URIs with a query string in Additional Pages
|
w3-total-cache-api.php
CHANGED
@@ -5,7 +5,7 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
5 |
}
|
6 |
|
7 |
define( 'W3TC', true );
|
8 |
-
define( 'W3TC_VERSION', '0.14.
|
9 |
define( 'W3TC_POWERED_BY', 'W3 Total Cache' );
|
10 |
define( 'W3TC_EMAIL', 'w3tc@w3-edge.com' );
|
11 |
define( 'W3TC_TEXT_DOMAIN', 'w3-total-cache' );
|
5 |
}
|
6 |
|
7 |
define( 'W3TC', true );
|
8 |
+
define( 'W3TC_VERSION', '0.14.3' );
|
9 |
define( 'W3TC_POWERED_BY', 'W3 Total Cache' );
|
10 |
define( 'W3TC_EMAIL', 'w3tc@w3-edge.com' );
|
11 |
define( 'W3TC_TEXT_DOMAIN', 'w3-total-cache' );
|
w3-total-cache.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: W3 Total Cache
|
4 |
Description: The highest rated and most complete WordPress performance plugin. Dramatically improve the speed and user experience of your site. Add browser, page, object and database caching as well as minify and content delivery network (CDN) to WordPress.
|
5 |
-
Version: 0.14.
|
6 |
Plugin URI: https://www.boldgrid.com/totalcache/
|
7 |
Author: BoldGrid
|
8 |
Author URI: https://www.boldgrid.com/
|
2 |
/*
|
3 |
Plugin Name: W3 Total Cache
|
4 |
Description: The highest rated and most complete WordPress performance plugin. Dramatically improve the speed and user experience of your site. Add browser, page, object and database caching as well as minify and content delivery network (CDN) to WordPress.
|
5 |
+
Version: 0.14.3
|
6 |
Plugin URI: https://www.boldgrid.com/totalcache/
|
7 |
Author: BoldGrid
|
8 |
Author URI: https://www.boldgrid.com/
|