|
1
|
|
|
<?php |
|
|
|
|
|
|
2
|
|
|
/** |
|
3
|
|
|
* New Donation Email |
|
4
|
|
|
* |
|
5
|
|
|
* Donation Notification will be sent to recipient(s) when new donation received except offline donation. |
|
6
|
|
|
* |
|
7
|
|
|
* |
|
8
|
|
|
* @package Give |
|
9
|
|
|
* @subpackage Classes/Emails |
|
10
|
|
|
* @copyright Copyright (c) 2016, WordImpress |
|
11
|
|
|
* @license https://opensource.org/licenses/gpl-license GNU Public License |
|
12
|
|
|
* @since 2.0 |
|
13
|
|
|
*/ |
|
14
|
|
|
|
|
15
|
|
|
// Exit if access directly. |
|
16
|
|
|
if ( ! defined( 'ABSPATH' ) ) { |
|
17
|
|
|
exit; |
|
18
|
|
|
} |
|
19
|
|
|
|
|
20
|
|
|
if ( ! class_exists( 'Give_New_Donation_Email' ) ) : |
|
21
|
|
|
|
|
22
|
|
|
/** |
|
23
|
|
|
* Give_New_Donation_Email |
|
24
|
|
|
* |
|
25
|
|
|
* @abstract |
|
26
|
|
|
* @since 2.0 |
|
27
|
|
|
*/ |
|
28
|
|
|
class Give_New_Donation_Email extends Give_Email_Notification { |
|
29
|
|
|
/* @var Give_Payment $payment */ |
|
30
|
|
|
public $payment; |
|
31
|
|
|
|
|
32
|
|
|
/** |
|
33
|
|
|
* Create a class instance. |
|
34
|
|
|
* |
|
35
|
|
|
* @access public |
|
36
|
|
|
* @since 2.0 |
|
37
|
|
|
*/ |
|
38
|
|
|
public function init() { |
|
39
|
|
|
// Initialize empty payment. |
|
40
|
|
|
$this->payment = new Give_Payment( 0 ); |
|
41
|
|
|
|
|
42
|
|
|
$this->load( array( |
|
43
|
|
|
'id' => 'new-donation', |
|
44
|
|
|
'label' => __( 'New Donation', 'give' ), |
|
45
|
|
|
'description' => __( 'Donation Notification will be sent to recipient(s) when new donation received except offline donation.', 'give' ), |
|
46
|
|
|
'has_recipient_field' => true, |
|
47
|
|
|
'notification_status' => 'enabled', |
|
48
|
|
|
'form_metabox_setting' => true, |
|
49
|
|
|
'default_email_subject' => esc_attr__( 'New Donation - #{payment_id}', 'give' ), |
|
50
|
|
|
'default_email_message' => give_get_default_donation_notification_email(), |
|
51
|
|
|
|
|
52
|
|
|
) ); |
|
53
|
|
|
|
|
54
|
|
|
add_action( "give_{$this->config['id']}_email_notification", array( $this, 'setup_email_notification' ) ); |
|
55
|
|
|
} |
|
56
|
|
|
|
|
57
|
|
|
|
|
58
|
|
|
/** |
|
59
|
|
|
* Get email subject. |
|
60
|
|
|
* |
|
61
|
|
|
* @since 2.0 |
|
62
|
|
|
* @access public |
|
63
|
|
|
* |
|
64
|
|
|
* @param int $form_id |
|
65
|
|
|
* |
|
66
|
|
|
* @return string |
|
67
|
|
|
*/ |
|
68
|
|
|
public function get_email_subject( $form_id = null ) { |
|
69
|
|
|
$subject = wp_strip_all_tags( |
|
70
|
|
|
Give_Email_Notification_Util::get_value( |
|
71
|
|
|
$this, |
|
72
|
|
|
Give_Email_Setting_Field::get_prefix( $this, $form_id ) . 'email_subject', |
|
73
|
|
|
$form_id, |
|
74
|
|
|
$this->config['default_email_subject'] |
|
75
|
|
|
) |
|
76
|
|
|
); |
|
77
|
|
|
|
|
78
|
|
|
/** |
|
79
|
|
|
* Filters the donation notification subject. |
|
80
|
|
|
* Note: This filter will deprecate soon. |
|
81
|
|
|
* |
|
82
|
|
|
* @since 1.0 |
|
83
|
|
|
*/ |
|
84
|
|
|
$subject = apply_filters( 'give_admin_donation_notification_subject', $subject, $this->payment->ID ); |
|
85
|
|
|
|
|
86
|
|
|
/** |
|
87
|
|
|
* Filters the donation notification subject. |
|
88
|
|
|
* |
|
89
|
|
|
* @since 2.0 |
|
90
|
|
|
*/ |
|
91
|
|
|
$subject = apply_filters( "give_{$this->config['id']}_get_email_subject", $subject, $this, $form_id ); |
|
92
|
|
|
|
|
93
|
|
|
return $subject; |
|
94
|
|
|
} |
|
95
|
|
|
|
|
96
|
|
|
|
|
97
|
|
|
/** |
|
98
|
|
|
* Get email attachment. |
|
99
|
|
|
* |
|
100
|
|
|
* @since 2.0 |
|
101
|
|
|
* @access public |
|
102
|
|
|
* |
|
103
|
|
|
* @param int $form_id |
|
104
|
|
|
* |
|
105
|
|
|
* @return string |
|
106
|
|
|
*/ |
|
107
|
|
|
public function get_email_message( $form_id = null ) { |
|
108
|
|
|
$message = Give_Email_Notification_Util::get_value( |
|
109
|
|
|
$this, |
|
110
|
|
|
Give_Email_Setting_Field::get_prefix( $this, $form_id ) . 'email_message', |
|
111
|
|
|
$form_id, |
|
112
|
|
|
$this->config['default_email_message'] |
|
113
|
|
|
); |
|
114
|
|
|
|
|
115
|
|
|
/** |
|
116
|
|
|
* Filter the email message |
|
117
|
|
|
* Note: This filter will deprecate soon. |
|
118
|
|
|
* |
|
119
|
|
|
* @since 1.0 |
|
120
|
|
|
*/ |
|
121
|
|
|
$message = apply_filters( |
|
122
|
|
|
'give_donation_notification', |
|
123
|
|
|
$message, |
|
124
|
|
|
$this->payment->ID, |
|
125
|
|
|
$this->payment->payment_meta |
|
126
|
|
|
); |
|
127
|
|
|
|
|
128
|
|
|
/** |
|
129
|
|
|
* Filter the email message |
|
130
|
|
|
* |
|
131
|
|
|
* @since 2.0 |
|
132
|
|
|
*/ |
|
133
|
|
|
$message = apply_filters( |
|
134
|
|
|
"give_{$this->config['id']}_get_default_email_message", |
|
135
|
|
|
$message, |
|
136
|
|
|
$this, |
|
137
|
|
|
$form_id |
|
138
|
|
|
); |
|
139
|
|
|
|
|
140
|
|
|
return $message; |
|
141
|
|
|
} |
|
142
|
|
|
|
|
143
|
|
|
|
|
144
|
|
|
/** |
|
145
|
|
|
* Get email attachment. |
|
146
|
|
|
* |
|
147
|
|
|
* @since 2.0 |
|
148
|
|
|
* @access public |
|
149
|
|
|
* |
|
150
|
|
|
* @param int $form_id |
|
151
|
|
|
* @return array |
|
152
|
|
|
*/ |
|
153
|
|
|
public function get_email_attachments( $form_id = null ) { |
|
154
|
|
|
/** |
|
155
|
|
|
* Filters the donation notification email attachments. |
|
156
|
|
|
* By default, there is no attachment but plugins can hook in to provide one more multiple. |
|
157
|
|
|
* Note: This filter will deprecate soon. |
|
158
|
|
|
* |
|
159
|
|
|
* @since 1.0 |
|
160
|
|
|
*/ |
|
161
|
|
|
$attachments = apply_filters( |
|
162
|
|
|
'give_admin_donation_notification_attachments', |
|
163
|
|
|
array(), |
|
164
|
|
|
$this->payment->ID, |
|
165
|
|
|
$this->payment->payment_meta |
|
166
|
|
|
); |
|
167
|
|
|
|
|
168
|
|
|
/** |
|
169
|
|
|
* Filters the donation notification email attachments. |
|
170
|
|
|
* By default, there is no attachment but plugins can hook in to provide one more multiple. |
|
171
|
|
|
* |
|
172
|
|
|
* @since 2.0 |
|
173
|
|
|
*/ |
|
174
|
|
|
$attachments = apply_filters( |
|
175
|
|
|
"give_{$this->config['id']}_get_email_attachments", |
|
176
|
|
|
$attachments, |
|
177
|
|
|
$this, |
|
178
|
|
|
$form_id |
|
179
|
|
|
); |
|
180
|
|
|
|
|
181
|
|
|
return $attachments; |
|
182
|
|
|
} |
|
183
|
|
|
|
|
184
|
|
|
/** |
|
185
|
|
|
* Set email data |
|
186
|
|
|
* |
|
187
|
|
|
* @since 2.0 |
|
188
|
|
|
*/ |
|
189
|
|
|
public function setup_email_data() { |
|
190
|
|
|
/** |
|
191
|
|
|
* Filters the from name. |
|
192
|
|
|
* Note: This filter will deprecate soon. |
|
193
|
|
|
* |
|
194
|
|
|
* @since 1.0 |
|
195
|
|
|
*/ |
|
196
|
|
|
$from_name = apply_filters( |
|
197
|
|
|
'give_donation_from_name', |
|
198
|
|
|
Give()->emails->get_from_name(), |
|
199
|
|
|
$this->payment->ID, |
|
200
|
|
|
$this->payment->payment_meta |
|
201
|
|
|
); |
|
202
|
|
|
|
|
203
|
|
|
/** |
|
204
|
|
|
* Filters the from email. |
|
205
|
|
|
* Note: This filter will deprecate soon. |
|
206
|
|
|
* |
|
207
|
|
|
* @since 1.0 |
|
208
|
|
|
*/ |
|
209
|
|
|
$from_email = apply_filters( |
|
210
|
|
|
'give_donation_from_address', |
|
211
|
|
|
Give()->emails->get_from_address(), |
|
212
|
|
|
$this->payment->ID, |
|
213
|
|
|
$this->payment->payment_meta |
|
214
|
|
|
); |
|
215
|
|
|
|
|
216
|
|
|
Give()->emails->__set( 'from_name', $from_name ); |
|
217
|
|
|
Give()->emails->__set( 'from_email', $from_email ); |
|
218
|
|
|
Give()->emails->__set( 'heading', esc_html__( 'New Donation!', 'give' ) ); |
|
219
|
|
|
/** |
|
220
|
|
|
* Filters the donation notification email headers. |
|
221
|
|
|
* |
|
222
|
|
|
* @since 1.0 |
|
223
|
|
|
*/ |
|
224
|
|
|
$headers = apply_filters( |
|
225
|
|
|
'give_admin_donation_notification_headers', |
|
226
|
|
|
Give()->emails->get_headers(), |
|
227
|
|
|
$this->payment->ID, |
|
228
|
|
|
$this->payment->payment_meta |
|
229
|
|
|
); |
|
230
|
|
|
|
|
231
|
|
|
Give()->emails->__set( 'headers', $headers ); |
|
232
|
|
|
} |
|
233
|
|
|
|
|
234
|
|
|
/** |
|
235
|
|
|
* Setup email notification. |
|
236
|
|
|
* |
|
237
|
|
|
* @since 2.0 |
|
238
|
|
|
* @access public |
|
239
|
|
|
* |
|
240
|
|
|
* @param int $payment_id |
|
241
|
|
|
*/ |
|
242
|
|
|
public function setup_email_notification( $payment_id ) { |
|
243
|
|
|
$this->payment = new Give_Payment( $payment_id ); |
|
244
|
|
|
|
|
245
|
|
|
// Set email data. |
|
246
|
|
|
$this->setup_email_data(); |
|
247
|
|
|
|
|
248
|
|
|
// Send email. |
|
249
|
|
|
$this->send_email_notification( array( |
|
250
|
|
|
'payment_id' => $payment_id, |
|
251
|
|
|
) ); |
|
252
|
|
|
} |
|
253
|
|
|
} |
|
254
|
|
|
|
|
255
|
|
|
endif; // End class_exists check |
|
256
|
|
|
|
|
257
|
|
|
return Give_New_Donation_Email::get_instance(); |
|
258
|
|
|
|
The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.
The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.
To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.