laipower/wp-content/plugins/w3-total-cache/inc/options/general.php

1159 lines
43 KiB
PHP

<?php
/**
* File: general.php
*
* @package W3TC
*/
namespace W3TC;
if ( ! defined( 'W3TC' ) ) {
die();
}
require W3TC_INC_DIR . '/options/common/header.php';
?>
<p>
<?php
echo wp_kses(
sprintf(
// translators: 1 HTML span tag indicating plugin enabled/disabled.
__(
'The plugin is currently %1$s If an option is disabled it means that either your current installation is not compatible or software installation is required.',
'w3-total-cache'
),
'<span class="w3tc-' . ( $enabled ? 'enabled">' . esc_html__( 'enabled', 'w3-total-cache' ) : 'disabled">' . esc_html__( 'disabled', 'w3-total-cache' ) ) . '</span>.'
),
array(
'span' => array(
'class' => array(),
),
)
);
?>
</p>
<form id="w3tc_form" action="admin.php?page=<?php echo esc_attr( $this->_page ); ?>" method="post">
<div class="metabox-holder">
<?php Util_Ui::postbox_header( esc_html__( 'General', 'w3-total-cache' ), '' ); ?>
<table class="form-table">
<tr>
<th><?php esc_html_e( 'Preview mode:', 'w3-total-cache' ); ?></th>
<td>
<?php
echo wp_kses(
Util_Ui::nonce_field( 'w3tc' ),
array(
'input' => array(
'type' => array(),
'name' => array(),
'value' => array(),
),
)
);
?>
<?php if ( $this->_config->is_preview() ) : ?>
<input type="submit" name="w3tc_config_preview_disable" class="button-primary" value="<?php esc_attr_e( 'Disable', 'w3-total-cache' ); ?>" />
<?php
echo wp_kses(
Util_Ui::button_link(
esc_html__( 'Deploy', 'w3-total-cache' ),
esc_url( wp_nonce_url( sprintf( 'admin.php?page=%1$s&w3tc_config_preview_deploy', $this->_page ), 'w3tc' ) )
),
array(
'input' => array(
'type' => array(),
'name' => array(),
'class' => array(),
'value' => array(),
'onclick' => array(),
),
)
);
?>
<p class="description">
<?php
echo wp_kses(
sprintf(
// translators: 1 HTML input submit to preview changes.
__(
'To preview any changed settings (without deploying): %1$s',
'w3-total-cache'
),
Util_Ui::preview_link()
),
array(
'input' => array(
'type' => array(),
'name' => array(),
'class' => array(),
'value' => array(),
'onclick' => array(),
),
)
);
?>
</p>
<?php else : ?>
<input type="submit" name="w3tc_config_preview_enable" class="button-primary" value="<?php esc_attr_e( 'Enable', 'w3-total-cache' ); ?>" />
<?php endif; ?>
<p class="description"><?php esc_html_e( 'Use preview mode to test configuration scenarios prior to releasing them (deploy) on the actual site. Preview mode remains active even after deploying settings until the feature is disabled.', 'w3-total-cache' ); ?></p>
</td>
</tr>
</table>
<?php Util_Ui::button_config_save( 'general_general' ); ?>
<?php Util_Ui::postbox_footer(); ?>
<?php
Util_Ui::postbox_header( esc_html__( 'Page Cache', 'w3-total-cache' ), '', 'page_cache' );
Util_Ui::config_overloading_button( array( 'key' => 'pgcache.configuration_overloaded' ) );
?>
<p><?php esc_html_e( 'Enable page caching to decrease the response time of the site.', 'w3-total-cache' ); ?></p>
<table class="form-table">
<?php
Util_Ui::config_item(
array(
'key' => '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' ),
),
)
);
?>
</table>
<?php
Util_Ui::button_config_save(
'general_pagecache',
'<input type="submit" name="w3tc_flush_pgcache" value="' .
esc_attr__( 'Empty cache', 'w3-total-cache' ) . '"' .
( $pgcache_enabled ? '' : ' disabled="disabled" ' ) .
' class="button" />'
);
?>
<?php Util_Ui::postbox_footer(); ?>
<?php
Util_Ui::postbox_header( esc_html__( 'Minify', 'w3-total-cache' ), '', 'minify' );
Util_Ui::config_overloading_button( array( 'key' => 'minify.configuration_overloaded' ) );
?>
<p>
<?php
w3tc_e(
'minify.general.header',
sprintf(
// translators: 1 HTML acronym for Cascading Style Sheet (CSS), 2 HTML acronym for JavaScript (JS),
// translators: 3 HTML acronym for Hypertext Markup Language (HTML).
__( 'Reduce load time by decreasing the size and number of %1$s and %2$s files. Automatically remove unnecessary data from %1$s, %2$s, feed, page and post %3$s.', 'w3-total-cache' ),
'<acronym title="' . __( 'Cascading Style Sheet', 'w3-total-cache' ) . '">' . __( 'CSS', 'w3-total-cache' ) . '</acronym>',
'<acronym title="' . __( 'JavaScript', 'w3-total-cache' ) . '">' . __( 'JS', 'w3-total-cache' ) . '</acronym>',
'<acronym title="' . __( 'Hypertext Markup Language', 'w3-total-cache' ) . '">' . __( 'HTML', 'w3-total-cache' ) . '</acronym>'
)
);
?>
</p>
<table class="form-table">
<?php
Util_Ui::config_item(
array(
'key' => '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'
),
'<acronym title="' . esc_attr__( 'Hypertext Markup Language', 'w3-total-cache' ) . '">',
'</acronym>',
'<acronym title="' . esc_attr__( 'Cascading Style Sheet', 'w3-total-cache' ) . '">',
'</acronym>',
'<acronym title="' . esc_attr__( 'JavaScript', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
),
'control_after' => ' <a class="w3tc-control-after" target="_blank" href="' . esc_url( 'https://www.boldgrid.com/support/w3-total-cache/w3-total-cache-minify-faq/?utm_source=w3tc&utm_medium=learn_more_links&utm_campaign=minify_faq' ) . '" title="' .
esc_attr__( 'Minify frequently asked questions', 'w3-total-cache' ) . '">' . esc_html__( 'Learn more', 'w3-total-cache' ) .
'<span class="dashicons dashicons-external"></span></a>',
)
);
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' => ' <a class="w3tc-control-after" target="_blank" href="' . esc_url( 'https://www.boldgrid.com/support/w3-total-cache/how-to-use-manual-minify-for-css-and-js/?utm_source=w3tc&utm_medium=learn_more_links&utm_campaign=manual_minify#difference-between-auto-and-manual-minify' ) . '" title="'
. esc_attr__( 'How to use manual minify', 'w3-total-cache' ) . '">' . esc_html__( 'Learn more', 'w3-total-cache' ) .
'<span class="dashicons dashicons-external"></span></a>',
)
);
Util_Ui::config_item_engine(
array(
'key' => 'minify.engine',
'control_after' => ' <a class="w3tc-control-after" target="_blank" href="' . esc_url( 'https://www.boldgrid.com/support/w3-total-cache/choosing-a-minification-method-for-w3-total-cache/?utm_source=w3tc&utm_medium=learn_more_links&utm_campaign=minify_engine' ) . '" title="' .
esc_attr__( 'Choosing a minification method', 'w3-total-cache' ) . '">' . esc_html__( 'Learn more', 'w3-total-cache' ) .
'<span class="dashicons dashicons-external"></span></a>',
)
);
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' => ' <a class="w3tc-control-after" target="_blank" href="' . esc_url( 'https://www.boldgrid.com/support/w3-total-cache/minify/html-minify-or-tidy/?utm_source=w3tc&utm_medium=learn_more_links&utm_campaign=minify_html#minify-default' ) . '" title="' .
esc_attr__( 'How to use minify HTML', 'w3-total-cache' ) . '">' . esc_html__( 'Learn more', 'w3-total-cache' ) .
'<span class="dashicons dashicons-external"></span></a>',
)
);
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' ),
),
)
);
?>
</table>
<?php
Util_Ui::button_config_save(
'general_minify',
'<input type="submit" name="w3tc_flush_minify" value="' .
esc_attr__( 'Empty cache', 'w3-total-cache' ) . '" ' .
( $minify_enabled ? '' : ' disabled="disabled" ' ) .
' class="button" />'
);
?>
<?php Util_Ui::postbox_footer(); ?>
<?php do_action( 'w3tc_settings_general_boxarea_system_opcache' ); ?>
<?php
Util_Ui::postbox_header( esc_html__( 'Database Cache', 'w3-total-cache' ), '', 'database_cache' );
Util_Ui::config_overloading_button( array( 'key' => 'dbcache.configuration_overloaded' ) );
?>
<p><?php esc_html_e( 'Enable database caching to reduce post, page and feed creation time.', 'w3-total-cache' ); ?></p>
<table class="form-table">
<?php
Util_Ui::config_item(
array(
'key' => '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' ) );
?>
<?php if ( Util_Environment::is_w3tc_pro() && is_network_admin() ) : ?>
<?php require W3TC_INC_OPTIONS_DIR . '/enterprise/dbcluster_general_section.php'; ?>
<?php endif; ?>
</table>
<?php
Util_Ui::button_config_save(
'general_dbcache',
'<input type="submit" name="w3tc_flush_dbcache" value="' .
esc_html__( 'Empty cache', 'w3-total-cache' ) . '" ' .
( $dbcache_enabled ? '' : ' disabled="disabled" ' ) .
' class="button" />'
);
?>
<?php Util_Ui::postbox_footer(); ?>
<?php
Util_Ui::postbox_header( esc_html__( 'Object Cache', 'w3-total-cache' ), '', 'object_cache' );
Util_Ui::config_overloading_button( array( 'key' => 'objectcache.configuration_overloaded' ) );
?>
<p><?php esc_html_e( 'Enable object caching to further reduce execution time for common operations.', 'w3-total-cache' ); ?></p>
<table class="form-table">
<?php
Util_Ui::config_item(
array(
'key' => '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'
),
'<a href="' . esc_url( 'http://codex.wordpress.org/Class_Reference/WP_Object_Cache' ) . '" target="_blank">',
'<acronym title="' . esc_attr__( 'Application Programming Interface', 'w3-total-cache' ) . '">',
'</acronym>',
'</a>'
),
array(
'acronym' => array(
'title' => array(),
),
'a' => array(
'href' => array(),
'target' => array(),
),
)
),
)
);
Util_Ui::config_item_engine( array( 'key' => 'objectcache.engine' ) );
?>
</table>
<?php
Util_Ui::button_config_save(
'general_objectcache',
'<input type="submit" name="w3tc_flush_objectcache" value="' .
esc_attr__( 'Empty cache', 'w3-total-cache' ) . '" ' .
( $objectcache_enabled ? '' : ' disabled="disabled" ' ) .
' class="button" />'
);
?>
<?php Util_Ui::postbox_footer(); ?>
<?php
Util_Ui::postbox_header( esc_html__( 'Browser Cache', 'w3-total-cache' ), '', 'browser_cache' );
Util_Ui::config_overloading_button( array( 'key' => 'browsercache.configuration_overloaded' ) );
?>
<p><?php esc_html_e( 'Reduce server load and decrease response time by using the cache available in site visitor\'s web browser.', 'w3-total-cache' ); ?></p>
<table class="form-table">
<?php
Util_Ui::config_item(
array(
'key' => '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'
),
'<acronym title="' . esc_attr__( 'Hypertext Transfer Protocol', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
),
)
);
?>
</table>
<?php Util_Ui::button_config_save( 'general_browsercache' ); ?>
<?php Util_Ui::postbox_footer(); ?>
<?php do_action( 'w3tc_settings_general_boxarea_cdn' ); ?>
<?php
Util_Ui::postbox_header( esc_html__( 'Reverse Proxy', 'w3-total-cache' ), '', 'reverse_proxy' );
Util_Ui::config_overloading_button( array( 'key' => 'varnish.configuration_overloaded' ) );
?>
<p>
<?php
echo wp_kses(
sprintf(
// translators: 1 opening HTML a tag to W3TC Page Cache admin page, 2 closing HTML a tag,
// translators: 3 opening HTML a tag to W3TC Browsercache admin page, 4 closing HTML a tag.
__(
'A reverse proxy adds scale to an server by handling requests before WordPress does. Purge settings are set on the %1$sPage Cache settings%2$s page and %3$sBrowser Cache settings%4$s are set on the browser cache settings page.',
'w3-total-cache'
),
'<a href="' . esc_url( self_admin_url( 'admin.php?page=w3tc_pgcache' ) ) . '">',
'</a>',
'<a href="' . esc_url( self_admin_url( 'admin.php?page=w3tc_browsercache' ) ) . '">',
'</a>'
),
array(
'a' => array(
'href' => array(),
),
)
);
?>
</p>
<table class="form-table">
<tr>
<th colspan="2">
<?php $this->checkbox( 'varnish.enabled' ); ?> <?php Util_Ui::e_config_label( 'varnish.enabled' ); ?></label><br />
</th>
</tr>
<tr>
<th><label for="pgcache_varnish_servers"><?php Util_Ui::e_config_label( 'varnish.servers' ); ?></label></th>
<td>
<textarea id="pgcache_varnish_servers" name="varnish__servers"
cols="40" rows="5" <?php Util_Ui::sealing_disabled( 'varnish.' ); ?>><?php echo esc_textarea( implode( "\r\n", $this->_config->get_array( 'varnish.servers' ) ) ); ?></textarea>
<p class="description">
<?php
echo 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.
__(
'Specify the IP addresses of your varnish instances above. The %1$sVCL%2$s\'s %3$sACL%4$s must allow this request.',
'w3-total-cache'
),
'<acronym title="' . esc_attr__( 'Varnish Configuration Language', 'w3-total-cache' ) . '">',
'</acronym>',
'<acronym title="' . esc_attr__( 'Access Control List', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
);
?>
</p>
</td>
</tr>
</table>
<?php
Util_Ui::button_config_save(
'general_varnish',
'<input type="submit" name="w3tc_flush_varnish" value="' .
esc_attr__( 'Purge cache', 'w3-total-cache' ) . '"' .
( $varnish_enabled ? '' : ' disabled="disabled" ' ) .
' class="button" />'
);
?>
<?php Util_Ui::postbox_footer(); ?>
<?php if ( $is_pro ) : ?>
<?php Util_Ui::postbox_header( esc_html__( 'Message Bus', 'w3-total-cache' ), '', 'amazon_sns' ); ?>
<p>
<?php esc_html_e( 'Allows policy management to be shared between a dynamic pool of servers. For example, each server in a pool to use opcode caching (which is not a shared resource) and purging is then syncronized between any number of servers in real-time; each server therefore behaves identically even though resources are not shared.', 'w3-total-cache' ); ?>
</p>
<table class="form-table">
<tr>
<th colspan="2">
<input type="hidden" name="cluster__messagebus__enabled" value="0" />
<label><input class="enabled" type="checkbox" name="cluster__messagebus__enabled" value="1"<?php checked( $this->_config->get_boolean( 'cluster.messagebus.enabled' ), true ); ?> /> <?php Util_Ui::e_config_label( 'cluster.messagebus.enabled' ); ?></label><br />
</th>
</tr>
<tr>
<th><label for="cluster_messagebus_sns_region"><?php Util_Ui::e_config_label( 'cluster.messagebus.sns.region' ); ?></label></th>
<td>
<input id="cluster_messagebus_sns_region"
class="w3tc-ignore-change" type="text"
name="cluster__messagebus__sns__region"
value="<?php echo esc_attr( $this->_config->get_string( 'cluster.messagebus.sns.region' ) ); ?>" size="60" />
<p class="description">
<?php
echo wp_kses(
sprintf(
// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
__(
'Specify the Amazon %1$sSNS%2$s service endpoint hostname. If empty, then default "sns.us-east-1.amazonaws.com" will be used.',
'w3-total-cache'
),
'<acronym title="' . esc_attr__( 'Simple Notification Service', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
);
?>
</p>
</td>
</tr>
<tr>
<th><label for="cluster_messagebus_sns_api_key"><?php Util_Ui::e_config_label( 'cluster.messagebus.sns.api_key' ); ?></label></th>
<td>
<input id="cluster_messagebus_sns_api_key"
class="w3tc-ignore-change" type="text"
name="cluster__messagebus__sns__api_key"
value="<?php echo esc_attr( $this->_config->get_string( 'cluster.messagebus.sns.api_key' ) ); ?>" size="60" />
<p class="description">
<?php
echo wp_kses(
sprintf(
// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
__(
'Specify the %1$sAPI%2$s Key.',
'w3-total-cache'
),
'<acronym title="' . esc_attr__( 'Application Programming Interface', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
);
?>
</p>
</td>
</tr>
<tr>
<th><label for="cluster_messagebus_sns_api_secret"><?php Util_Ui::e_config_label( 'cluster.messagebus.sns.api_secret' ); ?></label></th>
<td>
<input id="cluster_messagebus_sns_api_secret"
class="w3tc-ignore-change" type="text"
name="cluster__messagebus__sns__api_secret"
value="<?php echo esc_attr( $this->_config->get_string( 'cluster.messagebus.sns.api_secret' ) ); ?>" size="60" />
<p class="description">
<?php
echo wp_kses(
sprintf(
// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
__(
'Specify the %1$sAPI%2$s secret.',
'w3-total-cache'
),
'<acronym title="' . esc_attr__( 'Application Programming Interface', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
);
?>
</p>
</td>
</tr>
<tr>
<th><label for="cluster_messagebus_sns_topic_arn"><?php Util_Ui::e_config_label( 'cluster.messagebus.sns.topic_arn' ); ?></label></th>
<td>
<input id="cluster_messagebus_sns_topic_arn"
class="w3tc-ignore-change" type="text"
name="cluster__messagebus__sns__topic_arn"
value="<?php echo esc_attr( $this->_config->get_string( 'cluster.messagebus.sns.topic_arn' ) ); ?>" size="60" />
<p class="description">
<?php
echo wp_kses(
sprintf(
// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
__(
'Specify the %1$sSNS%2$s topic.',
'w3-total-cache'
),
'<acronym title="' . esc_attr__( 'Simple Notification Service', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
);
?>
</p>
</td>
</tr>
</table>
<?php Util_Ui::button_config_save( 'general_dbcluster' ); ?>
<?php Util_Ui::postbox_footer(); ?>
<?php endif; ?>
<?php Util_Ui::postbox_header( __( 'Google PageSpeed', 'w3-total-cache' ), '', 'google_page_speed' ); ?>
<?php
$access_token_json = ( ! empty( $this->_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<br/>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 successfull.', '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-totoal-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;
}
?>
<table class="form-table">
<?php
$access_token_json = ( ! empty( $w3_pagespeed->client->getAccessToken() ) ? $w3_pagespeed->client->getAccessToken() : '' );
if ( ! $w3_pagespeed->client->isAccessTokenExpired() && ! empty( $access_token_json ) ) {
?>
<tr>
<th>
<label for="widget_pagespeed_access_token"><?php Util_Ui::e_config_label( 'widget.pagespeed.access_token', 'general' ); ?> <?php esc_html_e( 'Valid', 'w3-total-cache' ); ?></label>
</th>
</tr>
<tr>
<th>
<a id="w3tc-google-deauthorize-button" class="w3tc-button-save button-primary" href="<?php echo esc_url( $return_url . '&w3tc_deauthorize=1' ); ?>"><?php esc_html_e( 'Deauthorize' ); ?></a>
</th>
</tr>
<?php
} else {
?>
<tr>
<th>
<label for="widget_pagespeed_token"><?php Util_Ui::e_config_label( 'widget.pagespeed.access_token', 'general' ); ?></label>
</th>
<td>
<a id="w3tc-google-authorize-button" class="w3tc-button-save button-primary" href="<?php echo esc_url( $w3_pagespeed->get_w3tc_api_url( 'google/authorize-in' ) . '/' . rawurlencode( $site_id ) . '/' . rawurlencode( $auth_url ) . '/' . rawurlencode( $return_url ) ); ?>"><?php esc_html_e( 'Authorize' ); ?></a>
<p><?php esc_html_e( 'Allow W3 Total Cache to connect to the PageSpeed Insights API on your behalf.', 'w3-total-cache' ); ?></p>
</td>
</tr>
<?php
}
Util_Ui::config_item(
array(
'key' => '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',
)
);
?>
</table>
<?php Util_Ui::button_config_save( 'general_google_page_speed' ); ?>
<?php Util_Ui::postbox_footer(); ?>
<?php
foreach ( $custom_areas as $area ) {
do_action( 'w3tc_settings_general_boxarea_' . $area['id'] );
}
?>
<?php if ( $licensing_visible ) : ?>
<?php Util_Ui::postbox_header( __( 'Licensing', 'w3-total-cache' ), '', 'licensing' ); ?>
<table class="form-table">
<tr>
<th>
<label for="plugin_license_key"><?php Util_Ui::e_config_label( 'plugin.license_key' ); ?></label>
</th>
<td>
<input id="plugin_license_key" name="plugin__license_key" type="text" value="<?php echo esc_attr( $this->_config->get_string( 'plugin.license_key' ) ); ?>" size="45"/>
<input id="plugin_license_key_verify" type="button" class="button" value="<?php esc_attr_e( 'Verify license key', 'w3-total-cache' ); ?>"/>
<span class="w3tc_license_verification"></span>
<p class="description">
<?php
echo wp_kses(
sprintf(
// translators: 1 HTML a tag to trigger W3TC licence upgrade.
__(
'Please enter the license key provided after %1$s.',
'w3-total-cache'
),
'<a class="button-buy-plugin" data-src="generic_license" href="#">' . esc_html__( 'upgrading', 'w3-total-cache' ) . '</a>'
),
array(
'a' => array(
'class' => array(),
'data-src' => array(),
'href' => array(),
),
)
);
?>
</p>
</td>
</tr>
</table>
<?php Util_Ui::button_config_save( 'general_licensing' ); ?>
<?php Util_Ui::postbox_footer(); ?>
<?php endif; ?>
<?php Util_Ui::postbox_header( esc_html__( 'Miscellaneous', 'w3-total-cache' ), '', 'miscellaneous' ); ?>
<table class="form-table">
<?php if ( is_network_admin() ) : ?>
<tr>
<th colspan="2">
<?php $this->checkbox( 'common.force_master' ); ?> <?php Util_Ui::e_config_label( 'common.force_master' ); ?></label>
<p class="description"><?php esc_html_e( 'Only one configuration file for whole network will be created and used. Recommended if all sites have the same configuration.', 'w3-total-cache' ); ?></p>
</th>
</tr>
<?php endif; ?>
<?php if ( Util_Environment::is_nginx() ) : ?>
<tr>
<th><?php Util_Ui::e_config_label( 'config.path' ); ?></th>
<td>
<input type="text" name="config__path" value="<?php echo esc_attr( $this->_config->get_string( 'config.path' ) ); ?>" size="80" <?php Util_Ui::sealing_disabled( 'common.' ); ?>/>
<p class="description"><?php esc_html_e( 'If empty the default path will be used..', 'w3-total-cache' ); ?></p>
</td>
</tr>
<?php endif; ?>
<tr>
<th colspan="2">
<input type="hidden" name="config__check" value="0" <?php Util_Ui::sealing_disabled( 'common.' ); ?> />
<label><input type="checkbox" name="config__check" value="1" <?php checked( $this->_config->get_boolean( 'config.check' ), true ); ?> <?php Util_Ui::sealing_disabled( 'common.' ); ?> /> <?php Util_Ui::e_config_label( 'config.check' ); ?></label>
<p class="description">
<?php
echo wp_kses(
sprintf(
// translators: 1 opening HTML a tag to W3TC install admin page.
__(
'Notify of server configuration errors, if this option is disabled, the server configuration for active settings can be found on the %1$sinstall%2$s tab.',
'w3-total-cache'
),
'<a href="' . esc_url( Util_Ui::admin_url( 'admin.php?page=w3tc_install' ) ) . '">',
'</a>'
),
array(
'a' => array(
'href' => array(),
),
)
);
?>
</p>
</th>
</tr>
<tr>
<th colspan="2">
<input type="hidden" name="file_locking" value="0"<?php Util_Ui::sealing_disabled( 'common.' ); ?> />
<label><input type="checkbox" name="file_locking" value="1" <?php checked( $file_locking, true ); ?> <?php Util_Ui::sealing_disabled( 'common.' ); ?> /> <?php esc_html_e( 'Enable file locking', 'w3-total-cache' ); ?></label>
<p class="description">
<?php
echo wp_kses(
sprintf(
// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
__(
'Not recommended for %1$sNFS%2$s systems.',
'w3-total-cache'
),
'<acronym title="' . esc_attr__( 'Network File System', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
);
?>
</p>
</th>
</tr>
<tr>
<th colspan="2">
<input type="hidden" name="file_nfs" value="0" <?php Util_Ui::sealing_disabled( 'common.' ); ?> />
<label>
<input type="checkbox" name="file_nfs" value="1" <?php checked( $file_nfs, true ); ?><?php Util_Ui::sealing_disabled( 'common.' ); ?> />
<?php
echo wp_kses(
sprintf(
// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
__(
'Optimize disk enhanced page and minify disk caching for %1$sNFS%2$s',
'w3-total-cache'
),
'<acronym title="' . esc_attr__( 'Network File System', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
);
?>
</label>
<p class="description"><?php esc_html_e( 'Try this option if your hosting environment uses a network based file system for a possible performance improvement.', 'w3-total-cache' ); ?></p>
</th>
</tr>
<?php
Util_Ui::config_item(
array(
'key' => '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',
)
);
?>
</table>
<?php Util_Ui::button_config_save( 'general_misc' ); ?>
<?php Util_Ui::postbox_footer(); ?>
<?php Util_Ui::postbox_header( esc_html__( 'Debug', 'w3-total-cache' ), '', 'debug' ); ?>
<p>
<?php
echo wp_kses(
sprintf(
// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
__(
'Detailed information about each cache will be appended in (publicly available) %1$sHTML%2$s comments in the page\'s source code. Performance in this mode will not be optimal, use sparingly and disable when not in use.',
'w3-total-cache'
),
'<acronym title="' . esc_attr__( 'Hypertext Markup Language', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
);
?>
</p>
<table class="form-table">
<tr>
<th><?php esc_html_e( 'Debug mode:', 'w3-total-cache' ); ?></th>
<td>
<?php $this->checkbox_debug( 'pgcache.debug' ); ?> <?php Util_Ui::e_config_label( 'pgcache.debug' ); ?></label><br />
<?php $this->checkbox_debug( 'minify.debug' ); ?> <?php Util_Ui::e_config_label( 'minify.debug' ); ?></label><br />
<?php $this->checkbox_debug( 'dbcache.debug' ); ?> <?php Util_Ui::e_config_label( 'dbcache.debug' ); ?></label><br />
<?php $this->checkbox_debug( 'objectcache.debug' ); ?> <?php Util_Ui::e_config_label( 'objectcache.debug' ); ?></label><br />
<?php if ( Util_Environment::is_w3tc_pro( $this->_config ) ) : ?>
<?php $this->checkbox_debug( array( 'fragmentcache', 'debug' ) ); ?> <?php esc_html_e( 'Fragment Cache', 'w3-total-cache' ); ?></label><br />
<?php endif; ?>
<?php $this->checkbox_debug( 'cdn.debug' ); ?> <?php Util_Ui::e_config_label( 'cdn.debug' ); ?></label><br />
<?php $this->checkbox_debug( 'cdnfsd.debug' ); ?> <?php Util_Ui::e_config_label( 'cdnfsd.debug' ); ?></label><br />
<?php $this->checkbox_debug( 'varnish.debug' ); ?> <?php Util_Ui::e_config_label( 'varnish.debug' ); ?></label>
<?php if ( Util_Environment::is_w3tc_pro() ) : ?>
<br />
<?php $this->checkbox_debug( 'cluster.messagebus.debug' ); ?> <?php Util_Ui::e_config_label( 'cluster.messagebus.debug' ); ?></label>
<?php endif ?>
<p class="description">
<?php
echo wp_kses(
sprintf(
// translators: 1 opening HTML acronym tag, 2 closing HTML acronym tag.
__(
'If selected, detailed caching information will appear at the end of each page in a %1$sHTML%2$s comment. View a page\'s source code to review.',
'w3-total-cache'
),
'<acronym title="' . esc_attr__( 'Hypertext Markup Language', 'w3-total-cache' ) . '">',
'</acronym>'
),
array(
'acronym' => array(
'title' => array(),
),
)
);
?>
</p>
</td>
</tr>
</table>
<table class="<?php echo esc_attr( Util_Ui::table_class() ); ?>">
<tr>
<th><?php esc_html_e( 'Purge Logs:', 'w3-total-cache' ); ?></th>
<td>
<?php \W3TC\Util_Ui::pro_wrap_maybe_start(); ?>
<?php
$this->checkbox_debug_pro(
'pgcache.debug_purge',
__( 'Page Cache Purge Log', 'w3-total-cache' ),
' (<a href="?page=w3tc_general&view=purge_log&module=pagecache">' . __( 'view log', 'w3-total-cache' ) . '</a>)'
);
?>
<br />
<?php
$this->checkbox_debug_pro(
'dbcache.debug_purge',
__( 'Database Cache Purge Log', 'w3-total-cache' ),
' (<a href="?page=w3tc_general&view=purge_log&module=dbcache">' . __( 'view log', 'w3-total-cache' ) . '</a>)'
);
?>
<br />
<?php
$this->checkbox_debug_pro(
'objectcache.debug_purge',
__( 'Object Cache Purge Log', 'w3-total-cache' ),
' (<a href="?page=w3tc_general&view=purge_log&module=objectcache">' . __( 'view log', 'w3-total-cache' ) . '</a>)'
);
?>
<br />
<?php
\W3TC\Util_Ui::pro_wrap_description(
esc_html__( 'Purge Logs provide information on when your cache has been purged and what triggered it.', 'w3-total-cache' ),
array(
esc_html__( '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' ),
),
'general-purge-log'
);
?>
<?php \W3TC\Util_Ui::pro_wrap_maybe_end( 'debug_purge' ); ?>
</td>
</tr>
</table>
<?php Util_Ui::button_config_save( 'general_debug' ); ?>
<?php Util_Ui::postbox_footer(); ?>
</div>
</form>
<form action="admin.php?page=<?php echo esc_attr( $this->_page ); ?>" method="post" enctype="multipart/form-data">
<div class="metabox-holder">
<?php Util_Ui::postbox_header( esc_html__( 'Import / Export Settings', 'w3-total-cache' ), '', 'settings' ); ?>
<?php
echo wp_kses(
Util_Ui::nonce_field( 'w3tc' ),
array(
'input' => array(
'type' => array(),
'name' => array(),
'value' => array(),
),
)
);
?>
<table class="form-table">
<tr>
<th><?php esc_html_e( 'Import configuration:', 'w3-total-cache' ); ?></th>
<td>
<input type="file" name="config_file" />
<input type="submit" name="w3tc_config_import" class="w3tc-button-save button" value="<?php esc_attr_e( 'Upload', 'w3-total-cache' ); ?>" />
<p class="description"><?php esc_html_e( 'Upload and replace the active settings file.', 'w3-total-cache' ); ?></p>
</td>
</tr>
<tr>
<th><?php esc_html_e( 'Export configuration:', 'w3-total-cache' ); ?></th>
<td>
<input type="submit" name="w3tc_config_export" class="button" value="<?php esc_attr_e( 'Download', 'w3-total-cache' ); ?>" />
<p class="description"><?php esc_html_e( 'Download the active settings file.', 'w3-total-cache' ); ?></p>
</td>
</tr>
<tr>
<th><?php esc_html_e( 'Reset configuration:', 'w3-total-cache' ); ?></th>
<td>
<input type="submit" name="w3tc_config_reset" class="button" value="<?php esc_attr_e( 'Restore Default Settings', 'w3-total-cache' ); ?>" />
<p class="description"><?php esc_html_e( 'Revert all settings to the defaults. Any settings staged in preview mode will not be modified.', 'w3-total-cache' ); ?></p>
</td>
</tr>
</table>
<?php Util_Ui::postbox_footer(); ?>
</div>
</form>
<?php require W3TC_INC_DIR . '/options/common/footer.php'; ?>