Directory / plugin
Obydullah Fitness Content Manager
v1.0.0 · by obydullah
Content management for a fitness or personal training site: hero slides, services, testimonials, pricing plans, and booking requests.
About this plugin
Obydullah Fitness Content Manager holds the dynamic content for a fitness or personal training website. You manage hero slides, services, testimonials, and pricing plans in wp-admin, and booking requests arrive from your front-end form into a dedicated admin list.
The content lives in the plugin, not in a theme, so it survives a theme change. Settings are stored in wp_options rather than theme_mod() for the same reason.
What it does
- Hero slides — a private post type for the homepage carousel. Each slide carries a subtitle or badge, description, and two buttons with their own text and URL.
- Services — a private post type for your service offerings. Title and description come from the post itself, plus an icon field that accepts an emoji or a Font Awesome class.
- Testimonials — a private post type for client reviews. Each entry has a quote, a role or result label, a 1 to 5 star rating, and a result caption.
- Pricing plans — a private post type for pricing cards, with price, billing period, a newline-separated feature list, a custom button label, and a flag to highlight one plan as the popular choice.
- Bookings — front-end form submissions stored in a custom database table. The admin list supports search by name or email, per-status filters with counts, pagination, inline status changes, and deletion.
- Admin dashboard — a single card grid under one top-level menu, linking to each content type and to settings.
- Site settings — contact details, social links, two about paragraphs, coach name and title, certifications, specialties, three stat blocks, and an aggregate rating. All stored in
wp_options.
Design choices
- Content outranks posts. All four content types are private custom post types, so they inherit WordPress revisions, media handling, scheduling, and the block editor. Featured images work as expected.
- Bookings use a custom table. Form submissions are high-volume write-once data with no need for revisions or taxonomy, so they go to a
{prefix}ofcm_bookingstable instead of the posts table. This keeps the posts table clean and booking queries fast as submissions accumulate. - No external services. The plugin loads no remote fonts, scripts, or styles, and makes no outbound HTTP requests. It sends no usage or telemetry data.
- Prefixed everything. Functions, hooks, meta keys, options, nonces, and the custom table all use the
ofcm_prefix, so the plugin cannot collide with your theme or another plugin. - Admin-only content. Every post type registers with
public => false. Nothing added through this plugin is publicly queryable, and the booking table is never exposed to the front end.