androlax2 / wp-plugin-activation-manifest
Simple file-based plugin activation control for WordPress.
Installs: 11 842
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=7.0
- androlax2/wp-plugin-control: ~0.1.0
- symfony/yaml: ^5.2
This package is auto-updated.
Last update: 2025-01-29 06:38:31 UTC
README
(INSPIRE BY https://github.com/PrimeTimeCode/wp-plugin-activation-manifest)
Lock down the activation state of individual plugins based on environment with minimal effort.
Usage
Create a YAML file that defines the plugin activation state you want to enforce. Name it whatever you wish and put it wherever you want ( ideally outside of the webroot). Add this file to your project's repository. Example manifest file:
# top level keys are the environment some_environment: enable: - someplugin/someplugin.php disable: - someotherplugin/someotherplugin.php # supports multisite network-enable: - someplugin/someplugin.php network-disable: - someplugin/someplugin.php # 'global' is a special key that you can use to apply to all environments global: enable: - woocommerce/woocommerce.php - wpmandrill/wpmandrill.php development: disable: - wpmandrill/wpmandrill.php
Install
composer require primetime/wp-plugin-activation-manifest
Execute the mandate
require('vendor/autoload.php'); // ... // after WordPress is loaded - eg: within an mu-plugin // .. \Androlax2\WordPress\PluginManifest\Activation::set('path/to/plugin-manifest.yml', getenv('WP_ENV'));
In the example above, WP_ENV
is an environment variable defining the name of the environment (eg: development, staging, production). This
environment name should match to a top-level key in the yaml file. Environment configuration is applied after the global
configuration and
will take precedence over it. That's it!