This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | /** |
||
3 | * New Donation Email |
||
4 | * |
||
5 | * Donation Notification will be sent to recipient(s) when new donation received except offline donation. |
||
6 | * |
||
7 | * |
||
8 | * @package Give |
||
9 | * @subpackage Classes/Emails |
||
10 | * @copyright Copyright (c) 2016, GiveWP |
||
11 | * @license https://opensource.org/licenses/gpl-license GNU Public License |
||
12 | * @since 2.0 |
||
13 | */ |
||
14 | |||
15 | // Exit if access directly. |
||
16 | if ( ! defined( 'ABSPATH' ) ) { |
||
17 | exit; |
||
18 | } |
||
19 | |||
20 | if ( ! class_exists( 'Give_New_Donation_Email' ) ) : |
||
21 | |||
22 | /** |
||
23 | * Give_New_Donation_Email |
||
24 | * |
||
25 | * @abstract |
||
26 | * @since 2.0 |
||
27 | */ |
||
28 | class Give_New_Donation_Email extends Give_Email_Notification { |
||
29 | /* @var Give_Payment $payment */ |
||
30 | public $payment; |
||
31 | |||
32 | /** |
||
33 | * Create a class instance. |
||
34 | * |
||
35 | * @access public |
||
36 | * @since 2.0 |
||
37 | */ |
||
38 | public function init() { |
||
39 | // Initialize empty payment. |
||
40 | $this->payment = new Give_Payment( 0 ); |
||
41 | |||
42 | $this->load( array( |
||
43 | 'id' => 'new-donation', |
||
44 | 'label' => __( 'New Donation', 'give' ), |
||
45 | 'description' => __( 'Sent to designated recipient(s) when a new donation is received or a pending donation is marked as complete.', 'give' ), |
||
46 | 'has_recipient_field' => true, |
||
47 | 'notification_status' => 'enabled', |
||
48 | 'form_metabox_setting' => true, |
||
49 | 'default_email_subject' => esc_attr__( 'New Donation - #{payment_id}', 'give' ), |
||
50 | 'default_email_message' => ( false !== give_get_option( 'new-donation_email_message' ) ) ? give_get_option( 'new-donation_email_message' ) : give_get_default_donation_notification_email(), |
||
51 | 'default_email_header' => __( 'New Donation!', 'give' ), |
||
52 | ) ); |
||
53 | |||
54 | add_action( "give_{$this->config['id']}_email_notification", array( $this, 'setup_email_notification' ) ); |
||
55 | } |
||
56 | |||
57 | /** |
||
58 | * Get email subject. |
||
59 | * |
||
60 | * @since 2.0 |
||
61 | * @access public |
||
62 | * |
||
63 | * @param int $form_id |
||
64 | * |
||
65 | * @return string |
||
66 | */ |
||
67 | View Code Duplication | public function get_email_subject( $form_id = null ) { |
|
0 ignored issues
–
show
|
|||
68 | $subject = wp_strip_all_tags( |
||
69 | Give_Email_Notification_Util::get_value( |
||
70 | $this, |
||
71 | Give_Email_Setting_Field::get_prefix( $this, $form_id ) . 'email_subject', |
||
72 | $form_id, |
||
73 | $this->config['default_email_subject'] |
||
74 | ) |
||
75 | ); |
||
76 | |||
77 | /** |
||
78 | * Filters the donation notification subject. |
||
79 | * Note: This filter will deprecate soon. |
||
80 | * |
||
81 | * @since 1.0 |
||
82 | */ |
||
83 | $subject = apply_filters( 'give_admin_donation_notification_subject', $subject, $this->payment->ID ); |
||
84 | |||
85 | /** |
||
86 | * Filters the donation notification subject. |
||
87 | * |
||
88 | * @since 2.0 |
||
89 | */ |
||
90 | $subject = apply_filters( "give_{$this->config['id']}_get_email_subject", $subject, $this, $form_id ); |
||
91 | |||
92 | return $subject; |
||
93 | } |
||
94 | |||
95 | |||
96 | /** |
||
97 | * Get email attachment. |
||
98 | * |
||
99 | * @since 2.0 |
||
100 | * @access public |
||
101 | * |
||
102 | * @param int $form_id |
||
103 | * |
||
104 | * @return string |
||
105 | */ |
||
106 | View Code Duplication | public function get_email_message( $form_id = null ) { |
|
0 ignored issues
–
show
This method seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
107 | $message = Give_Email_Notification_Util::get_value( |
||
108 | $this, |
||
109 | Give_Email_Setting_Field::get_prefix( $this, $form_id ) . 'email_message', |
||
110 | $form_id, |
||
111 | $this->config['default_email_message'] |
||
112 | ); |
||
113 | |||
114 | /** |
||
115 | * Filter the email message |
||
116 | * Note: This filter will deprecate soon. |
||
117 | * |
||
118 | * @since 1.0 |
||
119 | */ |
||
120 | $message = apply_filters( |
||
121 | 'give_donation_notification', |
||
122 | $message, |
||
123 | $this->payment->ID, |
||
124 | $this->payment->payment_meta |
||
125 | ); |
||
126 | |||
127 | /** |
||
128 | * Filter the email message |
||
129 | * |
||
130 | * @since 2.0 |
||
131 | */ |
||
132 | $message = apply_filters( |
||
133 | "give_{$this->config['id']}_get_default_email_message", |
||
134 | $message, |
||
135 | $this, |
||
136 | $form_id |
||
137 | ); |
||
138 | |||
139 | return $message; |
||
140 | } |
||
141 | |||
142 | |||
143 | /** |
||
144 | * Get email attachment. |
||
145 | * |
||
146 | * @since 2.0 |
||
147 | * @access public |
||
148 | * |
||
149 | * @param int $form_id |
||
150 | * @return array |
||
151 | */ |
||
152 | View Code Duplication | public function get_email_attachments( $form_id = null ) { |
|
0 ignored issues
–
show
This method seems to be duplicated in your project.
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation. You can also find more detailed suggestions in the “Code” section of your repository. ![]() |
|||
153 | /** |
||
154 | * Filters the donation notification email attachments. |
||
155 | * By default, there is no attachment but plugins can hook in to provide one more multiple. |
||
156 | * Note: This filter will deprecate soon. |
||
157 | * |
||
158 | * @since 1.0 |
||
159 | */ |
||
160 | $attachments = apply_filters( |
||
161 | 'give_admin_donation_notification_attachments', |
||
162 | array(), |
||
163 | $this->payment->ID, |
||
164 | $this->payment->payment_meta |
||
165 | ); |
||
166 | |||
167 | /** |
||
168 | * Filters the donation notification email attachments. |
||
169 | * By default, there is no attachment but plugins can hook in to provide one more multiple. |
||
170 | * |
||
171 | * @since 2.0 |
||
172 | */ |
||
173 | $attachments = apply_filters( |
||
174 | "give_{$this->config['id']}_get_email_attachments", |
||
175 | $attachments, |
||
176 | $this, |
||
177 | $form_id |
||
178 | ); |
||
179 | |||
180 | return $attachments; |
||
181 | } |
||
182 | |||
183 | /** |
||
184 | * Set email data |
||
185 | * |
||
186 | * @since 2.0 |
||
187 | */ |
||
188 | public function setup_email_data() { |
||
189 | /** |
||
190 | * Filters the from name. |
||
191 | * Note: This filter will deprecate soon. |
||
192 | * |
||
193 | * @since 1.0 |
||
194 | */ |
||
195 | $from_name = apply_filters( |
||
196 | 'give_donation_from_name', |
||
197 | Give()->emails->get_from_name(), |
||
198 | $this->payment->ID, |
||
199 | $this->payment->payment_meta |
||
200 | ); |
||
201 | |||
202 | /** |
||
203 | * Filters the from email. |
||
204 | * Note: This filter will deprecate soon. |
||
205 | * |
||
206 | * @since 1.0 |
||
207 | */ |
||
208 | $from_email = apply_filters( |
||
209 | 'give_donation_from_address', |
||
210 | Give()->emails->get_from_address(), |
||
211 | $this->payment->ID, |
||
212 | $this->payment->payment_meta |
||
213 | ); |
||
214 | |||
215 | Give()->emails->__set( 'from_name', $from_name ); |
||
216 | Give()->emails->__set( 'from_email', $from_email ); |
||
217 | |||
218 | /** |
||
219 | * Filters the donation notification email headers. |
||
220 | * |
||
221 | * @since 1.0 |
||
222 | */ |
||
223 | $headers = apply_filters( |
||
224 | 'give_admin_donation_notification_headers', |
||
225 | Give()->emails->get_headers(), |
||
226 | $this->payment->ID, |
||
227 | $this->payment->payment_meta |
||
228 | ); |
||
229 | |||
230 | Give()->emails->__set( 'headers', $headers ); |
||
231 | } |
||
232 | |||
233 | /** |
||
234 | * Setup email notification. |
||
235 | * |
||
236 | * @since 2.0 |
||
237 | * @access public |
||
238 | * |
||
239 | * @param int $payment_id |
||
240 | */ |
||
241 | public function setup_email_notification( $payment_id ) { |
||
242 | $this->payment = new Give_Payment( $payment_id ); |
||
243 | |||
244 | // Set email data. |
||
245 | $this->setup_email_data(); |
||
246 | |||
247 | // Send email. |
||
248 | $this->send_email_notification( array( |
||
249 | 'payment_id' => $payment_id, |
||
250 | ) ); |
||
251 | } |
||
252 | } |
||
253 | |||
254 | endif; // End class_exists check |
||
255 | |||
256 | return Give_New_Donation_Email::get_instance(); |
||
257 |
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.