init(); } /** * Initialize the plugin - let the whiskers do their work */ private function init() { // Load dependencies $this->load_dependencies(); // Initialize hooks add_action('init', array($this, 'init_plugin')); add_action('init', array($this, 'load_textdomain')); add_action('init', array($this, 'grow_whiskers')); add_action('init', array($this, 'detect_boundaries')); // Initialize admin interface if we're in admin if (is_admin()) { add_action('init', array($this, 'init_admin')); } } /** * Load required files - our whisker components */ private function load_dependencies() { // Core includes require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/class-core.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/class-boundary-detector.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/class-compliance-scanner.php'; // Admin includes if (is_admin()) { require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'admin/class-admin.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'admin/class-admin-pages.php'; } // Whisker modules (each handles a specific sensing capability) require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/whiskers/class-cookie-consent.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/whiskers/class-advanced-geo-detector.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/whiskers/class-data-mapper.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/whiskers/class-privacy-policy.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/whiskers/class-consent-analytics.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/whiskers/class-data-deletion.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/whiskers/class-cross-border.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/whiskers/class-audit-trail.php'; require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/whiskers/class-analytics-integration.php'; } /** * Initialize plugin components */ public function init_plugin() { // Log initialization if (defined('WP_DEBUG') && WP_DEBUG) { error_log('TigerStyle Whiskers: Plugin initialized - whiskers are twitching with awareness!'); } } /** * Load plugin text domain for internationalization */ public function load_textdomain() { load_plugin_textdomain('tigerstyle-whiskers', false, dirname(plugin_basename(__FILE__)) . '/languages'); } /** * Initialize admin components */ public function init_admin() { TigerStyleWhiskers_Admin::instance(); } /** * Load and initialize whiskers (modules) */ public function grow_whiskers() { $this->whiskers = array( 'cookie_consent' => TigerStyleWhiskers_CookieConsent::instance(), 'advanced_geo_detector' => TigerStyleWhiskers_AdvancedGeoDetector::instance(), 'data_mapper' => TigerStyleWhiskers_DataMapper::instance(), 'privacy_policy' => TigerStyleWhiskers_PrivacyPolicy::instance(), 'consent_analytics' => TigerStyleWhiskers_ConsentAnalytics::instance(), 'data_deletion' => TigerStyleWhiskers_DataDeletion::instance(), 'cross_border' => TigerStyleWhiskers_CrossBorder::instance(), 'audit_trail' => TigerStyleWhiskers_AuditTrail::instance(), 'analytics_integration' => TigerStyleWhiskers_AnalyticsIntegration::instance(), ); // Each whisker is now sensing its environment if (defined('WP_DEBUG') && WP_DEBUG) { error_log('TigerStyle Whiskers: All ' . count($this->whiskers) . ' whiskers are now active and sensing!'); } } /** * Detect boundaries - this is what whiskers do best! */ public function detect_boundaries() { // Initialize boundary detection TigerStyleWhiskers_BoundaryDetector::instance(); // Start compliance scanning TigerStyleWhiskers_ComplianceScanner::instance(); } /** * Get a specific whisker (module) */ public function get_whisker($whisker_name) { return isset($this->whiskers[$whisker_name]) ? $this->whiskers[$whisker_name] : null; } /** * Check if we're sensing a specific boundary correctly */ public function is_boundary_detected($boundary_type) { return TigerStyleWhiskers_BoundaryDetector::is_detected($boundary_type); } /** * Get overall compliance status - are all whiskers happy? */ public function get_compliance_status() { return TigerStyleWhiskers_ComplianceScanner::get_status(); } /** * Integration with TigerStyle Heat Analytics */ public function integrate_with_heat() { if (class_exists('TigerStyleSEO_Google_setup')) { $analytics_whisker = $this->get_whisker('analytics_integration'); if ($analytics_whisker) { $analytics_whisker->connect_to_heat(); return true; } } return false; } /** * Plugin activation - wake up the whiskers! */ public static function activate() { // Load core class for activation require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/class-core.php'; // Run activation hooks for all whiskers TigerStyleWhiskers_Core::activate(); // Create database tables for compliance tracking TigerStyleWhiskers_Core::create_tables(); // Set default options TigerStyleWhiskers_Core::set_defaults(); // Log activation if (defined('WP_DEBUG') && WP_DEBUG) { error_log('TigerStyle Whiskers: Plugin activated - all whiskers are now alert and ready!'); } } /** * Plugin deactivation - whiskers at rest */ public static function deactivate() { // Load core class for deactivation require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/class-core.php'; TigerStyleWhiskers_Core::deactivate(); // Log deactivation if (defined('WP_DEBUG') && WP_DEBUG) { error_log('TigerStyle Whiskers: Plugin deactivated - whiskers are resting'); } } /** * Plugin uninstall - remove all traces (like a cat covering tracks) */ public static function uninstall() { // Load core class for uninstall require_once TIGERSTYLE_WHISKERS_PLUGIN_DIR . 'includes/class-core.php'; TigerStyleWhiskers_Core::uninstall(); } } // Register activation/deactivation hooks register_activation_hook(__FILE__, array('TigerStyleWhiskers', 'activate')); register_deactivation_hook(__FILE__, array('TigerStyleWhiskers', 'deactivate')); /** * Initialize the plugin when WordPress is loaded */ function tigerstyle_whiskers_init() { return TigerStyleWhiskers::instance(); } // Start the plugin - let the whiskers begin sensing! add_action('plugins_loaded', 'tigerstyle_whiskers_init'); /** * Helper function to get the main plugin instance */ function tigerstyle_whiskers() { return TigerStyleWhiskers::instance(); } /** * Check if user is in a GDPR territory (EU/EEA) * Whiskers sense geographic boundaries too! */ function tigerstyle_whiskers_is_gdpr_territory() { return TigerStyleWhiskers_BoundaryDetector::is_gdpr_territory(); } /** * Quick compliance check - are our whiskers detecting everything correctly? */ function tigerstyle_whiskers_compliance_check() { return TigerStyleWhiskers_ComplianceScanner::quick_check(); }