| Server IP : 54.36.91.62 / Your IP : 216.73.216.15 Web Server : Apache System : Linux webm021.cluster127.gra.hosting.ovh.net 6.18.39-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Tue Jul 21 12:03:15 CEST 2026 x86_64 User : uxhactp ( 169076) PHP Version : 7.4.33 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/uxhactp/www/wp-content/plugins/onecom-vcache/onecom-addons/inc/ |
Upload File : |
<?php
class OnecomExcludeCache
{
public function __construct()
{
add_action( 'init', array($this,'oc_vcache_register_post_meta' ));
add_action('add_meta_boxes', array($this, 'exclude_from_cache'), 10, 2);
add_action('save_post', array($this, 'oct_save_exclude_cache'), 10, 2);
add_action('enqueue_block_editor_assets', array($this, 'oc_block_script_enqueue'));
}
/**
* adds a metabox for the posts & pages to be excluded from cache
*/
public function exclude_from_cache()
{
add_meta_box(
'exclude-vcache',
esc_html__('Exclude from Performance cache', 'vcaching'),
[$this, 'exclude_from_cache_metabox'],
['post','page'],
'side',
'default',
array(
'__block_editor_compatible_meta_box' => true,
'__back_compat_meta_box' => true,
)
);
}
/**
* @param $post
* callback function for backword compatibility / classic editor plugin installed.
*/
public function exclude_from_cache_metabox($post)
{
wp_nonce_field(basename(__FILE__), 'oct-exclude-from-cache');
$excluded_from_cache = get_post_meta($post->ID, '_oct_exclude_from_cache', true);
?>
<p>
<label for="oc-exclude-from-cache">
<input type="checkbox" name="oc-exclude-from-cache" id="oc-exclude-cache"
value="<?php echo $excluded_from_cache ?>>" <?php if (isset ($excluded_from_cache)) {
checked($excluded_from_cache, true);
} ?> />
<?php _e('Exclude', 'vcaching') ?>
</label>
</p><?php
}
/**
* @param $post_id
* @return mixed
* saves the metabox value.
* function for backword compatibility / classic editor plugin installed.
*/
function oct_save_exclude_cache($post_id,$post)
{
// replace url to be purged with a better approach
$response = wp_remote_request(get_site_url().'?p='.$post_id, ['method' => 'PURGE']);
if (!isset($_POST['oct-exclude-from-cache']) || !wp_verify_nonce($_POST['oct-exclude-from-cache'], basename(__FILE__))) {
return $post_id;
}
if (isset($_POST['oc-exclude-from-cache'])) {
update_post_meta($post_id, '_oct_exclude_from_cache', true);
} else {
update_post_meta($post_id, '_oct_exclude_from_cache', false);
}
}
/**
*
*/
public function oc_block_script_enqueue()
{
global $pagenow;
if ( $pagenow !== 'post.php' ) {
return;
}
wp_enqueue_script(
'block-metabox',
plugins_url('../assets/js/blocks/block-metabox.js', __FILE__),
array('wp-edit-post')
);
wp_localize_script(
'block-metabox',
'blockObject',
array(
'label' => 'Exclude from cache',
'excludeText' => 'This %s will be excluded from cache.',
'includeText' => 'This %s will be cached.',
)
);
}
/**
* registers post meta for exclude cache
*/
public function oc_vcache_register_post_meta()
{
if (function_exists('register_post_meta')) {
register_post_meta('', '_oct_exclude_from_cache', array(
'show_in_rest' => true,
'single' => true,
'type' => 'boolean',
'auth_callback' => function () {
return current_user_can('edit_posts');
}
));
} else {
$this->oc_register_post_meta('', '_oct_exclude_from_cache', array(
'show_in_rest' => true,
'single' => true,
'type' => 'boolean',
'auth_callback' => function () {
return current_user_can('edit_posts');
}
));
}
}
/**
* @param $post_type
* @param $meta_key
* @param array $args
* @return bool
* For backward compatibility with versions older than WP 4.9
*/
public function oc_register_post_meta($post_type, $meta_key, array $args)
{
$args['object_subtype'] = $post_type;
return register_meta('post', $meta_key, $args);
}
}