PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.3
GiveWP – Donation Plugin and Fundraising Platform v4.16.3
4.16.3 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-offline-donation-instruction-email.php
give / includes / admin / emails Last commit date
abstract-email-notification.php 4 years ago ajax-handler.php 3 weeks ago backward-compatibility.php 6 years ago class-donation-receipt-email.php 4 years ago class-donor-note-email.php 6 years ago class-donor-register-email.php 4 years ago class-email-access-email.php 1 week ago class-email-notification-table.php 3 years ago class-email-notification-util.php 6 years ago class-email-notifications.php 5 months ago class-email-setting-field.php 3 years ago class-failed-donation-email.php 5 months ago class-new-donation-email.php 6 years ago class-new-donor-register-email.php 4 years ago class-new-offline-donation-email.php 9 months ago class-offline-donation-instruction-email.php 6 years ago filters.php 4 years ago
class-offline-donation-instruction-email.php
301 lines
1 <?php
2 /**
3 * Offline Donation Instruction Email
4 *
5 * This class handles all email notification settings.
6 *
7 * @package Give
8 * @subpackage Classes/Emails
9 * @copyright Copyright (c) 2016, GiveWP
10 * @license https://opensource.org/licenses/gpl-license GNU Public License
11 * @since 2.0
12 */
13
14 // Exit if access directly.
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit;
17 }
18
19 if ( ! class_exists( 'Give_Offline_Donation_Instruction_Email' ) ) :
20
21 /**
22 * Give_Offline_Donation_Instruction_Email
23 *
24 * @abstract
25 * @since 2.0
26 */
27 class Give_Offline_Donation_Instruction_Email extends Give_Email_Notification {
28 /* @var Give_Payment $payment */
29 public $payment;
30
31 /**
32 * Create a class instance.
33 *
34 * @access public
35 * @since 2.0
36 */
37 public function init() {
38 // Initialize empty payment.
39 $this->payment = new Give_Payment( 0 );
40
41 $this->load(
42 array(
43 'id' => 'offline-donation-instruction',
44 'label' => __( 'Offline Donation Instructions', 'give' ),
45 'description' => __( 'Sent to the donor when they submit an offline donation.', 'give' ),
46 'notification_status' => give_is_gateway_active( 'offline' ) ? 'enabled' : 'disabled',
47 'form_metabox_setting' => true,
48 'notification_status_editable' => false,
49 'preview_email_tag_values' => array(
50 'payment_method' => esc_html__( 'Offline', 'give' ),
51 ),
52 'default_email_subject' => esc_attr__( '{donation} - Offline Donation Instructions', 'give' ),
53 'default_email_message' => give_get_default_offline_donation_email_content(),
54 'default_email_header' => __( 'Offline Donation Instructions', 'give' ),
55 'notices' => array(
56 'non-notification-status-editable' => sprintf(
57 '%1$s <a href="%2$s">%3$s &raquo;</a>',
58 __( 'This notification is automatically toggled based on whether the gateway is enabled or not.', 'give' ),
59 esc_url( admin_url( 'edit.php?post_type=give_forms&page=give-settings&tab=gateways&section=offline-donations' ) ),
60 __( 'Edit Setting', 'give' )
61 ),
62 ),
63 )
64 );
65
66 add_action( 'give_insert_payment', array( $this, 'setup_email_notification' ) );
67 add_action( 'give_save_settings_give_settings', array( $this, 'set_notification_status' ), 10, 2 );
68 }
69
70 /**
71 * Get email message
72 *
73 * @since 2.0
74 *
75 * @param int $form_id
76 *
77 * @return string
78 */
79 public function get_email_message( $form_id = null ) {
80 $message = Give_Email_Notification_Util::get_value(
81 $this,
82 Give_Email_Setting_Field::get_prefix( $this, $form_id ) . 'email_message',
83 $form_id,
84 $this->config['default_email_message']
85 );
86
87 /**
88 * Filter the email message.
89 *
90 * @since 2.0
91 */
92 $message = apply_filters(
93 "give_{$this->config['id']}_get_email_message",
94 $message,
95 $this,
96 $form_id
97 );
98
99 return $message;
100 }
101
102 /**
103 * Get email message
104 *
105 * @since 2.0
106 *
107 * @param int $form_id
108 *
109 * @return string
110 */
111 public function get_email_subject( $form_id = null ) {
112 $subject = wp_strip_all_tags(
113 Give_Email_Notification_Util::get_value(
114 $this,
115 Give_Email_Setting_Field::get_prefix( $this, $form_id ) . 'email_subject',
116 $form_id,
117 $this->config['default_email_subject']
118 )
119 );
120
121 /**
122 * Filter the email subject.
123 *
124 * @since 2.0
125 */
126 $subject = apply_filters(
127 "give_{$this->config['id']}_get_email_subject",
128 $subject,
129 $this,
130 $form_id
131 );
132
133 return $subject;
134 }
135
136 /**
137 * Get attachments.
138 *
139 * @since 2.0
140 *
141 * @param int $form_id
142 * @return array
143 */
144 public function get_email_attachments( $form_id = null ) {
145 /**
146 * Filter the attachments.
147 * Note: This filter will deprecate soon.
148 *
149 * @since 1.0
150 */
151 $attachment = apply_filters(
152 'give_offline_donation_attachments',
153 array(),
154 $this->payment->ID,
155 $this->payment->payment_meta
156 );
157
158 /**
159 * Filter the email attachment.
160 *
161 * @since 2.0
162 */
163 $attachment = apply_filters(
164 "give_{$this->config['id']}_get_email_attachment",
165 $attachment,
166 $this,
167 $form_id
168 );
169
170 return $attachment;
171 }
172
173
174 /**
175 * Set email data.
176 *
177 * @since 2.0
178 */
179 public function setup_email_data() {
180 // Set recipient email.
181 $this->recipient_email = $this->payment->email;
182
183 /**
184 * Filters the from name.
185 *
186 * @since 1.7
187 */
188 $from_name = apply_filters(
189 'give_donation_from_name',
190 Give()->emails->get_from_name(),
191 $this->payment->ID,
192 $this->payment->payment_meta
193 );
194
195 /**
196 * Filters the from email.
197 *
198 * @since 1.7
199 */
200 $from_email = apply_filters(
201 'give_donation_from_address',
202 Give()->emails->get_from_address(),
203 $this->payment->ID,
204 $this->payment->payment_meta
205 );
206
207 Give()->emails->__set( 'from_name', $from_name );
208 Give()->emails->__set( 'from_email', $from_email );
209 Give()->emails->__set( 'headers', apply_filters( 'give_receipt_headers', Give()->emails->get_headers(), $this->payment->ID, $this->payment->payment_meta ) );
210 }
211
212 /**
213 * Setup email notification.
214 *
215 * @since 2.0
216 * @access public
217 *
218 * @param int $payment_id
219 */
220 public function setup_email_notification( $payment_id ) {
221 $this->payment = new Give_Payment( $payment_id );
222
223 if ( ! $this->payment->ID ) {
224 wp_die(
225 esc_html__( 'Cheatin&#8217; uh?', 'give' ),
226 esc_html__( 'Error', 'give' ),
227 array(
228 'response' => 400,
229 )
230 );
231 }
232
233 // Exit if not donation was not with offline donation.
234 if ( 'offline' !== $this->payment->gateway ) {
235 return;
236 }
237
238 // Set email data.
239 $this->setup_email_data();
240
241 // Send email.
242 $this->send_email_notification(
243 array(
244 'payment_id' => $this->payment->ID,
245 )
246 );
247 }
248
249 /**
250 * Set notification status
251 *
252 * @since 2.0
253 * @access public
254 *
255 * @param $update_options
256 * @param $option_name
257 */
258 public function set_notification_status( $update_options, $option_name ) {
259 // Get updated settings.
260 $update_options = give_get_settings();
261
262 $notification_status = isset( $update_options['gateways']['offline'] ) ? 'enabled' : 'disabled';
263
264 if (
265 empty( $update_options[ "{$this->config['id']}_notification" ] )
266 || $notification_status !== $update_options[ "{$this->config['id']}_notification" ]
267 ) {
268 $update_options[ "{$this->config['id']}_notification" ] = $notification_status;
269 update_option( $option_name, $update_options, false );
270 }
271 }
272
273
274 /**
275 * Register email settings to form metabox.
276 *
277 * @since 2.0
278 * @access public
279 *
280 * @param array $settings
281 * @param int $form_id
282 *
283 * @return array
284 */
285 public function add_metabox_setting_field( $settings, $form_id ) {
286 if ( in_array( 'offline', array_keys( give_get_enabled_payment_gateways( $form_id ) ) ) ) {
287 $settings[] = array(
288 'id' => $this->config['id'],
289 'title' => $this->config['label'],
290 'fields' => $this->get_setting_fields( $form_id ),
291 );
292 }
293
294 return $settings;
295 }
296 }
297
298 endif; // End class_exists check
299
300 return Give_Offline_Donation_Instruction_Email::get_instance();
301