81 lines
2.1 KiB
PHP
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'); |