{"id":8,"date":"2026-09-27T08:10:52","date_gmt":"2026-09-27T08:10:52","guid":{"rendered":"https:\/\/demo.codersnoyan.com\/noyajet\/documentation\/"},"modified":"2026-10-03T23:02:34","modified_gmt":"2026-10-03T17:02:34","slug":"documentation","status":"publish","type":"page","link":"https:\/\/demo.codersnoyan.com\/noyajet\/documentation\/","title":{"rendered":"Documentation"},"content":{"rendered":"<p class=\"wp-block-paragraph\">Everything you need to install NoyaJet, activate your licence, import the demo, set up pricing and payments, and run the booking system. This guide is also included in the complete package download.<\/p>\n<p class=\"wp-block-paragraph\">NoyaJet is an editorial private aviation theme for WordPress. It includes a green-and-ivory design, three aviation images, catalogue pages, a journal, multi-step booking and quote forms, a contact form and a customer requests area. The included NoyaJet Booking plugin adds live price estimates, online payments, card holds, empty-leg sales, invoices and an admin panel for managing bookings, quotes and the aviation catalogue.<\/p>\n<h2 class=\"wp-block-heading\">What you need<\/h2>\n<ul class=\"wp-block-list\"><li>WordPress 6.5 or newer and <strong>PHP 8.1 or newer<\/strong>. Tested on PHP 8.2 and 8.3.<\/li><li><strong>noyajet-1.3.0.zip<\/strong>, from your downloads on codersnoyan.com.<\/li><li>Your <strong>licence key<\/strong>, from your purchase email or your account on codersnoyan.com.<\/li><li>To take payments: an account with Stripe, PayPal or Square (any or all), or WooCommerce with a payment plugin. Bank transfer needs no account.<\/li><\/ul>\n<p class=\"wp-block-paragraph\">No Elementor, ACF, Node.js or other paid plugin is needed. WooCommerce is optional.<\/p>\n<h2 class=\"wp-block-heading\">Install and set up<\/h2>\n<ol class=\"wp-block-list\"><li>In your WordPress dashboard, go to <strong>Appearance \u2192 Themes \u2192 Add New Theme \u2192 Upload Theme<\/strong>. Select <strong>noyajet-1.3.0.zip<\/strong>, click <strong>Install Now<\/strong>, then <strong>Activate<\/strong>.<\/li><li><strong>NoyaJet Setup<\/strong> opens automatically. You can return to it any time from <strong>Appearance \u2192 NoyaJet Setup<\/strong>.<\/li><li><strong>Step 1: Activate your licence.<\/strong> Paste your licence key and click <strong>Activate licence<\/strong>.<\/li><li><strong>Step 2: Install NoyaJet Booking.<\/strong> Click <strong>Install and activate<\/strong>. The plugin is included in the theme, so nothing else needs downloading.<\/li><li><strong>Step 3: Import the demo website.<\/strong> Leave both boxes ticked to use the imported Home page as your front page and switch to \u201cPost name\u201d permalinks. Then click <strong>Import demo website<\/strong>. The demo aircraft get example hourly rates, so price estimates work straight away.<\/li><li><strong>Step 4: Make it yours.<\/strong> Open your website, or go to the Customizer to change the logo and homepage text.<\/li><li>Go to <strong>Settings \u2192 General<\/strong> and set your <strong>Site Title<\/strong> and <strong>Timezone<\/strong>, so booking times are shown correctly.<\/li><li>Follow <strong>Pricing<\/strong> and <strong>Payments<\/strong> below before you take real bookings.<\/li><\/ol>\n<p class=\"wp-block-paragraph\">Do not upload the theme ZIP under Plugins, and do not upload a ZIP that contains other ZIP files. If WordPress reports \u201cMissing style.css\u201d, see Troubleshooting.<\/p>\n<p class=\"wp-block-paragraph\">The demo import copies the bundled pictures into your Media Library. It never deletes existing content. If a page with the same address already exists, the import creates a separate copy. Running it again skips anything it has already created and keeps your edits. If your site already has a menu, assign the imported NoyaJet menu to <strong>Primary navigation<\/strong> under Appearance \u2192 Menus.<\/p>\n<p class=\"wp-block-paragraph\">The default <strong>Hello world!<\/strong> post appears in The journal next to the demo articles. Move it to the Trash under <strong>Posts<\/strong> if you don&#8217;t need it.<\/p>\n<p class=\"wp-block-paragraph\">If your server asks for FTP details when installing plugins, step 2 shows a message instead. In that case, open <strong>noyajet-1.3.0.zip<\/strong> on your computer and take out <code>noyajet\/plugins\/noyajet-booking.zip<\/code>. Upload that file under <strong>Plugins \u2192 Add New Plugin \u2192 Upload Plugin<\/strong>, activate it, and return to NoyaJet Setup.<\/p>\n<h2 class=\"wp-block-heading\">Your licence<\/h2>\n<ul class=\"wp-block-list\"><li>The licence unlocks NoyaJet Setup (plugin install and demo import) and automatic theme updates.<\/li><li>Theme updates appear in <strong>Dashboard \u2192 Updates<\/strong>, like any other theme. Each update also contains the matching NoyaJet Booking version. When one is included, NoyaJet Setup shows an <strong>Update<\/strong> button for the plugin.<\/li><li><strong>Your website keeps working if the licence expires.<\/strong> Only setup and updates stop until you renew.<\/li><li>Your plan sets how many sites a licence covers. NoyaJet Setup shows how many sites are in use.<\/li><li><strong>Moving to a new domain or subdomain?<\/strong> Open NoyaJet Setup on the old site and click <strong>Release this site<\/strong>, then activate the licence on the new site. If the old site no longer exists, release it from your account on codersnoyan.com. If a site&#8217;s address changes, NoyaJet asks you to activate the licence again for the new address.<\/li><li>NoyaJet contacts codersnoyan.com only when you activate, check or release the licence, and at most twice a day to check for updates. Visitors to your website never trigger a licence check.<\/li><\/ul>\n<h2 class=\"wp-block-heading\">Updating from an earlier version<\/h2>\n<ol class=\"wp-block-list\"><li>Check that your server runs <strong>PHP 8.1 or newer<\/strong> (Tools \u2192 Site Health \u2192 Info \u2192 Server). NoyaJet Booking 2.0 does not run on older PHP.<\/li><li>Go to <strong>Appearance \u2192 Themes \u2192 Add New Theme \u2192 Upload Theme<\/strong> and select the new <strong>noyajet-x.y.z.zip<\/strong>. Or, with an active licence, update from <strong>Dashboard \u2192 Updates<\/strong>.<\/li><li>When WordPress says the theme is already installed, click <strong>Replace current with uploaded<\/strong>.<\/li><li>Open <strong>Appearance \u2192 NoyaJet Setup<\/strong>. Activate your licence if asked, then click <strong>Update<\/strong> on the NoyaJet Booking step.<\/li><\/ol>\n<p class=\"wp-block-paragraph\">Requests, quotes, catalogue entries, pages and settings are kept. When updating to plugin 2.0:<\/p>\n<ul class=\"wp-block-list\"><li>A <strong>Your booking<\/strong> page is created for customers&#8217; private booking links.<\/li><li>Open quotes from 1.x get their quote amount as the price, so customers can pay them online.<\/li><li>Demo aircraft get example hourly rates and demo empty legs get prices and dates, but only where those fields are still empty. Your own values are never changed.<\/li><li>Your existing <strong>Privacy<\/strong> and <strong>Terms<\/strong> pages are not changed. Update them yourself (see Scope and launch requirements).<\/li><\/ul>\n<h2 class=\"wp-block-heading\">What is included<\/h2>\n<ul class=\"wp-block-list\"><li>Responsive homepage, header, mobile navigation and footer.<\/li><li>Six editable aircraft categories, with detail pages, seating, range, hourly rate and amenities.<\/li><li>Six editable destinations, with regional filtering, airport information and detail pages.<\/li><li>Four editable services and their detail pages.<\/li><li>Three sample empty-leg routes; real empty legs can be sold online at a fixed price.<\/li><li>About, FAQ, privacy and booking terms pages; three journal articles.<\/li><li>Separate booking, quote, contact, My requests and Your booking pages.<\/li><li>One-way, round-trip and multi-city itineraries (up to four legs), with airport search over more than 7,900 airports and local-time validation.<\/li><li><strong>Live price estimates<\/strong> for every aircraft, from your hourly rates and pricing rules.<\/li><li><strong>Online payments:<\/strong> Stripe, PayPal, Square, bank transfer and WooCommerce. Card holds, deposits, balances, full payment and refunds.<\/li><li>A <strong>private booking page<\/strong> for each customer: status, payments, invoices and cancellation requests.<\/li><li>Customer and admin emails; numbered <strong>PDF invoices<\/strong>.<\/li><li>A NoyaJet admin panel: dashboard, request list, booking screen with price and payment controls, settings and CSV export.<\/li><li>WordPress privacy export and erasure support.<\/li><\/ul>\n<h2 class=\"wp-block-heading\">Pricing<\/h2>\n<p class=\"wp-block-paragraph\">Online estimates are built from each aircraft&#8217;s hourly rate. Customers see a price range for every aircraft on the booking form, and the estimate is saved with their request.<\/p>\n<ol class=\"wp-block-list\"><li>Go to <strong>NoyaJet \u2192 Aircraft<\/strong> and open each aircraft. In <strong>NoyaJet details<\/strong>, fill in:<ul class=\"wp-block-list\"><li><strong>Hourly rate<\/strong>: your charter price per flight hour, in your site currency.<\/li><li><strong>Cruise speed<\/strong> in knots (typical: turboprop 290, light jet 410, midsize 450, heavy 480).<\/li><li><strong>Home base airport<\/strong> as an IATA code, for example LTN. Positioning flights are priced from here.<\/li><li>Optionally a <strong>crew overnight fee<\/strong> and <strong>minimum billable hours per day<\/strong>. Empty fields use the defaults in Settings.<\/li><\/ul><\/li><\/ol>\n<p class=\"wp-block-paragraph\">   Aircraft without an hourly rate show \u201cPrice on request\u201d and are left out of estimates.<\/p>\n<ol class=\"wp-block-list\"><li>Go to <strong>NoyaJet \u2192 Settings \u2192 Pricing<\/strong> and check the rules:<\/li><\/ol>\n<figure class=\"wp-block-table\"><table><thead><tr><th>Setting<\/th><th>What it does<\/th><\/tr><\/thead><tbody><tr><td>Live estimates<\/td><td>Show estimates on the booking form and price new requests<\/td><\/tr><tr><td>Estimate range<\/td><td>Customers see \u201cfrom \u2013 to\u201d around the estimate, e.g. \u00b110%<\/td><\/tr><tr><td>Round totals to<\/td><td>Round the total, e.g. to the nearest 100<\/td><\/tr><tr><td>Taxi and climb allowance<\/td><td>Minutes added to every flight<\/td><\/tr><tr><td>Routing allowance<\/td><td>% added to the straight-line distance<\/td><\/tr><tr><td>Daily minimum<\/td><td>Minimum billable hours per flying day<\/td><\/tr><tr><td>Fuel stop<\/td><td>Minutes added per stop when a flight is longer than 90% of the aircraft&#8217;s range<\/td><\/tr><tr><td>Positioning, rate and limit<\/td><td>Charge flights to and from the home base, at a % of the hourly rate. If the base is further than the limit from the departure airport, the estimate prices an aircraft of the same type based at the departure airport<\/td><\/tr><tr><td>Crew overnight fee and longest wait<\/td><td>Charged per night between flights; longer gaps are priced as a flight home and back<\/td><\/tr><tr><td>Landing &amp; handling, catering<\/td><td>Per flight; catering per guest when the customer ticks Catering<\/td><\/tr><tr><td>Peak season<\/td><td>% surcharge on dates in the ranges you list (MM-DD..MM-DD, one per line)<\/td><\/tr><tr><td>Tax<\/td><td>% and label, e.g. 7.5 \u201cFederal excise tax\u201d<\/td><\/tr><\/tbody><\/table><\/figure>\n<p class=\"wp-block-paragraph\">The table at the bottom, <strong>What your aircraft cost<\/strong>, shows each aircraft&#8217;s price for a sample London Luton \u2192 Nice trip with the settings you saved.<\/p>\n<p class=\"wp-block-paragraph\">Estimates are guides. You set the final price on each booking (see Managing bookings and payments), and the operator confirms the aircraft before any card hold is captured.<\/p>\n<h2 class=\"wp-block-heading\">Payments<\/h2>\n<p class=\"wp-block-paragraph\">Go to <strong>NoyaJet \u2192 Settings \u2192 Payments<\/strong>.<\/p>\n<ol class=\"wp-block-list\"><li><strong>Payment methods:<\/strong> tick the methods to offer. A method shows <strong>Ready<\/strong> once its keys or details are saved. Customers choose between the ticked methods that are ready.<\/li><li><strong>Deposits and card holds:<\/strong><ul class=\"wp-block-list\"><li><strong>Deposit:<\/strong> a percentage of the price, a fixed amount, or none. Tick <strong>Pay in full<\/strong> to also offer paying everything up front.<\/li><li><strong>Card holds:<\/strong> let customers reserve from the booking form with a card hold. The hold is the deposit or the full estimate.<\/li><li><strong>Release holds after:<\/strong> unconfirmed holds are released automatically before the card network lets them lapse (Stripe and Square 6 days, PayPal 3 days at most).<\/li><li><strong>Payment windows:<\/strong> how long an unpaid checkout stays open, how long an empty leg is held while the customer pays, and how long to wait for a bank transfer.<\/li><\/ul><\/li><li><strong>Shown at checkout:<\/strong> choose your <strong>Booking terms page<\/strong> and write your cancellation policy and operator disclosure. Customers must accept the booking terms before they pay.<\/li><li><strong>Bank transfer details:<\/strong> account name, bank, IBAN or account number, SWIFT\/BIC and instructions. Customers see them with their booking reference.<\/li><li><strong>Keys:<\/strong> each provider has its own box. Start in <strong>Test<\/strong> or <strong>Sandbox<\/strong> mode, click <strong>Save keys<\/strong>, then <strong>Test connection<\/strong>. Switch to <strong>Live<\/strong> with your live keys when you are ready. Keys are encrypted before they are stored, and saved keys are never shown again.<\/li><\/ol>\n<figure class=\"wp-block-table\"><table><thead><tr><th>Provider<\/th><th>Where to find the keys<\/th><th>Fields<\/th><\/tr><\/thead><tbody><tr><td><strong>Stripe<\/strong><\/td><td>Stripe Dashboard \u2192 Developers \u2192 API keys; webhook under Developers \u2192 Webhooks<\/td><td>Publishable key, Secret key, Webhook signing secret<\/td><\/tr><tr><td><strong>PayPal<\/strong><\/td><td>developer.paypal.com \u2192 Apps &amp; Credentials (Sandbox or Live)<\/td><td>Client ID, Secret, Webhook ID<\/td><\/tr><tr><td><strong>Square<\/strong><\/td><td>developer.squareup.com \u2192 your application \u2192 Credentials and Locations<\/td><td>Application ID, Location ID, Access token, Webhook signature key<\/td><\/tr><\/tbody><\/table><\/figure>\n<p class=\"wp-block-paragraph\"><strong>Webhooks<\/strong> keep payments in step when a customer closes the browser, a refund is made in the provider&#8217;s dashboard or a dispute is opened. Each key box shows your webhook address. Add it in the provider&#8217;s dashboard:<\/p>\n<ul class=\"wp-block-list\"><li><strong>Stripe:<\/strong> <code>\u2026\/wp-json\/noyajet\/v1\/webhooks\/stripe<\/code> with the events <code>payment_intent.succeeded<\/code>, <code>payment_intent.amount_capturable_updated<\/code>, <code>payment_intent.canceled<\/code>, <code>payment_intent.payment_failed<\/code>, <code>charge.refunded<\/code> and <code>charge.dispute.created<\/code>. Copy the signing secret into Webhook signing secret.<\/li><li><strong>PayPal:<\/strong> <code>\u2026\/wp-json\/noyajet\/v1\/webhooks\/paypal<\/code> with <code>CHECKOUT.ORDER.APPROVED<\/code>, <code>PAYMENT.CAPTURE.COMPLETED<\/code>, <code>PAYMENT.CAPTURE.DENIED<\/code>, <code>PAYMENT.CAPTURE.REFUNDED<\/code> and <code>PAYMENT.AUTHORIZATION.VOIDED<\/code>. Copy the webhook&#8217;s ID into Webhook ID.<\/li><li><strong>Square:<\/strong> <code>\u2026\/wp-json\/noyajet\/v1\/webhooks\/square<\/code> with the <code>payment.updated<\/code> and <code>refund.updated<\/code> events (add <code>dispute.created<\/code> if offered). Copy the signature key into Webhook signature key.<\/li><\/ul>\n<p class=\"wp-block-paragraph\"><strong>Square<\/strong> charges only in the currency of your Square location, which <strong>Test connection<\/strong> shows. <strong>WooCommerce<\/strong> sends the customer to a WooCommerce checkout, so any WooCommerce payment plugin works; the WooCommerce store currency must match your site currency, and WooCommerce payments cannot be card holds. <strong>Demo payments<\/strong> is for demo sites only: it completes payments without charging anything, and customers see it labelled as a demo.<\/p>\n<p class=\"wp-block-paragraph\">Set your site currency under <strong>Settings \u2192 General<\/strong>. Prices, estimates, empty legs and invoices all use it.<\/p>\n<h2 class=\"wp-block-heading\">How customers book<\/h2>\n<ul class=\"wp-block-list\"><li><strong>Reserve with a card hold.<\/strong> On the booking form the customer chooses an aircraft, sees the estimate and, on the last step, picks <strong>Reserve now with a card hold<\/strong> and accepts the booking terms. They go straight to their booking page, where their card is authorised for the deposit (or the full estimate). Nothing is charged until you capture the hold.<\/li><li><strong>Send a request, then pay a quote.<\/strong> Customers who choose <strong>Send as a request<\/strong>, or use <strong>Get a quote<\/strong>, send their trip without paying. You set the price and send a payment link; the customer pays a deposit or the full price, then the balance.<\/li><li><strong>Book an empty leg.<\/strong> Empty legs with a price, an aircraft, a future date and <strong>Availability: available<\/strong> (and <strong>Sample route<\/strong> unticked) show <strong>Book this flight<\/strong>. The leg is held for the customer while they pay, at the fixed price for the whole aircraft.<\/li><\/ul>\n<p class=\"wp-block-paragraph\">Every customer receives a private link to <strong>Your booking<\/strong>, where they see the status, pay, download invoices and ask to cancel. Signed-in customers also find their bookings in <strong>My requests<\/strong>.<\/p>\n<h2 class=\"wp-block-heading\">The NoyaJet admin panel<\/h2>\n<p class=\"wp-block-paragraph\">Everything for the booking system is under the <strong>NoyaJet<\/strong> menu in the WordPress admin. A number badge on the menu shows how many new requests are waiting.<\/p>\n<figure class=\"wp-block-table\"><table><thead><tr><th>Menu item<\/th><th>What it&#8217;s for<\/th><\/tr><\/thead><tbody><tr><td><strong>Dashboard<\/strong><\/td><td>New requests, card holds to confirm, money received in the last 30 days, open quote value, pipeline by status and type, latest requests, upcoming departures, catalogue totals and a setup checklist<\/td><\/tr><tr><td><strong>Requests<\/strong><\/td><td>Every booking, quote enquiry, empty-leg booking and contact message, with price and payment status. Tabs by status, filters by type and month, search, bulk status changes and <strong>Export CSV<\/strong><\/td><\/tr><tr><td><strong>Aircraft<\/strong><\/td><td>Aircraft categories with their details and hourly rates<\/td><\/tr><tr><td><strong>Destinations<\/strong><\/td><td>Destinations with country, region and arrival airport<\/td><\/tr><tr><td><strong>Services<\/strong><\/td><td>Services and their section labels<\/td><\/tr><tr><td><strong>Empty legs<\/strong><\/td><td>Empty-leg routes with aircraft, price, date and availability<\/td><\/tr><tr><td><strong>Settings<\/strong><\/td><td>General (alerts, currency, sender), Pricing, Payments, Company &amp; invoices<\/td><\/tr><tr><td><strong>Demo setup<\/strong><\/td><td>Import or re-run the demo website (needs an active licence)<\/td><\/tr><tr><td><strong>Licence &amp; setup<\/strong><\/td><td>Opens NoyaJet Setup: licence status, plugin version and demo import<\/td><\/tr><\/tbody><\/table><\/figure>\n<p class=\"wp-block-paragraph\">Administrators see everything. Editors can manage the catalogue (Aircraft, Destinations, Services, Empty legs) but not requests, payments or settings. A <strong>NoyaJet requests<\/strong> widget also appears on the main WordPress Dashboard for administrators.<\/p>\n<h3 class=\"wp-block-heading\">Booking statuses<\/h3>\n<figure class=\"wp-block-table\"><table><thead><tr><th>Status<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><strong>Received<\/strong><\/td><td>New request, not yet reviewed. Counted in the menu badge<\/td><\/tr><tr><td><strong>Under review<\/strong><\/td><td>You are working on it<\/td><\/tr><tr><td><strong>Quote prepared<\/strong><\/td><td>You have set a price; the customer can pay it<\/td><\/tr><tr><td><strong>Awaiting payment<\/strong><\/td><td>The customer chose to pay online and has not finished yet. Unpaid checkouts expire after the payment window<\/td><\/tr><tr><td><strong>Card hold placed<\/strong><\/td><td>The customer&#8217;s card is authorised. Capture or release the hold<\/td><\/tr><tr><td><strong>Confirmed<\/strong><\/td><td>Paid (deposit or full) and confirmed<\/td><\/tr><tr><td><strong>Completed<\/strong><\/td><td>The flight has taken place<\/td><\/tr><tr><td><strong>Closed<\/strong><\/td><td>Finished without further action<\/td><\/tr><tr><td><strong>Cancelled<\/strong><\/td><td>Cancelled by you. The customer is emailed, card holds are released and an empty leg goes back on sale<\/td><\/tr><tr><td><strong>Payment not completed<\/strong><\/td><td>The checkout expired without payment<\/td><\/tr><tr><td><strong>Withdrawn<\/strong><\/td><td>The customer withdrew an unpaid request<\/td><\/tr><\/tbody><\/table><\/figure>\n<h3 class=\"wp-block-heading\">Managing bookings and payments<\/h3>\n<p class=\"wp-block-paragraph\">Open <strong>NoyaJet \u2192 Requests<\/strong> and click a reference (for example <strong>NJ-\u2026<\/strong>).<\/p>\n<ul class=\"wp-block-list\"><li><strong>Request overview<\/strong> shows the customer, trip, guests, aircraft, extras, the itinerary with local and UTC times, and their notes.<\/li><li><strong>Status &amp; quote:<\/strong> choose a status, enter the <strong>Quote<\/strong> amount and a <strong>Note to customer<\/strong>, then click <strong>Update request<\/strong>. The quote becomes the price the customer pays online. The currency is fixed once a booking has payments.<\/li><li><strong>Price &amp; payments:<\/strong><ul class=\"wp-block-list\"><li>The summary shows the price, the amount paid, the balance due and the payment status.<\/li><li><strong>Price estimate<\/strong> shows how the online estimate was built. <strong>Use this estimate as the quote<\/strong> copies it into the quote field.<\/li><li><strong>Card hold:<\/strong> enter the amount and click <strong>Capture<\/strong> to charge the card (up to the amount held), or <strong>Release<\/strong> to cancel the hold. Holds are released automatically before they expire.<\/li><li><strong>Mark transfer received<\/strong> settles a bank transfer. <strong>Record a payment<\/strong> records money received another way (transfer, cash, card terminal).<\/li><li><strong>Refund<\/strong> sends money back through the original payment method; bank transfers and recorded payments are marked refunded for you to pay back yourself.<\/li><li><strong>Email payment link<\/strong> sends the customer a link to pay a deposit, the full price or the balance. <strong>Create a link to copy<\/strong> gives you a fresh private link to the booking page.<\/li><li><strong>Invoice (PDF)<\/strong> and the list of emails sent are at the bottom.<\/li><\/ul><\/li><\/ul>\n<p class=\"wp-block-paragraph\">The <strong>Activity<\/strong> box records every status, price, payment and note change with the time and the person who made it. <strong>Customer history<\/strong> lists other requests from the same email address.<\/p>\n<h3 class=\"wp-block-heading\">Emails and invoices<\/h3>\n<p class=\"wp-block-paragraph\">Customers are emailed when their request is received, when a card hold is placed or released, for every payment (with receipt), with bank transfer details, for refunds and cancellations, and when you send a payment link. You are emailed about new card holds, payments, bank transfers chosen, cancellation requests and disputes. Set the sender name and address under <strong>Settings \u2192 General<\/strong>.<\/p>\n<p class=\"wp-block-paragraph\">Invoices are numbered without gaps (for example NJ-2026-000001). Add your company name, address, tax number and footer under <strong>Settings \u2192 Company &amp; invoices<\/strong>.<\/p>\n<h3 class=\"wp-block-heading\">Exporting requests<\/h3>\n<p class=\"wp-block-paragraph\">On <strong>NoyaJet \u2192 Requests<\/strong>, filter or search the list, then click <strong>Export CSV<\/strong>. The file contains the requests in the current view, with customer details, itinerary, preferences, message, status, quote and notes. It opens in Excel and Google Sheets.<\/p>\n<h2 class=\"wp-block-heading\">Test a booking<\/h2>\n<p class=\"wp-block-paragraph\">Use <strong>Demo payments<\/strong> or your providers&#8217; test keys. Never test with a real card.<\/p>\n<ol class=\"wp-block-list\"><li>Under <strong>Settings \u2192 Payments<\/strong>, tick <strong>Demo payments<\/strong> (or a provider in Test mode) and <strong>Bank transfer<\/strong>, and turn on <strong>Card holds<\/strong>.<\/li><li>Open <strong>Plan a flight<\/strong>. Search for two airports, choose a future date and the number of guests.<\/li><li>On <strong>Your aircraft<\/strong>, each aircraft shows its price for the trip. Choose one.<\/li><li>Enter sample contact details and accept the privacy notice.<\/li><li>On the review step, choose <strong>Reserve now with a card hold<\/strong>, accept the booking terms and continue. On the booking page, place the hold.<\/li><li>In the WordPress admin, open <strong>NoyaJet \u2192 Requests<\/strong> and the new booking. The dashboard shows a card hold to confirm.<\/li><li>In <strong>Price &amp; payments<\/strong>, click <strong>Capture<\/strong>. The booking becomes <strong>Confirmed<\/strong>, the customer receives a receipt and an invoice is available.<\/li><li>Click <strong>Email payment link<\/strong> for the balance, open the link from the email and pay by <strong>bank transfer<\/strong>. Back in the admin, click <strong>Mark transfer received<\/strong>.<\/li><li>Try a partial <strong>Refund<\/strong>, and check the emails in your mail catcher.<\/li><\/ol>\n<p class=\"wp-block-paragraph\">Also test <strong>Get a quote<\/strong> (set a price, send a payment link, pay a deposit), an empty leg (untick <strong>Sample route<\/strong>, set a price, an aircraft, a future date and Availability <strong>available<\/strong>), and <strong>Contact<\/strong>. Turn <strong>Demo payments<\/strong> off before launch.<\/p>\n<h2 class=\"wp-block-heading\">Edit the design and content<\/h2>\n<figure class=\"wp-block-table\"><table><thead><tr><th>Change<\/th><th>Where to edit<\/th><\/tr><\/thead><tbody><tr><td>Logo and site identity<\/td><td>Appearance \u2192 Customize \u2192 Site Identity<\/td><\/tr><tr><td>Homepage hero text, hero image and top-bar notice<\/td><td>Appearance \u2192 Customize \u2192 NoyaJet homepage<\/td><\/tr><tr><td>Navigation<\/td><td>Appearance \u2192 Menus \u2192 Primary navigation (used by the desktop header and the phone menu)<\/td><\/tr><tr><td>Aircraft<\/td><td>NoyaJet \u2192 Aircraft \u2192 select an item; edit body, featured image and NoyaJet details<\/td><\/tr><tr><td>Destinations, services and empty legs<\/td><td>NoyaJet \u2192 Destinations, Services or Empty legs<\/td><\/tr><tr><td>Alerts, currency, pricing, payments and invoices<\/td><td>NoyaJet \u2192 Settings<\/td><\/tr><tr><td>About, FAQ, privacy, terms and form pages<\/td><td>Pages \u2192 select the page<\/td><\/tr><tr><td>Journal<\/td><td>Posts<\/td><\/tr><tr><td>Fixed homepage sections and detailed layout changes<\/td><td>Theme PHP templates; use a child theme for ongoing customization<\/td><\/tr><\/tbody><\/table><\/figure>\n<p class=\"wp-block-paragraph\">Keep the supplied shortcodes on their pages:<\/p>\n<ul class=\"wp-block-list\"><li><code>    <section class=\"njb-root booking-page\" id=\"njb-1\">\n      <div class=\"booking-title\"><div><span class=\"eyebrow\">YOUR JOURNEY STARTS HERE<\/span><h1>Make it <em>your journey.<\/em><\/h1><p>Plan your route, see an instant price estimate and choose your aircraft.<\/p><\/div><span class=\"booking-badge\">Live pricing \u00b7 reserve online<\/span><\/div>\n      <ol class=\"booking-progress\" aria-label=\"Booking progress\"><li class=\"current\" aria-current=\"step\"><span><b>1<\/b> Your itinerary<\/span><\/li><li><span><b>2<\/b> Your aircraft<\/span><\/li><li><span><b>3<\/b> Your details<\/span><\/li><li><span><b>4<\/b> Review &amp; reserve<\/span><\/li><\/ol>\n      <div class=\"booking-layout\"><form class=\"booking-form njb-form\" data-kind=\"booking\" novalidate>\n        <div class=\"njb-error error\" role=\"alert\" tabindex=\"-1\" hidden><\/div>\n        <section class=\"njb-step\" data-step=\"0\"><span class=\"eyebrow\">01 \/ YOUR ITINERARY<\/span><h2>Where shall we <em>go?<\/em><\/h2><p class=\"form-intro\">Departure times are local to each origin airport.<\/p>\n          <fieldset class=\"njb-trip\"><legend class=\"sr-only\">Trip type<\/legend><label><input type=\"radio\" name=\"trip\" value=\"one-way\"  checked='checked'><span>One way<\/span><\/label><label><input type=\"radio\" name=\"trip\" value=\"round-trip\" ><span>Round trip<\/span><\/label><label><input type=\"radio\" name=\"trip\" value=\"multi-city\" ><span>Multi-city<\/span><\/label><\/fieldset>\n          <div class=\"njb-legs\"><\/div><button type=\"button\" class=\"btn outline njb-add-leg\" hidden>Add another flight +<\/button>\n          <div class=\"field passenger-field\"><label>Number of guests<select name=\"passengers\" class=\"noya-select\"><option value=\"1\" >1 guest<\/option><option value=\"2\"  selected='selected'>2 guests<\/option><option value=\"3\" >3 guests<\/option><option value=\"4\" >4 guests<\/option><option value=\"5\" >5 guests<\/option><option value=\"6\" >6 guests<\/option><option value=\"7\" >7 guests<\/option><option value=\"8\" >8 guests<\/option><option value=\"9\" >9 guests<\/option><option value=\"10\" >10 guests<\/option><option value=\"11\" >11 guests<\/option><option value=\"12\" >12 guests<\/option><option value=\"13\" >13 guests<\/option><option value=\"14\" >14 guests<\/option><option value=\"15\" >15 guests<\/option><option value=\"16\" >16 guests<\/option><option value=\"17\" >17 guests<\/option><option value=\"18\" >18 guests<\/option><option value=\"19\" >19 guests<\/option><\/select><\/label><\/div>\n          <p class=\"note\">Search more than 7,900 airports by city, airport name or code. Can\u2019t find yours? <a class=\"text-link\" href=\"https:\/\/demo.codersnoyan.com\/noyajet\/contact\/\">Contact us<\/a>.<\/p>\n        <\/section>\n        <section class=\"njb-step\" data-step=\"1\" hidden><span class=\"eyebrow\">02 \/ YOUR AIRCRAFT<\/span><h2>Make yourself <em>comfortable.<\/em><\/h2><p class=\"form-intro\">Prices update for your route, dates and group. Choose an aircraft or let the charter team guide you.<\/p>\n          <fieldset class=\"njb-aircraft\"><legend class=\"sr-only\">Aircraft<\/legend><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"\" data-seats=\"19\" checked><span class=\"ac-body\"><span class=\"ac-media ac-any\" aria-hidden=\"true\">\u2726<\/span><span class=\"ac-text\"><strong>Help me choose<\/strong><span class=\"ac-meta\">The team suggests the best fit for your trip<\/span><\/span><span class=\"ac-price\" data-price=\"\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"light-jet\" data-seats=\"6\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/jet-hero-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Light Jet<\/strong><span class=\"ac-meta\">Up to 6 guests \u00b7 2,000 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"light-jet\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"midsize-jet\" data-seats=\"8\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/jet-flight-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Midsize Jet<\/strong><span class=\"ac-meta\">Up to 8 guests \u00b7 3,000 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"midsize-jet\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"super-midsize-jet\" data-seats=\"9\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/cabin-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Super Midsize Jet<\/strong><span class=\"ac-meta\">Up to 9 guests \u00b7 3,800 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"super-midsize-jet\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"heavy-jet\" data-seats=\"12\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/jet-flight-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Heavy Jet<\/strong><span class=\"ac-meta\">Up to 12 guests \u00b7 4,500 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"heavy-jet\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"ultra-long-range\" data-seats=\"14\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/jet-hero-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Ultra Long Range<\/strong><span class=\"ac-meta\">Up to 14 guests \u00b7 6,000 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"ultra-long-range\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"executive-turboprop\" data-seats=\"6\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/cabin-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Executive Turboprop<\/strong><span class=\"ac-meta\">Up to 6 guests \u00b7 1,200 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"executive-turboprop\"><\/span><\/span><\/label><\/fieldset>\n          <h3 class=\"subheading\">A few thoughtful details<\/h3><div class=\"extras-grid\"><label class=\"njb-check\"><input type=\"checkbox\" name=\"extras[]\" value=\"Catering\"><span>Catering<\/span><\/label><label class=\"njb-check\"><input type=\"checkbox\" name=\"extras[]\" value=\"Ground transfer\"><span>Ground transfer<\/span><\/label><label class=\"njb-check\"><input type=\"checkbox\" name=\"extras[]\" value=\"Travelling with pets\"><span>Travelling with pets<\/span><\/label><label class=\"njb-check\"><input type=\"checkbox\" name=\"extras[]\" value=\"Accessibility assistance\"><span>Accessibility assistance<\/span><\/label><\/div>\n          <div class=\"field\"><label>Anything else we should know?<textarea name=\"notes\" rows=\"4\" maxlength=\"4000\" placeholder=\"Luggage, dietary preferences or the details that matter to you.\"><\/textarea><\/label><\/div><p class=\"note\">Preferences are subject to the specific aircraft and operator\u2019s confirmation.<\/p>\n        <\/section>\n        <section class=\"njb-step\" data-step=\"2\" hidden><span class=\"eyebrow\">03 \/ YOUR DETAILS<\/span><h2>Let\u2019s keep in <em>touch.<\/em><\/h2><p class=\"form-intro\">Tell us how the team can follow up on your enquiry.<\/p><div class=\"form-grid\"><div class=\"field\"><label>Full name<input type=\"text\" name=\"name\" value=\"\" required autocomplete=\"name\" maxlength=\"100\"><\/label><\/div><div class=\"field\"><label>Email address<input type=\"email\" name=\"email\" value=\"\" required autocomplete=\"email\" maxlength=\"254\"><\/label><\/div><div class=\"field\"><label>Phone (optional)<input type=\"tel\" name=\"phone\" value=\"\"  autocomplete=\"tel\" maxlength=\"50\"><\/label><\/div><\/div><label class=\"njb-check consent\"><input name=\"consent\" type=\"checkbox\" required><span>I agree to the <a href=\"https:\/\/demo.codersnoyan.com\/noyajet\/privacy\/\" target=\"_blank\" rel=\"noopener\">privacy notice<\/a> and understand this is a request, not a confirmed flight.<\/span><\/label><div class=\"honeypot\" aria-hidden=\"true\"><label>Website<input name=\"website\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\"><\/label><\/div><p class=\"note\">You will get a private link to follow your booking. Sign in first if you also want it in My requests.<\/p><\/section>\n        <section class=\"njb-step\" data-step=\"3\" hidden><span class=\"eyebrow\">04 \/ REVIEW &amp; RESERVE<\/span><h2>Everything <em>in order?<\/em><\/h2><p class=\"form-intro\">Take a moment to check your itinerary and contact details.<\/p><div class=\"njb-review\"><\/div><div class=\"njb-flow\" hidden><\/div><div class=\"info-banner\"><p class=\"njb-banner\">Your request does not reserve an aircraft. A separate quote, agreement and operator confirmation are required before travel.<\/p><\/div><\/section>\n        <div class=\"form-actions\"><button type=\"button\" class=\"btn outline njb-back\" hidden>Back<\/button><button type=\"button\" class=\"btn njb-next\">Continue <span aria-hidden=\"true\">\u2197<\/span><\/button><button type=\"submit\" class=\"btn njb-submit\" hidden><span class=\"njb-submit-label\">Send booking request<\/span> <span aria-hidden=\"true\">\u2197<\/span><\/button><\/div>\n        <noscript><p class=\"error\">Please enable JavaScript to complete this form.<\/p><\/noscript>\n      <\/form><aside class=\"journey-summary\"><div class=\"summary-image\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/themes\/noyajet\/assets\/cabin.webp\" alt=\"Private cabin concept\"><span>A JOURNEY SHAPED AROUND YOU<\/span><\/div><div class=\"summary-content\"><span class=\"eyebrow\">YOUR FLIGHT AT A GLANCE<\/span><h3>A little more <em>possibility.<\/em><\/h3><div class=\"njb-summary\" aria-live=\"polite\"><\/div><p class=\"note\">Estimates include flight time, positioning, fees and season. Your final price is confirmed before any charge.<\/p><\/div><\/aside><\/div>\n    <\/section><\/code> booking form<\/li><li><code>    <section class=\"njb-root booking-page\" id=\"njb-2\">\n      <div class=\"booking-title\"><div><span class=\"eyebrow\">A QUOTE, SHAPED AROUND YOU<\/span><h1>A more personal <em>quote.<\/em><\/h1><p>Plan your route, see an instant price estimate and choose your aircraft.<\/p><\/div><span class=\"booking-badge\">Instant price estimate<\/span><\/div>\n      <ol class=\"booking-progress\" aria-label=\"Booking progress\"><li class=\"current\" aria-current=\"step\"><span><b>1<\/b> Your itinerary<\/span><\/li><li><span><b>2<\/b> Your aircraft<\/span><\/li><li><span><b>3<\/b> Your details<\/span><\/li><li><span><b>4<\/b> Review &amp; send<\/span><\/li><\/ol>\n      <div class=\"booking-layout\"><form class=\"booking-form njb-form\" data-kind=\"quote\" novalidate>\n        <div class=\"njb-error error\" role=\"alert\" tabindex=\"-1\" hidden><\/div>\n        <section class=\"njb-step\" data-step=\"0\"><span class=\"eyebrow\">01 \/ YOUR ITINERARY<\/span><h2>Where shall we <em>go?<\/em><\/h2><p class=\"form-intro\">Departure times are local to each origin airport.<\/p>\n          <fieldset class=\"njb-trip\"><legend class=\"sr-only\">Trip type<\/legend><label><input type=\"radio\" name=\"trip\" value=\"one-way\"  checked='checked'><span>One way<\/span><\/label><label><input type=\"radio\" name=\"trip\" value=\"round-trip\" ><span>Round trip<\/span><\/label><label><input type=\"radio\" name=\"trip\" value=\"multi-city\" ><span>Multi-city<\/span><\/label><\/fieldset>\n          <div class=\"njb-legs\"><\/div><button type=\"button\" class=\"btn outline njb-add-leg\" hidden>Add another flight +<\/button>\n          <div class=\"field passenger-field\"><label>Number of guests<select name=\"passengers\" class=\"noya-select\"><option value=\"1\" >1 guest<\/option><option value=\"2\"  selected='selected'>2 guests<\/option><option value=\"3\" >3 guests<\/option><option value=\"4\" >4 guests<\/option><option value=\"5\" >5 guests<\/option><option value=\"6\" >6 guests<\/option><option value=\"7\" >7 guests<\/option><option value=\"8\" >8 guests<\/option><option value=\"9\" >9 guests<\/option><option value=\"10\" >10 guests<\/option><option value=\"11\" >11 guests<\/option><option value=\"12\" >12 guests<\/option><option value=\"13\" >13 guests<\/option><option value=\"14\" >14 guests<\/option><option value=\"15\" >15 guests<\/option><option value=\"16\" >16 guests<\/option><option value=\"17\" >17 guests<\/option><option value=\"18\" >18 guests<\/option><option value=\"19\" >19 guests<\/option><\/select><\/label><\/div>\n          <p class=\"note\">Search more than 7,900 airports by city, airport name or code. Can\u2019t find yours? <a class=\"text-link\" href=\"https:\/\/demo.codersnoyan.com\/noyajet\/contact\/\">Contact us<\/a>.<\/p>\n        <\/section>\n        <section class=\"njb-step\" data-step=\"1\" hidden><span class=\"eyebrow\">02 \/ YOUR AIRCRAFT<\/span><h2>Make yourself <em>comfortable.<\/em><\/h2><p class=\"form-intro\">Prices update for your route, dates and group. Choose an aircraft or let the charter team guide you.<\/p>\n          <fieldset class=\"njb-aircraft\"><legend class=\"sr-only\">Aircraft<\/legend><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"\" data-seats=\"19\" checked><span class=\"ac-body\"><span class=\"ac-media ac-any\" aria-hidden=\"true\">\u2726<\/span><span class=\"ac-text\"><strong>Help me choose<\/strong><span class=\"ac-meta\">The team suggests the best fit for your trip<\/span><\/span><span class=\"ac-price\" data-price=\"\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"light-jet\" data-seats=\"6\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/jet-hero-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Light Jet<\/strong><span class=\"ac-meta\">Up to 6 guests \u00b7 2,000 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"light-jet\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"midsize-jet\" data-seats=\"8\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/jet-flight-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Midsize Jet<\/strong><span class=\"ac-meta\">Up to 8 guests \u00b7 3,000 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"midsize-jet\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"super-midsize-jet\" data-seats=\"9\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/cabin-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Super Midsize Jet<\/strong><span class=\"ac-meta\">Up to 9 guests \u00b7 3,800 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"super-midsize-jet\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"heavy-jet\" data-seats=\"12\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/jet-flight-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Heavy Jet<\/strong><span class=\"ac-meta\">Up to 12 guests \u00b7 4,500 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"heavy-jet\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"ultra-long-range\" data-seats=\"14\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/jet-hero-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Ultra Long Range<\/strong><span class=\"ac-meta\">Up to 14 guests \u00b7 6,000 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"ultra-long-range\"><\/span><\/span><\/label><label class=\"ac-card\"><input type=\"radio\" name=\"aircraft\" value=\"executive-turboprop\" data-seats=\"6\"><span class=\"ac-body\"><span class=\"ac-media\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/uploads\/2026\/09\/cabin-300x169.webp\" alt=\"\" loading=\"lazy\"><\/span><span class=\"ac-text\"><strong>Executive Turboprop<\/strong><span class=\"ac-meta\">Up to 6 guests \u00b7 1,200 nm range<\/span><\/span><span class=\"ac-price\" data-price=\"executive-turboprop\"><\/span><\/span><\/label><\/fieldset>\n          <h3 class=\"subheading\">A few thoughtful details<\/h3><div class=\"extras-grid\"><label class=\"njb-check\"><input type=\"checkbox\" name=\"extras[]\" value=\"Catering\"><span>Catering<\/span><\/label><label class=\"njb-check\"><input type=\"checkbox\" name=\"extras[]\" value=\"Ground transfer\"><span>Ground transfer<\/span><\/label><label class=\"njb-check\"><input type=\"checkbox\" name=\"extras[]\" value=\"Travelling with pets\"><span>Travelling with pets<\/span><\/label><label class=\"njb-check\"><input type=\"checkbox\" name=\"extras[]\" value=\"Accessibility assistance\"><span>Accessibility assistance<\/span><\/label><\/div>\n          <div class=\"field\"><label>Anything else we should know?<textarea name=\"notes\" rows=\"4\" maxlength=\"4000\" placeholder=\"Luggage, dietary preferences or the details that matter to you.\"><\/textarea><\/label><\/div><p class=\"note\">Preferences are subject to the specific aircraft and operator\u2019s confirmation.<\/p>\n        <\/section>\n        <section class=\"njb-step\" data-step=\"2\" hidden><span class=\"eyebrow\">03 \/ YOUR DETAILS<\/span><h2>Let\u2019s keep in <em>touch.<\/em><\/h2><p class=\"form-intro\">Tell us how the team can follow up on your enquiry.<\/p><div class=\"form-grid\"><div class=\"field\"><label>Full name<input type=\"text\" name=\"name\" value=\"\" required autocomplete=\"name\" maxlength=\"100\"><\/label><\/div><div class=\"field\"><label>Email address<input type=\"email\" name=\"email\" value=\"\" required autocomplete=\"email\" maxlength=\"254\"><\/label><\/div><div class=\"field\"><label>Phone (optional)<input type=\"tel\" name=\"phone\" value=\"\"  autocomplete=\"tel\" maxlength=\"50\"><\/label><\/div><\/div><label class=\"njb-check consent\"><input name=\"consent\" type=\"checkbox\" required><span>I agree to the <a href=\"https:\/\/demo.codersnoyan.com\/noyajet\/privacy\/\" target=\"_blank\" rel=\"noopener\">privacy notice<\/a> and understand this is a request, not a confirmed flight.<\/span><\/label><div class=\"honeypot\" aria-hidden=\"true\"><label>Website<input name=\"website\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\"><\/label><\/div><p class=\"note\">You will get a private link to follow your booking. Sign in first if you also want it in My requests.<\/p><\/section>\n        <section class=\"njb-step\" data-step=\"3\" hidden><span class=\"eyebrow\">04 \/ REVIEW &amp; SEND<\/span><h2>Everything <em>in order?<\/em><\/h2><p class=\"form-intro\">Take a moment to check your itinerary and contact details.<\/p><div class=\"njb-review\"><\/div><div class=\"njb-flow\" hidden><\/div><div class=\"info-banner\"><p class=\"njb-banner\">Your request does not reserve an aircraft. A separate quote, agreement and operator confirmation are required before travel.<\/p><\/div><\/section>\n        <div class=\"form-actions\"><button type=\"button\" class=\"btn outline njb-back\" hidden>Back<\/button><button type=\"button\" class=\"btn njb-next\">Continue <span aria-hidden=\"true\">\u2197<\/span><\/button><button type=\"submit\" class=\"btn njb-submit\" hidden><span class=\"njb-submit-label\">Request my quote<\/span> <span aria-hidden=\"true\">\u2197<\/span><\/button><\/div>\n        <noscript><p class=\"error\">Please enable JavaScript to complete this form.<\/p><\/noscript>\n      <\/form><aside class=\"journey-summary\"><div class=\"summary-image\"><img decoding=\"async\" src=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-content\/themes\/noyajet\/assets\/cabin.webp\" alt=\"Private cabin concept\"><span>A JOURNEY SHAPED AROUND YOU<\/span><\/div><div class=\"summary-content\"><span class=\"eyebrow\">YOUR FLIGHT AT A GLANCE<\/span><h3>A little more <em>possibility.<\/em><\/h3><div class=\"njb-summary\" aria-live=\"polite\"><\/div><p class=\"note\">Estimates include flight time, positioning, fees and season. Your final price is confirmed before any charge.<\/p><\/div><\/aside><\/div>\n    <\/section><\/code> quote enquiry<\/li><li><code><div class=\"njb-root contact-layout\"><div class=\"contact-copy\"><span class=\"eyebrow\">LET\u2019S START A CONVERSATION<\/span><h2>A small detail.<br\/>A big <em>possibility.<\/em><\/h2><p>Have a question about a route, an aircraft or a special request? Tell us what you have in mind.<\/p><div class=\"contact-options\"><a href=\"https:\/\/demo.codersnoyan.com\/noyajet\/booking\/\"><div><h3>Plan a flight<\/h3><p>Build an itinerary around your schedule.<\/p><\/div><span>\u2197<\/span><\/a><a href=\"https:\/\/demo.codersnoyan.com\/noyajet\/quote\/\"><div><h3>Request a quote<\/h3><p>Explore the right option for your journey.<\/p><\/div><span>\u2197<\/span><\/a><\/div><p class=\"note\">Messages are saved for the site administrator. Please do not include passports, payment details or sensitive documents.<\/p><\/div><form class=\"njb-form contact-form-card\" data-kind=\"contact\" novalidate><span class=\"eyebrow\">HOW CAN WE HELP?<\/span><h3>Leave us a message.<\/h3><p class=\"form-intro\">We\u2019ll keep the details together.<\/p><div class=\"njb-error error\" role=\"alert\" tabindex=\"-1\" hidden><\/div><div class=\"form-grid\"><div class=\"field\"><label>Your name<input type=\"text\" name=\"name\" value=\"\" required autocomplete=\"name\" maxlength=\"100\"><\/label><\/div><div class=\"field\"><label>Email address<input type=\"email\" name=\"email\" value=\"\" required autocomplete=\"email\" maxlength=\"254\"><\/label><\/div><div class=\"field\"><label>Phone (optional)<input type=\"tel\" name=\"phone\" value=\"\"  autocomplete=\"tel\" maxlength=\"50\"><\/label><\/div><div class=\"field\"><label>Subject<input type=\"text\" name=\"subject\" value=\"\"  ><\/label><\/div><div class=\"field full\"><label>Your message<textarea name=\"notes\" rows=\"5\" minlength=\"10\" maxlength=\"4000\" required><\/textarea><\/label><\/div><\/div><label class=\"njb-check consent\"><input name=\"consent\" type=\"checkbox\" required><span>I agree to the <a href=\"https:\/\/demo.codersnoyan.com\/noyajet\/privacy\/\" target=\"_blank\" rel=\"noopener\">privacy notice<\/a> and understand this is a request, not a confirmed flight.<\/span><\/label><div class=\"honeypot\" aria-hidden=\"true\"><label>Website<input name=\"website\" type=\"text\" tabindex=\"-1\" autocomplete=\"off\"><\/label><\/div><button type=\"submit\" class=\"btn njb-submit\">Send message <span aria-hidden=\"true\">\u2197<\/span><\/button><noscript><p>Please enable JavaScript to send this form.<\/p><\/noscript><\/form><\/div>\n<\/code> contact form<\/li><li><code><div class=\"njb-root empty-state\"><h3>Your journeys, in one place.<\/h3><p>Sign in to view requests submitted while signed in to this WordPress account. Guest enquiries remain available to the administrator.<\/p><a class=\"btn\" href=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-login.php?redirect_to=https%3A%2F%2Fdemo.codersnoyan.com%2Fnoyajet%2Frequests%2F\">Sign in<\/a><\/div><\/code> My requests<\/li><li><code><div class=\"njb-root empty-state njb-booking-missing\"><h3>We couldn\u2019t open this booking.<\/h3><p>The link may be incomplete or out of date. Use the most recent link from your email, or sign in to see your requests.<\/p><a class=\"btn\" href=\"https:\/\/demo.codersnoyan.com\/noyajet\/wp-login.php?redirect_to=https%3A%2F%2Fdemo.codersnoyan.com%2Fnoyajet%2Frequests%2F\">Sign in \u2197<\/a> <a class=\"btn outline\" href=\"https:\/\/demo.codersnoyan.com\/noyajet\/contact\/\">Contact us<\/a><\/div><\/code> Your booking (the customer booking page)<\/li><\/ul>\n<p class=\"wp-block-paragraph\"><strong>NoyaJet \u2192 Settings<\/strong> shows which page holds each shortcode, and the Dashboard&#8217;s setup checklist warns if one is missing. The forms also work in other themes, with the plugin&#8217;s own responsive styles. The complete catalogue design requires NoyaJet.<\/p>\n<h2 class=\"wp-block-heading\">Email and local testing<\/h2>\n<p class=\"wp-block-paragraph\">Customer emails are on by default and admin alerts are off by default. Configure SMTP (or your host&#8217;s mail) so emails arrive, then turn on <strong>Email me about new requests, card holds and payments<\/strong> under <strong>NoyaJet \u2192 Settings \u2192 General<\/strong>. A mail function reporting success does not guarantee delivery; send yourself a test booking.<\/p>\n<p class=\"wp-block-paragraph\">On LocalWP, outgoing email is caught by Mailpit. Open it from your site&#8217;s <strong>Tools<\/strong> tab in Local.<\/p>\n<p class=\"wp-block-paragraph\">No email is sent by the demo importer. No test users, requests, passwords, payment keys or database dump are included in the installation ZIPs.<\/p>\n<h2 class=\"wp-block-heading\">Scope and launch requirements<\/h2>\n<p class=\"wp-block-paragraph\">NoyaJet takes bookings and payments for the flights you arrange. It does not check live aircraft availability with operators, dispatch flights or issue a charter contract. Estimates are guides: confirm the aircraft and final price with the operator before you capture a card hold.<\/p>\n<p class=\"wp-block-paragraph\">Before taking real bookings:<\/p>\n<ul class=\"wp-block-list\"><li>Replace the demonstration <strong>Booking terms<\/strong> and <strong>Privacy<\/strong> pages with your own. They are drafts, not legal advice. Selling charter flights may need a licence or an operator agreement where you trade.<\/li><li>Enter your company details for invoices.<\/li><li>Set real hourly rates and pricing rules, and check the preview table.<\/li><li>Test every payment method in test or sandbox mode, including webhooks, then switch to live keys.<\/li><li>Turn off <strong>Demo payments<\/strong>. Change the <strong>top-bar notice<\/strong> (Customizer \u2192 NoyaJet homepage), which says this is a demo website.<\/li><li>Mark your real empty legs as not samples, and keep sample routes or delete them.<\/li><li>Configure email delivery and backups, and serve the site over HTTPS.<\/li><\/ul>\n<p class=\"wp-block-paragraph\">Do not cache the <strong>Booking<\/strong>, <strong>Quote<\/strong>, <strong>Contact<\/strong>, <strong>My requests<\/strong> or <strong>Your booking<\/strong> pages. The plugin sends no-cache headers on these pages, but cache\/CDN exclusions should also be configured.<\/p>\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n<ul class=\"wp-block-list\"><li><strong>\u201cMissing style.css\u201d during upload:<\/strong> upload <code>noyajet-1.3.0.zip<\/code> under Appearance \u2192 Themes, not under Plugins, and not a ZIP that contains other ZIP files.<\/li><li><strong>NoyaJet Booking will not activate after the update:<\/strong> your server runs PHP older than 8.1. Ask your host to switch to PHP 8.1 or newer.<\/li><li><strong>\u201cThat licence key is not valid for this product\u201d:<\/strong> copy the key again from your purchase email or account, without extra spaces. A key only works for the product it was bought for.<\/li><li><strong>\u201cThis licence is already in use on all of its allowed sites\u201d:<\/strong> release it from a site you no longer use (NoyaJet Setup \u2192 Release this site, or from your account), or upgrade your plan.<\/li><li><strong>\u201cThe membership behind this licence is not active\u201d:<\/strong> renew your plan on codersnoyan.com. Your website keeps working meanwhile.<\/li><li><strong>\u201cThe store could not be reached\u201d:<\/strong> your server could not connect to codersnoyan.com. Try again later, or ask your host to allow outgoing HTTPS connections.<\/li><li><strong>NoyaJet asks for the licence again after moving the site:<\/strong> this is expected when the address changes. Activate it on the new address and release the old site.<\/li><li><strong>No theme updates appear:<\/strong> check that the licence is active in Appearance \u2192 NoyaJet Setup, then use Dashboard \u2192 Updates \u2192 Check again.<\/li><li><strong>No prices on the booking form:<\/strong> check that Live estimates is on under Settings \u2192 Pricing and that the aircraft have an hourly rate.<\/li><li><strong>A price looks too high:<\/strong> check the aircraft&#8217;s home base and the positioning settings; the preview table under Settings \u2192 Pricing shows each aircraft&#8217;s price.<\/li><li><strong>No \u201cReserve now with a card hold\u201d option:<\/strong> turn on Card holds under Settings \u2192 Payments and enable Stripe, PayPal or Square (or Demo payments). The option appears once the customer has chosen an aircraft that has a price.<\/li><li><strong>A payment method does not appear at checkout:<\/strong> it must be ticked and show <strong>Ready<\/strong>. Square only appears for its location currency, and only Stripe, PayPal, Square and Demo payments can take card holds.<\/li><li><strong>Payments stay \u201cStarted\u201d after the customer paid:<\/strong> check the webhook address and signing secret in the provider&#8217;s dashboard. Pending card payments are also checked with the provider every few minutes.<\/li><li><strong>Empty leg shows \u201cEnquire\u201d instead of \u201cBook this flight\u201d:<\/strong> untick Sample route, set a price, an aircraft and a future date, and set Availability to available.<\/li><li><strong>Forms show shortcodes or are unavailable:<\/strong> activate NoyaJet Booking from Appearance \u2192 NoyaJet Setup.<\/li><li><strong>The layout has no demo items:<\/strong> run step 3 in Appearance \u2192 NoyaJet Setup.<\/li><li><strong>Fleet, detail or booking pages show 404:<\/strong> resave Settings \u2192 Permalinks.<\/li><li><strong>The old homepage still appears:<\/strong> check Settings \u2192 Reading and choose the imported Home page.<\/li><li><strong>Request times look wrong:<\/strong> set your timezone under Settings \u2192 General.<\/li><li><strong>The Dashboard&#8217;s setup checklist shows a warning:<\/strong> click the warning to open the screen where it can be fixed.<\/li><li><strong>My requests is empty:<\/strong> sign in with the same WordPress account used to submit. Guests use the private link in their email.<\/li><li><strong>Expired form message:<\/strong> reload the form page and exclude it from caching.<\/li><li><strong>Booking saved but no email arrives:<\/strong> check your mail\/SMTP setup. On LocalWP, look in Mailpit. The email history is at the bottom of Price &amp; payments.<\/li><\/ul>\n<p class=\"wp-block-paragraph\">Deactivate or delete the plugin without losing saved data: requests, payments and invoices are kept. WordPress privacy erasure deletes requests without payments and anonymises those with payments, keeping the financial records. Imported pages, catalogue entries and media remain until you explicitly delete them.<\/p>","protected":false},"excerpt":{"rendered":"<p>Everything you need to install NoyaJet, activate your licence, import the demo, set up pricing and payments, and run the booking system. This guide is also included in the complete package download. NoyaJet is an editorial private aviation theme for WordPress. It includes a green-and-ivory design, three aviation images, catalogue pages, a journal, multi-step booking [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-8","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/demo.codersnoyan.com\/noyajet\/wp-json\/wp\/v2\/pages\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demo.codersnoyan.com\/noyajet\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/demo.codersnoyan.com\/noyajet\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/demo.codersnoyan.com\/noyajet\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demo.codersnoyan.com\/noyajet\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":5,"href":"https:\/\/demo.codersnoyan.com\/noyajet\/wp-json\/wp\/v2\/pages\/8\/revisions"}],"predecessor-version":[{"id":63,"href":"https:\/\/demo.codersnoyan.com\/noyajet\/wp-json\/wp\/v2\/pages\/8\/revisions\/63"}],"wp:attachment":[{"href":"https:\/\/demo.codersnoyan.com\/noyajet\/wp-json\/wp\/v2\/media?parent=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}