{"id":323953,"date":"2026-06-12T17:34:48","date_gmt":"2026-06-12T17:34:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sapvadok\/"},"modified":"2026-06-12T17:34:35","modified_gmt":"2026-06-12T17:34:35","slug":"sapvadok","status":"publish","type":"plugin","link":"https:\/\/cn.wordpress.org\/plugins\/sapvadok\/","author":23499974,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.1","stable_tag":"1.4.1","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"SapvaDok","header_author":"LamzDev","header_description":"Doctor scheduling, online appointments, and walk-in queue management for hospitals and clinics.","assets_banners_color":"3598c6","last_updated":"2026-06-12 17:34:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/sapvadok\/","header_author_uri":"https:\/\/profiles.wordpress.org\/lamzdev\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":38,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.4.1":{"tag":"1.4.1","author":"lamzdev","date":"2026-06-12 17:34:35"}},"upgrade_notice":{"1.4.1":"<p>Code quality improvements for the WordPress.org plugin guidelines (script enqueuing, translations, and admin menu placement).<\/p>","1.4.0":"<p>Customize the TV queue display theme under SapvaDok \u2192 Settings \u2192 TV Display Theme.<\/p>","1.3.0":"<p>Adds daily stats on the dashboard, duplicate booking protection, and per-branch TV queue filtering.<\/p>","1.2.0":"<p>Adds appointment check-in to queue, per-doctor blocked dates, and printable queue tickets.<\/p>","1.1.0":"<p>Adds walk-in queue management, TV display with voice and QR code, mobile queue tracking, and loket\/CS support. New database table and public pages are created automatically on upgrade.<\/p>","1.0.0":"<p>First SapvaDok release on WordPress.org.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3570412,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3570412,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3570412,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3570412,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.4.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3570436,"resolution":"1","location":"assets","locale":"","width":1600,"height":800},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3570436,"resolution":"2","location":"assets","locale":"","width":1600,"height":834},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3570436,"resolution":"3","location":"assets","locale":"","width":1600,"height":833},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3570436,"resolution":"4","location":"assets","locale":"","width":1600,"height":631},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3570436,"resolution":"5","location":"assets","locale":"","width":1600,"height":796},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3570436,"resolution":"6","location":"assets","locale":"","width":1600,"height":796}},"screenshots":{"1":"SapvaDok admin dashboard \u2014 today's appointments and pending confirmations","2":"Public appointment page \u2014 choose a doctor and search filters","3":"Booking form \u2014 calendar, time slots, patient details, and insurance type","4":"Manage appointments \u2014 list, filters, status, CSV export, and WhatsApp","5":"Add doctor form \u2014 profile, practice schedule, and queue settings","6":"TV queue display \u2014 multi-doctor board with QR code and voice announcements"}},"plugin_section":[],"plugin_tags":[276,269,43578,15159,4645],"plugin_category":[40],"plugin_contributors":[266859],"plugin_business_model":[],"class_list":["post-323953","plugin","type-plugin","status-publish","hentry","plugin_tags-appointment","plugin_tags-booking","plugin_tags-clinic","plugin_tags-doctor","plugin_tags-queue","plugin_category-calendar-and-events","plugin_contributors-lamzdev","plugin_committers-lamzdev"],"banners":{"banner":"https:\/\/ps.w.org\/sapvadok\/assets\/banner-772x250.png?rev=3570412","banner_2x":"https:\/\/ps.w.org\/sapvadok\/assets\/banner-1544x500.png?rev=3570412","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/sapvadok\/assets\/icon-128x128.png?rev=3570412","icon_2x":"https:\/\/ps.w.org\/sapvadok\/assets\/icon-256x256.png?rev=3570412","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/sapvadok\/assets\/screenshot-1.jpg?rev=3570436","caption":"SapvaDok admin dashboard \u2014 today's appointments and pending confirmations"},{"src":"https:\/\/ps.w.org\/sapvadok\/assets\/screenshot-2.jpg?rev=3570436","caption":"Public appointment page \u2014 choose a doctor and search filters"},{"src":"https:\/\/ps.w.org\/sapvadok\/assets\/screenshot-3.jpg?rev=3570436","caption":"Booking form \u2014 calendar, time slots, patient details, and insurance type"},{"src":"https:\/\/ps.w.org\/sapvadok\/assets\/screenshot-4.jpg?rev=3570436","caption":"Manage appointments \u2014 list, filters, status, CSV export, and WhatsApp"},{"src":"https:\/\/ps.w.org\/sapvadok\/assets\/screenshot-5.jpg?rev=3570436","caption":"Add doctor form \u2014 profile, practice schedule, and queue settings"},{"src":"https:\/\/ps.w.org\/sapvadok\/assets\/screenshot-6.jpg?rev=3570436","caption":"TV queue display \u2014 multi-doctor board with QR code and voice announcements"}],"raw_content":"<!--section=description-->\n<p>SapvaDok helps hospitals and clinics manage doctors, practice schedules, branches, specialties, patient appointment requests, and daily walk-in queues through your WordPress website.<\/p>\n\n<p><strong>Key features<\/strong><\/p>\n\n<ul>\n<li>Manage doctor profiles (photo, bio, credentials, specialty, branch)<\/li>\n<li>Practice schedules by day and branch with automatic booking slots<\/li>\n<li>Public appointment page with calendar and patient form<\/li>\n<li>Doctor search filters (name, specialty, branch)<\/li>\n<li>Appointment status workflow: pending, confirmed, cancelled<\/li>\n<li>Email notifications for staff and patients<\/li>\n<li>WhatsApp (wa.me) links for manual confirmation by reception staff<\/li>\n<li>User roles: Receptionist, Medical Admin, and Administrator<\/li>\n<li>Export appointments to CSV<\/li>\n<li>Honeypot anti-spam on the booking form<\/li>\n<li><strong>Walk-in queue<\/strong> per doctor or counter (loket\/CS) with daily prefix and quota<\/li>\n<li><strong>Queue admin panel<\/strong> \u2014 issue numbers, call next, skip, recall, complete<\/li>\n<li><strong>TV waiting-room display<\/strong> \u2014 fullscreen board for all active queues<\/li>\n<li><strong>Voice announcements<\/strong> on TV (Indonesian TTS, selectable voice)<\/li>\n<li><strong>QR code on TV<\/strong> \u2014 patients scan to track the queue on their phone<\/li>\n<li><strong>Mobile live queue page<\/strong> \u2014 auto-refreshing status without staying in the waiting room<\/li>\n<li><strong>Loket\/CS mode<\/strong> \u2014 queue-only entries hidden from the online booking page<\/li>\n<\/ul>\n\n<p><strong>Shortcodes<\/strong><\/p>\n\n<ul>\n<li><code>[sapvadok_janji_temu]<\/code> \u2014 full appointment page (doctor list + booking)<\/li>\n<li><code>[sapvadok_doctors]<\/code> \u2014 doctor list with filters<\/li>\n<li><code>[sapvadok_booking doctor_id=\"123\"]<\/code> \u2014 booking form for one doctor<\/li>\n<li><code>[sapvadok_queue_tv]<\/code> \u2014 TV queue board (all doctors)<\/li>\n<li><code>[sapvadok_queue_take]<\/code> \u2014 kiosk page to take a walk-in number<\/li>\n<li><code>[sapvadok_queue_mobile]<\/code> \u2014 mobile live queue tracker<\/li>\n<\/ul>\n\n<p><strong>Auto-created public pages<\/strong><\/p>\n\n<p>On activation, the plugin creates utility pages (hidden from the front-end menu by default):<\/p>\n\n<ul>\n<li><code>janji-temu<\/code> \u2014 online appointments<\/li>\n<li><code>antrian-tv<\/code> \u2014 TV display<\/li>\n<li><code>ambil-antrian<\/code> \u2014 take queue number<\/li>\n<li><code>antrian-live<\/code> \u2014 mobile queue tracker (linked from TV QR code)<\/li>\n<\/ul>\n\n<p><strong>No paid external services required.<\/strong> The plugin runs entirely on your WordPress server.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p>SapvaDok stores appointment data submitted by patients through the website form, including name, phone number, email (optional), notes, appointment date\/time, insurance choice (BPJS\/general), and selected doctor.<\/p>\n\n<p>Walk-in queue entries store queue numbers and optional patient details; names are not required for kiosk take-number.<\/p>\n\n<p>Data is stored in your WordPress site database (custom tables and doctor post type). The plugin does not send data to third-party servers. Notification emails are sent via your WordPress <code>wp_mail()<\/code> function. WhatsApp links are wa.me URLs opened manually by staff. TV voice announcements use the browser's built-in speech synthesis (no audio sent to external APIs).<\/p>\n\n<p>Site owners are responsible for privacy policies, patient consent, and compliance with applicable health and personal data regulations.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>SapvaDok<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install via <strong>Plugins \u2192 Add New<\/strong> in WordPress.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Open <strong>SapvaDok \u2192 Settings<\/strong> to configure notification emails, slot intervals, booking options, and TV voice settings.<\/li>\n<li>Create <strong>Branches<\/strong> and <strong>Specialties<\/strong>, then add doctors with their practice schedules.<\/li>\n<li>Enable <strong>walk-in queue<\/strong> per doctor under <strong>Add\/Edit Doctor \u2192 Queue Settings<\/strong> (prefix, daily quota).<\/li>\n<li>The public <strong>Janji Temu<\/strong> page is created automatically on activation (slug: <code>janji-temu<\/code>). Queue and TV pages are also created automatically.<\/li>\n<li>Open <strong>SapvaDok \u2192 TV Queue Display<\/strong> for the waiting-room screen, or <strong>Manage Queue<\/strong> for reception.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20plugin%20free%3F\"><h3>Is this plugin free?<\/h3><\/dt>\n<dd><p>Yes. SapvaDok is licensed under GPLv2+ and free to use.<\/p><\/dd>\n<dt id=\"do%20patients%20need%20to%20log%20in%20to%20book%3F\"><h3>Do patients need to log in to book?<\/h3><\/dt>\n<dd><p>No. Visitors can submit appointment requests without a WordPress account.<\/p><\/dd>\n<dt id=\"how%20do%20i%20confirm%20an%20appointment%3F\"><h3>How do I confirm an appointment?<\/h3><\/dt>\n<dd><p>Staff open <strong>SapvaDok \u2192 Manage Appointments<\/strong> and change the status to <em>Confirmed<\/em> or <em>Cancelled<\/em>. Patients may receive email notifications when enabled in settings.<\/p><\/dd>\n<dt id=\"is%20whatsapp%20sent%20automatically%3F\"><h3>Is WhatsApp sent automatically?<\/h3><\/dt>\n<dd><p>No. The plugin provides wa.me links with pre-filled messages so staff can contact patients manually via WhatsApp.<\/p><\/dd>\n<dt id=\"how%20does%20the%20walk-in%20queue%20work%3F\"><h3>How does the walk-in queue work?<\/h3><\/dt>\n<dd><p>Enable queue settings on a doctor (or loket\/counter). Patients take a number from the kiosk page or reception. Staff manage the queue in <strong>Manage Queue<\/strong>; the TV board and mobile tracker update automatically.<\/p><\/dd>\n<dt id=\"can%20i%20add%20a%20counter%20%28loket%29%20without%20showing%20it%20on%20the%20booking%20page%3F\"><h3>Can I add a counter (loket) without showing it on the booking page?<\/h3><\/dt>\n<dd><p>Yes. Check <strong>Queue only (loket\/CS \u2014 hide from appointments)<\/strong> in the doctor form. The entry stays on the TV board and kiosk but is hidden from <strong>Janji Temu<\/strong>.<\/p><\/dd>\n<dt id=\"why%20are%20queue%20pages%20not%20in%20my%20site%20menu%3F\"><h3>Why are queue pages not in my site menu?<\/h3><\/dt>\n<dd><p>Utility pages (TV, kiosk, mobile tracker) are excluded from the front-end navigation automatically. Patients reach the mobile page by scanning the QR code on the TV.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20the%20plugin%20is%20deleted%3F\"><h3>What happens when the plugin is deleted?<\/h3><\/dt>\n<dd><p>If you <strong>delete<\/strong> (not just deactivate) the plugin, all SapvaDok data is removed: appointments, queues, doctors, branches, specialties, plugin pages, settings, and custom database tables.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20page%20builders%3F\"><h3>Is it compatible with page builders?<\/h3><\/dt>\n<dd><p>Yes. Use shortcodes on pages or widgets. Auto-created pages use standalone templates where needed (e.g. fullscreen TV).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Enqueue queue ticket auto-print script via <code>wp_add_inline_script()<\/code> instead of inline <code>&lt;script&gt;<\/code> output<\/li>\n<li>Remove <code>load_plugin_textdomain()<\/code> (translations are loaded automatically on WordPress.org)<\/li>\n<li>Move the admin menu to a lower position (below Settings)<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li><strong>Custom TV theme<\/strong> \u2014 preset colors (dark, light, teal, navy), custom colors, font scale, doctor photos, QR position, footer text<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li><strong>Daily statistics dashboard<\/strong> \u2014 queue volume, average wait time, check-ins, busiest doctor, per-doctor breakdown<\/li>\n<li><strong>Duplicate booking detection<\/strong> \u2014 blocks same phone + doctor + date; highlights duplicates in admin<\/li>\n<li><strong>TV branch filter<\/strong> \u2014 show only queues for a branch via <code>?branch_id=<\/code> or <code>?cabang=slug<\/code>; per-branch TV links in admin<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li><strong>Appointment check-in \u2192 queue<\/strong> \u2014 confirmed same-day appointments can be checked in to issue a queue number<\/li>\n<li><strong>Blocked dates<\/strong> \u2014 block specific days off per doctor without changing weekly schedule<\/li>\n<li><strong>Print queue ticket<\/strong> \u2014 thermal-friendly ticket from kiosk, Manage Queue, and after check-in<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Walk-in queue system with per-doctor\/counter daily numbers, prefix, and quota<\/li>\n<li>Admin <strong>Manage Queue<\/strong> panel (take number, call next, skip, recall, complete)<\/li>\n<li>Fullscreen <strong>TV queue board<\/strong> showing all active doctors and counters<\/li>\n<li><strong>Voice call announcements<\/strong> on TV with Indonesian TTS and voice selection<\/li>\n<li><strong>QR code on TV<\/strong> linking to the mobile live queue tracker page<\/li>\n<li><strong>Mobile queue page<\/strong> (<code>antrian-live<\/code>) with auto-refresh for patients<\/li>\n<li><strong>Kiosk take-number page<\/strong> (<code>ambil-antrian<\/code>) for walk-in patients<\/li>\n<li><strong>Loket\/CS mode<\/strong> \u2014 queue-only entries hidden from online appointment booking<\/li>\n<li>Plugin utility pages automatically hidden from front-end navigation menus<\/li>\n<li>TV settings: voice priority keywords and speech rate (Settings \u2192 TV Queue Display)<\/li>\n<li>Skipped queue numbers can be recalled from the admin panel<\/li>\n<li>Hospital logo on admin dashboard header<\/li>\n<li>TV display improvements: fullscreen template, readable text on dark background, QR in corner<\/li>\n<li>Custom queue database table (<code>sapvadok_queues<\/code>) with activator and uninstall cleanup<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release for WordPress.org<\/li>\n<li>Doctor, branch, specialty, and schedule management<\/li>\n<li>Online booking with calendar and slot validation<\/li>\n<li>Email notifications and WhatsApp links for staff<\/li>\n<li>Admin dashboard, CSV export, user roles, and honeypot anti-spam<\/li>\n<li>Public doctor profiles and migration from SiapDok legacy data<\/li>\n<\/ul>","raw_excerpt":"Doctor scheduling, online appointment booking, and walk-in queue management for hospitals, clinics, and medical practices.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/323953","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=323953"}],"author":[{"embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lamzdev"}],"wp:attachment":[{"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=323953"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=323953"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=323953"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=323953"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=323953"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=323953"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}