Completed
Push — release/2.1 ( c669cb...a27eea )
by Ravinder
995:32 queued 989:33
created

Give_Settings_Email::output()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 0
dl 0
loc 9
rs 9.9666
c 0
b 0
f 0
1
<?php
2
/**
3
 * Give Settings Page/Tab
4
 *
5
 * @package     Give
6
 * @subpackage  Classes/Give_Settings_Email
7
 * @copyright   Copyright (c) 2016, WordImpress
8
 * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
9
 * @since       1.8
10
 */
11
12
if ( ! defined( 'ABSPATH' ) ) {
13
	exit; // Exit if accessed directly
14
}
15
16
if ( ! class_exists( 'Give_Settings_Email' ) ) :
17
18
	/**
19
	 * Give_Settings_Email.
20
	 *
21
	 * @sine 1.8
22
	 */
23
	class Give_Settings_Email extends Give_Settings_Page {
24
25
		/**
26
		 * Constructor.
27
		 */
28
		public function __construct() {
29
			$this->id    = 'emails';
30
			$this->label = esc_html__( 'Emails', 'give' );
31
32
			$this->default_tab = 'email-settings';
33
34
			parent::__construct();
35
36
			add_action( 'give_admin_field_email_notification', array( $this, 'email_notification_setting' ) );
37
		}
38
39
		/**
40
		 * Get settings array.
41
		 *
42
		 * @since  1.8
43
		 * @return array
44
		 */
45
		public function get_settings() {
46
			$settings        = array();
47
			$current_section = give_get_current_setting_section();
48
49
			switch ( $current_section ) {
50
				case 'email-settings' :
51
					$settings = array(
52
53
						// Section 1: Email Notification Listing.
54
						array(
55
							'desc'       => __( 'Email notifications sent from Give are listed below. Click on an email to configure it.', 'give' ),
56
							'type'       => 'title',
57
							'id'         => 'give_email_notification_settings',
58
							'table_html' => false,
59
						),
60
						array(
61
							'type' => 'email_notification',
62
						),
63
						array(
64
							'type' => 'sectionend',
65
							'id'   => 'give_email_notification_settings',
66
						),
67
68
						// Section 2: Email Sender Setting
69
						array(
70
							'title' => __( 'Email Sender Options', 'give' ),
71
							'id'    => 'give_title_email_settings_1',
72
							'type'  => 'title',
73
						),
74
						array(
75
							'id'      => 'email_template',
76
							'name'    => esc_html__( 'Email Template', 'give' ),
77
							'desc'    => esc_html__( 'Choose your template from the available registered template types.', 'give' ),
78
							'type'    => 'select',
79
							'options' => give_get_email_templates(),
80
						),
81
						array(
82
							'id'   => 'email_logo',
83
							'name' => esc_html__( 'Logo', 'give' ),
84
							'desc' => esc_html__( 'Upload or choose a logo to be displayed at the top of the donation receipt emails. Displayed on HTML emails only.', 'give' ),
85
							'type' => 'file',
86
						),
87
						array(
88
							'id'      => 'from_name',
89
							'name'    => esc_html__( 'From Name', 'give' ),
90
							'desc'    => esc_html__( 'The name which appears in the "From" field in all Give donation emails.', 'give' ),
91
							'default' => get_bloginfo( 'name' ),
92
							'type'    => 'text',
93
						),
94
						array(
95
							'id'      => 'from_email',
96
							'name'    => esc_html__( 'From Email', 'give' ),
97
							'desc'    => esc_html__( 'Email address from which all Give emails are sent from. This will act as the "from" and "reply-to" email address.', 'give' ),
98
							'default' => get_bloginfo( 'admin_email' ),
99
							'type'    => 'text',
100
						),
101
						array(
102
							'name'  => esc_html__( 'Donation Notification Settings Docs Link', 'give' ),
103
							'id'    => 'donation_notification_settings_docs_link',
104
							'url'   => esc_url( 'http://docs.givewp.com/settings-donation-notification' ),
105
							'title' => __( 'Donation Notification Settings', 'give' ),
106
							'type'  => 'give_docs_link',
107
						),
108
						array(
109
							'id'   => 'give_title_email_settings_3',
110
							'type' => 'sectionend',
111
						),
112
					);
113
					break;
114
			}// End switch().
115
116
			/**
117
			 * Filter the emails settings.
118
			 * Backward compatibility: Please do not use this filter. This filter is deprecated in 1.8
119
			 */
120
			$settings = apply_filters( 'give_settings_emails', $settings );
121
122
			/**
123
			 * Filter the settings.
124
			 *
125
			 * @since  1.8
126
			 *
127
			 * @param  array $settings
128
			 */
129
			$settings = apply_filters( 'give_get_settings_' . $this->id, $settings );
130
131
			// Output.
132
			return $settings;
133
		}
134
135
		/**
136
		 * Get sections.
137
		 *
138
		 * @since 1.8
139
		 * @return array
140
		 */
141
		public function get_sections() {
142
			$sections = array(
143
				'email-settings' => esc_html__( 'Email Settings', 'give' ),
144
			);
145
146
			return apply_filters( 'give_get_sections_' . $this->id, $sections );
147
		}
148
149
		/**
150
		 * Render email_notification field type
151
		 *
152
		 * @since  2.0
153
		 * @access public
154
		 */
155
		public function email_notification_setting() {
156
			// Load email notification table.
157
			require_once GIVE_PLUGIN_DIR . 'includes/admin/emails/class-email-notification-table.php';
158
159
			// Init table.
160
			$email_notifications_table = new Give_Email_Notification_Table();
161
162
			// Print table.
163
			$email_notifications_table->prepare_items();
164
			$email_notifications_table->display();
165
		}
166
167
		/**
168
		 * Output the settings.
169
		 *
170
		 * Note: if you want to overwrite this function then manage show/hide save button in your class.
171
		 *
172
		 * @since  1.8
173
		 * @return void
174
		 */
175
		public function output() {
176
			if ( $this->enable_save ) {
177
				$GLOBALS['give_hide_save_button'] = apply_filters( 'give_hide_save_button_on_email_admin_setting_page', false );
178
			}
179
180
			$settings = $this->get_settings();
181
182
			Give_Admin_Settings::output_fields( $settings, 'give_settings' );
183
		}
184
	}
185
186
endif;
187
188
return new Give_Settings_Email();
189