PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.7.2
GiveWP – Donation Plugin and Fundraising Platform v2.7.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / includes / admin / emails / class-email-access-email.php
give / includes / admin / emails Last commit date
abstract-email-notification.php 6 years ago ajax-handler.php 6 years ago backward-compatibility.php 6 years ago class-donation-receipt-email.php 6 years ago class-donor-note-email.php 6 years ago class-donor-register-email.php 6 years ago class-email-access-email.php 6 years ago class-email-notification-table.php 6 years ago class-email-notification-util.php 6 years ago class-email-notifications.php 6 years ago class-email-setting-field.php 6 years ago class-new-donation-email.php 6 years ago class-new-donor-register-email.php 6 years ago class-new-offline-donation-email.php 6 years ago class-offline-donation-instruction-email.php 6 years ago filters.php 6 years ago
class-email-access-email.php
339 lines
1 <?php
2 /**
3 * Email access notification
4 *
5 * @package Give
6 * @subpackage Classes/Emails
7 * @copyright Copyright (c) 2016, GiveWP
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 2.0
10 */
11
12 // Exit if access directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 if ( ! class_exists( 'Give_Email_Access_Email' ) ) :
18
19 /**
20 * Give_Email_Access_Email
21 *
22 * @abstract
23 * @since 2.0
24 */
25 class Give_Email_Access_Email extends Give_Email_Notification {
26 /**
27 * Create a class instance.
28 *
29 * @access public
30 * @since 2.0
31 */
32 public function init() {
33 $this->load(
34 array(
35 'id' => 'email-access',
36 'label' => __( 'Email access', 'give' ),
37 'description' => __( 'Sent when donors request access to their donation history using only their email as verification. (See Settings > General > Access Control)', 'give' ),
38 'notification_status' => give_get_option( 'email_access', 'disabled' ),
39 'form_metabox_setting' => false,
40 'notification_status_editable' => false,
41 'email_tag_context' => 'donor',
42 'recipient_group_name' => __( 'Donor', 'give' ),
43 'default_email_subject' => sprintf( __( 'Please confirm your email for %s', 'give' ), get_bloginfo( 'url' ) ),
44 'default_email_message' => $this->get_default_email_message(),
45 'default_email_header' => __( 'Confirm Email', 'give' ),
46 'notices' => array(
47 'non-notification-status-editable' => sprintf(
48 '%1$s <a href="%2$s">%3$s &raquo;</a>',
49 __( 'This notification is automatically toggled based on whether the email access is enabled or not.', 'give' ),
50 esc_url( admin_url( 'edit.php?post_type=give_forms&page=give-settings&tab=general&section=access-control' ) ),
51 __( 'Edit Setting', 'give' )
52 ),
53 ),
54 )
55 );
56
57 add_filter( "give_{$this->config['id']}_email_notification", array( $this, 'setup_email_notification' ), 10, 2 );
58 add_action( 'give_save_settings_give_settings', array( $this, 'set_notification_status' ), 10, 2 );
59 add_filter( 'give_email_preview_header', array( $this, 'email_preview_header' ), 10, 2 );
60 }
61
62 /**
63 * Get email subject.
64 *
65 * @since 2.0
66 * @access public
67 *
68 * @param int $form_id
69 *
70 * @return string
71 */
72 public function get_email_subject( $form_id = null ) {
73 $subject = wp_strip_all_tags(
74 Give_Email_Notification_Util::get_value(
75 $this,
76 Give_Email_Setting_Field::get_prefix( $this, $form_id ) . 'email_subject',
77 $form_id,
78 $this->config['default_email_subject']
79 )
80 );
81
82 /**
83 * Filters the donation notification subject.
84 * Note: This filter will deprecate soon.
85 *
86 * @since 1.0
87 */
88 $subject = apply_filters( 'give_email_access_token_subject', $subject );
89
90 /**
91 * Filters the donation notification subject.
92 *
93 * @since 2.0
94 */
95 $subject = apply_filters( "give_{$this->config['id']}_get_email_subject", $subject, $this, $form_id );
96
97 return $subject;
98 }
99
100
101 /**
102 * Get email attachment.
103 *
104 * @since 2.0
105 * @access public
106 *
107 * @param int $form_id
108 *
109 * @return string
110 */
111 public function get_email_message( $form_id = null ) {
112 $message = Give_Email_Notification_Util::get_value(
113 $this,
114 Give_Email_Setting_Field::get_prefix( $this, $form_id ) . 'email_message',
115 $form_id,
116 $this->config['default_email_message']
117 );
118
119 /**
120 * Filter the email message
121 * Note: This filter will deprecate soon.
122 *
123 * @since 1.0
124 */
125 $message = apply_filters( 'give_email_access_token_message', $message );
126
127 /**
128 * Filter the email message
129 *
130 * @since 2.0
131 */
132 $message = apply_filters( "give_{$this->config['id']}_get_default_email_message", $message, $this, $form_id );
133
134 return $message;
135 }
136
137
138 /**
139 * Get email attachment.
140 *
141 * @since 2.0
142 * @access public
143 *
144 * @param int $form_id
145 * @return array
146 */
147 public function get_email_attachments( $form_id = null ) {
148 /**
149 * Filters the donation notification email attachments.
150 * By default, there is no attachment but plugins can hook in to provide one more multiple.
151 * Note: This filter will deprecate soon.
152 *
153 * @since 1.0
154 */
155 $attachments = apply_filters( 'give_admin_donation_notification_attachments', array() );
156
157 /**
158 * Filters the donation notification email attachments.
159 * By default, there is no attachment but plugins can hook in to provide one more multiple.
160 *
161 * @since 2.0
162 */
163 $attachments = apply_filters( "give_{$this->config['id']}_get_email_attachments", $attachments, $this, $form_id );
164
165 return $attachments;
166 }
167
168
169 /**
170 * Get default email message.
171 *
172 * @since 2.0
173 * @access public
174 *
175 * @return string
176 */
177 public function get_default_email_message() {
178 $message = __( 'Please click the link to access your donation history on {site_url}. If you did not request this email, please contact {admin_email}.', 'give' ) . "\n\n";
179 $message .= '{email_access_link}' . "\n\n";
180 $message .= "\n\n";
181 $message .= __( 'Sincerely,', 'give' ) . "\n";
182 $message .= get_bloginfo( 'name' ) . "\n";
183
184 /**
185 * Filter the new donation email message
186 *
187 * @since 2.0
188 *
189 * @param string $message
190 */
191 return apply_filters( "give_{$this->config['id']}_get_default_email_message", $message, $this );
192 }
193
194
195 /**
196 * Get email header
197 *
198 * @since 2.2.1
199 * @access public
200 *
201 * @param null $form_id
202 *
203 * @return string
204 */
205 public function get_email_header( $form_id = null ) {
206 $subject = parent::get_email_header( $form_id );
207
208 /**
209 * Filter the email header
210 *
211 * @since 1.0
212 */
213 $subject = apply_filters( 'give_email_access_token_heading', $subject );
214
215 return $subject;
216 }
217
218
219 /**
220 * Set email data
221 *
222 * @since 2.0
223 */
224 public function setup_email_data() {
225 /**
226 * Filters the from name.
227 * Note: This filter will deprecate soon.
228 *
229 * @since 1.0
230 */
231 $from_name = apply_filters( 'give_donation_from_name', Give()->emails->get_from_name() );
232
233 /**
234 * Filters the from email.
235 * Note: This filter will deprecate soon.
236 *
237 * @since 1.0
238 */
239 $from_email = apply_filters( 'give_donation_from_address', Give()->emails->get_from_address() );
240
241 Give()->emails->__set( 'from_name', $from_name );
242 Give()->emails->__set( 'from_email', $from_email );
243
244 /**
245 * Filters the donation notification email headers.
246 *
247 * @since 1.0
248 */
249 $headers = apply_filters( 'give_admin_donation_notification_headers', Give()->emails->get_headers() );
250
251 Give()->emails->__set( 'headers', $headers );
252 }
253
254 /**
255 * Setup email notification.
256 *
257 * @param int $donor_id Donor ID.
258 * @param string $email Donor Email.
259 *
260 * @since 2.0
261 * @access public
262 *
263 * @return bool
264 */
265 public function setup_email_notification( $donor_id, $email ) {
266 $donor = Give()->donors->get_donor_by( 'email', $email );
267
268 if ( ! $donor->id ) {
269 wp_die(
270 esc_html__( 'Cheatin&#8217; uh?', 'give' ),
271 esc_html__( 'Error', 'give' ),
272 array(
273 'response' => 400,
274 )
275 );
276 }
277
278 $this->recipient_email = $email;
279
280 // Set email data.
281 $this->setup_email_data();
282
283 // Send email.
284 return $this->send_email_notification(
285 array(
286 'donor_id' => $donor_id,
287 'user_id' => $donor->user_id,
288 )
289 );
290 }
291
292
293 /**
294 * Set notification status
295 *
296 * @since 2.0
297 * @access public
298 *
299 * @param $update_options
300 * @param $option_name
301 */
302 public function set_notification_status( $update_options, $option_name ) {
303 // Get updated settings.
304 $update_options = give_get_settings();
305
306 if (
307 ! empty( $update_options['email_access'] )
308 && ! empty( $update_options[ "{$this->config['id']}_notification" ] )
309 && $update_options['email_access'] !== $update_options[ "{$this->config['id']}_notification" ]
310 ) {
311 $update_options[ "{$this->config['id']}_notification" ] = $update_options['email_access'];
312 update_option( $option_name, $update_options, false );
313 }
314 }
315
316
317 /**
318 * email preview header.
319 *
320 * @since 2.0
321 * @access public
322 *
323 * @param string $email_preview_header
324 * @param Give_Email_Access_Email $email
325 * @return string
326 */
327 public function email_preview_header( $email_preview_header, $email ) {
328 if ( $this->config['id'] === $email->config['id'] ) {
329 $email_preview_header = '';
330 }
331
332 return $email_preview_header;
333 }
334 }
335
336 endif; // End class_exists check
337
338 return Give_Email_Access_Email::get_instance();
339