Yorum Sistemi
Müşteri yorumları ve değerlendirmelerini yönetin. Ürün puanları, yorum moderasyonu, spam koruması ve ön yüz widget'ı ile güçlü bir yorum altyapısı oluşturun.
Genel Bakış
Yorum Sistemi addon'u, e-ticaret siteniz için kapsamlı bir müşteri değerlendirme altyapısı sunar. Ürün yorumları, yıldız puanlaması, faydalı/faydasız oylaması ve moderasyon araçlarıyla müşteri güvenini artırın.
Yıldız Puanlama
1-5 yıldız arası puan sistemi ile ürün değerlendirmesi
Moderasyon
Onay mekanizması ve spam koruması ile içerik kalitesi
Oylama Sistemi
Faydalı/faydasız oylaması ile kaliteli yorumları öne çıkarma
Widget Entegrasyonu
Kolay entegre edilebilen ön yüz widget'ı
Yorum Listesi
Tüm yorumları görüntüleyin, filtreleyin ve yönetin. Admin panelinden Eklentiler → Yorumlar → Yorum Listesi menüsüne gidin.
Duruma göre (bekleyen, onaylı, reddedilmiş, spam) ve puana göre (1-5 yıldız) filtreleme yapabilirsiniz.
Yorum Durumları
| Durum | Açıklama | Görünürlük |
|---|---|---|
| Bekleyen | Moderasyon bekleyen yeni yorumlar | Sadece admin görebilir |
| Onaylı | Onaylanmış ve yayında olan yorumlar | Herkes görebilir |
| Reddedilmiş | Reddedilmiş ve yayında olmayan yorumlar | Sadece admin görebilir |
| Spam | Spam olarak işaretlenmiş yorumlar | Sadece admin görebilir |
Yorum Detayı ve İşlemler
Her yoruma tıklayarak detay sayfasına erişebilir ve çeşitli işlemler yapabilirsiniz.
Görüntülenebilir Bilgiler
- Yorum yazarı (isim, e-posta)
- Yorum tarihi ve saati
- Ürün bilgisi ve linki
- Yıldız puanı (1-5)
- Yorum başlığı ve içeriği
- Faydalı/faydasız oy sayıları
- IP adresi
Mevcut İşlemler
| İşlem | Açıklama |
|---|---|
| Onayla | Yorumu onaylayarak yayına alır |
| Reddet | Yorumu reddederek yayından kaldırır |
| Spam İşaretle | Yorumu spam olarak işaretler |
| Sil | Yorumu kalıcı olarak siler |
| Yanıtla | Yoruma admin yanıtı ekler |
Silinen yorumlar geri alınamaz. Silmeden önce yorum içeriğini kontrol edin.
Admin Yanıtları
Müşteri yorumlarına resmi yanıt vererek müşteri ilişkilerinizi güçlendirin. Admin yanıtları yorumun altında özel bir stil ile gösterilir.
Yanıt Ekleme
- Yorum listesinden ilgili yorumu seçin
- Detay sayfasında "Yanıtla" butonuna tıklayın
- Yanıtınızı yazın
- "Yanıt Gönder" butonuna tıklayın
Olumsuz yorumlara profesyonel ve çözüm odaklı yanıtlar verin. Bu, diğer müşterilere de güven verir.
Ayarlar
Eklentiler → Yorumlar → Ayarlar menüsünden yorum sistemini ihtiyaçlarınıza göre yapılandırabilirsiniz.
Genel Ayarlar
| Ayar | Açıklama | Varsayılan |
|---|---|---|
| Yorumları Aktif Et | Yorum sistemini açar/kapatır | Aktif |
| Moderasyon Gerektir | Yeni yorumların onay gerektirip gerektirmediği | Evet |
| Oylamayı Etkinleştir | Faydalı/faydasız oylama özelliği | Aktif |
| Sayfa Başına Yorum | Ön yüzde sayfa başına gösterilecek yorum sayısı | 10 |
| Varsayılan Sıralama | Yorumların varsayılan sıralama kriteri | Yeni → Eski |
Spam Koruması
| Ayar | Açıklama |
|---|---|
| Minimum Yorum Uzunluğu | Yorumların kabul edileceği minimum karakter sayısı |
| Maksimum Yorum Uzunluğu | Yorumların kabul edileceği maksimum karakter sayısı |
| Link Kontrolü | Yorumlarda link içeriğini engeller veya moderasyona alır |
| Yasaklı Kelimeler | İçeriğinde bu kelimeler geçen yorumlar otomatik spam olarak işaretlenir |
Oylama Sistemi
Ziyaretçiler yorumları "Faydalı" veya "Faydasız" olarak oyalayabilir. Bu sistem, kaliteli yorumları öne çıkarmanıza yardımcı olur.
Nasıl Çalışır?
- Her ziyaretçi bir yoruma sadece bir kez oy verebilir
- Oylar IP adresi bazında takip edilir
- Toplam faydalı ve faydasız oy sayıları görüntülenir
- Yüksek faydalı oy alan yorumlar öne çıkarılabilir
// Yoruma oy verme
function voteReview(reviewId, type) {
// type: 'up' (faydalı) veya 'down' (faydasız)
fetch('/addons/reviews/includes/api.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
body: 'action=vote&review_id=' + reviewId +
'&vote_type=' + (type === 'up' ? 'helpful' : 'unhelpful')
})
.then(response => response.json())
.then(data => {
if (data.success) {
// Başarılı - oy sayılarını güncelle
}
});
}
Widget Entegrasyonu
Yorum widget'ını tema dosyalarınıza ekleyerek ürün sayfalarında yorumları gösterebilirsiniz.
Temel Kullanım
<?php
// Yorum fonksiyonlarını dahil et
require_once 'addons/reviews/includes/functions.php';
// Ürün ID'si ile yorumları göster
$product_id = 123; // Ürün ID'nizi belirtin
// Yorumları çek
$reviews = reviews_get_by_product($product_id, [
'status' => 'approved',
'limit' => 10,
'order' => 'newest'
]);
// Ortalama puanı hesapla
$stats = reviews_get_product_stats($product_id);
?>
Widget HTML Yapısı
<div class="reviews-widget" data-product-id="<?php echo $product_id; ?>">
<!-- Özet Bölümü -->
<div class="reviews-summary">
<div class="average-rating">
<span class="rating-value"><?php echo number_format($stats['average'], 1); ?></span>
<div class="stars">
<?php echo reviews_render_stars($stats['average']); ?>
</div>
<span class="review-count"><?php echo $stats['total']; ?> değerlendirme</span>
</div>
</div>
<!-- Yorum Listesi -->
<div class="reviews-list">
<?php foreach ($reviews as $review): ?>
<div class="review-item" data-review-id="<?php echo $review['id']; ?>">
<div class="review-header">
<span class="reviewer-name"><?php echo htmlspecialchars($review['name']); ?></span>
<div class="review-rating">
<?php echo reviews_render_stars($review['rating']); ?>
</div>
<span class="review-date"><?php echo date('d.m.Y', strtotime($review['created_at'])); ?></span>
</div>
<h4 class="review-title"><?php echo htmlspecialchars($review['title']); ?></h4>
<p class="review-content"><?php echo nl2br(htmlspecialchars($review['content'])); ?></p>
<!-- Oylama Butonları -->
<div class="review-votes">
<button onclick="voteReview(<?php echo $review['id']; ?>, 'up')" class="vote-btn">
<i class="fas fa-thumbs-up"></i>
<span class="helpful-count"><?php echo $review['helpful_count']; ?></span>
</button>
<button onclick="voteReview(<?php echo $review['id']; ?>, 'down')" class="vote-btn">
<i class="fas fa-thumbs-down"></i>
<span class="unhelpful-count"><?php echo $review['unhelpful_count']; ?></span>
</button>
</div>
</div>
<?php endforeach; ?>
</div>
<!-- Yorum Formu -->
<div class="review-form-container">
<h3>Yorum Yazın</h3>
<form id="review-form" class="review-form">
<input type="hidden" name="product_id" value="<?php echo $product_id; ?>">
<!-- Form alanları -->
</form>
</div>
</div>
Yıldız Gösterimi
Puanları yıldız şeklinde göstermek için hazır fonksiyonu kullanabilirsiniz.
<?php
/**
* Puana göre yıldız HTML'i oluşturur
* @param float $rating Puan (0-5)
* @return string HTML yıldızlar
*/
function reviews_render_stars($rating) {
$html = '<div class="star-rating">';
$fullStars = floor($rating);
$halfStar = ($rating - $fullStars) >= 0.5;
$emptyStars = 5 - $fullStars - ($halfStar ? 1 : 0);
// Dolu yıldızlar
for ($i = 0; $i < $fullStars; $i++) {
$html .= '<i class="fas fa-star"></i>';
}
// Yarım yıldız
if ($halfStar) {
$html .= '<i class="fas fa-star-half-alt"></i>';
}
// Boş yıldızlar
for ($i = 0; $i < $emptyStars; $i++) {
$html .= '<i class="far fa-star"></i>';
}
$html .= '</div>';
return $html;
}
?>
İstatistikler
Ürün bazında yorum istatistiklerini çekebilir ve gösterebilirsiniz.
<?php
// Ürün istatistiklerini çek
$stats = reviews_get_product_stats($product_id);
// Dönen veri yapısı:
// [
// 'total' => 45, // Toplam yorum sayısı
// 'average' => 4.2, // Ortalama puan
// 'rating_1' => 2, // 1 yıldız sayısı
// 'rating_2' => 3, // 2 yıldız sayısı
// 'rating_3' => 8, // 3 yıldız sayısı
// 'rating_4' => 15, // 4 yıldız sayısı
// 'rating_5' => 17, // 5 yıldız sayısı
// ]
// Puan dağılımı progress bar'ları
foreach ([5, 4, 3, 2, 1] as $star) {
$count = $stats['rating_' . $star];
$percentage = $stats['total'] > 0 ? ($count / $stats['total']) * 100 : 0;
echo "<div class='rating-bar'>";
echo "<span class='star-label'>{$star} yıldız</span>";
echo "<div class='progress'>";
echo "<div class='progress-bar' style='width: {$percentage}%'></div>";
echo "</div>";
echo "<span class='count'>{$count}</span>";
echo "</div>";
}
?>
CSS Stilleri
Widget için önerilen CSS stillerini tema dosyanıza ekleyebilirsiniz.
/* Yorum Widget Container */
.reviews-widget {
font-family: inherit;
max-width: 800px;
margin: 2rem 0;
}
/* Özet Bölümü */
.reviews-summary {
display: flex;
align-items: center;
padding: 1.5rem;
background: #f8f9fa;
border-radius: 8px;
margin-bottom: 1.5rem;
}
.average-rating .rating-value {
font-size: 3rem;
font-weight: bold;
color: #333;
}
/* Yıldızlar */
.star-rating {
display: inline-flex;
color: #ffc107;
gap: 2px;
}
.star-rating .far.fa-star {
color: #ddd;
}
/* Yorum Kartı */
.review-item {
border-bottom: 1px solid #eee;
padding: 1.5rem 0;
}
.review-header {
display: flex;
align-items: center;
gap: 1rem;
margin-bottom: 0.5rem;
}
.reviewer-name {
font-weight: 600;
}
.review-date {
color: #888;
font-size: 0.9rem;
}
.review-title {
font-size: 1.1rem;
margin: 0.5rem 0;
}
.review-content {
color: #555;
line-height: 1.6;
}
/* Oylama Butonları */
.review-votes {
display: flex;
gap: 1rem;
margin-top: 1rem;
}
.vote-btn {
display: inline-flex;
align-items: center;
gap: 0.5rem;
padding: 0.4rem 0.8rem;
border: 1px solid #ddd;
border-radius: 20px;
background: white;
cursor: pointer;
transition: all 0.2s;
}
.vote-btn:hover {
background: #f0f0f0;
}
.vote-btn.voted {
background: #e3f2fd;
border-color: #2196f3;
color: #1976d2;
}
Sorun Giderme
Yorumlar ön yüzde görünmüyor
Çözüm: Yorumların "Onaylı" durumunda olduğundan emin olun.
Ayrıca widget kodunun doğru şekilde entegre edildiğini ve
status => 'approved' filtresi kullanıldığını kontrol edin.
Oylama butonu çalışmıyor
Çözüm: Ayarlardan "Oylamayı Etkinleştir" seçeneğinin aktif
olduğunu kontrol edin. JavaScript konsolunda hata olup olmadığını inceleyin.
API endpoint'inin (/addons/reviews/includes/api.php) erişilebilir
olduğundan emin olun.
Yeni yorumlar otomatik yayınlanmıyor
Çözüm: Bu beklenen bir davranıştır. "Moderasyon Gerektir" ayarı aktif ise yorumlar önce onay bekler. Otomatik yayın için bu ayarı kapatabilirsiniz, ancak spam riski artabilir.
Yıldızlar düzgün görünmüyor
Çözüm: Font Awesome kütüphanesinin sayfaya dahil edildiğinden
emin olun. Hem solid (fas) hem de regular (far)
ikonların yüklü olması gerekir.
Spam yorumlar geliyor
Çözüm: Ayarlarda minimum yorum uzunluğunu artırın, yasaklı kelimeler listesi ekleyin ve link kontrolünü aktif edin. Moderasyon özelliğini açık tutun.