Enhances WordPress with Seravo.com specific features and integrations (also known as WP-palvelu.fi in Finland).
In order to use this with composer you need to add this mu-plugin:
https://github.com/roots/bedrock/blob/master/web/app/mu-plugins/bedrock-autoloader.php
This is because WordPress won't use mu-plugins from their own folders.
Then add this to your composer:
{
"require": {
"seravo/seravo-plugin": "*"
},
"extra": {
"installer-paths": {
"htdocs/wp-content/mu-plugins/{$name}/": ["type:wordpress-muplugin"]
}
}
}
Seravo's customers can simply run wp-seravo-plugin-update
to get the latest (tagged) release. For the adventurous, get the git master head with wp-seravo-plugin-update --dev
.
You can insert your own admin notice for users that are in shadow
function my_shadow_admin_notice($admin_notice, $current_screen) {
return '<div class="notice notice-error"><p>This is staging. All content edited here will be lost. Return to production to create or edit content.</p></div>';
}
add_filter( 'seravo_instance_switcher_admin_notice', 'my_shadow_admin_notice', 10, 2 );
Currently the velocity of development is so high that documentation lacks badly behind. To find more filters, just search the source code for apply_filters
.
Some of the features in the Seravo Plugin depend on the API that is available only on a real production site, and thus cannot be tested inside a Vagrant box or the like.
In order to have the git repository on your own computer and in your own editor, while still being able to see the code running on a test site (in the production environment) you can use the command below. It will watch all files for changes and automatically rsync them to the remote server:
seravo-plugin$ find * | entr rsync -avz -e 'ssh -q -p 12345' * example@example.seravo.com:/data/wordpress/htdocs/wp-content/mu-plugins/seravo-plugin/
sending incremental file list
README.md
sent 2,999 bytes received 64 bytes 2,042.00 bytes/sec
total size is 370,596 speedup is 120.99
To ease Seravo Plugin development, composer should be used to install development dependencies.
Running composer install
installs PHPCS, PHPCBF, WordPress PHPCS standards and Rector.
Remember to update translations of all public facing string by running inside Vagrant:
cd /data/wordpress/htdocs/wp-content/mu-plugins/seravo-plugin
wp i18n make-pot . languages/seravo.pot
NOTE! If this fails on
PHP Fatal error: Uncaught Error: Maximum function nesting level of '256' reached
temporarily remove the overly complex files withrm js/cruft*
.
Translations can be done for instance by using Poedit. On editor open languages/seravo-fi.po
and select Update from pot file
which will update the po file. After translating compile the po file to seravo-fi.mo
mo file.
If you have Rector and PHPCS installed locally with composer install
, simply run composer test
. Alternatively run PHPCS inside local Vagrant or Docker image, or on the same remote site used for testing:
ssh -q -p 12345 example@example.seravo.com 'cd '/data/wordpress/htdocs/wp-content/mu-plugins/seravo-plugin/ && phpcs
........S.......WWWWWWWWWWEWWEWWWWW.WWEWWWW.W.WWEWWEWEW..... 60 / 68 (88%)
......W. 68 / 68 (100%)
FILE: ...press/htdocs/wp-content/mu-plugins/seravo-plugin/lib/helpers.php
----------------------------------------------------------------------
FOUND 0 ERRORS AND 3 WARNINGS AFFECTING 2 LINES
----------------------------------------------------------------------
35 | WARNING | Filesystem function dirname() detected with dynamic
| | parameter
35 | WARNING | Line exceeds 100 characters; contains 118 characters
44 | WARNING | Line exceeds 100 characters; contains 107 characters
----------------------------------------------------------------------
...
Rector and PHPCS errors can be automatically fixed with composer fix
. All Rector errors should be resolved
before merging to master even if it's not part of CI tests.
See git history and release commit messages.