149 lines
5.3 KiB
PHP
149 lines
5.3 KiB
PHP
<?php
|
|
/**
|
|
* Admin functionality class
|
|
*/
|
|
|
|
// Exit if accessed directly
|
|
if (!defined('ABSPATH')) {
|
|
exit;
|
|
}
|
|
|
|
class Palantics_Admin {
|
|
|
|
// Tracking server URL
|
|
private $tracking_server_url = 'tracking1.karlbreuer.com';
|
|
|
|
/**
|
|
* Constructor
|
|
*/
|
|
public function __construct() {
|
|
// Add settings page
|
|
add_action('admin_menu', array($this, 'add_settings_page'));
|
|
add_action('admin_init', array($this, 'register_settings'));
|
|
}
|
|
|
|
/**
|
|
* Add settings page
|
|
*/
|
|
public function add_settings_page() {
|
|
add_options_page(
|
|
'Palantics Tracking',
|
|
'Palantics Tracking',
|
|
'manage_options',
|
|
'palantics-tracking-settings',
|
|
array($this, 'render_settings_page')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Register settings
|
|
*/
|
|
public function register_settings() {
|
|
register_setting('palantics_tracking_settings', 'palantics_tracking_server_url');
|
|
register_setting('palantics_tracking_settings', 'palantics_tracking_track_classes');
|
|
|
|
add_settings_section(
|
|
'palantics_tracking_section',
|
|
'Tracking Settings',
|
|
array($this, 'settings_section_callback'),
|
|
'palantics-tracking-settings'
|
|
);
|
|
|
|
add_settings_field(
|
|
'palantics_tracking_server_url',
|
|
'Tracking Server URL',
|
|
array($this, 'server_url_callback'),
|
|
'palantics-tracking-settings',
|
|
'palantics_tracking_section'
|
|
);
|
|
|
|
add_settings_section(
|
|
'palantics_tracking_auto_section',
|
|
'Element Tracking Settings',
|
|
array($this, 'auto_settings_section_callback'),
|
|
'palantics-tracking-settings'
|
|
);
|
|
|
|
add_settings_field(
|
|
'palantics_tracking_track_classes',
|
|
'Track Elements with Classes',
|
|
array($this, 'track_classes_callback'),
|
|
'palantics-tracking-settings',
|
|
'palantics_tracking_auto_section'
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Settings section callback
|
|
*/
|
|
public function settings_section_callback() {
|
|
echo '<p>Configure your Palantics tracking server settings.</p>';
|
|
}
|
|
|
|
/**
|
|
* Auto tracking settings section callback
|
|
*/
|
|
public function auto_settings_section_callback() {
|
|
echo '<p>Configure which elements to track based on CSS classes.</p>';
|
|
}
|
|
|
|
/**
|
|
* Server URL field callback
|
|
*/
|
|
public function server_url_callback() {
|
|
$value = get_option('palantics_tracking_server_url', $this->tracking_server_url);
|
|
echo '<input type="text" id="palantics_tracking_server_url" name="palantics_tracking_server_url" value="' . esc_attr($value) . '" class="regular-text">';
|
|
echo '<p class="description">Enter the tracking server URL without https:// (e.g., tracking1.karlbreuer.com)</p>';
|
|
echo '<p class="description">You will find this in your domain screen in the Palantics app</p>';
|
|
}
|
|
|
|
/**
|
|
* Track classes callback
|
|
*/
|
|
public function track_classes_callback() {
|
|
$value = get_option('palantics_tracking_track_classes', '');
|
|
echo '<input type="text" id="palantics_tracking_track_classes" name="palantics_tracking_track_classes" value="' . esc_attr($value) . '" class="regular-text">';
|
|
echo '<p class="description">Enter comma-separated class names to automatically track clicks on elements with these classes (e.g., cta-button, featured-product)</p>';
|
|
}
|
|
|
|
/**
|
|
* Render settings page
|
|
*/
|
|
public function render_settings_page() {
|
|
?>
|
|
<div class="wrap">
|
|
<h1><span style="color: #007cba;">Palantics</span> Tracking Settings</h1>
|
|
<form method="post" action="options.php">
|
|
<?php
|
|
settings_fields('palantics_tracking_settings');
|
|
do_settings_sections('palantics-tracking-settings');
|
|
submit_button();
|
|
?>
|
|
</form>
|
|
|
|
<div style="background-color: #fff; padding: 20px; margin-top: 20px; border: 1px solid #ccc; border-radius: 4px;">
|
|
<h2>Manual Tracking Methods</h2>
|
|
|
|
<div style="margin-bottom: 20px;">
|
|
<h3>Method 1: Using Data Attributes</h3>
|
|
<p>Add the <code>data-track</code> attribute to any HTML element to track clicks:</p>
|
|
<pre style="background-color: #f5f5f5; padding: 10px; border-radius: 4px;"><button data-track="signup_button_click">Sign Up</button></pre>
|
|
</div>
|
|
|
|
<div style="margin-bottom: 20px;">
|
|
<h3>Method 2: Using Shortcode</h3>
|
|
<p>Wrap any content with the shortcode to track clicks:</p>
|
|
<pre style="background-color: #f5f5f5; padding: 10px; border-radius: 4px;">[track_element event="download_click" class="your-class" style="your-style"]
|
|
Your content here (can include other shortcodes)
|
|
[/track_element]</pre>
|
|
</div>
|
|
|
|
<div>
|
|
<h3>Method 3: Using Direct JavaScript</h3>
|
|
<p>You can also manually add <code>onclick="tE('your_event_name')"</code> to any HTML element.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
}
|
|
}
|