array( 'type' => array(), 'name' => array(), 'value' => array(), ), ) ); ?> _config->is_preview() ) : ?> _page ), 'w3tc' ) ) ), array( 'input' => array( 'type' => array(), 'name' => array(), 'class' => array(), 'value' => array(), 'onclick' => array(), ), ) ); ?>

array( 'type' => array(), 'name' => array(), 'class' => array(), 'value' => array(), 'onclick' => array(), ), ) ); ?>

'pgcache.configuration_overloaded' ) ); ?> 'pgcache.enabled', 'control' => 'checkbox', 'checkbox_label' => esc_html__( 'Enable', 'w3-total-cache' ), 'description' => esc_html__( 'Caching pages will reduce the response time of your site and increase the scale of your web server.', 'w3-total-cache' ), ) ); Util_Ui::config_item( array( 'key' => 'pgcache.engine', 'control' => 'selectbox', 'selectbox_values' => array( 'file' => array( 'label' => esc_html__( 'Disk: Basic', 'w3-total-cache' ), 'optgroup' => 0, ), 'file_generic' => array( 'label' => esc_html__( 'Disk: Enhanced', 'w3-total-cache' ), 'optgroup' => 0, ), 'apc' => array( 'disabled' => ! Util_Installed::apc(), 'label' => esc_html__( 'Opcode: Alternative PHP Cache (APC / APCu)', 'w3-total-cache' ), 'optgroup' => 1, ), 'eaccelerator' => array( 'disabled' => ! Util_Installed::eaccelerator(), 'label' => esc_html__( 'Opcode: eAccelerator', 'w3-total-cache' ), 'optgroup' => 1, ), 'xcache' => array( 'disabled' => ! Util_Installed::xcache(), 'label' => esc_html__( 'Opcode: XCache', 'w3-total-cache' ), 'optgroup' => 1, ), 'wincache' => array( 'disabled' => ! Util_Installed::wincache(), 'label' => esc_html__( 'Opcode: WinCache', 'w3-total-cache' ), 'optgroup' => 1, ), 'memcached' => array( 'disabled' => ! Util_Installed::memcached(), 'label' => esc_html__( 'Memcached', 'w3-total-cache' ), 'optgroup' => 2, ), 'nginx_memcached' => array( 'disabled' => ! Util_Installed::memcached_memcached() || ! $is_pro, 'label' => esc_html__( 'Nginx + Memcached', 'w3-total-cache' ) . ( $is_pro ? '' : esc_html__( ' (available after upgrade)', 'w3-total-cache' ) ), 'optgroup' => 2, ), 'redis' => array( 'disabled' => ! Util_Installed::redis(), 'label' => esc_html__( 'Redis', 'w3-total-cache' ), 'optgroup' => 2, ), ), 'selectbox_optgroups' => array( esc_html__( 'Shared Server (disk enhanced is best):', 'w3-total-cache' ), esc_html__( 'Dedicated / Virtual Server:', 'w3-total-cache' ), esc_html__( 'Multiple Servers:', 'w3-total-cache' ), ), ) ); ?>
'minify.configuration_overloaded' ) ); ?> 'minify.enabled', 'control' => 'checkbox', 'checkbox_label' => esc_html__( 'Enable', 'w3-total-cache' ), 'description' => wp_kses( sprintf( // translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag, // translators: 3 opening HTML acronym tag, 4 closing HTML acronym tag, // translators: 5 opening HTML acronym tag, 6 closing HTML acronym tag. __( 'Minification can decrease file size of %1$sHTML%2$s, %3$sCSS%4$s, %5$sJS%6$s and feeds respectively by ~10%% on average.', 'w3-total-cache' ), '', '', '', '', '', '' ), array( 'acronym' => array( 'title' => array(), ), ) ), 'control_after' => ' ' . esc_html__( 'Learn more', 'w3-total-cache' ) . '', ) ); Util_Ui::config_item( array( 'key' => 'minify.auto', 'value' => ( $this->_config->get_boolean( 'minify.auto' ) ? 1 : 0 ), 'control' => 'radiogroup', 'radiogroup_values' => array( '1' => esc_html__( 'Auto', 'w3-total-cache' ), '0' => esc_html__( 'Manual', 'w3-total-cache' ), ), 'description' => esc_html__( 'Select manual mode to use fields on the Minify settings tab to specify files to be minified, otherwise files will be minified automatically.', 'w3-total-cache' ), 'control_after' => ' ' . esc_html__( 'Learn more', 'w3-total-cache' ) . '', ) ); Util_Ui::config_item_engine( array( 'key' => 'minify.engine', 'control_after' => ' ' . esc_html__( 'Learn more', 'w3-total-cache' ) . '', ) ); Util_Ui::config_item( array( 'key' => 'minify.html.engine', 'control' => 'selectbox', 'selectbox_values' => array( 'html' => esc_html__( 'Minify (default)', 'w3-total-cache' ), 'htmltidy' => array( 'disabled' => ! Util_Installed::tidy(), 'label' => esc_html__( 'HTML Tidy', 'w3-total-cache' ), ), ), 'control_after' => ' ' . esc_html__( 'Learn more', 'w3-total-cache' ) . '', ) ); Util_Ui::config_item( array( 'key' => 'minify.js.engine', 'control' => 'selectbox', 'selectbox_values' => array( 'js' => esc_html__( 'JSMin (default)', 'w3-total-cache' ), 'googleccjs' => esc_html__( 'Google Closure Compiler (Web Service)', 'w3-total-cache' ), 'ccjs' => esc_html__( 'Google Closure Compiler (Local Java)', 'w3-total-cache' ), 'jsminplus' => esc_html__( 'Narcissus', 'w3-total-cache' ), 'yuijs' => esc_html__( 'YUI Compressor', 'w3-total-cache' ), ), ) ); Util_Ui::config_item( array( 'key' => 'minify.css.engine', 'control' => 'selectbox', 'selectbox_values' => array( 'css' => esc_html__( 'Minify (default)', 'w3-total-cache' ), 'csstidy' => array( 'label' => esc_html__( 'CSS Tidy', 'w3-total-cache' ), 'disabled' => ( version_compare( PHP_VERSION, '5.4.0', '<' ) ? true : false ), ), 'cssmin' => esc_html__( 'YUI Compressor (PHP)', 'w3-total-cache' ), 'yuicss' => esc_html__( 'YUI Compressor', 'w3-total-cache' ), ), ) ); ?>
'dbcache.configuration_overloaded' ) ); ?> 'dbcache.enabled', 'control' => 'checkbox', 'checkbox_label' => esc_html__( 'Enable', 'w3-total-cache' ), 'description' => esc_html__( 'Caching database objects decreases the response time of your site. Best used if object caching is not possible.', 'w3-total-cache' ), ) ); Util_Ui::config_item_engine( array( 'key' => 'dbcache.engine' ) ); ?>
'objectcache.configuration_overloaded' ) ); echo ( ! $this->_config->getf_boolean( 'objectcache.enabled' ) && has_filter( 'w3tc_config_item_objectcache.enabled' ) ? '

' . esc_html__( 'Object Cache is disabled via filter.', 'w3-total-cache' ) . '

' : '' ); ?> 'objectcache.enabled', 'control' => 'checkbox', 'checkbox_label' => esc_html__( 'Enable', 'w3-total-cache' ), 'description' => wp_kses( sprintf( // translators: 1 opening HTML a tag to WordPress codex for WP Object Cache, 2 Opening HTML acronym tag, // translators: 3 closing HTML acronym tag, 4 closing HTML a tag. __( 'Object caching greatly increases performance for highly dynamic sites that use the %1$sObject Cache %2$sAPI%3$s%4$s.', 'w3-total-cache' ), '', '', '', '' ), array( 'acronym' => array( 'title' => array(), ), 'a' => array( 'href' => array(), 'target' => array(), ), ) ), ); if ( ! $this->_config->getf_boolean( 'objectcache.enabled' ) && has_filter( 'w3tc_config_item_objectcache.enabled' ) ) { $objectcache_config_item['disabled'] = true; } Util_Ui::config_item( $objectcache_config_item ); Util_Ui::config_item_engine( array( 'key' => 'objectcache.engine' ) ); ?>
'browsercache.configuration_overloaded' ) ); ?> 'browsercache.enabled', 'control' => 'checkbox', 'checkbox_label' => esc_html__( 'Enable', 'w3-total-cache' ), 'description' => wp_kses( sprintf( // translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag. __( 'Enable %1$sHTTP%2$s compression and add headers to reduce server load and decrease file load time.', 'w3-total-cache' ), '', '' ), array( 'acronym' => array( 'title' => array(), ), ) ), ) ); ?>
'varnish.configuration_overloaded' ) ); ?>
checkbox( 'varnish.enabled' ); ?>

