Description
DentSoft Online Randevu adds a multi-step booking form to any page of your
WordPress site. Visitors pick a clinic, pick a practitioner, pick a free slot
from live availability, enter their details, and confirm with a code sent to
their mobile number.
The plugin is an interface to the DentSoft clinic management service. It is
useful only to dental clinics that already have a DentSoft account, because the
appointment itself is created in that service.
What it does
- A four step booking form, added with a shortcode or an editor block.
- Live clinic, practitioner and slot availability read from your DentSoft account.
- Mobile confirmation code before an appointment is created.
- A “find my appointment” panel where patients look up or cancel a booking with
their reference number. - An appointments screen in the dashboard with search, status filters and CSV export.
- Optional e-mail notification to the patient and to the clinic.
- Colour and corner radius settings so the form matches your theme.
- Works in light and dark colour schemes, on phones and on desktops.
Built to stay out of the way
- No jQuery, no Bootstrap, no icon font, no third party JavaScript at all.
- Styles and scripts load only on pages that actually contain the form.
- All markup is scoped so the form cannot change the rest of your theme.
- Keyboard accessible, with visible focus states and screen reader announcements.
- Respects
prefers-reduced-motion.
Where your data goes
This plugin sends data to an external service. Please read this section before
installing.
To create an appointment, the plugin sends the following to the DentSoft clinic
management service at https://clinic.dentsoft.com.tr:
- the national ID or passport number, first name, last name and mobile number
entered in the form - the date of birth and e-mail address, when the visitor provides them
- the clinic, practitioner, date and time that were selected
The service is also contacted, without any personal data, to read the list of
clinics, the list of practitioners and the available slots.
Requests are made from your server. The access token you enter in the settings
is stored in your own database and is never sent to a visitor’s browser.
If you enable the local copy option, a record of each booking is also stored in
your site’s database so you can see it in the dashboard. The national ID number
is not stored in full: only the last four digits are kept, which is what the
service needs to look a booking up again.
Service: dentsoft.com.tr
Data protection notice (KVKK): dentsoft.com.tr/kvkk
Privacy policy: dentsoft.com.tr/gizlilik-politikasi
The plugin registers a suggested privacy policy section, a personal data
exporter and a personal data eraser, so requests made through Tools Privacy
cover appointment records too.
Screenshots







