WordPress randevu sistemi,
hayalet randevular olmadan.
OW Agenda online rezervasyonu, onayı, hatırlatmaları ve uzmanın günlük ajandasını yönetir. Ziyaretçinin her talebi, bir yer kaplamadan önce e-posta adresine gönderilen bir bağlantıyla doğrulanmak zorundadır: bir bot senin programına asla ulaşamaz. Ücretsiz, GPL, Pro sürüm yok.
Neden bir randevu eklentisi daha?
Bir muayenehane sitesinde, hiçbir güvenlik önlemi olmadan bağlanmış bir rezervasyon formu kazandırdığından çok iş çıkarır. Herkese açık bir programı sıradan bir bot bile doldurur; telefona bakan kişi de gününü gerçek randevularla hiç var olmamış talepleri ayıklamakla geçirir.
Yerleşik eklentiler işini görüyor, ama hepsi aynı model üzerine kurulu: bilerek kısıtlanmış bir ücretsiz sürüm — tek çalışan, tek lokasyon, birkaç hizmet — ve yazılımı normal biçimde kullanabilmek için yıllık abonelik. Tek başına çalışan bir uzman için ödenen şey, esas olarak demodan çıkma hakkıdır.
OW Agenda gerçek bir muayenehaneden ve üç kısıttan yola çıkar: bir talep ancak e-postayla doğrulandıktan sonra vardır, iki ziyaretçi aynı aralığı birlikte alamaz ve ajanda iki hasta arasında ayakta, telefondan yönetilebilmelidir. Gerisi — müşteri rehberi, davetler, ICS, hatırlatmalar — bu üç kuraldan doğar.
E-posta doğrulaması olmadan açık bir form, botların bedavaya doldurduğu bir programdır. Burada talep beklemede kalır, aralığı 45 dakika tutar ve bağlantıya hiç tıklanmazsa kendiliğinden kaybolur.
Üç saniye arayla aynı aralığa iki ziyaretçi: sıradan bir MySQL transaction'ı hiçbir satır kilidi koymaz ve ikisini de kaydeder. OW Agenda rezervasyonu adlandırılmış bir kilitle sıraya sokar — ikinci kişiye kopya bir kayıt değil, bir mesaj döner.
İki hasta arasında kimse telefonda wp-admin açmaz. Yönetim, sitenin girişle korunan bir sayfasında yapılır: günün görünümü, bekleyen talepler, yeniden planlama, yapıldı / gelmedi durumları — birkaç başparmak dokunuşuyla.
Somut olarak ne değişiyor
Slogan yok. İşte bu ürünü farklı kılan teknik kararlar.
[ow_agenda] shortcode'u önce uygun olan 14 günü, ardından boş saatleri gösterir: gün seçimi, aralık seçimi, kısa form (ad, telefon, e-posta, mesaj) ve GDPR onay kutusu. Aralık adımını, görüşme süresini, iki randevu arasındaki tampon süreyi, minimum ön bildirim süresini ve rezervasyon ufkunu sen belirlersin. Ajandandaki her kayıt — web rezervasyonu, telefonla alınıp elle girilen randevu, bloke edilmiş aralık — kendi zaman dilimini uygunluk listesinden çıkarır.
Ziyaretçinin talebi, e-postayla gelen bağlantıya tıklanana kadar doğrulanmamış kalır. Aralığı 45 dakika tutar, sonra otomatik olarak temizlenir. Daha en başta, formun tuzak alanı ve zaman damgası zorunludur — bunları göndermemek artık hiçbir kontrolü devre dışı bırakmaz —, saatlik kota IPv4'te adrese, IPv6'da /64 önekine göre sayılır ve bir üst sınır, aynı gün içindeki doğrulanmamış talepleri sınırlar.
Bildirim e-postasında Onayla ve Reddet olmak üzere iki düğme bulunur; bağlantıları HMAC-SHA256 ile imzalıdır: WordPress'i açmadan, giriş yapmadan tek dokunuşla karar verirsin. Önerilen mod manuel onaydır; değerlendirilecek bir yanı olmayan işler için otomatik onay da kullanılabilir.
[ow_agenda_admin] shortcode'u sitende, girişle ve kendine ait bir yetkiyle korunan bir «Ajanda» sayfası oluşturur: günün görünümü, bekleyen talepler, telefonla alınan bir randevunun eklenmesi, aralık bloklama, yeniden planlama, yapıldı ve gelmedi durumları. Telefonunun ana ekranına eklendiğinde bir uygulama gibi davranır.
Müşteri kartlarında arama, oluşturma, düzenleme ve silme; kartlar onaylanan randevulardan otomatik olarak beslenir. Takip seansı için kişiye özel gizli bir bağlantı, müşterinin tarihi kendi seçmesini sağlar — hizmeti ve süreyi sen belirlersin: davet bir süre sonra geçerliliğini yitirir, yalnızca bir kez kullanılır ve randevu iptal edilirse yeniden kullanılabilir hâle gelir.
Her adımda özenli HTML e-postalar, ekinde bir ICS dosyasıyla: müşterin randevuyu tek hareketle telefonunun takvimine ekler, yeniden planlama kaydı günceller, iptal ise siler. Bir gün önceki hatırlatma 12 ila 36 saatlik kayan bir pencerede gönderilir ve gecikirse bir sonraki çalıştırmada telafi edilir; saatlik görev kaybolursa kendini yeniden programlar.
Alternatiflere karşı
Doğrulanabilir veriler. Yalnızca rakipte gerçekten var olan işaretlenir.
| Kriter | OW Agenda | Amelia | Bookly | Simply Schedule Appointments |
|---|---|---|---|---|
| İş modeli | Ücretsiz, GPL-2.0 | Freemium (ücretli Pro) | Freemium (ücretli Pro) | Freemium (ücretli Pro) |
| Ücretsiz sürümün sınırları | Yok: her şey dahil | Lite: 1 çalışan, 1 lokasyon | 5 hizmet, 1 çalışan | Temel işlevler |
| Etkinleştirilecek lisans anahtarı | Yok | Pro sürüm için | Pro sürüm için | Pro sürüm için |
| Aralığı kaplamadan önce e-posta ile çift onay | Varsayılan olarak açık | Belirtilmemiş | Belirtilmemiş | Belirtilmemiş |
| Girişsiz, e-postadan Onayla / Reddet | HMAC-SHA256 imzalı bağlantılar | Evet | Belirtilmemiş | Belirtilmemiş |
| Müşteri e-postalarına eklenen ICS dosyası | REQUEST, güncellemeler ve CANCEL | |||
| Geçmiş randevuların otomatik anonimleştirilmesi | Dahil, süresi ayarlanabilir | Belirtilmemiş | Belirtilmemiş | Belirtilmemiş |
| Günlük yönetim | Site sayfası, mobil öncelikli | WordPress yönetim paneli | WordPress yönetim paneli | WordPress yönetim paneli |
Bir formu entegre etmenin üç yolu
Dayatılan tescilli bir page builder yok. Stack'inize uyan yaklaşımı seçin.
[ow_agenda]
// La page « Prendre rendez-vous » est créée automatiquement à l'activation.
// Le même shortcode sert aux invitations de séance : le lien privé envoyé
// à un client existant pointe vers cette page avec son jeton en paramètre.
//
// https://ton-site.be/prendre-rendez-vous/?owag_invite=<jeton>Makul şüpheler, doğrudan cevaplar
Evet. Ajandanda yer alan her şey kapladığı süreyi işgal eder: bir web rezervasyonu, bir telefon görüşmesinin ardından elle girilen randevu, bir toplantı için bloke edilen zaman dilimi. Uygunluk hesabı çalışma saatlerinden başlar, bu dilimleri çıkarır, hizmetin süresini, iki randevu arasındaki tampon süreyi, rezervasyon öncesi minimum süreyi ve en ileri tarih sınırını uygular. Ekranda görünen bir aralık, gerçekten boş olan bir aralıktır.
Doğrulanmadığı sürece var olmayan bir talep sayesinde. Ziyaretçi bir doğrulama bağlantısı alır; tıklanmazsa talebi aralığı 45 dakika tutar, ardından silinir. Buna artık zorunlu olan bir tuzak alan ile bir zaman damgası eklenir — bunları göndermeyen bir istek, kontrolsüz geçmek yerine reddedilir —, ayrıca IP adresi başına saatlik bir kota (IPv6'da /64 önekine göre toplanır; aksi hâlde tek bir makinenin milyarlarca adresi olur) ve gün başına doğrulanmamış talep üst sınırı devreye girer; böylece tek bir ziyaretçi bütün ajandanı donduramaz.
Yalnızca bir rezervasyon tamamlanır. Kritik bölüm, adlandırılmış bir MySQL kilidiyle sıraya sokulur: uygunluk kontrolü ve yazma işlemi kilit altında yapılır — sıradan bir transaction bunu garanti etmiyordu, çünkü REPEATABLE READ altında çıplak bir okuma hiçbir satır kilidi koymaz. Kilidin adı veritabanından ve tablo önekinden türetilir; böylece aynı paylaşımlı sunucudaki iki site birbirini kilitlemez. İkinci ziyaretçi başka bir aralık seçmeye davet edilir.
Evet, e-postalarındaki bağlantı üzerinden ve senin belirlediğin ön bildirim süresine kadar (varsayılan 24 saat); bu sürenin ardından sayfa onu seni aramaya yönlendirir. İptal, etkinliği takviminden kaldıran bir iptal ICS dosyası gönderir; randevu gizli bir davetten geliyorsa o davet kalıcı olarak tükenmiş kalmak yerine yeniden kullanılabilir hâle gelir.
Sitendeki «Ajanda» sayfasını telefonda aç, giriş yap, sonra «Ana ekrana ekle»yi kullan. Arayüz o andan itibaren bir uygulama gibi davranır: içinde bulunulan gün, onaylanacak talepler, telefonla alınan bir randevunun eklenmesi, bir aralığın bloklanması, yeniden planlama, yapıldı ve gelmedi durumları. Kurulum yok, uygulama mağazası yok ve hiçbir şey kendi sunucundan dışarı çıkmıyor.
Arayüzün tamamı çevrilebilir. 1.3.1 sürümünden bu yana görünen bütün metinler — ayarlar, rezervasyon ve iptal sayfaları, API mesajları, e-posta şablonları ve JavaScript arayüzü — kaynak dili İngilizce olan ow-agenda çeviri alanından geçiyor. Çevirmenler için languages/ow-agenda.pot şablonu pakete dahildir; eksiksiz bir Fransızca çeviri hazırlanıp translate.wordpress.org adresine gönderilmiştir. Türkçe çeviri de tam olarak aynı yoldan eklenebilir.
Pro sürüm yok, lisans anahtarı yok.
OW Agenda GPL-2.0 lisansıyla yayımlanıyor. Bu sayfada anlatılan her şey indirdiğin .zip dosyasının içinde: kilitli özellik yok, abonelik yok, randevu, çalışan ya da hizmet sayısında sınır yok.
- Her şey dahil: online rezervasyon, çift onay, seans davetleri, müşteri rehberi, ICS ekli e-postalar ve hatırlatmalar.
- .zip dosyası optionweb.dev üzerinden indirilir. Eklenti wordpress.org'da yayımlanmıyor: Eklentiler → Yeni Ekle → Eklenti Yükle yolundan kur.
- Üçüncü taraf servis yok, lisans doğrulaması yok, izleyici yok: müşterilerinin iletişim bilgileri kendi sunucunda kalır.
- Kod GPL-2.0 altında, okunabilir ve değiştirilebilir: denetleyebilir, uyarlayabilir ve bizimle ya da bizsiz geliştirebilirsin.