_fs); 'sectivio' is the plugin slug. global $sectivio_fs; if ( !isset( $sectivio_fs ) ) { $sectivio_fs_start = dirname( __FILE__ ) . '/vendor/freemius/start.php'; if ( !file_exists( $sectivio_fs_start ) ) { return null; } require_once $sectivio_fs_start; // Freundlichere Texte für Freemius-Dialoge (Lizenz, Konto) in Deutsch oder // Englisch. Die mitgelieferte Übersetzung hatte u. a. fehlende Leerzeichen. $adsec_fs_de = 0 === strpos( (string) get_locale(), 'de' ); fs_override_i18n( ( $adsec_fs_de ? array( 'activate-license' => 'Lizenz aktivieren', 'update-license' => 'Lizenz ändern', 'activate-license-message' => 'Geben Sie hier Ihren Lizenzschlüssel ein. Sie finden ihn in der E-Mail, die Sie nach dem Kauf erhalten haben.', 'license-sync-disclaimer' => 'Damit Sie Updates erhalten und Ihre Lizenz gültig bleibt, prüft Sectivio sie regelmäßig bei uns. Daten Ihrer Besucher werden dabei nicht übertragen.', 'agree-activate-license' => 'Lizenz aktivieren', 'license-key' => 'Lizenzschlüssel', 'cant-find-license-key' => 'Lizenzschlüssel nicht zur Hand?', 'account' => 'Konto & Abrechnung', 'license_not_whitelabeled' => 'Betreuen Sie diese Website für einen Kunden? %s, um Ihre E-Mail-Adresse, den Lizenzschlüssel, Preise und Rechnungen im WordPress-Backend auszublenden.', 'click-here' => 'Hier klicken', 'hey-x' => 'Hallo %s,', 'thanks-for-purchasing' => 'Willkommen bei %s! Bitte geben Sie zum Start Ihren Lizenzschlüssel ein:', 'dont-have-license-key' => 'Sie haben keinen Lizenzschlüssel?', 'have-license-key' => 'Sie haben einen Lizenzschlüssel?', 'activate-free-version' => 'Kostenlose Version aktivieren', 'connect-message' => 'Möchten Sie Hinweise zu Sicherheits- und Funktionsupdates per E-Mail erhalten und uns einige technische Angaben zu Ihrer WordPress-Installation übermitteln? Das hilft uns, das %s noch besser auf Ihre Website abzustimmen.', 'connect-message_on-update_skip' => 'Wenn Sie das überspringen, funktioniert %1$s trotzdem ganz normal.', 'opt-in-connect' => 'Zulassen und fortfahren', 'skip' => 'Überspringen', 'tos' => 'Nutzungsbedingungen', 'privacy-policy' => 'Datenschutzerklärung', ) : array( 'activate-license' => 'Activate license', 'update-license' => 'Change license', 'activate-license-message' => 'Enter your license key here. You will find it in the email you received after your purchase.', 'license-sync-disclaimer' => 'To make sure you receive updates and your license stays valid, Sectivio checks it with us regularly. No data about your visitors is sent in the process.', 'agree-activate-license' => 'Activate license', 'license-key' => 'License key', 'cant-find-license-key' => 'Don’t have your license key at hand?', 'account' => 'Account & Billing', 'license_not_whitelabeled' => 'Do you manage this website for a client? %s to hide your email address, license key, prices and invoices in the WordPress admin area.', 'click-here' => 'Click here', ) ), 'sectivio' ); $sectivio_fs = fs_dynamic_init( array( 'id' => '32496', 'slug' => 'sectivio', 'type' => 'plugin', 'public_key' => 'pk_97c8d2e608861375d402ceb8e9048', 'is_premium' => false, 'premium_suffix' => 'Pro', 'has_addons' => false, 'has_paid_plans' => true, 'is_org_compliant' => true, 'menu' => array( 'slug' => 'adaptive-sections', 'account' => true, 'contact' => false, 'support' => false, 'pricing' => false, ), 'is_live' => true, ) ); } return $sectivio_fs; } if ( sectivio_fs() ) { // Eigenes Icon in Freemius-Dialogen (Opt-in, Konto) statt des grauen Standard-Steckers. sectivio_fs()->add_filter( 'plugin_icon', function () { return dirname( __FILE__ ) . '/assets/img/sectivio-icon-128.png'; } ); do_action( 'sectivio_fs_loaded' ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound -- Freemius SDK naming convention (_fs); 'sectivio' is the plugin slug. } } // Rückstandsfreie Deinstallation über den Freemius-Hook `after_uninstall` (Freemius- // Vorgabe: KEINE eigene uninstall.php im Build). Bewusst selbstständig (nur $wpdb + // WP-Core), damit es auch läuft, wenn beim Uninstall keine Plugin-Klassen geladen sind. if ( function_exists( 'sectivio_fs' ) && sectivio_fs() ) { sectivio_fs()->add_action( 'after_uninstall', 'adsec_fs_uninstall_cleanup' ); } function adsec_fs_uninstall_cleanup() { global $wpdb; foreach ( array( 'adsec_events', 'adsec_stats', 'adsec_sections', 'adsec_daily' ) as $table ) { // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.SchemaChange -- removes the plugin's own tables on uninstall. $wpdb->query( $wpdb->prepare( 'DROP TABLE IF EXISTS %i', $wpdb->prefix . $table ) ); } foreach ( array( 'adsec_settings', 'adsec_model', 'adsec_scan_offset', 'adsec_totals', 'adsec_champions', 'adsec_promotions', 'adsec_eval_last', 'adsec_sync_last', 'adsec_sync_pull_last', 'adsec_pooled_insights', 'adsec_sync_status', 'adsec_telemetry_last', 'adsec_page_overrides', 'adsec_page_optimize', 'adsec_version', 'adsec_activation_redirect', 'adsec_daily_last', 'adsec_hints_dismissed', 'adsec_mail_key', 'adsec_pins_ready' ) as $opt ) { delete_option( $opt ); } foreach ( array('adsec_learning_tick', 'adsec_reanalyze_page', 'adsec_monthly_report') as $hook ) { wp_clear_scheduled_hook( $hook ); } } define( 'ADSEC_VERSION', '0.52.0' ); define( 'ADSEC_PLUGIN_FILE', __FILE__ ); define( 'ADSEC_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); define( 'ADSEC_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); // Basis-URL des verwalteten Analyse-/Lern-Dienstes des Anbieters (Abo). Ab v0.18.0 // ist hier die LIVE-Gateway-URL als Standard hinterlegt → der verwaltete Dienst ist // in jeder Installation sofort verfügbar, ohne dass etwas in der wp-config gesetzt // werden muss. Per wp-config-Konstante oder Filter 'adsec_service_url' übersteuerbar // (z. B. für Tests/eigenes Gateway). Auf '' setzen, um „in Vorbereitung" zu erzwingen. defined( 'ADSEC_SERVICE_URL' ) || define( 'ADSEC_SERVICE_URL', 'https://adaptive-sections-gateway.office-8c5.workers.dev' ); require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-database.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-inventory.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-ai.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-sync.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-daily.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-bandit.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-hints.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-privacy.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-rest-api.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-frontend.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-dashboard.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-report.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-admin.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-upgrade.php'; require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-updates.php'; // Dev/Test-Werkzeuge (Demo-Seeder + Simulator): nur laden, wenn vorhanden. Im // Verkaufs-/Release-Build sind diese beiden Dateien NICHT enthalten. foreach ( array('class-adsec-demo.php', 'class-adsec-simulator.php', 'class-adsec-modeltest.php') as $adsec_dev_tool ) { if ( file_exists( ADSEC_PLUGIN_DIR . 'includes/' . $adsec_dev_tool ) ) { require_once ADSEC_PLUGIN_DIR . 'includes/' . $adsec_dev_tool; } } require_once ADSEC_PLUGIN_DIR . 'includes/class-adsec-plugin.php'; register_activation_hook( __FILE__, array('ADSEC_Plugin', 'activate') ); register_deactivation_hook( __FILE__, array('ADSEC_Plugin', 'deactivate') ); ADSEC_Plugin::instance();