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