Extension Architecture Overview #
New in v1.2.0
DMSI DDLS Core provides a stable extension API that allows separate WordPress plugins (extensions) to add new functionality, integrate into the admin shell, and participate in the core order-processing workflow.
What Extensions Are #
An extension is a separate WordPress plugin that depends on DMSI DDLS Core being installed and active. Extensions hook into Core using WordPress filters and actions. Core does not need to know about any specific extension in advance; extensions register themselves at runtime.
Extensions vs. Customizations #
| Approach | When to Use |
|---|---|
| Extension plugin | Adding significant new features, new admin sections, new product types, or integration with an external service |
| Code snippet or child-theme function | Small one-off tweaks that do not require their own admin UI or settings |
Build an extension when your code needs its own admin section, settings tab, order processing logic, or license key. Use a snippet when you are making a minor behavioral change that does not require persistent configuration.
When to Build an Extension #
- You are adding support for a new product type (e.g., SaaS seats, hardware dongles)
- You need a dedicated admin section for managing new data
- You integrate DDLS with an external API (CRM, payment gateway, support desk)
- You want your customization packaged and distributable as its own plugin
Extension Lifecycle #
init, the extension registers its settings tab via dmsilm_settings_tabs and stores options under its own prefixed option key.admin_init, the extension registers its admin shell sections and views via dmsilm_admin_shell_sections and dmsilm_admin_shell_pages.dmsilm_license_data_before_create (and related filters) to modify records at order time.Related Topics #
- [Admin Shell Integration](#)
- [Settings Tab Integration](#)
- [Order Processor Integration](#)
