version = DAAU_PLUGIN_VERSION; } else { $this->version = '1.2.19'; } $this->plugin_prefix = 'daabd'; $this->plugin_name = 'adunblocker'; $this->load_dependencies(); $this->set_locale(); $this->define_admin_hooks(); $this->define_public_hooks(); $this->define_stats_hooks(); $this->define_recovery_hooks(); $this->define_popup_hooks(); } private function load_dependencies() { new Metaboxes(); $this->loader = new Loader(); $this->sanitizer = new Sanitizer($this->plugin_name); $this->stats = new \AdUnblocker_Stats($this->plugin_name); $this->recovery = new \AdUnblocker_Recovery($this->plugin_name); $this->popup_templates = new \AdUnblocker_Popup_Templates($this->plugin_name, $this->version); } private function set_locale() { $plugin_i18n = new I18n(); $this->loader->add_action('plugins_loaded', $plugin_i18n, 'load_plugin_textdomain'); } private function define_admin_hooks() { $plugin_admin = new Admin($this->get_plugin_name(), $this->get_version()); $this->loader->add_action('admin_enqueue_scripts', $plugin_admin, 'enqueue_styles'); $this->loader->add_action('admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts'); $this->loader->add_action('admin_menu', $plugin_admin, 'add_menu'); $this->loader->add_action('admin_init', $plugin_admin, 'register_settings'); $this->loader->add_action('admin_init', $plugin_admin, 'register_sections'); $this->loader->add_action('admin_init', $plugin_admin, 'register_fields'); $this->loader->add_action('admin_init', $plugin_admin, 'http_prepare_download_log'); $this->loader->add_action('admin_notices', $plugin_admin, 'display_admin_notices'); $this->loader->add_action('admin_post_daau_rebuild_frontend_assets', $plugin_admin, 'handle_rebuild_frontend_assets'); $this->loader->add_filter( 'plugin_action_links_' . plugin_basename(ADUNBLOCKER_PLUGIN_PATH . 'adunblocker.php'), $plugin_admin, 'add_plugin_action_links' ); $this->loader->add_action('wp_ajax_daau_get_log', $plugin_admin, 'ajax_get_log'); $this->loader->add_action('wp_ajax_daau_clear_log', $plugin_admin, 'ajax_get_log'); $this->loader->add_action('admin_enqueue_scripts', $plugin_admin, 'localize_script'); $this->loader->add_action('after_setup_theme', $plugin_admin, 'content_pll_register_string'); } private function define_public_hooks() { $plugin_public = new PublicSide($this->get_plugin_name(), $this->get_version()); $this->loader->add_action('wp_enqueue_scripts', $plugin_public, 'update_filename', 8); $this->loader->add_action('wp_enqueue_scripts', $plugin_public, 'check_version', 9); $this->loader->add_action('wp_enqueue_scripts', $plugin_public, 'regenerate_files', 10); $this->loader->add_action('wp_enqueue_scripts', $plugin_public, 'enqueue_styles', 11); $this->loader->add_action('wp_enqueue_scripts', $plugin_public, 'enqueue_scripts', 12); $this->loader->add_action('wp_footer', $plugin_public, 'output_protect_noscript_wall', 99); $this->loader->add_action('wp_ajax_get_daau_settings', $plugin_public, 'ajax_request_callback'); $this->loader->add_action('wp_ajax_nopriv_get_daau_settings', $plugin_public, 'ajax_request_callback'); } private function define_stats_hooks() { $this->loader->add_action('init', $this->stats, 'maybe_install'); $this->loader->add_action('init', $this->stats, 'schedule_cleanup'); $this->loader->add_action('daau_stats_cleanup', $this->stats, 'cleanup_old_events'); $this->loader->add_action('wp_ajax_daau_track_event', $this->stats, 'ajax_track_event'); $this->loader->add_action('wp_ajax_nopriv_daau_track_event', $this->stats, 'ajax_track_event'); $this->loader->add_action('wp_ajax_daau_stats_overview', $this->stats, 'ajax_stats_overview'); $this->loader->add_action('wp_ajax_daau_clear_stats', $this->stats, 'ajax_clear_stats'); } private function define_recovery_hooks() { $this->loader->add_action('init', $this->recovery, 'maybe_install'); $this->loader->add_action('rest_api_init', $this->recovery, 'register_rest_routes'); $this->loader->add_action('daau_stats_cleanup', $this->recovery, 'cleanup_old_events'); } private function define_popup_hooks() { $this->loader->add_action('init', $this->popup_templates, 'register_post_type', 9); $this->loader->add_action('init', $this->popup_templates, 'register_block_type', 10); $this->loader->add_action('init', $this->popup_templates, 'maybe_create_starter_popup', 11); $this->loader->add_action('save_post_daau_popup', $this->popup_templates, 'enforce_free_active_popup_limit', 10, 3); $this->loader->add_action('admin_notices', $this->popup_templates, 'maybe_render_upgrade_notice'); $this->loader->add_action('enqueue_block_editor_assets', $this->popup_templates, 'enqueue_block_editor_fallback_registration'); $this->loader->add_action('enqueue_block_editor_assets', $this->popup_templates, 'enqueue_editor_upgrade_notice'); $this->loader->add_filter('post_row_actions', $this->popup_templates, 'add_popup_row_actions', 10, 2); } public function run() { $this->loader->run(); } public function get_plugin_name() { return $this->plugin_name; } public function get_loader() { return $this->loader; } public function get_version() { return $this->version; } public function get_prefix() { return $this->plugin_prefix; } public static function get_random_string($from = 6, $to = 9) { $length = random_int($from, $to); $characters = 'abcdefghijklmnopqrstuvwxyz'; $random_string = ''; for ($i = 0; $i < $length; $i++) { $random_string .= $characters[random_int(0, strlen($characters) - 1)]; } return $random_string; } public static function get_defaults() { return array( 'adunblocker-status' => '1', 'adunblocker-scrollable-status' => '0', 'adunblocker-hide-loggedin' => '0', 'adunblocker-polylang' => '0', 'adunblocker-content' => '

Adblock Detected!

Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by whitelisting our website.

', 'adunblocker-bg-color' => '#FFFFFF', 'adunblocker-overlay-color' => '#000000', 'adunblocker-text-color' => '#000000', 'adunblocker-style' => 'modal', 'adunblocker-type' => 'dismissible', 'adunblocker-delay' => '5000', 'adunblocker-temp-delay' => '5000', 'adunblocker-temp-close-condition' => 'timer', 'adunblocker-scope' => 'session', 'adunblocker-page-target-mode' => 'all', 'adunblocker-target-page-ids' => array(), 'adunblocker-file-name' => self::get_random_string(), 'adunblocker-version' => DAAU_PLUGIN_VERSION ); } }