From 40e60ff3367af5e73472e4ce0f38b3dadbd6e87b Mon Sep 17 00:00:00 2001 From: Syed Galib Ahmed Date: Mon, 28 Sep 2026 12:18:31 +0600 Subject: [PATCH] fix: honor admin notification email templates --- assets/build/js/admin/settings-manager.js | 36 +++++++++-- .../Settings_Notification_Events.vue | 36 ++++++++++- .../settings-manager/settings-redesign-map.js | 24 ++++++++ .../references/settings-option-catalog.md | 7 +++ includes/classes/class-email.php | 29 ++++----- includes/classes/class-settings-panel.php | 60 +++++++++++++++++++ 6 files changed, 168 insertions(+), 24 deletions(-) diff --git a/assets/build/js/admin/settings-manager.js b/assets/build/js/admin/settings-manager.js index 2d6a9c22d9..5b3c563ec1 100644 --- a/assets/build/js/admin/settings-manager.js +++ b/assets/build/js/admin/settings-manager.js @@ -3290,8 +3290,8 @@ var FIELD_GROUPS = { key: 'notification_events', title: 'Notification events', description: 'Toggle a channel per event. Click Edit to customize subject, body, and push wording.', - fields: ['notify_admin', 'notify_user', 'email_note', 'email_sub_new_listing', 'email_tmpl_new_listing', 'email_sub_pub_listing', 'email_tmpl_pub_listing', 'email_sub_rejected_listing', 'email_tmpl_rejected_listing', 'email_sub_edit_listing', 'email_tmpl_edit_listing', 'email_sub_to_expire_listing', 'email_tmpl_to_expire_listing', 'email_sub_expired_listing', 'email_tmpl_expired_listing', 'email_sub_to_renewal_listing', 'email_tmpl_to_renewal_listing', 'email_sub_renewed_listing', 'email_tmpl_renewed_listing', 'email_sub_deleted_listing', 'email_tmpl_deleted_listing', 'email_sub_new_order', 'email_tmpl_new_order', 'email_sub_offline_new_order', 'email_tmpl_offline_new_order', 'email_sub_completed_order', 'email_tmpl_completed_order', 'email_sub_listing_contact_email', 'email_tmpl_listing_contact_email', 'email_sub_registration_confirmation', 'email_tmpl_registration_confirmation', 'email_sub_email_verification', 'email_tmpl_email_verification'].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__["default"])(WEB_PUSH_TEMPLATE_FIELDS), ['email_to_expire_day', 'email_renewal_day']), - hiddenFields: ['notify_admin', 'notify_user', 'email_note', 'email_sub_new_listing', 'email_tmpl_new_listing', 'email_sub_pub_listing', 'email_tmpl_pub_listing', 'email_sub_rejected_listing', 'email_tmpl_rejected_listing', 'email_sub_edit_listing', 'email_tmpl_edit_listing', 'email_sub_to_expire_listing', 'email_tmpl_to_expire_listing', 'email_sub_expired_listing', 'email_tmpl_expired_listing', 'email_sub_to_renewal_listing', 'email_tmpl_to_renewal_listing', 'email_sub_renewed_listing', 'email_tmpl_renewed_listing', 'email_sub_deleted_listing', 'email_tmpl_deleted_listing', 'email_sub_new_order', 'email_tmpl_new_order', 'email_sub_offline_new_order', 'email_tmpl_offline_new_order', 'email_sub_completed_order', 'email_tmpl_completed_order', 'email_sub_listing_contact_email', 'email_tmpl_listing_contact_email', 'email_sub_registration_confirmation', 'email_tmpl_registration_confirmation', 'email_sub_email_verification', 'email_tmpl_email_verification'].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__["default"])(WEB_PUSH_TEMPLATE_FIELDS)), + fields: ['notify_admin', 'notify_user', 'email_note', 'email_sub_new_listing', 'email_tmpl_new_listing', 'email_sub_pub_listing', 'email_tmpl_pub_listing', 'email_sub_new_listing_admin', 'email_tmpl_new_listing_admin', 'email_sub_pub_listing_admin', 'email_tmpl_pub_listing_admin', 'email_sub_edit_listing_admin', 'email_tmpl_edit_listing_admin', 'email_sub_deleted_listing_admin', 'email_tmpl_deleted_listing_admin', 'email_sub_new_order_admin', 'email_tmpl_new_order_admin', 'email_sub_completed_order_admin', 'email_tmpl_completed_order_admin', 'email_sub_rejected_listing', 'email_tmpl_rejected_listing', 'email_sub_edit_listing', 'email_tmpl_edit_listing', 'email_sub_to_expire_listing', 'email_tmpl_to_expire_listing', 'email_sub_expired_listing', 'email_tmpl_expired_listing', 'email_sub_to_renewal_listing', 'email_tmpl_to_renewal_listing', 'email_sub_renewed_listing', 'email_tmpl_renewed_listing', 'email_sub_deleted_listing', 'email_tmpl_deleted_listing', 'email_sub_new_order', 'email_tmpl_new_order', 'email_sub_offline_new_order', 'email_tmpl_offline_new_order', 'email_sub_completed_order', 'email_tmpl_completed_order', 'email_sub_listing_contact_email', 'email_tmpl_listing_contact_email', 'email_sub_registration_confirmation', 'email_tmpl_registration_confirmation', 'email_sub_email_verification', 'email_tmpl_email_verification'].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__["default"])(WEB_PUSH_TEMPLATE_FIELDS), ['email_to_expire_day', 'email_renewal_day']), + hiddenFields: ['notify_admin', 'notify_user', 'email_note', 'email_sub_new_listing', 'email_tmpl_new_listing', 'email_sub_pub_listing', 'email_tmpl_pub_listing', 'email_sub_new_listing_admin', 'email_tmpl_new_listing_admin', 'email_sub_pub_listing_admin', 'email_tmpl_pub_listing_admin', 'email_sub_edit_listing_admin', 'email_tmpl_edit_listing_admin', 'email_sub_deleted_listing_admin', 'email_tmpl_deleted_listing_admin', 'email_sub_new_order_admin', 'email_tmpl_new_order_admin', 'email_sub_completed_order_admin', 'email_tmpl_completed_order_admin', 'email_sub_rejected_listing', 'email_tmpl_rejected_listing', 'email_sub_edit_listing', 'email_tmpl_edit_listing', 'email_sub_to_expire_listing', 'email_tmpl_to_expire_listing', 'email_sub_expired_listing', 'email_tmpl_expired_listing', 'email_sub_to_renewal_listing', 'email_tmpl_to_renewal_listing', 'email_sub_renewed_listing', 'email_tmpl_renewed_listing', 'email_sub_deleted_listing', 'email_tmpl_deleted_listing', 'email_sub_new_order', 'email_tmpl_new_order', 'email_sub_offline_new_order', 'email_tmpl_offline_new_order', 'email_sub_completed_order', 'email_tmpl_completed_order', 'email_sub_listing_contact_email', 'email_tmpl_listing_contact_email', 'email_sub_registration_confirmation', 'email_tmpl_registration_confirmation', 'email_sub_email_verification', 'email_tmpl_email_verification'].concat((0,_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__["default"])(WEB_PUSH_TEMPLATE_FIELDS)), notificationEvents: { beforeField: 'notify_admin' }, @@ -14778,6 +14778,32 @@ var EVENT_TEMPLATE_MAP = { body: "email_tmpl_listing_contact_email" } }; +var ADMIN_EVENT_TEMPLATE_MAP = { + listing_submitted: { + subject: "email_sub_new_listing_admin", + body: "email_tmpl_new_listing_admin" + }, + listing_published: { + subject: "email_sub_pub_listing_admin", + body: "email_tmpl_pub_listing_admin" + }, + listing_edited: { + subject: "email_sub_edit_listing_admin", + body: "email_tmpl_edit_listing_admin" + }, + listing_deleted: { + subject: "email_sub_deleted_listing_admin", + body: "email_tmpl_deleted_listing_admin" + }, + order_created: { + subject: "email_sub_new_order_admin", + body: "email_tmpl_new_order_admin" + }, + order_completed: { + subject: "email_sub_completed_order_admin", + body: "email_tmpl_completed_order_admin" + } +}; var ADMIN_EVENTS = [["order_created", "Order created", "A new order has been placed"], ["order_completed", "Order completed", "An order has been fulfilled"], ["payment_received", "Payment received", "A payment has been confirmed"], ["listing_submitted", "New listing submitted", "A listing is waiting for review"], ["listing_published", "Listing approved or published", "A listing has gone live"], ["listing_edited", "Listing edited", "A listing was updated by its owner"], ["listing_deleted", "Listing deleted", "A listing has been removed"], ["listing_renewed", "Listing renewed", "A listing plan has been renewed"], ["listing_contact_form", "Listing contact form", "A visitor messaged via a listing"], ["listing_review", "Listing review", "A new review has been posted"]]; var USER_EVENTS = [["listing_submitted", "Listing submitted", "Confirmation their listing was received"], ["listing_published", "Listing approved or published", "Their listing is now live"], ["listing_rejected", "Listing rejected", "Their listing was not approved"], ["listing_edited", "Listing edited", "Confirmation their edit was saved"], ["listing_deleted", "Listing deleted", "Their listing has been removed"], ["listing_to_expire", "Listing nearly expired", "Their listing expires soon"], ["listing_expired", "Listing expired", "Their listing plan has ended"], ["remind_to_renew", "Remind to renew", "Renewal reminder after expiry"], ["listing_renewed", "Listing renewed", "Confirmation their listing was renewed"], ["order_created", "Order created", "Confirmation their order was placed"], ["order_completed", "Order completed", "Their order has been fulfilled"], ["payment_received", "Payment received", "Confirmation of a successful payment"], ["listing_contact_form", "Listing contact form", "A visitor messaged via their listing"], ["listing_review", "Listing review", "Someone reviewed their listing"]]; var ACCOUNT_EVENTS = [["registration_confirmation", "Registration confirmation", "Welcome email sent after a new account is created", { @@ -15009,8 +15035,8 @@ var ACCOUNT_EVENTS = [["registration_confirmation", "Registration confirmation", var disabledDisplayValue = this.disabledDisplayValueForField(fieldKey); return disabledDisplayValue.length ? disabledDisplayValue : this.backupValueForField(fieldKey); }, - templateForEvent: function templateForEvent(eventKey) { - var template = EVENT_TEMPLATE_MAP[eventKey]; + templateForEvent: function templateForEvent(eventKey, recipient) { + var template = recipient === "admin" ? ADMIN_EVENT_TEMPLATE_MAP[eventKey] || EVENT_TEMPLATE_MAP[eventKey] : EVENT_TEMPLATE_MAP[eventKey]; if (!template || !this.templateExists(template)) { return null; } @@ -15145,7 +15171,7 @@ var ACCOUNT_EVENTS = [["registration_confirmation", "Registration confirmation", webPushFieldKey: hasWebPush ? webPushFieldKey : "", label: label, description: description, - template: _this5.templateForEvent(value), + template: _this5.templateForEvent(value, recipient), webPushTemplate: hasWebPush ? _this5.webPushTemplateForEvent(value, recipient) : null, alwaysOn: false, templateOnly: false diff --git a/assets/src/js/admin/vue/apps/settings-manager/components/Settings_Notification_Events.vue b/assets/src/js/admin/vue/apps/settings-manager/components/Settings_Notification_Events.vue index b57245338c..1121c74a56 100644 --- a/assets/src/js/admin/vue/apps/settings-manager/components/Settings_Notification_Events.vue +++ b/assets/src/js/admin/vue/apps/settings-manager/components/Settings_Notification_Events.vue @@ -314,6 +314,33 @@ const EVENT_TEMPLATE_MAP = { }, }; +const ADMIN_EVENT_TEMPLATE_MAP = { + listing_submitted: { + subject: "email_sub_new_listing_admin", + body: "email_tmpl_new_listing_admin", + }, + listing_published: { + subject: "email_sub_pub_listing_admin", + body: "email_tmpl_pub_listing_admin", + }, + listing_edited: { + subject: "email_sub_edit_listing_admin", + body: "email_tmpl_edit_listing_admin", + }, + listing_deleted: { + subject: "email_sub_deleted_listing_admin", + body: "email_tmpl_deleted_listing_admin", + }, + order_created: { + subject: "email_sub_new_order_admin", + body: "email_tmpl_new_order_admin", + }, + order_completed: { + subject: "email_sub_completed_order_admin", + body: "email_tmpl_completed_order_admin", + }, +}; + const ADMIN_EVENTS = [ ["order_created", "Order created", "A new order has been placed"], ["order_completed", "Order completed", "An order has been fulfilled"], @@ -681,8 +708,11 @@ export default { : this.backupValueForField(fieldKey); }, - templateForEvent(eventKey) { - const template = EVENT_TEMPLATE_MAP[eventKey]; + templateForEvent(eventKey, recipient) { + const template = + recipient === "admin" + ? ADMIN_EVENT_TEMPLATE_MAP[eventKey] || EVENT_TEMPLATE_MAP[eventKey] + : EVENT_TEMPLATE_MAP[eventKey]; if (!template || !this.templateExists(template)) { return null; @@ -873,7 +903,7 @@ export default { webPushFieldKey: hasWebPush ? webPushFieldKey : "", label, description, - template: this.templateForEvent(value), + template: this.templateForEvent(value, recipient), webPushTemplate: hasWebPush ? this.webPushTemplateForEvent(value, recipient) : null, diff --git a/assets/src/js/admin/vue/apps/settings-manager/settings-redesign-map.js b/assets/src/js/admin/vue/apps/settings-manager/settings-redesign-map.js index 02062f224f..f073aade44 100644 --- a/assets/src/js/admin/vue/apps/settings-manager/settings-redesign-map.js +++ b/assets/src/js/admin/vue/apps/settings-manager/settings-redesign-map.js @@ -1606,6 +1606,18 @@ const FIELD_GROUPS = { 'email_tmpl_new_listing', 'email_sub_pub_listing', 'email_tmpl_pub_listing', + 'email_sub_new_listing_admin', + 'email_tmpl_new_listing_admin', + 'email_sub_pub_listing_admin', + 'email_tmpl_pub_listing_admin', + 'email_sub_edit_listing_admin', + 'email_tmpl_edit_listing_admin', + 'email_sub_deleted_listing_admin', + 'email_tmpl_deleted_listing_admin', + 'email_sub_new_order_admin', + 'email_tmpl_new_order_admin', + 'email_sub_completed_order_admin', + 'email_tmpl_completed_order_admin', 'email_sub_rejected_listing', 'email_tmpl_rejected_listing', 'email_sub_edit_listing', @@ -1644,6 +1656,18 @@ const FIELD_GROUPS = { 'email_tmpl_new_listing', 'email_sub_pub_listing', 'email_tmpl_pub_listing', + 'email_sub_new_listing_admin', + 'email_tmpl_new_listing_admin', + 'email_sub_pub_listing_admin', + 'email_tmpl_pub_listing_admin', + 'email_sub_edit_listing_admin', + 'email_tmpl_edit_listing_admin', + 'email_sub_deleted_listing_admin', + 'email_tmpl_deleted_listing_admin', + 'email_sub_new_order_admin', + 'email_tmpl_new_order_admin', + 'email_sub_completed_order_admin', + 'email_tmpl_completed_order_admin', 'email_sub_rejected_listing', 'email_tmpl_rejected_listing', 'email_sub_edit_listing', diff --git a/docs/agents/directorist-settings-panel/references/settings-option-catalog.md b/docs/agents/directorist-settings-panel/references/settings-option-catalog.md index edacec6f32..3ee1f444bf 100644 --- a/docs/agents/directorist-settings-panel/references/settings-option-catalog.md +++ b/docs/agents/directorist-settings-panel/references/settings-option-catalog.md @@ -268,6 +268,13 @@ Redesigned UI note: Notifications renders as `Channels` plus merged `Events & Te - `email_note`: placeholder note shown in template settings. - `email_sub_new_listing`, `email_tmpl_new_listing`: new listing email subject/body. - `email_sub_pub_listing`, `email_tmpl_pub_listing`: approved/published listing subject/body. +- `email_sub_new_listing_admin`, `email_tmpl_new_listing_admin`: admin listing-submitted subject/body; default to the legacy admin email. Read by `ATBDP_Email::notify_admin_listing_submitted()`. +- `email_sub_pub_listing_admin`, `email_tmpl_pub_listing_admin`: admin listing-published subject/body; default to the legacy admin email. Read by `ATBDP_Email::notify_admin_listing_published()`. +- `email_sub_edit_listing_admin`, `email_tmpl_edit_listing_admin`: admin listing-edited subject/body; default to the legacy admin email. Read by `ATBDP_Email::notify_admin_listing_edited()`. +- `email_sub_deleted_listing_admin`, `email_tmpl_deleted_listing_admin`: admin listing-deleted subject/body; default to the legacy admin email. Read by `ATBDP_Email::notify_admin_listing_deleted()`. +- `email_sub_new_order_admin`, `email_tmpl_new_order_admin`: admin order-created subject/body; default to the legacy admin email. Read by `ATBDP_Email::notify_admin_order_created()`. +- `email_sub_completed_order_admin`, `email_tmpl_completed_order_admin`: admin order-completed subject/body; default to the legacy admin email. Read by `ATBDP_Email::notify_admin_order_completed()`. + These admin values are stored in `atbdp_option` through the existing settings save handler and use its existing text-field sanitization. The listing-owner option keys remain independent; existing owner values are not copied into the new admin fields. - `email_sub_rejected_listing`, `email_tmpl_rejected_listing`: rejected listing subject/body. - `email_sub_edit_listing`, `email_tmpl_edit_listing`: edited listing subject/body. - `email_sub_to_expire_listing`, `email_tmpl_to_expire_listing`: about-to-expire listing subject/body. diff --git a/includes/classes/class-email.php b/includes/classes/class-email.php index 8fb65c1940..7fa65f70b6 100644 --- a/includes/classes/class-email.php +++ b/includes/classes/class-email.php @@ -6,9 +6,6 @@ */ class ATBDP_Email { - /*@todo; later make all admin email template customization by setting page just like user email templates*/ - - public function __construct() { /*Fire up emails when a listing is inserted in the front end*/ add_action( 'atbdp_listing_inserted', [ $this, 'notify_admin_listing_submitted' ] ); @@ -678,10 +675,10 @@ public function notify_admin_listing_published( $listing_id ) { return false; } - $s = __( '[==SITE_NAME==] The Listing #==LISTING_ID== has been published on your website', 'directorist' ); + $s = get_directorist_option( 'email_sub_pub_listing_admin', __( '[==SITE_NAME==] The Listing #==LISTING_ID== has been published on your website', 'directorist' ) ); $subject = $this->replace_in_content( $s, null, $listing_id ); - $body = $this->get_listing_published_admin_tmpl(); + $body = get_directorist_option( 'email_tmpl_pub_listing_admin', $this->get_listing_published_admin_tmpl() ); $body = $this->replace_in_content( $body, null, $listing_id ); $message = atbdp_email_html( $subject, $body ); $to = $this->get_admin_email_list(); @@ -1017,9 +1014,9 @@ public function notify_admin_listing_deleted( $listing_id ) { return false; // vail if order created notification to admin off } - $s = __( '[==SITE_NAME==] A Listing has been deleted [ID#: ==LISTING_ID==] on your website', 'directorist' ); + $s = get_directorist_option( 'email_sub_deleted_listing_admin', __( '[==SITE_NAME==] A Listing has been deleted [ID#: ==LISTING_ID==] on your website', 'directorist' ) ); $sub = $this->replace_in_content( $s, null, $listing_id ); - $body = $this->replace_in_content( $this->get_listing_deleted_admin_tmpl(), null, $listing_id ); + $body = $this->replace_in_content( get_directorist_option( 'email_tmpl_deleted_listing_admin', $this->get_listing_deleted_admin_tmpl() ), null, $listing_id ); $body = atbdp_email_html( $sub, $body ); return $this->send_mail( $this->get_admin_email_list(), $sub, $body, $this->get_email_headers() ); } @@ -1079,10 +1076,10 @@ public function notify_admin_order_created( $order_id, $listing_id ) { return false; // vail if order created notification to admin off } - $s = __( '[==SITE_NAME==] You have a new order #==ORDER_ID== on your website', 'directorist' ); + $s = get_directorist_option( 'email_sub_new_order_admin', __( '[==SITE_NAME==] You have a new order #==ORDER_ID== on your website', 'directorist' ) ); $subject = $this->replace_in_content( $s, $order_id ); - $t = $this->get_order_created_admin_tmpl(); // get the email template & replace order_receipt placeholder in it + $t = get_directorist_option( 'email_tmpl_new_order_admin', $this->get_order_created_admin_tmpl() ); // get the email template & replace order_receipt placeholder in it $body = str_replace( '==ORDER_RECEIPT_URL==', admin_url( 'edit.php?post_type=atbdp_orders' ), $t ); /*@todo; MAYBE ?? it would be good if there is a dedicated page for viewing the payment receipt by the admin regardless the order_receipt shortcode is used or not.*/ $body = $this->replace_in_content( $body, $order_id, $listing_id ); $message = atbdp_email_html( $subject, $body ); @@ -1124,10 +1121,10 @@ public function notify_admin_order_completed( $order_id, $listing_id, $order = n return false; } - $s = __( '[==SITE_NAME==] Payment Notification : Order #==ORDER_ID== Completed', 'directorist' ); + $s = get_directorist_option( 'email_sub_completed_order_admin', __( '[==SITE_NAME==] Payment Notification : Order #==ORDER_ID== Completed', 'directorist' ) ); $subject = $this->replace_in_content( $s, $order_id, $listing_id, null, null, 0, $order ); - $t = $this->get_order_completed_admin_tmpl(); // get the email template & replace order_receipt placeholder in it + $t = get_directorist_option( 'email_tmpl_completed_order_admin', $this->get_order_completed_admin_tmpl() ); // get the email template & replace order_receipt placeholder in it $body = str_replace( '==ORDER_RECEIPT_URL==', $this->get_admin_order_receipt_url( $order_id, $order ), $t ); $body = $this->replace_in_content( $body, $order_id, $listing_id, null, null, 0, $order ); $message = atbdp_email_html( $subject, $body ); @@ -1166,12 +1163,12 @@ public function notify_admin_listing_submitted( $listing_id ) { return false; } - $s = __( '[==SITE_NAME==] A new listing has been submitted on your website', 'directorist' ); - $subject = str_replace( '==SITE_NAME==', get_option( 'blogname' ), $s ); + $s = get_directorist_option( 'email_sub_new_listing_admin', __( '[==SITE_NAME==] A new listing has been submitted on your website', 'directorist' ) ); + $subject = $this->replace_in_content( $s, null, $listing_id ); $to = $this->get_admin_email_list(); $headers = $this->get_email_headers(); - $body = $this->get_listing_submitted_admin_tmpl(); + $body = get_directorist_option( 'email_tmpl_new_listing_admin', $this->get_listing_submitted_admin_tmpl() ); $message = $this->replace_in_content( $body, null, $listing_id ); $body = atbdp_email_html( $subject, $message ); @@ -1231,10 +1228,10 @@ public function notify_admin_listing_edited( $listing_id ) { return false; } - $s = __( '[==SITE_NAME==] The Listing #==LISTING_ID== has been edited on your website', 'directorist' ); + $s = get_directorist_option( 'email_sub_edit_listing_admin', __( '[==SITE_NAME==] The Listing #==LISTING_ID== has been edited on your website', 'directorist' ) ); $subject = $this->replace_in_content( $s, null, $listing_id ); $to = $this->get_admin_email_list(); - $body = $this->get_listing_edited_admin_tmpl(); + $body = get_directorist_option( 'email_tmpl_edit_listing_admin', $this->get_listing_edited_admin_tmpl() ); $body = $this->replace_in_content( $body, null, $listing_id ); $message = atbdp_email_html( $subject, $body ); $headers = $this->get_email_headers(); diff --git a/includes/classes/class-settings-panel.php b/includes/classes/class-settings-panel.php index eb43dbd45c..0996b01e08 100644 --- a/includes/classes/class-settings-panel.php +++ b/includes/classes/class-settings-panel.php @@ -3555,6 +3555,66 @@ public function prepare_settings() { ", 'directorist' ), ], + 'email_sub_new_listing_admin' => [ + 'type' => 'text', + 'label' => __( 'Admin Email Subject', 'directorist' ), + 'value' => __( '[==SITE_NAME==] A new listing has been submitted on your website', 'directorist' ), + ], + 'email_tmpl_new_listing_admin' => [ + 'type' => 'textarea', + 'label' => __( 'Admin Email Body', 'directorist' ), + 'value' => ATBDP()->email->get_listing_submitted_admin_tmpl(), + ], + 'email_sub_pub_listing_admin' => [ + 'type' => 'text', + 'label' => __( 'Admin Email Subject', 'directorist' ), + 'value' => __( '[==SITE_NAME==] The Listing #==LISTING_ID== has been published on your website', 'directorist' ), + ], + 'email_tmpl_pub_listing_admin' => [ + 'type' => 'textarea', + 'label' => __( 'Admin Email Body', 'directorist' ), + 'value' => ATBDP()->email->get_listing_published_admin_tmpl(), + ], + 'email_sub_edit_listing_admin' => [ + 'type' => 'text', + 'label' => __( 'Admin Email Subject', 'directorist' ), + 'value' => __( '[==SITE_NAME==] The Listing #==LISTING_ID== has been edited on your website', 'directorist' ), + ], + 'email_tmpl_edit_listing_admin' => [ + 'type' => 'textarea', + 'label' => __( 'Admin Email Body', 'directorist' ), + 'value' => ATBDP()->email->get_listing_edited_admin_tmpl(), + ], + 'email_sub_deleted_listing_admin' => [ + 'type' => 'text', + 'label' => __( 'Admin Email Subject', 'directorist' ), + 'value' => __( '[==SITE_NAME==] A Listing has been deleted [ID#: ==LISTING_ID==] on your website', 'directorist' ), + ], + 'email_tmpl_deleted_listing_admin' => [ + 'type' => 'textarea', + 'label' => __( 'Admin Email Body', 'directorist' ), + 'value' => ATBDP()->email->get_listing_deleted_admin_tmpl(), + ], + 'email_sub_new_order_admin' => [ + 'type' => 'text', + 'label' => __( 'Admin Email Subject', 'directorist' ), + 'value' => __( '[==SITE_NAME==] You have a new order #==ORDER_ID== on your website', 'directorist' ), + ], + 'email_tmpl_new_order_admin' => [ + 'type' => 'textarea', + 'label' => __( 'Admin Email Body', 'directorist' ), + 'value' => ATBDP()->email->get_order_created_admin_tmpl(), + ], + 'email_sub_completed_order_admin' => [ + 'type' => 'text', + 'label' => __( 'Admin Email Subject', 'directorist' ), + 'value' => __( '[==SITE_NAME==] Payment Notification : Order #==ORDER_ID== Completed', 'directorist' ), + ], + 'email_tmpl_completed_order_admin' => [ + 'type' => 'textarea', + 'label' => __( 'Admin Email Body', 'directorist' ), + 'value' => ATBDP()->email->get_order_completed_admin_tmpl(), + ], 'email_sub_rejected_listing' => [ 'type' => 'text', 'label' => __( 'Email Subject', 'directorist' ),