Files
roi-theme/wp-content/plugins/ajax-search-pro/backend/cache_settings.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

177 lines
7.2 KiB
PHP
Executable File

<?php
/* Prevent direct access */
use WPDRMS\ASP\Cache\TextCache;
defined( 'ABSPATH' ) or die( "You can't access this file directly." );
$cache_options = wd_asp()->o['asp_caching'];
if (ASP_DEMO) $_POST = null;
?>
<link rel="stylesheet" href="<?php echo plugin_dir_url(__FILE__) . 'settings/assets/sidebar.css?v='.ASP_CURR_VER; ?>" />
<div id='wpdreams' class='asp-be wpdreams wrap<?php echo isset($_COOKIE['asp-accessibility']) ? ' wd-accessible' : ''; ?>'>
<?php do_action('asp_admin_notices'); ?>
<!-- This forces custom Admin Notices location -->
<div style="display:none;"><h2 style="display: none;"></h2></div>
<!-- This forces custom Admin Notices location -->
<?php if ( wd_asp()->updates->needsUpdate() ) { wd_asp()->updates->printUpdateMessage(); } ?>
<div class="wpdreams-box" style="float:left;">
<?php ob_start(); ?>
<div class="item item-flex-nogrow item-flex-wrap">
<?php
$o = new wpdreamsYesNo( "caching", __('Caching activated', 'ajax-search-pro'), $cache_options["caching"]);
$o = new wpdreamsCustomSelect('caching_method', __('Caching method', 'ajax-search-pro'),
array(
'selects' => array(
//array('option' => __('Super File Cache', 'ajax-search-pro'), 'value' => 'sc_file'),
array('option' => __('File', 'ajax-search-pro'), 'value' => 'file'),
array('option' => __('Database', 'ajax-search-pro'), 'value' => 'db')
),
'value' => $cache_options["caching_method"]
));
?>
<p class="descMsg">
<a target="_blank" href="https://documentation.ajaxsearchpro.com/performance-tuning/cache">
<?php echo __('Documentation', 'ajax-search-pro'); ?>
</a><br>
<?php echo __('Not recommended, unless you have many search queries per minute.', 'ajax-search-pro'); ?>
<?php echo __('This will enable search results to be cached into files in the cache directory/options database to bypass the search database query. Useful if you experience many repetitive queries.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<p class='infoMsg'>
<?php echo __('Turn this OFF if you are experiencing performance issues.', 'ajax-search-pro'); ?>
</p>
<?php $o = new wpdreamsYesNo( "image_cropping", __('Crop images for caching?', 'ajax-search-pro'), $cache_options["image_cropping"] ); ?>
<p class="descMsg">
<?php echo __('This disables the thumbnail generator, and the full sized images are used as cover. Not much difference visually, but saves a lot of CPU.', 'ajax-search-pro'); ?>
</p>
</div>
<div class="item">
<?php $o = new wpdreamsText( "cachinginterval", __('Caching interval (in minutes, default 43200, aka. 30 days)', 'ajax-search-pro'),
$cache_options["cachinginterval"] ); ?>
</div>
<div class="item">
<input type="hidden" name="asp_caching_nonce" value="<?php echo wp_create_nonce( 'asp_caching_nonce' ); ?>">
<input type='submit' class='submit' value='<?php esc_attr_e('Save options', 'ajax-search-pro'); ?>'/>
</div>
<?php $_r = ob_get_clean(); ?>
<?php
$updated = false;
if (
isset( $_POST['asp_caching'], $_POST['asp_caching_nonce'] ) &&
wp_verify_nonce( $_POST['asp_caching_nonce'], 'asp_caching_nonce' )
) {
$values = array(
"caching" => $_POST['caching'],
"caching_method" => $_POST['caching_method'],
"image_cropping" => $_POST['image_cropping'],
"cachinginterval" => $_POST['cachinginterval']
);
update_option( 'asp_caching', $values );
asp_parse_options();
$updated = true;
wd_asp()->css_manager->generator->generate();
TextCache::generateSCFiles();
}
?>
<div class='wpdreams-slider'>
<?php if (ASP_DEMO): ?>
<p class="infoMsg">DEMO MODE ENABLED - Please note, that these options are read-only</p>
<?php endif; ?>
<form name='asp_caching' method='post'>
<?php if ( $updated ): ?>
<div class='successMsg'>
<?php echo __('Search caching settings successfuly updated!', 'ajax-search-pro'); ?>
</div>
<?php endif; ?>
<fieldset>
<legend>
<?php echo __('Caching Options', 'ajax-search-pro'); ?>
</legend>
<?php print $_r; ?>
<input type='hidden' name='asp_caching' value='1'/>
</fieldset>
</form>
<fieldset>
<legend><?php echo __('Clear Cache'); ?></legend>
<div class="item">
<p class='infoMsg'><?php echo __('Will clear all the images and precached search phrases.', 'ajax-search-pro'); ?></p>
<input type="hidden" id="asp_delete_cache_request_nonce" value="<?php echo wp_create_nonce( 'asp_delete_cache_request_nonce' ); ?>">
<input type='submit' class="red" name='Clear Cache' id='clearcache' value='<?php echo esc_attr__('Clear the cache!', 'ajax-search-pro'); ?>'>
</div>
</fieldset>
</div>
<script>
jQuery(function ($) {
function format() {
var a, b, c;
a = arguments[0];
b = [];
for(c = 1; c < arguments.length; c++){
b.push(arguments[c]);
}
for (c in b) {
a = a.replace(/%[a-z]/, b[c]);
}
return a;
}
$('#clearcache').on('click', function () {
var r = confirm('<?php echo esc_html__('Do you really want to clear the cache?', 'ajax-search-pro'); ?>');
if (r !== true) return;
var button = $(this),
nonce = $('#asp_delete_cache_request_nonce').val();
var data = {
action: 'ajaxsearchpro_deletecache',
'asp_delete_cache_request_nonce': nonce
};
button.attr("disabled", true);
var oldVal = button.attr("value");
button.attr("value", "Loading...");
button.addClass('blink');
$.post(ASP.ajaxurl, data, function (response) {
var currentdate = new Date();
var datetime = currentdate.getDate() + "/"
+ (currentdate.getMonth() + 1) + "/"
+ currentdate.getFullYear() + " @ "
+ currentdate.getHours() + ":"
+ currentdate.getMinutes() + ":"
+ currentdate.getSeconds();
button.attr("disabled", false);
button.removeClass('blink');
button.attr("value", oldVal);
var cleared = '<?php echo esc_html__('%s record(s) deleted at %s', 'ajax-search-pro'); ?>';
cleared = format(cleared, response, datetime);
button.parent().parent().append('<div class="successMsg">Cache succesfully cleared! ' + cleared + '</div>');
}, "json");
});
$('.item input[name="caching"]').on('change', function(e){
var $m = $(this).closest('.item').find('select[name=caching_method]');
if ( $(this).val() == 1 ) {
$m.removeClass('disabled');
} else {
$m.addClass('disabled');
}
});
$('.item input[name="caching"]').trigger('change');
});
</script>
</div>
<?php include(ASP_PATH . "backend/sidebar.php"); ?>
<div class="clear"></div>
</div>