Displays a customizable banner on the screen and remembers when users have dismissed it.
Display custom banner alerts on your website.
- Lando (Docker-backed local stack)
- PHP 7.4+ (satisfied inside Lando; match
composer.jsonplatform when running Composer on the host) - Advanced Custom Fields Pro (installed via Composer; see Composer authentication)
- For assets: nvm or fnm, Node (see
.nvmrc), Yarn 1.22+, npm 8.3+
Copy the example env file Lando loads:
cp dev/lando/.env.example dev/lando/.envEdit dev/lando/.env if needed. WP_HOME and WP_SITEURL must match the hostname Lando exposes (see proxy → appserver_nginx in .lando.yml; currently https://tribe-alert.lndo.site).
composer.json pulls ACF Pro from connect.advancedcustomfields.com and nickford/acf-swatch from GitHub over SSH. Composer reads auth.json in the project root for HTTP Basic auth. That file is listed in .gitignore and must not be committed.
Option A — from the sample (Modern Tribe / 1Password)
auth-sample.json is a template that expects 1Password CLI secret references. From the repo root:
cp auth-sample.json auth.json
op inject -i auth-sample.json -o auth.jsonAdjust vault/item names via environment variables if your team uses different 1Password paths (see placeholders in auth-sample.json).
Option B — manual auth.json
Create auth.json in the project root with your ACF subscription credentials (from your ACF account: license key and the signed download URL):
{
"http-basic": {
"connect.advancedcustomfields.com": {
"username": "<your-acf-license-key>",
"password": "<your-acf-download-url-or-token-as-documented-by-acf>"
}
}
}Use the exact username/password pair ACF documents for Composer.
GitHub (private VCS package)
For git@github.com:nickforddesign/acf-swatch.git, ensure your machine (or the Lando container) can use that SSH key. Typical approaches:
- Load your SSH agent on the host before
lando start, or - Add a deploy key / personal key inside the appserver and run
composer installthere afterlando ssh.
If Composer fails on acf-swatch, fix SSH access to GitHub first.
From the repository root:
lando startOn start, Lando runs composer install and dev/lando/install-wp.sh (WordPress download + wp core install when wp-config.php is missing).
Use the URL from .lando.yml proxy settings (e.g. https://tribe-alert.lndo.site). MailHog is available per your Lando tooling (lando info).
In WP Admin → Plugins, activate Tribe Alerts (and other required plugins such as ACF Pro if not auto-activated).
- You may run
composer installon the host (withauth.jsonpresent) or rely onlando composer install/ thepost-starthook. - If
vendorlooks empty on the host while dependencies work in the container, check Lando file-sharing /excludesin.lando.yml.
Front-end builds use Laravel Mix.
nvm useyarn installBuild for development:
yarn devWatch for file changes:
yarn watchPoll for file changes:
yarn watch-pollWatch with hot module replacement:
yarn hotBuild for production:
yarn productionRun the Mix CLI directly (same underlying binary the scripts use):
npx mixSee more options: npx mix --help
Run yarn prod before submitting a PR so resources/dist contains the latest production assets.
Every published release creates a tribe-alerts.zip (built, vendor-scoped plugin) shortly after the release is published. To install manually, download the zip from a release and extract it into your WordPress wp-content/plugins directory.
The best way to include the release zip is with ffraenz/private-composer-installer.
Add a custom repository to your project’s repositories in composer.json:
"repositories": [
{
"type": "package",
"package": {
"name": "moderntribe/tribe-alerts",
"version": "1.1.0",
"type": "wordpress-plugin",
"dist": {
"type": "zip",
"url": "https://github.com/moderntribe/tribe-alerts/releases/download/{%VERSION}/tribe-alerts.zip"
},
"require": {
"ffraenz/private-composer-installer": "^5.0"
}
}
}
]Note: Bump the version above and run
composer updateto upgrade the plugin later.
Add the package to require:
"require": {
"moderntribe/tribe-alerts": "*"
}Point Composer installers at your WordPress layout (adjust paths for your project):
"extra": {
"wordpress-install-dir": "wp",
"installer-paths": {
"wp-content/mu-plugins/{$name}": [
"type:wordpress-muplugin"
],
"wp-content/plugins/{$name}": [
"type:wordpress-plugin"
],
"wp-content/themes/{$name}": [
"type:wordpress-theme"
]
}
}Allow the plugins in config:
"allow-plugins": {
"composer/installers": true,
"ffraenz/private-composer-installer": true
}Install:
composer updateThe banner is output on the wp_footer hook by default. To render it yourself:
<?php if ( function_exists( '\Tribe\Alert\tribe_alert' ) && function_exists( '\Tribe\Alert\render_alert' ) ) {
\Tribe\Alert\render_alert();
} ?>Disable automatic wp_footer output in wp-config.php:
define( 'TRIBE_ALERTS_AUTOMATIC_OUTPUT', false );Filter the view directory, for example:
add_filter( 'tribe/alerts/view_directory', static fn ( string $directory ) => get_stylesheet_directory() . '/components/alerts', 10, 1 );Copy resources/views/alert.php into that folder and customize.
Color options are off by default. Enable in wp-config.php:
define( 'TRIBE_ALERTS_COLOR_OPTIONS', true );Filter swatch colors:
add_filter( 'tribe/alerts/color_options', static fn ( array $options ) => [
'#880ED4' => [
'name' => esc_html__( 'Purple', 'tribe-alerts' ),
'class' => 'purple-mono',
],
'#8155BA' => [
'name' => esc_html__( 'Violet', 'tribe-alerts' ),
'class' => 'violet',
],
'#323E42' => [
'name' => esc_html__( 'Charcoal', 'tribe-alerts' ),
'class' => 'charcoal',
],
], 10, 1 );Default CSS class prefix is tribe-alerts__theme → tribe-alerts__theme-$name. Filter the prefix:
add_filter( 'tribe/alerts/color_options/css_class_prefix', static fn ( string $prefix ) => 'new-prefix', 10, 1 );GitHub Actions workflows under .github/workflows/ may still reference the old dev/docker stack. If those files were removed in your branch, update CI to match Lando or another test runner before relying on green builds.
- Based on Spatie Skeleton
GNU General Public License GPLv2 (or later). See LICENSE.md.
