Servis Yönetimi
Wordpress Servis yönetim sistemi. Lokasyon ve Harita bazlı görüntüleme değerlendirme.
by Ahmet Burak Çaylak · github.com/burakcaylak/wordpress-servis-yonetimi
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/burakcaylak/wordpress-servis-yonetimi/archive/refs/heads/master.zipWordPress Servis Yönetimi Eklentisi
Kapsamlı servis yönetim sistemi - Servis listesi, kullanıcı atamaları, güzergah yönetimi, değerlendirmeler ve raporlama özellikleri sunar.
🚀 Özellikler
🚌 Servis Yönetimi
- ✅ Servis Listesi: Aktif, pasif ve bakımda servislerin yönetimi
- ✅ Servis Tipleri: Gidiş, dönüş ve çift yönlü servis desteği
- ✅ Servis Numarası: Benzersiz servis numarası ile takip
- ✅ Hareket Saatleri: Gidiş ve dönüş saatleri yönetimi
- ✅ Hizmet Bölgeleri: Bölge bazlı servis organizasyonu
- ✅ Lokasyon Yönetimi: İl, ilçe ve semt bazlı lokasyon sistemi
- ✅ Anahtar Kelimeler: Servis araması için anahtar kelime desteği
🗺️ Güzergah ve Harita
- ✅ Google Maps Entegrasyonu: Google Maps API ile harita desteği
- ✅ Güzergah Çizimi: Polyline ve polygon ile güzergah çizimi
- ✅ Durak Yönetimi: Güzergah üzerinde durak noktaları
- ✅ Maps Embed URL: Harici siteler için embed desteği
- ✅ Güzergah Arama: Başlangıç ve bitiş noktasına göre servis arama
🚗 Araç ve Sürücü Yönetimi
- ✅ Araç Yönetimi: Plaka, marka, model, yıl bilgileri
- ✅ Kapasite Yönetimi: Asil ve yedek kapasite takibi
- ✅ Araç Durumları: Aktif, pasif, bakımda durumları
- ✅ Sürücü Yönetimi: Sürücü bilgileri ve atamaları
- ✅ Görsel Yönetimi: Araç ve sürücü görselleri
- ✅ Stajyer ve Taşeron Desteği: Stajyer ve taşeron işaretleme
👥 Kullanıcı Atamaları
- ✅ Gidiş/Dönüş Desteği: Ayrı gidiş ve dönüş servis atamaları
- ✅ Kayıt Tipleri: Sürekli, günlük ve değişiklik talebi
- ✅ Durak Atamaları: Biniş ve iniş durakları
- ✅ Saat Yönetimi: Biniş ve iniş saatleri
- ✅ Yolcu Tipleri: Farklı yolcu tipleri (öğrenci, personel vb.)
- ✅ Yolcu Listesi: Detaylı yolcu takibi
📝 Talep Yönetimi
- ✅ Talep Tipleri:
- Günlük servis talebi
- Servis kayıt talebi
- Servis değişiklik talebi
- Diğer talepler
- ✅ Talep Durumları: Beklemede, onaylandı, reddedildi
- ✅ Talep Takibi: Kullanıcı taleplerini görüntüleme
- ✅ Admin Onay Sistemi: Yönetici onayı ile talep yönetimi
⭐ Değerlendirme Sistemi
- ✅ Kullanıcı Değerlendirmeleri: Servis değerlendirme sistemi
- ✅ Çoklu Kriter: Özelleştirilebilir değerlendirme kriterleri
- ✅ Yorum Desteği: Değerlendirmelere yorum ekleme
- ✅ Raporlama: Değerlendirme raporları ve istatistikler
📊 Raporlama ve Analiz
- ✅ Dashboard: Özet istatistikler ve grafikler
- ✅ Chart.js Entegrasyonu: Görsel raporlar
- ✅ Filtreleme: Tarih, servis, durum bazlı filtreleme
- ✅ Export: Veri dışa aktarma desteği
🔔 Bildirim Sistemi
- ✅ E-posta Bildirimleri: Otomatik e-posta bildirimleri
- ✅ WordPress Bildirimleri: Admin panel bildirimleri
- ✅ Talep Bildirimleri: Talep durumu değişiklik bildirimleri
🌐 Frontend Özellikleri
- ✅ Shortcode Desteği:
[servis_listesi]- Servis listesi[servis_detay]- Servis detay sayfası[servis_arama]- Servis arama formu[servis_taleplerim]- Kullanıcı talepleri[servis_guzergah_arama]- Güzergah arama
- ✅ Responsive Tasarım: Mobil uyumlu arayüz
- ✅ AJAX Arama: Sayfa yenilenmeden arama
- ✅ Lottie Animasyonları: Animasyonlu arama kutusu
- ✅ Custom Post Type: Servis için özel post type
- ✅ Permalink Yapısı:
/servisler/[servis-no]/formatı
🔌 API ve Entegrasyon
- ✅ REST API: RESTful API desteği
- ✅ AJAX Endpoints: Frontend için AJAX endpoint'leri
- ✅ BuddyPress Entegrasyonu: Profil sayfalarında servis bilgileri
- ✅ Custom Capabilities: Özel yetki yönetimi
📋 Gereksinimler
- WordPress 5.0 veya üzeri
- PHP 7.4 veya üzeri
- MySQL 5.6 veya üzeri
- Google Maps API Key (harita özellikleri için)
- BuddyPress (opsiyonel - profil entegrasyonu için)
🔧 Kurulum
1. Eklentiyi Yükleyin
- Bu repository'yi klonlayın veya ZIP olarak indirin
servis-yonetimiklasörünü WordPress'inwp-content/plugins/klasörüne kopyalayın- WordPress admin paneline giriş yapın
- Eklentiler > Yüklü Eklentiler sayfasına gidin
- Servis Yönetimi eklentisini aktifleştirin
2. Veritabanı Tabloları
Eklenti aktifleştirildiğinde otomatik olarak gerekli veritabanı tabloları oluşturulur:
wp_servis_araclar: Araç bilgileriwp_servis_suruculer: Sürücü bilgileriwp_servisler: Ana servis tablosuwp_servis_kullanicilar: Kullanıcı atamalarıwp_servis_duraklar: Durak bilgileriwp_servis_talepler: Talep kayıtlarıwp_servis_degerlendirmeler: Değerlendirmelerwp_servis_hizmet_bolgeleri: Hizmet bölgeleriwp_servis_yolcu_tipleri: Yolcu tipleriwp_servis_iller: İl listesiwp_servis_ilceler: İlçe listesiwp_servis_semtler: Semt listesi
3. Google Maps API Key
Ayarlar > Servis Yönetimi > Ayarlar sayfasından:
- Google Maps API Key'inizi girin
- Maps JavaScript API ve Places API'yi aktifleştirin
4. Sayfa Oluşturma
Aşağıdaki sayfaları oluşturun ve ilgili shortcode'ları ekleyin:
Servis Listesi Sayfası:
[servis_listesi]
Servis Arama Sayfası:
[servis_arama]
Güzergah Arama Sayfası:
[servis_guzergah_arama]
Taleplerim Sayfası:
[servis_taleplerim]
📖 Kullanım
Shortcode Kullanımı
Servis Listesi
[servis_listesi]
Parametreler:
hizmet_bolgesi: Hizmet bölgesi slug'ı (opsiyonel)durum: Durum filtresi (aktif,pasif,bakimda) - varsayılan:aktifview: Görünüm tipi (grid,list) - varsayılan:gridlimit: Gösterilecek servis sayısı (0 = tümü)
Örnekler:
[servis_listesi hizmet_bolgesi="istanbul" durum="aktif" view="grid" limit="10"]
Servis Detay
[servis_detay id="123"]
veya
[servis_detay servis_no="S001"]
Servis Arama
[servis_arama]
Taleplerim
[servis_taleplerim]
Güzergah Arama
[servis_guzergah_arama]
Admin Paneli
Servis Yönetimi
Servis Yönetimi > Servisler menüsünden:
- Tüm servisleri görüntüleme
- Yeni servis ekleme
- Servis düzenleme
- Servis silme
- Durum değiştirme
Araç Yönetimi
Servis Yönetimi > Araçlar menüsünden:
- Araç ekleme/düzenleme
- Plaka, marka, model bilgileri
- Kapasite yönetimi
- Araç durumu yönetimi
Sürücü Yönetimi
Servis Yönetimi > Sürücüler menüsünden:
- Sürücü ekleme/düzenleme
- Sürücü atamaları
- Sürücü durumu yönetimi
Kullanıcı Atamaları
Servis Yönetimi > Kullanıcılar menüsünden:
- Kullanıcı-servis atamaları
- Gidiş/dönüş servis atamaları
- Durak atamaları
- Saat yönetimi
Talep Yönetimi
Servis Yönetimi > Talepler menüsünden:
- Tüm talepleri görüntüleme
- Talep onaylama/reddetme
- Talep durumu takibi
Değerlendirmeler
Servis Yönetimi > Değerlendirmeler menüsünden:
- Tüm değerlendirmeleri görüntüleme
- Filtreleme ve arama
- Detaylı görüntüleme
Raporlar
Servis Yönetimi > Raporlar menüsünden:
- Grafiksel raporlar
- Tarih aralığı seçimi
- Servis ve durum filtreleme
Dashboard
Servis Yönetimi > Dashboard menüsünden:
- Özet istatistikler
- Grafikler ve çizelgeler
- Hızlı erişim linkleri
Lokasyon Yönetimi
Servis Yönetimi altında:
- İller: İl listesi yönetimi
- İlçeler: İlçe listesi yönetimi
- Semtler: Semt listesi yönetimi
Diğer Yönetimler
- Hizmet Bölgeleri: Hizmet bölgeleri yönetimi
- Yolcu Tipleri: Yolcu tipleri yönetimi
- Yolcu Listesi: Yolcu listesi görüntüleme
Güzergah Çizimi
- Servis Yönetimi > Servisler > Yeni Ekle veya mevcut servisi düzenle
- Güzergah sekmesine gidin
- Harita üzerinde başlangıç noktasını seçin
- Durak noktalarını ekleyin
- Bitiş noktasını seçin
- Güzergah otomatik olarak çizilir
- Kaydedin
Kullanıcı Atama
- Servis Yönetimi > Kullanıcılar > Yeni Atama
- Kullanıcı seçin
- Gidiş ve/veya dönüş servisi seçin
- Biniş ve iniş durakları seçin
- Saatleri belirleyin
- Kayıt tipini seçin (sürekli, günlük, değişiklik talebi)
- Kaydedin
🎨 Özelleştirme
CSS Özelleştirme
Eklenti kendi CSS dosyalarını yükler. Özelleştirmek için:
- Tema'nızın
style.cssdosyasına özel CSS ekleyin - Veya child theme kullanın
CSS Sınıfları:
.servis-yonetimi-list: Servis listesi container.servis-card: Servis kartı.servis-detay: Servis detay sayfası.servis-arama: Arama formu.guzergah-harita: Harita container
JavaScript Hook'ları
Eklenti, JavaScript hook'ları sağlar:
// Servis arama sonuçları yüklendiğinde
jQuery(document).on('servis:search:results', function(e, data) {
console.log('Arama sonuçları', data);
});
// Servis detay yüklendiğinde
jQuery(document).on('servis:detail:loaded', function(e, data) {
console.log('Servis detay', data);
});
📁 Klasör Yapısı
servis-yonetimi/
├── admin/ # Admin panel dosyaları
│ ├── menu.php # Admin menü yapısı
│ ├── admin-listeler.php # Servis listesi
│ ├── admin-yonetim.php # Servis ekleme/düzenleme
│ ├── admin-talepler.php # Talep yönetimi
│ ├── admin-degerlendirmeler.php
│ ├── admin-raporlar.php # Raporlar
│ ├── admin-dashboard.php # Dashboard
│ ├── admin-araclar.php # Araç listesi
│ ├── admin-arac-yonetim.php
│ ├── admin-suruculer.php # Sürücü listesi
│ ├── admin-surucu-yonetim.php
│ ├── admin-hizmet-bolgeleri.php
│ ├── admin-yolcu-tipleri.php
│ ├── admin-yolcu-listesi.php
│ ├── admin-iller.php # İl yönetimi
│ ├── admin-ilceler.php # İlçe yönetimi
│ ├── admin-semtler.php # Semt yönetimi
│ ├── admin-veritabani.php # Veritabanı yönetimi
│ └── admin-ayarlar.php # Ayarlar
├── assets/ # CSS, JS ve görseller
│ ├── css/
│ │ ├── admin.css # Admin temel stilleri
│ │ ├── admin-filters.css # Filtre bar stilleri
│ │ ├── admin-listeler.css
│ │ ├── frontend.css # Frontend stilleri
│ │ └── maps.css # Harita stilleri
│ ├── js/
│ │ ├── admin.js # Admin scripti
│ │ ├── frontend.js # Frontend scripti
│ │ ├── ajax-search.js # AJAX arama
│ │ └── maps.js # Harita scripti
│ └── search-box-ikon.json # Lottie animasyon
├── inc/ # Ana modüller
│ ├── db.php # Veritabanı işlemleri
│ ├── helpers.php # Yardımcı fonksiyonlar
│ ├── helpers-arac.php # Araç yardımcıları
│ ├── helpers-surucu.php # Sürücü yardımcıları
│ ├── helpers-hizmet-bolgesi.php
│ ├── helpers-yolcu-tipi.php
│ ├── helpers-yolcu.php
│ ├── helpers-il.php # İl yardımcıları
│ ├── helpers-ilce.php # İlçe yardımcıları
│ ├── helpers-semt.php # Semt yardımcıları
│ ├── capabilities.php # Yetki yönetimi
│ ├── cpt.php # Custom Post Type
│ ├── forms.php # Form işlemleri
│ ├── ajax.php # AJAX handler'ları
│ ├── maps.php # Harita işlemleri
│ ├── maps-polyline.php # Polyline işlemleri
│ ├── notifications.php # Bildirim sistemi
│ ├── shortcode.php # Shortcode handler
│ ├── rest-api.php # REST API
│ ├── buddypress.php # BuddyPress entegrasyonu
│ └── rate/ # Değerlendirme modülleri
│ ├── db.php
│ ├── ajax.php
│ ├── frontend.php
│ └── reports.php
├── templates/ # Template dosyaları
│ └── frontend/
│ ├── servis-listesi.php
│ ├── servis-detay.php
│ ├── servis-arama.php
│ ├── guzergah-arama.php
│ ├── taleplerim.php
│ └── ...
├── servis-yonetimi.php # Ana eklenti dosyası
└── README.md # Bu dosya
🔒 Güvenlik
- ✅ Nonce kontrolü ile CSRF koruması
- ✅ Veri sanitizasyonu ve doğrulama
- ✅ SQL injection koruması (prepared statements)
- ✅ XSS koruması (WordPress sanitize fonksiyonları)
- ✅ Capability kontrolü (admin işlemleri için)
- ✅ Kullanıcı yetkilendirme
🌐 Çoklu Dil Desteği
Eklenti çoklu dil desteği için hazırlanmıştır. Text domain: servis-yonetimi
Dil dosyalarını languages/ klasörüne ekleyin veya Loco Translate gibi bir eklenti kullanın.
🐛 Sorun Giderme
Google Maps Görünmüyor
- Google Maps API Key'in doğru olduğundan emin olun
- Maps JavaScript API ve Places API'nin aktif olduğunu kontrol edin
- API key'in kısıtlamalarını kontrol edin
- Tarayıcı konsolunda hata mesajlarını kontrol edin
Shortcode Çalışmıyor
- Eklentinin aktif olduğundan emin olun
- Shortcode syntax'ını kontrol edin
- Tema'nın shortcode'ları desteklediğinden emin olun
- Sayfa cache'ini temizleyin
Veritabanı Hatası
- WordPress veritabanı kullanıcısının yeterli yetkilere sahip olduğundan emin olun
- Eklentiyi deaktif edip tekrar aktifleştirin (tablolar yeniden oluşturulur)
- Veritabanı tablolarının var olduğunu kontrol edin
Güzergah Çizilemiyor
- Google Maps API Key'in doğru olduğundan emin olun
- JavaScript hatalarını kontrol edin (tarayıcı konsolu)
- Harita kütüphanelerinin yüklendiğinden emin olun (places, geometry)
Kullanıcı Atamaları Görünmüyor
- Kullanıcının doğru servise atandığından emin olun
- Servis durumunun aktif olduğunu kontrol edin
- Yetki kontrolünü yapın
📝 Changelog
1.0.0
- İlk sürüm
- Servis yönetimi
- Araç ve sürücü yönetimi
- Kullanıcı atamaları
- Güzergah yönetimi (Google Maps)
- Talep yönetimi
- Değerlendirme sistemi
- Raporlama ve dashboard
- Shortcode desteği
- REST API desteği
- BuddyPress entegrasyonu
- Bildirim sistemi
👤 Yazar
Ahmet Burak Çaylak
- Website: https://www.burakcaylak.com/
📄 Lisans
Bu proje özel bir projedir.
🤝 Katkıda Bulunma
Katkılarınızı bekliyoruz! Lütfen pull request göndermeden önce:
- Fork edin
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add amazing feature') - Branch'inizi push edin (
git push origin feature/amazing-feature) - Pull Request açın
📞 Destek
Sorularınız için issue açabilirsiniz.