Notification
WordPress.orgExtensionsSupport
Version 7
Version 7
  • Notification – Custom Notifications and Alerts for WordPress
  • Known issues
  • πŸ€Έβ€β™€οΈ User guide
    • How Notification plugin works
    • Who can use this plugin
    • How to create Notifications
    • Troubleshooting
    • Advanced
      • How to escape { character
      • Background processing
      • How to setup different FROM address for different Notifications
      • Custom Post Type support
  • πŸ”§Developer
    • General
      • Plugin loading chain
      • Runtime
      • Extension possibilities
      • Creating an extension
      • Bundling Notification plugin
      • White label mode
    • Notifications
      • Suppressing the Notification
      • JSON synchronization
      • Programmatic Notifications
    • Triggers
      • List of all default Triggers
      • Custom Trigger
      • Enable support for non-public Custom Post Type
      • Adding Merge Tags to existing Triggers
      • Postponing the Trigger action
      • Delaying Trigger execution with Cron
    • Carriers
      • Custom Carrier
      • Adding custom fields to Carrier form
      • Suppressing the Carrier
    • Recipients
      • Custom Recipient
    • Snippets
      • General
        • Automatic Trigger testing
        • Allow other roles to edit Notifications
        • Allow sending Notification while logging is active
        • Programmatic Notification with manual Trigger
        • Background Processing filter
      • Triggers
        • Post
        • User
      • Integations
        • WP All Import
        • MemberPress
        • Gutenberg
  • 🧩Extensions
    • Installation
    • Planned extensions
    • 3rd Party Extensions
    • Custom Fields
      • v1.3
    • Scheduled Triggers
    • Slack
    • Twilio
Powered by GitBook
On this page
  • Basic example
  • All arguments
  1. Developer
  2. Notifications

Programmatic Notifications

PreviousJSON synchronizationNextTriggers

Last updated 5 years ago

The notifications doesn't necessarly have to be saved in WordPress database nor loaded from JSON files. A good example is where all the notifications are created on the fly.

Basic example

You can define the notification with a simple array. Below is a minimal example with all the required parameters.

if ( function_exists( 'notification' ) ) :
notification( [
	'title'    => 'My programmatic notification', // For internal reference.
	'trigger'  => 'trigger_slug', // Trigger slug (can be a Triggerable object).
	'carriers' => [ // An array with format: carrier_slug => data array
		'email' => [
			'activated'  => true, // Must be true.
			'enabled'    => true, // Must be true.
			'subject'    => 'Email from ghost notification!', 
			'body'       => 'This is nice, {user_first_name}, huh?',
			'recipients' => [
				[
					'type'      => 'administrator',
					'recipient' => '',
				],
				[
					'type'      => 'email',
					'recipient' => '{user_email}',
				],
			],
		],
	],
	'enabled'  => true, // Must be true.
] );
endif;

All arguments

All arguments available:

if ( function_exists( 'notification' ) ) :
notification( [
	'hash'     => 'my_programmatic_notification', // Unique notification hash, automatically generated.
	'title'    => 'My programmatic notification',
	'trigger'  => 'trigger_slug',
	'carriers' => [
		'email' => [
			'activated'  => true,
			'enabled'    => true,
			'subject'    => 'Email from ghost notification!', 
			'body'       => 'This is nice, {user_first_name}, huh?',
			'recipients' => [
				[
					'type'      => 'administrator',
					'recipient' => '',
				],
				[
					'type'      => 'email',
					'recipient' => '{user_email}',
				],
			],
		],
	],
	'enabled'  => true,
	'extras'   => [], // Extra data array, ie. config for add-ons.
	'version'  => time(), // Version of the notification, should be a timestamp. Default: current time.
] );
endif;

You can reference the Carrier fields by . You should check the add_form_field method calls which will contain the field slug and other useful info about the type.

πŸ”§
dynamic trigger testing
checking the source code