Yeni yazdığım bir scripti paylaşmak istiyorum. Eklenti vs. kullanmadan WordPress ziyaretçi IP adreslerini ve kaç kez ziyaret ettiklerini tespit edebilirsiniz. Kodlar konum bulma vs. gibi geliştirilebilir.

Cpanel sunucular için:
home/kullanıcı_adınız/public_html/wp-content/themes/tema_adı/js/ bu dosya yoluna bir js dosyası oluşturuyoruz. örneğin ip_bul.js aşağıdaki kodları ekliyoruz.



document.addEventListener("DOMContentLoaded", function() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'https://api.ipify.org?format=json', true);
    xhr.onreadystatechange = function() {
        if (xhr.readyState === XMLHttpRequest.DONE) {
            if (xhr.status === 200) {
                var response = JSON.parse(xhr.responseText);
                var userIP = response.ip;
                console.log("Ziyaretçi IP adresi: " + userIP);
                
                // IP adresini sunucuya gönderme (AJAX kullanarak)
                var xhr2 = new XMLHttpRequest();
                xhr2.open('POST', '/ip_kayit.php', true); // ip_kayit.php dosyasının yolu
                xhr2.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

                // Gönderilecek veriyi formatlayarak gönder
                var formData = new FormData();
                formData.append('user_ip', userIP);
                
                xhr2.onreadystatechange = function() {
                    if (xhr2.readyState === XMLHttpRequest.DONE) {
                        if (xhr2.status === 200) {
                            console.log('IP adresi başarıyla gönderildi.');
                            
                            // İstatistiklerin başarıyla güncellendiğini kontrol etmek için log
                            console.log(xhr2.responseText);
                        } else {
                            console.log('IP adresi gönderilemedi. Hata kodu: ' + xhr2.status);
                        }
                    }
                };

                xhr2.send(formData); // IP adresini ve istatistikleri sunucuya gönder
            } else {
                console.log('IP adresi alınamadı. Hata kodu: ' + xhr.status);
            }
        }
    };
    xhr.send();
});
Bu javascript dosyasının çalışması için public_html/wp-content/themes/tema_adı/function.php dosyası içerisine aşağıdaki kodları yazıyoruz.


function add_ip_detection_script() {    
wp_enqueue_script('ip_detection', get_template_directory_uri() . '/js/ip_bul.js', array(), '1.0', true); }
add_action('wp_enqueue_scripts', 'add_ip_detection_script');
Kök dizin içerisine yani public_html klasörü içerisine .php uzantılı bir dosya oluşturuyoruz. Örneğin ip_kayit.php (bu oluşturduğunuz dosya adını javascript kodları içerindeki bölümden değiştirmeyi unutmayın!) .php uzantılı dosyamıza aşağıdaki kodları yazıyoruz.


<?php
$userIP = $_POST['user_ip'];
$dosya = fopen($_SERVER['DOCUMENT_ROOT'] . '/ip_list.txt', "a");
if ($dosya) {
// Ziyaret tarihini ve sayısını al
$visitTime = date('Y-m-d H:i:s');
$visitCount = getVisitCount($userIP);

// IP bilgilerini dosyaya ekle
fwrite($dosya, "$userIP - $visitTime - ($visitCount)n");
fclose($dosya);
echo 'IP başarıyla kaydedildi.';
} else {
echo 'Dosya açılamadı.';
}

// İstatistikleri güncelleme işlevi
function getVisitCount($ip) {
$lines = file($_SERVER['DOCUMENT_ROOT'] . '/ip_list.txt');
$count = 0;
foreach ($lines as $line) {
if (strpos($line, $ip) !== false) {
$count++;
}
}
return $count + 1; // Bir artır, çünkü bu ziyaretin sayısı
}
?>
Yine kök dizin içerisine yani public_html içerisine ip_list.txt adında boş bir dosya oluşturuyoruz. bu .txt dosyasından ziyaretçi ip adreslerini görüntüleyebilirsiniz.

Bu kadar !


NOT:
PHP kodlarının çalışıp çalışmadığını > "https://siteadresiniz.com/ip_kayit.php" uzantısı ile kontrol edebilirsiniz.
JS dosyasının çalışıp çalışmadığını ise tarayıcınızın network sekmesinden kontrol edebilirsiniz.