2.6 KiB
2.6 KiB
Technology Stack
Analysis Date: 2026-05-05
Languages
- PHP 7.4+ — all server-side plugin logic (
Requires PHP: 7.4in plugin header) - JavaScript (ES5/IIFE) — frontend calendar + booking form (
calendar.js), admin panel JS (admin.js) - SCSS — frontend calendar styles (source at
frontend/assets/css/calendar.scss; must be manually compiled) - SQL — custom table queries via
$wpdb->prepare()
Runtime
- WordPress 6.0+ (
Requires at least: 6.0) - Elementor Pro — optional; plugin checks
class_exists('\Elementor\Plugin')and degrades gracefully - MySQL — custom table + WordPress standard tables
Key Dependencies
| Dependency | Version | How Loaded |
|---|---|---|
| FullCalendar | 6.1.10 | jsDelivr CDN |
| FullCalendar Polish locale | 6.1.10 | jsDelivr CDN |
| jQuery | WP bundled | WordPress core |
| Google Calendar API v3 | — | Native HTTP (no SDK) |
CDN URLs:
https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.jshttps://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.csshttps://cdn.jsdelivr.net/npm/@fullcalendar/core@6.1.10/locales/pl.global.min.js
Plugin Constants
Defined in yacht-booking-system.php (lines 23–27):
YACHT_BOOKING_VERSION = '1.0.0'
YACHT_BOOKING_PLUGIN_FILE = __FILE__
YACHT_BOOKING_PLUGIN_DIR = plugin_dir_path(__FILE__)
YACHT_BOOKING_PLUGIN_URL = plugin_dir_url(__FILE__)
YACHT_BOOKING_PLUGIN_BASENAME = plugin_basename(__FILE__)
Autoloading
Custom spl_autoload_register (lines 32–56, yacht-booking-system.php):
- Namespace prefix:
YachtBooking\ - Maps to:
YACHT_BOOKING_PLUGIN_DIR . 'includes/' - Rule:
YachtBooking\Foo_Bar→includes/class-foo-bar.php - Only covers
includes/— integration and API classes loaded via explicitrequire_once
Configuration Storage
- No
.envfile — all runtime config inwp_options - Key options:
yacht_booking_gcal_credentials,yacht_booking_gcal_tokens,yacht_booking_gcal_calendar_id,yacht_booking_gcal_sync_enabled,yacht_booking_default_status,yacht_booking_enable_notifications
Build Pipeline
None. No Composer, no npm, no webpack/vite/esbuild. Assets are static hand-authored files deployed via FTP (ftp-kr VS Code extension, config: .vscode/ftp-kr.json).
Platform Requirements
- Dev: VS Code + ftp-kr, PHP 7.4+ CLI (
php -l <file>for syntax checks) - Production: PHP 7.4+, MySQL, WordPress 6.0+, shared hosting or VPS
- Note: OAuth redirect URI hardcoded to
https://jachty.pagedev.pl— staging/local OAuth will fail