Example WP Job Manager Emails code to add custom email templates (for developers)

functions.php

/**
 * Filter to add Custom Theme, or Plugin templates
 *
 * If you want to add custom templates, this is the hook you should use.
 * Custom templates should follow the pattern below.  Templates should be placed inside the 'templates' array key
 * which is an array of non-key arrays.
 *
 * For the email template post content, you should NOT use HTML as this will be stripped if the user sets the email type
 * to plain text.  Instead, you should use new line breaks (n), which will be converted to HTML <br> automatically.
 *
 * Supported shortcodes (NOT WordPress shortcodes, this plugins shortcodes) can be used in almost every field (to, subject, post_content),
 * except post_title.  If you want to add custom shortcodes, @see WP_Job_Manager_Emails_Shortcodes
 *
 * The `action` value in the template array of arrays should be the action to associate the template with.
 * This is the key of the action/hook, defined in this class, or extending classes @see init_ps_actions() @see init_actions()
 *
 * @see https://plugins.smyl.es/docs-kb/adding-custom-plugin-or-theme-email-templates/
 *
 * @since 2.0.0
 *
 * @param array $templates    Array of templates based on active/available hooks
 * @param array $ps_actions   Array of Post Status actions/hooks
 * @param array $core_actions Array of Core actions/hooks
 * @param class $this         Access to $this current object
 */
add_filter( 'job_manager_emails_hook_templates', 'smyles_test_email_templates', 10, 4 );

function smyles_test_email_templates( $templates, $ps_actions, $core_actions, $that ){

	$singular = 'Listify Listing';

	$content = '';
	$content .= __( 'Hello' ) . "n" . "n";
	$content .= sprintf( __( 'A new %1$s has just been submitted by *%2$s*.  The details are as follows:' ), $singular, '[company_name]' ) . "n" . "n";
	$content .= __( 'This is a custom email template just for the Listify theme!  Plugin and theme developers can easily add their own templates! ') . "n" . "n";
	$content .= "
" . "n" . "n"; $content .= "[job_description]" . "n" . sprintf( __( 'The %s description is as follows:' ), $singular ) . "n" . "[/job_description]" . "n" . "n"; $content .= sprintf( __( 'You can view this %1$s here: %2$s' ), $singular, '[view_job_url]' ) . "n"; $content .= sprintf( __( 'You can view/edit this %1$s in the backend by clicking here: %2$s' ), $singular, '[view_job_url_admin]' ) . "n" . "n"; $templates['listify'] = array( 'label' => __( 'Listify Theme Templates' ), // Header text when viewing tab 'tab' => __( 'Listify' ), // Text used for tab .. KEEP THIS SHORT!! 'desc' => __( 'Themes and plugins can add their own custom templates!' ), // Description shown under header text 'templates' => array( array( 'label' => __( 'New Listify Listing Submitted' ), 'desc' => __( 'This is a custom template specifically for the Listify theme integrated easily with only a few lines of code!' ), 'action' => 'job_manager_job_submitted', 'attachments' => array('company_logo'), 'defaults' => array( 'to' => '[admin_email]', 'post_content' => $content, 'subject' => __( 'New Listify Submission, [job_title]' ), 'post_title' => __( 'New Listify Listing Submitted' ), ) ) ) ); return $templates; }