@@ -13,40 +13,40 @@ discard block |
||
13 | 13 | class GetPaid_Bank_Transfer_Gateway extends GetPaid_Payment_Gateway { |
14 | 14 | |
15 | 15 | /** |
16 | - * Payment method id. |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
16 | + * Payment method id. |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | 20 | public $id = 'bank_transfer'; |
21 | 21 | |
22 | - /** |
|
23 | - * An array of features that this gateway supports. |
|
24 | - * |
|
25 | - * @var array |
|
26 | - */ |
|
27 | - protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups', 'subscription_date_change' ); |
|
22 | + /** |
|
23 | + * An array of features that this gateway supports. |
|
24 | + * |
|
25 | + * @var array |
|
26 | + */ |
|
27 | + protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups', 'subscription_date_change' ); |
|
28 | + |
|
29 | + /** |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | + public $order = 8; |
|
28 | 35 | |
29 | 36 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
34 | - public $order = 8; |
|
35 | - |
|
36 | - /** |
|
37 | - * Bank transfer instructions. |
|
38 | - */ |
|
39 | - public $instructions; |
|
40 | - |
|
41 | - /** |
|
42 | - * Locale array. |
|
43 | - */ |
|
44 | - public $locale; |
|
37 | + * Bank transfer instructions. |
|
38 | + */ |
|
39 | + public $instructions; |
|
45 | 40 | |
46 | 41 | /** |
47 | - * Class constructor. |
|
48 | - */ |
|
49 | - public function __construct() { |
|
42 | + * Locale array. |
|
43 | + */ |
|
44 | + public $locale; |
|
45 | + |
|
46 | + /** |
|
47 | + * Class constructor. |
|
48 | + */ |
|
49 | + public function __construct() { |
|
50 | 50 | parent::__construct(); |
51 | 51 | |
52 | 52 | $this->title = __( 'Direct bank transfer', 'invoicing' ); |
@@ -54,24 +54,24 @@ discard block |
||
54 | 54 | $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
55 | 55 | $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
56 | 56 | |
57 | - add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
58 | - add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
59 | - add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
60 | - add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
61 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
62 | - add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
57 | + add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
58 | + add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
59 | + add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
60 | + add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
61 | + add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
62 | + add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
63 | 63 | |
64 | 64 | } |
65 | 65 | |
66 | 66 | /** |
67 | - * Process Payment. |
|
68 | - * |
|
69 | - * @param WPInv_Invoice $invoice Invoice. |
|
70 | - * @param array $submission_data Posted checkout fields. |
|
71 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
72 | - * @return array |
|
73 | - */ |
|
74 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
67 | + * Process Payment. |
|
68 | + * |
|
69 | + * @param WPInv_Invoice $invoice Invoice. |
|
70 | + * @param array $submission_data Posted checkout fields. |
|
71 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
72 | + * @return array |
|
73 | + */ |
|
74 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
75 | 75 | |
76 | 76 | // Add a transaction id. |
77 | 77 | $invoice->set_transaction_id( $invoice->generate_key( 'bt_' ) ); |
@@ -92,66 +92,66 @@ discard block |
||
92 | 92 | } |
93 | 93 | |
94 | 94 | /** |
95 | - * Output for the order received page. |
|
96 | - * |
|
97 | - * @param WPInv_Invoice $invoice Invoice. |
|
98 | - */ |
|
99 | - public function thankyou_page( $invoice ) { |
|
95 | + * Output for the order received page. |
|
96 | + * |
|
97 | + * @param WPInv_Invoice $invoice Invoice. |
|
98 | + */ |
|
99 | + public function thankyou_page( $invoice ) { |
|
100 | 100 | |
101 | 101 | if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
102 | 102 | |
103 | - echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
103 | + echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
104 | 104 | |
105 | 105 | if ( ! empty( $this->instructions ) ) { |
106 | 106 | echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
107 | - } |
|
107 | + } |
|
108 | 108 | |
109 | - $this->bank_details( $invoice ); |
|
109 | + $this->bank_details( $invoice ); |
|
110 | 110 | |
111 | - echo '</div>'; |
|
111 | + echo '</div>'; |
|
112 | 112 | |
113 | 113 | } |
114 | 114 | |
115 | - } |
|
115 | + } |
|
116 | 116 | |
117 | 117 | /** |
118 | - * Add content to the WPI emails. |
|
119 | - * |
|
120 | - * @param WPInv_Invoice $invoice Invoice. |
|
121 | - * @param string $email_type Email format: plain text or HTML. |
|
122 | - * @param bool $sent_to_admin Sent to admin. |
|
123 | - */ |
|
124 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
118 | + * Add content to the WPI emails. |
|
119 | + * |
|
120 | + * @param WPInv_Invoice $invoice Invoice. |
|
121 | + * @param string $email_type Email format: plain text or HTML. |
|
122 | + * @param bool $sent_to_admin Sent to admin. |
|
123 | + */ |
|
124 | + public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
125 | 125 | |
126 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
126 | + if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
127 | 127 | |
128 | - echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
128 | + echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
129 | 129 | |
130 | - if ( $this->instructions ) { |
|
131 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
130 | + if ( $this->instructions ) { |
|
131 | + echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
132 | 132 | } |
133 | 133 | |
134 | - $this->bank_details( $invoice ); |
|
134 | + $this->bank_details( $invoice ); |
|
135 | 135 | |
136 | - echo '</div>'; |
|
136 | + echo '</div>'; |
|
137 | 137 | |
138 | - } |
|
138 | + } |
|
139 | 139 | |
140 | 140 | } |
141 | 141 | |
142 | 142 | /** |
143 | - * Get bank details and place into a list format. |
|
144 | - * |
|
145 | - * @param WPInv_Invoice $invoice Invoice. |
|
146 | - */ |
|
147 | - protected function bank_details( $invoice ) { |
|
143 | + * Get bank details and place into a list format. |
|
144 | + * |
|
145 | + * @param WPInv_Invoice $invoice Invoice. |
|
146 | + */ |
|
147 | + protected function bank_details( $invoice ) { |
|
148 | 148 | |
149 | - // Get the invoice country and country $locale. |
|
150 | - $country = $invoice->get_country(); |
|
151 | - $locale = $this->get_country_locale(); |
|
149 | + // Get the invoice country and country $locale. |
|
150 | + $country = $invoice->get_country(); |
|
151 | + $locale = $this->get_country_locale(); |
|
152 | 152 | |
153 | - // Get sortcode label in the $locale array and use appropriate one. |
|
154 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
153 | + // Get sortcode label in the $locale array and use appropriate one. |
|
154 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
155 | 155 | |
156 | 156 | $bank_fields = array( |
157 | 157 | 'ac_name' => __( 'Account Name', 'invoicing' ), |
@@ -170,11 +170,11 @@ discard block |
||
170 | 170 | |
171 | 171 | if ( ! empty( $value ) ) { |
172 | 172 | $bank_info[ $field ] = array( |
173 | - 'label' => $label, |
|
174 | - 'value' => $value, |
|
175 | - ); |
|
173 | + 'label' => $label, |
|
174 | + 'value' => $value, |
|
175 | + ); |
|
176 | 176 | } |
177 | - } |
|
177 | + } |
|
178 | 178 | |
179 | 179 | $bank_info = apply_filters( 'wpinv_bank_info', $bank_info, $invoice ); |
180 | 180 | |
@@ -182,139 +182,139 @@ discard block |
||
182 | 182 | return; |
183 | 183 | } |
184 | 184 | |
185 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ), $invoice ) ) . '</h3>' . PHP_EOL; |
|
185 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ), $invoice ) ) . '</h3>' . PHP_EOL; |
|
186 | + |
|
187 | + echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
188 | + |
|
189 | + foreach ( $bank_info as $key => $data ) { |
|
190 | + echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . '</td></tr>' . PHP_EOL; |
|
191 | + } |
|
192 | + |
|
193 | + echo '</table>'; |
|
194 | + |
|
195 | + } |
|
186 | 196 | |
187 | - echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
197 | + /** |
|
198 | + * Get country locale if localized. |
|
199 | + * |
|
200 | + * @return array |
|
201 | + */ |
|
202 | + public function get_country_locale() { |
|
203 | + |
|
204 | + if ( empty( $this->locale ) ) { |
|
205 | + |
|
206 | + // Locale information to be used - only those that are not 'Sort Code'. |
|
207 | + $this->locale = apply_filters( |
|
208 | + 'getpaid_get_bank_transfer_locale', |
|
209 | + array( |
|
210 | + 'AU' => array( |
|
211 | + 'sortcode' => array( |
|
212 | + 'label' => __( 'BSB', 'invoicing' ), |
|
213 | + ), |
|
214 | + ), |
|
215 | + 'CA' => array( |
|
216 | + 'sortcode' => array( |
|
217 | + 'label' => __( 'Bank transit number', 'invoicing' ), |
|
218 | + ), |
|
219 | + ), |
|
220 | + 'IN' => array( |
|
221 | + 'sortcode' => array( |
|
222 | + 'label' => __( 'IFSC', 'invoicing' ), |
|
223 | + ), |
|
224 | + ), |
|
225 | + 'IT' => array( |
|
226 | + 'sortcode' => array( |
|
227 | + 'label' => __( 'Branch sort', 'invoicing' ), |
|
228 | + ), |
|
229 | + ), |
|
230 | + 'NZ' => array( |
|
231 | + 'sortcode' => array( |
|
232 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
233 | + ), |
|
234 | + ), |
|
235 | + 'SE' => array( |
|
236 | + 'sortcode' => array( |
|
237 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
238 | + ), |
|
239 | + ), |
|
240 | + 'US' => array( |
|
241 | + 'sortcode' => array( |
|
242 | + 'label' => __( 'Routing number', 'invoicing' ), |
|
243 | + ), |
|
244 | + ), |
|
245 | + 'ZA' => array( |
|
246 | + 'sortcode' => array( |
|
247 | + 'label' => __( 'Branch code', 'invoicing' ), |
|
248 | + ), |
|
249 | + ), |
|
250 | + ) |
|
251 | + ); |
|
188 | 252 | |
189 | - foreach ( $bank_info as $key => $data ) { |
|
190 | - echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . '</td></tr>' . PHP_EOL; |
|
191 | - } |
|
253 | + } |
|
192 | 254 | |
193 | - echo '</table>'; |
|
255 | + return $this->locale; |
|
194 | 256 | |
195 | 257 | } |
196 | 258 | |
197 | 259 | /** |
198 | - * Get country locale if localized. |
|
199 | - * |
|
200 | - * @return array |
|
201 | - */ |
|
202 | - public function get_country_locale() { |
|
203 | - |
|
204 | - if ( empty( $this->locale ) ) { |
|
205 | - |
|
206 | - // Locale information to be used - only those that are not 'Sort Code'. |
|
207 | - $this->locale = apply_filters( |
|
208 | - 'getpaid_get_bank_transfer_locale', |
|
209 | - array( |
|
210 | - 'AU' => array( |
|
211 | - 'sortcode' => array( |
|
212 | - 'label' => __( 'BSB', 'invoicing' ), |
|
213 | - ), |
|
214 | - ), |
|
215 | - 'CA' => array( |
|
216 | - 'sortcode' => array( |
|
217 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
218 | - ), |
|
219 | - ), |
|
220 | - 'IN' => array( |
|
221 | - 'sortcode' => array( |
|
222 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
223 | - ), |
|
224 | - ), |
|
225 | - 'IT' => array( |
|
226 | - 'sortcode' => array( |
|
227 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
228 | - ), |
|
229 | - ), |
|
230 | - 'NZ' => array( |
|
231 | - 'sortcode' => array( |
|
232 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
233 | - ), |
|
234 | - ), |
|
235 | - 'SE' => array( |
|
236 | - 'sortcode' => array( |
|
237 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
238 | - ), |
|
239 | - ), |
|
240 | - 'US' => array( |
|
241 | - 'sortcode' => array( |
|
242 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
243 | - ), |
|
244 | - ), |
|
245 | - 'ZA' => array( |
|
246 | - 'sortcode' => array( |
|
247 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
248 | - ), |
|
249 | - ), |
|
250 | - ) |
|
251 | - ); |
|
252 | - |
|
253 | - } |
|
254 | - |
|
255 | - return $this->locale; |
|
256 | - |
|
257 | - } |
|
258 | - |
|
259 | - /** |
|
260 | - * Filters the gateway settings. |
|
261 | - * |
|
262 | - * @param array $admin_settings |
|
263 | - */ |
|
264 | - public function admin_settings( $admin_settings ) { |
|
260 | + * Filters the gateway settings. |
|
261 | + * |
|
262 | + * @param array $admin_settings |
|
263 | + */ |
|
264 | + public function admin_settings( $admin_settings ) { |
|
265 | 265 | |
266 | 266 | $admin_settings['bank_transfer_desc']['std'] = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ); |
267 | - $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
267 | + $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
268 | 268 | |
269 | - $locale = $this->get_country_locale(); |
|
269 | + $locale = $this->get_country_locale(); |
|
270 | 270 | |
271 | - // Get sortcode label in the $locale array and use appropriate one. |
|
272 | - $country = wpinv_default_billing_country(); |
|
273 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
271 | + // Get sortcode label in the $locale array and use appropriate one. |
|
272 | + $country = wpinv_default_billing_country(); |
|
273 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
274 | 274 | |
275 | - $admin_settings['bank_transfer_ac_name'] = array( |
|
275 | + $admin_settings['bank_transfer_ac_name'] = array( |
|
276 | 276 | 'type' => 'text', |
277 | 277 | 'id' => 'bank_transfer_ac_name', |
278 | 278 | 'name' => __( 'Account Name', 'invoicing' ), |
279 | - ); |
|
279 | + ); |
|
280 | 280 | |
281 | - $admin_settings['bank_transfer_ac_no'] = array( |
|
281 | + $admin_settings['bank_transfer_ac_no'] = array( |
|
282 | 282 | 'type' => 'text', |
283 | 283 | 'id' => 'bank_transfer_ac_no', |
284 | 284 | 'name' => __( 'Account Number', 'invoicing' ), |
285 | - ); |
|
285 | + ); |
|
286 | 286 | |
287 | - $admin_settings['bank_transfer_bank_name'] = array( |
|
287 | + $admin_settings['bank_transfer_bank_name'] = array( |
|
288 | 288 | 'type' => 'text', |
289 | 289 | 'id' => 'bank_transfer_bank_name', |
290 | 290 | 'name' => __( 'Bank Name', 'invoicing' ), |
291 | - ); |
|
291 | + ); |
|
292 | 292 | |
293 | - $admin_settings['bank_transfer_ifsc'] = array( |
|
293 | + $admin_settings['bank_transfer_ifsc'] = array( |
|
294 | 294 | 'type' => 'text', |
295 | 295 | 'id' => 'bank_transfer_ifsc', |
296 | 296 | 'name' => __( 'IFSC Code', 'invoicing' ), |
297 | - ); |
|
297 | + ); |
|
298 | 298 | |
299 | - $admin_settings['bank_transfer_iban'] = array( |
|
299 | + $admin_settings['bank_transfer_iban'] = array( |
|
300 | 300 | 'type' => 'text', |
301 | 301 | 'id' => 'bank_transfer_iban', |
302 | 302 | 'name' => __( 'IBAN', 'invoicing' ), |
303 | - ); |
|
303 | + ); |
|
304 | 304 | |
305 | - $admin_settings['bank_transfer_bic'] = array( |
|
305 | + $admin_settings['bank_transfer_bic'] = array( |
|
306 | 306 | 'type' => 'text', |
307 | 307 | 'id' => 'bank_transfer_bic', |
308 | 308 | 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
309 | - ); |
|
309 | + ); |
|
310 | 310 | |
311 | - $admin_settings['bank_transfer_sort_code'] = array( |
|
312 | - 'type' => 'text', |
|
313 | - 'id' => 'bank_transfer_sort_code', |
|
314 | - 'name' => $sortcode, |
|
315 | - ); |
|
311 | + $admin_settings['bank_transfer_sort_code'] = array( |
|
312 | + 'type' => 'text', |
|
313 | + 'id' => 'bank_transfer_sort_code', |
|
314 | + 'name' => $sortcode, |
|
315 | + ); |
|
316 | 316 | |
317 | - $admin_settings['bank_transfer_info'] = array( |
|
317 | + $admin_settings['bank_transfer_info'] = array( |
|
318 | 318 | 'id' => 'bank_transfer_info', |
319 | 319 | 'name' => __( 'Instructions', 'invoicing' ), |
320 | 320 | 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
@@ -324,17 +324,17 @@ discard block |
||
324 | 324 | 'rows' => 5, |
325 | 325 | ); |
326 | 326 | |
327 | - return $admin_settings; |
|
328 | - } |
|
327 | + return $admin_settings; |
|
328 | + } |
|
329 | 329 | |
330 | - /** |
|
331 | - * Processes invoice addons. |
|
332 | - * |
|
333 | - * @param WPInv_Invoice $invoice |
|
334 | - * @param GetPaid_Form_Item[] $items |
|
335 | - * @return WPInv_Invoice |
|
336 | - */ |
|
337 | - public function process_addons( $invoice, $items ) { |
|
330 | + /** |
|
331 | + * Processes invoice addons. |
|
332 | + * |
|
333 | + * @param WPInv_Invoice $invoice |
|
334 | + * @param GetPaid_Form_Item[] $items |
|
335 | + * @return WPInv_Invoice |
|
336 | + */ |
|
337 | + public function process_addons( $invoice, $items ) { |
|
338 | 338 | |
339 | 339 | foreach ( $items as $item ) { |
340 | 340 | $invoice->add_item( $item ); |
@@ -342,67 +342,67 @@ discard block |
||
342 | 342 | |
343 | 343 | $invoice->recalculate_total(); |
344 | 344 | $invoice->save(); |
345 | - } |
|
345 | + } |
|
346 | 346 | |
347 | - /** |
|
348 | - * (Maybe) renews a bank transfer subscription profile. |
|
349 | - * |
|
350 | - * |
|
347 | + /** |
|
348 | + * (Maybe) renews a bank transfer subscription profile. |
|
349 | + * |
|
350 | + * |
|
351 | 351 | * @param WPInv_Subscription $subscription |
352 | - */ |
|
353 | - public function maybe_renew_subscription( $subscription ) { |
|
352 | + */ |
|
353 | + public function maybe_renew_subscription( $subscription ) { |
|
354 | 354 | |
355 | 355 | // Ensure its our subscription && it's active. |
356 | 356 | if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
357 | - $subscription->create_payment(); |
|
357 | + $subscription->create_payment(); |
|
358 | 358 | } |
359 | 359 | |
360 | 360 | } |
361 | 361 | |
362 | - /** |
|
363 | - * Process a bank transfer payment. |
|
364 | - * |
|
365 | - * |
|
362 | + /** |
|
363 | + * Process a bank transfer payment. |
|
364 | + * |
|
365 | + * |
|
366 | 366 | * @param WPInv_Invoice $invoice |
367 | - */ |
|
368 | - public function invoice_paid( $invoice ) { |
|
369 | - |
|
370 | - // Abort if not paid by bank transfer. |
|
371 | - if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
372 | - return; |
|
373 | - } |
|
374 | - |
|
375 | - // Is it a parent payment? |
|
376 | - if ( 0 == $invoice->get_parent_id() ) { |
|
377 | - |
|
378 | - // (Maybe) activate subscriptions. |
|
379 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
380 | - |
|
381 | - if ( ! empty( $subscriptions ) ) { |
|
382 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
383 | - |
|
384 | - foreach ( $subscriptions as $subscription ) { |
|
385 | - if ( $subscription->exists() ) { |
|
386 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
387 | - $expiry = gmdate( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
388 | - |
|
389 | - $subscription->set_next_renewal_date( $expiry ); |
|
390 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
391 | - $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
392 | - $subscription->activate(); |
|
393 | - } |
|
394 | - } |
|
395 | - } |
|
396 | - } else { |
|
397 | - |
|
398 | - $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
399 | - |
|
400 | - // Renew the subscription. |
|
401 | - if ( $subscription && $subscription->exists() ) { |
|
402 | - $subscription->add_payment( array(), $invoice ); |
|
403 | - $subscription->renew( strtotime( $invoice->get_date_created() ) ); |
|
404 | - } |
|
405 | - } |
|
367 | + */ |
|
368 | + public function invoice_paid( $invoice ) { |
|
369 | + |
|
370 | + // Abort if not paid by bank transfer. |
|
371 | + if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
372 | + return; |
|
373 | + } |
|
374 | + |
|
375 | + // Is it a parent payment? |
|
376 | + if ( 0 == $invoice->get_parent_id() ) { |
|
377 | + |
|
378 | + // (Maybe) activate subscriptions. |
|
379 | + $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
380 | + |
|
381 | + if ( ! empty( $subscriptions ) ) { |
|
382 | + $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
383 | + |
|
384 | + foreach ( $subscriptions as $subscription ) { |
|
385 | + if ( $subscription->exists() ) { |
|
386 | + $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
387 | + $expiry = gmdate( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
388 | + |
|
389 | + $subscription->set_next_renewal_date( $expiry ); |
|
390 | + $subscription->set_date_created( current_time( 'mysql' ) ); |
|
391 | + $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
392 | + $subscription->activate(); |
|
393 | + } |
|
394 | + } |
|
395 | + } |
|
396 | + } else { |
|
397 | + |
|
398 | + $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
399 | + |
|
400 | + // Renew the subscription. |
|
401 | + if ( $subscription && $subscription->exists() ) { |
|
402 | + $subscription->add_payment( array(), $invoice ); |
|
403 | + $subscription->renew( strtotime( $invoice->get_date_created() ) ); |
|
404 | + } |
|
405 | + } |
|
406 | 406 | |
407 | 407 | } |
408 | 408 |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * Bank transfer Payment Gateway class. |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | * |
25 | 25 | * @var array |
26 | 26 | */ |
27 | - protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups', 'subscription_date_change' ); |
|
27 | + protected $supports = array('subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups', 'subscription_date_change'); |
|
28 | 28 | |
29 | 29 | /** |
30 | 30 | * Payment method order. |
@@ -49,17 +49,17 @@ discard block |
||
49 | 49 | public function __construct() { |
50 | 50 | parent::__construct(); |
51 | 51 | |
52 | - $this->title = __( 'Direct bank transfer', 'invoicing' ); |
|
53 | - $this->method_title = __( 'Bank transfer', 'invoicing' ); |
|
54 | - $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
|
55 | - $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
|
52 | + $this->title = __('Direct bank transfer', 'invoicing'); |
|
53 | + $this->method_title = __('Bank transfer', 'invoicing'); |
|
54 | + $this->checkout_button_text = __('Proceed', 'invoicing'); |
|
55 | + $this->instructions = apply_filters('wpinv_bank_instructions', $this->get_option('info')); |
|
56 | 56 | |
57 | - add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
58 | - add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
59 | - add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
60 | - add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
61 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
62 | - add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
57 | + add_action('wpinv_receipt_end', array($this, 'thankyou_page')); |
|
58 | + add_action('getpaid_invoice_line_items', array($this, 'thankyou_page'), 40); |
|
59 | + add_action('wpinv_pdf_content_billing', array($this, 'thankyou_page'), 11); |
|
60 | + add_action('wpinv_email_invoice_details', array($this, 'email_instructions'), 10, 3); |
|
61 | + add_action('getpaid_should_renew_subscription', array($this, 'maybe_renew_subscription')); |
|
62 | + add_action('getpaid_invoice_status_publish', array($this, 'invoice_paid'), 20); |
|
63 | 63 | |
64 | 64 | } |
65 | 65 | |
@@ -71,23 +71,23 @@ discard block |
||
71 | 71 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
72 | 72 | * @return array |
73 | 73 | */ |
74 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
74 | + public function process_payment($invoice, $submission_data, $submission) { |
|
75 | 75 | |
76 | 76 | // Add a transaction id. |
77 | - $invoice->set_transaction_id( $invoice->generate_key( 'bt_' ) ); |
|
77 | + $invoice->set_transaction_id($invoice->generate_key('bt_')); |
|
78 | 78 | |
79 | 79 | // Set it as pending payment. |
80 | - if ( ! $invoice->needs_payment() ) { |
|
80 | + if (!$invoice->needs_payment()) { |
|
81 | 81 | $invoice->mark_paid(); |
82 | - } elseif ( ! $invoice->is_paid() ) { |
|
83 | - $invoice->set_status( 'wpi-onhold' ); |
|
82 | + } elseif (!$invoice->is_paid()) { |
|
83 | + $invoice->set_status('wpi-onhold'); |
|
84 | 84 | } |
85 | 85 | |
86 | 86 | // Save it. |
87 | 87 | $invoice->save(); |
88 | 88 | |
89 | 89 | // Send to the success page. |
90 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
90 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
91 | 91 | |
92 | 92 | } |
93 | 93 | |
@@ -96,17 +96,17 @@ discard block |
||
96 | 96 | * |
97 | 97 | * @param WPInv_Invoice $invoice Invoice. |
98 | 98 | */ |
99 | - public function thankyou_page( $invoice ) { |
|
99 | + public function thankyou_page($invoice) { |
|
100 | 100 | |
101 | - if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
101 | + if ('bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment()) { |
|
102 | 102 | |
103 | 103 | echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
104 | 104 | |
105 | - if ( ! empty( $this->instructions ) ) { |
|
106 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
|
105 | + if (!empty($this->instructions)) { |
|
106 | + echo wp_kses_post(wpautop(wptexturize($this->instructions))); |
|
107 | 107 | } |
108 | 108 | |
109 | - $this->bank_details( $invoice ); |
|
109 | + $this->bank_details($invoice); |
|
110 | 110 | |
111 | 111 | echo '</div>'; |
112 | 112 | |
@@ -121,17 +121,17 @@ discard block |
||
121 | 121 | * @param string $email_type Email format: plain text or HTML. |
122 | 122 | * @param bool $sent_to_admin Sent to admin. |
123 | 123 | */ |
124 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
124 | + public function email_instructions($invoice, $email_type, $sent_to_admin) { |
|
125 | 125 | |
126 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
126 | + if (!$sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment()) { |
|
127 | 127 | |
128 | 128 | echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
129 | 129 | |
130 | - if ( $this->instructions ) { |
|
131 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
130 | + if ($this->instructions) { |
|
131 | + echo wp_kses_post(wpautop(wptexturize($this->instructions)) . PHP_EOL); |
|
132 | 132 | } |
133 | 133 | |
134 | - $this->bank_details( $invoice ); |
|
134 | + $this->bank_details($invoice); |
|
135 | 135 | |
136 | 136 | echo '</div>'; |
137 | 137 | |
@@ -144,50 +144,50 @@ discard block |
||
144 | 144 | * |
145 | 145 | * @param WPInv_Invoice $invoice Invoice. |
146 | 146 | */ |
147 | - protected function bank_details( $invoice ) { |
|
147 | + protected function bank_details($invoice) { |
|
148 | 148 | |
149 | 149 | // Get the invoice country and country $locale. |
150 | 150 | $country = $invoice->get_country(); |
151 | 151 | $locale = $this->get_country_locale(); |
152 | 152 | |
153 | 153 | // Get sortcode label in the $locale array and use appropriate one. |
154 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
154 | + $sortcode = isset($locale[$country]['sortcode']['label']) ? $locale[$country]['sortcode']['label'] : __('Sort code', 'invoicing'); |
|
155 | 155 | |
156 | 156 | $bank_fields = array( |
157 | - 'ac_name' => __( 'Account Name', 'invoicing' ), |
|
158 | - 'ac_no' => __( 'Account Number', 'invoicing' ), |
|
159 | - 'bank_name' => __( 'Bank Name', 'invoicing' ), |
|
160 | - 'ifsc' => __( 'IFSC code', 'invoicing' ), |
|
161 | - 'iban' => __( 'IBAN', 'invoicing' ), |
|
162 | - 'bic' => __( 'BIC/Swift code', 'invoicing' ), |
|
157 | + 'ac_name' => __('Account Name', 'invoicing'), |
|
158 | + 'ac_no' => __('Account Number', 'invoicing'), |
|
159 | + 'bank_name' => __('Bank Name', 'invoicing'), |
|
160 | + 'ifsc' => __('IFSC code', 'invoicing'), |
|
161 | + 'iban' => __('IBAN', 'invoicing'), |
|
162 | + 'bic' => __('BIC/Swift code', 'invoicing'), |
|
163 | 163 | 'sort_code' => $sortcode, |
164 | 164 | ); |
165 | 165 | |
166 | 166 | $bank_info = array(); |
167 | 167 | |
168 | - foreach ( $bank_fields as $field => $label ) { |
|
169 | - $value = $this->get_option( $field ); |
|
168 | + foreach ($bank_fields as $field => $label) { |
|
169 | + $value = $this->get_option($field); |
|
170 | 170 | |
171 | - if ( ! empty( $value ) ) { |
|
172 | - $bank_info[ $field ] = array( |
|
171 | + if (!empty($value)) { |
|
172 | + $bank_info[$field] = array( |
|
173 | 173 | 'label' => $label, |
174 | 174 | 'value' => $value, |
175 | 175 | ); |
176 | 176 | } |
177 | 177 | } |
178 | 178 | |
179 | - $bank_info = apply_filters( 'wpinv_bank_info', $bank_info, $invoice ); |
|
179 | + $bank_info = apply_filters('wpinv_bank_info', $bank_info, $invoice); |
|
180 | 180 | |
181 | - if ( empty( $bank_info ) ) { |
|
181 | + if (empty($bank_info)) { |
|
182 | 182 | return; |
183 | 183 | } |
184 | 184 | |
185 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ), $invoice ) ) . '</h3>' . PHP_EOL; |
|
185 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html(apply_filters('wpinv_receipt_bank_details_title', __('Bank Details', 'invoicing'), $invoice)) . '</h3>' . PHP_EOL; |
|
186 | 186 | |
187 | 187 | echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
188 | 188 | |
189 | - foreach ( $bank_info as $key => $data ) { |
|
190 | - echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . '</td></tr>' . PHP_EOL; |
|
189 | + foreach ($bank_info as $key => $data) { |
|
190 | + echo "<tr class='getpaid-bank-transfer-" . esc_attr($key) . "'><th class='font-weight-bold'>" . wp_kses_post($data['label']) . "</th><td class='w-75'>" . wp_kses_post(wptexturize($data['value'])) . '</td></tr>' . PHP_EOL; |
|
191 | 191 | } |
192 | 192 | |
193 | 193 | echo '</table>'; |
@@ -201,7 +201,7 @@ discard block |
||
201 | 201 | */ |
202 | 202 | public function get_country_locale() { |
203 | 203 | |
204 | - if ( empty( $this->locale ) ) { |
|
204 | + if (empty($this->locale)) { |
|
205 | 205 | |
206 | 206 | // Locale information to be used - only those that are not 'Sort Code'. |
207 | 207 | $this->locale = apply_filters( |
@@ -209,42 +209,42 @@ discard block |
||
209 | 209 | array( |
210 | 210 | 'AU' => array( |
211 | 211 | 'sortcode' => array( |
212 | - 'label' => __( 'BSB', 'invoicing' ), |
|
212 | + 'label' => __('BSB', 'invoicing'), |
|
213 | 213 | ), |
214 | 214 | ), |
215 | 215 | 'CA' => array( |
216 | 216 | 'sortcode' => array( |
217 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
217 | + 'label' => __('Bank transit number', 'invoicing'), |
|
218 | 218 | ), |
219 | 219 | ), |
220 | 220 | 'IN' => array( |
221 | 221 | 'sortcode' => array( |
222 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
222 | + 'label' => __('IFSC', 'invoicing'), |
|
223 | 223 | ), |
224 | 224 | ), |
225 | 225 | 'IT' => array( |
226 | 226 | 'sortcode' => array( |
227 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
227 | + 'label' => __('Branch sort', 'invoicing'), |
|
228 | 228 | ), |
229 | 229 | ), |
230 | 230 | 'NZ' => array( |
231 | 231 | 'sortcode' => array( |
232 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
232 | + 'label' => __('Bank code', 'invoicing'), |
|
233 | 233 | ), |
234 | 234 | ), |
235 | 235 | 'SE' => array( |
236 | 236 | 'sortcode' => array( |
237 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
237 | + 'label' => __('Bank code', 'invoicing'), |
|
238 | 238 | ), |
239 | 239 | ), |
240 | 240 | 'US' => array( |
241 | 241 | 'sortcode' => array( |
242 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
242 | + 'label' => __('Routing number', 'invoicing'), |
|
243 | 243 | ), |
244 | 244 | ), |
245 | 245 | 'ZA' => array( |
246 | 246 | 'sortcode' => array( |
247 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
247 | + 'label' => __('Branch code', 'invoicing'), |
|
248 | 248 | ), |
249 | 249 | ), |
250 | 250 | ) |
@@ -261,51 +261,51 @@ discard block |
||
261 | 261 | * |
262 | 262 | * @param array $admin_settings |
263 | 263 | */ |
264 | - public function admin_settings( $admin_settings ) { |
|
264 | + public function admin_settings($admin_settings) { |
|
265 | 265 | |
266 | - $admin_settings['bank_transfer_desc']['std'] = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ); |
|
267 | - $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
266 | + $admin_settings['bank_transfer_desc']['std'] = __("Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing'); |
|
267 | + $admin_settings['bank_transfer_active']['desc'] = __('Enable bank transfer', 'invoicing'); |
|
268 | 268 | |
269 | - $locale = $this->get_country_locale(); |
|
269 | + $locale = $this->get_country_locale(); |
|
270 | 270 | |
271 | 271 | // Get sortcode label in the $locale array and use appropriate one. |
272 | 272 | $country = wpinv_default_billing_country(); |
273 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
273 | + $sortcode = isset($locale[$country]['sortcode']['label']) ? $locale[$country]['sortcode']['label'] : __('Sort code', 'invoicing'); |
|
274 | 274 | |
275 | 275 | $admin_settings['bank_transfer_ac_name'] = array( |
276 | 276 | 'type' => 'text', |
277 | 277 | 'id' => 'bank_transfer_ac_name', |
278 | - 'name' => __( 'Account Name', 'invoicing' ), |
|
278 | + 'name' => __('Account Name', 'invoicing'), |
|
279 | 279 | ); |
280 | 280 | |
281 | 281 | $admin_settings['bank_transfer_ac_no'] = array( |
282 | 282 | 'type' => 'text', |
283 | 283 | 'id' => 'bank_transfer_ac_no', |
284 | - 'name' => __( 'Account Number', 'invoicing' ), |
|
284 | + 'name' => __('Account Number', 'invoicing'), |
|
285 | 285 | ); |
286 | 286 | |
287 | 287 | $admin_settings['bank_transfer_bank_name'] = array( |
288 | 288 | 'type' => 'text', |
289 | 289 | 'id' => 'bank_transfer_bank_name', |
290 | - 'name' => __( 'Bank Name', 'invoicing' ), |
|
290 | + 'name' => __('Bank Name', 'invoicing'), |
|
291 | 291 | ); |
292 | 292 | |
293 | 293 | $admin_settings['bank_transfer_ifsc'] = array( |
294 | 294 | 'type' => 'text', |
295 | 295 | 'id' => 'bank_transfer_ifsc', |
296 | - 'name' => __( 'IFSC Code', 'invoicing' ), |
|
296 | + 'name' => __('IFSC Code', 'invoicing'), |
|
297 | 297 | ); |
298 | 298 | |
299 | 299 | $admin_settings['bank_transfer_iban'] = array( |
300 | 300 | 'type' => 'text', |
301 | 301 | 'id' => 'bank_transfer_iban', |
302 | - 'name' => __( 'IBAN', 'invoicing' ), |
|
302 | + 'name' => __('IBAN', 'invoicing'), |
|
303 | 303 | ); |
304 | 304 | |
305 | 305 | $admin_settings['bank_transfer_bic'] = array( |
306 | 306 | 'type' => 'text', |
307 | 307 | 'id' => 'bank_transfer_bic', |
308 | - 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
|
308 | + 'name' => __('BIC/Swift Code', 'invoicing'), |
|
309 | 309 | ); |
310 | 310 | |
311 | 311 | $admin_settings['bank_transfer_sort_code'] = array( |
@@ -316,10 +316,10 @@ discard block |
||
316 | 316 | |
317 | 317 | $admin_settings['bank_transfer_info'] = array( |
318 | 318 | 'id' => 'bank_transfer_info', |
319 | - 'name' => __( 'Instructions', 'invoicing' ), |
|
320 | - 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
|
319 | + 'name' => __('Instructions', 'invoicing'), |
|
320 | + 'desc' => __('Instructions that will be added to the thank you page and emails.', 'invoicing'), |
|
321 | 321 | 'type' => 'textarea', |
322 | - 'std' => __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ), |
|
322 | + 'std' => __("Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing'), |
|
323 | 323 | 'cols' => 50, |
324 | 324 | 'rows' => 5, |
325 | 325 | ); |
@@ -334,10 +334,10 @@ discard block |
||
334 | 334 | * @param GetPaid_Form_Item[] $items |
335 | 335 | * @return WPInv_Invoice |
336 | 336 | */ |
337 | - public function process_addons( $invoice, $items ) { |
|
337 | + public function process_addons($invoice, $items) { |
|
338 | 338 | |
339 | - foreach ( $items as $item ) { |
|
340 | - $invoice->add_item( $item ); |
|
339 | + foreach ($items as $item) { |
|
340 | + $invoice->add_item($item); |
|
341 | 341 | } |
342 | 342 | |
343 | 343 | $invoice->recalculate_total(); |
@@ -350,10 +350,10 @@ discard block |
||
350 | 350 | * |
351 | 351 | * @param WPInv_Subscription $subscription |
352 | 352 | */ |
353 | - public function maybe_renew_subscription( $subscription ) { |
|
353 | + public function maybe_renew_subscription($subscription) { |
|
354 | 354 | |
355 | 355 | // Ensure its our subscription && it's active. |
356 | - if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
|
356 | + if ($this->id === $subscription->get_gateway() && $subscription->has_status('active trialling')) { |
|
357 | 357 | $subscription->create_payment(); |
358 | 358 | } |
359 | 359 | |
@@ -365,42 +365,42 @@ discard block |
||
365 | 365 | * |
366 | 366 | * @param WPInv_Invoice $invoice |
367 | 367 | */ |
368 | - public function invoice_paid( $invoice ) { |
|
368 | + public function invoice_paid($invoice) { |
|
369 | 369 | |
370 | 370 | // Abort if not paid by bank transfer. |
371 | - if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
371 | + if ($this->id !== $invoice->get_gateway() || !$invoice->is_recurring()) { |
|
372 | 372 | return; |
373 | 373 | } |
374 | 374 | |
375 | 375 | // Is it a parent payment? |
376 | - if ( 0 == $invoice->get_parent_id() ) { |
|
376 | + if (0 == $invoice->get_parent_id()) { |
|
377 | 377 | |
378 | 378 | // (Maybe) activate subscriptions. |
379 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
379 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
380 | 380 | |
381 | - if ( ! empty( $subscriptions ) ) { |
|
382 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
381 | + if (!empty($subscriptions)) { |
|
382 | + $subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions); |
|
383 | 383 | |
384 | - foreach ( $subscriptions as $subscription ) { |
|
385 | - if ( $subscription->exists() ) { |
|
386 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
387 | - $expiry = gmdate( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
384 | + foreach ($subscriptions as $subscription) { |
|
385 | + if ($subscription->exists()) { |
|
386 | + $duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created()); |
|
387 | + $expiry = gmdate('Y-m-d H:i:s', (current_time('timestamp') + $duration)); |
|
388 | 388 | |
389 | - $subscription->set_next_renewal_date( $expiry ); |
|
390 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
391 | - $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
389 | + $subscription->set_next_renewal_date($expiry); |
|
390 | + $subscription->set_date_created(current_time('mysql')); |
|
391 | + $subscription->set_profile_id('bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id()); |
|
392 | 392 | $subscription->activate(); |
393 | 393 | } |
394 | 394 | } |
395 | 395 | } |
396 | 396 | } else { |
397 | 397 | |
398 | - $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
398 | + $subscription = getpaid_get_subscription($invoice->get_subscription_id()); |
|
399 | 399 | |
400 | 400 | // Renew the subscription. |
401 | - if ( $subscription && $subscription->exists() ) { |
|
402 | - $subscription->add_payment( array(), $invoice ); |
|
403 | - $subscription->renew( strtotime( $invoice->get_date_created() ) ); |
|
401 | + if ($subscription && $subscription->exists()) { |
|
402 | + $subscription->add_payment(array(), $invoice); |
|
403 | + $subscription->renew(strtotime($invoice->get_date_created())); |
|
404 | 404 | } |
405 | 405 | } |
406 | 406 |
@@ -13,30 +13,30 @@ discard block |
||
13 | 13 | class GetPaid_Manual_Gateway extends GetPaid_Payment_Gateway { |
14 | 14 | |
15 | 15 | /** |
16 | - * Payment method id. |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
16 | + * Payment method id. |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | 20 | public $id = 'manual'; |
21 | 21 | |
22 | 22 | /** |
23 | - * An array of features that this gateway supports. |
|
24 | - * |
|
25 | - * @var array |
|
26 | - */ |
|
23 | + * An array of features that this gateway supports. |
|
24 | + * |
|
25 | + * @var array |
|
26 | + */ |
|
27 | 27 | protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups', 'subscription_date_change' ); |
28 | 28 | |
29 | 29 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
34 | - public $order = 11; |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | + public $order = 11; |
|
35 | 35 | |
36 | 36 | /** |
37 | - * Class constructor. |
|
38 | - */ |
|
39 | - public function __construct() { |
|
37 | + * Class constructor. |
|
38 | + */ |
|
39 | + public function __construct() { |
|
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | 42 | $this->title = __( 'Test Gateway', 'invoicing' ); |
@@ -46,15 +46,15 @@ discard block |
||
46 | 46 | } |
47 | 47 | |
48 | 48 | /** |
49 | - * Process Payment. |
|
50 | - * |
|
51 | - * |
|
52 | - * @param WPInv_Invoice $invoice Invoice. |
|
53 | - * @param array $submission_data Posted checkout fields. |
|
54 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
55 | - * @return array |
|
56 | - */ |
|
57 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
49 | + * Process Payment. |
|
50 | + * |
|
51 | + * |
|
52 | + * @param WPInv_Invoice $invoice Invoice. |
|
53 | + * @param array $submission_data Posted checkout fields. |
|
54 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
55 | + * @return array |
|
56 | + */ |
|
57 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
58 | 58 | |
59 | 59 | // Mark it as paid. |
60 | 60 | $invoice->mark_paid(); |
@@ -84,12 +84,12 @@ discard block |
||
84 | 84 | } |
85 | 85 | |
86 | 86 | /** |
87 | - * (Maybe) renews a manual subscription profile. |
|
88 | - * |
|
89 | - * |
|
87 | + * (Maybe) renews a manual subscription profile. |
|
88 | + * |
|
89 | + * |
|
90 | 90 | * @param WPInv_Subscription $subscription |
91 | - */ |
|
92 | - public function maybe_renew_subscription( $subscription ) { |
|
91 | + */ |
|
92 | + public function maybe_renew_subscription( $subscription ) { |
|
93 | 93 | |
94 | 94 | // Ensure its our subscription && it's active. |
95 | 95 | if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
@@ -109,13 +109,13 @@ discard block |
||
109 | 109 | } |
110 | 110 | |
111 | 111 | /** |
112 | - * Processes invoice addons. |
|
113 | - * |
|
114 | - * @param WPInv_Invoice $invoice |
|
115 | - * @param GetPaid_Form_Item[] $items |
|
116 | - * @return WPInv_Invoice |
|
117 | - */ |
|
118 | - public function process_addons( $invoice, $items ) { |
|
112 | + * Processes invoice addons. |
|
113 | + * |
|
114 | + * @param WPInv_Invoice $invoice |
|
115 | + * @param GetPaid_Form_Item[] $items |
|
116 | + * @return WPInv_Invoice |
|
117 | + */ |
|
118 | + public function process_addons( $invoice, $items ) { |
|
119 | 119 | |
120 | 120 | foreach ( $items as $item ) { |
121 | 121 | $invoice->add_item( $item ); |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * Manual Payment Gateway class. |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | * |
25 | 25 | * @var array |
26 | 26 | */ |
27 | - protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups', 'subscription_date_change' ); |
|
27 | + protected $supports = array('subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups', 'subscription_date_change'); |
|
28 | 28 | |
29 | 29 | /** |
30 | 30 | * Payment method order. |
@@ -39,10 +39,10 @@ discard block |
||
39 | 39 | public function __construct() { |
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | - $this->title = __( 'Test Gateway', 'invoicing' ); |
|
43 | - $this->method_title = __( 'Test Gateway', 'invoicing' ); |
|
42 | + $this->title = __('Test Gateway', 'invoicing'); |
|
43 | + $this->method_title = __('Test Gateway', 'invoicing'); |
|
44 | 44 | |
45 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
45 | + add_action('getpaid_should_renew_subscription', array($this, 'maybe_renew_subscription')); |
|
46 | 46 | } |
47 | 47 | |
48 | 48 | /** |
@@ -54,32 +54,32 @@ discard block |
||
54 | 54 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
55 | 55 | * @return array |
56 | 56 | */ |
57 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
57 | + public function process_payment($invoice, $submission_data, $submission) { |
|
58 | 58 | |
59 | 59 | // Mark it as paid. |
60 | 60 | $invoice->mark_paid(); |
61 | 61 | |
62 | 62 | // (Maybe) activate subscriptions. |
63 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
63 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
64 | 64 | |
65 | - if ( ! empty( $subscriptions ) ) { |
|
66 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
65 | + if (!empty($subscriptions)) { |
|
66 | + $subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions); |
|
67 | 67 | |
68 | - foreach ( $subscriptions as $subscription ) { |
|
69 | - if ( $subscription->exists() ) { |
|
70 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
71 | - $expiry = gmdate( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
68 | + foreach ($subscriptions as $subscription) { |
|
69 | + if ($subscription->exists()) { |
|
70 | + $duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created()); |
|
71 | + $expiry = gmdate('Y-m-d H:i:s', (current_time('timestamp') + $duration)); |
|
72 | 72 | |
73 | - $subscription->set_next_renewal_date( $expiry ); |
|
74 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
75 | - $subscription->set_profile_id( $invoice->generate_key( 'manual_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ) ); |
|
73 | + $subscription->set_next_renewal_date($expiry); |
|
74 | + $subscription->set_date_created(current_time('mysql')); |
|
75 | + $subscription->set_profile_id($invoice->generate_key('manual_sub_' . $invoice->get_id() . '_' . $subscription->get_id())); |
|
76 | 76 | $subscription->activate(); |
77 | 77 | } |
78 | 78 | } |
79 | 79 | } |
80 | 80 | |
81 | 81 | // Send to the success page. |
82 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
82 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
83 | 83 | |
84 | 84 | } |
85 | 85 | |
@@ -89,10 +89,10 @@ discard block |
||
89 | 89 | * |
90 | 90 | * @param WPInv_Subscription $subscription |
91 | 91 | */ |
92 | - public function maybe_renew_subscription( $subscription ) { |
|
92 | + public function maybe_renew_subscription($subscription) { |
|
93 | 93 | |
94 | 94 | // Ensure its our subscription && it's active. |
95 | - if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
|
95 | + if ($this->id === $subscription->get_gateway() && $subscription->has_status('active trialling')) { |
|
96 | 96 | |
97 | 97 | // Renew the subscription. |
98 | 98 | $subscription->add_payment( |
@@ -115,10 +115,10 @@ discard block |
||
115 | 115 | * @param GetPaid_Form_Item[] $items |
116 | 116 | * @return WPInv_Invoice |
117 | 117 | */ |
118 | - public function process_addons( $invoice, $items ) { |
|
118 | + public function process_addons($invoice, $items) { |
|
119 | 119 | |
120 | - foreach ( $items as $item ) { |
|
121 | - $invoice->add_item( $item ); |
|
120 | + foreach ($items as $item) { |
|
121 | + $invoice->add_item($item); |
|
122 | 122 | } |
123 | 123 | |
124 | 124 | $invoice->recalculate_total(); |
@@ -15,125 +15,125 @@ discard block |
||
15 | 15 | */ |
16 | 16 | class WPInv_Subscription extends GetPaid_Data { |
17 | 17 | |
18 | - /** |
|
19 | - * Which data store to load. |
|
20 | - * |
|
21 | - * @var string |
|
22 | - */ |
|
23 | - protected $data_store_name = 'subscription'; |
|
24 | - |
|
25 | - /** |
|
26 | - * This is the name of this object type. |
|
27 | - * |
|
28 | - * @var string |
|
29 | - */ |
|
30 | - protected $object_type = 'subscription'; |
|
31 | - |
|
32 | - /** |
|
33 | - * Item Data array. This is the core item data exposed in APIs. |
|
34 | - * |
|
35 | - * @since 1.0.19 |
|
36 | - * @var array |
|
37 | - */ |
|
38 | - protected $data = array( |
|
39 | - 'customer_id' => 0, |
|
40 | - 'frequency' => 1, |
|
41 | - 'period' => 'D', |
|
42 | - 'initial_amount' => null, |
|
43 | - 'recurring_amount' => null, |
|
44 | - 'bill_times' => 0, |
|
45 | - 'transaction_id' => '', |
|
46 | - 'parent_payment_id' => null, |
|
47 | - 'product_id' => 0, |
|
48 | - 'created' => '0000-00-00 00:00:00', |
|
49 | - 'expiration' => '0000-00-00 00:00:00', |
|
50 | - 'trial_period' => '', |
|
51 | - 'status' => 'pending', |
|
52 | - 'profile_id' => '', |
|
53 | - 'gateway' => '', |
|
54 | - 'customer' => '', |
|
55 | - ); |
|
56 | - |
|
57 | - /** |
|
58 | - * Stores the status transition information. |
|
59 | - * |
|
60 | - * @since 1.0.19 |
|
61 | - * @var bool |
|
62 | - */ |
|
63 | - protected $status_transition = false; |
|
64 | - |
|
65 | - /** |
|
66 | - * Get the subscription if ID is passed, otherwise the subscription is new and empty. |
|
67 | - * |
|
68 | - * @param int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read. |
|
69 | - * @param bool $deprecated |
|
70 | - */ |
|
71 | - function __construct( $subscription = 0, $deprecated = false ) { |
|
72 | - |
|
73 | - parent::__construct( $subscription ); |
|
74 | - |
|
75 | - if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) { |
|
76 | - $this->set_id( $subscription ); |
|
77 | - } elseif ( $subscription instanceof self ) { |
|
78 | - $this->set_id( $subscription->get_id() ); |
|
79 | - } elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) { |
|
80 | - $this->set_id( $subscription_id ); |
|
81 | - } elseif ( ! empty( $subscription->id ) ) { |
|
82 | - $this->set_id( $subscription->id ); |
|
83 | - } else { |
|
84 | - $this->set_object_read( true ); |
|
85 | - } |
|
86 | - |
|
87 | - // Load the datastore. |
|
88 | - $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
89 | - |
|
90 | - if ( $this->get_id() > 0 ) { |
|
91 | - $this->data_store->read( $this ); |
|
92 | - } |
|
93 | - |
|
94 | - } |
|
95 | - |
|
96 | - /** |
|
97 | - * Given an invoice id, profile id, transaction id, it returns the subscription's id. |
|
98 | - * |
|
99 | - * |
|
100 | - * @static |
|
101 | - * @param string $value |
|
102 | - * @param string $field Either invoice_id, transaction_id or profile_id. |
|
103 | - * @since 1.0.19 |
|
104 | - * @return int |
|
105 | - */ |
|
106 | - public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) { |
|
18 | + /** |
|
19 | + * Which data store to load. |
|
20 | + * |
|
21 | + * @var string |
|
22 | + */ |
|
23 | + protected $data_store_name = 'subscription'; |
|
24 | + |
|
25 | + /** |
|
26 | + * This is the name of this object type. |
|
27 | + * |
|
28 | + * @var string |
|
29 | + */ |
|
30 | + protected $object_type = 'subscription'; |
|
31 | + |
|
32 | + /** |
|
33 | + * Item Data array. This is the core item data exposed in APIs. |
|
34 | + * |
|
35 | + * @since 1.0.19 |
|
36 | + * @var array |
|
37 | + */ |
|
38 | + protected $data = array( |
|
39 | + 'customer_id' => 0, |
|
40 | + 'frequency' => 1, |
|
41 | + 'period' => 'D', |
|
42 | + 'initial_amount' => null, |
|
43 | + 'recurring_amount' => null, |
|
44 | + 'bill_times' => 0, |
|
45 | + 'transaction_id' => '', |
|
46 | + 'parent_payment_id' => null, |
|
47 | + 'product_id' => 0, |
|
48 | + 'created' => '0000-00-00 00:00:00', |
|
49 | + 'expiration' => '0000-00-00 00:00:00', |
|
50 | + 'trial_period' => '', |
|
51 | + 'status' => 'pending', |
|
52 | + 'profile_id' => '', |
|
53 | + 'gateway' => '', |
|
54 | + 'customer' => '', |
|
55 | + ); |
|
56 | + |
|
57 | + /** |
|
58 | + * Stores the status transition information. |
|
59 | + * |
|
60 | + * @since 1.0.19 |
|
61 | + * @var bool |
|
62 | + */ |
|
63 | + protected $status_transition = false; |
|
64 | + |
|
65 | + /** |
|
66 | + * Get the subscription if ID is passed, otherwise the subscription is new and empty. |
|
67 | + * |
|
68 | + * @param int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read. |
|
69 | + * @param bool $deprecated |
|
70 | + */ |
|
71 | + function __construct( $subscription = 0, $deprecated = false ) { |
|
72 | + |
|
73 | + parent::__construct( $subscription ); |
|
74 | + |
|
75 | + if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) { |
|
76 | + $this->set_id( $subscription ); |
|
77 | + } elseif ( $subscription instanceof self ) { |
|
78 | + $this->set_id( $subscription->get_id() ); |
|
79 | + } elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) { |
|
80 | + $this->set_id( $subscription_id ); |
|
81 | + } elseif ( ! empty( $subscription->id ) ) { |
|
82 | + $this->set_id( $subscription->id ); |
|
83 | + } else { |
|
84 | + $this->set_object_read( true ); |
|
85 | + } |
|
86 | + |
|
87 | + // Load the datastore. |
|
88 | + $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
89 | + |
|
90 | + if ( $this->get_id() > 0 ) { |
|
91 | + $this->data_store->read( $this ); |
|
92 | + } |
|
93 | + |
|
94 | + } |
|
95 | + |
|
96 | + /** |
|
97 | + * Given an invoice id, profile id, transaction id, it returns the subscription's id. |
|
98 | + * |
|
99 | + * |
|
100 | + * @static |
|
101 | + * @param string $value |
|
102 | + * @param string $field Either invoice_id, transaction_id or profile_id. |
|
103 | + * @since 1.0.19 |
|
104 | + * @return int |
|
105 | + */ |
|
106 | + public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) { |
|
107 | 107 | global $wpdb; |
108 | 108 | |
109 | - // Trim the value. |
|
110 | - $value = trim( $value ); |
|
109 | + // Trim the value. |
|
110 | + $value = trim( $value ); |
|
111 | 111 | |
112 | - if ( empty( $value ) ) { |
|
113 | - return 0; |
|
114 | - } |
|
112 | + if ( empty( $value ) ) { |
|
113 | + return 0; |
|
114 | + } |
|
115 | 115 | |
116 | - if ( 'invoice_id' == $field ) { |
|
117 | - $field = 'parent_payment_id'; |
|
118 | - } |
|
116 | + if ( 'invoice_id' == $field ) { |
|
117 | + $field = 'parent_payment_id'; |
|
118 | + } |
|
119 | 119 | |
120 | 120 | // Valid fields. |
121 | 121 | $fields = array( |
122 | - 'parent_payment_id', |
|
123 | - 'transaction_id', |
|
124 | - 'profile_id', |
|
125 | - ); |
|
126 | - |
|
127 | - // Ensure a field has been passed. |
|
128 | - if ( empty( $field ) || ! in_array( $field, $fields ) ) { |
|
129 | - return 0; |
|
130 | - } |
|
131 | - |
|
132 | - // Maybe retrieve from the cache. |
|
133 | - $subscription_id = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" ); |
|
134 | - if ( ! empty( $subscription_id ) ) { |
|
135 | - return $subscription_id; |
|
136 | - } |
|
122 | + 'parent_payment_id', |
|
123 | + 'transaction_id', |
|
124 | + 'profile_id', |
|
125 | + ); |
|
126 | + |
|
127 | + // Ensure a field has been passed. |
|
128 | + if ( empty( $field ) || ! in_array( $field, $fields ) ) { |
|
129 | + return 0; |
|
130 | + } |
|
131 | + |
|
132 | + // Maybe retrieve from the cache. |
|
133 | + $subscription_id = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" ); |
|
134 | + if ( ! empty( $subscription_id ) ) { |
|
135 | + return $subscription_id; |
|
136 | + } |
|
137 | 137 | |
138 | 138 | // Fetch from the db. |
139 | 139 | $table = $wpdb->prefix . 'wpinv_subscriptions'; |
@@ -141,42 +141,42 @@ discard block |
||
141 | 141 | $wpdb->prepare( "SELECT `id` FROM $table WHERE `$field`=%s LIMIT 1", $value ) |
142 | 142 | ); |
143 | 143 | |
144 | - if ( empty( $subscription_id ) ) { |
|
145 | - return 0; |
|
146 | - } |
|
144 | + if ( empty( $subscription_id ) ) { |
|
145 | + return 0; |
|
146 | + } |
|
147 | 147 | |
148 | - // Update the cache with our data. |
|
149 | - wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" ); |
|
148 | + // Update the cache with our data. |
|
149 | + wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" ); |
|
150 | 150 | |
151 | - return $subscription_id; |
|
152 | - } |
|
151 | + return $subscription_id; |
|
152 | + } |
|
153 | 153 | |
154 | - /** |
|
154 | + /** |
|
155 | 155 | * Clears the subscription's cache. |
156 | 156 | */ |
157 | 157 | public function clear_cache() { |
158 | - $caches = array( |
|
159 | - 'getpaid_subscription_parent_payment_ids_to_subscription_ids' => $this->get_parent_payment_id(), |
|
160 | - 'getpaid_subscription_transaction_ids_to_subscription_ids' => $this->get_transaction_id(), |
|
161 | - 'getpaid_subscription_profile_ids_to_subscription_ids' => $this->get_profile_id(), |
|
162 | - 'getpaid_subscriptions' => $this->get_id(), |
|
163 | - ); |
|
164 | - |
|
165 | - foreach ( $caches as $cache => $value ) { |
|
166 | - if ( '' !== $value && false !== $value ) { |
|
167 | - wp_cache_delete( $value, $cache ); |
|
168 | - } |
|
169 | - } |
|
170 | - } |
|
171 | - |
|
172 | - /** |
|
158 | + $caches = array( |
|
159 | + 'getpaid_subscription_parent_payment_ids_to_subscription_ids' => $this->get_parent_payment_id(), |
|
160 | + 'getpaid_subscription_transaction_ids_to_subscription_ids' => $this->get_transaction_id(), |
|
161 | + 'getpaid_subscription_profile_ids_to_subscription_ids' => $this->get_profile_id(), |
|
162 | + 'getpaid_subscriptions' => $this->get_id(), |
|
163 | + ); |
|
164 | + |
|
165 | + foreach ( $caches as $cache => $value ) { |
|
166 | + if ( '' !== $value && false !== $value ) { |
|
167 | + wp_cache_delete( $value, $cache ); |
|
168 | + } |
|
169 | + } |
|
170 | + } |
|
171 | + |
|
172 | + /** |
|
173 | 173 | * Checks if a subscription key is set. |
174 | 174 | */ |
175 | 175 | public function _isset( $key ) { |
176 | 176 | return isset( $this->data[ $key ] ) || method_exists( $this, "get_$key" ); |
177 | - } |
|
177 | + } |
|
178 | 178 | |
179 | - /* |
|
179 | + /* |
|
180 | 180 | |-------------------------------------------------------------------------- |
181 | 181 | | CRUD methods |
182 | 182 | |-------------------------------------------------------------------------- |
@@ -185,544 +185,544 @@ discard block |
||
185 | 185 | | |
186 | 186 | */ |
187 | 187 | |
188 | - /* |
|
188 | + /* |
|
189 | 189 | |-------------------------------------------------------------------------- |
190 | 190 | | Getters |
191 | 191 | |-------------------------------------------------------------------------- |
192 | 192 | */ |
193 | 193 | |
194 | - /** |
|
195 | - * Get customer id. |
|
196 | - * |
|
197 | - * @since 1.0.19 |
|
198 | - * @param string $context View or edit context. |
|
199 | - * @return int |
|
200 | - */ |
|
201 | - public function get_customer_id( $context = 'view' ) { |
|
202 | - return (int) $this->get_prop( 'customer_id', $context ); |
|
203 | - } |
|
204 | - |
|
205 | - /** |
|
206 | - * Get customer information. |
|
207 | - * |
|
208 | - * @since 1.0.19 |
|
209 | - * @param string $context View or edit context. |
|
210 | - * @return WP_User|false WP_User object on success, false on failure. |
|
211 | - */ |
|
212 | - public function get_customer( $context = 'view' ) { |
|
213 | - return get_userdata( $this->get_customer_id( $context ) ); |
|
214 | - } |
|
215 | - |
|
216 | - /** |
|
217 | - * Get parent invoice id. |
|
218 | - * |
|
219 | - * @since 1.0.19 |
|
220 | - * @param string $context View or edit context. |
|
221 | - * @return int |
|
222 | - */ |
|
223 | - public function get_parent_invoice_id( $context = 'view' ) { |
|
224 | - return (int) $this->get_prop( 'parent_payment_id', $context ); |
|
225 | - } |
|
226 | - |
|
227 | - /** |
|
228 | - * Alias for self::get_parent_invoice_id(). |
|
229 | - * |
|
230 | - * @since 1.0.19 |
|
231 | - * @param string $context View or edit context. |
|
232 | - * @return int |
|
233 | - */ |
|
194 | + /** |
|
195 | + * Get customer id. |
|
196 | + * |
|
197 | + * @since 1.0.19 |
|
198 | + * @param string $context View or edit context. |
|
199 | + * @return int |
|
200 | + */ |
|
201 | + public function get_customer_id( $context = 'view' ) { |
|
202 | + return (int) $this->get_prop( 'customer_id', $context ); |
|
203 | + } |
|
204 | + |
|
205 | + /** |
|
206 | + * Get customer information. |
|
207 | + * |
|
208 | + * @since 1.0.19 |
|
209 | + * @param string $context View or edit context. |
|
210 | + * @return WP_User|false WP_User object on success, false on failure. |
|
211 | + */ |
|
212 | + public function get_customer( $context = 'view' ) { |
|
213 | + return get_userdata( $this->get_customer_id( $context ) ); |
|
214 | + } |
|
215 | + |
|
216 | + /** |
|
217 | + * Get parent invoice id. |
|
218 | + * |
|
219 | + * @since 1.0.19 |
|
220 | + * @param string $context View or edit context. |
|
221 | + * @return int |
|
222 | + */ |
|
223 | + public function get_parent_invoice_id( $context = 'view' ) { |
|
224 | + return (int) $this->get_prop( 'parent_payment_id', $context ); |
|
225 | + } |
|
226 | + |
|
227 | + /** |
|
228 | + * Alias for self::get_parent_invoice_id(). |
|
229 | + * |
|
230 | + * @since 1.0.19 |
|
231 | + * @param string $context View or edit context. |
|
232 | + * @return int |
|
233 | + */ |
|
234 | 234 | public function get_parent_payment_id( $context = 'view' ) { |
235 | 235 | return $this->get_parent_invoice_id( $context ); |
236 | - } |
|
236 | + } |
|
237 | + |
|
238 | + /** |
|
239 | + * Alias for self::get_parent_invoice_id(). |
|
240 | + * |
|
241 | + * @since 1.0.0 |
|
242 | + * @return int |
|
243 | + */ |
|
244 | + public function get_original_payment_id( $context = 'view' ) { |
|
245 | + return $this->get_parent_invoice_id( $context ); |
|
246 | + } |
|
247 | + |
|
248 | + /** |
|
249 | + * Get parent invoice. |
|
250 | + * |
|
251 | + * @since 1.0.19 |
|
252 | + * @param string $context View or edit context. |
|
253 | + * @return WPInv_Invoice |
|
254 | + */ |
|
255 | + public function get_parent_invoice( $context = 'view' ) { |
|
256 | + return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) ); |
|
257 | + } |
|
258 | + |
|
259 | + /** |
|
260 | + * Alias for self::get_parent_invoice(). |
|
261 | + * |
|
262 | + * @since 1.0.19 |
|
263 | + * @param string $context View or edit context. |
|
264 | + * @return WPInv_Invoice |
|
265 | + */ |
|
266 | + public function get_parent_payment( $context = 'view' ) { |
|
267 | + return $this->get_parent_invoice( $context ); |
|
268 | + } |
|
269 | + |
|
270 | + /** |
|
271 | + * Get subscription's product id. |
|
272 | + * |
|
273 | + * @since 1.0.19 |
|
274 | + * @param string $context View or edit context. |
|
275 | + * @return int |
|
276 | + */ |
|
277 | + public function get_product_id( $context = 'view' ) { |
|
278 | + return (int) $this->get_prop( 'product_id', $context ); |
|
279 | + } |
|
280 | + |
|
281 | + /** |
|
282 | + * Get the subscription product. |
|
283 | + * |
|
284 | + * @since 1.0.19 |
|
285 | + * @param string $context View or edit context. |
|
286 | + * @return WPInv_Item |
|
287 | + */ |
|
288 | + public function get_product( $context = 'view' ) { |
|
289 | + return new WPInv_Item( $this->get_product_id( $context ) ); |
|
290 | + } |
|
291 | + |
|
292 | + /** |
|
293 | + * Get parent invoice's gateway. |
|
294 | + * |
|
295 | + * Here for backwards compatibility. |
|
296 | + * |
|
297 | + * @since 1.0.19 |
|
298 | + * @param string $context View or edit context. |
|
299 | + * @return string |
|
300 | + */ |
|
301 | + public function get_gateway( $context = 'view' ) { |
|
302 | + return $this->get_parent_invoice( $context )->get_gateway(); |
|
303 | + } |
|
304 | + |
|
305 | + /** |
|
306 | + * Get the period of a renewal. |
|
307 | + * |
|
308 | + * @since 1.0.19 |
|
309 | + * @param string $context View or edit context. |
|
310 | + * @return string |
|
311 | + */ |
|
312 | + public function get_period( $context = 'view' ) { |
|
313 | + return $this->get_prop( 'period', $context ); |
|
314 | + } |
|
315 | + |
|
316 | + /** |
|
317 | + * Get number of periods each renewal is valid for. |
|
318 | + * |
|
319 | + * @since 1.0.19 |
|
320 | + * @param string $context View or edit context. |
|
321 | + * @return int |
|
322 | + */ |
|
323 | + public function get_frequency( $context = 'view' ) { |
|
324 | + return (int) $this->get_prop( 'frequency', $context ); |
|
325 | + } |
|
326 | + |
|
327 | + /** |
|
328 | + * Get the initial amount for the subscription. |
|
329 | + * |
|
330 | + * @since 1.0.19 |
|
331 | + * @param string $context View or edit context. |
|
332 | + * @return float |
|
333 | + */ |
|
334 | + public function get_initial_amount( $context = 'view' ) { |
|
335 | + return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) ); |
|
336 | + } |
|
337 | + |
|
338 | + /** |
|
339 | + * Get the recurring amount for the subscription. |
|
340 | + * |
|
341 | + * @since 1.0.19 |
|
342 | + * @param string $context View or edit context. |
|
343 | + * @return float |
|
344 | + */ |
|
345 | + public function get_recurring_amount( $context = 'view' ) { |
|
346 | + return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) ); |
|
347 | + } |
|
348 | + |
|
349 | + /** |
|
350 | + * Get number of times that this subscription can be renewed. |
|
351 | + * |
|
352 | + * @since 1.0.19 |
|
353 | + * @param string $context View or edit context. |
|
354 | + * @return int |
|
355 | + */ |
|
356 | + public function get_bill_times( $context = 'view' ) { |
|
357 | + return (int) $this->get_prop( 'bill_times', $context ); |
|
358 | + } |
|
359 | + |
|
360 | + /** |
|
361 | + * Get transaction id of this subscription's parent invoice. |
|
362 | + * |
|
363 | + * @since 1.0.19 |
|
364 | + * @param string $context View or edit context. |
|
365 | + * @return string |
|
366 | + */ |
|
367 | + public function get_transaction_id( $context = 'view' ) { |
|
368 | + return $this->get_prop( 'transaction_id', $context ); |
|
369 | + } |
|
370 | + |
|
371 | + /** |
|
372 | + * Get the date that the subscription was created. |
|
373 | + * |
|
374 | + * @since 1.0.19 |
|
375 | + * @param string $context View or edit context. |
|
376 | + * @return string |
|
377 | + */ |
|
378 | + public function get_created( $context = 'view' ) { |
|
379 | + return $this->get_prop( 'created', $context ); |
|
380 | + } |
|
381 | + |
|
382 | + /** |
|
383 | + * Alias for self::get_created(). |
|
384 | + * |
|
385 | + * @since 1.0.19 |
|
386 | + * @param string $context View or edit context. |
|
387 | + * @return string |
|
388 | + */ |
|
389 | + public function get_date_created( $context = 'view' ) { |
|
390 | + return $this->get_created( $context ); |
|
391 | + } |
|
392 | + |
|
393 | + /** |
|
394 | + * Retrieves the creation date in a timestamp |
|
395 | + * |
|
396 | + * @since 1.0.0 |
|
397 | + * @return int |
|
398 | + */ |
|
399 | + public function get_time_created() { |
|
400 | + $created = $this->get_date_created(); |
|
401 | + return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) ); |
|
402 | + } |
|
403 | + |
|
404 | + /** |
|
405 | + * Get GMT date when the subscription was created. |
|
406 | + * |
|
407 | + * @since 1.0.19 |
|
408 | + * @param string $context View or edit context. |
|
409 | + * @return string |
|
410 | + */ |
|
411 | + public function get_date_created_gmt( $context = 'view' ) { |
|
412 | + $date = $this->get_date_created( $context ); |
|
413 | + |
|
414 | + if ( $date ) { |
|
415 | + $date = get_gmt_from_date( $date ); |
|
416 | + } |
|
417 | + return $date; |
|
418 | + } |
|
419 | + |
|
420 | + /** |
|
421 | + * Get the date that the subscription will renew. |
|
422 | + * |
|
423 | + * @since 1.0.19 |
|
424 | + * @param string $context View or edit context. |
|
425 | + * @return string |
|
426 | + */ |
|
427 | + public function get_next_renewal_date( $context = 'view' ) { |
|
428 | + return $this->get_prop( 'expiration', $context ); |
|
429 | + } |
|
430 | + |
|
431 | + /** |
|
432 | + * Alias for self::get_next_renewal_date(). |
|
433 | + * |
|
434 | + * @since 1.0.19 |
|
435 | + * @param string $context View or edit context. |
|
436 | + * @return string |
|
437 | + */ |
|
438 | + public function get_expiration( $context = 'view' ) { |
|
439 | + return $this->get_next_renewal_date( $context ); |
|
440 | + } |
|
441 | + |
|
442 | + /** |
|
443 | + * Retrieves the expiration date in a timestamp |
|
444 | + * |
|
445 | + * @since 1.0.0 |
|
446 | + * @return int |
|
447 | + */ |
|
448 | + public function get_expiration_time() { |
|
449 | + $expiration = $this->get_expiration(); |
|
450 | + |
|
451 | + if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) { |
|
452 | + return current_time( 'timestamp' ); |
|
453 | + } |
|
454 | + |
|
455 | + $expiration = strtotime( $expiration, current_time( 'timestamp' ) ); |
|
456 | + return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration; |
|
457 | + } |
|
458 | + |
|
459 | + /** |
|
460 | + * Get GMT date when the subscription will renew. |
|
461 | + * |
|
462 | + * @since 1.0.19 |
|
463 | + * @param string $context View or edit context. |
|
464 | + * @return string |
|
465 | + */ |
|
466 | + public function get_next_renewal_date_gmt( $context = 'view' ) { |
|
467 | + $date = $this->get_next_renewal_date( $context ); |
|
468 | + |
|
469 | + if ( $date ) { |
|
470 | + $date = get_gmt_from_date( $date ); |
|
471 | + } |
|
472 | + return $date; |
|
473 | + } |
|
474 | + |
|
475 | + /** |
|
476 | + * Get the subscription's trial period. |
|
477 | + * |
|
478 | + * @since 1.0.19 |
|
479 | + * @param string $context View or edit context. |
|
480 | + * @return string |
|
481 | + */ |
|
482 | + public function get_trial_period( $context = 'view' ) { |
|
483 | + return $this->get_prop( 'trial_period', $context ); |
|
484 | + } |
|
485 | + |
|
486 | + /** |
|
487 | + * Get the subscription's status. |
|
488 | + * |
|
489 | + * @since 1.0.19 |
|
490 | + * @param string $context View or edit context. |
|
491 | + * @return string |
|
492 | + */ |
|
493 | + public function get_status( $context = 'view' ) { |
|
494 | + return $this->get_prop( 'status', $context ); |
|
495 | + } |
|
496 | + |
|
497 | + /** |
|
498 | + * Get the subscription's profile id. |
|
499 | + * |
|
500 | + * @since 1.0.19 |
|
501 | + * @param string $context View or edit context. |
|
502 | + * @return string |
|
503 | + */ |
|
504 | + public function get_profile_id( $context = 'view' ) { |
|
505 | + return $this->get_prop( 'profile_id', $context ); |
|
506 | + } |
|
507 | + |
|
508 | + /* |
|
509 | + |-------------------------------------------------------------------------- |
|
510 | + | Setters |
|
511 | + |-------------------------------------------------------------------------- |
|
512 | + */ |
|
513 | + |
|
514 | + /** |
|
515 | + * Set customer id. |
|
516 | + * |
|
517 | + * @since 1.0.19 |
|
518 | + * @param int $value The customer's id. |
|
519 | + */ |
|
520 | + public function set_customer_id( $value ) { |
|
521 | + $this->set_prop( 'customer_id', (int) $value ); |
|
522 | + } |
|
523 | + |
|
524 | + /** |
|
525 | + * Set parent invoice id. |
|
526 | + * |
|
527 | + * @since 1.0.19 |
|
528 | + * @param int $value The parent invoice id. |
|
529 | + */ |
|
530 | + public function set_parent_invoice_id( $value ) { |
|
531 | + $this->set_prop( 'parent_payment_id', (int) $value ); |
|
532 | + } |
|
533 | + |
|
534 | + /** |
|
535 | + * Alias for self::set_parent_invoice_id(). |
|
536 | + * |
|
537 | + * @since 1.0.19 |
|
538 | + * @param int $value The parent invoice id. |
|
539 | + */ |
|
540 | + public function set_parent_payment_id( $value ) { |
|
541 | + $this->set_parent_invoice_id( $value ); |
|
542 | + } |
|
543 | + |
|
544 | + /** |
|
545 | + * Alias for self::set_parent_invoice_id(). |
|
546 | + * |
|
547 | + * @since 1.0.19 |
|
548 | + * @param int $value The parent invoice id. |
|
549 | + */ |
|
550 | + public function set_original_payment_id( $value ) { |
|
551 | + $this->set_parent_invoice_id( $value ); |
|
552 | + } |
|
553 | + |
|
554 | + /** |
|
555 | + * Set subscription's product id. |
|
556 | + * |
|
557 | + * @since 1.0.19 |
|
558 | + * @param int $value The subscription product id. |
|
559 | + */ |
|
560 | + public function set_product_id( $value ) { |
|
561 | + $this->set_prop( 'product_id', (int) $value ); |
|
562 | + } |
|
563 | + |
|
564 | + /** |
|
565 | + * Set the period of a renewal. |
|
566 | + * |
|
567 | + * @since 1.0.19 |
|
568 | + * @param string $value The renewal period. |
|
569 | + */ |
|
570 | + public function set_period( $value ) { |
|
571 | + $this->set_prop( 'period', $value ); |
|
572 | + } |
|
573 | + |
|
574 | + /** |
|
575 | + * Set number of periods each renewal is valid for. |
|
576 | + * |
|
577 | + * @since 1.0.19 |
|
578 | + * @param int $value The subscription frequency. |
|
579 | + */ |
|
580 | + public function set_frequency( $value ) { |
|
581 | + $value = empty( $value ) ? 1 : (int) $value; |
|
582 | + $this->set_prop( 'frequency', absint( $value ) ); |
|
583 | + } |
|
584 | + |
|
585 | + /** |
|
586 | + * Set the initial amount for the subscription. |
|
587 | + * |
|
588 | + * @since 1.0.19 |
|
589 | + * @param float $value The initial subcription amount. |
|
590 | + */ |
|
591 | + public function set_initial_amount( $value ) { |
|
592 | + $this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) ); |
|
593 | + } |
|
594 | + |
|
595 | + /** |
|
596 | + * Set the recurring amount for the subscription. |
|
597 | + * |
|
598 | + * @since 1.0.19 |
|
599 | + * @param float $value The recurring subcription amount. |
|
600 | + */ |
|
601 | + public function set_recurring_amount( $value ) { |
|
602 | + $this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) ); |
|
603 | + } |
|
604 | + |
|
605 | + /** |
|
606 | + * Set number of times that this subscription can be renewed. |
|
607 | + * |
|
608 | + * @since 1.0.19 |
|
609 | + * @param int $value Bill times. |
|
610 | + */ |
|
611 | + public function set_bill_times( $value ) { |
|
612 | + $this->set_prop( 'bill_times', (int) $value ); |
|
613 | + } |
|
614 | + |
|
615 | + /** |
|
616 | + * Get transaction id of this subscription's parent invoice. |
|
617 | + * |
|
618 | + * @since 1.0.19 |
|
619 | + * @param string $value Bill times. |
|
620 | + */ |
|
621 | + public function set_transaction_id( $value ) { |
|
622 | + $this->set_prop( 'transaction_id', sanitize_text_field( $value ) ); |
|
623 | + } |
|
624 | + |
|
625 | + /** |
|
626 | + * Set date when this subscription started. |
|
627 | + * |
|
628 | + * @since 1.0.19 |
|
629 | + * @param string $value strtotime compliant date. |
|
630 | + */ |
|
631 | + public function set_created( $value ) { |
|
632 | + $date = strtotime( $value ); |
|
633 | + |
|
634 | + if ( $date && $value !== '0000-00-00 00:00:00' ) { |
|
635 | + $this->set_prop( 'created', gmdate( 'Y-m-d H:i:s', $date ) ); |
|
636 | + return; |
|
637 | + } |
|
638 | + |
|
639 | + $this->set_prop( 'created', '' ); |
|
237 | 640 | |
238 | - /** |
|
239 | - * Alias for self::get_parent_invoice_id(). |
|
641 | + } |
|
642 | + |
|
643 | + /** |
|
644 | + * Alias for self::set_created(). |
|
240 | 645 | * |
241 | - * @since 1.0.0 |
|
242 | - * @return int |
|
646 | + * @since 1.0.19 |
|
647 | + * @param string $value strtotime compliant date. |
|
243 | 648 | */ |
244 | - public function get_original_payment_id( $context = 'view' ) { |
|
245 | - return $this->get_parent_invoice_id( $context ); |
|
649 | + public function set_date_created( $value ) { |
|
650 | + $this->set_created( $value ); |
|
246 | 651 | } |
247 | 652 | |
248 | - /** |
|
249 | - * Get parent invoice. |
|
250 | - * |
|
251 | - * @since 1.0.19 |
|
252 | - * @param string $context View or edit context. |
|
253 | - * @return WPInv_Invoice |
|
254 | - */ |
|
255 | - public function get_parent_invoice( $context = 'view' ) { |
|
256 | - return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) ); |
|
257 | - } |
|
258 | - |
|
259 | - /** |
|
260 | - * Alias for self::get_parent_invoice(). |
|
261 | - * |
|
262 | - * @since 1.0.19 |
|
263 | - * @param string $context View or edit context. |
|
264 | - * @return WPInv_Invoice |
|
265 | - */ |
|
266 | - public function get_parent_payment( $context = 'view' ) { |
|
267 | - return $this->get_parent_invoice( $context ); |
|
268 | - } |
|
269 | - |
|
270 | - /** |
|
271 | - * Get subscription's product id. |
|
272 | - * |
|
273 | - * @since 1.0.19 |
|
274 | - * @param string $context View or edit context. |
|
275 | - * @return int |
|
276 | - */ |
|
277 | - public function get_product_id( $context = 'view' ) { |
|
278 | - return (int) $this->get_prop( 'product_id', $context ); |
|
279 | - } |
|
280 | - |
|
281 | - /** |
|
282 | - * Get the subscription product. |
|
283 | - * |
|
284 | - * @since 1.0.19 |
|
285 | - * @param string $context View or edit context. |
|
286 | - * @return WPInv_Item |
|
287 | - */ |
|
288 | - public function get_product( $context = 'view' ) { |
|
289 | - return new WPInv_Item( $this->get_product_id( $context ) ); |
|
290 | - } |
|
291 | - |
|
292 | - /** |
|
293 | - * Get parent invoice's gateway. |
|
294 | - * |
|
295 | - * Here for backwards compatibility. |
|
296 | - * |
|
297 | - * @since 1.0.19 |
|
298 | - * @param string $context View or edit context. |
|
299 | - * @return string |
|
300 | - */ |
|
301 | - public function get_gateway( $context = 'view' ) { |
|
302 | - return $this->get_parent_invoice( $context )->get_gateway(); |
|
303 | - } |
|
304 | - |
|
305 | - /** |
|
306 | - * Get the period of a renewal. |
|
307 | - * |
|
308 | - * @since 1.0.19 |
|
309 | - * @param string $context View or edit context. |
|
310 | - * @return string |
|
311 | - */ |
|
312 | - public function get_period( $context = 'view' ) { |
|
313 | - return $this->get_prop( 'period', $context ); |
|
314 | - } |
|
315 | - |
|
316 | - /** |
|
317 | - * Get number of periods each renewal is valid for. |
|
318 | - * |
|
319 | - * @since 1.0.19 |
|
320 | - * @param string $context View or edit context. |
|
321 | - * @return int |
|
322 | - */ |
|
323 | - public function get_frequency( $context = 'view' ) { |
|
324 | - return (int) $this->get_prop( 'frequency', $context ); |
|
325 | - } |
|
326 | - |
|
327 | - /** |
|
328 | - * Get the initial amount for the subscription. |
|
329 | - * |
|
330 | - * @since 1.0.19 |
|
331 | - * @param string $context View or edit context. |
|
332 | - * @return float |
|
333 | - */ |
|
334 | - public function get_initial_amount( $context = 'view' ) { |
|
335 | - return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) ); |
|
336 | - } |
|
337 | - |
|
338 | - /** |
|
339 | - * Get the recurring amount for the subscription. |
|
340 | - * |
|
341 | - * @since 1.0.19 |
|
342 | - * @param string $context View or edit context. |
|
343 | - * @return float |
|
344 | - */ |
|
345 | - public function get_recurring_amount( $context = 'view' ) { |
|
346 | - return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) ); |
|
347 | - } |
|
348 | - |
|
349 | - /** |
|
350 | - * Get number of times that this subscription can be renewed. |
|
351 | - * |
|
352 | - * @since 1.0.19 |
|
353 | - * @param string $context View or edit context. |
|
354 | - * @return int |
|
355 | - */ |
|
356 | - public function get_bill_times( $context = 'view' ) { |
|
357 | - return (int) $this->get_prop( 'bill_times', $context ); |
|
358 | - } |
|
359 | - |
|
360 | - /** |
|
361 | - * Get transaction id of this subscription's parent invoice. |
|
362 | - * |
|
363 | - * @since 1.0.19 |
|
364 | - * @param string $context View or edit context. |
|
365 | - * @return string |
|
366 | - */ |
|
367 | - public function get_transaction_id( $context = 'view' ) { |
|
368 | - return $this->get_prop( 'transaction_id', $context ); |
|
369 | - } |
|
370 | - |
|
371 | - /** |
|
372 | - * Get the date that the subscription was created. |
|
373 | - * |
|
374 | - * @since 1.0.19 |
|
375 | - * @param string $context View or edit context. |
|
376 | - * @return string |
|
377 | - */ |
|
378 | - public function get_created( $context = 'view' ) { |
|
379 | - return $this->get_prop( 'created', $context ); |
|
380 | - } |
|
381 | - |
|
382 | - /** |
|
383 | - * Alias for self::get_created(). |
|
384 | - * |
|
385 | - * @since 1.0.19 |
|
386 | - * @param string $context View or edit context. |
|
387 | - * @return string |
|
388 | - */ |
|
389 | - public function get_date_created( $context = 'view' ) { |
|
390 | - return $this->get_created( $context ); |
|
391 | - } |
|
392 | - |
|
393 | - /** |
|
394 | - * Retrieves the creation date in a timestamp |
|
395 | - * |
|
396 | - * @since 1.0.0 |
|
397 | - * @return int |
|
398 | - */ |
|
399 | - public function get_time_created() { |
|
400 | - $created = $this->get_date_created(); |
|
401 | - return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) ); |
|
402 | - } |
|
403 | - |
|
404 | - /** |
|
405 | - * Get GMT date when the subscription was created. |
|
406 | - * |
|
407 | - * @since 1.0.19 |
|
408 | - * @param string $context View or edit context. |
|
409 | - * @return string |
|
410 | - */ |
|
411 | - public function get_date_created_gmt( $context = 'view' ) { |
|
412 | - $date = $this->get_date_created( $context ); |
|
653 | + /** |
|
654 | + * Set the date that the subscription will renew. |
|
655 | + * |
|
656 | + * @since 1.0.19 |
|
657 | + * @param string $value strtotime compliant date. |
|
658 | + */ |
|
659 | + public function set_next_renewal_date( $value ) { |
|
660 | + $date = strtotime( $value ); |
|
413 | 661 | |
414 | - if ( $date ) { |
|
415 | - $date = get_gmt_from_date( $date ); |
|
662 | + if ( $date && $value !== '0000-00-00 00:00:00' ) { |
|
663 | + $this->set_prop( 'expiration', gmdate( 'Y-m-d H:i:s', $date ) ); |
|
664 | + return; |
|
416 | 665 | } |
417 | - return $date; |
|
418 | - } |
|
419 | - |
|
420 | - /** |
|
421 | - * Get the date that the subscription will renew. |
|
422 | - * |
|
423 | - * @since 1.0.19 |
|
424 | - * @param string $context View or edit context. |
|
425 | - * @return string |
|
426 | - */ |
|
427 | - public function get_next_renewal_date( $context = 'view' ) { |
|
428 | - return $this->get_prop( 'expiration', $context ); |
|
429 | - } |
|
430 | - |
|
431 | - /** |
|
432 | - * Alias for self::get_next_renewal_date(). |
|
433 | - * |
|
434 | - * @since 1.0.19 |
|
435 | - * @param string $context View or edit context. |
|
436 | - * @return string |
|
437 | - */ |
|
438 | - public function get_expiration( $context = 'view' ) { |
|
439 | - return $this->get_next_renewal_date( $context ); |
|
440 | - } |
|
441 | - |
|
442 | - /** |
|
443 | - * Retrieves the expiration date in a timestamp |
|
444 | - * |
|
445 | - * @since 1.0.0 |
|
446 | - * @return int |
|
447 | - */ |
|
448 | - public function get_expiration_time() { |
|
449 | - $expiration = $this->get_expiration(); |
|
450 | - |
|
451 | - if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) { |
|
452 | - return current_time( 'timestamp' ); |
|
453 | - } |
|
454 | - |
|
455 | - $expiration = strtotime( $expiration, current_time( 'timestamp' ) ); |
|
456 | - return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration; |
|
457 | - } |
|
458 | - |
|
459 | - /** |
|
460 | - * Get GMT date when the subscription will renew. |
|
461 | - * |
|
462 | - * @since 1.0.19 |
|
463 | - * @param string $context View or edit context. |
|
464 | - * @return string |
|
465 | - */ |
|
466 | - public function get_next_renewal_date_gmt( $context = 'view' ) { |
|
467 | - $date = $this->get_next_renewal_date( $context ); |
|
468 | 666 | |
469 | - if ( $date ) { |
|
470 | - $date = get_gmt_from_date( $date ); |
|
471 | - } |
|
472 | - return $date; |
|
473 | - } |
|
474 | - |
|
475 | - /** |
|
476 | - * Get the subscription's trial period. |
|
477 | - * |
|
478 | - * @since 1.0.19 |
|
479 | - * @param string $context View or edit context. |
|
480 | - * @return string |
|
481 | - */ |
|
482 | - public function get_trial_period( $context = 'view' ) { |
|
483 | - return $this->get_prop( 'trial_period', $context ); |
|
484 | - } |
|
485 | - |
|
486 | - /** |
|
487 | - * Get the subscription's status. |
|
488 | - * |
|
489 | - * @since 1.0.19 |
|
490 | - * @param string $context View or edit context. |
|
491 | - * @return string |
|
492 | - */ |
|
493 | - public function get_status( $context = 'view' ) { |
|
494 | - return $this->get_prop( 'status', $context ); |
|
495 | - } |
|
496 | - |
|
497 | - /** |
|
498 | - * Get the subscription's profile id. |
|
499 | - * |
|
500 | - * @since 1.0.19 |
|
501 | - * @param string $context View or edit context. |
|
502 | - * @return string |
|
503 | - */ |
|
504 | - public function get_profile_id( $context = 'view' ) { |
|
505 | - return $this->get_prop( 'profile_id', $context ); |
|
506 | - } |
|
507 | - |
|
508 | - /* |
|
509 | - |-------------------------------------------------------------------------- |
|
510 | - | Setters |
|
511 | - |-------------------------------------------------------------------------- |
|
512 | - */ |
|
667 | + $this->set_prop( 'expiration', '' ); |
|
513 | 668 | |
514 | - /** |
|
515 | - * Set customer id. |
|
516 | - * |
|
517 | - * @since 1.0.19 |
|
518 | - * @param int $value The customer's id. |
|
519 | - */ |
|
520 | - public function set_customer_id( $value ) { |
|
521 | - $this->set_prop( 'customer_id', (int) $value ); |
|
522 | - } |
|
523 | - |
|
524 | - /** |
|
525 | - * Set parent invoice id. |
|
526 | - * |
|
527 | - * @since 1.0.19 |
|
528 | - * @param int $value The parent invoice id. |
|
529 | - */ |
|
530 | - public function set_parent_invoice_id( $value ) { |
|
531 | - $this->set_prop( 'parent_payment_id', (int) $value ); |
|
532 | - } |
|
533 | - |
|
534 | - /** |
|
535 | - * Alias for self::set_parent_invoice_id(). |
|
536 | - * |
|
537 | - * @since 1.0.19 |
|
538 | - * @param int $value The parent invoice id. |
|
539 | - */ |
|
540 | - public function set_parent_payment_id( $value ) { |
|
541 | - $this->set_parent_invoice_id( $value ); |
|
542 | - } |
|
669 | + } |
|
543 | 670 | |
544 | - /** |
|
545 | - * Alias for self::set_parent_invoice_id(). |
|
671 | + /** |
|
672 | + * Alias for self::set_next_renewal_date(). |
|
546 | 673 | * |
547 | 674 | * @since 1.0.19 |
548 | - * @param int $value The parent invoice id. |
|
675 | + * @param string $value strtotime compliant date. |
|
549 | 676 | */ |
550 | - public function set_original_payment_id( $value ) { |
|
551 | - $this->set_parent_invoice_id( $value ); |
|
552 | - } |
|
553 | - |
|
554 | - /** |
|
555 | - * Set subscription's product id. |
|
556 | - * |
|
557 | - * @since 1.0.19 |
|
558 | - * @param int $value The subscription product id. |
|
559 | - */ |
|
560 | - public function set_product_id( $value ) { |
|
561 | - $this->set_prop( 'product_id', (int) $value ); |
|
562 | - } |
|
563 | - |
|
564 | - /** |
|
565 | - * Set the period of a renewal. |
|
566 | - * |
|
567 | - * @since 1.0.19 |
|
568 | - * @param string $value The renewal period. |
|
569 | - */ |
|
570 | - public function set_period( $value ) { |
|
571 | - $this->set_prop( 'period', $value ); |
|
572 | - } |
|
573 | - |
|
574 | - /** |
|
575 | - * Set number of periods each renewal is valid for. |
|
576 | - * |
|
577 | - * @since 1.0.19 |
|
578 | - * @param int $value The subscription frequency. |
|
579 | - */ |
|
580 | - public function set_frequency( $value ) { |
|
581 | - $value = empty( $value ) ? 1 : (int) $value; |
|
582 | - $this->set_prop( 'frequency', absint( $value ) ); |
|
583 | - } |
|
584 | - |
|
585 | - /** |
|
586 | - * Set the initial amount for the subscription. |
|
587 | - * |
|
588 | - * @since 1.0.19 |
|
589 | - * @param float $value The initial subcription amount. |
|
590 | - */ |
|
591 | - public function set_initial_amount( $value ) { |
|
592 | - $this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) ); |
|
593 | - } |
|
594 | - |
|
595 | - /** |
|
596 | - * Set the recurring amount for the subscription. |
|
597 | - * |
|
598 | - * @since 1.0.19 |
|
599 | - * @param float $value The recurring subcription amount. |
|
600 | - */ |
|
601 | - public function set_recurring_amount( $value ) { |
|
602 | - $this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) ); |
|
603 | - } |
|
604 | - |
|
605 | - /** |
|
606 | - * Set number of times that this subscription can be renewed. |
|
607 | - * |
|
608 | - * @since 1.0.19 |
|
609 | - * @param int $value Bill times. |
|
610 | - */ |
|
611 | - public function set_bill_times( $value ) { |
|
612 | - $this->set_prop( 'bill_times', (int) $value ); |
|
613 | - } |
|
614 | - |
|
615 | - /** |
|
616 | - * Get transaction id of this subscription's parent invoice. |
|
617 | - * |
|
618 | - * @since 1.0.19 |
|
619 | - * @param string $value Bill times. |
|
620 | - */ |
|
621 | - public function set_transaction_id( $value ) { |
|
622 | - $this->set_prop( 'transaction_id', sanitize_text_field( $value ) ); |
|
623 | - } |
|
624 | - |
|
625 | - /** |
|
626 | - * Set date when this subscription started. |
|
627 | - * |
|
628 | - * @since 1.0.19 |
|
629 | - * @param string $value strtotime compliant date. |
|
630 | - */ |
|
631 | - public function set_created( $value ) { |
|
632 | - $date = strtotime( $value ); |
|
677 | + public function set_expiration( $value ) { |
|
678 | + $this->set_next_renewal_date( $value ); |
|
679 | + } |
|
633 | 680 | |
634 | - if ( $date && $value !== '0000-00-00 00:00:00' ) { |
|
635 | - $this->set_prop( 'created', gmdate( 'Y-m-d H:i:s', $date ) ); |
|
681 | + /** |
|
682 | + * Set the subscription's trial period. |
|
683 | + * |
|
684 | + * @since 1.0.19 |
|
685 | + * @param string $value trial period e.g 1 year. |
|
686 | + */ |
|
687 | + public function set_trial_period( $value ) { |
|
688 | + $this->set_prop( 'trial_period', $value ); |
|
689 | + } |
|
690 | + |
|
691 | + /** |
|
692 | + * Set the subscription's status. |
|
693 | + * |
|
694 | + * @since 1.0.19 |
|
695 | + * @param string $new_status New subscription status. |
|
696 | + */ |
|
697 | + public function set_status( $new_status ) { |
|
698 | + |
|
699 | + // Abort if this is not a valid status; |
|
700 | + if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) { |
|
636 | 701 | return; |
637 | 702 | } |
638 | 703 | |
639 | - $this->set_prop( 'created', '' ); |
|
640 | - |
|
641 | - } |
|
704 | + $old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status(); |
|
705 | + if ( true === $this->object_read && $old_status !== $new_status ) { |
|
706 | + $this->status_transition = array( |
|
707 | + 'from' => $old_status, |
|
708 | + 'to' => $new_status, |
|
709 | + ); |
|
710 | + } |
|
642 | 711 | |
643 | - /** |
|
644 | - * Alias for self::set_created(). |
|
645 | - * |
|
646 | - * @since 1.0.19 |
|
647 | - * @param string $value strtotime compliant date. |
|
648 | - */ |
|
649 | - public function set_date_created( $value ) { |
|
650 | - $this->set_created( $value ); |
|
712 | + $this->set_prop( 'status', $new_status ); |
|
651 | 713 | } |
652 | 714 | |
653 | - /** |
|
654 | - * Set the date that the subscription will renew. |
|
655 | - * |
|
656 | - * @since 1.0.19 |
|
657 | - * @param string $value strtotime compliant date. |
|
658 | - */ |
|
659 | - public function set_next_renewal_date( $value ) { |
|
660 | - $date = strtotime( $value ); |
|
715 | + /** |
|
716 | + * Set the subscription's (remote) profile id. |
|
717 | + * |
|
718 | + * @since 1.0.19 |
|
719 | + * @param string $value the remote profile id. |
|
720 | + */ |
|
721 | + public function set_profile_id( $value ) { |
|
722 | + $this->set_prop( 'profile_id', sanitize_text_field( $value ) ); |
|
723 | + } |
|
661 | 724 | |
662 | - if ( $date && $value !== '0000-00-00 00:00:00' ) { |
|
663 | - $this->set_prop( 'expiration', gmdate( 'Y-m-d H:i:s', $date ) ); |
|
664 | - return; |
|
665 | - } |
|
666 | - |
|
667 | - $this->set_prop( 'expiration', '' ); |
|
668 | - |
|
669 | - } |
|
670 | - |
|
671 | - /** |
|
672 | - * Alias for self::set_next_renewal_date(). |
|
673 | - * |
|
674 | - * @since 1.0.19 |
|
675 | - * @param string $value strtotime compliant date. |
|
676 | - */ |
|
677 | - public function set_expiration( $value ) { |
|
678 | - $this->set_next_renewal_date( $value ); |
|
679 | - } |
|
680 | - |
|
681 | - /** |
|
682 | - * Set the subscription's trial period. |
|
683 | - * |
|
684 | - * @since 1.0.19 |
|
685 | - * @param string $value trial period e.g 1 year. |
|
686 | - */ |
|
687 | - public function set_trial_period( $value ) { |
|
688 | - $this->set_prop( 'trial_period', $value ); |
|
689 | - } |
|
690 | - |
|
691 | - /** |
|
692 | - * Set the subscription's status. |
|
693 | - * |
|
694 | - * @since 1.0.19 |
|
695 | - * @param string $new_status New subscription status. |
|
696 | - */ |
|
697 | - public function set_status( $new_status ) { |
|
698 | - |
|
699 | - // Abort if this is not a valid status; |
|
700 | - if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) { |
|
701 | - return; |
|
702 | - } |
|
703 | - |
|
704 | - $old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status(); |
|
705 | - if ( true === $this->object_read && $old_status !== $new_status ) { |
|
706 | - $this->status_transition = array( |
|
707 | - 'from' => $old_status, |
|
708 | - 'to' => $new_status, |
|
709 | - ); |
|
710 | - } |
|
711 | - |
|
712 | - $this->set_prop( 'status', $new_status ); |
|
713 | - } |
|
714 | - |
|
715 | - /** |
|
716 | - * Set the subscription's (remote) profile id. |
|
717 | - * |
|
718 | - * @since 1.0.19 |
|
719 | - * @param string $value the remote profile id. |
|
720 | - */ |
|
721 | - public function set_profile_id( $value ) { |
|
722 | - $this->set_prop( 'profile_id', sanitize_text_field( $value ) ); |
|
723 | - } |
|
724 | - |
|
725 | - /* |
|
725 | + /* |
|
726 | 726 | |-------------------------------------------------------------------------- |
727 | 727 | | Boolean methods |
728 | 728 | |-------------------------------------------------------------------------- |
@@ -731,55 +731,55 @@ discard block |
||
731 | 731 | | |
732 | 732 | */ |
733 | 733 | |
734 | - /** |
|
734 | + /** |
|
735 | 735 | * Checks if the subscription has a given status. |
736 | - * |
|
737 | - * @param string|array String or array of strings to check for. |
|
738 | - * @return bool |
|
736 | + * |
|
737 | + * @param string|array String or array of strings to check for. |
|
738 | + * @return bool |
|
739 | 739 | */ |
740 | 740 | public function has_status( $status ) { |
741 | 741 | return in_array( $this->get_status(), wpinv_clean( wpinv_parse_list( $status ) ) ); |
742 | - } |
|
742 | + } |
|
743 | 743 | |
744 | - /** |
|
744 | + /** |
|
745 | 745 | * Checks if the subscription has a trial period. |
746 | - * |
|
747 | - * @return bool |
|
746 | + * |
|
747 | + * @return bool |
|
748 | 748 | */ |
749 | 749 | public function has_trial_period() { |
750 | - $period = $this->get_trial_period(); |
|
750 | + $period = $this->get_trial_period(); |
|
751 | 751 | return ! empty( $period ); |
752 | - } |
|
753 | - |
|
754 | - /** |
|
755 | - * Is the subscription active? |
|
756 | - * |
|
757 | - * @return bool |
|
758 | - */ |
|
759 | - public function is_active() { |
|
760 | - return $this->has_status( 'active trialling' ) && ! $this->is_expired(); |
|
761 | - } |
|
762 | - |
|
763 | - /** |
|
764 | - * Is the subscription expired? |
|
765 | - * |
|
766 | - * @return bool |
|
767 | - */ |
|
768 | - public function is_expired() { |
|
769 | - return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) ); |
|
770 | - } |
|
771 | - |
|
772 | - /** |
|
773 | - * Is this the last renewals? |
|
774 | - * |
|
775 | - * @return bool |
|
776 | - */ |
|
777 | - public function is_last_renewal() { |
|
778 | - $max_bills = $this->get_bill_times(); |
|
779 | - return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed(); |
|
780 | - } |
|
781 | - |
|
782 | - /* |
|
752 | + } |
|
753 | + |
|
754 | + /** |
|
755 | + * Is the subscription active? |
|
756 | + * |
|
757 | + * @return bool |
|
758 | + */ |
|
759 | + public function is_active() { |
|
760 | + return $this->has_status( 'active trialling' ) && ! $this->is_expired(); |
|
761 | + } |
|
762 | + |
|
763 | + /** |
|
764 | + * Is the subscription expired? |
|
765 | + * |
|
766 | + * @return bool |
|
767 | + */ |
|
768 | + public function is_expired() { |
|
769 | + return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) ); |
|
770 | + } |
|
771 | + |
|
772 | + /** |
|
773 | + * Is this the last renewals? |
|
774 | + * |
|
775 | + * @return bool |
|
776 | + */ |
|
777 | + public function is_last_renewal() { |
|
778 | + $max_bills = $this->get_bill_times(); |
|
779 | + return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed(); |
|
780 | + } |
|
781 | + |
|
782 | + /* |
|
783 | 783 | |-------------------------------------------------------------------------- |
784 | 784 | | Additional methods |
785 | 785 | |-------------------------------------------------------------------------- |
@@ -788,27 +788,27 @@ discard block |
||
788 | 788 | | |
789 | 789 | */ |
790 | 790 | |
791 | - /** |
|
792 | - * Backwards compatibilty. |
|
793 | - */ |
|
794 | - public function create( $data = array() ) { |
|
791 | + /** |
|
792 | + * Backwards compatibilty. |
|
793 | + */ |
|
794 | + public function create( $data = array() ) { |
|
795 | 795 | |
796 | - // Set the properties. |
|
797 | - if ( is_array( $data ) ) { |
|
798 | - $this->set_props( $data ); |
|
799 | - } |
|
796 | + // Set the properties. |
|
797 | + if ( is_array( $data ) ) { |
|
798 | + $this->set_props( $data ); |
|
799 | + } |
|
800 | 800 | |
801 | - // Save the item. |
|
802 | - return $this->save(); |
|
801 | + // Save the item. |
|
802 | + return $this->save(); |
|
803 | 803 | |
804 | - } |
|
804 | + } |
|
805 | 805 | |
806 | - /** |
|
807 | - * Backwards compatibilty. |
|
808 | - */ |
|
809 | - public function update( $args = array() ) { |
|
810 | - return $this->create( $args ); |
|
811 | - } |
|
806 | + /** |
|
807 | + * Backwards compatibilty. |
|
808 | + */ |
|
809 | + public function update( $args = array() ) { |
|
810 | + return $this->create( $args ); |
|
811 | + } |
|
812 | 812 | |
813 | 813 | /** |
814 | 814 | * Retrieve renewal payments for a subscription |
@@ -818,22 +818,22 @@ discard block |
||
818 | 818 | */ |
819 | 819 | public function get_child_payments( $hide_pending = true ) { |
820 | 820 | |
821 | - $statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' ); |
|
821 | + $statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' ); |
|
822 | 822 | |
823 | - if ( ! $hide_pending ) { |
|
824 | - $statuses = array_keys( wpinv_get_invoice_statuses() ); |
|
825 | - } |
|
823 | + if ( ! $hide_pending ) { |
|
824 | + $statuses = array_keys( wpinv_get_invoice_statuses() ); |
|
825 | + } |
|
826 | 826 | |
827 | 827 | return get_posts( |
828 | - array( |
|
829 | - 'post_parent' => $this->get_parent_payment_id(), |
|
830 | - 'numberposts' => -1, |
|
831 | - 'post_status' => $statuses, |
|
832 | - 'orderby' => 'ID', |
|
833 | - 'order' => 'ASC', |
|
834 | - 'post_type' => 'wpi_invoice', |
|
835 | - ) |
|
836 | - ); |
|
828 | + array( |
|
829 | + 'post_parent' => $this->get_parent_payment_id(), |
|
830 | + 'numberposts' => -1, |
|
831 | + 'post_status' => $statuses, |
|
832 | + 'orderby' => 'ID', |
|
833 | + 'order' => 'ASC', |
|
834 | + 'post_type' => 'wpi_invoice', |
|
835 | + ) |
|
836 | + ); |
|
837 | 837 | } |
838 | 838 | |
839 | 839 | /** |
@@ -843,7 +843,7 @@ discard block |
||
843 | 843 | * @return int |
844 | 844 | */ |
845 | 845 | public function get_total_payments() { |
846 | - return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() ); |
|
846 | + return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() ); |
|
847 | 847 | } |
848 | 848 | |
849 | 849 | /** |
@@ -867,187 +867,187 @@ discard block |
||
867 | 867 | * |
868 | 868 | * @since 2.4 |
869 | 869 | * @param array $args Array of values for the payment, including amount and transaction ID |
870 | - * @param WPInv_Invoice $invoice If adding an existing invoice. |
|
870 | + * @param WPInv_Invoice $invoice If adding an existing invoice. |
|
871 | 871 | * @return bool |
872 | 872 | */ |
873 | 873 | public function add_payment( $args = array(), $invoice = false ) { |
874 | 874 | |
875 | - // Process each payment once. |
|
875 | + // Process each payment once. |
|
876 | 876 | if ( ! empty( $args['transaction_id'] ) && $this->payment_exists( $args['transaction_id'] ) ) { |
877 | 877 | return false; |
878 | 878 | } |
879 | 879 | |
880 | - // Are we creating a new invoice? |
|
881 | - if ( empty( $invoice ) ) { |
|
882 | - $invoice = $this->create_payment( false ); |
|
880 | + // Are we creating a new invoice? |
|
881 | + if ( empty( $invoice ) ) { |
|
882 | + $invoice = $this->create_payment( false ); |
|
883 | 883 | |
884 | - if ( empty( $invoice ) ) { |
|
885 | - return false; |
|
886 | - } |
|
887 | - } |
|
884 | + if ( empty( $invoice ) ) { |
|
885 | + return false; |
|
886 | + } |
|
887 | + } |
|
888 | 888 | |
889 | - // Maybe set a transaction id. |
|
890 | - if ( ! empty( $args['transaction_id'] ) ) { |
|
891 | - $invoice->set_transaction_id( $args['transaction_id'] ); |
|
892 | - } |
|
889 | + // Maybe set a transaction id. |
|
890 | + if ( ! empty( $args['transaction_id'] ) ) { |
|
891 | + $invoice->set_transaction_id( $args['transaction_id'] ); |
|
892 | + } |
|
893 | 893 | |
894 | - // Set the completed date. |
|
895 | - $invoice->set_completed_date( current_time( 'mysql' ) ); |
|
894 | + // Set the completed date. |
|
895 | + $invoice->set_completed_date( current_time( 'mysql' ) ); |
|
896 | 896 | |
897 | - // And the gateway. |
|
898 | - if ( ! empty( $args['gateway'] ) ) { |
|
899 | - $invoice->set_gateway( $args['gateway'] ); |
|
900 | - } |
|
897 | + // And the gateway. |
|
898 | + if ( ! empty( $args['gateway'] ) ) { |
|
899 | + $invoice->set_gateway( $args['gateway'] ); |
|
900 | + } |
|
901 | 901 | |
902 | - $invoice->set_status( 'wpi-renewal' ); |
|
903 | - $invoice->save(); |
|
902 | + $invoice->set_status( 'wpi-renewal' ); |
|
903 | + $invoice->save(); |
|
904 | 904 | |
905 | - if ( ! $invoice->exists() ) { |
|
906 | - return false; |
|
907 | - } |
|
905 | + if ( ! $invoice->exists() ) { |
|
906 | + return false; |
|
907 | + } |
|
908 | 908 | |
909 | - do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this ); |
|
910 | - do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this ); |
|
909 | + do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this ); |
|
910 | + do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this ); |
|
911 | 911 | do_action( 'wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id() ); |
912 | 912 | |
913 | 913 | update_post_meta( $invoice->get_id(), '_wpinv_subscription_id', $this->id ); |
914 | 914 | |
915 | 915 | return $invoice->get_id(); |
916 | - } |
|
916 | + } |
|
917 | 917 | |
918 | - /** |
|
918 | + /** |
|
919 | 919 | * Creates a new invoice and returns it. |
920 | 920 | * |
921 | 921 | * @since 1.0.19 |
922 | - * @param bool $save Whether we should save the invoice. |
|
922 | + * @param bool $save Whether we should save the invoice. |
|
923 | 923 | * @return WPInv_Invoice|bool |
924 | 924 | */ |
925 | 925 | public function create_payment( $save = true ) { |
926 | 926 | |
927 | - $parent_invoice = $this->get_parent_payment(); |
|
928 | - |
|
929 | - if ( ! $parent_invoice->exists() ) { |
|
930 | - return false; |
|
931 | - } |
|
932 | - |
|
933 | - // Duplicate the parent invoice. |
|
934 | - $invoice = getpaid_duplicate_invoice( $parent_invoice ); |
|
935 | - $invoice->set_parent_id( $parent_invoice->get_id() ); |
|
936 | - $invoice->set_subscription_id( $this->get_id() ); |
|
937 | - $invoice->set_remote_subscription_id( $this->get_profile_id() ); |
|
938 | - |
|
939 | - // Set invoice items. |
|
940 | - $subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() ); |
|
941 | - $allowed_items = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] ); |
|
942 | - $invoice_items = array(); |
|
943 | - |
|
944 | - foreach ( $invoice->get_items() as $item ) { |
|
945 | - if ( in_array( $item->get_id(), $allowed_items ) ) { |
|
946 | - $invoice_items[] = $item; |
|
947 | - } |
|
948 | - } |
|
949 | - |
|
950 | - $invoice->set_items( $invoice_items ); |
|
951 | - |
|
952 | - if ( ! empty( $subscription_group['fees'] ) ) { |
|
953 | - $invoice->set_fees( $subscription_group['fees'] ); |
|
954 | - } |
|
955 | - |
|
956 | - // Maybe recalculate discount (Pre-GetPaid Fix). |
|
957 | - $discount = new WPInv_Discount( $invoice->get_discount_code() ); |
|
958 | - if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) { |
|
959 | - $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) ); |
|
960 | - } |
|
961 | - |
|
962 | - $invoice->recalculate_total(); |
|
963 | - $invoice->set_status( 'wpi-pending' ); |
|
964 | - |
|
965 | - if ( ! $save ) { |
|
966 | - return $invoice; |
|
967 | - } |
|
968 | - |
|
969 | - $invoice->save(); |
|
970 | - |
|
971 | - return $invoice->exists() ? $invoice : false; |
|
972 | - } |
|
973 | - |
|
974 | - /** |
|
975 | - * Renews or completes a subscription |
|
976 | - * |
|
977 | - * @since 1.0.0 |
|
978 | - * @return int The subscription's id |
|
979 | - */ |
|
980 | - public function renew( $calculate_from = null ) { |
|
981 | - |
|
982 | - // Complete subscription if applicable |
|
983 | - if ( $this->is_last_renewal() ) { |
|
984 | - return $this->complete(); |
|
985 | - } |
|
986 | - |
|
987 | - // Calculate new expiration |
|
988 | - $frequency = $this->get_frequency(); |
|
989 | - $period = $this->get_period(); |
|
990 | - $calculate_from = empty( $calculate_from ) ? $this->get_expiration_time() : $calculate_from; |
|
991 | - $new_expiration = strtotime( "+ $frequency $period", $calculate_from ); |
|
992 | - |
|
993 | - $this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) ); |
|
994 | - $this->set_status( 'active' ); |
|
995 | - $this->save(); |
|
996 | - |
|
997 | - do_action( 'getpaid_subscription_renewed', $this ); |
|
998 | - |
|
999 | - return $this->get_id(); |
|
1000 | - } |
|
1001 | - |
|
1002 | - /** |
|
1003 | - * Marks a subscription as completed |
|
1004 | - * |
|
1005 | - * Subscription is completed when the number of payments matches the billing_times field |
|
1006 | - * |
|
1007 | - * @since 1.0.0 |
|
1008 | - * @return int|bool Subscription id or false if the subscription is cancelled. |
|
1009 | - */ |
|
1010 | - public function complete() { |
|
1011 | - |
|
1012 | - // Only mark a subscription as complete if it's not already cancelled. |
|
1013 | - if ( $this->has_status( 'cancelled' ) ) { |
|
1014 | - return false; |
|
1015 | - } |
|
1016 | - |
|
1017 | - $this->set_status( 'completed' ); |
|
1018 | - return $this->save(); |
|
1019 | - |
|
1020 | - } |
|
1021 | - |
|
1022 | - /** |
|
1023 | - * Marks a subscription as expired |
|
1024 | - * |
|
1025 | - * @since 1.0.0 |
|
1026 | - * @param bool $check_expiration |
|
1027 | - * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future. |
|
1028 | - */ |
|
1029 | - public function expire( $check_expiration = false ) { |
|
1030 | - |
|
1031 | - if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) { |
|
1032 | - // Do not mark as expired since real expiration date is in the future |
|
1033 | - return false; |
|
1034 | - } |
|
1035 | - |
|
1036 | - $this->set_status( 'expired' ); |
|
1037 | - return $this->save(); |
|
1038 | - |
|
1039 | - } |
|
1040 | - |
|
1041 | - /** |
|
1042 | - * Marks a subscription as failing |
|
1043 | - * |
|
1044 | - * @since 2.4.2 |
|
1045 | - * @return int Subscription id. |
|
1046 | - */ |
|
1047 | - public function failing() { |
|
1048 | - $this->set_status( 'failing' ); |
|
1049 | - return $this->save(); |
|
1050 | - } |
|
927 | + $parent_invoice = $this->get_parent_payment(); |
|
928 | + |
|
929 | + if ( ! $parent_invoice->exists() ) { |
|
930 | + return false; |
|
931 | + } |
|
932 | + |
|
933 | + // Duplicate the parent invoice. |
|
934 | + $invoice = getpaid_duplicate_invoice( $parent_invoice ); |
|
935 | + $invoice->set_parent_id( $parent_invoice->get_id() ); |
|
936 | + $invoice->set_subscription_id( $this->get_id() ); |
|
937 | + $invoice->set_remote_subscription_id( $this->get_profile_id() ); |
|
938 | + |
|
939 | + // Set invoice items. |
|
940 | + $subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() ); |
|
941 | + $allowed_items = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] ); |
|
942 | + $invoice_items = array(); |
|
943 | + |
|
944 | + foreach ( $invoice->get_items() as $item ) { |
|
945 | + if ( in_array( $item->get_id(), $allowed_items ) ) { |
|
946 | + $invoice_items[] = $item; |
|
947 | + } |
|
948 | + } |
|
949 | + |
|
950 | + $invoice->set_items( $invoice_items ); |
|
951 | + |
|
952 | + if ( ! empty( $subscription_group['fees'] ) ) { |
|
953 | + $invoice->set_fees( $subscription_group['fees'] ); |
|
954 | + } |
|
955 | + |
|
956 | + // Maybe recalculate discount (Pre-GetPaid Fix). |
|
957 | + $discount = new WPInv_Discount( $invoice->get_discount_code() ); |
|
958 | + if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) { |
|
959 | + $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) ); |
|
960 | + } |
|
961 | + |
|
962 | + $invoice->recalculate_total(); |
|
963 | + $invoice->set_status( 'wpi-pending' ); |
|
964 | + |
|
965 | + if ( ! $save ) { |
|
966 | + return $invoice; |
|
967 | + } |
|
968 | + |
|
969 | + $invoice->save(); |
|
970 | + |
|
971 | + return $invoice->exists() ? $invoice : false; |
|
972 | + } |
|
973 | + |
|
974 | + /** |
|
975 | + * Renews or completes a subscription |
|
976 | + * |
|
977 | + * @since 1.0.0 |
|
978 | + * @return int The subscription's id |
|
979 | + */ |
|
980 | + public function renew( $calculate_from = null ) { |
|
981 | + |
|
982 | + // Complete subscription if applicable |
|
983 | + if ( $this->is_last_renewal() ) { |
|
984 | + return $this->complete(); |
|
985 | + } |
|
986 | + |
|
987 | + // Calculate new expiration |
|
988 | + $frequency = $this->get_frequency(); |
|
989 | + $period = $this->get_period(); |
|
990 | + $calculate_from = empty( $calculate_from ) ? $this->get_expiration_time() : $calculate_from; |
|
991 | + $new_expiration = strtotime( "+ $frequency $period", $calculate_from ); |
|
992 | + |
|
993 | + $this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) ); |
|
994 | + $this->set_status( 'active' ); |
|
995 | + $this->save(); |
|
996 | + |
|
997 | + do_action( 'getpaid_subscription_renewed', $this ); |
|
998 | + |
|
999 | + return $this->get_id(); |
|
1000 | + } |
|
1001 | + |
|
1002 | + /** |
|
1003 | + * Marks a subscription as completed |
|
1004 | + * |
|
1005 | + * Subscription is completed when the number of payments matches the billing_times field |
|
1006 | + * |
|
1007 | + * @since 1.0.0 |
|
1008 | + * @return int|bool Subscription id or false if the subscription is cancelled. |
|
1009 | + */ |
|
1010 | + public function complete() { |
|
1011 | + |
|
1012 | + // Only mark a subscription as complete if it's not already cancelled. |
|
1013 | + if ( $this->has_status( 'cancelled' ) ) { |
|
1014 | + return false; |
|
1015 | + } |
|
1016 | + |
|
1017 | + $this->set_status( 'completed' ); |
|
1018 | + return $this->save(); |
|
1019 | + |
|
1020 | + } |
|
1021 | + |
|
1022 | + /** |
|
1023 | + * Marks a subscription as expired |
|
1024 | + * |
|
1025 | + * @since 1.0.0 |
|
1026 | + * @param bool $check_expiration |
|
1027 | + * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future. |
|
1028 | + */ |
|
1029 | + public function expire( $check_expiration = false ) { |
|
1030 | + |
|
1031 | + if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) { |
|
1032 | + // Do not mark as expired since real expiration date is in the future |
|
1033 | + return false; |
|
1034 | + } |
|
1035 | + |
|
1036 | + $this->set_status( 'expired' ); |
|
1037 | + return $this->save(); |
|
1038 | + |
|
1039 | + } |
|
1040 | + |
|
1041 | + /** |
|
1042 | + * Marks a subscription as failing |
|
1043 | + * |
|
1044 | + * @since 2.4.2 |
|
1045 | + * @return int Subscription id. |
|
1046 | + */ |
|
1047 | + public function failing() { |
|
1048 | + $this->set_status( 'failing' ); |
|
1049 | + return $this->save(); |
|
1050 | + } |
|
1051 | 1051 | |
1052 | 1052 | /** |
1053 | 1053 | * Marks a subscription as cancelled |
@@ -1056,19 +1056,19 @@ discard block |
||
1056 | 1056 | * @return int Subscription id. |
1057 | 1057 | */ |
1058 | 1058 | public function cancel() { |
1059 | - $this->set_status( 'cancelled' ); |
|
1060 | - return $this->save(); |
|
1059 | + $this->set_status( 'cancelled' ); |
|
1060 | + return $this->save(); |
|
1061 | 1061 | } |
1062 | 1062 | |
1063 | - /** |
|
1064 | - * Determines if a subscription can be cancelled both locally and with a payment processor. |
|
1065 | - * |
|
1066 | - * @since 1.0.0 |
|
1067 | - * @return bool |
|
1068 | - */ |
|
1069 | - public function can_cancel() { |
|
1070 | - return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this ); |
|
1071 | - } |
|
1063 | + /** |
|
1064 | + * Determines if a subscription can be cancelled both locally and with a payment processor. |
|
1065 | + * |
|
1066 | + * @since 1.0.0 |
|
1067 | + * @return bool |
|
1068 | + */ |
|
1069 | + public function can_cancel() { |
|
1070 | + return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this ); |
|
1071 | + } |
|
1072 | 1072 | |
1073 | 1073 | /** |
1074 | 1074 | * Returns an array of subscription statuses that can be cancelled |
@@ -1081,109 +1081,109 @@ discard block |
||
1081 | 1081 | return apply_filters( 'wpinv_recurring_cancellable_statuses', array( 'active', 'trialling', 'failing' ) ); |
1082 | 1082 | } |
1083 | 1083 | |
1084 | - /** |
|
1085 | - * Retrieves the URL to cancel subscription |
|
1086 | - * |
|
1087 | - * @since 1.0.0 |
|
1088 | - * @return string |
|
1089 | - */ |
|
1090 | - public function get_cancel_url() { |
|
1091 | - $url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() ); |
|
1092 | - return apply_filters( 'wpinv_subscription_cancel_url', $url, $this ); |
|
1093 | - } |
|
1094 | - |
|
1095 | - /** |
|
1096 | - * Retrieves the URL to view a subscription |
|
1097 | - * |
|
1098 | - * @since 1.0.19 |
|
1099 | - * @return string |
|
1100 | - */ |
|
1101 | - public function get_view_url() { |
|
1102 | - |
|
1103 | - $url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ); |
|
1104 | - $url = add_query_arg( 'subscription', $this->get_id(), $url ); |
|
1105 | - |
|
1106 | - return apply_filters( 'getpaid_get_subscription_view_url', $url, $this ); |
|
1107 | - } |
|
1108 | - |
|
1109 | - /** |
|
1110 | - * Determines if subscription can be manually renewed |
|
1111 | - * |
|
1112 | - * This method is filtered by payment gateways in order to return true on subscriptions |
|
1113 | - * that can be renewed manually |
|
1114 | - * |
|
1115 | - * @since 2.5 |
|
1116 | - * @return bool |
|
1117 | - */ |
|
1118 | - public function can_renew() { |
|
1119 | - return apply_filters( 'wpinv_subscription_can_renew', true, $this ); |
|
1120 | - } |
|
1121 | - |
|
1122 | - /** |
|
1123 | - * Retrieves the URL to renew a subscription |
|
1124 | - * |
|
1125 | - * @since 2.5 |
|
1126 | - * @return string |
|
1127 | - */ |
|
1128 | - public function get_renew_url() { |
|
1129 | - $url = wp_nonce_url( |
|
1084 | + /** |
|
1085 | + * Retrieves the URL to cancel subscription |
|
1086 | + * |
|
1087 | + * @since 1.0.0 |
|
1088 | + * @return string |
|
1089 | + */ |
|
1090 | + public function get_cancel_url() { |
|
1091 | + $url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() ); |
|
1092 | + return apply_filters( 'wpinv_subscription_cancel_url', $url, $this ); |
|
1093 | + } |
|
1094 | + |
|
1095 | + /** |
|
1096 | + * Retrieves the URL to view a subscription |
|
1097 | + * |
|
1098 | + * @since 1.0.19 |
|
1099 | + * @return string |
|
1100 | + */ |
|
1101 | + public function get_view_url() { |
|
1102 | + |
|
1103 | + $url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ); |
|
1104 | + $url = add_query_arg( 'subscription', $this->get_id(), $url ); |
|
1105 | + |
|
1106 | + return apply_filters( 'getpaid_get_subscription_view_url', $url, $this ); |
|
1107 | + } |
|
1108 | + |
|
1109 | + /** |
|
1110 | + * Determines if subscription can be manually renewed |
|
1111 | + * |
|
1112 | + * This method is filtered by payment gateways in order to return true on subscriptions |
|
1113 | + * that can be renewed manually |
|
1114 | + * |
|
1115 | + * @since 2.5 |
|
1116 | + * @return bool |
|
1117 | + */ |
|
1118 | + public function can_renew() { |
|
1119 | + return apply_filters( 'wpinv_subscription_can_renew', true, $this ); |
|
1120 | + } |
|
1121 | + |
|
1122 | + /** |
|
1123 | + * Retrieves the URL to renew a subscription |
|
1124 | + * |
|
1125 | + * @since 2.5 |
|
1126 | + * @return string |
|
1127 | + */ |
|
1128 | + public function get_renew_url() { |
|
1129 | + $url = wp_nonce_url( |
|
1130 | 1130 | add_query_arg( |
1131 | 1131 | array( |
1132 | - 'getpaid-action' => 'renew_subscription', |
|
1133 | - 'sub_id' => $this->get_id, |
|
1132 | + 'getpaid-action' => 'renew_subscription', |
|
1133 | + 'sub_id' => $this->get_id, |
|
1134 | 1134 | ) |
1135 | 1135 | ), |
1136 | 1136 | 'getpaid-nonce' |
1137 | 1137 | ); |
1138 | - return apply_filters( 'wpinv_subscription_renew_url', $url, $this ); |
|
1139 | - } |
|
1140 | - |
|
1141 | - /** |
|
1142 | - * Determines if subscription can have their payment method updated |
|
1143 | - * |
|
1144 | - * @since 1.0.0 |
|
1145 | - * @return bool |
|
1146 | - */ |
|
1147 | - public function can_update() { |
|
1148 | - return apply_filters( 'wpinv_subscription_can_update', false, $this ); |
|
1149 | - } |
|
1150 | - |
|
1151 | - /** |
|
1152 | - * Retrieves the URL to update subscription |
|
1153 | - * |
|
1154 | - * @since 1.0.0 |
|
1155 | - * @return string |
|
1156 | - */ |
|
1157 | - public function get_update_url() { |
|
1158 | - $url = add_query_arg( |
|
1138 | + return apply_filters( 'wpinv_subscription_renew_url', $url, $this ); |
|
1139 | + } |
|
1140 | + |
|
1141 | + /** |
|
1142 | + * Determines if subscription can have their payment method updated |
|
1143 | + * |
|
1144 | + * @since 1.0.0 |
|
1145 | + * @return bool |
|
1146 | + */ |
|
1147 | + public function can_update() { |
|
1148 | + return apply_filters( 'wpinv_subscription_can_update', false, $this ); |
|
1149 | + } |
|
1150 | + |
|
1151 | + /** |
|
1152 | + * Retrieves the URL to update subscription |
|
1153 | + * |
|
1154 | + * @since 1.0.0 |
|
1155 | + * @return string |
|
1156 | + */ |
|
1157 | + public function get_update_url() { |
|
1158 | + $url = add_query_arg( |
|
1159 | 1159 | array( |
1160 | - 'action' => 'update', |
|
1161 | - 'subscription_id' => $this->get_id(), |
|
1160 | + 'action' => 'update', |
|
1161 | + 'subscription_id' => $this->get_id(), |
|
1162 | 1162 | ) |
1163 | 1163 | ); |
1164 | - return apply_filters( 'wpinv_subscription_update_url', $url, $this ); |
|
1165 | - } |
|
1166 | - |
|
1167 | - /** |
|
1168 | - * Retrieves the subscription status label |
|
1169 | - * |
|
1170 | - * @since 1.0.0 |
|
1171 | - * @return string |
|
1172 | - */ |
|
1173 | - public function get_status_label() { |
|
1174 | - return getpaid_get_subscription_status_label( $this->get_status() ); |
|
1175 | - } |
|
1176 | - |
|
1177 | - /** |
|
1178 | - * Retrieves the subscription status class |
|
1179 | - * |
|
1180 | - * @since 1.0.19 |
|
1181 | - * @return string |
|
1182 | - */ |
|
1183 | - public function get_status_class() { |
|
1184 | - $statuses = getpaid_get_subscription_status_classes(); |
|
1185 | - return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'bg-dark'; |
|
1186 | - } |
|
1164 | + return apply_filters( 'wpinv_subscription_update_url', $url, $this ); |
|
1165 | + } |
|
1166 | + |
|
1167 | + /** |
|
1168 | + * Retrieves the subscription status label |
|
1169 | + * |
|
1170 | + * @since 1.0.0 |
|
1171 | + * @return string |
|
1172 | + */ |
|
1173 | + public function get_status_label() { |
|
1174 | + return getpaid_get_subscription_status_label( $this->get_status() ); |
|
1175 | + } |
|
1176 | + |
|
1177 | + /** |
|
1178 | + * Retrieves the subscription status class |
|
1179 | + * |
|
1180 | + * @since 1.0.19 |
|
1181 | + * @return string |
|
1182 | + */ |
|
1183 | + public function get_status_class() { |
|
1184 | + $statuses = getpaid_get_subscription_status_classes(); |
|
1185 | + return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'bg-dark'; |
|
1186 | + } |
|
1187 | 1187 | |
1188 | 1188 | /** |
1189 | 1189 | * Retrieves the subscription status label |
@@ -1193,11 +1193,11 @@ discard block |
||
1193 | 1193 | */ |
1194 | 1194 | public function get_status_label_html() { |
1195 | 1195 | |
1196 | - $status_label = sanitize_text_field( $this->get_status_label() ); |
|
1197 | - $class = esc_attr( $this->get_status_class() ); |
|
1198 | - $status = sanitize_html_class( $this->get_status() ); |
|
1196 | + $status_label = sanitize_text_field( $this->get_status_label() ); |
|
1197 | + $class = esc_attr( $this->get_status_class() ); |
|
1198 | + $status = sanitize_html_class( $this->get_status() ); |
|
1199 | 1199 | |
1200 | - return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>"; |
|
1200 | + return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>"; |
|
1201 | 1201 | } |
1202 | 1202 | |
1203 | 1203 | /** |
@@ -1208,75 +1208,75 @@ discard block |
||
1208 | 1208 | * @return bool |
1209 | 1209 | */ |
1210 | 1210 | public function payment_exists( $txn_id = '' ) { |
1211 | - $invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' ); |
|
1211 | + $invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' ); |
|
1212 | 1212 | return ! empty( $invoice_id ); |
1213 | - } |
|
1214 | - |
|
1215 | - /** |
|
1216 | - * Handle the status transition. |
|
1217 | - */ |
|
1218 | - protected function status_transition() { |
|
1219 | - $status_transition = $this->status_transition; |
|
1220 | - |
|
1221 | - // Reset status transition variable. |
|
1222 | - $this->status_transition = false; |
|
1223 | - |
|
1224 | - if ( $status_transition ) { |
|
1225 | - try { |
|
1226 | - |
|
1227 | - // Fire a hook for the status change. |
|
1228 | - do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition ); |
|
1229 | - do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition ); |
|
1230 | - |
|
1231 | - if ( ! empty( $status_transition['from'] ) ) { |
|
1232 | - |
|
1233 | - /* translators: 1: old subscription status 2: new subscription status */ |
|
1234 | - $transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) ); |
|
1235 | - |
|
1236 | - // Note the transition occurred. |
|
1237 | - $this->get_parent_payment()->add_note( $transition_note, false, false, true ); |
|
1238 | - |
|
1239 | - // Fire another hook. |
|
1240 | - do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this ); |
|
1241 | - do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] ); |
|
1242 | - |
|
1243 | - } else { |
|
1244 | - /* translators: %s: new invoice status */ |
|
1245 | - $transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) ); |
|
1246 | - |
|
1247 | - // Note the transition occurred. |
|
1248 | - $this->get_parent_payment()->add_note( $transition_note, false, false, true ); |
|
1249 | - |
|
1250 | - } |
|
1251 | - } catch ( Exception $e ) { |
|
1252 | - $this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() ); |
|
1253 | - } |
|
1254 | - } |
|
1255 | - |
|
1256 | - } |
|
1257 | - |
|
1258 | - /** |
|
1259 | - * Save data to the database. |
|
1260 | - * |
|
1261 | - * @since 1.0.19 |
|
1262 | - * @return int subscription ID |
|
1263 | - */ |
|
1264 | - public function save() { |
|
1265 | - parent::save(); |
|
1266 | - $this->status_transition(); |
|
1267 | - return $this->get_id(); |
|
1268 | - } |
|
1269 | - |
|
1270 | - /** |
|
1271 | - * Activates a subscription. |
|
1272 | - * |
|
1273 | - * @since 1.0.19 |
|
1274 | - * @return int subscription ID |
|
1275 | - */ |
|
1276 | - public function activate() { |
|
1277 | - $status = $this->has_trial_period() && 'trialling' === $this->get_status() ? 'trialling' : 'active'; |
|
1278 | - $this->set_status( $status ); |
|
1279 | - return $this->save(); |
|
1280 | - } |
|
1213 | + } |
|
1214 | + |
|
1215 | + /** |
|
1216 | + * Handle the status transition. |
|
1217 | + */ |
|
1218 | + protected function status_transition() { |
|
1219 | + $status_transition = $this->status_transition; |
|
1220 | + |
|
1221 | + // Reset status transition variable. |
|
1222 | + $this->status_transition = false; |
|
1223 | + |
|
1224 | + if ( $status_transition ) { |
|
1225 | + try { |
|
1226 | + |
|
1227 | + // Fire a hook for the status change. |
|
1228 | + do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition ); |
|
1229 | + do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition ); |
|
1230 | + |
|
1231 | + if ( ! empty( $status_transition['from'] ) ) { |
|
1232 | + |
|
1233 | + /* translators: 1: old subscription status 2: new subscription status */ |
|
1234 | + $transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) ); |
|
1235 | + |
|
1236 | + // Note the transition occurred. |
|
1237 | + $this->get_parent_payment()->add_note( $transition_note, false, false, true ); |
|
1238 | + |
|
1239 | + // Fire another hook. |
|
1240 | + do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this ); |
|
1241 | + do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] ); |
|
1242 | + |
|
1243 | + } else { |
|
1244 | + /* translators: %s: new invoice status */ |
|
1245 | + $transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) ); |
|
1246 | + |
|
1247 | + // Note the transition occurred. |
|
1248 | + $this->get_parent_payment()->add_note( $transition_note, false, false, true ); |
|
1249 | + |
|
1250 | + } |
|
1251 | + } catch ( Exception $e ) { |
|
1252 | + $this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() ); |
|
1253 | + } |
|
1254 | + } |
|
1255 | + |
|
1256 | + } |
|
1257 | + |
|
1258 | + /** |
|
1259 | + * Save data to the database. |
|
1260 | + * |
|
1261 | + * @since 1.0.19 |
|
1262 | + * @return int subscription ID |
|
1263 | + */ |
|
1264 | + public function save() { |
|
1265 | + parent::save(); |
|
1266 | + $this->status_transition(); |
|
1267 | + return $this->get_id(); |
|
1268 | + } |
|
1269 | + |
|
1270 | + /** |
|
1271 | + * Activates a subscription. |
|
1272 | + * |
|
1273 | + * @since 1.0.19 |
|
1274 | + * @return int subscription ID |
|
1275 | + */ |
|
1276 | + public function activate() { |
|
1277 | + $status = $this->has_trial_period() && 'trialling' === $this->get_status() ? 'trialling' : 'active'; |
|
1278 | + $this->set_status( $status ); |
|
1279 | + return $this->save(); |
|
1280 | + } |
|
1281 | 1281 | |
1282 | 1282 | } |
@@ -6,7 +6,7 @@ discard block |
||
6 | 6 | * @package Invoicing |
7 | 7 | */ |
8 | 8 | |
9 | -defined( 'ABSPATH' ) || exit; |
|
9 | +defined('ABSPATH') || exit; |
|
10 | 10 | |
11 | 11 | /** |
12 | 12 | * The Subscription Class |
@@ -68,27 +68,27 @@ discard block |
||
68 | 68 | * @param int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read. |
69 | 69 | * @param bool $deprecated |
70 | 70 | */ |
71 | - function __construct( $subscription = 0, $deprecated = false ) { |
|
71 | + function __construct($subscription = 0, $deprecated = false) { |
|
72 | 72 | |
73 | - parent::__construct( $subscription ); |
|
73 | + parent::__construct($subscription); |
|
74 | 74 | |
75 | - if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) { |
|
76 | - $this->set_id( $subscription ); |
|
77 | - } elseif ( $subscription instanceof self ) { |
|
78 | - $this->set_id( $subscription->get_id() ); |
|
79 | - } elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) { |
|
80 | - $this->set_id( $subscription_id ); |
|
81 | - } elseif ( ! empty( $subscription->id ) ) { |
|
82 | - $this->set_id( $subscription->id ); |
|
75 | + if (!$deprecated && !empty($subscription) && is_numeric($subscription)) { |
|
76 | + $this->set_id($subscription); |
|
77 | + } elseif ($subscription instanceof self) { |
|
78 | + $this->set_id($subscription->get_id()); |
|
79 | + } elseif ($deprecated && $subscription_id = self::get_subscription_id_by_field($subscription, 'profile_id')) { |
|
80 | + $this->set_id($subscription_id); |
|
81 | + } elseif (!empty($subscription->id)) { |
|
82 | + $this->set_id($subscription->id); |
|
83 | 83 | } else { |
84 | - $this->set_object_read( true ); |
|
84 | + $this->set_object_read(true); |
|
85 | 85 | } |
86 | 86 | |
87 | 87 | // Load the datastore. |
88 | - $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
88 | + $this->data_store = GetPaid_Data_Store::load($this->data_store_name); |
|
89 | 89 | |
90 | - if ( $this->get_id() > 0 ) { |
|
91 | - $this->data_store->read( $this ); |
|
90 | + if ($this->get_id() > 0) { |
|
91 | + $this->data_store->read($this); |
|
92 | 92 | } |
93 | 93 | |
94 | 94 | } |
@@ -103,17 +103,17 @@ discard block |
||
103 | 103 | * @since 1.0.19 |
104 | 104 | * @return int |
105 | 105 | */ |
106 | - public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) { |
|
106 | + public static function get_subscription_id_by_field($value, $field = 'profile_id') { |
|
107 | 107 | global $wpdb; |
108 | 108 | |
109 | 109 | // Trim the value. |
110 | - $value = trim( $value ); |
|
110 | + $value = trim($value); |
|
111 | 111 | |
112 | - if ( empty( $value ) ) { |
|
112 | + if (empty($value)) { |
|
113 | 113 | return 0; |
114 | 114 | } |
115 | 115 | |
116 | - if ( 'invoice_id' == $field ) { |
|
116 | + if ('invoice_id' == $field) { |
|
117 | 117 | $field = 'parent_payment_id'; |
118 | 118 | } |
119 | 119 | |
@@ -125,28 +125,28 @@ discard block |
||
125 | 125 | ); |
126 | 126 | |
127 | 127 | // Ensure a field has been passed. |
128 | - if ( empty( $field ) || ! in_array( $field, $fields ) ) { |
|
128 | + if (empty($field) || !in_array($field, $fields)) { |
|
129 | 129 | return 0; |
130 | 130 | } |
131 | 131 | |
132 | 132 | // Maybe retrieve from the cache. |
133 | - $subscription_id = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" ); |
|
134 | - if ( ! empty( $subscription_id ) ) { |
|
133 | + $subscription_id = wp_cache_get($value, "getpaid_subscription_{$field}s_to_subscription_ids"); |
|
134 | + if (!empty($subscription_id)) { |
|
135 | 135 | return $subscription_id; |
136 | 136 | } |
137 | 137 | |
138 | 138 | // Fetch from the db. |
139 | 139 | $table = $wpdb->prefix . 'wpinv_subscriptions'; |
140 | 140 | $subscription_id = (int) $wpdb->get_var( |
141 | - $wpdb->prepare( "SELECT `id` FROM $table WHERE `$field`=%s LIMIT 1", $value ) |
|
141 | + $wpdb->prepare("SELECT `id` FROM $table WHERE `$field`=%s LIMIT 1", $value) |
|
142 | 142 | ); |
143 | 143 | |
144 | - if ( empty( $subscription_id ) ) { |
|
144 | + if (empty($subscription_id)) { |
|
145 | 145 | return 0; |
146 | 146 | } |
147 | 147 | |
148 | 148 | // Update the cache with our data. |
149 | - wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" ); |
|
149 | + wp_cache_set($value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids"); |
|
150 | 150 | |
151 | 151 | return $subscription_id; |
152 | 152 | } |
@@ -162,9 +162,9 @@ discard block |
||
162 | 162 | 'getpaid_subscriptions' => $this->get_id(), |
163 | 163 | ); |
164 | 164 | |
165 | - foreach ( $caches as $cache => $value ) { |
|
166 | - if ( '' !== $value && false !== $value ) { |
|
167 | - wp_cache_delete( $value, $cache ); |
|
165 | + foreach ($caches as $cache => $value) { |
|
166 | + if ('' !== $value && false !== $value) { |
|
167 | + wp_cache_delete($value, $cache); |
|
168 | 168 | } |
169 | 169 | } |
170 | 170 | } |
@@ -172,8 +172,8 @@ discard block |
||
172 | 172 | /** |
173 | 173 | * Checks if a subscription key is set. |
174 | 174 | */ |
175 | - public function _isset( $key ) { |
|
176 | - return isset( $this->data[ $key ] ) || method_exists( $this, "get_$key" ); |
|
175 | + public function _isset($key) { |
|
176 | + return isset($this->data[$key]) || method_exists($this, "get_$key"); |
|
177 | 177 | } |
178 | 178 | |
179 | 179 | /* |
@@ -198,8 +198,8 @@ discard block |
||
198 | 198 | * @param string $context View or edit context. |
199 | 199 | * @return int |
200 | 200 | */ |
201 | - public function get_customer_id( $context = 'view' ) { |
|
202 | - return (int) $this->get_prop( 'customer_id', $context ); |
|
201 | + public function get_customer_id($context = 'view') { |
|
202 | + return (int) $this->get_prop('customer_id', $context); |
|
203 | 203 | } |
204 | 204 | |
205 | 205 | /** |
@@ -209,8 +209,8 @@ discard block |
||
209 | 209 | * @param string $context View or edit context. |
210 | 210 | * @return WP_User|false WP_User object on success, false on failure. |
211 | 211 | */ |
212 | - public function get_customer( $context = 'view' ) { |
|
213 | - return get_userdata( $this->get_customer_id( $context ) ); |
|
212 | + public function get_customer($context = 'view') { |
|
213 | + return get_userdata($this->get_customer_id($context)); |
|
214 | 214 | } |
215 | 215 | |
216 | 216 | /** |
@@ -220,8 +220,8 @@ discard block |
||
220 | 220 | * @param string $context View or edit context. |
221 | 221 | * @return int |
222 | 222 | */ |
223 | - public function get_parent_invoice_id( $context = 'view' ) { |
|
224 | - return (int) $this->get_prop( 'parent_payment_id', $context ); |
|
223 | + public function get_parent_invoice_id($context = 'view') { |
|
224 | + return (int) $this->get_prop('parent_payment_id', $context); |
|
225 | 225 | } |
226 | 226 | |
227 | 227 | /** |
@@ -231,8 +231,8 @@ discard block |
||
231 | 231 | * @param string $context View or edit context. |
232 | 232 | * @return int |
233 | 233 | */ |
234 | - public function get_parent_payment_id( $context = 'view' ) { |
|
235 | - return $this->get_parent_invoice_id( $context ); |
|
234 | + public function get_parent_payment_id($context = 'view') { |
|
235 | + return $this->get_parent_invoice_id($context); |
|
236 | 236 | } |
237 | 237 | |
238 | 238 | /** |
@@ -241,8 +241,8 @@ discard block |
||
241 | 241 | * @since 1.0.0 |
242 | 242 | * @return int |
243 | 243 | */ |
244 | - public function get_original_payment_id( $context = 'view' ) { |
|
245 | - return $this->get_parent_invoice_id( $context ); |
|
244 | + public function get_original_payment_id($context = 'view') { |
|
245 | + return $this->get_parent_invoice_id($context); |
|
246 | 246 | } |
247 | 247 | |
248 | 248 | /** |
@@ -252,8 +252,8 @@ discard block |
||
252 | 252 | * @param string $context View or edit context. |
253 | 253 | * @return WPInv_Invoice |
254 | 254 | */ |
255 | - public function get_parent_invoice( $context = 'view' ) { |
|
256 | - return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) ); |
|
255 | + public function get_parent_invoice($context = 'view') { |
|
256 | + return new WPInv_Invoice($this->get_parent_invoice_id($context)); |
|
257 | 257 | } |
258 | 258 | |
259 | 259 | /** |
@@ -263,8 +263,8 @@ discard block |
||
263 | 263 | * @param string $context View or edit context. |
264 | 264 | * @return WPInv_Invoice |
265 | 265 | */ |
266 | - public function get_parent_payment( $context = 'view' ) { |
|
267 | - return $this->get_parent_invoice( $context ); |
|
266 | + public function get_parent_payment($context = 'view') { |
|
267 | + return $this->get_parent_invoice($context); |
|
268 | 268 | } |
269 | 269 | |
270 | 270 | /** |
@@ -274,8 +274,8 @@ discard block |
||
274 | 274 | * @param string $context View or edit context. |
275 | 275 | * @return int |
276 | 276 | */ |
277 | - public function get_product_id( $context = 'view' ) { |
|
278 | - return (int) $this->get_prop( 'product_id', $context ); |
|
277 | + public function get_product_id($context = 'view') { |
|
278 | + return (int) $this->get_prop('product_id', $context); |
|
279 | 279 | } |
280 | 280 | |
281 | 281 | /** |
@@ -285,8 +285,8 @@ discard block |
||
285 | 285 | * @param string $context View or edit context. |
286 | 286 | * @return WPInv_Item |
287 | 287 | */ |
288 | - public function get_product( $context = 'view' ) { |
|
289 | - return new WPInv_Item( $this->get_product_id( $context ) ); |
|
288 | + public function get_product($context = 'view') { |
|
289 | + return new WPInv_Item($this->get_product_id($context)); |
|
290 | 290 | } |
291 | 291 | |
292 | 292 | /** |
@@ -298,8 +298,8 @@ discard block |
||
298 | 298 | * @param string $context View or edit context. |
299 | 299 | * @return string |
300 | 300 | */ |
301 | - public function get_gateway( $context = 'view' ) { |
|
302 | - return $this->get_parent_invoice( $context )->get_gateway(); |
|
301 | + public function get_gateway($context = 'view') { |
|
302 | + return $this->get_parent_invoice($context)->get_gateway(); |
|
303 | 303 | } |
304 | 304 | |
305 | 305 | /** |
@@ -309,8 +309,8 @@ discard block |
||
309 | 309 | * @param string $context View or edit context. |
310 | 310 | * @return string |
311 | 311 | */ |
312 | - public function get_period( $context = 'view' ) { |
|
313 | - return $this->get_prop( 'period', $context ); |
|
312 | + public function get_period($context = 'view') { |
|
313 | + return $this->get_prop('period', $context); |
|
314 | 314 | } |
315 | 315 | |
316 | 316 | /** |
@@ -320,8 +320,8 @@ discard block |
||
320 | 320 | * @param string $context View or edit context. |
321 | 321 | * @return int |
322 | 322 | */ |
323 | - public function get_frequency( $context = 'view' ) { |
|
324 | - return (int) $this->get_prop( 'frequency', $context ); |
|
323 | + public function get_frequency($context = 'view') { |
|
324 | + return (int) $this->get_prop('frequency', $context); |
|
325 | 325 | } |
326 | 326 | |
327 | 327 | /** |
@@ -331,8 +331,8 @@ discard block |
||
331 | 331 | * @param string $context View or edit context. |
332 | 332 | * @return float |
333 | 333 | */ |
334 | - public function get_initial_amount( $context = 'view' ) { |
|
335 | - return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) ); |
|
334 | + public function get_initial_amount($context = 'view') { |
|
335 | + return (float) wpinv_sanitize_amount($this->get_prop('initial_amount', $context)); |
|
336 | 336 | } |
337 | 337 | |
338 | 338 | /** |
@@ -342,8 +342,8 @@ discard block |
||
342 | 342 | * @param string $context View or edit context. |
343 | 343 | * @return float |
344 | 344 | */ |
345 | - public function get_recurring_amount( $context = 'view' ) { |
|
346 | - return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) ); |
|
345 | + public function get_recurring_amount($context = 'view') { |
|
346 | + return (float) wpinv_sanitize_amount($this->get_prop('recurring_amount', $context)); |
|
347 | 347 | } |
348 | 348 | |
349 | 349 | /** |
@@ -353,8 +353,8 @@ discard block |
||
353 | 353 | * @param string $context View or edit context. |
354 | 354 | * @return int |
355 | 355 | */ |
356 | - public function get_bill_times( $context = 'view' ) { |
|
357 | - return (int) $this->get_prop( 'bill_times', $context ); |
|
356 | + public function get_bill_times($context = 'view') { |
|
357 | + return (int) $this->get_prop('bill_times', $context); |
|
358 | 358 | } |
359 | 359 | |
360 | 360 | /** |
@@ -364,8 +364,8 @@ discard block |
||
364 | 364 | * @param string $context View or edit context. |
365 | 365 | * @return string |
366 | 366 | */ |
367 | - public function get_transaction_id( $context = 'view' ) { |
|
368 | - return $this->get_prop( 'transaction_id', $context ); |
|
367 | + public function get_transaction_id($context = 'view') { |
|
368 | + return $this->get_prop('transaction_id', $context); |
|
369 | 369 | } |
370 | 370 | |
371 | 371 | /** |
@@ -375,8 +375,8 @@ discard block |
||
375 | 375 | * @param string $context View or edit context. |
376 | 376 | * @return string |
377 | 377 | */ |
378 | - public function get_created( $context = 'view' ) { |
|
379 | - return $this->get_prop( 'created', $context ); |
|
378 | + public function get_created($context = 'view') { |
|
379 | + return $this->get_prop('created', $context); |
|
380 | 380 | } |
381 | 381 | |
382 | 382 | /** |
@@ -386,8 +386,8 @@ discard block |
||
386 | 386 | * @param string $context View or edit context. |
387 | 387 | * @return string |
388 | 388 | */ |
389 | - public function get_date_created( $context = 'view' ) { |
|
390 | - return $this->get_created( $context ); |
|
389 | + public function get_date_created($context = 'view') { |
|
390 | + return $this->get_created($context); |
|
391 | 391 | } |
392 | 392 | |
393 | 393 | /** |
@@ -398,7 +398,7 @@ discard block |
||
398 | 398 | */ |
399 | 399 | public function get_time_created() { |
400 | 400 | $created = $this->get_date_created(); |
401 | - return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) ); |
|
401 | + return empty($created) ? current_time('timestamp') : strtotime($created, current_time('timestamp')); |
|
402 | 402 | } |
403 | 403 | |
404 | 404 | /** |
@@ -408,11 +408,11 @@ discard block |
||
408 | 408 | * @param string $context View or edit context. |
409 | 409 | * @return string |
410 | 410 | */ |
411 | - public function get_date_created_gmt( $context = 'view' ) { |
|
412 | - $date = $this->get_date_created( $context ); |
|
411 | + public function get_date_created_gmt($context = 'view') { |
|
412 | + $date = $this->get_date_created($context); |
|
413 | 413 | |
414 | - if ( $date ) { |
|
415 | - $date = get_gmt_from_date( $date ); |
|
414 | + if ($date) { |
|
415 | + $date = get_gmt_from_date($date); |
|
416 | 416 | } |
417 | 417 | return $date; |
418 | 418 | } |
@@ -424,8 +424,8 @@ discard block |
||
424 | 424 | * @param string $context View or edit context. |
425 | 425 | * @return string |
426 | 426 | */ |
427 | - public function get_next_renewal_date( $context = 'view' ) { |
|
428 | - return $this->get_prop( 'expiration', $context ); |
|
427 | + public function get_next_renewal_date($context = 'view') { |
|
428 | + return $this->get_prop('expiration', $context); |
|
429 | 429 | } |
430 | 430 | |
431 | 431 | /** |
@@ -435,8 +435,8 @@ discard block |
||
435 | 435 | * @param string $context View or edit context. |
436 | 436 | * @return string |
437 | 437 | */ |
438 | - public function get_expiration( $context = 'view' ) { |
|
439 | - return $this->get_next_renewal_date( $context ); |
|
438 | + public function get_expiration($context = 'view') { |
|
439 | + return $this->get_next_renewal_date($context); |
|
440 | 440 | } |
441 | 441 | |
442 | 442 | /** |
@@ -448,12 +448,12 @@ discard block |
||
448 | 448 | public function get_expiration_time() { |
449 | 449 | $expiration = $this->get_expiration(); |
450 | 450 | |
451 | - if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) { |
|
452 | - return current_time( 'timestamp' ); |
|
451 | + if (empty($expiration) || '0000-00-00 00:00:00' == $expiration) { |
|
452 | + return current_time('timestamp'); |
|
453 | 453 | } |
454 | 454 | |
455 | - $expiration = strtotime( $expiration, current_time( 'timestamp' ) ); |
|
456 | - return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration; |
|
455 | + $expiration = strtotime($expiration, current_time('timestamp')); |
|
456 | + return $expiration < current_time('timestamp') ? current_time('timestamp') : $expiration; |
|
457 | 457 | } |
458 | 458 | |
459 | 459 | /** |
@@ -463,11 +463,11 @@ discard block |
||
463 | 463 | * @param string $context View or edit context. |
464 | 464 | * @return string |
465 | 465 | */ |
466 | - public function get_next_renewal_date_gmt( $context = 'view' ) { |
|
467 | - $date = $this->get_next_renewal_date( $context ); |
|
466 | + public function get_next_renewal_date_gmt($context = 'view') { |
|
467 | + $date = $this->get_next_renewal_date($context); |
|
468 | 468 | |
469 | - if ( $date ) { |
|
470 | - $date = get_gmt_from_date( $date ); |
|
469 | + if ($date) { |
|
470 | + $date = get_gmt_from_date($date); |
|
471 | 471 | } |
472 | 472 | return $date; |
473 | 473 | } |
@@ -479,8 +479,8 @@ discard block |
||
479 | 479 | * @param string $context View or edit context. |
480 | 480 | * @return string |
481 | 481 | */ |
482 | - public function get_trial_period( $context = 'view' ) { |
|
483 | - return $this->get_prop( 'trial_period', $context ); |
|
482 | + public function get_trial_period($context = 'view') { |
|
483 | + return $this->get_prop('trial_period', $context); |
|
484 | 484 | } |
485 | 485 | |
486 | 486 | /** |
@@ -490,8 +490,8 @@ discard block |
||
490 | 490 | * @param string $context View or edit context. |
491 | 491 | * @return string |
492 | 492 | */ |
493 | - public function get_status( $context = 'view' ) { |
|
494 | - return $this->get_prop( 'status', $context ); |
|
493 | + public function get_status($context = 'view') { |
|
494 | + return $this->get_prop('status', $context); |
|
495 | 495 | } |
496 | 496 | |
497 | 497 | /** |
@@ -501,8 +501,8 @@ discard block |
||
501 | 501 | * @param string $context View or edit context. |
502 | 502 | * @return string |
503 | 503 | */ |
504 | - public function get_profile_id( $context = 'view' ) { |
|
505 | - return $this->get_prop( 'profile_id', $context ); |
|
504 | + public function get_profile_id($context = 'view') { |
|
505 | + return $this->get_prop('profile_id', $context); |
|
506 | 506 | } |
507 | 507 | |
508 | 508 | /* |
@@ -517,8 +517,8 @@ discard block |
||
517 | 517 | * @since 1.0.19 |
518 | 518 | * @param int $value The customer's id. |
519 | 519 | */ |
520 | - public function set_customer_id( $value ) { |
|
521 | - $this->set_prop( 'customer_id', (int) $value ); |
|
520 | + public function set_customer_id($value) { |
|
521 | + $this->set_prop('customer_id', (int) $value); |
|
522 | 522 | } |
523 | 523 | |
524 | 524 | /** |
@@ -527,8 +527,8 @@ discard block |
||
527 | 527 | * @since 1.0.19 |
528 | 528 | * @param int $value The parent invoice id. |
529 | 529 | */ |
530 | - public function set_parent_invoice_id( $value ) { |
|
531 | - $this->set_prop( 'parent_payment_id', (int) $value ); |
|
530 | + public function set_parent_invoice_id($value) { |
|
531 | + $this->set_prop('parent_payment_id', (int) $value); |
|
532 | 532 | } |
533 | 533 | |
534 | 534 | /** |
@@ -537,8 +537,8 @@ discard block |
||
537 | 537 | * @since 1.0.19 |
538 | 538 | * @param int $value The parent invoice id. |
539 | 539 | */ |
540 | - public function set_parent_payment_id( $value ) { |
|
541 | - $this->set_parent_invoice_id( $value ); |
|
540 | + public function set_parent_payment_id($value) { |
|
541 | + $this->set_parent_invoice_id($value); |
|
542 | 542 | } |
543 | 543 | |
544 | 544 | /** |
@@ -547,8 +547,8 @@ discard block |
||
547 | 547 | * @since 1.0.19 |
548 | 548 | * @param int $value The parent invoice id. |
549 | 549 | */ |
550 | - public function set_original_payment_id( $value ) { |
|
551 | - $this->set_parent_invoice_id( $value ); |
|
550 | + public function set_original_payment_id($value) { |
|
551 | + $this->set_parent_invoice_id($value); |
|
552 | 552 | } |
553 | 553 | |
554 | 554 | /** |
@@ -557,8 +557,8 @@ discard block |
||
557 | 557 | * @since 1.0.19 |
558 | 558 | * @param int $value The subscription product id. |
559 | 559 | */ |
560 | - public function set_product_id( $value ) { |
|
561 | - $this->set_prop( 'product_id', (int) $value ); |
|
560 | + public function set_product_id($value) { |
|
561 | + $this->set_prop('product_id', (int) $value); |
|
562 | 562 | } |
563 | 563 | |
564 | 564 | /** |
@@ -567,8 +567,8 @@ discard block |
||
567 | 567 | * @since 1.0.19 |
568 | 568 | * @param string $value The renewal period. |
569 | 569 | */ |
570 | - public function set_period( $value ) { |
|
571 | - $this->set_prop( 'period', $value ); |
|
570 | + public function set_period($value) { |
|
571 | + $this->set_prop('period', $value); |
|
572 | 572 | } |
573 | 573 | |
574 | 574 | /** |
@@ -577,9 +577,9 @@ discard block |
||
577 | 577 | * @since 1.0.19 |
578 | 578 | * @param int $value The subscription frequency. |
579 | 579 | */ |
580 | - public function set_frequency( $value ) { |
|
581 | - $value = empty( $value ) ? 1 : (int) $value; |
|
582 | - $this->set_prop( 'frequency', absint( $value ) ); |
|
580 | + public function set_frequency($value) { |
|
581 | + $value = empty($value) ? 1 : (int) $value; |
|
582 | + $this->set_prop('frequency', absint($value)); |
|
583 | 583 | } |
584 | 584 | |
585 | 585 | /** |
@@ -588,8 +588,8 @@ discard block |
||
588 | 588 | * @since 1.0.19 |
589 | 589 | * @param float $value The initial subcription amount. |
590 | 590 | */ |
591 | - public function set_initial_amount( $value ) { |
|
592 | - $this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) ); |
|
591 | + public function set_initial_amount($value) { |
|
592 | + $this->set_prop('initial_amount', wpinv_sanitize_amount($value)); |
|
593 | 593 | } |
594 | 594 | |
595 | 595 | /** |
@@ -598,8 +598,8 @@ discard block |
||
598 | 598 | * @since 1.0.19 |
599 | 599 | * @param float $value The recurring subcription amount. |
600 | 600 | */ |
601 | - public function set_recurring_amount( $value ) { |
|
602 | - $this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) ); |
|
601 | + public function set_recurring_amount($value) { |
|
602 | + $this->set_prop('recurring_amount', wpinv_sanitize_amount($value)); |
|
603 | 603 | } |
604 | 604 | |
605 | 605 | /** |
@@ -608,8 +608,8 @@ discard block |
||
608 | 608 | * @since 1.0.19 |
609 | 609 | * @param int $value Bill times. |
610 | 610 | */ |
611 | - public function set_bill_times( $value ) { |
|
612 | - $this->set_prop( 'bill_times', (int) $value ); |
|
611 | + public function set_bill_times($value) { |
|
612 | + $this->set_prop('bill_times', (int) $value); |
|
613 | 613 | } |
614 | 614 | |
615 | 615 | /** |
@@ -618,8 +618,8 @@ discard block |
||
618 | 618 | * @since 1.0.19 |
619 | 619 | * @param string $value Bill times. |
620 | 620 | */ |
621 | - public function set_transaction_id( $value ) { |
|
622 | - $this->set_prop( 'transaction_id', sanitize_text_field( $value ) ); |
|
621 | + public function set_transaction_id($value) { |
|
622 | + $this->set_prop('transaction_id', sanitize_text_field($value)); |
|
623 | 623 | } |
624 | 624 | |
625 | 625 | /** |
@@ -628,15 +628,15 @@ discard block |
||
628 | 628 | * @since 1.0.19 |
629 | 629 | * @param string $value strtotime compliant date. |
630 | 630 | */ |
631 | - public function set_created( $value ) { |
|
632 | - $date = strtotime( $value ); |
|
631 | + public function set_created($value) { |
|
632 | + $date = strtotime($value); |
|
633 | 633 | |
634 | - if ( $date && $value !== '0000-00-00 00:00:00' ) { |
|
635 | - $this->set_prop( 'created', gmdate( 'Y-m-d H:i:s', $date ) ); |
|
634 | + if ($date && $value !== '0000-00-00 00:00:00') { |
|
635 | + $this->set_prop('created', gmdate('Y-m-d H:i:s', $date)); |
|
636 | 636 | return; |
637 | 637 | } |
638 | 638 | |
639 | - $this->set_prop( 'created', '' ); |
|
639 | + $this->set_prop('created', ''); |
|
640 | 640 | |
641 | 641 | } |
642 | 642 | |
@@ -646,8 +646,8 @@ discard block |
||
646 | 646 | * @since 1.0.19 |
647 | 647 | * @param string $value strtotime compliant date. |
648 | 648 | */ |
649 | - public function set_date_created( $value ) { |
|
650 | - $this->set_created( $value ); |
|
649 | + public function set_date_created($value) { |
|
650 | + $this->set_created($value); |
|
651 | 651 | } |
652 | 652 | |
653 | 653 | /** |
@@ -656,15 +656,15 @@ discard block |
||
656 | 656 | * @since 1.0.19 |
657 | 657 | * @param string $value strtotime compliant date. |
658 | 658 | */ |
659 | - public function set_next_renewal_date( $value ) { |
|
660 | - $date = strtotime( $value ); |
|
659 | + public function set_next_renewal_date($value) { |
|
660 | + $date = strtotime($value); |
|
661 | 661 | |
662 | - if ( $date && $value !== '0000-00-00 00:00:00' ) { |
|
663 | - $this->set_prop( 'expiration', gmdate( 'Y-m-d H:i:s', $date ) ); |
|
662 | + if ($date && $value !== '0000-00-00 00:00:00') { |
|
663 | + $this->set_prop('expiration', gmdate('Y-m-d H:i:s', $date)); |
|
664 | 664 | return; |
665 | 665 | } |
666 | 666 | |
667 | - $this->set_prop( 'expiration', '' ); |
|
667 | + $this->set_prop('expiration', ''); |
|
668 | 668 | |
669 | 669 | } |
670 | 670 | |
@@ -674,8 +674,8 @@ discard block |
||
674 | 674 | * @since 1.0.19 |
675 | 675 | * @param string $value strtotime compliant date. |
676 | 676 | */ |
677 | - public function set_expiration( $value ) { |
|
678 | - $this->set_next_renewal_date( $value ); |
|
677 | + public function set_expiration($value) { |
|
678 | + $this->set_next_renewal_date($value); |
|
679 | 679 | } |
680 | 680 | |
681 | 681 | /** |
@@ -684,8 +684,8 @@ discard block |
||
684 | 684 | * @since 1.0.19 |
685 | 685 | * @param string $value trial period e.g 1 year. |
686 | 686 | */ |
687 | - public function set_trial_period( $value ) { |
|
688 | - $this->set_prop( 'trial_period', $value ); |
|
687 | + public function set_trial_period($value) { |
|
688 | + $this->set_prop('trial_period', $value); |
|
689 | 689 | } |
690 | 690 | |
691 | 691 | /** |
@@ -694,22 +694,22 @@ discard block |
||
694 | 694 | * @since 1.0.19 |
695 | 695 | * @param string $new_status New subscription status. |
696 | 696 | */ |
697 | - public function set_status( $new_status ) { |
|
697 | + public function set_status($new_status) { |
|
698 | 698 | |
699 | 699 | // Abort if this is not a valid status; |
700 | - if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) { |
|
700 | + if (!array_key_exists($new_status, getpaid_get_subscription_statuses())) { |
|
701 | 701 | return; |
702 | 702 | } |
703 | 703 | |
704 | - $old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status(); |
|
705 | - if ( true === $this->object_read && $old_status !== $new_status ) { |
|
704 | + $old_status = !empty($this->status_transition['from']) ? $this->status_transition['from'] : $this->get_status(); |
|
705 | + if (true === $this->object_read && $old_status !== $new_status) { |
|
706 | 706 | $this->status_transition = array( |
707 | 707 | 'from' => $old_status, |
708 | 708 | 'to' => $new_status, |
709 | 709 | ); |
710 | 710 | } |
711 | 711 | |
712 | - $this->set_prop( 'status', $new_status ); |
|
712 | + $this->set_prop('status', $new_status); |
|
713 | 713 | } |
714 | 714 | |
715 | 715 | /** |
@@ -718,8 +718,8 @@ discard block |
||
718 | 718 | * @since 1.0.19 |
719 | 719 | * @param string $value the remote profile id. |
720 | 720 | */ |
721 | - public function set_profile_id( $value ) { |
|
722 | - $this->set_prop( 'profile_id', sanitize_text_field( $value ) ); |
|
721 | + public function set_profile_id($value) { |
|
722 | + $this->set_prop('profile_id', sanitize_text_field($value)); |
|
723 | 723 | } |
724 | 724 | |
725 | 725 | /* |
@@ -737,8 +737,8 @@ discard block |
||
737 | 737 | * @param string|array String or array of strings to check for. |
738 | 738 | * @return bool |
739 | 739 | */ |
740 | - public function has_status( $status ) { |
|
741 | - return in_array( $this->get_status(), wpinv_clean( wpinv_parse_list( $status ) ) ); |
|
740 | + public function has_status($status) { |
|
741 | + return in_array($this->get_status(), wpinv_clean(wpinv_parse_list($status))); |
|
742 | 742 | } |
743 | 743 | |
744 | 744 | /** |
@@ -748,7 +748,7 @@ discard block |
||
748 | 748 | */ |
749 | 749 | public function has_trial_period() { |
750 | 750 | $period = $this->get_trial_period(); |
751 | - return ! empty( $period ); |
|
751 | + return !empty($period); |
|
752 | 752 | } |
753 | 753 | |
754 | 754 | /** |
@@ -757,7 +757,7 @@ discard block |
||
757 | 757 | * @return bool |
758 | 758 | */ |
759 | 759 | public function is_active() { |
760 | - return $this->has_status( 'active trialling' ) && ! $this->is_expired(); |
|
760 | + return $this->has_status('active trialling') && !$this->is_expired(); |
|
761 | 761 | } |
762 | 762 | |
763 | 763 | /** |
@@ -766,7 +766,7 @@ discard block |
||
766 | 766 | * @return bool |
767 | 767 | */ |
768 | 768 | public function is_expired() { |
769 | - return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) ); |
|
769 | + return $this->has_status('expired') || ($this->has_status('active cancelled trialling') && $this->get_expiration_time() < current_time('timestamp')); |
|
770 | 770 | } |
771 | 771 | |
772 | 772 | /** |
@@ -776,7 +776,7 @@ discard block |
||
776 | 776 | */ |
777 | 777 | public function is_last_renewal() { |
778 | 778 | $max_bills = $this->get_bill_times(); |
779 | - return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed(); |
|
779 | + return !empty($max_bills) && $max_bills <= $this->get_times_billed(); |
|
780 | 780 | } |
781 | 781 | |
782 | 782 | /* |
@@ -791,11 +791,11 @@ discard block |
||
791 | 791 | /** |
792 | 792 | * Backwards compatibilty. |
793 | 793 | */ |
794 | - public function create( $data = array() ) { |
|
794 | + public function create($data = array()) { |
|
795 | 795 | |
796 | 796 | // Set the properties. |
797 | - if ( is_array( $data ) ) { |
|
798 | - $this->set_props( $data ); |
|
797 | + if (is_array($data)) { |
|
798 | + $this->set_props($data); |
|
799 | 799 | } |
800 | 800 | |
801 | 801 | // Save the item. |
@@ -806,8 +806,8 @@ discard block |
||
806 | 806 | /** |
807 | 807 | * Backwards compatibilty. |
808 | 808 | */ |
809 | - public function update( $args = array() ) { |
|
810 | - return $this->create( $args ); |
|
809 | + public function update($args = array()) { |
|
810 | + return $this->create($args); |
|
811 | 811 | } |
812 | 812 | |
813 | 813 | /** |
@@ -816,12 +816,12 @@ discard block |
||
816 | 816 | * @since 1.0.0 |
817 | 817 | * @return WP_Post[] |
818 | 818 | */ |
819 | - public function get_child_payments( $hide_pending = true ) { |
|
819 | + public function get_child_payments($hide_pending = true) { |
|
820 | 820 | |
821 | - $statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' ); |
|
821 | + $statuses = array('publish', 'wpi-processing', 'wpi-renewal'); |
|
822 | 822 | |
823 | - if ( ! $hide_pending ) { |
|
824 | - $statuses = array_keys( wpinv_get_invoice_statuses() ); |
|
823 | + if (!$hide_pending) { |
|
824 | + $statuses = array_keys(wpinv_get_invoice_statuses()); |
|
825 | 825 | } |
826 | 826 | |
827 | 827 | return get_posts( |
@@ -843,7 +843,7 @@ discard block |
||
843 | 843 | * @return int |
844 | 844 | */ |
845 | 845 | public function get_total_payments() { |
846 | - return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() ); |
|
846 | + return getpaid_count_subscription_invoices($this->get_parent_invoice_id(), $this->get_id()); |
|
847 | 847 | } |
848 | 848 | |
849 | 849 | /** |
@@ -855,7 +855,7 @@ discard block |
||
855 | 855 | public function get_times_billed() { |
856 | 856 | $times_billed = $this->get_total_payments(); |
857 | 857 | |
858 | - if ( (float) $this->get_initial_amount() == 0 && $times_billed > 0 ) { |
|
858 | + if ((float) $this->get_initial_amount() == 0 && $times_billed > 0) { |
|
859 | 859 | $times_billed--; |
860 | 860 | } |
861 | 861 | |
@@ -870,47 +870,47 @@ discard block |
||
870 | 870 | * @param WPInv_Invoice $invoice If adding an existing invoice. |
871 | 871 | * @return bool |
872 | 872 | */ |
873 | - public function add_payment( $args = array(), $invoice = false ) { |
|
873 | + public function add_payment($args = array(), $invoice = false) { |
|
874 | 874 | |
875 | 875 | // Process each payment once. |
876 | - if ( ! empty( $args['transaction_id'] ) && $this->payment_exists( $args['transaction_id'] ) ) { |
|
876 | + if (!empty($args['transaction_id']) && $this->payment_exists($args['transaction_id'])) { |
|
877 | 877 | return false; |
878 | 878 | } |
879 | 879 | |
880 | 880 | // Are we creating a new invoice? |
881 | - if ( empty( $invoice ) ) { |
|
882 | - $invoice = $this->create_payment( false ); |
|
881 | + if (empty($invoice)) { |
|
882 | + $invoice = $this->create_payment(false); |
|
883 | 883 | |
884 | - if ( empty( $invoice ) ) { |
|
884 | + if (empty($invoice)) { |
|
885 | 885 | return false; |
886 | 886 | } |
887 | 887 | } |
888 | 888 | |
889 | 889 | // Maybe set a transaction id. |
890 | - if ( ! empty( $args['transaction_id'] ) ) { |
|
891 | - $invoice->set_transaction_id( $args['transaction_id'] ); |
|
890 | + if (!empty($args['transaction_id'])) { |
|
891 | + $invoice->set_transaction_id($args['transaction_id']); |
|
892 | 892 | } |
893 | 893 | |
894 | 894 | // Set the completed date. |
895 | - $invoice->set_completed_date( current_time( 'mysql' ) ); |
|
895 | + $invoice->set_completed_date(current_time('mysql')); |
|
896 | 896 | |
897 | 897 | // And the gateway. |
898 | - if ( ! empty( $args['gateway'] ) ) { |
|
899 | - $invoice->set_gateway( $args['gateway'] ); |
|
898 | + if (!empty($args['gateway'])) { |
|
899 | + $invoice->set_gateway($args['gateway']); |
|
900 | 900 | } |
901 | 901 | |
902 | - $invoice->set_status( 'wpi-renewal' ); |
|
902 | + $invoice->set_status('wpi-renewal'); |
|
903 | 903 | $invoice->save(); |
904 | 904 | |
905 | - if ( ! $invoice->exists() ) { |
|
905 | + if (!$invoice->exists()) { |
|
906 | 906 | return false; |
907 | 907 | } |
908 | 908 | |
909 | - do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this ); |
|
910 | - do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this ); |
|
911 | - do_action( 'wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id() ); |
|
909 | + do_action('getpaid_after_create_subscription_renewal_invoice', $invoice, $this); |
|
910 | + do_action('wpinv_recurring_add_subscription_payment', $invoice, $this); |
|
911 | + do_action('wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id()); |
|
912 | 912 | |
913 | - update_post_meta( $invoice->get_id(), '_wpinv_subscription_id', $this->id ); |
|
913 | + update_post_meta($invoice->get_id(), '_wpinv_subscription_id', $this->id); |
|
914 | 914 | |
915 | 915 | return $invoice->get_id(); |
916 | 916 | } |
@@ -922,47 +922,47 @@ discard block |
||
922 | 922 | * @param bool $save Whether we should save the invoice. |
923 | 923 | * @return WPInv_Invoice|bool |
924 | 924 | */ |
925 | - public function create_payment( $save = true ) { |
|
925 | + public function create_payment($save = true) { |
|
926 | 926 | |
927 | 927 | $parent_invoice = $this->get_parent_payment(); |
928 | 928 | |
929 | - if ( ! $parent_invoice->exists() ) { |
|
929 | + if (!$parent_invoice->exists()) { |
|
930 | 930 | return false; |
931 | 931 | } |
932 | 932 | |
933 | 933 | // Duplicate the parent invoice. |
934 | - $invoice = getpaid_duplicate_invoice( $parent_invoice ); |
|
935 | - $invoice->set_parent_id( $parent_invoice->get_id() ); |
|
936 | - $invoice->set_subscription_id( $this->get_id() ); |
|
937 | - $invoice->set_remote_subscription_id( $this->get_profile_id() ); |
|
934 | + $invoice = getpaid_duplicate_invoice($parent_invoice); |
|
935 | + $invoice->set_parent_id($parent_invoice->get_id()); |
|
936 | + $invoice->set_subscription_id($this->get_id()); |
|
937 | + $invoice->set_remote_subscription_id($this->get_profile_id()); |
|
938 | 938 | |
939 | 939 | // Set invoice items. |
940 | - $subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() ); |
|
941 | - $allowed_items = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] ); |
|
940 | + $subscription_group = getpaid_get_invoice_subscription_group($parent_invoice->get_id(), $this->get_id()); |
|
941 | + $allowed_items = empty($subscription_group) ? array($this->get_product_id()) : array_keys($subscription_group['items']); |
|
942 | 942 | $invoice_items = array(); |
943 | 943 | |
944 | - foreach ( $invoice->get_items() as $item ) { |
|
945 | - if ( in_array( $item->get_id(), $allowed_items ) ) { |
|
944 | + foreach ($invoice->get_items() as $item) { |
|
945 | + if (in_array($item->get_id(), $allowed_items)) { |
|
946 | 946 | $invoice_items[] = $item; |
947 | 947 | } |
948 | 948 | } |
949 | 949 | |
950 | - $invoice->set_items( $invoice_items ); |
|
950 | + $invoice->set_items($invoice_items); |
|
951 | 951 | |
952 | - if ( ! empty( $subscription_group['fees'] ) ) { |
|
953 | - $invoice->set_fees( $subscription_group['fees'] ); |
|
952 | + if (!empty($subscription_group['fees'])) { |
|
953 | + $invoice->set_fees($subscription_group['fees']); |
|
954 | 954 | } |
955 | 955 | |
956 | 956 | // Maybe recalculate discount (Pre-GetPaid Fix). |
957 | - $discount = new WPInv_Discount( $invoice->get_discount_code() ); |
|
958 | - if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) { |
|
959 | - $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) ); |
|
957 | + $discount = new WPInv_Discount($invoice->get_discount_code()); |
|
958 | + if ($discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount()) { |
|
959 | + $invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount)); |
|
960 | 960 | } |
961 | 961 | |
962 | 962 | $invoice->recalculate_total(); |
963 | - $invoice->set_status( 'wpi-pending' ); |
|
963 | + $invoice->set_status('wpi-pending'); |
|
964 | 964 | |
965 | - if ( ! $save ) { |
|
965 | + if (!$save) { |
|
966 | 966 | return $invoice; |
967 | 967 | } |
968 | 968 | |
@@ -977,24 +977,24 @@ discard block |
||
977 | 977 | * @since 1.0.0 |
978 | 978 | * @return int The subscription's id |
979 | 979 | */ |
980 | - public function renew( $calculate_from = null ) { |
|
980 | + public function renew($calculate_from = null) { |
|
981 | 981 | |
982 | 982 | // Complete subscription if applicable |
983 | - if ( $this->is_last_renewal() ) { |
|
983 | + if ($this->is_last_renewal()) { |
|
984 | 984 | return $this->complete(); |
985 | 985 | } |
986 | 986 | |
987 | 987 | // Calculate new expiration |
988 | 988 | $frequency = $this->get_frequency(); |
989 | 989 | $period = $this->get_period(); |
990 | - $calculate_from = empty( $calculate_from ) ? $this->get_expiration_time() : $calculate_from; |
|
991 | - $new_expiration = strtotime( "+ $frequency $period", $calculate_from ); |
|
990 | + $calculate_from = empty($calculate_from) ? $this->get_expiration_time() : $calculate_from; |
|
991 | + $new_expiration = strtotime("+ $frequency $period", $calculate_from); |
|
992 | 992 | |
993 | - $this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) ); |
|
994 | - $this->set_status( 'active' ); |
|
993 | + $this->set_expiration(date('Y-m-d H:i:s', $new_expiration)); |
|
994 | + $this->set_status('active'); |
|
995 | 995 | $this->save(); |
996 | 996 | |
997 | - do_action( 'getpaid_subscription_renewed', $this ); |
|
997 | + do_action('getpaid_subscription_renewed', $this); |
|
998 | 998 | |
999 | 999 | return $this->get_id(); |
1000 | 1000 | } |
@@ -1010,11 +1010,11 @@ discard block |
||
1010 | 1010 | public function complete() { |
1011 | 1011 | |
1012 | 1012 | // Only mark a subscription as complete if it's not already cancelled. |
1013 | - if ( $this->has_status( 'cancelled' ) ) { |
|
1013 | + if ($this->has_status('cancelled')) { |
|
1014 | 1014 | return false; |
1015 | 1015 | } |
1016 | 1016 | |
1017 | - $this->set_status( 'completed' ); |
|
1017 | + $this->set_status('completed'); |
|
1018 | 1018 | return $this->save(); |
1019 | 1019 | |
1020 | 1020 | } |
@@ -1026,14 +1026,14 @@ discard block |
||
1026 | 1026 | * @param bool $check_expiration |
1027 | 1027 | * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future. |
1028 | 1028 | */ |
1029 | - public function expire( $check_expiration = false ) { |
|
1029 | + public function expire($check_expiration = false) { |
|
1030 | 1030 | |
1031 | - if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) { |
|
1031 | + if ($check_expiration && $this->get_expiration_time() > current_time('timestamp')) { |
|
1032 | 1032 | // Do not mark as expired since real expiration date is in the future |
1033 | 1033 | return false; |
1034 | 1034 | } |
1035 | 1035 | |
1036 | - $this->set_status( 'expired' ); |
|
1036 | + $this->set_status('expired'); |
|
1037 | 1037 | return $this->save(); |
1038 | 1038 | |
1039 | 1039 | } |
@@ -1045,7 +1045,7 @@ discard block |
||
1045 | 1045 | * @return int Subscription id. |
1046 | 1046 | */ |
1047 | 1047 | public function failing() { |
1048 | - $this->set_status( 'failing' ); |
|
1048 | + $this->set_status('failing'); |
|
1049 | 1049 | return $this->save(); |
1050 | 1050 | } |
1051 | 1051 | |
@@ -1056,7 +1056,7 @@ discard block |
||
1056 | 1056 | * @return int Subscription id. |
1057 | 1057 | */ |
1058 | 1058 | public function cancel() { |
1059 | - $this->set_status( 'cancelled' ); |
|
1059 | + $this->set_status('cancelled'); |
|
1060 | 1060 | return $this->save(); |
1061 | 1061 | } |
1062 | 1062 | |
@@ -1067,7 +1067,7 @@ discard block |
||
1067 | 1067 | * @return bool |
1068 | 1068 | */ |
1069 | 1069 | public function can_cancel() { |
1070 | - return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this ); |
|
1070 | + return apply_filters('wpinv_subscription_can_cancel', $this->has_status($this->get_cancellable_statuses()), $this); |
|
1071 | 1071 | } |
1072 | 1072 | |
1073 | 1073 | /** |
@@ -1078,7 +1078,7 @@ discard block |
||
1078 | 1078 | * @return array |
1079 | 1079 | */ |
1080 | 1080 | public function get_cancellable_statuses() { |
1081 | - return apply_filters( 'wpinv_recurring_cancellable_statuses', array( 'active', 'trialling', 'failing' ) ); |
|
1081 | + return apply_filters('wpinv_recurring_cancellable_statuses', array('active', 'trialling', 'failing')); |
|
1082 | 1082 | } |
1083 | 1083 | |
1084 | 1084 | /** |
@@ -1088,8 +1088,8 @@ discard block |
||
1088 | 1088 | * @return string |
1089 | 1089 | */ |
1090 | 1090 | public function get_cancel_url() { |
1091 | - $url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() ); |
|
1092 | - return apply_filters( 'wpinv_subscription_cancel_url', $url, $this ); |
|
1091 | + $url = getpaid_get_authenticated_action_url('subscription_cancel', $this->get_view_url()); |
|
1092 | + return apply_filters('wpinv_subscription_cancel_url', $url, $this); |
|
1093 | 1093 | } |
1094 | 1094 | |
1095 | 1095 | /** |
@@ -1100,10 +1100,10 @@ discard block |
||
1100 | 1100 | */ |
1101 | 1101 | public function get_view_url() { |
1102 | 1102 | |
1103 | - $url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ); |
|
1104 | - $url = add_query_arg( 'subscription', $this->get_id(), $url ); |
|
1103 | + $url = getpaid_get_tab_url('gp-subscriptions', get_permalink((int) wpinv_get_option('invoice_subscription_page'))); |
|
1104 | + $url = add_query_arg('subscription', $this->get_id(), $url); |
|
1105 | 1105 | |
1106 | - return apply_filters( 'getpaid_get_subscription_view_url', $url, $this ); |
|
1106 | + return apply_filters('getpaid_get_subscription_view_url', $url, $this); |
|
1107 | 1107 | } |
1108 | 1108 | |
1109 | 1109 | /** |
@@ -1116,7 +1116,7 @@ discard block |
||
1116 | 1116 | * @return bool |
1117 | 1117 | */ |
1118 | 1118 | public function can_renew() { |
1119 | - return apply_filters( 'wpinv_subscription_can_renew', true, $this ); |
|
1119 | + return apply_filters('wpinv_subscription_can_renew', true, $this); |
|
1120 | 1120 | } |
1121 | 1121 | |
1122 | 1122 | /** |
@@ -1135,7 +1135,7 @@ discard block |
||
1135 | 1135 | ), |
1136 | 1136 | 'getpaid-nonce' |
1137 | 1137 | ); |
1138 | - return apply_filters( 'wpinv_subscription_renew_url', $url, $this ); |
|
1138 | + return apply_filters('wpinv_subscription_renew_url', $url, $this); |
|
1139 | 1139 | } |
1140 | 1140 | |
1141 | 1141 | /** |
@@ -1145,7 +1145,7 @@ discard block |
||
1145 | 1145 | * @return bool |
1146 | 1146 | */ |
1147 | 1147 | public function can_update() { |
1148 | - return apply_filters( 'wpinv_subscription_can_update', false, $this ); |
|
1148 | + return apply_filters('wpinv_subscription_can_update', false, $this); |
|
1149 | 1149 | } |
1150 | 1150 | |
1151 | 1151 | /** |
@@ -1161,7 +1161,7 @@ discard block |
||
1161 | 1161 | 'subscription_id' => $this->get_id(), |
1162 | 1162 | ) |
1163 | 1163 | ); |
1164 | - return apply_filters( 'wpinv_subscription_update_url', $url, $this ); |
|
1164 | + return apply_filters('wpinv_subscription_update_url', $url, $this); |
|
1165 | 1165 | } |
1166 | 1166 | |
1167 | 1167 | /** |
@@ -1171,7 +1171,7 @@ discard block |
||
1171 | 1171 | * @return string |
1172 | 1172 | */ |
1173 | 1173 | public function get_status_label() { |
1174 | - return getpaid_get_subscription_status_label( $this->get_status() ); |
|
1174 | + return getpaid_get_subscription_status_label($this->get_status()); |
|
1175 | 1175 | } |
1176 | 1176 | |
1177 | 1177 | /** |
@@ -1182,7 +1182,7 @@ discard block |
||
1182 | 1182 | */ |
1183 | 1183 | public function get_status_class() { |
1184 | 1184 | $statuses = getpaid_get_subscription_status_classes(); |
1185 | - return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'bg-dark'; |
|
1185 | + return isset($statuses[$this->get_status()]) ? $statuses[$this->get_status()] : 'bg-dark'; |
|
1186 | 1186 | } |
1187 | 1187 | |
1188 | 1188 | /** |
@@ -1193,9 +1193,9 @@ discard block |
||
1193 | 1193 | */ |
1194 | 1194 | public function get_status_label_html() { |
1195 | 1195 | |
1196 | - $status_label = sanitize_text_field( $this->get_status_label() ); |
|
1197 | - $class = esc_attr( $this->get_status_class() ); |
|
1198 | - $status = sanitize_html_class( $this->get_status() ); |
|
1196 | + $status_label = sanitize_text_field($this->get_status_label()); |
|
1197 | + $class = esc_attr($this->get_status_class()); |
|
1198 | + $status = sanitize_html_class($this->get_status()); |
|
1199 | 1199 | |
1200 | 1200 | return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>"; |
1201 | 1201 | } |
@@ -1207,9 +1207,9 @@ discard block |
||
1207 | 1207 | * @param string $txn_id The transaction ID from the merchant processor |
1208 | 1208 | * @return bool |
1209 | 1209 | */ |
1210 | - public function payment_exists( $txn_id = '' ) { |
|
1211 | - $invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' ); |
|
1212 | - return ! empty( $invoice_id ); |
|
1210 | + public function payment_exists($txn_id = '') { |
|
1211 | + $invoice_id = WPInv_Invoice::get_invoice_id_by_field($txn_id, 'transaction_id'); |
|
1212 | + return !empty($invoice_id); |
|
1213 | 1213 | } |
1214 | 1214 | |
1215 | 1215 | /** |
@@ -1221,35 +1221,35 @@ discard block |
||
1221 | 1221 | // Reset status transition variable. |
1222 | 1222 | $this->status_transition = false; |
1223 | 1223 | |
1224 | - if ( $status_transition ) { |
|
1224 | + if ($status_transition) { |
|
1225 | 1225 | try { |
1226 | 1226 | |
1227 | 1227 | // Fire a hook for the status change. |
1228 | - do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition ); |
|
1229 | - do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition ); |
|
1228 | + do_action('wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition); |
|
1229 | + do_action('getpaid_subscription_' . $status_transition['to'], $this, $status_transition); |
|
1230 | 1230 | |
1231 | - if ( ! empty( $status_transition['from'] ) ) { |
|
1231 | + if (!empty($status_transition['from'])) { |
|
1232 | 1232 | |
1233 | 1233 | /* translators: 1: old subscription status 2: new subscription status */ |
1234 | - $transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) ); |
|
1234 | + $transition_note = sprintf(__('Subscription status changed from %1$s to %2$s.', 'invoicing'), getpaid_get_subscription_status_label($status_transition['from']), getpaid_get_subscription_status_label($status_transition['to'])); |
|
1235 | 1235 | |
1236 | 1236 | // Note the transition occurred. |
1237 | - $this->get_parent_payment()->add_note( $transition_note, false, false, true ); |
|
1237 | + $this->get_parent_payment()->add_note($transition_note, false, false, true); |
|
1238 | 1238 | |
1239 | 1239 | // Fire another hook. |
1240 | - do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this ); |
|
1241 | - do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] ); |
|
1240 | + do_action('getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this); |
|
1241 | + do_action('getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to']); |
|
1242 | 1242 | |
1243 | 1243 | } else { |
1244 | 1244 | /* translators: %s: new invoice status */ |
1245 | - $transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) ); |
|
1245 | + $transition_note = sprintf(__('Subscription status set to %s.', 'invoicing'), getpaid_get_subscription_status_label($status_transition['to'])); |
|
1246 | 1246 | |
1247 | 1247 | // Note the transition occurred. |
1248 | - $this->get_parent_payment()->add_note( $transition_note, false, false, true ); |
|
1248 | + $this->get_parent_payment()->add_note($transition_note, false, false, true); |
|
1249 | 1249 | |
1250 | 1250 | } |
1251 | - } catch ( Exception $e ) { |
|
1252 | - $this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() ); |
|
1251 | + } catch (Exception $e) { |
|
1252 | + $this->get_parent_payment()->add_note(__('Error during subscription status transition.', 'invoicing') . ' ' . $e->getMessage()); |
|
1253 | 1253 | } |
1254 | 1254 | } |
1255 | 1255 | |
@@ -1275,7 +1275,7 @@ discard block |
||
1275 | 1275 | */ |
1276 | 1276 | public function activate() { |
1277 | 1277 | $status = $this->has_trial_period() && 'trialling' === $this->get_status() ? 'trialling' : 'active'; |
1278 | - $this->set_status( $status ); |
|
1278 | + $this->set_status($status); |
|
1279 | 1279 | return $this->save(); |
1280 | 1280 | } |
1281 | 1281 |
@@ -13,58 +13,58 @@ discard block |
||
13 | 13 | class GetPaid_Authorize_Net_Gateway extends GetPaid_Authorize_Net_Legacy_Gateway { |
14 | 14 | |
15 | 15 | /** |
16 | - * Payment method id. |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
16 | + * Payment method id. |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | 20 | public $id = 'authorizenet'; |
21 | 21 | |
22 | 22 | /** |
23 | - * An array of features that this gateway supports. |
|
24 | - * |
|
25 | - * @var array |
|
26 | - */ |
|
23 | + * An array of features that this gateway supports. |
|
24 | + * |
|
25 | + * @var array |
|
26 | + */ |
|
27 | 27 | protected $supports = array( 'subscription', 'sandbox', 'tokens', 'addons', 'single_subscription_group', 'multiple_subscription_groups', 'subscription_date_change' ); |
28 | 28 | |
29 | 29 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | 34 | public $order = 4; |
35 | 35 | |
36 | 36 | /** |
37 | - * Endpoint for requests from Authorize.net. |
|
38 | - * |
|
39 | - * @var string |
|
40 | - */ |
|
41 | - protected $notify_url; |
|
42 | - |
|
43 | - /** |
|
44 | - * Endpoint for requests to Authorize.net. |
|
45 | - * |
|
46 | - * @var string |
|
47 | - */ |
|
37 | + * Endpoint for requests from Authorize.net. |
|
38 | + * |
|
39 | + * @var string |
|
40 | + */ |
|
41 | + protected $notify_url; |
|
42 | + |
|
43 | + /** |
|
44 | + * Endpoint for requests to Authorize.net. |
|
45 | + * |
|
46 | + * @var string |
|
47 | + */ |
|
48 | 48 | protected $endpoint; |
49 | 49 | |
50 | 50 | /** |
51 | - * Currencies this gateway is allowed for. |
|
52 | - * |
|
53 | - * @var array |
|
54 | - */ |
|
55 | - public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' ); |
|
51 | + * Currencies this gateway is allowed for. |
|
52 | + * |
|
53 | + * @var array |
|
54 | + */ |
|
55 | + public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' ); |
|
56 | 56 | |
57 | 57 | /** |
58 | - * URL to view a transaction. |
|
59 | - * |
|
60 | - * @var string |
|
61 | - */ |
|
58 | + * URL to view a transaction. |
|
59 | + * |
|
60 | + * @var string |
|
61 | + */ |
|
62 | 62 | public $view_transaction_url = 'https://{sandbox}authorize.net/ui/themes/sandbox/Transaction/TransactionReceipt.aspx?transid=%s'; |
63 | 63 | |
64 | 64 | /** |
65 | - * Class constructor. |
|
66 | - */ |
|
67 | - public function __construct() { |
|
65 | + * Class constructor. |
|
66 | + */ |
|
67 | + public function __construct() { |
|
68 | 68 | |
69 | 69 | $this->title = __( 'Credit Card / Debit Card', 'invoicing' ); |
70 | 70 | $this->method_title = __( 'Authorize.Net', 'invoicing' ); |
@@ -76,11 +76,11 @@ discard block |
||
76 | 76 | } |
77 | 77 | |
78 | 78 | /** |
79 | - * Displays the payment method select field. |
|
80 | - * |
|
81 | - * @param int $invoice_id 0 or invoice id. |
|
82 | - * @param GetPaid_Payment_Form $form Current payment form. |
|
83 | - */ |
|
79 | + * Displays the payment method select field. |
|
80 | + * |
|
81 | + * @param int $invoice_id 0 or invoice id. |
|
82 | + * @param GetPaid_Payment_Form $form Current payment form. |
|
83 | + */ |
|
84 | 84 | public function payment_fields( $invoice_id, $form ) { |
85 | 85 | |
86 | 86 | // Let the user select a payment method. |
@@ -91,16 +91,16 @@ discard block |
||
91 | 91 | } |
92 | 92 | |
93 | 93 | /** |
94 | - * Creates a customer profile. |
|
95 | - * |
|
96 | - * |
|
97 | - * @param WPInv_Invoice $invoice Invoice. |
|
94 | + * Creates a customer profile. |
|
95 | + * |
|
96 | + * |
|
97 | + * @param WPInv_Invoice $invoice Invoice. |
|
98 | 98 | * @param array $submission_data Posted checkout fields. |
99 | 99 | * @param bool $save Whether or not to save the payment as a token. |
100 | 100 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile |
101 | - * @return string|WP_Error Payment profile id. |
|
102 | - */ |
|
103 | - public function create_customer_profile( $invoice, $submission_data, $save = true ) { |
|
101 | + * @return string|WP_Error Payment profile id. |
|
102 | + */ |
|
103 | + public function create_customer_profile( $invoice, $submission_data, $save = true ) { |
|
104 | 104 | |
105 | 105 | // Remove non-digits from the number |
106 | 106 | $submission_data['authorizenet']['cc_number'] = preg_replace( '/\D/', '', $submission_data['authorizenet']['cc_number'] ); |
@@ -182,14 +182,14 @@ discard block |
||
182 | 182 | } |
183 | 183 | |
184 | 184 | /** |
185 | - * Retrieves a customer profile. |
|
186 | - * |
|
187 | - * |
|
188 | - * @param string $profile_id profile id. |
|
189 | - * @return string|WP_Error Profile id. |
|
185 | + * Retrieves a customer profile. |
|
186 | + * |
|
187 | + * |
|
188 | + * @param string $profile_id profile id. |
|
189 | + * @return string|WP_Error Profile id. |
|
190 | 190 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-profile |
191 | - */ |
|
192 | - public function get_customer_profile( $profile_id ) { |
|
191 | + */ |
|
192 | + public function get_customer_profile( $profile_id ) { |
|
193 | 193 | |
194 | 194 | // Generate args. |
195 | 195 | $args = array( |
@@ -204,17 +204,17 @@ discard block |
||
204 | 204 | } |
205 | 205 | |
206 | 206 | /** |
207 | - * Creates a customer profile. |
|
208 | - * |
|
209 | - * |
|
207 | + * Creates a customer profile. |
|
208 | + * |
|
209 | + * |
|
210 | 210 | * @param string $profile_id profile id. |
211 | - * @param WPInv_Invoice $invoice Invoice. |
|
211 | + * @param WPInv_Invoice $invoice Invoice. |
|
212 | 212 | * @param array $submission_data Posted checkout fields. |
213 | 213 | * @param bool $save Whether or not to save the payment as a token. |
214 | 214 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile |
215 | - * @return string|WP_Error Profile id. |
|
216 | - */ |
|
217 | - public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) { |
|
215 | + * @return string|WP_Error Profile id. |
|
216 | + */ |
|
217 | + public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) { |
|
218 | 218 | |
219 | 219 | // Remove non-digits from the number |
220 | 220 | $submission_data['authorizenet']['cc_number'] = preg_replace( '/\D/', '', $submission_data['authorizenet']['cc_number'] ); |
@@ -302,13 +302,13 @@ discard block |
||
302 | 302 | } |
303 | 303 | |
304 | 304 | /** |
305 | - * Retrieves payment details from cache. |
|
306 | - * |
|
307 | - * |
|
305 | + * Retrieves payment details from cache. |
|
306 | + * |
|
307 | + * |
|
308 | 308 | * @param array $payment_details. |
309 | - * @return array|false Profile id. |
|
310 | - */ |
|
311 | - public function retrieve_payment_profile_from_cache( $payment_details, $customer_profile, $invoice ) { |
|
309 | + * @return array|false Profile id. |
|
310 | + */ |
|
311 | + public function retrieve_payment_profile_from_cache( $payment_details, $customer_profile, $invoice ) { |
|
312 | 312 | |
313 | 313 | $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() ); |
314 | 314 | $payment_details = hash_hmac( 'sha256', json_encode( $payment_details ), SECURE_AUTH_KEY ); |
@@ -333,13 +333,13 @@ discard block |
||
333 | 333 | } |
334 | 334 | |
335 | 335 | /** |
336 | - * Securely adds payment details to cache. |
|
337 | - * |
|
338 | - * |
|
336 | + * Securely adds payment details to cache. |
|
337 | + * |
|
338 | + * |
|
339 | 339 | * @param array $payment_details. |
340 | 340 | * @param string $payment_profile_id. |
341 | - */ |
|
342 | - public function add_payment_profile_to_cache( $payment_details, $payment_profile_id ) { |
|
341 | + */ |
|
342 | + public function add_payment_profile_to_cache( $payment_details, $payment_profile_id ) { |
|
343 | 343 | |
344 | 344 | $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() ); |
345 | 345 | $cached_information = is_array( $cached_information ) ? $cached_information : array(); |
@@ -351,15 +351,15 @@ discard block |
||
351 | 351 | } |
352 | 352 | |
353 | 353 | /** |
354 | - * Retrieves a customer payment profile. |
|
355 | - * |
|
356 | - * |
|
357 | - * @param string $customer_profile_id customer profile id. |
|
354 | + * Retrieves a customer payment profile. |
|
355 | + * |
|
356 | + * |
|
357 | + * @param string $customer_profile_id customer profile id. |
|
358 | 358 | * @param string $payment_profile_id payment profile id. |
359 | - * @return string|WP_Error Profile id. |
|
359 | + * @return string|WP_Error Profile id. |
|
360 | 360 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile |
361 | - */ |
|
362 | - public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) { |
|
361 | + */ |
|
362 | + public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) { |
|
363 | 363 | |
364 | 364 | // Generate args. |
365 | 365 | $args = array( |
@@ -375,15 +375,15 @@ discard block |
||
375 | 375 | } |
376 | 376 | |
377 | 377 | /** |
378 | - * Charges a customer payment profile. |
|
379 | - * |
|
378 | + * Charges a customer payment profile. |
|
379 | + * |
|
380 | 380 | * @param string $customer_profile_id customer profile id. |
381 | 381 | * @param string $payment_profile_id payment profile id. |
382 | - * @param WPInv_Invoice $invoice Invoice. |
|
382 | + * @param WPInv_Invoice $invoice Invoice. |
|
383 | 383 | * @link https://developer.authorize.net/api/reference/index.html#payment-transactions-charge-a-customer-profile |
384 | - * @return WP_Error|object |
|
385 | - */ |
|
386 | - public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) { |
|
384 | + * @return WP_Error|object |
|
385 | + */ |
|
386 | + public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) { |
|
387 | 387 | |
388 | 388 | // Generate args. |
389 | 389 | $args = array( |
@@ -429,41 +429,41 @@ discard block |
||
429 | 429 | } |
430 | 430 | |
431 | 431 | /** |
432 | - * Processes a customer charge. |
|
433 | - * |
|
432 | + * Processes a customer charge. |
|
433 | + * |
|
434 | 434 | * @param stdClass $result Api response. |
435 | - * @param WPInv_Invoice $invoice Invoice. |
|
436 | - */ |
|
437 | - public function process_charge_response( $result, $invoice ) { |
|
435 | + * @param WPInv_Invoice $invoice Invoice. |
|
436 | + */ |
|
437 | + public function process_charge_response( $result, $invoice ) { |
|
438 | 438 | |
439 | 439 | wpinv_clear_errors(); |
440 | - $response_code = (int) $result->transactionResponse->responseCode; |
|
440 | + $response_code = (int) $result->transactionResponse->responseCode; |
|
441 | 441 | |
442 | - // Succeeded. |
|
443 | - if ( 1 == $response_code || 4 == $response_code ) { |
|
442 | + // Succeeded. |
|
443 | + if ( 1 == $response_code || 4 == $response_code ) { |
|
444 | 444 | |
445 | - // Maybe set a transaction id. |
|
446 | - if ( ! empty( $result->transactionResponse->transId ) ) { |
|
447 | - $invoice->set_transaction_id( $result->transactionResponse->transId ); |
|
448 | - } |
|
445 | + // Maybe set a transaction id. |
|
446 | + if ( ! empty( $result->transactionResponse->transId ) ) { |
|
447 | + $invoice->set_transaction_id( $result->transactionResponse->transId ); |
|
448 | + } |
|
449 | 449 | |
450 | - $invoice->add_note( sprintf( __( 'Authentication code: %1$s (%2$s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true ); |
|
450 | + $invoice->add_note( sprintf( __( 'Authentication code: %1$s (%2$s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true ); |
|
451 | 451 | |
452 | - if ( 1 == $response_code ) { |
|
453 | - return $invoice->mark_paid(); |
|
454 | - } |
|
452 | + if ( 1 == $response_code ) { |
|
453 | + return $invoice->mark_paid(); |
|
454 | + } |
|
455 | 455 | |
456 | - $invoice->set_status( 'wpi-onhold' ); |
|
457 | - $invoice->add_note( |
|
456 | + $invoice->set_status( 'wpi-onhold' ); |
|
457 | + $invoice->add_note( |
|
458 | 458 | sprintf( |
459 | 459 | __( 'Held for review: %s', 'invoicing' ), |
460 | 460 | $result->transactionResponse->messages->message[0]->description |
461 | 461 | ) |
462 | - ); |
|
462 | + ); |
|
463 | 463 | |
464 | - return $invoice->save(); |
|
464 | + return $invoice->save(); |
|
465 | 465 | |
466 | - } |
|
466 | + } |
|
467 | 467 | |
468 | 468 | wpinv_set_error( 'card_declined' ); |
469 | 469 | |
@@ -475,13 +475,13 @@ discard block |
||
475 | 475 | } |
476 | 476 | |
477 | 477 | /** |
478 | - * Returns payment information. |
|
479 | - * |
|
480 | - * |
|
481 | - * @param array $card Card details. |
|
482 | - * @return array |
|
483 | - */ |
|
484 | - public function get_payment_information( $card ) { |
|
478 | + * Returns payment information. |
|
479 | + * |
|
480 | + * |
|
481 | + * @param array $card Card details. |
|
482 | + * @return array |
|
483 | + */ |
|
484 | + public function get_payment_information( $card ) { |
|
485 | 485 | return array( |
486 | 486 | |
487 | 487 | 'creditCard' => array( |
@@ -494,25 +494,25 @@ discard block |
||
494 | 494 | } |
495 | 495 | |
496 | 496 | /** |
497 | - * Returns the customer profile meta name. |
|
498 | - * |
|
499 | - * |
|
500 | - * @param WPInv_Invoice $invoice Invoice. |
|
501 | - * @return string |
|
502 | - */ |
|
503 | - public function get_customer_profile_meta_name( $invoice ) { |
|
497 | + * Returns the customer profile meta name. |
|
498 | + * |
|
499 | + * |
|
500 | + * @param WPInv_Invoice $invoice Invoice. |
|
501 | + * @return string |
|
502 | + */ |
|
503 | + public function get_customer_profile_meta_name( $invoice ) { |
|
504 | 504 | return $this->is_sandbox( $invoice ) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id'; |
505 | 505 | } |
506 | 506 | |
507 | 507 | /** |
508 | - * Validates the submitted data. |
|
509 | - * |
|
510 | - * |
|
511 | - * @param array $submission_data Posted checkout fields. |
|
508 | + * Validates the submitted data. |
|
509 | + * |
|
510 | + * |
|
511 | + * @param array $submission_data Posted checkout fields. |
|
512 | 512 | * @param WPInv_Invoice $invoice |
513 | - * @return WP_Error|string The payment profile id |
|
514 | - */ |
|
515 | - public function validate_submission_data( $submission_data, $invoice ) { |
|
513 | + * @return WP_Error|string The payment profile id |
|
514 | + */ |
|
515 | + public function validate_submission_data( $submission_data, $invoice ) { |
|
516 | 516 | |
517 | 517 | // Validate authentication details. |
518 | 518 | $auth = $this->get_auth_params(); |
@@ -544,13 +544,13 @@ discard block |
||
544 | 544 | } |
545 | 545 | |
546 | 546 | /** |
547 | - * Returns invoice line items. |
|
548 | - * |
|
549 | - * |
|
550 | - * @param WPInv_Invoice $invoice Invoice. |
|
551 | - * @return array |
|
552 | - */ |
|
553 | - public function get_line_items( $invoice ) { |
|
547 | + * Returns invoice line items. |
|
548 | + * |
|
549 | + * |
|
550 | + * @param WPInv_Invoice $invoice Invoice. |
|
551 | + * @return array |
|
552 | + */ |
|
553 | + public function get_line_items( $invoice ) { |
|
554 | 554 | $items = array(); |
555 | 555 | |
556 | 556 | foreach ( $invoice->get_items() as $item ) { |
@@ -587,15 +587,15 @@ discard block |
||
587 | 587 | } |
588 | 588 | |
589 | 589 | /** |
590 | - * Process Payment. |
|
591 | - * |
|
592 | - * |
|
593 | - * @param WPInv_Invoice $invoice Invoice. |
|
594 | - * @param array $submission_data Posted checkout fields. |
|
595 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
596 | - * @return array |
|
597 | - */ |
|
598 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
590 | + * Process Payment. |
|
591 | + * |
|
592 | + * |
|
593 | + * @param WPInv_Invoice $invoice Invoice. |
|
594 | + * @param array $submission_data Posted checkout fields. |
|
595 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
596 | + * @return array |
|
597 | + */ |
|
598 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
599 | 599 | |
600 | 600 | // Validate the submitted data. |
601 | 601 | $payment_profile_id = $this->validate_submission_data( $submission_data, $invoice ); |
@@ -628,45 +628,45 @@ discard block |
||
628 | 628 | |
629 | 629 | exit; |
630 | 630 | |
631 | - } |
|
631 | + } |
|
632 | 632 | |
633 | - /** |
|
634 | - * Processes the initial payment. |
|
635 | - * |
|
633 | + /** |
|
634 | + * Processes the initial payment. |
|
635 | + * |
|
636 | 636 | * @param WPInv_Invoice $invoice Invoice. |
637 | - */ |
|
638 | - protected function process_initial_payment( $invoice ) { |
|
637 | + */ |
|
638 | + protected function process_initial_payment( $invoice ) { |
|
639 | 639 | |
640 | - $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
640 | + $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
641 | 641 | $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
642 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
|
642 | + $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
|
643 | 643 | |
644 | - // Do we have an error? |
|
645 | - if ( is_wp_error( $result ) ) { |
|
646 | - wpinv_set_error( $result->get_error_code(), $result->get_error_message() ); |
|
647 | - wpinv_send_back_to_checkout( $invoice ); |
|
648 | - } |
|
644 | + // Do we have an error? |
|
645 | + if ( is_wp_error( $result ) ) { |
|
646 | + wpinv_set_error( $result->get_error_code(), $result->get_error_message() ); |
|
647 | + wpinv_send_back_to_checkout( $invoice ); |
|
648 | + } |
|
649 | 649 | |
650 | - // Process the response. |
|
651 | - $this->process_charge_response( $result, $invoice ); |
|
650 | + // Process the response. |
|
651 | + $this->process_charge_response( $result, $invoice ); |
|
652 | 652 | |
653 | - if ( wpinv_get_errors() ) { |
|
654 | - wpinv_send_back_to_checkout( $invoice ); |
|
655 | - } |
|
653 | + if ( wpinv_get_errors() ) { |
|
654 | + wpinv_send_back_to_checkout( $invoice ); |
|
655 | + } |
|
656 | 656 | |
657 | - } |
|
657 | + } |
|
658 | 658 | |
659 | 659 | /** |
660 | - * Processes recurring payments. |
|
661 | - * |
|
660 | + * Processes recurring payments. |
|
661 | + * |
|
662 | 662 | * @param WPInv_Invoice $invoice Invoice. |
663 | 663 | * @param WPInv_Subscription[]|WPInv_Subscription $subscriptions Subscriptions. |
664 | - */ |
|
665 | - public function process_subscription( $invoice, $subscriptions ) { |
|
664 | + */ |
|
665 | + public function process_subscription( $invoice, $subscriptions ) { |
|
666 | 666 | |
667 | 667 | // Check if there is an initial amount to charge. |
668 | 668 | if ( (float) $invoice->get_total() > 0 ) { |
669 | - $this->process_initial_payment( $invoice ); |
|
669 | + $this->process_initial_payment( $invoice ); |
|
670 | 670 | } |
671 | 671 | |
672 | 672 | // Activate the subscriptions. |
@@ -684,36 +684,36 @@ discard block |
||
684 | 684 | } |
685 | 685 | } |
686 | 686 | |
687 | - // Redirect to the success page. |
|
687 | + // Redirect to the success page. |
|
688 | 688 | wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
689 | 689 | |
690 | 690 | } |
691 | 691 | |
692 | - /** |
|
693 | - * (Maybe) renews an authorize.net subscription profile. |
|
694 | - * |
|
695 | - * |
|
692 | + /** |
|
693 | + * (Maybe) renews an authorize.net subscription profile. |
|
694 | + * |
|
695 | + * |
|
696 | 696 | * @param WPInv_Subscription $subscription |
697 | - */ |
|
698 | - public function maybe_renew_subscription( $subscription ) { |
|
697 | + */ |
|
698 | + public function maybe_renew_subscription( $subscription ) { |
|
699 | 699 | |
700 | 700 | // Ensure its our subscription && it's active. |
701 | 701 | if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
702 | 702 | $this->renew_subscription( $subscription ); |
703 | 703 | } |
704 | 704 | |
705 | - } |
|
705 | + } |
|
706 | 706 | |
707 | 707 | /** |
708 | - * Renews a subscription. |
|
709 | - * |
|
708 | + * Renews a subscription. |
|
709 | + * |
|
710 | 710 | * @param WPInv_Subscription $subscription |
711 | - */ |
|
712 | - public function renew_subscription( $subscription ) { |
|
711 | + */ |
|
712 | + public function renew_subscription( $subscription ) { |
|
713 | 713 | |
714 | - // Generate the renewal invoice. |
|
715 | - $new_invoice = $subscription->create_payment(); |
|
716 | - $old_invoice = $subscription->get_parent_payment(); |
|
714 | + // Generate the renewal invoice. |
|
715 | + $new_invoice = $subscription->create_payment(); |
|
716 | + $old_invoice = $subscription->get_parent_payment(); |
|
717 | 717 | |
718 | 718 | if ( empty( $new_invoice ) ) { |
719 | 719 | $old_invoice->add_note( __( 'Error generating a renewal invoice.', 'invoicing' ), false, false, false ); |
@@ -722,37 +722,37 @@ discard block |
||
722 | 722 | } |
723 | 723 | |
724 | 724 | // Charge the payment method. |
725 | - $payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
726 | - $customer_profile = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true ); |
|
727 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice ); |
|
728 | - |
|
729 | - // Do we have an error? |
|
730 | - if ( is_wp_error( $result ) ) { |
|
731 | - |
|
732 | - $old_invoice->add_note( |
|
733 | - sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ), |
|
734 | - true, |
|
735 | - false, |
|
736 | - true |
|
737 | - ); |
|
738 | - $subscription->failing(); |
|
739 | - return; |
|
740 | - |
|
741 | - } |
|
742 | - |
|
743 | - // Process the response. |
|
744 | - $this->process_charge_response( $result, $new_invoice ); |
|
745 | - |
|
746 | - if ( wpinv_get_errors() ) { |
|
747 | - |
|
748 | - $old_invoice->add_note( |
|
749 | - sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ), |
|
750 | - true, |
|
751 | - false, |
|
752 | - true |
|
753 | - ); |
|
754 | - $subscription->failing(); |
|
755 | - return; |
|
725 | + $payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
726 | + $customer_profile = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true ); |
|
727 | + $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice ); |
|
728 | + |
|
729 | + // Do we have an error? |
|
730 | + if ( is_wp_error( $result ) ) { |
|
731 | + |
|
732 | + $old_invoice->add_note( |
|
733 | + sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ), |
|
734 | + true, |
|
735 | + false, |
|
736 | + true |
|
737 | + ); |
|
738 | + $subscription->failing(); |
|
739 | + return; |
|
740 | + |
|
741 | + } |
|
742 | + |
|
743 | + // Process the response. |
|
744 | + $this->process_charge_response( $result, $new_invoice ); |
|
745 | + |
|
746 | + if ( wpinv_get_errors() ) { |
|
747 | + |
|
748 | + $old_invoice->add_note( |
|
749 | + sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ), |
|
750 | + true, |
|
751 | + false, |
|
752 | + true |
|
753 | + ); |
|
754 | + $subscription->failing(); |
|
755 | + return; |
|
756 | 756 | |
757 | 757 | } |
758 | 758 | |
@@ -761,13 +761,13 @@ discard block |
||
761 | 761 | } |
762 | 762 | |
763 | 763 | /** |
764 | - * Processes invoice addons. |
|
765 | - * |
|
766 | - * @param WPInv_Invoice $invoice |
|
767 | - * @param GetPaid_Form_Item[] $items |
|
768 | - * @return WPInv_Invoice |
|
769 | - */ |
|
770 | - public function process_addons( $invoice, $items ) { |
|
764 | + * Processes invoice addons. |
|
765 | + * |
|
766 | + * @param WPInv_Invoice $invoice |
|
767 | + * @param GetPaid_Form_Item[] $items |
|
768 | + * @return WPInv_Invoice |
|
769 | + */ |
|
770 | + public function process_addons( $invoice, $items ) { |
|
771 | 771 | |
772 | 772 | global $getpaid_authorize_addons; |
773 | 773 | |
@@ -786,7 +786,7 @@ discard block |
||
786 | 786 | $invoice->recalculate_total(); |
787 | 787 | |
788 | 788 | $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
789 | - $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
789 | + $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
790 | 790 | |
791 | 791 | add_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ), 10, 2 ); |
792 | 792 | $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
@@ -801,11 +801,11 @@ discard block |
||
801 | 801 | } |
802 | 802 | |
803 | 803 | /** |
804 | - * Processes invoice addons. |
|
805 | - * |
|
804 | + * Processes invoice addons. |
|
805 | + * |
|
806 | 806 | * @param array $args |
807 | - * @return array |
|
808 | - */ |
|
807 | + * @return array |
|
808 | + */ |
|
809 | 809 | public function filter_addons_request( $args ) { |
810 | 810 | |
811 | 811 | global $getpaid_authorize_addons; |
@@ -839,11 +839,11 @@ discard block |
||
839 | 839 | } |
840 | 840 | |
841 | 841 | /** |
842 | - * Filters the gateway settings. |
|
843 | - * |
|
844 | - * @param array $admin_settings |
|
845 | - */ |
|
846 | - public function admin_settings( $admin_settings ) { |
|
842 | + * Filters the gateway settings. |
|
843 | + * |
|
844 | + * @param array $admin_settings |
|
845 | + */ |
|
846 | + public function admin_settings( $admin_settings ) { |
|
847 | 847 | |
848 | 848 | $currencies = sprintf( |
849 | 849 | __( 'Supported Currencies: %s', 'invoicing' ), |
@@ -883,7 +883,7 @@ discard block |
||
883 | 883 | 'readonly' => true, |
884 | 884 | ); |
885 | 885 | |
886 | - return $admin_settings; |
|
887 | - } |
|
886 | + return $admin_settings; |
|
887 | + } |
|
888 | 888 | |
889 | 889 | } |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * Authorize.net Payment Gateway class. |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | * |
25 | 25 | * @var array |
26 | 26 | */ |
27 | - protected $supports = array( 'subscription', 'sandbox', 'tokens', 'addons', 'single_subscription_group', 'multiple_subscription_groups', 'subscription_date_change' ); |
|
27 | + protected $supports = array('subscription', 'sandbox', 'tokens', 'addons', 'single_subscription_group', 'multiple_subscription_groups', 'subscription_date_change'); |
|
28 | 28 | |
29 | 29 | /** |
30 | 30 | * Payment method order. |
@@ -52,7 +52,7 @@ discard block |
||
52 | 52 | * |
53 | 53 | * @var array |
54 | 54 | */ |
55 | - public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' ); |
|
55 | + public $currencies = array('USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD'); |
|
56 | 56 | |
57 | 57 | /** |
58 | 58 | * URL to view a transaction. |
@@ -66,12 +66,12 @@ discard block |
||
66 | 66 | */ |
67 | 67 | public function __construct() { |
68 | 68 | |
69 | - $this->title = __( 'Credit Card / Debit Card', 'invoicing' ); |
|
70 | - $this->method_title = __( 'Authorize.Net', 'invoicing' ); |
|
71 | - $this->notify_url = getpaid_get_non_query_string_ipn_url( $this->id ); |
|
69 | + $this->title = __('Credit Card / Debit Card', 'invoicing'); |
|
70 | + $this->method_title = __('Authorize.Net', 'invoicing'); |
|
71 | + $this->notify_url = getpaid_get_non_query_string_ipn_url($this->id); |
|
72 | 72 | |
73 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
74 | - add_filter( 'getpaid_authorizenet_sandbox_notice', array( $this, 'sandbox_notice' ) ); |
|
73 | + add_action('getpaid_should_renew_subscription', array($this, 'maybe_renew_subscription')); |
|
74 | + add_filter('getpaid_authorizenet_sandbox_notice', array($this, 'sandbox_notice')); |
|
75 | 75 | parent::__construct(); |
76 | 76 | } |
77 | 77 | |
@@ -81,13 +81,13 @@ discard block |
||
81 | 81 | * @param int $invoice_id 0 or invoice id. |
82 | 82 | * @param GetPaid_Payment_Form $form Current payment form. |
83 | 83 | */ |
84 | - public function payment_fields( $invoice_id, $form ) { |
|
84 | + public function payment_fields($invoice_id, $form) { |
|
85 | 85 | |
86 | 86 | // Let the user select a payment method. |
87 | 87 | $this->saved_payment_methods(); |
88 | 88 | |
89 | 89 | // Show the credit card entry form. |
90 | - $this->new_payment_method_entry( $this->get_cc_form( true ) ); |
|
90 | + $this->new_payment_method_entry($this->get_cc_form(true)); |
|
91 | 91 | } |
92 | 92 | |
93 | 93 | /** |
@@ -100,79 +100,79 @@ discard block |
||
100 | 100 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile |
101 | 101 | * @return string|WP_Error Payment profile id. |
102 | 102 | */ |
103 | - public function create_customer_profile( $invoice, $submission_data, $save = true ) { |
|
103 | + public function create_customer_profile($invoice, $submission_data, $save = true) { |
|
104 | 104 | |
105 | 105 | // Remove non-digits from the number |
106 | - $submission_data['authorizenet']['cc_number'] = preg_replace( '/\D/', '', $submission_data['authorizenet']['cc_number'] ); |
|
106 | + $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number']); |
|
107 | 107 | |
108 | 108 | // Generate args. |
109 | 109 | $args = array( |
110 | 110 | 'createCustomerProfileRequest' => array( |
111 | 111 | 'merchantAuthentication' => $this->get_auth_params(), |
112 | 112 | 'profile' => array( |
113 | - 'merchantCustomerId' => getpaid_limit_length( $invoice->get_user_id(), 20 ), |
|
114 | - 'description' => getpaid_limit_length( $invoice->get_full_name(), 255 ), |
|
115 | - 'email' => getpaid_limit_length( $invoice->get_email(), 255 ), |
|
113 | + 'merchantCustomerId' => getpaid_limit_length($invoice->get_user_id(), 20), |
|
114 | + 'description' => getpaid_limit_length($invoice->get_full_name(), 255), |
|
115 | + 'email' => getpaid_limit_length($invoice->get_email(), 255), |
|
116 | 116 | 'paymentProfiles' => array( |
117 | 117 | 'customerType' => 'individual', |
118 | 118 | |
119 | 119 | // Billing information. |
120 | 120 | 'billTo' => array( |
121 | - 'firstName' => getpaid_limit_length( $invoice->get_first_name(), 50 ), |
|
122 | - 'lastName' => getpaid_limit_length( $invoice->get_last_name(), 50 ), |
|
123 | - 'address' => getpaid_limit_length( $invoice->get_address(), 60 ), |
|
124 | - 'city' => getpaid_limit_length( $invoice->get_city(), 40 ), |
|
125 | - 'state' => getpaid_limit_length( $invoice->get_state(), 40 ), |
|
126 | - 'zip' => getpaid_limit_length( $invoice->get_zip(), 20 ), |
|
127 | - 'country' => getpaid_limit_length( $invoice->get_country(), 60 ), |
|
121 | + 'firstName' => getpaid_limit_length($invoice->get_first_name(), 50), |
|
122 | + 'lastName' => getpaid_limit_length($invoice->get_last_name(), 50), |
|
123 | + 'address' => getpaid_limit_length($invoice->get_address(), 60), |
|
124 | + 'city' => getpaid_limit_length($invoice->get_city(), 40), |
|
125 | + 'state' => getpaid_limit_length($invoice->get_state(), 40), |
|
126 | + 'zip' => getpaid_limit_length($invoice->get_zip(), 20), |
|
127 | + 'country' => getpaid_limit_length($invoice->get_country(), 60), |
|
128 | 128 | ), |
129 | 129 | |
130 | 130 | // Payment information. |
131 | - 'payment' => $this->get_payment_information( $submission_data['authorizenet'] ), |
|
131 | + 'payment' => $this->get_payment_information($submission_data['authorizenet']), |
|
132 | 132 | ), |
133 | 133 | ), |
134 | - 'validationMode' => $this->is_sandbox( $invoice ) ? 'testMode' : 'liveMode', |
|
134 | + 'validationMode' => $this->is_sandbox($invoice) ? 'testMode' : 'liveMode', |
|
135 | 135 | ), |
136 | 136 | ); |
137 | 137 | |
138 | - $response = $this->post( apply_filters( 'getpaid_authorizenet_customer_profile_args', $args, $invoice ), $invoice ); |
|
138 | + $response = $this->post(apply_filters('getpaid_authorizenet_customer_profile_args', $args, $invoice), $invoice); |
|
139 | 139 | |
140 | - if ( is_wp_error( $response ) ) { |
|
140 | + if (is_wp_error($response)) { |
|
141 | 141 | |
142 | 142 | // In case the payment profile already exists remotely. |
143 | - if ( 'dup_payment_profile' === $response->get_error_code() ) { |
|
144 | - $customer_profile_id = strtok( $response->get_error_message(), '.' ); |
|
145 | - update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $customer_profile_id ); |
|
146 | - return strtok( '.' ); |
|
143 | + if ('dup_payment_profile' === $response->get_error_code()) { |
|
144 | + $customer_profile_id = strtok($response->get_error_message(), '.'); |
|
145 | + update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $customer_profile_id); |
|
146 | + return strtok('.'); |
|
147 | 147 | } |
148 | 148 | |
149 | 149 | // In case the customer profile already exists remotely. |
150 | - if ( 'E00039' === $response->get_error_code() ) { |
|
151 | - $customer_profile_id = str_replace( 'A duplicate record with ID ', '', $response->get_error_message() ); |
|
152 | - $customer_profile_id = str_replace( ' already exists.', '', $customer_profile_id ); |
|
153 | - return $this->create_customer_payment_profile( trim( $customer_profile_id ), $invoice, $submission_data, $save ); |
|
150 | + if ('E00039' === $response->get_error_code()) { |
|
151 | + $customer_profile_id = str_replace('A duplicate record with ID ', '', $response->get_error_message()); |
|
152 | + $customer_profile_id = str_replace(' already exists.', '', $customer_profile_id); |
|
153 | + return $this->create_customer_payment_profile(trim($customer_profile_id), $invoice, $submission_data, $save); |
|
154 | 154 | } |
155 | 155 | |
156 | 156 | return $response; |
157 | 157 | } |
158 | 158 | |
159 | - update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $response->customerProfileId ); |
|
159 | + update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $response->customerProfileId); |
|
160 | 160 | |
161 | 161 | // Save the payment token. |
162 | - if ( $save ) { |
|
162 | + if ($save) { |
|
163 | 163 | $this->save_token( |
164 | 164 | array( |
165 | 165 | 'id' => $response->customerPaymentProfileIdList[0], |
166 | - 'name' => getpaid_get_card_name( $submission_data['authorizenet']['cc_number'] ) . '····' . substr( $submission_data['authorizenet']['cc_number'], -4 ), |
|
166 | + 'name' => getpaid_get_card_name($submission_data['authorizenet']['cc_number']) . '····' . substr($submission_data['authorizenet']['cc_number'], -4), |
|
167 | 167 | 'default' => true, |
168 | - 'type' => $this->is_sandbox( $invoice ) ? 'sandbox' : 'live', |
|
168 | + 'type' => $this->is_sandbox($invoice) ? 'sandbox' : 'live', |
|
169 | 169 | ) |
170 | 170 | ); |
171 | 171 | } |
172 | 172 | |
173 | 173 | // Add a note about the validation response. |
174 | 174 | $invoice->add_note( |
175 | - sprintf( __( 'Created Authorize.NET customer profile: %s', 'invoicing' ), $response->validationDirectResponseList[0] ), |
|
175 | + sprintf(__('Created Authorize.NET customer profile: %s', 'invoicing'), $response->validationDirectResponseList[0]), |
|
176 | 176 | false, |
177 | 177 | false, |
178 | 178 | true |
@@ -189,7 +189,7 @@ discard block |
||
189 | 189 | * @return string|WP_Error Profile id. |
190 | 190 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-profile |
191 | 191 | */ |
192 | - public function get_customer_profile( $profile_id ) { |
|
192 | + public function get_customer_profile($profile_id) { |
|
193 | 193 | |
194 | 194 | // Generate args. |
195 | 195 | $args = array( |
@@ -199,7 +199,7 @@ discard block |
||
199 | 199 | ), |
200 | 200 | ); |
201 | 201 | |
202 | - return $this->post( $args, false ); |
|
202 | + return $this->post($args, false); |
|
203 | 203 | |
204 | 204 | } |
205 | 205 | |
@@ -214,18 +214,18 @@ discard block |
||
214 | 214 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile |
215 | 215 | * @return string|WP_Error Profile id. |
216 | 216 | */ |
217 | - public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) { |
|
217 | + public function create_customer_payment_profile($customer_profile, $invoice, $submission_data, $save) { |
|
218 | 218 | |
219 | 219 | // Remove non-digits from the number |
220 | - $submission_data['authorizenet']['cc_number'] = preg_replace( '/\D/', '', $submission_data['authorizenet']['cc_number'] ); |
|
220 | + $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number']); |
|
221 | 221 | |
222 | 222 | // Prepare card details. |
223 | - $payment_information = $this->get_payment_information( $submission_data['authorizenet'] ); |
|
223 | + $payment_information = $this->get_payment_information($submission_data['authorizenet']); |
|
224 | 224 | |
225 | 225 | // Authorize.NET does not support saving the same card twice. |
226 | - $cached_information = $this->retrieve_payment_profile_from_cache( $payment_information, $customer_profile, $invoice ); |
|
226 | + $cached_information = $this->retrieve_payment_profile_from_cache($payment_information, $customer_profile, $invoice); |
|
227 | 227 | |
228 | - if ( $cached_information ) { |
|
228 | + if ($cached_information) { |
|
229 | 229 | return $cached_information; |
230 | 230 | } |
231 | 231 | |
@@ -238,34 +238,34 @@ discard block |
||
238 | 238 | |
239 | 239 | // Billing information. |
240 | 240 | 'billTo' => array( |
241 | - 'firstName' => getpaid_limit_length( $invoice->get_first_name(), 50 ), |
|
242 | - 'lastName' => getpaid_limit_length( $invoice->get_last_name(), 50 ), |
|
243 | - 'address' => getpaid_limit_length( $invoice->get_address(), 60 ), |
|
244 | - 'city' => getpaid_limit_length( $invoice->get_city(), 40 ), |
|
245 | - 'state' => getpaid_limit_length( $invoice->get_state(), 40 ), |
|
246 | - 'zip' => getpaid_limit_length( $invoice->get_zip(), 20 ), |
|
247 | - 'country' => getpaid_limit_length( $invoice->get_country(), 60 ), |
|
241 | + 'firstName' => getpaid_limit_length($invoice->get_first_name(), 50), |
|
242 | + 'lastName' => getpaid_limit_length($invoice->get_last_name(), 50), |
|
243 | + 'address' => getpaid_limit_length($invoice->get_address(), 60), |
|
244 | + 'city' => getpaid_limit_length($invoice->get_city(), 40), |
|
245 | + 'state' => getpaid_limit_length($invoice->get_state(), 40), |
|
246 | + 'zip' => getpaid_limit_length($invoice->get_zip(), 20), |
|
247 | + 'country' => getpaid_limit_length($invoice->get_country(), 60), |
|
248 | 248 | ), |
249 | 249 | |
250 | 250 | // Payment information. |
251 | 251 | 'payment' => $payment_information, |
252 | 252 | ), |
253 | - 'validationMode' => $this->is_sandbox( $invoice ) ? 'testMode' : 'liveMode', |
|
253 | + 'validationMode' => $this->is_sandbox($invoice) ? 'testMode' : 'liveMode', |
|
254 | 254 | ), |
255 | 255 | ); |
256 | 256 | |
257 | - $response = $this->post( apply_filters( 'getpaid_authorizenet_create_customer_payment_profile_args', $args, $invoice ), $invoice ); |
|
257 | + $response = $this->post(apply_filters('getpaid_authorizenet_create_customer_payment_profile_args', $args, $invoice), $invoice); |
|
258 | 258 | |
259 | - if ( is_wp_error( $response ) ) { |
|
259 | + if (is_wp_error($response)) { |
|
260 | 260 | |
261 | 261 | // In case the payment profile already exists remotely. |
262 | - if ( 'dup_payment_profile' == $response->get_error_code() ) { |
|
263 | - $customer_profile_id = strtok( $response->get_error_message(), '.' ); |
|
264 | - $payment_profile_id = strtok( '.' ); |
|
265 | - update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $customer_profile_id ); |
|
262 | + if ('dup_payment_profile' == $response->get_error_code()) { |
|
263 | + $customer_profile_id = strtok($response->get_error_message(), '.'); |
|
264 | + $payment_profile_id = strtok('.'); |
|
265 | + update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $customer_profile_id); |
|
266 | 266 | |
267 | 267 | // Cache payment profile id. |
268 | - $this->add_payment_profile_to_cache( $payment_information, $payment_profile_id ); |
|
268 | + $this->add_payment_profile_to_cache($payment_information, $payment_profile_id); |
|
269 | 269 | |
270 | 270 | return $payment_profile_id; |
271 | 271 | } |
@@ -274,29 +274,29 @@ discard block |
||
274 | 274 | } |
275 | 275 | |
276 | 276 | // Save the payment token. |
277 | - if ( $save ) { |
|
277 | + if ($save) { |
|
278 | 278 | $this->save_token( |
279 | 279 | array( |
280 | 280 | 'id' => $response->customerPaymentProfileId, |
281 | - 'name' => getpaid_get_card_name( $submission_data['authorizenet']['cc_number'] ) . ' ···· ' . substr( $submission_data['authorizenet']['cc_number'], -4 ), |
|
281 | + 'name' => getpaid_get_card_name($submission_data['authorizenet']['cc_number']) . ' ···· ' . substr($submission_data['authorizenet']['cc_number'], -4), |
|
282 | 282 | 'default' => true, |
283 | - 'type' => $this->is_sandbox( $invoice ) ? 'sandbox' : 'live', |
|
283 | + 'type' => $this->is_sandbox($invoice) ? 'sandbox' : 'live', |
|
284 | 284 | ) |
285 | 285 | ); |
286 | 286 | } |
287 | 287 | |
288 | 288 | // Cache payment profile id. |
289 | - $this->add_payment_profile_to_cache( $payment_information, $response->customerPaymentProfileId ); |
|
289 | + $this->add_payment_profile_to_cache($payment_information, $response->customerPaymentProfileId); |
|
290 | 290 | |
291 | 291 | // Add a note about the validation response. |
292 | 292 | $invoice->add_note( |
293 | - sprintf( __( 'Saved Authorize.NET payment profile: %s', 'invoicing' ), $response->validationDirectResponse ), |
|
293 | + sprintf(__('Saved Authorize.NET payment profile: %s', 'invoicing'), $response->validationDirectResponse), |
|
294 | 294 | false, |
295 | 295 | false, |
296 | 296 | true |
297 | 297 | ); |
298 | 298 | |
299 | - update_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), $customer_profile ); |
|
299 | + update_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), $customer_profile); |
|
300 | 300 | |
301 | 301 | return $response->customerPaymentProfileId; |
302 | 302 | } |
@@ -308,12 +308,12 @@ discard block |
||
308 | 308 | * @param array $payment_details. |
309 | 309 | * @return array|false Profile id. |
310 | 310 | */ |
311 | - public function retrieve_payment_profile_from_cache( $payment_details, $customer_profile, $invoice ) { |
|
311 | + public function retrieve_payment_profile_from_cache($payment_details, $customer_profile, $invoice) { |
|
312 | 312 | |
313 | - $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() ); |
|
314 | - $payment_details = hash_hmac( 'sha256', json_encode( $payment_details ), SECURE_AUTH_KEY ); |
|
313 | + $cached_information = get_option('getpaid_authorize_net_cached_profiles', array()); |
|
314 | + $payment_details = hash_hmac('sha256', json_encode($payment_details), SECURE_AUTH_KEY); |
|
315 | 315 | |
316 | - if ( ! is_array( $cached_information ) || ! array_key_exists( $payment_details, $cached_information ) ) { |
|
316 | + if (!is_array($cached_information) || !array_key_exists($payment_details, $cached_information)) { |
|
317 | 317 | return false; |
318 | 318 | } |
319 | 319 | |
@@ -322,13 +322,13 @@ discard block |
||
322 | 322 | 'getCustomerPaymentProfileRequest' => array( |
323 | 323 | 'merchantAuthentication' => $this->get_auth_params(), |
324 | 324 | 'customerProfileId' => $customer_profile, |
325 | - 'customerPaymentProfileId' => $cached_information[ $payment_details ], |
|
325 | + 'customerPaymentProfileId' => $cached_information[$payment_details], |
|
326 | 326 | ), |
327 | 327 | ); |
328 | 328 | |
329 | - $response = $this->post( $args, $invoice ); |
|
329 | + $response = $this->post($args, $invoice); |
|
330 | 330 | |
331 | - return is_wp_error( $response ) ? false : $cached_information[ $payment_details ]; |
|
331 | + return is_wp_error($response) ? false : $cached_information[$payment_details]; |
|
332 | 332 | |
333 | 333 | } |
334 | 334 | |
@@ -339,14 +339,14 @@ discard block |
||
339 | 339 | * @param array $payment_details. |
340 | 340 | * @param string $payment_profile_id. |
341 | 341 | */ |
342 | - public function add_payment_profile_to_cache( $payment_details, $payment_profile_id ) { |
|
342 | + public function add_payment_profile_to_cache($payment_details, $payment_profile_id) { |
|
343 | 343 | |
344 | - $cached_information = get_option( 'getpaid_authorize_net_cached_profiles', array() ); |
|
345 | - $cached_information = is_array( $cached_information ) ? $cached_information : array(); |
|
346 | - $payment_details = hash_hmac( 'sha256', json_encode( $payment_details ), SECURE_AUTH_KEY ); |
|
344 | + $cached_information = get_option('getpaid_authorize_net_cached_profiles', array()); |
|
345 | + $cached_information = is_array($cached_information) ? $cached_information : array(); |
|
346 | + $payment_details = hash_hmac('sha256', json_encode($payment_details), SECURE_AUTH_KEY); |
|
347 | 347 | |
348 | - $cached_information[ $payment_details ] = $payment_profile_id; |
|
349 | - update_option( 'getpaid_authorize_net_cached_profiles', $cached_information ); |
|
348 | + $cached_information[$payment_details] = $payment_profile_id; |
|
349 | + update_option('getpaid_authorize_net_cached_profiles', $cached_information); |
|
350 | 350 | |
351 | 351 | } |
352 | 352 | |
@@ -359,7 +359,7 @@ discard block |
||
359 | 359 | * @return string|WP_Error Profile id. |
360 | 360 | * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile |
361 | 361 | */ |
362 | - public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) { |
|
362 | + public function get_customer_payment_profile($customer_profile_id, $payment_profile_id) { |
|
363 | 363 | |
364 | 364 | // Generate args. |
365 | 365 | $args = array( |
@@ -370,7 +370,7 @@ discard block |
||
370 | 370 | ), |
371 | 371 | ); |
372 | 372 | |
373 | - return $this->post( $args, false ); |
|
373 | + return $this->post($args, false); |
|
374 | 374 | |
375 | 375 | } |
376 | 376 | |
@@ -383,7 +383,7 @@ discard block |
||
383 | 383 | * @link https://developer.authorize.net/api/reference/index.html#payment-transactions-charge-a-customer-profile |
384 | 384 | * @return WP_Error|object |
385 | 385 | */ |
386 | - public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) { |
|
386 | + public function charge_customer_payment_profile($customer_profile_id, $payment_profile_id, $invoice) { |
|
387 | 387 | |
388 | 388 | // Generate args. |
389 | 389 | $args = array( |
@@ -403,28 +403,28 @@ discard block |
||
403 | 403 | ), |
404 | 404 | ), |
405 | 405 | 'order' => array( |
406 | - 'invoiceNumber' => getpaid_limit_length( $invoice->get_number(), 20 ), |
|
406 | + 'invoiceNumber' => getpaid_limit_length($invoice->get_number(), 20), |
|
407 | 407 | ), |
408 | - 'lineItems' => array( 'lineItem' => $this->get_line_items( $invoice ) ), |
|
408 | + 'lineItems' => array('lineItem' => $this->get_line_items($invoice)), |
|
409 | 409 | 'tax' => array( |
410 | 410 | 'amount' => $invoice->get_total_tax(), |
411 | - 'name' => __( 'TAX', 'invoicing' ), |
|
411 | + 'name' => __('TAX', 'invoicing'), |
|
412 | 412 | ), |
413 | - 'poNumber' => getpaid_limit_length( $invoice->get_number(), 25 ), |
|
413 | + 'poNumber' => getpaid_limit_length($invoice->get_number(), 25), |
|
414 | 414 | 'customer' => array( |
415 | - 'id' => getpaid_limit_length( $invoice->get_user_id(), 25 ), |
|
416 | - 'email' => getpaid_limit_length( $invoice->get_email(), 25 ), |
|
415 | + 'id' => getpaid_limit_length($invoice->get_user_id(), 25), |
|
416 | + 'email' => getpaid_limit_length($invoice->get_email(), 25), |
|
417 | 417 | ), |
418 | 418 | 'customerIP' => $invoice->get_ip(), |
419 | 419 | ), |
420 | 420 | ), |
421 | 421 | ); |
422 | 422 | |
423 | - if ( 0 == $invoice->get_total_tax() ) { |
|
424 | - unset( $args['createTransactionRequest']['transactionRequest']['tax'] ); |
|
423 | + if (0 == $invoice->get_total_tax()) { |
|
424 | + unset($args['createTransactionRequest']['transactionRequest']['tax']); |
|
425 | 425 | } |
426 | 426 | |
427 | - return $this->post( apply_filters( 'getpaid_authorizenet_charge_customer_payment_profile_args', $args, $invoice ), $invoice ); |
|
427 | + return $this->post(apply_filters('getpaid_authorizenet_charge_customer_payment_profile_args', $args, $invoice), $invoice); |
|
428 | 428 | |
429 | 429 | } |
430 | 430 | |
@@ -434,29 +434,29 @@ discard block |
||
434 | 434 | * @param stdClass $result Api response. |
435 | 435 | * @param WPInv_Invoice $invoice Invoice. |
436 | 436 | */ |
437 | - public function process_charge_response( $result, $invoice ) { |
|
437 | + public function process_charge_response($result, $invoice) { |
|
438 | 438 | |
439 | 439 | wpinv_clear_errors(); |
440 | 440 | $response_code = (int) $result->transactionResponse->responseCode; |
441 | 441 | |
442 | 442 | // Succeeded. |
443 | - if ( 1 == $response_code || 4 == $response_code ) { |
|
443 | + if (1 == $response_code || 4 == $response_code) { |
|
444 | 444 | |
445 | 445 | // Maybe set a transaction id. |
446 | - if ( ! empty( $result->transactionResponse->transId ) ) { |
|
447 | - $invoice->set_transaction_id( $result->transactionResponse->transId ); |
|
446 | + if (!empty($result->transactionResponse->transId)) { |
|
447 | + $invoice->set_transaction_id($result->transactionResponse->transId); |
|
448 | 448 | } |
449 | 449 | |
450 | - $invoice->add_note( sprintf( __( 'Authentication code: %1$s (%2$s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true ); |
|
450 | + $invoice->add_note(sprintf(__('Authentication code: %1$s (%2$s).', 'invoicing'), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber), false, false, true); |
|
451 | 451 | |
452 | - if ( 1 == $response_code ) { |
|
452 | + if (1 == $response_code) { |
|
453 | 453 | return $invoice->mark_paid(); |
454 | 454 | } |
455 | 455 | |
456 | - $invoice->set_status( 'wpi-onhold' ); |
|
456 | + $invoice->set_status('wpi-onhold'); |
|
457 | 457 | $invoice->add_note( |
458 | 458 | sprintf( |
459 | - __( 'Held for review: %s', 'invoicing' ), |
|
459 | + __('Held for review: %s', 'invoicing'), |
|
460 | 460 | $result->transactionResponse->messages->message[0]->description |
461 | 461 | ) |
462 | 462 | ); |
@@ -465,11 +465,11 @@ discard block |
||
465 | 465 | |
466 | 466 | } |
467 | 467 | |
468 | - wpinv_set_error( 'card_declined' ); |
|
468 | + wpinv_set_error('card_declined'); |
|
469 | 469 | |
470 | - if ( ! empty( $result->transactionResponse->errors ) ) { |
|
470 | + if (!empty($result->transactionResponse->errors)) { |
|
471 | 471 | $errors = (object) $result->transactionResponse->errors; |
472 | - wpinv_set_error( $errors->error[0]->errorCode, esc_html( $errors->error[0]->errorText ) ); |
|
472 | + wpinv_set_error($errors->error[0]->errorCode, esc_html($errors->error[0]->errorText)); |
|
473 | 473 | } |
474 | 474 | |
475 | 475 | } |
@@ -481,7 +481,7 @@ discard block |
||
481 | 481 | * @param array $card Card details. |
482 | 482 | * @return array |
483 | 483 | */ |
484 | - public function get_payment_information( $card ) { |
|
484 | + public function get_payment_information($card) { |
|
485 | 485 | return array( |
486 | 486 | |
487 | 487 | 'creditCard' => array( |
@@ -500,8 +500,8 @@ discard block |
||
500 | 500 | * @param WPInv_Invoice $invoice Invoice. |
501 | 501 | * @return string |
502 | 502 | */ |
503 | - public function get_customer_profile_meta_name( $invoice ) { |
|
504 | - return $this->is_sandbox( $invoice ) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id'; |
|
503 | + public function get_customer_profile_meta_name($invoice) { |
|
504 | + return $this->is_sandbox($invoice) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id'; |
|
505 | 505 | } |
506 | 506 | |
507 | 507 | /** |
@@ -512,34 +512,34 @@ discard block |
||
512 | 512 | * @param WPInv_Invoice $invoice |
513 | 513 | * @return WP_Error|string The payment profile id |
514 | 514 | */ |
515 | - public function validate_submission_data( $submission_data, $invoice ) { |
|
515 | + public function validate_submission_data($submission_data, $invoice) { |
|
516 | 516 | |
517 | 517 | // Validate authentication details. |
518 | 518 | $auth = $this->get_auth_params(); |
519 | 519 | |
520 | - if ( empty( $auth['name'] ) || empty( $auth['transactionKey'] ) ) { |
|
521 | - return new WP_Error( 'invalid_settings', __( 'Please set-up your login id and transaction key before using this gateway.', 'invoicing' ) ); |
|
520 | + if (empty($auth['name']) || empty($auth['transactionKey'])) { |
|
521 | + return new WP_Error('invalid_settings', __('Please set-up your login id and transaction key before using this gateway.', 'invoicing')); |
|
522 | 522 | } |
523 | 523 | |
524 | 524 | // Validate the payment method. |
525 | - if ( empty( $submission_data['getpaid-authorizenet-payment-method'] ) ) { |
|
526 | - return new WP_Error( 'invalid_payment_method', __( 'Please select a different payment method or add a new card.', 'invoicing' ) ); |
|
525 | + if (empty($submission_data['getpaid-authorizenet-payment-method'])) { |
|
526 | + return new WP_Error('invalid_payment_method', __('Please select a different payment method or add a new card.', 'invoicing')); |
|
527 | 527 | } |
528 | 528 | |
529 | 529 | // Are we adding a new payment method? |
530 | - if ( 'new' != $submission_data['getpaid-authorizenet-payment-method'] ) { |
|
530 | + if ('new' != $submission_data['getpaid-authorizenet-payment-method']) { |
|
531 | 531 | return $submission_data['getpaid-authorizenet-payment-method']; |
532 | 532 | } |
533 | 533 | |
534 | 534 | // Retrieve the customer profile id. |
535 | - $profile_id = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
535 | + $profile_id = get_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), true); |
|
536 | 536 | |
537 | 537 | // Create payment method. |
538 | - if ( empty( $profile_id ) ) { |
|
539 | - return $this->create_customer_profile( $invoice, $submission_data, ! empty( $submission_data['getpaid-authorizenet-new-payment-method'] ) ); |
|
538 | + if (empty($profile_id)) { |
|
539 | + return $this->create_customer_profile($invoice, $submission_data, !empty($submission_data['getpaid-authorizenet-new-payment-method'])); |
|
540 | 540 | } |
541 | 541 | |
542 | - return $this->create_customer_payment_profile( $profile_id, $invoice, $submission_data, ! empty( $submission_data['getpaid-authorizenet-new-payment-method'] ) ); |
|
542 | + return $this->create_customer_payment_profile($profile_id, $invoice, $submission_data, !empty($submission_data['getpaid-authorizenet-new-payment-method'])); |
|
543 | 543 | |
544 | 544 | } |
545 | 545 | |
@@ -550,32 +550,32 @@ discard block |
||
550 | 550 | * @param WPInv_Invoice $invoice Invoice. |
551 | 551 | * @return array |
552 | 552 | */ |
553 | - public function get_line_items( $invoice ) { |
|
553 | + public function get_line_items($invoice) { |
|
554 | 554 | $items = array(); |
555 | 555 | |
556 | - foreach ( $invoice->get_items() as $item ) { |
|
556 | + foreach ($invoice->get_items() as $item) { |
|
557 | 557 | |
558 | 558 | $amount = $invoice->is_renewal() ? $item->get_price() : $item->get_initial_price(); |
559 | 559 | $items[] = array( |
560 | - 'itemId' => getpaid_limit_length( $item->get_id(), 31 ), |
|
561 | - 'name' => getpaid_limit_length( $item->get_raw_name(), 31 ), |
|
562 | - 'description' => getpaid_limit_length( $item->get_description(), 255 ), |
|
563 | - 'quantity' => (string) ( $invoice->get_template() == 'amount' ? 1 : $item->get_quantity() ), |
|
560 | + 'itemId' => getpaid_limit_length($item->get_id(), 31), |
|
561 | + 'name' => getpaid_limit_length($item->get_raw_name(), 31), |
|
562 | + 'description' => getpaid_limit_length($item->get_description(), 255), |
|
563 | + 'quantity' => (string) ($invoice->get_template() == 'amount' ? 1 : $item->get_quantity()), |
|
564 | 564 | 'unitPrice' => (float) $amount, |
565 | 565 | 'taxable' => wpinv_use_taxes() && $invoice->is_taxable() && 'tax-exempt' != $item->get_vat_rule(), |
566 | 566 | ); |
567 | 567 | |
568 | 568 | } |
569 | 569 | |
570 | - foreach ( $invoice->get_fees() as $fee_name => $fee ) { |
|
570 | + foreach ($invoice->get_fees() as $fee_name => $fee) { |
|
571 | 571 | |
572 | - $amount = $invoice->is_renewal() ? $fee['recurring_fee'] : $fee['initial_fee']; |
|
572 | + $amount = $invoice->is_renewal() ? $fee['recurring_fee'] : $fee['initial_fee']; |
|
573 | 573 | |
574 | - if ( $amount > 0 ) { |
|
574 | + if ($amount > 0) { |
|
575 | 575 | $items[] = array( |
576 | - 'itemId' => getpaid_limit_length( $fee_name, 31 ), |
|
577 | - 'name' => getpaid_limit_length( $fee_name, 31 ), |
|
578 | - 'description' => getpaid_limit_length( $fee_name, 255 ), |
|
576 | + 'itemId' => getpaid_limit_length($fee_name, 31), |
|
577 | + 'name' => getpaid_limit_length($fee_name, 31), |
|
578 | + 'description' => getpaid_limit_length($fee_name, 255), |
|
579 | 579 | 'quantity' => '1', |
580 | 580 | 'unitPrice' => (float) $amount, |
581 | 581 | 'taxable' => false, |
@@ -595,36 +595,36 @@ discard block |
||
595 | 595 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
596 | 596 | * @return array |
597 | 597 | */ |
598 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
598 | + public function process_payment($invoice, $submission_data, $submission) { |
|
599 | 599 | |
600 | 600 | // Validate the submitted data. |
601 | - $payment_profile_id = $this->validate_submission_data( $submission_data, $invoice ); |
|
601 | + $payment_profile_id = $this->validate_submission_data($submission_data, $invoice); |
|
602 | 602 | |
603 | 603 | // Do we have an error? |
604 | - if ( is_wp_error( $payment_profile_id ) ) { |
|
605 | - wpinv_set_error( $payment_profile_id->get_error_code(), $payment_profile_id->get_error_message() ); |
|
606 | - wpinv_send_back_to_checkout( $invoice ); |
|
604 | + if (is_wp_error($payment_profile_id)) { |
|
605 | + wpinv_set_error($payment_profile_id->get_error_code(), $payment_profile_id->get_error_message()); |
|
606 | + wpinv_send_back_to_checkout($invoice); |
|
607 | 607 | } |
608 | 608 | |
609 | 609 | // Save the payment method to the order. |
610 | - update_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', $payment_profile_id ); |
|
610 | + update_post_meta($invoice->get_id(), 'getpaid_authorizenet_profile_id', $payment_profile_id); |
|
611 | 611 | |
612 | 612 | // Check if this is a subscription or not. |
613 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
614 | - if ( ! empty( $subscriptions ) ) { |
|
615 | - $this->process_subscription( $invoice, $subscriptions ); |
|
613 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
614 | + if (!empty($subscriptions)) { |
|
615 | + $this->process_subscription($invoice, $subscriptions); |
|
616 | 616 | } |
617 | 617 | |
618 | 618 | // If it is free, send to the success page. |
619 | - if ( ! $invoice->needs_payment() ) { |
|
619 | + if (!$invoice->needs_payment()) { |
|
620 | 620 | $invoice->mark_paid(); |
621 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
621 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
622 | 622 | } |
623 | 623 | |
624 | 624 | // Charge the payment profile. |
625 | - $this->process_initial_payment( $invoice ); |
|
625 | + $this->process_initial_payment($invoice); |
|
626 | 626 | |
627 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
627 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
628 | 628 | |
629 | 629 | exit; |
630 | 630 | |
@@ -635,23 +635,23 @@ discard block |
||
635 | 635 | * |
636 | 636 | * @param WPInv_Invoice $invoice Invoice. |
637 | 637 | */ |
638 | - protected function process_initial_payment( $invoice ) { |
|
638 | + protected function process_initial_payment($invoice) { |
|
639 | 639 | |
640 | - $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
641 | - $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
642 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
|
640 | + $payment_profile_id = get_post_meta($invoice->get_id(), 'getpaid_authorizenet_profile_id', true); |
|
641 | + $customer_profile = get_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), true); |
|
642 | + $result = $this->charge_customer_payment_profile($customer_profile, $payment_profile_id, $invoice); |
|
643 | 643 | |
644 | 644 | // Do we have an error? |
645 | - if ( is_wp_error( $result ) ) { |
|
646 | - wpinv_set_error( $result->get_error_code(), $result->get_error_message() ); |
|
647 | - wpinv_send_back_to_checkout( $invoice ); |
|
645 | + if (is_wp_error($result)) { |
|
646 | + wpinv_set_error($result->get_error_code(), $result->get_error_message()); |
|
647 | + wpinv_send_back_to_checkout($invoice); |
|
648 | 648 | } |
649 | 649 | |
650 | 650 | // Process the response. |
651 | - $this->process_charge_response( $result, $invoice ); |
|
651 | + $this->process_charge_response($result, $invoice); |
|
652 | 652 | |
653 | - if ( wpinv_get_errors() ) { |
|
654 | - wpinv_send_back_to_checkout( $invoice ); |
|
653 | + if (wpinv_get_errors()) { |
|
654 | + wpinv_send_back_to_checkout($invoice); |
|
655 | 655 | } |
656 | 656 | |
657 | 657 | } |
@@ -662,30 +662,30 @@ discard block |
||
662 | 662 | * @param WPInv_Invoice $invoice Invoice. |
663 | 663 | * @param WPInv_Subscription[]|WPInv_Subscription $subscriptions Subscriptions. |
664 | 664 | */ |
665 | - public function process_subscription( $invoice, $subscriptions ) { |
|
665 | + public function process_subscription($invoice, $subscriptions) { |
|
666 | 666 | |
667 | 667 | // Check if there is an initial amount to charge. |
668 | - if ( (float) $invoice->get_total() > 0 ) { |
|
669 | - $this->process_initial_payment( $invoice ); |
|
668 | + if ((float) $invoice->get_total() > 0) { |
|
669 | + $this->process_initial_payment($invoice); |
|
670 | 670 | } |
671 | 671 | |
672 | 672 | // Activate the subscriptions. |
673 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
673 | + $subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions); |
|
674 | 674 | |
675 | - foreach ( $subscriptions as $subscription ) { |
|
676 | - if ( $subscription->exists() ) { |
|
677 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
678 | - $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
675 | + foreach ($subscriptions as $subscription) { |
|
676 | + if ($subscription->exists()) { |
|
677 | + $duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created()); |
|
678 | + $expiry = date('Y-m-d H:i:s', (current_time('timestamp') + $duration)); |
|
679 | 679 | |
680 | - $subscription->set_next_renewal_date( $expiry ); |
|
681 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
682 | - $subscription->set_profile_id( $invoice->generate_key( 'authnet_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ) ); |
|
680 | + $subscription->set_next_renewal_date($expiry); |
|
681 | + $subscription->set_date_created(current_time('mysql')); |
|
682 | + $subscription->set_profile_id($invoice->generate_key('authnet_sub_' . $invoice->get_id() . '_' . $subscription->get_id())); |
|
683 | 683 | $subscription->activate(); |
684 | 684 | } |
685 | 685 | } |
686 | 686 | |
687 | 687 | // Redirect to the success page. |
688 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
688 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
689 | 689 | |
690 | 690 | } |
691 | 691 | |
@@ -695,11 +695,11 @@ discard block |
||
695 | 695 | * |
696 | 696 | * @param WPInv_Subscription $subscription |
697 | 697 | */ |
698 | - public function maybe_renew_subscription( $subscription ) { |
|
698 | + public function maybe_renew_subscription($subscription) { |
|
699 | 699 | |
700 | 700 | // Ensure its our subscription && it's active. |
701 | - if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
|
702 | - $this->renew_subscription( $subscription ); |
|
701 | + if ($this->id === $subscription->get_gateway() && $subscription->has_status('active trialling')) { |
|
702 | + $this->renew_subscription($subscription); |
|
703 | 703 | } |
704 | 704 | |
705 | 705 | } |
@@ -709,28 +709,28 @@ discard block |
||
709 | 709 | * |
710 | 710 | * @param WPInv_Subscription $subscription |
711 | 711 | */ |
712 | - public function renew_subscription( $subscription ) { |
|
712 | + public function renew_subscription($subscription) { |
|
713 | 713 | |
714 | 714 | // Generate the renewal invoice. |
715 | 715 | $new_invoice = $subscription->create_payment(); |
716 | 716 | $old_invoice = $subscription->get_parent_payment(); |
717 | 717 | |
718 | - if ( empty( $new_invoice ) ) { |
|
719 | - $old_invoice->add_note( __( 'Error generating a renewal invoice.', 'invoicing' ), false, false, false ); |
|
718 | + if (empty($new_invoice)) { |
|
719 | + $old_invoice->add_note(__('Error generating a renewal invoice.', 'invoicing'), false, false, false); |
|
720 | 720 | $subscription->failing(); |
721 | 721 | return; |
722 | 722 | } |
723 | 723 | |
724 | 724 | // Charge the payment method. |
725 | - $payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
726 | - $customer_profile = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true ); |
|
727 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice ); |
|
725 | + $payment_profile_id = get_post_meta($old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true); |
|
726 | + $customer_profile = get_user_meta($old_invoice->get_user_id(), $this->get_customer_profile_meta_name($old_invoice), true); |
|
727 | + $result = $this->charge_customer_payment_profile($customer_profile, $payment_profile_id, $new_invoice); |
|
728 | 728 | |
729 | 729 | // Do we have an error? |
730 | - if ( is_wp_error( $result ) ) { |
|
730 | + if (is_wp_error($result)) { |
|
731 | 731 | |
732 | 732 | $old_invoice->add_note( |
733 | - sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ), |
|
733 | + sprintf(__('Error renewing subscription : ( %s ).', 'invoicing'), $result->get_error_message()), |
|
734 | 734 | true, |
735 | 735 | false, |
736 | 736 | true |
@@ -741,12 +741,12 @@ discard block |
||
741 | 741 | } |
742 | 742 | |
743 | 743 | // Process the response. |
744 | - $this->process_charge_response( $result, $new_invoice ); |
|
744 | + $this->process_charge_response($result, $new_invoice); |
|
745 | 745 | |
746 | - if ( wpinv_get_errors() ) { |
|
746 | + if (wpinv_get_errors()) { |
|
747 | 747 | |
748 | 748 | $old_invoice->add_note( |
749 | - sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ), |
|
749 | + sprintf(__('Error renewing subscription : ( %s ).', 'invoicing'), getpaid_get_errors_html()), |
|
750 | 750 | true, |
751 | 751 | false, |
752 | 752 | true |
@@ -756,7 +756,7 @@ discard block |
||
756 | 756 | |
757 | 757 | } |
758 | 758 | |
759 | - $subscription->add_payment( array(), $new_invoice ); |
|
759 | + $subscription->add_payment(array(), $new_invoice); |
|
760 | 760 | $subscription->renew(); |
761 | 761 | } |
762 | 762 | |
@@ -767,33 +767,33 @@ discard block |
||
767 | 767 | * @param GetPaid_Form_Item[] $items |
768 | 768 | * @return WPInv_Invoice |
769 | 769 | */ |
770 | - public function process_addons( $invoice, $items ) { |
|
770 | + public function process_addons($invoice, $items) { |
|
771 | 771 | |
772 | 772 | global $getpaid_authorize_addons; |
773 | 773 | |
774 | 774 | $getpaid_authorize_addons = array(); |
775 | - foreach ( $items as $item ) { |
|
775 | + foreach ($items as $item) { |
|
776 | 776 | |
777 | - if ( is_null( $invoice->get_item( $item->get_id() ) ) && ! is_wp_error( $invoice->add_item( $item ) ) ) { |
|
777 | + if (is_null($invoice->get_item($item->get_id())) && !is_wp_error($invoice->add_item($item))) { |
|
778 | 778 | $getpaid_authorize_addons[] = $item; |
779 | 779 | } |
780 | 780 | } |
781 | 781 | |
782 | - if ( empty( $getpaid_authorize_addons ) ) { |
|
782 | + if (empty($getpaid_authorize_addons)) { |
|
783 | 783 | return; |
784 | 784 | } |
785 | 785 | |
786 | 786 | $invoice->recalculate_total(); |
787 | 787 | |
788 | - $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true ); |
|
789 | - $customer_profile = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true ); |
|
788 | + $payment_profile_id = get_post_meta($invoice->get_id(), 'getpaid_authorizenet_profile_id', true); |
|
789 | + $customer_profile = get_user_meta($invoice->get_user_id(), $this->get_customer_profile_meta_name($invoice), true); |
|
790 | 790 | |
791 | - add_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ), 10, 2 ); |
|
792 | - $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice ); |
|
793 | - remove_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ) ); |
|
791 | + add_filter('getpaid_authorizenet_charge_customer_payment_profile_args', array($this, 'filter_addons_request'), 10, 2); |
|
792 | + $result = $this->charge_customer_payment_profile($customer_profile, $payment_profile_id, $invoice); |
|
793 | + remove_filter('getpaid_authorizenet_charge_customer_payment_profile_args', array($this, 'filter_addons_request')); |
|
794 | 794 | |
795 | - if ( is_wp_error( $result ) ) { |
|
796 | - wpinv_set_error( $result->get_error_code(), $result->get_error_message() ); |
|
795 | + if (is_wp_error($result)) { |
|
796 | + wpinv_set_error($result->get_error_code(), $result->get_error_message()); |
|
797 | 797 | return; |
798 | 798 | } |
799 | 799 | |
@@ -806,19 +806,19 @@ discard block |
||
806 | 806 | * @param array $args |
807 | 807 | * @return array |
808 | 808 | */ |
809 | - public function filter_addons_request( $args ) { |
|
809 | + public function filter_addons_request($args) { |
|
810 | 810 | |
811 | 811 | global $getpaid_authorize_addons; |
812 | 812 | $total = 0; |
813 | 813 | |
814 | - foreach ( $getpaid_authorize_addons as $addon ) { |
|
814 | + foreach ($getpaid_authorize_addons as $addon) { |
|
815 | 815 | $total += $addon->get_sub_total(); |
816 | 816 | } |
817 | 817 | |
818 | 818 | $args['createTransactionRequest']['transactionRequest']['amount'] = $total; |
819 | 819 | |
820 | - if ( isset( $args['createTransactionRequest']['transactionRequest']['tax'] ) ) { |
|
821 | - unset( $args['createTransactionRequest']['transactionRequest']['tax'] ); |
|
820 | + if (isset($args['createTransactionRequest']['transactionRequest']['tax'])) { |
|
821 | + unset($args['createTransactionRequest']['transactionRequest']['tax']); |
|
822 | 822 | } |
823 | 823 | |
824 | 824 | return $args; |
@@ -831,7 +831,7 @@ discard block |
||
831 | 831 | public function sandbox_notice() { |
832 | 832 | |
833 | 833 | return sprintf( |
834 | - __( 'SANDBOX ENABLED. You can use sandbox testing details only. See the %1$sAuthorize.NET Sandbox Testing Guide%2$s for more details.', 'invoicing' ), |
|
834 | + __('SANDBOX ENABLED. You can use sandbox testing details only. See the %1$sAuthorize.NET Sandbox Testing Guide%2$s for more details.', 'invoicing'), |
|
835 | 835 | '<a href="https://developer.authorize.net/hello_world/testing_guide.html">', |
836 | 836 | '</a>' |
837 | 837 | ); |
@@ -843,42 +843,42 @@ discard block |
||
843 | 843 | * |
844 | 844 | * @param array $admin_settings |
845 | 845 | */ |
846 | - public function admin_settings( $admin_settings ) { |
|
846 | + public function admin_settings($admin_settings) { |
|
847 | 847 | |
848 | 848 | $currencies = sprintf( |
849 | - __( 'Supported Currencies: %s', 'invoicing' ), |
|
850 | - implode( ', ', $this->currencies ) |
|
849 | + __('Supported Currencies: %s', 'invoicing'), |
|
850 | + implode(', ', $this->currencies) |
|
851 | 851 | ); |
852 | 852 | |
853 | 853 | $admin_settings['authorizenet_active']['desc'] .= " ($currencies)"; |
854 | - $admin_settings['authorizenet_desc']['std'] = __( 'Pay securely using your credit or debit card.', 'invoicing' ); |
|
854 | + $admin_settings['authorizenet_desc']['std'] = __('Pay securely using your credit or debit card.', 'invoicing'); |
|
855 | 855 | |
856 | 856 | $admin_settings['authorizenet_login_id'] = array( |
857 | 857 | 'type' => 'text', |
858 | 858 | 'id' => 'authorizenet_login_id', |
859 | - 'name' => __( 'API Login ID', 'invoicing' ), |
|
860 | - 'desc' => '<a href="https://support.authorize.net/s/article/How-do-I-obtain-my-API-Login-ID-and-Transaction-Key"><em>' . __( 'How do I obtain my API Login ID and Transaction Key?', 'invoicing' ) . '</em></a>', |
|
859 | + 'name' => __('API Login ID', 'invoicing'), |
|
860 | + 'desc' => '<a href="https://support.authorize.net/s/article/How-do-I-obtain-my-API-Login-ID-and-Transaction-Key"><em>' . __('How do I obtain my API Login ID and Transaction Key?', 'invoicing') . '</em></a>', |
|
861 | 861 | ); |
862 | 862 | |
863 | 863 | $admin_settings['authorizenet_transaction_key'] = array( |
864 | 864 | 'type' => 'text', |
865 | 865 | 'id' => 'authorizenet_transaction_key', |
866 | - 'name' => __( 'Transaction Key', 'invoicing' ), |
|
866 | + 'name' => __('Transaction Key', 'invoicing'), |
|
867 | 867 | ); |
868 | 868 | |
869 | 869 | $admin_settings['authorizenet_signature_key'] = array( |
870 | 870 | 'type' => 'text', |
871 | 871 | 'id' => 'authorizenet_signature_key', |
872 | - 'name' => __( 'Signature Key', 'invoicing' ), |
|
873 | - 'desc' => '<a href="https://support.authorize.net/s/article/What-is-a-Signature-Key"><em>' . __( 'Learn more.', 'invoicing' ) . '</em></a>', |
|
872 | + 'name' => __('Signature Key', 'invoicing'), |
|
873 | + 'desc' => '<a href="https://support.authorize.net/s/article/What-is-a-Signature-Key"><em>' . __('Learn more.', 'invoicing') . '</em></a>', |
|
874 | 874 | ); |
875 | 875 | |
876 | 876 | $admin_settings['authorizenet_ipn_url'] = array( |
877 | 877 | 'type' => 'ipn_url', |
878 | 878 | 'id' => 'authorizenet_ipn_url', |
879 | - 'name' => __( 'Webhook URL', 'invoicing' ), |
|
879 | + 'name' => __('Webhook URL', 'invoicing'), |
|
880 | 880 | 'std' => $this->notify_url, |
881 | - 'desc' => __( 'Create a new webhook using this URL as the endpoint URL and set it to receive all payment events.', 'invoicing' ) . ' <a href="https://support.authorize.net/s/article/How-do-I-add-edit-Webhook-notification-end-points"><em>' . __( 'Learn more.', 'invoicing' ) . '</em></a>', |
|
881 | + 'desc' => __('Create a new webhook using this URL as the endpoint URL and set it to receive all payment events.', 'invoicing') . ' <a href="https://support.authorize.net/s/article/How-do-I-add-edit-Webhook-notification-end-points"><em>' . __('Learn more.', 'invoicing') . '</em></a>', |
|
882 | 882 | 'custom' => 'authorizenet', |
883 | 883 | 'readonly' => true, |
884 | 884 | ); |
@@ -12,144 +12,144 @@ |
||
12 | 12 | */ |
13 | 13 | class GetPaid_Daily_Maintenance { |
14 | 14 | |
15 | - /** |
|
16 | - * Class constructor. |
|
17 | - */ |
|
18 | - public function __construct() { |
|
19 | - |
|
20 | - // Clear deprecated events. |
|
21 | - add_action( 'wp', array( $this, 'maybe_clear_deprecated_events' ) ); |
|
22 | - |
|
23 | - // (Maybe) schedule a cron that runs daily. |
|
24 | - add_action( 'wp', array( $this, 'maybe_create_scheduled_event' ) ); |
|
25 | - |
|
26 | - // Fired everyday at 7 a.m (this might vary for sites with few visitors) |
|
27 | - add_action( 'getpaid_daily_maintenance', array( $this, 'log_cron_run' ) ); |
|
28 | - add_action( 'getpaid_daily_maintenance', array( $this, 'backwards_compat' ) ); |
|
29 | - add_action( 'getpaid_daily_maintenance', array( $this, 'maybe_expire_subscriptions' ) ); |
|
30 | - add_action( 'getpaid_daily_maintenance', array( $this, 'check_renewing_subscriptions' ) ); |
|
31 | - add_action( 'getpaid_daily_maintenance', array( $this, 'maybe_update_geoip_databases' ) ); |
|
32 | - |
|
33 | - } |
|
34 | - |
|
35 | - /** |
|
36 | - * Schedules a cron to run every day at 7 a.m |
|
37 | - * |
|
38 | - */ |
|
39 | - public function maybe_create_scheduled_event() { |
|
40 | - |
|
41 | - if ( ! wp_next_scheduled( 'getpaid_daily_maintenance' ) ) { |
|
42 | - $timestamp = strtotime( 'tomorrow 07:00:00', current_time( 'timestamp' ) ); |
|
43 | - wp_schedule_event( $timestamp, 'daily', 'getpaid_daily_maintenance' ); |
|
44 | - } |
|
45 | - |
|
46 | - } |
|
47 | - |
|
48 | - /** |
|
49 | - * Clears deprecated events. |
|
50 | - * |
|
51 | - */ |
|
52 | - public function maybe_clear_deprecated_events() { |
|
53 | - |
|
54 | - if ( ! get_option( 'wpinv_cleared_old_events' ) ) { |
|
55 | - wp_clear_scheduled_hook( 'wpinv_register_schedule_event_twicedaily' ); |
|
56 | - wp_clear_scheduled_hook( 'wpinv_register_schedule_event_daily' ); |
|
57 | - update_option( 'wpinv_cleared_old_events', 1 ); |
|
58 | - } |
|
59 | - |
|
60 | - } |
|
61 | - |
|
62 | - /** |
|
63 | - * Fires the old hook for backwards compatibility. |
|
64 | - * |
|
65 | - */ |
|
66 | - public function backwards_compat() { |
|
67 | - do_action( 'wpinv_register_schedule_event_daily' ); |
|
68 | - } |
|
69 | - |
|
70 | - /** |
|
71 | - * Checks for subscriptions that are scheduled to renew. |
|
72 | - * |
|
73 | - */ |
|
74 | - public function check_renewing_subscriptions() { |
|
75 | - |
|
76 | - // Fetch subscriptions that expire today. |
|
77 | - $args = array( |
|
78 | - 'number' => -1, |
|
79 | - 'count_total' => false, |
|
80 | - 'status' => 'trialling active', |
|
81 | - 'date_expires_query' => array( |
|
82 | - array( |
|
83 | - 'year' => gmdate( 'Y' ), |
|
84 | - 'month' => gmdate( 'n' ), |
|
85 | - 'day' => gmdate( 'j' ), |
|
86 | - 'compare' => '=', |
|
87 | - ), |
|
88 | - ), |
|
89 | - ); |
|
90 | - |
|
91 | - $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
92 | - |
|
93 | - foreach ( $subscriptions->get_results() as $subscription ) { |
|
94 | - |
|
95 | - /** @var WPInv_Subscription $subscription */ |
|
96 | - if ( $subscription->is_last_renewal() ) { |
|
97 | - $subscription->complete(); |
|
98 | - } else { |
|
99 | - do_action( 'getpaid_should_renew_subscription', $subscription ); |
|
100 | - } |
|
101 | - } |
|
102 | - |
|
103 | - } |
|
104 | - |
|
105 | - /** |
|
106 | - * Expires expired subscriptions. |
|
107 | - * |
|
108 | - */ |
|
109 | - public function maybe_expire_subscriptions() { |
|
110 | - |
|
111 | - // Fetch expired subscriptions (skips those that expire today). |
|
112 | - $args = array( |
|
113 | - 'number' => -1, |
|
114 | - 'count_total' => false, |
|
115 | - 'status' => 'trialling active failing cancelled', |
|
116 | - 'date_expires_query' => array( |
|
117 | - 'before' => 'yesterday', |
|
118 | - 'inclusive' => false, |
|
119 | - ), |
|
120 | - ); |
|
121 | - |
|
122 | - $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
123 | - |
|
124 | - foreach ( $subscriptions->get_results() as $subscription ) { |
|
125 | - if ( apply_filters( 'getpaid_daily_maintenance_should_expire_subscription', false, $subscription ) ) { |
|
126 | - $subscription->set_status( 'expired' ); |
|
127 | - $subscription->save(); |
|
128 | - } |
|
129 | - } |
|
130 | - |
|
131 | - } |
|
132 | - |
|
133 | - /** |
|
134 | - * Logs cron runs. |
|
135 | - * |
|
136 | - */ |
|
137 | - public function log_cron_run() { |
|
138 | - wpinv_error_log( 'GetPaid Daily Cron', false ); |
|
139 | - } |
|
140 | - |
|
141 | - /** |
|
142 | - * Updates GeoIP databases. |
|
143 | - * |
|
144 | - */ |
|
145 | - public function maybe_update_geoip_databases() { |
|
146 | - $updated = get_transient( 'getpaid_updated_geoip_databases' ); |
|
147 | - |
|
148 | - if ( false === $updated ) { |
|
149 | - set_transient( 'getpaid_updated_geoip_databases', 1, 15 * DAY_IN_SECONDS ); |
|
150 | - do_action( 'getpaid_update_geoip_databases' ); |
|
151 | - } |
|
152 | - |
|
153 | - } |
|
15 | + /** |
|
16 | + * Class constructor. |
|
17 | + */ |
|
18 | + public function __construct() { |
|
19 | + |
|
20 | + // Clear deprecated events. |
|
21 | + add_action( 'wp', array( $this, 'maybe_clear_deprecated_events' ) ); |
|
22 | + |
|
23 | + // (Maybe) schedule a cron that runs daily. |
|
24 | + add_action( 'wp', array( $this, 'maybe_create_scheduled_event' ) ); |
|
25 | + |
|
26 | + // Fired everyday at 7 a.m (this might vary for sites with few visitors) |
|
27 | + add_action( 'getpaid_daily_maintenance', array( $this, 'log_cron_run' ) ); |
|
28 | + add_action( 'getpaid_daily_maintenance', array( $this, 'backwards_compat' ) ); |
|
29 | + add_action( 'getpaid_daily_maintenance', array( $this, 'maybe_expire_subscriptions' ) ); |
|
30 | + add_action( 'getpaid_daily_maintenance', array( $this, 'check_renewing_subscriptions' ) ); |
|
31 | + add_action( 'getpaid_daily_maintenance', array( $this, 'maybe_update_geoip_databases' ) ); |
|
32 | + |
|
33 | + } |
|
34 | + |
|
35 | + /** |
|
36 | + * Schedules a cron to run every day at 7 a.m |
|
37 | + * |
|
38 | + */ |
|
39 | + public function maybe_create_scheduled_event() { |
|
40 | + |
|
41 | + if ( ! wp_next_scheduled( 'getpaid_daily_maintenance' ) ) { |
|
42 | + $timestamp = strtotime( 'tomorrow 07:00:00', current_time( 'timestamp' ) ); |
|
43 | + wp_schedule_event( $timestamp, 'daily', 'getpaid_daily_maintenance' ); |
|
44 | + } |
|
45 | + |
|
46 | + } |
|
47 | + |
|
48 | + /** |
|
49 | + * Clears deprecated events. |
|
50 | + * |
|
51 | + */ |
|
52 | + public function maybe_clear_deprecated_events() { |
|
53 | + |
|
54 | + if ( ! get_option( 'wpinv_cleared_old_events' ) ) { |
|
55 | + wp_clear_scheduled_hook( 'wpinv_register_schedule_event_twicedaily' ); |
|
56 | + wp_clear_scheduled_hook( 'wpinv_register_schedule_event_daily' ); |
|
57 | + update_option( 'wpinv_cleared_old_events', 1 ); |
|
58 | + } |
|
59 | + |
|
60 | + } |
|
61 | + |
|
62 | + /** |
|
63 | + * Fires the old hook for backwards compatibility. |
|
64 | + * |
|
65 | + */ |
|
66 | + public function backwards_compat() { |
|
67 | + do_action( 'wpinv_register_schedule_event_daily' ); |
|
68 | + } |
|
69 | + |
|
70 | + /** |
|
71 | + * Checks for subscriptions that are scheduled to renew. |
|
72 | + * |
|
73 | + */ |
|
74 | + public function check_renewing_subscriptions() { |
|
75 | + |
|
76 | + // Fetch subscriptions that expire today. |
|
77 | + $args = array( |
|
78 | + 'number' => -1, |
|
79 | + 'count_total' => false, |
|
80 | + 'status' => 'trialling active', |
|
81 | + 'date_expires_query' => array( |
|
82 | + array( |
|
83 | + 'year' => gmdate( 'Y' ), |
|
84 | + 'month' => gmdate( 'n' ), |
|
85 | + 'day' => gmdate( 'j' ), |
|
86 | + 'compare' => '=', |
|
87 | + ), |
|
88 | + ), |
|
89 | + ); |
|
90 | + |
|
91 | + $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
92 | + |
|
93 | + foreach ( $subscriptions->get_results() as $subscription ) { |
|
94 | + |
|
95 | + /** @var WPInv_Subscription $subscription */ |
|
96 | + if ( $subscription->is_last_renewal() ) { |
|
97 | + $subscription->complete(); |
|
98 | + } else { |
|
99 | + do_action( 'getpaid_should_renew_subscription', $subscription ); |
|
100 | + } |
|
101 | + } |
|
102 | + |
|
103 | + } |
|
104 | + |
|
105 | + /** |
|
106 | + * Expires expired subscriptions. |
|
107 | + * |
|
108 | + */ |
|
109 | + public function maybe_expire_subscriptions() { |
|
110 | + |
|
111 | + // Fetch expired subscriptions (skips those that expire today). |
|
112 | + $args = array( |
|
113 | + 'number' => -1, |
|
114 | + 'count_total' => false, |
|
115 | + 'status' => 'trialling active failing cancelled', |
|
116 | + 'date_expires_query' => array( |
|
117 | + 'before' => 'yesterday', |
|
118 | + 'inclusive' => false, |
|
119 | + ), |
|
120 | + ); |
|
121 | + |
|
122 | + $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
123 | + |
|
124 | + foreach ( $subscriptions->get_results() as $subscription ) { |
|
125 | + if ( apply_filters( 'getpaid_daily_maintenance_should_expire_subscription', false, $subscription ) ) { |
|
126 | + $subscription->set_status( 'expired' ); |
|
127 | + $subscription->save(); |
|
128 | + } |
|
129 | + } |
|
130 | + |
|
131 | + } |
|
132 | + |
|
133 | + /** |
|
134 | + * Logs cron runs. |
|
135 | + * |
|
136 | + */ |
|
137 | + public function log_cron_run() { |
|
138 | + wpinv_error_log( 'GetPaid Daily Cron', false ); |
|
139 | + } |
|
140 | + |
|
141 | + /** |
|
142 | + * Updates GeoIP databases. |
|
143 | + * |
|
144 | + */ |
|
145 | + public function maybe_update_geoip_databases() { |
|
146 | + $updated = get_transient( 'getpaid_updated_geoip_databases' ); |
|
147 | + |
|
148 | + if ( false === $updated ) { |
|
149 | + set_transient( 'getpaid_updated_geoip_databases', 1, 15 * DAY_IN_SECONDS ); |
|
150 | + do_action( 'getpaid_update_geoip_databases' ); |
|
151 | + } |
|
152 | + |
|
153 | + } |
|
154 | 154 | |
155 | 155 | } |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * Daily maintenance class. |
@@ -18,17 +18,17 @@ discard block |
||
18 | 18 | public function __construct() { |
19 | 19 | |
20 | 20 | // Clear deprecated events. |
21 | - add_action( 'wp', array( $this, 'maybe_clear_deprecated_events' ) ); |
|
21 | + add_action('wp', array($this, 'maybe_clear_deprecated_events')); |
|
22 | 22 | |
23 | 23 | // (Maybe) schedule a cron that runs daily. |
24 | - add_action( 'wp', array( $this, 'maybe_create_scheduled_event' ) ); |
|
24 | + add_action('wp', array($this, 'maybe_create_scheduled_event')); |
|
25 | 25 | |
26 | 26 | // Fired everyday at 7 a.m (this might vary for sites with few visitors) |
27 | - add_action( 'getpaid_daily_maintenance', array( $this, 'log_cron_run' ) ); |
|
28 | - add_action( 'getpaid_daily_maintenance', array( $this, 'backwards_compat' ) ); |
|
29 | - add_action( 'getpaid_daily_maintenance', array( $this, 'maybe_expire_subscriptions' ) ); |
|
30 | - add_action( 'getpaid_daily_maintenance', array( $this, 'check_renewing_subscriptions' ) ); |
|
31 | - add_action( 'getpaid_daily_maintenance', array( $this, 'maybe_update_geoip_databases' ) ); |
|
27 | + add_action('getpaid_daily_maintenance', array($this, 'log_cron_run')); |
|
28 | + add_action('getpaid_daily_maintenance', array($this, 'backwards_compat')); |
|
29 | + add_action('getpaid_daily_maintenance', array($this, 'maybe_expire_subscriptions')); |
|
30 | + add_action('getpaid_daily_maintenance', array($this, 'check_renewing_subscriptions')); |
|
31 | + add_action('getpaid_daily_maintenance', array($this, 'maybe_update_geoip_databases')); |
|
32 | 32 | |
33 | 33 | } |
34 | 34 | |
@@ -38,9 +38,9 @@ discard block |
||
38 | 38 | */ |
39 | 39 | public function maybe_create_scheduled_event() { |
40 | 40 | |
41 | - if ( ! wp_next_scheduled( 'getpaid_daily_maintenance' ) ) { |
|
42 | - $timestamp = strtotime( 'tomorrow 07:00:00', current_time( 'timestamp' ) ); |
|
43 | - wp_schedule_event( $timestamp, 'daily', 'getpaid_daily_maintenance' ); |
|
41 | + if (!wp_next_scheduled('getpaid_daily_maintenance')) { |
|
42 | + $timestamp = strtotime('tomorrow 07:00:00', current_time('timestamp')); |
|
43 | + wp_schedule_event($timestamp, 'daily', 'getpaid_daily_maintenance'); |
|
44 | 44 | } |
45 | 45 | |
46 | 46 | } |
@@ -51,10 +51,10 @@ discard block |
||
51 | 51 | */ |
52 | 52 | public function maybe_clear_deprecated_events() { |
53 | 53 | |
54 | - if ( ! get_option( 'wpinv_cleared_old_events' ) ) { |
|
55 | - wp_clear_scheduled_hook( 'wpinv_register_schedule_event_twicedaily' ); |
|
56 | - wp_clear_scheduled_hook( 'wpinv_register_schedule_event_daily' ); |
|
57 | - update_option( 'wpinv_cleared_old_events', 1 ); |
|
54 | + if (!get_option('wpinv_cleared_old_events')) { |
|
55 | + wp_clear_scheduled_hook('wpinv_register_schedule_event_twicedaily'); |
|
56 | + wp_clear_scheduled_hook('wpinv_register_schedule_event_daily'); |
|
57 | + update_option('wpinv_cleared_old_events', 1); |
|
58 | 58 | } |
59 | 59 | |
60 | 60 | } |
@@ -64,7 +64,7 @@ discard block |
||
64 | 64 | * |
65 | 65 | */ |
66 | 66 | public function backwards_compat() { |
67 | - do_action( 'wpinv_register_schedule_event_daily' ); |
|
67 | + do_action('wpinv_register_schedule_event_daily'); |
|
68 | 68 | } |
69 | 69 | |
70 | 70 | /** |
@@ -74,29 +74,29 @@ discard block |
||
74 | 74 | public function check_renewing_subscriptions() { |
75 | 75 | |
76 | 76 | // Fetch subscriptions that expire today. |
77 | - $args = array( |
|
77 | + $args = array( |
|
78 | 78 | 'number' => -1, |
79 | 79 | 'count_total' => false, |
80 | 80 | 'status' => 'trialling active', |
81 | 81 | 'date_expires_query' => array( |
82 | 82 | array( |
83 | - 'year' => gmdate( 'Y' ), |
|
84 | - 'month' => gmdate( 'n' ), |
|
85 | - 'day' => gmdate( 'j' ), |
|
83 | + 'year' => gmdate('Y'), |
|
84 | + 'month' => gmdate('n'), |
|
85 | + 'day' => gmdate('j'), |
|
86 | 86 | 'compare' => '=', |
87 | 87 | ), |
88 | 88 | ), |
89 | 89 | ); |
90 | 90 | |
91 | - $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
91 | + $subscriptions = new GetPaid_Subscriptions_Query($args); |
|
92 | 92 | |
93 | - foreach ( $subscriptions->get_results() as $subscription ) { |
|
93 | + foreach ($subscriptions->get_results() as $subscription) { |
|
94 | 94 | |
95 | 95 | /** @var WPInv_Subscription $subscription */ |
96 | - if ( $subscription->is_last_renewal() ) { |
|
96 | + if ($subscription->is_last_renewal()) { |
|
97 | 97 | $subscription->complete(); |
98 | 98 | } else { |
99 | - do_action( 'getpaid_should_renew_subscription', $subscription ); |
|
99 | + do_action('getpaid_should_renew_subscription', $subscription); |
|
100 | 100 | } |
101 | 101 | } |
102 | 102 | |
@@ -109,7 +109,7 @@ discard block |
||
109 | 109 | public function maybe_expire_subscriptions() { |
110 | 110 | |
111 | 111 | // Fetch expired subscriptions (skips those that expire today). |
112 | - $args = array( |
|
112 | + $args = array( |
|
113 | 113 | 'number' => -1, |
114 | 114 | 'count_total' => false, |
115 | 115 | 'status' => 'trialling active failing cancelled', |
@@ -119,11 +119,11 @@ discard block |
||
119 | 119 | ), |
120 | 120 | ); |
121 | 121 | |
122 | - $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
122 | + $subscriptions = new GetPaid_Subscriptions_Query($args); |
|
123 | 123 | |
124 | - foreach ( $subscriptions->get_results() as $subscription ) { |
|
125 | - if ( apply_filters( 'getpaid_daily_maintenance_should_expire_subscription', false, $subscription ) ) { |
|
126 | - $subscription->set_status( 'expired' ); |
|
124 | + foreach ($subscriptions->get_results() as $subscription) { |
|
125 | + if (apply_filters('getpaid_daily_maintenance_should_expire_subscription', false, $subscription)) { |
|
126 | + $subscription->set_status('expired'); |
|
127 | 127 | $subscription->save(); |
128 | 128 | } |
129 | 129 | } |
@@ -135,7 +135,7 @@ discard block |
||
135 | 135 | * |
136 | 136 | */ |
137 | 137 | public function log_cron_run() { |
138 | - wpinv_error_log( 'GetPaid Daily Cron', false ); |
|
138 | + wpinv_error_log('GetPaid Daily Cron', false); |
|
139 | 139 | } |
140 | 140 | |
141 | 141 | /** |
@@ -143,11 +143,11 @@ discard block |
||
143 | 143 | * |
144 | 144 | */ |
145 | 145 | public function maybe_update_geoip_databases() { |
146 | - $updated = get_transient( 'getpaid_updated_geoip_databases' ); |
|
146 | + $updated = get_transient('getpaid_updated_geoip_databases'); |
|
147 | 147 | |
148 | - if ( false === $updated ) { |
|
149 | - set_transient( 'getpaid_updated_geoip_databases', 1, 15 * DAY_IN_SECONDS ); |
|
150 | - do_action( 'getpaid_update_geoip_databases' ); |
|
148 | + if (false === $updated) { |
|
149 | + set_transient('getpaid_updated_geoip_databases', 1, 15 * DAY_IN_SECONDS); |
|
150 | + do_action('getpaid_update_geoip_databases'); |
|
151 | 151 | } |
152 | 152 | |
153 | 153 | } |
@@ -19,16 +19,16 @@ discard block |
||
19 | 19 | |
20 | 20 | // Define constants. |
21 | 21 | if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) { |
22 | - define( 'WPINV_PLUGIN_FILE', __FILE__ ); |
|
22 | + define( 'WPINV_PLUGIN_FILE', __FILE__ ); |
|
23 | 23 | } |
24 | 24 | |
25 | 25 | if ( ! defined( 'WPINV_VERSION' ) ) { |
26 | - define( 'WPINV_VERSION', '2.7.6' ); |
|
26 | + define( 'WPINV_VERSION', '2.7.6' ); |
|
27 | 27 | } |
28 | 28 | |
29 | 29 | // Include the main Invoicing class. |
30 | 30 | if ( ! class_exists( 'WPInv_Plugin', false ) ) { |
31 | - require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php'; |
|
31 | + require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php'; |
|
32 | 32 | } |
33 | 33 | |
34 | 34 | /** |
@@ -43,7 +43,7 @@ discard block |
||
43 | 43 | $GLOBALS['invoicing'] = new WPInv_Plugin(); |
44 | 44 | } |
45 | 45 | |
46 | - return $GLOBALS['invoicing']; |
|
46 | + return $GLOBALS['invoicing']; |
|
47 | 47 | } |
48 | 48 | |
49 | 49 | /** |
@@ -15,20 +15,20 @@ discard block |
||
15 | 15 | * @package GetPaid |
16 | 16 | */ |
17 | 17 | |
18 | -defined( 'ABSPATH' ) || exit; |
|
18 | +defined('ABSPATH') || exit; |
|
19 | 19 | |
20 | 20 | // Define constants. |
21 | -if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) { |
|
22 | - define( 'WPINV_PLUGIN_FILE', __FILE__ ); |
|
21 | +if (!defined('WPINV_PLUGIN_FILE')) { |
|
22 | + define('WPINV_PLUGIN_FILE', __FILE__); |
|
23 | 23 | } |
24 | 24 | |
25 | -if ( ! defined( 'WPINV_VERSION' ) ) { |
|
26 | - define( 'WPINV_VERSION', '2.7.6' ); |
|
25 | +if (!defined('WPINV_VERSION')) { |
|
26 | + define('WPINV_VERSION', '2.7.6'); |
|
27 | 27 | } |
28 | 28 | |
29 | 29 | // Include the main Invoicing class. |
30 | -if ( ! class_exists( 'WPInv_Plugin', false ) ) { |
|
31 | - require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php'; |
|
30 | +if (!class_exists('WPInv_Plugin', false)) { |
|
31 | + require_once plugin_dir_path(WPINV_PLUGIN_FILE) . 'includes/class-wpinv.php'; |
|
32 | 32 | } |
33 | 33 | |
34 | 34 | /** |
@@ -39,7 +39,7 @@ discard block |
||
39 | 39 | */ |
40 | 40 | function getpaid() { |
41 | 41 | |
42 | - if ( empty( $GLOBALS['invoicing'] ) ) { |
|
42 | + if (empty($GLOBALS['invoicing'])) { |
|
43 | 43 | $GLOBALS['invoicing'] = new WPInv_Plugin(); |
44 | 44 | } |
45 | 45 | |
@@ -52,9 +52,9 @@ discard block |
||
52 | 52 | * @since 2.0.8 |
53 | 53 | */ |
54 | 54 | function getpaid_deactivation_hook() { |
55 | - update_option( 'wpinv_flush_permalinks', 1 ); |
|
55 | + update_option('wpinv_flush_permalinks', 1); |
|
56 | 56 | } |
57 | -register_deactivation_hook( __FILE__, 'getpaid_deactivation_hook' ); |
|
57 | +register_deactivation_hook(__FILE__, 'getpaid_deactivation_hook'); |
|
58 | 58 | |
59 | 59 | /** |
60 | 60 | * @deprecated |
@@ -64,4 +64,4 @@ discard block |
||
64 | 64 | } |
65 | 65 | |
66 | 66 | // Kickstart the plugin. |
67 | -add_action( 'plugins_loaded', 'getpaid', -100 ); |
|
67 | +add_action('plugins_loaded', 'getpaid', -100); |
@@ -8,24 +8,24 @@ discard block |
||
8 | 8 | * @version 1.0.19 |
9 | 9 | */ |
10 | 10 | |
11 | -defined( 'ABSPATH' ) || exit; |
|
11 | +defined('ABSPATH') || exit; |
|
12 | 12 | |
13 | 13 | // Prepare the due date reminder options. |
14 | 14 | $overdue_days_options = array(); |
15 | -$overdue_days_options['0'] = __( 'On the Due Date', 'invoicing' ); |
|
16 | -$overdue_days_options['1'] = __( '1 day after Due Date', 'invoicing' ); |
|
15 | +$overdue_days_options['0'] = __('On the Due Date', 'invoicing'); |
|
16 | +$overdue_days_options['1'] = __('1 day after Due Date', 'invoicing'); |
|
17 | 17 | |
18 | -for ( $i = 2; $i <= 45; $i++ ) { |
|
19 | - $overdue_days_options[ "$i" ] = wp_sprintf( __( '%d days after Due Date', 'invoicing' ), $i ); |
|
18 | +for ($i = 2; $i <= 45; $i++) { |
|
19 | + $overdue_days_options["$i"] = wp_sprintf(__('%d days after Due Date', 'invoicing'), $i); |
|
20 | 20 | } |
21 | 21 | |
22 | 22 | // Prepare up coming renewal reminder options. |
23 | 23 | $renewal_days_options = array(); |
24 | -$renewal_days_options['0'] = __( 'On the renewal date', 'invoicing' ); |
|
25 | -$renewal_days_options['1'] = __( '1 day before the renewal date', 'invoicing' ); |
|
24 | +$renewal_days_options['0'] = __('On the renewal date', 'invoicing'); |
|
25 | +$renewal_days_options['1'] = __('1 day before the renewal date', 'invoicing'); |
|
26 | 26 | |
27 | -for ( $i = 2; $i <= 45; $i++ ) { |
|
28 | - $renewal_days_options[ "$i" ] = wp_sprintf( __( '%d days before the renewal date', 'invoicing' ), $i ); |
|
27 | +for ($i = 2; $i <= 45; $i++) { |
|
28 | + $renewal_days_options["$i"] = wp_sprintf(__('%d days before the renewal date', 'invoicing'), $i); |
|
29 | 29 | } |
30 | 30 | |
31 | 31 | // Default, built-in gateways |
@@ -34,45 +34,45 @@ discard block |
||
34 | 34 | |
35 | 35 | 'email_new_invoice_header' => array( |
36 | 36 | 'id' => 'email_new_invoice_header', |
37 | - 'name' => '<h3>' . __( 'New Invoice', 'invoicing' ) . '</h3>', |
|
38 | - 'desc' => __( 'These emails are sent to the site admin whenever there is a new invoice.', 'invoicing' ), |
|
37 | + 'name' => '<h3>' . __('New Invoice', 'invoicing') . '</h3>', |
|
38 | + 'desc' => __('These emails are sent to the site admin whenever there is a new invoice.', 'invoicing'), |
|
39 | 39 | 'type' => 'header', |
40 | 40 | ), |
41 | 41 | |
42 | 42 | 'email_new_invoice_active' => array( |
43 | 43 | 'id' => 'email_new_invoice_active', |
44 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
45 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
44 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
45 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
46 | 46 | 'type' => 'checkbox', |
47 | 47 | 'std' => 1, |
48 | 48 | ), |
49 | 49 | |
50 | 50 | 'email_new_invoice_subject' => array( |
51 | 51 | 'id' => 'email_new_invoice_subject', |
52 | - 'name' => __( 'Subject', 'invoicing' ), |
|
53 | - 'desc' => __( 'Enter the subject line for the invoice receipt email.', 'invoicing' ), |
|
52 | + 'name' => __('Subject', 'invoicing'), |
|
53 | + 'desc' => __('Enter the subject line for the invoice receipt email.', 'invoicing'), |
|
54 | 54 | 'help-tip' => true, |
55 | 55 | 'type' => 'text', |
56 | - 'std' => __( '[{site_title}] New invoice ({invoice_number}) for {invoice_total} {invoice_currency}', 'invoicing' ), |
|
56 | + 'std' => __('[{site_title}] New invoice ({invoice_number}) for {invoice_total} {invoice_currency}', 'invoicing'), |
|
57 | 57 | 'size' => 'large', |
58 | 58 | ), |
59 | 59 | |
60 | 60 | 'email_new_invoice_heading' => array( |
61 | 61 | 'id' => 'email_new_invoice_heading', |
62 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
63 | - 'desc' => __( 'Enter the main heading contained within the email notification for the invoice receipt email.', 'invoicing' ), |
|
62 | + 'name' => __('Email Heading', 'invoicing'), |
|
63 | + 'desc' => __('Enter the main heading contained within the email notification for the invoice receipt email.', 'invoicing'), |
|
64 | 64 | 'help-tip' => true, |
65 | 65 | 'type' => 'text', |
66 | - 'std' => __( 'New invoice', 'invoicing' ), |
|
66 | + 'std' => __('New invoice', 'invoicing'), |
|
67 | 67 | 'size' => 'large', |
68 | 68 | ), |
69 | 69 | |
70 | 70 | 'email_new_invoice_body' => array( |
71 | 71 | 'id' => 'email_new_invoice_body', |
72 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
72 | + 'name' => __('Email Content', 'invoicing'), |
|
73 | 73 | 'desc' => wpinv_get_merge_tags_help_text(), |
74 | 74 | 'type' => 'rich_editor', |
75 | - 'std' => __( '<p>A new invoice <a href="{invoice_link}">({invoice_number})</a> to {name} for {invoice_total} {invoice_currency} has been created on your site. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing' ), |
|
75 | + 'std' => __('<p>A new invoice <a href="{invoice_link}">({invoice_number})</a> to {name} for {invoice_total} {invoice_currency} has been created on your site. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing'), |
|
76 | 76 | 'class' => 'large', |
77 | 77 | 'size' => '10', |
78 | 78 | ), |
@@ -82,53 +82,53 @@ discard block |
||
82 | 82 | |
83 | 83 | 'email_cancelled_invoice_header' => array( |
84 | 84 | 'id' => 'email_cancelled_invoice_header', |
85 | - 'name' => '<h3>' . __( 'Cancelled Invoice', 'invoicing' ) . '</h3>', |
|
86 | - 'desc' => __( 'These emails are sent to customers whenever invoices are cancelled.', 'invoicing' ), |
|
85 | + 'name' => '<h3>' . __('Cancelled Invoice', 'invoicing') . '</h3>', |
|
86 | + 'desc' => __('These emails are sent to customers whenever invoices are cancelled.', 'invoicing'), |
|
87 | 87 | 'type' => 'header', |
88 | 88 | ), |
89 | 89 | |
90 | 90 | 'email_cancelled_invoice_active' => array( |
91 | 91 | 'id' => 'email_cancelled_invoice_active', |
92 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
93 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
92 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
93 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
94 | 94 | 'type' => 'checkbox', |
95 | 95 | 'std' => 1, |
96 | 96 | ), |
97 | 97 | |
98 | 98 | 'email_cancelled_invoice_admin_bcc' => array( |
99 | 99 | 'id' => 'email_cancelled_invoice_admin_bcc', |
100 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
101 | - 'desc' => __( 'Check if you want to send this notification email to site Admin.', 'invoicing' ), |
|
100 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
101 | + 'desc' => __('Check if you want to send this notification email to site Admin.', 'invoicing'), |
|
102 | 102 | 'type' => 'checkbox', |
103 | 103 | 'std' => 1, |
104 | 104 | ), |
105 | 105 | |
106 | 106 | 'email_cancelled_invoice_subject' => array( |
107 | 107 | 'id' => 'email_cancelled_invoice_subject', |
108 | - 'name' => __( 'Subject', 'invoicing' ), |
|
109 | - 'desc' => __( 'Enter the subject line for the invoice receipt email.', 'invoicing' ), |
|
108 | + 'name' => __('Subject', 'invoicing'), |
|
109 | + 'desc' => __('Enter the subject line for the invoice receipt email.', 'invoicing'), |
|
110 | 110 | 'help-tip' => true, |
111 | 111 | 'type' => 'text', |
112 | - 'std' => __( '[{site_title}] Invoice ({invoice_number}) Cancelled', 'invoicing' ), |
|
112 | + 'std' => __('[{site_title}] Invoice ({invoice_number}) Cancelled', 'invoicing'), |
|
113 | 113 | 'size' => 'large', |
114 | 114 | ), |
115 | 115 | |
116 | 116 | 'email_cancelled_invoice_heading' => array( |
117 | 117 | 'id' => 'email_cancelled_invoice_heading', |
118 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
119 | - 'desc' => __( 'Enter the main heading contained within the email notification.', 'invoicing' ), |
|
118 | + 'name' => __('Email Heading', 'invoicing'), |
|
119 | + 'desc' => __('Enter the main heading contained within the email notification.', 'invoicing'), |
|
120 | 120 | 'help-tip' => true, |
121 | 121 | 'type' => 'text', |
122 | - 'std' => __( 'Invoice Cancelled', 'invoicing' ), |
|
122 | + 'std' => __('Invoice Cancelled', 'invoicing'), |
|
123 | 123 | 'size' => 'large', |
124 | 124 | ), |
125 | 125 | |
126 | 126 | 'email_cancelled_invoice_body' => array( |
127 | 127 | 'id' => 'email_cancelled_invoice_body', |
128 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
128 | + 'name' => __('Email Content', 'invoicing'), |
|
129 | 129 | 'desc' => wpinv_get_merge_tags_help_text(), |
130 | 130 | 'type' => 'rich_editor', |
131 | - 'std' => __( '<p>The invoice <a href="{invoice_link}">#{invoice_number}</a> created for {name} on {site_title} has been cancelled. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing' ), |
|
131 | + 'std' => __('<p>The invoice <a href="{invoice_link}">#{invoice_number}</a> created for {name} on {site_title} has been cancelled. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing'), |
|
132 | 132 | 'class' => 'large', |
133 | 133 | 'size' => '10', |
134 | 134 | ), |
@@ -139,45 +139,45 @@ discard block |
||
139 | 139 | |
140 | 140 | 'email_failed_invoice_header' => array( |
141 | 141 | 'id' => 'email_failed_invoice_header', |
142 | - 'name' => '<h3>' . __( 'Failed Invoice', 'invoicing' ) . '</h3>', |
|
143 | - 'desc' => __( 'Failed invoice emails are sent to the site admin when invoice payments fail.', 'invoicing' ), |
|
142 | + 'name' => '<h3>' . __('Failed Invoice', 'invoicing') . '</h3>', |
|
143 | + 'desc' => __('Failed invoice emails are sent to the site admin when invoice payments fail.', 'invoicing'), |
|
144 | 144 | 'type' => 'header', |
145 | 145 | ), |
146 | 146 | |
147 | 147 | 'email_failed_invoice_active' => array( |
148 | 148 | 'id' => 'email_failed_invoice_active', |
149 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
150 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
149 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
150 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
151 | 151 | 'type' => 'checkbox', |
152 | 152 | 'std' => 1, |
153 | 153 | ), |
154 | 154 | |
155 | 155 | 'email_failed_invoice_subject' => array( |
156 | 156 | 'id' => 'email_failed_invoice_subject', |
157 | - 'name' => __( 'Subject', 'invoicing' ), |
|
158 | - 'desc' => __( 'Enter the subject line for the invoice receipt email.', 'invoicing' ), |
|
157 | + 'name' => __('Subject', 'invoicing'), |
|
158 | + 'desc' => __('Enter the subject line for the invoice receipt email.', 'invoicing'), |
|
159 | 159 | 'help-tip' => true, |
160 | 160 | 'type' => 'text', |
161 | - 'std' => __( '[{site_title}] Invoice ({invoice_number}) Payment Failed', 'invoicing' ), |
|
161 | + 'std' => __('[{site_title}] Invoice ({invoice_number}) Payment Failed', 'invoicing'), |
|
162 | 162 | 'size' => 'large', |
163 | 163 | ), |
164 | 164 | |
165 | 165 | 'email_failed_invoice_heading' => array( |
166 | 166 | 'id' => 'email_failed_invoice_heading', |
167 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
168 | - 'desc' => __( 'Enter the main heading contained within the email notification.', 'invoicing' ), |
|
167 | + 'name' => __('Email Heading', 'invoicing'), |
|
168 | + 'desc' => __('Enter the main heading contained within the email notification.', 'invoicing'), |
|
169 | 169 | 'help-tip' => true, |
170 | 170 | 'type' => 'text', |
171 | - 'std' => __( 'Invoice Payment Failed', 'invoicing' ), |
|
171 | + 'std' => __('Invoice Payment Failed', 'invoicing'), |
|
172 | 172 | 'size' => 'large', |
173 | 173 | ), |
174 | 174 | |
175 | 175 | 'email_failed_invoice_body' => array( |
176 | 176 | 'id' => 'email_failed_invoice_body', |
177 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
177 | + 'name' => __('Email Content', 'invoicing'), |
|
178 | 178 | 'desc' => wpinv_get_merge_tags_help_text(), |
179 | 179 | 'type' => 'rich_editor', |
180 | - 'std' => __( '<p>Payment for the invoice <a href="{invoice_link}">#{invoice_number}</a> on {site_title} has failed to go through. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing' ), |
|
180 | + 'std' => __('<p>Payment for the invoice <a href="{invoice_link}">#{invoice_number}</a> on {site_title} has failed to go through. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing'), |
|
181 | 181 | 'class' => 'large', |
182 | 182 | 'size' => '10', |
183 | 183 | ), |
@@ -187,53 +187,53 @@ discard block |
||
187 | 187 | |
188 | 188 | 'email_onhold_invoice_header' => array( |
189 | 189 | 'id' => 'email_onhold_invoice_header', |
190 | - 'name' => '<h3>' . __( 'On Hold Invoice', 'invoicing' ) . '</h3>', |
|
191 | - 'desc' => __( 'These emails are sent to customers whenever their invoices are held.', 'invoicing' ), |
|
190 | + 'name' => '<h3>' . __('On Hold Invoice', 'invoicing') . '</h3>', |
|
191 | + 'desc' => __('These emails are sent to customers whenever their invoices are held.', 'invoicing'), |
|
192 | 192 | 'type' => 'header', |
193 | 193 | ), |
194 | 194 | |
195 | 195 | 'email_onhold_invoice_active' => array( |
196 | 196 | 'id' => 'email_onhold_invoice_active', |
197 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
198 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
197 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
198 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
199 | 199 | 'type' => 'checkbox', |
200 | 200 | 'std' => 1, |
201 | 201 | ), |
202 | 202 | |
203 | 203 | 'email_onhold_invoice_admin_bcc' => array( |
204 | 204 | 'id' => 'email_onhold_invoice_admin_bcc', |
205 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
206 | - 'desc' => __( 'Check if you want to send this notification email to site Admin.', 'invoicing' ), |
|
205 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
206 | + 'desc' => __('Check if you want to send this notification email to site Admin.', 'invoicing'), |
|
207 | 207 | 'type' => 'checkbox', |
208 | 208 | 'std' => 1, |
209 | 209 | ), |
210 | 210 | |
211 | 211 | 'email_onhold_invoice_subject' => array( |
212 | 212 | 'id' => 'email_onhold_invoice_subject', |
213 | - 'name' => __( 'Subject', 'invoicing' ), |
|
214 | - 'desc' => __( 'Enter the subject line for the invoice receipt email.', 'invoicing' ), |
|
213 | + 'name' => __('Subject', 'invoicing'), |
|
214 | + 'desc' => __('Enter the subject line for the invoice receipt email.', 'invoicing'), |
|
215 | 215 | 'help-tip' => true, |
216 | 216 | 'type' => 'text', |
217 | - 'std' => __( '[{site_title}] Your invoice is on hold', 'invoicing' ), |
|
217 | + 'std' => __('[{site_title}] Your invoice is on hold', 'invoicing'), |
|
218 | 218 | 'size' => 'large', |
219 | 219 | ), |
220 | 220 | |
221 | 221 | 'email_onhold_invoice_heading' => array( |
222 | 222 | 'id' => 'email_onhold_invoice_heading', |
223 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
224 | - 'desc' => __( 'Enter the main heading contained within the email notification.', 'invoicing' ), |
|
223 | + 'name' => __('Email Heading', 'invoicing'), |
|
224 | + 'desc' => __('Enter the main heading contained within the email notification.', 'invoicing'), |
|
225 | 225 | 'help-tip' => true, |
226 | 226 | 'type' => 'text', |
227 | - 'std' => __( 'Your invoice is on hold', 'invoicing' ), |
|
227 | + 'std' => __('Your invoice is on hold', 'invoicing'), |
|
228 | 228 | 'size' => 'large', |
229 | 229 | ), |
230 | 230 | |
231 | 231 | 'email_onhold_invoice_body' => array( |
232 | 232 | 'id' => 'email_onhold_invoice_body', |
233 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
233 | + 'name' => __('Email Content', 'invoicing'), |
|
234 | 234 | 'desc' => wpinv_get_merge_tags_help_text(), |
235 | 235 | 'type' => 'rich_editor', |
236 | - 'std' => __( '<p>Hi {name},</p><p>Your invoice is on-hold and will be processed when we receive your payment. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing' ), |
|
236 | + 'std' => __('<p>Hi {name},</p><p>Your invoice is on-hold and will be processed when we receive your payment. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing'), |
|
237 | 237 | 'class' => 'large', |
238 | 238 | 'size' => '10', |
239 | 239 | ), |
@@ -244,53 +244,53 @@ discard block |
||
244 | 244 | |
245 | 245 | 'email_processing_invoice_header' => array( |
246 | 246 | 'id' => 'email_processing_invoice_header', |
247 | - 'name' => '<h3>' . __( 'Processing Invoice', 'invoicing' ) . '</h3>', |
|
248 | - 'desc' => __( 'These emails are sent to users whenever payments for their invoices are processing.', 'invoicing' ), |
|
247 | + 'name' => '<h3>' . __('Processing Invoice', 'invoicing') . '</h3>', |
|
248 | + 'desc' => __('These emails are sent to users whenever payments for their invoices are processing.', 'invoicing'), |
|
249 | 249 | 'type' => 'header', |
250 | 250 | ), |
251 | 251 | |
252 | 252 | 'email_processing_invoice_active' => array( |
253 | 253 | 'id' => 'email_processing_invoice_active', |
254 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
255 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
254 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
255 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
256 | 256 | 'type' => 'checkbox', |
257 | 257 | 'std' => 1, |
258 | 258 | ), |
259 | 259 | |
260 | 260 | 'email_processing_invoice_admin_bcc' => array( |
261 | 261 | 'id' => 'email_processing_invoice_admin_bcc', |
262 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
263 | - 'desc' => __( 'Check if you want to send a copy of this notification email to the site admin.', 'invoicing' ), |
|
262 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
263 | + 'desc' => __('Check if you want to send a copy of this notification email to the site admin.', 'invoicing'), |
|
264 | 264 | 'type' => 'checkbox', |
265 | 265 | 'std' => 1, |
266 | 266 | ), |
267 | 267 | |
268 | 268 | 'email_processing_invoice_subject' => array( |
269 | 269 | 'id' => 'email_processing_invoice_subject', |
270 | - 'name' => __( 'Subject', 'invoicing' ), |
|
271 | - 'desc' => __( 'Enter the subject line for the invoice receipt email.', 'invoicing' ), |
|
270 | + 'name' => __('Subject', 'invoicing'), |
|
271 | + 'desc' => __('Enter the subject line for the invoice receipt email.', 'invoicing'), |
|
272 | 272 | 'help-tip' => true, |
273 | 273 | 'type' => 'text', |
274 | - 'std' => __( '[{site_title}] Your payment is being processed', 'invoicing' ), |
|
274 | + 'std' => __('[{site_title}] Your payment is being processed', 'invoicing'), |
|
275 | 275 | 'size' => 'large', |
276 | 276 | ), |
277 | 277 | |
278 | 278 | 'email_processing_invoice_heading' => array( |
279 | 279 | 'id' => 'email_processing_invoice_heading', |
280 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
281 | - 'desc' => __( 'Enter the main heading contained within the email notification for the invoice receipt email.', 'invoicing' ), |
|
280 | + 'name' => __('Email Heading', 'invoicing'), |
|
281 | + 'desc' => __('Enter the main heading contained within the email notification for the invoice receipt email.', 'invoicing'), |
|
282 | 282 | 'help-tip' => true, |
283 | 283 | 'type' => 'text', |
284 | - 'std' => __( 'Your payment is being processed', 'invoicing' ), |
|
284 | + 'std' => __('Your payment is being processed', 'invoicing'), |
|
285 | 285 | 'size' => 'large', |
286 | 286 | ), |
287 | 287 | |
288 | 288 | 'email_processing_invoice_body' => array( |
289 | 289 | 'id' => 'email_processing_invoice_body', |
290 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
290 | + 'name' => __('Email Content', 'invoicing'), |
|
291 | 291 | 'desc' => wpinv_get_merge_tags_help_text(), |
292 | 292 | 'type' => 'rich_editor', |
293 | - 'std' => __( '<p>Hi {name},</p><p>I would like to let you know that we have received and are currently processing your payment for the invoice <a href="{invoice_link}">#{invoice_number}</a> on {site_title}. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing' ), |
|
293 | + 'std' => __('<p>Hi {name},</p><p>I would like to let you know that we have received and are currently processing your payment for the invoice <a href="{invoice_link}">#{invoice_number}</a> on {site_title}. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing'), |
|
294 | 294 | 'class' => 'large', |
295 | 295 | 'size' => '10', |
296 | 296 | ), |
@@ -301,61 +301,61 @@ discard block |
||
301 | 301 | |
302 | 302 | 'email_completed_invoice_header' => array( |
303 | 303 | 'id' => 'email_completed_invoice_header', |
304 | - 'name' => '<h3>' . __( 'Paid Invoice', 'invoicing' ) . '</h3>', |
|
305 | - 'desc' => __( 'These emails are sent to customers when their invoices are marked as paid.', 'invoicing' ), |
|
304 | + 'name' => '<h3>' . __('Paid Invoice', 'invoicing') . '</h3>', |
|
305 | + 'desc' => __('These emails are sent to customers when their invoices are marked as paid.', 'invoicing'), |
|
306 | 306 | 'type' => 'header', |
307 | 307 | ), |
308 | 308 | |
309 | 309 | 'email_completed_invoice_active' => array( |
310 | 310 | 'id' => 'email_completed_invoice_active', |
311 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
312 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
311 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
312 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
313 | 313 | 'type' => 'checkbox', |
314 | 314 | 'std' => 1, |
315 | 315 | ), |
316 | 316 | |
317 | 317 | 'email_completed_invoice_renewal_active' => array( |
318 | 318 | 'id' => 'email_completed_invoice_renewal_active', |
319 | - 'name' => __( 'Enable renewal notification', 'invoicing' ), |
|
320 | - 'desc' => __( 'Should this email be sent for renewals too?', 'invoicing' ), |
|
319 | + 'name' => __('Enable renewal notification', 'invoicing'), |
|
320 | + 'desc' => __('Should this email be sent for renewals too?', 'invoicing'), |
|
321 | 321 | 'type' => 'checkbox', |
322 | 322 | 'std' => 1, |
323 | 323 | ), |
324 | 324 | |
325 | 325 | 'email_completed_invoice_admin_bcc' => array( |
326 | 326 | 'id' => 'email_completed_invoice_admin_bcc', |
327 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
328 | - 'desc' => __( 'Check if you want to send a copy of this notification email to the site admin.', 'invoicing' ), |
|
327 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
328 | + 'desc' => __('Check if you want to send a copy of this notification email to the site admin.', 'invoicing'), |
|
329 | 329 | 'type' => 'checkbox', |
330 | 330 | 'std' => 1, |
331 | 331 | ), |
332 | 332 | |
333 | 333 | 'email_completed_invoice_subject' => array( |
334 | 334 | 'id' => 'email_completed_invoice_subject', |
335 | - 'name' => __( 'Subject', 'invoicing' ), |
|
336 | - 'desc' => __( 'Enter the subject line for the invoice receipt email.', 'invoicing' ), |
|
335 | + 'name' => __('Subject', 'invoicing'), |
|
336 | + 'desc' => __('Enter the subject line for the invoice receipt email.', 'invoicing'), |
|
337 | 337 | 'help-tip' => true, |
338 | 338 | 'type' => 'text', |
339 | - 'std' => __( '[{site_title}] Your invoice from {invoice_date} has been paid', 'invoicing' ), |
|
339 | + 'std' => __('[{site_title}] Your invoice from {invoice_date} has been paid', 'invoicing'), |
|
340 | 340 | 'size' => 'large', |
341 | 341 | ), |
342 | 342 | |
343 | 343 | 'email_completed_invoice_heading' => array( |
344 | 344 | 'id' => 'email_completed_invoice_heading', |
345 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
346 | - 'desc' => __( 'Enter the main heading contained within the email notification for the invoice receipt email.', 'invoicing' ), |
|
345 | + 'name' => __('Email Heading', 'invoicing'), |
|
346 | + 'desc' => __('Enter the main heading contained within the email notification for the invoice receipt email.', 'invoicing'), |
|
347 | 347 | 'help-tip' => true, |
348 | 348 | 'type' => 'text', |
349 | - 'std' => __( 'Your invoice has been paid', 'invoicing' ), |
|
349 | + 'std' => __('Your invoice has been paid', 'invoicing'), |
|
350 | 350 | 'size' => 'large', |
351 | 351 | ), |
352 | 352 | |
353 | 353 | 'email_completed_invoice_body' => array( |
354 | 354 | 'id' => 'email_completed_invoice_body', |
355 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
355 | + 'name' => __('Email Content', 'invoicing'), |
|
356 | 356 | 'desc' => wpinv_get_merge_tags_help_text(), |
357 | 357 | 'type' => 'rich_editor', |
358 | - 'std' => __( '<p>Hi {name},</p><p>Your recent invoice on {site_title} has been paid. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing' ), |
|
358 | + 'std' => __('<p>Hi {name},</p><p>Your recent invoice on {site_title} has been paid. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing'), |
|
359 | 359 | 'class' => 'large', |
360 | 360 | 'size' => '10', |
361 | 361 | ), |
@@ -366,53 +366,53 @@ discard block |
||
366 | 366 | |
367 | 367 | 'email_refunded_invoice_header' => array( |
368 | 368 | 'id' => 'email_refunded_invoice_header', |
369 | - 'name' => '<h3>' . __( 'Refunded Invoice', 'invoicing' ) . '</h3>', |
|
370 | - 'desc' => __( 'These emails are sent to users when their invoices are marked as refunded.', 'invoicing' ), |
|
369 | + 'name' => '<h3>' . __('Refunded Invoice', 'invoicing') . '</h3>', |
|
370 | + 'desc' => __('These emails are sent to users when their invoices are marked as refunded.', 'invoicing'), |
|
371 | 371 | 'type' => 'header', |
372 | 372 | ), |
373 | 373 | |
374 | 374 | 'email_refunded_invoice_active' => array( |
375 | 375 | 'id' => 'email_refunded_invoice_active', |
376 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
377 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
376 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
377 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
378 | 378 | 'type' => 'checkbox', |
379 | 379 | 'std' => 1, |
380 | 380 | ), |
381 | 381 | |
382 | 382 | 'email_refunded_invoice_admin_bcc' => array( |
383 | 383 | 'id' => 'email_refunded_invoice_admin_bcc', |
384 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
385 | - 'desc' => __( 'Check if you want to send a copy of this notification email to the site admin.', 'invoicing' ), |
|
384 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
385 | + 'desc' => __('Check if you want to send a copy of this notification email to the site admin.', 'invoicing'), |
|
386 | 386 | 'type' => 'checkbox', |
387 | 387 | 'std' => 1, |
388 | 388 | ), |
389 | 389 | |
390 | 390 | 'email_refunded_invoice_subject' => array( |
391 | 391 | 'id' => 'email_refunded_invoice_subject', |
392 | - 'name' => __( 'Subject', 'invoicing' ), |
|
393 | - 'desc' => __( 'Enter the subject line for the invoice receipt email.', 'invoicing' ), |
|
392 | + 'name' => __('Subject', 'invoicing'), |
|
393 | + 'desc' => __('Enter the subject line for the invoice receipt email.', 'invoicing'), |
|
394 | 394 | 'help-tip' => true, |
395 | 395 | 'type' => 'text', |
396 | - 'std' => __( '[{site_title}] Your invoice from {invoice_date} has been refunded', 'invoicing' ), |
|
396 | + 'std' => __('[{site_title}] Your invoice from {invoice_date} has been refunded', 'invoicing'), |
|
397 | 397 | 'size' => 'large', |
398 | 398 | ), |
399 | 399 | |
400 | 400 | 'email_refunded_invoice_heading' => array( |
401 | 401 | 'id' => 'email_refunded_invoice_heading', |
402 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
403 | - 'desc' => __( 'Enter the main heading contained within the email notification.', 'invoicing' ), |
|
402 | + 'name' => __('Email Heading', 'invoicing'), |
|
403 | + 'desc' => __('Enter the main heading contained within the email notification.', 'invoicing'), |
|
404 | 404 | 'help-tip' => true, |
405 | 405 | 'type' => 'text', |
406 | - 'std' => __( 'Your invoice has been refunded', 'invoicing' ), |
|
406 | + 'std' => __('Your invoice has been refunded', 'invoicing'), |
|
407 | 407 | 'size' => 'large', |
408 | 408 | ), |
409 | 409 | |
410 | 410 | 'email_refunded_invoice_body' => array( |
411 | 411 | 'id' => 'email_refunded_invoice_body', |
412 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
412 | + 'name' => __('Email Content', 'invoicing'), |
|
413 | 413 | 'desc' => wpinv_get_merge_tags_help_text(), |
414 | 414 | 'type' => 'rich_editor', |
415 | - 'std' => __( '<p>Hi {name},</p><p>Your invoice on {site_title} has been refunded. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing' ), |
|
415 | + 'std' => __('<p>Hi {name},</p><p>Your invoice on {site_title} has been refunded. <a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a></p>', 'invoicing'), |
|
416 | 416 | 'class' => 'large', |
417 | 417 | 'size' => '10', |
418 | 418 | ), |
@@ -423,53 +423,53 @@ discard block |
||
423 | 423 | |
424 | 424 | 'email_user_invoice_header' => array( |
425 | 425 | 'id' => 'email_user_invoice_header', |
426 | - 'name' => '<h3>' . __( 'Customer Invoice', 'invoicing' ) . '</h3>', |
|
427 | - 'desc' => __( 'These emails are sent to customers containing their invoice information and payment links.', 'invoicing' ), |
|
426 | + 'name' => '<h3>' . __('Customer Invoice', 'invoicing') . '</h3>', |
|
427 | + 'desc' => __('These emails are sent to customers containing their invoice information and payment links.', 'invoicing'), |
|
428 | 428 | 'type' => 'header', |
429 | 429 | ), |
430 | 430 | |
431 | 431 | 'email_user_invoice_active' => array( |
432 | 432 | 'id' => 'email_user_invoice_active', |
433 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
434 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
433 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
434 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
435 | 435 | 'type' => 'checkbox', |
436 | 436 | 'std' => 1, |
437 | 437 | ), |
438 | 438 | |
439 | 439 | 'email_user_invoice_admin_bcc' => array( |
440 | 440 | 'id' => 'email_user_invoice_admin_bcc', |
441 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
442 | - 'desc' => __( 'Check if you want to send a copy of this notification email to to the site admin.', 'invoicing' ), |
|
441 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
442 | + 'desc' => __('Check if you want to send a copy of this notification email to to the site admin.', 'invoicing'), |
|
443 | 443 | 'type' => 'checkbox', |
444 | 444 | 'std' => 0, |
445 | 445 | ), |
446 | 446 | |
447 | 447 | 'email_user_invoice_subject' => array( |
448 | 448 | 'id' => 'email_user_invoice_subject', |
449 | - 'name' => __( 'Subject', 'invoicing' ), |
|
450 | - 'desc' => __( 'Enter the subject line for the invoice receipt email.', 'invoicing' ), |
|
449 | + 'name' => __('Subject', 'invoicing'), |
|
450 | + 'desc' => __('Enter the subject line for the invoice receipt email.', 'invoicing'), |
|
451 | 451 | 'help-tip' => true, |
452 | 452 | 'type' => 'text', |
453 | - 'std' => __( '[{site_title}] Your invoice from {invoice_date}', 'invoicing' ), |
|
453 | + 'std' => __('[{site_title}] Your invoice from {invoice_date}', 'invoicing'), |
|
454 | 454 | 'size' => 'large', |
455 | 455 | ), |
456 | 456 | |
457 | 457 | 'email_user_invoice_heading' => array( |
458 | 458 | 'id' => 'email_user_invoice_heading', |
459 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
460 | - 'desc' => __( 'Enter the main heading contained within the email notification for the invoice receipt email.', 'invoicing' ), |
|
459 | + 'name' => __('Email Heading', 'invoicing'), |
|
460 | + 'desc' => __('Enter the main heading contained within the email notification for the invoice receipt email.', 'invoicing'), |
|
461 | 461 | 'help-tip' => true, |
462 | 462 | 'type' => 'text', |
463 | - 'std' => __( 'Your invoice {invoice_number} details', 'invoicing' ), |
|
463 | + 'std' => __('Your invoice {invoice_number} details', 'invoicing'), |
|
464 | 464 | 'size' => 'large', |
465 | 465 | ), |
466 | 466 | |
467 | 467 | 'email_user_invoice_body' => array( |
468 | 468 | 'id' => 'email_user_invoice_body', |
469 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
469 | + 'name' => __('Email Content', 'invoicing'), |
|
470 | 470 | 'desc' => wpinv_get_merge_tags_help_text(), |
471 | 471 | 'type' => 'rich_editor', |
472 | - 'std' => __( '<p>Hi {name},</p><p>An invoice of {invoice_total} has been created for you on {site_title}. You can <a href="{invoice_link}">view</a> or <a href="{invoice_pay_link}">pay</a> the invoice. Please reply to this email if you have any questions about the invoice.', 'invoicing' ), |
|
472 | + 'std' => __('<p>Hi {name},</p><p>An invoice of {invoice_total} has been created for you on {site_title}. You can <a href="{invoice_link}">view</a> or <a href="{invoice_pay_link}">pay</a> the invoice. Please reply to this email if you have any questions about the invoice.', 'invoicing'), |
|
473 | 473 | 'class' => 'large', |
474 | 474 | 'size' => '10', |
475 | 475 | ), |
@@ -479,53 +479,53 @@ discard block |
||
479 | 479 | |
480 | 480 | 'email_user_note_header' => array( |
481 | 481 | 'id' => 'email_user_note_header', |
482 | - 'name' => '<h3>' . __( 'Customer Note', 'invoicing' ) . '</h3>', |
|
483 | - 'desc' => __( 'These emails are sent when you add a customer note to an invoice/quote.', 'invoicing' ), |
|
482 | + 'name' => '<h3>' . __('Customer Note', 'invoicing') . '</h3>', |
|
483 | + 'desc' => __('These emails are sent when you add a customer note to an invoice/quote.', 'invoicing'), |
|
484 | 484 | 'type' => 'header', |
485 | 485 | ), |
486 | 486 | |
487 | 487 | 'email_user_note_active' => array( |
488 | 488 | 'id' => 'email_user_note_active', |
489 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
490 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
489 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
490 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
491 | 491 | 'type' => 'checkbox', |
492 | 492 | 'std' => 1, |
493 | 493 | ), |
494 | 494 | |
495 | 495 | 'email_user_note_admin_bcc' => array( |
496 | 496 | 'id' => 'email_user_note_admin_bcc', |
497 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
498 | - 'desc' => __( 'Check if you want to send a copy of this notification email to the site admin.', 'invoicing' ), |
|
497 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
498 | + 'desc' => __('Check if you want to send a copy of this notification email to the site admin.', 'invoicing'), |
|
499 | 499 | 'type' => 'checkbox', |
500 | 500 | 'std' => 0, |
501 | 501 | ), |
502 | 502 | |
503 | 503 | 'email_user_note_subject' => array( |
504 | 504 | 'id' => 'email_user_note_subject', |
505 | - 'name' => __( 'Subject', 'invoicing' ), |
|
506 | - 'desc' => __( 'Enter the subject line for the invoice receipt email.', 'invoicing' ), |
|
505 | + 'name' => __('Subject', 'invoicing'), |
|
506 | + 'desc' => __('Enter the subject line for the invoice receipt email.', 'invoicing'), |
|
507 | 507 | 'help-tip' => true, |
508 | 508 | 'type' => 'text', |
509 | - 'std' => __( '[{site_title}] Note added to your {invoice_label} #{invoice_number} from {invoice_date}', 'invoicing' ), |
|
509 | + 'std' => __('[{site_title}] Note added to your {invoice_label} #{invoice_number} from {invoice_date}', 'invoicing'), |
|
510 | 510 | 'size' => 'large', |
511 | 511 | ), |
512 | 512 | |
513 | 513 | 'email_user_note_heading' => array( |
514 | 514 | 'id' => 'email_user_note_heading', |
515 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
516 | - 'desc' => __( 'Enter the main heading contained within the email notification.', 'invoicing' ), |
|
515 | + 'name' => __('Email Heading', 'invoicing'), |
|
516 | + 'desc' => __('Enter the main heading contained within the email notification.', 'invoicing'), |
|
517 | 517 | 'help-tip' => true, |
518 | 518 | 'type' => 'text', |
519 | - 'std' => __( 'A note has been added to your {invoice_label}', 'invoicing' ), |
|
519 | + 'std' => __('A note has been added to your {invoice_label}', 'invoicing'), |
|
520 | 520 | 'size' => 'large', |
521 | 521 | ), |
522 | 522 | |
523 | 523 | 'email_user_note_body' => array( |
524 | 524 | 'id' => 'email_user_note_body', |
525 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
525 | + 'name' => __('Email Content', 'invoicing'), |
|
526 | 526 | 'desc' => wpinv_get_merge_tags_help_text(), |
527 | 527 | 'type' => 'rich_editor', |
528 | - 'std' => __( '<p>Hi {name},</p><p>The following note has been added to your {invoice_label} <a href="{invoice_link}">#{invoice_number}</a>:</p><blockquote class="wpinv-note">{customer_note}</blockquote><a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a>', 'invoicing' ), |
|
528 | + 'std' => __('<p>Hi {name},</p><p>The following note has been added to your {invoice_label} <a href="{invoice_link}">#{invoice_number}</a>:</p><blockquote class="wpinv-note">{customer_note}</blockquote><a class="btn btn-success" href="{invoice_link}">View / Print Invoice</a>', 'invoicing'), |
|
529 | 529 | 'class' => 'large', |
530 | 530 | 'size' => '10', |
531 | 531 | ), |
@@ -535,63 +535,63 @@ discard block |
||
535 | 535 | |
536 | 536 | 'email_overdue_header' => array( |
537 | 537 | 'id' => 'email_overdue_header', |
538 | - 'name' => '<h3>' . __( 'Payment Reminder', 'invoicing' ) . '</h3>', |
|
539 | - 'desc' => __( 'Payment reminder emails are sent to customers whenever their invoices are due.', 'invoicing' ), |
|
538 | + 'name' => '<h3>' . __('Payment Reminder', 'invoicing') . '</h3>', |
|
539 | + 'desc' => __('Payment reminder emails are sent to customers whenever their invoices are due.', 'invoicing'), |
|
540 | 540 | 'type' => 'header', |
541 | 541 | ), |
542 | 542 | |
543 | 543 | 'email_overdue_active' => array( |
544 | 544 | 'id' => 'email_overdue_active', |
545 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
546 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
545 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
546 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
547 | 547 | 'type' => 'checkbox', |
548 | 548 | 'std' => 1, |
549 | 549 | ), |
550 | 550 | |
551 | 551 | 'email_overdue_admin_bcc' => array( |
552 | 552 | 'id' => 'email_overdue_admin_bcc', |
553 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
554 | - 'desc' => __( 'Check if you want to send a copy of this notification email to the site admin.', 'invoicing' ), |
|
553 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
554 | + 'desc' => __('Check if you want to send a copy of this notification email to the site admin.', 'invoicing'), |
|
555 | 555 | 'type' => 'checkbox', |
556 | 556 | 'std' => 0, |
557 | 557 | ), |
558 | 558 | |
559 | 559 | 'email_overdue_days' => array( |
560 | 560 | 'id' => 'email_overdue_days', |
561 | - 'name' => __( 'When to Send', 'invoicing' ), |
|
562 | - 'desc' => __( 'Check when you would like payment reminders sent out.', 'invoicing' ), |
|
561 | + 'name' => __('When to Send', 'invoicing'), |
|
562 | + 'desc' => __('Check when you would like payment reminders sent out.', 'invoicing'), |
|
563 | 563 | 'help-tip' => true, |
564 | - 'std' => array( '1' ), |
|
564 | + 'std' => array('1'), |
|
565 | 565 | 'type' => 'multicheck', |
566 | 566 | 'options' => $overdue_days_options, |
567 | 567 | ), |
568 | 568 | |
569 | 569 | 'email_overdue_subject' => array( |
570 | 570 | 'id' => 'email_overdue_subject', |
571 | - 'name' => __( 'Subject', 'invoicing' ), |
|
572 | - 'desc' => __( 'Enter the subject line for the invoice receipt email.', 'invoicing' ), |
|
571 | + 'name' => __('Subject', 'invoicing'), |
|
572 | + 'desc' => __('Enter the subject line for the invoice receipt email.', 'invoicing'), |
|
573 | 573 | 'help-tip' => true, |
574 | 574 | 'type' => 'text', |
575 | - 'std' => __( '[{site_title}] Payment Reminder', 'invoicing' ), |
|
575 | + 'std' => __('[{site_title}] Payment Reminder', 'invoicing'), |
|
576 | 576 | 'size' => 'large', |
577 | 577 | ), |
578 | 578 | |
579 | 579 | 'email_overdue_heading' => array( |
580 | 580 | 'id' => 'email_overdue_heading', |
581 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
582 | - 'desc' => __( 'Enter the main heading contained within the email notification.', 'invoicing' ), |
|
581 | + 'name' => __('Email Heading', 'invoicing'), |
|
582 | + 'desc' => __('Enter the main heading contained within the email notification.', 'invoicing'), |
|
583 | 583 | 'help-tip' => true, |
584 | 584 | 'type' => 'text', |
585 | - 'std' => __( 'Payment reminder for your invoice', 'invoicing' ), |
|
585 | + 'std' => __('Payment reminder for your invoice', 'invoicing'), |
|
586 | 586 | 'size' => 'large', |
587 | 587 | ), |
588 | 588 | |
589 | 589 | 'email_overdue_body' => array( |
590 | 590 | 'id' => 'email_overdue_body', |
591 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
591 | + 'name' => __('Email Content', 'invoicing'), |
|
592 | 592 | 'desc' => wpinv_get_merge_tags_help_text(), |
593 | 593 | 'type' => 'rich_editor', |
594 | - 'std' => __( '<p>Hi {full_name},</p><p>This is just a friendly reminder that your invoice <a href="{invoice_link}">#{invoice_number}</a> {is_was} due on {invoice_due_date}.</p><p>The total of this invoice is {invoice_total}</p><p>To view / pay now for this invoice please use the following link: <a class="btn btn-success" href="{invoice_link}">View / Pay</a></p>', 'invoicing' ), |
|
594 | + 'std' => __('<p>Hi {full_name},</p><p>This is just a friendly reminder that your invoice <a href="{invoice_link}">#{invoice_number}</a> {is_was} due on {invoice_due_date}.</p><p>The total of this invoice is {invoice_total}</p><p>To view / pay now for this invoice please use the following link: <a class="btn btn-success" href="{invoice_link}">View / Pay</a></p>', 'invoicing'), |
|
595 | 595 | 'class' => 'large', |
596 | 596 | 'size' => 10, |
597 | 597 | ), |
@@ -602,63 +602,63 @@ discard block |
||
602 | 602 | |
603 | 603 | 'email_renewal_reminder_header' => array( |
604 | 604 | 'id' => 'email_renewal_reminder_header', |
605 | - 'name' => '<h3>' . __( 'Renewal Reminder', 'invoicing' ) . '</h3>', |
|
606 | - 'desc' => __( 'These emails are sent to customers whenever their subscription is about to renew.', 'invoicing' ), |
|
605 | + 'name' => '<h3>' . __('Renewal Reminder', 'invoicing') . '</h3>', |
|
606 | + 'desc' => __('These emails are sent to customers whenever their subscription is about to renew.', 'invoicing'), |
|
607 | 607 | 'type' => 'header', |
608 | 608 | ), |
609 | 609 | |
610 | 610 | 'email_renewal_reminder_active' => array( |
611 | 611 | 'id' => 'email_renewal_reminder_active', |
612 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
613 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
612 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
613 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
614 | 614 | 'type' => 'checkbox', |
615 | 615 | 'std' => 0, |
616 | 616 | ), |
617 | 617 | |
618 | 618 | 'email_renewal_reminder_admin_bcc' => array( |
619 | 619 | 'id' => 'email_renewal_reminder_admin_bcc', |
620 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
621 | - 'desc' => __( 'Check if you want to send a copy of this notification email to the site admin.', 'invoicing' ), |
|
620 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
621 | + 'desc' => __('Check if you want to send a copy of this notification email to the site admin.', 'invoicing'), |
|
622 | 622 | 'type' => 'checkbox', |
623 | 623 | 'std' => 0, |
624 | 624 | ), |
625 | 625 | |
626 | 626 | 'email_renewal_reminder_days' => array( |
627 | 627 | 'id' => 'email_renewal_reminder_days', |
628 | - 'name' => __( 'When to Send', 'invoicing' ), |
|
629 | - 'desc' => __( 'Check when you would like renewal reminders sent out.', 'invoicing' ), |
|
628 | + 'name' => __('When to Send', 'invoicing'), |
|
629 | + 'desc' => __('Check when you would like renewal reminders sent out.', 'invoicing'), |
|
630 | 630 | 'help-tip' => true, |
631 | - 'std' => array( '1', '5', '10' ), |
|
631 | + 'std' => array('1', '5', '10'), |
|
632 | 632 | 'type' => 'multicheck', |
633 | 633 | 'options' => $renewal_days_options, |
634 | 634 | ), |
635 | 635 | |
636 | 636 | 'email_renewal_reminder_subject' => array( |
637 | 637 | 'id' => 'email_renewal_reminder_subject', |
638 | - 'name' => __( 'Subject', 'invoicing' ), |
|
639 | - 'desc' => __( 'Enter the subject line for the email.', 'invoicing' ), |
|
638 | + 'name' => __('Subject', 'invoicing'), |
|
639 | + 'desc' => __('Enter the subject line for the email.', 'invoicing'), |
|
640 | 640 | 'help-tip' => true, |
641 | 641 | 'type' => 'text', |
642 | - 'std' => __( '[{site_title}] Renewal Reminder', 'invoicing' ), |
|
642 | + 'std' => __('[{site_title}] Renewal Reminder', 'invoicing'), |
|
643 | 643 | 'size' => 'large', |
644 | 644 | ), |
645 | 645 | |
646 | 646 | 'email_renewal_reminder_heading' => array( |
647 | 647 | 'id' => 'email_renewal_reminder_heading', |
648 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
649 | - 'desc' => __( 'Enter the main heading contained within the email notification.', 'invoicing' ), |
|
648 | + 'name' => __('Email Heading', 'invoicing'), |
|
649 | + 'desc' => __('Enter the main heading contained within the email notification.', 'invoicing'), |
|
650 | 650 | 'help-tip' => true, |
651 | 651 | 'type' => 'text', |
652 | - 'std' => __( 'Upcoming renewal reminder', 'invoicing' ), |
|
652 | + 'std' => __('Upcoming renewal reminder', 'invoicing'), |
|
653 | 653 | 'size' => 'large', |
654 | 654 | ), |
655 | 655 | |
656 | 656 | 'email_renewal_reminder_body' => array( |
657 | 657 | 'id' => 'email_renewal_reminder_body', |
658 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
659 | - 'desc' => wpinv_get_merge_tags_help_text( true ), |
|
658 | + 'name' => __('Email Content', 'invoicing'), |
|
659 | + 'desc' => wpinv_get_merge_tags_help_text(true), |
|
660 | 660 | 'type' => 'rich_editor', |
661 | - 'std' => __( '<p>Hi {full_name},</p><p>This is just a friendly reminder that your subscription for invoice <a href="{invoice_link}">#{invoice_number}</a> will renew on {subscription_renewal_date}.</p>', 'invoicing' ), |
|
661 | + 'std' => __('<p>Hi {full_name},</p><p>This is just a friendly reminder that your subscription for invoice <a href="{invoice_link}">#{invoice_number}</a> will renew on {subscription_renewal_date}.</p>', 'invoicing'), |
|
662 | 662 | 'class' => 'large', |
663 | 663 | 'size' => 10, |
664 | 664 | ), |
@@ -669,53 +669,53 @@ discard block |
||
669 | 669 | |
670 | 670 | 'email_subscription_trial_header' => array( |
671 | 671 | 'id' => 'email_subscription_trial_header', |
672 | - 'name' => '<h3>' . __( 'Trial Started', 'invoicing' ) . '</h3>', |
|
673 | - 'desc' => __( 'These emails are sent when a customer starts a subscription trial.', 'invoicing' ), |
|
672 | + 'name' => '<h3>' . __('Trial Started', 'invoicing') . '</h3>', |
|
673 | + 'desc' => __('These emails are sent when a customer starts a subscription trial.', 'invoicing'), |
|
674 | 674 | 'type' => 'header', |
675 | 675 | ), |
676 | 676 | |
677 | 677 | 'email_subscription_trial_active' => array( |
678 | 678 | 'id' => 'email_subscription_trial_active', |
679 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
680 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
679 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
680 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
681 | 681 | 'type' => 'checkbox', |
682 | 682 | 'std' => 0, |
683 | 683 | ), |
684 | 684 | |
685 | 685 | 'email_subscription_trial_admin_bcc' => array( |
686 | 686 | 'id' => 'email_subscription_trial_admin_bcc', |
687 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
688 | - 'desc' => __( 'Check if you want to send a copy of this notification email to the site admin.', 'invoicing' ), |
|
687 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
688 | + 'desc' => __('Check if you want to send a copy of this notification email to the site admin.', 'invoicing'), |
|
689 | 689 | 'type' => 'checkbox', |
690 | 690 | 'std' => 0, |
691 | 691 | ), |
692 | 692 | |
693 | 693 | 'email_subscription_trial_subject' => array( |
694 | 694 | 'id' => 'email_subscription_trial_subject', |
695 | - 'name' => __( 'Subject', 'invoicing' ), |
|
696 | - 'desc' => __( 'Enter the subject line for the subscription trial email.', 'invoicing' ), |
|
695 | + 'name' => __('Subject', 'invoicing'), |
|
696 | + 'desc' => __('Enter the subject line for the subscription trial email.', 'invoicing'), |
|
697 | 697 | 'help-tip' => true, |
698 | 698 | 'type' => 'text', |
699 | - 'std' => __( '[{site_title}] Trial Started', 'invoicing' ), |
|
699 | + 'std' => __('[{site_title}] Trial Started', 'invoicing'), |
|
700 | 700 | 'size' => 'large', |
701 | 701 | ), |
702 | 702 | |
703 | 703 | 'email_subscription_trial_heading' => array( |
704 | 704 | 'id' => 'email_subscription_trial_heading', |
705 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
706 | - 'desc' => __( 'Enter the main heading of this email.', 'invoicing' ), |
|
705 | + 'name' => __('Email Heading', 'invoicing'), |
|
706 | + 'desc' => __('Enter the main heading of this email.', 'invoicing'), |
|
707 | 707 | 'help-tip' => true, |
708 | 708 | 'type' => 'text', |
709 | - 'std' => __( 'Trial Started', 'invoicing' ), |
|
709 | + 'std' => __('Trial Started', 'invoicing'), |
|
710 | 710 | 'size' => 'large', |
711 | 711 | ), |
712 | 712 | |
713 | 713 | 'email_subscription_trial_body' => array( |
714 | 714 | 'id' => 'email_subscription_trial_body', |
715 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
716 | - 'desc' => wpinv_get_merge_tags_help_text( true ), |
|
715 | + 'name' => __('Email Content', 'invoicing'), |
|
716 | + 'desc' => wpinv_get_merge_tags_help_text(true), |
|
717 | 717 | 'type' => 'rich_editor', |
718 | - 'std' => __( '<p>Hi {first_name},</p><p>Your trial for {subscription_name} is now active and will renew on {subscription_renewal_date}.</p>', 'invoicing' ), |
|
718 | + 'std' => __('<p>Hi {first_name},</p><p>Your trial for {subscription_name} is now active and will renew on {subscription_renewal_date}.</p>', 'invoicing'), |
|
719 | 719 | 'class' => 'large', |
720 | 720 | 'size' => 10, |
721 | 721 | ), |
@@ -725,53 +725,53 @@ discard block |
||
725 | 725 | |
726 | 726 | 'email_subscription_cancelled_header' => array( |
727 | 727 | 'id' => 'email_subscription_cancelled_header', |
728 | - 'name' => '<h3>' . __( 'Subscription Cancelled', 'invoicing' ) . '</h3>', |
|
729 | - 'desc' => __( 'These emails are sent when a customer cancels their subscription.', 'invoicing' ), |
|
728 | + 'name' => '<h3>' . __('Subscription Cancelled', 'invoicing') . '</h3>', |
|
729 | + 'desc' => __('These emails are sent when a customer cancels their subscription.', 'invoicing'), |
|
730 | 730 | 'type' => 'header', |
731 | 731 | ), |
732 | 732 | |
733 | 733 | 'email_subscription_cancelled_active' => array( |
734 | 734 | 'id' => 'email_subscription_cancelled_active', |
735 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
736 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
735 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
736 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
737 | 737 | 'type' => 'checkbox', |
738 | 738 | 'std' => 1, |
739 | 739 | ), |
740 | 740 | |
741 | 741 | 'email_subscription_cancelled_admin_bcc' => array( |
742 | 742 | 'id' => 'email_subscription_cancelled_admin_bcc', |
743 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
744 | - 'desc' => __( 'Check if you want to send a copy of this notification email to the site admin.', 'invoicing' ), |
|
743 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
744 | + 'desc' => __('Check if you want to send a copy of this notification email to the site admin.', 'invoicing'), |
|
745 | 745 | 'type' => 'checkbox', |
746 | 746 | 'std' => 1, |
747 | 747 | ), |
748 | 748 | |
749 | 749 | 'email_subscription_cancelled_subject' => array( |
750 | 750 | 'id' => 'email_subscription_cancelled_subject', |
751 | - 'name' => __( 'Subject', 'invoicing' ), |
|
752 | - 'desc' => __( 'Enter the subject line for the subscription cancelled email.', 'invoicing' ), |
|
751 | + 'name' => __('Subject', 'invoicing'), |
|
752 | + 'desc' => __('Enter the subject line for the subscription cancelled email.', 'invoicing'), |
|
753 | 753 | 'help-tip' => true, |
754 | 754 | 'type' => 'text', |
755 | - 'std' => __( '[{site_title}] Subscription Cancelled', 'invoicing' ), |
|
755 | + 'std' => __('[{site_title}] Subscription Cancelled', 'invoicing'), |
|
756 | 756 | 'size' => 'large', |
757 | 757 | ), |
758 | 758 | |
759 | 759 | 'email_subscription_cancelled_heading' => array( |
760 | 760 | 'id' => 'email_subscription_cancelled_heading', |
761 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
762 | - 'desc' => __( 'Enter the main heading of this email.', 'invoicing' ), |
|
761 | + 'name' => __('Email Heading', 'invoicing'), |
|
762 | + 'desc' => __('Enter the main heading of this email.', 'invoicing'), |
|
763 | 763 | 'help-tip' => true, |
764 | 764 | 'type' => 'text', |
765 | - 'std' => __( 'Subscription Cancelled', 'invoicing' ), |
|
765 | + 'std' => __('Subscription Cancelled', 'invoicing'), |
|
766 | 766 | 'size' => 'large', |
767 | 767 | ), |
768 | 768 | |
769 | 769 | 'email_subscription_cancelled_body' => array( |
770 | 770 | 'id' => 'email_subscription_cancelled_body', |
771 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
772 | - 'desc' => wpinv_get_merge_tags_help_text( true ), |
|
771 | + 'name' => __('Email Content', 'invoicing'), |
|
772 | + 'desc' => wpinv_get_merge_tags_help_text(true), |
|
773 | 773 | 'type' => 'rich_editor', |
774 | - 'std' => __( '<p>Hi {first_name},</p><p>Your subscription for {subscription_name} has been cancelled and will no longer renew.</p>', 'invoicing' ), |
|
774 | + 'std' => __('<p>Hi {first_name},</p><p>Your subscription for {subscription_name} has been cancelled and will no longer renew.</p>', 'invoicing'), |
|
775 | 775 | 'class' => 'large', |
776 | 776 | 'size' => 10, |
777 | 777 | ), |
@@ -781,53 +781,53 @@ discard block |
||
781 | 781 | |
782 | 782 | 'email_subscription_expired_header' => array( |
783 | 783 | 'id' => 'email_subscription_expired_header', |
784 | - 'name' => '<h3>' . __( 'Subscription Expired', 'invoicing' ) . '</h3>', |
|
785 | - 'desc' => __( "These emails are sent when a customer's subscription expires and automatic renewal fails.", 'invoicing' ), |
|
784 | + 'name' => '<h3>' . __('Subscription Expired', 'invoicing') . '</h3>', |
|
785 | + 'desc' => __("These emails are sent when a customer's subscription expires and automatic renewal fails.", 'invoicing'), |
|
786 | 786 | 'type' => 'header', |
787 | 787 | ), |
788 | 788 | |
789 | 789 | 'email_subscription_expired_active' => array( |
790 | 790 | 'id' => 'email_subscription_expired_active', |
791 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
792 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
791 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
792 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
793 | 793 | 'type' => 'checkbox', |
794 | 794 | 'std' => 1, |
795 | 795 | ), |
796 | 796 | |
797 | 797 | 'email_subscription_expired_admin_bcc' => array( |
798 | 798 | 'id' => 'email_subscription_expired_admin_bcc', |
799 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
800 | - 'desc' => __( 'Check if you want to send a copy of this notification email to the site admin.', 'invoicing' ), |
|
799 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
800 | + 'desc' => __('Check if you want to send a copy of this notification email to the site admin.', 'invoicing'), |
|
801 | 801 | 'type' => 'checkbox', |
802 | 802 | 'std' => 1, |
803 | 803 | ), |
804 | 804 | |
805 | 805 | 'email_subscription_expired_subject' => array( |
806 | 806 | 'id' => 'email_subscription_expired_subject', |
807 | - 'name' => __( 'Subject', 'invoicing' ), |
|
808 | - 'desc' => __( 'Enter the subject line for the subscription expired email.', 'invoicing' ), |
|
807 | + 'name' => __('Subject', 'invoicing'), |
|
808 | + 'desc' => __('Enter the subject line for the subscription expired email.', 'invoicing'), |
|
809 | 809 | 'help-tip' => true, |
810 | 810 | 'type' => 'text', |
811 | - 'std' => __( '[{site_title}] Subscription Expired', 'invoicing' ), |
|
811 | + 'std' => __('[{site_title}] Subscription Expired', 'invoicing'), |
|
812 | 812 | 'size' => 'large', |
813 | 813 | ), |
814 | 814 | |
815 | 815 | 'email_subscription_expired_heading' => array( |
816 | 816 | 'id' => 'email_subscription_expired_heading', |
817 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
818 | - 'desc' => __( 'Enter the main heading of this email.', 'invoicing' ), |
|
817 | + 'name' => __('Email Heading', 'invoicing'), |
|
818 | + 'desc' => __('Enter the main heading of this email.', 'invoicing'), |
|
819 | 819 | 'type' => 'text', |
820 | - 'std' => __( 'Subscription Expired', 'invoicing' ), |
|
820 | + 'std' => __('Subscription Expired', 'invoicing'), |
|
821 | 821 | 'help-tip' => true, |
822 | 822 | 'size' => 'large', |
823 | 823 | ), |
824 | 824 | |
825 | 825 | 'email_subscription_expired_body' => array( |
826 | 826 | 'id' => 'email_subscription_expired_body', |
827 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
828 | - 'desc' => wpinv_get_merge_tags_help_text( true ), |
|
827 | + 'name' => __('Email Content', 'invoicing'), |
|
828 | + 'desc' => wpinv_get_merge_tags_help_text(true), |
|
829 | 829 | 'type' => 'rich_editor', |
830 | - 'std' => __( '<p>Hi {first_name},</p><p>Your subscription for {subscription_name} has expired.</p>', 'invoicing' ), |
|
830 | + 'std' => __('<p>Hi {first_name},</p><p>Your subscription for {subscription_name} has expired.</p>', 'invoicing'), |
|
831 | 831 | 'class' => 'large', |
832 | 832 | 'size' => 10, |
833 | 833 | ), |
@@ -837,53 +837,53 @@ discard block |
||
837 | 837 | |
838 | 838 | 'email_subscription_complete_header' => array( |
839 | 839 | 'id' => 'email_subscription_complete_header', |
840 | - 'name' => '<h3>' . __( 'Subscription Complete', 'invoicing' ) . '</h3>', |
|
841 | - 'desc' => __( 'These emails are sent when a customer completes their subscription.', 'invoicing' ), |
|
840 | + 'name' => '<h3>' . __('Subscription Complete', 'invoicing') . '</h3>', |
|
841 | + 'desc' => __('These emails are sent when a customer completes their subscription.', 'invoicing'), |
|
842 | 842 | 'type' => 'header', |
843 | 843 | ), |
844 | 844 | |
845 | 845 | 'email_subscription_complete_active' => array( |
846 | 846 | 'id' => 'email_subscription_complete_active', |
847 | - 'name' => __( 'Enable/Disable', 'invoicing' ), |
|
848 | - 'desc' => __( 'Enable this email notification', 'invoicing' ), |
|
847 | + 'name' => __('Enable/Disable', 'invoicing'), |
|
848 | + 'desc' => __('Enable this email notification', 'invoicing'), |
|
849 | 849 | 'type' => 'checkbox', |
850 | 850 | 'std' => 1, |
851 | 851 | ), |
852 | 852 | |
853 | 853 | 'email_subscription_complete_admin_bcc' => array( |
854 | 854 | 'id' => 'email_subscription_complete_admin_bcc', |
855 | - 'name' => __( 'Enable Admin BCC', 'invoicing' ), |
|
856 | - 'desc' => __( 'Check if you want to send a copy of this notification email to the site admin.', 'invoicing' ), |
|
855 | + 'name' => __('Enable Admin BCC', 'invoicing'), |
|
856 | + 'desc' => __('Check if you want to send a copy of this notification email to the site admin.', 'invoicing'), |
|
857 | 857 | 'type' => 'checkbox', |
858 | 858 | 'std' => 1, |
859 | 859 | ), |
860 | 860 | |
861 | 861 | 'email_subscription_complete_subject' => array( |
862 | 862 | 'id' => 'email_subscription_complete_subject', |
863 | - 'name' => __( 'Subject', 'invoicing' ), |
|
864 | - 'desc' => __( 'Enter the subject line for the subscription complete email.', 'invoicing' ), |
|
863 | + 'name' => __('Subject', 'invoicing'), |
|
864 | + 'desc' => __('Enter the subject line for the subscription complete email.', 'invoicing'), |
|
865 | 865 | 'help-tip' => true, |
866 | 866 | 'type' => 'text', |
867 | - 'std' => __( '[{site_title}] Subscription Complete', 'invoicing' ), |
|
867 | + 'std' => __('[{site_title}] Subscription Complete', 'invoicing'), |
|
868 | 868 | 'size' => 'large', |
869 | 869 | ), |
870 | 870 | |
871 | 871 | 'email_subscription_complete_heading' => array( |
872 | 872 | 'id' => 'email_subscription_complete_heading', |
873 | - 'name' => __( 'Email Heading', 'invoicing' ), |
|
874 | - 'desc' => __( 'Enter the main heading of this email.', 'invoicing' ), |
|
873 | + 'name' => __('Email Heading', 'invoicing'), |
|
874 | + 'desc' => __('Enter the main heading of this email.', 'invoicing'), |
|
875 | 875 | 'help-tip' => true, |
876 | 876 | 'type' => 'text', |
877 | - 'std' => __( 'Subscription Complete', 'invoicing' ), |
|
877 | + 'std' => __('Subscription Complete', 'invoicing'), |
|
878 | 878 | 'size' => 'large', |
879 | 879 | ), |
880 | 880 | |
881 | 881 | 'email_subscription_complete_body' => array( |
882 | 882 | 'id' => 'email_subscription_complete_body', |
883 | - 'name' => __( 'Email Content', 'invoicing' ), |
|
884 | - 'desc' => wpinv_get_merge_tags_help_text( true ), |
|
883 | + 'name' => __('Email Content', 'invoicing'), |
|
884 | + 'desc' => wpinv_get_merge_tags_help_text(true), |
|
885 | 885 | 'type' => 'rich_editor', |
886 | - 'std' => __( '<p>Hi {first_name},</p><p>Your subscription for {subscription_name} is now complete.</p>', 'invoicing' ), |
|
886 | + 'std' => __('<p>Hi {first_name},</p><p>Your subscription for {subscription_name} is now complete.</p>', 'invoicing'), |
|
887 | 887 | 'class' => 'large', |
888 | 888 | 'size' => 10, |
889 | 889 | ), |
@@ -39,62 +39,62 @@ discard block |
||
39 | 39 | <td style="width: 65%"> |
40 | 40 | <?php |
41 | 41 | |
42 | - switch ( $key ) { |
|
42 | + switch ( $key ) { |
|
43 | 43 | |
44 | - case 'status': |
|
45 | - echo esc_html( $subscription->get_status_label() ); |
|
46 | - break; |
|
44 | + case 'status': |
|
45 | + echo esc_html( $subscription->get_status_label() ); |
|
46 | + break; |
|
47 | 47 | |
48 | - case 'start_date': |
|
49 | - echo esc_html( getpaid_format_date_value( $subscription->get_date_created() ) ); |
|
50 | - break; |
|
48 | + case 'start_date': |
|
49 | + echo esc_html( getpaid_format_date_value( $subscription->get_date_created() ) ); |
|
50 | + break; |
|
51 | 51 | |
52 | - case 'expiry_date': |
|
53 | - echo esc_html( getpaid_format_date_value( $subscription->get_next_renewal_date() ) ); |
|
54 | - break; |
|
52 | + case 'expiry_date': |
|
53 | + echo esc_html( getpaid_format_date_value( $subscription->get_next_renewal_date() ) ); |
|
54 | + break; |
|
55 | 55 | |
56 | - case 'initial_amount': |
|
57 | - echo wp_kses_post( wpinv_price( $subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency() ) ); |
|
56 | + case 'initial_amount': |
|
57 | + echo wp_kses_post( wpinv_price( $subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency() ) ); |
|
58 | 58 | |
59 | - if ( $subscription->has_trial_period() ) { |
|
59 | + if ( $subscription->has_trial_period() ) { |
|
60 | 60 | |
61 | - echo "<small class='text-muted'> "; |
|
62 | - printf( |
|
63 | - esc_html_x( '( %1$s trial )', 'Subscription trial period. (e.g.: 1 month trial)', 'invoicing' ), |
|
64 | - esc_html( $subscription->get_trial_period() ) |
|
65 | - ); |
|
66 | - echo '</small>'; |
|
61 | + echo "<small class='text-muted'> "; |
|
62 | + printf( |
|
63 | + esc_html_x( '( %1$s trial )', 'Subscription trial period. (e.g.: 1 month trial)', 'invoicing' ), |
|
64 | + esc_html( $subscription->get_trial_period() ) |
|
65 | + ); |
|
66 | + echo '</small>'; |
|
67 | 67 | |
68 | - } |
|
68 | + } |
|
69 | 69 | |
70 | - break; |
|
70 | + break; |
|
71 | 71 | |
72 | - case 'recurring_amount': |
|
73 | - $frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ); |
|
74 | - $amount = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
75 | - echo wp_kses_post( strtolower( "<strong style='font-weight: 500;'>$amount</strong> / <span class='getpaid-item-recurring-period'>$frequency</span>" ) ); |
|
76 | - break; |
|
72 | + case 'recurring_amount': |
|
73 | + $frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ); |
|
74 | + $amount = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
75 | + echo wp_kses_post( strtolower( "<strong style='font-weight: 500;'>$amount</strong> / <span class='getpaid-item-recurring-period'>$frequency</span>" ) ); |
|
76 | + break; |
|
77 | 77 | |
78 | - case 'item': |
|
79 | - if ( empty( $subscription_group ) ) { |
|
80 | - echo wp_kses_post( WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() ) ); |
|
81 | - } else { |
|
82 | - $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) ); |
|
83 | - echo wp_kses_post( implode( ' | ', $markup ) ); |
|
84 | - } |
|
78 | + case 'item': |
|
79 | + if ( empty( $subscription_group ) ) { |
|
80 | + echo wp_kses_post( WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() ) ); |
|
81 | + } else { |
|
82 | + $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) ); |
|
83 | + echo wp_kses_post( implode( ' | ', $markup ) ); |
|
84 | + } |
|
85 | 85 | |
86 | - break; |
|
86 | + break; |
|
87 | 87 | |
88 | - case 'payments': |
|
89 | - $max_activations = (int) $subscription->get_bill_times(); |
|
90 | - echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_activations ) ? '∞' : (int) $max_activations ); |
|
88 | + case 'payments': |
|
89 | + $max_activations = (int) $subscription->get_bill_times(); |
|
90 | + echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_activations ) ? '∞' : (int) $max_activations ); |
|
91 | 91 | |
92 | - break; |
|
92 | + break; |
|
93 | 93 | |
94 | - } |
|
95 | - do_action( "getpaid_render_single_subscription_column_$key", $subscription ); |
|
94 | + } |
|
95 | + do_action( "getpaid_render_single_subscription_column_$key", $subscription ); |
|
96 | 96 | |
97 | - ?> |
|
97 | + ?> |
|
98 | 98 | </td> |
99 | 99 | |
100 | 100 | </tr> |
@@ -121,17 +121,17 @@ discard block |
||
121 | 121 | <span class="form-text"> |
122 | 122 | |
123 | 123 | <?php |
124 | - if ( $subscription->can_cancel() ) { |
|
125 | - printf( |
|
124 | + if ( $subscription->can_cancel() ) { |
|
125 | + printf( |
|
126 | 126 | '<a href="%s" class="btn btn-danger btn-sm" onclick="return confirm(\'%s\')">%s</a> ', |
127 | 127 | esc_url( $subscription->get_cancel_url() ), |
128 | 128 | esc_attr__( 'Are you sure you want to cancel this subscription?', 'invoicing' ), |
129 | 129 | esc_html__( 'Cancel Subscription', 'invoicing' ) |
130 | 130 | ); |
131 | - } |
|
131 | + } |
|
132 | 132 | |
133 | - do_action( 'getpaid-single-subscription-page-actions', $subscription ); |
|
134 | - ?> |
|
133 | + do_action( 'getpaid-single-subscription-page-actions', $subscription ); |
|
134 | + ?> |
|
135 | 135 | |
136 | 136 | <a href="<?php echo esc_url( getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ) ); ?>" class="btn btn-secondary btn-sm"><?php esc_html_e( 'Go Back', 'invoicing' ); ?></a> |
137 | 137 | </span> |
@@ -1,4 +1,4 @@ discard block |
||
1 | -<?php |
|
1 | + <?php |
|
2 | 2 | |
3 | 3 | /** |
4 | 4 | * Template that prints a single subscription's details |
@@ -10,19 +10,19 @@ discard block |
||
10 | 10 | * @var WPInv_Subscriptions_Widget $widget |
11 | 11 | */ |
12 | 12 | |
13 | -defined( 'ABSPATH' ) || exit; |
|
13 | + defined( 'ABSPATH' ) || exit; |
|
14 | 14 | |
15 | -do_action( 'getpaid_single_subscription_before_notices', $subscription ); |
|
15 | + do_action( 'getpaid_single_subscription_before_notices', $subscription ); |
|
16 | 16 | |
17 | -// Display errors and notices. |
|
18 | -wpinv_print_errors(); |
|
17 | + // Display errors and notices. |
|
18 | + wpinv_print_errors(); |
|
19 | 19 | |
20 | -$subscription_groups = getpaid_get_invoice_subscription_groups( $subscription->get_parent_invoice_id() ); |
|
21 | -$subscription_group = getpaid_get_invoice_subscription_group( $subscription->get_parent_invoice_id(), $subscription->get_id() ); |
|
20 | + $subscription_groups = getpaid_get_invoice_subscription_groups( $subscription->get_parent_invoice_id() ); |
|
21 | + $subscription_group = getpaid_get_invoice_subscription_group( $subscription->get_parent_invoice_id(), $subscription->get_id() ); |
|
22 | 22 | |
23 | -do_action( 'getpaid_before_single_subscription', $subscription, $subscription_groups ); |
|
23 | + do_action( 'getpaid_before_single_subscription', $subscription, $subscription_groups ); |
|
24 | 24 | |
25 | -?> |
|
25 | + ?> |
|
26 | 26 | |
27 | 27 | <h2 class="mb-1 h4"><?php esc_html_e( 'Subscription Details', 'invoicing' ); ?></h2> |
28 | 28 | <table class="table table-bordered"> |
@@ -39,59 +39,59 @@ discard block |
||
39 | 39 | <td style="width: 65%"> |
40 | 40 | <?php |
41 | 41 | |
42 | - switch ( $key ) { |
|
42 | + switch ( $key ) { |
|
43 | 43 | |
44 | - case 'status': |
|
45 | - echo esc_html( $subscription->get_status_label() ); |
|
46 | - break; |
|
44 | + case 'status': |
|
45 | + echo esc_html( $subscription->get_status_label() ); |
|
46 | + break; |
|
47 | 47 | |
48 | - case 'start_date': |
|
49 | - echo esc_html( getpaid_format_date_value( $subscription->get_date_created() ) ); |
|
50 | - break; |
|
48 | + case 'start_date': |
|
49 | + echo esc_html( getpaid_format_date_value( $subscription->get_date_created() ) ); |
|
50 | + break; |
|
51 | 51 | |
52 | - case 'expiry_date': |
|
53 | - echo esc_html( getpaid_format_date_value( $subscription->get_next_renewal_date() ) ); |
|
54 | - break; |
|
52 | + case 'expiry_date': |
|
53 | + echo esc_html( getpaid_format_date_value( $subscription->get_next_renewal_date() ) ); |
|
54 | + break; |
|
55 | 55 | |
56 | - case 'initial_amount': |
|
57 | - echo wp_kses_post( wpinv_price( $subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency() ) ); |
|
56 | + case 'initial_amount': |
|
57 | + echo wp_kses_post( wpinv_price( $subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency() ) ); |
|
58 | 58 | |
59 | - if ( $subscription->has_trial_period() ) { |
|
59 | + if ( $subscription->has_trial_period() ) { |
|
60 | 60 | |
61 | - echo "<small class='text-muted'> "; |
|
62 | - printf( |
|
63 | - esc_html_x( '( %1$s trial )', 'Subscription trial period. (e.g.: 1 month trial)', 'invoicing' ), |
|
64 | - esc_html( $subscription->get_trial_period() ) |
|
65 | - ); |
|
66 | - echo '</small>'; |
|
61 | + echo "<small class='text-muted'> "; |
|
62 | + printf( |
|
63 | + esc_html_x( '( %1$s trial )', 'Subscription trial period. (e.g.: 1 month trial)', 'invoicing' ), |
|
64 | + esc_html( $subscription->get_trial_period() ) |
|
65 | + ); |
|
66 | + echo '</small>'; |
|
67 | 67 | |
68 | - } |
|
68 | + } |
|
69 | 69 | |
70 | - break; |
|
70 | + break; |
|
71 | 71 | |
72 | - case 'recurring_amount': |
|
73 | - $frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ); |
|
74 | - $amount = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
75 | - echo wp_kses_post( strtolower( "<strong style='font-weight: 500;'>$amount</strong> / <span class='getpaid-item-recurring-period'>$frequency</span>" ) ); |
|
76 | - break; |
|
72 | + case 'recurring_amount': |
|
73 | + $frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ); |
|
74 | + $amount = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
75 | + echo wp_kses_post( strtolower( "<strong style='font-weight: 500;'>$amount</strong> / <span class='getpaid-item-recurring-period'>$frequency</span>" ) ); |
|
76 | + break; |
|
77 | 77 | |
78 | - case 'item': |
|
79 | - if ( empty( $subscription_group ) ) { |
|
80 | - echo wp_kses_post( WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() ) ); |
|
81 | - } else { |
|
82 | - $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) ); |
|
83 | - echo wp_kses_post( implode( ' | ', $markup ) ); |
|
84 | - } |
|
78 | + case 'item': |
|
79 | + if ( empty( $subscription_group ) ) { |
|
80 | + echo wp_kses_post( WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() ) ); |
|
81 | + } else { |
|
82 | + $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) ); |
|
83 | + echo wp_kses_post( implode( ' | ', $markup ) ); |
|
84 | + } |
|
85 | 85 | |
86 | - break; |
|
86 | + break; |
|
87 | 87 | |
88 | - case 'payments': |
|
89 | - $max_activations = (int) $subscription->get_bill_times(); |
|
90 | - echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_activations ) ? '∞' : (int) $max_activations ); |
|
88 | + case 'payments': |
|
89 | + $max_activations = (int) $subscription->get_bill_times(); |
|
90 | + echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_activations ) ? '∞' : (int) $max_activations ); |
|
91 | 91 | |
92 | - break; |
|
92 | + break; |
|
93 | 93 | |
94 | - } |
|
94 | + } |
|
95 | 95 | do_action( "getpaid_render_single_subscription_column_$key", $subscription ); |
96 | 96 | |
97 | 97 | ?> |
@@ -10,58 +10,58 @@ discard block |
||
10 | 10 | * @var WPInv_Subscriptions_Widget $widget |
11 | 11 | */ |
12 | 12 | |
13 | -defined( 'ABSPATH' ) || exit; |
|
13 | +defined('ABSPATH') || exit; |
|
14 | 14 | |
15 | -do_action( 'getpaid_single_subscription_before_notices', $subscription ); |
|
15 | +do_action('getpaid_single_subscription_before_notices', $subscription); |
|
16 | 16 | |
17 | 17 | // Display errors and notices. |
18 | 18 | wpinv_print_errors(); |
19 | 19 | |
20 | -$subscription_groups = getpaid_get_invoice_subscription_groups( $subscription->get_parent_invoice_id() ); |
|
21 | -$subscription_group = getpaid_get_invoice_subscription_group( $subscription->get_parent_invoice_id(), $subscription->get_id() ); |
|
20 | +$subscription_groups = getpaid_get_invoice_subscription_groups($subscription->get_parent_invoice_id()); |
|
21 | +$subscription_group = getpaid_get_invoice_subscription_group($subscription->get_parent_invoice_id(), $subscription->get_id()); |
|
22 | 22 | |
23 | -do_action( 'getpaid_before_single_subscription', $subscription, $subscription_groups ); |
|
23 | +do_action('getpaid_before_single_subscription', $subscription, $subscription_groups); |
|
24 | 24 | |
25 | 25 | ?> |
26 | 26 | |
27 | -<h2 class="mb-1 h4"><?php esc_html_e( 'Subscription Details', 'invoicing' ); ?></h2> |
|
27 | +<h2 class="mb-1 h4"><?php esc_html_e('Subscription Details', 'invoicing'); ?></h2> |
|
28 | 28 | <table class="table table-bordered"> |
29 | 29 | <tbody> |
30 | 30 | |
31 | - <?php foreach ( $widget->get_single_subscription_columns( $subscription ) as $key => $label ) : ?> |
|
31 | + <?php foreach ($widget->get_single_subscription_columns($subscription) as $key => $label) : ?> |
|
32 | 32 | |
33 | - <tr class="getpaid-subscription-meta-<?php echo esc_attr( $key ); ?>"> |
|
33 | + <tr class="getpaid-subscription-meta-<?php echo esc_attr($key); ?>"> |
|
34 | 34 | |
35 | 35 | <th class="font-weight-bold" style="width: 35%"> |
36 | - <?php echo esc_html( $label ); ?> |
|
36 | + <?php echo esc_html($label); ?> |
|
37 | 37 | </th> |
38 | 38 | |
39 | 39 | <td style="width: 65%"> |
40 | 40 | <?php |
41 | 41 | |
42 | - switch ( $key ) { |
|
42 | + switch ($key) { |
|
43 | 43 | |
44 | 44 | case 'status': |
45 | - echo esc_html( $subscription->get_status_label() ); |
|
45 | + echo esc_html($subscription->get_status_label()); |
|
46 | 46 | break; |
47 | 47 | |
48 | 48 | case 'start_date': |
49 | - echo esc_html( getpaid_format_date_value( $subscription->get_date_created() ) ); |
|
49 | + echo esc_html(getpaid_format_date_value($subscription->get_date_created())); |
|
50 | 50 | break; |
51 | 51 | |
52 | 52 | case 'expiry_date': |
53 | - echo esc_html( getpaid_format_date_value( $subscription->get_next_renewal_date() ) ); |
|
53 | + echo esc_html(getpaid_format_date_value($subscription->get_next_renewal_date())); |
|
54 | 54 | break; |
55 | 55 | |
56 | 56 | case 'initial_amount': |
57 | - echo wp_kses_post( wpinv_price( $subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency() ) ); |
|
57 | + echo wp_kses_post(wpinv_price($subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency())); |
|
58 | 58 | |
59 | - if ( $subscription->has_trial_period() ) { |
|
59 | + if ($subscription->has_trial_period()) { |
|
60 | 60 | |
61 | 61 | echo "<small class='text-muted'> "; |
62 | 62 | printf( |
63 | - esc_html_x( '( %1$s trial )', 'Subscription trial period. (e.g.: 1 month trial)', 'invoicing' ), |
|
64 | - esc_html( $subscription->get_trial_period() ) |
|
63 | + esc_html_x('( %1$s trial )', 'Subscription trial period. (e.g.: 1 month trial)', 'invoicing'), |
|
64 | + esc_html($subscription->get_trial_period()) |
|
65 | 65 | ); |
66 | 66 | echo '</small>'; |
67 | 67 | |
@@ -70,29 +70,29 @@ discard block |
||
70 | 70 | break; |
71 | 71 | |
72 | 72 | case 'recurring_amount': |
73 | - $frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ); |
|
74 | - $amount = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
75 | - echo wp_kses_post( strtolower( "<strong style='font-weight: 500;'>$amount</strong> / <span class='getpaid-item-recurring-period'>$frequency</span>" ) ); |
|
73 | + $frequency = getpaid_get_subscription_period_label($subscription->get_period(), $subscription->get_frequency(), ''); |
|
74 | + $amount = wpinv_price($subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency()); |
|
75 | + echo wp_kses_post(strtolower("<strong style='font-weight: 500;'>$amount</strong> / <span class='getpaid-item-recurring-period'>$frequency</span>")); |
|
76 | 76 | break; |
77 | 77 | |
78 | 78 | case 'item': |
79 | - if ( empty( $subscription_group ) ) { |
|
80 | - echo wp_kses_post( WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() ) ); |
|
79 | + if (empty($subscription_group)) { |
|
80 | + echo wp_kses_post(WPInv_Subscriptions_List_Table::generate_item_markup($subscription->get_product_id())); |
|
81 | 81 | } else { |
82 | - $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) ); |
|
83 | - echo wp_kses_post( implode( ' | ', $markup ) ); |
|
82 | + $markup = array_map(array('WPInv_Subscriptions_List_Table', 'generate_item_markup'), array_keys($subscription_group['items'])); |
|
83 | + echo wp_kses_post(implode(' | ', $markup)); |
|
84 | 84 | } |
85 | 85 | |
86 | 86 | break; |
87 | 87 | |
88 | 88 | case 'payments': |
89 | 89 | $max_activations = (int) $subscription->get_bill_times(); |
90 | - echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_activations ) ? '∞' : (int) $max_activations ); |
|
90 | + echo ((int) $subscription->get_times_billed()) . ' / ' . (empty($max_activations) ? '∞' : (int) $max_activations); |
|
91 | 91 | |
92 | 92 | break; |
93 | 93 | |
94 | 94 | } |
95 | - do_action( "getpaid_render_single_subscription_column_$key", $subscription ); |
|
95 | + do_action("getpaid_render_single_subscription_column_$key", $subscription); |
|
96 | 96 | |
97 | 97 | ?> |
98 | 98 | </td> |
@@ -104,34 +104,34 @@ discard block |
||
104 | 104 | </tbody> |
105 | 105 | </table> |
106 | 106 | |
107 | -<?php if ( ! empty( $subscription_group ) ) : ?> |
|
108 | - <h2 class='mt-5 mb-1 h4'><?php esc_html_e( 'Subscription Items', 'invoicing' ); ?></h2> |
|
109 | - <?php getpaid_admin_subscription_item_details_metabox( $subscription ); ?> |
|
107 | +<?php if (!empty($subscription_group)) : ?> |
|
108 | + <h2 class='mt-5 mb-1 h4'><?php esc_html_e('Subscription Items', 'invoicing'); ?></h2> |
|
109 | + <?php getpaid_admin_subscription_item_details_metabox($subscription); ?> |
|
110 | 110 | <?php endif; ?> |
111 | 111 | |
112 | -<h2 class='mt-5 mb-1 h4'><?php esc_html_e( 'Related Invoices', 'invoicing' ); ?></h2> |
|
112 | +<h2 class='mt-5 mb-1 h4'><?php esc_html_e('Related Invoices', 'invoicing'); ?></h2> |
|
113 | 113 | |
114 | -<?php echo wp_kses_post( getpaid_admin_subscription_invoice_details_metabox( $subscription ) ); ?> |
|
114 | +<?php echo wp_kses_post(getpaid_admin_subscription_invoice_details_metabox($subscription)); ?> |
|
115 | 115 | |
116 | -<?php if ( 1 < count( $subscription_groups ) ) : ?> |
|
117 | - <h2 class='mt-5 mb-1 h4'><?php esc_html_e( 'Related Subscriptions', 'invoicing' ); ?></h2> |
|
118 | - <?php getpaid_admin_subscription_related_subscriptions_metabox( $subscription ); ?> |
|
116 | +<?php if (1 < count($subscription_groups)) : ?> |
|
117 | + <h2 class='mt-5 mb-1 h4'><?php esc_html_e('Related Subscriptions', 'invoicing'); ?></h2> |
|
118 | + <?php getpaid_admin_subscription_related_subscriptions_metabox($subscription); ?> |
|
119 | 119 | <?php endif; ?> |
120 | 120 | |
121 | 121 | <span class="form-text"> |
122 | 122 | |
123 | 123 | <?php |
124 | - if ( $subscription->can_cancel() ) { |
|
124 | + if ($subscription->can_cancel()) { |
|
125 | 125 | printf( |
126 | 126 | '<a href="%s" class="btn btn-danger btn-sm" onclick="return confirm(\'%s\')">%s</a> ', |
127 | - esc_url( $subscription->get_cancel_url() ), |
|
128 | - esc_attr__( 'Are you sure you want to cancel this subscription?', 'invoicing' ), |
|
129 | - esc_html__( 'Cancel Subscription', 'invoicing' ) |
|
127 | + esc_url($subscription->get_cancel_url()), |
|
128 | + esc_attr__('Are you sure you want to cancel this subscription?', 'invoicing'), |
|
129 | + esc_html__('Cancel Subscription', 'invoicing') |
|
130 | 130 | ); |
131 | 131 | } |
132 | 132 | |
133 | - do_action( 'getpaid-single-subscription-page-actions', $subscription ); |
|
133 | + do_action('getpaid-single-subscription-page-actions', $subscription); |
|
134 | 134 | ?> |
135 | 135 | |
136 | - <a href="<?php echo esc_url( getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ) ); ?>" class="btn btn-secondary btn-sm"><?php esc_html_e( 'Go Back', 'invoicing' ); ?></a> |
|
136 | + <a href="<?php echo esc_url(getpaid_get_tab_url('gp-subscriptions', get_permalink((int) wpinv_get_option('invoice_subscription_page')))); ?>" class="btn btn-secondary btn-sm"><?php esc_html_e('Go Back', 'invoicing'); ?></a> |
|
137 | 137 | </span> |
@@ -12,478 +12,478 @@ |
||
12 | 12 | */ |
13 | 13 | class GetPaid_Paypal_Gateway_IPN_Handler { |
14 | 14 | |
15 | - /** |
|
16 | - * Payment method id. |
|
17 | - * |
|
18 | - * @var string |
|
19 | - */ |
|
20 | - protected $id = 'paypal'; |
|
21 | - |
|
22 | - /** |
|
23 | - * Payment method object. |
|
24 | - * |
|
25 | - * @var GetPaid_Paypal_Gateway |
|
26 | - */ |
|
27 | - protected $gateway; |
|
28 | - |
|
29 | - /** |
|
30 | - * Class constructor. |
|
31 | - * |
|
32 | - * @param GetPaid_Paypal_Gateway $gateway |
|
33 | - */ |
|
34 | - public function __construct( $gateway ) { |
|
35 | - $this->gateway = $gateway; |
|
36 | - $this->verify_ipn(); |
|
37 | - } |
|
38 | - |
|
39 | - /** |
|
40 | - * Processes ipns and marks payments as complete. |
|
41 | - * |
|
42 | - * @return void |
|
43 | - */ |
|
44 | - public function verify_ipn() { |
|
45 | - |
|
46 | - wpinv_error_log( 'GetPaid PayPal IPN Handler', false ); |
|
47 | - |
|
48 | - // Validate the IPN. |
|
49 | - if ( empty( $_POST ) || ! $this->validate_ipn() ) { |
|
50 | - wp_die( 'PayPal IPN Request Failure', 500 ); |
|
51 | - } |
|
52 | - |
|
53 | - // Process the IPN. |
|
54 | - $posted = wp_unslash( $_POST ); |
|
55 | - $invoice = $this->get_ipn_invoice( $posted ); |
|
56 | - |
|
57 | - // Abort if it was not paid by our gateway. |
|
58 | - if ( $this->id != $invoice->get_gateway() ) { |
|
59 | - wpinv_error_log( 'Aborting, Invoice was not paid via PayPal', false ); |
|
60 | - wp_die( 'Invoice not paid via PayPal', 200 ); |
|
61 | - } |
|
62 | - |
|
63 | - $posted['payment_status'] = isset( $posted['payment_status'] ) ? sanitize_key( strtolower( $posted['payment_status'] ) ) : ''; |
|
64 | - $posted['txn_type'] = sanitize_key( strtolower( $posted['txn_type'] ) ); |
|
65 | - |
|
66 | - wpinv_error_log( 'Payment status:' . $posted['payment_status'], false ); |
|
67 | - wpinv_error_log( 'IPN Type:' . $posted['txn_type'], false ); |
|
68 | - |
|
69 | - if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) { |
|
70 | - call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted ); |
|
71 | - wpinv_error_log( 'Done processing IPN', false ); |
|
72 | - wp_die( 'Processed', 200 ); |
|
73 | - } |
|
74 | - |
|
75 | - wpinv_error_log( 'Aborting, Unsupported IPN type:' . $posted['txn_type'], false ); |
|
76 | - wp_die( 'Unsupported IPN type', 200 ); |
|
77 | - |
|
78 | - } |
|
79 | - |
|
80 | - /** |
|
81 | - * Retrieves IPN Invoice. |
|
82 | - * |
|
83 | - * @param array $posted |
|
84 | - * @return WPInv_Invoice |
|
85 | - */ |
|
86 | - protected function get_ipn_invoice( $posted ) { |
|
87 | - |
|
88 | - wpinv_error_log( 'Retrieving PayPal IPN Response Invoice', false ); |
|
89 | - |
|
90 | - if ( ! empty( $posted['custom'] ) ) { |
|
91 | - $invoice = new WPInv_Invoice( $posted['custom'] ); |
|
92 | - |
|
93 | - if ( $invoice->exists() ) { |
|
94 | - wpinv_error_log( 'Found invoice #' . $invoice->get_number(), false ); |
|
95 | - return $invoice; |
|
96 | - } |
|
97 | - } |
|
98 | - |
|
99 | - wpinv_error_log( 'Could not retrieve the associated invoice.', false ); |
|
100 | - wp_die( 'Could not retrieve the associated invoice.', 200 ); |
|
101 | - } |
|
102 | - |
|
103 | - /** |
|
104 | - * Check PayPal IPN validity. |
|
105 | - */ |
|
106 | - protected function validate_ipn() { |
|
107 | - |
|
108 | - wpinv_error_log( 'Validating PayPal IPN response', false ); |
|
109 | - |
|
110 | - // Retrieve the associated invoice. |
|
111 | - $posted = wp_unslash( $_POST ); |
|
112 | - $invoice = $this->get_ipn_invoice( $posted ); |
|
113 | - |
|
114 | - if ( $this->gateway->is_sandbox( $invoice ) ) { |
|
115 | - wpinv_error_log( $posted, 'Invoice was processed in sandbox hence logging the posted data', false ); |
|
116 | - } |
|
117 | - |
|
118 | - // Validate the IPN. |
|
119 | - $posted['cmd'] = '_notify-validate'; |
|
120 | - |
|
121 | - // Send back post vars to paypal. |
|
122 | - $params = array( |
|
123 | - 'body' => $posted, |
|
124 | - 'timeout' => 60, |
|
125 | - 'httpversion' => '1.1', |
|
126 | - 'compress' => false, |
|
127 | - 'decompress' => false, |
|
128 | - 'user-agent' => 'GetPaid/' . WPINV_VERSION, |
|
129 | - ); |
|
130 | - |
|
131 | - // Post back to get a response. |
|
132 | - $response = wp_safe_remote_post( $this->gateway->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params ); |
|
133 | - |
|
134 | - // Check to see if the request was valid. |
|
135 | - if ( ! is_wp_error( $response ) && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) { |
|
136 | - $invoice->add_note( 'Received valid response from PayPal IPN: ' . $response['body'], false, false, true ); |
|
137 | - wpinv_error_log( 'Received valid response from PayPal IPN: ' . $response['body'], false ); |
|
138 | - return true; |
|
139 | - } |
|
140 | - |
|
141 | - $invoice->add_note( 'IPN message:' . wp_json_encode( $posted ), false, false, true ); |
|
142 | - |
|
143 | - if ( is_wp_error( $response ) ) { |
|
144 | - $invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response->get_error_message(), false, false, true ); |
|
145 | - wpinv_error_log( $response->get_error_message(), 'Received invalid response from PayPal IPN' ); |
|
146 | - return false; |
|
147 | - } |
|
148 | - |
|
149 | - $invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response['body'], false, false, true ); |
|
150 | - wpinv_error_log( $response['body'], 'Received invalid response from PayPal IPN' ); |
|
151 | - return false; |
|
152 | - |
|
153 | - } |
|
154 | - |
|
155 | - /** |
|
156 | - * Check currency from IPN matches the invoice. |
|
157 | - * |
|
158 | - * @param WPInv_Invoice $invoice Invoice object. |
|
159 | - * @param string $currency currency to validate. |
|
160 | - */ |
|
161 | - protected function validate_ipn_currency( $invoice, $currency ) { |
|
15 | + /** |
|
16 | + * Payment method id. |
|
17 | + * |
|
18 | + * @var string |
|
19 | + */ |
|
20 | + protected $id = 'paypal'; |
|
21 | + |
|
22 | + /** |
|
23 | + * Payment method object. |
|
24 | + * |
|
25 | + * @var GetPaid_Paypal_Gateway |
|
26 | + */ |
|
27 | + protected $gateway; |
|
28 | + |
|
29 | + /** |
|
30 | + * Class constructor. |
|
31 | + * |
|
32 | + * @param GetPaid_Paypal_Gateway $gateway |
|
33 | + */ |
|
34 | + public function __construct( $gateway ) { |
|
35 | + $this->gateway = $gateway; |
|
36 | + $this->verify_ipn(); |
|
37 | + } |
|
38 | + |
|
39 | + /** |
|
40 | + * Processes ipns and marks payments as complete. |
|
41 | + * |
|
42 | + * @return void |
|
43 | + */ |
|
44 | + public function verify_ipn() { |
|
45 | + |
|
46 | + wpinv_error_log( 'GetPaid PayPal IPN Handler', false ); |
|
47 | + |
|
48 | + // Validate the IPN. |
|
49 | + if ( empty( $_POST ) || ! $this->validate_ipn() ) { |
|
50 | + wp_die( 'PayPal IPN Request Failure', 500 ); |
|
51 | + } |
|
52 | + |
|
53 | + // Process the IPN. |
|
54 | + $posted = wp_unslash( $_POST ); |
|
55 | + $invoice = $this->get_ipn_invoice( $posted ); |
|
56 | + |
|
57 | + // Abort if it was not paid by our gateway. |
|
58 | + if ( $this->id != $invoice->get_gateway() ) { |
|
59 | + wpinv_error_log( 'Aborting, Invoice was not paid via PayPal', false ); |
|
60 | + wp_die( 'Invoice not paid via PayPal', 200 ); |
|
61 | + } |
|
62 | + |
|
63 | + $posted['payment_status'] = isset( $posted['payment_status'] ) ? sanitize_key( strtolower( $posted['payment_status'] ) ) : ''; |
|
64 | + $posted['txn_type'] = sanitize_key( strtolower( $posted['txn_type'] ) ); |
|
65 | + |
|
66 | + wpinv_error_log( 'Payment status:' . $posted['payment_status'], false ); |
|
67 | + wpinv_error_log( 'IPN Type:' . $posted['txn_type'], false ); |
|
68 | + |
|
69 | + if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) { |
|
70 | + call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted ); |
|
71 | + wpinv_error_log( 'Done processing IPN', false ); |
|
72 | + wp_die( 'Processed', 200 ); |
|
73 | + } |
|
74 | + |
|
75 | + wpinv_error_log( 'Aborting, Unsupported IPN type:' . $posted['txn_type'], false ); |
|
76 | + wp_die( 'Unsupported IPN type', 200 ); |
|
77 | + |
|
78 | + } |
|
79 | + |
|
80 | + /** |
|
81 | + * Retrieves IPN Invoice. |
|
82 | + * |
|
83 | + * @param array $posted |
|
84 | + * @return WPInv_Invoice |
|
85 | + */ |
|
86 | + protected function get_ipn_invoice( $posted ) { |
|
87 | + |
|
88 | + wpinv_error_log( 'Retrieving PayPal IPN Response Invoice', false ); |
|
89 | + |
|
90 | + if ( ! empty( $posted['custom'] ) ) { |
|
91 | + $invoice = new WPInv_Invoice( $posted['custom'] ); |
|
92 | + |
|
93 | + if ( $invoice->exists() ) { |
|
94 | + wpinv_error_log( 'Found invoice #' . $invoice->get_number(), false ); |
|
95 | + return $invoice; |
|
96 | + } |
|
97 | + } |
|
98 | + |
|
99 | + wpinv_error_log( 'Could not retrieve the associated invoice.', false ); |
|
100 | + wp_die( 'Could not retrieve the associated invoice.', 200 ); |
|
101 | + } |
|
102 | + |
|
103 | + /** |
|
104 | + * Check PayPal IPN validity. |
|
105 | + */ |
|
106 | + protected function validate_ipn() { |
|
107 | + |
|
108 | + wpinv_error_log( 'Validating PayPal IPN response', false ); |
|
109 | + |
|
110 | + // Retrieve the associated invoice. |
|
111 | + $posted = wp_unslash( $_POST ); |
|
112 | + $invoice = $this->get_ipn_invoice( $posted ); |
|
113 | + |
|
114 | + if ( $this->gateway->is_sandbox( $invoice ) ) { |
|
115 | + wpinv_error_log( $posted, 'Invoice was processed in sandbox hence logging the posted data', false ); |
|
116 | + } |
|
117 | + |
|
118 | + // Validate the IPN. |
|
119 | + $posted['cmd'] = '_notify-validate'; |
|
120 | + |
|
121 | + // Send back post vars to paypal. |
|
122 | + $params = array( |
|
123 | + 'body' => $posted, |
|
124 | + 'timeout' => 60, |
|
125 | + 'httpversion' => '1.1', |
|
126 | + 'compress' => false, |
|
127 | + 'decompress' => false, |
|
128 | + 'user-agent' => 'GetPaid/' . WPINV_VERSION, |
|
129 | + ); |
|
130 | + |
|
131 | + // Post back to get a response. |
|
132 | + $response = wp_safe_remote_post( $this->gateway->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params ); |
|
133 | + |
|
134 | + // Check to see if the request was valid. |
|
135 | + if ( ! is_wp_error( $response ) && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) { |
|
136 | + $invoice->add_note( 'Received valid response from PayPal IPN: ' . $response['body'], false, false, true ); |
|
137 | + wpinv_error_log( 'Received valid response from PayPal IPN: ' . $response['body'], false ); |
|
138 | + return true; |
|
139 | + } |
|
140 | + |
|
141 | + $invoice->add_note( 'IPN message:' . wp_json_encode( $posted ), false, false, true ); |
|
142 | + |
|
143 | + if ( is_wp_error( $response ) ) { |
|
144 | + $invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response->get_error_message(), false, false, true ); |
|
145 | + wpinv_error_log( $response->get_error_message(), 'Received invalid response from PayPal IPN' ); |
|
146 | + return false; |
|
147 | + } |
|
148 | + |
|
149 | + $invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response['body'], false, false, true ); |
|
150 | + wpinv_error_log( $response['body'], 'Received invalid response from PayPal IPN' ); |
|
151 | + return false; |
|
152 | + |
|
153 | + } |
|
154 | + |
|
155 | + /** |
|
156 | + * Check currency from IPN matches the invoice. |
|
157 | + * |
|
158 | + * @param WPInv_Invoice $invoice Invoice object. |
|
159 | + * @param string $currency currency to validate. |
|
160 | + */ |
|
161 | + protected function validate_ipn_currency( $invoice, $currency ) { |
|
162 | 162 | |
163 | - if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) { |
|
163 | + if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) { |
|
164 | 164 | |
165 | - /* translators: %s: currency code. */ |
|
166 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) ); |
|
165 | + /* translators: %s: currency code. */ |
|
166 | + $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) ); |
|
167 | 167 | |
168 | - wpinv_error_log( "Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true ); |
|
169 | - } |
|
168 | + wpinv_error_log( "Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true ); |
|
169 | + } |
|
170 | 170 | |
171 | - wpinv_error_log( $currency, 'Validated IPN Currency', false ); |
|
172 | - } |
|
171 | + wpinv_error_log( $currency, 'Validated IPN Currency', false ); |
|
172 | + } |
|
173 | 173 | |
174 | - /** |
|
175 | - * Check payment amount from IPN matches the invoice. |
|
176 | - * |
|
177 | - * @param WPInv_Invoice $invoice Invoice object. |
|
178 | - * @param float $amount amount to validate. |
|
179 | - */ |
|
180 | - protected function validate_ipn_amount( $invoice, $amount ) { |
|
181 | - if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) { |
|
174 | + /** |
|
175 | + * Check payment amount from IPN matches the invoice. |
|
176 | + * |
|
177 | + * @param WPInv_Invoice $invoice Invoice object. |
|
178 | + * @param float $amount amount to validate. |
|
179 | + */ |
|
180 | + protected function validate_ipn_amount( $invoice, $amount ) { |
|
181 | + if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) { |
|
182 | 182 | |
183 | - /* translators: %s: Amount. */ |
|
184 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) ); |
|
183 | + /* translators: %s: Amount. */ |
|
184 | + $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) ); |
|
185 | 185 | |
186 | - wpinv_error_log( "Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true ); |
|
187 | - } |
|
186 | + wpinv_error_log( "Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true ); |
|
187 | + } |
|
188 | 188 | |
189 | - wpinv_error_log( $amount, 'Validated IPN Amount', false ); |
|
190 | - } |
|
189 | + wpinv_error_log( $amount, 'Validated IPN Amount', false ); |
|
190 | + } |
|
191 | 191 | |
192 | - /** |
|
193 | - * Verify receiver email from PayPal. |
|
194 | - * |
|
195 | - * @param WPInv_Invoice $invoice Invoice object. |
|
196 | - * @param string $receiver_email Email to validate. |
|
197 | - */ |
|
198 | - protected function validate_ipn_receiver_email( $invoice, $receiver_email ) { |
|
199 | - $paypal_email = wpinv_get_option( 'paypal_email' ); |
|
192 | + /** |
|
193 | + * Verify receiver email from PayPal. |
|
194 | + * |
|
195 | + * @param WPInv_Invoice $invoice Invoice object. |
|
196 | + * @param string $receiver_email Email to validate. |
|
197 | + */ |
|
198 | + protected function validate_ipn_receiver_email( $invoice, $receiver_email ) { |
|
199 | + $paypal_email = wpinv_get_option( 'paypal_email' ); |
|
200 | 200 | |
201 | - if ( $receiver_email && strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) { |
|
202 | - wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}" ); |
|
201 | + if ( $receiver_email && strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) { |
|
202 | + wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}" ); |
|
203 | 203 | |
204 | - /* translators: %s: email address . */ |
|
205 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s).', 'invoicing' ), $receiver_email ) ); |
|
204 | + /* translators: %s: email address . */ |
|
205 | + $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s).', 'invoicing' ), $receiver_email ) ); |
|
206 | 206 | |
207 | - return wpinv_error_log( "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}", 'IPN Error', __FILE__, __LINE__, true ); |
|
208 | - } |
|
207 | + return wpinv_error_log( "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}", 'IPN Error', __FILE__, __LINE__, true ); |
|
208 | + } |
|
209 | 209 | |
210 | - wpinv_error_log( 'Validated PayPal Email', false ); |
|
211 | - } |
|
210 | + wpinv_error_log( 'Validated PayPal Email', false ); |
|
211 | + } |
|
212 | 212 | |
213 | - /** |
|
214 | - * Handles one time payments. |
|
215 | - * |
|
216 | - * @param WPInv_Invoice $invoice Invoice object. |
|
217 | - * @param array $posted Posted data. |
|
218 | - */ |
|
219 | - protected function ipn_txn_web_accept( $invoice, $posted ) { |
|
213 | + /** |
|
214 | + * Handles one time payments. |
|
215 | + * |
|
216 | + * @param WPInv_Invoice $invoice Invoice object. |
|
217 | + * @param array $posted Posted data. |
|
218 | + */ |
|
219 | + protected function ipn_txn_web_accept( $invoice, $posted ) { |
|
220 | 220 | |
221 | - // Collect payment details |
|
222 | - $payment_status = strtolower( $posted['payment_status'] ); |
|
223 | - $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] ); |
|
221 | + // Collect payment details |
|
222 | + $payment_status = strtolower( $posted['payment_status'] ); |
|
223 | + $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] ); |
|
224 | 224 | |
225 | - $this->validate_ipn_receiver_email( $invoice, $business_email ); |
|
226 | - $this->validate_ipn_currency( $invoice, $posted['mc_currency'] ); |
|
225 | + $this->validate_ipn_receiver_email( $invoice, $business_email ); |
|
226 | + $this->validate_ipn_currency( $invoice, $posted['mc_currency'] ); |
|
227 | 227 | |
228 | - // Update the transaction id. |
|
229 | - if ( ! empty( $posted['txn_id'] ) ) { |
|
230 | - $invoice->set_transaction_id( wpinv_clean( $posted['txn_id'] ) ); |
|
231 | - $invoice->save(); |
|
232 | - } |
|
228 | + // Update the transaction id. |
|
229 | + if ( ! empty( $posted['txn_id'] ) ) { |
|
230 | + $invoice->set_transaction_id( wpinv_clean( $posted['txn_id'] ) ); |
|
231 | + $invoice->save(); |
|
232 | + } |
|
233 | 233 | |
234 | - $invoice->add_system_note( __( 'Processing invoice IPN', 'invoicing' ) ); |
|
234 | + $invoice->add_system_note( __( 'Processing invoice IPN', 'invoicing' ) ); |
|
235 | 235 | |
236 | - // Process a refund. |
|
237 | - if ( 'refunded' === $payment_status || 'reversed' === $payment_status ) { |
|
236 | + // Process a refund. |
|
237 | + if ( 'refunded' === $payment_status || 'reversed' === $payment_status ) { |
|
238 | 238 | |
239 | - update_post_meta( $invoice->get_id(), 'refunded_remotely', 1 ); |
|
239 | + update_post_meta( $invoice->get_id(), 'refunded_remotely', 1 ); |
|
240 | 240 | |
241 | - if ( ! $invoice->is_refunded() ) { |
|
242 | - $invoice->update_status( 'wpi-refunded', $posted['reason_code'] ); |
|
243 | - } |
|
241 | + if ( ! $invoice->is_refunded() ) { |
|
242 | + $invoice->update_status( 'wpi-refunded', $posted['reason_code'] ); |
|
243 | + } |
|
244 | 244 | |
245 | - return wpinv_error_log( $posted['reason_code'], false ); |
|
246 | - } |
|
245 | + return wpinv_error_log( $posted['reason_code'], false ); |
|
246 | + } |
|
247 | 247 | |
248 | - // Process payments. |
|
249 | - if ( 'completed' === $payment_status ) { |
|
248 | + // Process payments. |
|
249 | + if ( 'completed' === $payment_status ) { |
|
250 | 250 | |
251 | - if ( $invoice->is_paid() && 'wpi_processing' != $invoice->get_status() ) { |
|
252 | - return wpinv_error_log( 'Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false ); |
|
253 | - } |
|
251 | + if ( $invoice->is_paid() && 'wpi_processing' != $invoice->get_status() ) { |
|
252 | + return wpinv_error_log( 'Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false ); |
|
253 | + } |
|
254 | 254 | |
255 | - $this->validate_ipn_amount( $invoice, $posted['mc_gross'] ); |
|
255 | + $this->validate_ipn_amount( $invoice, $posted['mc_gross'] ); |
|
256 | 256 | |
257 | - $note = ''; |
|
257 | + $note = ''; |
|
258 | 258 | |
259 | - if ( ! empty( $posted['mc_fee'] ) ) { |
|
260 | - $note = sprintf( __( 'PayPal Transaction Fee %s.', 'invoicing' ), sanitize_text_field( $posted['mc_fee'] ) ); |
|
261 | - } |
|
259 | + if ( ! empty( $posted['mc_fee'] ) ) { |
|
260 | + $note = sprintf( __( 'PayPal Transaction Fee %s.', 'invoicing' ), sanitize_text_field( $posted['mc_fee'] ) ); |
|
261 | + } |
|
262 | 262 | |
263 | - if ( ! empty( $posted['payer_status'] ) ) { |
|
264 | - $note = ' ' . sprintf( __( 'Buyer status %s.', 'invoicing' ), sanitize_text_field( $posted['payer_status'] ) ); |
|
265 | - } |
|
263 | + if ( ! empty( $posted['payer_status'] ) ) { |
|
264 | + $note = ' ' . sprintf( __( 'Buyer status %s.', 'invoicing' ), sanitize_text_field( $posted['payer_status'] ) ); |
|
265 | + } |
|
266 | 266 | |
267 | - $invoice->mark_paid( ( ! empty( $posted['txn_id'] ) ? sanitize_text_field( $posted['txn_id'] ) : '' ), trim( $note ) ); |
|
268 | - return wpinv_error_log( 'Invoice marked as paid.', false ); |
|
267 | + $invoice->mark_paid( ( ! empty( $posted['txn_id'] ) ? sanitize_text_field( $posted['txn_id'] ) : '' ), trim( $note ) ); |
|
268 | + return wpinv_error_log( 'Invoice marked as paid.', false ); |
|
269 | 269 | |
270 | - } |
|
270 | + } |
|
271 | 271 | |
272 | - // Pending payments. |
|
273 | - if ( 'pending' === $payment_status ) { |
|
272 | + // Pending payments. |
|
273 | + if ( 'pending' === $payment_status ) { |
|
274 | 274 | |
275 | - /* translators: %s: pending reason. */ |
|
276 | - $invoice->update_status( 'wpi-onhold', sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ) ); |
|
275 | + /* translators: %s: pending reason. */ |
|
276 | + $invoice->update_status( 'wpi-onhold', sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ) ); |
|
277 | 277 | |
278 | - return wpinv_error_log( 'Invoice marked as "payment held".', false ); |
|
279 | - } |
|
278 | + return wpinv_error_log( 'Invoice marked as "payment held".', false ); |
|
279 | + } |
|
280 | 280 | |
281 | - /* translators: %s: payment status. */ |
|
282 | - $invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), sanitize_text_field( $posted['payment_status'] ) ) ); |
|
281 | + /* translators: %s: payment status. */ |
|
282 | + $invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), sanitize_text_field( $posted['payment_status'] ) ) ); |
|
283 | 283 | |
284 | - } |
|
284 | + } |
|
285 | 285 | |
286 | - /** |
|
287 | - * Handles one time payments. |
|
288 | - * |
|
289 | - * @param WPInv_Invoice $invoice Invoice object. |
|
290 | - * @param array $posted Posted data. |
|
291 | - */ |
|
292 | - protected function ipn_txn_cart( $invoice, $posted ) { |
|
293 | - $this->ipn_txn_web_accept( $invoice, $posted ); |
|
294 | - } |
|
286 | + /** |
|
287 | + * Handles one time payments. |
|
288 | + * |
|
289 | + * @param WPInv_Invoice $invoice Invoice object. |
|
290 | + * @param array $posted Posted data. |
|
291 | + */ |
|
292 | + protected function ipn_txn_cart( $invoice, $posted ) { |
|
293 | + $this->ipn_txn_web_accept( $invoice, $posted ); |
|
294 | + } |
|
295 | 295 | |
296 | - /** |
|
297 | - * Handles subscription sign ups. |
|
298 | - * |
|
299 | - * @param WPInv_Invoice $invoice Invoice object. |
|
300 | - * @param array $posted Posted data. |
|
301 | - */ |
|
302 | - protected function ipn_txn_subscr_signup( $invoice, $posted ) { |
|
296 | + /** |
|
297 | + * Handles subscription sign ups. |
|
298 | + * |
|
299 | + * @param WPInv_Invoice $invoice Invoice object. |
|
300 | + * @param array $posted Posted data. |
|
301 | + */ |
|
302 | + protected function ipn_txn_subscr_signup( $invoice, $posted ) { |
|
303 | 303 | |
304 | - wpinv_error_log( 'Processing subscription signup', false ); |
|
304 | + wpinv_error_log( 'Processing subscription signup', false ); |
|
305 | 305 | |
306 | - // Make sure the invoice has a subscription. |
|
307 | - $subscription = getpaid_get_invoice_subscription( $invoice ); |
|
306 | + // Make sure the invoice has a subscription. |
|
307 | + $subscription = getpaid_get_invoice_subscription( $invoice ); |
|
308 | 308 | |
309 | - if ( empty( $subscription ) ) { |
|
310 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
311 | - } |
|
309 | + if ( empty( $subscription ) ) { |
|
310 | + return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
311 | + } |
|
312 | 312 | |
313 | - wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false ); |
|
313 | + wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false ); |
|
314 | 314 | |
315 | - // Validate the IPN. |
|
316 | - $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] ); |
|
317 | - $this->validate_ipn_receiver_email( $invoice, $business_email ); |
|
318 | - $this->validate_ipn_currency( $invoice, $posted['mc_currency'] ); |
|
315 | + // Validate the IPN. |
|
316 | + $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] ); |
|
317 | + $this->validate_ipn_receiver_email( $invoice, $business_email ); |
|
318 | + $this->validate_ipn_currency( $invoice, $posted['mc_currency'] ); |
|
319 | 319 | |
320 | - // Activate the subscription. |
|
321 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
322 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
323 | - $subscription->set_expiration( date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ) ); |
|
324 | - $subscription->set_profile_id( sanitize_text_field( $posted['subscr_id'] ) ); |
|
325 | - $subscription->activate(); |
|
320 | + // Activate the subscription. |
|
321 | + $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
322 | + $subscription->set_date_created( current_time( 'mysql' ) ); |
|
323 | + $subscription->set_expiration( date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ) ); |
|
324 | + $subscription->set_profile_id( sanitize_text_field( $posted['subscr_id'] ) ); |
|
325 | + $subscription->activate(); |
|
326 | 326 | |
327 | - // Set the transaction id. |
|
328 | - if ( ! empty( $posted['txn_id'] ) ) { |
|
329 | - $invoice->add_note( sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true ); |
|
330 | - $invoice->set_transaction_id( $posted['txn_id'] ); |
|
331 | - } |
|
327 | + // Set the transaction id. |
|
328 | + if ( ! empty( $posted['txn_id'] ) ) { |
|
329 | + $invoice->add_note( sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true ); |
|
330 | + $invoice->set_transaction_id( $posted['txn_id'] ); |
|
331 | + } |
|
332 | 332 | |
333 | - // Update the payment status. |
|
334 | - $invoice->mark_paid(); |
|
333 | + // Update the payment status. |
|
334 | + $invoice->mark_paid(); |
|
335 | 335 | |
336 | - $invoice->add_note( sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true ); |
|
336 | + $invoice->add_note( sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true ); |
|
337 | 337 | |
338 | - wpinv_error_log( 'Subscription started.', false ); |
|
339 | - } |
|
338 | + wpinv_error_log( 'Subscription started.', false ); |
|
339 | + } |
|
340 | 340 | |
341 | - /** |
|
342 | - * Handles subscription renewals. |
|
343 | - * |
|
344 | - * @param WPInv_Invoice $invoice Invoice object. |
|
345 | - * @param array $posted Posted data. |
|
346 | - */ |
|
347 | - protected function ipn_txn_subscr_payment( $invoice, $posted ) { |
|
341 | + /** |
|
342 | + * Handles subscription renewals. |
|
343 | + * |
|
344 | + * @param WPInv_Invoice $invoice Invoice object. |
|
345 | + * @param array $posted Posted data. |
|
346 | + */ |
|
347 | + protected function ipn_txn_subscr_payment( $invoice, $posted ) { |
|
348 | 348 | |
349 | - // Make sure the invoice has a subscription. |
|
350 | - $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
349 | + // Make sure the invoice has a subscription. |
|
350 | + $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
351 | 351 | |
352 | - if ( empty( $subscription ) ) { |
|
353 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
354 | - } |
|
352 | + if ( empty( $subscription ) ) { |
|
353 | + return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
354 | + } |
|
355 | 355 | |
356 | - wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false ); |
|
356 | + wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false ); |
|
357 | 357 | |
358 | - // PayPal sends a subscr_payment for the first payment too. |
|
359 | - $date_completed = getpaid_format_date( $invoice->get_date_completed() ); |
|
360 | - $date_created = getpaid_format_date( $invoice->get_date_created() ); |
|
361 | - $today_date = getpaid_format_date( current_time( 'mysql' ) ); |
|
362 | - $payment_date = getpaid_format_date( $posted['payment_date'] ); |
|
363 | - $subscribe_date = getpaid_format_date( $subscription->get_date_created() ); |
|
364 | - $dates = array_filter( compact( 'date_completed', 'date_created', 'subscribe_date' ) ); |
|
358 | + // PayPal sends a subscr_payment for the first payment too. |
|
359 | + $date_completed = getpaid_format_date( $invoice->get_date_completed() ); |
|
360 | + $date_created = getpaid_format_date( $invoice->get_date_created() ); |
|
361 | + $today_date = getpaid_format_date( current_time( 'mysql' ) ); |
|
362 | + $payment_date = getpaid_format_date( $posted['payment_date'] ); |
|
363 | + $subscribe_date = getpaid_format_date( $subscription->get_date_created() ); |
|
364 | + $dates = array_filter( compact( 'date_completed', 'date_created', 'subscribe_date' ) ); |
|
365 | 365 | |
366 | - foreach ( $dates as $date ) { |
|
366 | + foreach ( $dates as $date ) { |
|
367 | 367 | |
368 | - if ( $date !== $today_date && $date !== $payment_date ) { |
|
369 | - continue; |
|
370 | - } |
|
368 | + if ( $date !== $today_date && $date !== $payment_date ) { |
|
369 | + continue; |
|
370 | + } |
|
371 | 371 | |
372 | - if ( ! empty( $posted['txn_id'] ) ) { |
|
373 | - $invoice->set_transaction_id( sanitize_text_field( $posted['txn_id'] ) ); |
|
374 | - $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), sanitize_text_field( $posted['txn_id'] ) ), false, false, true ); |
|
375 | - } |
|
372 | + if ( ! empty( $posted['txn_id'] ) ) { |
|
373 | + $invoice->set_transaction_id( sanitize_text_field( $posted['txn_id'] ) ); |
|
374 | + $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), sanitize_text_field( $posted['txn_id'] ) ), false, false, true ); |
|
375 | + } |
|
376 | 376 | |
377 | - return $invoice->mark_paid(); |
|
378 | - |
|
379 | - } |
|
377 | + return $invoice->mark_paid(); |
|
378 | + |
|
379 | + } |
|
380 | 380 | |
381 | - wpinv_error_log( 'Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false ); |
|
382 | - |
|
383 | - // Abort if the payment is already recorded. |
|
384 | - if ( wpinv_get_id_by_transaction_id( $posted['txn_id'] ) ) { |
|
385 | - return wpinv_error_log( 'Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false ); |
|
386 | - } |
|
387 | - |
|
388 | - $args = array( |
|
389 | - 'transaction_id' => $posted['txn_id'], |
|
390 | - 'gateway' => $this->id, |
|
391 | - ); |
|
392 | - |
|
393 | - $invoice = wpinv_get_invoice( $subscription->add_payment( $args ) ); |
|
381 | + wpinv_error_log( 'Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false ); |
|
382 | + |
|
383 | + // Abort if the payment is already recorded. |
|
384 | + if ( wpinv_get_id_by_transaction_id( $posted['txn_id'] ) ) { |
|
385 | + return wpinv_error_log( 'Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false ); |
|
386 | + } |
|
387 | + |
|
388 | + $args = array( |
|
389 | + 'transaction_id' => $posted['txn_id'], |
|
390 | + 'gateway' => $this->id, |
|
391 | + ); |
|
392 | + |
|
393 | + $invoice = wpinv_get_invoice( $subscription->add_payment( $args ) ); |
|
394 | 394 | |
395 | - if ( empty( $invoice ) ) { |
|
396 | - return; |
|
397 | - } |
|
395 | + if ( empty( $invoice ) ) { |
|
396 | + return; |
|
397 | + } |
|
398 | 398 | |
399 | - $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true ); |
|
400 | - $invoice->add_note( wp_sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true ); |
|
399 | + $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true ); |
|
400 | + $invoice->add_note( wp_sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true ); |
|
401 | 401 | |
402 | - $subscription->renew(); |
|
403 | - wpinv_error_log( 'Subscription renewed.', false ); |
|
402 | + $subscription->renew(); |
|
403 | + wpinv_error_log( 'Subscription renewed.', false ); |
|
404 | 404 | |
405 | - } |
|
405 | + } |
|
406 | 406 | |
407 | - /** |
|
408 | - * Handles subscription cancelations. |
|
409 | - * |
|
410 | - * @param WPInv_Invoice $invoice Invoice object. |
|
411 | - */ |
|
412 | - protected function ipn_txn_subscr_cancel( $invoice ) { |
|
407 | + /** |
|
408 | + * Handles subscription cancelations. |
|
409 | + * |
|
410 | + * @param WPInv_Invoice $invoice Invoice object. |
|
411 | + */ |
|
412 | + protected function ipn_txn_subscr_cancel( $invoice ) { |
|
413 | 413 | |
414 | - // Make sure the invoice has a subscription. |
|
415 | - $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
416 | - |
|
417 | - if ( empty( $subscription ) ) { |
|
418 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
419 | - } |
|
420 | - |
|
421 | - wpinv_error_log( 'Processing subscription cancellation for the invoice ' . $invoice->get_id(), false ); |
|
422 | - $subscription->cancel(); |
|
423 | - wpinv_error_log( 'Subscription cancelled.', false ); |
|
414 | + // Make sure the invoice has a subscription. |
|
415 | + $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
416 | + |
|
417 | + if ( empty( $subscription ) ) { |
|
418 | + return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
419 | + } |
|
420 | + |
|
421 | + wpinv_error_log( 'Processing subscription cancellation for the invoice ' . $invoice->get_id(), false ); |
|
422 | + $subscription->cancel(); |
|
423 | + wpinv_error_log( 'Subscription cancelled.', false ); |
|
424 | 424 | |
425 | - } |
|
425 | + } |
|
426 | 426 | |
427 | - /** |
|
428 | - * Handles subscription completions. |
|
429 | - * |
|
430 | - * @param WPInv_Invoice $invoice Invoice object. |
|
431 | - * @param array $posted Posted data. |
|
432 | - */ |
|
433 | - protected function ipn_txn_subscr_eot( $invoice ) { |
|
427 | + /** |
|
428 | + * Handles subscription completions. |
|
429 | + * |
|
430 | + * @param WPInv_Invoice $invoice Invoice object. |
|
431 | + * @param array $posted Posted data. |
|
432 | + */ |
|
433 | + protected function ipn_txn_subscr_eot( $invoice ) { |
|
434 | 434 | |
435 | - // Make sure the invoice has a subscription. |
|
436 | - $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
435 | + // Make sure the invoice has a subscription. |
|
436 | + $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
437 | 437 | |
438 | - if ( empty( $subscription ) ) { |
|
439 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
440 | - } |
|
438 | + if ( empty( $subscription ) ) { |
|
439 | + return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
440 | + } |
|
441 | 441 | |
442 | - wpinv_error_log( 'Processing subscription end of life for the invoice ' . $invoice->get_id(), false ); |
|
443 | - $subscription->complete(); |
|
444 | - wpinv_error_log( 'Subscription completed.', false ); |
|
442 | + wpinv_error_log( 'Processing subscription end of life for the invoice ' . $invoice->get_id(), false ); |
|
443 | + $subscription->complete(); |
|
444 | + wpinv_error_log( 'Subscription completed.', false ); |
|
445 | 445 | |
446 | - } |
|
446 | + } |
|
447 | 447 | |
448 | - /** |
|
449 | - * Handles subscription fails. |
|
450 | - * |
|
451 | - * @param WPInv_Invoice $invoice Invoice object. |
|
452 | - * @param array $posted Posted data. |
|
453 | - */ |
|
454 | - protected function ipn_txn_subscr_failed( $invoice ) { |
|
448 | + /** |
|
449 | + * Handles subscription fails. |
|
450 | + * |
|
451 | + * @param WPInv_Invoice $invoice Invoice object. |
|
452 | + * @param array $posted Posted data. |
|
453 | + */ |
|
454 | + protected function ipn_txn_subscr_failed( $invoice ) { |
|
455 | 455 | |
456 | - // Make sure the invoice has a subscription. |
|
457 | - $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
456 | + // Make sure the invoice has a subscription. |
|
457 | + $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
458 | 458 | |
459 | - if ( empty( $subscription ) ) { |
|
460 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
461 | - } |
|
459 | + if ( empty( $subscription ) ) { |
|
460 | + return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
461 | + } |
|
462 | 462 | |
463 | - wpinv_error_log( 'Processing subscription payment failure for the invoice ' . $invoice->get_id(), false ); |
|
464 | - $subscription->failing(); |
|
465 | - wpinv_error_log( 'Subscription marked as failing.', false ); |
|
463 | + wpinv_error_log( 'Processing subscription payment failure for the invoice ' . $invoice->get_id(), false ); |
|
464 | + $subscription->failing(); |
|
465 | + wpinv_error_log( 'Subscription marked as failing.', false ); |
|
466 | 466 | |
467 | - } |
|
467 | + } |
|
468 | 468 | |
469 | - /** |
|
470 | - * Handles subscription suspensions. |
|
471 | - * |
|
472 | - * @param WPInv_Invoice $invoice Invoice object. |
|
473 | - * @param array $posted Posted data. |
|
474 | - */ |
|
475 | - protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment( $invoice ) { |
|
469 | + /** |
|
470 | + * Handles subscription suspensions. |
|
471 | + * |
|
472 | + * @param WPInv_Invoice $invoice Invoice object. |
|
473 | + * @param array $posted Posted data. |
|
474 | + */ |
|
475 | + protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment( $invoice ) { |
|
476 | 476 | |
477 | - // Make sure the invoice has a subscription. |
|
478 | - $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
477 | + // Make sure the invoice has a subscription. |
|
478 | + $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
479 | 479 | |
480 | - if ( empty( $subscription ) ) { |
|
481 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
482 | - } |
|
483 | - |
|
484 | - wpinv_error_log( 'Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false ); |
|
485 | - $subscription->cancel(); |
|
486 | - wpinv_error_log( 'Subscription cancelled.', false ); |
|
487 | - } |
|
480 | + if ( empty( $subscription ) ) { |
|
481 | + return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
482 | + } |
|
483 | + |
|
484 | + wpinv_error_log( 'Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false ); |
|
485 | + $subscription->cancel(); |
|
486 | + wpinv_error_log( 'Subscription cancelled.', false ); |
|
487 | + } |
|
488 | 488 | |
489 | 489 | } |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * Paypal Payment Gateway IPN handler class. |
@@ -31,7 +31,7 @@ discard block |
||
31 | 31 | * |
32 | 32 | * @param GetPaid_Paypal_Gateway $gateway |
33 | 33 | */ |
34 | - public function __construct( $gateway ) { |
|
34 | + public function __construct($gateway) { |
|
35 | 35 | $this->gateway = $gateway; |
36 | 36 | $this->verify_ipn(); |
37 | 37 | } |
@@ -43,37 +43,37 @@ discard block |
||
43 | 43 | */ |
44 | 44 | public function verify_ipn() { |
45 | 45 | |
46 | - wpinv_error_log( 'GetPaid PayPal IPN Handler', false ); |
|
46 | + wpinv_error_log('GetPaid PayPal IPN Handler', false); |
|
47 | 47 | |
48 | 48 | // Validate the IPN. |
49 | - if ( empty( $_POST ) || ! $this->validate_ipn() ) { |
|
50 | - wp_die( 'PayPal IPN Request Failure', 500 ); |
|
49 | + if (empty($_POST) || !$this->validate_ipn()) { |
|
50 | + wp_die('PayPal IPN Request Failure', 500); |
|
51 | 51 | } |
52 | 52 | |
53 | 53 | // Process the IPN. |
54 | - $posted = wp_unslash( $_POST ); |
|
55 | - $invoice = $this->get_ipn_invoice( $posted ); |
|
54 | + $posted = wp_unslash($_POST); |
|
55 | + $invoice = $this->get_ipn_invoice($posted); |
|
56 | 56 | |
57 | 57 | // Abort if it was not paid by our gateway. |
58 | - if ( $this->id != $invoice->get_gateway() ) { |
|
59 | - wpinv_error_log( 'Aborting, Invoice was not paid via PayPal', false ); |
|
60 | - wp_die( 'Invoice not paid via PayPal', 200 ); |
|
58 | + if ($this->id != $invoice->get_gateway()) { |
|
59 | + wpinv_error_log('Aborting, Invoice was not paid via PayPal', false); |
|
60 | + wp_die('Invoice not paid via PayPal', 200); |
|
61 | 61 | } |
62 | 62 | |
63 | - $posted['payment_status'] = isset( $posted['payment_status'] ) ? sanitize_key( strtolower( $posted['payment_status'] ) ) : ''; |
|
64 | - $posted['txn_type'] = sanitize_key( strtolower( $posted['txn_type'] ) ); |
|
63 | + $posted['payment_status'] = isset($posted['payment_status']) ? sanitize_key(strtolower($posted['payment_status'])) : ''; |
|
64 | + $posted['txn_type'] = sanitize_key(strtolower($posted['txn_type'])); |
|
65 | 65 | |
66 | - wpinv_error_log( 'Payment status:' . $posted['payment_status'], false ); |
|
67 | - wpinv_error_log( 'IPN Type:' . $posted['txn_type'], false ); |
|
66 | + wpinv_error_log('Payment status:' . $posted['payment_status'], false); |
|
67 | + wpinv_error_log('IPN Type:' . $posted['txn_type'], false); |
|
68 | 68 | |
69 | - if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) { |
|
70 | - call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted ); |
|
71 | - wpinv_error_log( 'Done processing IPN', false ); |
|
72 | - wp_die( 'Processed', 200 ); |
|
69 | + if (method_exists($this, 'ipn_txn_' . $posted['txn_type'])) { |
|
70 | + call_user_func(array($this, 'ipn_txn_' . $posted['txn_type']), $invoice, $posted); |
|
71 | + wpinv_error_log('Done processing IPN', false); |
|
72 | + wp_die('Processed', 200); |
|
73 | 73 | } |
74 | 74 | |
75 | - wpinv_error_log( 'Aborting, Unsupported IPN type:' . $posted['txn_type'], false ); |
|
76 | - wp_die( 'Unsupported IPN type', 200 ); |
|
75 | + wpinv_error_log('Aborting, Unsupported IPN type:' . $posted['txn_type'], false); |
|
76 | + wp_die('Unsupported IPN type', 200); |
|
77 | 77 | |
78 | 78 | } |
79 | 79 | |
@@ -83,21 +83,21 @@ discard block |
||
83 | 83 | * @param array $posted |
84 | 84 | * @return WPInv_Invoice |
85 | 85 | */ |
86 | - protected function get_ipn_invoice( $posted ) { |
|
86 | + protected function get_ipn_invoice($posted) { |
|
87 | 87 | |
88 | - wpinv_error_log( 'Retrieving PayPal IPN Response Invoice', false ); |
|
88 | + wpinv_error_log('Retrieving PayPal IPN Response Invoice', false); |
|
89 | 89 | |
90 | - if ( ! empty( $posted['custom'] ) ) { |
|
91 | - $invoice = new WPInv_Invoice( $posted['custom'] ); |
|
90 | + if (!empty($posted['custom'])) { |
|
91 | + $invoice = new WPInv_Invoice($posted['custom']); |
|
92 | 92 | |
93 | - if ( $invoice->exists() ) { |
|
94 | - wpinv_error_log( 'Found invoice #' . $invoice->get_number(), false ); |
|
93 | + if ($invoice->exists()) { |
|
94 | + wpinv_error_log('Found invoice #' . $invoice->get_number(), false); |
|
95 | 95 | return $invoice; |
96 | 96 | } |
97 | 97 | } |
98 | 98 | |
99 | - wpinv_error_log( 'Could not retrieve the associated invoice.', false ); |
|
100 | - wp_die( 'Could not retrieve the associated invoice.', 200 ); |
|
99 | + wpinv_error_log('Could not retrieve the associated invoice.', false); |
|
100 | + wp_die('Could not retrieve the associated invoice.', 200); |
|
101 | 101 | } |
102 | 102 | |
103 | 103 | /** |
@@ -105,14 +105,14 @@ discard block |
||
105 | 105 | */ |
106 | 106 | protected function validate_ipn() { |
107 | 107 | |
108 | - wpinv_error_log( 'Validating PayPal IPN response', false ); |
|
108 | + wpinv_error_log('Validating PayPal IPN response', false); |
|
109 | 109 | |
110 | 110 | // Retrieve the associated invoice. |
111 | - $posted = wp_unslash( $_POST ); |
|
112 | - $invoice = $this->get_ipn_invoice( $posted ); |
|
111 | + $posted = wp_unslash($_POST); |
|
112 | + $invoice = $this->get_ipn_invoice($posted); |
|
113 | 113 | |
114 | - if ( $this->gateway->is_sandbox( $invoice ) ) { |
|
115 | - wpinv_error_log( $posted, 'Invoice was processed in sandbox hence logging the posted data', false ); |
|
114 | + if ($this->gateway->is_sandbox($invoice)) { |
|
115 | + wpinv_error_log($posted, 'Invoice was processed in sandbox hence logging the posted data', false); |
|
116 | 116 | } |
117 | 117 | |
118 | 118 | // Validate the IPN. |
@@ -129,25 +129,25 @@ discard block |
||
129 | 129 | ); |
130 | 130 | |
131 | 131 | // Post back to get a response. |
132 | - $response = wp_safe_remote_post( $this->gateway->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params ); |
|
132 | + $response = wp_safe_remote_post($this->gateway->is_sandbox($invoice) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params); |
|
133 | 133 | |
134 | 134 | // Check to see if the request was valid. |
135 | - if ( ! is_wp_error( $response ) && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) { |
|
136 | - $invoice->add_note( 'Received valid response from PayPal IPN: ' . $response['body'], false, false, true ); |
|
137 | - wpinv_error_log( 'Received valid response from PayPal IPN: ' . $response['body'], false ); |
|
135 | + if (!is_wp_error($response) && $response['response']['code'] < 300 && strstr($response['body'], 'VERIFIED')) { |
|
136 | + $invoice->add_note('Received valid response from PayPal IPN: ' . $response['body'], false, false, true); |
|
137 | + wpinv_error_log('Received valid response from PayPal IPN: ' . $response['body'], false); |
|
138 | 138 | return true; |
139 | 139 | } |
140 | 140 | |
141 | - $invoice->add_note( 'IPN message:' . wp_json_encode( $posted ), false, false, true ); |
|
141 | + $invoice->add_note('IPN message:' . wp_json_encode($posted), false, false, true); |
|
142 | 142 | |
143 | - if ( is_wp_error( $response ) ) { |
|
144 | - $invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response->get_error_message(), false, false, true ); |
|
145 | - wpinv_error_log( $response->get_error_message(), 'Received invalid response from PayPal IPN' ); |
|
143 | + if (is_wp_error($response)) { |
|
144 | + $invoice->add_note('Received invalid response from PayPal IPN: ' . $response->get_error_message(), false, false, true); |
|
145 | + wpinv_error_log($response->get_error_message(), 'Received invalid response from PayPal IPN'); |
|
146 | 146 | return false; |
147 | 147 | } |
148 | 148 | |
149 | - $invoice->add_note( 'Received invalid response from PayPal IPN: ' . $response['body'], false, false, true ); |
|
150 | - wpinv_error_log( $response['body'], 'Received invalid response from PayPal IPN' ); |
|
149 | + $invoice->add_note('Received invalid response from PayPal IPN: ' . $response['body'], false, false, true); |
|
150 | + wpinv_error_log($response['body'], 'Received invalid response from PayPal IPN'); |
|
151 | 151 | return false; |
152 | 152 | |
153 | 153 | } |
@@ -158,17 +158,17 @@ discard block |
||
158 | 158 | * @param WPInv_Invoice $invoice Invoice object. |
159 | 159 | * @param string $currency currency to validate. |
160 | 160 | */ |
161 | - protected function validate_ipn_currency( $invoice, $currency ) { |
|
161 | + protected function validate_ipn_currency($invoice, $currency) { |
|
162 | 162 | |
163 | - if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) { |
|
163 | + if (strtolower($invoice->get_currency()) !== strtolower($currency)) { |
|
164 | 164 | |
165 | 165 | /* translators: %s: currency code. */ |
166 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) ); |
|
166 | + $invoice->update_status('wpi-processing', sprintf(__('Validation error: PayPal currencies do not match (code %s).', 'invoicing'), $currency)); |
|
167 | 167 | |
168 | - wpinv_error_log( "Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true ); |
|
168 | + wpinv_error_log("Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true); |
|
169 | 169 | } |
170 | 170 | |
171 | - wpinv_error_log( $currency, 'Validated IPN Currency', false ); |
|
171 | + wpinv_error_log($currency, 'Validated IPN Currency', false); |
|
172 | 172 | } |
173 | 173 | |
174 | 174 | /** |
@@ -177,16 +177,16 @@ discard block |
||
177 | 177 | * @param WPInv_Invoice $invoice Invoice object. |
178 | 178 | * @param float $amount amount to validate. |
179 | 179 | */ |
180 | - protected function validate_ipn_amount( $invoice, $amount ) { |
|
181 | - if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) { |
|
180 | + protected function validate_ipn_amount($invoice, $amount) { |
|
181 | + if (number_format($invoice->get_total(), 2, '.', '') !== number_format($amount, 2, '.', '')) { |
|
182 | 182 | |
183 | 183 | /* translators: %s: Amount. */ |
184 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) ); |
|
184 | + $invoice->update_status('wpi-processing', sprintf(__('Validation error: PayPal amounts do not match (gross %s).', 'invoicing'), $amount)); |
|
185 | 185 | |
186 | - wpinv_error_log( "Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true ); |
|
186 | + wpinv_error_log("Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true); |
|
187 | 187 | } |
188 | 188 | |
189 | - wpinv_error_log( $amount, 'Validated IPN Amount', false ); |
|
189 | + wpinv_error_log($amount, 'Validated IPN Amount', false); |
|
190 | 190 | } |
191 | 191 | |
192 | 192 | /** |
@@ -195,19 +195,19 @@ discard block |
||
195 | 195 | * @param WPInv_Invoice $invoice Invoice object. |
196 | 196 | * @param string $receiver_email Email to validate. |
197 | 197 | */ |
198 | - protected function validate_ipn_receiver_email( $invoice, $receiver_email ) { |
|
199 | - $paypal_email = wpinv_get_option( 'paypal_email' ); |
|
198 | + protected function validate_ipn_receiver_email($invoice, $receiver_email) { |
|
199 | + $paypal_email = wpinv_get_option('paypal_email'); |
|
200 | 200 | |
201 | - if ( $receiver_email && strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) { |
|
202 | - wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}" ); |
|
201 | + if ($receiver_email && strcasecmp(trim($receiver_email), trim($paypal_email)) !== 0) { |
|
202 | + wpinv_record_gateway_error('IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}"); |
|
203 | 203 | |
204 | 204 | /* translators: %s: email address . */ |
205 | - $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s).', 'invoicing' ), $receiver_email ) ); |
|
205 | + $invoice->update_status('wpi-processing', sprintf(__('Validation error: PayPal IPN response from a different email address (%s).', 'invoicing'), $receiver_email)); |
|
206 | 206 | |
207 | - return wpinv_error_log( "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}", 'IPN Error', __FILE__, __LINE__, true ); |
|
207 | + return wpinv_error_log("IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}", 'IPN Error', __FILE__, __LINE__, true); |
|
208 | 208 | } |
209 | 209 | |
210 | - wpinv_error_log( 'Validated PayPal Email', false ); |
|
210 | + wpinv_error_log('Validated PayPal Email', false); |
|
211 | 211 | } |
212 | 212 | |
213 | 213 | /** |
@@ -216,70 +216,70 @@ discard block |
||
216 | 216 | * @param WPInv_Invoice $invoice Invoice object. |
217 | 217 | * @param array $posted Posted data. |
218 | 218 | */ |
219 | - protected function ipn_txn_web_accept( $invoice, $posted ) { |
|
219 | + protected function ipn_txn_web_accept($invoice, $posted) { |
|
220 | 220 | |
221 | 221 | // Collect payment details |
222 | - $payment_status = strtolower( $posted['payment_status'] ); |
|
223 | - $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] ); |
|
222 | + $payment_status = strtolower($posted['payment_status']); |
|
223 | + $business_email = isset($posted['business']) && is_email($posted['business']) ? trim($posted['business']) : trim($posted['receiver_email']); |
|
224 | 224 | |
225 | - $this->validate_ipn_receiver_email( $invoice, $business_email ); |
|
226 | - $this->validate_ipn_currency( $invoice, $posted['mc_currency'] ); |
|
225 | + $this->validate_ipn_receiver_email($invoice, $business_email); |
|
226 | + $this->validate_ipn_currency($invoice, $posted['mc_currency']); |
|
227 | 227 | |
228 | 228 | // Update the transaction id. |
229 | - if ( ! empty( $posted['txn_id'] ) ) { |
|
230 | - $invoice->set_transaction_id( wpinv_clean( $posted['txn_id'] ) ); |
|
229 | + if (!empty($posted['txn_id'])) { |
|
230 | + $invoice->set_transaction_id(wpinv_clean($posted['txn_id'])); |
|
231 | 231 | $invoice->save(); |
232 | 232 | } |
233 | 233 | |
234 | - $invoice->add_system_note( __( 'Processing invoice IPN', 'invoicing' ) ); |
|
234 | + $invoice->add_system_note(__('Processing invoice IPN', 'invoicing')); |
|
235 | 235 | |
236 | 236 | // Process a refund. |
237 | - if ( 'refunded' === $payment_status || 'reversed' === $payment_status ) { |
|
237 | + if ('refunded' === $payment_status || 'reversed' === $payment_status) { |
|
238 | 238 | |
239 | - update_post_meta( $invoice->get_id(), 'refunded_remotely', 1 ); |
|
239 | + update_post_meta($invoice->get_id(), 'refunded_remotely', 1); |
|
240 | 240 | |
241 | - if ( ! $invoice->is_refunded() ) { |
|
242 | - $invoice->update_status( 'wpi-refunded', $posted['reason_code'] ); |
|
241 | + if (!$invoice->is_refunded()) { |
|
242 | + $invoice->update_status('wpi-refunded', $posted['reason_code']); |
|
243 | 243 | } |
244 | 244 | |
245 | - return wpinv_error_log( $posted['reason_code'], false ); |
|
245 | + return wpinv_error_log($posted['reason_code'], false); |
|
246 | 246 | } |
247 | 247 | |
248 | 248 | // Process payments. |
249 | - if ( 'completed' === $payment_status ) { |
|
249 | + if ('completed' === $payment_status) { |
|
250 | 250 | |
251 | - if ( $invoice->is_paid() && 'wpi_processing' != $invoice->get_status() ) { |
|
252 | - return wpinv_error_log( 'Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false ); |
|
251 | + if ($invoice->is_paid() && 'wpi_processing' != $invoice->get_status()) { |
|
252 | + return wpinv_error_log('Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false); |
|
253 | 253 | } |
254 | 254 | |
255 | - $this->validate_ipn_amount( $invoice, $posted['mc_gross'] ); |
|
255 | + $this->validate_ipn_amount($invoice, $posted['mc_gross']); |
|
256 | 256 | |
257 | 257 | $note = ''; |
258 | 258 | |
259 | - if ( ! empty( $posted['mc_fee'] ) ) { |
|
260 | - $note = sprintf( __( 'PayPal Transaction Fee %s.', 'invoicing' ), sanitize_text_field( $posted['mc_fee'] ) ); |
|
259 | + if (!empty($posted['mc_fee'])) { |
|
260 | + $note = sprintf(__('PayPal Transaction Fee %s.', 'invoicing'), sanitize_text_field($posted['mc_fee'])); |
|
261 | 261 | } |
262 | 262 | |
263 | - if ( ! empty( $posted['payer_status'] ) ) { |
|
264 | - $note = ' ' . sprintf( __( 'Buyer status %s.', 'invoicing' ), sanitize_text_field( $posted['payer_status'] ) ); |
|
263 | + if (!empty($posted['payer_status'])) { |
|
264 | + $note = ' ' . sprintf(__('Buyer status %s.', 'invoicing'), sanitize_text_field($posted['payer_status'])); |
|
265 | 265 | } |
266 | 266 | |
267 | - $invoice->mark_paid( ( ! empty( $posted['txn_id'] ) ? sanitize_text_field( $posted['txn_id'] ) : '' ), trim( $note ) ); |
|
268 | - return wpinv_error_log( 'Invoice marked as paid.', false ); |
|
267 | + $invoice->mark_paid((!empty($posted['txn_id']) ? sanitize_text_field($posted['txn_id']) : ''), trim($note)); |
|
268 | + return wpinv_error_log('Invoice marked as paid.', false); |
|
269 | 269 | |
270 | 270 | } |
271 | 271 | |
272 | 272 | // Pending payments. |
273 | - if ( 'pending' === $payment_status ) { |
|
273 | + if ('pending' === $payment_status) { |
|
274 | 274 | |
275 | 275 | /* translators: %s: pending reason. */ |
276 | - $invoice->update_status( 'wpi-onhold', sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ) ); |
|
276 | + $invoice->update_status('wpi-onhold', sprintf(__('Payment pending (%s).', 'invoicing'), $posted['pending_reason'])); |
|
277 | 277 | |
278 | - return wpinv_error_log( 'Invoice marked as "payment held".', false ); |
|
278 | + return wpinv_error_log('Invoice marked as "payment held".', false); |
|
279 | 279 | } |
280 | 280 | |
281 | 281 | /* translators: %s: payment status. */ |
282 | - $invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), sanitize_text_field( $posted['payment_status'] ) ) ); |
|
282 | + $invoice->update_status('wpi-failed', sprintf(__('Payment %s via IPN.', 'invoicing'), sanitize_text_field($posted['payment_status']))); |
|
283 | 283 | |
284 | 284 | } |
285 | 285 | |
@@ -289,8 +289,8 @@ discard block |
||
289 | 289 | * @param WPInv_Invoice $invoice Invoice object. |
290 | 290 | * @param array $posted Posted data. |
291 | 291 | */ |
292 | - protected function ipn_txn_cart( $invoice, $posted ) { |
|
293 | - $this->ipn_txn_web_accept( $invoice, $posted ); |
|
292 | + protected function ipn_txn_cart($invoice, $posted) { |
|
293 | + $this->ipn_txn_web_accept($invoice, $posted); |
|
294 | 294 | } |
295 | 295 | |
296 | 296 | /** |
@@ -299,43 +299,43 @@ discard block |
||
299 | 299 | * @param WPInv_Invoice $invoice Invoice object. |
300 | 300 | * @param array $posted Posted data. |
301 | 301 | */ |
302 | - protected function ipn_txn_subscr_signup( $invoice, $posted ) { |
|
302 | + protected function ipn_txn_subscr_signup($invoice, $posted) { |
|
303 | 303 | |
304 | - wpinv_error_log( 'Processing subscription signup', false ); |
|
304 | + wpinv_error_log('Processing subscription signup', false); |
|
305 | 305 | |
306 | 306 | // Make sure the invoice has a subscription. |
307 | - $subscription = getpaid_get_invoice_subscription( $invoice ); |
|
307 | + $subscription = getpaid_get_invoice_subscription($invoice); |
|
308 | 308 | |
309 | - if ( empty( $subscription ) ) { |
|
310 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
309 | + if (empty($subscription)) { |
|
310 | + return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false); |
|
311 | 311 | } |
312 | 312 | |
313 | - wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false ); |
|
313 | + wpinv_error_log('Found subscription #' . $subscription->get_id(), false); |
|
314 | 314 | |
315 | 315 | // Validate the IPN. |
316 | - $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] ); |
|
317 | - $this->validate_ipn_receiver_email( $invoice, $business_email ); |
|
318 | - $this->validate_ipn_currency( $invoice, $posted['mc_currency'] ); |
|
316 | + $business_email = isset($posted['business']) && is_email($posted['business']) ? trim($posted['business']) : trim($posted['receiver_email']); |
|
317 | + $this->validate_ipn_receiver_email($invoice, $business_email); |
|
318 | + $this->validate_ipn_currency($invoice, $posted['mc_currency']); |
|
319 | 319 | |
320 | 320 | // Activate the subscription. |
321 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
322 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
323 | - $subscription->set_expiration( date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ) ); |
|
324 | - $subscription->set_profile_id( sanitize_text_field( $posted['subscr_id'] ) ); |
|
321 | + $duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created()); |
|
322 | + $subscription->set_date_created(current_time('mysql')); |
|
323 | + $subscription->set_expiration(date('Y-m-d H:i:s', (current_time('timestamp') + $duration))); |
|
324 | + $subscription->set_profile_id(sanitize_text_field($posted['subscr_id'])); |
|
325 | 325 | $subscription->activate(); |
326 | 326 | |
327 | 327 | // Set the transaction id. |
328 | - if ( ! empty( $posted['txn_id'] ) ) { |
|
329 | - $invoice->add_note( sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true ); |
|
330 | - $invoice->set_transaction_id( $posted['txn_id'] ); |
|
328 | + if (!empty($posted['txn_id'])) { |
|
329 | + $invoice->add_note(sprintf(__('PayPal Transaction ID: %s', 'invoicing'), $posted['txn_id']), false, false, true); |
|
330 | + $invoice->set_transaction_id($posted['txn_id']); |
|
331 | 331 | } |
332 | 332 | |
333 | 333 | // Update the payment status. |
334 | 334 | $invoice->mark_paid(); |
335 | 335 | |
336 | - $invoice->add_note( sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true ); |
|
336 | + $invoice->add_note(sprintf(__('PayPal Subscription ID: %s', 'invoicing'), $posted['subscr_id']), false, false, true); |
|
337 | 337 | |
338 | - wpinv_error_log( 'Subscription started.', false ); |
|
338 | + wpinv_error_log('Subscription started.', false); |
|
339 | 339 | } |
340 | 340 | |
341 | 341 | /** |
@@ -344,45 +344,45 @@ discard block |
||
344 | 344 | * @param WPInv_Invoice $invoice Invoice object. |
345 | 345 | * @param array $posted Posted data. |
346 | 346 | */ |
347 | - protected function ipn_txn_subscr_payment( $invoice, $posted ) { |
|
347 | + protected function ipn_txn_subscr_payment($invoice, $posted) { |
|
348 | 348 | |
349 | 349 | // Make sure the invoice has a subscription. |
350 | - $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
350 | + $subscription = getpaid_subscriptions()->get_invoice_subscription($invoice); |
|
351 | 351 | |
352 | - if ( empty( $subscription ) ) { |
|
353 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
352 | + if (empty($subscription)) { |
|
353 | + return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false); |
|
354 | 354 | } |
355 | 355 | |
356 | - wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false ); |
|
356 | + wpinv_error_log('Found subscription #' . $subscription->get_id(), false); |
|
357 | 357 | |
358 | 358 | // PayPal sends a subscr_payment for the first payment too. |
359 | - $date_completed = getpaid_format_date( $invoice->get_date_completed() ); |
|
360 | - $date_created = getpaid_format_date( $invoice->get_date_created() ); |
|
361 | - $today_date = getpaid_format_date( current_time( 'mysql' ) ); |
|
362 | - $payment_date = getpaid_format_date( $posted['payment_date'] ); |
|
363 | - $subscribe_date = getpaid_format_date( $subscription->get_date_created() ); |
|
364 | - $dates = array_filter( compact( 'date_completed', 'date_created', 'subscribe_date' ) ); |
|
359 | + $date_completed = getpaid_format_date($invoice->get_date_completed()); |
|
360 | + $date_created = getpaid_format_date($invoice->get_date_created()); |
|
361 | + $today_date = getpaid_format_date(current_time('mysql')); |
|
362 | + $payment_date = getpaid_format_date($posted['payment_date']); |
|
363 | + $subscribe_date = getpaid_format_date($subscription->get_date_created()); |
|
364 | + $dates = array_filter(compact('date_completed', 'date_created', 'subscribe_date')); |
|
365 | 365 | |
366 | - foreach ( $dates as $date ) { |
|
366 | + foreach ($dates as $date) { |
|
367 | 367 | |
368 | - if ( $date !== $today_date && $date !== $payment_date ) { |
|
368 | + if ($date !== $today_date && $date !== $payment_date) { |
|
369 | 369 | continue; |
370 | 370 | } |
371 | 371 | |
372 | - if ( ! empty( $posted['txn_id'] ) ) { |
|
373 | - $invoice->set_transaction_id( sanitize_text_field( $posted['txn_id'] ) ); |
|
374 | - $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), sanitize_text_field( $posted['txn_id'] ) ), false, false, true ); |
|
372 | + if (!empty($posted['txn_id'])) { |
|
373 | + $invoice->set_transaction_id(sanitize_text_field($posted['txn_id'])); |
|
374 | + $invoice->add_note(wp_sprintf(__('PayPal Transaction ID: %s', 'invoicing'), sanitize_text_field($posted['txn_id'])), false, false, true); |
|
375 | 375 | } |
376 | 376 | |
377 | 377 | return $invoice->mark_paid(); |
378 | 378 | |
379 | 379 | } |
380 | 380 | |
381 | - wpinv_error_log( 'Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false ); |
|
381 | + wpinv_error_log('Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false); |
|
382 | 382 | |
383 | 383 | // Abort if the payment is already recorded. |
384 | - if ( wpinv_get_id_by_transaction_id( $posted['txn_id'] ) ) { |
|
385 | - return wpinv_error_log( 'Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false ); |
|
384 | + if (wpinv_get_id_by_transaction_id($posted['txn_id'])) { |
|
385 | + return wpinv_error_log('Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false); |
|
386 | 386 | } |
387 | 387 | |
388 | 388 | $args = array( |
@@ -390,17 +390,17 @@ discard block |
||
390 | 390 | 'gateway' => $this->id, |
391 | 391 | ); |
392 | 392 | |
393 | - $invoice = wpinv_get_invoice( $subscription->add_payment( $args ) ); |
|
393 | + $invoice = wpinv_get_invoice($subscription->add_payment($args)); |
|
394 | 394 | |
395 | - if ( empty( $invoice ) ) { |
|
395 | + if (empty($invoice)) { |
|
396 | 396 | return; |
397 | 397 | } |
398 | 398 | |
399 | - $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true ); |
|
400 | - $invoice->add_note( wp_sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true ); |
|
399 | + $invoice->add_note(wp_sprintf(__('PayPal Transaction ID: %s', 'invoicing'), $posted['txn_id']), false, false, true); |
|
400 | + $invoice->add_note(wp_sprintf(__('PayPal Subscription ID: %s', 'invoicing'), $posted['subscr_id']), false, false, true); |
|
401 | 401 | |
402 | 402 | $subscription->renew(); |
403 | - wpinv_error_log( 'Subscription renewed.', false ); |
|
403 | + wpinv_error_log('Subscription renewed.', false); |
|
404 | 404 | |
405 | 405 | } |
406 | 406 | |
@@ -409,18 +409,18 @@ discard block |
||
409 | 409 | * |
410 | 410 | * @param WPInv_Invoice $invoice Invoice object. |
411 | 411 | */ |
412 | - protected function ipn_txn_subscr_cancel( $invoice ) { |
|
412 | + protected function ipn_txn_subscr_cancel($invoice) { |
|
413 | 413 | |
414 | 414 | // Make sure the invoice has a subscription. |
415 | - $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
415 | + $subscription = getpaid_subscriptions()->get_invoice_subscription($invoice); |
|
416 | 416 | |
417 | - if ( empty( $subscription ) ) { |
|
418 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
417 | + if (empty($subscription)) { |
|
418 | + return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false); |
|
419 | 419 | } |
420 | 420 | |
421 | - wpinv_error_log( 'Processing subscription cancellation for the invoice ' . $invoice->get_id(), false ); |
|
421 | + wpinv_error_log('Processing subscription cancellation for the invoice ' . $invoice->get_id(), false); |
|
422 | 422 | $subscription->cancel(); |
423 | - wpinv_error_log( 'Subscription cancelled.', false ); |
|
423 | + wpinv_error_log('Subscription cancelled.', false); |
|
424 | 424 | |
425 | 425 | } |
426 | 426 | |
@@ -430,18 +430,18 @@ discard block |
||
430 | 430 | * @param WPInv_Invoice $invoice Invoice object. |
431 | 431 | * @param array $posted Posted data. |
432 | 432 | */ |
433 | - protected function ipn_txn_subscr_eot( $invoice ) { |
|
433 | + protected function ipn_txn_subscr_eot($invoice) { |
|
434 | 434 | |
435 | 435 | // Make sure the invoice has a subscription. |
436 | - $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
436 | + $subscription = getpaid_subscriptions()->get_invoice_subscription($invoice); |
|
437 | 437 | |
438 | - if ( empty( $subscription ) ) { |
|
439 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
438 | + if (empty($subscription)) { |
|
439 | + return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false); |
|
440 | 440 | } |
441 | 441 | |
442 | - wpinv_error_log( 'Processing subscription end of life for the invoice ' . $invoice->get_id(), false ); |
|
442 | + wpinv_error_log('Processing subscription end of life for the invoice ' . $invoice->get_id(), false); |
|
443 | 443 | $subscription->complete(); |
444 | - wpinv_error_log( 'Subscription completed.', false ); |
|
444 | + wpinv_error_log('Subscription completed.', false); |
|
445 | 445 | |
446 | 446 | } |
447 | 447 | |
@@ -451,18 +451,18 @@ discard block |
||
451 | 451 | * @param WPInv_Invoice $invoice Invoice object. |
452 | 452 | * @param array $posted Posted data. |
453 | 453 | */ |
454 | - protected function ipn_txn_subscr_failed( $invoice ) { |
|
454 | + protected function ipn_txn_subscr_failed($invoice) { |
|
455 | 455 | |
456 | 456 | // Make sure the invoice has a subscription. |
457 | - $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
457 | + $subscription = getpaid_subscriptions()->get_invoice_subscription($invoice); |
|
458 | 458 | |
459 | - if ( empty( $subscription ) ) { |
|
460 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
459 | + if (empty($subscription)) { |
|
460 | + return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false); |
|
461 | 461 | } |
462 | 462 | |
463 | - wpinv_error_log( 'Processing subscription payment failure for the invoice ' . $invoice->get_id(), false ); |
|
463 | + wpinv_error_log('Processing subscription payment failure for the invoice ' . $invoice->get_id(), false); |
|
464 | 464 | $subscription->failing(); |
465 | - wpinv_error_log( 'Subscription marked as failing.', false ); |
|
465 | + wpinv_error_log('Subscription marked as failing.', false); |
|
466 | 466 | |
467 | 467 | } |
468 | 468 | |
@@ -472,18 +472,18 @@ discard block |
||
472 | 472 | * @param WPInv_Invoice $invoice Invoice object. |
473 | 473 | * @param array $posted Posted data. |
474 | 474 | */ |
475 | - protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment( $invoice ) { |
|
475 | + protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment($invoice) { |
|
476 | 476 | |
477 | 477 | // Make sure the invoice has a subscription. |
478 | - $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
478 | + $subscription = getpaid_subscriptions()->get_invoice_subscription($invoice); |
|
479 | 479 | |
480 | - if ( empty( $subscription ) ) { |
|
481 | - return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false ); |
|
480 | + if (empty($subscription)) { |
|
481 | + return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false); |
|
482 | 482 | } |
483 | 483 | |
484 | - wpinv_error_log( 'Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false ); |
|
484 | + wpinv_error_log('Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false); |
|
485 | 485 | $subscription->cancel(); |
486 | - wpinv_error_log( 'Subscription cancelled.', false ); |
|
486 | + wpinv_error_log('Subscription cancelled.', false); |
|
487 | 487 | } |
488 | 488 | |
489 | 489 | } |