', '', '', '' ), array( 'acronym' => array( 'title' => array(), ), ) ); ?>


', '' ), array( 'acronym' => array( 'title' => array(), ), ) ); ?>

', '' ), array( 'acronym' => array( 'title' => array(), ), ) ); ?>

', '' ), array( 'acronym' => array( 'title' => array(), ), ) ); ?>

', '' ), array( 'acronym' => array( 'title' => array(), ), ) ); ?>

' . esc_html__( 'upgrading', 'w3-total-cache' ) . '' ), array( 'a' => array( 'class' => array(), 'data-src' => array(), 'href' => array(), ), ) ); ?>

'docroot_fix.enable', 'control' => 'checkbox', 'checkbox_label' => esc_html__( 'Fix document root path', 'w3-total-cache' ), 'label_class' => 'w3tc_single_column', 'description' => sprintf( // translators: 1: WordPress ABSPATH value, 2: Server document root value. esc_html__( 'Fix incorrect server document root path. Uses the WordPress ABSPATH ("%1$s") in place of the current server document root ("%2$s").', 'w3-total-cache' ), esc_attr( untrailingslashit( ABSPATH ) ), esc_attr( ! empty( $_SERVER['DOCUMENT_ROOT'] ) ? esc_url_raw( wp_unslash( $_SERVER['DOCUMENT_ROOT'] ) ) : '' ) ), ) ); Util_Ui::config_item( array( 'key' => 'common.track_usage', 'control' => 'checkbox', 'checkbox_label' => esc_html__( 'Anonymously track usage to improve product quality', 'w3-total-cache' ), 'label_class' => 'w3tc_single_column', ) ); ?>
checkbox( 'common.force_master' ); ?>

/>

/>

', '' ), array( 'a' => array( 'href' => array(), ), ) ); ?>

/>

', '' ), array( 'acronym' => array( 'title' => array(), ), ) ); ?>

/>

', '' ), array( 'acronym' => array( 'title' => array(), ), ) ), '', 'debug' ); ?>
checkbox_debug( 'pgcache.debug' ); ?>
checkbox_debug( 'minify.debug' ); ?>
checkbox_debug( 'dbcache.debug' ); ?>
checkbox_debug( 'objectcache.debug' ); ?>
checkbox_debug( array( 'fragmentcache', 'debug' ) ); ?>
checkbox_debug( 'cdn.debug' ); ?>
checkbox_debug( 'cdnfsd.debug' ); ?>
checkbox_debug( 'varnish.debug' ); ?>
checkbox_debug( 'cluster.messagebus.debug' ); ?>

', '' ), array( 'acronym' => array( 'title' => array(), ), ) ); ?>

checkbox_debug_pro( 'pgcache.debug_purge', __( 'Page Cache Purge Log', 'w3-total-cache' ), ' (' . __( 'view log', 'w3-total-cache' ) . ')' ); ?>
checkbox_debug_pro( 'dbcache.debug_purge', __( 'Database Cache Purge Log', 'w3-total-cache' ), ' (' . __( 'view log', 'w3-total-cache' ) . ')' ); ?>
checkbox_debug_pro( 'objectcache.debug_purge', __( 'Object Cache Purge Log', 'w3-total-cache' ), ' (' . __( 'view log', 'w3-total-cache' ) . ')' ); ?>
_config->is_extension_active( 'imageservice' ) ? Util_UI::admin_url( 'upload.php?page=w3tc_extension_page_imageservice' ) : '' ); ?> _config->is_extension_active( 'imageservice' ) ? sprintf( // Translators: 1 name of plugin, 2 opening HTML a tag, 3 closing HTML a tag. __( 'The tool and its settings can be found on the %1$s %2$sWebP Converter%3$s page.', 'w3-total-cache' ), 'Total Cache', '', '' ) : ''; Util_Ui::config_item_pro( array( 'key' => 'extension.imageservice', 'label' => esc_html__( 'WebP Converter', 'w3-total-cache' ), 'control' => 'checkbox', 'checkbox_label' => __( 'Enable WebP Converter Extension', 'w3-total-cache' ), 'excerpt' => wp_kses( sprintf( // translators: 1 HTML line breaks, 2 license rates for free/pro users, 3 link to image service tool. __( 'This extension allows for optimizing media library images to WebP format.%1$s%2$s%1$s%3$s', 'w3-total-cache' ), '

', Util_Environment::is_w3tc_pro( $this->_config ) ? sprintf( // translators: 1 free hourly rate, 2 free monthly rate, 3 opening HTML a tag to documentation URL, // translators: 4 closing HTML a tag. __( 'As a Pro license holder you are granted conversion rates of %1$s/hour and %2$s/month. Conversion rates are subject to change and documentation can be found %3$shere%4$s.', 'w3-total-cache' ), number_format_i18n( W3TC_IMAGE_SERVICE_PRO_HLIMIT, 0 ), empty( W3TC_IMAGE_SERVICE_PRO_MLIMIT ) ? esc_html__( 'unlimited', 'w3-total-cache' ) : number_format_i18n( W3TC_IMAGE_SERVICE_PRO_MLIMIT, 0 ), '', '' ) : sprintf( // translators: 1 free hourly rate, 2 pro monthly rate, 3 pro hourly rate, 4 pro monthly rate, // translators: 5 opening HTML a tag to documentation URL, 6 closing HTML a tag. __( 'As a free user you are limited to conversions of %1$s/hour and %2$s/month. The Pro license increases these rates to %3$s/hour and %4$s/month. Conversion rates are subject to change and documentation can be found %5$shere%6$s.', 'w3-total-cache' ), number_format_i18n( W3TC_IMAGE_SERVICE_FREE_HLIMIT, 0 ), number_format_i18n( W3TC_IMAGE_SERVICE_FREE_MLIMIT, 0 ), number_format_i18n( W3TC_IMAGE_SERVICE_PRO_HLIMIT, 0 ), empty( W3TC_IMAGE_SERVICE_PRO_MLIMIT ) ? esc_html__( 'unlimited', 'w3-total-cache' ) : number_format_i18n( W3TC_IMAGE_SERVICE_PRO_MLIMIT, 0 ), '', '' ), $image_service_link ), array( 'a' => array( 'href' => array(), 'target' => array(), ), 'br' => array(), ) ), 'description' => array(), 'label_class' => 'w3tc_single_column', 'wrap_separate' => true, ) ); ?>
Util_UI::admin_url( 'admin.php?page=w3tc_pagespeed' ) ) ); ?> _config->get_string( 'widget.pagespeed.access_token' ) ) ? $this->_config->get_string( 'widget.pagespeed.access_token' ) : '' ); $w3_pagespeed = new PageSpeed_Api( $access_token_json ); $site_id = Util_Http::generate_site_id(); $return_url = Util_Ui::admin_url( 'admin.php?page=w3tc_general' ); $w3tc_pagespeed_key = ! empty( $this->_config->get_string( 'widget.pagespeed.w3tc_pagespeed_key' ) ) ? $this->_config->get_string( 'widget.pagespeed.w3tc_pagespeed_key' ) : ''; $auth_url = $w3_pagespeed->client->createAuthUrl(); $new_gacode = Util_Request::get( 'w3tc_new_gacode' ); $new_w3tc_pagespeed_key = Util_Request::get( 'w3tc_new_w3tc_pagespeed_key' ); $authorize_error = Util_Request::get( 'w3tc_authorize_error' ); $deauthorize = Util_Request::get( 'w3tc_deauthorize' ); if ( ! empty( $new_gacode ) && ! empty( $new_w3tc_pagespeed_key ) ) { $response = json_decode( $w3_pagespeed->process_authorization_response( $new_gacode, $new_w3tc_pagespeed_key ), true ); if ( isset( $response['error']['code'] ) && 200 !== $response['error']['code'] ) { $response_error = sprintf( // translators: 1 Request response code, 2 Error message. __( 'Response Code: %1$s
Response Message: %2$s', 'w3-total-cache' ), ! empty( $response['error']['code'] ) ? $response['error']['code'] : 'N/A', ! empty( $response['error']['message'] ) ? $response['error']['message'] : 'N/A' ); update_option( 'w3tcps_authorize_fail', __( 'Google PageSpeed Insights API authorization failed.', 'w3-total-cache' ) ); update_option( 'w3tcps_authorize_fail_message', $response_error ); } elseif ( ! empty( $response['refresh_token'] ) ) { update_option( 'w3tcps_authorize_success', __( 'Google PageSpeed Insights API authorization successful.', 'w3-total-cache' ) ); } else { update_option( 'w3tcps_authorize_fail', __( 'Google PageSpeed Insights API authorization failed.', 'w3-total-cache' ) ); update_option( 'w3tcps_authorize_fail_message', __( 'Missing refresh token.', 'w3-total-cache' ) ); } wp_safe_redirect( $return_url ); exit; } elseif ( $deauthorize ) { $w3_pagespeed->reset(); update_option( 'w3tcps_authorize_success', __( 'Google PageSpeed Insights API authorization successfully reset.', 'w3-total-cache' ) ); wp_safe_redirect( $return_url ); exit; } elseif ( ! empty( $authorize_error ) ) { $authorize_error = json_decode( $authorize_error ); if ( 'authorize-in-missing-site-id' === $authorize_error->error->id ) { $message = __( 'Unique site ID missing for authorize request!', 'w3-total-cache' ); } elseif ( 'authorize-in-missing-auth-url' === $authorize_error->error->id ) { $message = __( 'Authorize URL missing for authorize request!', 'w3-total-cache' ); } elseif ( 'authorize-in-missing-return-url' === $authorize_error->error->id ) { $message = __( 'Return URL missing for authorize request!', 'w3-total-cache' ); } elseif ( 'authorize-in-failed' === $authorize_error->error->id ) { $message = __( 'Failed to process authorize request!', 'w3-total-cache' ); } if ( 'authorize-out-code-missing' === $authorize_error->error->id ) { $message = __( 'No authorize code returned to W3-API from Google!', 'w3-total-cache' ); } elseif ( 'authorize-out-w3tc-pagespeed-key-missing' === $authorize_error->error->id ) { $message = __( 'No W3Key return to W3-API from Google!', 'w3-total-cache' ); } elseif ( 'authorize-out-not-found' === $authorize_error->error->id ) { $message = __( 'No W3-API matching record found during Google authorization return processing!', 'w3-total-cache' ); } update_option( 'w3tcps_authorize_fail', __( 'Google PageSpeed Insights API authorization failed.', 'w3-total-cache' ) ); update_option( 'w3tcps_authorize_fail_message', $message ); wp_safe_redirect( $return_url ); exit; } ?> client->getAccessToken() ) ? $w3_pagespeed->client->getAccessToken() : '' ); if ( ! $w3_pagespeed->client->isAccessTokenExpired() && ! empty( $access_token_json ) ) { ?> 'widget.pagespeed.enabled', 'control' => 'checkbox', 'checkbox_label' => __( 'Enable Google PageSpeed dashboard widget', 'w3-total-cache' ), 'description' => __( 'Display Google PageSpeed results on the WordPress dashboard.', 'w3-total-cache' ), 'label_class' => 'w3tc_single_column', ) ); ?>

array( 'type' => array(), 'name' => array(), 'value' => array(), ), ) ); ?>