Files
2026-05-06 00:18:37 +02:00

2.6 KiB
Raw Permalink Blame History

Technology Stack

Analysis Date: 2026-05-05

Languages

  • PHP 7.4+ — all server-side plugin logic (Requires PHP: 7.4 in 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.js
  • https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.css
  • https://cdn.jsdelivr.net/npm/@fullcalendar/core@6.1.10/locales/pl.global.min.js

Plugin Constants

Defined in yacht-booking-system.php (lines 2327):

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 3256, yacht-booking-system.php):

  • Namespace prefix: YachtBooking\
  • Maps to: YACHT_BOOKING_PLUGIN_DIR . 'includes/'
  • Rule: YachtBooking\Foo_Barincludes/class-foo-bar.php
  • Only covers includes/ — integration and API classes loaded via explicit require_once

Configuration Storage

  • No .env file — all runtime config in wp_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