2025-04-16 16:13:31 +02:00

81 lines
2.1 KiB
PHP

<?php
/**
* Plugin Name: Palantics Tracking Plugin
* Description: Adds tracking script to website header and tracks user interactions using WordPress REST API
* Version: 1.3.0
* Author: Karl Breuer
* Text Domain: palantics-tracking-plugin
* Domain Path: /languages
*/
// Exit if accessed directly
if (!defined('ABSPATH')) {
exit;
}
// Define plugin constants
define('PALANTICS_PLUGIN_PATH', plugin_dir_path(__FILE__));
define('PALANTICS_PLUGIN_URL', plugin_dir_url(__FILE__));
define('PALANTICS_PLUGIN_VERSION', '1.3.0');
// Include required files
require_once PALANTICS_PLUGIN_PATH . 'includes/class-tracking.php';
require_once PALANTICS_PLUGIN_PATH . 'includes/class-admin.php';
require_once PALANTICS_PLUGIN_PATH . 'includes/class-loader.php';
class Palantics_Tracking_Plugin {
// Plugin instance
private static $instance = null;
// Tracking instance
private $tracking;
// Admin instance
private $admin;
// Loader instance
private $loader;
/**
* Constructor
*/
private function __construct() {
// Initialize tracking
$this->tracking = new Palantics_Tracking();
// Initialize admin
$this->admin = new Palantics_Admin();
// Initialize loader
$this->loader = new Palantics_Loader();
// Add settings link on plugin page
add_filter('plugin_action_links_' . plugin_basename(__FILE__), array($this, 'add_settings_link'));
}
/**
* Get plugin instance
*/
public static function get_instance() {
if (null === self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Add settings link to plugin page
*/
public function add_settings_link($links) {
$settings_link = '<a href="options-general.php?page=palantics-tracking-settings">Settings</a>';
array_unshift($links, $settings_link);
return $links;
}
}
// Initialize the plugin
function palantics_tracking_init() {
Palantics_Tracking_Plugin::get_instance();
}
add_action('plugins_loaded', 'palantics_tracking_init');