403Webshell
Server IP : 202.61.199.114  /  Your IP : 216.73.217.139
Web Server : nginx/1.22.1
System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
User : web20 ( 1018)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/clients/client2/web20/web/wp-content/plugins/arni-crm-tracking/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/clients/client2/web20/web/wp-content/plugins/arni-crm-tracking/arni-crm-tracking.php
<?php
/**
 * Plugin Name:       ArNi CRM Tracking
 * Plugin URI:        https://www.arni-solutions.de
 * Description:       DSGVO-bewusstes, cookieloses First-Party-Tracking (serverseitig + JavaScript-Events) ohne externe Dienste. Daten im Admin sichtbar und per eigener REST-API für ein CRM abrufbar.
 * Version:           1.0.0
 * Requires at least: 5.6
 * Requires PHP:      7.3
 * Author:            ArNi Solutions
 * Author URI:        https://www.arni-solutions.de
 * License:           GPL-2.0-or-later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:       arni-crm-tracking
 *
 * @package ArNi_CRM_Tracking
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

define( 'ARNI_CRM_TRACKING_VERSION', '1.0.0' );
define( 'ARNI_CRM_TRACKING_DB_VERSION', '1.1.0' );
define( 'ARNI_CRM_TRACKING_FILE', __FILE__ );
define( 'ARNI_CRM_TRACKING_DIR', plugin_dir_path( __FILE__ ) );
define( 'ARNI_CRM_TRACKING_URL', plugin_dir_url( __FILE__ ) );
define( 'ARNI_CRM_TRACKING_BASENAME', plugin_basename( __FILE__ ) );
define( 'ARNI_CRM_TRACKING_REST_NS', 'arni-tracking/v1' );
define( 'ARNI_CRM_TRACKING_CRON_HOOK', 'arni_crm_tracking_cleanup' );

/* ---------------------------------------------------------------------------
 * Klassen laden
 * ------------------------------------------------------------------------- */
require_once ARNI_CRM_TRACKING_DIR . 'includes/class-arni-settings.php';
require_once ARNI_CRM_TRACKING_DIR . 'includes/class-arni-helpers.php';
require_once ARNI_CRM_TRACKING_DIR . 'includes/class-arni-geoip.php';
require_once ARNI_CRM_TRACKING_DIR . 'includes/class-arni-database.php';
require_once ARNI_CRM_TRACKING_DIR . 'includes/class-arni-reports.php';
require_once ARNI_CRM_TRACKING_DIR . 'includes/class-arni-tracker.php';
require_once ARNI_CRM_TRACKING_DIR . 'includes/class-arni-frontend.php';
require_once ARNI_CRM_TRACKING_DIR . 'includes/class-arni-rest.php';
require_once ARNI_CRM_TRACKING_DIR . 'includes/class-arni-admin.php';
require_once ARNI_CRM_TRACKING_DIR . 'includes/functions.php';

/* ---------------------------------------------------------------------------
 * Aktivierung / Deaktivierung
 * ------------------------------------------------------------------------- */
register_activation_hook( __FILE__, array( 'Arni_CRM_Tracking_Plugin', 'activate' ) );
register_deactivation_hook( __FILE__, array( 'Arni_CRM_Tracking_Plugin', 'deactivate' ) );

/**
 * Zentraler Bootstrap.
 */
final class Arni_CRM_Tracking_Plugin {

	/** @var Arni_CRM_Tracking_Plugin|null */
	private static $instance = null;

	/** @var Arni_CRM_Tracking_Tracker */
	public $tracker;

	/** @var Arni_CRM_Tracking_Frontend */
	public $frontend;

	/** @var Arni_CRM_Tracking_Rest */
	public $rest;

	/** @var Arni_CRM_Tracking_Admin */
	public $admin;

	/**
	 * @return Arni_CRM_Tracking_Plugin
	 */
	public static function instance() {
		if ( null === self::$instance ) {
			self::$instance = new self();
		}
		return self::$instance;
	}

	private function __construct() {
		// Schema-Upgrades bei Versionswechsel (z. B. nach Plugin-Update).
		add_action( 'plugins_loaded', array( $this, 'maybe_upgrade' ) );

		$this->tracker  = new Arni_CRM_Tracking_Tracker();
		$this->frontend = new Arni_CRM_Tracking_Frontend();
		$this->rest     = new Arni_CRM_Tracking_Rest();

		if ( is_admin() ) {
			$this->admin = new Arni_CRM_Tracking_Admin();
		}

		// Cron-Cleanup.
		add_action( ARNI_CRM_TRACKING_CRON_HOOK, array( 'Arni_CRM_Tracking_Database', 'cleanup_old_data' ) );
	}

	/**
	 * Bei Versionswechsel Tabellen sicher (idempotent) aktualisieren.
	 */
	public function maybe_upgrade() {
		if ( get_option( 'arni_crm_tracking_db_version' ) !== ARNI_CRM_TRACKING_DB_VERSION ) {
			Arni_CRM_Tracking_Database::create_tables();
			update_option( 'arni_crm_tracking_db_version', ARNI_CRM_TRACKING_DB_VERSION, false );
		}
	}

	/**
	 * Aktivierungs-Hook: Tabellen, Defaults, Salt/API-Key, Cron.
	 */
	public static function activate() {
		Arni_CRM_Tracking_Database::create_tables();
		Arni_CRM_Tracking_Settings::install_defaults();

		if ( ! wp_next_scheduled( ARNI_CRM_TRACKING_CRON_HOOK ) ) {
			wp_schedule_event( time() + HOUR_IN_SECONDS, 'daily', ARNI_CRM_TRACKING_CRON_HOOK );
		}

		update_option( 'arni_crm_tracking_db_version', ARNI_CRM_TRACKING_DB_VERSION, false );
	}

	/**
	 * Deaktivierungs-Hook: Cron entfernen (Daten bleiben erhalten).
	 */
	public static function deactivate() {
		$timestamp = wp_next_scheduled( ARNI_CRM_TRACKING_CRON_HOOK );
		if ( $timestamp ) {
			wp_unschedule_event( $timestamp, ARNI_CRM_TRACKING_CRON_HOOK );
		}
		wp_clear_scheduled_hook( ARNI_CRM_TRACKING_CRON_HOOK );
	}
}

Arni_CRM_Tracking_Plugin::instance();

Youez - 2016 - github.com/yon3zu
LinuXploit