'); define('AD_BLOCK_GUARD_LOGO_THUMB', ''); // Debugging define('AD_BLOCK_GUARD_DEBUG', false); // Storefront define('AD_BLOCK_GUARD_STORE_URL', 'https://www.wutime.com'); define('AD_BLOCK_GUARD_ITEM_ID', 4952); // Overlay define('AD_BLOCK_GUARD_CONSOLE_LOG', false); define('AD_BLOCK_GUARD_CACHING', true); define('AD_BLOCK_GUARD_IS_FREE', true); //define('AD_BLOCK_GUARD_IS_PRO', true); define('AD_BLOCK_GUARD_LICENSE_STATUS', 'ad_block_guard_license_status'); define('AD_BLOCK_GUARD_LICENSE_KEY', 'ad_block_guard_license_key'); define('AD_BLOCK_GUARD_LICENSE_LAST_CHECK', 'ad_block_guard_license_last_check'); define('AD_BLOCK_GUARD_LICENSE_EXPIRES', 'ad_block_guard_license_expires'); define('AD_BLOCK_GUARD_USE_LOADER',!AD_BLOCK_GUARD_DEBUG); define('AD_BLOCK_GUARD_USE_PACKER',!AD_BLOCK_GUARD_DEBUG); define('AD_BLOCK_GUARD_USE_MINIFY',!AD_BLOCK_GUARD_DEBUG); define('AD_BLOCK_GUARD_USE_OBFS',!AD_BLOCK_GUARD_DEBUG); define('AD_BLOCK_GUARD_NO_CACHE',AD_BLOCK_GUARD_DEBUG); /************************************************************************************************** /************************************************************************************************** // Auto Loader for Composer Packages */ if (file_exists(AD_BLOCK_GUARD_PLUGIN_DIR . 'vendor/autoload.php')) { require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'vendor/autoload.php'; } /************************************************************************************************** /************************************************************************************************** // Shared classes for admin and front-end */ require_once ABSPATH . 'wp-admin/includes/file.php'; require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'includes/class-tools.php'; require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'includes/class-serialized-theme-options-datastore.php'; require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'includes/carbon-fields-setup.php'; /************************************************************************************************** /************************************************************************************************** * * ADMIN * * */ if (is_admin()) { // Include necessary files for the admin side require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'includes/admin/admin.php'; //require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'includes/class-assets-loader.php'; require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'includes/admin/menu.php'; require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'helper/Intro.php'; require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'vendor/htmlburger/carbon-field-number/carbon-field-number-plugin.php'; require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'vendor/iamntz/carbon-fields-urlpicker/carbon-field-urlpicker-plugin.php'; add_action( 'carbon_fields_register_fields', 'ad_block_guard_attach_theme_options' ); function ad_block_guard_attach_theme_options() { // Register your Carbon Fields options $carbon_fields_setup = new \Ad_Block_Guard\CarbonFieldsSetup(); $carbon_fields_setup->register_fields(); } add_action( 'after_setup_theme', 'ad_block_guard_crb_load' ); function ad_block_guard_crb_load() { \Carbon_Fields\Carbon_Fields::boot(); } $Admin_Menu = new \Ad_Block_Guard\Admin_Menu(); // Initialize admin-related functionality \Ad_Block_Guard\Admin::get_instance(); $license_checker = \Ad_Block_Guard\LicenseChecker::getInstance(); $license_checker->checkLicense(); // Enqueue Thickbox scripts with a unique prefix function ad_block_guard_enqueue_thickbox_scripts() { if (is_admin()) { add_thickbox(); } } add_action('admin_enqueue_scripts', 'ad_block_guard_enqueue_thickbox_scripts'); } /************************************************************************************************** /************************************************************************************************** * * DEMO * * */ if (is_admin()) { add_action('admin_init', function() { // Check if we're in the admin and if the demo is triggered if ((isset($_GET['AdBlockGuardDemo']) || isset($_POST['AdBlockGuardDemo'])) && is_admin()) { // Handle POST requests and verify nonce if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'POST') { if ( !isset($_POST['ad_block_guard_demo_nonce']) || !wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['ad_block_guard_demo_nonce'])), 'ad_block_guard_demo_action') ) { wp_die(esc_html__('Nonce verification failed. Please try again.', 'ad-block-guard')); } $role = isset($_POST['role']) ? sanitize_text_field(wp_unslash($_POST['role'])) : ''; } else { // Handle GET requests (without nonce verification) $role = isset($_GET['role']) ? sanitize_text_field(wp_unslash($_GET['role'])) : ''; } require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'includes/public/frontend.php'; require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'helper/AdBlockExtended.php'; // Initialize the Frontend class during the admin footer add_action('admin_footer', function () use ($role) { if (!empty($role)) { $frontend = new \Ad_Block_Guard\Frontend($role); } else { wp_die(esc_html__('Role parameter is missing or invalid.', 'ad-block-guard')); } }); } }); } /************************************************************************************************** /************************************************************************************************** * * FRONTEND * * */ if (!is_admin() && !defined('DOING_AJAX') && !defined('REST_REQUEST') && !defined('DOING_CRON') && !defined('XMLRPC_REQUEST') && !defined('WP_CLI')) { require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'includes/public/frontend.php'; require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'helper/AdBlockExtended.php'; // Initialize the Frontend class add_action('wp_footer', function () { if (AD_BLOCK_GUARD_DEBUG) error_log("Ad Block Guard: wp_footer() running"); $frontend = \Ad_Block_Guard\Frontend::get_instance(); }); } /************************************************************************************************** /************************************************************************************************** * * SOFTWARE UPDATES & LICENSING * * */ function ad_block_guard_init_license_checker() { if (is_admin()) { // Ensure this only runs in the admin area $checker = \Ad_Block_Guard\LicenseChecker::getInstance(); $checker->checkLicenseValidity(true); } } add_action('init', 'ad_block_guard_init_license_checker'); /************************************************************************************************** /************************************************************************************************** * * SCHEDULED TASKS (CRON) * * */ // Include the Cron class and initialize it require_once AD_BLOCK_GUARD_PLUGIN_DIR . 'helper/Cron.php'; new \Ad_Block_Guard\Cron();