Hair & Beauty Salon Website Script
Hair and beauty salon website with an appointment form, managed from an admin panel
Language note
The interface of the website and the admin panel comes in Turkish and English. You choose the site language and the panel language separately under “Site ayarları” (Site Settings), and you can also switch the panel language with the globe icon at the top right of the panel.
More languages can be added: copy the en.php file in the dil folder of the package and translate it (the steps are in dil/OKUBENI.txt). The language you add appears automatically in the language lists of the site settings, and updates do not touch your language files. Texts that are not translated appear in English; if you prefer, they can be shown in Turkish.
The content you publish (services, products, pages, blog posts and so on) is not translated; it stays in the language you write it in. Appointment and form e-mails, warning messages and date formats follow the selected language.
Where this page names a section of the panel or of the site, the name is given as it appears in the Turkish interface, in quotation marks, followed by its translation in parentheses; in the English interface the same sections appear under their English names.
Who it is for
Made for hair salons, beauty salons and agencies that build sites for them. On your own domain you present your services, working hours, gallery and team. A visitor picks a service, a date and a time and sends the appointment form; the request is listed in your panel, and you confirm or cancel it yourself.
You do not need to know how to code. The browser wizard handles the installation, and you enter your content in the admin panel.
Website features
Appointments
- Appointment form: the visitor fills in service, date, time, full name, phone, e-mail and an optional note. A visitor who comes from the “Bu hizmet için randevu al” (Book an appointment for this service) button on a service page finds the service already selected. Past dates and past times are rejected; the date can be at most six months ahead. The page also states that a request is not final until it is confirmed.
- Check against working hours: the appointment is checked against the working hours of that day. No appointment is accepted for a closed day, for a time before opening or for a time less than 30 minutes before closing. If the working-hours text is not in the form “09:00 - 19:00” (for example “Randevu ile” (By appointment)), no time limit is applied for that day.
- E-mail to the salon owner: once you set up “E-posta ayarları” (E-mail Settings) and switch notifications on, every appointment request and contact message also reaches you by e-mail. When you reply to the e-mail, the reply goes to the customer’s address.
- Confirmation and cancellation e-mail to the customer: when you set an appointment to “Onaylandı” (Approved) or “İptal” (Cancelled) in the panel, the customer receives a short information e-mail, provided the customer has entered an e-mail address and e-mail notifications are on. The e-mail contains the salon name, service, date, time, status and the salon’s phone number, and it is written in the site language. Setting an appointment back to “Yeni” (New), or saving the same status again, sends no e-mail.
- Limits: there is no online payment, no availability calendar and no choice of specialist.
- KVKK consent checkbox: required on the appointment form and on the contact form. KVKK is the Turkish personal data protection law. The privacy notice link points to the page you choose in the panel; the same link also appears in the footer of the site. The text that comes with the sample content is only a sample; you must prepare your own privacy notice.
Services, products and gallery
- Services: for each service you enter a name, an icon, a short description, a detailed description and an image. You pick the icon from 16 ready-made icons (scissors, spa, manicure, makeup and more). Services appear as boxes on the home page and as cards on the services page; every service has its own page with a “Bu hizmet için randevu al” (Book an appointment for this service) button. Services have no price field.
- Product showcase: for each product you enter a name, category, price (₺), status (“Yayında” (Published) or “Taslak” (Draft)), the “Öne çıkar” (Feature) option, a description and an image. Products are filtered with category links; the ones you feature appear first on the home page and in the side list “Popüler ürünler” (Popular Products) on the products page. If the price is empty or 0, no price is shown. There is no cart and no online payment; products are shown as a promotional showcase.
- Gallery: you group your images into categories; on the gallery page they are filtered with category buttons. The latest six images are shown as a showcase on the home page.
- Team: you introduce your team members with full name, role and photo. A member whose status is “Taslak” (Draft) does not appear on the site.
- Customer reviews: you enter full name, title, review and photo; the reviews are shown in a slider on the home page. A review without a photo shows an icon.
Home page and inner pages
- Home page: top area (heading, upper text, large image, “Randevu al” (Book an appointment) button), the “Biz kimiz” (Who we are) introduction section, gallery showcase, customer reviews, products, working hours and contact boxes, service boxes and the latest blog posts. A gallery, review, product or blog section with no entries does not appear.
- Switch sections on/off: from a single page you switch the About Us, Services, Appointment form, Products, Blog, Gallery, Team, Contact and Customer reviews sections on or off. A section you switch off disappears from the menu and the footer, and its address no longer opens.
- Site images: you upload the images for the home page introduction section, the working hours box, the contact box, the customer reviews section and the title band of the inner pages from the panel. An area without an image is shown with a plain colored background or without an image.
- “Hakkımızda” (About Us): heading, text, mission and vision. A mission or vision part you leave empty does not appear.
- Blog: articles with a title, category, short description, image and rich text; a list filtered with category links and an article page. A “Taslak” (Draft) article does not appear on the site.
- Frequently asked questions: you enter questions and answers in the panel; the answer opens when the visitor clicks a question. Once at least one question exists, a “Sık sorulan sorular” (Frequently Asked Questions) link appears in the “Sayfalar” (Pages) menu.
- Extra pages: you add as many pages as you like from the panel (for example appointment and cancellation terms). For each page you choose whether it is shown in the top menu and in the footer of the site.
- Working hours: you enter a text for each day of the week (for example 09:00 - 19:00, and “Kapalı” (Closed) for a closed day). A day you leave empty is not shown. The hours appear on the home page, on the appointment page and in the footer of the site; the appointment form also works according to these hours.
- Contact page: a form with full name, e-mail, phone and message fields (all fields are required), your address, e-mail and phone details, and a map (Google Maps or OpenStreetMap embed address). Details and map you leave empty do not appear on the site.
- Social media: your Facebook, X (Twitter), Instagram and YouTube links and the WhatsApp link from “Site ayarları” (Site Settings) appear as icons in the footer of the site and in the side information panel. An icon you do not enter is not drawn.
- Logo and footer: you upload your logo; if you do not, the company name appears as text. The footer of the site holds the quick menu, services, address, phone, e-mail and working hours.
- Color: you pick a single main color in the panel. It is applied to buttons, the title band of the inner pages, the “Randevu al” (Book an appointment) button in the menu and accent items.
- Footer credit: you can change or remove the “TiklaWeb tarafından geliştirildi” (Developed by TiklaWeb) line at the bottom of the site.
Mobile and search engines
- Mobile friendly: the site adapts to phone, tablet and desktop screens; on small screens the menu turns into a mobile menu that opens on tap.
- Page-specific title and description: every page carries its own title (“Page | Company”), description and social sharing (Open Graph) tags. On service, product and blog post pages the image is taken from the service’s, product’s or post’s own image. You enter the site title, description and keywords under “Site ayarları” (Site Settings).
Admin panel
- “Özet” (Summary): the numbers of new appointment requests, unread messages, services and published blog posts, plus upcoming appointments and the latest messages. The side menu shows the number of new appointment requests and unread messages as a badge.
- “Randevular” (Appointments): you see incoming requests with service, date, time, name, phone, e-mail, note and the time of the KVKK consent. You change an appointment’s status to “Yeni” (New), “Onaylandı” (Approved) or “İptal” (Cancelled), filter the list by status and can delete an appointment. On the summary screen, upcoming appointments that are not cancelled are listed in date order. When you save a status, the panel tells you in a message whether an e-mail to the customer is being sent.
- “Mesajlar” (Messages): you read and delete the messages that arrive from the contact form, with name, e-mail, phone, date and text; unread messages are marked.
- Services, products, gallery and blog: you add, edit and delete entries; product, gallery and blog categories are managed separately. The lists have search and sorting.
- Content management: “Sayfalar” (Pages), “Sık sorulan sorular” (Frequently Asked Questions), “Ana sayfa üst alanı” (Home Page Top Area), “Ana sayfa tanıtım bölümü” (Home Page Introduction Section), “Hakkımızda” (About Us), “Site görselleri” (Site Images), “Ekip” (Team), “Müşteri yorumları” (Customer Reviews), “Çalışma saatleri” (Working Hours), “Sosyal medya bağlantıları” (Social Media Links) and “Bölümleri aç/kapat” (Switch Sections On/Off). The Summernote editor is used in rich-text fields.
- E-mail settings: once you enter your SMTP details and switch notifications on, the appointment e-mails and the contact form e-mail work. You test the settings with the “Deneme e-postası gönder” (Send test e-mail) button.
- “Site ayarları” (Site Settings): site title, description and keywords, company name, phone, WhatsApp link, e-mail, address, copyright line, main color, KVKK privacy page, map, logo, site language and panel language.
- Users and permissions: you add administrator and editor accounts. The editor manages the appointments and the content sections; “Site ayarları” (Site Settings), “E-posta ayarları” (E-mail Settings) and “Kullanıcılar” (Users) are open only to the administrator. Permissions are enforced on the server. Every user changes their own name and password on the “Profil ve şifre” (Profile and Password) page.
- Forgot password: the link on the panel login page resets the password by e-mail (if “E-posta ayarları” (E-mail Settings) is set up). The reset link is valid for 1 hour and can be used once.
- Custom code: under “Site ayarları” (Site Settings) you add your own code (for example a statistics script) to the top and bottom of the site. These fields are open only to the administrator.
Setup and updates
- Five-step setup wizard: requirements, license, database, site and administrator details, finish. The wizard checks your server itself.
- Setup language: in the wizard, choose Turkish or English at the top right. With an English installation, the starting and sample content is in English too.
- Sample content or empty setup: start filled in like the demo and edit from there, or enter your content from scratch. The appointment and message lists start empty in both cases.
- Update from the panel: download the zip package of the new version from your tiklaweb.net customer area and upload it on the “Güncelleme ve lisans” (Updates and License) page of the admin panel. Files and database are backed up first. If an error occurs, the site returns to its previous state. Your uploaded images, settings and content are kept.
- Verified packages: the signature of the update package is checked; only packages downloaded from tiklaweb.net are installed.
A detailed setup guide comes in the package you download as the KURULUM.html file (written in Turkish).
License
Each license is for the single domain name you specify when ordering. The domain name cannot be changed after setup; changing the extension of the same domain (for example .net to .com) is a paid service done through a support request. The license cannot be transferred free of charge. The site does not open on an unlicensed domain and the visitor is redirected to a license warning page. A separate license is required to use it on another domain.
Technical details
- PHP 8.2 or higher, MySQL or MariaDB
- Framework: plain PHP with PDO and prepared queries. Site: Bootstrap 4, jQuery, Slick, Font Awesome Free 6. Panel: Bootstrap 4, DataTables and the Summernote content editor
- E-mail is sent with PHPMailer 6.9; the SMTP password is stored encrypted. A form entry is saved to the database first; if the server supports it, the e-mail is sent after the visitor has received the response
- Interface texts are kept in the language files in the package (Turkish and English included, a new language can be added)
- Signed form token and a hidden trap field on the site forms, CSRF verification on panel actions; attempt limits on panel login, password reset, the contact form and the appointment form
- The type of images uploaded from the panel is verified from content (JPG, PNG, WebP; at most 8 MB) and, if the GD extension is on, they are converted to WebP; PHP does not run in the upload folder
- The panel’s rich text fields are filtered on the server when saved (HTMLPurifier); the admin panel sends a Content Security Policy (CSP) header; administrator passwords are stored hashed
- The map area accepts only Google Maps and OpenStreetMap embed addresses
- Database details and backups are kept in a folder outside the web root if your hosting allows it
- Security headers, HSTS on HTTPS; time zone Europe/Istanbul
- A security audit made of code review and live attack tests was carried out before sale
Demo
Explore the site and admin panel in the read-only demo. The demo is installed in Turkish; in the admin panel you can switch the panel language to English with the globe icon at the top right (the choice is kept only in your browser). The salon name, people, reviews, services, products and prices in the demo are samples. In the demo panel you see a few sample records in the “Randevular” (Appointments) and “Mesajlar” (Messages) lists. WhatsApp, social media links and the map are left empty in the demo; once you fill them in the panel, they appear on the site.
- Site: https://009.tiklaweb.net
- Admin panel: https://009.tiklaweb.net/admin
- Demo e-mail: demo@tiklaweb.net
- Demo password: demo1234
Changes cannot be saved in the demo; the contact form and the appointment form do not save records or send e-mails. The demo is reset every night. Sensitive pages such as e-mail settings, users and password forms cannot be viewed in demo mode, and “Forgot password” is switched off in the demo. These login details are for the demo site only. In the installation you purchase, you set the administrator account yourself.
Support
If you get stuck, open a support ticket from your tiklaweb.net customer area or write to destek@tiklaweb.net.
- Step 1, preparation: On your hosting, set the PHP version to 8.2 or higher and create an empty MySQL/MariaDB database and user.
- Step 2, files: Upload the contents of the public_html folder in the package you downloaded (including the hidden .htaccess file) to the publishing folder of your domain.
- Step 3, wizard: Open your domain in the browser. The setup wizard starts automatically; you can choose Turkish or English with the links at the top of the page.
- Step 4, installation: Follow the steps of the wizard: requirements, license, database details, site and administrator details. Choose sample content or an empty setup.
- Step 5, panel: Log in at yourdomain.com/admin with your administrator account and fill in the “Site ayarları” (Site Settings), “Çalışma saatleri” (Working Hours) and “E-posta ayarları” (E-mail Settings) pages.
The detailed setup guide comes in the package you download as KURULUM.html (written in Turkish).
2.0.0 — First release for sale
First release of the Hair and Beauty Salon Website script.
Added
- Browser setup wizard (requirement check, license, database, site and administrator steps).
- Option to install with sample content or empty.
- Turkish and English interface for the site, the admin panel and the setup wizard; language selection under “Site ayarları” (Site Settings); adding a new language by copying the language file.
- Domain-bound license; the site does not open on an unlicensed domain.
- Update from the panel with a zip: automatic backup, return to the previous version on error, content and added language files preserved.
- Appointment form: selection of service, date and time; check against working hours (a closed day, a time before opening and a time less than 30 minutes before closing are not accepted).
- “Randevular” (Appointments) in the panel: list, status filter (“Yeni” (New), “Onaylandı” (Approved), “İptal” (Cancelled)), details, and upcoming appointments on the summary screen.
- Appointment and contact form e-mails to the salon owner; status e-mail to the customer when an appointment is set to “Onaylandı” (Approved) or “İptal” (Cancelled).
- Services, product showcase (without cart and payment), gallery with categories, team, customer reviews, blog, frequently asked questions and extra pages.
- Switching sections on and off, and site images uploaded from the panel.
- Appointment and contact forms with a KVKK consent checkbox; privacy notice link.
- Main color selection from the panel.
- Changing or removing the footer credit from the panel.
- Forgot password: reset link by e-mail, valid for 1 hour and usable once.
- Administrator and editor user permissions.
Fixes
- Invalid addresses and the addresses of unpublished products and articles show a 404 page instead of an error.
- The page of a section you switch off does not open by its address either.
- Image, social media and map fields left empty are not drawn on the site.
Security
- Signed token or CSRF verification, attempt limits and permission checks on forms and panel actions.
- The type of images uploaded to the panel is verified from content.
- The panel’s rich text fields are filtered when saved, and a Content Security Policy was added to the panel.
- Administrator passwords are stored hashed and the SMTP password is stored encrypted.
The setup guide is the KURULUM.html file inside the package.
Hair & Beauty Salon Website Script
Beauty & Personal Care- A ready-made website for hair and beauty salons. Appointment form, services, gallery, product showcase and blog. Wizard setup, Turkish and English.
| Released | 27 October 2026 |
|---|---|
| Last Update | 27 October 2026 |
| Version | 2.0.0 |
| Built With | PHP 8.2+, MySQL/MariaDB, Düz PHP (PDO), Bootstrap, jQuery, Slick, Font Awesome 6, Summernote, PHPMailer |
| Pages Included | 14 ready-made sections |
| License | 1 domain, lifetime use |
| Updates | Included while active |
- PHP 8.2 or higher
- PHP extensions: pdo_mysql, mbstring, openssl, curl, zip, fileinfo, json, sodium (gd recommended)
- MySQL or MariaDB: a new, empty database. Enter localhost in the database server field.
- A domain name and an SSL certificate are recommended.
- Apache-based hosting with .htaccess support
- Writable folders: tiklaweb, uploads
- For the appointment e-mails, the SMTP details provided by your hosting company (entered on the “E-posta ayarları” (E-mail Settings) page)
- The site and the admin panel come in Turkish and English, and a new language can be added. The setup guide (KURULUM.html) is in Turkish.
Other Products
Browse All ProductsHome Appliance Repair Service Website Script
Car Wash & Auto Care Website Script
Gym & Fitness Website Script
Cleaning Company Website Script
Reach Sales & Support
Have a question before you buy, or need help with an existing account? Call or email us.

