Blocks
This plugin provides 1 block.
- DentSoft Randevu Formu
Installation
- Install the plugin through Plugins Add New, or upload the folder to /wp-content/plugins/.
- Activate it through the Plugins screen.
- Go to Appointments Settings and enter the tax number (VKN) and access token supplied by DentSoft for your clinic.
- Press “Test connection” to confirm the credentials work.
- Add
[dentsoft_appointment_form]to a page, or insert the “DentSoft Appointment Form” block.
FAQ
-
Do I need a DentSoft account?
-
Yes. The plugin does not create appointments on its own; it books them in the
DentSoft clinic management service. Without an account with that service there
is nothing for the form to connect to. -
Is the plugin free?
-
The plugin is free and fully functional. Nothing in it is locked behind a
payment or an upgrade. The DentSoft service that it connects to is a separate
commercial product with its own pricing. -
Where do I get the tax number and access token?
-
DentSoft issues them for your clinic. Contact DentSoft support if you do not
have them. -
Can I put the form on more than one page?
-
Yes. The shortcode and the block can be used as often as you like.
-
Can patients cancel an appointment themselves?
-
Yes, if you leave “Let visitors cancel their own appointment” enabled. They need
their booking reference and the last four digits of their ID number. -
How do I change the colours?
-
Appointments Settings Appearance. The form uses CSS custom properties, so
you can also override--ds-primary,--ds-accentand--ds-radiusfrom your
theme if you want finer control. -
Does it work with page caching?
-
Yes. The form is rendered empty and filled in by the browser, and every request
goes through the REST API, so a cached page still works. -
Does it store patient data on my site?
-
Only if you leave the local copy option on, and never the full ID number. You
can turn local storage off entirely, and you can set a retention period after
which records are deleted automatically.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“DentSoft Online Randevu” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “DentSoft Online Randevu” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
3.8.4
- Removed the bundled translation files; translations are delivered through
translate.wordpress.org. - Removed the plugin language setting, which depended on those files.
- The booking form registers its own assets if it renders before init.
3.8.3
- Removed the plugin URI header, which duplicated the author URI.
3.8.2
- Cleared every Plugin Check warning. Database statements are now written out
in full with their placeholders instead of being assembled into a variable
first, so the queries can be read and verified at a glance. - Dropped the manual translation loader; WordPress.org serves the translations.
3.8.1
- The service endpoint points back at the production clinic service after testing.
3.8.0
- Requests to the clinic service now identify themselves as coming from this
plugin, so the service can treat them differently from anonymous traffic. - Added an optional integration key. When the clinic has been issued one, it is
stored on the site and sent with every request, and masked in the diagnostics.
3.7.0
- Removed the “Days to show” setting. The calendar covers six days on a desktop
and three on a phone, which the dentsoft_oa_date_range filter can override. - A day with many free times now scrolls within its own column instead of
stretching the whole card. - The data processing notice opens in a wider dialog so it can be read
comfortably.
3.6.0
- The mobile number field now has a country selector covering 41 dialling
codes, so patients abroad can book. The dialling code is sent to the clinic
service with the number. - Turkish numbers are still held to ten digits; other countries are checked for
a plausible length instead. - The confirmation code dialog no longer repeats the data processing notice. It
now shows only the code field; the notice keeps its own link on the form. - Fixed: the “find appointment” button sat flush against the field above it.
3.5.2
- Fixed: step names were cut off (“Practitio…”, “Complet…”). The icon now
sits above its label instead of beside it, so each label has the full column
width and is readable in full. - Step labels are no longer hidden on phones.
3.5.0
- Clinics and practitioners are now a single full-width list instead of a grid
of boxes, so a clinic with many practitioners stays readable. Long lists
scroll inside the step rather than stretching the page. - Fixed: the day columns wrapped onto a second row when six did not fit,
leaving a stray column below the calendar. The calendar now keeps a steady
column width, sized so five days fit; a sixth divides the same row and fewer
days keep their width instead of stretching. Nothing scrolls sideways. - Narrow screens request three days instead of six, so the columns still fit.
- Day columns size to their own content instead of all matching the tallest.
3.4.2
- The diagnostics now include the exact body this site sent to the clinic
service, so the upstream call can be checked from the browser without reading
the server log. Shown to logged-in administrators only, and never the
Authorization header.
3.4.1
- Fixed: the confirmation code was never sent, because the request left out the
practitioner. The service needs both the clinic and the practitioner on that
call, and rejects it otherwise.
3.4.0
- Fixed: the practitioner cards showed the academic title again underneath the
name instead of the speciality. They now show the speciality and the
practitioner’s earliest free appointment, as the clinic’s own booking site does. - The form is laid out to match that booking site: one card, a five step
indicator with icons, and a practitioner strip carrying the avatar, name,
clinic, speciality and chosen time through the steps. - Each step now has its own heading and explanatory line.
- The service endpoint now points at the DentSoft test server.
3.3.1
- Fixed: sending the confirmation code was reported as failed whenever the
service answered without a consent notice, even though it had accepted the
request and sent the code. - Failed calls to the clinic service now carry what the service actually
reported – endpoint, HTTP status, its own status code and error list – in the
REST response, visible in the browser’s network panel. This is added only for
logged-in administrators, so visitors still see a plain message and never the
integration’s internals.
3.3.0
- Fixed: the form switched itself to a dark palette whenever the visitor’s
device was in dark mode, while the surrounding theme stayed light. Labels
became near-white on white and inputs became black boxes. The palette is now
chosen by the site owner under Appearance, defaulting to light. - Fixed: clinic cards laid the name, address and telephone out side by side,
squeezing the name into a few characters per line. - Button text is now black or white depending on the chosen brand colour. With
the default green it went from 2.1:1 to 8.3:1 contrast, passing WCAG AA. - Added a “Form theme” setting: light, dark, or follow the visitor’s device.
3.2.1
- Fixed: the form reported “could not start” and made no request at all. Its
configuration was passed only through wp_localize_script(), which silently
does nothing when a shortcode renders before the script handle is registered.
The configuration now travels inside the form markup, so script ordering,
deferring and caching plugins cannot break it. - Assets are registered on init instead of wp_enqueue_scripts, so the handle
exists whenever the shortcode or block renders. - Fixed: assets were skipped entirely when the_content ran more than once, as
SEO plugins and page builders routinely do. - The start-up error now names the missing piece, for faster diagnosis.
3.2.0
- Fixed: the booking form stayed on “loading clinics” forever. A stylesheet rule
overrode the HTML hidden attribute, so the loading row could never be hidden,
whatever the request did. - The form now reports a visible error if it cannot start, instead of showing a
spinner indefinitely. - The interface is now written in Turkish. English is available as a
translation and can be selected under Settings. - Fixed: sixteen strings on the confirmation screen and in dialogs were never
translatable and always appeared in English. - The clinic e-mail field no longer shows the site administrator’s own address
as its placeholder.
3.1.0
- Matched the booking flow to the live DentSoft booking site.
- Fixed: time slots the clinic had already filled were offered as bookable.
Only slots the service marks as available are shown now. - Fixed: clinic address and telephone were always blank, because the service
returns that block under a different key than expected. - Practitioners who do not work online are no longer listed.
- The calendar now opens on the practitioner’s earliest free day instead of today.
- Practitioner photographs are shown when the service provides them.
- The data processing notice is now fetched from the clinic rather than
described in a placeholder. - Appointment end times and the clinic’s price are read from the service.
- The confirmation now includes the clinic’s address and telephone.
- Admin menu is named “DentSoft” and carries the DentSoft mark.
3.0.1
- Fixed: bundled translations were never loaded, so the plugin always displayed
in English. Added a language setting, defaulting to Turkish. - The saved access token is shown in the settings field instead of being hidden.
- Removed the read-only service endpoint row from the settings screen.
- “Test connection” now reports the exact endpoint, HTTP status and response
instead of a generic message. - Turning off appointment lookup now blocks the endpoint, not just the tab.
- Front end requests time out instead of leaving the form on a spinner.
3.0.0
- Rewritten. All calls to the DentSoft service now run on the server, so the
access token is no longer exposed to visitors’ browsers. - Replaced admin-ajax handlers with namespaced REST routes, with nonce checks,
capability checks and per-visitor rate limiting. - Removed every bundled third party library. The plugin no longer ships
Bootstrap, Select2, SweetAlert2, Font Awesome, jQuery Steps, jQuery Validate
or blockUI, and no longer loads jQuery at all. - Plugin size reduced from roughly 85 MB to under 300 KB.
- New booking form: accessible, keyboard navigable, responsive, dark mode aware.
- Added an editor block alongside the shortcode.
- Added a “find my appointment” panel with self service cancellation.
- Added CSV export, search and status filters to the appointments screen.
- Added privacy policy text, a personal data exporter and a personal data eraser.
- Added an optional retention period for locally stored records.
- Full ID numbers are no longer stored; only the last four digits are kept.
- Every string is now translatable; Turkish translation included.
- Settings from version 2.x, and existing appointment records, are migrated on
activation.
2.0.0
- Earlier release distributed outside the plugin directory.
