Как установить отслеживание affiliate кликов в WordPress без плагинов

Отслеживание кликов по affiliate ссылкам — ключевой аспект для анализа эффективности ваших партнерских кампаний. Многие пользователи обращаются к плагинам для решения этой задачи, но иногда хочется обойтись без дополнительных расширений, чтобы не нагружать сайт и сохранить полный контроль над кодом. В этой статье мы подробно разберем, как реализовать собственное отслеживание кликов по affiliate ссылкам на WordPress с помощью минимального количества кода и без плагинов.

Почему стоит реализовывать отслеживание кликов без плагинов

Плагины могут быть удобными, но они часто приводят к избыточной нагрузке, конфликтам с другими расширениями, а также создают уязвимости. Кроме того, если плагин перестает поддерживаться, вы рискуете потерять важный функционал. Реализация собственной системы отслеживания позволяет:

  • Оптимизировать производительность сайта.
  • Контролировать, какие данные собираются и как они обрабатываются.
  • Гибко настраивать логику без ограничений плагинов.
  • Избежать зависимости от сторонних разработчиков.

Давайте рассмотрим конкретный пример реализации.

Реализация отслеживания affiliate кликов: базовый пример

Основная идея — заменить прямые affiliate ссылки на ссылки с вашим доменом, которые ведут на промежуточный скрипт. Этот скрипт фиксирует клик, сохраняет данные и делает редирект на конечный URL партнера.

1. Создание скрипта редиректа и логирования

Создадим файл affiliate-redirect.php в корне сайта или в отдельной папке (например, /affiliate), который будет принимать параметр с идентификатором ссылки и перенаправлять пользователя.

<?php
// wpaffiliate_affiliate-redirect.php

// Подключаем WordPress для использования функций и доступа к базе данных
require_once dirname(__FILE__) . '/wp-load.php';

// Получаем ID ссылки из параметра
$link_id = isset($_GET['id']) ? intval($_GET['id']) : 0;

if ($link_id <= 0) {
    wp_die('Неверный ID ссылки');
}

// Получаем URL партнера из базы данных (предположим, что вы храните ссылки в пользовательской таблице wp_affiliate_links)
global $wpdb;
$table_name = $wpdb->prefix . 'affiliate_links';

$affiliate_url = $wpdb->get_var($wpdb->prepare("SELECT url FROM $table_name WHERE id = %d", $link_id));

if (!$affiliate_url) {
    wp_die('Ссылка не найдена');
}

// Логируем клик: IP, время, ID ссылки
$wpdb->insert($wpdb->prefix . 'affiliate_clicks', [
    'link_id' => $link_id,
    'click_time' => current_time('mysql'),
    'ip_address' => $_SERVER['REMOTE_ADDR'],
]);

// Редирект на affiliate URL
wp_redirect($affiliate_url);
exit();
?>

В данном примере предполагается, что у вас есть две пользовательские таблицы в базе данных:

  • wp_affiliate_links с полями id (INT), url (VARCHAR) — хранит партнерские ссылки.
  • wp_affiliate_clicks с полями id (INT, автоинкремент), link_id (INT), click_time (DATETIME), ip_address (VARCHAR) — хранит логи кликов.

2. Создание таблиц в базе данных

Для создания таблиц можно использовать следующий SQL:

CREATE TABLE IF NOT EXISTS wp_affiliate_links (
  id INT NOT NULL AUTO_INCREMENT,
  url VARCHAR(255) NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS wp_affiliate_clicks (
  id INT NOT NULL AUTO_INCREMENT,
  link_id INT NOT NULL,
  click_time DATETIME NOT NULL,
  ip_address VARCHAR(45) NOT NULL,
  PRIMARY KEY (id),
  INDEX (link_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Таблицы можно добавить через phpMyAdmin или программно при активации темы/плагина.

Генерация affiliate ссылок в шаблонах WordPress

Чтобы выводить ссылки в удобном формате, создадим функцию для генерации URL с редиректом. Например, в functions.php темы добавьте:

function wpaffiliate_generate_affiliate_url($link_id) {
    return home_url('/affiliate-redirect.php?id=' . intval($link_id));
}

Используйте эту функцию при выводе ссылок в шаблонах или постах:

<a href="<?php echo esc_url(wpaffiliate_generate_affiliate_url(123)); ?>" target="_blank" rel="nofollow">Перейти к партнеру</a>

Замените 123 на реальный ID из таблицы wp_affiliate_links.

Настройка и расширение функционала

1. Защита от накруток

Чтобы предотвратить накрутку кликов с одного IP, можно добавить проверку в скрипт редиректа, например, разрешать только один клик с одного IP в течение 1 часа:

$last_click = $wpdb->get_var($wpdb->prepare(
    "SELECT click_time FROM {$wpdb->prefix}affiliate_clicks WHERE link_id = %d AND ip_address = %s ORDER BY click_time DESC LIMIT 1",
    $link_id, $_SERVER['REMOTE_ADDR']
));

if ($last_click) {
    $last_click_time = strtotime($last_click);
    if (time() - $last_click_time < 3600) {
        // Уже был клик менее часа назад, перенаправляем без логирования
        wp_redirect($affiliate_url);
        exit();
    }
}

2. Отображение отчетов по кликам

Для удобства создайте в админке страницу или раздел с отчетом по кликам. Пример простого SQL запроса:

SELECT link_id, COUNT(*) AS clicks_count
FROM wp_affiliate_clicks
GROUP BY link_id
ORDER BY clicks_count DESC;

Вывести результат можно в таблице с помощью стандартных функций WordPress для админки или простым HTML.

3. Использование AJAX для динамического обновления счетчиков

Если нужно показывать счетчики кликов на фронтенде без перезагрузки, можно использовать AJAX-запросы к серверу, который вернет количество кликов по нужной ссылке.

Примеры плагинов с похожим функционалом

Если же вы хотите расширить возможности без самостоятельного кода, обратите внимание на плагины:

  • Clearfy Pro — оптимизация сайта и управление функционалом, включая безопасность.
  • WPRemark — помогает взаимодействовать с посетителями, можно использовать для кастомных уведомлений по кликам.

Итоги и рекомендации

Создание собственной системы отслеживания affiliate кликов в WordPress без плагинов — реально осуществимая задача, которая позволит вам гибко контролировать партнерские ссылки и аналитику. Главное — обеспечить надежное хранение данных в базе и защиту от накруток.

Используйте предложенный пример в качестве основы, расширяйте и адаптируйте под свои задачи. В дальнейшем можно интегрировать систему с Google Analytics или другими сервисами для более подробного анализа.

Как разделить affiliate сайт на поддомены в WordPress
02.01.2026
Как создать автоматический отчет о просмотрах affiliate ссылок в WordPress
30.12.2025
Автоматизация управления affiliate кампаниями в WordPress
26.11.2025
Как настроить обновление affiliate ссылок в WordPress без плагинов
16.12.2025
Как настроить автоматический импорт продуктов для affiliate в WordPress
03.12.2025