PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.1.8
GiveWP – Donation Plugin and Fundraising Platform v2.1.8
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 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 7 years ago backward-compatibility.php 7 years ago class-donation-receipt-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
288 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, WordImpress
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( 'heading', $this->get_email_header() );
208 Give()->emails->__set( 'headers', apply_filters( 'give_receipt_headers', Give()->emails->get_headers(), $this->payment->ID, $this->payment->payment_meta ) );
209 }
210
211 /**
212 * Setup email notification.
213 *
214 * @since 2.0
215 * @access public
216 *
217 * @param int $payment_id
218 */
219 public function setup_email_notification( $payment_id ) {
220 $this->payment = new Give_Payment( $payment_id );
221
222 // Exit if not donation was not with offline donation.
223 if ( 'offline' !== $this->payment->gateway ) {
224 return;
225 }
226
227 // Set email data.
228 $this->setup_email_data();
229
230 // Send email.
231 $this->send_email_notification( array(
232 'payment_id' => $this->payment->ID,
233 ) );
234 }
235
236 /**
237 * Set notification status
238 *
239 * @since 2.0
240 * @access public
241 *
242 * @param $update_options
243 * @param $option_name
244 */
245 public function set_notification_status( $update_options, $option_name ) {
246 // Get updated settings.
247 $update_options = give_get_settings();
248
249 $notification_status = isset( $update_options['gateways']['offline'] ) ? 'enabled' : 'disabled';
250
251 if (
252 empty( $update_options["{$this->config['id']}_notification"] )
253 || $notification_status !== $update_options["{$this->config['id']}_notification"]
254 ) {
255 $update_options["{$this->config['id']}_notification"] = $notification_status;
256 update_option( $option_name, $update_options );
257 }
258 }
259
260
261 /**
262 * Register email settings to form metabox.
263 *
264 * @since 2.0
265 * @access public
266 *
267 * @param array $settings
268 * @param int $form_id
269 *
270 * @return array
271 */
272 public function add_metabox_setting_field( $settings, $form_id ) {
273 if ( in_array( 'offline', array_keys( give_get_enabled_payment_gateways($form_id) ) ) ) {
274 $settings[] = array(
275 'id' => $this->config['id'],
276 'title' => $this->config['label'],
277 'fields' => $this->get_setting_fields( $form_id ),
278 );
279 }
280
281 return $settings;
282 }
283 }
284
285 endif; // End class_exists check
286
287 return Give_Offline_Donation_Instruction_Email::get_instance();
288