PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.6.0
GiveWP – Donation Plugin and Fundraising Platform v2.6.0
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 8 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 7 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 7 years ago
class-email-access-email.php
334 lines
1 <?php
2 /**
3 * Email access notification
4 *
5 *
6 * @package Give
7 * @subpackage Classes/Emails
8 * @copyright Copyright (c) 2016, GiveWP
9 * @license https://opensource.org/licenses/gpl-license GNU Public License
10 * @since 2.0
11 */
12
13 // Exit if access directly.
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit;
16 }
17
18 if ( ! class_exists( 'Give_Email_Access_Email' ) ) :
19
20 /**
21 * Give_Email_Access_Email
22 *
23 * @abstract
24 * @since 2.0
25 */
26 class Give_Email_Access_Email extends Give_Email_Notification {
27 /**
28 * Create a class instance.
29 *
30 * @access public
31 * @since 2.0
32 */
33 public function init() {
34 $this->load( 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 add_filter( "give_{$this->config['id']}_email_notification", array( $this, 'setup_email_notification' ), 10, 2 );
57 add_action( 'give_save_settings_give_settings', array( $this, 'set_notification_status' ), 10, 2 );
58 add_filter( 'give_email_preview_header', array( $this, 'email_preview_header' ), 10, 2 );
59 }
60
61 /**
62 * Get email subject.
63 *
64 * @since 2.0
65 * @access public
66 *
67 * @param int $form_id
68 *
69 * @return string
70 */
71 public function get_email_subject( $form_id = null ) {
72 $subject = wp_strip_all_tags(
73 Give_Email_Notification_Util::get_value(
74 $this,
75 Give_Email_Setting_Field::get_prefix( $this, $form_id ) . 'email_subject',
76 $form_id,
77 $this->config['default_email_subject']
78 )
79 );
80
81 /**
82 * Filters the donation notification subject.
83 * Note: This filter will deprecate soon.
84 *
85 * @since 1.0
86 */
87 $subject = apply_filters( 'give_email_access_token_subject', $subject );
88
89 /**
90 * Filters the donation notification subject.
91 *
92 * @since 2.0
93 */
94 $subject = apply_filters( "give_{$this->config['id']}_get_email_subject", $subject, $this, $form_id );
95
96 return $subject;
97 }
98
99
100 /**
101 * Get email attachment.
102 *
103 * @since 2.0
104 * @access public
105 *
106 * @param int $form_id
107 *
108 * @return string
109 */
110 public function get_email_message( $form_id = null ) {
111 $message = Give_Email_Notification_Util::get_value(
112 $this,
113 Give_Email_Setting_Field::get_prefix( $this, $form_id ) . 'email_message',
114 $form_id,
115 $this->config['default_email_message']
116 );
117
118 /**
119 * Filter the email message
120 * Note: This filter will deprecate soon.
121 *
122 * @since 1.0
123 */
124 $message = apply_filters( 'give_email_access_token_message', $message );
125
126 /**
127 * Filter the email message
128 *
129 * @since 2.0
130 */
131 $message = apply_filters( "give_{$this->config['id']}_get_default_email_message", $message, $this, $form_id );
132
133 return $message;
134 }
135
136
137 /**
138 * Get email attachment.
139 *
140 * @since 2.0
141 * @access public
142 *
143 * @param int $form_id
144 * @return array
145 */
146 public function get_email_attachments( $form_id = null ) {
147 /**
148 * Filters the donation notification email attachments.
149 * By default, there is no attachment but plugins can hook in to provide one more multiple.
150 * Note: This filter will deprecate soon.
151 *
152 * @since 1.0
153 */
154 $attachments = apply_filters( 'give_admin_donation_notification_attachments', array() );
155
156 /**
157 * Filters the donation notification email attachments.
158 * By default, there is no attachment but plugins can hook in to provide one more multiple.
159 *
160 * @since 2.0
161 */
162 $attachments = apply_filters( "give_{$this->config['id']}_get_email_attachments", $attachments, $this, $form_id );
163
164 return $attachments;
165 }
166
167
168 /**
169 * Get default email message.
170 *
171 * @since 2.0
172 * @access public
173 *
174 * @return string
175 */
176 public function get_default_email_message() {
177 $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";
178 $message .= '{email_access_link}' . "\n\n";
179 $message .= "\n\n";
180 $message .= __( 'Sincerely,', 'give' ) . "\n";
181 $message .= get_bloginfo( 'name' ) . "\n";
182
183 /**
184 * Filter the new donation email message
185 *
186 * @since 2.0
187 *
188 * @param string $message
189 */
190 return apply_filters( "give_{$this->config['id']}_get_default_email_message", $message, $this );
191 }
192
193
194 /**
195 * Get email header
196 *
197 * @since 2.2.1
198 * @access public
199 *
200 * @param null $form_id
201 *
202 * @return string
203 */
204 public function get_email_header( $form_id = null ) {
205 $subject = parent::get_email_header( $form_id );
206
207 /**
208 * Filter the email header
209 *
210 * @since 1.0
211 */
212 $subject = apply_filters( 'give_email_access_token_heading', $subject );
213
214 return $subject;
215 }
216
217
218 /**
219 * Set email data
220 *
221 * @since 2.0
222 */
223 public function setup_email_data() {
224 /**
225 * Filters the from name.
226 * Note: This filter will deprecate soon.
227 *
228 * @since 1.0
229 */
230 $from_name = apply_filters( 'give_donation_from_name', Give()->emails->get_from_name() );
231
232 /**
233 * Filters the from email.
234 * Note: This filter will deprecate soon.
235 *
236 * @since 1.0
237 */
238 $from_email = apply_filters( 'give_donation_from_address', Give()->emails->get_from_address() );
239
240 Give()->emails->__set( 'from_name', $from_name );
241 Give()->emails->__set( 'from_email', $from_email );
242
243 /**
244 * Filters the donation notification email headers.
245 *
246 * @since 1.0
247 */
248 $headers = apply_filters( 'give_admin_donation_notification_headers', Give()->emails->get_headers() );
249
250 Give()->emails->__set( 'headers', $headers );
251 }
252
253 /**
254 * Setup email notification.
255 *
256 * @param int $donor_id Donor ID.
257 * @param string $email Donor Email.
258 *
259 * @since 2.0
260 * @access public
261 *
262 * @return bool
263 */
264 public function setup_email_notification( $donor_id, $email ) {
265 $donor = Give()->donors->get_donor_by( 'email', $email );
266
267 if ( ! $donor->id ) {
268 wp_die( esc_html__( 'Cheatin&#8217; uh?', 'give' ), esc_html__( 'Error', 'give' ), array(
269 'response' => 400,
270 ) );
271 }
272
273 $this->recipient_email = $email;
274
275 // Set email data.
276 $this->setup_email_data();
277
278 // Send email.
279 return $this->send_email_notification(
280 array(
281 'donor_id' => $donor_id,
282 'user_id' => $donor->user_id
283 )
284 );
285 }
286
287
288 /**
289 * Set notification status
290 *
291 * @since 2.0
292 * @access public
293 *
294 * @param $update_options
295 * @param $option_name
296 */
297 public function set_notification_status( $update_options, $option_name ) {
298 // Get updated settings.
299 $update_options = give_get_settings();
300
301 if (
302 ! empty( $update_options['email_access'] )
303 && ! empty( $update_options[ "{$this->config['id']}_notification" ] )
304 && $update_options['email_access'] !== $update_options[ "{$this->config['id']}_notification" ]
305 ) {
306 $update_options[ "{$this->config['id']}_notification" ] = $update_options['email_access'];
307 update_option( $option_name, $update_options, false );
308 }
309 }
310
311
312 /**
313 * email preview header.
314 *
315 * @since 2.0
316 * @access public
317 *
318 * @param string $email_preview_header
319 * @param Give_Email_Access_Email $email
320 * @return string
321 */
322 public function email_preview_header( $email_preview_header, $email ) {
323 if( $this->config['id'] === $email->config['id'] ) {
324 $email_preview_header = '';
325 }
326
327 return $email_preview_header;
328 }
329 }
330
331 endif; // End class_exists check
332
333 return Give_Email_Access_Email::get_instance();
334