WP Manifestindependent plugin directory
manifest / utilities / wordpress-servis-yonetimi

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

0stars
0forks

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.zip

WordPress 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

  1. Bu repository'yi klonlayın veya ZIP olarak indirin
  2. servis-yonetimi klasörünü WordPress'in wp-content/plugins/ klasörüne kopyalayın
  3. WordPress admin paneline giriş yapın
  4. Eklentiler > Yüklü Eklentiler sayfasına gidin
  5. Servis Yönetimi eklentisini aktifleştirin

2. Veritabanı Tabloları

Eklenti aktifleştirildiğinde otomatik olarak gerekli veritabanı tabloları oluşturulur:

  • wp_servis_araclar: Araç bilgileri
  • wp_servis_suruculer: Sürücü bilgileri
  • wp_servisler: Ana servis tablosu
  • wp_servis_kullanicilar: Kullanıcı atamaları
  • wp_servis_duraklar: Durak bilgileri
  • wp_servis_talepler: Talep kayıtları
  • wp_servis_degerlendirmeler: Değerlendirmeler
  • wp_servis_hizmet_bolgeleri: Hizmet bölgeleri
  • wp_servis_yolcu_tipleri: Yolcu tipleri
  • wp_servis_iller: İl listesi
  • wp_servis_ilceler: İlçe listesi
  • wp_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: aktif
  • view: Görünüm tipi (grid, list) - varsayılan: grid
  • limit: 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

  1. Servis Yönetimi > Servisler > Yeni Ekle veya mevcut servisi düzenle
  2. Güzergah sekmesine gidin
  3. Harita üzerinde başlangıç noktasını seçin
  4. Durak noktalarını ekleyin
  5. Bitiş noktasını seçin
  6. Güzergah otomatik olarak çizilir
  7. Kaydedin

Kullanıcı Atama

  1. Servis Yönetimi > Kullanıcılar > Yeni Atama
  2. Kullanıcı seçin
  3. Gidiş ve/veya dönüş servisi seçin
  4. Biniş ve iniş durakları seçin
  5. Saatleri belirleyin
  6. Kayıt tipini seçin (sürekli, günlük, değişiklik talebi)
  7. Kaydedin

🎨 Özelleştirme

CSS Özelleştirme

Eklenti kendi CSS dosyalarını yükler. Özelleştirmek için:

  1. Tema'nızın style.css dosyasına özel CSS ekleyin
  2. 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

  1. Google Maps API Key'in doğru olduğundan emin olun
  2. Maps JavaScript API ve Places API'nin aktif olduğunu kontrol edin
  3. API key'in kısıtlamalarını kontrol edin
  4. Tarayıcı konsolunda hata mesajlarını kontrol edin

Shortcode Çalışmıyor

  1. Eklentinin aktif olduğundan emin olun
  2. Shortcode syntax'ını kontrol edin
  3. Tema'nın shortcode'ları desteklediğinden emin olun
  4. Sayfa cache'ini temizleyin

Veritabanı Hatası

  1. WordPress veritabanı kullanıcısının yeterli yetkilere sahip olduğundan emin olun
  2. Eklentiyi deaktif edip tekrar aktifleştirin (tablolar yeniden oluşturulur)
  3. Veritabanı tablolarının var olduğunu kontrol edin

Güzergah Çizilemiyor

  1. Google Maps API Key'in doğru olduğundan emin olun
  2. JavaScript hatalarını kontrol edin (tarayıcı konsolu)
  3. Harita kütüphanelerinin yüklendiğinden emin olun (places, geometry)

Kullanıcı Atamaları Görünmüyor

  1. Kullanıcının doğru servise atandığından emin olun
  2. Servis durumunun aktif olduğunu kontrol edin
  3. 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

📄 Lisans

Bu proje özel bir projedir.

🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz! Lütfen pull request göndermeden önce:

  1. Fork edin
  2. Feature branch oluşturun (git checkout -b feature/amazing-feature)
  3. Değişikliklerinizi commit edin (git commit -m 'Add amazing feature')
  4. Branch'inizi push edin (git push origin feature/amazing-feature)
  5. Pull Request açın

📞 Destek

Sorularınız için issue açabilirsiniz.

🔗 İlgili Kaynaklar