Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/mandeeps207/mkwebtech-flight-booking/archive/refs/heads/master.zipMKWebTech Flight Booking for WooCommerce — M4
The name, text domain and slug are provisional. No WordPress.org availability or approval is claimed. This repository root is one installable WordPress plugin. M1 supplies the engineering foundation, M2 persistence, M3 transactional inventory, and M4 authoritative pricing plus guarded Classic cart integration. Customers cannot complete a flight purchase because M5 order/payment finalization is absent and managed carts are deliberately blocked at checkout.
Development
Use PHP 8.3+ and Composer 2. Run composer install, then composer check. With an explicitly disposable WordPress/database environment configured, run composer check:complete.
composer validate --strict
composer test
composer test:integration
composer test:inventory
composer test:concurrency
composer phpcs
composer phpstan
composer lint
See test-database setup for the portable Windows environment and MySQL/MariaDB Docker profiles. No existing site configuration or database credentials are inferred. Tool downloads and integration provisioning are development-only; runtime makes no external requests.
Compatibility and architecture
Provisional application floors remain PHP 8.3, WordPress 6.9 and WooCommerce 10.8.1. Database floors are MySQL 8.0 or MariaDB 10.11 with InnoDB; MySQL 8.4 is not required. These are support decisions, not claims that older systems are technically incapable. No HPOS or Checkout Blocks compatibility is declared.
The bootstrap declares Requires Plugins: woocommerce, checks versions and the loaded dependency before loading implementation, and keeps itself plus compatibility.php parseable on PHP 7.0+. Unsupported environments receive escaped, authorized administrative notices. PHP below 7.0 is outside the defensive parsing target.
The local PSR-4 loader maps MKWebTech\FlightBooking\ to src/ and ignores unrelated/malformed names. It does not load vendor/autoload.php; there are no production package dependencies, framework or DI-container package. Runtime uses WordPress's existing mysqli connection. Future production packages need demonstrated value and a documented compatibility/distribution strategy. No legacy vendor files or assets are used.
The M1 service registry retains instance identity, rejects unknown IDs and duplicate registrations, and has no mutable global services. It registers only the M1 UTC clock; the M2 runtime object is retained by its own persistence hook callbacks. Clock returns immutable UTC instants; UtcClock supplies production time and tests/Support/FrozenClock supplies deterministic test time. M3 uses database UTC time after inventory locks for expiry decisions.
M1 departure, hold, operational-booking and financial-observation enums remain separate and unchanged. Store explicit backed strings, never case names, ordinal positions or PHP object serialization. from() rejects unknown values; callers using tryFrom() must handle null explicitly. Existing strings cannot be renamed or repurposed without an authorized migration. A refund observation never causes operational cancellation.
Development tooling is locked: PHPUnit 12, WPCS 3, PHPCS 3 and PHPStan 2 with WordPress stubs. PHPCS deliberately stays on 3.x because WPCS 3 requires it. Composer resolves against PHP 8.3.0; PHPStan targets 8.3 at maximum level. All packages are development-only. Composer plugins are disabled; PHPCS standards paths are explicit. Tooling-specific exceptions are documented in test-database.md.
Persistence and inventory documentation
-
M3 service contracts, lock order, invariants, replay and recovery
-
Migration locks, schema health, transactions, repositories, capability mapping and retention
-
Disposable integration infrastructure and verification commands
M4 boundary
Included: all M1-M3 behavior; private location and route records; ordinary simple virtual managed-product metadata; fixed-point adult/child fare rules; immutable server quotes and quote-aware reserve/replace; one Classic cart line per booking; authoritative restoration/pricing; deterministic release and cart-add compensation; WooCommerce taxes/coupons/totals; and a scoped checkout guard. Physical schema version remains 1 while plugin version is 0.4.0.
Excluded: public search/booking UI, merchant management screens, Store API/Blocks schemas, order creation/binding, payment/refund recognition, confirmation from order status, emails, My Account output, public REST/AJAX, Cron/Action Scheduler, ICS, legacy migration, seats, round trips and release packaging. GDS/NDC, PNRs, airline ticket issuance and live commercial-airline inventory remain outside the product scope. Stop at M4.
Primary implementation references: WordPress table creation and dbDelta, non-autoloaded options, and MariaDB advisory-lock release.