Information on installing some premium WP plugins via composer is not always very easy to find. I will try to gather everything I find into this article.
WP Migrate DB Pro
{ "repositories": [ { "type": "package", "package": { "name": "deliciousbrains/wp-migrate-db-pro", "version": "1.4.1", // Latest at the time of writing "type": "wordpress-plugin", "dist": { "type": "zip", "url": "https://deliciousbrains.com/?wc-api=delicious-brains&request=download&licence_key=[YOUR_LICENSE]&site_url=[YOUR_SITE_URL]" }, "require" : { "composer/installers": "v1.0.7" } } }, { "type": "package", "package": { "name": "deliciousbrains/wp-migrate-db-pro-media-files", "version": "1.1.4", // Latest at the time of writing "type": "wordpress-plugin", "dist": { "type": "zip", "url": "https://deliciousbrains.com/?wc-api=delicious-brains&request=download&licence_key=[YOUR_LICENSE]&slug=wp-migrate-db-pro-media-files&site_url=[YOUR_SITE_URL]" }, "require" : { "composer/installers": "v1.0.7" } } } ], "require": { "deliciousbrains/wp-migrate-db-pro": "*", "deliciousbrains/wp-migrate-db-pro-media-files": "*", } }
Setting up your own private repository
Nothing difficult here. Create a folder on your server, protected by http basic auth. Zip the plugin and drop it into the protected folder. Add a composer.json file inside the zip, something like this:
{ "name": "advancedcustomfields/repeater-field", "description": "Break free from static inputs and create multiple rows of loop-able data", "keywords": ["wordpress", "plugin", "advancedcustomfields", "acf", "repeater"], "homepage": "http://www.advancedcustomfields.com", "license": "This software is NOT to be distributed, but can be INCLUDED in WP themes: Premium or Contracted.", "authors": [ { "name": "Elliot Condon", "email": "e@elliotcondon.com", "homepage": "http://www.elliotcondon.com" } ], "type": "wordpress-plugin", "require": { "composer/installers": "v1.0.7" } }
Now, into your site’s composer.json, add the following:
{ "type": "package", "package": { "name": "advancedcustomfields/repeater-field", "type": "wordpress-plugin", "version": "3.1.7", "dist": { "url": "http://[YOUR_USERNAME]:[YOUR_PASSWORD]@codelight.eu/private/wordpress/plugins/acf-repeater.zip", "type": "zip" } } }
And that’s all.
(Note that the ACF repeater example is no longer relevant, as Elliott has released ACF Pro which includes all the add-ons.)
One Response to “Using private WordPress repositories with Composer”
Nino Treyssat-Vincent
I know this an old article, but if you want to use the `Setting up your own private repository` trick, be aware that `username:password@` is deprecated.
You should use the http-basic option from composer :
https://getcomposer.org/doc/06-config.md#http-basic