WP Manifestindependent plugin directory
manifest / content / ccw-directory

CCW Directory

Firearm training business directory with front-end listing submission, admin approval workflow, credential verification, message relay and reviews.

by Shakib Shown · github.com/shakib6472/ccw-directory · website

★ 0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/shakib6472/ccw-directory/archive/refs/heads/main.zip

Firearm training business directory with front-end listing submission, admin approval workflow, credential verification, message relay and reviews.

Description

CCW Directory turns a WordPress site into a directory of firearm training providers: CCW permit classes, firearms instructors, indoor and outdoor ranges, tactical training, gunsmiths and womens courses.

Business owners register, verify their email with a one-time code, and submit a listing through a six step front-end form. An administrator reviews every submission, checks the credential documents with the issuing body, and decides which trust badges appear. Visitors browse, filter and search listings, read and leave reviews, and contact business owners through a relay that never exposes either party's email address.

What it provides

  • A ccw_listing post type with categories, states and cities, trust badges and training levels.
  • Every field editable from wp-admin in meta boxes grouped the same way as the six form steps, including working repeatable rows for hours, facility details and credentials.
  • A front-end account system: registration, six digit email verification, login, password reset and account settings.
  • The six step Add Listing form with draft saving, client and server validation, and protected storage for identity documents.
  • An owner dashboard covering listings, listing status, messages, reviews, verification and account.
  • An administrator approval workflow with itemised rejection feedback returned to the owner.
  • A message relay backed by a custom table, with rate limiting, a honeypot and optional reCAPTCHA v3.
  • Reviews built on the WordPress comment system with cached rating averages and threaded owner responses.
  • Shortcodes for every screen, so pages can be laid out in any page builder.

Design notes

Trust badges, the featured flag and the verified flag are administrator decisions and never appear in the owner form. Owners claim credentials and upload documents; staff confirm them with the issuing body before anything is displayed.

Identity documents are stored outside the media library in a directory protected by a deny-all rule, under unguessable file names, and are served only to administrators through an authenticated handler. Photo IDs are deleted automatically once the review closes, leaving an audit line on the credential record.

Requirements

Runs standalone on the free Hello Elementor theme. It does not require ACF, SCF, JetEngine, JetFormBuilder, Crocoblock or any other plugin, uses no Elementor APIs, ships no JavaScript framework and has no Composer dependencies.

Installation

  1. Upload the ccw-directory folder to /wp-content/plugins/.
  2. Activate the plugin through the Plugins screen.
  3. Visit Settings then Permalinks once so the listing URLs are registered.
  4. Open Listings then Settings to set the option lists and moderation behaviour.
  5. Place the plugin shortcodes on the pages you want them on.

Frequently Asked Questions

Does deactivating the plugin delete anything?

No. Deactivation only clears scheduled events and flushes rewrite rules. Even deleting the plugin leaves your data in place unless you first tick the data removal option under Listings then Settings then Advanced.

Can a business owner give themselves a verified badge?

No. The badge taxonomy requires the manage_options capability to assign, and the administrator only fields are filtered out of every front-end write path, so a crafted request cannot set them either.

What happens when an owner edits a listing that is already published?

Changes to trust-carrying details, the business name, address, phone, credentials or categories, are queued for approval while the published version stays online. Descriptions, photos and opening hours go live immediately. Which field falls into which group is declared in the meta schema and the behaviour can be turned off in the settings.

Can the client add new badges without a developer?

Yes. Badges are taxonomy terms with an icon field, either a Dashicons class name or an uploaded icon.

Changelog

1.0.0

  • Initial release.