PluginProbe
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) / 1.6.22
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) v1.6.22
1.8.12.3 1.8.12.2 1.8.12.1 1.8.12 1.8.11.3 1.8.11.2 1.8.11.1 1.8.11 1.6.6 1.6.60 1.6.7 1.6.8 1.6.9 1.7.0 1.7.0.1 1.7.0.11 1.7.0.12 1.7.0.14 1.7.0.2 1.7.0.3 1.7.0.5 1.7.0.6 1.7.0.7 1.7.0.9 1.8.0 All 210 releases
charitable / includes / admin / settings / class-charitable-email-settings.php

class-charitable-email-settings.php in Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) 1.6.22, at includes/admin/settings/class-charitable-email-settings.php

178 lines 4.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Charitable Email Settings UI.
4 *
5 * @package Charitable/Classes/Charitable_Email_Settings
6 * @author Eric Daams
7 * @copyright Copyright (c) 2019, Studio 164a
8 * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9 * @since 1.0.0
10 * @version 1.0.0
11 */
12
13 // Exit if accessed directly.
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit;
16 }
17
18 if ( ! class_exists( 'Charitable_Email_Settings' ) ) :
19
20 /**
21 * Charitable_Email_Settings
22 *
23 * @final
24 * @since 1.0.0
25 */
26 final class Charitable_Email_Settings {
27
28 /**
29 * The single instance of this class.
30 *
31 * @var Charitable_Email_Settings|null
32 */
33 private static $instance = null;
34
35 /**
36 * Returns and/or create the single instance of this class.
37 *
38 * @since 1.2.0
39 *
40 * @return Charitable_Email_Settings
41 */
42 public static function get_instance() {
43 if ( is_null( self::$instance ) ) {
44 self::$instance = new self();
45 }
46
47 return self::$instance;
48 }
49
50 /**
51 * Create object instance.
52 *
53 * @since 1.0.0
54 */
55 private function __construct() {
56 }
57
58 /**
59 * Returns all the payment email settings fields.
60 *
61 * @since 1.0.0
62 *
63 * @return array
64 */
65 public function add_email_fields() {
66 if ( ! charitable_is_settings_view( 'emails' ) ) {
67 return array();
68 }
69
70 return array(
71 'section' => array(
72 'title' => '',
73 'type' => 'hidden',
74 'priority' => 10000,
75 'value' => 'emails',
76 'save' => false,
77 ),
78 'section_emails' => array(
79 'title' => __( 'Available Emails', 'charitable' ),
80 'type' => 'heading',
81 'priority' => 5,
82 ),
83 'emails' => array(
84 'title' => false,
85 'callback' => array( $this, 'render_emails_table' ),
86 'priority' => 7,
87 ),
88 'section_email_general' => array(
89 'title' => __( 'General Email Settings', 'charitable' ),
90 'type' => 'heading',
91 'priority' => 10,
92 ),
93 'email_from_name' => array(
94 'title' => __( '"From" Name', 'charitable' ),
95 'type' => 'text',
96 'help' => __( 'The name of the email sender.', 'charitable' ),
97 'priority' => 12,
98 'default' => get_option( 'blogname' ),
99 ),
100 'email_from_email' => array(
101 'title' => __( '"From" Email', 'charitable' ),
102 'type' => 'email',
103 'help' => __( 'The email address of the email sender. This will be the address recipients email if they hit "Reply".', 'charitable' ),
104 'priority' => 14,
105 'default' => get_option( 'admin_email' ),
106 ),
107 );
108 }
109
110 /**
111 * Add settings for each individual email.
112 *
113 * @since 1.0.0
114 *
115 * @param array $fields Array of settings fields.
116 * @return array[]
117 */
118 public function add_individual_email_fields( $fields ) {
119 foreach ( charitable_get_helper( 'emails' )->get_available_emails() as $email ) {
120 $email = new $email;
121 $key = 'emails_' . $email->get_email_id();
122
123 /**
124 * Filter the email fields.
125 *
126 * This filter is primarily useful for adding settings to multiple emails.
127 * If you only want to add fields to one particular email, use this hook instead:
128 *
129 * charitable_settings_fields_emails_email_{email_id}
130 *
131 * @see Charitable_Email::email_settings
132 *
133 * @since 1.0.0
134 *
135 * @param array $settings Email settings.
136 * @param Charitable_Email $email The `Charitable_Email` instance.
137 */
138 $fields[ $key ] = apply_filters( 'charitable_settings_fields_emails_email', $email->email_settings(), $email );
139 }
140
141 return $fields;
142 }
143
144 /**
145 * Display table with emails.
146 *
147 * @since 1.0.0
148 *
149 * @return void
150 */
151 public function render_emails_table( $args ) {
152 charitable_admin_view( 'settings/emails', $args );
153 }
154
155 /**
156 * Add email keys to the settings groups.
157 *
158 * @deprecated 1.8.0
159 *
160 * @since 1.0.0
161 * @since 1.5.7 Deprecated.
162 *
163 * @param string[] $groups Array of settings groups.
164 * @return string[]
165 */
166 public function add_email_settings_dynamic_groups( $groups ) {
167 charitable_get_deprecated()->deprecated_function(
168 __METHOD__,
169 '1.5.7',
170 'Charitable_Email_Settings::add_individual_email_fields()'
171 );
172
173 return $this->add_individual_email_fields( $groups );
174 }
175 }
176
177 endif;
178