WP Manifestindependent plugin directory
manifest / content / traveljabs

Traveljabs

A modular WordPress plugin for managing custom post types, custom post type settings, redirects, and other WordPress site-management functionality. Designed with a scalable architecture so additional management features can be added over time.

★ 0stars
v1.0.0latest · 2mo ago

Install

Download traveljabs.zip From the v1.0.0 release on GitHub, Aug 25, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/rubel601619/traveljabs/releases/download/v1.0.0/traveljabs.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

A comprehensive WordPress management plugin for custom post types, custom post type settings, redirect management, and other site administration features.

Requirements

  • WordPress 5.9+
  • PHP 7.4+
  • Composer 2 (for development only; the generated autoloader ships with the plugin)

Architecture

Fully object-oriented with Composer PSR-4 autoloading.

traveljabs/
├── traveljabs.php          # Plugin header + bootstrap
├── composer.json           # PSR-4: Traveljabs\ → includes/
├── uninstall.php           # No-op by policy (preserves all content)
├── vendor/                 # Generated Composer autoloader
├── languages/
└── includes/
    ├── Core/
    │   ├── Plugin.php      # Bootstrap class
    │   └── Activator.php   # Activation / deactivation
    ├── Admin/
    │   ├── AdminMenu.php   # Top-level Traveljabs menu
    │   └── Settings.php    # Settings API page
    ├── Meta/
    │   ├── AbstractFieldGroup.php  # Shared meta box / field group logic
    │   └── ClinicDetails.php       # Clinic Details group + opening hours
    └── PostTypes/
        ├── AbstractPostType.php
        ├── Destinations.php
        ├── OurClinics.php
        └── Vaccinations.php
└── assets/
    ├── css/clinic-details.css
    └── js/clinic-details.js

Admin Menu

Traveljabs
├── Destinations
├── Our Clinics
├── Vaccinations
└── Settings

All custom post types are submenus of Traveljabs, not independent top-level menus.

Custom Post Types

Key Default rewrite slug Supports Taxonomies
destination destinations title, editor, thumbnail, excerpt, revisions category, post_tag
clinic our-clinic title, editor, thumbnail, excerpt, revisions category, post_tag
vaccination vaccination title, editor, thumbnail, excerpt, revisions category, post_tag

The internal post type keys never change. Only the frontend rewrite slugs are configurable.

Settings

Stored in the single option traveljabs_settings:

[
    'destinations_slug' => 'destinations',
    'our_clinic_slug'   => 'our-clinic',
    'vaccination_slug'  => 'vaccination',
    'google_maps_api_key' => '',
]

The Google Maps API key is stored in its own settings section and sanitized with sanitize_text_field(). Slugs are sanitized with sanitize_title(); empty values fall back to defaults. Rewrite rules are flushed only on activation, deactivation, or an actual slug change — never on every request.

The clinic finder is available with the [search-clinic] shortcode. It displays the clinic search, clinic list, distance sorting, and Google Map using the API key configured in Traveljabs Settings.

The frontend clinic submission form is available with [clinic_submission]. Configure WooCommerce products for the Bronze, Silver, and Gold packages, then enter their product IDs and the package purchase URL in Traveljabs Settings. Completed or processing orders grant the highest matching package, and every package allows one clinic. Bronze includes Centralised Booking System, Increased visibility, Enhanced Credibility, and Improved SEO and Online Presence. Silver adds PPC Marketing. Gold adds PPC Marketing and Premium SEO Marketing*.

Custom Fields

Custom field groups are registered as native meta boxes (no ACF dependency). The Clinic Details group (group_clinic_details) attaches to the clinic post type:

Meta key Field Type Required
clinic_address Address textarea yes
clinic_postcode Postcode text yes
clinic_phone Phone text no
clinic_email Email email no
clinic_website Website url no
clinic_latitude Latitude number no
clinic_longitude Longitude number no
clinic_opening_hours Opening Hours repeater (day + time rows with Add/Remove) no

All meta is registered through register_post_meta() with sanitization callbacks and is exposed in REST. The opening hours repeater stores an array of { day, time } rows; empty rows are dropped.

Development

After changing the autoload configuration:

composer dump-autoload

Releases

1 release. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v1.0.0 latest
Aug 25, 2026 2mo ago
traveljabs.zip
0