Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/vektor-inc/vk-booking-manager/releases/download/3.5.0/vk-booking-manager.zipWordPress booking plugin for salons, beauty services, chiropractic, and private lessons with complex scheduling requirements.
Description
VK Booking Manager is a comprehensive booking plugin for WordPress designed to handle complex scheduling scenarios for businesses like beauty salons, chiropractic clinics, and private lesson providers. It supports flexible shift patterns and can be used both as part of a website or as a standalone booking system.
Key Features
For Customers
- Easy Online Booking - Customers can book appointments through a user-friendly, responsive booking form that works on any device
- Flexible Scheduling - The system displays only available time slots based on complex business hours and service requirements
- Account Management - Customers can view their booking history and manage their appointments through their account
- Booking Confirmation - Automatic email notifications for booking confirmations and status updates
For Business Owners
- Complex Schedule Management - Handle irregular business hours, multiple shifts per day, and special days (holidays, temporary closures)
- Service Menu Management - Create and organize service menus with pricing, duration, booking deadlines, and buffer times
- Booking Management - View and manage all bookings through the admin interface. The shift dashboard provides day and month views to see staff schedules and bookings at a glance
- Tentative Booking Mode - Review and confirm bookings before they are finalized, allowing for adjustments to time or pricing
- Booking and Cancellation Deadlines - Set deadlines for bookings and cancellations, with different settings per service menu
- Customer Records - Maintain customer records with booking history, treatment notes, and photos
- Phone Booking Support - Easily register bookings made over the phone through the booking block on the frontend. For existing registered customers, the system can automatically identify and assign the user based on their phone number for smooth operation
Technical Features
- Block Editor Support - Use Gutenberg blocks to add booking forms and service menu displays to your pages
- Simple Setup - No need to create multiple pages; just add the booking block to a single page
- Standalone Mode - Can be used as a standalone booking system with minimal WordPress configuration
- Role-Based Permissions - Custom role for salon owners with booking-related functionality only. This allows smooth operation when using the plugin as a standalone booking system by hiding unnecessary menu items, and prevents accidental editing or deletion of non-booking content
- Responsive Design - Works seamlessly on desktop, tablet, and mobile devices
Pro Version Features
The Pro version of VK Booking Manager includes additional features for businesses with multiple staff members:
- Multiple Staff Management - Manage unlimited staff members with individual schedules, nomination fees, and service assignments
- Staff Nomination - Customers can choose a specific staff member when booking. Nomination fees are set per staff member (the same fee applies to all services), but you can configure individual service menus to exclude nomination fees
- Automatic Staff Assignment - When customers don't select a staff member, the system automatically assigns an available staff member
- Staff-Specific Schedules - Set individual working hours and schedules for each staff member
- Staff Assignment in Tentative Bookings - Adjust staff assignments when reviewing and confirming tentative bookings
Ideal For
- Beauty salons and hair salons
- Chiropractic and massage clinics
- Private lesson providers and tutoring services
- Any service business with complex scheduling needs
Installation
Automatic Installation
- Log in to your WordPress admin panel
- Navigate to Plugins > Add New
- Search for "VK Booking Manager"
- Click "Install Now" and then "Activate"
Manual Installation
- Download the plugin zip file
- Extract the plugin folder
- Upload the plugin folder to your
/wp-content/plugins/directory using FTP or your hosting control panel - Activate the plugin through the WordPress Plugins screen
Getting Started
Create or edit a page and add the "Reservation" block to display the booking form. If any other required information is missing, alerts will be displayed in the dashboard. Please follow the instructions to complete the setup.
Frequently Asked Questions
What types of businesses can use this plugin?
VK Booking Manager is designed for service businesses with complex scheduling needs, such as beauty salons, chiropractic clinics, private lesson providers, and any business that requires flexible scheduling.
Can I use this plugin without a full WordPress website?
Yes, you can use VK Booking Manager as a standalone booking system. Simply create a WordPress site and add the booking block to your homepage. The plugin includes special permissions that hide non-booking related menus for easier management.
Does the plugin support multiple staff members?
Multiple staff member support, including staff nomination and automatic staff assignment, is available in the Pro version of the plugin. In the Pro version, customers can select a specific staff member when booking. Nomination fees are set per staff member (the same fee applies to all services), but you can configure individual service menus to exclude nomination fees. If a customer doesn't select a staff member, the system will automatically assign an available staff member.
What is tentative booking mode?
When tentative booking mode is enabled, customer bookings are initially created as "pending" status. You can review the booking details, adjust the time or pricing if needed, and then confirm the booking. Once confirmed, the customer receives a confirmation email. In the Pro version, you can also adjust staff assignments when reviewing tentative bookings.
Can I set different booking deadlines for different services?
Yes, you can set booking deadlines both globally in the provider settings and individually for each service menu. This allows you to have different policies for different types of services.
How do I handle phone bookings?
You can register phone bookings through the booking block on your website's frontend. The booking form allows you to enter all booking details including customer information, service, date, and time. For existing registered customers, the system can automatically identify and assign the user based on their phone number, making the booking process smooth and efficient. In the Pro version, you can also assign staff members when registering phone bookings.
Can customers view their booking history?
Yes, logged-in customers can view their booking history and upcoming appointments through the "My Bookings" section accessible from the booking page navigation.
How does the system handle complex schedules?
The plugin supports irregular business hours, multiple shifts per day, special days (holidays, temporary closures), and service-specific availability. The booking form will only display time slots that are actually available based on all these factors. In the Pro version, you can also set staff-specific schedules for individual staff members.
Screenshots
- Booking form - User-friendly reservation interface with menu and staff selection
- Service menu management - Create and organize service menus with pricing and duration
- Shift dashboard - Day and month views showing staff schedules and bookings
- Booking management - Admin interface for viewing and managing all bookings
- Provider settings - Configure business hours, notifications, and policies
Changelog
2.0.0
- [ 機能追加 ] サービスメニューの予約可能日に「曜日指定」(毎週◯曜・第N◯曜)と「日付指定」(単日・期間)を追加
- [ 機能追加 ] サービスメニューに「最小催行人数」設定を追加し、同じ時間枠の合計予約人数が達すると開催確定とみなし、フロントに「あとN名で開催」「開催決定」、管理画面に未達枠の色付けを表示(Pro版・複数人一括予約ON時)
- [ 機能追加 ] サービスメニューに「貸し切り予約」設定を追加し、予約が1件入ると残り枠があってもその時間帯の受付を停止できるように(Pro版・複数人一括予約ON時)
- [ 機能追加 ] 予約者が予約画面で時間帯の貸切を指定できる機能を追加し、貸切料金(1人あたり・適用しない申込人数)も設定できるように(Pro版・複数人一括予約ON時)
- [ 機能追加 ] サービスメニューでリビジョンに対応し、料金・所要時間・スタッフなどの設定値も含めて過去の状態を復元できるように
- [ 機能追加 ] マイページの予約一覧に「同じ内容で予約する」ボタンを追加し、過去・今後の予約から同じメニュー・指名スタッフで再予約できるように
- [ 機能追加 ] よく使うメニュー・スタッフの組み合わせをお気に入り(よく使う予約)として登録し、予約フォームから素早く呼び出せる機能を追加
- [ 機能追加 ] 複数人一括予約で料金区分(大人料金・子供料金など)を定義し、区分ごとの人数で料金計算できる機能を追加(Pro版・指名OFF時)
- [ 機能追加 ][ メニューループブロック / サービスカードブロック (Pro) ] 料金区分が設定されたサービスのカードに区分ごとの料金一覧を表示
- [ 機能追加 ][ メニューループブロック / サービスカードブロック (Pro) ] 固定の開始時間が設定されたサービスのカードに開始時間を表示
- [ 機能追加 ][ メニューループブロック / サービスカードブロック (Pro) ] 予約枠の定員が2以上のサービスのカードに定員を表示
- [ 機能追加 ][ メニューループブロック / サービスカードブロック (Pro) ] 予約枠の定員と最少催行人数がともに2以上のサービスのカードに最少催行人数を表示
- [ 機能追加 ][ 予約に進むボタンブロック ] プラン詳細ページから対象プランを選択済みの状態で予約ページへ遷移するボタンブロックを追加
- [ 機能追加 ] 複数人一括予約(人数指定)機能を追加(Pro版・指名OFF時)
- [ 機能追加 ] 予約枠の定員機能の有効・無効を基本設定で明示的に切り替えられるように追加(既定で有効・指名機能ON時は利用不可)
- [ 機能追加 ] 無料版にプロ版への誘導リンク・案内を追加
- [ 機能追加 ] 複数人一括予約の数量の見出し・単位を基本設定でカスタマイズ可能に(単位は既定で従来どおり「名」、空にすると非表示)
- [ 機能追加 ][ サービスカードブロック (Pro) ] サービス詳細ページで表示中のサービス1件のカードを表示するブロックを追加
- [ 機能追加 ] 基本設定にリソース管理メニューのアイコンを選択できる設定を追加(Dashicons をプリセット選択またはクラス名直接入力)
- [ 仕様変更 ] サービス詳細編集画面で「予約締切」「予約可能な最大日数」の入力欄を内部メモの直前に移動
- [ 仕様変更 ] 料金区分を使うメニューでは予約確認画面・予約管理画面の「サービス基本料金」行(常に0円)を非表示に変更(区分ごとの小計を別途表示するため)
- [ 仕様変更 ] 基本設定画面のライセンスタブからライセンスURL入力欄とVWSへの登録案内を削除
- [ 不具合修正 ] 予約投稿の作成に失敗した際に無効な投稿IDでメタ保存が進み、不正な予約が成功扱いになる不具合を修正
- [ 不具合修正 ] 予約管理画面で顧客メールアドレスに不正な形式(例: foo@)を入力しても保存されてしまう不具合を修正
- [ 不具合修正 ] 仮予約の通知メール本文(英語原文)に「confirm and confirm」という重複表現のタイポがあった不具合を修正
- [ 不具合修正 ] 指名機能をOFFにすると予約確認画面に基本料金・合計金額が表示されず金額を確認できない不具合を修正
- [ 不具合修正 ] 予約確認画面でキャンセルポリシーの案内文が条件により2重に表示される不具合を修正
- [ 不具合修正 ] 引数の型宣言が暗黙的な nullable のままになっており PHP 8.4 で非推奨警告が発生する不具合を修正
- [ その他 ] 予約可能日の可否判定ロジックを共通ヘルパーに集約する内部リファクタリング(挙動変更なし)
1.1.3
- [ 不具合修正 ] 他プラグイン等が administrator ロールに数値キーの権限を混入させた環境で、プラグイン有効化時に Fatal Error(strpos の TypeError)が発生する不具合を修正
1.1.2
- [ 不具合修正 ] 無料版でスタッフ設定保存時に Fatal Error が発生する不具合を修正(無料版ビルドソース側の対応)
1.1.1
- [ その他 ][ 各種ブロック ] WordPress 7.0 で非同期パターン挿入時にメニューループ・サービスメニュー検索・サービスタグフィールド・キーワード検索フィールド・リソース検索フィールドの各ブロックを編集可能にする
1.1.0
- [ セキュリティ修正 ] IP 単位の簡易レート制限(ログイン・ユーザー登録・予約一時データ用 REST API)の内部実装をアトミック化し、高並列リクエスト時にカウンタが取りこぼされて実質的にレート制限が緩くなる問題を抑制。永続オブジェクトキャッシュが有効な環境では wp_cache_incr によるアトミックインクリメント、それ以外の環境では MySQL GET_LOCK で transient の read-modify-write を直列化するハイブリッド構成に変更。ロック競合時は誤検知防止優先で許可フォールバックする運用(vkbm_rate_limit_lock_contention アクションで監視可能)
- [ セキュリティ修正 ] DB バックアップ流出時に未使用の認証リンクが悪用される可能性があった点を、SHA-256 ハッシュで保存・検証するよう変更
- [ セキュリティ修正 ] 予約一時データの所有権チェックで、未ログインユーザーの Cookie 値と所有者キーの比較に hash_equals() を使用し、タイミング攻撃に対する耐性を強化
- [ 不具合修正 ] 日本語翻訳ファイル(vk-booking-manager-ja.po)で、選択した予約枠が確保できなくなった際のエラーメッセージが「日付」と誤訳されており、ユーザーに別の日付を選択するよう促してしまう不具合を修正
- [ 不具合修正 ] 日本語翻訳ファイル(vk-booking-manager-ja.po)で、予約一時データ用 REST API のレート制限超過時のメッセージ「Too many requests. Please try again later.」が未翻訳で英語のまま表示される不具合を修正
- [ セキュリティ修正 ] ログイン失敗時のエラーメッセージを「ユーザー名またはパスワードが正しくありません」に統一し、ユーザー名・メールアドレスがそのサイトに存在するかどうかを推測できる User Enumeration の問題に対応
- [ セキュリティ修正 ] 予約一時データ用 REST API エンドポイント(POST /vkbm/v1/drafts)の入力フィールドに静的な文字数・配列長上限を適用し、巨大なペイロードによる wp_options レコード肥大化を抑制
- [ セキュリティ修正 ] 予約一時データ用 REST API エンドポイントで、同一利用者(ログインユーザーまたは Cookie ベースの所有者)あたりの予約一時データ保持件数を 10 件に制限し、上限超過時は最古のデータから自動削除する FIFO クォータを導入し、IP 単位のレート制限と併せて大量データ蓄積による負荷増大への耐性を強化
- [ セキュリティ修正 ] REST API エンドポイントの認可制御を厳格化し、認証必須エンドポイント(予約作成・現在のユーザー情報取得)の
permission_callbackでログイン状態を検証するよう変更 - [ セキュリティ修正 ] 予約一時データ用 REST API エンドポイントに IP 単位の簡易レート制限を追加し、大量リクエストによる負荷を抑制
- [ 仕様変更 ] ブロックインサーターに「VK Booking Manager」カテゴリーを追加し、本プラグインのブロックを専用カテゴリーにまとめて表示するよう変更
1.0.0
- 正式リリース
0.6.1
- [ 仕様変更 ][ サービスメニュー一覧ブロック ] カード内のフォントサイズ・余白・角丸をCSSカスタムプロパティ(デザイントークン)に統一し、テキスト周りの行間を text-box: trim-both で調整
0.6.0
- [ 機能追加 ] 基本設定画面で「その他条件」「所要時間」「カレンダーの休業日に表示されるラベルテキスト」のラベルを変更できる設定を追加
- [ 仕様変更 ] 予約通知メールの「料金目安」表記を「料金」に変更
- [ 不具合修正 ] 指名機能を無効にして保存すると「指名なしラベル」「指名料ラベル」がリセットされて英語表記になる不具合を修正
- [ 仕様変更 ] 指名機能が有効な場合、メニュー詳細の「1枠あたりの最大予約受付数」を非表示にし案内メッセージを表示するよう変更
- [ 仕様変更 ] サービスメニュー固定開始時刻の説明文を修正し、基本設定画面の予約スロット時間へのリンクを追加
- [ 仕様変更 ] サービスメニュー編集画面のメタボックスレイアウトを WordPress 標準の Form table 形式に変更
- [ 仕様変更 ] シフト・予約表画面のハードコードされた色・フォントサイズをCSSカスタムプロパティ(デザイントークン)に置き換え
- [ 仕様変更 ] シフト・予約表画面の背景色 #fff を CSS カスタムプロパティ(--vkbm--admin--color--surface)に置き換え
0.5.3
- [ 仕様変更 ] シフト・予約表画面で同一時間帯に4件以上の予約がある場合、3件まで表示し残りは「+N件」バッジとモーダルで一覧表示するよう変更
0.5.2
- [ 仕様変更 ] シフト・予約表画面の勤務時間ラベルをシフトブロック内からヘッダーのスタッフ名の下に移動し、予約カードの表示位置のズレを解消
0.5.1
- [ 仕様変更 ] メニューカードの金額表示の後ろに基本設定の税込表示文字列を表示するよう追加
- [ 不具合修正 ] シフト・予約表画面で同一スロットに複数予約がある場合にカードが重なって1件しか表示されない不具合を修正
- [ 不具合修正 ] シフトを更新するとタイトルが英語表記になってしまう不具合を修正
0.5.0
- [ 機能追加 ] サービスメニュー単位で1枠あたりの最大予約受付数を設定できる複数予約機能を追加(Pro版のみ)
- [ 機能追加 ] 基本設定画面に「指名機能の使用」設定を追加し、指名機能を無効化できるように対応
- [ 機能追加 ] 「指名」関連ラベルのカスタマイズ機能を追加
- [ 不具合修正 ] 予約確認メールで指名料の通貨記号が二重表示される不具合を修正
- [ 不具合修正 ] 予約確認メールで(税込)表記が基本料金のみに付与され指名料を含む合計に対する表記になっていない不具合を修正
0.4.0
- [ 不具合修正 ] ユーザー情報変更画面でパスワード変更に失敗してもエラーメッセージが表示されない不具合を修正
- [ 不具合修正 ] staffOptions が未定義の場合に予約画面がクラッシュする不具合を修正
- [ 仕様変更 ] 基本設定画面のライセンスタブを最後に移動
- [ 不具合修正 ] オンライン予約を無効にしたサービスメニューで「予約に進む」ボタンをグレーアウト(非活性)表示するよう修正
- [ 機能追加 ] リソースタグ機能を追加(Pro版のみ)
0.3.0
- [ 機能追加 ] 予約可能期間の設定機能を追加(共通設定およびサービス個別設定で、何日先まで予約可能かを制限可能)
- [ 機能追加 ] サービスメニューに固定開始時刻を複数登録できる機能を追加。設定すると指定した時刻のみ予約可能になる
- [ 機能追加 ] サービス後バッファの説明テキストを追加
- [ 機能追加 ] 管理画面の設定にライセンスキーを入力・保存できる「ライセンス」タブを追加(Pro版のみ表示)
- [ 不具合修正 ] サロンオーナーが予約する際、顧客の電話番号にハイフンや全角数字が含まれていても、半角数字のみで保存されるように修正
- [ 不具合修正 ] 予約リマインダーメール設定の項目追加時の表示にスペースがない問題を修正
- [ 不具合修正 ] 予約顧客がダッシュボードにアクセスできてしまう不具合を修正
0.2.2
- [ 不具合修正 ] 指名料の表示に税込ラベルが表示されない問題を修正
- [ 不具合修正 ] 新規ユーザー登録時の確認項目の文字が中央揃えになってしまうので左揃えに変更
- [ 仕様変更 ] 予約カレンダーでスタッフ休み日のステータスが「プライベート」と表示されないように変更
0.2.1
- [ 仕様変更 ] パスワード変更メールの From が WordPress<wordpress@サイトドメイン> ではなく、施設名<no-reply@サイトドメイン> になるように変更
- [ 仕様変更 ] ユーザー名表示処理のリファクタリング
- [ 仕様変更 ] 施設向けの予約関連メールのfromがユーザー名になるように変更
- [ 仕様変更 ] ユーザー向けの予約関連メールのfromがサイト名ではなく施設名になるように変更
0.2.0
- [ 機能追加 ] アップデーターを追加
- [ 不具合修正 ] 初期インストール時にキャンセルポリシーと利用規約の初期文章が反映されない不具合を修正
- [ 不具合修正 ] 通知メールの翻訳や時間表記不具合修正
0.1.3
- Define the plugin directory path and URL as constants
0.1.2
- Delete unused files.
- Improve
$_GETand$_COOKIEdata handling and clarifyphpcs:ignorecomments for security.
0.1.1
- Fix security issues.
0.1.0
- Initial release.
Releases
Newest 25 of 60 recorded releases. Each count is every asset in that release; expand a row for the breakdown.
Active-site estimate ≈20 comes from the 2.6.0 cohort. Method.