@@ -34,11 +34,11 @@ discard block |
||
34 | 34 | */ |
35 | 35 | function wpinv_get_capability( $capalibilty = 'manage_invoicing' ) { |
36 | 36 | |
37 | - if ( current_user_can( 'manage_options' ) ) { |
|
38 | - return 'manage_options'; |
|
39 | - }; |
|
37 | + if ( current_user_can( 'manage_options' ) ) { |
|
38 | + return 'manage_options'; |
|
39 | + }; |
|
40 | 40 | |
41 | - return $capalibilty; |
|
41 | + return $capalibilty; |
|
42 | 42 | } |
43 | 43 | |
44 | 44 | /** |
@@ -62,10 +62,10 @@ discard block |
||
62 | 62 | // Prepare user values. |
63 | 63 | $prefix = preg_replace( '/\s+/', '', $prefix ); |
64 | 64 | $prefix = empty( $prefix ) ? $email : $prefix; |
65 | - $args = array( |
|
66 | - 'user_login' => wpinv_generate_user_name( $prefix ), |
|
67 | - 'user_pass' => wp_generate_password(), |
|
68 | - 'user_email' => $email, |
|
65 | + $args = array( |
|
66 | + 'user_login' => wpinv_generate_user_name( $prefix ), |
|
67 | + 'user_pass' => wp_generate_password(), |
|
68 | + 'user_email' => $email, |
|
69 | 69 | 'role' => 'subscriber', |
70 | 70 | ); |
71 | 71 | |
@@ -82,16 +82,16 @@ discard block |
||
82 | 82 | function wpinv_generate_user_name( $prefix = '' ) { |
83 | 83 | |
84 | 84 | // If prefix is an email, retrieve the part before the email. |
85 | - $prefix = strtok( $prefix, '@' ); |
|
85 | + $prefix = strtok( $prefix, '@' ); |
|
86 | 86 | $prefix = trim( $prefix, '.' ); |
87 | 87 | |
88 | - // Sanitize the username. |
|
89 | - $prefix = sanitize_user( $prefix, true ); |
|
88 | + // Sanitize the username. |
|
89 | + $prefix = sanitize_user( $prefix, true ); |
|
90 | 90 | |
91 | - $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() ); |
|
92 | - if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) { |
|
93 | - $prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 ); |
|
94 | - } |
|
91 | + $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() ); |
|
92 | + if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) { |
|
93 | + $prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 ); |
|
94 | + } |
|
95 | 95 | |
96 | 96 | $username = $prefix; |
97 | 97 | $postfix = 2; |
@@ -220,43 +220,43 @@ discard block |
||
220 | 220 | |
221 | 221 | foreach ( getpaid_user_address_fields() as $key => $label ) { |
222 | 222 | |
223 | - // Display the country. |
|
224 | - if ( 'country' == $key ) { |
|
225 | - |
|
226 | - aui()->select( |
|
227 | - array( |
|
228 | - 'options' => wpinv_get_country_list(), |
|
229 | - 'name' => 'getpaid_address[' . esc_attr( $key ) . ']', |
|
230 | - 'id' => 'wpinv-' . sanitize_html_class( $key ), |
|
231 | - 'value' => sanitize_text_field( getpaid_get_user_address_field( get_current_user_id(), $key ) ), |
|
232 | - 'placeholder' => $label, |
|
233 | - 'label' => wp_kses_post( $label ), |
|
234 | - 'label_type' => 'vertical', |
|
235 | - 'class' => 'getpaid-address-field', |
|
223 | + // Display the country. |
|
224 | + if ( 'country' == $key ) { |
|
225 | + |
|
226 | + aui()->select( |
|
227 | + array( |
|
228 | + 'options' => wpinv_get_country_list(), |
|
229 | + 'name' => 'getpaid_address[' . esc_attr( $key ) . ']', |
|
230 | + 'id' => 'wpinv-' . sanitize_html_class( $key ), |
|
231 | + 'value' => sanitize_text_field( getpaid_get_user_address_field( get_current_user_id(), $key ) ), |
|
232 | + 'placeholder' => $label, |
|
233 | + 'label' => wp_kses_post( $label ), |
|
234 | + 'label_type' => 'vertical', |
|
235 | + 'class' => 'getpaid-address-field', |
|
236 | 236 | ), |
237 | 237 | true |
238 | - ); |
|
239 | - |
|
240 | - } |
|
241 | - |
|
242 | - // Display the state. |
|
243 | - elseif ( 'state' == $key ) { |
|
244 | - |
|
245 | - getpaid_get_states_select_markup( |
|
246 | - getpaid_get_user_address_field( get_current_user_id(), 'country' ), |
|
247 | - getpaid_get_user_address_field( get_current_user_id(), 'state' ), |
|
248 | - $label, |
|
249 | - $label, |
|
250 | - '', |
|
251 | - false, |
|
252 | - '', |
|
253 | - 'getpaid_address[' . esc_attr( $key ) . ']', |
|
238 | + ); |
|
239 | + |
|
240 | + } |
|
241 | + |
|
242 | + // Display the state. |
|
243 | + elseif ( 'state' == $key ) { |
|
244 | + |
|
245 | + getpaid_get_states_select_markup( |
|
246 | + getpaid_get_user_address_field( get_current_user_id(), 'country' ), |
|
247 | + getpaid_get_user_address_field( get_current_user_id(), 'state' ), |
|
248 | + $label, |
|
249 | + $label, |
|
250 | + '', |
|
251 | + false, |
|
252 | + '', |
|
253 | + 'getpaid_address[' . esc_attr( $key ) . ']', |
|
254 | 254 | true |
255 | - ); |
|
255 | + ); |
|
256 | 256 | |
257 | 257 | } else { |
258 | 258 | |
259 | - aui()->input( |
|
259 | + aui()->input( |
|
260 | 260 | array( |
261 | 261 | 'name' => 'getpaid_address[' . esc_attr( $key ) . ']', |
262 | 262 | 'id' => 'wpinv-' . sanitize_html_class( $key ), |
@@ -268,7 +268,7 @@ discard block |
||
268 | 268 | 'class' => 'getpaid-address-field', |
269 | 269 | ), |
270 | 270 | true |
271 | - ); |
|
271 | + ); |
|
272 | 272 | |
273 | 273 | } |
274 | 274 | } |
@@ -407,7 +407,7 @@ discard block |
||
407 | 407 | function getpaid_allowed_html() { |
408 | 408 | $allowed_html = wp_kses_allowed_html( 'post' ); |
409 | 409 | |
410 | - // form fields |
|
410 | + // form fields |
|
411 | 411 | $allowed_html['form'] = array( |
412 | 412 | 'action' => true, |
413 | 413 | 'accept' => true, |
@@ -419,12 +419,12 @@ discard block |
||
419 | 419 | ); |
420 | 420 | |
421 | 421 | // - input |
422 | - $allowed_html['input'] = array( |
|
423 | - 'class' => array(), |
|
424 | - 'id' => array(), |
|
425 | - 'name' => array(), |
|
426 | - 'value' => array(), |
|
427 | - 'type' => array(), |
|
422 | + $allowed_html['input'] = array( |
|
423 | + 'class' => array(), |
|
424 | + 'id' => array(), |
|
425 | + 'name' => array(), |
|
426 | + 'value' => array(), |
|
427 | + 'type' => array(), |
|
428 | 428 | 'placeholder' => array(), |
429 | 429 | 'autocomplete' => array(), |
430 | 430 | 'autofocus' => array(), |
@@ -438,33 +438,33 @@ discard block |
||
438 | 438 | 'max' => array(), |
439 | 439 | 'step' => array(), |
440 | 440 | 'size' => array(), |
441 | - ); |
|
441 | + ); |
|
442 | 442 | |
443 | 443 | // - input |
444 | - $allowed_html['textarea'] = array( |
|
445 | - 'class' => array(), |
|
446 | - 'id' => array(), |
|
447 | - 'name' => array(), |
|
448 | - 'value' => array(), |
|
449 | - ); |
|
450 | - |
|
451 | - // select |
|
452 | - $allowed_html['select'] = array( |
|
453 | - 'class' => array(), |
|
454 | - 'id' => array(), |
|
455 | - 'name' => array(), |
|
444 | + $allowed_html['textarea'] = array( |
|
445 | + 'class' => array(), |
|
446 | + 'id' => array(), |
|
447 | + 'name' => array(), |
|
448 | + 'value' => array(), |
|
449 | + ); |
|
450 | + |
|
451 | + // select |
|
452 | + $allowed_html['select'] = array( |
|
453 | + 'class' => array(), |
|
454 | + 'id' => array(), |
|
455 | + 'name' => array(), |
|
456 | 456 | 'autocomplete' => array(), |
457 | 457 | 'multiple' => array(), |
458 | - ); |
|
458 | + ); |
|
459 | 459 | |
460 | - // select options |
|
461 | - $allowed_html['option'] = array( |
|
462 | - 'selected' => array(), |
|
460 | + // select options |
|
461 | + $allowed_html['option'] = array( |
|
462 | + 'selected' => array(), |
|
463 | 463 | 'disabled' => array(), |
464 | 464 | 'value' => array(), |
465 | - ); |
|
465 | + ); |
|
466 | 466 | |
467 | - return $allowed_html; |
|
467 | + return $allowed_html; |
|
468 | 468 | |
469 | 469 | } |
470 | 470 |
@@ -14,30 +14,30 @@ discard block |
||
14 | 14 | class WPInv_Invoice extends GetPaid_Data { |
15 | 15 | |
16 | 16 | /** |
17 | - * Which data store to load. |
|
18 | - * |
|
19 | - * @var string |
|
20 | - */ |
|
17 | + * Which data store to load. |
|
18 | + * |
|
19 | + * @var string |
|
20 | + */ |
|
21 | 21 | protected $data_store_name = 'invoice'; |
22 | 22 | |
23 | 23 | /** |
24 | - * This is the name of this object type. |
|
25 | - * |
|
26 | - * @var string |
|
27 | - */ |
|
24 | + * This is the name of this object type. |
|
25 | + * |
|
26 | + * @var string |
|
27 | + */ |
|
28 | 28 | protected $object_type = 'invoice'; |
29 | 29 | |
30 | 30 | /** |
31 | - * Item Data array. This is the core item data exposed in APIs. |
|
32 | - * |
|
33 | - * @since 1.0.19 |
|
34 | - * @var array |
|
35 | - */ |
|
36 | - protected $data = array( |
|
37 | - 'parent_id' => 0, |
|
38 | - 'status' => 'wpi-pending', |
|
39 | - 'version' => '', |
|
40 | - 'date_created' => null, |
|
31 | + * Item Data array. This is the core item data exposed in APIs. |
|
32 | + * |
|
33 | + * @since 1.0.19 |
|
34 | + * @var array |
|
35 | + */ |
|
36 | + protected $data = array( |
|
37 | + 'parent_id' => 0, |
|
38 | + 'status' => 'wpi-pending', |
|
39 | + 'version' => '', |
|
40 | + 'date_created' => null, |
|
41 | 41 | 'date_modified' => null, |
42 | 42 | 'due_date' => null, |
43 | 43 | 'completed_date' => null, |
@@ -60,17 +60,17 @@ discard block |
||
60 | 60 | 'state' => null, |
61 | 61 | 'zip' => null, |
62 | 62 | 'company' => null, |
63 | - 'company_id' => null, |
|
63 | + 'company_id' => null, |
|
64 | 64 | 'vat_number' => null, |
65 | 65 | 'vat_rate' => null, |
66 | 66 | 'address' => null, |
67 | 67 | 'address_confirmed' => false, |
68 | 68 | 'shipping' => null, |
69 | - 'subtotal' => 0, |
|
69 | + 'subtotal' => 0, |
|
70 | 70 | 'total_discount' => 0, |
71 | 71 | 'total_tax' => 0, |
72 | - 'total_fees' => 0, |
|
73 | - 'total' => 0, |
|
72 | + 'total_fees' => 0, |
|
73 | + 'total' => 0, |
|
74 | 74 | 'fees' => array(), |
75 | 75 | 'discounts' => array(), |
76 | 76 | 'taxes' => array(), |
@@ -82,22 +82,22 @@ discard block |
||
82 | 82 | 'transaction_id' => '', |
83 | 83 | 'currency' => '', |
84 | 84 | 'disable_taxes' => false, |
85 | - 'subscription_id' => null, |
|
86 | - 'remote_subscription_id' => null, |
|
87 | - 'is_viewed' => false, |
|
88 | - 'email_cc' => '', |
|
89 | - 'template' => 'quantity', // hours, amount only |
|
90 | - 'created_via' => null, |
|
85 | + 'subscription_id' => null, |
|
86 | + 'remote_subscription_id' => null, |
|
87 | + 'is_viewed' => false, |
|
88 | + 'email_cc' => '', |
|
89 | + 'template' => 'quantity', // hours, amount only |
|
90 | + 'created_via' => null, |
|
91 | 91 | ); |
92 | 92 | |
93 | 93 | /** |
94 | - * Stores meta in cache for future reads. |
|
95 | - * |
|
96 | - * A group must be set to to enable caching. |
|
97 | - * |
|
98 | - * @var string |
|
99 | - */ |
|
100 | - protected $cache_group = 'getpaid_invoices'; |
|
94 | + * Stores meta in cache for future reads. |
|
95 | + * |
|
96 | + * A group must be set to to enable caching. |
|
97 | + * |
|
98 | + * @var string |
|
99 | + */ |
|
100 | + protected $cache_group = 'getpaid_invoices'; |
|
101 | 101 | |
102 | 102 | /** |
103 | 103 | * Stores a reference to the original WP_Post object |
@@ -111,110 +111,110 @@ discard block |
||
111 | 111 | * |
112 | 112 | * @var int |
113 | 113 | */ |
114 | - protected $recurring_item = null; |
|
114 | + protected $recurring_item = null; |
|
115 | 115 | |
116 | - /** |
|
116 | + /** |
|
117 | 117 | * Stores an array of item totals. |
118 | - * |
|
119 | - * e.g $totals['discount'] = array( |
|
120 | - * 'initial' => 10, |
|
121 | - * 'recurring' => 10, |
|
122 | - * ) |
|
118 | + * |
|
119 | + * e.g $totals['discount'] = array( |
|
120 | + * 'initial' => 10, |
|
121 | + * 'recurring' => 10, |
|
122 | + * ) |
|
123 | 123 | * |
124 | 124 | * @var array |
125 | 125 | */ |
126 | - protected $totals = array(); |
|
126 | + protected $totals = array(); |
|
127 | 127 | |
128 | - /** |
|
128 | + /** |
|
129 | 129 | * Tax rate. |
130 | - * |
|
130 | + * |
|
131 | 131 | * @var float |
132 | 132 | */ |
133 | - protected $tax_rate = 0; |
|
133 | + protected $tax_rate = 0; |
|
134 | 134 | |
135 | - /** |
|
136 | - * Stores the status transition information. |
|
137 | - * |
|
138 | - * @since 1.0.19 |
|
139 | - * @var bool|array |
|
140 | - */ |
|
141 | - protected $status_transition = false; |
|
135 | + /** |
|
136 | + * Stores the status transition information. |
|
137 | + * |
|
138 | + * @since 1.0.19 |
|
139 | + * @var bool|array |
|
140 | + */ |
|
141 | + protected $status_transition = false; |
|
142 | 142 | |
143 | 143 | /** |
144 | - * Get the invoice if ID is passed, otherwise the invoice is new and empty. |
|
145 | - * |
|
146 | - * @param int|string|object|WPInv_Invoice|WPInv_Legacy_Invoice|WP_Post $invoice Invoice id, key, transaction id, number or object to read. |
|
147 | - */ |
|
144 | + * Get the invoice if ID is passed, otherwise the invoice is new and empty. |
|
145 | + * |
|
146 | + * @param int|string|object|WPInv_Invoice|WPInv_Legacy_Invoice|WP_Post $invoice Invoice id, key, transaction id, number or object to read. |
|
147 | + */ |
|
148 | 148 | public function __construct( $invoice = 0 ) { |
149 | 149 | |
150 | 150 | parent::__construct( $invoice ); |
151 | 151 | |
152 | - if ( ! empty( $invoice ) && is_numeric( $invoice ) && getpaid_is_invoice_post_type( get_post_type( (int) $invoice ) ) ) { |
|
153 | - $this->set_id( (int) $invoice ); |
|
154 | - } elseif ( $invoice instanceof self ) { |
|
155 | - $this->set_id( $invoice->get_id() ); |
|
156 | - } elseif ( ! empty( $invoice->ID ) ) { |
|
157 | - $this->set_id( $invoice->ID ); |
|
158 | - } elseif ( is_array( $invoice ) ) { |
|
159 | - $this->set_props( $invoice ); |
|
160 | - |
|
161 | - if ( isset( $invoice['ID'] ) ) { |
|
162 | - $this->set_id( $invoice['ID'] ); |
|
163 | - } |
|
152 | + if ( ! empty( $invoice ) && is_numeric( $invoice ) && getpaid_is_invoice_post_type( get_post_type( (int) $invoice ) ) ) { |
|
153 | + $this->set_id( (int) $invoice ); |
|
154 | + } elseif ( $invoice instanceof self ) { |
|
155 | + $this->set_id( $invoice->get_id() ); |
|
156 | + } elseif ( ! empty( $invoice->ID ) ) { |
|
157 | + $this->set_id( $invoice->ID ); |
|
158 | + } elseif ( is_array( $invoice ) ) { |
|
159 | + $this->set_props( $invoice ); |
|
160 | + |
|
161 | + if ( isset( $invoice['ID'] ) ) { |
|
162 | + $this->set_id( $invoice['ID'] ); |
|
163 | + } |
|
164 | 164 | } elseif ( is_string( $invoice ) && $invoice_id = self::get_invoice_id_by_field( $invoice, 'key' ) ) { |
165 | - $this->set_id( $invoice_id ); |
|
166 | - } elseif ( is_string( $invoice ) && $invoice_id = self::get_invoice_id_by_field( $invoice, 'number' ) ) { |
|
167 | - $this->set_id( $invoice_id ); |
|
168 | - } elseif ( is_string( $invoice ) && $invoice_id = self::get_invoice_id_by_field( $invoice, 'transaction_id' ) ) { |
|
169 | - $this->set_id( $invoice_id ); |
|
170 | - } else { |
|
171 | - $this->set_object_read( true ); |
|
172 | - } |
|
165 | + $this->set_id( $invoice_id ); |
|
166 | + } elseif ( is_string( $invoice ) && $invoice_id = self::get_invoice_id_by_field( $invoice, 'number' ) ) { |
|
167 | + $this->set_id( $invoice_id ); |
|
168 | + } elseif ( is_string( $invoice ) && $invoice_id = self::get_invoice_id_by_field( $invoice, 'transaction_id' ) ) { |
|
169 | + $this->set_id( $invoice_id ); |
|
170 | + } else { |
|
171 | + $this->set_object_read( true ); |
|
172 | + } |
|
173 | 173 | |
174 | 174 | // Load the datastore. |
175 | - $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
175 | + $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
176 | 176 | |
177 | - if ( $this->get_id() > 0 ) { |
|
177 | + if ( $this->get_id() > 0 ) { |
|
178 | 178 | $this->post = get_post( $this->get_id() ); |
179 | 179 | $this->ID = $this->get_id(); |
180 | - $this->data_store->read( $this ); |
|
180 | + $this->data_store->read( $this ); |
|
181 | 181 | } |
182 | 182 | |
183 | 183 | } |
184 | 184 | |
185 | 185 | /** |
186 | - * Given an invoice key/number, it returns its id. |
|
187 | - * |
|
188 | - * |
|
189 | - * @static |
|
190 | - * @param string $value The invoice key or number |
|
191 | - * @param string $field Either key, transaction_id or number. |
|
192 | - * @since 1.0.15 |
|
193 | - * @return int |
|
194 | - */ |
|
195 | - public static function get_invoice_id_by_field( $value, $field = 'key' ) { |
|
186 | + * Given an invoice key/number, it returns its id. |
|
187 | + * |
|
188 | + * |
|
189 | + * @static |
|
190 | + * @param string $value The invoice key or number |
|
191 | + * @param string $field Either key, transaction_id or number. |
|
192 | + * @since 1.0.15 |
|
193 | + * @return int |
|
194 | + */ |
|
195 | + public static function get_invoice_id_by_field( $value, $field = 'key' ) { |
|
196 | 196 | global $wpdb; |
197 | 197 | |
198 | - // Trim the value. |
|
199 | - $value = trim( $value ); |
|
198 | + // Trim the value. |
|
199 | + $value = trim( $value ); |
|
200 | 200 | |
201 | - if ( empty( $value ) ) { |
|
202 | - return 0; |
|
203 | - } |
|
201 | + if ( empty( $value ) ) { |
|
202 | + return 0; |
|
203 | + } |
|
204 | 204 | |
205 | 205 | // Valid fields. |
206 | 206 | $fields = array( 'key', 'number', 'transaction_id' ); |
207 | 207 | |
208 | - // Ensure a field has been passed. |
|
209 | - if ( empty( $field ) || ! in_array( $field, $fields ) ) { |
|
210 | - return 0; |
|
211 | - } |
|
208 | + // Ensure a field has been passed. |
|
209 | + if ( empty( $field ) || ! in_array( $field, $fields ) ) { |
|
210 | + return 0; |
|
211 | + } |
|
212 | 212 | |
213 | - // Maybe retrieve from the cache. |
|
214 | - $invoice_id = wp_cache_get( $value, "getpaid_invoice_{$field}s_to_invoice_ids" ); |
|
215 | - if ( false !== $invoice_id ) { |
|
216 | - return $invoice_id; |
|
217 | - } |
|
213 | + // Maybe retrieve from the cache. |
|
214 | + $invoice_id = wp_cache_get( $value, "getpaid_invoice_{$field}s_to_invoice_ids" ); |
|
215 | + if ( false !== $invoice_id ) { |
|
216 | + return $invoice_id; |
|
217 | + } |
|
218 | 218 | |
219 | 219 | // Fetch from the db. |
220 | 220 | $table = $wpdb->prefix . 'getpaid_invoices'; |
@@ -222,10 +222,10 @@ discard block |
||
222 | 222 | $wpdb->prepare( "SELECT `post_id` FROM $table WHERE `$field`=%s LIMIT 1", $value ) |
223 | 223 | ); |
224 | 224 | |
225 | - // Update the cache with our data |
|
226 | - wp_cache_set( $value, $invoice_id, "getpaid_invoice_{$field}s_to_invoice_ids" ); |
|
225 | + // Update the cache with our data |
|
226 | + wp_cache_set( $value, $invoice_id, "getpaid_invoice_{$field}s_to_invoice_ids" ); |
|
227 | 227 | |
228 | - return $invoice_id; |
|
228 | + return $invoice_id; |
|
229 | 229 | } |
230 | 230 | |
231 | 231 | /** |
@@ -251,83 +251,83 @@ discard block |
||
251 | 251 | */ |
252 | 252 | |
253 | 253 | /** |
254 | - * Get parent invoice ID. |
|
255 | - * |
|
256 | - * @since 1.0.19 |
|
257 | - * @param string $context View or edit context. |
|
258 | - * @return int |
|
259 | - */ |
|
260 | - public function get_parent_id( $context = 'view' ) { |
|
261 | - return (int) $this->get_prop( 'parent_id', $context ); |
|
254 | + * Get parent invoice ID. |
|
255 | + * |
|
256 | + * @since 1.0.19 |
|
257 | + * @param string $context View or edit context. |
|
258 | + * @return int |
|
259 | + */ |
|
260 | + public function get_parent_id( $context = 'view' ) { |
|
261 | + return (int) $this->get_prop( 'parent_id', $context ); |
|
262 | 262 | } |
263 | 263 | |
264 | 264 | /** |
265 | - * Get parent invoice. |
|
266 | - * |
|
267 | - * @since 1.0.19 |
|
268 | - * @return WPInv_Invoice |
|
269 | - */ |
|
265 | + * Get parent invoice. |
|
266 | + * |
|
267 | + * @since 1.0.19 |
|
268 | + * @return WPInv_Invoice |
|
269 | + */ |
|
270 | 270 | public function get_parent_payment() { |
271 | 271 | return new WPInv_Invoice( $this->get_parent_id() ); |
272 | 272 | } |
273 | 273 | |
274 | 274 | /** |
275 | - * Alias for self::get_parent_payment(). |
|
276 | - * |
|
277 | - * @since 1.0.19 |
|
278 | - * @return WPInv_Invoice |
|
279 | - */ |
|
275 | + * Alias for self::get_parent_payment(). |
|
276 | + * |
|
277 | + * @since 1.0.19 |
|
278 | + * @return WPInv_Invoice |
|
279 | + */ |
|
280 | 280 | public function get_parent() { |
281 | 281 | return $this->get_parent_payment(); |
282 | 282 | } |
283 | 283 | |
284 | 284 | /** |
285 | - * Get invoice status. |
|
286 | - * |
|
287 | - * @since 1.0.19 |
|
288 | - * @param string $context View or edit context. |
|
289 | - * @return string |
|
290 | - */ |
|
291 | - public function get_status( $context = 'view' ) { |
|
292 | - return $this->get_prop( 'status', $context ); |
|
293 | - } |
|
285 | + * Get invoice status. |
|
286 | + * |
|
287 | + * @since 1.0.19 |
|
288 | + * @param string $context View or edit context. |
|
289 | + * @return string |
|
290 | + */ |
|
291 | + public function get_status( $context = 'view' ) { |
|
292 | + return $this->get_prop( 'status', $context ); |
|
293 | + } |
|
294 | 294 | |
295 | - /** |
|
296 | - * Retrieves an array of possible invoice statuses. |
|
297 | - * |
|
298 | - * @since 1.0.19 |
|
299 | - * @return array |
|
300 | - */ |
|
301 | - public function get_all_statuses() { |
|
302 | - return wpinv_get_invoice_statuses( true, true, $this ); |
|
295 | + /** |
|
296 | + * Retrieves an array of possible invoice statuses. |
|
297 | + * |
|
298 | + * @since 1.0.19 |
|
299 | + * @return array |
|
300 | + */ |
|
301 | + public function get_all_statuses() { |
|
302 | + return wpinv_get_invoice_statuses( true, true, $this ); |
|
303 | 303 | } |
304 | 304 | |
305 | 305 | /** |
306 | - * Get invoice status nice name. |
|
307 | - * |
|
308 | - * @since 1.0.19 |
|
309 | - * @return string |
|
310 | - */ |
|
306 | + * Get invoice status nice name. |
|
307 | + * |
|
308 | + * @since 1.0.19 |
|
309 | + * @return string |
|
310 | + */ |
|
311 | 311 | public function get_status_nicename() { |
312 | - $statuses = $this->get_all_statuses(); |
|
312 | + $statuses = $this->get_all_statuses(); |
|
313 | 313 | |
314 | 314 | $status = isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : $this->get_status(); |
315 | 315 | |
316 | 316 | return apply_filters( 'wpinv_get_invoice_status_nicename', $status, $this ); |
317 | 317 | } |
318 | 318 | |
319 | - /** |
|
320 | - * Retrieves the invoice status class |
|
321 | - * |
|
322 | - * @since 1.0.19 |
|
323 | - * @return string |
|
324 | - */ |
|
325 | - public function get_status_class() { |
|
326 | - $statuses = getpaid_get_invoice_status_classes(); |
|
327 | - return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'badge-dark'; |
|
328 | - } |
|
319 | + /** |
|
320 | + * Retrieves the invoice status class |
|
321 | + * |
|
322 | + * @since 1.0.19 |
|
323 | + * @return string |
|
324 | + */ |
|
325 | + public function get_status_class() { |
|
326 | + $statuses = getpaid_get_invoice_status_classes(); |
|
327 | + return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'badge-dark'; |
|
328 | + } |
|
329 | 329 | |
330 | - /** |
|
330 | + /** |
|
331 | 331 | * Retrieves the invoice status label html |
332 | 332 | * |
333 | 333 | * @since 1.0.0 |
@@ -335,263 +335,263 @@ discard block |
||
335 | 335 | */ |
336 | 336 | public function get_status_label_html() { |
337 | 337 | |
338 | - $status_label = sanitize_text_field( $this->get_status_nicename() ); |
|
339 | - $status = sanitize_html_class( $this->get_status() ); |
|
340 | - $class = esc_attr( $this->get_status_class() ); |
|
341 | - |
|
342 | - return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>"; |
|
343 | - } |
|
344 | - |
|
345 | - /** |
|
346 | - * Get plugin version when the invoice was created. |
|
347 | - * |
|
348 | - * @since 1.0.19 |
|
349 | - * @param string $context View or edit context. |
|
350 | - * @return string |
|
351 | - */ |
|
352 | - public function get_version( $context = 'view' ) { |
|
353 | - return $this->get_prop( 'version', $context ); |
|
354 | - } |
|
355 | - |
|
356 | - /** |
|
357 | - * @deprecated |
|
358 | - */ |
|
359 | - public function get_invoice_date( $format = true ) { |
|
360 | - $date = getpaid_format_date( $this->get_date_completed() ); |
|
361 | - $date = empty( $date ) ? $this->get_date_created() : $this->get_date_completed(); |
|
362 | - $formatted = getpaid_format_date( $date ); |
|
363 | - |
|
364 | - if ( $format ) { |
|
365 | - return $formatted; |
|
366 | - } |
|
367 | - |
|
368 | - return empty( $formatted ) ? '' : $date; |
|
369 | - |
|
370 | - } |
|
371 | - |
|
372 | - /** |
|
373 | - * Get date when the invoice was created. |
|
374 | - * |
|
375 | - * @since 1.0.19 |
|
376 | - * @param string $context View or edit context. |
|
377 | - * @return string |
|
378 | - */ |
|
379 | - public function get_date_created( $context = 'view' ) { |
|
380 | - return $this->get_prop( 'date_created', $context ); |
|
381 | - } |
|
382 | - |
|
383 | - /** |
|
384 | - * Alias for self::get_date_created(). |
|
385 | - * |
|
386 | - * @since 1.0.19 |
|
387 | - * @param string $context View or edit context. |
|
388 | - * @return string |
|
389 | - */ |
|
390 | - public function get_created_date( $context = 'view' ) { |
|
391 | - return $this->get_date_created( $context ); |
|
392 | - } |
|
393 | - |
|
394 | - /** |
|
395 | - * Get GMT date when the invoice was created. |
|
396 | - * |
|
397 | - * @since 1.0.19 |
|
398 | - * @param string $context View or edit context. |
|
399 | - * @return string |
|
400 | - */ |
|
401 | - public function get_date_created_gmt( $context = 'view' ) { |
|
338 | + $status_label = sanitize_text_field( $this->get_status_nicename() ); |
|
339 | + $status = sanitize_html_class( $this->get_status() ); |
|
340 | + $class = esc_attr( $this->get_status_class() ); |
|
341 | + |
|
342 | + return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>"; |
|
343 | + } |
|
344 | + |
|
345 | + /** |
|
346 | + * Get plugin version when the invoice was created. |
|
347 | + * |
|
348 | + * @since 1.0.19 |
|
349 | + * @param string $context View or edit context. |
|
350 | + * @return string |
|
351 | + */ |
|
352 | + public function get_version( $context = 'view' ) { |
|
353 | + return $this->get_prop( 'version', $context ); |
|
354 | + } |
|
355 | + |
|
356 | + /** |
|
357 | + * @deprecated |
|
358 | + */ |
|
359 | + public function get_invoice_date( $format = true ) { |
|
360 | + $date = getpaid_format_date( $this->get_date_completed() ); |
|
361 | + $date = empty( $date ) ? $this->get_date_created() : $this->get_date_completed(); |
|
362 | + $formatted = getpaid_format_date( $date ); |
|
363 | + |
|
364 | + if ( $format ) { |
|
365 | + return $formatted; |
|
366 | + } |
|
367 | + |
|
368 | + return empty( $formatted ) ? '' : $date; |
|
369 | + |
|
370 | + } |
|
371 | + |
|
372 | + /** |
|
373 | + * Get date when the invoice was created. |
|
374 | + * |
|
375 | + * @since 1.0.19 |
|
376 | + * @param string $context View or edit context. |
|
377 | + * @return string |
|
378 | + */ |
|
379 | + public function get_date_created( $context = 'view' ) { |
|
380 | + return $this->get_prop( 'date_created', $context ); |
|
381 | + } |
|
382 | + |
|
383 | + /** |
|
384 | + * Alias for self::get_date_created(). |
|
385 | + * |
|
386 | + * @since 1.0.19 |
|
387 | + * @param string $context View or edit context. |
|
388 | + * @return string |
|
389 | + */ |
|
390 | + public function get_created_date( $context = 'view' ) { |
|
391 | + return $this->get_date_created( $context ); |
|
392 | + } |
|
393 | + |
|
394 | + /** |
|
395 | + * Get GMT date when the invoice was created. |
|
396 | + * |
|
397 | + * @since 1.0.19 |
|
398 | + * @param string $context View or edit context. |
|
399 | + * @return string |
|
400 | + */ |
|
401 | + public function get_date_created_gmt( $context = 'view' ) { |
|
402 | 402 | $date = $this->get_date_created( $context ); |
403 | 403 | |
404 | 404 | if ( $date ) { |
405 | 405 | $date = get_gmt_from_date( $date ); |
406 | 406 | } |
407 | - return $date; |
|
407 | + return $date; |
|
408 | 408 | } |
409 | 409 | |
410 | 410 | /** |
411 | - * Get date when the invoice was last modified. |
|
412 | - * |
|
413 | - * @since 1.0.19 |
|
414 | - * @param string $context View or edit context. |
|
415 | - * @return string |
|
416 | - */ |
|
417 | - public function get_date_modified( $context = 'view' ) { |
|
418 | - return $this->get_prop( 'date_modified', $context ); |
|
419 | - } |
|
411 | + * Get date when the invoice was last modified. |
|
412 | + * |
|
413 | + * @since 1.0.19 |
|
414 | + * @param string $context View or edit context. |
|
415 | + * @return string |
|
416 | + */ |
|
417 | + public function get_date_modified( $context = 'view' ) { |
|
418 | + return $this->get_prop( 'date_modified', $context ); |
|
419 | + } |
|
420 | 420 | |
421 | - /** |
|
422 | - * Alias for self::get_date_modified(). |
|
423 | - * |
|
424 | - * @since 1.0.19 |
|
425 | - * @param string $context View or edit context. |
|
426 | - * @return string |
|
427 | - */ |
|
428 | - public function get_modified_date( $context = 'view' ) { |
|
429 | - return $this->get_date_modified( $context ); |
|
421 | + /** |
|
422 | + * Alias for self::get_date_modified(). |
|
423 | + * |
|
424 | + * @since 1.0.19 |
|
425 | + * @param string $context View or edit context. |
|
426 | + * @return string |
|
427 | + */ |
|
428 | + public function get_modified_date( $context = 'view' ) { |
|
429 | + return $this->get_date_modified( $context ); |
|
430 | 430 | } |
431 | 431 | |
432 | 432 | /** |
433 | - * Get GMT date when the invoice was last modified. |
|
434 | - * |
|
435 | - * @since 1.0.19 |
|
436 | - * @param string $context View or edit context. |
|
437 | - * @return string |
|
438 | - */ |
|
439 | - public function get_date_modified_gmt( $context = 'view' ) { |
|
433 | + * Get GMT date when the invoice was last modified. |
|
434 | + * |
|
435 | + * @since 1.0.19 |
|
436 | + * @param string $context View or edit context. |
|
437 | + * @return string |
|
438 | + */ |
|
439 | + public function get_date_modified_gmt( $context = 'view' ) { |
|
440 | 440 | $date = $this->get_date_modified( $context ); |
441 | 441 | |
442 | 442 | if ( $date ) { |
443 | 443 | $date = get_gmt_from_date( $date ); |
444 | 444 | } |
445 | - return $date; |
|
445 | + return $date; |
|
446 | 446 | } |
447 | 447 | |
448 | 448 | /** |
449 | - * Get the invoice due date. |
|
450 | - * |
|
451 | - * @since 1.0.19 |
|
452 | - * @param string $context View or edit context. |
|
453 | - * @return string |
|
454 | - */ |
|
455 | - public function get_due_date( $context = 'view' ) { |
|
456 | - return $this->get_prop( 'due_date', $context ); |
|
449 | + * Get the invoice due date. |
|
450 | + * |
|
451 | + * @since 1.0.19 |
|
452 | + * @param string $context View or edit context. |
|
453 | + * @return string |
|
454 | + */ |
|
455 | + public function get_due_date( $context = 'view' ) { |
|
456 | + return $this->get_prop( 'due_date', $context ); |
|
457 | 457 | } |
458 | 458 | |
459 | 459 | /** |
460 | - * Alias for self::get_due_date(). |
|
461 | - * |
|
462 | - * @since 1.0.19 |
|
463 | - * @param string $context View or edit context. |
|
464 | - * @return string |
|
465 | - */ |
|
466 | - public function get_date_due( $context = 'view' ) { |
|
467 | - return $this->get_due_date( $context ); |
|
460 | + * Alias for self::get_due_date(). |
|
461 | + * |
|
462 | + * @since 1.0.19 |
|
463 | + * @param string $context View or edit context. |
|
464 | + * @return string |
|
465 | + */ |
|
466 | + public function get_date_due( $context = 'view' ) { |
|
467 | + return $this->get_due_date( $context ); |
|
468 | 468 | } |
469 | 469 | |
470 | 470 | /** |
471 | - * Get the invoice GMT due date. |
|
472 | - * |
|
473 | - * @since 1.0.19 |
|
474 | - * @param string $context View or edit context. |
|
475 | - * @return string |
|
476 | - */ |
|
477 | - public function get_due_date_gmt( $context = 'view' ) { |
|
471 | + * Get the invoice GMT due date. |
|
472 | + * |
|
473 | + * @since 1.0.19 |
|
474 | + * @param string $context View or edit context. |
|
475 | + * @return string |
|
476 | + */ |
|
477 | + public function get_due_date_gmt( $context = 'view' ) { |
|
478 | 478 | $date = $this->get_due_date( $context ); |
479 | 479 | |
480 | 480 | if ( $date ) { |
481 | 481 | $date = get_gmt_from_date( $date ); |
482 | 482 | } |
483 | - return $date; |
|
483 | + return $date; |
|
484 | 484 | } |
485 | 485 | |
486 | 486 | /** |
487 | - * Alias for self::get_due_date_gmt(). |
|
488 | - * |
|
489 | - * @since 1.0.19 |
|
490 | - * @param string $context View or edit context. |
|
491 | - * @return string |
|
492 | - */ |
|
493 | - public function get_gmt_date_due( $context = 'view' ) { |
|
494 | - return $this->get_due_date_gmt( $context ); |
|
487 | + * Alias for self::get_due_date_gmt(). |
|
488 | + * |
|
489 | + * @since 1.0.19 |
|
490 | + * @param string $context View or edit context. |
|
491 | + * @return string |
|
492 | + */ |
|
493 | + public function get_gmt_date_due( $context = 'view' ) { |
|
494 | + return $this->get_due_date_gmt( $context ); |
|
495 | 495 | } |
496 | 496 | |
497 | 497 | /** |
498 | - * Get date when the invoice was completed. |
|
499 | - * |
|
500 | - * @since 1.0.19 |
|
501 | - * @param string $context View or edit context. |
|
502 | - * @return string |
|
503 | - */ |
|
504 | - public function get_completed_date( $context = 'view' ) { |
|
505 | - return $this->get_prop( 'completed_date', $context ); |
|
498 | + * Get date when the invoice was completed. |
|
499 | + * |
|
500 | + * @since 1.0.19 |
|
501 | + * @param string $context View or edit context. |
|
502 | + * @return string |
|
503 | + */ |
|
504 | + public function get_completed_date( $context = 'view' ) { |
|
505 | + return $this->get_prop( 'completed_date', $context ); |
|
506 | 506 | } |
507 | 507 | |
508 | 508 | /** |
509 | - * Alias for self::get_completed_date(). |
|
510 | - * |
|
511 | - * @since 1.0.19 |
|
512 | - * @param string $context View or edit context. |
|
513 | - * @return string |
|
514 | - */ |
|
515 | - public function get_date_completed( $context = 'view' ) { |
|
516 | - return $this->get_completed_date( $context ); |
|
509 | + * Alias for self::get_completed_date(). |
|
510 | + * |
|
511 | + * @since 1.0.19 |
|
512 | + * @param string $context View or edit context. |
|
513 | + * @return string |
|
514 | + */ |
|
515 | + public function get_date_completed( $context = 'view' ) { |
|
516 | + return $this->get_completed_date( $context ); |
|
517 | 517 | } |
518 | 518 | |
519 | 519 | /** |
520 | - * Get GMT date when the invoice was was completed. |
|
521 | - * |
|
522 | - * @since 1.0.19 |
|
523 | - * @param string $context View or edit context. |
|
524 | - * @return string |
|
525 | - */ |
|
526 | - public function get_completed_date_gmt( $context = 'view' ) { |
|
520 | + * Get GMT date when the invoice was was completed. |
|
521 | + * |
|
522 | + * @since 1.0.19 |
|
523 | + * @param string $context View or edit context. |
|
524 | + * @return string |
|
525 | + */ |
|
526 | + public function get_completed_date_gmt( $context = 'view' ) { |
|
527 | 527 | $date = $this->get_completed_date( $context ); |
528 | 528 | |
529 | 529 | if ( $date ) { |
530 | 530 | $date = get_gmt_from_date( $date ); |
531 | 531 | } |
532 | - return $date; |
|
532 | + return $date; |
|
533 | 533 | } |
534 | 534 | |
535 | 535 | /** |
536 | - * Alias for self::get_completed_date_gmt(). |
|
537 | - * |
|
538 | - * @since 1.0.19 |
|
539 | - * @param string $context View or edit context. |
|
540 | - * @return string |
|
541 | - */ |
|
542 | - public function get_gmt_completed_date( $context = 'view' ) { |
|
543 | - return $this->get_completed_date_gmt( $context ); |
|
536 | + * Alias for self::get_completed_date_gmt(). |
|
537 | + * |
|
538 | + * @since 1.0.19 |
|
539 | + * @param string $context View or edit context. |
|
540 | + * @return string |
|
541 | + */ |
|
542 | + public function get_gmt_completed_date( $context = 'view' ) { |
|
543 | + return $this->get_completed_date_gmt( $context ); |
|
544 | 544 | } |
545 | 545 | |
546 | 546 | /** |
547 | - * Get the invoice number. |
|
548 | - * |
|
549 | - * @since 1.0.19 |
|
550 | - * @param string $context View or edit context. |
|
551 | - * @return string |
|
552 | - */ |
|
553 | - public function get_number( $context = 'view' ) { |
|
554 | - $number = $this->get_prop( 'number', $context ); |
|
547 | + * Get the invoice number. |
|
548 | + * |
|
549 | + * @since 1.0.19 |
|
550 | + * @param string $context View or edit context. |
|
551 | + * @return string |
|
552 | + */ |
|
553 | + public function get_number( $context = 'view' ) { |
|
554 | + $number = $this->get_prop( 'number', $context ); |
|
555 | 555 | |
556 | - if ( empty( $number ) ) { |
|
557 | - $number = $this->generate_number(); |
|
558 | - $this->set_number( $this->generate_number() ); |
|
559 | - } |
|
556 | + if ( empty( $number ) ) { |
|
557 | + $number = $this->generate_number(); |
|
558 | + $this->set_number( $this->generate_number() ); |
|
559 | + } |
|
560 | 560 | |
561 | - return $number; |
|
561 | + return $number; |
|
562 | 562 | } |
563 | 563 | |
564 | - /** |
|
565 | - * Set the invoice number. |
|
566 | - * |
|
567 | - * @since 1.0.19 |
|
568 | - */ |
|
569 | - public function maybe_set_number() { |
|
564 | + /** |
|
565 | + * Set the invoice number. |
|
566 | + * |
|
567 | + * @since 1.0.19 |
|
568 | + */ |
|
569 | + public function maybe_set_number() { |
|
570 | 570 | $number = $this->get_number(); |
571 | 571 | |
572 | 572 | if ( empty( $number ) || $this->get_id() == $number ) { |
573 | - $this->set_number( $this->generate_number() ); |
|
573 | + $this->set_number( $this->generate_number() ); |
|
574 | 574 | } |
575 | 575 | |
576 | - } |
|
576 | + } |
|
577 | 577 | |
578 | 578 | /** |
579 | - * Get the invoice key. |
|
580 | - * |
|
581 | - * @since 1.0.19 |
|
582 | - * @param string $context View or edit context. |
|
583 | - * @return string |
|
584 | - */ |
|
585 | - public function get_key( $context = 'view' ) { |
|
579 | + * Get the invoice key. |
|
580 | + * |
|
581 | + * @since 1.0.19 |
|
582 | + * @param string $context View or edit context. |
|
583 | + * @return string |
|
584 | + */ |
|
585 | + public function get_key( $context = 'view' ) { |
|
586 | 586 | return $this->get_prop( 'key', $context ); |
587 | - } |
|
588 | - |
|
589 | - /** |
|
590 | - * Set the invoice key. |
|
591 | - * |
|
592 | - * @since 1.0.19 |
|
593 | - */ |
|
594 | - public function maybe_set_key() { |
|
587 | + } |
|
588 | + |
|
589 | + /** |
|
590 | + * Set the invoice key. |
|
591 | + * |
|
592 | + * @since 1.0.19 |
|
593 | + */ |
|
594 | + public function maybe_set_key() { |
|
595 | 595 | $key = $this->get_key(); |
596 | 596 | |
597 | 597 | if ( empty( $key ) ) { |
@@ -602,140 +602,140 @@ discard block |
||
602 | 602 | } |
603 | 603 | |
604 | 604 | /** |
605 | - * Get the invoice type. |
|
606 | - * |
|
607 | - * @since 1.0.19 |
|
608 | - * @param string $context View or edit context. |
|
609 | - * @return string |
|
610 | - */ |
|
611 | - public function get_type( $context = 'view' ) { |
|
605 | + * Get the invoice type. |
|
606 | + * |
|
607 | + * @since 1.0.19 |
|
608 | + * @param string $context View or edit context. |
|
609 | + * @return string |
|
610 | + */ |
|
611 | + public function get_type( $context = 'view' ) { |
|
612 | 612 | return $this->get_prop( 'type', $context ); |
613 | - } |
|
614 | - |
|
615 | - /** |
|
616 | - * Returns the post type name. |
|
617 | - * |
|
618 | - * @since 1.0.19 |
|
619 | - * @return string |
|
620 | - */ |
|
621 | - public function get_invoice_quote_type() { |
|
613 | + } |
|
614 | + |
|
615 | + /** |
|
616 | + * Returns the post type name. |
|
617 | + * |
|
618 | + * @since 1.0.19 |
|
619 | + * @return string |
|
620 | + */ |
|
621 | + public function get_invoice_quote_type() { |
|
622 | 622 | return getpaid_get_post_type_label( $this->get_post_type(), false ); |
623 | 623 | } |
624 | 624 | |
625 | 625 | /** |
626 | - * Get the invoice post type label. |
|
627 | - * |
|
628 | - * @since 1.0.19 |
|
629 | - * @param string $context View or edit context. |
|
630 | - * @return string |
|
631 | - */ |
|
632 | - public function get_label( $context = 'view' ) { |
|
626 | + * Get the invoice post type label. |
|
627 | + * |
|
628 | + * @since 1.0.19 |
|
629 | + * @param string $context View or edit context. |
|
630 | + * @return string |
|
631 | + */ |
|
632 | + public function get_label( $context = 'view' ) { |
|
633 | 633 | return getpaid_get_post_type_label( $this->get_post_type( $context ), false ); |
634 | - } |
|
635 | - |
|
636 | - /** |
|
637 | - * Get the invoice post type. |
|
638 | - * |
|
639 | - * @since 1.0.19 |
|
640 | - * @param string $context View or edit context. |
|
641 | - * @return string |
|
642 | - */ |
|
643 | - public function get_post_type( $context = 'view' ) { |
|
634 | + } |
|
635 | + |
|
636 | + /** |
|
637 | + * Get the invoice post type. |
|
638 | + * |
|
639 | + * @since 1.0.19 |
|
640 | + * @param string $context View or edit context. |
|
641 | + * @return string |
|
642 | + */ |
|
643 | + public function get_post_type( $context = 'view' ) { |
|
644 | 644 | return $this->get_prop( 'post_type', $context ); |
645 | 645 | } |
646 | 646 | |
647 | 647 | /** |
648 | - * Get the invoice mode. |
|
649 | - * |
|
650 | - * @since 1.0.19 |
|
651 | - * @param string $context View or edit context. |
|
652 | - * @return string |
|
653 | - */ |
|
654 | - public function get_mode( $context = 'view' ) { |
|
648 | + * Get the invoice mode. |
|
649 | + * |
|
650 | + * @since 1.0.19 |
|
651 | + * @param string $context View or edit context. |
|
652 | + * @return string |
|
653 | + */ |
|
654 | + public function get_mode( $context = 'view' ) { |
|
655 | 655 | return $this->get_prop( 'mode', $context ); |
656 | 656 | } |
657 | 657 | |
658 | 658 | /** |
659 | - * Get the invoice path. |
|
660 | - * |
|
661 | - * @since 1.0.19 |
|
662 | - * @param string $context View or edit context. |
|
663 | - * @return string |
|
664 | - */ |
|
665 | - public function get_path( $context = 'view' ) { |
|
659 | + * Get the invoice path. |
|
660 | + * |
|
661 | + * @since 1.0.19 |
|
662 | + * @param string $context View or edit context. |
|
663 | + * @return string |
|
664 | + */ |
|
665 | + public function get_path( $context = 'view' ) { |
|
666 | 666 | $path = $this->get_prop( 'path', $context ); |
667 | - $prefix = $this->get_type(); |
|
667 | + $prefix = $this->get_type(); |
|
668 | 668 | |
669 | - if ( 0 !== strpos( $path, $prefix ) ) { |
|
670 | - $path = sanitize_title( $prefix . '-' . $this->get_id() ); |
|
671 | - $this->set_path( $path ); |
|
672 | - } |
|
669 | + if ( 0 !== strpos( $path, $prefix ) ) { |
|
670 | + $path = sanitize_title( $prefix . '-' . $this->get_id() ); |
|
671 | + $this->set_path( $path ); |
|
672 | + } |
|
673 | 673 | |
674 | - return $path; |
|
674 | + return $path; |
|
675 | 675 | } |
676 | 676 | |
677 | 677 | /** |
678 | - * Get the invoice name/title. |
|
679 | - * |
|
680 | - * @since 1.0.19 |
|
681 | - * @param string $context View or edit context. |
|
682 | - * @return string |
|
683 | - */ |
|
684 | - public function get_name( $context = 'view' ) { |
|
678 | + * Get the invoice name/title. |
|
679 | + * |
|
680 | + * @since 1.0.19 |
|
681 | + * @param string $context View or edit context. |
|
682 | + * @return string |
|
683 | + */ |
|
684 | + public function get_name( $context = 'view' ) { |
|
685 | 685 | return $this->get_prop( 'title', $context ); |
686 | 686 | } |
687 | 687 | |
688 | 688 | /** |
689 | - * Alias of self::get_name(). |
|
690 | - * |
|
691 | - * @since 1.0.19 |
|
692 | - * @param string $context View or edit context. |
|
693 | - * @return string |
|
694 | - */ |
|
695 | - public function get_title( $context = 'view' ) { |
|
696 | - return $this->get_name( $context ); |
|
689 | + * Alias of self::get_name(). |
|
690 | + * |
|
691 | + * @since 1.0.19 |
|
692 | + * @param string $context View or edit context. |
|
693 | + * @return string |
|
694 | + */ |
|
695 | + public function get_title( $context = 'view' ) { |
|
696 | + return $this->get_name( $context ); |
|
697 | 697 | } |
698 | 698 | |
699 | 699 | /** |
700 | - * Get the invoice description. |
|
701 | - * |
|
702 | - * @since 1.0.19 |
|
703 | - * @param string $context View or edit context. |
|
704 | - * @return string |
|
705 | - */ |
|
706 | - public function get_description( $context = 'view' ) { |
|
707 | - return $this->get_prop( 'description', $context ); |
|
700 | + * Get the invoice description. |
|
701 | + * |
|
702 | + * @since 1.0.19 |
|
703 | + * @param string $context View or edit context. |
|
704 | + * @return string |
|
705 | + */ |
|
706 | + public function get_description( $context = 'view' ) { |
|
707 | + return $this->get_prop( 'description', $context ); |
|
708 | 708 | } |
709 | 709 | |
710 | 710 | /** |
711 | - * Alias of self::get_description(). |
|
712 | - * |
|
713 | - * @since 1.0.19 |
|
714 | - * @param string $context View or edit context. |
|
715 | - * @return string |
|
716 | - */ |
|
717 | - public function get_excerpt( $context = 'view' ) { |
|
718 | - return $this->get_description( $context ); |
|
711 | + * Alias of self::get_description(). |
|
712 | + * |
|
713 | + * @since 1.0.19 |
|
714 | + * @param string $context View or edit context. |
|
715 | + * @return string |
|
716 | + */ |
|
717 | + public function get_excerpt( $context = 'view' ) { |
|
718 | + return $this->get_description( $context ); |
|
719 | 719 | } |
720 | 720 | |
721 | 721 | /** |
722 | - * Alias of self::get_description(). |
|
723 | - * |
|
724 | - * @since 1.0.19 |
|
725 | - * @param string $context View or edit context. |
|
726 | - * @return string |
|
727 | - */ |
|
728 | - public function get_summary( $context = 'view' ) { |
|
729 | - return $this->get_description( $context ); |
|
722 | + * Alias of self::get_description(). |
|
723 | + * |
|
724 | + * @since 1.0.19 |
|
725 | + * @param string $context View or edit context. |
|
726 | + * @return string |
|
727 | + */ |
|
728 | + public function get_summary( $context = 'view' ) { |
|
729 | + return $this->get_description( $context ); |
|
730 | 730 | } |
731 | 731 | |
732 | 732 | /** |
733 | - * Returns the user info. |
|
734 | - * |
|
735 | - * @since 1.0.19 |
|
733 | + * Returns the user info. |
|
734 | + * |
|
735 | + * @since 1.0.19 |
|
736 | 736 | * @param string $context View or edit context. |
737 | - * @return array |
|
738 | - */ |
|
737 | + * @return array |
|
738 | + */ |
|
739 | 739 | public function get_user_info( $context = 'view' ) { |
740 | 740 | |
741 | 741 | $user_info = array( |
@@ -750,683 +750,683 @@ discard block |
||
750 | 750 | 'state' => $this->get_state( $context ), |
751 | 751 | 'zip' => $this->get_zip( $context ), |
752 | 752 | 'company' => $this->get_company( $context ), |
753 | - 'company_id' => $this->get_company_id( $context ), |
|
753 | + 'company_id' => $this->get_company_id( $context ), |
|
754 | 754 | 'vat_number' => $this->get_vat_number( $context ), |
755 | 755 | 'discount' => $this->get_discount_code( $context ), |
756 | - ); |
|
756 | + ); |
|
757 | 757 | |
758 | - return apply_filters( 'wpinv_user_info', $user_info, $this->get_id(), $this ); |
|
758 | + return apply_filters( 'wpinv_user_info', $user_info, $this->get_id(), $this ); |
|
759 | 759 | |
760 | 760 | } |
761 | 761 | |
762 | 762 | /** |
763 | - * Get the customer id. |
|
764 | - * |
|
765 | - * @since 1.0.19 |
|
766 | - * @param string $context View or edit context. |
|
767 | - * @return int |
|
768 | - */ |
|
769 | - public function get_author( $context = 'view' ) { |
|
770 | - return (int) $this->get_prop( 'author', $context ); |
|
763 | + * Get the customer id. |
|
764 | + * |
|
765 | + * @since 1.0.19 |
|
766 | + * @param string $context View or edit context. |
|
767 | + * @return int |
|
768 | + */ |
|
769 | + public function get_author( $context = 'view' ) { |
|
770 | + return (int) $this->get_prop( 'author', $context ); |
|
771 | 771 | } |
772 | 772 | |
773 | 773 | /** |
774 | - * Alias of self::get_author(). |
|
775 | - * |
|
776 | - * @since 1.0.19 |
|
777 | - * @param string $context View or edit context. |
|
778 | - * @return int |
|
779 | - */ |
|
780 | - public function get_user_id( $context = 'view' ) { |
|
781 | - return $this->get_author( $context ); |
|
774 | + * Alias of self::get_author(). |
|
775 | + * |
|
776 | + * @since 1.0.19 |
|
777 | + * @param string $context View or edit context. |
|
778 | + * @return int |
|
779 | + */ |
|
780 | + public function get_user_id( $context = 'view' ) { |
|
781 | + return $this->get_author( $context ); |
|
782 | 782 | } |
783 | 783 | |
784 | - /** |
|
785 | - * Alias of self::get_author(). |
|
786 | - * |
|
787 | - * @since 1.0.19 |
|
788 | - * @param string $context View or edit context. |
|
789 | - * @return int |
|
790 | - */ |
|
791 | - public function get_customer_id( $context = 'view' ) { |
|
792 | - return $this->get_author( $context ); |
|
784 | + /** |
|
785 | + * Alias of self::get_author(). |
|
786 | + * |
|
787 | + * @since 1.0.19 |
|
788 | + * @param string $context View or edit context. |
|
789 | + * @return int |
|
790 | + */ |
|
791 | + public function get_customer_id( $context = 'view' ) { |
|
792 | + return $this->get_author( $context ); |
|
793 | 793 | } |
794 | 794 | |
795 | 795 | /** |
796 | - * Get the customer's ip. |
|
797 | - * |
|
798 | - * @since 1.0.19 |
|
799 | - * @param string $context View or edit context. |
|
800 | - * @return string |
|
801 | - */ |
|
802 | - public function get_ip( $context = 'view' ) { |
|
803 | - return $this->get_prop( 'user_ip', $context ); |
|
796 | + * Get the customer's ip. |
|
797 | + * |
|
798 | + * @since 1.0.19 |
|
799 | + * @param string $context View or edit context. |
|
800 | + * @return string |
|
801 | + */ |
|
802 | + public function get_ip( $context = 'view' ) { |
|
803 | + return $this->get_prop( 'user_ip', $context ); |
|
804 | 804 | } |
805 | 805 | |
806 | 806 | /** |
807 | - * Alias of self::get_ip(). |
|
808 | - * |
|
809 | - * @since 1.0.19 |
|
810 | - * @param string $context View or edit context. |
|
811 | - * @return string |
|
812 | - */ |
|
813 | - public function get_user_ip( $context = 'view' ) { |
|
814 | - return $this->get_ip( $context ); |
|
807 | + * Alias of self::get_ip(). |
|
808 | + * |
|
809 | + * @since 1.0.19 |
|
810 | + * @param string $context View or edit context. |
|
811 | + * @return string |
|
812 | + */ |
|
813 | + public function get_user_ip( $context = 'view' ) { |
|
814 | + return $this->get_ip( $context ); |
|
815 | 815 | } |
816 | 816 | |
817 | - /** |
|
818 | - * Alias of self::get_ip(). |
|
819 | - * |
|
820 | - * @since 1.0.19 |
|
821 | - * @param string $context View or edit context. |
|
822 | - * @return string |
|
823 | - */ |
|
824 | - public function get_customer_ip( $context = 'view' ) { |
|
825 | - return $this->get_ip( $context ); |
|
817 | + /** |
|
818 | + * Alias of self::get_ip(). |
|
819 | + * |
|
820 | + * @since 1.0.19 |
|
821 | + * @param string $context View or edit context. |
|
822 | + * @return string |
|
823 | + */ |
|
824 | + public function get_customer_ip( $context = 'view' ) { |
|
825 | + return $this->get_ip( $context ); |
|
826 | 826 | } |
827 | 827 | |
828 | 828 | /** |
829 | - * Get the customer's first name. |
|
830 | - * |
|
831 | - * @since 1.0.19 |
|
832 | - * @param string $context View or edit context. |
|
833 | - * @return string |
|
834 | - */ |
|
835 | - public function get_first_name( $context = 'view' ) { |
|
836 | - return $this->get_prop( 'first_name', $context ); |
|
829 | + * Get the customer's first name. |
|
830 | + * |
|
831 | + * @since 1.0.19 |
|
832 | + * @param string $context View or edit context. |
|
833 | + * @return string |
|
834 | + */ |
|
835 | + public function get_first_name( $context = 'view' ) { |
|
836 | + return $this->get_prop( 'first_name', $context ); |
|
837 | 837 | } |
838 | 838 | |
839 | 839 | /** |
840 | - * Alias of self::get_first_name(). |
|
841 | - * |
|
842 | - * @since 1.0.19 |
|
843 | - * @param string $context View or edit context. |
|
844 | - * @return string |
|
845 | - */ |
|
846 | - public function get_user_first_name( $context = 'view' ) { |
|
847 | - return $this->get_first_name( $context ); |
|
840 | + * Alias of self::get_first_name(). |
|
841 | + * |
|
842 | + * @since 1.0.19 |
|
843 | + * @param string $context View or edit context. |
|
844 | + * @return string |
|
845 | + */ |
|
846 | + public function get_user_first_name( $context = 'view' ) { |
|
847 | + return $this->get_first_name( $context ); |
|
848 | 848 | } |
849 | 849 | |
850 | - /** |
|
851 | - * Alias of self::get_first_name(). |
|
852 | - * |
|
853 | - * @since 1.0.19 |
|
854 | - * @param string $context View or edit context. |
|
855 | - * @return string |
|
856 | - */ |
|
857 | - public function get_customer_first_name( $context = 'view' ) { |
|
858 | - return $this->get_first_name( $context ); |
|
850 | + /** |
|
851 | + * Alias of self::get_first_name(). |
|
852 | + * |
|
853 | + * @since 1.0.19 |
|
854 | + * @param string $context View or edit context. |
|
855 | + * @return string |
|
856 | + */ |
|
857 | + public function get_customer_first_name( $context = 'view' ) { |
|
858 | + return $this->get_first_name( $context ); |
|
859 | 859 | } |
860 | 860 | |
861 | 861 | /** |
862 | - * Get the customer's last name. |
|
863 | - * |
|
864 | - * @since 1.0.19 |
|
865 | - * @param string $context View or edit context. |
|
866 | - * @return string |
|
867 | - */ |
|
868 | - public function get_last_name( $context = 'view' ) { |
|
869 | - return $this->get_prop( 'last_name', $context ); |
|
862 | + * Get the customer's last name. |
|
863 | + * |
|
864 | + * @since 1.0.19 |
|
865 | + * @param string $context View or edit context. |
|
866 | + * @return string |
|
867 | + */ |
|
868 | + public function get_last_name( $context = 'view' ) { |
|
869 | + return $this->get_prop( 'last_name', $context ); |
|
870 | 870 | } |
871 | 871 | |
872 | 872 | /** |
873 | - * Alias of self::get_last_name(). |
|
874 | - * |
|
875 | - * @since 1.0.19 |
|
876 | - * @param string $context View or edit context. |
|
877 | - * @return string |
|
878 | - */ |
|
879 | - public function get_user_last_name( $context = 'view' ) { |
|
880 | - return $this->get_last_name( $context ); |
|
873 | + * Alias of self::get_last_name(). |
|
874 | + * |
|
875 | + * @since 1.0.19 |
|
876 | + * @param string $context View or edit context. |
|
877 | + * @return string |
|
878 | + */ |
|
879 | + public function get_user_last_name( $context = 'view' ) { |
|
880 | + return $this->get_last_name( $context ); |
|
881 | 881 | } |
882 | 882 | |
883 | 883 | /** |
884 | - * Alias of self::get_last_name(). |
|
885 | - * |
|
886 | - * @since 1.0.19 |
|
887 | - * @param string $context View or edit context. |
|
888 | - * @return string |
|
889 | - */ |
|
890 | - public function get_customer_last_name( $context = 'view' ) { |
|
891 | - return $this->get_last_name( $context ); |
|
884 | + * Alias of self::get_last_name(). |
|
885 | + * |
|
886 | + * @since 1.0.19 |
|
887 | + * @param string $context View or edit context. |
|
888 | + * @return string |
|
889 | + */ |
|
890 | + public function get_customer_last_name( $context = 'view' ) { |
|
891 | + return $this->get_last_name( $context ); |
|
892 | 892 | } |
893 | 893 | |
894 | 894 | /** |
895 | - * Get the customer's full name. |
|
896 | - * |
|
897 | - * @since 1.0.19 |
|
898 | - * @param string $context View or edit context. |
|
899 | - * @return string |
|
900 | - */ |
|
901 | - public function get_full_name( $context = 'view' ) { |
|
902 | - $name = trim( $this->get_first_name( $context ) . ' ' . $this->get_last_name( $context ) ); |
|
895 | + * Get the customer's full name. |
|
896 | + * |
|
897 | + * @since 1.0.19 |
|
898 | + * @param string $context View or edit context. |
|
899 | + * @return string |
|
900 | + */ |
|
901 | + public function get_full_name( $context = 'view' ) { |
|
902 | + $name = trim( $this->get_first_name( $context ) . ' ' . $this->get_last_name( $context ) ); |
|
903 | 903 | |
904 | - if ( ! $name ) { |
|
905 | - $user = get_userdata( $this->get_author( $context ) ); |
|
904 | + if ( ! $name ) { |
|
905 | + $user = get_userdata( $this->get_author( $context ) ); |
|
906 | 906 | |
907 | - if ( $user ) { |
|
908 | - $name = $user->display_name; |
|
909 | - } |
|
910 | - } |
|
907 | + if ( $user ) { |
|
908 | + $name = $user->display_name; |
|
909 | + } |
|
910 | + } |
|
911 | 911 | |
912 | - if ( ! $name ) { |
|
913 | - $name = $this->get_email( $context ); |
|
914 | - } |
|
912 | + if ( ! $name ) { |
|
913 | + $name = $this->get_email( $context ); |
|
914 | + } |
|
915 | 915 | |
916 | - return apply_filters( 'wpinv_invoice_user_full_name', $name, $this ); |
|
916 | + return apply_filters( 'wpinv_invoice_user_full_name', $name, $this ); |
|
917 | 917 | } |
918 | 918 | |
919 | 919 | /** |
920 | - * Alias of self::get_full_name(). |
|
921 | - * |
|
922 | - * @since 1.0.19 |
|
923 | - * @param string $context View or edit context. |
|
924 | - * @return string |
|
925 | - */ |
|
926 | - public function get_user_full_name( $context = 'view' ) { |
|
927 | - return $this->get_full_name( $context ); |
|
920 | + * Alias of self::get_full_name(). |
|
921 | + * |
|
922 | + * @since 1.0.19 |
|
923 | + * @param string $context View or edit context. |
|
924 | + * @return string |
|
925 | + */ |
|
926 | + public function get_user_full_name( $context = 'view' ) { |
|
927 | + return $this->get_full_name( $context ); |
|
928 | 928 | } |
929 | 929 | |
930 | 930 | /** |
931 | - * Alias of self::get_full_name(). |
|
932 | - * |
|
933 | - * @since 1.0.19 |
|
934 | - * @param string $context View or edit context. |
|
935 | - * @return string |
|
936 | - */ |
|
937 | - public function get_customer_full_name( $context = 'view' ) { |
|
938 | - return $this->get_full_name( $context ); |
|
931 | + * Alias of self::get_full_name(). |
|
932 | + * |
|
933 | + * @since 1.0.19 |
|
934 | + * @param string $context View or edit context. |
|
935 | + * @return string |
|
936 | + */ |
|
937 | + public function get_customer_full_name( $context = 'view' ) { |
|
938 | + return $this->get_full_name( $context ); |
|
939 | 939 | } |
940 | 940 | |
941 | 941 | /** |
942 | - * Get the customer's phone number. |
|
943 | - * |
|
944 | - * @since 1.0.19 |
|
945 | - * @param string $context View or edit context. |
|
946 | - * @return string |
|
947 | - */ |
|
948 | - public function get_phone( $context = 'view' ) { |
|
949 | - return $this->get_prop( 'phone', $context ); |
|
942 | + * Get the customer's phone number. |
|
943 | + * |
|
944 | + * @since 1.0.19 |
|
945 | + * @param string $context View or edit context. |
|
946 | + * @return string |
|
947 | + */ |
|
948 | + public function get_phone( $context = 'view' ) { |
|
949 | + return $this->get_prop( 'phone', $context ); |
|
950 | + } |
|
951 | + |
|
952 | + /** |
|
953 | + * Alias of self::get_phone(). |
|
954 | + * |
|
955 | + * @since 1.0.19 |
|
956 | + * @param string $context View or edit context. |
|
957 | + * @return string |
|
958 | + */ |
|
959 | + public function get_phone_number( $context = 'view' ) { |
|
960 | + return $this->get_phone( $context ); |
|
961 | + } |
|
962 | + |
|
963 | + /** |
|
964 | + * Alias of self::get_phone(). |
|
965 | + * |
|
966 | + * @since 1.0.19 |
|
967 | + * @param string $context View or edit context. |
|
968 | + * @return string |
|
969 | + */ |
|
970 | + public function get_user_phone( $context = 'view' ) { |
|
971 | + return $this->get_phone( $context ); |
|
972 | + } |
|
973 | + |
|
974 | + /** |
|
975 | + * Alias of self::get_phone(). |
|
976 | + * |
|
977 | + * @since 1.0.19 |
|
978 | + * @param string $context View or edit context. |
|
979 | + * @return string |
|
980 | + */ |
|
981 | + public function get_customer_phone( $context = 'view' ) { |
|
982 | + return $this->get_phone( $context ); |
|
983 | + } |
|
984 | + |
|
985 | + /** |
|
986 | + * Get the customer's email address. |
|
987 | + * |
|
988 | + * @since 1.0.19 |
|
989 | + * @param string $context View or edit context. |
|
990 | + * @return string |
|
991 | + */ |
|
992 | + public function get_email( $context = 'view' ) { |
|
993 | + return $this->get_prop( 'email', $context ); |
|
994 | + } |
|
995 | + |
|
996 | + /** |
|
997 | + * Alias of self::get_email(). |
|
998 | + * |
|
999 | + * @since 1.0.19 |
|
1000 | + * @param string $context View or edit context. |
|
1001 | + * @return string |
|
1002 | + */ |
|
1003 | + public function get_email_address( $context = 'view' ) { |
|
1004 | + return $this->get_email( $context ); |
|
1005 | + } |
|
1006 | + |
|
1007 | + /** |
|
1008 | + * Alias of self::get_email(). |
|
1009 | + * |
|
1010 | + * @since 1.0.19 |
|
1011 | + * @param string $context View or edit context. |
|
1012 | + * @return string |
|
1013 | + */ |
|
1014 | + public function get_user_email( $context = 'view' ) { |
|
1015 | + return $this->get_email( $context ); |
|
1016 | + } |
|
1017 | + |
|
1018 | + /** |
|
1019 | + * Alias of self::get_email(). |
|
1020 | + * |
|
1021 | + * @since 1.0.19 |
|
1022 | + * @param string $context View or edit context. |
|
1023 | + * @return string |
|
1024 | + */ |
|
1025 | + public function get_customer_email( $context = 'view' ) { |
|
1026 | + return $this->get_email( $context ); |
|
1027 | + } |
|
1028 | + |
|
1029 | + /** |
|
1030 | + * Get the customer's country. |
|
1031 | + * |
|
1032 | + * @since 1.0.19 |
|
1033 | + * @param string $context View or edit context. |
|
1034 | + * @return string |
|
1035 | + */ |
|
1036 | + public function get_country( $context = 'view' ) { |
|
1037 | + $country = $this->get_prop( 'country', $context ); |
|
1038 | + return empty( $country ) ? wpinv_get_default_country() : $country; |
|
1039 | + } |
|
1040 | + |
|
1041 | + /** |
|
1042 | + * Alias of self::get_country(). |
|
1043 | + * |
|
1044 | + * @since 1.0.19 |
|
1045 | + * @param string $context View or edit context. |
|
1046 | + * @return string |
|
1047 | + */ |
|
1048 | + public function get_user_country( $context = 'view' ) { |
|
1049 | + return $this->get_country( $context ); |
|
1050 | + } |
|
1051 | + |
|
1052 | + /** |
|
1053 | + * Alias of self::get_country(). |
|
1054 | + * |
|
1055 | + * @since 1.0.19 |
|
1056 | + * @param string $context View or edit context. |
|
1057 | + * @return string |
|
1058 | + */ |
|
1059 | + public function get_customer_country( $context = 'view' ) { |
|
1060 | + return $this->get_country( $context ); |
|
1061 | + } |
|
1062 | + |
|
1063 | + /** |
|
1064 | + * Get the customer's state. |
|
1065 | + * |
|
1066 | + * @since 1.0.19 |
|
1067 | + * @param string $context View or edit context. |
|
1068 | + * @return string |
|
1069 | + */ |
|
1070 | + public function get_state( $context = 'view' ) { |
|
1071 | + $state = $this->get_prop( 'state', $context ); |
|
1072 | + return empty( $state ) ? wpinv_get_default_state() : $state; |
|
950 | 1073 | } |
951 | 1074 | |
952 | 1075 | /** |
953 | - * Alias of self::get_phone(). |
|
954 | - * |
|
955 | - * @since 1.0.19 |
|
956 | - * @param string $context View or edit context. |
|
957 | - * @return string |
|
958 | - */ |
|
959 | - public function get_phone_number( $context = 'view' ) { |
|
960 | - return $this->get_phone( $context ); |
|
1076 | + * Alias of self::get_state(). |
|
1077 | + * |
|
1078 | + * @since 1.0.19 |
|
1079 | + * @param string $context View or edit context. |
|
1080 | + * @return string |
|
1081 | + */ |
|
1082 | + public function get_user_state( $context = 'view' ) { |
|
1083 | + return $this->get_state( $context ); |
|
961 | 1084 | } |
962 | 1085 | |
963 | 1086 | /** |
964 | - * Alias of self::get_phone(). |
|
965 | - * |
|
966 | - * @since 1.0.19 |
|
967 | - * @param string $context View or edit context. |
|
968 | - * @return string |
|
969 | - */ |
|
970 | - public function get_user_phone( $context = 'view' ) { |
|
971 | - return $this->get_phone( $context ); |
|
1087 | + * Alias of self::get_state(). |
|
1088 | + * |
|
1089 | + * @since 1.0.19 |
|
1090 | + * @param string $context View or edit context. |
|
1091 | + * @return string |
|
1092 | + */ |
|
1093 | + public function get_customer_state( $context = 'view' ) { |
|
1094 | + return $this->get_state( $context ); |
|
972 | 1095 | } |
973 | 1096 | |
974 | 1097 | /** |
975 | - * Alias of self::get_phone(). |
|
976 | - * |
|
977 | - * @since 1.0.19 |
|
978 | - * @param string $context View or edit context. |
|
979 | - * @return string |
|
980 | - */ |
|
981 | - public function get_customer_phone( $context = 'view' ) { |
|
982 | - return $this->get_phone( $context ); |
|
1098 | + * Get the customer's city. |
|
1099 | + * |
|
1100 | + * @since 1.0.19 |
|
1101 | + * @param string $context View or edit context. |
|
1102 | + * @return string |
|
1103 | + */ |
|
1104 | + public function get_city( $context = 'view' ) { |
|
1105 | + return $this->get_prop( 'city', $context ); |
|
983 | 1106 | } |
984 | 1107 | |
985 | 1108 | /** |
986 | - * Get the customer's email address. |
|
987 | - * |
|
988 | - * @since 1.0.19 |
|
989 | - * @param string $context View or edit context. |
|
990 | - * @return string |
|
991 | - */ |
|
992 | - public function get_email( $context = 'view' ) { |
|
993 | - return $this->get_prop( 'email', $context ); |
|
1109 | + * Alias of self::get_city(). |
|
1110 | + * |
|
1111 | + * @since 1.0.19 |
|
1112 | + * @param string $context View or edit context. |
|
1113 | + * @return string |
|
1114 | + */ |
|
1115 | + public function get_user_city( $context = 'view' ) { |
|
1116 | + return $this->get_city( $context ); |
|
994 | 1117 | } |
995 | 1118 | |
996 | 1119 | /** |
997 | - * Alias of self::get_email(). |
|
998 | - * |
|
999 | - * @since 1.0.19 |
|
1000 | - * @param string $context View or edit context. |
|
1001 | - * @return string |
|
1002 | - */ |
|
1003 | - public function get_email_address( $context = 'view' ) { |
|
1004 | - return $this->get_email( $context ); |
|
1120 | + * Alias of self::get_city(). |
|
1121 | + * |
|
1122 | + * @since 1.0.19 |
|
1123 | + * @param string $context View or edit context. |
|
1124 | + * @return string |
|
1125 | + */ |
|
1126 | + public function get_customer_city( $context = 'view' ) { |
|
1127 | + return $this->get_city( $context ); |
|
1005 | 1128 | } |
1006 | 1129 | |
1007 | 1130 | /** |
1008 | - * Alias of self::get_email(). |
|
1009 | - * |
|
1010 | - * @since 1.0.19 |
|
1011 | - * @param string $context View or edit context. |
|
1012 | - * @return string |
|
1013 | - */ |
|
1014 | - public function get_user_email( $context = 'view' ) { |
|
1015 | - return $this->get_email( $context ); |
|
1131 | + * Get the customer's zip. |
|
1132 | + * |
|
1133 | + * @since 1.0.19 |
|
1134 | + * @param string $context View or edit context. |
|
1135 | + * @return string |
|
1136 | + */ |
|
1137 | + public function get_zip( $context = 'view' ) { |
|
1138 | + return $this->get_prop( 'zip', $context ); |
|
1016 | 1139 | } |
1017 | 1140 | |
1018 | 1141 | /** |
1019 | - * Alias of self::get_email(). |
|
1020 | - * |
|
1021 | - * @since 1.0.19 |
|
1022 | - * @param string $context View or edit context. |
|
1023 | - * @return string |
|
1024 | - */ |
|
1025 | - public function get_customer_email( $context = 'view' ) { |
|
1026 | - return $this->get_email( $context ); |
|
1142 | + * Alias of self::get_zip(). |
|
1143 | + * |
|
1144 | + * @since 1.0.19 |
|
1145 | + * @param string $context View or edit context. |
|
1146 | + * @return string |
|
1147 | + */ |
|
1148 | + public function get_user_zip( $context = 'view' ) { |
|
1149 | + return $this->get_zip( $context ); |
|
1027 | 1150 | } |
1028 | 1151 | |
1029 | 1152 | /** |
1030 | - * Get the customer's country. |
|
1031 | - * |
|
1032 | - * @since 1.0.19 |
|
1033 | - * @param string $context View or edit context. |
|
1034 | - * @return string |
|
1035 | - */ |
|
1036 | - public function get_country( $context = 'view' ) { |
|
1037 | - $country = $this->get_prop( 'country', $context ); |
|
1038 | - return empty( $country ) ? wpinv_get_default_country() : $country; |
|
1153 | + * Alias of self::get_zip(). |
|
1154 | + * |
|
1155 | + * @since 1.0.19 |
|
1156 | + * @param string $context View or edit context. |
|
1157 | + * @return string |
|
1158 | + */ |
|
1159 | + public function get_customer_zip( $context = 'view' ) { |
|
1160 | + return $this->get_zip( $context ); |
|
1039 | 1161 | } |
1040 | 1162 | |
1041 | 1163 | /** |
1042 | - * Alias of self::get_country(). |
|
1043 | - * |
|
1044 | - * @since 1.0.19 |
|
1045 | - * @param string $context View or edit context. |
|
1046 | - * @return string |
|
1047 | - */ |
|
1048 | - public function get_user_country( $context = 'view' ) { |
|
1049 | - return $this->get_country( $context ); |
|
1164 | + * Get the customer's company. |
|
1165 | + * |
|
1166 | + * @since 1.0.19 |
|
1167 | + * @param string $context View or edit context. |
|
1168 | + * @return string |
|
1169 | + */ |
|
1170 | + public function get_company( $context = 'view' ) { |
|
1171 | + return $this->get_prop( 'company', $context ); |
|
1172 | + } |
|
1173 | + |
|
1174 | + /** |
|
1175 | + * Alias of self::get_company(). |
|
1176 | + * |
|
1177 | + * @since 1.0.19 |
|
1178 | + * @param string $context View or edit context. |
|
1179 | + * @return string |
|
1180 | + */ |
|
1181 | + public function get_user_company( $context = 'view' ) { |
|
1182 | + return $this->get_company( $context ); |
|
1183 | + } |
|
1184 | + |
|
1185 | + /** |
|
1186 | + * Alias of self::get_company(). |
|
1187 | + * |
|
1188 | + * @since 1.0.19 |
|
1189 | + * @param string $context View or edit context. |
|
1190 | + * @return string |
|
1191 | + */ |
|
1192 | + public function get_customer_company( $context = 'view' ) { |
|
1193 | + return $this->get_company( $context ); |
|
1194 | + } |
|
1195 | + |
|
1196 | + /** |
|
1197 | + * Get the customer's company id. |
|
1198 | + * |
|
1199 | + * @since 1.0.19 |
|
1200 | + * @param string $context View or edit context. |
|
1201 | + * @return string |
|
1202 | + */ |
|
1203 | + public function get_company_id( $context = 'view' ) { |
|
1204 | + return $this->get_prop( 'company_id', $context ); |
|
1205 | + } |
|
1206 | + |
|
1207 | + /** |
|
1208 | + * Get the customer's vat number. |
|
1209 | + * |
|
1210 | + * @since 1.0.19 |
|
1211 | + * @param string $context View or edit context. |
|
1212 | + * @return string |
|
1213 | + */ |
|
1214 | + public function get_vat_number( $context = 'view' ) { |
|
1215 | + return $this->get_prop( 'vat_number', $context ); |
|
1050 | 1216 | } |
1051 | 1217 | |
1052 | 1218 | /** |
1053 | - * Alias of self::get_country(). |
|
1054 | - * |
|
1055 | - * @since 1.0.19 |
|
1056 | - * @param string $context View or edit context. |
|
1057 | - * @return string |
|
1058 | - */ |
|
1059 | - public function get_customer_country( $context = 'view' ) { |
|
1060 | - return $this->get_country( $context ); |
|
1219 | + * Alias of self::get_vat_number(). |
|
1220 | + * |
|
1221 | + * @since 1.0.19 |
|
1222 | + * @param string $context View or edit context. |
|
1223 | + * @return string |
|
1224 | + */ |
|
1225 | + public function get_user_vat_number( $context = 'view' ) { |
|
1226 | + return $this->get_vat_number( $context ); |
|
1227 | + } |
|
1228 | + |
|
1229 | + /** |
|
1230 | + * Alias of self::get_vat_number(). |
|
1231 | + * |
|
1232 | + * @since 1.0.19 |
|
1233 | + * @param string $context View or edit context. |
|
1234 | + * @return string |
|
1235 | + */ |
|
1236 | + public function get_customer_vat_number( $context = 'view' ) { |
|
1237 | + return $this->get_vat_number( $context ); |
|
1061 | 1238 | } |
1062 | 1239 | |
1063 | 1240 | /** |
1064 | - * Get the customer's state. |
|
1065 | - * |
|
1066 | - * @since 1.0.19 |
|
1067 | - * @param string $context View or edit context. |
|
1068 | - * @return string |
|
1069 | - */ |
|
1070 | - public function get_state( $context = 'view' ) { |
|
1071 | - $state = $this->get_prop( 'state', $context ); |
|
1072 | - return empty( $state ) ? wpinv_get_default_state() : $state; |
|
1241 | + * Get the customer's vat rate. |
|
1242 | + * |
|
1243 | + * @since 1.0.19 |
|
1244 | + * @param string $context View or edit context. |
|
1245 | + * @return string |
|
1246 | + */ |
|
1247 | + public function get_vat_rate( $context = 'view' ) { |
|
1248 | + return $this->get_prop( 'vat_rate', $context ); |
|
1073 | 1249 | } |
1074 | 1250 | |
1075 | 1251 | /** |
1076 | - * Alias of self::get_state(). |
|
1077 | - * |
|
1078 | - * @since 1.0.19 |
|
1079 | - * @param string $context View or edit context. |
|
1080 | - * @return string |
|
1081 | - */ |
|
1082 | - public function get_user_state( $context = 'view' ) { |
|
1083 | - return $this->get_state( $context ); |
|
1252 | + * Alias of self::get_vat_rate(). |
|
1253 | + * |
|
1254 | + * @since 1.0.19 |
|
1255 | + * @param string $context View or edit context. |
|
1256 | + * @return string |
|
1257 | + */ |
|
1258 | + public function get_user_vat_rate( $context = 'view' ) { |
|
1259 | + return $this->get_vat_rate( $context ); |
|
1084 | 1260 | } |
1085 | 1261 | |
1086 | 1262 | /** |
1087 | - * Alias of self::get_state(). |
|
1088 | - * |
|
1089 | - * @since 1.0.19 |
|
1090 | - * @param string $context View or edit context. |
|
1091 | - * @return string |
|
1092 | - */ |
|
1093 | - public function get_customer_state( $context = 'view' ) { |
|
1094 | - return $this->get_state( $context ); |
|
1263 | + * Alias of self::get_vat_rate(). |
|
1264 | + * |
|
1265 | + * @since 1.0.19 |
|
1266 | + * @param string $context View or edit context. |
|
1267 | + * @return string |
|
1268 | + */ |
|
1269 | + public function get_customer_vat_rate( $context = 'view' ) { |
|
1270 | + return $this->get_vat_rate( $context ); |
|
1095 | 1271 | } |
1096 | 1272 | |
1097 | 1273 | /** |
1098 | - * Get the customer's city. |
|
1099 | - * |
|
1100 | - * @since 1.0.19 |
|
1101 | - * @param string $context View or edit context. |
|
1102 | - * @return string |
|
1103 | - */ |
|
1104 | - public function get_city( $context = 'view' ) { |
|
1105 | - return $this->get_prop( 'city', $context ); |
|
1274 | + * Get the customer's address. |
|
1275 | + * |
|
1276 | + * @since 1.0.19 |
|
1277 | + * @param string $context View or edit context. |
|
1278 | + * @return string |
|
1279 | + */ |
|
1280 | + public function get_address( $context = 'view' ) { |
|
1281 | + return $this->get_prop( 'address', $context ); |
|
1106 | 1282 | } |
1107 | 1283 | |
1108 | 1284 | /** |
1109 | - * Alias of self::get_city(). |
|
1110 | - * |
|
1111 | - * @since 1.0.19 |
|
1112 | - * @param string $context View or edit context. |
|
1113 | - * @return string |
|
1114 | - */ |
|
1115 | - public function get_user_city( $context = 'view' ) { |
|
1116 | - return $this->get_city( $context ); |
|
1285 | + * Alias of self::get_address(). |
|
1286 | + * |
|
1287 | + * @since 1.0.19 |
|
1288 | + * @param string $context View or edit context. |
|
1289 | + * @return string |
|
1290 | + */ |
|
1291 | + public function get_user_address( $context = 'view' ) { |
|
1292 | + return $this->get_address( $context ); |
|
1117 | 1293 | } |
1118 | 1294 | |
1119 | 1295 | /** |
1120 | - * Alias of self::get_city(). |
|
1121 | - * |
|
1122 | - * @since 1.0.19 |
|
1123 | - * @param string $context View or edit context. |
|
1124 | - * @return string |
|
1125 | - */ |
|
1126 | - public function get_customer_city( $context = 'view' ) { |
|
1127 | - return $this->get_city( $context ); |
|
1296 | + * Alias of self::get_address(). |
|
1297 | + * |
|
1298 | + * @since 1.0.19 |
|
1299 | + * @param string $context View or edit context. |
|
1300 | + * @return string |
|
1301 | + */ |
|
1302 | + public function get_customer_address( $context = 'view' ) { |
|
1303 | + return $this->get_address( $context ); |
|
1128 | 1304 | } |
1129 | 1305 | |
1130 | 1306 | /** |
1131 | - * Get the customer's zip. |
|
1132 | - * |
|
1133 | - * @since 1.0.19 |
|
1134 | - * @param string $context View or edit context. |
|
1135 | - * @return string |
|
1136 | - */ |
|
1137 | - public function get_zip( $context = 'view' ) { |
|
1138 | - return $this->get_prop( 'zip', $context ); |
|
1307 | + * Get whether the customer has viewed the invoice or not. |
|
1308 | + * |
|
1309 | + * @since 1.0.19 |
|
1310 | + * @param string $context View or edit context. |
|
1311 | + * @return bool |
|
1312 | + */ |
|
1313 | + public function get_is_viewed( $context = 'view' ) { |
|
1314 | + return (bool) $this->get_prop( 'is_viewed', $context ); |
|
1139 | 1315 | } |
1140 | 1316 | |
1141 | 1317 | /** |
1142 | - * Alias of self::get_zip(). |
|
1143 | - * |
|
1144 | - * @since 1.0.19 |
|
1145 | - * @param string $context View or edit context. |
|
1146 | - * @return string |
|
1147 | - */ |
|
1148 | - public function get_user_zip( $context = 'view' ) { |
|
1149 | - return $this->get_zip( $context ); |
|
1318 | + * Get other recipients for invoice communications. |
|
1319 | + * |
|
1320 | + * @since 1.0.19 |
|
1321 | + * @param string $context View or edit context. |
|
1322 | + * @return bool |
|
1323 | + */ |
|
1324 | + public function get_email_cc( $context = 'view' ) { |
|
1325 | + return $this->get_prop( 'email_cc', $context ); |
|
1150 | 1326 | } |
1151 | 1327 | |
1152 | 1328 | /** |
1153 | - * Alias of self::get_zip(). |
|
1154 | - * |
|
1155 | - * @since 1.0.19 |
|
1156 | - * @param string $context View or edit context. |
|
1157 | - * @return string |
|
1158 | - */ |
|
1159 | - public function get_customer_zip( $context = 'view' ) { |
|
1160 | - return $this->get_zip( $context ); |
|
1329 | + * Get invoice template. |
|
1330 | + * |
|
1331 | + * @since 1.0.19 |
|
1332 | + * @param string $context View or edit context. |
|
1333 | + * @return bool |
|
1334 | + */ |
|
1335 | + public function get_template( $context = 'view' ) { |
|
1336 | + return $this->get_prop( 'template', $context ); |
|
1161 | 1337 | } |
1162 | 1338 | |
1163 | 1339 | /** |
1164 | - * Get the customer's company. |
|
1165 | - * |
|
1166 | - * @since 1.0.19 |
|
1167 | - * @param string $context View or edit context. |
|
1168 | - * @return string |
|
1169 | - */ |
|
1170 | - public function get_company( $context = 'view' ) { |
|
1171 | - return $this->get_prop( 'company', $context ); |
|
1340 | + * Get invoice source. |
|
1341 | + * |
|
1342 | + * @since 1.0.19 |
|
1343 | + * @param string $context View or edit context. |
|
1344 | + * @return bool |
|
1345 | + */ |
|
1346 | + public function get_created_via( $context = 'view' ) { |
|
1347 | + return $this->get_prop( 'created_via', $context ); |
|
1172 | 1348 | } |
1173 | 1349 | |
1174 | 1350 | /** |
1175 | - * Alias of self::get_company(). |
|
1176 | - * |
|
1177 | - * @since 1.0.19 |
|
1178 | - * @param string $context View or edit context. |
|
1179 | - * @return string |
|
1180 | - */ |
|
1181 | - public function get_user_company( $context = 'view' ) { |
|
1182 | - return $this->get_company( $context ); |
|
1351 | + * Get whether the customer has confirmed their address. |
|
1352 | + * |
|
1353 | + * @since 1.0.19 |
|
1354 | + * @param string $context View or edit context. |
|
1355 | + * @return bool |
|
1356 | + */ |
|
1357 | + public function get_address_confirmed( $context = 'view' ) { |
|
1358 | + return (bool) $this->get_prop( 'address_confirmed', $context ); |
|
1183 | 1359 | } |
1184 | 1360 | |
1185 | 1361 | /** |
1186 | - * Alias of self::get_company(). |
|
1187 | - * |
|
1188 | - * @since 1.0.19 |
|
1189 | - * @param string $context View or edit context. |
|
1190 | - * @return string |
|
1191 | - */ |
|
1192 | - public function get_customer_company( $context = 'view' ) { |
|
1193 | - return $this->get_company( $context ); |
|
1362 | + * Alias of self::get_address_confirmed(). |
|
1363 | + * |
|
1364 | + * @since 1.0.19 |
|
1365 | + * @param string $context View or edit context. |
|
1366 | + * @return bool |
|
1367 | + */ |
|
1368 | + public function get_user_address_confirmed( $context = 'view' ) { |
|
1369 | + return $this->get_address_confirmed( $context ); |
|
1194 | 1370 | } |
1195 | 1371 | |
1196 | - /** |
|
1197 | - * Get the customer's company id. |
|
1198 | - * |
|
1199 | - * @since 1.0.19 |
|
1200 | - * @param string $context View or edit context. |
|
1201 | - * @return string |
|
1202 | - */ |
|
1203 | - public function get_company_id( $context = 'view' ) { |
|
1204 | - return $this->get_prop( 'company_id', $context ); |
|
1372 | + /** |
|
1373 | + * Alias of self::get_address(). |
|
1374 | + * |
|
1375 | + * @since 1.0.19 |
|
1376 | + * @param string $context View or edit context. |
|
1377 | + * @return bool |
|
1378 | + */ |
|
1379 | + public function get_customer_address_confirmed( $context = 'view' ) { |
|
1380 | + return $this->get_address_confirmed( $context ); |
|
1205 | 1381 | } |
1206 | 1382 | |
1207 | 1383 | /** |
1208 | - * Get the customer's vat number. |
|
1209 | - * |
|
1210 | - * @since 1.0.19 |
|
1211 | - * @param string $context View or edit context. |
|
1212 | - * @return string |
|
1213 | - */ |
|
1214 | - public function get_vat_number( $context = 'view' ) { |
|
1215 | - return $this->get_prop( 'vat_number', $context ); |
|
1384 | + * Get the shipping address. |
|
1385 | + * |
|
1386 | + * @since 1.0.19 |
|
1387 | + * @return array|false |
|
1388 | + */ |
|
1389 | + public function get_shipping_address() { |
|
1390 | + |
|
1391 | + $shipping_address = get_post_meta( $this->get_id(), 'shipping_address', true ); |
|
1392 | + return is_array( $shipping_address ) ? $shipping_address : false; |
|
1216 | 1393 | } |
1217 | 1394 | |
1218 | 1395 | /** |
1219 | - * Alias of self::get_vat_number(). |
|
1220 | - * |
|
1221 | - * @since 1.0.19 |
|
1222 | - * @param string $context View or edit context. |
|
1223 | - * @return string |
|
1224 | - */ |
|
1225 | - public function get_user_vat_number( $context = 'view' ) { |
|
1226 | - return $this->get_vat_number( $context ); |
|
1396 | + * Check if the invoice has a shipping address. |
|
1397 | + */ |
|
1398 | + public function has_shipping_address() { |
|
1399 | + return false !== $this->get_shipping_address(); |
|
1227 | 1400 | } |
1228 | 1401 | |
1229 | 1402 | /** |
1230 | - * Alias of self::get_vat_number(). |
|
1231 | - * |
|
1232 | - * @since 1.0.19 |
|
1233 | - * @param string $context View or edit context. |
|
1234 | - * @return string |
|
1235 | - */ |
|
1236 | - public function get_customer_vat_number( $context = 'view' ) { |
|
1237 | - return $this->get_vat_number( $context ); |
|
1403 | + * Get the shipping amount. |
|
1404 | + * |
|
1405 | + * @since 1.0.19 |
|
1406 | + * @param string $context View or edit context. |
|
1407 | + * @return float |
|
1408 | + */ |
|
1409 | + public function get_shipping( $context = 'view' ) { |
|
1410 | + |
|
1411 | + if ( $context = 'view' ) { |
|
1412 | + return floatval( $this->get_prop( 'shipping', $context ) ); |
|
1413 | + } |
|
1414 | + |
|
1415 | + return $this->get_prop( 'shipping', $context ); |
|
1416 | + } |
|
1417 | + |
|
1418 | + public function has_shipping() { |
|
1419 | + return defined( 'GETPAID_SHIPPING_CALCULATOR_VERSION' ) && null !== $this->get_prop( 'shipping', 'edit' ); |
|
1238 | 1420 | } |
1239 | 1421 | |
1240 | - /** |
|
1241 | - * Get the customer's vat rate. |
|
1242 | - * |
|
1243 | - * @since 1.0.19 |
|
1244 | - * @param string $context View or edit context. |
|
1245 | - * @return string |
|
1246 | - */ |
|
1247 | - public function get_vat_rate( $context = 'view' ) { |
|
1248 | - return $this->get_prop( 'vat_rate', $context ); |
|
1249 | - } |
|
1250 | - |
|
1251 | - /** |
|
1252 | - * Alias of self::get_vat_rate(). |
|
1253 | - * |
|
1254 | - * @since 1.0.19 |
|
1255 | - * @param string $context View or edit context. |
|
1256 | - * @return string |
|
1257 | - */ |
|
1258 | - public function get_user_vat_rate( $context = 'view' ) { |
|
1259 | - return $this->get_vat_rate( $context ); |
|
1260 | - } |
|
1261 | - |
|
1262 | - /** |
|
1263 | - * Alias of self::get_vat_rate(). |
|
1264 | - * |
|
1265 | - * @since 1.0.19 |
|
1266 | - * @param string $context View or edit context. |
|
1267 | - * @return string |
|
1268 | - */ |
|
1269 | - public function get_customer_vat_rate( $context = 'view' ) { |
|
1270 | - return $this->get_vat_rate( $context ); |
|
1271 | - } |
|
1272 | - |
|
1273 | - /** |
|
1274 | - * Get the customer's address. |
|
1275 | - * |
|
1276 | - * @since 1.0.19 |
|
1277 | - * @param string $context View or edit context. |
|
1278 | - * @return string |
|
1279 | - */ |
|
1280 | - public function get_address( $context = 'view' ) { |
|
1281 | - return $this->get_prop( 'address', $context ); |
|
1282 | - } |
|
1283 | - |
|
1284 | - /** |
|
1285 | - * Alias of self::get_address(). |
|
1286 | - * |
|
1287 | - * @since 1.0.19 |
|
1288 | - * @param string $context View or edit context. |
|
1289 | - * @return string |
|
1290 | - */ |
|
1291 | - public function get_user_address( $context = 'view' ) { |
|
1292 | - return $this->get_address( $context ); |
|
1293 | - } |
|
1294 | - |
|
1295 | - /** |
|
1296 | - * Alias of self::get_address(). |
|
1297 | - * |
|
1298 | - * @since 1.0.19 |
|
1299 | - * @param string $context View or edit context. |
|
1300 | - * @return string |
|
1301 | - */ |
|
1302 | - public function get_customer_address( $context = 'view' ) { |
|
1303 | - return $this->get_address( $context ); |
|
1304 | - } |
|
1305 | - |
|
1306 | - /** |
|
1307 | - * Get whether the customer has viewed the invoice or not. |
|
1308 | - * |
|
1309 | - * @since 1.0.19 |
|
1310 | - * @param string $context View or edit context. |
|
1311 | - * @return bool |
|
1312 | - */ |
|
1313 | - public function get_is_viewed( $context = 'view' ) { |
|
1314 | - return (bool) $this->get_prop( 'is_viewed', $context ); |
|
1315 | - } |
|
1316 | - |
|
1317 | - /** |
|
1318 | - * Get other recipients for invoice communications. |
|
1319 | - * |
|
1320 | - * @since 1.0.19 |
|
1321 | - * @param string $context View or edit context. |
|
1322 | - * @return bool |
|
1323 | - */ |
|
1324 | - public function get_email_cc( $context = 'view' ) { |
|
1325 | - return $this->get_prop( 'email_cc', $context ); |
|
1326 | - } |
|
1327 | - |
|
1328 | - /** |
|
1329 | - * Get invoice template. |
|
1330 | - * |
|
1331 | - * @since 1.0.19 |
|
1332 | - * @param string $context View or edit context. |
|
1333 | - * @return bool |
|
1334 | - */ |
|
1335 | - public function get_template( $context = 'view' ) { |
|
1336 | - return $this->get_prop( 'template', $context ); |
|
1337 | - } |
|
1338 | - |
|
1339 | - /** |
|
1340 | - * Get invoice source. |
|
1341 | - * |
|
1342 | - * @since 1.0.19 |
|
1343 | - * @param string $context View or edit context. |
|
1344 | - * @return bool |
|
1345 | - */ |
|
1346 | - public function get_created_via( $context = 'view' ) { |
|
1347 | - return $this->get_prop( 'created_via', $context ); |
|
1348 | - } |
|
1349 | - |
|
1350 | - /** |
|
1351 | - * Get whether the customer has confirmed their address. |
|
1352 | - * |
|
1353 | - * @since 1.0.19 |
|
1354 | - * @param string $context View or edit context. |
|
1355 | - * @return bool |
|
1356 | - */ |
|
1357 | - public function get_address_confirmed( $context = 'view' ) { |
|
1358 | - return (bool) $this->get_prop( 'address_confirmed', $context ); |
|
1359 | - } |
|
1360 | - |
|
1361 | - /** |
|
1362 | - * Alias of self::get_address_confirmed(). |
|
1363 | - * |
|
1364 | - * @since 1.0.19 |
|
1365 | - * @param string $context View or edit context. |
|
1366 | - * @return bool |
|
1367 | - */ |
|
1368 | - public function get_user_address_confirmed( $context = 'view' ) { |
|
1369 | - return $this->get_address_confirmed( $context ); |
|
1370 | - } |
|
1371 | - |
|
1372 | - /** |
|
1373 | - * Alias of self::get_address(). |
|
1374 | - * |
|
1375 | - * @since 1.0.19 |
|
1376 | - * @param string $context View or edit context. |
|
1377 | - * @return bool |
|
1378 | - */ |
|
1379 | - public function get_customer_address_confirmed( $context = 'view' ) { |
|
1380 | - return $this->get_address_confirmed( $context ); |
|
1381 | - } |
|
1382 | - |
|
1383 | - /** |
|
1384 | - * Get the shipping address. |
|
1385 | - * |
|
1386 | - * @since 1.0.19 |
|
1387 | - * @return array|false |
|
1388 | - */ |
|
1389 | - public function get_shipping_address() { |
|
1390 | - |
|
1391 | - $shipping_address = get_post_meta( $this->get_id(), 'shipping_address', true ); |
|
1392 | - return is_array( $shipping_address ) ? $shipping_address : false; |
|
1393 | - } |
|
1394 | - |
|
1395 | - /** |
|
1396 | - * Check if the invoice has a shipping address. |
|
1397 | - */ |
|
1398 | - public function has_shipping_address() { |
|
1399 | - return false !== $this->get_shipping_address(); |
|
1400 | - } |
|
1401 | - |
|
1402 | - /** |
|
1403 | - * Get the shipping amount. |
|
1404 | - * |
|
1405 | - * @since 1.0.19 |
|
1406 | - * @param string $context View or edit context. |
|
1407 | - * @return float |
|
1408 | - */ |
|
1409 | - public function get_shipping( $context = 'view' ) { |
|
1410 | - |
|
1411 | - if ( $context = 'view' ) { |
|
1412 | - return floatval( $this->get_prop( 'shipping', $context ) ); |
|
1413 | - } |
|
1414 | - |
|
1415 | - return $this->get_prop( 'shipping', $context ); |
|
1416 | - } |
|
1417 | - |
|
1418 | - public function has_shipping() { |
|
1419 | - return defined( 'GETPAID_SHIPPING_CALCULATOR_VERSION' ) && null !== $this->get_prop( 'shipping', 'edit' ); |
|
1420 | - } |
|
1421 | - |
|
1422 | - /** |
|
1423 | - * Get the invoice subtotal. |
|
1424 | - * |
|
1425 | - * @since 1.0.19 |
|
1426 | - * @param string $context View or edit context. |
|
1427 | - * @return float |
|
1428 | - */ |
|
1429 | - public function get_subtotal( $context = 'view' ) { |
|
1422 | + /** |
|
1423 | + * Get the invoice subtotal. |
|
1424 | + * |
|
1425 | + * @since 1.0.19 |
|
1426 | + * @param string $context View or edit context. |
|
1427 | + * @return float |
|
1428 | + */ |
|
1429 | + public function get_subtotal( $context = 'view' ) { |
|
1430 | 1430 | $subtotal = (float) $this->get_prop( 'subtotal', $context ); |
1431 | 1431 | |
1432 | 1432 | // Backwards compatibility. |
@@ -1438,198 +1438,198 @@ discard block |
||
1438 | 1438 | } |
1439 | 1439 | |
1440 | 1440 | /** |
1441 | - * Get the invoice discount total. |
|
1442 | - * |
|
1443 | - * @since 1.0.19 |
|
1444 | - * @param string $context View or edit context. |
|
1445 | - * @return float |
|
1446 | - */ |
|
1447 | - public function get_total_discount( $context = 'view' ) { |
|
1448 | - return wpinv_round_amount( wpinv_sanitize_amount( $this->get_prop( 'total_discount', $context ) ) ); |
|
1441 | + * Get the invoice discount total. |
|
1442 | + * |
|
1443 | + * @since 1.0.19 |
|
1444 | + * @param string $context View or edit context. |
|
1445 | + * @return float |
|
1446 | + */ |
|
1447 | + public function get_total_discount( $context = 'view' ) { |
|
1448 | + return wpinv_round_amount( wpinv_sanitize_amount( $this->get_prop( 'total_discount', $context ) ) ); |
|
1449 | 1449 | } |
1450 | 1450 | |
1451 | 1451 | /** |
1452 | - * Get the invoice tax total. |
|
1453 | - * |
|
1454 | - * @since 1.0.19 |
|
1455 | - * @param string $context View or edit context. |
|
1456 | - * @return float |
|
1457 | - */ |
|
1458 | - public function get_total_tax( $context = 'view' ) { |
|
1459 | - return wpinv_round_amount( wpinv_sanitize_amount( $this->get_prop( 'total_tax', $context ) ) ); |
|
1460 | - } |
|
1452 | + * Get the invoice tax total. |
|
1453 | + * |
|
1454 | + * @since 1.0.19 |
|
1455 | + * @param string $context View or edit context. |
|
1456 | + * @return float |
|
1457 | + */ |
|
1458 | + public function get_total_tax( $context = 'view' ) { |
|
1459 | + return wpinv_round_amount( wpinv_sanitize_amount( $this->get_prop( 'total_tax', $context ) ) ); |
|
1460 | + } |
|
1461 | 1461 | |
1462 | - /** |
|
1463 | - * @deprecated |
|
1464 | - */ |
|
1465 | - public function get_final_tax( $currency = false ) { |
|
1466 | - $tax = $this->get_total_tax(); |
|
1462 | + /** |
|
1463 | + * @deprecated |
|
1464 | + */ |
|
1465 | + public function get_final_tax( $currency = false ) { |
|
1466 | + $tax = $this->get_total_tax(); |
|
1467 | 1467 | |
1468 | 1468 | if ( $currency ) { |
1469 | - return wpinv_price( $tax, $this->get_currency() ); |
|
1469 | + return wpinv_price( $tax, $this->get_currency() ); |
|
1470 | 1470 | } |
1471 | 1471 | |
1472 | 1472 | return $tax; |
1473 | 1473 | } |
1474 | 1474 | |
1475 | 1475 | /** |
1476 | - * Get the invoice fees total. |
|
1477 | - * |
|
1478 | - * @since 1.0.19 |
|
1479 | - * @param string $context View or edit context. |
|
1480 | - * @return float |
|
1481 | - */ |
|
1482 | - public function get_total_fees( $context = 'view' ) { |
|
1483 | - return wpinv_round_amount( wpinv_sanitize_amount( $this->get_prop( 'total_fees', $context ) ) ); |
|
1476 | + * Get the invoice fees total. |
|
1477 | + * |
|
1478 | + * @since 1.0.19 |
|
1479 | + * @param string $context View or edit context. |
|
1480 | + * @return float |
|
1481 | + */ |
|
1482 | + public function get_total_fees( $context = 'view' ) { |
|
1483 | + return wpinv_round_amount( wpinv_sanitize_amount( $this->get_prop( 'total_fees', $context ) ) ); |
|
1484 | + } |
|
1485 | + |
|
1486 | + /** |
|
1487 | + * Alias for self::get_total_fees(). |
|
1488 | + * |
|
1489 | + * @since 1.0.19 |
|
1490 | + * @param string $context View or edit context. |
|
1491 | + * @return float |
|
1492 | + */ |
|
1493 | + public function get_fees_total( $context = 'view' ) { |
|
1494 | + return $this->get_total_fees( $context ); |
|
1484 | 1495 | } |
1485 | 1496 | |
1486 | 1497 | /** |
1487 | - * Alias for self::get_total_fees(). |
|
1488 | - * |
|
1489 | - * @since 1.0.19 |
|
1490 | - * @param string $context View or edit context. |
|
1491 | - * @return float |
|
1492 | - */ |
|
1493 | - public function get_fees_total( $context = 'view' ) { |
|
1494 | - return $this->get_total_fees( $context ); |
|
1498 | + * Get the invoice total. |
|
1499 | + * |
|
1500 | + * @since 1.0.19 |
|
1501 | + * @return float |
|
1502 | + */ |
|
1503 | + public function get_total( $context = 'view' ) { |
|
1504 | + $total = $this->get_prop( 'total', $context ); |
|
1505 | + |
|
1506 | + if ( $this->has_shipping() && $context == 'view' ) { |
|
1507 | + $total = $this->get_prop( 'total', $context ) + $this->get_shipping( $context ); |
|
1508 | + } |
|
1509 | + |
|
1510 | + return wpinv_round_amount( wpinv_sanitize_amount( $total ) ); |
|
1495 | 1511 | } |
1496 | 1512 | |
1497 | 1513 | /** |
1498 | - * Get the invoice total. |
|
1499 | - * |
|
1500 | - * @since 1.0.19 |
|
1514 | + * Retrieves the non-recurring total of items. |
|
1515 | + * |
|
1516 | + * @since 2.3.0 |
|
1501 | 1517 | * @return float |
1502 | - */ |
|
1503 | - public function get_total( $context = 'view' ) { |
|
1504 | - $total = $this->get_prop( 'total', $context ); |
|
1505 | - |
|
1506 | - if ( $this->has_shipping() && $context == 'view' ) { |
|
1507 | - $total = $this->get_prop( 'total', $context ) + $this->get_shipping( $context ); |
|
1508 | - } |
|
1509 | - |
|
1510 | - return wpinv_round_amount( wpinv_sanitize_amount( $total ) ); |
|
1511 | - } |
|
1512 | - |
|
1513 | - /** |
|
1514 | - * Retrieves the non-recurring total of items. |
|
1515 | - * |
|
1516 | - * @since 2.3.0 |
|
1517 | - * @return float |
|
1518 | - */ |
|
1519 | - public function get_non_recurring_total() { |
|
1520 | - |
|
1521 | - $subtotal = 0; |
|
1522 | - foreach ( $this->get_items() as $item ) { |
|
1523 | - if ( ! $item->is_recurring() ) { |
|
1524 | - $subtotal += $item->get_sub_total(); |
|
1525 | - } |
|
1526 | - } |
|
1527 | - |
|
1528 | - foreach ( $this->get_fees() as $fee ) { |
|
1529 | - if ( empty( $fee['recurring_fee'] ) ) { |
|
1530 | - $subtotal += wpinv_sanitize_amount( $fee['initial_fee'] ); |
|
1531 | - } |
|
1532 | - } |
|
1533 | - |
|
1534 | - $subtotal = wpinv_round_amount( wpinv_sanitize_amount( $subtotal ) ); |
|
1518 | + */ |
|
1519 | + public function get_non_recurring_total() { |
|
1520 | + |
|
1521 | + $subtotal = 0; |
|
1522 | + foreach ( $this->get_items() as $item ) { |
|
1523 | + if ( ! $item->is_recurring() ) { |
|
1524 | + $subtotal += $item->get_sub_total(); |
|
1525 | + } |
|
1526 | + } |
|
1527 | + |
|
1528 | + foreach ( $this->get_fees() as $fee ) { |
|
1529 | + if ( empty( $fee['recurring_fee'] ) ) { |
|
1530 | + $subtotal += wpinv_sanitize_amount( $fee['initial_fee'] ); |
|
1531 | + } |
|
1532 | + } |
|
1533 | + |
|
1534 | + $subtotal = wpinv_round_amount( wpinv_sanitize_amount( $subtotal ) ); |
|
1535 | 1535 | return apply_filters( 'wpinv_get_non_recurring_invoice_total', $subtotal, $this ); |
1536 | 1536 | |
1537 | 1537 | } |
1538 | 1538 | |
1539 | - /** |
|
1540 | - * Get the invoice totals. |
|
1541 | - * |
|
1542 | - * @since 1.0.19 |
|
1539 | + /** |
|
1540 | + * Get the invoice totals. |
|
1541 | + * |
|
1542 | + * @since 1.0.19 |
|
1543 | 1543 | * @return array |
1544 | - */ |
|
1545 | - public function get_totals() { |
|
1546 | - return $this->totals; |
|
1544 | + */ |
|
1545 | + public function get_totals() { |
|
1546 | + return $this->totals; |
|
1547 | 1547 | } |
1548 | 1548 | |
1549 | 1549 | /** |
1550 | - * Get the initial invoice total. |
|
1551 | - * |
|
1552 | - * @since 1.0.19 |
|
1550 | + * Get the initial invoice total. |
|
1551 | + * |
|
1552 | + * @since 1.0.19 |
|
1553 | 1553 | * @param string $context View or edit context. |
1554 | 1554 | * @return float |
1555 | - */ |
|
1555 | + */ |
|
1556 | 1556 | public function get_initial_total() { |
1557 | 1557 | |
1558 | - if ( empty( $this->totals ) ) { |
|
1559 | - $this->recalculate_total(); |
|
1560 | - } |
|
1558 | + if ( empty( $this->totals ) ) { |
|
1559 | + $this->recalculate_total(); |
|
1560 | + } |
|
1561 | 1561 | |
1562 | - $tax = $this->totals['tax']['initial']; |
|
1563 | - $fee = $this->totals['fee']['initial']; |
|
1564 | - $discount = $this->totals['discount']['initial']; |
|
1565 | - $subtotal = $this->totals['subtotal']['initial']; |
|
1566 | - $total = $tax + $fee - $discount + $subtotal; |
|
1562 | + $tax = $this->totals['tax']['initial']; |
|
1563 | + $fee = $this->totals['fee']['initial']; |
|
1564 | + $discount = $this->totals['discount']['initial']; |
|
1565 | + $subtotal = $this->totals['subtotal']['initial']; |
|
1566 | + $total = $tax + $fee - $discount + $subtotal; |
|
1567 | 1567 | |
1568 | - if ( 0 > $total ) { |
|
1569 | - $total = 0; |
|
1570 | - } |
|
1568 | + if ( 0 > $total ) { |
|
1569 | + $total = 0; |
|
1570 | + } |
|
1571 | 1571 | |
1572 | - $total = wpinv_round_amount( wpinv_sanitize_amount( $total ) ); |
|
1572 | + $total = wpinv_round_amount( wpinv_sanitize_amount( $total ) ); |
|
1573 | 1573 | return apply_filters( 'wpinv_get_initial_invoice_total', $total, $this ); |
1574 | - } |
|
1574 | + } |
|
1575 | 1575 | |
1576 | - /** |
|
1577 | - * Get the recurring invoice total. |
|
1578 | - * |
|
1579 | - * @since 1.0.19 |
|
1576 | + /** |
|
1577 | + * Get the recurring invoice total. |
|
1578 | + * |
|
1579 | + * @since 1.0.19 |
|
1580 | 1580 | * @param string $context View or edit context. |
1581 | 1581 | * @return float |
1582 | - */ |
|
1582 | + */ |
|
1583 | 1583 | public function get_recurring_total() { |
1584 | 1584 | |
1585 | - if ( empty( $this->totals ) ) { |
|
1586 | - $this->recalculate_total(); |
|
1587 | - } |
|
1585 | + if ( empty( $this->totals ) ) { |
|
1586 | + $this->recalculate_total(); |
|
1587 | + } |
|
1588 | 1588 | |
1589 | - $tax = $this->totals['tax']['recurring']; |
|
1590 | - $fee = $this->totals['fee']['recurring']; |
|
1591 | - $discount = $this->totals['discount']['recurring']; |
|
1592 | - $subtotal = $this->totals['subtotal']['recurring']; |
|
1593 | - $total = $tax + $fee - $discount + $subtotal; |
|
1589 | + $tax = $this->totals['tax']['recurring']; |
|
1590 | + $fee = $this->totals['fee']['recurring']; |
|
1591 | + $discount = $this->totals['discount']['recurring']; |
|
1592 | + $subtotal = $this->totals['subtotal']['recurring']; |
|
1593 | + $total = $tax + $fee - $discount + $subtotal; |
|
1594 | 1594 | |
1595 | - if ( 0 > $total ) { |
|
1596 | - $total = 0; |
|
1597 | - } |
|
1595 | + if ( 0 > $total ) { |
|
1596 | + $total = 0; |
|
1597 | + } |
|
1598 | 1598 | |
1599 | - $total = wpinv_round_amount( wpinv_sanitize_amount( $total ) ); |
|
1599 | + $total = wpinv_round_amount( wpinv_sanitize_amount( $total ) ); |
|
1600 | 1600 | return apply_filters( 'wpinv_get_recurring_invoice_total', $total, $this ); |
1601 | - } |
|
1601 | + } |
|
1602 | 1602 | |
1603 | - /** |
|
1604 | - * Returns recurring payment details. |
|
1605 | - * |
|
1606 | - * @since 1.0.19 |
|
1603 | + /** |
|
1604 | + * Returns recurring payment details. |
|
1605 | + * |
|
1606 | + * @since 1.0.19 |
|
1607 | 1607 | * @param string $field Optionally provide a field to return. |
1608 | - * @param string $currency Whether to include the currency. |
|
1608 | + * @param string $currency Whether to include the currency. |
|
1609 | 1609 | * @return float|string |
1610 | - */ |
|
1610 | + */ |
|
1611 | 1611 | public function get_recurring_details( $field = '', $currency = false ) { |
1612 | 1612 | |
1613 | - // Maybe recalculate totals. |
|
1614 | - if ( empty( $this->totals ) ) { |
|
1615 | - $this->recalculate_total(); |
|
1616 | - } |
|
1613 | + // Maybe recalculate totals. |
|
1614 | + if ( empty( $this->totals ) ) { |
|
1615 | + $this->recalculate_total(); |
|
1616 | + } |
|
1617 | 1617 | |
1618 | - // Prepare recurring totals. |
|
1618 | + // Prepare recurring totals. |
|
1619 | 1619 | $data = apply_filters( |
1620 | - 'wpinv_get_invoice_recurring_details', |
|
1621 | - array( |
|
1622 | - 'cart_details' => $this->get_cart_details(), |
|
1623 | - 'subtotal' => $this->totals['subtotal']['recurring'], |
|
1624 | - 'discount' => $this->totals['discount']['recurring'], |
|
1625 | - 'tax' => $this->totals['tax']['recurring'], |
|
1626 | - 'fee' => $this->totals['fee']['recurring'], |
|
1627 | - 'total' => $this->get_recurring_total(), |
|
1628 | - ), |
|
1629 | - $this, |
|
1630 | - $field, |
|
1631 | - $currency |
|
1632 | - ); |
|
1620 | + 'wpinv_get_invoice_recurring_details', |
|
1621 | + array( |
|
1622 | + 'cart_details' => $this->get_cart_details(), |
|
1623 | + 'subtotal' => $this->totals['subtotal']['recurring'], |
|
1624 | + 'discount' => $this->totals['discount']['recurring'], |
|
1625 | + 'tax' => $this->totals['tax']['recurring'], |
|
1626 | + 'fee' => $this->totals['fee']['recurring'], |
|
1627 | + 'total' => $this->get_recurring_total(), |
|
1628 | + ), |
|
1629 | + $this, |
|
1630 | + $field, |
|
1631 | + $currency |
|
1632 | + ); |
|
1633 | 1633 | |
1634 | 1634 | if ( isset( $data[ $field ] ) ) { |
1635 | 1635 | return ( $currency ? wpinv_price( $data[ $field ], $this->get_currency() ) : $data[ $field ] ); |
@@ -1639,166 +1639,166 @@ discard block |
||
1639 | 1639 | } |
1640 | 1640 | |
1641 | 1641 | /** |
1642 | - * Get the invoice fees. |
|
1643 | - * |
|
1644 | - * @since 1.0.19 |
|
1645 | - * @param string $context View or edit context. |
|
1646 | - * @return array |
|
1647 | - */ |
|
1648 | - public function get_fees( $context = 'view' ) { |
|
1649 | - return wpinv_parse_list( $this->get_prop( 'fees', $context ) ); |
|
1642 | + * Get the invoice fees. |
|
1643 | + * |
|
1644 | + * @since 1.0.19 |
|
1645 | + * @param string $context View or edit context. |
|
1646 | + * @return array |
|
1647 | + */ |
|
1648 | + public function get_fees( $context = 'view' ) { |
|
1649 | + return wpinv_parse_list( $this->get_prop( 'fees', $context ) ); |
|
1650 | 1650 | } |
1651 | 1651 | |
1652 | 1652 | /** |
1653 | - * Get the invoice discounts. |
|
1654 | - * |
|
1655 | - * @since 1.0.19 |
|
1656 | - * @param string $context View or edit context. |
|
1657 | - * @return array |
|
1658 | - */ |
|
1659 | - public function get_discounts( $context = 'view' ) { |
|
1660 | - return wpinv_parse_list( $this->get_prop( 'discounts', $context ) ); |
|
1653 | + * Get the invoice discounts. |
|
1654 | + * |
|
1655 | + * @since 1.0.19 |
|
1656 | + * @param string $context View or edit context. |
|
1657 | + * @return array |
|
1658 | + */ |
|
1659 | + public function get_discounts( $context = 'view' ) { |
|
1660 | + return wpinv_parse_list( $this->get_prop( 'discounts', $context ) ); |
|
1661 | 1661 | } |
1662 | 1662 | |
1663 | 1663 | /** |
1664 | - * Get the invoice taxes. |
|
1665 | - * |
|
1666 | - * @since 1.0.19 |
|
1667 | - * @param string $context View or edit context. |
|
1668 | - * @return array |
|
1669 | - */ |
|
1670 | - public function get_taxes( $context = 'view' ) { |
|
1671 | - return wpinv_parse_list( $this->get_prop( 'taxes', $context ) ); |
|
1664 | + * Get the invoice taxes. |
|
1665 | + * |
|
1666 | + * @since 1.0.19 |
|
1667 | + * @param string $context View or edit context. |
|
1668 | + * @return array |
|
1669 | + */ |
|
1670 | + public function get_taxes( $context = 'view' ) { |
|
1671 | + return wpinv_parse_list( $this->get_prop( 'taxes', $context ) ); |
|
1672 | 1672 | } |
1673 | 1673 | |
1674 | 1674 | /** |
1675 | - * Get the invoice items. |
|
1676 | - * |
|
1677 | - * @since 1.0.19 |
|
1678 | - * @param string $context View or edit context. |
|
1679 | - * @return GetPaid_Form_Item[] |
|
1680 | - */ |
|
1681 | - public function get_items( $context = 'view' ) { |
|
1675 | + * Get the invoice items. |
|
1676 | + * |
|
1677 | + * @since 1.0.19 |
|
1678 | + * @param string $context View or edit context. |
|
1679 | + * @return GetPaid_Form_Item[] |
|
1680 | + */ |
|
1681 | + public function get_items( $context = 'view' ) { |
|
1682 | 1682 | return $this->get_prop( 'items', $context ); |
1683 | - } |
|
1683 | + } |
|
1684 | 1684 | |
1685 | - /** |
|
1686 | - * Get the invoice item ids. |
|
1687 | - * |
|
1688 | - * @since 1.0.19 |
|
1689 | - * @return string |
|
1690 | - */ |
|
1691 | - public function get_item_ids() { |
|
1692 | - return implode( ', ', wp_list_pluck( $this->get_cart_details(), 'item_id' ) ); |
|
1685 | + /** |
|
1686 | + * Get the invoice item ids. |
|
1687 | + * |
|
1688 | + * @since 1.0.19 |
|
1689 | + * @return string |
|
1690 | + */ |
|
1691 | + public function get_item_ids() { |
|
1692 | + return implode( ', ', wp_list_pluck( $this->get_cart_details(), 'item_id' ) ); |
|
1693 | 1693 | } |
1694 | 1694 | |
1695 | 1695 | /** |
1696 | - * Get the invoice's payment form. |
|
1697 | - * |
|
1698 | - * @since 1.0.19 |
|
1699 | - * @param string $context View or edit context. |
|
1700 | - * @return int |
|
1701 | - */ |
|
1702 | - public function get_payment_form( $context = 'view' ) { |
|
1703 | - return intval( $this->get_prop( 'payment_form', $context ) ); |
|
1696 | + * Get the invoice's payment form. |
|
1697 | + * |
|
1698 | + * @since 1.0.19 |
|
1699 | + * @param string $context View or edit context. |
|
1700 | + * @return int |
|
1701 | + */ |
|
1702 | + public function get_payment_form( $context = 'view' ) { |
|
1703 | + return intval( $this->get_prop( 'payment_form', $context ) ); |
|
1704 | 1704 | } |
1705 | 1705 | |
1706 | 1706 | /** |
1707 | - * Get the invoice's submission id. |
|
1708 | - * |
|
1709 | - * @since 1.0.19 |
|
1710 | - * @param string $context View or edit context. |
|
1711 | - * @return string |
|
1712 | - */ |
|
1713 | - public function get_submission_id( $context = 'view' ) { |
|
1714 | - return $this->get_prop( 'submission_id', $context ); |
|
1707 | + * Get the invoice's submission id. |
|
1708 | + * |
|
1709 | + * @since 1.0.19 |
|
1710 | + * @param string $context View or edit context. |
|
1711 | + * @return string |
|
1712 | + */ |
|
1713 | + public function get_submission_id( $context = 'view' ) { |
|
1714 | + return $this->get_prop( 'submission_id', $context ); |
|
1715 | 1715 | } |
1716 | 1716 | |
1717 | 1717 | /** |
1718 | - * Get the invoice's discount code. |
|
1719 | - * |
|
1720 | - * @since 1.0.19 |
|
1721 | - * @param string $context View or edit context. |
|
1722 | - * @return string |
|
1723 | - */ |
|
1724 | - public function get_discount_code( $context = 'view' ) { |
|
1725 | - return $this->get_prop( 'discount_code', $context ); |
|
1718 | + * Get the invoice's discount code. |
|
1719 | + * |
|
1720 | + * @since 1.0.19 |
|
1721 | + * @param string $context View or edit context. |
|
1722 | + * @return string |
|
1723 | + */ |
|
1724 | + public function get_discount_code( $context = 'view' ) { |
|
1725 | + return $this->get_prop( 'discount_code', $context ); |
|
1726 | 1726 | } |
1727 | 1727 | |
1728 | 1728 | /** |
1729 | - * Get the invoice's gateway. |
|
1730 | - * |
|
1731 | - * @since 1.0.19 |
|
1732 | - * @param string $context View or edit context. |
|
1733 | - * @return string |
|
1734 | - */ |
|
1735 | - public function get_gateway( $context = 'view' ) { |
|
1736 | - return $this->get_prop( 'gateway', $context ); |
|
1729 | + * Get the invoice's gateway. |
|
1730 | + * |
|
1731 | + * @since 1.0.19 |
|
1732 | + * @param string $context View or edit context. |
|
1733 | + * @return string |
|
1734 | + */ |
|
1735 | + public function get_gateway( $context = 'view' ) { |
|
1736 | + return $this->get_prop( 'gateway', $context ); |
|
1737 | 1737 | } |
1738 | 1738 | |
1739 | 1739 | /** |
1740 | - * Get the invoice's gateway display title. |
|
1741 | - * |
|
1742 | - * @since 1.0.19 |
|
1743 | - * @return string |
|
1744 | - */ |
|
1740 | + * Get the invoice's gateway display title. |
|
1741 | + * |
|
1742 | + * @since 1.0.19 |
|
1743 | + * @return string |
|
1744 | + */ |
|
1745 | 1745 | public function get_gateway_title() { |
1746 | 1746 | $title = wpinv_get_gateway_checkout_label( $this->get_gateway() ); |
1747 | 1747 | return apply_filters( 'wpinv_gateway_title', $title, $this->get_id(), $this ); |
1748 | 1748 | } |
1749 | 1749 | |
1750 | 1750 | /** |
1751 | - * Get the invoice's transaction id. |
|
1752 | - * |
|
1753 | - * @since 1.0.19 |
|
1754 | - * @param string $context View or edit context. |
|
1755 | - * @return string |
|
1756 | - */ |
|
1757 | - public function get_transaction_id( $context = 'view' ) { |
|
1758 | - return $this->get_prop( 'transaction_id', $context ); |
|
1751 | + * Get the invoice's transaction id. |
|
1752 | + * |
|
1753 | + * @since 1.0.19 |
|
1754 | + * @param string $context View or edit context. |
|
1755 | + * @return string |
|
1756 | + */ |
|
1757 | + public function get_transaction_id( $context = 'view' ) { |
|
1758 | + return $this->get_prop( 'transaction_id', $context ); |
|
1759 | 1759 | } |
1760 | 1760 | |
1761 | 1761 | /** |
1762 | - * Get the invoice's currency. |
|
1763 | - * |
|
1764 | - * @since 1.0.19 |
|
1765 | - * @param string $context View or edit context. |
|
1766 | - * @return string |
|
1767 | - */ |
|
1768 | - public function get_currency( $context = 'view' ) { |
|
1762 | + * Get the invoice's currency. |
|
1763 | + * |
|
1764 | + * @since 1.0.19 |
|
1765 | + * @param string $context View or edit context. |
|
1766 | + * @return string |
|
1767 | + */ |
|
1768 | + public function get_currency( $context = 'view' ) { |
|
1769 | 1769 | $currency = $this->get_prop( 'currency', $context ); |
1770 | 1770 | return empty( $currency ) ? wpinv_get_currency() : $currency; |
1771 | 1771 | } |
1772 | 1772 | |
1773 | 1773 | /** |
1774 | - * Checks if we are charging taxes for this invoice. |
|
1775 | - * |
|
1776 | - * @since 1.0.19 |
|
1777 | - * @param string $context View or edit context. |
|
1778 | - * @return bool |
|
1779 | - */ |
|
1780 | - public function get_disable_taxes( $context = 'view' ) { |
|
1774 | + * Checks if we are charging taxes for this invoice. |
|
1775 | + * |
|
1776 | + * @since 1.0.19 |
|
1777 | + * @param string $context View or edit context. |
|
1778 | + * @return bool |
|
1779 | + */ |
|
1780 | + public function get_disable_taxes( $context = 'view' ) { |
|
1781 | 1781 | return (bool) $this->get_prop( 'disable_taxes', $context ); |
1782 | 1782 | } |
1783 | 1783 | |
1784 | 1784 | /** |
1785 | - * Retrieves the subscription id for an invoice. |
|
1786 | - * |
|
1787 | - * @since 1.0.19 |
|
1788 | - * @param string $context View or edit context. |
|
1789 | - * @return int |
|
1790 | - */ |
|
1785 | + * Retrieves the subscription id for an invoice. |
|
1786 | + * |
|
1787 | + * @since 1.0.19 |
|
1788 | + * @param string $context View or edit context. |
|
1789 | + * @return int |
|
1790 | + */ |
|
1791 | 1791 | public function get_subscription_id( $context = 'view' ) { |
1792 | - return $this->is_renewal() ? $this->get_parent()->get_subscription_id( $context ) : $this->get_prop( 'subscription_id', $context ); |
|
1793 | - } |
|
1794 | - |
|
1795 | - /** |
|
1796 | - * Retrieves the remote subscription id for an invoice. |
|
1797 | - * |
|
1798 | - * @since 1.0.19 |
|
1799 | - * @param string $context View or edit context. |
|
1800 | - * @return int |
|
1801 | - */ |
|
1792 | + return $this->is_renewal() ? $this->get_parent()->get_subscription_id( $context ) : $this->get_prop( 'subscription_id', $context ); |
|
1793 | + } |
|
1794 | + |
|
1795 | + /** |
|
1796 | + * Retrieves the remote subscription id for an invoice. |
|
1797 | + * |
|
1798 | + * @since 1.0.19 |
|
1799 | + * @param string $context View or edit context. |
|
1800 | + * @return int |
|
1801 | + */ |
|
1802 | 1802 | public function get_remote_subscription_id( $context = 'view' ) { |
1803 | 1803 | $subscription_id = $this->get_prop( 'remote_subscription_id', $context ); |
1804 | 1804 | |
@@ -1811,12 +1811,12 @@ discard block |
||
1811 | 1811 | } |
1812 | 1812 | |
1813 | 1813 | /** |
1814 | - * Retrieves the payment meta for an invoice. |
|
1815 | - * |
|
1816 | - * @since 1.0.19 |
|
1817 | - * @param string $context View or edit context. |
|
1818 | - * @return array |
|
1819 | - */ |
|
1814 | + * Retrieves the payment meta for an invoice. |
|
1815 | + * |
|
1816 | + * @since 1.0.19 |
|
1817 | + * @param string $context View or edit context. |
|
1818 | + * @return array |
|
1819 | + */ |
|
1820 | 1820 | public function get_payment_meta( $context = 'view' ) { |
1821 | 1821 | |
1822 | 1822 | return array( |
@@ -1836,31 +1836,31 @@ discard block |
||
1836 | 1836 | } |
1837 | 1837 | |
1838 | 1838 | /** |
1839 | - * Retrieves the cart details for an invoice. |
|
1840 | - * |
|
1841 | - * @since 1.0.19 |
|
1842 | - * @return array |
|
1843 | - */ |
|
1839 | + * Retrieves the cart details for an invoice. |
|
1840 | + * |
|
1841 | + * @since 1.0.19 |
|
1842 | + * @return array |
|
1843 | + */ |
|
1844 | 1844 | public function get_cart_details() { |
1845 | 1845 | $items = $this->get_items(); |
1846 | 1846 | $cart_details = array(); |
1847 | 1847 | |
1848 | 1848 | foreach ( $items as $item ) { |
1849 | - $item->invoice_id = $this->get_id(); |
|
1849 | + $item->invoice_id = $this->get_id(); |
|
1850 | 1850 | $cart_details[] = $item->prepare_data_for_saving(); |
1851 | 1851 | } |
1852 | 1852 | |
1853 | 1853 | return $cart_details; |
1854 | - } |
|
1854 | + } |
|
1855 | 1855 | |
1856 | - /** |
|
1857 | - * Retrieves the recurring item. |
|
1858 | - * |
|
1859 | - * @return null|GetPaid_Form_Item|int |
|
1860 | - */ |
|
1861 | - public function get_recurring( $object = false ) { |
|
1856 | + /** |
|
1857 | + * Retrieves the recurring item. |
|
1858 | + * |
|
1859 | + * @return null|GetPaid_Form_Item|int |
|
1860 | + */ |
|
1861 | + public function get_recurring( $object = false ) { |
|
1862 | 1862 | |
1863 | - // Are we returning an object? |
|
1863 | + // Are we returning an object? |
|
1864 | 1864 | if ( $object ) { |
1865 | 1865 | return $this->get_item( $this->recurring_item ); |
1866 | 1866 | } |
@@ -1868,124 +1868,124 @@ discard block |
||
1868 | 1868 | return $this->recurring_item; |
1869 | 1869 | } |
1870 | 1870 | |
1871 | - /** |
|
1872 | - * Retrieves the subscription name. |
|
1873 | - * |
|
1874 | - * @since 1.0.19 |
|
1875 | - * @return string |
|
1876 | - */ |
|
1877 | - public function get_subscription_name() { |
|
1871 | + /** |
|
1872 | + * Retrieves the subscription name. |
|
1873 | + * |
|
1874 | + * @since 1.0.19 |
|
1875 | + * @return string |
|
1876 | + */ |
|
1877 | + public function get_subscription_name() { |
|
1878 | 1878 | |
1879 | - // Retrieve the recurring name |
|
1879 | + // Retrieve the recurring name |
|
1880 | 1880 | $item = $this->get_recurring( true ); |
1881 | 1881 | |
1882 | - // Abort if it does not exist. |
|
1882 | + // Abort if it does not exist. |
|
1883 | 1883 | if ( empty( $item ) ) { |
1884 | 1884 | return ''; |
1885 | 1885 | } |
1886 | 1886 | |
1887 | - // Return the item name. |
|
1887 | + // Return the item name. |
|
1888 | 1888 | return apply_filters( 'wpinv_invoice_get_subscription_name', $item->get_name(), $this ); |
1889 | - } |
|
1890 | - |
|
1891 | - /** |
|
1892 | - * Retrieves the view url. |
|
1893 | - * |
|
1894 | - * @since 1.0.19 |
|
1895 | - * @return string |
|
1896 | - */ |
|
1897 | - public function get_view_url() { |
|
1889 | + } |
|
1890 | + |
|
1891 | + /** |
|
1892 | + * Retrieves the view url. |
|
1893 | + * |
|
1894 | + * @since 1.0.19 |
|
1895 | + * @return string |
|
1896 | + */ |
|
1897 | + public function get_view_url() { |
|
1898 | 1898 | $invoice_url = get_permalink( $this->get_id() ); |
1899 | - $invoice_url = add_query_arg( 'invoice_key', $this->get_key(), $invoice_url ); |
|
1899 | + $invoice_url = add_query_arg( 'invoice_key', $this->get_key(), $invoice_url ); |
|
1900 | 1900 | return apply_filters( 'wpinv_get_view_url', $invoice_url, $this ); |
1901 | - } |
|
1901 | + } |
|
1902 | 1902 | |
1903 | - /** |
|
1904 | - * Retrieves the payment url. |
|
1905 | - * |
|
1906 | - * @since 1.0.19 |
|
1907 | - * @return string |
|
1908 | - */ |
|
1909 | - public function get_checkout_payment_url( $deprecated = false, $secret = false ) { |
|
1903 | + /** |
|
1904 | + * Retrieves the payment url. |
|
1905 | + * |
|
1906 | + * @since 1.0.19 |
|
1907 | + * @return string |
|
1908 | + */ |
|
1909 | + public function get_checkout_payment_url( $deprecated = false, $secret = false ) { |
|
1910 | 1910 | |
1911 | - // Retrieve the checkout url. |
|
1911 | + // Retrieve the checkout url. |
|
1912 | 1912 | $pay_url = wpinv_get_checkout_uri(); |
1913 | 1913 | |
1914 | - // Maybe force ssl. |
|
1914 | + // Maybe force ssl. |
|
1915 | 1915 | if ( is_ssl() ) { |
1916 | 1916 | $pay_url = str_replace( 'http:', 'https:', $pay_url ); |
1917 | 1917 | } |
1918 | 1918 | |
1919 | - // Add the invoice key. |
|
1920 | - $pay_url = add_query_arg( 'invoice_key', $this->get_key(), $pay_url ); |
|
1919 | + // Add the invoice key. |
|
1920 | + $pay_url = add_query_arg( 'invoice_key', $this->get_key(), $pay_url ); |
|
1921 | 1921 | |
1922 | - // (Maybe?) add a secret |
|
1922 | + // (Maybe?) add a secret |
|
1923 | 1923 | if ( $secret ) { |
1924 | 1924 | $pay_url = add_query_arg( array( '_wpipay' => md5( $this->get_user_id() . '::' . $this->get_email() . '::' . $this->get_key() ) ), $pay_url ); |
1925 | 1925 | } |
1926 | 1926 | |
1927 | 1927 | return apply_filters( 'wpinv_get_checkout_payment_url', $pay_url, $this, $deprecated, $secret ); |
1928 | - } |
|
1928 | + } |
|
1929 | 1929 | |
1930 | - /** |
|
1931 | - * Retrieves the receipt url. |
|
1932 | - * |
|
1933 | - * @since 1.0.19 |
|
1934 | - * @return string |
|
1935 | - */ |
|
1936 | - public function get_receipt_url() { |
|
1930 | + /** |
|
1931 | + * Retrieves the receipt url. |
|
1932 | + * |
|
1933 | + * @since 1.0.19 |
|
1934 | + * @return string |
|
1935 | + */ |
|
1936 | + public function get_receipt_url() { |
|
1937 | 1937 | |
1938 | - // Retrieve the checkout url. |
|
1938 | + // Retrieve the checkout url. |
|
1939 | 1939 | $receipt_url = wpinv_get_success_page_uri(); |
1940 | 1940 | |
1941 | - // Maybe force ssl. |
|
1941 | + // Maybe force ssl. |
|
1942 | 1942 | if ( is_ssl() ) { |
1943 | 1943 | $receipt_url = str_replace( 'http:', 'https:', $receipt_url ); |
1944 | 1944 | } |
1945 | 1945 | |
1946 | - // Add the invoice key. |
|
1947 | - $receipt_url = add_query_arg( 'invoice_key', $this->get_key(), $receipt_url ); |
|
1946 | + // Add the invoice key. |
|
1947 | + $receipt_url = add_query_arg( 'invoice_key', $this->get_key(), $receipt_url ); |
|
1948 | 1948 | |
1949 | 1949 | return apply_filters( 'getpaid_get_invoice_receipt_url', $receipt_url, $this ); |
1950 | - } |
|
1951 | - |
|
1952 | - /** |
|
1953 | - * Retrieves the remote transaction url. |
|
1954 | - * |
|
1955 | - * @since 1.6.0 |
|
1956 | - * @return string |
|
1957 | - */ |
|
1958 | - public function get_transaction_url() { |
|
1959 | - return apply_filters( 'getpaid_gateway_' . $this->get_gateway() . '_transaction_url', '', $this ); |
|
1960 | - } |
|
1961 | - |
|
1962 | - /** |
|
1963 | - * Retrieves the default status. |
|
1964 | - * |
|
1965 | - * @since 1.0.19 |
|
1966 | - * @return string |
|
1967 | - */ |
|
1968 | - public function get_default_status() { |
|
1969 | - |
|
1970 | - $type = $this->get_type(); |
|
1971 | - $status = "wpi-$type-pending"; |
|
1972 | - return str_replace( '-invoice', '', $status ); |
|
1973 | - |
|
1974 | - } |
|
1975 | - |
|
1976 | - /** |
|
1977 | - * Magic method for accessing invoice properties. |
|
1978 | - * |
|
1979 | - * @since 1.0.15 |
|
1980 | - * @access public |
|
1981 | - * |
|
1982 | - * @param string $key Discount data to retrieve |
|
1983 | - * @param string $context View or edit context. |
|
1984 | - * @return mixed Value of the given invoice property (if set). |
|
1985 | - */ |
|
1986 | - public function get( $key, $context = 'view' ) { |
|
1950 | + } |
|
1951 | + |
|
1952 | + /** |
|
1953 | + * Retrieves the remote transaction url. |
|
1954 | + * |
|
1955 | + * @since 1.6.0 |
|
1956 | + * @return string |
|
1957 | + */ |
|
1958 | + public function get_transaction_url() { |
|
1959 | + return apply_filters( 'getpaid_gateway_' . $this->get_gateway() . '_transaction_url', '', $this ); |
|
1960 | + } |
|
1961 | + |
|
1962 | + /** |
|
1963 | + * Retrieves the default status. |
|
1964 | + * |
|
1965 | + * @since 1.0.19 |
|
1966 | + * @return string |
|
1967 | + */ |
|
1968 | + public function get_default_status() { |
|
1969 | + |
|
1970 | + $type = $this->get_type(); |
|
1971 | + $status = "wpi-$type-pending"; |
|
1972 | + return str_replace( '-invoice', '', $status ); |
|
1973 | + |
|
1974 | + } |
|
1975 | + |
|
1976 | + /** |
|
1977 | + * Magic method for accessing invoice properties. |
|
1978 | + * |
|
1979 | + * @since 1.0.15 |
|
1980 | + * @access public |
|
1981 | + * |
|
1982 | + * @param string $key Discount data to retrieve |
|
1983 | + * @param string $context View or edit context. |
|
1984 | + * @return mixed Value of the given invoice property (if set). |
|
1985 | + */ |
|
1986 | + public function get( $key, $context = 'view' ) { |
|
1987 | 1987 | return $this->get_prop( $key, $context ); |
1988 | - } |
|
1988 | + } |
|
1989 | 1989 | |
1990 | 1990 | /* |
1991 | 1991 | |-------------------------------------------------------------------------- |
@@ -1998,129 +1998,129 @@ discard block |
||
1998 | 1998 | */ |
1999 | 1999 | |
2000 | 2000 | /** |
2001 | - * Magic method for setting invoice properties. |
|
2002 | - * |
|
2003 | - * @since 1.0.19 |
|
2004 | - * @access public |
|
2005 | - * |
|
2006 | - * @param string $key Discount data to retrieve |
|
2007 | - * @param mixed $value new value. |
|
2008 | - * @return mixed Value of the given invoice property (if set). |
|
2009 | - */ |
|
2010 | - public function set( $key, $value ) { |
|
2001 | + * Magic method for setting invoice properties. |
|
2002 | + * |
|
2003 | + * @since 1.0.19 |
|
2004 | + * @access public |
|
2005 | + * |
|
2006 | + * @param string $key Discount data to retrieve |
|
2007 | + * @param mixed $value new value. |
|
2008 | + * @return mixed Value of the given invoice property (if set). |
|
2009 | + */ |
|
2010 | + public function set( $key, $value ) { |
|
2011 | 2011 | |
2012 | 2012 | $setter = "set_$key"; |
2013 | 2013 | if ( is_callable( array( $this, $setter ) ) ) { |
2014 | 2014 | $this->{$setter}( $value ); |
2015 | 2015 | } |
2016 | 2016 | |
2017 | - } |
|
2017 | + } |
|
2018 | 2018 | |
2019 | - /** |
|
2020 | - * Sets item status. |
|
2021 | - * |
|
2022 | - * @since 1.0.19 |
|
2023 | - * @param string $new_status New status. |
|
2024 | - * @param string $note Optional note to add. |
|
2025 | - * @param bool $manual_update Is this a manual status change?. |
|
2026 | - * @return array details of change. |
|
2027 | - */ |
|
2028 | - public function set_status( $new_status, $note = '', $manual_update = false ) { |
|
2029 | - $old_status = $this->get_status(); |
|
2019 | + /** |
|
2020 | + * Sets item status. |
|
2021 | + * |
|
2022 | + * @since 1.0.19 |
|
2023 | + * @param string $new_status New status. |
|
2024 | + * @param string $note Optional note to add. |
|
2025 | + * @param bool $manual_update Is this a manual status change?. |
|
2026 | + * @return array details of change. |
|
2027 | + */ |
|
2028 | + public function set_status( $new_status, $note = '', $manual_update = false ) { |
|
2029 | + $old_status = $this->get_status(); |
|
2030 | 2030 | |
2031 | - $statuses = $this->get_all_statuses(); |
|
2031 | + $statuses = $this->get_all_statuses(); |
|
2032 | 2032 | |
2033 | - if ( isset( $statuses['draft'] ) ) { |
|
2034 | - unset( $statuses['draft'] ); |
|
2035 | - } |
|
2033 | + if ( isset( $statuses['draft'] ) ) { |
|
2034 | + unset( $statuses['draft'] ); |
|
2035 | + } |
|
2036 | 2036 | |
2037 | - $this->set_prop( 'status', $new_status ); |
|
2037 | + $this->set_prop( 'status', $new_status ); |
|
2038 | 2038 | |
2039 | - // If setting the status, ensure it's set to a valid status. |
|
2040 | - if ( true === $this->object_read ) { |
|
2039 | + // If setting the status, ensure it's set to a valid status. |
|
2040 | + if ( true === $this->object_read ) { |
|
2041 | 2041 | |
2042 | - // Only allow valid new status. |
|
2043 | - if ( ! array_key_exists( $new_status, $statuses ) ) { |
|
2044 | - $new_status = $this->get_default_status(); |
|
2045 | - } |
|
2042 | + // Only allow valid new status. |
|
2043 | + if ( ! array_key_exists( $new_status, $statuses ) ) { |
|
2044 | + $new_status = $this->get_default_status(); |
|
2045 | + } |
|
2046 | 2046 | |
2047 | - // If the old status is set but unknown (e.g. draft) assume its pending for action usage. |
|
2048 | - if ( $old_status && ! array_key_exists( $new_status, $statuses ) ) { |
|
2049 | - $old_status = $this->get_default_status(); |
|
2050 | - } |
|
2047 | + // If the old status is set but unknown (e.g. draft) assume its pending for action usage. |
|
2048 | + if ( $old_status && ! array_key_exists( $new_status, $statuses ) ) { |
|
2049 | + $old_status = $this->get_default_status(); |
|
2050 | + } |
|
2051 | 2051 | |
2052 | - // Paid - Renewal (i.e when duplicating a parent invoice ) |
|
2053 | - if ( $new_status == 'wpi-pending' && $old_status == 'publish' && ! $this->get_id() ) { |
|
2054 | - $old_status = 'wpi-pending'; |
|
2055 | - } |
|
2052 | + // Paid - Renewal (i.e when duplicating a parent invoice ) |
|
2053 | + if ( $new_status == 'wpi-pending' && $old_status == 'publish' && ! $this->get_id() ) { |
|
2054 | + $old_status = 'wpi-pending'; |
|
2055 | + } |
|
2056 | 2056 | |
2057 | - if ( $old_status !== $new_status ) { |
|
2058 | - $this->status_transition = array( |
|
2059 | - 'from' => ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $old_status, |
|
2060 | - 'to' => $new_status, |
|
2061 | - 'note' => $note, |
|
2062 | - 'manual' => (bool) $manual_update, |
|
2063 | - ); |
|
2057 | + if ( $old_status !== $new_status ) { |
|
2058 | + $this->status_transition = array( |
|
2059 | + 'from' => ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $old_status, |
|
2060 | + 'to' => $new_status, |
|
2061 | + 'note' => $note, |
|
2062 | + 'manual' => (bool) $manual_update, |
|
2063 | + ); |
|
2064 | 2064 | |
2065 | - if ( $manual_update ) { |
|
2066 | - do_action( 'getpaid_' . $this->object_type . '_edit_status', $this->get_id(), $new_status ); |
|
2067 | - } |
|
2065 | + if ( $manual_update ) { |
|
2066 | + do_action( 'getpaid_' . $this->object_type . '_edit_status', $this->get_id(), $new_status ); |
|
2067 | + } |
|
2068 | 2068 | |
2069 | - $this->maybe_set_date_paid(); |
|
2069 | + $this->maybe_set_date_paid(); |
|
2070 | 2070 | |
2071 | - } |
|
2071 | + } |
|
2072 | 2072 | } |
2073 | 2073 | |
2074 | - return array( |
|
2075 | - 'from' => $old_status, |
|
2076 | - 'to' => $new_status, |
|
2077 | - ); |
|
2078 | - } |
|
2079 | - |
|
2080 | - /** |
|
2081 | - * Maybe set date paid. |
|
2082 | - * |
|
2083 | - * Sets the date paid variable when transitioning to the payment complete |
|
2084 | - * order status. |
|
2085 | - * |
|
2086 | - * @since 1.0.19 |
|
2087 | - */ |
|
2088 | - public function maybe_set_date_paid() { |
|
2089 | - |
|
2090 | - if ( ! $this->get_date_completed( 'edit' ) && $this->is_paid() ) { |
|
2091 | - $this->set_date_completed( current_time( 'mysql' ) ); |
|
2092 | - } |
|
2093 | - } |
|
2094 | - |
|
2095 | - /** |
|
2096 | - * Set parent invoice ID. |
|
2097 | - * |
|
2098 | - * @since 1.0.19 |
|
2099 | - */ |
|
2100 | - public function set_parent_id( $value ) { |
|
2101 | - if ( $value && ( $value === $this->get_id() ) ) { |
|
2102 | - return; |
|
2103 | - } |
|
2104 | - $this->set_prop( 'parent_id', absint( $value ) ); |
|
2105 | - } |
|
2106 | - |
|
2107 | - /** |
|
2108 | - * Set plugin version when the invoice was created. |
|
2109 | - * |
|
2110 | - * @since 1.0.19 |
|
2111 | - */ |
|
2112 | - public function set_version( $value ) { |
|
2113 | - $this->set_prop( 'version', $value ); |
|
2114 | - } |
|
2115 | - |
|
2116 | - /** |
|
2117 | - * Set date when the invoice was created. |
|
2118 | - * |
|
2119 | - * @since 1.0.19 |
|
2120 | - * @param string $value Value to set. |
|
2074 | + return array( |
|
2075 | + 'from' => $old_status, |
|
2076 | + 'to' => $new_status, |
|
2077 | + ); |
|
2078 | + } |
|
2079 | + |
|
2080 | + /** |
|
2081 | + * Maybe set date paid. |
|
2082 | + * |
|
2083 | + * Sets the date paid variable when transitioning to the payment complete |
|
2084 | + * order status. |
|
2085 | + * |
|
2086 | + * @since 1.0.19 |
|
2087 | + */ |
|
2088 | + public function maybe_set_date_paid() { |
|
2089 | + |
|
2090 | + if ( ! $this->get_date_completed( 'edit' ) && $this->is_paid() ) { |
|
2091 | + $this->set_date_completed( current_time( 'mysql' ) ); |
|
2092 | + } |
|
2093 | + } |
|
2094 | + |
|
2095 | + /** |
|
2096 | + * Set parent invoice ID. |
|
2097 | + * |
|
2098 | + * @since 1.0.19 |
|
2099 | + */ |
|
2100 | + public function set_parent_id( $value ) { |
|
2101 | + if ( $value && ( $value === $this->get_id() ) ) { |
|
2102 | + return; |
|
2103 | + } |
|
2104 | + $this->set_prop( 'parent_id', absint( $value ) ); |
|
2105 | + } |
|
2106 | + |
|
2107 | + /** |
|
2108 | + * Set plugin version when the invoice was created. |
|
2109 | + * |
|
2110 | + * @since 1.0.19 |
|
2111 | + */ |
|
2112 | + public function set_version( $value ) { |
|
2113 | + $this->set_prop( 'version', $value ); |
|
2114 | + } |
|
2115 | + |
|
2116 | + /** |
|
2117 | + * Set date when the invoice was created. |
|
2118 | + * |
|
2119 | + * @since 1.0.19 |
|
2120 | + * @param string $value Value to set. |
|
2121 | 2121 | * @return bool Whether or not the date was set. |
2122 | - */ |
|
2123 | - public function set_date_created( $value ) { |
|
2122 | + */ |
|
2123 | + public function set_date_created( $value ) { |
|
2124 | 2124 | $date = strtotime( $value ); |
2125 | 2125 | |
2126 | 2126 | if ( $date && $value !== '0000-00-00 00:00:00' ) { |
@@ -2128,19 +2128,19 @@ discard block |
||
2128 | 2128 | return true; |
2129 | 2129 | } |
2130 | 2130 | |
2131 | - $this->set_prop( 'date_created', '' ); |
|
2132 | - return false; |
|
2131 | + $this->set_prop( 'date_created', '' ); |
|
2132 | + return false; |
|
2133 | 2133 | |
2134 | 2134 | } |
2135 | 2135 | |
2136 | 2136 | /** |
2137 | - * Set date invoice due date. |
|
2138 | - * |
|
2139 | - * @since 1.0.19 |
|
2140 | - * @param string $value Value to set. |
|
2137 | + * Set date invoice due date. |
|
2138 | + * |
|
2139 | + * @since 1.0.19 |
|
2140 | + * @param string $value Value to set. |
|
2141 | 2141 | * @return bool Whether or not the date was set. |
2142 | - */ |
|
2143 | - public function set_due_date( $value ) { |
|
2142 | + */ |
|
2143 | + public function set_due_date( $value ) { |
|
2144 | 2144 | $date = strtotime( $value ); |
2145 | 2145 | |
2146 | 2146 | if ( $date && $value !== '0000-00-00 00:00:00' ) { |
@@ -2148,29 +2148,29 @@ discard block |
||
2148 | 2148 | return true; |
2149 | 2149 | } |
2150 | 2150 | |
2151 | - $this->set_prop( 'due_date', '' ); |
|
2151 | + $this->set_prop( 'due_date', '' ); |
|
2152 | 2152 | return false; |
2153 | 2153 | |
2154 | 2154 | } |
2155 | 2155 | |
2156 | 2156 | /** |
2157 | - * Alias of self::set_due_date(). |
|
2158 | - * |
|
2159 | - * @since 1.0.19 |
|
2160 | - * @param string $value New name. |
|
2161 | - */ |
|
2162 | - public function set_date_due( $value ) { |
|
2163 | - $this->set_due_date( $value ); |
|
2157 | + * Alias of self::set_due_date(). |
|
2158 | + * |
|
2159 | + * @since 1.0.19 |
|
2160 | + * @param string $value New name. |
|
2161 | + */ |
|
2162 | + public function set_date_due( $value ) { |
|
2163 | + $this->set_due_date( $value ); |
|
2164 | 2164 | } |
2165 | 2165 | |
2166 | 2166 | /** |
2167 | - * Set date invoice was completed. |
|
2168 | - * |
|
2169 | - * @since 1.0.19 |
|
2170 | - * @param string $value Value to set. |
|
2167 | + * Set date invoice was completed. |
|
2168 | + * |
|
2169 | + * @since 1.0.19 |
|
2170 | + * @param string $value Value to set. |
|
2171 | 2171 | * @return bool Whether or not the date was set. |
2172 | - */ |
|
2173 | - public function set_completed_date( $value ) { |
|
2172 | + */ |
|
2173 | + public function set_completed_date( $value ) { |
|
2174 | 2174 | $date = strtotime( $value ); |
2175 | 2175 | |
2176 | 2176 | if ( $date && $value !== '0000-00-00 00:00:00' ) { |
@@ -2178,29 +2178,29 @@ discard block |
||
2178 | 2178 | return true; |
2179 | 2179 | } |
2180 | 2180 | |
2181 | - $this->set_prop( 'completed_date', '' ); |
|
2181 | + $this->set_prop( 'completed_date', '' ); |
|
2182 | 2182 | return false; |
2183 | 2183 | |
2184 | 2184 | } |
2185 | 2185 | |
2186 | 2186 | /** |
2187 | - * Alias of self::set_completed_date(). |
|
2188 | - * |
|
2189 | - * @since 1.0.19 |
|
2190 | - * @param string $value New name. |
|
2191 | - */ |
|
2192 | - public function set_date_completed( $value ) { |
|
2193 | - $this->set_completed_date( $value ); |
|
2187 | + * Alias of self::set_completed_date(). |
|
2188 | + * |
|
2189 | + * @since 1.0.19 |
|
2190 | + * @param string $value New name. |
|
2191 | + */ |
|
2192 | + public function set_date_completed( $value ) { |
|
2193 | + $this->set_completed_date( $value ); |
|
2194 | 2194 | } |
2195 | 2195 | |
2196 | 2196 | /** |
2197 | - * Set date when the invoice was last modified. |
|
2198 | - * |
|
2199 | - * @since 1.0.19 |
|
2200 | - * @param string $value Value to set. |
|
2197 | + * Set date when the invoice was last modified. |
|
2198 | + * |
|
2199 | + * @since 1.0.19 |
|
2200 | + * @param string $value Value to set. |
|
2201 | 2201 | * @return bool Whether or not the date was set. |
2202 | - */ |
|
2203 | - public function set_date_modified( $value ) { |
|
2202 | + */ |
|
2203 | + public function set_date_modified( $value ) { |
|
2204 | 2204 | $date = strtotime( $value ); |
2205 | 2205 | |
2206 | 2206 | if ( $date && $value !== '0000-00-00 00:00:00' ) { |
@@ -2208,813 +2208,813 @@ discard block |
||
2208 | 2208 | return true; |
2209 | 2209 | } |
2210 | 2210 | |
2211 | - $this->set_prop( 'date_modified', '' ); |
|
2211 | + $this->set_prop( 'date_modified', '' ); |
|
2212 | 2212 | return false; |
2213 | 2213 | |
2214 | 2214 | } |
2215 | 2215 | |
2216 | 2216 | /** |
2217 | - * Set the invoice number. |
|
2218 | - * |
|
2219 | - * @since 1.0.19 |
|
2220 | - * @param string $value New number. |
|
2221 | - */ |
|
2222 | - public function set_number( $value ) { |
|
2217 | + * Set the invoice number. |
|
2218 | + * |
|
2219 | + * @since 1.0.19 |
|
2220 | + * @param string $value New number. |
|
2221 | + */ |
|
2222 | + public function set_number( $value ) { |
|
2223 | 2223 | $number = sanitize_text_field( $value ); |
2224 | - $this->set_prop( 'number', $number ); |
|
2224 | + $this->set_prop( 'number', $number ); |
|
2225 | 2225 | } |
2226 | 2226 | |
2227 | 2227 | /** |
2228 | - * Set the invoice type. |
|
2229 | - * |
|
2230 | - * @since 1.0.19 |
|
2231 | - * @param string $value Type. |
|
2232 | - */ |
|
2233 | - public function set_type( $value ) { |
|
2228 | + * Set the invoice type. |
|
2229 | + * |
|
2230 | + * @since 1.0.19 |
|
2231 | + * @param string $value Type. |
|
2232 | + */ |
|
2233 | + public function set_type( $value ) { |
|
2234 | 2234 | $type = sanitize_text_field( str_replace( 'wpi_', '', $value ) ); |
2235 | - $this->set_prop( 'type', $type ); |
|
2236 | - } |
|
2235 | + $this->set_prop( 'type', $type ); |
|
2236 | + } |
|
2237 | 2237 | |
2238 | 2238 | /** |
2239 | - * Set the invoice post type. |
|
2240 | - * |
|
2241 | - * @since 1.0.19 |
|
2242 | - * @param string $value Post type. |
|
2243 | - */ |
|
2244 | - public function set_post_type( $value ) { |
|
2239 | + * Set the invoice post type. |
|
2240 | + * |
|
2241 | + * @since 1.0.19 |
|
2242 | + * @param string $value Post type. |
|
2243 | + */ |
|
2244 | + public function set_post_type( $value ) { |
|
2245 | 2245 | if ( getpaid_is_invoice_post_type( $value ) ) { |
2246 | - $this->set_type( $value ); |
|
2246 | + $this->set_type( $value ); |
|
2247 | 2247 | $this->set_prop( 'post_type', $value ); |
2248 | 2248 | } |
2249 | 2249 | } |
2250 | 2250 | |
2251 | 2251 | /** |
2252 | - * Set the invoice key. |
|
2253 | - * |
|
2254 | - * @since 1.0.19 |
|
2255 | - * @param string $value New key. |
|
2256 | - */ |
|
2257 | - public function set_key( $value ) { |
|
2252 | + * Set the invoice key. |
|
2253 | + * |
|
2254 | + * @since 1.0.19 |
|
2255 | + * @param string $value New key. |
|
2256 | + */ |
|
2257 | + public function set_key( $value ) { |
|
2258 | 2258 | $key = sanitize_text_field( $value ); |
2259 | - $this->set_prop( 'key', $key ); |
|
2259 | + $this->set_prop( 'key', $key ); |
|
2260 | 2260 | } |
2261 | 2261 | |
2262 | 2262 | /** |
2263 | - * Set the invoice mode. |
|
2264 | - * |
|
2265 | - * @since 1.0.19 |
|
2266 | - * @param string $value mode. |
|
2267 | - */ |
|
2268 | - public function set_mode( $value ) { |
|
2263 | + * Set the invoice mode. |
|
2264 | + * |
|
2265 | + * @since 1.0.19 |
|
2266 | + * @param string $value mode. |
|
2267 | + */ |
|
2268 | + public function set_mode( $value ) { |
|
2269 | 2269 | if ( in_array( $value, array( 'live', 'test' ) ) ) { |
2270 | 2270 | $this->set_prop( 'mode', $value ); |
2271 | 2271 | } |
2272 | 2272 | } |
2273 | 2273 | |
2274 | 2274 | /** |
2275 | - * Set the invoice path. |
|
2276 | - * |
|
2277 | - * @since 1.0.19 |
|
2278 | - * @param string $value path. |
|
2279 | - */ |
|
2280 | - public function set_path( $value ) { |
|
2275 | + * Set the invoice path. |
|
2276 | + * |
|
2277 | + * @since 1.0.19 |
|
2278 | + * @param string $value path. |
|
2279 | + */ |
|
2280 | + public function set_path( $value ) { |
|
2281 | 2281 | $this->set_prop( 'path', $value ); |
2282 | 2282 | } |
2283 | 2283 | |
2284 | 2284 | /** |
2285 | - * Set the invoice name. |
|
2286 | - * |
|
2287 | - * @since 1.0.19 |
|
2288 | - * @param string $value New name. |
|
2289 | - */ |
|
2290 | - public function set_name( $value ) { |
|
2285 | + * Set the invoice name. |
|
2286 | + * |
|
2287 | + * @since 1.0.19 |
|
2288 | + * @param string $value New name. |
|
2289 | + */ |
|
2290 | + public function set_name( $value ) { |
|
2291 | 2291 | $name = sanitize_text_field( $value ); |
2292 | - $this->set_prop( 'name', $name ); |
|
2292 | + $this->set_prop( 'name', $name ); |
|
2293 | 2293 | } |
2294 | 2294 | |
2295 | 2295 | /** |
2296 | - * Alias of self::set_name(). |
|
2297 | - * |
|
2298 | - * @since 1.0.19 |
|
2299 | - * @param string $value New name. |
|
2300 | - */ |
|
2301 | - public function set_title( $value ) { |
|
2302 | - $this->set_name( $value ); |
|
2296 | + * Alias of self::set_name(). |
|
2297 | + * |
|
2298 | + * @since 1.0.19 |
|
2299 | + * @param string $value New name. |
|
2300 | + */ |
|
2301 | + public function set_title( $value ) { |
|
2302 | + $this->set_name( $value ); |
|
2303 | 2303 | } |
2304 | 2304 | |
2305 | 2305 | /** |
2306 | - * Set the invoice description. |
|
2307 | - * |
|
2308 | - * @since 1.0.19 |
|
2309 | - * @param string $value New description. |
|
2310 | - */ |
|
2311 | - public function set_description( $value ) { |
|
2306 | + * Set the invoice description. |
|
2307 | + * |
|
2308 | + * @since 1.0.19 |
|
2309 | + * @param string $value New description. |
|
2310 | + */ |
|
2311 | + public function set_description( $value ) { |
|
2312 | 2312 | $description = wp_kses_post( $value ); |
2313 | - $this->set_prop( 'description', $description ); |
|
2313 | + $this->set_prop( 'description', $description ); |
|
2314 | + } |
|
2315 | + |
|
2316 | + /** |
|
2317 | + * Alias of self::set_description(). |
|
2318 | + * |
|
2319 | + * @since 1.0.19 |
|
2320 | + * @param string $value New description. |
|
2321 | + */ |
|
2322 | + public function set_excerpt( $value ) { |
|
2323 | + $this->set_description( $value ); |
|
2324 | + } |
|
2325 | + |
|
2326 | + /** |
|
2327 | + * Alias of self::set_description(). |
|
2328 | + * |
|
2329 | + * @since 1.0.19 |
|
2330 | + * @param string $value New description. |
|
2331 | + */ |
|
2332 | + public function set_summary( $value ) { |
|
2333 | + $this->set_description( $value ); |
|
2334 | + } |
|
2335 | + |
|
2336 | + /** |
|
2337 | + * Set the receiver of the invoice. |
|
2338 | + * |
|
2339 | + * @since 1.0.19 |
|
2340 | + * @param int $value New author. |
|
2341 | + */ |
|
2342 | + public function set_author( $value ) { |
|
2343 | + $user = get_user_by( 'id', (int) $value ); |
|
2344 | + |
|
2345 | + if ( $user && $user->ID ) { |
|
2346 | + $this->set_prop( 'author', $user->ID ); |
|
2347 | + $this->set_prop( 'email', $user->user_email ); |
|
2348 | + } |
|
2349 | + |
|
2350 | + } |
|
2351 | + |
|
2352 | + /** |
|
2353 | + * Alias of self::set_author(). |
|
2354 | + * |
|
2355 | + * @since 1.0.19 |
|
2356 | + * @param int $value New user id. |
|
2357 | + */ |
|
2358 | + public function set_user_id( $value ) { |
|
2359 | + $this->set_author( $value ); |
|
2360 | + } |
|
2361 | + |
|
2362 | + /** |
|
2363 | + * Alias of self::set_author(). |
|
2364 | + * |
|
2365 | + * @since 1.0.19 |
|
2366 | + * @param int $value New user id. |
|
2367 | + */ |
|
2368 | + public function set_customer_id( $value ) { |
|
2369 | + $this->set_author( $value ); |
|
2370 | + } |
|
2371 | + |
|
2372 | + /** |
|
2373 | + * Set the customer's ip. |
|
2374 | + * |
|
2375 | + * @since 1.0.19 |
|
2376 | + * @param string $value ip address. |
|
2377 | + */ |
|
2378 | + public function set_ip( $value ) { |
|
2379 | + $this->set_prop( 'ip', $value ); |
|
2380 | + } |
|
2381 | + |
|
2382 | + /** |
|
2383 | + * Alias of self::set_ip(). |
|
2384 | + * |
|
2385 | + * @since 1.0.19 |
|
2386 | + * @param string $value ip address. |
|
2387 | + */ |
|
2388 | + public function set_user_ip( $value ) { |
|
2389 | + $this->set_ip( $value ); |
|
2390 | + } |
|
2391 | + |
|
2392 | + /** |
|
2393 | + * Set the customer's first name. |
|
2394 | + * |
|
2395 | + * @since 1.0.19 |
|
2396 | + * @param string $value first name. |
|
2397 | + */ |
|
2398 | + public function set_first_name( $value ) { |
|
2399 | + $this->set_prop( 'first_name', $value ); |
|
2400 | + } |
|
2401 | + |
|
2402 | + /** |
|
2403 | + * Alias of self::set_first_name(). |
|
2404 | + * |
|
2405 | + * @since 1.0.19 |
|
2406 | + * @param string $value first name. |
|
2407 | + */ |
|
2408 | + public function set_user_first_name( $value ) { |
|
2409 | + $this->set_first_name( $value ); |
|
2314 | 2410 | } |
2315 | 2411 | |
2316 | 2412 | /** |
2317 | - * Alias of self::set_description(). |
|
2318 | - * |
|
2319 | - * @since 1.0.19 |
|
2320 | - * @param string $value New description. |
|
2321 | - */ |
|
2322 | - public function set_excerpt( $value ) { |
|
2323 | - $this->set_description( $value ); |
|
2413 | + * Alias of self::set_first_name(). |
|
2414 | + * |
|
2415 | + * @since 1.0.19 |
|
2416 | + * @param string $value first name. |
|
2417 | + */ |
|
2418 | + public function set_customer_first_name( $value ) { |
|
2419 | + $this->set_first_name( $value ); |
|
2420 | + } |
|
2421 | + |
|
2422 | + /** |
|
2423 | + * Set the customer's last name. |
|
2424 | + * |
|
2425 | + * @since 1.0.19 |
|
2426 | + * @param string $value last name. |
|
2427 | + */ |
|
2428 | + public function set_last_name( $value ) { |
|
2429 | + $this->set_prop( 'last_name', $value ); |
|
2430 | + } |
|
2431 | + |
|
2432 | + /** |
|
2433 | + * Alias of self::set_last_name(). |
|
2434 | + * |
|
2435 | + * @since 1.0.19 |
|
2436 | + * @param string $value last name. |
|
2437 | + */ |
|
2438 | + public function set_user_last_name( $value ) { |
|
2439 | + $this->set_last_name( $value ); |
|
2440 | + } |
|
2441 | + |
|
2442 | + /** |
|
2443 | + * Alias of self::set_last_name(). |
|
2444 | + * |
|
2445 | + * @since 1.0.19 |
|
2446 | + * @param string $value last name. |
|
2447 | + */ |
|
2448 | + public function set_customer_last_name( $value ) { |
|
2449 | + $this->set_last_name( $value ); |
|
2450 | + } |
|
2451 | + |
|
2452 | + /** |
|
2453 | + * Set the customer's phone number. |
|
2454 | + * |
|
2455 | + * @since 1.0.19 |
|
2456 | + * @param string $value phone. |
|
2457 | + */ |
|
2458 | + public function set_phone( $value ) { |
|
2459 | + $this->set_prop( 'phone', $value ); |
|
2324 | 2460 | } |
2325 | 2461 | |
2326 | 2462 | /** |
2327 | - * Alias of self::set_description(). |
|
2328 | - * |
|
2329 | - * @since 1.0.19 |
|
2330 | - * @param string $value New description. |
|
2331 | - */ |
|
2332 | - public function set_summary( $value ) { |
|
2333 | - $this->set_description( $value ); |
|
2463 | + * Alias of self::set_phone(). |
|
2464 | + * |
|
2465 | + * @since 1.0.19 |
|
2466 | + * @param string $value phone. |
|
2467 | + */ |
|
2468 | + public function set_user_phone( $value ) { |
|
2469 | + $this->set_phone( $value ); |
|
2334 | 2470 | } |
2335 | 2471 | |
2336 | 2472 | /** |
2337 | - * Set the receiver of the invoice. |
|
2338 | - * |
|
2339 | - * @since 1.0.19 |
|
2340 | - * @param int $value New author. |
|
2341 | - */ |
|
2342 | - public function set_author( $value ) { |
|
2343 | - $user = get_user_by( 'id', (int) $value ); |
|
2473 | + * Alias of self::set_phone(). |
|
2474 | + * |
|
2475 | + * @since 1.0.19 |
|
2476 | + * @param string $value phone. |
|
2477 | + */ |
|
2478 | + public function set_customer_phone( $value ) { |
|
2479 | + $this->set_phone( $value ); |
|
2480 | + } |
|
2344 | 2481 | |
2345 | - if ( $user && $user->ID ) { |
|
2346 | - $this->set_prop( 'author', $user->ID ); |
|
2347 | - $this->set_prop( 'email', $user->user_email ); |
|
2348 | - } |
|
2482 | + /** |
|
2483 | + * Alias of self::set_phone(). |
|
2484 | + * |
|
2485 | + * @since 1.0.19 |
|
2486 | + * @param string $value phone. |
|
2487 | + */ |
|
2488 | + public function set_phone_number( $value ) { |
|
2489 | + $this->set_phone( $value ); |
|
2490 | + } |
|
2349 | 2491 | |
2492 | + /** |
|
2493 | + * Set the customer's email address. |
|
2494 | + * |
|
2495 | + * @since 1.0.19 |
|
2496 | + * @param string $value email address. |
|
2497 | + */ |
|
2498 | + public function set_email( $value ) { |
|
2499 | + $this->set_prop( 'email', $value ); |
|
2350 | 2500 | } |
2351 | 2501 | |
2352 | 2502 | /** |
2353 | - * Alias of self::set_author(). |
|
2354 | - * |
|
2355 | - * @since 1.0.19 |
|
2356 | - * @param int $value New user id. |
|
2357 | - */ |
|
2358 | - public function set_user_id( $value ) { |
|
2359 | - $this->set_author( $value ); |
|
2503 | + * Alias of self::set_email(). |
|
2504 | + * |
|
2505 | + * @since 1.0.19 |
|
2506 | + * @param string $value email address. |
|
2507 | + */ |
|
2508 | + public function set_user_email( $value ) { |
|
2509 | + $this->set_email( $value ); |
|
2360 | 2510 | } |
2361 | 2511 | |
2362 | 2512 | /** |
2363 | - * Alias of self::set_author(). |
|
2364 | - * |
|
2365 | - * @since 1.0.19 |
|
2366 | - * @param int $value New user id. |
|
2367 | - */ |
|
2368 | - public function set_customer_id( $value ) { |
|
2369 | - $this->set_author( $value ); |
|
2513 | + * Alias of self::set_email(). |
|
2514 | + * |
|
2515 | + * @since 1.0.19 |
|
2516 | + * @param string $value email address. |
|
2517 | + */ |
|
2518 | + public function set_email_address( $value ) { |
|
2519 | + $this->set_email( $value ); |
|
2370 | 2520 | } |
2371 | 2521 | |
2372 | 2522 | /** |
2373 | - * Set the customer's ip. |
|
2374 | - * |
|
2375 | - * @since 1.0.19 |
|
2376 | - * @param string $value ip address. |
|
2377 | - */ |
|
2378 | - public function set_ip( $value ) { |
|
2379 | - $this->set_prop( 'ip', $value ); |
|
2523 | + * Alias of self::set_email(). |
|
2524 | + * |
|
2525 | + * @since 1.0.19 |
|
2526 | + * @param string $value email address. |
|
2527 | + */ |
|
2528 | + public function set_customer_email( $value ) { |
|
2529 | + $this->set_email( $value ); |
|
2380 | 2530 | } |
2381 | 2531 | |
2382 | 2532 | /** |
2383 | - * Alias of self::set_ip(). |
|
2384 | - * |
|
2385 | - * @since 1.0.19 |
|
2386 | - * @param string $value ip address. |
|
2387 | - */ |
|
2388 | - public function set_user_ip( $value ) { |
|
2389 | - $this->set_ip( $value ); |
|
2533 | + * Set the customer's country. |
|
2534 | + * |
|
2535 | + * @since 1.0.19 |
|
2536 | + * @param string $value country. |
|
2537 | + */ |
|
2538 | + public function set_country( $value ) { |
|
2539 | + $this->set_prop( 'country', $value ); |
|
2390 | 2540 | } |
2391 | 2541 | |
2392 | 2542 | /** |
2393 | - * Set the customer's first name. |
|
2394 | - * |
|
2395 | - * @since 1.0.19 |
|
2396 | - * @param string $value first name. |
|
2397 | - */ |
|
2398 | - public function set_first_name( $value ) { |
|
2399 | - $this->set_prop( 'first_name', $value ); |
|
2543 | + * Alias of self::set_country(). |
|
2544 | + * |
|
2545 | + * @since 1.0.19 |
|
2546 | + * @param string $value country. |
|
2547 | + */ |
|
2548 | + public function set_user_country( $value ) { |
|
2549 | + $this->set_country( $value ); |
|
2400 | 2550 | } |
2401 | 2551 | |
2402 | 2552 | /** |
2403 | - * Alias of self::set_first_name(). |
|
2404 | - * |
|
2405 | - * @since 1.0.19 |
|
2406 | - * @param string $value first name. |
|
2407 | - */ |
|
2408 | - public function set_user_first_name( $value ) { |
|
2409 | - $this->set_first_name( $value ); |
|
2553 | + * Alias of self::set_country(). |
|
2554 | + * |
|
2555 | + * @since 1.0.19 |
|
2556 | + * @param string $value country. |
|
2557 | + */ |
|
2558 | + public function set_customer_country( $value ) { |
|
2559 | + $this->set_country( $value ); |
|
2410 | 2560 | } |
2411 | 2561 | |
2412 | 2562 | /** |
2413 | - * Alias of self::set_first_name(). |
|
2414 | - * |
|
2415 | - * @since 1.0.19 |
|
2416 | - * @param string $value first name. |
|
2417 | - */ |
|
2418 | - public function set_customer_first_name( $value ) { |
|
2419 | - $this->set_first_name( $value ); |
|
2563 | + * Set the customer's state. |
|
2564 | + * |
|
2565 | + * @since 1.0.19 |
|
2566 | + * @param string $value state. |
|
2567 | + */ |
|
2568 | + public function set_state( $value ) { |
|
2569 | + $this->set_prop( 'state', $value ); |
|
2420 | 2570 | } |
2421 | 2571 | |
2422 | 2572 | /** |
2423 | - * Set the customer's last name. |
|
2424 | - * |
|
2425 | - * @since 1.0.19 |
|
2426 | - * @param string $value last name. |
|
2427 | - */ |
|
2428 | - public function set_last_name( $value ) { |
|
2429 | - $this->set_prop( 'last_name', $value ); |
|
2573 | + * Alias of self::set_state(). |
|
2574 | + * |
|
2575 | + * @since 1.0.19 |
|
2576 | + * @param string $value state. |
|
2577 | + */ |
|
2578 | + public function set_user_state( $value ) { |
|
2579 | + $this->set_state( $value ); |
|
2430 | 2580 | } |
2431 | 2581 | |
2432 | 2582 | /** |
2433 | - * Alias of self::set_last_name(). |
|
2434 | - * |
|
2435 | - * @since 1.0.19 |
|
2436 | - * @param string $value last name. |
|
2437 | - */ |
|
2438 | - public function set_user_last_name( $value ) { |
|
2439 | - $this->set_last_name( $value ); |
|
2583 | + * Alias of self::set_state(). |
|
2584 | + * |
|
2585 | + * @since 1.0.19 |
|
2586 | + * @param string $value state. |
|
2587 | + */ |
|
2588 | + public function set_customer_state( $value ) { |
|
2589 | + $this->set_state( $value ); |
|
2440 | 2590 | } |
2441 | 2591 | |
2442 | 2592 | /** |
2443 | - * Alias of self::set_last_name(). |
|
2444 | - * |
|
2445 | - * @since 1.0.19 |
|
2446 | - * @param string $value last name. |
|
2447 | - */ |
|
2448 | - public function set_customer_last_name( $value ) { |
|
2449 | - $this->set_last_name( $value ); |
|
2593 | + * Set the customer's city. |
|
2594 | + * |
|
2595 | + * @since 1.0.19 |
|
2596 | + * @param string $value city. |
|
2597 | + */ |
|
2598 | + public function set_city( $value ) { |
|
2599 | + $this->set_prop( 'city', $value ); |
|
2450 | 2600 | } |
2451 | 2601 | |
2452 | 2602 | /** |
2453 | - * Set the customer's phone number. |
|
2454 | - * |
|
2455 | - * @since 1.0.19 |
|
2456 | - * @param string $value phone. |
|
2457 | - */ |
|
2458 | - public function set_phone( $value ) { |
|
2459 | - $this->set_prop( 'phone', $value ); |
|
2603 | + * Alias of self::set_city(). |
|
2604 | + * |
|
2605 | + * @since 1.0.19 |
|
2606 | + * @param string $value city. |
|
2607 | + */ |
|
2608 | + public function set_user_city( $value ) { |
|
2609 | + $this->set_city( $value ); |
|
2460 | 2610 | } |
2461 | 2611 | |
2462 | 2612 | /** |
2463 | - * Alias of self::set_phone(). |
|
2464 | - * |
|
2465 | - * @since 1.0.19 |
|
2466 | - * @param string $value phone. |
|
2467 | - */ |
|
2468 | - public function set_user_phone( $value ) { |
|
2469 | - $this->set_phone( $value ); |
|
2613 | + * Alias of self::set_city(). |
|
2614 | + * |
|
2615 | + * @since 1.0.19 |
|
2616 | + * @param string $value city. |
|
2617 | + */ |
|
2618 | + public function set_customer_city( $value ) { |
|
2619 | + $this->set_city( $value ); |
|
2470 | 2620 | } |
2471 | 2621 | |
2472 | 2622 | /** |
2473 | - * Alias of self::set_phone(). |
|
2474 | - * |
|
2475 | - * @since 1.0.19 |
|
2476 | - * @param string $value phone. |
|
2477 | - */ |
|
2478 | - public function set_customer_phone( $value ) { |
|
2479 | - $this->set_phone( $value ); |
|
2623 | + * Set the customer's zip code. |
|
2624 | + * |
|
2625 | + * @since 1.0.19 |
|
2626 | + * @param string $value zip. |
|
2627 | + */ |
|
2628 | + public function set_zip( $value ) { |
|
2629 | + $this->set_prop( 'zip', $value ); |
|
2480 | 2630 | } |
2481 | 2631 | |
2482 | 2632 | /** |
2483 | - * Alias of self::set_phone(). |
|
2484 | - * |
|
2485 | - * @since 1.0.19 |
|
2486 | - * @param string $value phone. |
|
2487 | - */ |
|
2488 | - public function set_phone_number( $value ) { |
|
2489 | - $this->set_phone( $value ); |
|
2633 | + * Alias of self::set_zip(). |
|
2634 | + * |
|
2635 | + * @since 1.0.19 |
|
2636 | + * @param string $value zip. |
|
2637 | + */ |
|
2638 | + public function set_user_zip( $value ) { |
|
2639 | + $this->set_zip( $value ); |
|
2490 | 2640 | } |
2491 | 2641 | |
2492 | 2642 | /** |
2493 | - * Set the customer's email address. |
|
2494 | - * |
|
2495 | - * @since 1.0.19 |
|
2496 | - * @param string $value email address. |
|
2497 | - */ |
|
2498 | - public function set_email( $value ) { |
|
2499 | - $this->set_prop( 'email', $value ); |
|
2643 | + * Alias of self::set_zip(). |
|
2644 | + * |
|
2645 | + * @since 1.0.19 |
|
2646 | + * @param string $value zip. |
|
2647 | + */ |
|
2648 | + public function set_customer_zip( $value ) { |
|
2649 | + $this->set_zip( $value ); |
|
2500 | 2650 | } |
2501 | 2651 | |
2502 | 2652 | /** |
2503 | - * Alias of self::set_email(). |
|
2504 | - * |
|
2505 | - * @since 1.0.19 |
|
2506 | - * @param string $value email address. |
|
2507 | - */ |
|
2508 | - public function set_user_email( $value ) { |
|
2509 | - $this->set_email( $value ); |
|
2653 | + * Set the customer's company. |
|
2654 | + * |
|
2655 | + * @since 1.0.19 |
|
2656 | + * @param string $value company. |
|
2657 | + */ |
|
2658 | + public function set_company( $value ) { |
|
2659 | + $this->set_prop( 'company', $value ); |
|
2510 | 2660 | } |
2511 | 2661 | |
2512 | 2662 | /** |
2513 | - * Alias of self::set_email(). |
|
2514 | - * |
|
2515 | - * @since 1.0.19 |
|
2516 | - * @param string $value email address. |
|
2517 | - */ |
|
2518 | - public function set_email_address( $value ) { |
|
2519 | - $this->set_email( $value ); |
|
2663 | + * Alias of self::set_company(). |
|
2664 | + * |
|
2665 | + * @since 1.0.19 |
|
2666 | + * @param string $value company. |
|
2667 | + */ |
|
2668 | + public function set_user_company( $value ) { |
|
2669 | + $this->set_company( $value ); |
|
2520 | 2670 | } |
2521 | 2671 | |
2522 | 2672 | /** |
2523 | - * Alias of self::set_email(). |
|
2524 | - * |
|
2525 | - * @since 1.0.19 |
|
2526 | - * @param string $value email address. |
|
2527 | - */ |
|
2528 | - public function set_customer_email( $value ) { |
|
2529 | - $this->set_email( $value ); |
|
2673 | + * Alias of self::set_company(). |
|
2674 | + * |
|
2675 | + * @since 1.0.19 |
|
2676 | + * @param string $value company. |
|
2677 | + */ |
|
2678 | + public function set_customer_company( $value ) { |
|
2679 | + $this->set_company( $value ); |
|
2530 | 2680 | } |
2531 | 2681 | |
2532 | 2682 | /** |
2533 | - * Set the customer's country. |
|
2534 | - * |
|
2535 | - * @since 1.0.19 |
|
2536 | - * @param string $value country. |
|
2537 | - */ |
|
2538 | - public function set_country( $value ) { |
|
2539 | - $this->set_prop( 'country', $value ); |
|
2683 | + * Set the customer's company id. |
|
2684 | + * |
|
2685 | + * @since 1.0.19 |
|
2686 | + * @param string $value company id. |
|
2687 | + */ |
|
2688 | + public function set_company_id( $value ) { |
|
2689 | + $this->set_prop( 'company_id', $value ); |
|
2540 | 2690 | } |
2541 | 2691 | |
2542 | 2692 | /** |
2543 | - * Alias of self::set_country(). |
|
2544 | - * |
|
2545 | - * @since 1.0.19 |
|
2546 | - * @param string $value country. |
|
2547 | - */ |
|
2548 | - public function set_user_country( $value ) { |
|
2549 | - $this->set_country( $value ); |
|
2693 | + * Set the customer's var number. |
|
2694 | + * |
|
2695 | + * @since 1.0.19 |
|
2696 | + * @param string $value var number. |
|
2697 | + */ |
|
2698 | + public function set_vat_number( $value ) { |
|
2699 | + $this->set_prop( 'vat_number', $value ); |
|
2550 | 2700 | } |
2551 | 2701 | |
2552 | 2702 | /** |
2553 | - * Alias of self::set_country(). |
|
2554 | - * |
|
2555 | - * @since 1.0.19 |
|
2556 | - * @param string $value country. |
|
2557 | - */ |
|
2558 | - public function set_customer_country( $value ) { |
|
2559 | - $this->set_country( $value ); |
|
2703 | + * Alias of self::set_vat_number(). |
|
2704 | + * |
|
2705 | + * @since 1.0.19 |
|
2706 | + * @param string $value var number. |
|
2707 | + */ |
|
2708 | + public function set_user_vat_number( $value ) { |
|
2709 | + $this->set_vat_number( $value ); |
|
2560 | 2710 | } |
2561 | 2711 | |
2562 | 2712 | /** |
2563 | - * Set the customer's state. |
|
2564 | - * |
|
2565 | - * @since 1.0.19 |
|
2566 | - * @param string $value state. |
|
2567 | - */ |
|
2568 | - public function set_state( $value ) { |
|
2569 | - $this->set_prop( 'state', $value ); |
|
2713 | + * Alias of self::set_vat_number(). |
|
2714 | + * |
|
2715 | + * @since 1.0.19 |
|
2716 | + * @param string $value var number. |
|
2717 | + */ |
|
2718 | + public function set_customer_vat_number( $value ) { |
|
2719 | + $this->set_vat_number( $value ); |
|
2570 | 2720 | } |
2571 | 2721 | |
2572 | 2722 | /** |
2573 | - * Alias of self::set_state(). |
|
2574 | - * |
|
2575 | - * @since 1.0.19 |
|
2576 | - * @param string $value state. |
|
2577 | - */ |
|
2578 | - public function set_user_state( $value ) { |
|
2579 | - $this->set_state( $value ); |
|
2723 | + * Set the customer's vat rate. |
|
2724 | + * |
|
2725 | + * @since 1.0.19 |
|
2726 | + * @param string $value var rate. |
|
2727 | + */ |
|
2728 | + public function set_vat_rate( $value ) { |
|
2729 | + $this->set_prop( 'vat_rate', $value ); |
|
2580 | 2730 | } |
2581 | 2731 | |
2582 | 2732 | /** |
2583 | - * Alias of self::set_state(). |
|
2584 | - * |
|
2585 | - * @since 1.0.19 |
|
2586 | - * @param string $value state. |
|
2587 | - */ |
|
2588 | - public function set_customer_state( $value ) { |
|
2589 | - $this->set_state( $value ); |
|
2733 | + * Alias of self::set_vat_rate(). |
|
2734 | + * |
|
2735 | + * @since 1.0.19 |
|
2736 | + * @param string $value var number. |
|
2737 | + */ |
|
2738 | + public function set_user_vat_rate( $value ) { |
|
2739 | + $this->set_vat_rate( $value ); |
|
2590 | 2740 | } |
2591 | 2741 | |
2592 | 2742 | /** |
2593 | - * Set the customer's city. |
|
2594 | - * |
|
2595 | - * @since 1.0.19 |
|
2596 | - * @param string $value city. |
|
2597 | - */ |
|
2598 | - public function set_city( $value ) { |
|
2599 | - $this->set_prop( 'city', $value ); |
|
2743 | + * Alias of self::set_vat_rate(). |
|
2744 | + * |
|
2745 | + * @since 1.0.19 |
|
2746 | + * @param string $value var number. |
|
2747 | + */ |
|
2748 | + public function set_customer_vat_rate( $value ) { |
|
2749 | + $this->set_vat_rate( $value ); |
|
2600 | 2750 | } |
2601 | 2751 | |
2602 | 2752 | /** |
2603 | - * Alias of self::set_city(). |
|
2604 | - * |
|
2605 | - * @since 1.0.19 |
|
2606 | - * @param string $value city. |
|
2607 | - */ |
|
2608 | - public function set_user_city( $value ) { |
|
2609 | - $this->set_city( $value ); |
|
2753 | + * Set the customer's address. |
|
2754 | + * |
|
2755 | + * @since 1.0.19 |
|
2756 | + * @param string $value address. |
|
2757 | + */ |
|
2758 | + public function set_address( $value ) { |
|
2759 | + $this->set_prop( 'address', $value ); |
|
2610 | 2760 | } |
2611 | 2761 | |
2612 | 2762 | /** |
2613 | - * Alias of self::set_city(). |
|
2614 | - * |
|
2615 | - * @since 1.0.19 |
|
2616 | - * @param string $value city. |
|
2617 | - */ |
|
2618 | - public function set_customer_city( $value ) { |
|
2619 | - $this->set_city( $value ); |
|
2763 | + * Alias of self::set_address(). |
|
2764 | + * |
|
2765 | + * @since 1.0.19 |
|
2766 | + * @param string $value address. |
|
2767 | + */ |
|
2768 | + public function set_user_address( $value ) { |
|
2769 | + $this->set_address( $value ); |
|
2620 | 2770 | } |
2621 | 2771 | |
2622 | 2772 | /** |
2623 | - * Set the customer's zip code. |
|
2624 | - * |
|
2625 | - * @since 1.0.19 |
|
2626 | - * @param string $value zip. |
|
2627 | - */ |
|
2628 | - public function set_zip( $value ) { |
|
2629 | - $this->set_prop( 'zip', $value ); |
|
2773 | + * Alias of self::set_address(). |
|
2774 | + * |
|
2775 | + * @since 1.0.19 |
|
2776 | + * @param string $value address. |
|
2777 | + */ |
|
2778 | + public function set_customer_address( $value ) { |
|
2779 | + $this->set_address( $value ); |
|
2630 | 2780 | } |
2631 | 2781 | |
2632 | 2782 | /** |
2633 | - * Alias of self::set_zip(). |
|
2634 | - * |
|
2635 | - * @since 1.0.19 |
|
2636 | - * @param string $value zip. |
|
2637 | - */ |
|
2638 | - public function set_user_zip( $value ) { |
|
2639 | - $this->set_zip( $value ); |
|
2783 | + * Set whether the customer has viewed the invoice or not. |
|
2784 | + * |
|
2785 | + * @since 1.0.19 |
|
2786 | + * @param int|bool $value confirmed. |
|
2787 | + */ |
|
2788 | + public function set_is_viewed( $value ) { |
|
2789 | + $this->set_prop( 'is_viewed', $value ); |
|
2640 | 2790 | } |
2641 | 2791 | |
2642 | 2792 | /** |
2643 | - * Alias of self::set_zip(). |
|
2644 | - * |
|
2645 | - * @since 1.0.19 |
|
2646 | - * @param string $value zip. |
|
2647 | - */ |
|
2648 | - public function set_customer_zip( $value ) { |
|
2649 | - $this->set_zip( $value ); |
|
2793 | + * Set extra email recipients. |
|
2794 | + * |
|
2795 | + * @since 1.0.19 |
|
2796 | + * @param string $value email recipients. |
|
2797 | + */ |
|
2798 | + public function set_email_cc( $value ) { |
|
2799 | + $this->set_prop( 'email_cc', $value ); |
|
2650 | 2800 | } |
2651 | 2801 | |
2652 | 2802 | /** |
2653 | - * Set the customer's company. |
|
2654 | - * |
|
2655 | - * @since 1.0.19 |
|
2656 | - * @param string $value company. |
|
2657 | - */ |
|
2658 | - public function set_company( $value ) { |
|
2659 | - $this->set_prop( 'company', $value ); |
|
2803 | + * Set the invoice template. |
|
2804 | + * |
|
2805 | + * @since 1.0.19 |
|
2806 | + * @param string $value template. |
|
2807 | + */ |
|
2808 | + public function set_template( $value ) { |
|
2809 | + if ( in_array( $value, array( 'quantity', 'hours', 'amount' ) ) ) { |
|
2810 | + $this->set_prop( 'template', $value ); |
|
2811 | + } |
|
2660 | 2812 | } |
2661 | 2813 | |
2662 | 2814 | /** |
2663 | - * Alias of self::set_company(). |
|
2664 | - * |
|
2665 | - * @since 1.0.19 |
|
2666 | - * @param string $value company. |
|
2667 | - */ |
|
2668 | - public function set_user_company( $value ) { |
|
2669 | - $this->set_company( $value ); |
|
2815 | + * Set the invoice source. |
|
2816 | + * |
|
2817 | + * @since 1.0.19 |
|
2818 | + * @param string $value source. |
|
2819 | + * @deprecated |
|
2820 | + */ |
|
2821 | + public function created_via( $value ) { |
|
2822 | + $this->set_created_via( sanitize_text_field( $value ) ); |
|
2670 | 2823 | } |
2671 | 2824 | |
2672 | 2825 | /** |
2673 | - * Alias of self::set_company(). |
|
2674 | - * |
|
2675 | - * @since 1.0.19 |
|
2676 | - * @param string $value company. |
|
2677 | - */ |
|
2678 | - public function set_customer_company( $value ) { |
|
2679 | - $this->set_company( $value ); |
|
2826 | + * Set the invoice source. |
|
2827 | + * |
|
2828 | + * @since 1.0.19 |
|
2829 | + * @param string $value source. |
|
2830 | + */ |
|
2831 | + public function set_created_via( $value ) { |
|
2832 | + $this->set_prop( 'created_via', sanitize_text_field( $value ) ); |
|
2680 | 2833 | } |
2681 | 2834 | |
2682 | - /** |
|
2683 | - * Set the customer's company id. |
|
2684 | - * |
|
2685 | - * @since 1.0.19 |
|
2686 | - * @param string $value company id. |
|
2687 | - */ |
|
2688 | - public function set_company_id( $value ) { |
|
2689 | - $this->set_prop( 'company_id', $value ); |
|
2835 | + /** |
|
2836 | + * Set the customer's address confirmed status. |
|
2837 | + * |
|
2838 | + * @since 1.0.19 |
|
2839 | + * @param int|bool $value confirmed. |
|
2840 | + */ |
|
2841 | + public function set_address_confirmed( $value ) { |
|
2842 | + $this->set_prop( 'address_confirmed', $value ); |
|
2690 | 2843 | } |
2691 | 2844 | |
2692 | 2845 | /** |
2693 | - * Set the customer's var number. |
|
2694 | - * |
|
2695 | - * @since 1.0.19 |
|
2696 | - * @param string $value var number. |
|
2697 | - */ |
|
2698 | - public function set_vat_number( $value ) { |
|
2699 | - $this->set_prop( 'vat_number', $value ); |
|
2846 | + * Alias of self::set_address_confirmed(). |
|
2847 | + * |
|
2848 | + * @since 1.0.19 |
|
2849 | + * @param int|bool $value confirmed. |
|
2850 | + */ |
|
2851 | + public function set_user_address_confirmed( $value ) { |
|
2852 | + $this->set_address_confirmed( $value ); |
|
2700 | 2853 | } |
2701 | 2854 | |
2702 | 2855 | /** |
2703 | - * Alias of self::set_vat_number(). |
|
2704 | - * |
|
2705 | - * @since 1.0.19 |
|
2706 | - * @param string $value var number. |
|
2707 | - */ |
|
2708 | - public function set_user_vat_number( $value ) { |
|
2709 | - $this->set_vat_number( $value ); |
|
2856 | + * Alias of self::set_address_confirmed(). |
|
2857 | + * |
|
2858 | + * @since 1.0.19 |
|
2859 | + * @param int|bool $value confirmed. |
|
2860 | + */ |
|
2861 | + public function set_customer_address_confirmed( $value ) { |
|
2862 | + $this->set_address_confirmed( $value ); |
|
2710 | 2863 | } |
2711 | 2864 | |
2712 | 2865 | /** |
2713 | - * Alias of self::set_vat_number(). |
|
2714 | - * |
|
2715 | - * @since 1.0.19 |
|
2716 | - * @param string $value var number. |
|
2717 | - */ |
|
2718 | - public function set_customer_vat_number( $value ) { |
|
2719 | - $this->set_vat_number( $value ); |
|
2866 | + * Set the shipping fee |
|
2867 | + * |
|
2868 | + * @since 1.0.19 |
|
2869 | + * @param float $value shipping amount. |
|
2870 | + */ |
|
2871 | + public function set_shipping( $value ) { |
|
2872 | + |
|
2873 | + if ( ! is_numeric( $value ) ) { |
|
2874 | + return $this->set_prop( 'shipping', null ); |
|
2875 | + } |
|
2876 | + |
|
2877 | + $this->set_prop( 'shipping', max( 0, floatval( $value ) ) ); |
|
2720 | 2878 | } |
2721 | 2879 | |
2722 | 2880 | /** |
2723 | - * Set the customer's vat rate. |
|
2724 | - * |
|
2725 | - * @since 1.0.19 |
|
2726 | - * @param string $value var rate. |
|
2727 | - */ |
|
2728 | - public function set_vat_rate( $value ) { |
|
2729 | - $this->set_prop( 'vat_rate', $value ); |
|
2881 | + * Set the invoice sub total. |
|
2882 | + * |
|
2883 | + * @since 1.0.19 |
|
2884 | + * @param float $value sub total. |
|
2885 | + */ |
|
2886 | + public function set_subtotal( $value ) { |
|
2887 | + $this->set_prop( 'subtotal', max( 0, $value ) ); |
|
2730 | 2888 | } |
2731 | 2889 | |
2732 | - /** |
|
2733 | - * Alias of self::set_vat_rate(). |
|
2734 | - * |
|
2735 | - * @since 1.0.19 |
|
2736 | - * @param string $value var number. |
|
2737 | - */ |
|
2738 | - public function set_user_vat_rate( $value ) { |
|
2739 | - $this->set_vat_rate( $value ); |
|
2740 | - } |
|
2741 | - |
|
2742 | - /** |
|
2743 | - * Alias of self::set_vat_rate(). |
|
2744 | - * |
|
2745 | - * @since 1.0.19 |
|
2746 | - * @param string $value var number. |
|
2747 | - */ |
|
2748 | - public function set_customer_vat_rate( $value ) { |
|
2749 | - $this->set_vat_rate( $value ); |
|
2750 | - } |
|
2751 | - |
|
2752 | - /** |
|
2753 | - * Set the customer's address. |
|
2754 | - * |
|
2755 | - * @since 1.0.19 |
|
2756 | - * @param string $value address. |
|
2757 | - */ |
|
2758 | - public function set_address( $value ) { |
|
2759 | - $this->set_prop( 'address', $value ); |
|
2760 | - } |
|
2761 | - |
|
2762 | - /** |
|
2763 | - * Alias of self::set_address(). |
|
2764 | - * |
|
2765 | - * @since 1.0.19 |
|
2766 | - * @param string $value address. |
|
2767 | - */ |
|
2768 | - public function set_user_address( $value ) { |
|
2769 | - $this->set_address( $value ); |
|
2770 | - } |
|
2771 | - |
|
2772 | - /** |
|
2773 | - * Alias of self::set_address(). |
|
2774 | - * |
|
2775 | - * @since 1.0.19 |
|
2776 | - * @param string $value address. |
|
2777 | - */ |
|
2778 | - public function set_customer_address( $value ) { |
|
2779 | - $this->set_address( $value ); |
|
2780 | - } |
|
2781 | - |
|
2782 | - /** |
|
2783 | - * Set whether the customer has viewed the invoice or not. |
|
2784 | - * |
|
2785 | - * @since 1.0.19 |
|
2786 | - * @param int|bool $value confirmed. |
|
2787 | - */ |
|
2788 | - public function set_is_viewed( $value ) { |
|
2789 | - $this->set_prop( 'is_viewed', $value ); |
|
2790 | - } |
|
2791 | - |
|
2792 | - /** |
|
2793 | - * Set extra email recipients. |
|
2794 | - * |
|
2795 | - * @since 1.0.19 |
|
2796 | - * @param string $value email recipients. |
|
2797 | - */ |
|
2798 | - public function set_email_cc( $value ) { |
|
2799 | - $this->set_prop( 'email_cc', $value ); |
|
2800 | - } |
|
2801 | - |
|
2802 | - /** |
|
2803 | - * Set the invoice template. |
|
2804 | - * |
|
2805 | - * @since 1.0.19 |
|
2806 | - * @param string $value template. |
|
2807 | - */ |
|
2808 | - public function set_template( $value ) { |
|
2809 | - if ( in_array( $value, array( 'quantity', 'hours', 'amount' ) ) ) { |
|
2810 | - $this->set_prop( 'template', $value ); |
|
2811 | - } |
|
2812 | - } |
|
2813 | - |
|
2814 | - /** |
|
2815 | - * Set the invoice source. |
|
2816 | - * |
|
2817 | - * @since 1.0.19 |
|
2818 | - * @param string $value source. |
|
2819 | - * @deprecated |
|
2820 | - */ |
|
2821 | - public function created_via( $value ) { |
|
2822 | - $this->set_created_via( sanitize_text_field( $value ) ); |
|
2823 | - } |
|
2824 | - |
|
2825 | - /** |
|
2826 | - * Set the invoice source. |
|
2827 | - * |
|
2828 | - * @since 1.0.19 |
|
2829 | - * @param string $value source. |
|
2830 | - */ |
|
2831 | - public function set_created_via( $value ) { |
|
2832 | - $this->set_prop( 'created_via', sanitize_text_field( $value ) ); |
|
2833 | - } |
|
2834 | - |
|
2835 | - /** |
|
2836 | - * Set the customer's address confirmed status. |
|
2837 | - * |
|
2838 | - * @since 1.0.19 |
|
2839 | - * @param int|bool $value confirmed. |
|
2840 | - */ |
|
2841 | - public function set_address_confirmed( $value ) { |
|
2842 | - $this->set_prop( 'address_confirmed', $value ); |
|
2843 | - } |
|
2844 | - |
|
2845 | - /** |
|
2846 | - * Alias of self::set_address_confirmed(). |
|
2847 | - * |
|
2848 | - * @since 1.0.19 |
|
2849 | - * @param int|bool $value confirmed. |
|
2850 | - */ |
|
2851 | - public function set_user_address_confirmed( $value ) { |
|
2852 | - $this->set_address_confirmed( $value ); |
|
2853 | - } |
|
2854 | - |
|
2855 | - /** |
|
2856 | - * Alias of self::set_address_confirmed(). |
|
2857 | - * |
|
2858 | - * @since 1.0.19 |
|
2859 | - * @param int|bool $value confirmed. |
|
2860 | - */ |
|
2861 | - public function set_customer_address_confirmed( $value ) { |
|
2862 | - $this->set_address_confirmed( $value ); |
|
2863 | - } |
|
2864 | - |
|
2865 | - /** |
|
2866 | - * Set the shipping fee |
|
2867 | - * |
|
2868 | - * @since 1.0.19 |
|
2869 | - * @param float $value shipping amount. |
|
2870 | - */ |
|
2871 | - public function set_shipping( $value ) { |
|
2872 | - |
|
2873 | - if ( ! is_numeric( $value ) ) { |
|
2874 | - return $this->set_prop( 'shipping', null ); |
|
2875 | - } |
|
2876 | - |
|
2877 | - $this->set_prop( 'shipping', max( 0, floatval( $value ) ) ); |
|
2878 | - } |
|
2879 | - |
|
2880 | - /** |
|
2881 | - * Set the invoice sub total. |
|
2882 | - * |
|
2883 | - * @since 1.0.19 |
|
2884 | - * @param float $value sub total. |
|
2885 | - */ |
|
2886 | - public function set_subtotal( $value ) { |
|
2887 | - $this->set_prop( 'subtotal', max( 0, $value ) ); |
|
2888 | - } |
|
2889 | - |
|
2890 | - /** |
|
2891 | - * Set the invoice total. |
|
2892 | - * |
|
2893 | - * @since 1.0.19 |
|
2894 | - * @param float $value sub total. |
|
2895 | - */ |
|
2896 | - public function set_total( $value ) { |
|
2897 | - $this->set_prop( 'total', max( 0, $value ) ); |
|
2890 | + /** |
|
2891 | + * Set the invoice total. |
|
2892 | + * |
|
2893 | + * @since 1.0.19 |
|
2894 | + * @param float $value sub total. |
|
2895 | + */ |
|
2896 | + public function set_total( $value ) { |
|
2897 | + $this->set_prop( 'total', max( 0, $value ) ); |
|
2898 | 2898 | } |
2899 | 2899 | |
2900 | 2900 | /** |
2901 | - * Set the invoice discount amount. |
|
2902 | - * |
|
2903 | - * @since 1.0.19 |
|
2904 | - * @param float $value discount total. |
|
2905 | - */ |
|
2906 | - public function set_total_discount( $value ) { |
|
2907 | - $this->set_prop( 'total_discount', max( 0, $value ) ); |
|
2901 | + * Set the invoice discount amount. |
|
2902 | + * |
|
2903 | + * @since 1.0.19 |
|
2904 | + * @param float $value discount total. |
|
2905 | + */ |
|
2906 | + public function set_total_discount( $value ) { |
|
2907 | + $this->set_prop( 'total_discount', max( 0, $value ) ); |
|
2908 | 2908 | } |
2909 | 2909 | |
2910 | 2910 | /** |
2911 | - * Alias of self::set_total_discount(). |
|
2912 | - * |
|
2913 | - * @since 1.0.19 |
|
2914 | - * @param float $value discount total. |
|
2915 | - */ |
|
2916 | - public function set_discount( $value ) { |
|
2917 | - $this->set_total_discount( $value ); |
|
2911 | + * Alias of self::set_total_discount(). |
|
2912 | + * |
|
2913 | + * @since 1.0.19 |
|
2914 | + * @param float $value discount total. |
|
2915 | + */ |
|
2916 | + public function set_discount( $value ) { |
|
2917 | + $this->set_total_discount( $value ); |
|
2918 | 2918 | } |
2919 | 2919 | |
2920 | 2920 | /** |
2921 | - * Set the invoice tax amount. |
|
2922 | - * |
|
2923 | - * @since 1.0.19 |
|
2924 | - * @param float $value tax total. |
|
2925 | - */ |
|
2926 | - public function set_total_tax( $value ) { |
|
2927 | - $this->set_prop( 'total_tax', max( 0, $value ) ); |
|
2921 | + * Set the invoice tax amount. |
|
2922 | + * |
|
2923 | + * @since 1.0.19 |
|
2924 | + * @param float $value tax total. |
|
2925 | + */ |
|
2926 | + public function set_total_tax( $value ) { |
|
2927 | + $this->set_prop( 'total_tax', max( 0, $value ) ); |
|
2928 | 2928 | } |
2929 | 2929 | |
2930 | 2930 | /** |
2931 | - * Alias of self::set_total_tax(). |
|
2932 | - * |
|
2933 | - * @since 1.0.19 |
|
2934 | - * @param float $value tax total. |
|
2935 | - */ |
|
2936 | - public function set_tax_total( $value ) { |
|
2937 | - $this->set_total_tax( $value ); |
|
2931 | + * Alias of self::set_total_tax(). |
|
2932 | + * |
|
2933 | + * @since 1.0.19 |
|
2934 | + * @param float $value tax total. |
|
2935 | + */ |
|
2936 | + public function set_tax_total( $value ) { |
|
2937 | + $this->set_total_tax( $value ); |
|
2938 | 2938 | } |
2939 | 2939 | |
2940 | 2940 | /** |
2941 | - * Set the invoice fees amount. |
|
2942 | - * |
|
2943 | - * @since 1.0.19 |
|
2944 | - * @param float $value fees total. |
|
2945 | - */ |
|
2946 | - public function set_total_fees( $value ) { |
|
2947 | - $this->set_prop( 'total_fees', max( 0, $value ) ); |
|
2941 | + * Set the invoice fees amount. |
|
2942 | + * |
|
2943 | + * @since 1.0.19 |
|
2944 | + * @param float $value fees total. |
|
2945 | + */ |
|
2946 | + public function set_total_fees( $value ) { |
|
2947 | + $this->set_prop( 'total_fees', max( 0, $value ) ); |
|
2948 | 2948 | } |
2949 | 2949 | |
2950 | 2950 | /** |
2951 | - * Alias of self::set_total_fees(). |
|
2952 | - * |
|
2953 | - * @since 1.0.19 |
|
2954 | - * @param float $value fees total. |
|
2955 | - */ |
|
2956 | - public function set_fees_total( $value ) { |
|
2957 | - $this->set_total_fees( $value ); |
|
2951 | + * Alias of self::set_total_fees(). |
|
2952 | + * |
|
2953 | + * @since 1.0.19 |
|
2954 | + * @param float $value fees total. |
|
2955 | + */ |
|
2956 | + public function set_fees_total( $value ) { |
|
2957 | + $this->set_total_fees( $value ); |
|
2958 | 2958 | } |
2959 | 2959 | |
2960 | 2960 | /** |
2961 | - * Set the invoice fees. |
|
2962 | - * |
|
2963 | - * @since 1.0.19 |
|
2964 | - * @param array $value fees. |
|
2965 | - */ |
|
2966 | - public function set_fees( $value ) { |
|
2961 | + * Set the invoice fees. |
|
2962 | + * |
|
2963 | + * @since 1.0.19 |
|
2964 | + * @param array $value fees. |
|
2965 | + */ |
|
2966 | + public function set_fees( $value ) { |
|
2967 | 2967 | |
2968 | - if ( ! is_array( $value ) ) { |
|
2969 | - $value = array(); |
|
2970 | - } |
|
2968 | + if ( ! is_array( $value ) ) { |
|
2969 | + $value = array(); |
|
2970 | + } |
|
2971 | 2971 | |
2972 | - $this->set_prop( 'fees', $value ); |
|
2972 | + $this->set_prop( 'fees', $value ); |
|
2973 | 2973 | |
2974 | 2974 | } |
2975 | 2975 | |
2976 | 2976 | /** |
2977 | - * Set the invoice taxes. |
|
2978 | - * |
|
2979 | - * @since 1.0.19 |
|
2980 | - * @param array $value taxes. |
|
2981 | - */ |
|
2982 | - public function set_taxes( $value ) { |
|
2977 | + * Set the invoice taxes. |
|
2978 | + * |
|
2979 | + * @since 1.0.19 |
|
2980 | + * @param array $value taxes. |
|
2981 | + */ |
|
2982 | + public function set_taxes( $value ) { |
|
2983 | 2983 | |
2984 | - if ( ! is_array( $value ) ) { |
|
2985 | - $value = array(); |
|
2986 | - } |
|
2984 | + if ( ! is_array( $value ) ) { |
|
2985 | + $value = array(); |
|
2986 | + } |
|
2987 | 2987 | |
2988 | - $this->set_prop( 'taxes', $value ); |
|
2988 | + $this->set_prop( 'taxes', $value ); |
|
2989 | 2989 | |
2990 | 2990 | } |
2991 | 2991 | |
2992 | 2992 | /** |
2993 | - * Set the invoice discounts. |
|
2994 | - * |
|
2995 | - * @since 1.0.19 |
|
2996 | - * @param array $value discounts. |
|
2997 | - */ |
|
2998 | - public function set_discounts( $value ) { |
|
2993 | + * Set the invoice discounts. |
|
2994 | + * |
|
2995 | + * @since 1.0.19 |
|
2996 | + * @param array $value discounts. |
|
2997 | + */ |
|
2998 | + public function set_discounts( $value ) { |
|
2999 | 2999 | |
3000 | - if ( ! is_array( $value ) ) { |
|
3001 | - $value = array(); |
|
3002 | - } |
|
3000 | + if ( ! is_array( $value ) ) { |
|
3001 | + $value = array(); |
|
3002 | + } |
|
3003 | 3003 | |
3004 | - $this->set_prop( 'discounts', $value ); |
|
3004 | + $this->set_prop( 'discounts', $value ); |
|
3005 | 3005 | } |
3006 | 3006 | |
3007 | 3007 | /** |
3008 | - * Set the invoice items. |
|
3009 | - * |
|
3010 | - * @since 1.0.19 |
|
3011 | - * @param GetPaid_Form_Item[] $value items. |
|
3012 | - */ |
|
3013 | - public function set_items( $value ) { |
|
3008 | + * Set the invoice items. |
|
3009 | + * |
|
3010 | + * @since 1.0.19 |
|
3011 | + * @param GetPaid_Form_Item[] $value items. |
|
3012 | + */ |
|
3013 | + public function set_items( $value ) { |
|
3014 | 3014 | |
3015 | 3015 | // Remove existing items. |
3016 | 3016 | $this->set_prop( 'items', array() ); |
3017 | - $this->recurring_item = null; |
|
3017 | + $this->recurring_item = null; |
|
3018 | 3018 | |
3019 | 3019 | // Ensure that we have an array. |
3020 | 3020 | if ( ! is_array( $value ) ) { |
@@ -3028,95 +3028,95 @@ discard block |
||
3028 | 3028 | } |
3029 | 3029 | |
3030 | 3030 | /** |
3031 | - * Set the payment form. |
|
3032 | - * |
|
3033 | - * @since 1.0.19 |
|
3034 | - * @param int $value payment form. |
|
3035 | - */ |
|
3036 | - public function set_payment_form( $value ) { |
|
3037 | - $this->set_prop( 'payment_form', $value ); |
|
3031 | + * Set the payment form. |
|
3032 | + * |
|
3033 | + * @since 1.0.19 |
|
3034 | + * @param int $value payment form. |
|
3035 | + */ |
|
3036 | + public function set_payment_form( $value ) { |
|
3037 | + $this->set_prop( 'payment_form', $value ); |
|
3038 | 3038 | } |
3039 | 3039 | |
3040 | 3040 | /** |
3041 | - * Set the submission id. |
|
3042 | - * |
|
3043 | - * @since 1.0.19 |
|
3044 | - * @param string $value submission id. |
|
3045 | - */ |
|
3046 | - public function set_submission_id( $value ) { |
|
3047 | - $this->set_prop( 'submission_id', $value ); |
|
3041 | + * Set the submission id. |
|
3042 | + * |
|
3043 | + * @since 1.0.19 |
|
3044 | + * @param string $value submission id. |
|
3045 | + */ |
|
3046 | + public function set_submission_id( $value ) { |
|
3047 | + $this->set_prop( 'submission_id', $value ); |
|
3048 | 3048 | } |
3049 | 3049 | |
3050 | 3050 | /** |
3051 | - * Set the discount code. |
|
3052 | - * |
|
3053 | - * @since 1.0.19 |
|
3054 | - * @param string $value discount code. |
|
3055 | - */ |
|
3056 | - public function set_discount_code( $value ) { |
|
3057 | - $this->set_prop( 'discount_code', sanitize_text_field( $value ) ); |
|
3051 | + * Set the discount code. |
|
3052 | + * |
|
3053 | + * @since 1.0.19 |
|
3054 | + * @param string $value discount code. |
|
3055 | + */ |
|
3056 | + public function set_discount_code( $value ) { |
|
3057 | + $this->set_prop( 'discount_code', sanitize_text_field( $value ) ); |
|
3058 | 3058 | } |
3059 | 3059 | |
3060 | 3060 | /** |
3061 | - * Set the gateway. |
|
3062 | - * |
|
3063 | - * @since 1.0.19 |
|
3064 | - * @param string $value gateway. |
|
3065 | - */ |
|
3066 | - public function set_gateway( $value ) { |
|
3067 | - $this->set_prop( 'gateway', $value ); |
|
3061 | + * Set the gateway. |
|
3062 | + * |
|
3063 | + * @since 1.0.19 |
|
3064 | + * @param string $value gateway. |
|
3065 | + */ |
|
3066 | + public function set_gateway( $value ) { |
|
3067 | + $this->set_prop( 'gateway', $value ); |
|
3068 | 3068 | } |
3069 | 3069 | |
3070 | 3070 | /** |
3071 | - * Set the transaction id. |
|
3072 | - * |
|
3073 | - * @since 1.0.19 |
|
3074 | - * @param string $value transaction id. |
|
3075 | - */ |
|
3076 | - public function set_transaction_id( $value ) { |
|
3077 | - if ( ! empty( $value ) ) { |
|
3078 | - $this->set_prop( 'transaction_id', $value ); |
|
3079 | - } |
|
3071 | + * Set the transaction id. |
|
3072 | + * |
|
3073 | + * @since 1.0.19 |
|
3074 | + * @param string $value transaction id. |
|
3075 | + */ |
|
3076 | + public function set_transaction_id( $value ) { |
|
3077 | + if ( ! empty( $value ) ) { |
|
3078 | + $this->set_prop( 'transaction_id', $value ); |
|
3079 | + } |
|
3080 | 3080 | } |
3081 | 3081 | |
3082 | 3082 | /** |
3083 | - * Set the currency id. |
|
3084 | - * |
|
3085 | - * @since 1.0.19 |
|
3086 | - * @param string $value currency id. |
|
3087 | - */ |
|
3088 | - public function set_currency( $value ) { |
|
3089 | - $this->set_prop( 'currency', $value ); |
|
3083 | + * Set the currency id. |
|
3084 | + * |
|
3085 | + * @since 1.0.19 |
|
3086 | + * @param string $value currency id. |
|
3087 | + */ |
|
3088 | + public function set_currency( $value ) { |
|
3089 | + $this->set_prop( 'currency', $value ); |
|
3090 | 3090 | } |
3091 | 3091 | |
3092 | - /** |
|
3093 | - * Set whether to disable taxes. |
|
3094 | - * |
|
3095 | - * @since 1.0.19 |
|
3096 | - * @param bool $value value. |
|
3097 | - */ |
|
3098 | - public function set_disable_taxes( $value ) { |
|
3099 | - $this->set_prop( 'disable_taxes', (bool) $value ); |
|
3100 | - } |
|
3092 | + /** |
|
3093 | + * Set whether to disable taxes. |
|
3094 | + * |
|
3095 | + * @since 1.0.19 |
|
3096 | + * @param bool $value value. |
|
3097 | + */ |
|
3098 | + public function set_disable_taxes( $value ) { |
|
3099 | + $this->set_prop( 'disable_taxes', (bool) $value ); |
|
3100 | + } |
|
3101 | 3101 | |
3102 | 3102 | /** |
3103 | - * Set the subscription id. |
|
3104 | - * |
|
3105 | - * @since 1.0.19 |
|
3106 | - * @param string $value subscription id. |
|
3107 | - */ |
|
3108 | - public function set_subscription_id( $value ) { |
|
3109 | - $this->set_prop( 'subscription_id', $value ); |
|
3110 | - } |
|
3103 | + * Set the subscription id. |
|
3104 | + * |
|
3105 | + * @since 1.0.19 |
|
3106 | + * @param string $value subscription id. |
|
3107 | + */ |
|
3108 | + public function set_subscription_id( $value ) { |
|
3109 | + $this->set_prop( 'subscription_id', $value ); |
|
3110 | + } |
|
3111 | 3111 | |
3112 | - /** |
|
3113 | - * Set the remote subscription id. |
|
3114 | - * |
|
3115 | - * @since 1.0.19 |
|
3116 | - * @param string $value subscription id. |
|
3117 | - */ |
|
3118 | - public function set_remote_subscription_id( $value ) { |
|
3119 | - $this->set_prop( 'remote_subscription_id', $value ); |
|
3112 | + /** |
|
3113 | + * Set the remote subscription id. |
|
3114 | + * |
|
3115 | + * @since 1.0.19 |
|
3116 | + * @param string $value subscription id. |
|
3117 | + */ |
|
3118 | + public function set_remote_subscription_id( $value ) { |
|
3119 | + $this->set_prop( 'remote_subscription_id', $value ); |
|
3120 | 3120 | } |
3121 | 3121 | |
3122 | 3122 | /* |
@@ -3155,24 +3155,24 @@ discard block |
||
3155 | 3155 | */ |
3156 | 3156 | public function is_taxable() { |
3157 | 3157 | return ! $this->get_disable_taxes(); |
3158 | - } |
|
3158 | + } |
|
3159 | 3159 | |
3160 | - /** |
|
3161 | - * @deprecated |
|
3162 | - */ |
|
3163 | - public function has_vat() { |
|
3160 | + /** |
|
3161 | + * @deprecated |
|
3162 | + */ |
|
3163 | + public function has_vat() { |
|
3164 | 3164 | return $this->is_taxable(); |
3165 | - } |
|
3165 | + } |
|
3166 | 3166 | |
3167 | - /** |
|
3168 | - * Checks to see if the invoice requires payment. |
|
3169 | - */ |
|
3170 | - public function is_free() { |
|
3167 | + /** |
|
3168 | + * Checks to see if the invoice requires payment. |
|
3169 | + */ |
|
3170 | + public function is_free() { |
|
3171 | 3171 | $is_free = ( (float) wpinv_round_amount( $this->get_initial_total() ) == 0 ); |
3172 | 3172 | |
3173 | - if ( $this->is_recurring() && $this->get_recurring_total() > 0 ) { |
|
3174 | - $is_free = false; |
|
3175 | - } |
|
3173 | + if ( $this->is_recurring() && $this->get_recurring_total() > 0 ) { |
|
3174 | + $is_free = false; |
|
3175 | + } |
|
3176 | 3176 | |
3177 | 3177 | return apply_filters( 'wpinv_invoice_is_free', $is_free, $this ); |
3178 | 3178 | } |
@@ -3183,46 +3183,46 @@ discard block |
||
3183 | 3183 | public function is_paid() { |
3184 | 3184 | $is_paid = $this->has_status( array( 'publish', 'wpi-processing', 'wpi-renewal' ) ); |
3185 | 3185 | return apply_filters( 'wpinv_invoice_is_paid', $is_paid, $this ); |
3186 | - } |
|
3186 | + } |
|
3187 | 3187 | |
3188 | - /** |
|
3188 | + /** |
|
3189 | 3189 | * Checks if the invoice needs payment. |
3190 | 3190 | */ |
3191 | - public function needs_payment() { |
|
3192 | - $needs_payment = ! $this->is_paid() && ! $this->is_refunded() && ! $this->is_free(); |
|
3191 | + public function needs_payment() { |
|
3192 | + $needs_payment = ! $this->is_paid() && ! $this->is_refunded() && ! $this->is_free(); |
|
3193 | 3193 | return apply_filters( 'wpinv_needs_payment', $needs_payment, $this ); |
3194 | 3194 | } |
3195 | 3195 | |
3196 | - /** |
|
3196 | + /** |
|
3197 | 3197 | * Checks if the invoice is refunded. |
3198 | 3198 | */ |
3199 | - public function is_refunded() { |
|
3199 | + public function is_refunded() { |
|
3200 | 3200 | $is_refunded = $this->has_status( 'wpi-refunded' ); |
3201 | 3201 | return apply_filters( 'wpinv_invoice_is_refunded', $is_refunded, $this ); |
3202 | - } |
|
3202 | + } |
|
3203 | 3203 | |
3204 | - /** |
|
3204 | + /** |
|
3205 | 3205 | * Checks if the invoice is held. |
3206 | 3206 | */ |
3207 | - public function is_held() { |
|
3207 | + public function is_held() { |
|
3208 | 3208 | $is_held = $this->has_status( 'wpi-onhold' ); |
3209 | 3209 | return apply_filters( 'wpinv_invoice_is_held', $is_held, $this ); |
3210 | - } |
|
3210 | + } |
|
3211 | 3211 | |
3212 | - /** |
|
3212 | + /** |
|
3213 | 3213 | * Checks if the invoice is due. |
3214 | 3214 | */ |
3215 | - public function is_due() { |
|
3216 | - $due_date = $this->get_due_date(); |
|
3217 | - return empty( $due_date ) ? false : current_time( 'timestamp' ) > strtotime( $due_date ); |
|
3218 | - } |
|
3215 | + public function is_due() { |
|
3216 | + $due_date = $this->get_due_date(); |
|
3217 | + return empty( $due_date ) ? false : current_time( 'timestamp' ) > strtotime( $due_date ); |
|
3218 | + } |
|
3219 | 3219 | |
3220 | - /** |
|
3220 | + /** |
|
3221 | 3221 | * Checks if the invoice is draft. |
3222 | 3222 | */ |
3223 | - public function is_draft() { |
|
3223 | + public function is_draft() { |
|
3224 | 3224 | return $this->has_status( 'draft, auto-draft' ); |
3225 | - } |
|
3225 | + } |
|
3226 | 3226 | |
3227 | 3227 | /** |
3228 | 3228 | * Checks if the invoice has a given status. |
@@ -3230,9 +3230,9 @@ discard block |
||
3230 | 3230 | public function has_status( $status ) { |
3231 | 3231 | $status = wpinv_parse_list( $status ); |
3232 | 3232 | return apply_filters( 'wpinv_has_status', in_array( $this->get_status(), $status ), $status ); |
3233 | - } |
|
3233 | + } |
|
3234 | 3234 | |
3235 | - /** |
|
3235 | + /** |
|
3236 | 3236 | * Checks if the invoice is of a given type. |
3237 | 3237 | */ |
3238 | 3238 | public function is_type( $type ) { |
@@ -3255,25 +3255,25 @@ discard block |
||
3255 | 3255 | */ |
3256 | 3256 | public function has_free_trial() { |
3257 | 3257 | return $this->is_recurring() && 0 == $this->get_initial_total(); |
3258 | - } |
|
3258 | + } |
|
3259 | 3259 | |
3260 | - /** |
|
3260 | + /** |
|
3261 | 3261 | * @deprecated |
3262 | 3262 | */ |
3263 | 3263 | public function is_free_trial() { |
3264 | 3264 | $this->has_free_trial(); |
3265 | 3265 | } |
3266 | 3266 | |
3267 | - /** |
|
3267 | + /** |
|
3268 | 3268 | * Check if the initial payment if 0. |
3269 | 3269 | * |
3270 | 3270 | */ |
3271 | - public function is_initial_free() { |
|
3271 | + public function is_initial_free() { |
|
3272 | 3272 | $is_initial_free = ! ( (float) wpinv_round_amount( $this->get_initial_total() ) > 0 ); |
3273 | 3273 | return apply_filters( 'wpinv_invoice_is_initial_free', $is_initial_free, $this->get_cart_details(), $this ); |
3274 | 3274 | } |
3275 | 3275 | |
3276 | - /** |
|
3276 | + /** |
|
3277 | 3277 | * Check if the recurring item has a free trial. |
3278 | 3278 | * |
3279 | 3279 | */ |
@@ -3286,21 +3286,21 @@ discard block |
||
3286 | 3286 | |
3287 | 3287 | $item = $this->get_recurring( true ); |
3288 | 3288 | return $item->has_free_trial(); |
3289 | - } |
|
3289 | + } |
|
3290 | 3290 | |
3291 | - /** |
|
3291 | + /** |
|
3292 | 3292 | * Check if the free trial is a result of a discount. |
3293 | 3293 | */ |
3294 | 3294 | public function is_free_trial_from_discount() { |
3295 | - return $this->has_free_trial() && ! $this->item_has_free_trial(); |
|
3296 | - } |
|
3295 | + return $this->has_free_trial() && ! $this->item_has_free_trial(); |
|
3296 | + } |
|
3297 | 3297 | |
3298 | - /** |
|
3298 | + /** |
|
3299 | 3299 | * @deprecated |
3300 | 3300 | */ |
3301 | 3301 | public function discount_first_payment_only() { |
3302 | 3302 | |
3303 | - $discount = wpinv_get_discount_obj( $this->get_discount_code() ); |
|
3303 | + $discount = wpinv_get_discount_obj( $this->get_discount_code() ); |
|
3304 | 3304 | if ( ! $discount->exists() || ! $this->is_recurring() ) { |
3305 | 3305 | return true; |
3306 | 3306 | } |
@@ -3325,146 +3325,146 @@ discard block |
||
3325 | 3325 | */ |
3326 | 3326 | public function add_item( $item ) { |
3327 | 3327 | |
3328 | - if ( is_array( $item ) ) { |
|
3329 | - $item = $this->process_array_item( $item ); |
|
3330 | - } |
|
3328 | + if ( is_array( $item ) ) { |
|
3329 | + $item = $this->process_array_item( $item ); |
|
3330 | + } |
|
3331 | 3331 | |
3332 | - if ( is_numeric( $item ) ) { |
|
3333 | - $item = new GetPaid_Form_Item( $item ); |
|
3334 | - } |
|
3332 | + if ( is_numeric( $item ) ) { |
|
3333 | + $item = new GetPaid_Form_Item( $item ); |
|
3334 | + } |
|
3335 | 3335 | |
3336 | 3336 | // Make sure that it is available for purchase. |
3337 | - if ( $item->get_id() > 0 && ! $item->can_purchase() ) { |
|
3338 | - return new WP_Error( 'invalid_item', __( 'This item is not available for purchase', 'invoicing' ) ); |
|
3337 | + if ( $item->get_id() > 0 && ! $item->can_purchase() ) { |
|
3338 | + return new WP_Error( 'invalid_item', __( 'This item is not available for purchase', 'invoicing' ) ); |
|
3339 | 3339 | } |
3340 | 3340 | |
3341 | 3341 | // Do we have a recurring item? |
3342 | - if ( $item->is_recurring() ) { |
|
3343 | - $this->recurring_item = $item->get_id(); |
|
3342 | + if ( $item->is_recurring() ) { |
|
3343 | + $this->recurring_item = $item->get_id(); |
|
3344 | 3344 | } |
3345 | 3345 | |
3346 | 3346 | // Invoice id. |
3347 | 3347 | $item->invoice_id = (int) $this->get_id(); |
3348 | 3348 | |
3349 | - // Remove duplicates. |
|
3350 | - $this->remove_item( $item->get_id() ); |
|
3349 | + // Remove duplicates. |
|
3350 | + $this->remove_item( $item->get_id() ); |
|
3351 | 3351 | |
3352 | - if ( 0 == $item->get_quantity() ) { |
|
3353 | - return; |
|
3354 | - } |
|
3352 | + if ( 0 == $item->get_quantity() ) { |
|
3353 | + return; |
|
3354 | + } |
|
3355 | 3355 | |
3356 | - // Retrieve all items. |
|
3356 | + // Retrieve all items. |
|
3357 | 3357 | $items = $this->get_items(); |
3358 | 3358 | |
3359 | - // Add new item. |
|
3359 | + // Add new item. |
|
3360 | 3360 | $items[] = $item; |
3361 | 3361 | |
3362 | 3362 | $this->set_prop( 'items', $items ); |
3363 | 3363 | |
3364 | - return true; |
|
3365 | - } |
|
3364 | + return true; |
|
3365 | + } |
|
3366 | 3366 | |
3367 | - /** |
|
3368 | - * Converts an array to an item. |
|
3369 | - * |
|
3370 | - * @since 1.0.19 |
|
3371 | - * @return GetPaid_Form_Item |
|
3372 | - */ |
|
3373 | - protected function process_array_item( $array ) { |
|
3367 | + /** |
|
3368 | + * Converts an array to an item. |
|
3369 | + * |
|
3370 | + * @since 1.0.19 |
|
3371 | + * @return GetPaid_Form_Item |
|
3372 | + */ |
|
3373 | + protected function process_array_item( $array ) { |
|
3374 | 3374 | |
3375 | - $item_id = isset( $array['item_id'] ) ? $array['item_id'] : 0; |
|
3376 | - $item = new GetPaid_Form_Item( $item_id ); |
|
3375 | + $item_id = isset( $array['item_id'] ) ? $array['item_id'] : 0; |
|
3376 | + $item = new GetPaid_Form_Item( $item_id ); |
|
3377 | 3377 | |
3378 | - // Set item data. |
|
3379 | - foreach ( array( 'name', 'price', 'description' ) as $key ) { |
|
3380 | - if ( isset( $array[ "item_$key" ] ) ) { |
|
3381 | - $method = "set_$key"; |
|
3382 | - $item->$method( $array[ "item_$key" ] ); |
|
3383 | - } |
|
3384 | - } |
|
3378 | + // Set item data. |
|
3379 | + foreach ( array( 'name', 'price', 'description' ) as $key ) { |
|
3380 | + if ( isset( $array[ "item_$key" ] ) ) { |
|
3381 | + $method = "set_$key"; |
|
3382 | + $item->$method( $array[ "item_$key" ] ); |
|
3383 | + } |
|
3384 | + } |
|
3385 | 3385 | |
3386 | - if ( isset( $array['quantity'] ) ) { |
|
3387 | - $item->set_quantity( $array['quantity'] ); |
|
3388 | - } |
|
3386 | + if ( isset( $array['quantity'] ) ) { |
|
3387 | + $item->set_quantity( $array['quantity'] ); |
|
3388 | + } |
|
3389 | 3389 | |
3390 | - // Set item meta. |
|
3391 | - if ( isset( $array['meta'] ) && is_array( $array['meta'] ) ) { |
|
3392 | - $item->set_item_meta( $array['meta'] ); |
|
3393 | - } |
|
3390 | + // Set item meta. |
|
3391 | + if ( isset( $array['meta'] ) && is_array( $array['meta'] ) ) { |
|
3392 | + $item->set_item_meta( $array['meta'] ); |
|
3393 | + } |
|
3394 | 3394 | |
3395 | - return $item; |
|
3395 | + return $item; |
|
3396 | 3396 | |
3397 | - } |
|
3397 | + } |
|
3398 | 3398 | |
3399 | 3399 | /** |
3400 | - * Retrieves a specific item. |
|
3401 | - * |
|
3402 | - * @since 1.0.19 |
|
3403 | - * @return GetPaid_Form_Item|null |
|
3404 | - */ |
|
3405 | - public function get_item( $item_id ) { |
|
3400 | + * Retrieves a specific item. |
|
3401 | + * |
|
3402 | + * @since 1.0.19 |
|
3403 | + * @return GetPaid_Form_Item|null |
|
3404 | + */ |
|
3405 | + public function get_item( $item_id ) { |
|
3406 | 3406 | |
3407 | - foreach ( $this->get_items() as $item ) { |
|
3408 | - if ( (int) $item_id == $item->get_id() ) { |
|
3409 | - return $item; |
|
3410 | - } |
|
3411 | - } |
|
3407 | + foreach ( $this->get_items() as $item ) { |
|
3408 | + if ( (int) $item_id == $item->get_id() ) { |
|
3409 | + return $item; |
|
3410 | + } |
|
3411 | + } |
|
3412 | 3412 | |
3413 | - return null; |
|
3413 | + return null; |
|
3414 | 3414 | } |
3415 | 3415 | |
3416 | 3416 | /** |
3417 | - * Removes a specific item. |
|
3418 | - * |
|
3419 | - * @since 1.0.19 |
|
3420 | - */ |
|
3421 | - public function remove_item( $item_id ) { |
|
3422 | - $items = $this->get_items(); |
|
3423 | - $item_id = (int) $item_id; |
|
3417 | + * Removes a specific item. |
|
3418 | + * |
|
3419 | + * @since 1.0.19 |
|
3420 | + */ |
|
3421 | + public function remove_item( $item_id ) { |
|
3422 | + $items = $this->get_items(); |
|
3423 | + $item_id = (int) $item_id; |
|
3424 | 3424 | |
3425 | - foreach ( $items as $index => $item ) { |
|
3426 | - if ( (int) $item_id == $item->get_id() ) { |
|
3427 | - unset( $items[ $index ] ); |
|
3428 | - $this->set_prop( 'items', $items ); |
|
3425 | + foreach ( $items as $index => $item ) { |
|
3426 | + if ( (int) $item_id == $item->get_id() ) { |
|
3427 | + unset( $items[ $index ] ); |
|
3428 | + $this->set_prop( 'items', $items ); |
|
3429 | 3429 | |
3430 | - if ( $item_id == $this->recurring_item ) { |
|
3431 | - $this->recurring_item = null; |
|
3432 | - } |
|
3430 | + if ( $item_id == $this->recurring_item ) { |
|
3431 | + $this->recurring_item = null; |
|
3432 | + } |
|
3433 | 3433 | } |
3434 | - } |
|
3434 | + } |
|
3435 | 3435 | |
3436 | 3436 | } |
3437 | 3437 | |
3438 | 3438 | /** |
3439 | - * Adds a fee to the invoice. |
|
3440 | - * |
|
3441 | - * @param array $fee An array of fee details. name, initial_fee, and recurring_fee are required. |
|
3442 | - * @since 1.0.19 |
|
3443 | - */ |
|
3439 | + * Adds a fee to the invoice. |
|
3440 | + * |
|
3441 | + * @param array $fee An array of fee details. name, initial_fee, and recurring_fee are required. |
|
3442 | + * @since 1.0.19 |
|
3443 | + */ |
|
3444 | 3444 | public function add_fee( $fee ) { |
3445 | 3445 | |
3446 | - $fees = $this->get_fees(); |
|
3447 | - $fees[ $fee['name'] ] = $fee; |
|
3448 | - $this->set_prop( 'fees', $fees ); |
|
3446 | + $fees = $this->get_fees(); |
|
3447 | + $fees[ $fee['name'] ] = $fee; |
|
3448 | + $this->set_prop( 'fees', $fees ); |
|
3449 | 3449 | |
3450 | 3450 | } |
3451 | 3451 | |
3452 | 3452 | /** |
3453 | - * Retrieves a specific fee. |
|
3454 | - * |
|
3455 | - * @since 1.0.19 |
|
3456 | - */ |
|
3457 | - public function get_fee( $fee ) { |
|
3453 | + * Retrieves a specific fee. |
|
3454 | + * |
|
3455 | + * @since 1.0.19 |
|
3456 | + */ |
|
3457 | + public function get_fee( $fee ) { |
|
3458 | 3458 | $fees = $this->get_fees(); |
3459 | - return isset( $fees[ $fee ] ) ? $fees[ $fee ] : null; |
|
3459 | + return isset( $fees[ $fee ] ) ? $fees[ $fee ] : null; |
|
3460 | 3460 | } |
3461 | 3461 | |
3462 | 3462 | /** |
3463 | - * Removes a specific fee. |
|
3464 | - * |
|
3465 | - * @since 1.0.19 |
|
3466 | - */ |
|
3467 | - public function remove_fee( $fee ) { |
|
3463 | + * Removes a specific fee. |
|
3464 | + * |
|
3465 | + * @since 1.0.19 |
|
3466 | + */ |
|
3467 | + public function remove_fee( $fee ) { |
|
3468 | 3468 | $fees = $this->get_fees(); |
3469 | 3469 | if ( isset( $fees[ $fee ] ) ) { |
3470 | 3470 | unset( $fees[ $fee ] ); |
@@ -3472,55 +3472,55 @@ discard block |
||
3472 | 3472 | } |
3473 | 3473 | } |
3474 | 3474 | |
3475 | - /** |
|
3476 | - * Adds a discount to the invoice. |
|
3477 | - * |
|
3478 | - * @param array $discount An array of discount details. name, initial_discount, and recurring_discount are required. Include discount_code if the discount is from a discount code. |
|
3479 | - * @since 1.0.19 |
|
3480 | - */ |
|
3481 | - public function add_discount( $discount ) { |
|
3475 | + /** |
|
3476 | + * Adds a discount to the invoice. |
|
3477 | + * |
|
3478 | + * @param array $discount An array of discount details. name, initial_discount, and recurring_discount are required. Include discount_code if the discount is from a discount code. |
|
3479 | + * @since 1.0.19 |
|
3480 | + */ |
|
3481 | + public function add_discount( $discount ) { |
|
3482 | 3482 | |
3483 | - $discounts = $this->get_discounts(); |
|
3484 | - $discounts[ $discount['name'] ] = $discount; |
|
3485 | - $this->set_prop( 'discounts', $discounts ); |
|
3483 | + $discounts = $this->get_discounts(); |
|
3484 | + $discounts[ $discount['name'] ] = $discount; |
|
3485 | + $this->set_prop( 'discounts', $discounts ); |
|
3486 | 3486 | |
3487 | - } |
|
3487 | + } |
|
3488 | 3488 | |
3489 | 3489 | /** |
3490 | - * Retrieves a specific discount. |
|
3491 | - * |
|
3492 | - * @since 1.0.19 |
|
3493 | - * @return float |
|
3494 | - */ |
|
3495 | - public function get_discount( $discount = false ) { |
|
3490 | + * Retrieves a specific discount. |
|
3491 | + * |
|
3492 | + * @since 1.0.19 |
|
3493 | + * @return float |
|
3494 | + */ |
|
3495 | + public function get_discount( $discount = false ) { |
|
3496 | 3496 | |
3497 | - // Backwards compatibilty. |
|
3498 | - if ( empty( $discount ) ) { |
|
3499 | - return $this->get_total_discount(); |
|
3500 | - } |
|
3497 | + // Backwards compatibilty. |
|
3498 | + if ( empty( $discount ) ) { |
|
3499 | + return $this->get_total_discount(); |
|
3500 | + } |
|
3501 | 3501 | |
3502 | 3502 | $discounts = $this->get_discounts(); |
3503 | - return isset( $discounts[ $discount ] ) ? $discounts[ $discount ] : null; |
|
3503 | + return isset( $discounts[ $discount ] ) ? $discounts[ $discount ] : null; |
|
3504 | 3504 | } |
3505 | 3505 | |
3506 | 3506 | /** |
3507 | - * Removes a specific discount. |
|
3508 | - * |
|
3509 | - * @since 1.0.19 |
|
3510 | - */ |
|
3511 | - public function remove_discount( $discount ) { |
|
3507 | + * Removes a specific discount. |
|
3508 | + * |
|
3509 | + * @since 1.0.19 |
|
3510 | + */ |
|
3511 | + public function remove_discount( $discount ) { |
|
3512 | 3512 | $discounts = $this->get_discounts(); |
3513 | 3513 | if ( isset( $discounts[ $discount ] ) ) { |
3514 | 3514 | unset( $discounts[ $discount ] ); |
3515 | 3515 | $this->set_prop( 'discounts', $discounts ); |
3516 | 3516 | } |
3517 | 3517 | |
3518 | - if ( 'discount_code' == $discount ) { |
|
3519 | - foreach ( $this->get_items() as $item ) { |
|
3520 | - $item->item_discount = 0; |
|
3521 | - $item->recurring_item_discount = 0; |
|
3522 | - } |
|
3523 | - } |
|
3518 | + if ( 'discount_code' == $discount ) { |
|
3519 | + foreach ( $this->get_items() as $item ) { |
|
3520 | + $item->item_discount = 0; |
|
3521 | + $item->recurring_item_discount = 0; |
|
3522 | + } |
|
3523 | + } |
|
3524 | 3524 | |
3525 | 3525 | } |
3526 | 3526 | |
@@ -3533,34 +3533,34 @@ discard block |
||
3533 | 3533 | if ( $this->is_taxable() ) { |
3534 | 3534 | |
3535 | 3535 | $taxes = $this->get_taxes(); |
3536 | - $taxes[ $tax['name'] ] = $tax; |
|
3537 | - $this->set_prop( 'taxes', $tax ); |
|
3536 | + $taxes[ $tax['name'] ] = $tax; |
|
3537 | + $this->set_prop( 'taxes', $tax ); |
|
3538 | 3538 | |
3539 | 3539 | } |
3540 | 3540 | } |
3541 | 3541 | |
3542 | 3542 | /** |
3543 | - * Retrieves a specific tax. |
|
3544 | - * |
|
3545 | - * @since 1.0.19 |
|
3546 | - */ |
|
3547 | - public function get_tax( $tax = null ) { |
|
3543 | + * Retrieves a specific tax. |
|
3544 | + * |
|
3545 | + * @since 1.0.19 |
|
3546 | + */ |
|
3547 | + public function get_tax( $tax = null ) { |
|
3548 | 3548 | |
3549 | - // Backwards compatility. |
|
3550 | - if ( empty( $tax ) ) { |
|
3551 | - return $this->get_total_tax(); |
|
3552 | - } |
|
3549 | + // Backwards compatility. |
|
3550 | + if ( empty( $tax ) ) { |
|
3551 | + return $this->get_total_tax(); |
|
3552 | + } |
|
3553 | 3553 | |
3554 | 3554 | $taxes = $this->get_taxes(); |
3555 | - return isset( $taxes[ $tax ] ) ? $taxes[ $tax ] : null; |
|
3555 | + return isset( $taxes[ $tax ] ) ? $taxes[ $tax ] : null; |
|
3556 | 3556 | } |
3557 | 3557 | |
3558 | 3558 | /** |
3559 | - * Removes a specific tax. |
|
3560 | - * |
|
3561 | - * @since 1.0.19 |
|
3562 | - */ |
|
3563 | - public function remove_tax( $tax ) { |
|
3559 | + * Removes a specific tax. |
|
3560 | + * |
|
3561 | + * @since 1.0.19 |
|
3562 | + */ |
|
3563 | + public function remove_tax( $tax ) { |
|
3564 | 3564 | $taxes = $this->get_taxes(); |
3565 | 3565 | if ( isset( $taxes[ $tax ] ) ) { |
3566 | 3566 | unset( $taxes[ $tax ] ); |
@@ -3569,184 +3569,184 @@ discard block |
||
3569 | 3569 | } |
3570 | 3570 | |
3571 | 3571 | /** |
3572 | - * Recalculates the invoice subtotal. |
|
3573 | - * |
|
3574 | - * @since 1.0.19 |
|
3575 | - * @return float The recalculated subtotal |
|
3576 | - */ |
|
3577 | - public function recalculate_subtotal() { |
|
3572 | + * Recalculates the invoice subtotal. |
|
3573 | + * |
|
3574 | + * @since 1.0.19 |
|
3575 | + * @return float The recalculated subtotal |
|
3576 | + */ |
|
3577 | + public function recalculate_subtotal() { |
|
3578 | 3578 | $items = $this->get_items(); |
3579 | - $subtotal = 0; |
|
3580 | - $recurring = 0; |
|
3579 | + $subtotal = 0; |
|
3580 | + $recurring = 0; |
|
3581 | 3581 | |
3582 | 3582 | foreach ( $items as $item ) { |
3583 | - $subtotal += $item->get_sub_total( 'edit' ); |
|
3584 | - $recurring += $item->get_recurring_sub_total( 'edit' ); |
|
3583 | + $subtotal += $item->get_sub_total( 'edit' ); |
|
3584 | + $recurring += $item->get_recurring_sub_total( 'edit' ); |
|
3585 | 3585 | } |
3586 | 3586 | |
3587 | - if ( wpinv_prices_include_tax() ) { |
|
3588 | - $subtotal = max( 0, $subtotal - $this->totals['tax']['initial'] ); |
|
3589 | - $recurring = max( 0, $recurring - $this->totals['tax']['recurring'] ); |
|
3590 | - } |
|
3587 | + if ( wpinv_prices_include_tax() ) { |
|
3588 | + $subtotal = max( 0, $subtotal - $this->totals['tax']['initial'] ); |
|
3589 | + $recurring = max( 0, $recurring - $this->totals['tax']['recurring'] ); |
|
3590 | + } |
|
3591 | 3591 | |
3592 | - $current = $this->is_renewal() ? $recurring : $subtotal; |
|
3593 | - $this->set_subtotal( $current ); |
|
3592 | + $current = $this->is_renewal() ? $recurring : $subtotal; |
|
3593 | + $this->set_subtotal( $current ); |
|
3594 | 3594 | |
3595 | - $this->totals['subtotal'] = array( |
|
3596 | - 'initial' => $subtotal, |
|
3597 | - 'recurring' => $recurring, |
|
3598 | - ); |
|
3595 | + $this->totals['subtotal'] = array( |
|
3596 | + 'initial' => $subtotal, |
|
3597 | + 'recurring' => $recurring, |
|
3598 | + ); |
|
3599 | 3599 | |
3600 | 3600 | return $current; |
3601 | 3601 | } |
3602 | 3602 | |
3603 | 3603 | /** |
3604 | - * Recalculates the invoice discount total. |
|
3605 | - * |
|
3606 | - * @since 1.0.19 |
|
3607 | - * @return float The recalculated discount |
|
3608 | - */ |
|
3609 | - public function recalculate_total_discount() { |
|
3604 | + * Recalculates the invoice discount total. |
|
3605 | + * |
|
3606 | + * @since 1.0.19 |
|
3607 | + * @return float The recalculated discount |
|
3608 | + */ |
|
3609 | + public function recalculate_total_discount() { |
|
3610 | 3610 | $discounts = $this->get_discounts(); |
3611 | - $discount = 0; |
|
3612 | - $recurring = 0; |
|
3611 | + $discount = 0; |
|
3612 | + $recurring = 0; |
|
3613 | 3613 | |
3614 | 3614 | foreach ( $discounts as $data ) { |
3615 | - $discount += wpinv_sanitize_amount( $data['initial_discount'] ); |
|
3616 | - $recurring += wpinv_sanitize_amount( $data['recurring_discount'] ); |
|
3617 | - } |
|
3615 | + $discount += wpinv_sanitize_amount( $data['initial_discount'] ); |
|
3616 | + $recurring += wpinv_sanitize_amount( $data['recurring_discount'] ); |
|
3617 | + } |
|
3618 | 3618 | |
3619 | - $current = $this->is_renewal() ? $recurring : $discount; |
|
3619 | + $current = $this->is_renewal() ? $recurring : $discount; |
|
3620 | 3620 | |
3621 | - $this->set_total_discount( $current ); |
|
3621 | + $this->set_total_discount( $current ); |
|
3622 | 3622 | |
3623 | - $this->totals['discount'] = array( |
|
3624 | - 'initial' => $discount, |
|
3625 | - 'recurring' => $recurring, |
|
3626 | - ); |
|
3623 | + $this->totals['discount'] = array( |
|
3624 | + 'initial' => $discount, |
|
3625 | + 'recurring' => $recurring, |
|
3626 | + ); |
|
3627 | 3627 | |
3628 | - return $current; |
|
3628 | + return $current; |
|
3629 | 3629 | |
3630 | 3630 | } |
3631 | 3631 | |
3632 | 3632 | /** |
3633 | - * Recalculates the invoice tax total. |
|
3634 | - * |
|
3635 | - * @since 1.0.19 |
|
3636 | - * @return float The recalculated tax |
|
3637 | - */ |
|
3638 | - public function recalculate_total_tax() { |
|
3633 | + * Recalculates the invoice tax total. |
|
3634 | + * |
|
3635 | + * @since 1.0.19 |
|
3636 | + * @return float The recalculated tax |
|
3637 | + */ |
|
3638 | + public function recalculate_total_tax() { |
|
3639 | 3639 | |
3640 | - // Maybe disable taxes. |
|
3641 | - $vat_number = $this->get_vat_number(); |
|
3642 | - $skip_tax = GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction( $this->get_country() ) && ! empty( $vat_number ); |
|
3640 | + // Maybe disable taxes. |
|
3641 | + $vat_number = $this->get_vat_number(); |
|
3642 | + $skip_tax = GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction( $this->get_country() ) && ! empty( $vat_number ); |
|
3643 | 3643 | |
3644 | - if ( wpinv_is_base_country( $this->get_country() ) && 'vat_too' === wpinv_get_option( 'vat_same_country_rule', 'vat_too' ) ) { |
|
3645 | - $skip_tax = false; |
|
3646 | - } |
|
3644 | + if ( wpinv_is_base_country( $this->get_country() ) && 'vat_too' === wpinv_get_option( 'vat_same_country_rule', 'vat_too' ) ) { |
|
3645 | + $skip_tax = false; |
|
3646 | + } |
|
3647 | 3647 | |
3648 | - if ( ! wpinv_use_taxes() || $this->get_disable_taxes() || ! wpinv_is_country_taxable( $this->get_country() ) || $skip_tax ) { |
|
3648 | + if ( ! wpinv_use_taxes() || $this->get_disable_taxes() || ! wpinv_is_country_taxable( $this->get_country() ) || $skip_tax ) { |
|
3649 | 3649 | |
3650 | - $this->totals['tax'] = array( |
|
3651 | - 'initial' => 0, |
|
3652 | - 'recurring' => 0, |
|
3653 | - ); |
|
3650 | + $this->totals['tax'] = array( |
|
3651 | + 'initial' => 0, |
|
3652 | + 'recurring' => 0, |
|
3653 | + ); |
|
3654 | 3654 | |
3655 | - $this->tax_rate = 0; |
|
3655 | + $this->tax_rate = 0; |
|
3656 | 3656 | |
3657 | - $this->set_taxes( array() ); |
|
3658 | - $current = 0; |
|
3659 | - } else { |
|
3657 | + $this->set_taxes( array() ); |
|
3658 | + $current = 0; |
|
3659 | + } else { |
|
3660 | 3660 | |
3661 | - $item_taxes = array(); |
|
3661 | + $item_taxes = array(); |
|
3662 | 3662 | |
3663 | - foreach ( $this->get_items() as $item ) { |
|
3664 | - $rates = getpaid_get_item_tax_rates( $item, $this->get_country(), $this->get_state() ); |
|
3665 | - $rates = getpaid_filter_item_tax_rates( $item, $rates ); |
|
3666 | - $taxes = getpaid_calculate_item_taxes( getpaid_get_taxable_amount( $item, false ), $rates ); |
|
3667 | - $r_taxes = getpaid_calculate_item_taxes( getpaid_get_taxable_amount( $item, true ), $rates ); |
|
3668 | - foreach ( $taxes as $name => $amount ) { |
|
3669 | - $recurring = isset( $r_taxes[ $name ] ) ? $r_taxes[ $name ] : 0; |
|
3670 | - $tax = getpaid_prepare_item_tax( $item, $name, $amount, $recurring ); |
|
3663 | + foreach ( $this->get_items() as $item ) { |
|
3664 | + $rates = getpaid_get_item_tax_rates( $item, $this->get_country(), $this->get_state() ); |
|
3665 | + $rates = getpaid_filter_item_tax_rates( $item, $rates ); |
|
3666 | + $taxes = getpaid_calculate_item_taxes( getpaid_get_taxable_amount( $item, false ), $rates ); |
|
3667 | + $r_taxes = getpaid_calculate_item_taxes( getpaid_get_taxable_amount( $item, true ), $rates ); |
|
3668 | + foreach ( $taxes as $name => $amount ) { |
|
3669 | + $recurring = isset( $r_taxes[ $name ] ) ? $r_taxes[ $name ] : 0; |
|
3670 | + $tax = getpaid_prepare_item_tax( $item, $name, $amount, $recurring ); |
|
3671 | 3671 | |
3672 | - if ( ! isset( $item_taxes[ $name ] ) ) { |
|
3673 | - $item_taxes[ $name ] = $tax; |
|
3674 | - continue; |
|
3675 | - } |
|
3672 | + if ( ! isset( $item_taxes[ $name ] ) ) { |
|
3673 | + $item_taxes[ $name ] = $tax; |
|
3674 | + continue; |
|
3675 | + } |
|
3676 | 3676 | |
3677 | - $item_taxes[ $name ]['initial_tax'] += $tax['initial_tax']; |
|
3678 | - $item_taxes[ $name ]['recurring_tax'] += $tax['recurring_tax']; |
|
3677 | + $item_taxes[ $name ]['initial_tax'] += $tax['initial_tax']; |
|
3678 | + $item_taxes[ $name ]['recurring_tax'] += $tax['recurring_tax']; |
|
3679 | 3679 | |
3680 | - } |
|
3681 | - } |
|
3680 | + } |
|
3681 | + } |
|
3682 | 3682 | |
3683 | - $item_taxes = array_replace( $this->get_taxes(), $item_taxes ); |
|
3684 | - $this->set_taxes( $item_taxes ); |
|
3683 | + $item_taxes = array_replace( $this->get_taxes(), $item_taxes ); |
|
3684 | + $this->set_taxes( $item_taxes ); |
|
3685 | 3685 | |
3686 | - $initial_tax = array_sum( wp_list_pluck( $item_taxes, 'initial_tax' ) ); |
|
3687 | - $recurring_tax = array_sum( wp_list_pluck( $item_taxes, 'recurring_tax' ) ); |
|
3686 | + $initial_tax = array_sum( wp_list_pluck( $item_taxes, 'initial_tax' ) ); |
|
3687 | + $recurring_tax = array_sum( wp_list_pluck( $item_taxes, 'recurring_tax' ) ); |
|
3688 | 3688 | |
3689 | - $current = $this->is_renewal() ? $recurring_tax : $initial_tax; |
|
3689 | + $current = $this->is_renewal() ? $recurring_tax : $initial_tax; |
|
3690 | 3690 | |
3691 | - $this->totals['tax'] = array( |
|
3692 | - 'initial' => $initial_tax, |
|
3693 | - 'recurring' => $recurring_tax, |
|
3694 | - ); |
|
3691 | + $this->totals['tax'] = array( |
|
3692 | + 'initial' => $initial_tax, |
|
3693 | + 'recurring' => $recurring_tax, |
|
3694 | + ); |
|
3695 | 3695 | |
3696 | - } |
|
3696 | + } |
|
3697 | 3697 | |
3698 | - $this->set_total_tax( $current ); |
|
3698 | + $this->set_total_tax( $current ); |
|
3699 | 3699 | |
3700 | - return $current; |
|
3700 | + return $current; |
|
3701 | 3701 | |
3702 | 3702 | } |
3703 | 3703 | |
3704 | 3704 | /** |
3705 | - * Recalculates the invoice fees total. |
|
3706 | - * |
|
3707 | - * @since 1.0.19 |
|
3708 | - * @return float The recalculated fee |
|
3709 | - */ |
|
3710 | - public function recalculate_total_fees() { |
|
3711 | - $fees = $this->get_fees(); |
|
3712 | - $fee = 0; |
|
3713 | - $recurring = 0; |
|
3705 | + * Recalculates the invoice fees total. |
|
3706 | + * |
|
3707 | + * @since 1.0.19 |
|
3708 | + * @return float The recalculated fee |
|
3709 | + */ |
|
3710 | + public function recalculate_total_fees() { |
|
3711 | + $fees = $this->get_fees(); |
|
3712 | + $fee = 0; |
|
3713 | + $recurring = 0; |
|
3714 | 3714 | |
3715 | 3715 | foreach ( $fees as $data ) { |
3716 | - $fee += wpinv_sanitize_amount( $data['initial_fee'] ); |
|
3717 | - $recurring += wpinv_sanitize_amount( $data['recurring_fee'] ); |
|
3718 | - } |
|
3716 | + $fee += wpinv_sanitize_amount( $data['initial_fee'] ); |
|
3717 | + $recurring += wpinv_sanitize_amount( $data['recurring_fee'] ); |
|
3718 | + } |
|
3719 | 3719 | |
3720 | - $current = $this->is_renewal() ? $recurring : $fee; |
|
3721 | - $this->set_total_fees( $current ); |
|
3720 | + $current = $this->is_renewal() ? $recurring : $fee; |
|
3721 | + $this->set_total_fees( $current ); |
|
3722 | 3722 | |
3723 | - $this->totals['fee'] = array( |
|
3724 | - 'initial' => $fee, |
|
3725 | - 'recurring' => $recurring, |
|
3726 | - ); |
|
3723 | + $this->totals['fee'] = array( |
|
3724 | + 'initial' => $fee, |
|
3725 | + 'recurring' => $recurring, |
|
3726 | + ); |
|
3727 | 3727 | |
3728 | 3728 | $this->set_total_fees( $fee ); |
3729 | 3729 | return $current; |
3730 | 3730 | } |
3731 | 3731 | |
3732 | 3732 | /** |
3733 | - * Recalculates the invoice total. |
|
3734 | - * |
|
3735 | - * @since 1.0.19 |
|
3733 | + * Recalculates the invoice total. |
|
3734 | + * |
|
3735 | + * @since 1.0.19 |
|
3736 | 3736 | * @return float The invoice total |
3737 | - */ |
|
3738 | - public function recalculate_total() { |
|
3737 | + */ |
|
3738 | + public function recalculate_total() { |
|
3739 | 3739 | $this->recalculate_total_fees(); |
3740 | 3740 | $this->recalculate_total_discount(); |
3741 | - $this->recalculate_total_tax(); |
|
3742 | - $this->recalculate_subtotal(); |
|
3743 | - $this->set_total( $this->get_total_tax( 'edit' ) + $this->get_total_fees( 'edit' ) + $this->get_subtotal( 'edit' ) - $this->get_total_discount( 'edit' ) ); |
|
3744 | - return $this->get_total(); |
|
3745 | - } |
|
3746 | - |
|
3747 | - /** |
|
3748 | - * @deprecated |
|
3749 | - */ |
|
3741 | + $this->recalculate_total_tax(); |
|
3742 | + $this->recalculate_subtotal(); |
|
3743 | + $this->set_total( $this->get_total_tax( 'edit' ) + $this->get_total_fees( 'edit' ) + $this->get_subtotal( 'edit' ) - $this->get_total_discount( 'edit' ) ); |
|
3744 | + return $this->get_total(); |
|
3745 | + } |
|
3746 | + |
|
3747 | + /** |
|
3748 | + * @deprecated |
|
3749 | + */ |
|
3750 | 3750 | public function recalculate_totals() { |
3751 | 3751 | $this->recalculate_total(); |
3752 | 3752 | $this->save( true ); |
@@ -3760,22 +3760,22 @@ discard block |
||
3760 | 3760 | return $this->get_data(); |
3761 | 3761 | } |
3762 | 3762 | |
3763 | - /** |
|
3763 | + /** |
|
3764 | 3764 | * Adds a system note to an invoice. |
3765 | 3765 | * |
3766 | 3766 | * @param string $note The note being added. |
3767 | - * @return int|false The new note's ID on success, false on failure. |
|
3767 | + * @return int|false The new note's ID on success, false on failure. |
|
3768 | 3768 | * |
3769 | 3769 | */ |
3770 | 3770 | public function add_system_note( $note ) { |
3771 | - return $this->add_note( $note, false, false, true ); |
|
3772 | - } |
|
3771 | + return $this->add_note( $note, false, false, true ); |
|
3772 | + } |
|
3773 | 3773 | |
3774 | 3774 | /** |
3775 | 3775 | * Adds a note to an invoice. |
3776 | 3776 | * |
3777 | 3777 | * @param string $note The note being added. |
3778 | - * @return int|false The new note's ID on success, false on failure. |
|
3778 | + * @return int|false The new note's ID on success, false on failure. |
|
3779 | 3779 | * |
3780 | 3780 | */ |
3781 | 3781 | public function add_note( $note = '', $customer_type = false, $added_by_user = false, $system = false ) { |
@@ -3785,21 +3785,21 @@ discard block |
||
3785 | 3785 | return false; |
3786 | 3786 | } |
3787 | 3787 | |
3788 | - $author = 'System'; |
|
3789 | - $author_email = '[email protected]'; |
|
3788 | + $author = 'System'; |
|
3789 | + $author_email = '[email protected]'; |
|
3790 | 3790 | |
3791 | - // If this is an admin comment or it has been added by the user. |
|
3792 | - if ( is_user_logged_in() && ( ! $system || $added_by_user ) ) { |
|
3793 | - $user = get_user_by( 'id', get_current_user_id() ); |
|
3791 | + // If this is an admin comment or it has been added by the user. |
|
3792 | + if ( is_user_logged_in() && ( ! $system || $added_by_user ) ) { |
|
3793 | + $user = get_user_by( 'id', get_current_user_id() ); |
|
3794 | 3794 | $author = $user->display_name; |
3795 | 3795 | $author_email = $user->user_email; |
3796 | - } |
|
3796 | + } |
|
3797 | 3797 | |
3798 | - return getpaid_notes()->add_invoice_note( $this, $note, $author, $author_email, $customer_type ); |
|
3798 | + return getpaid_notes()->add_invoice_note( $this, $note, $author, $author_email, $customer_type ); |
|
3799 | 3799 | |
3800 | - } |
|
3800 | + } |
|
3801 | 3801 | |
3802 | - /** |
|
3802 | + /** |
|
3803 | 3803 | * Generates a unique key for the invoice. |
3804 | 3804 | */ |
3805 | 3805 | public function generate_key( $string = '' ) { |
@@ -3819,113 +3819,113 @@ discard block |
||
3819 | 3819 | $number = wpinv_get_next_invoice_number( $this->get_post_type() ); |
3820 | 3820 | } |
3821 | 3821 | |
3822 | - return wpinv_format_invoice_number( $number, $this->get_post_type() ); |
|
3823 | - |
|
3824 | - } |
|
3825 | - |
|
3826 | - /** |
|
3827 | - * Handle the status transition. |
|
3828 | - */ |
|
3829 | - protected function status_transition() { |
|
3830 | - $status_transition = $this->status_transition; |
|
3831 | - |
|
3832 | - // Reset status transition variable. |
|
3833 | - $this->status_transition = false; |
|
3834 | - |
|
3835 | - if ( $status_transition ) { |
|
3836 | - try { |
|
3822 | + return wpinv_format_invoice_number( $number, $this->get_post_type() ); |
|
3837 | 3823 | |
3838 | - // Fire a hook for the status change. |
|
3839 | - do_action( 'getpaid_invoice_status_' . $status_transition['to'], $this, $status_transition ); |
|
3840 | - |
|
3841 | - // @deprecated this is deprecated and will be removed in the future. |
|
3842 | - do_action( 'wpinv_status_' . $status_transition['to'], $this->get_id(), $status_transition['from'] ); |
|
3843 | - |
|
3844 | - if ( ! empty( $status_transition['from'] ) ) { |
|
3845 | - |
|
3846 | - /* translators: 1: old invoice status 2: new invoice status */ |
|
3847 | - $transition_note = sprintf( __( 'Status changed from %1$s to %2$s.', 'invoicing' ), wpinv_status_nicename( $status_transition['from'], $this ), wpinv_status_nicename( $status_transition['to'], $this ) ); |
|
3848 | - |
|
3849 | - // Fire another hook. |
|
3850 | - do_action( 'getpaid_invoice_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this ); |
|
3851 | - do_action( 'getpaid_invoice_status_changed', $this, $status_transition['from'], $status_transition['to'] ); |
|
3852 | - |
|
3853 | - // @deprecated this is deprecated and will be removed in the future. |
|
3854 | - do_action( 'wpinv_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $status_transition['from'] ); |
|
3855 | - |
|
3856 | - // Note the transition occurred. |
|
3857 | - $this->add_note( trim( $status_transition['note'] . ' ' . $transition_note ), false, $status_transition['manual'] ); |
|
3858 | - |
|
3859 | - // Work out if this was for a payment, and trigger a payment_status hook instead. |
|
3860 | - if ( |
|
3861 | - in_array( $status_transition['from'], array( 'wpi-cancelled', 'wpi-pending', 'wpi-failed', 'wpi-refunded', 'wpi-onhold' ), true ) |
|
3862 | - && in_array( $status_transition['to'], array( 'publish', 'wpi-processing', 'wpi-renewal' ), true ) |
|
3863 | - ) { |
|
3864 | - do_action( 'getpaid_invoice_payment_status_changed', $this, $status_transition ); |
|
3865 | - } |
|
3866 | - |
|
3867 | - // Work out if this was for a payment reversal, and trigger a payment_status_reversed hook instead. |
|
3868 | - if ( |
|
3869 | - in_array( $status_transition['from'], array( 'publish', 'wpi-processing', 'wpi-renewal' ), true ) |
|
3870 | - && in_array( $status_transition['to'], array( 'wpi-cancelled', 'wpi-pending', 'wpi-failed', 'wpi-refunded', 'wpi-onhold' ), true ) |
|
3871 | - ) { |
|
3872 | - do_action( 'getpaid_invoice_payment_status_reversed', $this, $status_transition ); |
|
3873 | - } |
|
3874 | - } else { |
|
3875 | - /* translators: %s: new invoice status */ |
|
3876 | - $transition_note = sprintf( __( 'Status set to %s.', 'invoicing' ), wpinv_status_nicename( $status_transition['to'], $this ) ); |
|
3877 | - |
|
3878 | - // Note the transition occurred. |
|
3879 | - $this->add_note( trim( $status_transition['note'] . ' ' . $transition_note ), 0, $status_transition['manual'] ); |
|
3824 | + } |
|
3880 | 3825 | |
3881 | - } |
|
3882 | - } catch ( Exception $e ) { |
|
3883 | - $this->add_note( __( 'Error during status transition.', 'invoicing' ) . ' ' . $e->getMessage() ); |
|
3884 | - } |
|
3885 | - } |
|
3886 | - } |
|
3826 | + /** |
|
3827 | + * Handle the status transition. |
|
3828 | + */ |
|
3829 | + protected function status_transition() { |
|
3830 | + $status_transition = $this->status_transition; |
|
3831 | + |
|
3832 | + // Reset status transition variable. |
|
3833 | + $this->status_transition = false; |
|
3834 | + |
|
3835 | + if ( $status_transition ) { |
|
3836 | + try { |
|
3837 | + |
|
3838 | + // Fire a hook for the status change. |
|
3839 | + do_action( 'getpaid_invoice_status_' . $status_transition['to'], $this, $status_transition ); |
|
3840 | + |
|
3841 | + // @deprecated this is deprecated and will be removed in the future. |
|
3842 | + do_action( 'wpinv_status_' . $status_transition['to'], $this->get_id(), $status_transition['from'] ); |
|
3843 | + |
|
3844 | + if ( ! empty( $status_transition['from'] ) ) { |
|
3845 | + |
|
3846 | + /* translators: 1: old invoice status 2: new invoice status */ |
|
3847 | + $transition_note = sprintf( __( 'Status changed from %1$s to %2$s.', 'invoicing' ), wpinv_status_nicename( $status_transition['from'], $this ), wpinv_status_nicename( $status_transition['to'], $this ) ); |
|
3848 | + |
|
3849 | + // Fire another hook. |
|
3850 | + do_action( 'getpaid_invoice_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this ); |
|
3851 | + do_action( 'getpaid_invoice_status_changed', $this, $status_transition['from'], $status_transition['to'] ); |
|
3852 | + |
|
3853 | + // @deprecated this is deprecated and will be removed in the future. |
|
3854 | + do_action( 'wpinv_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $status_transition['from'] ); |
|
3855 | + |
|
3856 | + // Note the transition occurred. |
|
3857 | + $this->add_note( trim( $status_transition['note'] . ' ' . $transition_note ), false, $status_transition['manual'] ); |
|
3858 | + |
|
3859 | + // Work out if this was for a payment, and trigger a payment_status hook instead. |
|
3860 | + if ( |
|
3861 | + in_array( $status_transition['from'], array( 'wpi-cancelled', 'wpi-pending', 'wpi-failed', 'wpi-refunded', 'wpi-onhold' ), true ) |
|
3862 | + && in_array( $status_transition['to'], array( 'publish', 'wpi-processing', 'wpi-renewal' ), true ) |
|
3863 | + ) { |
|
3864 | + do_action( 'getpaid_invoice_payment_status_changed', $this, $status_transition ); |
|
3865 | + } |
|
3866 | + |
|
3867 | + // Work out if this was for a payment reversal, and trigger a payment_status_reversed hook instead. |
|
3868 | + if ( |
|
3869 | + in_array( $status_transition['from'], array( 'publish', 'wpi-processing', 'wpi-renewal' ), true ) |
|
3870 | + && in_array( $status_transition['to'], array( 'wpi-cancelled', 'wpi-pending', 'wpi-failed', 'wpi-refunded', 'wpi-onhold' ), true ) |
|
3871 | + ) { |
|
3872 | + do_action( 'getpaid_invoice_payment_status_reversed', $this, $status_transition ); |
|
3873 | + } |
|
3874 | + } else { |
|
3875 | + /* translators: %s: new invoice status */ |
|
3876 | + $transition_note = sprintf( __( 'Status set to %s.', 'invoicing' ), wpinv_status_nicename( $status_transition['to'], $this ) ); |
|
3877 | + |
|
3878 | + // Note the transition occurred. |
|
3879 | + $this->add_note( trim( $status_transition['note'] . ' ' . $transition_note ), 0, $status_transition['manual'] ); |
|
3880 | + |
|
3881 | + } |
|
3882 | + } catch ( Exception $e ) { |
|
3883 | + $this->add_note( __( 'Error during status transition.', 'invoicing' ) . ' ' . $e->getMessage() ); |
|
3884 | + } |
|
3885 | + } |
|
3886 | + } |
|
3887 | 3887 | |
3888 | - /** |
|
3889 | - * Updates an invoice status. |
|
3890 | - */ |
|
3891 | - public function update_status( $new_status = false, $note = '', $manual = false ) { |
|
3888 | + /** |
|
3889 | + * Updates an invoice status. |
|
3890 | + */ |
|
3891 | + public function update_status( $new_status = false, $note = '', $manual = false ) { |
|
3892 | 3892 | |
3893 | - // Fires before updating a status. |
|
3894 | - do_action( 'wpinv_before_invoice_status_change', $this->get_id(), $new_status, $this->get_status( 'edit' ) ); |
|
3893 | + // Fires before updating a status. |
|
3894 | + do_action( 'wpinv_before_invoice_status_change', $this->get_id(), $new_status, $this->get_status( 'edit' ) ); |
|
3895 | 3895 | |
3896 | - // Update the status. |
|
3897 | - $this->set_status( $new_status, $note, $manual ); |
|
3896 | + // Update the status. |
|
3897 | + $this->set_status( $new_status, $note, $manual ); |
|
3898 | 3898 | |
3899 | - // Save the order. |
|
3900 | - return $this->save(); |
|
3899 | + // Save the order. |
|
3900 | + return $this->save(); |
|
3901 | 3901 | |
3902 | - } |
|
3902 | + } |
|
3903 | 3903 | |
3904 | - /** |
|
3905 | - * @deprecated |
|
3906 | - */ |
|
3907 | - public function refresh_item_ids() { |
|
3904 | + /** |
|
3905 | + * @deprecated |
|
3906 | + */ |
|
3907 | + public function refresh_item_ids() { |
|
3908 | 3908 | $item_ids = implode( ',', array_unique( wp_list_pluck( $this->get_cart_details(), 'item_id' ) ) ); |
3909 | 3909 | update_post_meta( $this->get_id(), '_wpinv_item_ids', $item_ids ); |
3910 | - } |
|
3910 | + } |
|
3911 | 3911 | |
3912 | - /** |
|
3913 | - * @deprecated |
|
3914 | - */ |
|
3915 | - public function update_items( $temp = false ) { |
|
3912 | + /** |
|
3913 | + * @deprecated |
|
3914 | + */ |
|
3915 | + public function update_items( $temp = false ) { |
|
3916 | 3916 | |
3917 | - $this->set_items( $this->get_items() ); |
|
3917 | + $this->set_items( $this->get_items() ); |
|
3918 | 3918 | |
3919 | - if ( ! $temp ) { |
|
3920 | - $this->save(); |
|
3921 | - } |
|
3919 | + if ( ! $temp ) { |
|
3920 | + $this->save(); |
|
3921 | + } |
|
3922 | 3922 | |
3923 | 3923 | return $this; |
3924 | - } |
|
3924 | + } |
|
3925 | 3925 | |
3926 | - /** |
|
3927 | - * @deprecated |
|
3928 | - */ |
|
3926 | + /** |
|
3927 | + * @deprecated |
|
3928 | + */ |
|
3929 | 3929 | public function validate_discount() { |
3930 | 3930 | |
3931 | 3931 | $discount_code = $this->get_discount_code(); |
@@ -3941,93 +3941,93 @@ discard block |
||
3941 | 3941 | |
3942 | 3942 | } |
3943 | 3943 | |
3944 | - /** |
|
3945 | - * Refunds an invoice. |
|
3946 | - */ |
|
3944 | + /** |
|
3945 | + * Refunds an invoice. |
|
3946 | + */ |
|
3947 | 3947 | public function refund() { |
3948 | - $this->set_status( 'wpi-refunded' ); |
|
3948 | + $this->set_status( 'wpi-refunded' ); |
|
3949 | 3949 | $this->save(); |
3950 | - } |
|
3950 | + } |
|
3951 | 3951 | |
3952 | - /** |
|
3953 | - * Marks an invoice as paid. |
|
3954 | - * |
|
3955 | - * @param string $transaction_id |
|
3956 | - */ |
|
3952 | + /** |
|
3953 | + * Marks an invoice as paid. |
|
3954 | + * |
|
3955 | + * @param string $transaction_id |
|
3956 | + */ |
|
3957 | 3957 | public function mark_paid( $transaction_id = null, $note = '' ) { |
3958 | 3958 | |
3959 | - // Set the transaction id. |
|
3960 | - if ( empty( $transaction_id ) ) { |
|
3961 | - $transaction_id = $this->generate_key( 'trans_' ); |
|
3962 | - } |
|
3959 | + // Set the transaction id. |
|
3960 | + if ( empty( $transaction_id ) ) { |
|
3961 | + $transaction_id = $this->generate_key( 'trans_' ); |
|
3962 | + } |
|
3963 | 3963 | |
3964 | - if ( ! $this->get_transaction_id() ) { |
|
3965 | - $this->set_transaction_id( $transaction_id ); |
|
3966 | - } |
|
3964 | + if ( ! $this->get_transaction_id() ) { |
|
3965 | + $this->set_transaction_id( $transaction_id ); |
|
3966 | + } |
|
3967 | 3967 | |
3968 | - if ( $this->is_paid() && 'wpi-processing' != $this->get_status() ) { |
|
3969 | - return $this->save(); |
|
3970 | - } |
|
3968 | + if ( $this->is_paid() && 'wpi-processing' != $this->get_status() ) { |
|
3969 | + return $this->save(); |
|
3970 | + } |
|
3971 | 3971 | |
3972 | - // Set the completed date. |
|
3973 | - $this->set_date_completed( current_time( 'mysql' ) ); |
|
3972 | + // Set the completed date. |
|
3973 | + $this->set_date_completed( current_time( 'mysql' ) ); |
|
3974 | 3974 | |
3975 | - // Set the new status. |
|
3976 | - $gateway = sanitize_text_field( $this->get_gateway_title() ); |
|
3977 | - if ( $this->is_renewal() || ! $this->is_parent() ) { |
|
3975 | + // Set the new status. |
|
3976 | + $gateway = sanitize_text_field( $this->get_gateway_title() ); |
|
3977 | + if ( $this->is_renewal() || ! $this->is_parent() ) { |
|
3978 | 3978 | |
3979 | - $_note = wp_sprintf( __( 'Renewed via %s', 'invoicing' ), $gateway ); |
|
3980 | - $_note = $_note . empty( $note ) ? '' : " ($note)"; |
|
3979 | + $_note = wp_sprintf( __( 'Renewed via %s', 'invoicing' ), $gateway ); |
|
3980 | + $_note = $_note . empty( $note ) ? '' : " ($note)"; |
|
3981 | 3981 | |
3982 | - if ( 'none' == $this->get_gateway() ) { |
|
3983 | - $_note = $note; |
|
3984 | - } |
|
3982 | + if ( 'none' == $this->get_gateway() ) { |
|
3983 | + $_note = $note; |
|
3984 | + } |
|
3985 | 3985 | |
3986 | - $this->set_status( 'wpi-renewal', $_note ); |
|
3986 | + $this->set_status( 'wpi-renewal', $_note ); |
|
3987 | 3987 | |
3988 | - } else { |
|
3988 | + } else { |
|
3989 | 3989 | |
3990 | - $_note = wp_sprintf( __( 'Paid via %s', 'invoicing' ), $gateway ); |
|
3991 | - $_note = $_note . empty( $note ) ? '' : " ($note)"; |
|
3990 | + $_note = wp_sprintf( __( 'Paid via %s', 'invoicing' ), $gateway ); |
|
3991 | + $_note = $_note . empty( $note ) ? '' : " ($note)"; |
|
3992 | 3992 | |
3993 | - if ( 'none' == $this->get_gateway() ) { |
|
3994 | - $_note = $note; |
|
3995 | - } |
|
3993 | + if ( 'none' == $this->get_gateway() ) { |
|
3994 | + $_note = $note; |
|
3995 | + } |
|
3996 | 3996 | |
3997 | - $this->set_status( 'publish', $_note ); |
|
3997 | + $this->set_status( 'publish', $_note ); |
|
3998 | 3998 | |
3999 | - } |
|
3999 | + } |
|
4000 | 4000 | |
4001 | - // Set checkout mode. |
|
4002 | - $mode = wpinv_is_test_mode( $this->get_gateway() ) ? 'test' : 'live'; |
|
4003 | - $this->set_mode( $mode ); |
|
4001 | + // Set checkout mode. |
|
4002 | + $mode = wpinv_is_test_mode( $this->get_gateway() ) ? 'test' : 'live'; |
|
4003 | + $this->set_mode( $mode ); |
|
4004 | 4004 | |
4005 | - // Save the invoice. |
|
4005 | + // Save the invoice. |
|
4006 | 4006 | $this->save(); |
4007 | - } |
|
4008 | - |
|
4009 | - /** |
|
4010 | - * Save data to the database. |
|
4011 | - * |
|
4012 | - * @since 1.0.19 |
|
4013 | - * @return int invoice ID |
|
4014 | - */ |
|
4015 | - public function save() { |
|
4016 | - $this->maybe_set_date_paid(); |
|
4017 | - $this->maybe_set_key(); |
|
4018 | - parent::save(); |
|
4019 | - $this->clear_cache(); |
|
4020 | - $this->status_transition(); |
|
4021 | - return $this->get_id(); |
|
4022 | - } |
|
4023 | - |
|
4024 | - /** |
|
4007 | + } |
|
4008 | + |
|
4009 | + /** |
|
4010 | + * Save data to the database. |
|
4011 | + * |
|
4012 | + * @since 1.0.19 |
|
4013 | + * @return int invoice ID |
|
4014 | + */ |
|
4015 | + public function save() { |
|
4016 | + $this->maybe_set_date_paid(); |
|
4017 | + $this->maybe_set_key(); |
|
4018 | + parent::save(); |
|
4019 | + $this->clear_cache(); |
|
4020 | + $this->status_transition(); |
|
4021 | + return $this->get_id(); |
|
4022 | + } |
|
4023 | + |
|
4024 | + /** |
|
4025 | 4025 | * Clears the subscription's cache. |
4026 | 4026 | */ |
4027 | 4027 | public function clear_cache() { |
4028 | - wp_cache_delete( $this->get_key(), 'getpaid_invoice_keys_to_invoice_ids' ); |
|
4029 | - wp_cache_delete( $this->get_number(), 'getpaid_invoice_numbers_to_invoice_ids' ); |
|
4030 | - wp_cache_delete( $this->get_transaction_id(), 'getpaid_invoice_transaction_ids_to_invoice_ids' ); |
|
4031 | - } |
|
4028 | + wp_cache_delete( $this->get_key(), 'getpaid_invoice_keys_to_invoice_ids' ); |
|
4029 | + wp_cache_delete( $this->get_number(), 'getpaid_invoice_numbers_to_invoice_ids' ); |
|
4030 | + wp_cache_delete( $this->get_transaction_id(), 'getpaid_invoice_transaction_ids_to_invoice_ids' ); |
|
4031 | + } |
|
4032 | 4032 | |
4033 | 4033 | } |
@@ -1,32 +1,32 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | |
3 | - // Is the request set up correctly? |
|
4 | - if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) { |
|
5 | - return aui()->alert( |
|
6 | - array( |
|
7 | - 'type' => 'warning', |
|
8 | - 'content' => __( 'No payment form or item selected', 'invoicing' ), |
|
9 | - ) |
|
10 | - ); |
|
11 | - wp_die( esc_html__( 'No payment form or item selected', 'invoicing' ), 400 ); |
|
12 | - } |
|
13 | - |
|
14 | - // Payment form or button? |
|
15 | - if ( ! empty( $_GET['form'] ) ) { |
|
16 | - |
|
17 | - $shortcode = sprintf( |
|
18 | - '[getpaid form=%s]', |
|
19 | - (int) $_GET['form'] |
|
20 | - ); |
|
21 | - |
|
22 | - } else { |
|
23 | - |
|
24 | - $shortcode = sprintf( |
|
25 | - '[getpaid item=%s]', |
|
26 | - esc_attr( urldecode( $_GET['item'] ) ) |
|
27 | - ); |
|
28 | - |
|
29 | - } |
|
3 | + // Is the request set up correctly? |
|
4 | + if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) { |
|
5 | + return aui()->alert( |
|
6 | + array( |
|
7 | + 'type' => 'warning', |
|
8 | + 'content' => __( 'No payment form or item selected', 'invoicing' ), |
|
9 | + ) |
|
10 | + ); |
|
11 | + wp_die( esc_html__( 'No payment form or item selected', 'invoicing' ), 400 ); |
|
12 | + } |
|
13 | + |
|
14 | + // Payment form or button? |
|
15 | + if ( ! empty( $_GET['form'] ) ) { |
|
16 | + |
|
17 | + $shortcode = sprintf( |
|
18 | + '[getpaid form=%s]', |
|
19 | + (int) $_GET['form'] |
|
20 | + ); |
|
21 | + |
|
22 | + } else { |
|
23 | + |
|
24 | + $shortcode = sprintf( |
|
25 | + '[getpaid item=%s]', |
|
26 | + esc_attr( urldecode( $_GET['item'] ) ) |
|
27 | + ); |
|
28 | + |
|
29 | + } |
|
30 | 30 | |
31 | 31 | ?> |
32 | 32 | |
@@ -44,13 +44,13 @@ discard block |
||
44 | 44 | |
45 | 45 | <title><?php echo esc_html( get_bloginfo( 'name' ) ); ?></title> |
46 | 46 | <?php |
47 | - wp_enqueue_scripts(); |
|
48 | - wp_print_styles(); |
|
49 | - wp_print_head_scripts(); |
|
50 | - wp_custom_css_cb(); |
|
51 | - wpinv_get_template( 'frontend-head.php' ); |
|
52 | - wp_site_icon(); |
|
53 | - ?> |
|
47 | + wp_enqueue_scripts(); |
|
48 | + wp_print_styles(); |
|
49 | + wp_print_head_scripts(); |
|
50 | + wp_custom_css_cb(); |
|
51 | + wpinv_get_template( 'frontend-head.php' ); |
|
52 | + wp_site_icon(); |
|
53 | + ?> |
|
54 | 54 | |
55 | 55 | <style type="text/css"> |
56 | 56 | .body{ |
@@ -84,11 +84,11 @@ discard block |
||
84 | 84 | <body class="body page-template-default page"> |
85 | 85 | <div id="getpaid-form-embed" class="container my-5 page type-page status-publish hentry post post-content"> |
86 | 86 | <?php |
87 | - do_action( 'getpaid_payment_form_embed_top' ); |
|
88 | - echo do_shortcode( $shortcode ); |
|
89 | - do_action( 'getpaid_payment_form_embed_bottom' ); |
|
90 | - wpinv_get_template( 'frontend-footer.php' ); |
|
91 | - ?> |
|
87 | + do_action( 'getpaid_payment_form_embed_top' ); |
|
88 | + echo do_shortcode( $shortcode ); |
|
89 | + do_action( 'getpaid_payment_form_embed_bottom' ); |
|
90 | + wpinv_get_template( 'frontend-footer.php' ); |
|
91 | + ?> |
|
92 | 92 | </div> |
93 | 93 | <?php wp_footer(); ?> |
94 | 94 | </body> |
@@ -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' ); |
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', __( 'Credit card declined.', 'invoicing' ) ); |
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 | } |
@@ -13,30 +13,30 @@ 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' ); |
|
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' ); |
|
28 | 28 | |
29 | 29 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
34 | - public $order = 8; |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | + public $order = 8; |
|
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 = __( 'Direct bank transfer', 'invoicing' ); |
@@ -44,24 +44,24 @@ discard block |
||
44 | 44 | $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
45 | 45 | $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
46 | 46 | |
47 | - add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
48 | - add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
49 | - add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
50 | - add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
51 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
52 | - add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
47 | + add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
48 | + add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
49 | + add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
50 | + add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
51 | + add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
52 | + add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
53 | 53 | |
54 | 54 | } |
55 | 55 | |
56 | 56 | /** |
57 | - * Process Payment. |
|
58 | - * |
|
59 | - * @param WPInv_Invoice $invoice Invoice. |
|
60 | - * @param array $submission_data Posted checkout fields. |
|
61 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
62 | - * @return array |
|
63 | - */ |
|
64 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
57 | + * Process Payment. |
|
58 | + * |
|
59 | + * @param WPInv_Invoice $invoice Invoice. |
|
60 | + * @param array $submission_data Posted checkout fields. |
|
61 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
62 | + * @return array |
|
63 | + */ |
|
64 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
65 | 65 | |
66 | 66 | // Add a transaction id. |
67 | 67 | $invoice->set_transaction_id( $invoice->generate_key( 'bt_' ) ); |
@@ -82,66 +82,66 @@ discard block |
||
82 | 82 | } |
83 | 83 | |
84 | 84 | /** |
85 | - * Output for the order received page. |
|
86 | - * |
|
87 | - * @param WPInv_Invoice $invoice Invoice. |
|
88 | - */ |
|
89 | - public function thankyou_page( $invoice ) { |
|
85 | + * Output for the order received page. |
|
86 | + * |
|
87 | + * @param WPInv_Invoice $invoice Invoice. |
|
88 | + */ |
|
89 | + public function thankyou_page( $invoice ) { |
|
90 | 90 | |
91 | 91 | if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
92 | 92 | |
93 | - echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
93 | + echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
94 | 94 | |
95 | 95 | if ( ! empty( $this->instructions ) ) { |
96 | 96 | echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
97 | - } |
|
97 | + } |
|
98 | 98 | |
99 | - $this->bank_details( $invoice ); |
|
99 | + $this->bank_details( $invoice ); |
|
100 | 100 | |
101 | - echo '</div>'; |
|
101 | + echo '</div>'; |
|
102 | 102 | |
103 | 103 | } |
104 | 104 | |
105 | - } |
|
105 | + } |
|
106 | 106 | |
107 | 107 | /** |
108 | - * Add content to the WPI emails. |
|
109 | - * |
|
110 | - * @param WPInv_Invoice $invoice Invoice. |
|
111 | - * @param string $email_type Email format: plain text or HTML. |
|
112 | - * @param bool $sent_to_admin Sent to admin. |
|
113 | - */ |
|
114 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
108 | + * Add content to the WPI emails. |
|
109 | + * |
|
110 | + * @param WPInv_Invoice $invoice Invoice. |
|
111 | + * @param string $email_type Email format: plain text or HTML. |
|
112 | + * @param bool $sent_to_admin Sent to admin. |
|
113 | + */ |
|
114 | + public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
115 | 115 | |
116 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
116 | + if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
117 | 117 | |
118 | - echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
118 | + echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
119 | 119 | |
120 | - if ( $this->instructions ) { |
|
121 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
120 | + if ( $this->instructions ) { |
|
121 | + echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
122 | 122 | } |
123 | 123 | |
124 | - $this->bank_details( $invoice ); |
|
124 | + $this->bank_details( $invoice ); |
|
125 | 125 | |
126 | - echo '</div>'; |
|
126 | + echo '</div>'; |
|
127 | 127 | |
128 | - } |
|
128 | + } |
|
129 | 129 | |
130 | 130 | } |
131 | 131 | |
132 | 132 | /** |
133 | - * Get bank details and place into a list format. |
|
134 | - * |
|
135 | - * @param WPInv_Invoice $invoice Invoice. |
|
136 | - */ |
|
137 | - protected function bank_details( $invoice ) { |
|
133 | + * Get bank details and place into a list format. |
|
134 | + * |
|
135 | + * @param WPInv_Invoice $invoice Invoice. |
|
136 | + */ |
|
137 | + protected function bank_details( $invoice ) { |
|
138 | 138 | |
139 | - // Get the invoice country and country $locale. |
|
140 | - $country = $invoice->get_country(); |
|
141 | - $locale = $this->get_country_locale(); |
|
139 | + // Get the invoice country and country $locale. |
|
140 | + $country = $invoice->get_country(); |
|
141 | + $locale = $this->get_country_locale(); |
|
142 | 142 | |
143 | - // Get sortcode label in the $locale array and use appropriate one. |
|
144 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
143 | + // Get sortcode label in the $locale array and use appropriate one. |
|
144 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
145 | 145 | |
146 | 146 | $bank_fields = array( |
147 | 147 | 'ac_name' => __( 'Account Name', 'invoicing' ), |
@@ -160,9 +160,9 @@ discard block |
||
160 | 160 | |
161 | 161 | if ( ! empty( $value ) ) { |
162 | 162 | $bank_info[ $field ] = array( |
163 | - 'label' => $label, |
|
164 | - 'value' => $value, |
|
165 | - ); |
|
163 | + 'label' => $label, |
|
164 | + 'value' => $value, |
|
165 | + ); |
|
166 | 166 | } |
167 | 167 | } |
168 | 168 | |
@@ -172,139 +172,139 @@ discard block |
||
172 | 172 | return; |
173 | 173 | } |
174 | 174 | |
175 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) ) . '</h3>' . PHP_EOL; |
|
175 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) ) . '</h3>' . PHP_EOL; |
|
176 | 176 | |
177 | - echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
177 | + echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
178 | 178 | |
179 | - foreach ( $bank_info as $key => $data ) { |
|
180 | - 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; |
|
181 | - } |
|
179 | + foreach ( $bank_info as $key => $data ) { |
|
180 | + 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; |
|
181 | + } |
|
182 | 182 | |
183 | - echo '</table>'; |
|
183 | + echo '</table>'; |
|
184 | 184 | |
185 | 185 | } |
186 | 186 | |
187 | 187 | /** |
188 | - * Get country locale if localized. |
|
189 | - * |
|
190 | - * @return array |
|
191 | - */ |
|
192 | - public function get_country_locale() { |
|
193 | - |
|
194 | - if ( empty( $this->locale ) ) { |
|
195 | - |
|
196 | - // Locale information to be used - only those that are not 'Sort Code'. |
|
197 | - $this->locale = apply_filters( |
|
198 | - 'getpaid_get_bank_transfer_locale', |
|
199 | - array( |
|
200 | - 'AU' => array( |
|
201 | - 'sortcode' => array( |
|
202 | - 'label' => __( 'BSB', 'invoicing' ), |
|
203 | - ), |
|
204 | - ), |
|
205 | - 'CA' => array( |
|
206 | - 'sortcode' => array( |
|
207 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
208 | - ), |
|
209 | - ), |
|
210 | - 'IN' => array( |
|
211 | - 'sortcode' => array( |
|
212 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
213 | - ), |
|
214 | - ), |
|
215 | - 'IT' => array( |
|
216 | - 'sortcode' => array( |
|
217 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
218 | - ), |
|
219 | - ), |
|
220 | - 'NZ' => array( |
|
221 | - 'sortcode' => array( |
|
222 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
223 | - ), |
|
224 | - ), |
|
225 | - 'SE' => array( |
|
226 | - 'sortcode' => array( |
|
227 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
228 | - ), |
|
229 | - ), |
|
230 | - 'US' => array( |
|
231 | - 'sortcode' => array( |
|
232 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
233 | - ), |
|
234 | - ), |
|
235 | - 'ZA' => array( |
|
236 | - 'sortcode' => array( |
|
237 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
238 | - ), |
|
239 | - ), |
|
240 | - ) |
|
241 | - ); |
|
242 | - |
|
243 | - } |
|
244 | - |
|
245 | - return $this->locale; |
|
246 | - |
|
247 | - } |
|
248 | - |
|
249 | - /** |
|
250 | - * Filters the gateway settings. |
|
251 | - * |
|
252 | - * @param array $admin_settings |
|
253 | - */ |
|
254 | - public function admin_settings( $admin_settings ) { |
|
188 | + * Get country locale if localized. |
|
189 | + * |
|
190 | + * @return array |
|
191 | + */ |
|
192 | + public function get_country_locale() { |
|
193 | + |
|
194 | + if ( empty( $this->locale ) ) { |
|
195 | + |
|
196 | + // Locale information to be used - only those that are not 'Sort Code'. |
|
197 | + $this->locale = apply_filters( |
|
198 | + 'getpaid_get_bank_transfer_locale', |
|
199 | + array( |
|
200 | + 'AU' => array( |
|
201 | + 'sortcode' => array( |
|
202 | + 'label' => __( 'BSB', 'invoicing' ), |
|
203 | + ), |
|
204 | + ), |
|
205 | + 'CA' => array( |
|
206 | + 'sortcode' => array( |
|
207 | + 'label' => __( 'Bank transit number', 'invoicing' ), |
|
208 | + ), |
|
209 | + ), |
|
210 | + 'IN' => array( |
|
211 | + 'sortcode' => array( |
|
212 | + 'label' => __( 'IFSC', 'invoicing' ), |
|
213 | + ), |
|
214 | + ), |
|
215 | + 'IT' => array( |
|
216 | + 'sortcode' => array( |
|
217 | + 'label' => __( 'Branch sort', 'invoicing' ), |
|
218 | + ), |
|
219 | + ), |
|
220 | + 'NZ' => array( |
|
221 | + 'sortcode' => array( |
|
222 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
223 | + ), |
|
224 | + ), |
|
225 | + 'SE' => array( |
|
226 | + 'sortcode' => array( |
|
227 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
228 | + ), |
|
229 | + ), |
|
230 | + 'US' => array( |
|
231 | + 'sortcode' => array( |
|
232 | + 'label' => __( 'Routing number', 'invoicing' ), |
|
233 | + ), |
|
234 | + ), |
|
235 | + 'ZA' => array( |
|
236 | + 'sortcode' => array( |
|
237 | + 'label' => __( 'Branch code', 'invoicing' ), |
|
238 | + ), |
|
239 | + ), |
|
240 | + ) |
|
241 | + ); |
|
242 | + |
|
243 | + } |
|
244 | + |
|
245 | + return $this->locale; |
|
246 | + |
|
247 | + } |
|
248 | + |
|
249 | + /** |
|
250 | + * Filters the gateway settings. |
|
251 | + * |
|
252 | + * @param array $admin_settings |
|
253 | + */ |
|
254 | + public function admin_settings( $admin_settings ) { |
|
255 | 255 | |
256 | 256 | $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' ); |
257 | - $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
257 | + $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
258 | 258 | |
259 | - $locale = $this->get_country_locale(); |
|
259 | + $locale = $this->get_country_locale(); |
|
260 | 260 | |
261 | - // Get sortcode label in the $locale array and use appropriate one. |
|
262 | - $country = wpinv_default_billing_country(); |
|
263 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
261 | + // Get sortcode label in the $locale array and use appropriate one. |
|
262 | + $country = wpinv_default_billing_country(); |
|
263 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
264 | 264 | |
265 | - $admin_settings['bank_transfer_ac_name'] = array( |
|
265 | + $admin_settings['bank_transfer_ac_name'] = array( |
|
266 | 266 | 'type' => 'text', |
267 | 267 | 'id' => 'bank_transfer_ac_name', |
268 | 268 | 'name' => __( 'Account Name', 'invoicing' ), |
269 | - ); |
|
269 | + ); |
|
270 | 270 | |
271 | - $admin_settings['bank_transfer_ac_no'] = array( |
|
271 | + $admin_settings['bank_transfer_ac_no'] = array( |
|
272 | 272 | 'type' => 'text', |
273 | 273 | 'id' => 'bank_transfer_ac_no', |
274 | 274 | 'name' => __( 'Account Number', 'invoicing' ), |
275 | - ); |
|
275 | + ); |
|
276 | 276 | |
277 | - $admin_settings['bank_transfer_bank_name'] = array( |
|
277 | + $admin_settings['bank_transfer_bank_name'] = array( |
|
278 | 278 | 'type' => 'text', |
279 | 279 | 'id' => 'bank_transfer_bank_name', |
280 | 280 | 'name' => __( 'Bank Name', 'invoicing' ), |
281 | - ); |
|
281 | + ); |
|
282 | 282 | |
283 | - $admin_settings['bank_transfer_ifsc'] = array( |
|
283 | + $admin_settings['bank_transfer_ifsc'] = array( |
|
284 | 284 | 'type' => 'text', |
285 | 285 | 'id' => 'bank_transfer_ifsc', |
286 | 286 | 'name' => __( 'IFSC Code', 'invoicing' ), |
287 | - ); |
|
287 | + ); |
|
288 | 288 | |
289 | - $admin_settings['bank_transfer_iban'] = array( |
|
289 | + $admin_settings['bank_transfer_iban'] = array( |
|
290 | 290 | 'type' => 'text', |
291 | 291 | 'id' => 'bank_transfer_iban', |
292 | 292 | 'name' => __( 'IBAN', 'invoicing' ), |
293 | - ); |
|
293 | + ); |
|
294 | 294 | |
295 | - $admin_settings['bank_transfer_bic'] = array( |
|
295 | + $admin_settings['bank_transfer_bic'] = array( |
|
296 | 296 | 'type' => 'text', |
297 | 297 | 'id' => 'bank_transfer_bic', |
298 | 298 | 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
299 | - ); |
|
299 | + ); |
|
300 | 300 | |
301 | - $admin_settings['bank_transfer_sort_code'] = array( |
|
302 | - 'type' => 'text', |
|
303 | - 'id' => 'bank_transfer_sort_code', |
|
304 | - 'name' => $sortcode, |
|
305 | - ); |
|
301 | + $admin_settings['bank_transfer_sort_code'] = array( |
|
302 | + 'type' => 'text', |
|
303 | + 'id' => 'bank_transfer_sort_code', |
|
304 | + 'name' => $sortcode, |
|
305 | + ); |
|
306 | 306 | |
307 | - $admin_settings['bank_transfer_info'] = array( |
|
307 | + $admin_settings['bank_transfer_info'] = array( |
|
308 | 308 | 'id' => 'bank_transfer_info', |
309 | 309 | 'name' => __( 'Instructions', 'invoicing' ), |
310 | 310 | 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
@@ -314,17 +314,17 @@ discard block |
||
314 | 314 | 'rows' => 5, |
315 | 315 | ); |
316 | 316 | |
317 | - return $admin_settings; |
|
318 | - } |
|
317 | + return $admin_settings; |
|
318 | + } |
|
319 | 319 | |
320 | - /** |
|
321 | - * Processes invoice addons. |
|
322 | - * |
|
323 | - * @param WPInv_Invoice $invoice |
|
324 | - * @param GetPaid_Form_Item[] $items |
|
325 | - * @return WPInv_Invoice |
|
326 | - */ |
|
327 | - public function process_addons( $invoice, $items ) { |
|
320 | + /** |
|
321 | + * Processes invoice addons. |
|
322 | + * |
|
323 | + * @param WPInv_Invoice $invoice |
|
324 | + * @param GetPaid_Form_Item[] $items |
|
325 | + * @return WPInv_Invoice |
|
326 | + */ |
|
327 | + public function process_addons( $invoice, $items ) { |
|
328 | 328 | |
329 | 329 | foreach ( $items as $item ) { |
330 | 330 | $invoice->add_item( $item ); |
@@ -332,66 +332,66 @@ discard block |
||
332 | 332 | |
333 | 333 | $invoice->recalculate_total(); |
334 | 334 | $invoice->save(); |
335 | - } |
|
335 | + } |
|
336 | 336 | |
337 | - /** |
|
338 | - * (Maybe) renews a bank transfer subscription profile. |
|
339 | - * |
|
340 | - * |
|
337 | + /** |
|
338 | + * (Maybe) renews a bank transfer subscription profile. |
|
339 | + * |
|
340 | + * |
|
341 | 341 | * @param WPInv_Subscription $subscription |
342 | - */ |
|
343 | - public function maybe_renew_subscription( $subscription ) { |
|
342 | + */ |
|
343 | + public function maybe_renew_subscription( $subscription ) { |
|
344 | 344 | |
345 | 345 | // Ensure its our subscription && it's active. |
346 | 346 | if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
347 | - $subscription->create_payment(); |
|
347 | + $subscription->create_payment(); |
|
348 | 348 | } |
349 | 349 | |
350 | 350 | } |
351 | 351 | |
352 | - /** |
|
353 | - * Process a bank transfer payment. |
|
354 | - * |
|
355 | - * |
|
352 | + /** |
|
353 | + * Process a bank transfer payment. |
|
354 | + * |
|
355 | + * |
|
356 | 356 | * @param WPInv_Invoice $invoice |
357 | - */ |
|
358 | - public function invoice_paid( $invoice ) { |
|
359 | - |
|
360 | - // Abort if not paid by bank transfer. |
|
361 | - if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
362 | - return; |
|
363 | - } |
|
364 | - |
|
365 | - // Is it a parent payment? |
|
366 | - if ( 0 == $invoice->get_parent_id() ) { |
|
367 | - |
|
368 | - // (Maybe) activate subscriptions. |
|
369 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
370 | - |
|
371 | - if ( ! empty( $subscriptions ) ) { |
|
372 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
373 | - |
|
374 | - foreach ( $subscriptions as $subscription ) { |
|
375 | - if ( $subscription->exists() ) { |
|
376 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
377 | - $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
378 | - |
|
379 | - $subscription->set_next_renewal_date( $expiry ); |
|
380 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
381 | - $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
382 | - $subscription->activate(); |
|
383 | - } |
|
384 | - } |
|
357 | + */ |
|
358 | + public function invoice_paid( $invoice ) { |
|
359 | + |
|
360 | + // Abort if not paid by bank transfer. |
|
361 | + if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
362 | + return; |
|
363 | + } |
|
364 | + |
|
365 | + // Is it a parent payment? |
|
366 | + if ( 0 == $invoice->get_parent_id() ) { |
|
367 | + |
|
368 | + // (Maybe) activate subscriptions. |
|
369 | + $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
370 | + |
|
371 | + if ( ! empty( $subscriptions ) ) { |
|
372 | + $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
373 | + |
|
374 | + foreach ( $subscriptions as $subscription ) { |
|
375 | + if ( $subscription->exists() ) { |
|
376 | + $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
377 | + $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
378 | + |
|
379 | + $subscription->set_next_renewal_date( $expiry ); |
|
380 | + $subscription->set_date_created( current_time( 'mysql' ) ); |
|
381 | + $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
382 | + $subscription->activate(); |
|
383 | + } |
|
384 | + } |
|
385 | 385 | } |
386 | 386 | } else { |
387 | 387 | |
388 | - $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
388 | + $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
389 | 389 | |
390 | - // Renew the subscription. |
|
391 | - if ( $subscription && $subscription->exists() ) { |
|
392 | - $subscription->add_payment( array(), $invoice ); |
|
393 | - $subscription->renew(); |
|
394 | - } |
|
390 | + // Renew the subscription. |
|
391 | + if ( $subscription && $subscription->exists() ) { |
|
392 | + $subscription->add_payment( array(), $invoice ); |
|
393 | + $subscription->renew(); |
|
394 | + } |
|
395 | 395 | } |
396 | 396 | |
397 | 397 | } |
@@ -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' ); |
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 ); |
@@ -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,34 +141,34 @@ 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 | - wp_cache_delete( $this->get_parent_payment_id(), 'getpaid_subscription_parent_payment_ids_to_subscription_ids' ); |
|
159 | - wp_cache_delete( $this->get_transaction_id(), 'getpaid_subscription_transaction_ids_to_subscription_ids' ); |
|
160 | - wp_cache_delete( $this->get_profile_id(), 'getpaid_subscription_profile_ids_to_subscription_ids' ); |
|
161 | - wp_cache_delete( $this->get_id(), 'getpaid_subscriptions' ); |
|
162 | - } |
|
158 | + wp_cache_delete( $this->get_parent_payment_id(), 'getpaid_subscription_parent_payment_ids_to_subscription_ids' ); |
|
159 | + wp_cache_delete( $this->get_transaction_id(), 'getpaid_subscription_transaction_ids_to_subscription_ids' ); |
|
160 | + wp_cache_delete( $this->get_profile_id(), 'getpaid_subscription_profile_ids_to_subscription_ids' ); |
|
161 | + wp_cache_delete( $this->get_id(), 'getpaid_subscriptions' ); |
|
162 | + } |
|
163 | 163 | |
164 | - /** |
|
164 | + /** |
|
165 | 165 | * Checks if a subscription key is set. |
166 | 166 | */ |
167 | 167 | public function _isset( $key ) { |
168 | 168 | return isset( $this->data[ $key ] ) || method_exists( $this, "get_$key" ); |
169 | - } |
|
169 | + } |
|
170 | 170 | |
171 | - /* |
|
171 | + /* |
|
172 | 172 | |-------------------------------------------------------------------------- |
173 | 173 | | CRUD methods |
174 | 174 | |-------------------------------------------------------------------------- |
@@ -177,57 +177,57 @@ discard block |
||
177 | 177 | | |
178 | 178 | */ |
179 | 179 | |
180 | - /* |
|
180 | + /* |
|
181 | 181 | |-------------------------------------------------------------------------- |
182 | 182 | | Getters |
183 | 183 | |-------------------------------------------------------------------------- |
184 | 184 | */ |
185 | 185 | |
186 | - /** |
|
187 | - * Get customer id. |
|
188 | - * |
|
189 | - * @since 1.0.19 |
|
190 | - * @param string $context View or edit context. |
|
191 | - * @return int |
|
192 | - */ |
|
193 | - public function get_customer_id( $context = 'view' ) { |
|
194 | - return (int) $this->get_prop( 'customer_id', $context ); |
|
195 | - } |
|
196 | - |
|
197 | - /** |
|
198 | - * Get customer information. |
|
199 | - * |
|
200 | - * @since 1.0.19 |
|
201 | - * @param string $context View or edit context. |
|
202 | - * @return WP_User|false WP_User object on success, false on failure. |
|
203 | - */ |
|
204 | - public function get_customer( $context = 'view' ) { |
|
205 | - return get_userdata( $this->get_customer_id( $context ) ); |
|
206 | - } |
|
207 | - |
|
208 | - /** |
|
209 | - * Get parent invoice id. |
|
210 | - * |
|
211 | - * @since 1.0.19 |
|
212 | - * @param string $context View or edit context. |
|
213 | - * @return int |
|
214 | - */ |
|
215 | - public function get_parent_invoice_id( $context = 'view' ) { |
|
216 | - return (int) $this->get_prop( 'parent_payment_id', $context ); |
|
217 | - } |
|
218 | - |
|
219 | - /** |
|
220 | - * Alias for self::get_parent_invoice_id(). |
|
221 | - * |
|
222 | - * @since 1.0.19 |
|
223 | - * @param string $context View or edit context. |
|
224 | - * @return int |
|
225 | - */ |
|
186 | + /** |
|
187 | + * Get customer id. |
|
188 | + * |
|
189 | + * @since 1.0.19 |
|
190 | + * @param string $context View or edit context. |
|
191 | + * @return int |
|
192 | + */ |
|
193 | + public function get_customer_id( $context = 'view' ) { |
|
194 | + return (int) $this->get_prop( 'customer_id', $context ); |
|
195 | + } |
|
196 | + |
|
197 | + /** |
|
198 | + * Get customer information. |
|
199 | + * |
|
200 | + * @since 1.0.19 |
|
201 | + * @param string $context View or edit context. |
|
202 | + * @return WP_User|false WP_User object on success, false on failure. |
|
203 | + */ |
|
204 | + public function get_customer( $context = 'view' ) { |
|
205 | + return get_userdata( $this->get_customer_id( $context ) ); |
|
206 | + } |
|
207 | + |
|
208 | + /** |
|
209 | + * Get parent invoice id. |
|
210 | + * |
|
211 | + * @since 1.0.19 |
|
212 | + * @param string $context View or edit context. |
|
213 | + * @return int |
|
214 | + */ |
|
215 | + public function get_parent_invoice_id( $context = 'view' ) { |
|
216 | + return (int) $this->get_prop( 'parent_payment_id', $context ); |
|
217 | + } |
|
218 | + |
|
219 | + /** |
|
220 | + * Alias for self::get_parent_invoice_id(). |
|
221 | + * |
|
222 | + * @since 1.0.19 |
|
223 | + * @param string $context View or edit context. |
|
224 | + * @return int |
|
225 | + */ |
|
226 | 226 | public function get_parent_payment_id( $context = 'view' ) { |
227 | 227 | return $this->get_parent_invoice_id( $context ); |
228 | - } |
|
228 | + } |
|
229 | 229 | |
230 | - /** |
|
230 | + /** |
|
231 | 231 | * Alias for self::get_parent_invoice_id(). |
232 | 232 | * |
233 | 233 | * @since 1.0.0 |
@@ -237,484 +237,484 @@ discard block |
||
237 | 237 | return $this->get_parent_invoice_id( $context ); |
238 | 238 | } |
239 | 239 | |
240 | - /** |
|
241 | - * Get parent invoice. |
|
242 | - * |
|
243 | - * @since 1.0.19 |
|
244 | - * @param string $context View or edit context. |
|
245 | - * @return WPInv_Invoice |
|
246 | - */ |
|
247 | - public function get_parent_invoice( $context = 'view' ) { |
|
248 | - return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) ); |
|
249 | - } |
|
250 | - |
|
251 | - /** |
|
252 | - * Alias for self::get_parent_invoice(). |
|
253 | - * |
|
254 | - * @since 1.0.19 |
|
255 | - * @param string $context View or edit context. |
|
256 | - * @return WPInv_Invoice |
|
257 | - */ |
|
258 | - public function get_parent_payment( $context = 'view' ) { |
|
259 | - return $this->get_parent_invoice( $context ); |
|
260 | - } |
|
261 | - |
|
262 | - /** |
|
263 | - * Get subscription's product id. |
|
264 | - * |
|
265 | - * @since 1.0.19 |
|
266 | - * @param string $context View or edit context. |
|
267 | - * @return int |
|
268 | - */ |
|
269 | - public function get_product_id( $context = 'view' ) { |
|
270 | - return (int) $this->get_prop( 'product_id', $context ); |
|
271 | - } |
|
272 | - |
|
273 | - /** |
|
274 | - * Get the subscription product. |
|
275 | - * |
|
276 | - * @since 1.0.19 |
|
277 | - * @param string $context View or edit context. |
|
278 | - * @return WPInv_Item |
|
279 | - */ |
|
280 | - public function get_product( $context = 'view' ) { |
|
281 | - return new WPInv_Item( $this->get_product_id( $context ) ); |
|
282 | - } |
|
283 | - |
|
284 | - /** |
|
285 | - * Get parent invoice's gateway. |
|
286 | - * |
|
287 | - * Here for backwards compatibility. |
|
288 | - * |
|
289 | - * @since 1.0.19 |
|
290 | - * @param string $context View or edit context. |
|
291 | - * @return string |
|
292 | - */ |
|
293 | - public function get_gateway( $context = 'view' ) { |
|
294 | - return $this->get_parent_invoice( $context )->get_gateway(); |
|
295 | - } |
|
296 | - |
|
297 | - /** |
|
298 | - * Get the period of a renewal. |
|
299 | - * |
|
300 | - * @since 1.0.19 |
|
301 | - * @param string $context View or edit context. |
|
302 | - * @return string |
|
303 | - */ |
|
304 | - public function get_period( $context = 'view' ) { |
|
305 | - return $this->get_prop( 'period', $context ); |
|
306 | - } |
|
307 | - |
|
308 | - /** |
|
309 | - * Get number of periods each renewal is valid for. |
|
310 | - * |
|
311 | - * @since 1.0.19 |
|
312 | - * @param string $context View or edit context. |
|
313 | - * @return int |
|
314 | - */ |
|
315 | - public function get_frequency( $context = 'view' ) { |
|
316 | - return (int) $this->get_prop( 'frequency', $context ); |
|
317 | - } |
|
318 | - |
|
319 | - /** |
|
320 | - * Get the initial amount for the subscription. |
|
321 | - * |
|
322 | - * @since 1.0.19 |
|
323 | - * @param string $context View or edit context. |
|
324 | - * @return float |
|
325 | - */ |
|
326 | - public function get_initial_amount( $context = 'view' ) { |
|
327 | - return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) ); |
|
328 | - } |
|
329 | - |
|
330 | - /** |
|
331 | - * Get the recurring amount for the subscription. |
|
332 | - * |
|
333 | - * @since 1.0.19 |
|
334 | - * @param string $context View or edit context. |
|
335 | - * @return float |
|
336 | - */ |
|
337 | - public function get_recurring_amount( $context = 'view' ) { |
|
338 | - return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) ); |
|
339 | - } |
|
340 | - |
|
341 | - /** |
|
342 | - * Get number of times that this subscription can be renewed. |
|
343 | - * |
|
344 | - * @since 1.0.19 |
|
345 | - * @param string $context View or edit context. |
|
346 | - * @return int |
|
347 | - */ |
|
348 | - public function get_bill_times( $context = 'view' ) { |
|
349 | - return (int) $this->get_prop( 'bill_times', $context ); |
|
350 | - } |
|
351 | - |
|
352 | - /** |
|
353 | - * Get transaction id of this subscription's parent invoice. |
|
354 | - * |
|
355 | - * @since 1.0.19 |
|
356 | - * @param string $context View or edit context. |
|
357 | - * @return string |
|
358 | - */ |
|
359 | - public function get_transaction_id( $context = 'view' ) { |
|
360 | - return $this->get_prop( 'transaction_id', $context ); |
|
361 | - } |
|
362 | - |
|
363 | - /** |
|
364 | - * Get the date that the subscription was created. |
|
365 | - * |
|
366 | - * @since 1.0.19 |
|
367 | - * @param string $context View or edit context. |
|
368 | - * @return string |
|
369 | - */ |
|
370 | - public function get_created( $context = 'view' ) { |
|
371 | - return $this->get_prop( 'created', $context ); |
|
372 | - } |
|
373 | - |
|
374 | - /** |
|
375 | - * Alias for self::get_created(). |
|
376 | - * |
|
377 | - * @since 1.0.19 |
|
378 | - * @param string $context View or edit context. |
|
379 | - * @return string |
|
380 | - */ |
|
381 | - public function get_date_created( $context = 'view' ) { |
|
382 | - return $this->get_created( $context ); |
|
383 | - } |
|
384 | - |
|
385 | - /** |
|
386 | - * Retrieves the creation date in a timestamp |
|
387 | - * |
|
388 | - * @since 1.0.0 |
|
389 | - * @return int |
|
390 | - */ |
|
391 | - public function get_time_created() { |
|
392 | - $created = $this->get_date_created(); |
|
393 | - return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) ); |
|
394 | - } |
|
395 | - |
|
396 | - /** |
|
397 | - * Get GMT date when the subscription was created. |
|
398 | - * |
|
399 | - * @since 1.0.19 |
|
400 | - * @param string $context View or edit context. |
|
401 | - * @return string |
|
402 | - */ |
|
403 | - public function get_date_created_gmt( $context = 'view' ) { |
|
404 | - $date = $this->get_date_created( $context ); |
|
240 | + /** |
|
241 | + * Get parent invoice. |
|
242 | + * |
|
243 | + * @since 1.0.19 |
|
244 | + * @param string $context View or edit context. |
|
245 | + * @return WPInv_Invoice |
|
246 | + */ |
|
247 | + public function get_parent_invoice( $context = 'view' ) { |
|
248 | + return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) ); |
|
249 | + } |
|
250 | + |
|
251 | + /** |
|
252 | + * Alias for self::get_parent_invoice(). |
|
253 | + * |
|
254 | + * @since 1.0.19 |
|
255 | + * @param string $context View or edit context. |
|
256 | + * @return WPInv_Invoice |
|
257 | + */ |
|
258 | + public function get_parent_payment( $context = 'view' ) { |
|
259 | + return $this->get_parent_invoice( $context ); |
|
260 | + } |
|
261 | + |
|
262 | + /** |
|
263 | + * Get subscription's product id. |
|
264 | + * |
|
265 | + * @since 1.0.19 |
|
266 | + * @param string $context View or edit context. |
|
267 | + * @return int |
|
268 | + */ |
|
269 | + public function get_product_id( $context = 'view' ) { |
|
270 | + return (int) $this->get_prop( 'product_id', $context ); |
|
271 | + } |
|
272 | + |
|
273 | + /** |
|
274 | + * Get the subscription product. |
|
275 | + * |
|
276 | + * @since 1.0.19 |
|
277 | + * @param string $context View or edit context. |
|
278 | + * @return WPInv_Item |
|
279 | + */ |
|
280 | + public function get_product( $context = 'view' ) { |
|
281 | + return new WPInv_Item( $this->get_product_id( $context ) ); |
|
282 | + } |
|
283 | + |
|
284 | + /** |
|
285 | + * Get parent invoice's gateway. |
|
286 | + * |
|
287 | + * Here for backwards compatibility. |
|
288 | + * |
|
289 | + * @since 1.0.19 |
|
290 | + * @param string $context View or edit context. |
|
291 | + * @return string |
|
292 | + */ |
|
293 | + public function get_gateway( $context = 'view' ) { |
|
294 | + return $this->get_parent_invoice( $context )->get_gateway(); |
|
295 | + } |
|
296 | + |
|
297 | + /** |
|
298 | + * Get the period of a renewal. |
|
299 | + * |
|
300 | + * @since 1.0.19 |
|
301 | + * @param string $context View or edit context. |
|
302 | + * @return string |
|
303 | + */ |
|
304 | + public function get_period( $context = 'view' ) { |
|
305 | + return $this->get_prop( 'period', $context ); |
|
306 | + } |
|
307 | + |
|
308 | + /** |
|
309 | + * Get number of periods each renewal is valid for. |
|
310 | + * |
|
311 | + * @since 1.0.19 |
|
312 | + * @param string $context View or edit context. |
|
313 | + * @return int |
|
314 | + */ |
|
315 | + public function get_frequency( $context = 'view' ) { |
|
316 | + return (int) $this->get_prop( 'frequency', $context ); |
|
317 | + } |
|
318 | + |
|
319 | + /** |
|
320 | + * Get the initial amount for the subscription. |
|
321 | + * |
|
322 | + * @since 1.0.19 |
|
323 | + * @param string $context View or edit context. |
|
324 | + * @return float |
|
325 | + */ |
|
326 | + public function get_initial_amount( $context = 'view' ) { |
|
327 | + return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) ); |
|
328 | + } |
|
329 | + |
|
330 | + /** |
|
331 | + * Get the recurring amount for the subscription. |
|
332 | + * |
|
333 | + * @since 1.0.19 |
|
334 | + * @param string $context View or edit context. |
|
335 | + * @return float |
|
336 | + */ |
|
337 | + public function get_recurring_amount( $context = 'view' ) { |
|
338 | + return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) ); |
|
339 | + } |
|
340 | + |
|
341 | + /** |
|
342 | + * Get number of times that this subscription can be renewed. |
|
343 | + * |
|
344 | + * @since 1.0.19 |
|
345 | + * @param string $context View or edit context. |
|
346 | + * @return int |
|
347 | + */ |
|
348 | + public function get_bill_times( $context = 'view' ) { |
|
349 | + return (int) $this->get_prop( 'bill_times', $context ); |
|
350 | + } |
|
351 | + |
|
352 | + /** |
|
353 | + * Get transaction id of this subscription's parent invoice. |
|
354 | + * |
|
355 | + * @since 1.0.19 |
|
356 | + * @param string $context View or edit context. |
|
357 | + * @return string |
|
358 | + */ |
|
359 | + public function get_transaction_id( $context = 'view' ) { |
|
360 | + return $this->get_prop( 'transaction_id', $context ); |
|
361 | + } |
|
362 | + |
|
363 | + /** |
|
364 | + * Get the date that the subscription was created. |
|
365 | + * |
|
366 | + * @since 1.0.19 |
|
367 | + * @param string $context View or edit context. |
|
368 | + * @return string |
|
369 | + */ |
|
370 | + public function get_created( $context = 'view' ) { |
|
371 | + return $this->get_prop( 'created', $context ); |
|
372 | + } |
|
373 | + |
|
374 | + /** |
|
375 | + * Alias for self::get_created(). |
|
376 | + * |
|
377 | + * @since 1.0.19 |
|
378 | + * @param string $context View or edit context. |
|
379 | + * @return string |
|
380 | + */ |
|
381 | + public function get_date_created( $context = 'view' ) { |
|
382 | + return $this->get_created( $context ); |
|
383 | + } |
|
384 | + |
|
385 | + /** |
|
386 | + * Retrieves the creation date in a timestamp |
|
387 | + * |
|
388 | + * @since 1.0.0 |
|
389 | + * @return int |
|
390 | + */ |
|
391 | + public function get_time_created() { |
|
392 | + $created = $this->get_date_created(); |
|
393 | + return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) ); |
|
394 | + } |
|
395 | + |
|
396 | + /** |
|
397 | + * Get GMT date when the subscription was created. |
|
398 | + * |
|
399 | + * @since 1.0.19 |
|
400 | + * @param string $context View or edit context. |
|
401 | + * @return string |
|
402 | + */ |
|
403 | + public function get_date_created_gmt( $context = 'view' ) { |
|
404 | + $date = $this->get_date_created( $context ); |
|
405 | + |
|
406 | + if ( $date ) { |
|
407 | + $date = get_gmt_from_date( $date ); |
|
408 | + } |
|
409 | + return $date; |
|
410 | + } |
|
411 | + |
|
412 | + /** |
|
413 | + * Get the date that the subscription will renew. |
|
414 | + * |
|
415 | + * @since 1.0.19 |
|
416 | + * @param string $context View or edit context. |
|
417 | + * @return string |
|
418 | + */ |
|
419 | + public function get_next_renewal_date( $context = 'view' ) { |
|
420 | + return $this->get_prop( 'expiration', $context ); |
|
421 | + } |
|
422 | + |
|
423 | + /** |
|
424 | + * Alias for self::get_next_renewal_date(). |
|
425 | + * |
|
426 | + * @since 1.0.19 |
|
427 | + * @param string $context View or edit context. |
|
428 | + * @return string |
|
429 | + */ |
|
430 | + public function get_expiration( $context = 'view' ) { |
|
431 | + return $this->get_next_renewal_date( $context ); |
|
432 | + } |
|
433 | + |
|
434 | + /** |
|
435 | + * Retrieves the expiration date in a timestamp |
|
436 | + * |
|
437 | + * @since 1.0.0 |
|
438 | + * @return int |
|
439 | + */ |
|
440 | + public function get_expiration_time() { |
|
441 | + $expiration = $this->get_expiration(); |
|
442 | + |
|
443 | + if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) { |
|
444 | + return current_time( 'timestamp' ); |
|
445 | + } |
|
446 | + |
|
447 | + $expiration = strtotime( $expiration, current_time( 'timestamp' ) ); |
|
448 | + return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration; |
|
449 | + } |
|
450 | + |
|
451 | + /** |
|
452 | + * Get GMT date when the subscription will renew. |
|
453 | + * |
|
454 | + * @since 1.0.19 |
|
455 | + * @param string $context View or edit context. |
|
456 | + * @return string |
|
457 | + */ |
|
458 | + public function get_next_renewal_date_gmt( $context = 'view' ) { |
|
459 | + $date = $this->get_next_renewal_date( $context ); |
|
460 | + |
|
461 | + if ( $date ) { |
|
462 | + $date = get_gmt_from_date( $date ); |
|
463 | + } |
|
464 | + return $date; |
|
465 | + } |
|
466 | + |
|
467 | + /** |
|
468 | + * Get the subscription's trial period. |
|
469 | + * |
|
470 | + * @since 1.0.19 |
|
471 | + * @param string $context View or edit context. |
|
472 | + * @return string |
|
473 | + */ |
|
474 | + public function get_trial_period( $context = 'view' ) { |
|
475 | + return $this->get_prop( 'trial_period', $context ); |
|
476 | + } |
|
477 | + |
|
478 | + /** |
|
479 | + * Get the subscription's status. |
|
480 | + * |
|
481 | + * @since 1.0.19 |
|
482 | + * @param string $context View or edit context. |
|
483 | + * @return string |
|
484 | + */ |
|
485 | + public function get_status( $context = 'view' ) { |
|
486 | + return $this->get_prop( 'status', $context ); |
|
487 | + } |
|
488 | + |
|
489 | + /** |
|
490 | + * Get the subscription's profile id. |
|
491 | + * |
|
492 | + * @since 1.0.19 |
|
493 | + * @param string $context View or edit context. |
|
494 | + * @return string |
|
495 | + */ |
|
496 | + public function get_profile_id( $context = 'view' ) { |
|
497 | + return $this->get_prop( 'profile_id', $context ); |
|
498 | + } |
|
499 | + |
|
500 | + /* |
|
501 | + |-------------------------------------------------------------------------- |
|
502 | + | Setters |
|
503 | + |-------------------------------------------------------------------------- |
|
504 | + */ |
|
505 | + |
|
506 | + /** |
|
507 | + * Set customer id. |
|
508 | + * |
|
509 | + * @since 1.0.19 |
|
510 | + * @param int $value The customer's id. |
|
511 | + */ |
|
512 | + public function set_customer_id( $value ) { |
|
513 | + $this->set_prop( 'customer_id', (int) $value ); |
|
514 | + } |
|
515 | + |
|
516 | + /** |
|
517 | + * Set parent invoice id. |
|
518 | + * |
|
519 | + * @since 1.0.19 |
|
520 | + * @param int $value The parent invoice id. |
|
521 | + */ |
|
522 | + public function set_parent_invoice_id( $value ) { |
|
523 | + $this->set_prop( 'parent_payment_id', (int) $value ); |
|
524 | + } |
|
525 | + |
|
526 | + /** |
|
527 | + * Alias for self::set_parent_invoice_id(). |
|
528 | + * |
|
529 | + * @since 1.0.19 |
|
530 | + * @param int $value The parent invoice id. |
|
531 | + */ |
|
532 | + public function set_parent_payment_id( $value ) { |
|
533 | + $this->set_parent_invoice_id( $value ); |
|
534 | + } |
|
535 | + |
|
536 | + /** |
|
537 | + * Alias for self::set_parent_invoice_id(). |
|
538 | + * |
|
539 | + * @since 1.0.19 |
|
540 | + * @param int $value The parent invoice id. |
|
541 | + */ |
|
542 | + public function set_original_payment_id( $value ) { |
|
543 | + $this->set_parent_invoice_id( $value ); |
|
544 | + } |
|
545 | + |
|
546 | + /** |
|
547 | + * Set subscription's product id. |
|
548 | + * |
|
549 | + * @since 1.0.19 |
|
550 | + * @param int $value The subscription product id. |
|
551 | + */ |
|
552 | + public function set_product_id( $value ) { |
|
553 | + $this->set_prop( 'product_id', (int) $value ); |
|
554 | + } |
|
555 | + |
|
556 | + /** |
|
557 | + * Set the period of a renewal. |
|
558 | + * |
|
559 | + * @since 1.0.19 |
|
560 | + * @param string $value The renewal period. |
|
561 | + */ |
|
562 | + public function set_period( $value ) { |
|
563 | + $this->set_prop( 'period', $value ); |
|
564 | + } |
|
565 | + |
|
566 | + /** |
|
567 | + * Set number of periods each renewal is valid for. |
|
568 | + * |
|
569 | + * @since 1.0.19 |
|
570 | + * @param int $value The subscription frequency. |
|
571 | + */ |
|
572 | + public function set_frequency( $value ) { |
|
573 | + $value = empty( $value ) ? 1 : (int) $value; |
|
574 | + $this->set_prop( 'frequency', absint( $value ) ); |
|
575 | + } |
|
576 | + |
|
577 | + /** |
|
578 | + * Set the initial amount for the subscription. |
|
579 | + * |
|
580 | + * @since 1.0.19 |
|
581 | + * @param float $value The initial subcription amount. |
|
582 | + */ |
|
583 | + public function set_initial_amount( $value ) { |
|
584 | + $this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) ); |
|
585 | + } |
|
586 | + |
|
587 | + /** |
|
588 | + * Set the recurring amount for the subscription. |
|
589 | + * |
|
590 | + * @since 1.0.19 |
|
591 | + * @param float $value The recurring subcription amount. |
|
592 | + */ |
|
593 | + public function set_recurring_amount( $value ) { |
|
594 | + $this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) ); |
|
595 | + } |
|
596 | + |
|
597 | + /** |
|
598 | + * Set number of times that this subscription can be renewed. |
|
599 | + * |
|
600 | + * @since 1.0.19 |
|
601 | + * @param int $value Bill times. |
|
602 | + */ |
|
603 | + public function set_bill_times( $value ) { |
|
604 | + $this->set_prop( 'bill_times', (int) $value ); |
|
605 | + } |
|
606 | + |
|
607 | + /** |
|
608 | + * Get transaction id of this subscription's parent invoice. |
|
609 | + * |
|
610 | + * @since 1.0.19 |
|
611 | + * @param string $value Bill times. |
|
612 | + */ |
|
613 | + public function set_transaction_id( $value ) { |
|
614 | + $this->set_prop( 'transaction_id', sanitize_text_field( $value ) ); |
|
615 | + } |
|
616 | + |
|
617 | + /** |
|
618 | + * Set date when this subscription started. |
|
619 | + * |
|
620 | + * @since 1.0.19 |
|
621 | + * @param string $value strtotime compliant date. |
|
622 | + */ |
|
623 | + public function set_created( $value ) { |
|
624 | + $date = strtotime( $value ); |
|
405 | 625 | |
406 | - if ( $date ) { |
|
407 | - $date = get_gmt_from_date( $date ); |
|
626 | + if ( $date && $value !== '0000-00-00 00:00:00' ) { |
|
627 | + $this->set_prop( 'created', date( 'Y-m-d H:i:s', $date ) ); |
|
628 | + return; |
|
408 | 629 | } |
409 | - return $date; |
|
410 | - } |
|
411 | - |
|
412 | - /** |
|
413 | - * Get the date that the subscription will renew. |
|
414 | - * |
|
415 | - * @since 1.0.19 |
|
416 | - * @param string $context View or edit context. |
|
417 | - * @return string |
|
418 | - */ |
|
419 | - public function get_next_renewal_date( $context = 'view' ) { |
|
420 | - return $this->get_prop( 'expiration', $context ); |
|
421 | - } |
|
422 | - |
|
423 | - /** |
|
424 | - * Alias for self::get_next_renewal_date(). |
|
425 | - * |
|
426 | - * @since 1.0.19 |
|
427 | - * @param string $context View or edit context. |
|
428 | - * @return string |
|
429 | - */ |
|
430 | - public function get_expiration( $context = 'view' ) { |
|
431 | - return $this->get_next_renewal_date( $context ); |
|
432 | - } |
|
433 | - |
|
434 | - /** |
|
435 | - * Retrieves the expiration date in a timestamp |
|
436 | - * |
|
437 | - * @since 1.0.0 |
|
438 | - * @return int |
|
439 | - */ |
|
440 | - public function get_expiration_time() { |
|
441 | - $expiration = $this->get_expiration(); |
|
442 | - |
|
443 | - if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) { |
|
444 | - return current_time( 'timestamp' ); |
|
445 | - } |
|
446 | - |
|
447 | - $expiration = strtotime( $expiration, current_time( 'timestamp' ) ); |
|
448 | - return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration; |
|
449 | - } |
|
450 | - |
|
451 | - /** |
|
452 | - * Get GMT date when the subscription will renew. |
|
453 | - * |
|
454 | - * @since 1.0.19 |
|
455 | - * @param string $context View or edit context. |
|
456 | - * @return string |
|
457 | - */ |
|
458 | - public function get_next_renewal_date_gmt( $context = 'view' ) { |
|
459 | - $date = $this->get_next_renewal_date( $context ); |
|
460 | 630 | |
461 | - if ( $date ) { |
|
462 | - $date = get_gmt_from_date( $date ); |
|
463 | - } |
|
464 | - return $date; |
|
465 | - } |
|
466 | - |
|
467 | - /** |
|
468 | - * Get the subscription's trial period. |
|
469 | - * |
|
470 | - * @since 1.0.19 |
|
471 | - * @param string $context View or edit context. |
|
472 | - * @return string |
|
473 | - */ |
|
474 | - public function get_trial_period( $context = 'view' ) { |
|
475 | - return $this->get_prop( 'trial_period', $context ); |
|
476 | - } |
|
477 | - |
|
478 | - /** |
|
479 | - * Get the subscription's status. |
|
480 | - * |
|
481 | - * @since 1.0.19 |
|
482 | - * @param string $context View or edit context. |
|
483 | - * @return string |
|
484 | - */ |
|
485 | - public function get_status( $context = 'view' ) { |
|
486 | - return $this->get_prop( 'status', $context ); |
|
487 | - } |
|
488 | - |
|
489 | - /** |
|
490 | - * Get the subscription's profile id. |
|
491 | - * |
|
492 | - * @since 1.0.19 |
|
493 | - * @param string $context View or edit context. |
|
494 | - * @return string |
|
495 | - */ |
|
496 | - public function get_profile_id( $context = 'view' ) { |
|
497 | - return $this->get_prop( 'profile_id', $context ); |
|
498 | - } |
|
499 | - |
|
500 | - /* |
|
501 | - |-------------------------------------------------------------------------- |
|
502 | - | Setters |
|
503 | - |-------------------------------------------------------------------------- |
|
504 | - */ |
|
631 | + $this->set_prop( 'created', '' ); |
|
505 | 632 | |
506 | - /** |
|
507 | - * Set customer id. |
|
508 | - * |
|
509 | - * @since 1.0.19 |
|
510 | - * @param int $value The customer's id. |
|
511 | - */ |
|
512 | - public function set_customer_id( $value ) { |
|
513 | - $this->set_prop( 'customer_id', (int) $value ); |
|
514 | - } |
|
515 | - |
|
516 | - /** |
|
517 | - * Set parent invoice id. |
|
518 | - * |
|
519 | - * @since 1.0.19 |
|
520 | - * @param int $value The parent invoice id. |
|
521 | - */ |
|
522 | - public function set_parent_invoice_id( $value ) { |
|
523 | - $this->set_prop( 'parent_payment_id', (int) $value ); |
|
524 | - } |
|
525 | - |
|
526 | - /** |
|
527 | - * Alias for self::set_parent_invoice_id(). |
|
528 | - * |
|
529 | - * @since 1.0.19 |
|
530 | - * @param int $value The parent invoice id. |
|
531 | - */ |
|
532 | - public function set_parent_payment_id( $value ) { |
|
533 | - $this->set_parent_invoice_id( $value ); |
|
534 | - } |
|
633 | + } |
|
535 | 634 | |
536 | - /** |
|
537 | - * Alias for self::set_parent_invoice_id(). |
|
635 | + /** |
|
636 | + * Alias for self::set_created(). |
|
538 | 637 | * |
539 | 638 | * @since 1.0.19 |
540 | - * @param int $value The parent invoice id. |
|
639 | + * @param string $value strtotime compliant date. |
|
541 | 640 | */ |
542 | - public function set_original_payment_id( $value ) { |
|
543 | - $this->set_parent_invoice_id( $value ); |
|
544 | - } |
|
545 | - |
|
546 | - /** |
|
547 | - * Set subscription's product id. |
|
548 | - * |
|
549 | - * @since 1.0.19 |
|
550 | - * @param int $value The subscription product id. |
|
551 | - */ |
|
552 | - public function set_product_id( $value ) { |
|
553 | - $this->set_prop( 'product_id', (int) $value ); |
|
554 | - } |
|
555 | - |
|
556 | - /** |
|
557 | - * Set the period of a renewal. |
|
558 | - * |
|
559 | - * @since 1.0.19 |
|
560 | - * @param string $value The renewal period. |
|
561 | - */ |
|
562 | - public function set_period( $value ) { |
|
563 | - $this->set_prop( 'period', $value ); |
|
564 | - } |
|
565 | - |
|
566 | - /** |
|
567 | - * Set number of periods each renewal is valid for. |
|
568 | - * |
|
569 | - * @since 1.0.19 |
|
570 | - * @param int $value The subscription frequency. |
|
571 | - */ |
|
572 | - public function set_frequency( $value ) { |
|
573 | - $value = empty( $value ) ? 1 : (int) $value; |
|
574 | - $this->set_prop( 'frequency', absint( $value ) ); |
|
575 | - } |
|
576 | - |
|
577 | - /** |
|
578 | - * Set the initial amount for the subscription. |
|
579 | - * |
|
580 | - * @since 1.0.19 |
|
581 | - * @param float $value The initial subcription amount. |
|
582 | - */ |
|
583 | - public function set_initial_amount( $value ) { |
|
584 | - $this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) ); |
|
585 | - } |
|
586 | - |
|
587 | - /** |
|
588 | - * Set the recurring amount for the subscription. |
|
589 | - * |
|
590 | - * @since 1.0.19 |
|
591 | - * @param float $value The recurring subcription amount. |
|
592 | - */ |
|
593 | - public function set_recurring_amount( $value ) { |
|
594 | - $this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) ); |
|
595 | - } |
|
596 | - |
|
597 | - /** |
|
598 | - * Set number of times that this subscription can be renewed. |
|
599 | - * |
|
600 | - * @since 1.0.19 |
|
601 | - * @param int $value Bill times. |
|
602 | - */ |
|
603 | - public function set_bill_times( $value ) { |
|
604 | - $this->set_prop( 'bill_times', (int) $value ); |
|
605 | - } |
|
606 | - |
|
607 | - /** |
|
608 | - * Get transaction id of this subscription's parent invoice. |
|
609 | - * |
|
610 | - * @since 1.0.19 |
|
611 | - * @param string $value Bill times. |
|
612 | - */ |
|
613 | - public function set_transaction_id( $value ) { |
|
614 | - $this->set_prop( 'transaction_id', sanitize_text_field( $value ) ); |
|
615 | - } |
|
616 | - |
|
617 | - /** |
|
618 | - * Set date when this subscription started. |
|
619 | - * |
|
620 | - * @since 1.0.19 |
|
621 | - * @param string $value strtotime compliant date. |
|
622 | - */ |
|
623 | - public function set_created( $value ) { |
|
641 | + public function set_date_created( $value ) { |
|
642 | + $this->set_created( $value ); |
|
643 | + } |
|
644 | + |
|
645 | + /** |
|
646 | + * Set the date that the subscription will renew. |
|
647 | + * |
|
648 | + * @since 1.0.19 |
|
649 | + * @param string $value strtotime compliant date. |
|
650 | + */ |
|
651 | + public function set_next_renewal_date( $value ) { |
|
624 | 652 | $date = strtotime( $value ); |
625 | 653 | |
626 | 654 | if ( $date && $value !== '0000-00-00 00:00:00' ) { |
627 | - $this->set_prop( 'created', date( 'Y-m-d H:i:s', $date ) ); |
|
655 | + $this->set_prop( 'expiration', date( 'Y-m-d H:i:s', $date ) ); |
|
628 | 656 | return; |
629 | 657 | } |
630 | 658 | |
631 | - $this->set_prop( 'created', '' ); |
|
659 | + $this->set_prop( 'expiration', '' ); |
|
632 | 660 | |
633 | - } |
|
661 | + } |
|
634 | 662 | |
635 | - /** |
|
636 | - * Alias for self::set_created(). |
|
637 | - * |
|
638 | - * @since 1.0.19 |
|
639 | - * @param string $value strtotime compliant date. |
|
640 | - */ |
|
641 | - public function set_date_created( $value ) { |
|
642 | - $this->set_created( $value ); |
|
663 | + /** |
|
664 | + * Alias for self::set_next_renewal_date(). |
|
665 | + * |
|
666 | + * @since 1.0.19 |
|
667 | + * @param string $value strtotime compliant date. |
|
668 | + */ |
|
669 | + public function set_expiration( $value ) { |
|
670 | + $this->set_next_renewal_date( $value ); |
|
643 | 671 | } |
644 | 672 | |
645 | - /** |
|
646 | - * Set the date that the subscription will renew. |
|
647 | - * |
|
648 | - * @since 1.0.19 |
|
649 | - * @param string $value strtotime compliant date. |
|
650 | - */ |
|
651 | - public function set_next_renewal_date( $value ) { |
|
652 | - $date = strtotime( $value ); |
|
673 | + /** |
|
674 | + * Set the subscription's trial period. |
|
675 | + * |
|
676 | + * @since 1.0.19 |
|
677 | + * @param string $value trial period e.g 1 year. |
|
678 | + */ |
|
679 | + public function set_trial_period( $value ) { |
|
680 | + $this->set_prop( 'trial_period', $value ); |
|
681 | + } |
|
653 | 682 | |
654 | - if ( $date && $value !== '0000-00-00 00:00:00' ) { |
|
655 | - $this->set_prop( 'expiration', date( 'Y-m-d H:i:s', $date ) ); |
|
683 | + /** |
|
684 | + * Set the subscription's status. |
|
685 | + * |
|
686 | + * @since 1.0.19 |
|
687 | + * @param string $new_status New subscription status. |
|
688 | + */ |
|
689 | + public function set_status( $new_status ) { |
|
690 | + |
|
691 | + // Abort if this is not a valid status; |
|
692 | + if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) { |
|
656 | 693 | return; |
657 | - } |
|
658 | - |
|
659 | - $this->set_prop( 'expiration', '' ); |
|
660 | - |
|
661 | - } |
|
662 | - |
|
663 | - /** |
|
664 | - * Alias for self::set_next_renewal_date(). |
|
665 | - * |
|
666 | - * @since 1.0.19 |
|
667 | - * @param string $value strtotime compliant date. |
|
668 | - */ |
|
669 | - public function set_expiration( $value ) { |
|
670 | - $this->set_next_renewal_date( $value ); |
|
671 | - } |
|
672 | - |
|
673 | - /** |
|
674 | - * Set the subscription's trial period. |
|
675 | - * |
|
676 | - * @since 1.0.19 |
|
677 | - * @param string $value trial period e.g 1 year. |
|
678 | - */ |
|
679 | - public function set_trial_period( $value ) { |
|
680 | - $this->set_prop( 'trial_period', $value ); |
|
681 | - } |
|
682 | - |
|
683 | - /** |
|
684 | - * Set the subscription's status. |
|
685 | - * |
|
686 | - * @since 1.0.19 |
|
687 | - * @param string $new_status New subscription status. |
|
688 | - */ |
|
689 | - public function set_status( $new_status ) { |
|
690 | - |
|
691 | - // Abort if this is not a valid status; |
|
692 | - if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) { |
|
693 | - return; |
|
694 | - } |
|
695 | - |
|
696 | - $old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status(); |
|
697 | - if ( true === $this->object_read && $old_status !== $new_status ) { |
|
698 | - $this->status_transition = array( |
|
699 | - 'from' => $old_status, |
|
700 | - 'to' => $new_status, |
|
701 | - ); |
|
702 | - } |
|
703 | - |
|
704 | - $this->set_prop( 'status', $new_status ); |
|
705 | - } |
|
706 | - |
|
707 | - /** |
|
708 | - * Set the subscription's (remote) profile id. |
|
709 | - * |
|
710 | - * @since 1.0.19 |
|
711 | - * @param string $value the remote profile id. |
|
712 | - */ |
|
713 | - public function set_profile_id( $value ) { |
|
714 | - $this->set_prop( 'profile_id', sanitize_text_field( $value ) ); |
|
715 | - } |
|
716 | - |
|
717 | - /* |
|
694 | + } |
|
695 | + |
|
696 | + $old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status(); |
|
697 | + if ( true === $this->object_read && $old_status !== $new_status ) { |
|
698 | + $this->status_transition = array( |
|
699 | + 'from' => $old_status, |
|
700 | + 'to' => $new_status, |
|
701 | + ); |
|
702 | + } |
|
703 | + |
|
704 | + $this->set_prop( 'status', $new_status ); |
|
705 | + } |
|
706 | + |
|
707 | + /** |
|
708 | + * Set the subscription's (remote) profile id. |
|
709 | + * |
|
710 | + * @since 1.0.19 |
|
711 | + * @param string $value the remote profile id. |
|
712 | + */ |
|
713 | + public function set_profile_id( $value ) { |
|
714 | + $this->set_prop( 'profile_id', sanitize_text_field( $value ) ); |
|
715 | + } |
|
716 | + |
|
717 | + /* |
|
718 | 718 | |-------------------------------------------------------------------------- |
719 | 719 | | Boolean methods |
720 | 720 | |-------------------------------------------------------------------------- |
@@ -723,55 +723,55 @@ discard block |
||
723 | 723 | | |
724 | 724 | */ |
725 | 725 | |
726 | - /** |
|
726 | + /** |
|
727 | 727 | * Checks if the subscription has a given status. |
728 | - * |
|
729 | - * @param string|array String or array of strings to check for. |
|
730 | - * @return bool |
|
728 | + * |
|
729 | + * @param string|array String or array of strings to check for. |
|
730 | + * @return bool |
|
731 | 731 | */ |
732 | 732 | public function has_status( $status ) { |
733 | 733 | return in_array( $this->get_status(), wpinv_clean( wpinv_parse_list( $status ) ) ); |
734 | - } |
|
734 | + } |
|
735 | 735 | |
736 | - /** |
|
736 | + /** |
|
737 | 737 | * Checks if the subscription has a trial period. |
738 | - * |
|
739 | - * @return bool |
|
738 | + * |
|
739 | + * @return bool |
|
740 | 740 | */ |
741 | 741 | public function has_trial_period() { |
742 | - $period = $this->get_trial_period(); |
|
742 | + $period = $this->get_trial_period(); |
|
743 | 743 | return ! empty( $period ); |
744 | - } |
|
745 | - |
|
746 | - /** |
|
747 | - * Is the subscription active? |
|
748 | - * |
|
749 | - * @return bool |
|
750 | - */ |
|
751 | - public function is_active() { |
|
752 | - return $this->has_status( 'active trialling' ) && ! $this->is_expired(); |
|
753 | - } |
|
754 | - |
|
755 | - /** |
|
756 | - * Is the subscription expired? |
|
757 | - * |
|
758 | - * @return bool |
|
759 | - */ |
|
760 | - public function is_expired() { |
|
761 | - return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) ); |
|
762 | - } |
|
763 | - |
|
764 | - /** |
|
765 | - * Is this the last renewals? |
|
766 | - * |
|
767 | - * @return bool |
|
768 | - */ |
|
769 | - public function is_last_renewal() { |
|
770 | - $max_bills = $this->get_bill_times(); |
|
771 | - return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed(); |
|
772 | - } |
|
773 | - |
|
774 | - /* |
|
744 | + } |
|
745 | + |
|
746 | + /** |
|
747 | + * Is the subscription active? |
|
748 | + * |
|
749 | + * @return bool |
|
750 | + */ |
|
751 | + public function is_active() { |
|
752 | + return $this->has_status( 'active trialling' ) && ! $this->is_expired(); |
|
753 | + } |
|
754 | + |
|
755 | + /** |
|
756 | + * Is the subscription expired? |
|
757 | + * |
|
758 | + * @return bool |
|
759 | + */ |
|
760 | + public function is_expired() { |
|
761 | + return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) ); |
|
762 | + } |
|
763 | + |
|
764 | + /** |
|
765 | + * Is this the last renewals? |
|
766 | + * |
|
767 | + * @return bool |
|
768 | + */ |
|
769 | + public function is_last_renewal() { |
|
770 | + $max_bills = $this->get_bill_times(); |
|
771 | + return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed(); |
|
772 | + } |
|
773 | + |
|
774 | + /* |
|
775 | 775 | |-------------------------------------------------------------------------- |
776 | 776 | | Additional methods |
777 | 777 | |-------------------------------------------------------------------------- |
@@ -780,27 +780,27 @@ discard block |
||
780 | 780 | | |
781 | 781 | */ |
782 | 782 | |
783 | - /** |
|
784 | - * Backwards compatibilty. |
|
785 | - */ |
|
786 | - public function create( $data = array() ) { |
|
783 | + /** |
|
784 | + * Backwards compatibilty. |
|
785 | + */ |
|
786 | + public function create( $data = array() ) { |
|
787 | 787 | |
788 | - // Set the properties. |
|
789 | - if ( is_array( $data ) ) { |
|
790 | - $this->set_props( $data ); |
|
791 | - } |
|
788 | + // Set the properties. |
|
789 | + if ( is_array( $data ) ) { |
|
790 | + $this->set_props( $data ); |
|
791 | + } |
|
792 | 792 | |
793 | - // Save the item. |
|
794 | - return $this->save(); |
|
793 | + // Save the item. |
|
794 | + return $this->save(); |
|
795 | 795 | |
796 | - } |
|
796 | + } |
|
797 | 797 | |
798 | - /** |
|
799 | - * Backwards compatibilty. |
|
800 | - */ |
|
801 | - public function update( $args = array() ) { |
|
802 | - return $this->create( $args ); |
|
803 | - } |
|
798 | + /** |
|
799 | + * Backwards compatibilty. |
|
800 | + */ |
|
801 | + public function update( $args = array() ) { |
|
802 | + return $this->create( $args ); |
|
803 | + } |
|
804 | 804 | |
805 | 805 | /** |
806 | 806 | * Retrieve renewal payments for a subscription |
@@ -810,22 +810,22 @@ discard block |
||
810 | 810 | */ |
811 | 811 | public function get_child_payments( $hide_pending = true ) { |
812 | 812 | |
813 | - $statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' ); |
|
813 | + $statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' ); |
|
814 | 814 | |
815 | - if ( ! $hide_pending ) { |
|
816 | - $statuses = array_keys( wpinv_get_invoice_statuses() ); |
|
817 | - } |
|
815 | + if ( ! $hide_pending ) { |
|
816 | + $statuses = array_keys( wpinv_get_invoice_statuses() ); |
|
817 | + } |
|
818 | 818 | |
819 | 819 | return get_posts( |
820 | - array( |
|
821 | - 'post_parent' => $this->get_parent_payment_id(), |
|
822 | - 'numberposts' => -1, |
|
823 | - 'post_status' => $statuses, |
|
824 | - 'orderby' => 'ID', |
|
825 | - 'order' => 'ASC', |
|
826 | - 'post_type' => 'wpi_invoice', |
|
827 | - ) |
|
828 | - ); |
|
820 | + array( |
|
821 | + 'post_parent' => $this->get_parent_payment_id(), |
|
822 | + 'numberposts' => -1, |
|
823 | + 'post_status' => $statuses, |
|
824 | + 'orderby' => 'ID', |
|
825 | + 'order' => 'ASC', |
|
826 | + 'post_type' => 'wpi_invoice', |
|
827 | + ) |
|
828 | + ); |
|
829 | 829 | } |
830 | 830 | |
831 | 831 | /** |
@@ -835,7 +835,7 @@ discard block |
||
835 | 835 | * @return int |
836 | 836 | */ |
837 | 837 | public function get_total_payments() { |
838 | - return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() ); |
|
838 | + return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() ); |
|
839 | 839 | } |
840 | 840 | |
841 | 841 | /** |
@@ -859,56 +859,56 @@ discard block |
||
859 | 859 | * |
860 | 860 | * @since 2.4 |
861 | 861 | * @param array $args Array of values for the payment, including amount and transaction ID |
862 | - * @param WPInv_Invoice $invoice If adding an existing invoice. |
|
862 | + * @param WPInv_Invoice $invoice If adding an existing invoice. |
|
863 | 863 | * @return bool |
864 | 864 | */ |
865 | 865 | public function add_payment( $args = array(), $invoice = false ) { |
866 | 866 | |
867 | - // Process each payment once. |
|
867 | + // Process each payment once. |
|
868 | 868 | if ( ! empty( $args['transaction_id'] ) && $this->payment_exists( $args['transaction_id'] ) ) { |
869 | 869 | return false; |
870 | 870 | } |
871 | 871 | |
872 | - // Are we creating a new invoice? |
|
873 | - if ( empty( $invoice ) ) { |
|
874 | - $invoice = $this->create_payment(); |
|
872 | + // Are we creating a new invoice? |
|
873 | + if ( empty( $invoice ) ) { |
|
874 | + $invoice = $this->create_payment(); |
|
875 | 875 | |
876 | - if ( empty( $invoice ) ) { |
|
877 | - return false; |
|
878 | - } |
|
876 | + if ( empty( $invoice ) ) { |
|
877 | + return false; |
|
878 | + } |
|
879 | 879 | } |
880 | 880 | |
881 | - $invoice->set_status( 'wpi-renewal' ); |
|
881 | + $invoice->set_status( 'wpi-renewal' ); |
|
882 | 882 | |
883 | - // Maybe set a transaction id. |
|
884 | - if ( ! empty( $args['transaction_id'] ) ) { |
|
885 | - $invoice->set_transaction_id( $args['transaction_id'] ); |
|
886 | - } |
|
883 | + // Maybe set a transaction id. |
|
884 | + if ( ! empty( $args['transaction_id'] ) ) { |
|
885 | + $invoice->set_transaction_id( $args['transaction_id'] ); |
|
886 | + } |
|
887 | 887 | |
888 | - // Set the completed date. |
|
889 | - $invoice->set_completed_date( current_time( 'mysql' ) ); |
|
888 | + // Set the completed date. |
|
889 | + $invoice->set_completed_date( current_time( 'mysql' ) ); |
|
890 | 890 | |
891 | - // And the gateway. |
|
892 | - if ( ! empty( $args['gateway'] ) ) { |
|
893 | - $invoice->set_gateway( $args['gateway'] ); |
|
894 | - } |
|
891 | + // And the gateway. |
|
892 | + if ( ! empty( $args['gateway'] ) ) { |
|
893 | + $invoice->set_gateway( $args['gateway'] ); |
|
894 | + } |
|
895 | 895 | |
896 | - $invoice->save(); |
|
896 | + $invoice->save(); |
|
897 | 897 | |
898 | - if ( ! $invoice->exists() ) { |
|
899 | - return false; |
|
900 | - } |
|
898 | + if ( ! $invoice->exists() ) { |
|
899 | + return false; |
|
900 | + } |
|
901 | 901 | |
902 | - do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this ); |
|
903 | - do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this ); |
|
902 | + do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this ); |
|
903 | + do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this ); |
|
904 | 904 | do_action( 'wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id() ); |
905 | 905 | |
906 | 906 | update_post_meta( $invoice->get_id(), '_wpinv_subscription_id', $this->id ); |
907 | 907 | |
908 | 908 | return $invoice->get_id(); |
909 | - } |
|
909 | + } |
|
910 | 910 | |
911 | - /** |
|
911 | + /** |
|
912 | 912 | * Creates a new invoice and returns it. |
913 | 913 | * |
914 | 914 | * @since 1.0.19 |
@@ -916,124 +916,124 @@ discard block |
||
916 | 916 | */ |
917 | 917 | public function create_payment() { |
918 | 918 | |
919 | - $parent_invoice = $this->get_parent_payment(); |
|
920 | - |
|
921 | - if ( ! $parent_invoice->exists() ) { |
|
922 | - return false; |
|
923 | - } |
|
924 | - |
|
925 | - // Duplicate the parent invoice. |
|
926 | - $invoice = getpaid_duplicate_invoice( $parent_invoice ); |
|
927 | - $invoice->set_parent_id( $parent_invoice->get_id() ); |
|
928 | - $invoice->set_subscription_id( $this->get_id() ); |
|
929 | - $invoice->set_remote_subscription_id( $this->get_profile_id() ); |
|
930 | - |
|
931 | - // Set invoice items. |
|
932 | - $subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() ); |
|
933 | - $allowed_items = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] ); |
|
934 | - $invoice_items = array(); |
|
935 | - |
|
936 | - foreach ( $invoice->get_items() as $item ) { |
|
937 | - if ( in_array( $item->get_id(), $allowed_items ) ) { |
|
938 | - $invoice_items[] = $item; |
|
939 | - } |
|
940 | - } |
|
941 | - |
|
942 | - $invoice->set_items( $invoice_items ); |
|
943 | - |
|
944 | - if ( ! empty( $subscription_group['fees'] ) ) { |
|
945 | - $invoice->set_fees( $subscription_group['fees'] ); |
|
946 | - } |
|
947 | - |
|
948 | - // Maybe recalculate discount (Pre-GetPaid Fix). |
|
949 | - $discount = new WPInv_Discount( $invoice->get_discount_code() ); |
|
950 | - if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) { |
|
951 | - $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) ); |
|
952 | - } |
|
953 | - |
|
954 | - $invoice->recalculate_total(); |
|
955 | - $invoice->set_status( 'wpi-pending' ); |
|
956 | - $invoice->save(); |
|
957 | - |
|
958 | - return $invoice->exists() ? $invoice : false; |
|
959 | - } |
|
960 | - |
|
961 | - /** |
|
962 | - * Renews or completes a subscription |
|
963 | - * |
|
964 | - * @since 1.0.0 |
|
965 | - * @return int The subscription's id |
|
966 | - */ |
|
967 | - public function renew() { |
|
968 | - |
|
969 | - // Complete subscription if applicable |
|
970 | - if ( $this->is_last_renewal() ) { |
|
971 | - return $this->complete(); |
|
972 | - } |
|
973 | - |
|
974 | - // Calculate new expiration |
|
975 | - $frequency = $this->get_frequency(); |
|
976 | - $period = $this->get_period(); |
|
977 | - $new_expiration = strtotime( "+ $frequency $period", $this->get_expiration_time() ); |
|
978 | - |
|
979 | - $this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) ); |
|
980 | - $this->set_status( 'active' ); |
|
981 | - $this->save(); |
|
982 | - |
|
983 | - do_action( 'getpaid_subscription_renewed', $this ); |
|
984 | - |
|
985 | - return $this->get_id(); |
|
986 | - } |
|
987 | - |
|
988 | - /** |
|
989 | - * Marks a subscription as completed |
|
990 | - * |
|
991 | - * Subscription is completed when the number of payments matches the billing_times field |
|
992 | - * |
|
993 | - * @since 1.0.0 |
|
994 | - * @return int|bool Subscription id or false if the subscription is cancelled. |
|
995 | - */ |
|
996 | - public function complete() { |
|
997 | - |
|
998 | - // Only mark a subscription as complete if it's not already cancelled. |
|
999 | - if ( $this->has_status( 'cancelled' ) ) { |
|
1000 | - return false; |
|
1001 | - } |
|
1002 | - |
|
1003 | - $this->set_status( 'completed' ); |
|
1004 | - return $this->save(); |
|
1005 | - |
|
1006 | - } |
|
1007 | - |
|
1008 | - /** |
|
1009 | - * Marks a subscription as expired |
|
1010 | - * |
|
1011 | - * @since 1.0.0 |
|
1012 | - * @param bool $check_expiration |
|
1013 | - * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future. |
|
1014 | - */ |
|
1015 | - public function expire( $check_expiration = false ) { |
|
1016 | - |
|
1017 | - if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) { |
|
1018 | - // Do not mark as expired since real expiration date is in the future |
|
1019 | - return false; |
|
1020 | - } |
|
1021 | - |
|
1022 | - $this->set_status( 'expired' ); |
|
1023 | - return $this->save(); |
|
1024 | - |
|
1025 | - } |
|
1026 | - |
|
1027 | - /** |
|
1028 | - * Marks a subscription as failing |
|
1029 | - * |
|
1030 | - * @since 2.4.2 |
|
1031 | - * @return int Subscription id. |
|
1032 | - */ |
|
1033 | - public function failing() { |
|
1034 | - $this->set_status( 'failing' ); |
|
1035 | - return $this->save(); |
|
1036 | - } |
|
919 | + $parent_invoice = $this->get_parent_payment(); |
|
920 | + |
|
921 | + if ( ! $parent_invoice->exists() ) { |
|
922 | + return false; |
|
923 | + } |
|
924 | + |
|
925 | + // Duplicate the parent invoice. |
|
926 | + $invoice = getpaid_duplicate_invoice( $parent_invoice ); |
|
927 | + $invoice->set_parent_id( $parent_invoice->get_id() ); |
|
928 | + $invoice->set_subscription_id( $this->get_id() ); |
|
929 | + $invoice->set_remote_subscription_id( $this->get_profile_id() ); |
|
930 | + |
|
931 | + // Set invoice items. |
|
932 | + $subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() ); |
|
933 | + $allowed_items = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] ); |
|
934 | + $invoice_items = array(); |
|
935 | + |
|
936 | + foreach ( $invoice->get_items() as $item ) { |
|
937 | + if ( in_array( $item->get_id(), $allowed_items ) ) { |
|
938 | + $invoice_items[] = $item; |
|
939 | + } |
|
940 | + } |
|
941 | + |
|
942 | + $invoice->set_items( $invoice_items ); |
|
943 | + |
|
944 | + if ( ! empty( $subscription_group['fees'] ) ) { |
|
945 | + $invoice->set_fees( $subscription_group['fees'] ); |
|
946 | + } |
|
947 | + |
|
948 | + // Maybe recalculate discount (Pre-GetPaid Fix). |
|
949 | + $discount = new WPInv_Discount( $invoice->get_discount_code() ); |
|
950 | + if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) { |
|
951 | + $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) ); |
|
952 | + } |
|
953 | + |
|
954 | + $invoice->recalculate_total(); |
|
955 | + $invoice->set_status( 'wpi-pending' ); |
|
956 | + $invoice->save(); |
|
957 | + |
|
958 | + return $invoice->exists() ? $invoice : false; |
|
959 | + } |
|
960 | + |
|
961 | + /** |
|
962 | + * Renews or completes a subscription |
|
963 | + * |
|
964 | + * @since 1.0.0 |
|
965 | + * @return int The subscription's id |
|
966 | + */ |
|
967 | + public function renew() { |
|
968 | + |
|
969 | + // Complete subscription if applicable |
|
970 | + if ( $this->is_last_renewal() ) { |
|
971 | + return $this->complete(); |
|
972 | + } |
|
973 | + |
|
974 | + // Calculate new expiration |
|
975 | + $frequency = $this->get_frequency(); |
|
976 | + $period = $this->get_period(); |
|
977 | + $new_expiration = strtotime( "+ $frequency $period", $this->get_expiration_time() ); |
|
978 | + |
|
979 | + $this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) ); |
|
980 | + $this->set_status( 'active' ); |
|
981 | + $this->save(); |
|
982 | + |
|
983 | + do_action( 'getpaid_subscription_renewed', $this ); |
|
984 | + |
|
985 | + return $this->get_id(); |
|
986 | + } |
|
987 | + |
|
988 | + /** |
|
989 | + * Marks a subscription as completed |
|
990 | + * |
|
991 | + * Subscription is completed when the number of payments matches the billing_times field |
|
992 | + * |
|
993 | + * @since 1.0.0 |
|
994 | + * @return int|bool Subscription id or false if the subscription is cancelled. |
|
995 | + */ |
|
996 | + public function complete() { |
|
997 | + |
|
998 | + // Only mark a subscription as complete if it's not already cancelled. |
|
999 | + if ( $this->has_status( 'cancelled' ) ) { |
|
1000 | + return false; |
|
1001 | + } |
|
1002 | + |
|
1003 | + $this->set_status( 'completed' ); |
|
1004 | + return $this->save(); |
|
1005 | + |
|
1006 | + } |
|
1007 | + |
|
1008 | + /** |
|
1009 | + * Marks a subscription as expired |
|
1010 | + * |
|
1011 | + * @since 1.0.0 |
|
1012 | + * @param bool $check_expiration |
|
1013 | + * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future. |
|
1014 | + */ |
|
1015 | + public function expire( $check_expiration = false ) { |
|
1016 | + |
|
1017 | + if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) { |
|
1018 | + // Do not mark as expired since real expiration date is in the future |
|
1019 | + return false; |
|
1020 | + } |
|
1021 | + |
|
1022 | + $this->set_status( 'expired' ); |
|
1023 | + return $this->save(); |
|
1024 | + |
|
1025 | + } |
|
1026 | + |
|
1027 | + /** |
|
1028 | + * Marks a subscription as failing |
|
1029 | + * |
|
1030 | + * @since 2.4.2 |
|
1031 | + * @return int Subscription id. |
|
1032 | + */ |
|
1033 | + public function failing() { |
|
1034 | + $this->set_status( 'failing' ); |
|
1035 | + return $this->save(); |
|
1036 | + } |
|
1037 | 1037 | |
1038 | 1038 | /** |
1039 | 1039 | * Marks a subscription as cancelled |
@@ -1042,19 +1042,19 @@ discard block |
||
1042 | 1042 | * @return int Subscription id. |
1043 | 1043 | */ |
1044 | 1044 | public function cancel() { |
1045 | - $this->set_status( 'cancelled' ); |
|
1046 | - return $this->save(); |
|
1045 | + $this->set_status( 'cancelled' ); |
|
1046 | + return $this->save(); |
|
1047 | 1047 | } |
1048 | 1048 | |
1049 | - /** |
|
1050 | - * Determines if a subscription can be cancelled both locally and with a payment processor. |
|
1051 | - * |
|
1052 | - * @since 1.0.0 |
|
1053 | - * @return bool |
|
1054 | - */ |
|
1055 | - public function can_cancel() { |
|
1056 | - return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this ); |
|
1057 | - } |
|
1049 | + /** |
|
1050 | + * Determines if a subscription can be cancelled both locally and with a payment processor. |
|
1051 | + * |
|
1052 | + * @since 1.0.0 |
|
1053 | + * @return bool |
|
1054 | + */ |
|
1055 | + public function can_cancel() { |
|
1056 | + return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this ); |
|
1057 | + } |
|
1058 | 1058 | |
1059 | 1059 | /** |
1060 | 1060 | * Returns an array of subscription statuses that can be cancelled |
@@ -1067,109 +1067,109 @@ discard block |
||
1067 | 1067 | return apply_filters( 'wpinv_recurring_cancellable_statuses', array( 'active', 'trialling', 'failing' ) ); |
1068 | 1068 | } |
1069 | 1069 | |
1070 | - /** |
|
1071 | - * Retrieves the URL to cancel subscription |
|
1072 | - * |
|
1073 | - * @since 1.0.0 |
|
1074 | - * @return string |
|
1075 | - */ |
|
1076 | - public function get_cancel_url() { |
|
1077 | - $url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() ); |
|
1078 | - return apply_filters( 'wpinv_subscription_cancel_url', $url, $this ); |
|
1079 | - } |
|
1080 | - |
|
1081 | - /** |
|
1082 | - * Retrieves the URL to view a subscription |
|
1083 | - * |
|
1084 | - * @since 1.0.19 |
|
1085 | - * @return string |
|
1086 | - */ |
|
1087 | - public function get_view_url() { |
|
1088 | - |
|
1089 | - $url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ); |
|
1090 | - $url = add_query_arg( 'subscription', $this->get_id(), $url ); |
|
1091 | - |
|
1092 | - return apply_filters( 'getpaid_get_subscription_view_url', $url, $this ); |
|
1093 | - } |
|
1094 | - |
|
1095 | - /** |
|
1096 | - * Determines if subscription can be manually renewed |
|
1097 | - * |
|
1098 | - * This method is filtered by payment gateways in order to return true on subscriptions |
|
1099 | - * that can be renewed manually |
|
1100 | - * |
|
1101 | - * @since 2.5 |
|
1102 | - * @return bool |
|
1103 | - */ |
|
1104 | - public function can_renew() { |
|
1105 | - return apply_filters( 'wpinv_subscription_can_renew', true, $this ); |
|
1106 | - } |
|
1107 | - |
|
1108 | - /** |
|
1109 | - * Retrieves the URL to renew a subscription |
|
1110 | - * |
|
1111 | - * @since 2.5 |
|
1112 | - * @return string |
|
1113 | - */ |
|
1114 | - public function get_renew_url() { |
|
1115 | - $url = wp_nonce_url( |
|
1070 | + /** |
|
1071 | + * Retrieves the URL to cancel subscription |
|
1072 | + * |
|
1073 | + * @since 1.0.0 |
|
1074 | + * @return string |
|
1075 | + */ |
|
1076 | + public function get_cancel_url() { |
|
1077 | + $url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() ); |
|
1078 | + return apply_filters( 'wpinv_subscription_cancel_url', $url, $this ); |
|
1079 | + } |
|
1080 | + |
|
1081 | + /** |
|
1082 | + * Retrieves the URL to view a subscription |
|
1083 | + * |
|
1084 | + * @since 1.0.19 |
|
1085 | + * @return string |
|
1086 | + */ |
|
1087 | + public function get_view_url() { |
|
1088 | + |
|
1089 | + $url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ); |
|
1090 | + $url = add_query_arg( 'subscription', $this->get_id(), $url ); |
|
1091 | + |
|
1092 | + return apply_filters( 'getpaid_get_subscription_view_url', $url, $this ); |
|
1093 | + } |
|
1094 | + |
|
1095 | + /** |
|
1096 | + * Determines if subscription can be manually renewed |
|
1097 | + * |
|
1098 | + * This method is filtered by payment gateways in order to return true on subscriptions |
|
1099 | + * that can be renewed manually |
|
1100 | + * |
|
1101 | + * @since 2.5 |
|
1102 | + * @return bool |
|
1103 | + */ |
|
1104 | + public function can_renew() { |
|
1105 | + return apply_filters( 'wpinv_subscription_can_renew', true, $this ); |
|
1106 | + } |
|
1107 | + |
|
1108 | + /** |
|
1109 | + * Retrieves the URL to renew a subscription |
|
1110 | + * |
|
1111 | + * @since 2.5 |
|
1112 | + * @return string |
|
1113 | + */ |
|
1114 | + public function get_renew_url() { |
|
1115 | + $url = wp_nonce_url( |
|
1116 | 1116 | add_query_arg( |
1117 | 1117 | array( |
1118 | - 'getpaid-action' => 'renew_subscription', |
|
1119 | - 'sub_id' => $this->get_id, |
|
1118 | + 'getpaid-action' => 'renew_subscription', |
|
1119 | + 'sub_id' => $this->get_id, |
|
1120 | 1120 | ) |
1121 | 1121 | ), |
1122 | 1122 | 'getpaid-nonce' |
1123 | 1123 | ); |
1124 | - return apply_filters( 'wpinv_subscription_renew_url', $url, $this ); |
|
1125 | - } |
|
1126 | - |
|
1127 | - /** |
|
1128 | - * Determines if subscription can have their payment method updated |
|
1129 | - * |
|
1130 | - * @since 1.0.0 |
|
1131 | - * @return bool |
|
1132 | - */ |
|
1133 | - public function can_update() { |
|
1134 | - return apply_filters( 'wpinv_subscription_can_update', false, $this ); |
|
1135 | - } |
|
1136 | - |
|
1137 | - /** |
|
1138 | - * Retrieves the URL to update subscription |
|
1139 | - * |
|
1140 | - * @since 1.0.0 |
|
1141 | - * @return string |
|
1142 | - */ |
|
1143 | - public function get_update_url() { |
|
1144 | - $url = add_query_arg( |
|
1124 | + return apply_filters( 'wpinv_subscription_renew_url', $url, $this ); |
|
1125 | + } |
|
1126 | + |
|
1127 | + /** |
|
1128 | + * Determines if subscription can have their payment method updated |
|
1129 | + * |
|
1130 | + * @since 1.0.0 |
|
1131 | + * @return bool |
|
1132 | + */ |
|
1133 | + public function can_update() { |
|
1134 | + return apply_filters( 'wpinv_subscription_can_update', false, $this ); |
|
1135 | + } |
|
1136 | + |
|
1137 | + /** |
|
1138 | + * Retrieves the URL to update subscription |
|
1139 | + * |
|
1140 | + * @since 1.0.0 |
|
1141 | + * @return string |
|
1142 | + */ |
|
1143 | + public function get_update_url() { |
|
1144 | + $url = add_query_arg( |
|
1145 | 1145 | array( |
1146 | - 'action' => 'update', |
|
1147 | - 'subscription_id' => $this->get_id(), |
|
1146 | + 'action' => 'update', |
|
1147 | + 'subscription_id' => $this->get_id(), |
|
1148 | 1148 | ) |
1149 | 1149 | ); |
1150 | - return apply_filters( 'wpinv_subscription_update_url', $url, $this ); |
|
1151 | - } |
|
1152 | - |
|
1153 | - /** |
|
1154 | - * Retrieves the subscription status label |
|
1155 | - * |
|
1156 | - * @since 1.0.0 |
|
1157 | - * @return string |
|
1158 | - */ |
|
1159 | - public function get_status_label() { |
|
1160 | - return getpaid_get_subscription_status_label( $this->get_status() ); |
|
1161 | - } |
|
1162 | - |
|
1163 | - /** |
|
1164 | - * Retrieves the subscription status class |
|
1165 | - * |
|
1166 | - * @since 1.0.19 |
|
1167 | - * @return string |
|
1168 | - */ |
|
1169 | - public function get_status_class() { |
|
1170 | - $statuses = getpaid_get_subscription_status_classes(); |
|
1171 | - return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'badge-dark'; |
|
1172 | - } |
|
1150 | + return apply_filters( 'wpinv_subscription_update_url', $url, $this ); |
|
1151 | + } |
|
1152 | + |
|
1153 | + /** |
|
1154 | + * Retrieves the subscription status label |
|
1155 | + * |
|
1156 | + * @since 1.0.0 |
|
1157 | + * @return string |
|
1158 | + */ |
|
1159 | + public function get_status_label() { |
|
1160 | + return getpaid_get_subscription_status_label( $this->get_status() ); |
|
1161 | + } |
|
1162 | + |
|
1163 | + /** |
|
1164 | + * Retrieves the subscription status class |
|
1165 | + * |
|
1166 | + * @since 1.0.19 |
|
1167 | + * @return string |
|
1168 | + */ |
|
1169 | + public function get_status_class() { |
|
1170 | + $statuses = getpaid_get_subscription_status_classes(); |
|
1171 | + return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'badge-dark'; |
|
1172 | + } |
|
1173 | 1173 | |
1174 | 1174 | /** |
1175 | 1175 | * Retrieves the subscription status label |
@@ -1179,11 +1179,11 @@ discard block |
||
1179 | 1179 | */ |
1180 | 1180 | public function get_status_label_html() { |
1181 | 1181 | |
1182 | - $status_label = sanitize_text_field( $this->get_status_label() ); |
|
1183 | - $class = esc_attr( $this->get_status_class() ); |
|
1184 | - $status = sanitize_html_class( $this->get_status() ); |
|
1182 | + $status_label = sanitize_text_field( $this->get_status_label() ); |
|
1183 | + $class = esc_attr( $this->get_status_class() ); |
|
1184 | + $status = sanitize_html_class( $this->get_status() ); |
|
1185 | 1185 | |
1186 | - return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>"; |
|
1186 | + return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>"; |
|
1187 | 1187 | } |
1188 | 1188 | |
1189 | 1189 | /** |
@@ -1194,75 +1194,75 @@ discard block |
||
1194 | 1194 | * @return bool |
1195 | 1195 | */ |
1196 | 1196 | public function payment_exists( $txn_id = '' ) { |
1197 | - $invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' ); |
|
1197 | + $invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' ); |
|
1198 | 1198 | return ! empty( $invoice_id ); |
1199 | - } |
|
1200 | - |
|
1201 | - /** |
|
1202 | - * Handle the status transition. |
|
1203 | - */ |
|
1204 | - protected function status_transition() { |
|
1205 | - $status_transition = $this->status_transition; |
|
1206 | - |
|
1207 | - // Reset status transition variable. |
|
1208 | - $this->status_transition = false; |
|
1209 | - |
|
1210 | - if ( $status_transition ) { |
|
1211 | - try { |
|
1212 | - |
|
1213 | - // Fire a hook for the status change. |
|
1214 | - do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition ); |
|
1215 | - do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition ); |
|
1216 | - |
|
1217 | - if ( ! empty( $status_transition['from'] ) ) { |
|
1218 | - |
|
1219 | - /* translators: 1: old subscription status 2: new subscription status */ |
|
1220 | - $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'] ) ); |
|
1221 | - |
|
1222 | - // Note the transition occurred. |
|
1223 | - $this->get_parent_payment()->add_note( $transition_note, false, false, true ); |
|
1224 | - |
|
1225 | - // Fire another hook. |
|
1226 | - do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this ); |
|
1227 | - do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] ); |
|
1228 | - |
|
1229 | - } else { |
|
1230 | - /* translators: %s: new invoice status */ |
|
1231 | - $transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) ); |
|
1232 | - |
|
1233 | - // Note the transition occurred. |
|
1234 | - $this->get_parent_payment()->add_note( $transition_note, false, false, true ); |
|
1235 | - |
|
1236 | - } |
|
1237 | - } catch ( Exception $e ) { |
|
1238 | - $this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() ); |
|
1239 | - } |
|
1240 | - } |
|
1241 | - |
|
1242 | - } |
|
1243 | - |
|
1244 | - /** |
|
1245 | - * Save data to the database. |
|
1246 | - * |
|
1247 | - * @since 1.0.19 |
|
1248 | - * @return int subscription ID |
|
1249 | - */ |
|
1250 | - public function save() { |
|
1251 | - parent::save(); |
|
1252 | - $this->status_transition(); |
|
1253 | - return $this->get_id(); |
|
1254 | - } |
|
1255 | - |
|
1256 | - /** |
|
1257 | - * Activates a subscription. |
|
1258 | - * |
|
1259 | - * @since 1.0.19 |
|
1260 | - * @return int subscription ID |
|
1261 | - */ |
|
1262 | - public function activate() { |
|
1263 | - $status = 'trialling' === $this->get_status() ? 'trialling' : 'active'; |
|
1264 | - $this->set_status( $status ); |
|
1265 | - return $this->save(); |
|
1266 | - } |
|
1199 | + } |
|
1200 | + |
|
1201 | + /** |
|
1202 | + * Handle the status transition. |
|
1203 | + */ |
|
1204 | + protected function status_transition() { |
|
1205 | + $status_transition = $this->status_transition; |
|
1206 | + |
|
1207 | + // Reset status transition variable. |
|
1208 | + $this->status_transition = false; |
|
1209 | + |
|
1210 | + if ( $status_transition ) { |
|
1211 | + try { |
|
1212 | + |
|
1213 | + // Fire a hook for the status change. |
|
1214 | + do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition ); |
|
1215 | + do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition ); |
|
1216 | + |
|
1217 | + if ( ! empty( $status_transition['from'] ) ) { |
|
1218 | + |
|
1219 | + /* translators: 1: old subscription status 2: new subscription status */ |
|
1220 | + $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'] ) ); |
|
1221 | + |
|
1222 | + // Note the transition occurred. |
|
1223 | + $this->get_parent_payment()->add_note( $transition_note, false, false, true ); |
|
1224 | + |
|
1225 | + // Fire another hook. |
|
1226 | + do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this ); |
|
1227 | + do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] ); |
|
1228 | + |
|
1229 | + } else { |
|
1230 | + /* translators: %s: new invoice status */ |
|
1231 | + $transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) ); |
|
1232 | + |
|
1233 | + // Note the transition occurred. |
|
1234 | + $this->get_parent_payment()->add_note( $transition_note, false, false, true ); |
|
1235 | + |
|
1236 | + } |
|
1237 | + } catch ( Exception $e ) { |
|
1238 | + $this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() ); |
|
1239 | + } |
|
1240 | + } |
|
1241 | + |
|
1242 | + } |
|
1243 | + |
|
1244 | + /** |
|
1245 | + * Save data to the database. |
|
1246 | + * |
|
1247 | + * @since 1.0.19 |
|
1248 | + * @return int subscription ID |
|
1249 | + */ |
|
1250 | + public function save() { |
|
1251 | + parent::save(); |
|
1252 | + $this->status_transition(); |
|
1253 | + return $this->get_id(); |
|
1254 | + } |
|
1255 | + |
|
1256 | + /** |
|
1257 | + * Activates a subscription. |
|
1258 | + * |
|
1259 | + * @since 1.0.19 |
|
1260 | + * @return int subscription ID |
|
1261 | + */ |
|
1262 | + public function activate() { |
|
1263 | + $status = 'trialling' === $this->get_status() ? 'trialling' : 'active'; |
|
1264 | + $this->set_status( $status ); |
|
1265 | + return $this->save(); |
|
1266 | + } |
|
1267 | 1267 | |
1268 | 1268 | } |
@@ -13,311 +13,311 @@ |
||
13 | 13 | class GetPaid_Subscription_Notification_Emails { |
14 | 14 | |
15 | 15 | /** |
16 | - * The array of subscription email actions. |
|
17 | - * |
|
18 | - * @param array |
|
19 | - */ |
|
20 | - public $subscription_actions; |
|
16 | + * The array of subscription email actions. |
|
17 | + * |
|
18 | + * @param array |
|
19 | + */ |
|
20 | + public $subscription_actions; |
|
21 | 21 | |
22 | 22 | /** |
23 | - * Class constructor |
|
23 | + * Class constructor |
|
24 | 24 | * |
25 | - */ |
|
26 | - public function __construct() { |
|
27 | - |
|
28 | - $this->subscription_actions = apply_filters( |
|
29 | - 'getpaid_notification_email_subscription_triggers', |
|
30 | - array( |
|
31 | - 'getpaid_subscription_trialling' => 'subscription_trial', |
|
32 | - 'getpaid_subscription_cancelled' => 'subscription_cancelled', |
|
33 | - 'getpaid_subscription_expired' => 'subscription_expired', |
|
34 | - 'getpaid_subscription_completed' => 'subscription_complete', |
|
35 | - 'getpaid_daily_maintenance' => 'renewal_reminder', |
|
36 | - ) |
|
37 | - ); |
|
38 | - |
|
39 | - $this->init_hooks(); |
|
25 | + */ |
|
26 | + public function __construct() { |
|
27 | + |
|
28 | + $this->subscription_actions = apply_filters( |
|
29 | + 'getpaid_notification_email_subscription_triggers', |
|
30 | + array( |
|
31 | + 'getpaid_subscription_trialling' => 'subscription_trial', |
|
32 | + 'getpaid_subscription_cancelled' => 'subscription_cancelled', |
|
33 | + 'getpaid_subscription_expired' => 'subscription_expired', |
|
34 | + 'getpaid_subscription_completed' => 'subscription_complete', |
|
35 | + 'getpaid_daily_maintenance' => 'renewal_reminder', |
|
36 | + ) |
|
37 | + ); |
|
38 | + |
|
39 | + $this->init_hooks(); |
|
40 | 40 | |
41 | 41 | } |
42 | 42 | |
43 | 43 | /** |
44 | - * Registers email hooks. |
|
45 | - */ |
|
46 | - public function init_hooks() { |
|
47 | - |
|
48 | - add_filter( 'getpaid_get_email_merge_tags', array( $this, 'subscription_merge_tags' ), 10, 2 ); |
|
49 | - foreach ( $this->subscription_actions as $hook => $email_type ) { |
|
50 | - |
|
51 | - $email = new GetPaid_Notification_Email( $email_type ); |
|
52 | - |
|
53 | - if ( ! $email->is_active() ) { |
|
54 | - continue; |
|
55 | - } |
|
56 | - |
|
57 | - if ( method_exists( $this, $email_type ) ) { |
|
58 | - add_action( $hook, array( $this, $email_type ), 100, 2 ); |
|
59 | - continue; |
|
60 | - } |
|
61 | - |
|
62 | - do_action( 'getpaid_subscription_notification_email_register_hook', $email_type, $hook ); |
|
63 | - |
|
64 | - } |
|
65 | - |
|
66 | - } |
|
67 | - |
|
68 | - /** |
|
69 | - * Filters subscription merge tags. |
|
70 | - * |
|
71 | - * @param array $merge_tags |
|
72 | - * @param mixed|WPInv_Invoice|WPInv_Subscription $object |
|
73 | - */ |
|
74 | - public function subscription_merge_tags( $merge_tags, $object ) { |
|
75 | - |
|
76 | - if ( is_a( $object, 'WPInv_Subscription' ) ) { |
|
77 | - $merge_tags = array_merge( |
|
78 | - $merge_tags, |
|
79 | - $this->get_subscription_merge_tags( $object ) |
|
80 | - ); |
|
81 | - } |
|
82 | - |
|
83 | - return $merge_tags; |
|
84 | - |
|
85 | - } |
|
86 | - |
|
87 | - /** |
|
88 | - * Generates subscription merge tags. |
|
89 | - * |
|
90 | - * @param WPInv_Subscription $subscription |
|
91 | - * @return array |
|
92 | - */ |
|
93 | - public function get_subscription_merge_tags( $subscription ) { |
|
94 | - |
|
95 | - // Abort if it does not exist. |
|
96 | - if ( ! $subscription->get_id() ) { |
|
97 | - return array(); |
|
98 | - } |
|
99 | - |
|
100 | - $invoice = $subscription->get_parent_invoice(); |
|
101 | - return array( |
|
102 | - '{subscription_renewal_date}' => getpaid_format_date_value( $subscription->get_next_renewal_date(), __( 'Never', 'invoicing' ) ), |
|
103 | - '{subscription_created}' => getpaid_format_date_value( $subscription->get_date_created() ), |
|
104 | - '{subscription_status}' => sanitize_text_field( $subscription->get_status_label() ), |
|
105 | - '{subscription_profile_id}' => sanitize_text_field( $subscription->get_profile_id() ), |
|
106 | - '{subscription_id}' => absint( $subscription->get_id() ), |
|
107 | - '{subscription_recurring_amount}' => sanitize_text_field( wpinv_price( $subscription->get_recurring_amount(), $invoice->get_currency() ) ), |
|
108 | - '{subscription_initial_amount}' => sanitize_text_field( wpinv_price( $subscription->get_initial_amount(), $invoice->get_currency() ) ), |
|
109 | - '{subscription_recurring_period}' => getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ), |
|
110 | - '{subscription_bill_times}' => $subscription->get_bill_times(), |
|
111 | - '{subscription_url}' => esc_url( $subscription->get_view_url() ), |
|
112 | - ); |
|
113 | - |
|
114 | - } |
|
115 | - |
|
116 | - /** |
|
117 | - * Checks if we should send a notification for a subscription. |
|
118 | - * |
|
119 | - * @param WPInv_Invoice $invoice |
|
120 | - * @return bool |
|
121 | - */ |
|
122 | - public function should_send_notification( $invoice ) { |
|
123 | - return 0 != $invoice->get_id(); |
|
124 | - } |
|
125 | - |
|
126 | - /** |
|
127 | - * Returns notification recipients. |
|
128 | - * |
|
129 | - * @param WPInv_Invoice $invoice |
|
130 | - * @return array |
|
131 | - */ |
|
132 | - public function get_recipients( $invoice ) { |
|
133 | - $recipients = array( $invoice->get_email() ); |
|
134 | - |
|
135 | - $cc = $invoice->get_email_cc(); |
|
136 | - |
|
137 | - if ( ! empty( $cc ) ) { |
|
138 | - $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) ); |
|
139 | - $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) ); |
|
140 | - } |
|
141 | - |
|
142 | - return $recipients; |
|
143 | - } |
|
144 | - |
|
145 | - /** |
|
146 | - * Helper function to send an email. |
|
147 | - * |
|
148 | - * @param WPInv_Subscription $subscription |
|
149 | - * @param GetPaid_Notification_Email $email |
|
150 | - * @param string $type |
|
151 | - * @param array $extra_args Extra template args. |
|
152 | - */ |
|
153 | - public function send_email( $subscription, $email, $type, $extra_args = array() ) { |
|
154 | - |
|
155 | - if ( empty( $subscription ) ) { |
|
156 | - return; |
|
157 | - } |
|
158 | - |
|
159 | - if ( is_array( $subscription ) ) { |
|
160 | - $subscription = current( $subscription ); |
|
161 | - } |
|
162 | - |
|
163 | - if ( ! $subscription instanceof WPInv_Subscription ) { |
|
164 | - return; |
|
165 | - } |
|
166 | - |
|
167 | - // Abort in case the parent invoice does not exist. |
|
168 | - $invoice = $subscription->get_parent_invoice(); |
|
169 | - if ( ! $this->should_send_notification( $invoice ) ) { |
|
170 | - return; |
|
171 | - } |
|
172 | - |
|
173 | - if ( apply_filters( 'getpaid_skip_subscription_email', false, $type, $subscription ) ) { |
|
174 | - return; |
|
175 | - } |
|
176 | - |
|
177 | - do_action( 'getpaid_before_send_subscription_notification', $type, $subscription, $email ); |
|
178 | - |
|
179 | - $recipients = $this->get_recipients( $invoice ); |
|
180 | - $mailer = new GetPaid_Notification_Email_Sender(); |
|
181 | - $merge_tags = $email->get_merge_tags(); |
|
182 | - $content = $email->get_content( $merge_tags, $extra_args ); |
|
183 | - $subject = $email->add_merge_tags( $email->get_subject(), $merge_tags ); |
|
184 | - $attachments = $email->get_attachments(); |
|
185 | - |
|
186 | - $result = $mailer->send( |
|
187 | - apply_filters( 'getpaid_subscription_email_recipients', wpinv_parse_list( $recipients ), $email ), |
|
188 | - $subject, |
|
189 | - $content, |
|
190 | - $attachments |
|
191 | - ); |
|
192 | - |
|
193 | - // Maybe send a copy to the admin. |
|
194 | - if ( $email->include_admin_bcc() ) { |
|
195 | - $mailer->send( |
|
196 | - wpinv_get_admin_email(), |
|
197 | - $subject . __( ' - ADMIN BCC COPY', 'invoicing' ), |
|
198 | - $content, |
|
199 | - $attachments |
|
200 | - ); |
|
201 | - } |
|
202 | - |
|
203 | - if ( $result ) { |
|
204 | - $invoice->add_system_note( |
|
205 | - sprintf( |
|
206 | - __( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ), |
|
207 | - sanitize_key( $type ), |
|
208 | - $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
209 | - ) |
|
210 | - ); |
|
211 | - } else { |
|
212 | - $invoice->add_system_note( |
|
213 | - sprintf( |
|
214 | - __( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ), |
|
215 | - sanitize_key( $type ), |
|
216 | - $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
217 | - ) |
|
218 | - ); |
|
219 | - } |
|
220 | - |
|
221 | - do_action( 'getpaid_after_send_subscription_notification', $type, $subscription, $email ); |
|
222 | - |
|
223 | - } |
|
44 | + * Registers email hooks. |
|
45 | + */ |
|
46 | + public function init_hooks() { |
|
47 | + |
|
48 | + add_filter( 'getpaid_get_email_merge_tags', array( $this, 'subscription_merge_tags' ), 10, 2 ); |
|
49 | + foreach ( $this->subscription_actions as $hook => $email_type ) { |
|
50 | + |
|
51 | + $email = new GetPaid_Notification_Email( $email_type ); |
|
52 | + |
|
53 | + if ( ! $email->is_active() ) { |
|
54 | + continue; |
|
55 | + } |
|
56 | + |
|
57 | + if ( method_exists( $this, $email_type ) ) { |
|
58 | + add_action( $hook, array( $this, $email_type ), 100, 2 ); |
|
59 | + continue; |
|
60 | + } |
|
61 | + |
|
62 | + do_action( 'getpaid_subscription_notification_email_register_hook', $email_type, $hook ); |
|
63 | + |
|
64 | + } |
|
65 | + |
|
66 | + } |
|
224 | 67 | |
225 | 68 | /** |
226 | - * Sends a new trial notification. |
|
227 | - * |
|
228 | - * @param WPInv_Subscription $subscription |
|
229 | - */ |
|
230 | - public function subscription_trial( $subscription ) { |
|
69 | + * Filters subscription merge tags. |
|
70 | + * |
|
71 | + * @param array $merge_tags |
|
72 | + * @param mixed|WPInv_Invoice|WPInv_Subscription $object |
|
73 | + */ |
|
74 | + public function subscription_merge_tags( $merge_tags, $object ) { |
|
231 | 75 | |
232 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
233 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
76 | + if ( is_a( $object, 'WPInv_Subscription' ) ) { |
|
77 | + $merge_tags = array_merge( |
|
78 | + $merge_tags, |
|
79 | + $this->get_subscription_merge_tags( $object ) |
|
80 | + ); |
|
81 | + } |
|
234 | 82 | |
235 | - } |
|
83 | + return $merge_tags; |
|
236 | 84 | |
237 | - /** |
|
238 | - * Sends a cancelled subscription notification. |
|
239 | - * |
|
240 | - * @param WPInv_Subscription $subscription |
|
241 | - */ |
|
242 | - public function subscription_cancelled( $subscription ) { |
|
85 | + } |
|
243 | 86 | |
244 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
245 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
87 | + /** |
|
88 | + * Generates subscription merge tags. |
|
89 | + * |
|
90 | + * @param WPInv_Subscription $subscription |
|
91 | + * @return array |
|
92 | + */ |
|
93 | + public function get_subscription_merge_tags( $subscription ) { |
|
94 | + |
|
95 | + // Abort if it does not exist. |
|
96 | + if ( ! $subscription->get_id() ) { |
|
97 | + return array(); |
|
98 | + } |
|
99 | + |
|
100 | + $invoice = $subscription->get_parent_invoice(); |
|
101 | + return array( |
|
102 | + '{subscription_renewal_date}' => getpaid_format_date_value( $subscription->get_next_renewal_date(), __( 'Never', 'invoicing' ) ), |
|
103 | + '{subscription_created}' => getpaid_format_date_value( $subscription->get_date_created() ), |
|
104 | + '{subscription_status}' => sanitize_text_field( $subscription->get_status_label() ), |
|
105 | + '{subscription_profile_id}' => sanitize_text_field( $subscription->get_profile_id() ), |
|
106 | + '{subscription_id}' => absint( $subscription->get_id() ), |
|
107 | + '{subscription_recurring_amount}' => sanitize_text_field( wpinv_price( $subscription->get_recurring_amount(), $invoice->get_currency() ) ), |
|
108 | + '{subscription_initial_amount}' => sanitize_text_field( wpinv_price( $subscription->get_initial_amount(), $invoice->get_currency() ) ), |
|
109 | + '{subscription_recurring_period}' => getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ), |
|
110 | + '{subscription_bill_times}' => $subscription->get_bill_times(), |
|
111 | + '{subscription_url}' => esc_url( $subscription->get_view_url() ), |
|
112 | + ); |
|
246 | 113 | |
247 | - } |
|
114 | + } |
|
248 | 115 | |
249 | - /** |
|
250 | - * Sends a subscription expired notification. |
|
251 | - * |
|
252 | - * @param WPInv_Subscription $subscription |
|
253 | - */ |
|
254 | - public function subscription_expired( $subscription ) { |
|
116 | + /** |
|
117 | + * Checks if we should send a notification for a subscription. |
|
118 | + * |
|
119 | + * @param WPInv_Invoice $invoice |
|
120 | + * @return bool |
|
121 | + */ |
|
122 | + public function should_send_notification( $invoice ) { |
|
123 | + return 0 != $invoice->get_id(); |
|
124 | + } |
|
255 | 125 | |
256 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
257 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
126 | + /** |
|
127 | + * Returns notification recipients. |
|
128 | + * |
|
129 | + * @param WPInv_Invoice $invoice |
|
130 | + * @return array |
|
131 | + */ |
|
132 | + public function get_recipients( $invoice ) { |
|
133 | + $recipients = array( $invoice->get_email() ); |
|
258 | 134 | |
259 | - } |
|
135 | + $cc = $invoice->get_email_cc(); |
|
260 | 136 | |
261 | - /** |
|
262 | - * Sends a completed subscription notification. |
|
263 | - * |
|
264 | - * @param WPInv_Subscription $subscription |
|
265 | - */ |
|
266 | - public function subscription_complete( $subscription ) { |
|
137 | + if ( ! empty( $cc ) ) { |
|
138 | + $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) ); |
|
139 | + $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) ); |
|
140 | + } |
|
267 | 141 | |
268 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
269 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
142 | + return $recipients; |
|
143 | + } |
|
270 | 144 | |
271 | - } |
|
145 | + /** |
|
146 | + * Helper function to send an email. |
|
147 | + * |
|
148 | + * @param WPInv_Subscription $subscription |
|
149 | + * @param GetPaid_Notification_Email $email |
|
150 | + * @param string $type |
|
151 | + * @param array $extra_args Extra template args. |
|
152 | + */ |
|
153 | + public function send_email( $subscription, $email, $type, $extra_args = array() ) { |
|
154 | + |
|
155 | + if ( empty( $subscription ) ) { |
|
156 | + return; |
|
157 | + } |
|
158 | + |
|
159 | + if ( is_array( $subscription ) ) { |
|
160 | + $subscription = current( $subscription ); |
|
161 | + } |
|
162 | + |
|
163 | + if ( ! $subscription instanceof WPInv_Subscription ) { |
|
164 | + return; |
|
165 | + } |
|
166 | + |
|
167 | + // Abort in case the parent invoice does not exist. |
|
168 | + $invoice = $subscription->get_parent_invoice(); |
|
169 | + if ( ! $this->should_send_notification( $invoice ) ) { |
|
170 | + return; |
|
171 | + } |
|
172 | + |
|
173 | + if ( apply_filters( 'getpaid_skip_subscription_email', false, $type, $subscription ) ) { |
|
174 | + return; |
|
175 | + } |
|
176 | + |
|
177 | + do_action( 'getpaid_before_send_subscription_notification', $type, $subscription, $email ); |
|
178 | + |
|
179 | + $recipients = $this->get_recipients( $invoice ); |
|
180 | + $mailer = new GetPaid_Notification_Email_Sender(); |
|
181 | + $merge_tags = $email->get_merge_tags(); |
|
182 | + $content = $email->get_content( $merge_tags, $extra_args ); |
|
183 | + $subject = $email->add_merge_tags( $email->get_subject(), $merge_tags ); |
|
184 | + $attachments = $email->get_attachments(); |
|
185 | + |
|
186 | + $result = $mailer->send( |
|
187 | + apply_filters( 'getpaid_subscription_email_recipients', wpinv_parse_list( $recipients ), $email ), |
|
188 | + $subject, |
|
189 | + $content, |
|
190 | + $attachments |
|
191 | + ); |
|
192 | + |
|
193 | + // Maybe send a copy to the admin. |
|
194 | + if ( $email->include_admin_bcc() ) { |
|
195 | + $mailer->send( |
|
196 | + wpinv_get_admin_email(), |
|
197 | + $subject . __( ' - ADMIN BCC COPY', 'invoicing' ), |
|
198 | + $content, |
|
199 | + $attachments |
|
200 | + ); |
|
201 | + } |
|
202 | + |
|
203 | + if ( $result ) { |
|
204 | + $invoice->add_system_note( |
|
205 | + sprintf( |
|
206 | + __( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ), |
|
207 | + sanitize_key( $type ), |
|
208 | + $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
209 | + ) |
|
210 | + ); |
|
211 | + } else { |
|
212 | + $invoice->add_system_note( |
|
213 | + sprintf( |
|
214 | + __( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ), |
|
215 | + sanitize_key( $type ), |
|
216 | + $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
217 | + ) |
|
218 | + ); |
|
219 | + } |
|
220 | + |
|
221 | + do_action( 'getpaid_after_send_subscription_notification', $type, $subscription, $email ); |
|
272 | 222 | |
273 | - /** |
|
274 | - * Sends a subscription renewal reminder notification. |
|
275 | - * |
|
276 | - */ |
|
277 | - public function renewal_reminder() { |
|
223 | + } |
|
278 | 224 | |
279 | - $email = new GetPaid_Notification_Email( __FUNCTION__ ); |
|
225 | + /** |
|
226 | + * Sends a new trial notification. |
|
227 | + * |
|
228 | + * @param WPInv_Subscription $subscription |
|
229 | + */ |
|
230 | + public function subscription_trial( $subscription ) { |
|
280 | 231 | |
281 | - // Fetch reminder days. |
|
282 | - $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) ); |
|
232 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
233 | + $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
283 | 234 | |
284 | - // Abort if non is set. |
|
285 | - if ( empty( $reminder_days ) ) { |
|
286 | - return; |
|
287 | - } |
|
235 | + } |
|
288 | 236 | |
289 | - // Fetch matching subscriptions. |
|
237 | + /** |
|
238 | + * Sends a cancelled subscription notification. |
|
239 | + * |
|
240 | + * @param WPInv_Subscription $subscription |
|
241 | + */ |
|
242 | + public function subscription_cancelled( $subscription ) { |
|
243 | + |
|
244 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
245 | + $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
246 | + |
|
247 | + } |
|
248 | + |
|
249 | + /** |
|
250 | + * Sends a subscription expired notification. |
|
251 | + * |
|
252 | + * @param WPInv_Subscription $subscription |
|
253 | + */ |
|
254 | + public function subscription_expired( $subscription ) { |
|
255 | + |
|
256 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
257 | + $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
258 | + |
|
259 | + } |
|
260 | + |
|
261 | + /** |
|
262 | + * Sends a completed subscription notification. |
|
263 | + * |
|
264 | + * @param WPInv_Subscription $subscription |
|
265 | + */ |
|
266 | + public function subscription_complete( $subscription ) { |
|
267 | + |
|
268 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $subscription ); |
|
269 | + $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
270 | + |
|
271 | + } |
|
272 | + |
|
273 | + /** |
|
274 | + * Sends a subscription renewal reminder notification. |
|
275 | + * |
|
276 | + */ |
|
277 | + public function renewal_reminder() { |
|
278 | + |
|
279 | + $email = new GetPaid_Notification_Email( __FUNCTION__ ); |
|
280 | + |
|
281 | + // Fetch reminder days. |
|
282 | + $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) ); |
|
283 | + |
|
284 | + // Abort if non is set. |
|
285 | + if ( empty( $reminder_days ) ) { |
|
286 | + return; |
|
287 | + } |
|
288 | + |
|
289 | + // Fetch matching subscriptions. |
|
290 | 290 | $args = array( |
291 | 291 | 'number' => -1, |
292 | - 'count_total' => false, |
|
293 | - 'status' => 'trialling active', |
|
292 | + 'count_total' => false, |
|
293 | + 'status' => 'trialling active', |
|
294 | 294 | 'date_expires_query' => array( |
295 | - 'relation' => 'OR', |
|
295 | + 'relation' => 'OR', |
|
296 | 296 | ), |
297 | - ); |
|
297 | + ); |
|
298 | 298 | |
299 | - foreach ( $reminder_days as $days ) { |
|
300 | - $date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) ); |
|
299 | + foreach ( $reminder_days as $days ) { |
|
300 | + $date = date_parse( date( 'Y-m-d', strtotime( "+$days days", current_time( 'timestamp' ) ) ) ); |
|
301 | 301 | |
302 | - $args['date_expires_query'][] = array( |
|
303 | - 'year' => $date['year'], |
|
304 | - 'month' => $date['month'], |
|
305 | - 'day' => $date['day'], |
|
306 | - ); |
|
302 | + $args['date_expires_query'][] = array( |
|
303 | + 'year' => $date['year'], |
|
304 | + 'month' => $date['month'], |
|
305 | + 'day' => $date['day'], |
|
306 | + ); |
|
307 | 307 | |
308 | - } |
|
308 | + } |
|
309 | 309 | |
310 | - $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
310 | + $subscriptions = new GetPaid_Subscriptions_Query( $args ); |
|
311 | 311 | |
312 | 312 | foreach ( $subscriptions->get_results() as $subscription ) { |
313 | 313 | |
314 | - // Skip packages. |
|
315 | - if ( apply_filters( 'getpaid_send_subscription_renewal_reminder_email', true ) ) { |
|
316 | - $email->object = $subscription; |
|
317 | - $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
318 | - } |
|
319 | - } |
|
314 | + // Skip packages. |
|
315 | + if ( apply_filters( 'getpaid_send_subscription_renewal_reminder_email', true ) ) { |
|
316 | + $email->object = $subscription; |
|
317 | + $this->send_email( $subscription, $email, __FUNCTION__ ); |
|
318 | + } |
|
319 | + } |
|
320 | 320 | |
321 | - } |
|
321 | + } |
|
322 | 322 | |
323 | 323 | } |
@@ -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.6.10' ); |
|
26 | + define( 'WPINV_VERSION', '2.6.10' ); |
|
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 | /** |