Introduction
If you've ever explored a framework and wondered “What does a real project built with this actually look like?”, you're not alone.
Example projects are often the fastest way to understand how a framework works in practice.
When I released the WordPress Plugin Framework (WPPF), one of the most important supporting pieces was a companion repository: a working demonstration plugin that shows how the framework is meant to be used.
The WPPF Test Plugin acts as a reference implementation for building real WordPress plugins with the framework.
What the Test Plugin Demonstrates
The test plugin demonstrates several real-world plugin patterns, including:
- plugin bootstrapping and module discovery
- admin module separation
- custom post types
- typed meta with validation
- WooCommerce email integration
- upgrade routines that run on version updates
The goal is to show how a typical plugin can be structured when built using WPPF conventions.
Convention Over Configuration
One of the central ideas behind WPPF is filesystem-driven discovery.
Instead of manually requiring files and wiring components together, the framework automatically discovers classes placed in specific directories.
A typical plugin installation might have a folder structure like this:
my-plugin/
├─ admin/
│ ├─ includes/
│ │ ├─ meta-boxes/
│ │ └─ screens/
│ ├─ templates/
│ └─ my-plugin-admin.php
│
├─ assets/
│ ├─ css/
│ └─ js/
│
├─ includes/
│ ├─ classes/
│ ├─ modules/
│ └─ post-types/
│
├─ vendor/
└─ my-plugin.php
When the plugin boots, WPPF scans these directories and automatically constructs the relevant components.
This allows plugin developers to focus on implementing functionality instead of wiring everything together manually.
Example Feature: Custom Post Type With Typed Meta
The test plugin includes a custom post type called Test Posts, which demonstrates a full feature slice.
This includes:
- The custom post type definition
- A meta box UI in the admin
- Typed meta validation
- Persistence logic
The post type is defined here:
includes/post-types/class-wppf-test-post-type.php
The meta box UI lives in:
admin/includes/meta-boxes/class-wppf-test-post-meta-box.php
And the data model is represented by a typed meta object:
includes/classes/class-designink-test-post-meta.php
This structure helps separate concerns between:
- UI
- Data validation
- Domain logic
WooCommerce Integration Example
The plugin also demonstrates an early example of how WPPF can integrate with WooCommerce.
It includes a custom email class:
includes/emails/class-wppf-test-email.php
Along with a corresponding email template:
woocommerce/emails/wppf-test-email.php
This pattern allows plugin developers to extend WooCommerce functionality while keeping email logic and templates organized.
Running the Plugin Locally
To experiment with the test plugin:
- Install the plugin ZIP file in your WordPress installation.
- Activate the plugin in the WordPress admin panel.
Once activated, you'll see the Test Posts custom post type where you can experiment with the plugin's features.
Exploring the Framework in Practice
Documentation can explain how a framework works, but seeing it applied in a real project is often the easiest way to understand its structure.
The WPPF Test Plugin exists as a reference implementation that demonstrates how the framework’s conventions come together in a functioning plugin.
If you're curious about how WPPF organizes plugin components, this repository is a good place to explore the architecture in practice.
Repository:
https://github.com/kyle-niemiec/wppf-test-plugin
Framework:
https://github.com/kyle-niemiec/wp-plugin-framework
Part of the WPPF ecosystem:
- WordPress Plugin Framework (WPPF) – Core plugin architecture framework
- WPPF Test Plugin – Example project demonstrating an implementation of a plugin using WPPF.
- WP Plugin Update Server – Self-hosted WordPress plugin update infrastructure with GUI management.
- WPPF Update Helper – Simple integration layer for the WP Plugin Update Server.
Documentation:
https://wp-plugin-framework.codeflower.io


Top comments (1)
If you're exploring WPPF, the full documentation is here:
wp-plugin-framework.codeflower.io