File "ActionScheduler_WPCommentCleaner.php"
Full path: /home/kosmetik/public_html/wp-content/plugins/woocommerce/packages/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php
File
size: 2.75 B
MIME-type: text/x-php
Charset: utf-8
Download Open Edit Advanced Editor Back
<?php
class ActionScheduler_WPCommentCleaner
{
protected static $cleanup_hook = 'action_scheduler/cleanup_wp_comment_logs';
protected static $wp_comment_logger = null;
protected static $has_logs_option_key = 'as_has_wp_comment_logs';
public static function init()
{
if (empty(self::$wp_comment_logger)) {
self::$wp_comment_logger = new ActionScheduler_wpCommentLogger();
}
add_action(self::$cleanup_hook, array(__CLASS__, 'delete_all_action_comments'));
add_action('pre_get_comments', array(self::$wp_comment_logger, 'filter_comment_queries'), 10, 1);
add_action('wp_count_comments', array(self::$wp_comment_logger, 'filter_comment_count'), 20, 2);
add_action('comment_feed_where', array(self::$wp_comment_logger, 'filter_comment_feed'), 10, 2);
add_action('load-tools_page_action-scheduler', array(__CLASS__, 'register_admin_notice'));
add_action('load-woocommerce_page_wc-status', array(__CLASS__, 'register_admin_notice'));
}
public static function has_logs()
{
return 'yes' === get_option(self::$has_logs_option_key);
}
public static function maybe_schedule_cleanup()
{
if ((bool) get_comments(array('type' => ActionScheduler_wpCommentLogger::TYPE, 'number' => 1, 'fields' => 'ids'))) {
update_option(self::$has_logs_option_key, 'yes');
if (!as_next_scheduled_action(self::$cleanup_hook)) {
as_schedule_single_action(gmdate('U') + 6 * MONTH_IN_SECONDS, self::$cleanup_hook);
}
}
}
public static function delete_all_action_comments()
{
global $wpdb;
$wpdb->delete($wpdb->comments, array('comment_type' => ActionScheduler_wpCommentLogger::TYPE, 'comment_agent' => ActionScheduler_wpCommentLogger::AGENT));
delete_option(self::$has_logs_option_key);
}
public static function register_admin_notice()
{
add_action('admin_notices', array(__CLASS__, 'print_admin_notice'));
}
public static function print_admin_notice()
{
$next_cleanup_message = '';
$next_scheduled_cleanup_hook = as_next_scheduled_action(self::$cleanup_hook);
if ($next_scheduled_cleanup_hook) {
$next_cleanup_message = sprintf(__('This data will be deleted in %s.', 'woocommerce'), human_time_diff(gmdate('U'), $next_scheduled_cleanup_hook));
}
$notice = sprintf(__('Action Scheduler has migrated data to custom tables; however, orphaned log entries exist in the WordPress Comments table. %1$s <a href="%2$s">Learn more »</a>', 'woocommerce'), $next_cleanup_message, 'https://github.com/woocommerce/action-scheduler/issues/368');
echo '<div class="notice notice-warning"><p>' . wp_kses_post($notice) . '</p></div>';
}
}