PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.16.8.1
GiveWP – Donation Plugin and Fundraising Platform v4.16.8.1
4.16.9 4.16.8.1 4.16.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 All 255 releases
give / src / Email / Notifications / DonationProcessingReceipt.php

DonationProcessingReceipt.php in GiveWP – Donation Plugin and Fundraising Platform 4.16.8.1, at src/Email/Notifications/DonationProcessingReceipt.php

90 lines 3.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\Email\Notifications;
4
5 use Give\Donations\Models\Donation;
6 use Give\Donations\ValueObjects\DonationStatus;
7 use Give_Email_Notification;
8
9 /**
10 * @since 2.24.0
11 */
12 class DonationProcessingReceipt extends Give_Email_Notification
13 {
14 /**
15 * @since 2.24.0
16 */
17 public function init()
18 {
19 $this->load(
20 [
21 'id' => 'donation-processing-receipt',
22 'label' => __('Donation Processing Receipt', 'give'),
23 'description' => __('Sent to the donor when their donation is marked as processing.',
24 'give'),
25 'notification_status' => 'enabled',
26 'form_metabox_setting' => true,
27 'recipient_group_name' => __('Donor', 'give'),
28 'default_email_subject' => esc_attr__('Donation Processing Receipt', 'give'),
29 'default_email_message' => $this->getDefaultEmailMessage(),
30 'default_email_header' => __('Donation Processing Receipt', 'give'),
31 ]
32 );
33
34 if ('disabled' != $this->get_notification_status()) {
35 add_action('give_update_payment_status', [$this, 'sendEmailNotificationToDonor'], 10, 3);
36 }
37 }
38
39 /**
40 * @since 2.24.0
41 */
42 public function getDefaultEmailMessage(): string
43 {
44 $defaultEmailMessage = sprintf(
45 esc_html__('Dear %s!', 'give') . "\n\n" .
46 esc_html__('Thank you for your donation. Your payment is currently being processed and you will receive a final email receipt once it has completed. Your generosity is appreciated!',
47 'give') . "\n\n" .
48 esc_html__('Here are the details of your donation:', 'give') . "\n\n" .
49 '<strong>' . esc_html__('Donor:', 'give') . '</strong>' . ' %s' . "\n" .
50 '<strong>' . esc_html__('Donation:', 'give') . '</strong>' . ' %s' . "\n" .
51 '<strong>' . esc_html__('Donation Date:', 'give') . '</strong>' . ' %s' . "\n" .
52 '<strong>' . esc_html__('Amount:', 'give') . '</strong>' . ' %s' . "\n" .
53 '<strong>' . esc_html__('Payment Method:', 'give') . '</strong>' . ' %s' . "\n" .
54 '<strong>' . esc_html__('Payment ID:', 'give') . '</strong>' . ' %s' . "\n\n" .
55 '%s' . "\n\n" .
56 esc_html__('Sincerely ', 'give') . "\n" .
57 '%s' . "\n"
58 , '{name}', '{fullname}', '{donation}', '{date}', '{amount}', '{payment_method}',
59 '{payment_id}', '{receipt_link}', '{sitename}');
60
61 /**
62 * @since 2.24.0
63 */
64 return apply_filters("give_{$this->config['id']}_get_default_email_message", $defaultEmailMessage);
65 }
66
67 /**
68 * @since 2.24.0
69 */
70 public function sendEmailNotificationToDonor(int $donationId, string $newStatus, string $oldStatus)
71 {
72 if ($newStatus == DonationStatus::PROCESSING()->getValue() &&
73 $oldStatus !== DonationStatus::PROCESSING()->getValue()) {
74 $donation = Donation::find($donationId);
75
76 if ( ! $donation) {
77 return;
78 }
79
80 $this->recipient_email = $donation->email;
81
82 $this->send_email_notification(
83 [
84 'payment_id' => $donation->id,
85 ]
86 );
87 }
88 }
89 }
90