androlax2/wp-plugin-activation-manifest

There is no license information available for the latest version (0.1.0) of this package.

Simple file-based plugin activation control for WordPress.

0.1.0 2021-01-28 17:42 UTC

This package is auto-updated.

Last update: 2024-05-29 04:42:20 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!