@@ -5,7 +5,7 @@ discard block |
||
5 | 5 | * |
6 | 6 | */ |
7 | 7 | if ( ! defined( 'ABSPATH' ) ) { |
8 | - exit; |
|
8 | + exit; |
|
9 | 9 | } |
10 | 10 | |
11 | 11 | /** |
@@ -15,544 +15,544 @@ discard block |
||
15 | 15 | */ |
16 | 16 | class GetPaid_Invoice_Data_Store extends GetPaid_Data_Store_WP { |
17 | 17 | |
18 | - /** |
|
19 | - * Data stored in meta keys, but not considered "meta" for a discount. |
|
20 | - * |
|
21 | - * @since 1.0.19 |
|
22 | - * @var array |
|
23 | - */ |
|
24 | - protected $internal_meta_keys = array( |
|
25 | - '_wpinv_subscr_profile_id', |
|
26 | - '_wpinv_subscription_id', |
|
27 | - '_wpinv_taxes', |
|
28 | - '_wpinv_fees', |
|
29 | - '_wpinv_discounts', |
|
30 | - '_wpinv_submission_id', |
|
31 | - '_wpinv_payment_form', |
|
32 | - '_wpinv_is_viewed', |
|
33 | - '_wpinv_phone', |
|
34 | - '_wpinv_company_id', |
|
35 | - 'wpinv_shipping', |
|
36 | - 'wpinv_email_cc', |
|
37 | - 'wpinv_template', |
|
38 | - 'wpinv_created_via', |
|
39 | - ); |
|
40 | - |
|
41 | - /** |
|
42 | - * A map of meta keys to data props. |
|
43 | - * |
|
44 | - * @since 1.0.19 |
|
45 | - * |
|
46 | - * @var array |
|
47 | - */ |
|
48 | - protected $meta_key_to_props = array( |
|
49 | - '_wpinv_subscr_profile_id' => 'remote_subscription_id', |
|
50 | - '_wpinv_subscription_id' => 'subscription_id', |
|
51 | - '_wpinv_taxes' => 'taxes', |
|
52 | - '_wpinv_fees' => 'fees', |
|
53 | - '_wpinv_discounts' => 'discounts', |
|
54 | - '_wpinv_submission_id' => 'submission_id', |
|
55 | - '_wpinv_payment_form' => 'payment_form', |
|
56 | - '_wpinv_is_viewed' => 'is_viewed', |
|
57 | - 'wpinv_email_cc' => 'email_cc', |
|
58 | - 'wpinv_template' => 'template', |
|
59 | - 'wpinv_created_via' => 'created_via', |
|
60 | - '_wpinv_phone' => 'phone', |
|
61 | - '_wpinv_company_id' => 'company_id', |
|
62 | - 'wpinv_shipping' => 'shipping', |
|
63 | - ); |
|
64 | - |
|
65 | - /** |
|
66 | - * A map of database fields to data props. |
|
67 | - * |
|
68 | - * @since 1.0.19 |
|
69 | - * |
|
70 | - * @var array |
|
71 | - */ |
|
72 | - protected $database_fields_to_props = array( |
|
73 | - 'post_id' => 'id', |
|
74 | - 'number' => 'number', |
|
75 | - 'currency' => 'currency', |
|
76 | - 'key' => 'key', |
|
77 | - 'type' => 'type', |
|
78 | - 'mode' => 'mode', |
|
79 | - 'user_ip' => 'user_ip', |
|
80 | - 'first_name' => 'first_name', |
|
81 | - 'last_name' => 'last_name', |
|
82 | - 'address' => 'address', |
|
83 | - 'city' => 'city', |
|
84 | - 'state' => 'state', |
|
85 | - 'country' => 'country', |
|
86 | - 'zip' => 'zip', |
|
87 | - 'zip' => 'zip', |
|
88 | - 'adddress_confirmed' => 'address_confirmed', |
|
89 | - 'gateway' => 'gateway', |
|
90 | - 'transaction_id' => 'transaction_id', |
|
91 | - 'currency' => 'currency', |
|
92 | - 'subtotal' => 'subtotal', |
|
93 | - 'tax' => 'total_tax', |
|
94 | - 'fees_total' => 'total_fees', |
|
95 | - 'discount' => 'total_discount', |
|
96 | - 'total' => 'total', |
|
97 | - 'discount_code' => 'discount_code', |
|
98 | - 'disable_taxes' => 'disable_taxes', |
|
99 | - 'due_date' => 'due_date', |
|
100 | - 'completed_date' => 'completed_date', |
|
101 | - 'company' => 'company', |
|
102 | - 'vat_number' => 'vat_number', |
|
103 | - 'vat_rate' => 'vat_rate', |
|
104 | - ); |
|
105 | - |
|
106 | - /* |
|
18 | + /** |
|
19 | + * Data stored in meta keys, but not considered "meta" for a discount. |
|
20 | + * |
|
21 | + * @since 1.0.19 |
|
22 | + * @var array |
|
23 | + */ |
|
24 | + protected $internal_meta_keys = array( |
|
25 | + '_wpinv_subscr_profile_id', |
|
26 | + '_wpinv_subscription_id', |
|
27 | + '_wpinv_taxes', |
|
28 | + '_wpinv_fees', |
|
29 | + '_wpinv_discounts', |
|
30 | + '_wpinv_submission_id', |
|
31 | + '_wpinv_payment_form', |
|
32 | + '_wpinv_is_viewed', |
|
33 | + '_wpinv_phone', |
|
34 | + '_wpinv_company_id', |
|
35 | + 'wpinv_shipping', |
|
36 | + 'wpinv_email_cc', |
|
37 | + 'wpinv_template', |
|
38 | + 'wpinv_created_via', |
|
39 | + ); |
|
40 | + |
|
41 | + /** |
|
42 | + * A map of meta keys to data props. |
|
43 | + * |
|
44 | + * @since 1.0.19 |
|
45 | + * |
|
46 | + * @var array |
|
47 | + */ |
|
48 | + protected $meta_key_to_props = array( |
|
49 | + '_wpinv_subscr_profile_id' => 'remote_subscription_id', |
|
50 | + '_wpinv_subscription_id' => 'subscription_id', |
|
51 | + '_wpinv_taxes' => 'taxes', |
|
52 | + '_wpinv_fees' => 'fees', |
|
53 | + '_wpinv_discounts' => 'discounts', |
|
54 | + '_wpinv_submission_id' => 'submission_id', |
|
55 | + '_wpinv_payment_form' => 'payment_form', |
|
56 | + '_wpinv_is_viewed' => 'is_viewed', |
|
57 | + 'wpinv_email_cc' => 'email_cc', |
|
58 | + 'wpinv_template' => 'template', |
|
59 | + 'wpinv_created_via' => 'created_via', |
|
60 | + '_wpinv_phone' => 'phone', |
|
61 | + '_wpinv_company_id' => 'company_id', |
|
62 | + 'wpinv_shipping' => 'shipping', |
|
63 | + ); |
|
64 | + |
|
65 | + /** |
|
66 | + * A map of database fields to data props. |
|
67 | + * |
|
68 | + * @since 1.0.19 |
|
69 | + * |
|
70 | + * @var array |
|
71 | + */ |
|
72 | + protected $database_fields_to_props = array( |
|
73 | + 'post_id' => 'id', |
|
74 | + 'number' => 'number', |
|
75 | + 'currency' => 'currency', |
|
76 | + 'key' => 'key', |
|
77 | + 'type' => 'type', |
|
78 | + 'mode' => 'mode', |
|
79 | + 'user_ip' => 'user_ip', |
|
80 | + 'first_name' => 'first_name', |
|
81 | + 'last_name' => 'last_name', |
|
82 | + 'address' => 'address', |
|
83 | + 'city' => 'city', |
|
84 | + 'state' => 'state', |
|
85 | + 'country' => 'country', |
|
86 | + 'zip' => 'zip', |
|
87 | + 'zip' => 'zip', |
|
88 | + 'adddress_confirmed' => 'address_confirmed', |
|
89 | + 'gateway' => 'gateway', |
|
90 | + 'transaction_id' => 'transaction_id', |
|
91 | + 'currency' => 'currency', |
|
92 | + 'subtotal' => 'subtotal', |
|
93 | + 'tax' => 'total_tax', |
|
94 | + 'fees_total' => 'total_fees', |
|
95 | + 'discount' => 'total_discount', |
|
96 | + 'total' => 'total', |
|
97 | + 'discount_code' => 'discount_code', |
|
98 | + 'disable_taxes' => 'disable_taxes', |
|
99 | + 'due_date' => 'due_date', |
|
100 | + 'completed_date' => 'completed_date', |
|
101 | + 'company' => 'company', |
|
102 | + 'vat_number' => 'vat_number', |
|
103 | + 'vat_rate' => 'vat_rate', |
|
104 | + ); |
|
105 | + |
|
106 | + /* |
|
107 | 107 | |-------------------------------------------------------------------------- |
108 | 108 | | CRUD Methods |
109 | 109 | |-------------------------------------------------------------------------- |
110 | 110 | */ |
111 | 111 | |
112 | - /** |
|
113 | - * Method to create a new invoice in the database. |
|
114 | - * |
|
115 | - * @param WPInv_Invoice $invoice Invoice object. |
|
116 | - */ |
|
117 | - public function create( &$invoice ) { |
|
118 | - $invoice->set_version( WPINV_VERSION ); |
|
119 | - $invoice->set_date_created( current_time( 'mysql' ) ); |
|
120 | - |
|
121 | - // Create a new post. |
|
122 | - $id = wp_insert_post( |
|
123 | - apply_filters( |
|
124 | - 'getpaid_new_invoice_data', |
|
125 | - array( |
|
126 | - 'post_date' => $invoice->get_date_created( 'edit' ), |
|
127 | - 'post_type' => $invoice->get_post_type( 'edit' ), |
|
128 | - 'post_status' => $this->get_post_status( $invoice ), |
|
129 | - 'ping_status' => 'closed', |
|
130 | - 'post_author' => $invoice->get_user_id( 'edit' ), |
|
131 | - 'post_title' => $invoice->get_title( 'edit' ), |
|
132 | - 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
133 | - 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
134 | - ) |
|
135 | - ), |
|
136 | - true |
|
137 | - ); |
|
138 | - |
|
139 | - if ( $id && ! is_wp_error( $id ) ) { |
|
140 | - |
|
141 | - // Update the new id and regenerate a title. |
|
142 | - $invoice->set_id( $id ); |
|
143 | - |
|
144 | - $invoice->maybe_set_number(); |
|
145 | - |
|
146 | - wp_update_post( |
|
147 | - array( |
|
148 | - 'ID' => $invoice->get_id(), |
|
149 | - 'post_title' => $invoice->get_number( 'edit' ), |
|
150 | - 'post_name' => $invoice->get_path( 'edit' ), |
|
151 | - ) |
|
152 | - ); |
|
153 | - |
|
154 | - // Save special fields and items. |
|
155 | - $this->save_special_fields( $invoice ); |
|
156 | - $this->save_items( $invoice ); |
|
157 | - |
|
158 | - // Update meta data. |
|
159 | - $this->update_post_meta( $invoice ); |
|
160 | - $invoice->save_meta_data(); |
|
161 | - |
|
162 | - // Apply changes. |
|
163 | - $invoice->apply_changes(); |
|
164 | - $this->clear_caches( $invoice ); |
|
165 | - |
|
166 | - // Fires after a new invoice is created. |
|
167 | - do_action( 'getpaid_new_invoice', $invoice ); |
|
168 | - return true; |
|
169 | - } |
|
170 | - |
|
171 | - if ( is_wp_error( $id ) ) { |
|
172 | - $invoice->last_error = $id->get_error_message(); |
|
173 | - } |
|
174 | - |
|
175 | - return false; |
|
176 | - } |
|
177 | - |
|
178 | - /** |
|
179 | - * Method to read an invoice from the database. |
|
180 | - * |
|
181 | - * @param WPInv_Invoice $invoice Invoice object. |
|
182 | - * |
|
183 | - */ |
|
184 | - public function read( &$invoice ) { |
|
185 | - |
|
186 | - $invoice->set_defaults(); |
|
187 | - $invoice_object = get_post( $invoice->get_id() ); |
|
188 | - |
|
189 | - if ( ! $invoice->get_id() || ! $invoice_object || ! getpaid_is_invoice_post_type( $invoice_object->post_type ) ) { |
|
190 | - $invoice->last_error = __( 'Invalid invoice.', 'invoicing' ); |
|
191 | - $invoice->set_id( 0 ); |
|
192 | - return false; |
|
193 | - } |
|
194 | - |
|
195 | - $invoice->set_props( |
|
196 | - array( |
|
197 | - 'date_created' => 0 < $invoice_object->post_date ? $invoice_object->post_date : null, |
|
198 | - 'date_modified' => 0 < $invoice_object->post_modified ? $invoice_object->post_modified : null, |
|
199 | - 'status' => $invoice_object->post_status, |
|
200 | - 'author' => $invoice_object->post_author, |
|
201 | - 'description' => $invoice_object->post_excerpt, |
|
202 | - 'parent_id' => $invoice_object->post_parent, |
|
203 | - 'name' => $invoice_object->post_title, |
|
204 | - 'path' => $invoice_object->post_name, |
|
205 | - 'post_type' => $invoice_object->post_type, |
|
206 | - ) |
|
207 | - ); |
|
208 | - |
|
209 | - $invoice->set_type( $invoice_object->post_type ); |
|
210 | - |
|
211 | - $this->read_object_data( $invoice, $invoice_object ); |
|
212 | - $this->add_special_fields( $invoice ); |
|
213 | - $this->add_items( $invoice ); |
|
214 | - $invoice->read_meta_data(); |
|
215 | - $invoice->set_object_read( true ); |
|
216 | - do_action( 'getpaid_read_invoice', $invoice ); |
|
217 | - |
|
218 | - } |
|
219 | - |
|
220 | - /** |
|
221 | - * Method to update an invoice in the database. |
|
222 | - * |
|
223 | - * @param WPInv_Invoice $invoice Invoice object. |
|
224 | - */ |
|
225 | - public function update( &$invoice ) { |
|
226 | - $invoice->save_meta_data(); |
|
227 | - $invoice->set_version( WPINV_VERSION ); |
|
228 | - |
|
229 | - if ( null === $invoice->get_date_created( 'edit' ) ) { |
|
230 | - $invoice->set_date_created( current_time( 'mysql' ) ); |
|
231 | - } |
|
232 | - |
|
233 | - // Ensure both the key and number are set. |
|
234 | - $invoice->get_path(); |
|
235 | - |
|
236 | - // Grab the current status so we can compare. |
|
237 | - $previous_status = get_post_status( $invoice->get_id() ); |
|
238 | - |
|
239 | - $changes = $invoice->get_changes(); |
|
240 | - |
|
241 | - // Only update the post when the post data changes. |
|
242 | - if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path' ), array_keys( $changes ) ) ) { |
|
243 | - $post_data = array( |
|
244 | - 'post_date' => $invoice->get_date_created( 'edit' ), |
|
245 | - 'post_date_gmt' => $invoice->get_date_created_gmt( 'edit' ), |
|
246 | - 'post_status' => $invoice->get_status( 'edit' ), |
|
247 | - 'post_title' => $invoice->get_name( 'edit' ), |
|
248 | - 'post_author' => $invoice->get_user_id( 'edit' ), |
|
249 | - 'post_modified' => $invoice->get_date_modified( 'edit' ), |
|
250 | - 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
251 | - 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
252 | - 'post_name' => $invoice->get_path( 'edit' ), |
|
253 | - 'post_type' => $invoice->get_post_type( 'edit' ), |
|
254 | - ); |
|
255 | - |
|
256 | - /** |
|
257 | - * When updating this object, to prevent infinite loops, use $wpdb |
|
258 | - * to update data, since wp_update_post spawns more calls to the |
|
259 | - * save_post action. |
|
260 | - * |
|
261 | - * This ensures hooks are fired by either WP itself (admin screen save), |
|
262 | - * or an update purely from CRUD. |
|
263 | - */ |
|
264 | - if ( doing_action( 'save_post' ) ) { |
|
265 | - $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $invoice->get_id() ) ); |
|
266 | - clean_post_cache( $invoice->get_id() ); |
|
267 | - } else { |
|
268 | - wp_update_post( array_merge( array( 'ID' => $invoice->get_id() ), $post_data ) ); |
|
269 | - } |
|
270 | - $invoice->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
271 | - } |
|
272 | - |
|
273 | - // Update meta data. |
|
274 | - $this->update_post_meta( $invoice ); |
|
275 | - |
|
276 | - // Save special fields and items. |
|
277 | - $this->save_special_fields( $invoice ); |
|
278 | - $this->save_items( $invoice ); |
|
279 | - |
|
280 | - // Apply the changes. |
|
281 | - $invoice->apply_changes(); |
|
282 | - |
|
283 | - // Clear caches. |
|
284 | - $this->clear_caches( $invoice ); |
|
285 | - |
|
286 | - // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
|
287 | - $new_status = $invoice->get_status( 'edit' ); |
|
288 | - |
|
289 | - if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
290 | - do_action( 'getpaid_new_invoice', $invoice ); |
|
291 | - } else { |
|
292 | - do_action( 'getpaid_update_invoice', $invoice ); |
|
293 | - } |
|
294 | - |
|
295 | - } |
|
296 | - |
|
297 | - /* |
|
112 | + /** |
|
113 | + * Method to create a new invoice in the database. |
|
114 | + * |
|
115 | + * @param WPInv_Invoice $invoice Invoice object. |
|
116 | + */ |
|
117 | + public function create( &$invoice ) { |
|
118 | + $invoice->set_version( WPINV_VERSION ); |
|
119 | + $invoice->set_date_created( current_time( 'mysql' ) ); |
|
120 | + |
|
121 | + // Create a new post. |
|
122 | + $id = wp_insert_post( |
|
123 | + apply_filters( |
|
124 | + 'getpaid_new_invoice_data', |
|
125 | + array( |
|
126 | + 'post_date' => $invoice->get_date_created( 'edit' ), |
|
127 | + 'post_type' => $invoice->get_post_type( 'edit' ), |
|
128 | + 'post_status' => $this->get_post_status( $invoice ), |
|
129 | + 'ping_status' => 'closed', |
|
130 | + 'post_author' => $invoice->get_user_id( 'edit' ), |
|
131 | + 'post_title' => $invoice->get_title( 'edit' ), |
|
132 | + 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
133 | + 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
134 | + ) |
|
135 | + ), |
|
136 | + true |
|
137 | + ); |
|
138 | + |
|
139 | + if ( $id && ! is_wp_error( $id ) ) { |
|
140 | + |
|
141 | + // Update the new id and regenerate a title. |
|
142 | + $invoice->set_id( $id ); |
|
143 | + |
|
144 | + $invoice->maybe_set_number(); |
|
145 | + |
|
146 | + wp_update_post( |
|
147 | + array( |
|
148 | + 'ID' => $invoice->get_id(), |
|
149 | + 'post_title' => $invoice->get_number( 'edit' ), |
|
150 | + 'post_name' => $invoice->get_path( 'edit' ), |
|
151 | + ) |
|
152 | + ); |
|
153 | + |
|
154 | + // Save special fields and items. |
|
155 | + $this->save_special_fields( $invoice ); |
|
156 | + $this->save_items( $invoice ); |
|
157 | + |
|
158 | + // Update meta data. |
|
159 | + $this->update_post_meta( $invoice ); |
|
160 | + $invoice->save_meta_data(); |
|
161 | + |
|
162 | + // Apply changes. |
|
163 | + $invoice->apply_changes(); |
|
164 | + $this->clear_caches( $invoice ); |
|
165 | + |
|
166 | + // Fires after a new invoice is created. |
|
167 | + do_action( 'getpaid_new_invoice', $invoice ); |
|
168 | + return true; |
|
169 | + } |
|
170 | + |
|
171 | + if ( is_wp_error( $id ) ) { |
|
172 | + $invoice->last_error = $id->get_error_message(); |
|
173 | + } |
|
174 | + |
|
175 | + return false; |
|
176 | + } |
|
177 | + |
|
178 | + /** |
|
179 | + * Method to read an invoice from the database. |
|
180 | + * |
|
181 | + * @param WPInv_Invoice $invoice Invoice object. |
|
182 | + * |
|
183 | + */ |
|
184 | + public function read( &$invoice ) { |
|
185 | + |
|
186 | + $invoice->set_defaults(); |
|
187 | + $invoice_object = get_post( $invoice->get_id() ); |
|
188 | + |
|
189 | + if ( ! $invoice->get_id() || ! $invoice_object || ! getpaid_is_invoice_post_type( $invoice_object->post_type ) ) { |
|
190 | + $invoice->last_error = __( 'Invalid invoice.', 'invoicing' ); |
|
191 | + $invoice->set_id( 0 ); |
|
192 | + return false; |
|
193 | + } |
|
194 | + |
|
195 | + $invoice->set_props( |
|
196 | + array( |
|
197 | + 'date_created' => 0 < $invoice_object->post_date ? $invoice_object->post_date : null, |
|
198 | + 'date_modified' => 0 < $invoice_object->post_modified ? $invoice_object->post_modified : null, |
|
199 | + 'status' => $invoice_object->post_status, |
|
200 | + 'author' => $invoice_object->post_author, |
|
201 | + 'description' => $invoice_object->post_excerpt, |
|
202 | + 'parent_id' => $invoice_object->post_parent, |
|
203 | + 'name' => $invoice_object->post_title, |
|
204 | + 'path' => $invoice_object->post_name, |
|
205 | + 'post_type' => $invoice_object->post_type, |
|
206 | + ) |
|
207 | + ); |
|
208 | + |
|
209 | + $invoice->set_type( $invoice_object->post_type ); |
|
210 | + |
|
211 | + $this->read_object_data( $invoice, $invoice_object ); |
|
212 | + $this->add_special_fields( $invoice ); |
|
213 | + $this->add_items( $invoice ); |
|
214 | + $invoice->read_meta_data(); |
|
215 | + $invoice->set_object_read( true ); |
|
216 | + do_action( 'getpaid_read_invoice', $invoice ); |
|
217 | + |
|
218 | + } |
|
219 | + |
|
220 | + /** |
|
221 | + * Method to update an invoice in the database. |
|
222 | + * |
|
223 | + * @param WPInv_Invoice $invoice Invoice object. |
|
224 | + */ |
|
225 | + public function update( &$invoice ) { |
|
226 | + $invoice->save_meta_data(); |
|
227 | + $invoice->set_version( WPINV_VERSION ); |
|
228 | + |
|
229 | + if ( null === $invoice->get_date_created( 'edit' ) ) { |
|
230 | + $invoice->set_date_created( current_time( 'mysql' ) ); |
|
231 | + } |
|
232 | + |
|
233 | + // Ensure both the key and number are set. |
|
234 | + $invoice->get_path(); |
|
235 | + |
|
236 | + // Grab the current status so we can compare. |
|
237 | + $previous_status = get_post_status( $invoice->get_id() ); |
|
238 | + |
|
239 | + $changes = $invoice->get_changes(); |
|
240 | + |
|
241 | + // Only update the post when the post data changes. |
|
242 | + if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path' ), array_keys( $changes ) ) ) { |
|
243 | + $post_data = array( |
|
244 | + 'post_date' => $invoice->get_date_created( 'edit' ), |
|
245 | + 'post_date_gmt' => $invoice->get_date_created_gmt( 'edit' ), |
|
246 | + 'post_status' => $invoice->get_status( 'edit' ), |
|
247 | + 'post_title' => $invoice->get_name( 'edit' ), |
|
248 | + 'post_author' => $invoice->get_user_id( 'edit' ), |
|
249 | + 'post_modified' => $invoice->get_date_modified( 'edit' ), |
|
250 | + 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
251 | + 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
252 | + 'post_name' => $invoice->get_path( 'edit' ), |
|
253 | + 'post_type' => $invoice->get_post_type( 'edit' ), |
|
254 | + ); |
|
255 | + |
|
256 | + /** |
|
257 | + * When updating this object, to prevent infinite loops, use $wpdb |
|
258 | + * to update data, since wp_update_post spawns more calls to the |
|
259 | + * save_post action. |
|
260 | + * |
|
261 | + * This ensures hooks are fired by either WP itself (admin screen save), |
|
262 | + * or an update purely from CRUD. |
|
263 | + */ |
|
264 | + if ( doing_action( 'save_post' ) ) { |
|
265 | + $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $invoice->get_id() ) ); |
|
266 | + clean_post_cache( $invoice->get_id() ); |
|
267 | + } else { |
|
268 | + wp_update_post( array_merge( array( 'ID' => $invoice->get_id() ), $post_data ) ); |
|
269 | + } |
|
270 | + $invoice->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
271 | + } |
|
272 | + |
|
273 | + // Update meta data. |
|
274 | + $this->update_post_meta( $invoice ); |
|
275 | + |
|
276 | + // Save special fields and items. |
|
277 | + $this->save_special_fields( $invoice ); |
|
278 | + $this->save_items( $invoice ); |
|
279 | + |
|
280 | + // Apply the changes. |
|
281 | + $invoice->apply_changes(); |
|
282 | + |
|
283 | + // Clear caches. |
|
284 | + $this->clear_caches( $invoice ); |
|
285 | + |
|
286 | + // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
|
287 | + $new_status = $invoice->get_status( 'edit' ); |
|
288 | + |
|
289 | + if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
290 | + do_action( 'getpaid_new_invoice', $invoice ); |
|
291 | + } else { |
|
292 | + do_action( 'getpaid_update_invoice', $invoice ); |
|
293 | + } |
|
294 | + |
|
295 | + } |
|
296 | + |
|
297 | + /* |
|
298 | 298 | |-------------------------------------------------------------------------- |
299 | 299 | | Additional Methods |
300 | 300 | |-------------------------------------------------------------------------- |
301 | 301 | */ |
302 | 302 | |
303 | - /** |
|
303 | + /** |
|
304 | 304 | * Retrieves special fields and adds to the invoice. |
305 | - * |
|
306 | - * @param WPInv_Invoice $invoice Invoice object. |
|
305 | + * |
|
306 | + * @param WPInv_Invoice $invoice Invoice object. |
|
307 | 307 | */ |
308 | 308 | public function add_special_fields( &$invoice ) { |
309 | - global $wpdb; |
|
310 | - |
|
311 | - // Maybe retrieve from the cache. |
|
312 | - $data = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
313 | - |
|
314 | - // If not found, retrieve from the db. |
|
315 | - if ( false === $data ) { |
|
316 | - $table = $wpdb->prefix . 'getpaid_invoices'; |
|
317 | - |
|
318 | - $data = $wpdb->get_row( |
|
319 | - $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id() ), |
|
320 | - ARRAY_A |
|
321 | - ); |
|
322 | - |
|
323 | - // Update the cache with our data |
|
324 | - wp_cache_set( $invoice->get_id(), $data, 'getpaid_invoice_special_fields' ); |
|
325 | - |
|
326 | - } |
|
327 | - |
|
328 | - // Abort if the data does not exist. |
|
329 | - if ( empty( $data ) ) { |
|
330 | - $invoice->set_object_read( true ); |
|
331 | - $invoice->set_props( wpinv_get_user_address( $invoice->get_user_id() ) ); |
|
332 | - return; |
|
333 | - } |
|
334 | - |
|
335 | - $props = array(); |
|
336 | - |
|
337 | - foreach ( $this->database_fields_to_props as $db_field => $prop ) { |
|
338 | - |
|
339 | - if ( $db_field == 'post_id' ) { |
|
340 | - continue; |
|
341 | - } |
|
342 | - |
|
343 | - $props[ $prop ] = $data[ $db_field ]; |
|
344 | - } |
|
345 | - |
|
346 | - $invoice->set_props( $props ); |
|
347 | - |
|
348 | - } |
|
349 | - |
|
350 | - /** |
|
351 | - * Gets a list of special fields that need updated based on change state |
|
352 | - * or if they are present in the database or not. |
|
353 | - * |
|
354 | - * @param WPInv_Invoice $invoice The Invoice object. |
|
355 | - * @return array A mapping of field keys => prop names, filtered by ones that should be updated. |
|
356 | - */ |
|
357 | - protected function get_special_fields_to_update( $invoice ) { |
|
358 | - $fields_to_update = array(); |
|
359 | - $changed_props = $invoice->get_changes(); |
|
360 | - |
|
361 | - // Props should be updated if they are a part of the $changed array or don't exist yet. |
|
362 | - foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
363 | - if ( array_key_exists( $prop, $changed_props ) ) { |
|
364 | - $fields_to_update[ $database_field ] = $prop; |
|
365 | - } |
|
366 | - } |
|
367 | - |
|
368 | - return $fields_to_update; |
|
369 | - } |
|
370 | - |
|
371 | - /** |
|
372 | - * Helper method that updates all the database fields for an invoice based on it's settings in the WPInv_Invoice class. |
|
373 | - * |
|
374 | - * @param WPInv_Invoice $invoice WPInv_Invoice object. |
|
375 | - * @since 1.0.19 |
|
376 | - */ |
|
377 | - protected function update_special_fields( &$invoice ) { |
|
378 | - global $wpdb; |
|
379 | - |
|
380 | - $updated_props = array(); |
|
381 | - $fields_to_update = $this->get_special_fields_to_update( $invoice ); |
|
382 | - |
|
383 | - foreach ( $fields_to_update as $database_field => $prop ) { |
|
384 | - $value = $invoice->{"get_$prop"}( 'edit' ); |
|
385 | - $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
386 | - $value = is_bool( $value ) ? (int) $value : $value; |
|
387 | - $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
388 | - } |
|
389 | - |
|
390 | - if ( ! empty( $updated_props ) ) { |
|
391 | - |
|
392 | - $table = $wpdb->prefix . 'getpaid_invoices'; |
|
393 | - $wpdb->update( $table, $updated_props, array( 'post_id' => $invoice->get_id() ) ); |
|
394 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
395 | - do_action( 'getpaid_invoice_update_database_fields', $invoice, $updated_props ); |
|
396 | - |
|
397 | - } |
|
398 | - |
|
399 | - } |
|
400 | - |
|
401 | - /** |
|
402 | - * Helper method that inserts special fields to the database. |
|
403 | - * |
|
404 | - * @param WPInv_Invoice $invoice WPInv_Invoice object. |
|
405 | - * @since 1.0.19 |
|
406 | - */ |
|
407 | - protected function insert_special_fields( &$invoice ) { |
|
408 | - global $wpdb; |
|
409 | - |
|
410 | - $updated_props = array(); |
|
411 | - |
|
412 | - foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
413 | - $value = $invoice->{"get_$prop"}( 'edit' ); |
|
414 | - $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
415 | - $value = is_bool( $value ) ? (int) $value : $value; |
|
416 | - $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
417 | - } |
|
418 | - |
|
419 | - $table = $wpdb->prefix . 'getpaid_invoices'; |
|
420 | - $wpdb->insert( $table, $updated_props ); |
|
421 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
422 | - do_action( 'getpaid_invoice_insert_database_fields', $invoice, $updated_props ); |
|
423 | - |
|
424 | - } |
|
425 | - |
|
426 | - /** |
|
309 | + global $wpdb; |
|
310 | + |
|
311 | + // Maybe retrieve from the cache. |
|
312 | + $data = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
313 | + |
|
314 | + // If not found, retrieve from the db. |
|
315 | + if ( false === $data ) { |
|
316 | + $table = $wpdb->prefix . 'getpaid_invoices'; |
|
317 | + |
|
318 | + $data = $wpdb->get_row( |
|
319 | + $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id() ), |
|
320 | + ARRAY_A |
|
321 | + ); |
|
322 | + |
|
323 | + // Update the cache with our data |
|
324 | + wp_cache_set( $invoice->get_id(), $data, 'getpaid_invoice_special_fields' ); |
|
325 | + |
|
326 | + } |
|
327 | + |
|
328 | + // Abort if the data does not exist. |
|
329 | + if ( empty( $data ) ) { |
|
330 | + $invoice->set_object_read( true ); |
|
331 | + $invoice->set_props( wpinv_get_user_address( $invoice->get_user_id() ) ); |
|
332 | + return; |
|
333 | + } |
|
334 | + |
|
335 | + $props = array(); |
|
336 | + |
|
337 | + foreach ( $this->database_fields_to_props as $db_field => $prop ) { |
|
338 | + |
|
339 | + if ( $db_field == 'post_id' ) { |
|
340 | + continue; |
|
341 | + } |
|
342 | + |
|
343 | + $props[ $prop ] = $data[ $db_field ]; |
|
344 | + } |
|
345 | + |
|
346 | + $invoice->set_props( $props ); |
|
347 | + |
|
348 | + } |
|
349 | + |
|
350 | + /** |
|
351 | + * Gets a list of special fields that need updated based on change state |
|
352 | + * or if they are present in the database or not. |
|
353 | + * |
|
354 | + * @param WPInv_Invoice $invoice The Invoice object. |
|
355 | + * @return array A mapping of field keys => prop names, filtered by ones that should be updated. |
|
356 | + */ |
|
357 | + protected function get_special_fields_to_update( $invoice ) { |
|
358 | + $fields_to_update = array(); |
|
359 | + $changed_props = $invoice->get_changes(); |
|
360 | + |
|
361 | + // Props should be updated if they are a part of the $changed array or don't exist yet. |
|
362 | + foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
363 | + if ( array_key_exists( $prop, $changed_props ) ) { |
|
364 | + $fields_to_update[ $database_field ] = $prop; |
|
365 | + } |
|
366 | + } |
|
367 | + |
|
368 | + return $fields_to_update; |
|
369 | + } |
|
370 | + |
|
371 | + /** |
|
372 | + * Helper method that updates all the database fields for an invoice based on it's settings in the WPInv_Invoice class. |
|
373 | + * |
|
374 | + * @param WPInv_Invoice $invoice WPInv_Invoice object. |
|
375 | + * @since 1.0.19 |
|
376 | + */ |
|
377 | + protected function update_special_fields( &$invoice ) { |
|
378 | + global $wpdb; |
|
379 | + |
|
380 | + $updated_props = array(); |
|
381 | + $fields_to_update = $this->get_special_fields_to_update( $invoice ); |
|
382 | + |
|
383 | + foreach ( $fields_to_update as $database_field => $prop ) { |
|
384 | + $value = $invoice->{"get_$prop"}( 'edit' ); |
|
385 | + $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
386 | + $value = is_bool( $value ) ? (int) $value : $value; |
|
387 | + $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
388 | + } |
|
389 | + |
|
390 | + if ( ! empty( $updated_props ) ) { |
|
391 | + |
|
392 | + $table = $wpdb->prefix . 'getpaid_invoices'; |
|
393 | + $wpdb->update( $table, $updated_props, array( 'post_id' => $invoice->get_id() ) ); |
|
394 | + wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
395 | + do_action( 'getpaid_invoice_update_database_fields', $invoice, $updated_props ); |
|
396 | + |
|
397 | + } |
|
398 | + |
|
399 | + } |
|
400 | + |
|
401 | + /** |
|
402 | + * Helper method that inserts special fields to the database. |
|
403 | + * |
|
404 | + * @param WPInv_Invoice $invoice WPInv_Invoice object. |
|
405 | + * @since 1.0.19 |
|
406 | + */ |
|
407 | + protected function insert_special_fields( &$invoice ) { |
|
408 | + global $wpdb; |
|
409 | + |
|
410 | + $updated_props = array(); |
|
411 | + |
|
412 | + foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
413 | + $value = $invoice->{"get_$prop"}( 'edit' ); |
|
414 | + $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
415 | + $value = is_bool( $value ) ? (int) $value : $value; |
|
416 | + $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
417 | + } |
|
418 | + |
|
419 | + $table = $wpdb->prefix . 'getpaid_invoices'; |
|
420 | + $wpdb->insert( $table, $updated_props ); |
|
421 | + wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
422 | + do_action( 'getpaid_invoice_insert_database_fields', $invoice, $updated_props ); |
|
423 | + |
|
424 | + } |
|
425 | + |
|
426 | + /** |
|
427 | 427 | * Saves all special fields. |
428 | - * |
|
429 | - * @param WPInv_Invoice $invoice Invoice object. |
|
428 | + * |
|
429 | + * @param WPInv_Invoice $invoice Invoice object. |
|
430 | 430 | */ |
431 | 431 | public function save_special_fields( &$invoice ) { |
432 | - global $wpdb; |
|
432 | + global $wpdb; |
|
433 | 433 | |
434 | - // The invoices table. |
|
435 | - $table = $wpdb->prefix . 'getpaid_invoices'; |
|
436 | - $id = (int) $invoice->get_id(); |
|
437 | - $invoice->maybe_set_key(); |
|
434 | + // The invoices table. |
|
435 | + $table = $wpdb->prefix . 'getpaid_invoices'; |
|
436 | + $id = (int) $invoice->get_id(); |
|
437 | + $invoice->maybe_set_key(); |
|
438 | 438 | |
439 | - if ( $wpdb->get_var( "SELECT `post_id` FROM $table WHERE `post_id`= $id" ) ) { |
|
439 | + if ( $wpdb->get_var( "SELECT `post_id` FROM $table WHERE `post_id`= $id" ) ) { |
|
440 | 440 | |
441 | - $this->update_special_fields( $invoice ); |
|
441 | + $this->update_special_fields( $invoice ); |
|
442 | 442 | |
443 | - } else { |
|
443 | + } else { |
|
444 | 444 | |
445 | - $this->insert_special_fields( $invoice ); |
|
445 | + $this->insert_special_fields( $invoice ); |
|
446 | 446 | |
447 | - } |
|
447 | + } |
|
448 | 448 | |
449 | - } |
|
449 | + } |
|
450 | 450 | |
451 | - /** |
|
451 | + /** |
|
452 | 452 | * Set's up cart details. |
453 | - * |
|
454 | - * @param WPInv_Invoice $invoice Invoice object. |
|
453 | + * |
|
454 | + * @param WPInv_Invoice $invoice Invoice object. |
|
455 | 455 | */ |
456 | 456 | public function add_items( &$invoice ) { |
457 | - global $wpdb; |
|
457 | + global $wpdb; |
|
458 | 458 | |
459 | - // Maybe retrieve from the cache. |
|
460 | - $items = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
459 | + // Maybe retrieve from the cache. |
|
460 | + $items = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
461 | 461 | |
462 | - // If not found, retrieve from the db. |
|
463 | - if ( false === $items ) { |
|
464 | - $table = $wpdb->prefix . 'getpaid_invoice_items'; |
|
462 | + // If not found, retrieve from the db. |
|
463 | + if ( false === $items ) { |
|
464 | + $table = $wpdb->prefix . 'getpaid_invoice_items'; |
|
465 | 465 | |
466 | - $items = $wpdb->get_results( |
|
467 | - $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id() ) |
|
468 | - ); |
|
466 | + $items = $wpdb->get_results( |
|
467 | + $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id() ) |
|
468 | + ); |
|
469 | 469 | |
470 | - // Update the cache with our data |
|
471 | - wp_cache_set( $invoice->get_id(), $items, 'getpaid_invoice_cart_details' ); |
|
470 | + // Update the cache with our data |
|
471 | + wp_cache_set( $invoice->get_id(), $items, 'getpaid_invoice_cart_details' ); |
|
472 | 472 | |
473 | - } |
|
473 | + } |
|
474 | 474 | |
475 | - // Abort if no items found. |
|
475 | + // Abort if no items found. |
|
476 | 476 | if ( empty( $items ) ) { |
477 | 477 | return; |
478 | - } |
|
479 | - |
|
480 | - $_items = array(); |
|
481 | - foreach ( $items as $item_data ) { |
|
482 | - $item = new GetPaid_Form_Item( $item_data->item_id ); |
|
483 | - |
|
484 | - // Set item data. |
|
485 | - $item->item_tax = wpinv_sanitize_amount( $item_data->tax ); |
|
486 | - $item->item_discount = wpinv_sanitize_amount( $item_data->discount ); |
|
487 | - $item->set_name( $item_data->item_name ); |
|
488 | - $item->set_description( $item_data->item_description ); |
|
489 | - $item->set_price( $item_data->item_price ); |
|
490 | - $item->set_quantity( $item_data->quantity ); |
|
491 | - $item->set_item_meta( $item_data->meta ); |
|
492 | - $_items[] = $item; |
|
493 | - } |
|
494 | - |
|
495 | - $invoice->set_items( $_items ); |
|
496 | - } |
|
497 | - |
|
498 | - /** |
|
478 | + } |
|
479 | + |
|
480 | + $_items = array(); |
|
481 | + foreach ( $items as $item_data ) { |
|
482 | + $item = new GetPaid_Form_Item( $item_data->item_id ); |
|
483 | + |
|
484 | + // Set item data. |
|
485 | + $item->item_tax = wpinv_sanitize_amount( $item_data->tax ); |
|
486 | + $item->item_discount = wpinv_sanitize_amount( $item_data->discount ); |
|
487 | + $item->set_name( $item_data->item_name ); |
|
488 | + $item->set_description( $item_data->item_description ); |
|
489 | + $item->set_price( $item_data->item_price ); |
|
490 | + $item->set_quantity( $item_data->quantity ); |
|
491 | + $item->set_item_meta( $item_data->meta ); |
|
492 | + $_items[] = $item; |
|
493 | + } |
|
494 | + |
|
495 | + $invoice->set_items( $_items ); |
|
496 | + } |
|
497 | + |
|
498 | + /** |
|
499 | 499 | * Saves cart details. |
500 | - * |
|
501 | - * @param WPInv_Invoice $invoice Invoice object. |
|
500 | + * |
|
501 | + * @param WPInv_Invoice $invoice Invoice object. |
|
502 | 502 | */ |
503 | 503 | public function save_items( $invoice ) { |
504 | 504 | |
505 | - // Delete previously existing items. |
|
506 | - $this->delete_items( $invoice ); |
|
505 | + // Delete previously existing items. |
|
506 | + $this->delete_items( $invoice ); |
|
507 | 507 | |
508 | - $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
508 | + $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
509 | 509 | |
510 | - foreach ( $invoice->get_cart_details() as $item_data ) { |
|
511 | - $item_data = array_map( 'maybe_serialize', $item_data ); |
|
512 | - $GLOBALS['wpdb']->insert( $table, $item_data ); |
|
513 | - } |
|
510 | + foreach ( $invoice->get_cart_details() as $item_data ) { |
|
511 | + $item_data = array_map( 'maybe_serialize', $item_data ); |
|
512 | + $GLOBALS['wpdb']->insert( $table, $item_data ); |
|
513 | + } |
|
514 | 514 | |
515 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
516 | - do_action( 'getpaid_invoice_save_items', $invoice ); |
|
515 | + wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
516 | + do_action( 'getpaid_invoice_save_items', $invoice ); |
|
517 | 517 | |
518 | - } |
|
518 | + } |
|
519 | 519 | |
520 | - /** |
|
520 | + /** |
|
521 | 521 | * Deletes an invoice's cart details from the database. |
522 | - * |
|
523 | - * @param WPInv_Invoice $invoice Invoice object. |
|
522 | + * |
|
523 | + * @param WPInv_Invoice $invoice Invoice object. |
|
524 | 524 | */ |
525 | 525 | public function delete_items( $invoice ) { |
526 | - $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
527 | - return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
528 | - } |
|
526 | + $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
527 | + return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
528 | + } |
|
529 | 529 | |
530 | - /** |
|
530 | + /** |
|
531 | 531 | * Deletes an invoice's special fields from the database. |
532 | - * |
|
533 | - * @param WPInv_Invoice $invoice Invoice object. |
|
532 | + * |
|
533 | + * @param WPInv_Invoice $invoice Invoice object. |
|
534 | 534 | */ |
535 | 535 | public function delete_special_fields( $invoice ) { |
536 | - $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoices'; |
|
537 | - return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
538 | - } |
|
539 | - |
|
540 | - /** |
|
541 | - * Get the status to save to the post object. |
|
542 | - * |
|
543 | - * |
|
544 | - * @since 1.0.19 |
|
545 | - * @param WPInv_Invoice $object GetPaid_Data object. |
|
546 | - * @return string |
|
547 | - */ |
|
548 | - protected function get_post_status( $object ) { |
|
549 | - $object_status = $object->get_status( 'edit' ); |
|
550 | - |
|
551 | - if ( ! $object_status ) { |
|
552 | - $object_status = $object->get_default_status(); |
|
553 | - } |
|
554 | - |
|
555 | - return $object_status; |
|
556 | - } |
|
536 | + $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoices'; |
|
537 | + return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
538 | + } |
|
539 | + |
|
540 | + /** |
|
541 | + * Get the status to save to the post object. |
|
542 | + * |
|
543 | + * |
|
544 | + * @since 1.0.19 |
|
545 | + * @param WPInv_Invoice $object GetPaid_Data object. |
|
546 | + * @return string |
|
547 | + */ |
|
548 | + protected function get_post_status( $object ) { |
|
549 | + $object_status = $object->get_status( 'edit' ); |
|
550 | + |
|
551 | + if ( ! $object_status ) { |
|
552 | + $object_status = $object->get_default_status(); |
|
553 | + } |
|
554 | + |
|
555 | + return $object_status; |
|
556 | + } |
|
557 | 557 | |
558 | 558 | } |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * GetPaid_Invoice_Data_Store class file. |
5 | 5 | * |
6 | 6 | */ |
7 | -if ( ! defined( 'ABSPATH' ) ) { |
|
7 | +if (!defined('ABSPATH')) { |
|
8 | 8 | exit; |
9 | 9 | } |
10 | 10 | |
@@ -114,61 +114,61 @@ discard block |
||
114 | 114 | * |
115 | 115 | * @param WPInv_Invoice $invoice Invoice object. |
116 | 116 | */ |
117 | - public function create( &$invoice ) { |
|
118 | - $invoice->set_version( WPINV_VERSION ); |
|
119 | - $invoice->set_date_created( current_time( 'mysql' ) ); |
|
117 | + public function create(&$invoice) { |
|
118 | + $invoice->set_version(WPINV_VERSION); |
|
119 | + $invoice->set_date_created(current_time('mysql')); |
|
120 | 120 | |
121 | 121 | // Create a new post. |
122 | 122 | $id = wp_insert_post( |
123 | 123 | apply_filters( |
124 | 124 | 'getpaid_new_invoice_data', |
125 | 125 | array( |
126 | - 'post_date' => $invoice->get_date_created( 'edit' ), |
|
127 | - 'post_type' => $invoice->get_post_type( 'edit' ), |
|
128 | - 'post_status' => $this->get_post_status( $invoice ), |
|
126 | + 'post_date' => $invoice->get_date_created('edit'), |
|
127 | + 'post_type' => $invoice->get_post_type('edit'), |
|
128 | + 'post_status' => $this->get_post_status($invoice), |
|
129 | 129 | 'ping_status' => 'closed', |
130 | - 'post_author' => $invoice->get_user_id( 'edit' ), |
|
131 | - 'post_title' => $invoice->get_title( 'edit' ), |
|
132 | - 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
133 | - 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
130 | + 'post_author' => $invoice->get_user_id('edit'), |
|
131 | + 'post_title' => $invoice->get_title('edit'), |
|
132 | + 'post_excerpt' => $invoice->get_description('edit'), |
|
133 | + 'post_parent' => $invoice->get_parent_id('edit'), |
|
134 | 134 | ) |
135 | 135 | ), |
136 | 136 | true |
137 | 137 | ); |
138 | 138 | |
139 | - if ( $id && ! is_wp_error( $id ) ) { |
|
139 | + if ($id && !is_wp_error($id)) { |
|
140 | 140 | |
141 | 141 | // Update the new id and regenerate a title. |
142 | - $invoice->set_id( $id ); |
|
142 | + $invoice->set_id($id); |
|
143 | 143 | |
144 | 144 | $invoice->maybe_set_number(); |
145 | 145 | |
146 | 146 | wp_update_post( |
147 | 147 | array( |
148 | 148 | 'ID' => $invoice->get_id(), |
149 | - 'post_title' => $invoice->get_number( 'edit' ), |
|
150 | - 'post_name' => $invoice->get_path( 'edit' ), |
|
149 | + 'post_title' => $invoice->get_number('edit'), |
|
150 | + 'post_name' => $invoice->get_path('edit'), |
|
151 | 151 | ) |
152 | 152 | ); |
153 | 153 | |
154 | 154 | // Save special fields and items. |
155 | - $this->save_special_fields( $invoice ); |
|
156 | - $this->save_items( $invoice ); |
|
155 | + $this->save_special_fields($invoice); |
|
156 | + $this->save_items($invoice); |
|
157 | 157 | |
158 | 158 | // Update meta data. |
159 | - $this->update_post_meta( $invoice ); |
|
159 | + $this->update_post_meta($invoice); |
|
160 | 160 | $invoice->save_meta_data(); |
161 | 161 | |
162 | 162 | // Apply changes. |
163 | 163 | $invoice->apply_changes(); |
164 | - $this->clear_caches( $invoice ); |
|
164 | + $this->clear_caches($invoice); |
|
165 | 165 | |
166 | 166 | // Fires after a new invoice is created. |
167 | - do_action( 'getpaid_new_invoice', $invoice ); |
|
167 | + do_action('getpaid_new_invoice', $invoice); |
|
168 | 168 | return true; |
169 | 169 | } |
170 | 170 | |
171 | - if ( is_wp_error( $id ) ) { |
|
171 | + if (is_wp_error($id)) { |
|
172 | 172 | $invoice->last_error = $id->get_error_message(); |
173 | 173 | } |
174 | 174 | |
@@ -181,14 +181,14 @@ discard block |
||
181 | 181 | * @param WPInv_Invoice $invoice Invoice object. |
182 | 182 | * |
183 | 183 | */ |
184 | - public function read( &$invoice ) { |
|
184 | + public function read(&$invoice) { |
|
185 | 185 | |
186 | 186 | $invoice->set_defaults(); |
187 | - $invoice_object = get_post( $invoice->get_id() ); |
|
187 | + $invoice_object = get_post($invoice->get_id()); |
|
188 | 188 | |
189 | - if ( ! $invoice->get_id() || ! $invoice_object || ! getpaid_is_invoice_post_type( $invoice_object->post_type ) ) { |
|
190 | - $invoice->last_error = __( 'Invalid invoice.', 'invoicing' ); |
|
191 | - $invoice->set_id( 0 ); |
|
189 | + if (!$invoice->get_id() || !$invoice_object || !getpaid_is_invoice_post_type($invoice_object->post_type)) { |
|
190 | + $invoice->last_error = __('Invalid invoice.', 'invoicing'); |
|
191 | + $invoice->set_id(0); |
|
192 | 192 | return false; |
193 | 193 | } |
194 | 194 | |
@@ -206,14 +206,14 @@ discard block |
||
206 | 206 | ) |
207 | 207 | ); |
208 | 208 | |
209 | - $invoice->set_type( $invoice_object->post_type ); |
|
209 | + $invoice->set_type($invoice_object->post_type); |
|
210 | 210 | |
211 | - $this->read_object_data( $invoice, $invoice_object ); |
|
212 | - $this->add_special_fields( $invoice ); |
|
213 | - $this->add_items( $invoice ); |
|
211 | + $this->read_object_data($invoice, $invoice_object); |
|
212 | + $this->add_special_fields($invoice); |
|
213 | + $this->add_items($invoice); |
|
214 | 214 | $invoice->read_meta_data(); |
215 | - $invoice->set_object_read( true ); |
|
216 | - do_action( 'getpaid_read_invoice', $invoice ); |
|
215 | + $invoice->set_object_read(true); |
|
216 | + do_action('getpaid_read_invoice', $invoice); |
|
217 | 217 | |
218 | 218 | } |
219 | 219 | |
@@ -222,35 +222,35 @@ discard block |
||
222 | 222 | * |
223 | 223 | * @param WPInv_Invoice $invoice Invoice object. |
224 | 224 | */ |
225 | - public function update( &$invoice ) { |
|
225 | + public function update(&$invoice) { |
|
226 | 226 | $invoice->save_meta_data(); |
227 | - $invoice->set_version( WPINV_VERSION ); |
|
227 | + $invoice->set_version(WPINV_VERSION); |
|
228 | 228 | |
229 | - if ( null === $invoice->get_date_created( 'edit' ) ) { |
|
230 | - $invoice->set_date_created( current_time( 'mysql' ) ); |
|
229 | + if (null === $invoice->get_date_created('edit')) { |
|
230 | + $invoice->set_date_created(current_time('mysql')); |
|
231 | 231 | } |
232 | 232 | |
233 | 233 | // Ensure both the key and number are set. |
234 | 234 | $invoice->get_path(); |
235 | 235 | |
236 | 236 | // Grab the current status so we can compare. |
237 | - $previous_status = get_post_status( $invoice->get_id() ); |
|
237 | + $previous_status = get_post_status($invoice->get_id()); |
|
238 | 238 | |
239 | 239 | $changes = $invoice->get_changes(); |
240 | 240 | |
241 | 241 | // Only update the post when the post data changes. |
242 | - if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path' ), array_keys( $changes ) ) ) { |
|
242 | + if (array_intersect(array('date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path'), array_keys($changes))) { |
|
243 | 243 | $post_data = array( |
244 | - 'post_date' => $invoice->get_date_created( 'edit' ), |
|
245 | - 'post_date_gmt' => $invoice->get_date_created_gmt( 'edit' ), |
|
246 | - 'post_status' => $invoice->get_status( 'edit' ), |
|
247 | - 'post_title' => $invoice->get_name( 'edit' ), |
|
248 | - 'post_author' => $invoice->get_user_id( 'edit' ), |
|
249 | - 'post_modified' => $invoice->get_date_modified( 'edit' ), |
|
250 | - 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
251 | - 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
252 | - 'post_name' => $invoice->get_path( 'edit' ), |
|
253 | - 'post_type' => $invoice->get_post_type( 'edit' ), |
|
244 | + 'post_date' => $invoice->get_date_created('edit'), |
|
245 | + 'post_date_gmt' => $invoice->get_date_created_gmt('edit'), |
|
246 | + 'post_status' => $invoice->get_status('edit'), |
|
247 | + 'post_title' => $invoice->get_name('edit'), |
|
248 | + 'post_author' => $invoice->get_user_id('edit'), |
|
249 | + 'post_modified' => $invoice->get_date_modified('edit'), |
|
250 | + 'post_excerpt' => $invoice->get_description('edit'), |
|
251 | + 'post_parent' => $invoice->get_parent_id('edit'), |
|
252 | + 'post_name' => $invoice->get_path('edit'), |
|
253 | + 'post_type' => $invoice->get_post_type('edit'), |
|
254 | 254 | ); |
255 | 255 | |
256 | 256 | /** |
@@ -261,35 +261,35 @@ discard block |
||
261 | 261 | * This ensures hooks are fired by either WP itself (admin screen save), |
262 | 262 | * or an update purely from CRUD. |
263 | 263 | */ |
264 | - if ( doing_action( 'save_post' ) ) { |
|
265 | - $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $invoice->get_id() ) ); |
|
266 | - clean_post_cache( $invoice->get_id() ); |
|
264 | + if (doing_action('save_post')) { |
|
265 | + $GLOBALS['wpdb']->update($GLOBALS['wpdb']->posts, $post_data, array('ID' => $invoice->get_id())); |
|
266 | + clean_post_cache($invoice->get_id()); |
|
267 | 267 | } else { |
268 | - wp_update_post( array_merge( array( 'ID' => $invoice->get_id() ), $post_data ) ); |
|
268 | + wp_update_post(array_merge(array('ID' => $invoice->get_id()), $post_data)); |
|
269 | 269 | } |
270 | - $invoice->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
270 | + $invoice->read_meta_data(true); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
271 | 271 | } |
272 | 272 | |
273 | 273 | // Update meta data. |
274 | - $this->update_post_meta( $invoice ); |
|
274 | + $this->update_post_meta($invoice); |
|
275 | 275 | |
276 | 276 | // Save special fields and items. |
277 | - $this->save_special_fields( $invoice ); |
|
278 | - $this->save_items( $invoice ); |
|
277 | + $this->save_special_fields($invoice); |
|
278 | + $this->save_items($invoice); |
|
279 | 279 | |
280 | 280 | // Apply the changes. |
281 | 281 | $invoice->apply_changes(); |
282 | 282 | |
283 | 283 | // Clear caches. |
284 | - $this->clear_caches( $invoice ); |
|
284 | + $this->clear_caches($invoice); |
|
285 | 285 | |
286 | 286 | // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
287 | - $new_status = $invoice->get_status( 'edit' ); |
|
287 | + $new_status = $invoice->get_status('edit'); |
|
288 | 288 | |
289 | - if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
290 | - do_action( 'getpaid_new_invoice', $invoice ); |
|
289 | + if ($new_status !== $previous_status && in_array($previous_status, array('new', 'auto-draft', 'draft'), true)) { |
|
290 | + do_action('getpaid_new_invoice', $invoice); |
|
291 | 291 | } else { |
292 | - do_action( 'getpaid_update_invoice', $invoice ); |
|
292 | + do_action('getpaid_update_invoice', $invoice); |
|
293 | 293 | } |
294 | 294 | |
295 | 295 | } |
@@ -305,45 +305,45 @@ discard block |
||
305 | 305 | * |
306 | 306 | * @param WPInv_Invoice $invoice Invoice object. |
307 | 307 | */ |
308 | - public function add_special_fields( &$invoice ) { |
|
308 | + public function add_special_fields(&$invoice) { |
|
309 | 309 | global $wpdb; |
310 | 310 | |
311 | 311 | // Maybe retrieve from the cache. |
312 | - $data = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
312 | + $data = wp_cache_get($invoice->get_id(), 'getpaid_invoice_special_fields'); |
|
313 | 313 | |
314 | 314 | // If not found, retrieve from the db. |
315 | - if ( false === $data ) { |
|
315 | + if (false === $data) { |
|
316 | 316 | $table = $wpdb->prefix . 'getpaid_invoices'; |
317 | 317 | |
318 | 318 | $data = $wpdb->get_row( |
319 | - $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id() ), |
|
319 | + $wpdb->prepare("SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id()), |
|
320 | 320 | ARRAY_A |
321 | 321 | ); |
322 | 322 | |
323 | 323 | // Update the cache with our data |
324 | - wp_cache_set( $invoice->get_id(), $data, 'getpaid_invoice_special_fields' ); |
|
324 | + wp_cache_set($invoice->get_id(), $data, 'getpaid_invoice_special_fields'); |
|
325 | 325 | |
326 | 326 | } |
327 | 327 | |
328 | 328 | // Abort if the data does not exist. |
329 | - if ( empty( $data ) ) { |
|
330 | - $invoice->set_object_read( true ); |
|
331 | - $invoice->set_props( wpinv_get_user_address( $invoice->get_user_id() ) ); |
|
329 | + if (empty($data)) { |
|
330 | + $invoice->set_object_read(true); |
|
331 | + $invoice->set_props(wpinv_get_user_address($invoice->get_user_id())); |
|
332 | 332 | return; |
333 | 333 | } |
334 | 334 | |
335 | 335 | $props = array(); |
336 | 336 | |
337 | - foreach ( $this->database_fields_to_props as $db_field => $prop ) { |
|
337 | + foreach ($this->database_fields_to_props as $db_field => $prop) { |
|
338 | 338 | |
339 | - if ( $db_field == 'post_id' ) { |
|
339 | + if ($db_field == 'post_id') { |
|
340 | 340 | continue; |
341 | 341 | } |
342 | 342 | |
343 | - $props[ $prop ] = $data[ $db_field ]; |
|
343 | + $props[$prop] = $data[$db_field]; |
|
344 | 344 | } |
345 | 345 | |
346 | - $invoice->set_props( $props ); |
|
346 | + $invoice->set_props($props); |
|
347 | 347 | |
348 | 348 | } |
349 | 349 | |
@@ -354,14 +354,14 @@ discard block |
||
354 | 354 | * @param WPInv_Invoice $invoice The Invoice object. |
355 | 355 | * @return array A mapping of field keys => prop names, filtered by ones that should be updated. |
356 | 356 | */ |
357 | - protected function get_special_fields_to_update( $invoice ) { |
|
357 | + protected function get_special_fields_to_update($invoice) { |
|
358 | 358 | $fields_to_update = array(); |
359 | - $changed_props = $invoice->get_changes(); |
|
359 | + $changed_props = $invoice->get_changes(); |
|
360 | 360 | |
361 | 361 | // Props should be updated if they are a part of the $changed array or don't exist yet. |
362 | - foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
363 | - if ( array_key_exists( $prop, $changed_props ) ) { |
|
364 | - $fields_to_update[ $database_field ] = $prop; |
|
362 | + foreach ($this->database_fields_to_props as $database_field => $prop) { |
|
363 | + if (array_key_exists($prop, $changed_props)) { |
|
364 | + $fields_to_update[$database_field] = $prop; |
|
365 | 365 | } |
366 | 366 | } |
367 | 367 | |
@@ -374,25 +374,25 @@ discard block |
||
374 | 374 | * @param WPInv_Invoice $invoice WPInv_Invoice object. |
375 | 375 | * @since 1.0.19 |
376 | 376 | */ |
377 | - protected function update_special_fields( &$invoice ) { |
|
377 | + protected function update_special_fields(&$invoice) { |
|
378 | 378 | global $wpdb; |
379 | 379 | |
380 | 380 | $updated_props = array(); |
381 | - $fields_to_update = $this->get_special_fields_to_update( $invoice ); |
|
381 | + $fields_to_update = $this->get_special_fields_to_update($invoice); |
|
382 | 382 | |
383 | - foreach ( $fields_to_update as $database_field => $prop ) { |
|
384 | - $value = $invoice->{"get_$prop"}( 'edit' ); |
|
385 | - $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
386 | - $value = is_bool( $value ) ? (int) $value : $value; |
|
387 | - $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
383 | + foreach ($fields_to_update as $database_field => $prop) { |
|
384 | + $value = $invoice->{"get_$prop"}('edit'); |
|
385 | + $value = is_string($value) ? wp_slash($value) : $value; |
|
386 | + $value = is_bool($value) ? (int) $value : $value; |
|
387 | + $updated_props[$database_field] = maybe_serialize($value); |
|
388 | 388 | } |
389 | 389 | |
390 | - if ( ! empty( $updated_props ) ) { |
|
390 | + if (!empty($updated_props)) { |
|
391 | 391 | |
392 | 392 | $table = $wpdb->prefix . 'getpaid_invoices'; |
393 | - $wpdb->update( $table, $updated_props, array( 'post_id' => $invoice->get_id() ) ); |
|
394 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
395 | - do_action( 'getpaid_invoice_update_database_fields', $invoice, $updated_props ); |
|
393 | + $wpdb->update($table, $updated_props, array('post_id' => $invoice->get_id())); |
|
394 | + wp_cache_delete($invoice->get_id(), 'getpaid_invoice_special_fields'); |
|
395 | + do_action('getpaid_invoice_update_database_fields', $invoice, $updated_props); |
|
396 | 396 | |
397 | 397 | } |
398 | 398 | |
@@ -404,22 +404,22 @@ discard block |
||
404 | 404 | * @param WPInv_Invoice $invoice WPInv_Invoice object. |
405 | 405 | * @since 1.0.19 |
406 | 406 | */ |
407 | - protected function insert_special_fields( &$invoice ) { |
|
407 | + protected function insert_special_fields(&$invoice) { |
|
408 | 408 | global $wpdb; |
409 | 409 | |
410 | - $updated_props = array(); |
|
410 | + $updated_props = array(); |
|
411 | 411 | |
412 | - foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
413 | - $value = $invoice->{"get_$prop"}( 'edit' ); |
|
414 | - $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
415 | - $value = is_bool( $value ) ? (int) $value : $value; |
|
416 | - $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
412 | + foreach ($this->database_fields_to_props as $database_field => $prop) { |
|
413 | + $value = $invoice->{"get_$prop"}('edit'); |
|
414 | + $value = is_string($value) ? wp_slash($value) : $value; |
|
415 | + $value = is_bool($value) ? (int) $value : $value; |
|
416 | + $updated_props[$database_field] = maybe_serialize($value); |
|
417 | 417 | } |
418 | 418 | |
419 | 419 | $table = $wpdb->prefix . 'getpaid_invoices'; |
420 | - $wpdb->insert( $table, $updated_props ); |
|
421 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
422 | - do_action( 'getpaid_invoice_insert_database_fields', $invoice, $updated_props ); |
|
420 | + $wpdb->insert($table, $updated_props); |
|
421 | + wp_cache_delete($invoice->get_id(), 'getpaid_invoice_special_fields'); |
|
422 | + do_action('getpaid_invoice_insert_database_fields', $invoice, $updated_props); |
|
423 | 423 | |
424 | 424 | } |
425 | 425 | |
@@ -428,7 +428,7 @@ discard block |
||
428 | 428 | * |
429 | 429 | * @param WPInv_Invoice $invoice Invoice object. |
430 | 430 | */ |
431 | - public function save_special_fields( &$invoice ) { |
|
431 | + public function save_special_fields(&$invoice) { |
|
432 | 432 | global $wpdb; |
433 | 433 | |
434 | 434 | // The invoices table. |
@@ -436,13 +436,13 @@ discard block |
||
436 | 436 | $id = (int) $invoice->get_id(); |
437 | 437 | $invoice->maybe_set_key(); |
438 | 438 | |
439 | - if ( $wpdb->get_var( "SELECT `post_id` FROM $table WHERE `post_id`= $id" ) ) { |
|
439 | + if ($wpdb->get_var("SELECT `post_id` FROM $table WHERE `post_id`= $id")) { |
|
440 | 440 | |
441 | - $this->update_special_fields( $invoice ); |
|
441 | + $this->update_special_fields($invoice); |
|
442 | 442 | |
443 | 443 | } else { |
444 | 444 | |
445 | - $this->insert_special_fields( $invoice ); |
|
445 | + $this->insert_special_fields($invoice); |
|
446 | 446 | |
447 | 447 | } |
448 | 448 | |
@@ -453,46 +453,46 @@ discard block |
||
453 | 453 | * |
454 | 454 | * @param WPInv_Invoice $invoice Invoice object. |
455 | 455 | */ |
456 | - public function add_items( &$invoice ) { |
|
456 | + public function add_items(&$invoice) { |
|
457 | 457 | global $wpdb; |
458 | 458 | |
459 | 459 | // Maybe retrieve from the cache. |
460 | - $items = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
460 | + $items = wp_cache_get($invoice->get_id(), 'getpaid_invoice_cart_details'); |
|
461 | 461 | |
462 | 462 | // If not found, retrieve from the db. |
463 | - if ( false === $items ) { |
|
463 | + if (false === $items) { |
|
464 | 464 | $table = $wpdb->prefix . 'getpaid_invoice_items'; |
465 | 465 | |
466 | 466 | $items = $wpdb->get_results( |
467 | - $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id() ) |
|
467 | + $wpdb->prepare("SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id()) |
|
468 | 468 | ); |
469 | 469 | |
470 | 470 | // Update the cache with our data |
471 | - wp_cache_set( $invoice->get_id(), $items, 'getpaid_invoice_cart_details' ); |
|
471 | + wp_cache_set($invoice->get_id(), $items, 'getpaid_invoice_cart_details'); |
|
472 | 472 | |
473 | 473 | } |
474 | 474 | |
475 | 475 | // Abort if no items found. |
476 | - if ( empty( $items ) ) { |
|
476 | + if (empty($items)) { |
|
477 | 477 | return; |
478 | 478 | } |
479 | 479 | |
480 | 480 | $_items = array(); |
481 | - foreach ( $items as $item_data ) { |
|
482 | - $item = new GetPaid_Form_Item( $item_data->item_id ); |
|
481 | + foreach ($items as $item_data) { |
|
482 | + $item = new GetPaid_Form_Item($item_data->item_id); |
|
483 | 483 | |
484 | 484 | // Set item data. |
485 | - $item->item_tax = wpinv_sanitize_amount( $item_data->tax ); |
|
486 | - $item->item_discount = wpinv_sanitize_amount( $item_data->discount ); |
|
487 | - $item->set_name( $item_data->item_name ); |
|
488 | - $item->set_description( $item_data->item_description ); |
|
489 | - $item->set_price( $item_data->item_price ); |
|
490 | - $item->set_quantity( $item_data->quantity ); |
|
491 | - $item->set_item_meta( $item_data->meta ); |
|
485 | + $item->item_tax = wpinv_sanitize_amount($item_data->tax); |
|
486 | + $item->item_discount = wpinv_sanitize_amount($item_data->discount); |
|
487 | + $item->set_name($item_data->item_name); |
|
488 | + $item->set_description($item_data->item_description); |
|
489 | + $item->set_price($item_data->item_price); |
|
490 | + $item->set_quantity($item_data->quantity); |
|
491 | + $item->set_item_meta($item_data->meta); |
|
492 | 492 | $_items[] = $item; |
493 | 493 | } |
494 | 494 | |
495 | - $invoice->set_items( $_items ); |
|
495 | + $invoice->set_items($_items); |
|
496 | 496 | } |
497 | 497 | |
498 | 498 | /** |
@@ -500,20 +500,20 @@ discard block |
||
500 | 500 | * |
501 | 501 | * @param WPInv_Invoice $invoice Invoice object. |
502 | 502 | */ |
503 | - public function save_items( $invoice ) { |
|
503 | + public function save_items($invoice) { |
|
504 | 504 | |
505 | 505 | // Delete previously existing items. |
506 | - $this->delete_items( $invoice ); |
|
506 | + $this->delete_items($invoice); |
|
507 | 507 | |
508 | - $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
508 | + $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
509 | 509 | |
510 | - foreach ( $invoice->get_cart_details() as $item_data ) { |
|
511 | - $item_data = array_map( 'maybe_serialize', $item_data ); |
|
512 | - $GLOBALS['wpdb']->insert( $table, $item_data ); |
|
510 | + foreach ($invoice->get_cart_details() as $item_data) { |
|
511 | + $item_data = array_map('maybe_serialize', $item_data); |
|
512 | + $GLOBALS['wpdb']->insert($table, $item_data); |
|
513 | 513 | } |
514 | 514 | |
515 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
516 | - do_action( 'getpaid_invoice_save_items', $invoice ); |
|
515 | + wp_cache_delete($invoice->get_id(), 'getpaid_invoice_cart_details'); |
|
516 | + do_action('getpaid_invoice_save_items', $invoice); |
|
517 | 517 | |
518 | 518 | } |
519 | 519 | |
@@ -522,9 +522,9 @@ discard block |
||
522 | 522 | * |
523 | 523 | * @param WPInv_Invoice $invoice Invoice object. |
524 | 524 | */ |
525 | - public function delete_items( $invoice ) { |
|
525 | + public function delete_items($invoice) { |
|
526 | 526 | $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
527 | - return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
527 | + return $GLOBALS['wpdb']->delete($table, array('post_id' => $invoice->get_id())); |
|
528 | 528 | } |
529 | 529 | |
530 | 530 | /** |
@@ -532,9 +532,9 @@ discard block |
||
532 | 532 | * |
533 | 533 | * @param WPInv_Invoice $invoice Invoice object. |
534 | 534 | */ |
535 | - public function delete_special_fields( $invoice ) { |
|
535 | + public function delete_special_fields($invoice) { |
|
536 | 536 | $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoices'; |
537 | - return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
537 | + return $GLOBALS['wpdb']->delete($table, array('post_id' => $invoice->get_id())); |
|
538 | 538 | } |
539 | 539 | |
540 | 540 | /** |
@@ -545,10 +545,10 @@ discard block |
||
545 | 545 | * @param WPInv_Invoice $object GetPaid_Data object. |
546 | 546 | * @return string |
547 | 547 | */ |
548 | - protected function get_post_status( $object ) { |
|
549 | - $object_status = $object->get_status( 'edit' ); |
|
548 | + protected function get_post_status($object) { |
|
549 | + $object_status = $object->get_status('edit'); |
|
550 | 550 | |
551 | - if ( ! $object_status ) { |
|
551 | + if (!$object_status) { |
|
552 | 552 | $object_status = $object->get_default_status(); |
553 | 553 | } |
554 | 554 |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | if ( ! defined( 'ABSPATH' ) ) { |
7 | - exit; |
|
7 | + exit; |
|
8 | 8 | } |
9 | 9 | |
10 | 10 | /** |
@@ -14,228 +14,228 @@ discard block |
||
14 | 14 | */ |
15 | 15 | class GetPaid_Item_Data_Store extends GetPaid_Data_Store_WP { |
16 | 16 | |
17 | - /** |
|
18 | - * Data stored in meta keys, but not considered "meta" for an item. |
|
19 | - * |
|
20 | - * @since 1.0.19 |
|
21 | - * @var array |
|
22 | - */ |
|
23 | - protected $internal_meta_keys = array( |
|
24 | - '_wpinv_price', |
|
25 | - '_wpinv_vat_rule', |
|
26 | - '_wpinv_vat_class', |
|
27 | - '_wpinv_type', |
|
28 | - '_wpinv_custom_id', |
|
29 | - '_wpinv_custom_name', |
|
30 | - '_wpinv_custom_singular_name', |
|
31 | - '_wpinv_editable', |
|
32 | - '_wpinv_dynamic_pricing', |
|
33 | - '_minimum_price', |
|
34 | - '_wpinv_is_recurring', |
|
35 | - '_wpinv_recurring_period', |
|
36 | - '_wpinv_recurring_interval', |
|
37 | - '_wpinv_recurring_limit', |
|
38 | - '_wpinv_free_trial', |
|
39 | - '_wpinv_trial_period', |
|
40 | - '_wpinv_trial_interval', |
|
41 | - ); |
|
42 | - |
|
43 | - /** |
|
44 | - * A map of meta keys to data props. |
|
45 | - * |
|
46 | - * @since 1.0.19 |
|
47 | - * |
|
48 | - * @var array |
|
49 | - */ |
|
50 | - protected $meta_key_to_props = array( |
|
51 | - '_wpinv_price' => 'price', |
|
52 | - '_wpinv_vat_rule' => 'vat_rule', |
|
53 | - '_wpinv_vat_class' => 'vat_class', |
|
54 | - '_wpinv_type' => 'type', |
|
55 | - '_wpinv_custom_id' => 'custom_id', |
|
56 | - '_wpinv_custom_name' => 'custom_name', |
|
57 | - '_wpinv_custom_singular_name' => 'custom_singular_name', |
|
58 | - '_wpinv_editable' => 'is_editable', |
|
59 | - '_wpinv_dynamic_pricing' => 'is_dynamic_pricing', |
|
60 | - '_minimum_price' => 'minimum_price', |
|
61 | - '_wpinv_custom_name' => 'custom_name', |
|
62 | - '_wpinv_is_recurring' => 'is_recurring', |
|
63 | - '_wpinv_recurring_period' => 'recurring_period', |
|
64 | - '_wpinv_recurring_interval' => 'recurring_interval', |
|
65 | - '_wpinv_recurring_limit' => 'recurring_limit', |
|
66 | - '_wpinv_free_trial' => 'is_free_trial', |
|
67 | - '_wpinv_trial_period' => 'trial_period', |
|
68 | - '_wpinv_trial_interval' => 'trial_interval', |
|
69 | - '_wpinv_version' => 'version', |
|
70 | - ); |
|
71 | - |
|
72 | - /* |
|
17 | + /** |
|
18 | + * Data stored in meta keys, but not considered "meta" for an item. |
|
19 | + * |
|
20 | + * @since 1.0.19 |
|
21 | + * @var array |
|
22 | + */ |
|
23 | + protected $internal_meta_keys = array( |
|
24 | + '_wpinv_price', |
|
25 | + '_wpinv_vat_rule', |
|
26 | + '_wpinv_vat_class', |
|
27 | + '_wpinv_type', |
|
28 | + '_wpinv_custom_id', |
|
29 | + '_wpinv_custom_name', |
|
30 | + '_wpinv_custom_singular_name', |
|
31 | + '_wpinv_editable', |
|
32 | + '_wpinv_dynamic_pricing', |
|
33 | + '_minimum_price', |
|
34 | + '_wpinv_is_recurring', |
|
35 | + '_wpinv_recurring_period', |
|
36 | + '_wpinv_recurring_interval', |
|
37 | + '_wpinv_recurring_limit', |
|
38 | + '_wpinv_free_trial', |
|
39 | + '_wpinv_trial_period', |
|
40 | + '_wpinv_trial_interval', |
|
41 | + ); |
|
42 | + |
|
43 | + /** |
|
44 | + * A map of meta keys to data props. |
|
45 | + * |
|
46 | + * @since 1.0.19 |
|
47 | + * |
|
48 | + * @var array |
|
49 | + */ |
|
50 | + protected $meta_key_to_props = array( |
|
51 | + '_wpinv_price' => 'price', |
|
52 | + '_wpinv_vat_rule' => 'vat_rule', |
|
53 | + '_wpinv_vat_class' => 'vat_class', |
|
54 | + '_wpinv_type' => 'type', |
|
55 | + '_wpinv_custom_id' => 'custom_id', |
|
56 | + '_wpinv_custom_name' => 'custom_name', |
|
57 | + '_wpinv_custom_singular_name' => 'custom_singular_name', |
|
58 | + '_wpinv_editable' => 'is_editable', |
|
59 | + '_wpinv_dynamic_pricing' => 'is_dynamic_pricing', |
|
60 | + '_minimum_price' => 'minimum_price', |
|
61 | + '_wpinv_custom_name' => 'custom_name', |
|
62 | + '_wpinv_is_recurring' => 'is_recurring', |
|
63 | + '_wpinv_recurring_period' => 'recurring_period', |
|
64 | + '_wpinv_recurring_interval' => 'recurring_interval', |
|
65 | + '_wpinv_recurring_limit' => 'recurring_limit', |
|
66 | + '_wpinv_free_trial' => 'is_free_trial', |
|
67 | + '_wpinv_trial_period' => 'trial_period', |
|
68 | + '_wpinv_trial_interval' => 'trial_interval', |
|
69 | + '_wpinv_version' => 'version', |
|
70 | + ); |
|
71 | + |
|
72 | + /* |
|
73 | 73 | |-------------------------------------------------------------------------- |
74 | 74 | | CRUD Methods |
75 | 75 | |-------------------------------------------------------------------------- |
76 | 76 | */ |
77 | 77 | |
78 | - /** |
|
79 | - * Method to create a new item in the database. |
|
80 | - * |
|
81 | - * @param WPInv_Item $item Item object. |
|
82 | - */ |
|
83 | - public function create( &$item ) { |
|
84 | - $item->set_version( WPINV_VERSION ); |
|
85 | - $item->set_date_created( current_time( 'mysql' ) ); |
|
86 | - |
|
87 | - // Create a new post. |
|
88 | - $id = wp_insert_post( |
|
89 | - apply_filters( |
|
90 | - 'getpaid_new_item_data', |
|
91 | - array( |
|
92 | - 'post_date' => $item->get_date_created( 'edit' ), |
|
93 | - 'post_type' => 'wpi_item', |
|
94 | - 'post_status' => $this->get_post_status( $item ), |
|
95 | - 'ping_status' => 'closed', |
|
96 | - 'post_author' => $item->get_author( 'edit' ), |
|
97 | - 'post_title' => $item->get_name( 'edit' ), |
|
98 | - 'post_parent' => 0, |
|
99 | - 'post_excerpt' => $item->get_description( 'edit' ), |
|
100 | - ) |
|
101 | - ), |
|
102 | - true |
|
103 | - ); |
|
104 | - |
|
105 | - if ( $id && ! is_wp_error( $id ) ) { |
|
106 | - $item->set_id( $id ); |
|
107 | - $this->update_post_meta( $item ); |
|
108 | - $item->save_meta_data(); |
|
109 | - $item->apply_changes(); |
|
110 | - $this->clear_caches( $item ); |
|
111 | - do_action( 'getpaid_new_item', $item ); |
|
112 | - return true; |
|
113 | - } |
|
114 | - |
|
115 | - if ( is_wp_error( $id ) ) { |
|
116 | - $item->last_error = $id->get_error_message(); |
|
117 | - } |
|
118 | - |
|
119 | - return false; |
|
120 | - } |
|
121 | - |
|
122 | - /** |
|
123 | - * Method to read an item from the database. |
|
124 | - * |
|
125 | - * @param WPInv_Item $item Item object. |
|
126 | - * |
|
127 | - */ |
|
128 | - public function read( &$item ) { |
|
129 | - |
|
130 | - $item->set_defaults(); |
|
131 | - $item_object = get_post( $item->get_id() ); |
|
132 | - |
|
133 | - if ( ! $item->get_id() || ! $item_object || $item_object->post_type != 'wpi_item' ) { |
|
134 | - $item->last_error = __( 'Invalid item.', 'invoicing' ); |
|
135 | - $item->set_id( 0 ); |
|
136 | - return false; |
|
137 | - } |
|
138 | - |
|
139 | - $item->set_props( |
|
140 | - array( |
|
141 | - 'parent_id' => $item_object->post_parent, |
|
142 | - 'date_created' => 0 < $item_object->post_date ? $item_object->post_date : null, |
|
143 | - 'date_modified' => 0 < $item_object->post_modified ? $item_object->post_modified : null, |
|
144 | - 'status' => $item_object->post_status, |
|
145 | - 'name' => $item_object->post_title, |
|
146 | - 'description' => $item_object->post_excerpt, |
|
147 | - 'author' => $item_object->post_author, |
|
148 | - ) |
|
149 | - ); |
|
150 | - |
|
151 | - $this->read_object_data( $item, $item_object ); |
|
152 | - $item->read_meta_data(); |
|
153 | - $item->set_object_read( true ); |
|
154 | - do_action( 'getpaid_read_item', $item ); |
|
155 | - |
|
156 | - } |
|
157 | - |
|
158 | - /** |
|
159 | - * Method to update an item in the database. |
|
160 | - * |
|
161 | - * @param WPInv_Item $item Item object. |
|
162 | - */ |
|
163 | - public function update( &$item ) { |
|
164 | - $item->save_meta_data(); |
|
165 | - $item->set_version( WPINV_VERSION ); |
|
166 | - |
|
167 | - if ( null === $item->get_date_created( 'edit' ) ) { |
|
168 | - $item->set_date_created( current_time( 'mysql' ) ); |
|
169 | - } |
|
170 | - |
|
171 | - // Grab the current status so we can compare. |
|
172 | - $previous_status = get_post_status( $item->get_id() ); |
|
173 | - |
|
174 | - $changes = $item->get_changes(); |
|
175 | - |
|
176 | - // Only update the post when the post data changes. |
|
177 | - if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'parent_id', 'description', 'name', 'author' ), array_keys( $changes ) ) ) { |
|
178 | - $post_data = array( |
|
179 | - 'post_date' => $item->get_date_created( 'edit' ), |
|
180 | - 'post_status' => $item->get_status( 'edit' ), |
|
181 | - 'post_parent' => $item->get_parent_id( 'edit' ), |
|
182 | - 'post_excerpt' => $item->get_description( 'edit' ), |
|
183 | - 'post_modified' => $item->get_date_modified( 'edit' ), |
|
184 | - 'post_title' => $item->get_name( 'edit' ), |
|
185 | - 'post_author' => $item->get_author( 'edit' ), |
|
186 | - ); |
|
187 | - |
|
188 | - /** |
|
189 | - * When updating this object, to prevent infinite loops, use $wpdb |
|
190 | - * to update data, since wp_update_post spawns more calls to the |
|
191 | - * save_post action. |
|
192 | - * |
|
193 | - * This ensures hooks are fired by either WP itself (admin screen save), |
|
194 | - * or an update purely from CRUD. |
|
195 | - */ |
|
196 | - if ( doing_action( 'save_post' ) ) { |
|
197 | - $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $item->get_id() ) ); |
|
198 | - clean_post_cache( $item->get_id() ); |
|
199 | - } else { |
|
200 | - wp_update_post( array_merge( array( 'ID' => $item->get_id() ), $post_data ) ); |
|
201 | - } |
|
202 | - $item->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
203 | - } |
|
204 | - $this->update_post_meta( $item ); |
|
205 | - $item->apply_changes(); |
|
206 | - $this->clear_caches( $item ); |
|
207 | - |
|
208 | - // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
|
209 | - $new_status = $item->get_status( 'edit' ); |
|
210 | - |
|
211 | - if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
212 | - do_action( 'getpaid_new_item', $item ); |
|
213 | - } else { |
|
214 | - do_action( 'getpaid_update_item', $item ); |
|
215 | - } |
|
216 | - |
|
217 | - } |
|
218 | - |
|
219 | - /* |
|
78 | + /** |
|
79 | + * Method to create a new item in the database. |
|
80 | + * |
|
81 | + * @param WPInv_Item $item Item object. |
|
82 | + */ |
|
83 | + public function create( &$item ) { |
|
84 | + $item->set_version( WPINV_VERSION ); |
|
85 | + $item->set_date_created( current_time( 'mysql' ) ); |
|
86 | + |
|
87 | + // Create a new post. |
|
88 | + $id = wp_insert_post( |
|
89 | + apply_filters( |
|
90 | + 'getpaid_new_item_data', |
|
91 | + array( |
|
92 | + 'post_date' => $item->get_date_created( 'edit' ), |
|
93 | + 'post_type' => 'wpi_item', |
|
94 | + 'post_status' => $this->get_post_status( $item ), |
|
95 | + 'ping_status' => 'closed', |
|
96 | + 'post_author' => $item->get_author( 'edit' ), |
|
97 | + 'post_title' => $item->get_name( 'edit' ), |
|
98 | + 'post_parent' => 0, |
|
99 | + 'post_excerpt' => $item->get_description( 'edit' ), |
|
100 | + ) |
|
101 | + ), |
|
102 | + true |
|
103 | + ); |
|
104 | + |
|
105 | + if ( $id && ! is_wp_error( $id ) ) { |
|
106 | + $item->set_id( $id ); |
|
107 | + $this->update_post_meta( $item ); |
|
108 | + $item->save_meta_data(); |
|
109 | + $item->apply_changes(); |
|
110 | + $this->clear_caches( $item ); |
|
111 | + do_action( 'getpaid_new_item', $item ); |
|
112 | + return true; |
|
113 | + } |
|
114 | + |
|
115 | + if ( is_wp_error( $id ) ) { |
|
116 | + $item->last_error = $id->get_error_message(); |
|
117 | + } |
|
118 | + |
|
119 | + return false; |
|
120 | + } |
|
121 | + |
|
122 | + /** |
|
123 | + * Method to read an item from the database. |
|
124 | + * |
|
125 | + * @param WPInv_Item $item Item object. |
|
126 | + * |
|
127 | + */ |
|
128 | + public function read( &$item ) { |
|
129 | + |
|
130 | + $item->set_defaults(); |
|
131 | + $item_object = get_post( $item->get_id() ); |
|
132 | + |
|
133 | + if ( ! $item->get_id() || ! $item_object || $item_object->post_type != 'wpi_item' ) { |
|
134 | + $item->last_error = __( 'Invalid item.', 'invoicing' ); |
|
135 | + $item->set_id( 0 ); |
|
136 | + return false; |
|
137 | + } |
|
138 | + |
|
139 | + $item->set_props( |
|
140 | + array( |
|
141 | + 'parent_id' => $item_object->post_parent, |
|
142 | + 'date_created' => 0 < $item_object->post_date ? $item_object->post_date : null, |
|
143 | + 'date_modified' => 0 < $item_object->post_modified ? $item_object->post_modified : null, |
|
144 | + 'status' => $item_object->post_status, |
|
145 | + 'name' => $item_object->post_title, |
|
146 | + 'description' => $item_object->post_excerpt, |
|
147 | + 'author' => $item_object->post_author, |
|
148 | + ) |
|
149 | + ); |
|
150 | + |
|
151 | + $this->read_object_data( $item, $item_object ); |
|
152 | + $item->read_meta_data(); |
|
153 | + $item->set_object_read( true ); |
|
154 | + do_action( 'getpaid_read_item', $item ); |
|
155 | + |
|
156 | + } |
|
157 | + |
|
158 | + /** |
|
159 | + * Method to update an item in the database. |
|
160 | + * |
|
161 | + * @param WPInv_Item $item Item object. |
|
162 | + */ |
|
163 | + public function update( &$item ) { |
|
164 | + $item->save_meta_data(); |
|
165 | + $item->set_version( WPINV_VERSION ); |
|
166 | + |
|
167 | + if ( null === $item->get_date_created( 'edit' ) ) { |
|
168 | + $item->set_date_created( current_time( 'mysql' ) ); |
|
169 | + } |
|
170 | + |
|
171 | + // Grab the current status so we can compare. |
|
172 | + $previous_status = get_post_status( $item->get_id() ); |
|
173 | + |
|
174 | + $changes = $item->get_changes(); |
|
175 | + |
|
176 | + // Only update the post when the post data changes. |
|
177 | + if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'parent_id', 'description', 'name', 'author' ), array_keys( $changes ) ) ) { |
|
178 | + $post_data = array( |
|
179 | + 'post_date' => $item->get_date_created( 'edit' ), |
|
180 | + 'post_status' => $item->get_status( 'edit' ), |
|
181 | + 'post_parent' => $item->get_parent_id( 'edit' ), |
|
182 | + 'post_excerpt' => $item->get_description( 'edit' ), |
|
183 | + 'post_modified' => $item->get_date_modified( 'edit' ), |
|
184 | + 'post_title' => $item->get_name( 'edit' ), |
|
185 | + 'post_author' => $item->get_author( 'edit' ), |
|
186 | + ); |
|
187 | + |
|
188 | + /** |
|
189 | + * When updating this object, to prevent infinite loops, use $wpdb |
|
190 | + * to update data, since wp_update_post spawns more calls to the |
|
191 | + * save_post action. |
|
192 | + * |
|
193 | + * This ensures hooks are fired by either WP itself (admin screen save), |
|
194 | + * or an update purely from CRUD. |
|
195 | + */ |
|
196 | + if ( doing_action( 'save_post' ) ) { |
|
197 | + $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $item->get_id() ) ); |
|
198 | + clean_post_cache( $item->get_id() ); |
|
199 | + } else { |
|
200 | + wp_update_post( array_merge( array( 'ID' => $item->get_id() ), $post_data ) ); |
|
201 | + } |
|
202 | + $item->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
203 | + } |
|
204 | + $this->update_post_meta( $item ); |
|
205 | + $item->apply_changes(); |
|
206 | + $this->clear_caches( $item ); |
|
207 | + |
|
208 | + // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
|
209 | + $new_status = $item->get_status( 'edit' ); |
|
210 | + |
|
211 | + if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
212 | + do_action( 'getpaid_new_item', $item ); |
|
213 | + } else { |
|
214 | + do_action( 'getpaid_update_item', $item ); |
|
215 | + } |
|
216 | + |
|
217 | + } |
|
218 | + |
|
219 | + /* |
|
220 | 220 | |-------------------------------------------------------------------------- |
221 | 221 | | Additional Methods |
222 | 222 | |-------------------------------------------------------------------------- |
223 | 223 | */ |
224 | 224 | |
225 | - /** |
|
226 | - * Helper method that updates all the post meta for an item based on it's settings in the WPInv_Item class. |
|
227 | - * |
|
228 | - * @param WPInv_Item $item WPInv_Item object. |
|
229 | - * @since 1.0.19 |
|
230 | - */ |
|
231 | - protected function update_post_meta( &$item ) { |
|
225 | + /** |
|
226 | + * Helper method that updates all the post meta for an item based on it's settings in the WPInv_Item class. |
|
227 | + * |
|
228 | + * @param WPInv_Item $item WPInv_Item object. |
|
229 | + * @since 1.0.19 |
|
230 | + */ |
|
231 | + protected function update_post_meta( &$item ) { |
|
232 | 232 | |
233 | - // Ensure that we have a custom id. |
|
233 | + // Ensure that we have a custom id. |
|
234 | 234 | if ( ! $item->get_custom_id() ) { |
235 | 235 | $item->set_custom_id( $item->get_id() ); |
236 | - } |
|
236 | + } |
|
237 | 237 | |
238 | - parent::update_post_meta( $item ); |
|
239 | - } |
|
238 | + parent::update_post_meta( $item ); |
|
239 | + } |
|
240 | 240 | |
241 | 241 | } |
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * GetPaid_Item_Data_Store class file. |
4 | 4 | * |
5 | 5 | */ |
6 | -if ( ! defined( 'ABSPATH' ) ) { |
|
6 | +if (!defined('ABSPATH')) { |
|
7 | 7 | exit; |
8 | 8 | } |
9 | 9 | |
@@ -80,39 +80,39 @@ discard block |
||
80 | 80 | * |
81 | 81 | * @param WPInv_Item $item Item object. |
82 | 82 | */ |
83 | - public function create( &$item ) { |
|
84 | - $item->set_version( WPINV_VERSION ); |
|
85 | - $item->set_date_created( current_time( 'mysql' ) ); |
|
83 | + public function create(&$item) { |
|
84 | + $item->set_version(WPINV_VERSION); |
|
85 | + $item->set_date_created(current_time('mysql')); |
|
86 | 86 | |
87 | 87 | // Create a new post. |
88 | 88 | $id = wp_insert_post( |
89 | 89 | apply_filters( |
90 | 90 | 'getpaid_new_item_data', |
91 | 91 | array( |
92 | - 'post_date' => $item->get_date_created( 'edit' ), |
|
92 | + 'post_date' => $item->get_date_created('edit'), |
|
93 | 93 | 'post_type' => 'wpi_item', |
94 | - 'post_status' => $this->get_post_status( $item ), |
|
94 | + 'post_status' => $this->get_post_status($item), |
|
95 | 95 | 'ping_status' => 'closed', |
96 | - 'post_author' => $item->get_author( 'edit' ), |
|
97 | - 'post_title' => $item->get_name( 'edit' ), |
|
96 | + 'post_author' => $item->get_author('edit'), |
|
97 | + 'post_title' => $item->get_name('edit'), |
|
98 | 98 | 'post_parent' => 0, |
99 | - 'post_excerpt' => $item->get_description( 'edit' ), |
|
99 | + 'post_excerpt' => $item->get_description('edit'), |
|
100 | 100 | ) |
101 | 101 | ), |
102 | 102 | true |
103 | 103 | ); |
104 | 104 | |
105 | - if ( $id && ! is_wp_error( $id ) ) { |
|
106 | - $item->set_id( $id ); |
|
107 | - $this->update_post_meta( $item ); |
|
105 | + if ($id && !is_wp_error($id)) { |
|
106 | + $item->set_id($id); |
|
107 | + $this->update_post_meta($item); |
|
108 | 108 | $item->save_meta_data(); |
109 | 109 | $item->apply_changes(); |
110 | - $this->clear_caches( $item ); |
|
111 | - do_action( 'getpaid_new_item', $item ); |
|
110 | + $this->clear_caches($item); |
|
111 | + do_action('getpaid_new_item', $item); |
|
112 | 112 | return true; |
113 | 113 | } |
114 | 114 | |
115 | - if ( is_wp_error( $id ) ) { |
|
115 | + if (is_wp_error($id)) { |
|
116 | 116 | $item->last_error = $id->get_error_message(); |
117 | 117 | } |
118 | 118 | |
@@ -125,14 +125,14 @@ discard block |
||
125 | 125 | * @param WPInv_Item $item Item object. |
126 | 126 | * |
127 | 127 | */ |
128 | - public function read( &$item ) { |
|
128 | + public function read(&$item) { |
|
129 | 129 | |
130 | 130 | $item->set_defaults(); |
131 | - $item_object = get_post( $item->get_id() ); |
|
131 | + $item_object = get_post($item->get_id()); |
|
132 | 132 | |
133 | - if ( ! $item->get_id() || ! $item_object || $item_object->post_type != 'wpi_item' ) { |
|
134 | - $item->last_error = __( 'Invalid item.', 'invoicing' ); |
|
135 | - $item->set_id( 0 ); |
|
133 | + if (!$item->get_id() || !$item_object || $item_object->post_type != 'wpi_item') { |
|
134 | + $item->last_error = __('Invalid item.', 'invoicing'); |
|
135 | + $item->set_id(0); |
|
136 | 136 | return false; |
137 | 137 | } |
138 | 138 | |
@@ -148,10 +148,10 @@ discard block |
||
148 | 148 | ) |
149 | 149 | ); |
150 | 150 | |
151 | - $this->read_object_data( $item, $item_object ); |
|
151 | + $this->read_object_data($item, $item_object); |
|
152 | 152 | $item->read_meta_data(); |
153 | - $item->set_object_read( true ); |
|
154 | - do_action( 'getpaid_read_item', $item ); |
|
153 | + $item->set_object_read(true); |
|
154 | + do_action('getpaid_read_item', $item); |
|
155 | 155 | |
156 | 156 | } |
157 | 157 | |
@@ -160,29 +160,29 @@ discard block |
||
160 | 160 | * |
161 | 161 | * @param WPInv_Item $item Item object. |
162 | 162 | */ |
163 | - public function update( &$item ) { |
|
163 | + public function update(&$item) { |
|
164 | 164 | $item->save_meta_data(); |
165 | - $item->set_version( WPINV_VERSION ); |
|
165 | + $item->set_version(WPINV_VERSION); |
|
166 | 166 | |
167 | - if ( null === $item->get_date_created( 'edit' ) ) { |
|
168 | - $item->set_date_created( current_time( 'mysql' ) ); |
|
167 | + if (null === $item->get_date_created('edit')) { |
|
168 | + $item->set_date_created(current_time('mysql')); |
|
169 | 169 | } |
170 | 170 | |
171 | 171 | // Grab the current status so we can compare. |
172 | - $previous_status = get_post_status( $item->get_id() ); |
|
172 | + $previous_status = get_post_status($item->get_id()); |
|
173 | 173 | |
174 | 174 | $changes = $item->get_changes(); |
175 | 175 | |
176 | 176 | // Only update the post when the post data changes. |
177 | - if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'parent_id', 'description', 'name', 'author' ), array_keys( $changes ) ) ) { |
|
177 | + if (array_intersect(array('date_created', 'date_modified', 'status', 'parent_id', 'description', 'name', 'author'), array_keys($changes))) { |
|
178 | 178 | $post_data = array( |
179 | - 'post_date' => $item->get_date_created( 'edit' ), |
|
180 | - 'post_status' => $item->get_status( 'edit' ), |
|
181 | - 'post_parent' => $item->get_parent_id( 'edit' ), |
|
182 | - 'post_excerpt' => $item->get_description( 'edit' ), |
|
183 | - 'post_modified' => $item->get_date_modified( 'edit' ), |
|
184 | - 'post_title' => $item->get_name( 'edit' ), |
|
185 | - 'post_author' => $item->get_author( 'edit' ), |
|
179 | + 'post_date' => $item->get_date_created('edit'), |
|
180 | + 'post_status' => $item->get_status('edit'), |
|
181 | + 'post_parent' => $item->get_parent_id('edit'), |
|
182 | + 'post_excerpt' => $item->get_description('edit'), |
|
183 | + 'post_modified' => $item->get_date_modified('edit'), |
|
184 | + 'post_title' => $item->get_name('edit'), |
|
185 | + 'post_author' => $item->get_author('edit'), |
|
186 | 186 | ); |
187 | 187 | |
188 | 188 | /** |
@@ -193,25 +193,25 @@ discard block |
||
193 | 193 | * This ensures hooks are fired by either WP itself (admin screen save), |
194 | 194 | * or an update purely from CRUD. |
195 | 195 | */ |
196 | - if ( doing_action( 'save_post' ) ) { |
|
197 | - $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $item->get_id() ) ); |
|
198 | - clean_post_cache( $item->get_id() ); |
|
196 | + if (doing_action('save_post')) { |
|
197 | + $GLOBALS['wpdb']->update($GLOBALS['wpdb']->posts, $post_data, array('ID' => $item->get_id())); |
|
198 | + clean_post_cache($item->get_id()); |
|
199 | 199 | } else { |
200 | - wp_update_post( array_merge( array( 'ID' => $item->get_id() ), $post_data ) ); |
|
200 | + wp_update_post(array_merge(array('ID' => $item->get_id()), $post_data)); |
|
201 | 201 | } |
202 | - $item->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
202 | + $item->read_meta_data(true); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
203 | 203 | } |
204 | - $this->update_post_meta( $item ); |
|
204 | + $this->update_post_meta($item); |
|
205 | 205 | $item->apply_changes(); |
206 | - $this->clear_caches( $item ); |
|
206 | + $this->clear_caches($item); |
|
207 | 207 | |
208 | 208 | // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
209 | - $new_status = $item->get_status( 'edit' ); |
|
209 | + $new_status = $item->get_status('edit'); |
|
210 | 210 | |
211 | - if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
212 | - do_action( 'getpaid_new_item', $item ); |
|
211 | + if ($new_status !== $previous_status && in_array($previous_status, array('new', 'auto-draft', 'draft'), true)) { |
|
212 | + do_action('getpaid_new_item', $item); |
|
213 | 213 | } else { |
214 | - do_action( 'getpaid_update_item', $item ); |
|
214 | + do_action('getpaid_update_item', $item); |
|
215 | 215 | } |
216 | 216 | |
217 | 217 | } |
@@ -228,14 +228,14 @@ discard block |
||
228 | 228 | * @param WPInv_Item $item WPInv_Item object. |
229 | 229 | * @since 1.0.19 |
230 | 230 | */ |
231 | - protected function update_post_meta( &$item ) { |
|
231 | + protected function update_post_meta(&$item) { |
|
232 | 232 | |
233 | 233 | // Ensure that we have a custom id. |
234 | - if ( ! $item->get_custom_id() ) { |
|
235 | - $item->set_custom_id( $item->get_id() ); |
|
234 | + if (!$item->get_custom_id()) { |
|
235 | + $item->set_custom_id($item->get_id()); |
|
236 | 236 | } |
237 | 237 | |
238 | - parent::update_post_meta( $item ); |
|
238 | + parent::update_post_meta($item); |
|
239 | 239 | } |
240 | 240 | |
241 | 241 | } |
@@ -12,487 +12,487 @@ |
||
12 | 12 | */ |
13 | 13 | class GetPaid_Invoice_Notification_Emails { |
14 | 14 | |
15 | - /** |
|
16 | - * The array of invoice email actions. |
|
17 | - * |
|
18 | - * @param array |
|
19 | - */ |
|
20 | - public $invoice_actions; |
|
21 | - |
|
22 | - /** |
|
23 | - * Class constructor |
|
24 | - * |
|
25 | - */ |
|
26 | - public function __construct() { |
|
27 | - |
|
28 | - $this->invoice_actions = apply_filters( |
|
29 | - 'getpaid_notification_email_invoice_triggers', |
|
30 | - array( |
|
31 | - 'getpaid_new_invoice' => array( 'new_invoice', 'user_invoice' ), |
|
32 | - 'getpaid_invoice_status_wpi-cancelled' => 'cancelled_invoice', |
|
33 | - 'getpaid_invoice_status_wpi-failed' => 'failed_invoice', |
|
34 | - 'getpaid_invoice_status_wpi-onhold' => 'onhold_invoice', |
|
35 | - 'getpaid_invoice_status_wpi-processing' => 'processing_invoice', |
|
36 | - 'getpaid_invoice_status_publish' => 'completed_invoice', |
|
37 | - 'getpaid_invoice_status_wpi-renewal' => 'completed_invoice', |
|
38 | - 'getpaid_invoice_status_wpi-refunded' => 'refunded_invoice', |
|
39 | - 'getpaid_new_customer_note' => 'user_note', |
|
40 | - 'getpaid_daily_maintenance' => 'overdue', |
|
41 | - ) |
|
42 | - ); |
|
43 | - |
|
44 | - $this->init_hooks(); |
|
45 | - |
|
46 | - } |
|
47 | - |
|
48 | - /** |
|
49 | - * Registers email hooks. |
|
50 | - */ |
|
51 | - public function init_hooks() { |
|
52 | - |
|
53 | - add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 ); |
|
54 | - add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 ); |
|
55 | - |
|
56 | - foreach ( $this->invoice_actions as $hook => $email_type ) { |
|
57 | - $this->init_email_type_hook( $hook, $email_type ); |
|
58 | - } |
|
59 | - } |
|
60 | - |
|
61 | - /** |
|
62 | - * Registers an email hook for an invoice action. |
|
63 | - * |
|
64 | - * @param string $hook |
|
65 | - * @param string|array $email_type |
|
66 | - */ |
|
67 | - public function init_email_type_hook( $hook, $email_type ) { |
|
68 | - |
|
69 | - $email_type = wpinv_parse_list( $email_type ); |
|
70 | - |
|
71 | - foreach ( $email_type as $type ) { |
|
72 | - |
|
73 | - $email = new GetPaid_Notification_Email( $type ); |
|
74 | - |
|
75 | - // Abort if it is not active. |
|
76 | - if ( ! $email->is_active() ) { |
|
77 | - continue; |
|
78 | - } |
|
79 | - |
|
80 | - if ( method_exists( $this, $type ) ) { |
|
81 | - add_action( $hook, array( $this, $type ), 100, 2 ); |
|
82 | - continue; |
|
83 | - } |
|
84 | - |
|
85 | - do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook ); |
|
86 | - } |
|
87 | - |
|
88 | - } |
|
89 | - |
|
90 | - /** |
|
91 | - * Filters invoice merge tags. |
|
92 | - * |
|
93 | - * @param array $merge_tags |
|
94 | - * @param mixed|WPInv_Invoice|WPInv_Subscription $object |
|
95 | - */ |
|
96 | - public function invoice_merge_tags( $merge_tags, $object ) { |
|
97 | - |
|
98 | - if ( is_a( $object, 'WPInv_Invoice' ) ) { |
|
99 | - return array_merge( |
|
100 | - $merge_tags, |
|
101 | - $this->get_invoice_merge_tags( $object ) |
|
102 | - ); |
|
103 | - } |
|
104 | - |
|
105 | - if ( is_a( $object, 'WPInv_Subscription' ) ) { |
|
106 | - return array_merge( |
|
107 | - $merge_tags, |
|
108 | - $this->get_invoice_merge_tags( $object->get_parent_payment() ) |
|
109 | - ); |
|
110 | - } |
|
111 | - |
|
112 | - return $merge_tags; |
|
113 | - |
|
114 | - } |
|
115 | - |
|
116 | - /** |
|
117 | - * Generates invoice merge tags. |
|
118 | - * |
|
119 | - * @param WPInv_Invoice $invoice |
|
120 | - * @return array |
|
121 | - */ |
|
122 | - public function get_invoice_merge_tags( $invoice ) { |
|
123 | - |
|
124 | - // Abort if it does not exist. |
|
125 | - if ( ! $invoice->get_id() ) { |
|
126 | - return array(); |
|
127 | - } |
|
128 | - |
|
129 | - $merge_tags = array( |
|
130 | - '{name}' => sanitize_text_field( $invoice->get_user_full_name() ), |
|
131 | - '{full_name}' => sanitize_text_field( $invoice->get_user_full_name() ), |
|
132 | - '{first_name}' => sanitize_text_field( $invoice->get_first_name() ), |
|
133 | - '{last_name}' => sanitize_text_field( $invoice->get_last_name() ), |
|
134 | - '{email}' => sanitize_email( $invoice->get_email() ), |
|
135 | - '{invoice_number}' => sanitize_text_field( $invoice->get_number() ), |
|
136 | - '{invoice_currency}' => sanitize_text_field( $invoice->get_currency() ), |
|
137 | - '{invoice_total}' => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ), |
|
138 | - '{invoice_link}' => esc_url( $invoice->get_view_url() ), |
|
139 | - '{invoice_pay_link}' => esc_url( $invoice->get_checkout_payment_url() ), |
|
140 | - '{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ), |
|
141 | - '{invoice_date}' => getpaid_format_date_value( $invoice->get_date_created() ), |
|
142 | - '{invoice_due_date}' => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ), |
|
143 | - '{invoice_quote}' => sanitize_text_field( strtolower( $invoice->get_label() ) ), |
|
144 | - '{invoice_label}' => sanitize_text_field( ucfirst( $invoice->get_label() ) ), |
|
145 | - '{invoice_description}' => wp_kses_post( $invoice->get_description() ), |
|
146 | - '{subscription_name}' => wp_kses_post( $invoice->get_subscription_name() ), |
|
147 | - '{is_was}' => strtotime( $invoice->get_due_date() ) < current_time( 'timestamp' ) ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ), |
|
148 | - ); |
|
149 | - |
|
150 | - $payment_form_data = $invoice->get_meta( 'payment_form_data', true ); |
|
151 | - |
|
152 | - if ( is_array( $payment_form_data ) ) { |
|
153 | - |
|
154 | - foreach ( $payment_form_data as $label => $value ) { |
|
155 | - |
|
156 | - $label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) ); |
|
157 | - $value = is_array( $value ) ? implode( ', ', $value ) : $value; |
|
158 | - |
|
159 | - if ( is_scalar( $value ) ) { |
|
160 | - $merge_tags[ "{{$label}}" ] = wp_kses_post( $value ); |
|
161 | - } |
|
15 | + /** |
|
16 | + * The array of invoice email actions. |
|
17 | + * |
|
18 | + * @param array |
|
19 | + */ |
|
20 | + public $invoice_actions; |
|
21 | + |
|
22 | + /** |
|
23 | + * Class constructor |
|
24 | + * |
|
25 | + */ |
|
26 | + public function __construct() { |
|
27 | + |
|
28 | + $this->invoice_actions = apply_filters( |
|
29 | + 'getpaid_notification_email_invoice_triggers', |
|
30 | + array( |
|
31 | + 'getpaid_new_invoice' => array( 'new_invoice', 'user_invoice' ), |
|
32 | + 'getpaid_invoice_status_wpi-cancelled' => 'cancelled_invoice', |
|
33 | + 'getpaid_invoice_status_wpi-failed' => 'failed_invoice', |
|
34 | + 'getpaid_invoice_status_wpi-onhold' => 'onhold_invoice', |
|
35 | + 'getpaid_invoice_status_wpi-processing' => 'processing_invoice', |
|
36 | + 'getpaid_invoice_status_publish' => 'completed_invoice', |
|
37 | + 'getpaid_invoice_status_wpi-renewal' => 'completed_invoice', |
|
38 | + 'getpaid_invoice_status_wpi-refunded' => 'refunded_invoice', |
|
39 | + 'getpaid_new_customer_note' => 'user_note', |
|
40 | + 'getpaid_daily_maintenance' => 'overdue', |
|
41 | + ) |
|
42 | + ); |
|
43 | + |
|
44 | + $this->init_hooks(); |
|
45 | + |
|
46 | + } |
|
47 | + |
|
48 | + /** |
|
49 | + * Registers email hooks. |
|
50 | + */ |
|
51 | + public function init_hooks() { |
|
52 | + |
|
53 | + add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 ); |
|
54 | + add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 ); |
|
55 | + |
|
56 | + foreach ( $this->invoice_actions as $hook => $email_type ) { |
|
57 | + $this->init_email_type_hook( $hook, $email_type ); |
|
58 | + } |
|
59 | + } |
|
60 | + |
|
61 | + /** |
|
62 | + * Registers an email hook for an invoice action. |
|
63 | + * |
|
64 | + * @param string $hook |
|
65 | + * @param string|array $email_type |
|
66 | + */ |
|
67 | + public function init_email_type_hook( $hook, $email_type ) { |
|
68 | + |
|
69 | + $email_type = wpinv_parse_list( $email_type ); |
|
70 | + |
|
71 | + foreach ( $email_type as $type ) { |
|
72 | + |
|
73 | + $email = new GetPaid_Notification_Email( $type ); |
|
74 | + |
|
75 | + // Abort if it is not active. |
|
76 | + if ( ! $email->is_active() ) { |
|
77 | + continue; |
|
78 | + } |
|
79 | + |
|
80 | + if ( method_exists( $this, $type ) ) { |
|
81 | + add_action( $hook, array( $this, $type ), 100, 2 ); |
|
82 | + continue; |
|
83 | + } |
|
84 | + |
|
85 | + do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook ); |
|
86 | + } |
|
87 | + |
|
88 | + } |
|
89 | + |
|
90 | + /** |
|
91 | + * Filters invoice merge tags. |
|
92 | + * |
|
93 | + * @param array $merge_tags |
|
94 | + * @param mixed|WPInv_Invoice|WPInv_Subscription $object |
|
95 | + */ |
|
96 | + public function invoice_merge_tags( $merge_tags, $object ) { |
|
97 | + |
|
98 | + if ( is_a( $object, 'WPInv_Invoice' ) ) { |
|
99 | + return array_merge( |
|
100 | + $merge_tags, |
|
101 | + $this->get_invoice_merge_tags( $object ) |
|
102 | + ); |
|
103 | + } |
|
104 | + |
|
105 | + if ( is_a( $object, 'WPInv_Subscription' ) ) { |
|
106 | + return array_merge( |
|
107 | + $merge_tags, |
|
108 | + $this->get_invoice_merge_tags( $object->get_parent_payment() ) |
|
109 | + ); |
|
110 | + } |
|
111 | + |
|
112 | + return $merge_tags; |
|
113 | + |
|
114 | + } |
|
115 | + |
|
116 | + /** |
|
117 | + * Generates invoice merge tags. |
|
118 | + * |
|
119 | + * @param WPInv_Invoice $invoice |
|
120 | + * @return array |
|
121 | + */ |
|
122 | + public function get_invoice_merge_tags( $invoice ) { |
|
123 | + |
|
124 | + // Abort if it does not exist. |
|
125 | + if ( ! $invoice->get_id() ) { |
|
126 | + return array(); |
|
127 | + } |
|
128 | + |
|
129 | + $merge_tags = array( |
|
130 | + '{name}' => sanitize_text_field( $invoice->get_user_full_name() ), |
|
131 | + '{full_name}' => sanitize_text_field( $invoice->get_user_full_name() ), |
|
132 | + '{first_name}' => sanitize_text_field( $invoice->get_first_name() ), |
|
133 | + '{last_name}' => sanitize_text_field( $invoice->get_last_name() ), |
|
134 | + '{email}' => sanitize_email( $invoice->get_email() ), |
|
135 | + '{invoice_number}' => sanitize_text_field( $invoice->get_number() ), |
|
136 | + '{invoice_currency}' => sanitize_text_field( $invoice->get_currency() ), |
|
137 | + '{invoice_total}' => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ), |
|
138 | + '{invoice_link}' => esc_url( $invoice->get_view_url() ), |
|
139 | + '{invoice_pay_link}' => esc_url( $invoice->get_checkout_payment_url() ), |
|
140 | + '{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ), |
|
141 | + '{invoice_date}' => getpaid_format_date_value( $invoice->get_date_created() ), |
|
142 | + '{invoice_due_date}' => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ), |
|
143 | + '{invoice_quote}' => sanitize_text_field( strtolower( $invoice->get_label() ) ), |
|
144 | + '{invoice_label}' => sanitize_text_field( ucfirst( $invoice->get_label() ) ), |
|
145 | + '{invoice_description}' => wp_kses_post( $invoice->get_description() ), |
|
146 | + '{subscription_name}' => wp_kses_post( $invoice->get_subscription_name() ), |
|
147 | + '{is_was}' => strtotime( $invoice->get_due_date() ) < current_time( 'timestamp' ) ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ), |
|
148 | + ); |
|
149 | + |
|
150 | + $payment_form_data = $invoice->get_meta( 'payment_form_data', true ); |
|
151 | + |
|
152 | + if ( is_array( $payment_form_data ) ) { |
|
153 | + |
|
154 | + foreach ( $payment_form_data as $label => $value ) { |
|
155 | + |
|
156 | + $label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) ); |
|
157 | + $value = is_array( $value ) ? implode( ', ', $value ) : $value; |
|
158 | + |
|
159 | + if ( is_scalar( $value ) ) { |
|
160 | + $merge_tags[ "{{$label}}" ] = wp_kses_post( $value ); |
|
161 | + } |
|
162 | 162 | } |
163 | 163 | } |
164 | 164 | |
165 | - return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice ); |
|
166 | - } |
|
167 | - |
|
168 | - /** |
|
169 | - * Helper function to send an email. |
|
170 | - * |
|
171 | - * @param WPInv_Invoice $invoice |
|
172 | - * @param GetPaid_Notification_Email $email |
|
173 | - * @param string $type |
|
174 | - * @param string|array $recipients |
|
175 | - * @param array $extra_args Extra template args. |
|
176 | - */ |
|
177 | - public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) { |
|
178 | - |
|
179 | - do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email ); |
|
180 | - |
|
181 | - $skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' ); |
|
182 | - if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) { |
|
183 | - return; |
|
184 | - } |
|
185 | - |
|
186 | - $mailer = new GetPaid_Notification_Email_Sender(); |
|
187 | - $merge_tags = $email->get_merge_tags(); |
|
188 | - |
|
189 | - $result = $mailer->send( |
|
190 | - apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ), |
|
191 | - $email->add_merge_tags( $email->get_subject(), $merge_tags ), |
|
192 | - $email->get_content( $merge_tags, $extra_args ), |
|
193 | - $email->get_attachments() |
|
194 | - ); |
|
195 | - |
|
196 | - // Maybe send a copy to the admin. |
|
197 | - if ( $email->include_admin_bcc() ) { |
|
198 | - $mailer->send( |
|
199 | - wpinv_get_admin_email(), |
|
200 | - $email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ), |
|
201 | - $email->get_content( $merge_tags ), |
|
202 | - $email->get_attachments() |
|
203 | - ); |
|
204 | - } |
|
205 | - |
|
206 | - if ( $result ) { |
|
207 | - $invoice->add_system_note( |
|
208 | - sprintf( |
|
209 | - __( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ), |
|
210 | - sanitize_key( $type ), |
|
211 | - $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
212 | - ) |
|
213 | - ); |
|
214 | - } else { |
|
215 | - $invoice->add_system_note( |
|
216 | - sprintf( |
|
217 | - __( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ), |
|
218 | - sanitize_key( $type ), |
|
219 | - $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
220 | - ) |
|
221 | - ); |
|
222 | - } |
|
223 | - |
|
224 | - do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email ); |
|
225 | - |
|
226 | - return $result; |
|
227 | - } |
|
228 | - |
|
229 | - /** |
|
230 | - * Also send emails to any cc users. |
|
231 | - * |
|
232 | - * @param array $recipients |
|
233 | - * @param GetPaid_Notification_Email $email |
|
234 | - */ |
|
235 | - public function filter_email_recipients( $recipients, $email ) { |
|
236 | - |
|
237 | - if ( ! $email->is_admin_email() ) { |
|
238 | - $cc = $email->object->get_email_cc(); |
|
239 | - $cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true ); |
|
240 | - |
|
241 | - if ( ! empty( $cc ) ) { |
|
242 | - $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) ); |
|
243 | - $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) ); |
|
244 | - } |
|
245 | - |
|
246 | - if ( ! empty( $cc_2 ) ) { |
|
247 | - $cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) ); |
|
248 | - $recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) ); |
|
249 | - } |
|
165 | + return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice ); |
|
166 | + } |
|
167 | + |
|
168 | + /** |
|
169 | + * Helper function to send an email. |
|
170 | + * |
|
171 | + * @param WPInv_Invoice $invoice |
|
172 | + * @param GetPaid_Notification_Email $email |
|
173 | + * @param string $type |
|
174 | + * @param string|array $recipients |
|
175 | + * @param array $extra_args Extra template args. |
|
176 | + */ |
|
177 | + public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) { |
|
178 | + |
|
179 | + do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email ); |
|
180 | + |
|
181 | + $skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' ); |
|
182 | + if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) { |
|
183 | + return; |
|
184 | + } |
|
185 | + |
|
186 | + $mailer = new GetPaid_Notification_Email_Sender(); |
|
187 | + $merge_tags = $email->get_merge_tags(); |
|
188 | + |
|
189 | + $result = $mailer->send( |
|
190 | + apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ), |
|
191 | + $email->add_merge_tags( $email->get_subject(), $merge_tags ), |
|
192 | + $email->get_content( $merge_tags, $extra_args ), |
|
193 | + $email->get_attachments() |
|
194 | + ); |
|
195 | + |
|
196 | + // Maybe send a copy to the admin. |
|
197 | + if ( $email->include_admin_bcc() ) { |
|
198 | + $mailer->send( |
|
199 | + wpinv_get_admin_email(), |
|
200 | + $email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ), |
|
201 | + $email->get_content( $merge_tags ), |
|
202 | + $email->get_attachments() |
|
203 | + ); |
|
204 | + } |
|
205 | + |
|
206 | + if ( $result ) { |
|
207 | + $invoice->add_system_note( |
|
208 | + sprintf( |
|
209 | + __( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ), |
|
210 | + sanitize_key( $type ), |
|
211 | + $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
212 | + ) |
|
213 | + ); |
|
214 | + } else { |
|
215 | + $invoice->add_system_note( |
|
216 | + sprintf( |
|
217 | + __( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ), |
|
218 | + sanitize_key( $type ), |
|
219 | + $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
220 | + ) |
|
221 | + ); |
|
222 | + } |
|
223 | + |
|
224 | + do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email ); |
|
225 | + |
|
226 | + return $result; |
|
227 | + } |
|
228 | + |
|
229 | + /** |
|
230 | + * Also send emails to any cc users. |
|
231 | + * |
|
232 | + * @param array $recipients |
|
233 | + * @param GetPaid_Notification_Email $email |
|
234 | + */ |
|
235 | + public function filter_email_recipients( $recipients, $email ) { |
|
236 | + |
|
237 | + if ( ! $email->is_admin_email() ) { |
|
238 | + $cc = $email->object->get_email_cc(); |
|
239 | + $cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true ); |
|
240 | + |
|
241 | + if ( ! empty( $cc ) ) { |
|
242 | + $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) ); |
|
243 | + $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) ); |
|
244 | + } |
|
245 | + |
|
246 | + if ( ! empty( $cc_2 ) ) { |
|
247 | + $cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) ); |
|
248 | + $recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) ); |
|
249 | + } |
|
250 | 250 | } |
251 | 251 | |
252 | - return $recipients; |
|
252 | + return $recipients; |
|
253 | 253 | |
254 | - } |
|
254 | + } |
|
255 | 255 | |
256 | - /** |
|
257 | - * Sends a new invoice notification. |
|
258 | - * |
|
259 | - * @param WPInv_Invoice $invoice |
|
260 | - */ |
|
261 | - public function new_invoice( $invoice ) { |
|
256 | + /** |
|
257 | + * Sends a new invoice notification. |
|
258 | + * |
|
259 | + * @param WPInv_Invoice $invoice |
|
260 | + */ |
|
261 | + public function new_invoice( $invoice ) { |
|
262 | 262 | |
263 | - // Only send this email for invoices created via the admin page. |
|
264 | - if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) { |
|
265 | - return; |
|
266 | - } |
|
263 | + // Only send this email for invoices created via the admin page. |
|
264 | + if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) { |
|
265 | + return; |
|
266 | + } |
|
267 | 267 | |
268 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
269 | - $recipient = wpinv_get_admin_email(); |
|
268 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
269 | + $recipient = wpinv_get_admin_email(); |
|
270 | 270 | |
271 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
271 | + return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
272 | 272 | |
273 | - } |
|
273 | + } |
|
274 | 274 | |
275 | - /** |
|
276 | - * Sends a cancelled invoice notification. |
|
277 | - * |
|
278 | - * @param WPInv_Invoice $invoice |
|
279 | - */ |
|
280 | - public function cancelled_invoice( $invoice ) { |
|
275 | + /** |
|
276 | + * Sends a cancelled invoice notification. |
|
277 | + * |
|
278 | + * @param WPInv_Invoice $invoice |
|
279 | + */ |
|
280 | + public function cancelled_invoice( $invoice ) { |
|
281 | 281 | |
282 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
283 | - $recipient = $invoice->get_email(); |
|
282 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
283 | + $recipient = $invoice->get_email(); |
|
284 | 284 | |
285 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
286 | - } |
|
285 | + return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
286 | + } |
|
287 | 287 | |
288 | - /** |
|
289 | - * Sends a failed invoice notification. |
|
290 | - * |
|
291 | - * @param WPInv_Invoice $invoice |
|
292 | - */ |
|
293 | - public function failed_invoice( $invoice ) { |
|
288 | + /** |
|
289 | + * Sends a failed invoice notification. |
|
290 | + * |
|
291 | + * @param WPInv_Invoice $invoice |
|
292 | + */ |
|
293 | + public function failed_invoice( $invoice ) { |
|
294 | 294 | |
295 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
296 | - $recipient = wpinv_get_admin_email(); |
|
295 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
296 | + $recipient = wpinv_get_admin_email(); |
|
297 | 297 | |
298 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
298 | + return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
299 | 299 | |
300 | - } |
|
300 | + } |
|
301 | 301 | |
302 | - /** |
|
303 | - * Sends a notification whenever an invoice is put on hold. |
|
304 | - * |
|
305 | - * @param WPInv_Invoice $invoice |
|
306 | - */ |
|
307 | - public function onhold_invoice( $invoice ) { |
|
302 | + /** |
|
303 | + * Sends a notification whenever an invoice is put on hold. |
|
304 | + * |
|
305 | + * @param WPInv_Invoice $invoice |
|
306 | + */ |
|
307 | + public function onhold_invoice( $invoice ) { |
|
308 | 308 | |
309 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
310 | - $recipient = $invoice->get_email(); |
|
309 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
310 | + $recipient = $invoice->get_email(); |
|
311 | 311 | |
312 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
312 | + return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
313 | 313 | |
314 | - } |
|
314 | + } |
|
315 | 315 | |
316 | - /** |
|
317 | - * Sends a notification whenever an invoice is marked as processing payment. |
|
318 | - * |
|
319 | - * @param WPInv_Invoice $invoice |
|
320 | - */ |
|
321 | - public function processing_invoice( $invoice ) { |
|
316 | + /** |
|
317 | + * Sends a notification whenever an invoice is marked as processing payment. |
|
318 | + * |
|
319 | + * @param WPInv_Invoice $invoice |
|
320 | + */ |
|
321 | + public function processing_invoice( $invoice ) { |
|
322 | 322 | |
323 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
324 | - $recipient = $invoice->get_email(); |
|
323 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
324 | + $recipient = $invoice->get_email(); |
|
325 | 325 | |
326 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
326 | + return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
327 | 327 | |
328 | - } |
|
328 | + } |
|
329 | 329 | |
330 | - /** |
|
331 | - * Sends a notification whenever an invoice is paid. |
|
332 | - * |
|
333 | - * @param WPInv_Invoice $invoice |
|
334 | - */ |
|
335 | - public function completed_invoice( $invoice ) { |
|
330 | + /** |
|
331 | + * Sends a notification whenever an invoice is paid. |
|
332 | + * |
|
333 | + * @param WPInv_Invoice $invoice |
|
334 | + */ |
|
335 | + public function completed_invoice( $invoice ) { |
|
336 | 336 | |
337 | - // (Maybe) abort if it is a renewal invoice. |
|
338 | - if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) { |
|
339 | - return; |
|
340 | - } |
|
337 | + // (Maybe) abort if it is a renewal invoice. |
|
338 | + if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) { |
|
339 | + return; |
|
340 | + } |
|
341 | 341 | |
342 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
343 | - $recipient = $invoice->get_email(); |
|
342 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
343 | + $recipient = $invoice->get_email(); |
|
344 | 344 | |
345 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
345 | + return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
346 | 346 | |
347 | - } |
|
347 | + } |
|
348 | 348 | |
349 | - /** |
|
350 | - * Sends a notification whenever an invoice is refunded. |
|
351 | - * |
|
352 | - * @param WPInv_Invoice $invoice |
|
353 | - */ |
|
354 | - public function refunded_invoice( $invoice ) { |
|
349 | + /** |
|
350 | + * Sends a notification whenever an invoice is refunded. |
|
351 | + * |
|
352 | + * @param WPInv_Invoice $invoice |
|
353 | + */ |
|
354 | + public function refunded_invoice( $invoice ) { |
|
355 | 355 | |
356 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
357 | - $recipient = $invoice->get_email(); |
|
358 | - |
|
359 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
356 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
357 | + $recipient = $invoice->get_email(); |
|
358 | + |
|
359 | + return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
360 | 360 | |
361 | - } |
|
361 | + } |
|
362 | 362 | |
363 | - /** |
|
364 | - * Notifies a user about new invoices |
|
365 | - * |
|
366 | - * @param WPInv_Invoice $invoice |
|
367 | - * @param bool $force |
|
368 | - */ |
|
369 | - public function user_invoice( $invoice, $force = false ) { |
|
363 | + /** |
|
364 | + * Notifies a user about new invoices |
|
365 | + * |
|
366 | + * @param WPInv_Invoice $invoice |
|
367 | + * @param bool $force |
|
368 | + */ |
|
369 | + public function user_invoice( $invoice, $force = false ) { |
|
370 | 370 | |
371 | - if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) { |
|
372 | - return; |
|
373 | - } |
|
374 | - |
|
375 | - // Only send this email for invoices created via the admin page. |
|
376 | - if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) { |
|
377 | - return; |
|
378 | - } |
|
371 | + if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) { |
|
372 | + return; |
|
373 | + } |
|
374 | + |
|
375 | + // Only send this email for invoices created via the admin page. |
|
376 | + if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) { |
|
377 | + return; |
|
378 | + } |
|
379 | 379 | |
380 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
381 | - $recipient = $invoice->get_email(); |
|
382 | - |
|
383 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
380 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
381 | + $recipient = $invoice->get_email(); |
|
382 | + |
|
383 | + return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
384 | 384 | |
385 | - } |
|
386 | - |
|
387 | - /** |
|
388 | - * Checks if an invoice is a payment form invoice. |
|
389 | - * |
|
390 | - * @param int $invoice |
|
391 | - * @return bool |
|
392 | - */ |
|
393 | - public function is_payment_form_invoice( $invoice ) { |
|
394 | - $is_payment_form_invoice = empty( $_GET['getpaid-admin-action'] ) && ( 'payment_form' === get_post_meta( $invoice, 'wpinv_created_via', true ) || 'geodirectory' === get_post_meta( $invoice, 'wpinv_created_via', true ) ); |
|
395 | - return apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice ); |
|
396 | - } |
|
385 | + } |
|
386 | + |
|
387 | + /** |
|
388 | + * Checks if an invoice is a payment form invoice. |
|
389 | + * |
|
390 | + * @param int $invoice |
|
391 | + * @return bool |
|
392 | + */ |
|
393 | + public function is_payment_form_invoice( $invoice ) { |
|
394 | + $is_payment_form_invoice = empty( $_GET['getpaid-admin-action'] ) && ( 'payment_form' === get_post_meta( $invoice, 'wpinv_created_via', true ) || 'geodirectory' === get_post_meta( $invoice, 'wpinv_created_via', true ) ); |
|
395 | + return apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice ); |
|
396 | + } |
|
397 | 397 | |
398 | - /** |
|
399 | - * Notifies admin about new invoice notes |
|
400 | - * |
|
401 | - * @param WPInv_Invoice $invoice |
|
402 | - * @param string $note |
|
403 | - */ |
|
404 | - public function user_note( $invoice, $note ) { |
|
405 | - |
|
406 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
407 | - $recipient = $invoice->get_email(); |
|
398 | + /** |
|
399 | + * Notifies admin about new invoice notes |
|
400 | + * |
|
401 | + * @param WPInv_Invoice $invoice |
|
402 | + * @param string $note |
|
403 | + */ |
|
404 | + public function user_note( $invoice, $note ) { |
|
405 | + |
|
406 | + $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
407 | + $recipient = $invoice->get_email(); |
|
408 | 408 | |
409 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) ); |
|
410 | - |
|
411 | - } |
|
412 | - |
|
413 | - /** |
|
414 | - * (Force) Sends overdue notices. |
|
415 | - * |
|
416 | - * @param WPInv_Invoice $invoice |
|
417 | - */ |
|
418 | - public function force_send_overdue_notice( $invoice ) { |
|
419 | - $email = new GetPaid_Notification_Email( 'overdue', $invoice ); |
|
420 | - return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() ); |
|
421 | - } |
|
422 | - |
|
423 | - /** |
|
424 | - * Sends overdue notices. |
|
425 | - * |
|
426 | - * @TODO: Create an invoices query class. |
|
427 | - */ |
|
428 | - public function overdue() { |
|
429 | - global $wpdb; |
|
430 | - |
|
431 | - $email = new GetPaid_Notification_Email( __FUNCTION__ ); |
|
432 | - |
|
433 | - // Fetch reminder days. |
|
434 | - $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) ); |
|
435 | - |
|
436 | - // Abort if non is set. |
|
437 | - if ( empty( $reminder_days ) ) { |
|
438 | - return; |
|
439 | - } |
|
440 | - |
|
441 | - // Retrieve date query. |
|
442 | - $date_query = $this->get_date_query( $reminder_days ); |
|
443 | - |
|
444 | - // Invoices table. |
|
445 | - $table = $wpdb->prefix . 'getpaid_invoices'; |
|
446 | - |
|
447 | - // Fetch invoices. |
|
448 | - $invoices = $wpdb->get_col( |
|
449 | - "SELECT posts.ID FROM $wpdb->posts as posts |
|
409 | + return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) ); |
|
410 | + |
|
411 | + } |
|
412 | + |
|
413 | + /** |
|
414 | + * (Force) Sends overdue notices. |
|
415 | + * |
|
416 | + * @param WPInv_Invoice $invoice |
|
417 | + */ |
|
418 | + public function force_send_overdue_notice( $invoice ) { |
|
419 | + $email = new GetPaid_Notification_Email( 'overdue', $invoice ); |
|
420 | + return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() ); |
|
421 | + } |
|
422 | + |
|
423 | + /** |
|
424 | + * Sends overdue notices. |
|
425 | + * |
|
426 | + * @TODO: Create an invoices query class. |
|
427 | + */ |
|
428 | + public function overdue() { |
|
429 | + global $wpdb; |
|
430 | + |
|
431 | + $email = new GetPaid_Notification_Email( __FUNCTION__ ); |
|
432 | + |
|
433 | + // Fetch reminder days. |
|
434 | + $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) ); |
|
435 | + |
|
436 | + // Abort if non is set. |
|
437 | + if ( empty( $reminder_days ) ) { |
|
438 | + return; |
|
439 | + } |
|
440 | + |
|
441 | + // Retrieve date query. |
|
442 | + $date_query = $this->get_date_query( $reminder_days ); |
|
443 | + |
|
444 | + // Invoices table. |
|
445 | + $table = $wpdb->prefix . 'getpaid_invoices'; |
|
446 | + |
|
447 | + // Fetch invoices. |
|
448 | + $invoices = $wpdb->get_col( |
|
449 | + "SELECT posts.ID FROM $wpdb->posts as posts |
|
450 | 450 | LEFT JOIN $table as invoices ON invoices.post_id = posts.ID |
451 | 451 | WHERE posts.post_type = 'wpi_invoice' AND posts.post_status = 'wpi-pending' $date_query" |
452 | 452 | ); |
453 | 453 | |
454 | - foreach ( $invoices as $invoice ) { |
|
454 | + foreach ( $invoices as $invoice ) { |
|
455 | 455 | |
456 | - // Only send this email for invoices created via the admin page. |
|
457 | - if ( ! $this->is_payment_form_invoice( $invoice ) ) { |
|
458 | - $invoice = new WPInv_Invoice( $invoice ); |
|
459 | - $email->object = $invoice; |
|
456 | + // Only send this email for invoices created via the admin page. |
|
457 | + if ( ! $this->is_payment_form_invoice( $invoice ) ) { |
|
458 | + $invoice = new WPInv_Invoice( $invoice ); |
|
459 | + $email->object = $invoice; |
|
460 | 460 | |
461 | - if ( $invoice->needs_payment() ) { |
|
462 | - $this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() ); |
|
463 | - } |
|
461 | + if ( $invoice->needs_payment() ) { |
|
462 | + $this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() ); |
|
463 | + } |
|
464 | 464 | } |
465 | 465 | } |
466 | 466 | |
467 | - } |
|
467 | + } |
|
468 | 468 | |
469 | - /** |
|
470 | - * Calculates the date query for an invoices query |
|
471 | - * |
|
472 | - * @param array $reminder_days |
|
473 | - * @return string |
|
474 | - */ |
|
475 | - public function get_date_query( $reminder_days ) { |
|
469 | + /** |
|
470 | + * Calculates the date query for an invoices query |
|
471 | + * |
|
472 | + * @param array $reminder_days |
|
473 | + * @return string |
|
474 | + */ |
|
475 | + public function get_date_query( $reminder_days ) { |
|
476 | 476 | |
477 | - $date_query = array( |
|
478 | - 'relation' => 'OR', |
|
479 | - ); |
|
477 | + $date_query = array( |
|
478 | + 'relation' => 'OR', |
|
479 | + ); |
|
480 | 480 | |
481 | - foreach ( $reminder_days as $days ) { |
|
482 | - $date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) ); |
|
481 | + foreach ( $reminder_days as $days ) { |
|
482 | + $date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) ); |
|
483 | 483 | |
484 | - $date_query[] = array( |
|
485 | - 'year' => $date['year'], |
|
486 | - 'month' => $date['month'], |
|
487 | - 'day' => $date['day'], |
|
488 | - ); |
|
484 | + $date_query[] = array( |
|
485 | + 'year' => $date['year'], |
|
486 | + 'month' => $date['month'], |
|
487 | + 'day' => $date['day'], |
|
488 | + ); |
|
489 | 489 | |
490 | - } |
|
490 | + } |
|
491 | 491 | |
492 | - $date_query = new WP_Date_Query( $date_query, 'invoices.due_date' ); |
|
492 | + $date_query = new WP_Date_Query( $date_query, 'invoices.due_date' ); |
|
493 | 493 | |
494 | - return $date_query->get_sql(); |
|
494 | + return $date_query->get_sql(); |
|
495 | 495 | |
496 | - } |
|
496 | + } |
|
497 | 497 | |
498 | 498 | } |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * This class handles invoice notificaiton emails. |
@@ -28,7 +28,7 @@ discard block |
||
28 | 28 | $this->invoice_actions = apply_filters( |
29 | 29 | 'getpaid_notification_email_invoice_triggers', |
30 | 30 | array( |
31 | - 'getpaid_new_invoice' => array( 'new_invoice', 'user_invoice' ), |
|
31 | + 'getpaid_new_invoice' => array('new_invoice', 'user_invoice'), |
|
32 | 32 | 'getpaid_invoice_status_wpi-cancelled' => 'cancelled_invoice', |
33 | 33 | 'getpaid_invoice_status_wpi-failed' => 'failed_invoice', |
34 | 34 | 'getpaid_invoice_status_wpi-onhold' => 'onhold_invoice', |
@@ -50,11 +50,11 @@ discard block |
||
50 | 50 | */ |
51 | 51 | public function init_hooks() { |
52 | 52 | |
53 | - add_filter( 'getpaid_get_email_merge_tags', array( $this, 'invoice_merge_tags' ), 10, 2 ); |
|
54 | - add_filter( 'getpaid_invoice_email_recipients', array( $this, 'filter_email_recipients' ), 10, 2 ); |
|
53 | + add_filter('getpaid_get_email_merge_tags', array($this, 'invoice_merge_tags'), 10, 2); |
|
54 | + add_filter('getpaid_invoice_email_recipients', array($this, 'filter_email_recipients'), 10, 2); |
|
55 | 55 | |
56 | - foreach ( $this->invoice_actions as $hook => $email_type ) { |
|
57 | - $this->init_email_type_hook( $hook, $email_type ); |
|
56 | + foreach ($this->invoice_actions as $hook => $email_type) { |
|
57 | + $this->init_email_type_hook($hook, $email_type); |
|
58 | 58 | } |
59 | 59 | } |
60 | 60 | |
@@ -64,25 +64,25 @@ discard block |
||
64 | 64 | * @param string $hook |
65 | 65 | * @param string|array $email_type |
66 | 66 | */ |
67 | - public function init_email_type_hook( $hook, $email_type ) { |
|
67 | + public function init_email_type_hook($hook, $email_type) { |
|
68 | 68 | |
69 | - $email_type = wpinv_parse_list( $email_type ); |
|
69 | + $email_type = wpinv_parse_list($email_type); |
|
70 | 70 | |
71 | - foreach ( $email_type as $type ) { |
|
71 | + foreach ($email_type as $type) { |
|
72 | 72 | |
73 | - $email = new GetPaid_Notification_Email( $type ); |
|
73 | + $email = new GetPaid_Notification_Email($type); |
|
74 | 74 | |
75 | 75 | // Abort if it is not active. |
76 | - if ( ! $email->is_active() ) { |
|
76 | + if (!$email->is_active()) { |
|
77 | 77 | continue; |
78 | 78 | } |
79 | 79 | |
80 | - if ( method_exists( $this, $type ) ) { |
|
81 | - add_action( $hook, array( $this, $type ), 100, 2 ); |
|
80 | + if (method_exists($this, $type)) { |
|
81 | + add_action($hook, array($this, $type), 100, 2); |
|
82 | 82 | continue; |
83 | 83 | } |
84 | 84 | |
85 | - do_action( 'getpaid_invoice_init_email_type_hook', $type, $hook ); |
|
85 | + do_action('getpaid_invoice_init_email_type_hook', $type, $hook); |
|
86 | 86 | } |
87 | 87 | |
88 | 88 | } |
@@ -93,19 +93,19 @@ discard block |
||
93 | 93 | * @param array $merge_tags |
94 | 94 | * @param mixed|WPInv_Invoice|WPInv_Subscription $object |
95 | 95 | */ |
96 | - public function invoice_merge_tags( $merge_tags, $object ) { |
|
96 | + public function invoice_merge_tags($merge_tags, $object) { |
|
97 | 97 | |
98 | - if ( is_a( $object, 'WPInv_Invoice' ) ) { |
|
98 | + if (is_a($object, 'WPInv_Invoice')) { |
|
99 | 99 | return array_merge( |
100 | 100 | $merge_tags, |
101 | - $this->get_invoice_merge_tags( $object ) |
|
101 | + $this->get_invoice_merge_tags($object) |
|
102 | 102 | ); |
103 | 103 | } |
104 | 104 | |
105 | - if ( is_a( $object, 'WPInv_Subscription' ) ) { |
|
105 | + if (is_a($object, 'WPInv_Subscription')) { |
|
106 | 106 | return array_merge( |
107 | 107 | $merge_tags, |
108 | - $this->get_invoice_merge_tags( $object->get_parent_payment() ) |
|
108 | + $this->get_invoice_merge_tags($object->get_parent_payment()) |
|
109 | 109 | ); |
110 | 110 | } |
111 | 111 | |
@@ -119,50 +119,50 @@ discard block |
||
119 | 119 | * @param WPInv_Invoice $invoice |
120 | 120 | * @return array |
121 | 121 | */ |
122 | - public function get_invoice_merge_tags( $invoice ) { |
|
122 | + public function get_invoice_merge_tags($invoice) { |
|
123 | 123 | |
124 | 124 | // Abort if it does not exist. |
125 | - if ( ! $invoice->get_id() ) { |
|
125 | + if (!$invoice->get_id()) { |
|
126 | 126 | return array(); |
127 | 127 | } |
128 | 128 | |
129 | 129 | $merge_tags = array( |
130 | - '{name}' => sanitize_text_field( $invoice->get_user_full_name() ), |
|
131 | - '{full_name}' => sanitize_text_field( $invoice->get_user_full_name() ), |
|
132 | - '{first_name}' => sanitize_text_field( $invoice->get_first_name() ), |
|
133 | - '{last_name}' => sanitize_text_field( $invoice->get_last_name() ), |
|
134 | - '{email}' => sanitize_email( $invoice->get_email() ), |
|
135 | - '{invoice_number}' => sanitize_text_field( $invoice->get_number() ), |
|
136 | - '{invoice_currency}' => sanitize_text_field( $invoice->get_currency() ), |
|
137 | - '{invoice_total}' => sanitize_text_field( wpinv_price( $invoice->get_total(), $invoice->get_currency() ) ), |
|
138 | - '{invoice_link}' => esc_url( $invoice->get_view_url() ), |
|
139 | - '{invoice_pay_link}' => esc_url( $invoice->get_checkout_payment_url() ), |
|
140 | - '{invoice_receipt_link}' => esc_url( $invoice->get_receipt_url() ), |
|
141 | - '{invoice_date}' => getpaid_format_date_value( $invoice->get_date_created() ), |
|
142 | - '{invoice_due_date}' => getpaid_format_date_value( $invoice->get_due_date(), __( 'on receipt', 'invoicing' ) ), |
|
143 | - '{invoice_quote}' => sanitize_text_field( strtolower( $invoice->get_label() ) ), |
|
144 | - '{invoice_label}' => sanitize_text_field( ucfirst( $invoice->get_label() ) ), |
|
145 | - '{invoice_description}' => wp_kses_post( $invoice->get_description() ), |
|
146 | - '{subscription_name}' => wp_kses_post( $invoice->get_subscription_name() ), |
|
147 | - '{is_was}' => strtotime( $invoice->get_due_date() ) < current_time( 'timestamp' ) ? __( 'was', 'invoicing' ) : __( 'is', 'invoicing' ), |
|
130 | + '{name}' => sanitize_text_field($invoice->get_user_full_name()), |
|
131 | + '{full_name}' => sanitize_text_field($invoice->get_user_full_name()), |
|
132 | + '{first_name}' => sanitize_text_field($invoice->get_first_name()), |
|
133 | + '{last_name}' => sanitize_text_field($invoice->get_last_name()), |
|
134 | + '{email}' => sanitize_email($invoice->get_email()), |
|
135 | + '{invoice_number}' => sanitize_text_field($invoice->get_number()), |
|
136 | + '{invoice_currency}' => sanitize_text_field($invoice->get_currency()), |
|
137 | + '{invoice_total}' => sanitize_text_field(wpinv_price($invoice->get_total(), $invoice->get_currency())), |
|
138 | + '{invoice_link}' => esc_url($invoice->get_view_url()), |
|
139 | + '{invoice_pay_link}' => esc_url($invoice->get_checkout_payment_url()), |
|
140 | + '{invoice_receipt_link}' => esc_url($invoice->get_receipt_url()), |
|
141 | + '{invoice_date}' => getpaid_format_date_value($invoice->get_date_created()), |
|
142 | + '{invoice_due_date}' => getpaid_format_date_value($invoice->get_due_date(), __('on receipt', 'invoicing')), |
|
143 | + '{invoice_quote}' => sanitize_text_field(strtolower($invoice->get_label())), |
|
144 | + '{invoice_label}' => sanitize_text_field(ucfirst($invoice->get_label())), |
|
145 | + '{invoice_description}' => wp_kses_post($invoice->get_description()), |
|
146 | + '{subscription_name}' => wp_kses_post($invoice->get_subscription_name()), |
|
147 | + '{is_was}' => strtotime($invoice->get_due_date()) < current_time('timestamp') ? __('was', 'invoicing') : __('is', 'invoicing'), |
|
148 | 148 | ); |
149 | 149 | |
150 | - $payment_form_data = $invoice->get_meta( 'payment_form_data', true ); |
|
150 | + $payment_form_data = $invoice->get_meta('payment_form_data', true); |
|
151 | 151 | |
152 | - if ( is_array( $payment_form_data ) ) { |
|
152 | + if (is_array($payment_form_data)) { |
|
153 | 153 | |
154 | - foreach ( $payment_form_data as $label => $value ) { |
|
154 | + foreach ($payment_form_data as $label => $value) { |
|
155 | 155 | |
156 | - $label = preg_replace( '/[^a-z0-9]+/', '_', strtolower( $label ) ); |
|
157 | - $value = is_array( $value ) ? implode( ', ', $value ) : $value; |
|
156 | + $label = preg_replace('/[^a-z0-9]+/', '_', strtolower($label)); |
|
157 | + $value = is_array($value) ? implode(', ', $value) : $value; |
|
158 | 158 | |
159 | - if ( is_scalar( $value ) ) { |
|
160 | - $merge_tags[ "{{$label}}" ] = wp_kses_post( $value ); |
|
159 | + if (is_scalar($value)) { |
|
160 | + $merge_tags["{{$label}}"] = wp_kses_post($value); |
|
161 | 161 | } |
162 | 162 | } |
163 | 163 | } |
164 | 164 | |
165 | - return apply_filters( 'getpaid_invoice_email_merge_tags', $merge_tags, $invoice ); |
|
165 | + return apply_filters('getpaid_invoice_email_merge_tags', $merge_tags, $invoice); |
|
166 | 166 | } |
167 | 167 | |
168 | 168 | /** |
@@ -174,12 +174,12 @@ discard block |
||
174 | 174 | * @param string|array $recipients |
175 | 175 | * @param array $extra_args Extra template args. |
176 | 176 | */ |
177 | - public function send_email( $invoice, $email, $type, $recipients, $extra_args = array() ) { |
|
177 | + public function send_email($invoice, $email, $type, $recipients, $extra_args = array()) { |
|
178 | 178 | |
179 | - do_action( 'getpaid_before_send_invoice_notification', $type, $invoice, $email ); |
|
179 | + do_action('getpaid_before_send_invoice_notification', $type, $invoice, $email); |
|
180 | 180 | |
181 | - $skip = $invoice->is_free() && wpinv_get_option( 'skip_email_free_invoice' ); |
|
182 | - if ( apply_filters( 'getpaid_skip_invoice_email', $skip, $type, $invoice ) ) { |
|
181 | + $skip = $invoice->is_free() && wpinv_get_option('skip_email_free_invoice'); |
|
182 | + if (apply_filters('getpaid_skip_invoice_email', $skip, $type, $invoice)) { |
|
183 | 183 | return; |
184 | 184 | } |
185 | 185 | |
@@ -187,41 +187,41 @@ discard block |
||
187 | 187 | $merge_tags = $email->get_merge_tags(); |
188 | 188 | |
189 | 189 | $result = $mailer->send( |
190 | - apply_filters( 'getpaid_invoice_email_recipients', wpinv_parse_list( $recipients ), $email ), |
|
191 | - $email->add_merge_tags( $email->get_subject(), $merge_tags ), |
|
192 | - $email->get_content( $merge_tags, $extra_args ), |
|
190 | + apply_filters('getpaid_invoice_email_recipients', wpinv_parse_list($recipients), $email), |
|
191 | + $email->add_merge_tags($email->get_subject(), $merge_tags), |
|
192 | + $email->get_content($merge_tags, $extra_args), |
|
193 | 193 | $email->get_attachments() |
194 | 194 | ); |
195 | 195 | |
196 | 196 | // Maybe send a copy to the admin. |
197 | - if ( $email->include_admin_bcc() ) { |
|
197 | + if ($email->include_admin_bcc()) { |
|
198 | 198 | $mailer->send( |
199 | 199 | wpinv_get_admin_email(), |
200 | - $email->add_merge_tags( $email->get_subject() . __( ' - ADMIN BCC COPY', 'invoicing' ), $merge_tags ), |
|
201 | - $email->get_content( $merge_tags ), |
|
200 | + $email->add_merge_tags($email->get_subject() . __(' - ADMIN BCC COPY', 'invoicing'), $merge_tags), |
|
201 | + $email->get_content($merge_tags), |
|
202 | 202 | $email->get_attachments() |
203 | 203 | ); |
204 | 204 | } |
205 | 205 | |
206 | - if ( $result ) { |
|
206 | + if ($result) { |
|
207 | 207 | $invoice->add_system_note( |
208 | 208 | sprintf( |
209 | - __( 'Successfully sent %1$s notification email to %2$s.', 'invoicing' ), |
|
210 | - sanitize_key( $type ), |
|
211 | - $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
209 | + __('Successfully sent %1$s notification email to %2$s.', 'invoicing'), |
|
210 | + sanitize_key($type), |
|
211 | + $email->is_admin_email() ? __('admin') : __('the customer') |
|
212 | 212 | ) |
213 | 213 | ); |
214 | 214 | } else { |
215 | 215 | $invoice->add_system_note( |
216 | 216 | sprintf( |
217 | - __( 'Failed sending %1$s notification email to %2$s.', 'invoicing' ), |
|
218 | - sanitize_key( $type ), |
|
219 | - $email->is_admin_email() ? __( 'admin' ) : __( 'the customer' ) |
|
217 | + __('Failed sending %1$s notification email to %2$s.', 'invoicing'), |
|
218 | + sanitize_key($type), |
|
219 | + $email->is_admin_email() ? __('admin') : __('the customer') |
|
220 | 220 | ) |
221 | 221 | ); |
222 | 222 | } |
223 | 223 | |
224 | - do_action( 'getpaid_after_send_invoice_notification', $type, $invoice, $email ); |
|
224 | + do_action('getpaid_after_send_invoice_notification', $type, $invoice, $email); |
|
225 | 225 | |
226 | 226 | return $result; |
227 | 227 | } |
@@ -232,20 +232,20 @@ discard block |
||
232 | 232 | * @param array $recipients |
233 | 233 | * @param GetPaid_Notification_Email $email |
234 | 234 | */ |
235 | - public function filter_email_recipients( $recipients, $email ) { |
|
235 | + public function filter_email_recipients($recipients, $email) { |
|
236 | 236 | |
237 | - if ( ! $email->is_admin_email() ) { |
|
237 | + if (!$email->is_admin_email()) { |
|
238 | 238 | $cc = $email->object->get_email_cc(); |
239 | - $cc_2 = get_user_meta( $email->object->get_user_id(), '_wpinv_email_cc', true ); |
|
239 | + $cc_2 = get_user_meta($email->object->get_user_id(), '_wpinv_email_cc', true); |
|
240 | 240 | |
241 | - if ( ! empty( $cc ) ) { |
|
242 | - $cc = array_map( 'sanitize_email', wpinv_parse_list( $cc ) ); |
|
243 | - $recipients = array_filter( array_unique( array_merge( $recipients, $cc ) ) ); |
|
241 | + if (!empty($cc)) { |
|
242 | + $cc = array_map('sanitize_email', wpinv_parse_list($cc)); |
|
243 | + $recipients = array_filter(array_unique(array_merge($recipients, $cc))); |
|
244 | 244 | } |
245 | 245 | |
246 | - if ( ! empty( $cc_2 ) ) { |
|
247 | - $cc_2 = array_map( 'sanitize_email', wpinv_parse_list( $cc_2 ) ); |
|
248 | - $recipients = array_filter( array_unique( array_merge( $recipients, $cc_2 ) ) ); |
|
246 | + if (!empty($cc_2)) { |
|
247 | + $cc_2 = array_map('sanitize_email', wpinv_parse_list($cc_2)); |
|
248 | + $recipients = array_filter(array_unique(array_merge($recipients, $cc_2))); |
|
249 | 249 | } |
250 | 250 | } |
251 | 251 | |
@@ -258,17 +258,17 @@ discard block |
||
258 | 258 | * |
259 | 259 | * @param WPInv_Invoice $invoice |
260 | 260 | */ |
261 | - public function new_invoice( $invoice ) { |
|
261 | + public function new_invoice($invoice) { |
|
262 | 262 | |
263 | 263 | // Only send this email for invoices created via the admin page. |
264 | - if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_paid() || $this->is_payment_form_invoice( $invoice->get_id() ) ) { |
|
264 | + if (!$invoice->is_type('invoice') || $invoice->is_paid() || $this->is_payment_form_invoice($invoice->get_id())) { |
|
265 | 265 | return; |
266 | 266 | } |
267 | 267 | |
268 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
268 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $invoice); |
|
269 | 269 | $recipient = wpinv_get_admin_email(); |
270 | 270 | |
271 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
271 | + return $this->send_email($invoice, $email, __FUNCTION__, $recipient); |
|
272 | 272 | |
273 | 273 | } |
274 | 274 | |
@@ -277,12 +277,12 @@ discard block |
||
277 | 277 | * |
278 | 278 | * @param WPInv_Invoice $invoice |
279 | 279 | */ |
280 | - public function cancelled_invoice( $invoice ) { |
|
280 | + public function cancelled_invoice($invoice) { |
|
281 | 281 | |
282 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
282 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $invoice); |
|
283 | 283 | $recipient = $invoice->get_email(); |
284 | 284 | |
285 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
285 | + return $this->send_email($invoice, $email, __FUNCTION__, $recipient); |
|
286 | 286 | } |
287 | 287 | |
288 | 288 | /** |
@@ -290,12 +290,12 @@ discard block |
||
290 | 290 | * |
291 | 291 | * @param WPInv_Invoice $invoice |
292 | 292 | */ |
293 | - public function failed_invoice( $invoice ) { |
|
293 | + public function failed_invoice($invoice) { |
|
294 | 294 | |
295 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
295 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $invoice); |
|
296 | 296 | $recipient = wpinv_get_admin_email(); |
297 | 297 | |
298 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
298 | + return $this->send_email($invoice, $email, __FUNCTION__, $recipient); |
|
299 | 299 | |
300 | 300 | } |
301 | 301 | |
@@ -304,12 +304,12 @@ discard block |
||
304 | 304 | * |
305 | 305 | * @param WPInv_Invoice $invoice |
306 | 306 | */ |
307 | - public function onhold_invoice( $invoice ) { |
|
307 | + public function onhold_invoice($invoice) { |
|
308 | 308 | |
309 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
309 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $invoice); |
|
310 | 310 | $recipient = $invoice->get_email(); |
311 | 311 | |
312 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
312 | + return $this->send_email($invoice, $email, __FUNCTION__, $recipient); |
|
313 | 313 | |
314 | 314 | } |
315 | 315 | |
@@ -318,12 +318,12 @@ discard block |
||
318 | 318 | * |
319 | 319 | * @param WPInv_Invoice $invoice |
320 | 320 | */ |
321 | - public function processing_invoice( $invoice ) { |
|
321 | + public function processing_invoice($invoice) { |
|
322 | 322 | |
323 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
323 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $invoice); |
|
324 | 324 | $recipient = $invoice->get_email(); |
325 | 325 | |
326 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
326 | + return $this->send_email($invoice, $email, __FUNCTION__, $recipient); |
|
327 | 327 | |
328 | 328 | } |
329 | 329 | |
@@ -332,17 +332,17 @@ discard block |
||
332 | 332 | * |
333 | 333 | * @param WPInv_Invoice $invoice |
334 | 334 | */ |
335 | - public function completed_invoice( $invoice ) { |
|
335 | + public function completed_invoice($invoice) { |
|
336 | 336 | |
337 | 337 | // (Maybe) abort if it is a renewal invoice. |
338 | - if ( $invoice->is_renewal() && ! wpinv_get_option( 'email_completed_invoice_renewal_active', false ) ) { |
|
338 | + if ($invoice->is_renewal() && !wpinv_get_option('email_completed_invoice_renewal_active', false)) { |
|
339 | 339 | return; |
340 | 340 | } |
341 | 341 | |
342 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
342 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $invoice); |
|
343 | 343 | $recipient = $invoice->get_email(); |
344 | 344 | |
345 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
345 | + return $this->send_email($invoice, $email, __FUNCTION__, $recipient); |
|
346 | 346 | |
347 | 347 | } |
348 | 348 | |
@@ -351,12 +351,12 @@ discard block |
||
351 | 351 | * |
352 | 352 | * @param WPInv_Invoice $invoice |
353 | 353 | */ |
354 | - public function refunded_invoice( $invoice ) { |
|
354 | + public function refunded_invoice($invoice) { |
|
355 | 355 | |
356 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
356 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $invoice); |
|
357 | 357 | $recipient = $invoice->get_email(); |
358 | 358 | |
359 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
359 | + return $this->send_email($invoice, $email, __FUNCTION__, $recipient); |
|
360 | 360 | |
361 | 361 | } |
362 | 362 | |
@@ -366,21 +366,21 @@ discard block |
||
366 | 366 | * @param WPInv_Invoice $invoice |
367 | 367 | * @param bool $force |
368 | 368 | */ |
369 | - public function user_invoice( $invoice, $force = false ) { |
|
369 | + public function user_invoice($invoice, $force = false) { |
|
370 | 370 | |
371 | - if ( ! $force && ! empty( $GLOBALS['wpinv_skip_invoice_notification'] ) ) { |
|
371 | + if (!$force && !empty($GLOBALS['wpinv_skip_invoice_notification'])) { |
|
372 | 372 | return; |
373 | 373 | } |
374 | 374 | |
375 | 375 | // Only send this email for invoices created via the admin page. |
376 | - if ( ! $invoice->is_type( 'invoice' ) || ( empty( $force ) && $invoice->is_paid() ) || ( empty( $force ) && $this->is_payment_form_invoice( $invoice->get_id() ) ) ) { |
|
376 | + if (!$invoice->is_type('invoice') || (empty($force) && $invoice->is_paid()) || (empty($force) && $this->is_payment_form_invoice($invoice->get_id()))) { |
|
377 | 377 | return; |
378 | 378 | } |
379 | 379 | |
380 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
380 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $invoice); |
|
381 | 381 | $recipient = $invoice->get_email(); |
382 | 382 | |
383 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient ); |
|
383 | + return $this->send_email($invoice, $email, __FUNCTION__, $recipient); |
|
384 | 384 | |
385 | 385 | } |
386 | 386 | |
@@ -390,9 +390,9 @@ discard block |
||
390 | 390 | * @param int $invoice |
391 | 391 | * @return bool |
392 | 392 | */ |
393 | - public function is_payment_form_invoice( $invoice ) { |
|
394 | - $is_payment_form_invoice = empty( $_GET['getpaid-admin-action'] ) && ( 'payment_form' === get_post_meta( $invoice, 'wpinv_created_via', true ) || 'geodirectory' === get_post_meta( $invoice, 'wpinv_created_via', true ) ); |
|
395 | - return apply_filters( 'getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice ); |
|
393 | + public function is_payment_form_invoice($invoice) { |
|
394 | + $is_payment_form_invoice = empty($_GET['getpaid-admin-action']) && ('payment_form' === get_post_meta($invoice, 'wpinv_created_via', true) || 'geodirectory' === get_post_meta($invoice, 'wpinv_created_via', true)); |
|
395 | + return apply_filters('getpaid_invoice_notifications_is_payment_form_invoice', $is_payment_form_invoice, $invoice); |
|
396 | 396 | } |
397 | 397 | |
398 | 398 | /** |
@@ -401,12 +401,12 @@ discard block |
||
401 | 401 | * @param WPInv_Invoice $invoice |
402 | 402 | * @param string $note |
403 | 403 | */ |
404 | - public function user_note( $invoice, $note ) { |
|
404 | + public function user_note($invoice, $note) { |
|
405 | 405 | |
406 | - $email = new GetPaid_Notification_Email( __FUNCTION__, $invoice ); |
|
406 | + $email = new GetPaid_Notification_Email(__FUNCTION__, $invoice); |
|
407 | 407 | $recipient = $invoice->get_email(); |
408 | 408 | |
409 | - return $this->send_email( $invoice, $email, __FUNCTION__, $recipient, array( 'customer_note' => $note ) ); |
|
409 | + return $this->send_email($invoice, $email, __FUNCTION__, $recipient, array('customer_note' => $note)); |
|
410 | 410 | |
411 | 411 | } |
412 | 412 | |
@@ -415,9 +415,9 @@ discard block |
||
415 | 415 | * |
416 | 416 | * @param WPInv_Invoice $invoice |
417 | 417 | */ |
418 | - public function force_send_overdue_notice( $invoice ) { |
|
419 | - $email = new GetPaid_Notification_Email( 'overdue', $invoice ); |
|
420 | - return $this->send_email( $invoice, $email, 'overdue', $invoice->get_email() ); |
|
418 | + public function force_send_overdue_notice($invoice) { |
|
419 | + $email = new GetPaid_Notification_Email('overdue', $invoice); |
|
420 | + return $this->send_email($invoice, $email, 'overdue', $invoice->get_email()); |
|
421 | 421 | } |
422 | 422 | |
423 | 423 | /** |
@@ -428,38 +428,38 @@ discard block |
||
428 | 428 | public function overdue() { |
429 | 429 | global $wpdb; |
430 | 430 | |
431 | - $email = new GetPaid_Notification_Email( __FUNCTION__ ); |
|
431 | + $email = new GetPaid_Notification_Email(__FUNCTION__); |
|
432 | 432 | |
433 | 433 | // Fetch reminder days. |
434 | - $reminder_days = array_unique( wp_parse_id_list( $email->get_option( 'days' ) ) ); |
|
434 | + $reminder_days = array_unique(wp_parse_id_list($email->get_option('days'))); |
|
435 | 435 | |
436 | 436 | // Abort if non is set. |
437 | - if ( empty( $reminder_days ) ) { |
|
437 | + if (empty($reminder_days)) { |
|
438 | 438 | return; |
439 | 439 | } |
440 | 440 | |
441 | 441 | // Retrieve date query. |
442 | - $date_query = $this->get_date_query( $reminder_days ); |
|
442 | + $date_query = $this->get_date_query($reminder_days); |
|
443 | 443 | |
444 | 444 | // Invoices table. |
445 | 445 | $table = $wpdb->prefix . 'getpaid_invoices'; |
446 | 446 | |
447 | 447 | // Fetch invoices. |
448 | - $invoices = $wpdb->get_col( |
|
448 | + $invoices = $wpdb->get_col( |
|
449 | 449 | "SELECT posts.ID FROM $wpdb->posts as posts |
450 | 450 | LEFT JOIN $table as invoices ON invoices.post_id = posts.ID |
451 | 451 | WHERE posts.post_type = 'wpi_invoice' AND posts.post_status = 'wpi-pending' $date_query" |
452 | 452 | ); |
453 | 453 | |
454 | - foreach ( $invoices as $invoice ) { |
|
454 | + foreach ($invoices as $invoice) { |
|
455 | 455 | |
456 | 456 | // Only send this email for invoices created via the admin page. |
457 | - if ( ! $this->is_payment_form_invoice( $invoice ) ) { |
|
458 | - $invoice = new WPInv_Invoice( $invoice ); |
|
457 | + if (!$this->is_payment_form_invoice($invoice)) { |
|
458 | + $invoice = new WPInv_Invoice($invoice); |
|
459 | 459 | $email->object = $invoice; |
460 | 460 | |
461 | - if ( $invoice->needs_payment() ) { |
|
462 | - $this->send_email( $invoice, $email, __FUNCTION__, $invoice->get_email() ); |
|
461 | + if ($invoice->needs_payment()) { |
|
462 | + $this->send_email($invoice, $email, __FUNCTION__, $invoice->get_email()); |
|
463 | 463 | } |
464 | 464 | } |
465 | 465 | } |
@@ -472,14 +472,14 @@ discard block |
||
472 | 472 | * @param array $reminder_days |
473 | 473 | * @return string |
474 | 474 | */ |
475 | - public function get_date_query( $reminder_days ) { |
|
475 | + public function get_date_query($reminder_days) { |
|
476 | 476 | |
477 | 477 | $date_query = array( |
478 | 478 | 'relation' => 'OR', |
479 | 479 | ); |
480 | 480 | |
481 | - foreach ( $reminder_days as $days ) { |
|
482 | - $date = date_parse( date( 'Y-m-d', strtotime( "-$days days", current_time( 'timestamp' ) ) ) ); |
|
481 | + foreach ($reminder_days as $days) { |
|
482 | + $date = date_parse(date('Y-m-d', strtotime("-$days days", current_time('timestamp')))); |
|
483 | 483 | |
484 | 484 | $date_query[] = array( |
485 | 485 | 'year' => $date['year'], |
@@ -489,7 +489,7 @@ discard block |
||
489 | 489 | |
490 | 490 | } |
491 | 491 | |
492 | - $date_query = new WP_Date_Query( $date_query, 'invoices.due_date' ); |
|
492 | + $date_query = new WP_Date_Query($date_query, 'invoices.due_date'); |
|
493 | 493 | |
494 | 494 | return $date_query->get_sql(); |
495 | 495 |
@@ -50,7 +50,7 @@ discard block |
||
50 | 50 | */ |
51 | 51 | function getpaid_get_invoice_subscription_group( $invoice_id, $subscription_id ) { |
52 | 52 | $subscription_groups = getpaid_get_invoice_subscription_groups( $invoice_id ); |
53 | - $matching_group = wp_list_filter( $subscription_groups, compact( 'subscription_id' ) ); |
|
53 | + $matching_group = wp_list_filter( $subscription_groups, compact( 'subscription_id' ) ); |
|
54 | 54 | return reset( $matching_group ); |
55 | 55 | } |
56 | 56 | |
@@ -63,11 +63,11 @@ discard block |
||
63 | 63 | */ |
64 | 64 | function getpaid_get_subscription( $subscription ) { |
65 | 65 | |
66 | - if ( ! is_a( $subscription, 'WPInv_Subscription' ) ) { |
|
67 | - $subscription = new WPInv_Subscription( $subscription ); |
|
68 | - } |
|
66 | + if ( ! is_a( $subscription, 'WPInv_Subscription' ) ) { |
|
67 | + $subscription = new WPInv_Subscription( $subscription ); |
|
68 | + } |
|
69 | 69 | |
70 | - return $subscription->exists() ? $subscription : false; |
|
70 | + return $subscription->exists() ? $subscription : false; |
|
71 | 71 | } |
72 | 72 | |
73 | 73 | /** |
@@ -81,28 +81,28 @@ discard block |
||
81 | 81 | */ |
82 | 82 | function getpaid_get_subscriptions( $args = array(), $return = 'results' ) { |
83 | 83 | |
84 | - // Do not retrieve all fields if we just want the count. |
|
85 | - if ( 'count' == $return ) { |
|
86 | - $args['fields'] = 'id'; |
|
87 | - $args['number'] = 1; |
|
88 | - } |
|
84 | + // Do not retrieve all fields if we just want the count. |
|
85 | + if ( 'count' == $return ) { |
|
86 | + $args['fields'] = 'id'; |
|
87 | + $args['number'] = 1; |
|
88 | + } |
|
89 | 89 | |
90 | - // Do not count all matches if we just want the results. |
|
91 | - if ( 'results' == $return ) { |
|
92 | - $args['count_total'] = false; |
|
93 | - } |
|
90 | + // Do not count all matches if we just want the results. |
|
91 | + if ( 'results' == $return ) { |
|
92 | + $args['count_total'] = false; |
|
93 | + } |
|
94 | 94 | |
95 | - $query = new GetPaid_Subscriptions_Query( $args ); |
|
95 | + $query = new GetPaid_Subscriptions_Query( $args ); |
|
96 | 96 | |
97 | - if ( 'results' == $return ) { |
|
98 | - return $query->get_results(); |
|
99 | - } |
|
97 | + if ( 'results' == $return ) { |
|
98 | + return $query->get_results(); |
|
99 | + } |
|
100 | 100 | |
101 | - if ( 'count' == $return ) { |
|
102 | - return $query->get_total(); |
|
103 | - } |
|
101 | + if ( 'count' == $return ) { |
|
102 | + return $query->get_total(); |
|
103 | + } |
|
104 | 104 | |
105 | - return $query; |
|
105 | + return $query; |
|
106 | 106 | } |
107 | 107 | |
108 | 108 | /** |
@@ -112,18 +112,18 @@ discard block |
||
112 | 112 | */ |
113 | 113 | function getpaid_get_subscription_statuses() { |
114 | 114 | |
115 | - return apply_filters( |
|
116 | - 'getpaid_get_subscription_statuses', |
|
117 | - array( |
|
118 | - 'pending' => __( 'Pending', 'invoicing' ), |
|
119 | - 'trialling' => __( 'Trialing', 'invoicing' ), |
|
120 | - 'active' => __( 'Active', 'invoicing' ), |
|
121 | - 'failing' => __( 'Failing', 'invoicing' ), |
|
122 | - 'expired' => __( 'Expired', 'invoicing' ), |
|
123 | - 'completed' => __( 'Complete', 'invoicing' ), |
|
124 | - 'cancelled' => __( 'Cancelled', 'invoicing' ), |
|
125 | - ) |
|
126 | - ); |
|
115 | + return apply_filters( |
|
116 | + 'getpaid_get_subscription_statuses', |
|
117 | + array( |
|
118 | + 'pending' => __( 'Pending', 'invoicing' ), |
|
119 | + 'trialling' => __( 'Trialing', 'invoicing' ), |
|
120 | + 'active' => __( 'Active', 'invoicing' ), |
|
121 | + 'failing' => __( 'Failing', 'invoicing' ), |
|
122 | + 'expired' => __( 'Expired', 'invoicing' ), |
|
123 | + 'completed' => __( 'Complete', 'invoicing' ), |
|
124 | + 'cancelled' => __( 'Cancelled', 'invoicing' ), |
|
125 | + ) |
|
126 | + ); |
|
127 | 127 | |
128 | 128 | } |
129 | 129 | |
@@ -133,8 +133,8 @@ discard block |
||
133 | 133 | * @return string |
134 | 134 | */ |
135 | 135 | function getpaid_get_subscription_status_label( $status ) { |
136 | - $statuses = getpaid_get_subscription_statuses(); |
|
137 | - return isset( $statuses[ $status ] ) ? $statuses[ $status ] : ucfirst( sanitize_text_field( $status ) ); |
|
136 | + $statuses = getpaid_get_subscription_statuses(); |
|
137 | + return isset( $statuses[ $status ] ) ? $statuses[ $status ] : ucfirst( sanitize_text_field( $status ) ); |
|
138 | 138 | } |
139 | 139 | |
140 | 140 | /** |
@@ -144,18 +144,18 @@ discard block |
||
144 | 144 | */ |
145 | 145 | function getpaid_get_subscription_status_classes() { |
146 | 146 | |
147 | - return apply_filters( |
|
148 | - 'getpaid_get_subscription_status_classes', |
|
149 | - array( |
|
150 | - 'pending' => 'badge-dark', |
|
151 | - 'trialling' => 'badge-info', |
|
152 | - 'active' => 'badge-success', |
|
153 | - 'failing' => 'badge-warning', |
|
154 | - 'expired' => 'badge-danger', |
|
155 | - 'completed' => 'badge-primary', |
|
156 | - 'cancelled' => 'badge-secondary', |
|
157 | - ) |
|
158 | - ); |
|
147 | + return apply_filters( |
|
148 | + 'getpaid_get_subscription_status_classes', |
|
149 | + array( |
|
150 | + 'pending' => 'badge-dark', |
|
151 | + 'trialling' => 'badge-info', |
|
152 | + 'active' => 'badge-success', |
|
153 | + 'failing' => 'badge-warning', |
|
154 | + 'expired' => 'badge-danger', |
|
155 | + 'completed' => 'badge-primary', |
|
156 | + 'cancelled' => 'badge-secondary', |
|
157 | + ) |
|
158 | + ); |
|
159 | 159 | |
160 | 160 | } |
161 | 161 | |
@@ -166,15 +166,15 @@ discard block |
||
166 | 166 | */ |
167 | 167 | function getpaid_get_subscription_status_counts( $args = array() ) { |
168 | 168 | |
169 | - $statuses = array_keys( getpaid_get_subscription_statuses() ); |
|
170 | - $counts = array(); |
|
169 | + $statuses = array_keys( getpaid_get_subscription_statuses() ); |
|
170 | + $counts = array(); |
|
171 | 171 | |
172 | - foreach ( $statuses as $status ) { |
|
173 | - $_args = wp_parse_args( "status=$status", $args ); |
|
174 | - $counts[ $status ] = getpaid_get_subscriptions( $_args, 'count' ); |
|
175 | - } |
|
172 | + foreach ( $statuses as $status ) { |
|
173 | + $_args = wp_parse_args( "status=$status", $args ); |
|
174 | + $counts[ $status ] = getpaid_get_subscriptions( $_args, 'count' ); |
|
175 | + } |
|
176 | 176 | |
177 | - return $counts; |
|
177 | + return $counts; |
|
178 | 178 | |
179 | 179 | } |
180 | 180 | |
@@ -185,32 +185,32 @@ discard block |
||
185 | 185 | */ |
186 | 186 | function getpaid_get_subscription_periods() { |
187 | 187 | |
188 | - return apply_filters( |
|
189 | - 'getpaid_get_subscription_periods', |
|
190 | - array( |
|
188 | + return apply_filters( |
|
189 | + 'getpaid_get_subscription_periods', |
|
190 | + array( |
|
191 | 191 | |
192 | - 'day' => array( |
|
193 | - 'singular' => __( '%s day', 'invoicing' ), |
|
194 | - 'plural' => __( '%d days', 'invoicing' ), |
|
195 | - ), |
|
192 | + 'day' => array( |
|
193 | + 'singular' => __( '%s day', 'invoicing' ), |
|
194 | + 'plural' => __( '%d days', 'invoicing' ), |
|
195 | + ), |
|
196 | 196 | |
197 | - 'week' => array( |
|
198 | - 'singular' => __( '%s week', 'invoicing' ), |
|
199 | - 'plural' => __( '%d weeks', 'invoicing' ), |
|
200 | - ), |
|
197 | + 'week' => array( |
|
198 | + 'singular' => __( '%s week', 'invoicing' ), |
|
199 | + 'plural' => __( '%d weeks', 'invoicing' ), |
|
200 | + ), |
|
201 | 201 | |
202 | - 'month' => array( |
|
203 | - 'singular' => __( '%s month', 'invoicing' ), |
|
204 | - 'plural' => __( '%d months', 'invoicing' ), |
|
205 | - ), |
|
202 | + 'month' => array( |
|
203 | + 'singular' => __( '%s month', 'invoicing' ), |
|
204 | + 'plural' => __( '%d months', 'invoicing' ), |
|
205 | + ), |
|
206 | 206 | |
207 | - 'year' => array( |
|
208 | - 'singular' => __( '%s year', 'invoicing' ), |
|
209 | - 'plural' => __( '%d years', 'invoicing' ), |
|
210 | - ), |
|
207 | + 'year' => array( |
|
208 | + 'singular' => __( '%s year', 'invoicing' ), |
|
209 | + 'plural' => __( '%d years', 'invoicing' ), |
|
210 | + ), |
|
211 | 211 | |
212 | - ) |
|
213 | - ); |
|
212 | + ) |
|
213 | + ); |
|
214 | 214 | |
215 | 215 | } |
216 | 216 | |
@@ -221,7 +221,7 @@ discard block |
||
221 | 221 | * @return int |
222 | 222 | */ |
223 | 223 | function getpaid_get_subscription_trial_period_interval( $trial_period ) { |
224 | - return (int) preg_replace( '/[^0-9]/', '', $trial_period ); |
|
224 | + return (int) preg_replace( '/[^0-9]/', '', $trial_period ); |
|
225 | 225 | } |
226 | 226 | |
227 | 227 | /** |
@@ -231,7 +231,7 @@ discard block |
||
231 | 231 | * @return string |
232 | 232 | */ |
233 | 233 | function getpaid_get_subscription_trial_period_period( $trial_period ) { |
234 | - return preg_replace( '/[^a-z]/', '', strtolower( $trial_period ) ); |
|
234 | + return preg_replace( '/[^a-z]/', '', strtolower( $trial_period ) ); |
|
235 | 235 | } |
236 | 236 | |
237 | 237 | /** |
@@ -242,8 +242,8 @@ discard block |
||
242 | 242 | * @return string |
243 | 243 | */ |
244 | 244 | function getpaid_get_subscription_period_label( $period, $interval = 1, $singular_prefix = '1' ) { |
245 | - $label = (int) $interval > 1 ? getpaid_get_plural_subscription_period_label( $period, $interval ) : getpaid_get_singular_subscription_period_label( $period, $singular_prefix ); |
|
246 | - return strtolower( sanitize_text_field( $label ) ); |
|
245 | + $label = (int) $interval > 1 ? getpaid_get_plural_subscription_period_label( $period, $interval ) : getpaid_get_singular_subscription_period_label( $period, $singular_prefix ); |
|
246 | + return strtolower( sanitize_text_field( $label ) ); |
|
247 | 247 | } |
248 | 248 | |
249 | 249 | /** |
@@ -254,22 +254,22 @@ discard block |
||
254 | 254 | */ |
255 | 255 | function getpaid_get_singular_subscription_period_label( $period, $singular_prefix = '1' ) { |
256 | 256 | |
257 | - $periods = getpaid_get_subscription_periods(); |
|
258 | - $period = strtolower( $period ); |
|
257 | + $periods = getpaid_get_subscription_periods(); |
|
258 | + $period = strtolower( $period ); |
|
259 | 259 | |
260 | - if ( isset( $periods[ $period ] ) ) { |
|
261 | - return sprintf( $periods[ $period ]['singular'], $singular_prefix ); |
|
262 | - } |
|
260 | + if ( isset( $periods[ $period ] ) ) { |
|
261 | + return sprintf( $periods[ $period ]['singular'], $singular_prefix ); |
|
262 | + } |
|
263 | 263 | |
264 | - // Backwards compatibility. |
|
265 | - foreach ( $periods as $key => $data ) { |
|
266 | - if ( strpos( $key, $period ) === 0 ) { |
|
267 | - return sprintf( $data['singular'], $singular_prefix ); |
|
268 | - } |
|
269 | - } |
|
264 | + // Backwards compatibility. |
|
265 | + foreach ( $periods as $key => $data ) { |
|
266 | + if ( strpos( $key, $period ) === 0 ) { |
|
267 | + return sprintf( $data['singular'], $singular_prefix ); |
|
268 | + } |
|
269 | + } |
|
270 | 270 | |
271 | - // Invalid string. |
|
272 | - return ''; |
|
271 | + // Invalid string. |
|
272 | + return ''; |
|
273 | 273 | } |
274 | 274 | |
275 | 275 | /** |
@@ -281,22 +281,22 @@ discard block |
||
281 | 281 | */ |
282 | 282 | function getpaid_get_plural_subscription_period_label( $period, $interval ) { |
283 | 283 | |
284 | - $periods = getpaid_get_subscription_periods(); |
|
285 | - $period = strtolower( $period ); |
|
284 | + $periods = getpaid_get_subscription_periods(); |
|
285 | + $period = strtolower( $period ); |
|
286 | 286 | |
287 | - if ( isset( $periods[ $period ] ) ) { |
|
288 | - return sprintf( $periods[ $period ]['plural'], $interval ); |
|
289 | - } |
|
287 | + if ( isset( $periods[ $period ] ) ) { |
|
288 | + return sprintf( $periods[ $period ]['plural'], $interval ); |
|
289 | + } |
|
290 | 290 | |
291 | - // Backwards compatibility. |
|
292 | - foreach ( $periods as $key => $data ) { |
|
293 | - if ( strpos( $key, $period ) === 0 ) { |
|
294 | - return sprintf( $data['plural'], $interval ); |
|
295 | - } |
|
296 | - } |
|
291 | + // Backwards compatibility. |
|
292 | + foreach ( $periods as $key => $data ) { |
|
293 | + if ( strpos( $key, $period ) === 0 ) { |
|
294 | + return sprintf( $data['plural'], $interval ); |
|
295 | + } |
|
296 | + } |
|
297 | 297 | |
298 | - // Invalid string. |
|
299 | - return ''; |
|
298 | + // Invalid string. |
|
299 | + return ''; |
|
300 | 300 | } |
301 | 301 | |
302 | 302 | /** |
@@ -307,90 +307,90 @@ discard block |
||
307 | 307 | */ |
308 | 308 | function getpaid_get_formatted_subscription_amount( $subscription ) { |
309 | 309 | |
310 | - $initial = wpinv_price( $subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
311 | - $recurring = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
312 | - $period = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ); |
|
313 | - $bill_times = $subscription->get_bill_times(); |
|
314 | - |
|
315 | - if ( ! empty( $bill_times ) ) { |
|
316 | - $bill_times = $subscription->get_frequency() * $bill_times; |
|
317 | - $bill_times = getpaid_get_subscription_period_label( $subscription->get_period(), $bill_times ); |
|
318 | - } |
|
319 | - |
|
320 | - // Trial periods. |
|
321 | - if ( $subscription->has_trial_period() ) { |
|
322 | - |
|
323 | - $trial_period = getpaid_get_subscription_trial_period_period( $subscription->get_trial_period() ); |
|
324 | - $trial_interval = getpaid_get_subscription_trial_period_interval( $subscription->get_trial_period() ); |
|
325 | - |
|
326 | - if ( empty( $bill_times ) ) { |
|
327 | - |
|
328 | - return sprintf( |
|
329 | - // translators: $1: is the initial amount, $2: is the trial period, $3: is the recurring amount, $4: is the recurring period |
|
330 | - _x( '%1$s trial for %2$s then %3$s / %4$s', 'Subscription amount. (e.g.: $10 trial for 1 month then $120 / year)', 'invoicing' ), |
|
331 | - $initial, |
|
332 | - getpaid_get_subscription_period_label( $trial_period, $trial_interval ), |
|
333 | - $recurring, |
|
334 | - $period |
|
335 | - ); |
|
336 | - |
|
337 | - } |
|
338 | - |
|
339 | - return sprintf( |
|
340 | - // translators: $1: is the initial amount, $2: is the trial period, $3: is the recurring amount, $4: is the recurring period, $5: is the bill times |
|
341 | - _x( '%1$s trial for %2$s then %3$s / %4$s for %5$s', 'Subscription amount. (e.g.: $10 trial for 1 month then $120 / year for 4 years)', 'invoicing' ), |
|
342 | - $initial, |
|
343 | - getpaid_get_subscription_period_label( $trial_period, $trial_interval ), |
|
344 | - $recurring, |
|
345 | - $period, |
|
346 | - $bill_times |
|
347 | - ); |
|
348 | - |
|
349 | - } |
|
350 | - |
|
351 | - if ( $initial != $recurring ) { |
|
352 | - |
|
353 | - if ( empty( $bill_times ) ) { |
|
354 | - |
|
355 | - return sprintf( |
|
356 | - // translators: $1: is the initial amount, $2: is the recurring amount, $3: is the recurring period |
|
357 | - _x( 'Initial payment of %1$s which renews at %2$s / %3$s', 'Subscription amount. (e.g.:Initial payment of $100 which renews at $120 / year)', 'invoicing' ), |
|
358 | - $initial, |
|
359 | - $recurring, |
|
360 | - $period |
|
361 | - ); |
|
362 | - |
|
363 | - } |
|
364 | - |
|
365 | - return sprintf( |
|
366 | - // translators: $1: is the initial amount, $2: is the recurring amount, $3: is the recurring period, $4: is the bill times |
|
367 | - _x( 'Initial payment of %1$s which renews at %2$s / %3$s for %4$s', 'Subscription amount. (e.g.:Initial payment of $100 which renews at $120 / year for 5 years)', 'invoicing' ), |
|
368 | - $initial, |
|
369 | - $recurring, |
|
370 | - $period, |
|
371 | - $bill_times |
|
372 | - ); |
|
373 | - |
|
374 | - } |
|
375 | - |
|
376 | - if ( empty( $bill_times ) ) { |
|
377 | - |
|
378 | - return sprintf( |
|
379 | - // translators: $1: is the recurring amount, $2: is the recurring period |
|
380 | - _x( '%1$s / %2$s', 'Subscription amount. (e.g.: $120 / year)', 'invoicing' ), |
|
381 | - $initial, |
|
382 | - $period |
|
383 | - ); |
|
384 | - |
|
385 | - } |
|
386 | - |
|
387 | - return sprintf( |
|
388 | - // translators: $1: is the bill times, $2: is the recurring amount, $3: is the recurring period |
|
389 | - _x( '%2$s / %3$s for %1$s', 'Subscription amount. (e.g.: $120 / year for 5 years)', 'invoicing' ), |
|
390 | - $bill_times, |
|
391 | - $initial, |
|
392 | - $period |
|
393 | - ); |
|
310 | + $initial = wpinv_price( $subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
311 | + $recurring = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
312 | + $period = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ); |
|
313 | + $bill_times = $subscription->get_bill_times(); |
|
314 | + |
|
315 | + if ( ! empty( $bill_times ) ) { |
|
316 | + $bill_times = $subscription->get_frequency() * $bill_times; |
|
317 | + $bill_times = getpaid_get_subscription_period_label( $subscription->get_period(), $bill_times ); |
|
318 | + } |
|
319 | + |
|
320 | + // Trial periods. |
|
321 | + if ( $subscription->has_trial_period() ) { |
|
322 | + |
|
323 | + $trial_period = getpaid_get_subscription_trial_period_period( $subscription->get_trial_period() ); |
|
324 | + $trial_interval = getpaid_get_subscription_trial_period_interval( $subscription->get_trial_period() ); |
|
325 | + |
|
326 | + if ( empty( $bill_times ) ) { |
|
327 | + |
|
328 | + return sprintf( |
|
329 | + // translators: $1: is the initial amount, $2: is the trial period, $3: is the recurring amount, $4: is the recurring period |
|
330 | + _x( '%1$s trial for %2$s then %3$s / %4$s', 'Subscription amount. (e.g.: $10 trial for 1 month then $120 / year)', 'invoicing' ), |
|
331 | + $initial, |
|
332 | + getpaid_get_subscription_period_label( $trial_period, $trial_interval ), |
|
333 | + $recurring, |
|
334 | + $period |
|
335 | + ); |
|
336 | + |
|
337 | + } |
|
338 | + |
|
339 | + return sprintf( |
|
340 | + // translators: $1: is the initial amount, $2: is the trial period, $3: is the recurring amount, $4: is the recurring period, $5: is the bill times |
|
341 | + _x( '%1$s trial for %2$s then %3$s / %4$s for %5$s', 'Subscription amount. (e.g.: $10 trial for 1 month then $120 / year for 4 years)', 'invoicing' ), |
|
342 | + $initial, |
|
343 | + getpaid_get_subscription_period_label( $trial_period, $trial_interval ), |
|
344 | + $recurring, |
|
345 | + $period, |
|
346 | + $bill_times |
|
347 | + ); |
|
348 | + |
|
349 | + } |
|
350 | + |
|
351 | + if ( $initial != $recurring ) { |
|
352 | + |
|
353 | + if ( empty( $bill_times ) ) { |
|
354 | + |
|
355 | + return sprintf( |
|
356 | + // translators: $1: is the initial amount, $2: is the recurring amount, $3: is the recurring period |
|
357 | + _x( 'Initial payment of %1$s which renews at %2$s / %3$s', 'Subscription amount. (e.g.:Initial payment of $100 which renews at $120 / year)', 'invoicing' ), |
|
358 | + $initial, |
|
359 | + $recurring, |
|
360 | + $period |
|
361 | + ); |
|
362 | + |
|
363 | + } |
|
364 | + |
|
365 | + return sprintf( |
|
366 | + // translators: $1: is the initial amount, $2: is the recurring amount, $3: is the recurring period, $4: is the bill times |
|
367 | + _x( 'Initial payment of %1$s which renews at %2$s / %3$s for %4$s', 'Subscription amount. (e.g.:Initial payment of $100 which renews at $120 / year for 5 years)', 'invoicing' ), |
|
368 | + $initial, |
|
369 | + $recurring, |
|
370 | + $period, |
|
371 | + $bill_times |
|
372 | + ); |
|
373 | + |
|
374 | + } |
|
375 | + |
|
376 | + if ( empty( $bill_times ) ) { |
|
377 | + |
|
378 | + return sprintf( |
|
379 | + // translators: $1: is the recurring amount, $2: is the recurring period |
|
380 | + _x( '%1$s / %2$s', 'Subscription amount. (e.g.: $120 / year)', 'invoicing' ), |
|
381 | + $initial, |
|
382 | + $period |
|
383 | + ); |
|
384 | + |
|
385 | + } |
|
386 | + |
|
387 | + return sprintf( |
|
388 | + // translators: $1: is the bill times, $2: is the recurring amount, $3: is the recurring period |
|
389 | + _x( '%2$s / %3$s for %1$s', 'Subscription amount. (e.g.: $120 / year for 5 years)', 'invoicing' ), |
|
390 | + $bill_times, |
|
391 | + $initial, |
|
392 | + $period |
|
393 | + ); |
|
394 | 394 | |
395 | 395 | } |
396 | 396 | |
@@ -401,7 +401,7 @@ discard block |
||
401 | 401 | * @return WPInv_Subscription|false |
402 | 402 | */ |
403 | 403 | function getpaid_get_invoice_subscription( $invoice ) { |
404 | - return getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
404 | + return getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
405 | 405 | } |
406 | 406 | |
407 | 407 | /** |
@@ -410,10 +410,10 @@ discard block |
||
410 | 410 | * @param WPInv_Invoice $invoice |
411 | 411 | */ |
412 | 412 | function getpaid_activate_invoice_subscription( $invoice ) { |
413 | - $subscription = getpaid_get_invoice_subscription( $invoice ); |
|
414 | - if ( is_a( $subscription, 'WPInv_Subscription' ) ) { |
|
415 | - $subscription->activate(); |
|
416 | - } |
|
413 | + $subscription = getpaid_get_invoice_subscription( $invoice ); |
|
414 | + if ( is_a( $subscription, 'WPInv_Subscription' ) ) { |
|
415 | + $subscription->activate(); |
|
416 | + } |
|
417 | 417 | } |
418 | 418 | |
419 | 419 | /** |
@@ -422,7 +422,7 @@ discard block |
||
422 | 422 | * @return WPInv_Subscriptions |
423 | 423 | */ |
424 | 424 | function getpaid_subscriptions() { |
425 | - return getpaid()->get( 'subscriptions' ); |
|
425 | + return getpaid()->get( 'subscriptions' ); |
|
426 | 426 | } |
427 | 427 | |
428 | 428 | /** |
@@ -441,15 +441,15 @@ discard block |
||
441 | 441 | return false; |
442 | 442 | } |
443 | 443 | |
444 | - // Fetch the invoice subscription. |
|
445 | - $subscription = getpaid_get_subscriptions( |
|
446 | - array( |
|
447 | - 'invoice_in' => $invoice->is_renewal() ? $invoice->get_parent_id() : $invoice->get_id(), |
|
448 | - 'number' => 1, |
|
449 | - ) |
|
450 | - ); |
|
444 | + // Fetch the invoice subscription. |
|
445 | + $subscription = getpaid_get_subscriptions( |
|
446 | + array( |
|
447 | + 'invoice_in' => $invoice->is_renewal() ? $invoice->get_parent_id() : $invoice->get_id(), |
|
448 | + 'number' => 1, |
|
449 | + ) |
|
450 | + ); |
|
451 | 451 | |
452 | - return empty( $subscription ) ? false : $subscription[0]; |
|
452 | + return empty( $subscription ) ? false : $subscription[0]; |
|
453 | 453 | |
454 | 454 | } |
455 | 455 | |
@@ -466,48 +466,48 @@ discard block |
||
466 | 466 | */ |
467 | 467 | function getpaid_get_recurring_item_key( $cart_item ) { |
468 | 468 | |
469 | - $cart_key = 'renews_'; |
|
470 | - $interval = $cart_item->get_recurring_interval(); |
|
471 | - $period = $cart_item->get_recurring_period( true ); |
|
472 | - $length = $cart_item->get_recurring_limit() * $interval; |
|
473 | - $trial_period = $cart_item->get_trial_period( true ); |
|
474 | - $trial_length = $cart_item->get_trial_interval(); |
|
475 | - |
|
476 | - // First start with the billing interval and period |
|
477 | - switch ( $interval ) { |
|
478 | - case 1: |
|
479 | - if ( 'day' == $period ) { |
|
480 | - $cart_key .= 'daily'; |
|
481 | - } else { |
|
482 | - $cart_key .= sprintf( '%sly', $period ); |
|
483 | - } |
|
484 | - break; |
|
485 | - case 2: |
|
486 | - $cart_key .= sprintf( 'every_2nd_%s', $period ); |
|
487 | - break; |
|
488 | - case 3: |
|
489 | - $cart_key .= sprintf( 'every_3rd_%s', $period ); |
|
490 | - break; |
|
491 | - default: |
|
492 | - $cart_key .= sprintf( 'every_%dth_%s', $interval, $period ); |
|
493 | - break; |
|
494 | - } |
|
495 | - |
|
496 | - // Maybe add the optional maximum billing periods... |
|
497 | - if ( $length > 0 ) { |
|
498 | - $cart_key .= '_for_'; |
|
499 | - $cart_key .= sprintf( '%d_%s', $length, $period ); |
|
500 | - if ( $length > 1 ) { |
|
501 | - $cart_key .= 's'; |
|
502 | - } |
|
503 | - } |
|
504 | - |
|
505 | - // And an optional free trial. |
|
506 | - if ( $cart_item->has_free_trial() ) { |
|
507 | - $cart_key .= sprintf( '_after_a_%d_%s_trial', $trial_length, $trial_period ); |
|
508 | - } |
|
509 | - |
|
510 | - return apply_filters( 'getpaid_get_recurring_item_key', $cart_key, $cart_item ); |
|
469 | + $cart_key = 'renews_'; |
|
470 | + $interval = $cart_item->get_recurring_interval(); |
|
471 | + $period = $cart_item->get_recurring_period( true ); |
|
472 | + $length = $cart_item->get_recurring_limit() * $interval; |
|
473 | + $trial_period = $cart_item->get_trial_period( true ); |
|
474 | + $trial_length = $cart_item->get_trial_interval(); |
|
475 | + |
|
476 | + // First start with the billing interval and period |
|
477 | + switch ( $interval ) { |
|
478 | + case 1: |
|
479 | + if ( 'day' == $period ) { |
|
480 | + $cart_key .= 'daily'; |
|
481 | + } else { |
|
482 | + $cart_key .= sprintf( '%sly', $period ); |
|
483 | + } |
|
484 | + break; |
|
485 | + case 2: |
|
486 | + $cart_key .= sprintf( 'every_2nd_%s', $period ); |
|
487 | + break; |
|
488 | + case 3: |
|
489 | + $cart_key .= sprintf( 'every_3rd_%s', $period ); |
|
490 | + break; |
|
491 | + default: |
|
492 | + $cart_key .= sprintf( 'every_%dth_%s', $interval, $period ); |
|
493 | + break; |
|
494 | + } |
|
495 | + |
|
496 | + // Maybe add the optional maximum billing periods... |
|
497 | + if ( $length > 0 ) { |
|
498 | + $cart_key .= '_for_'; |
|
499 | + $cart_key .= sprintf( '%d_%s', $length, $period ); |
|
500 | + if ( $length > 1 ) { |
|
501 | + $cart_key .= 's'; |
|
502 | + } |
|
503 | + } |
|
504 | + |
|
505 | + // And an optional free trial. |
|
506 | + if ( $cart_item->has_free_trial() ) { |
|
507 | + $cart_key .= sprintf( '_after_a_%d_%s_trial', $trial_length, $trial_period ); |
|
508 | + } |
|
509 | + |
|
510 | + return apply_filters( 'getpaid_get_recurring_item_key', $cart_key, $cart_item ); |
|
511 | 511 | } |
512 | 512 | |
513 | 513 | /** |
@@ -518,16 +518,16 @@ discard block |
||
518 | 518 | */ |
519 | 519 | function getpaid_get_subscription_groups( $invoice ) { |
520 | 520 | |
521 | - // Generate subscription groups. |
|
522 | - $subscription_groups = array(); |
|
523 | - foreach ( $invoice->get_items() as $item ) { |
|
521 | + // Generate subscription groups. |
|
522 | + $subscription_groups = array(); |
|
523 | + foreach ( $invoice->get_items() as $item ) { |
|
524 | 524 | |
525 | - if ( $item->is_recurring() ) { |
|
526 | - $subscription_groups[ getpaid_get_recurring_item_key( $item ) ][] = $item; |
|
527 | - } |
|
525 | + if ( $item->is_recurring() ) { |
|
526 | + $subscription_groups[ getpaid_get_recurring_item_key( $item ) ][] = $item; |
|
527 | + } |
|
528 | 528 | } |
529 | 529 | |
530 | - return $subscription_groups; |
|
530 | + return $subscription_groups; |
|
531 | 531 | } |
532 | 532 | |
533 | 533 | /** |
@@ -541,56 +541,56 @@ discard block |
||
541 | 541 | */ |
542 | 542 | function getpaid_calculate_subscription_totals( $invoice ) { |
543 | 543 | |
544 | - // Generate subscription groups. |
|
545 | - $subscription_groups = getpaid_get_subscription_groups( $invoice ); |
|
544 | + // Generate subscription groups. |
|
545 | + $subscription_groups = getpaid_get_subscription_groups( $invoice ); |
|
546 | 546 | |
547 | - // Now let's calculate the totals for each group of subscriptions |
|
548 | - $subscription_totals = array(); |
|
547 | + // Now let's calculate the totals for each group of subscriptions |
|
548 | + $subscription_totals = array(); |
|
549 | 549 | |
550 | - foreach ( $subscription_groups as $subscription_key => $items ) { |
|
550 | + foreach ( $subscription_groups as $subscription_key => $items ) { |
|
551 | 551 | |
552 | - if ( empty( $subscription_totals[ $subscription_key ] ) ) { |
|
552 | + if ( empty( $subscription_totals[ $subscription_key ] ) ) { |
|
553 | 553 | |
554 | - $subscription_totals[ $subscription_key ] = array( |
|
555 | - 'initial_total' => 0, |
|
556 | - 'recurring_total' => 0, |
|
557 | - 'items' => array(), |
|
558 | - 'trialling' => false, |
|
559 | - ); |
|
554 | + $subscription_totals[ $subscription_key ] = array( |
|
555 | + 'initial_total' => 0, |
|
556 | + 'recurring_total' => 0, |
|
557 | + 'items' => array(), |
|
558 | + 'trialling' => false, |
|
559 | + ); |
|
560 | 560 | |
561 | - } |
|
561 | + } |
|
562 | 562 | |
563 | - /** |
|
564 | - * Get the totals of the group. |
|
565 | - * @var GetPaid_Form_Item $item |
|
566 | - */ |
|
567 | - foreach ( $items as $item ) { |
|
563 | + /** |
|
564 | + * Get the totals of the group. |
|
565 | + * @var GetPaid_Form_Item $item |
|
566 | + */ |
|
567 | + foreach ( $items as $item ) { |
|
568 | 568 | |
569 | - $subscription_totals[ $subscription_key ]['items'][ $item->get_id() ] = $item->prepare_data_for_saving(); |
|
570 | - $subscription_totals[ $subscription_key ]['item_id'] = $item->get_id(); |
|
571 | - $subscription_totals[ $subscription_key ]['period'] = $item->get_recurring_period( true ); |
|
572 | - $subscription_totals[ $subscription_key ]['interval'] = $item->get_recurring_interval(); |
|
573 | - $subscription_totals[ $subscription_key ]['initial_total'] += $item->get_sub_total() + $item->item_tax - $item->item_discount; |
|
574 | - $subscription_totals[ $subscription_key ]['recurring_total'] += $item->get_recurring_sub_total() + $item->item_tax - $item->recurring_item_discount; |
|
575 | - $subscription_totals[ $subscription_key ]['recurring_limit'] = $item->get_recurring_limit(); |
|
569 | + $subscription_totals[ $subscription_key ]['items'][ $item->get_id() ] = $item->prepare_data_for_saving(); |
|
570 | + $subscription_totals[ $subscription_key ]['item_id'] = $item->get_id(); |
|
571 | + $subscription_totals[ $subscription_key ]['period'] = $item->get_recurring_period( true ); |
|
572 | + $subscription_totals[ $subscription_key ]['interval'] = $item->get_recurring_interval(); |
|
573 | + $subscription_totals[ $subscription_key ]['initial_total'] += $item->get_sub_total() + $item->item_tax - $item->item_discount; |
|
574 | + $subscription_totals[ $subscription_key ]['recurring_total'] += $item->get_recurring_sub_total() + $item->item_tax - $item->recurring_item_discount; |
|
575 | + $subscription_totals[ $subscription_key ]['recurring_limit'] = $item->get_recurring_limit(); |
|
576 | 576 | |
577 | - // Calculate the next renewal date. |
|
578 | - $period = $item->get_recurring_period( true ); |
|
579 | - $interval = $item->get_recurring_interval(); |
|
577 | + // Calculate the next renewal date. |
|
578 | + $period = $item->get_recurring_period( true ); |
|
579 | + $interval = $item->get_recurring_interval(); |
|
580 | 580 | |
581 | - // If the subscription item has a trial period... |
|
582 | - if ( $item->has_free_trial() ) { |
|
583 | - $period = $item->get_trial_period( true ); |
|
584 | - $interval = $item->get_trial_interval(); |
|
585 | - $subscription_totals[ $subscription_key ]['trialling'] = $interval . ' ' . $period; |
|
586 | - } |
|
581 | + // If the subscription item has a trial period... |
|
582 | + if ( $item->has_free_trial() ) { |
|
583 | + $period = $item->get_trial_period( true ); |
|
584 | + $interval = $item->get_trial_interval(); |
|
585 | + $subscription_totals[ $subscription_key ]['trialling'] = $interval . ' ' . $period; |
|
586 | + } |
|
587 | 587 | |
588 | - $subscription_totals[ $subscription_key ]['renews_on'] = date( 'Y-m-d H:i:s', strtotime( "+$interval $period", current_time( 'timestamp' ) ) ); |
|
588 | + $subscription_totals[ $subscription_key ]['renews_on'] = date( 'Y-m-d H:i:s', strtotime( "+$interval $period", current_time( 'timestamp' ) ) ); |
|
589 | 589 | |
590 | - } |
|
590 | + } |
|
591 | 591 | } |
592 | 592 | |
593 | - return apply_filters( 'getpaid_calculate_subscription_totals', $subscription_totals, $invoice ); |
|
593 | + return apply_filters( 'getpaid_calculate_subscription_totals', $subscription_totals, $invoice ); |
|
594 | 594 | } |
595 | 595 | |
596 | 596 | /** |
@@ -601,16 +601,16 @@ discard block |
||
601 | 601 | */ |
602 | 602 | function getpaid_should_group_subscriptions( $invoice ) { |
603 | 603 | |
604 | - $recurring_items = 0; |
|
604 | + $recurring_items = 0; |
|
605 | 605 | |
606 | - foreach ( $invoice->get_items() as $item ) { |
|
606 | + foreach ( $invoice->get_items() as $item ) { |
|
607 | 607 | |
608 | - if ( $item->is_recurring() ) { |
|
609 | - $recurring_items ++; |
|
610 | - } |
|
608 | + if ( $item->is_recurring() ) { |
|
609 | + $recurring_items ++; |
|
610 | + } |
|
611 | 611 | } |
612 | 612 | |
613 | - return apply_filters( 'getpaid_should_group_subscriptions', $recurring_items > 1, $invoice ); |
|
613 | + return apply_filters( 'getpaid_should_group_subscriptions', $recurring_items > 1, $invoice ); |
|
614 | 614 | } |
615 | 615 | |
616 | 616 | /** |
@@ -621,39 +621,39 @@ discard block |
||
621 | 621 | * @return int |
622 | 622 | */ |
623 | 623 | function getpaid_count_subscription_invoices( $parent_invoice_id, $subscription_id = false ) { |
624 | - global $wpdb; |
|
624 | + global $wpdb; |
|
625 | 625 | |
626 | - $parent_invoice_id = (int) $parent_invoice_id; |
|
626 | + $parent_invoice_id = (int) $parent_invoice_id; |
|
627 | 627 | |
628 | - if ( false === $subscription_id || ! (bool) get_post_meta( $parent_invoice_id, '_wpinv_subscription_id', true ) ) { |
|
628 | + if ( false === $subscription_id || ! (bool) get_post_meta( $parent_invoice_id, '_wpinv_subscription_id', true ) ) { |
|
629 | 629 | |
630 | - return (int) $wpdb->get_var( |
|
631 | - $wpdb->prepare( |
|
632 | - "SELECT COUNT(ID) FROM $wpdb->posts WHERE ( post_parent=%d OR ID=%d ) AND post_status IN ( 'publish', 'wpi-processing', 'wpi-renewal' )", |
|
633 | - $parent_invoice_id, |
|
634 | - $parent_invoice_id |
|
635 | - ) |
|
636 | - ); |
|
630 | + return (int) $wpdb->get_var( |
|
631 | + $wpdb->prepare( |
|
632 | + "SELECT COUNT(ID) FROM $wpdb->posts WHERE ( post_parent=%d OR ID=%d ) AND post_status IN ( 'publish', 'wpi-processing', 'wpi-renewal' )", |
|
633 | + $parent_invoice_id, |
|
634 | + $parent_invoice_id |
|
635 | + ) |
|
636 | + ); |
|
637 | 637 | |
638 | - } |
|
638 | + } |
|
639 | 639 | |
640 | - $invoice_ids = $wpdb->get_col( |
|
641 | - $wpdb->prepare( |
|
642 | - "SELECT ID FROM $wpdb->posts WHERE ( post_parent=%d OR ID=%d ) AND post_status IN ( 'publish', 'wpi-processing', 'wpi-renewal' )", |
|
643 | - $parent_invoice_id, |
|
644 | - $parent_invoice_id |
|
645 | - ) |
|
646 | - ); |
|
640 | + $invoice_ids = $wpdb->get_col( |
|
641 | + $wpdb->prepare( |
|
642 | + "SELECT ID FROM $wpdb->posts WHERE ( post_parent=%d OR ID=%d ) AND post_status IN ( 'publish', 'wpi-processing', 'wpi-renewal' )", |
|
643 | + $parent_invoice_id, |
|
644 | + $parent_invoice_id |
|
645 | + ) |
|
646 | + ); |
|
647 | 647 | |
648 | - $count = 0; |
|
648 | + $count = 0; |
|
649 | 649 | |
650 | - foreach ( wp_parse_id_list( $invoice_ids ) as $invoice_id ) { |
|
650 | + foreach ( wp_parse_id_list( $invoice_ids ) as $invoice_id ) { |
|
651 | 651 | |
652 | - if ( $invoice_id == $parent_invoice_id || $subscription_id == (int) get_post_meta( $invoice_id, '_wpinv_subscription_id', true ) ) { |
|
653 | - $count ++; |
|
654 | - continue; |
|
655 | - } |
|
652 | + if ( $invoice_id == $parent_invoice_id || $subscription_id == (int) get_post_meta( $invoice_id, '_wpinv_subscription_id', true ) ) { |
|
653 | + $count ++; |
|
654 | + continue; |
|
655 | + } |
|
656 | 656 | } |
657 | 657 | |
658 | - return $count; |
|
658 | + return $count; |
|
659 | 659 | } |
@@ -13,18 +13,18 @@ discard block |
||
13 | 13 | * @return WPInv_Subscription[]|WPInv_Subscription|false |
14 | 14 | * @since 2.3.0 |
15 | 15 | */ |
16 | -function getpaid_get_invoice_subscriptions( $invoice ) { |
|
16 | +function getpaid_get_invoice_subscriptions($invoice) { |
|
17 | 17 | |
18 | 18 | // Retrieve subscription groups. |
19 | - $subscription_ids = wp_list_pluck( getpaid_get_invoice_subscription_groups( $invoice->get_id() ), 'subscription_id' ); |
|
19 | + $subscription_ids = wp_list_pluck(getpaid_get_invoice_subscription_groups($invoice->get_id()), 'subscription_id'); |
|
20 | 20 | |
21 | 21 | // No subscription groups, normal subscription. |
22 | - if ( empty( $subscription_ids ) ) { |
|
23 | - return getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
22 | + if (empty($subscription_ids)) { |
|
23 | + return getpaid_subscriptions()->get_invoice_subscription($invoice); |
|
24 | 24 | } |
25 | 25 | |
26 | 26 | // Subscription groups. |
27 | - return array_filter( array_map( 'getpaid_get_subscription', $subscription_ids ) ); |
|
27 | + return array_filter(array_map('getpaid_get_subscription', $subscription_ids)); |
|
28 | 28 | |
29 | 29 | } |
30 | 30 | |
@@ -35,9 +35,9 @@ discard block |
||
35 | 35 | * @return array |
36 | 36 | * @since 2.3.0 |
37 | 37 | */ |
38 | -function getpaid_get_invoice_subscription_groups( $invoice_id ) { |
|
39 | - $subscription_groups = get_post_meta( $invoice_id, 'getpaid_subscription_groups', true ); |
|
40 | - return empty( $subscription_groups ) ? array() : $subscription_groups; |
|
38 | +function getpaid_get_invoice_subscription_groups($invoice_id) { |
|
39 | + $subscription_groups = get_post_meta($invoice_id, 'getpaid_subscription_groups', true); |
|
40 | + return empty($subscription_groups) ? array() : $subscription_groups; |
|
41 | 41 | } |
42 | 42 | |
43 | 43 | /** |
@@ -48,10 +48,10 @@ discard block |
||
48 | 48 | * @return array|false |
49 | 49 | * @since 2.3.0 |
50 | 50 | */ |
51 | -function getpaid_get_invoice_subscription_group( $invoice_id, $subscription_id ) { |
|
52 | - $subscription_groups = getpaid_get_invoice_subscription_groups( $invoice_id ); |
|
53 | - $matching_group = wp_list_filter( $subscription_groups, compact( 'subscription_id' ) ); |
|
54 | - return reset( $matching_group ); |
|
51 | +function getpaid_get_invoice_subscription_group($invoice_id, $subscription_id) { |
|
52 | + $subscription_groups = getpaid_get_invoice_subscription_groups($invoice_id); |
|
53 | + $matching_group = wp_list_filter($subscription_groups, compact('subscription_id')); |
|
54 | + return reset($matching_group); |
|
55 | 55 | } |
56 | 56 | |
57 | 57 | /** |
@@ -61,10 +61,10 @@ discard block |
||
61 | 61 | * @since 2.3.0 |
62 | 62 | * @return WPInv_Subscription|false |
63 | 63 | */ |
64 | -function getpaid_get_subscription( $subscription ) { |
|
64 | +function getpaid_get_subscription($subscription) { |
|
65 | 65 | |
66 | - if ( ! is_a( $subscription, 'WPInv_Subscription' ) ) { |
|
67 | - $subscription = new WPInv_Subscription( $subscription ); |
|
66 | + if (!is_a($subscription, 'WPInv_Subscription')) { |
|
67 | + $subscription = new WPInv_Subscription($subscription); |
|
68 | 68 | } |
69 | 69 | |
70 | 70 | return $subscription->exists() ? $subscription : false; |
@@ -79,26 +79,26 @@ discard block |
||
79 | 79 | * |
80 | 80 | * @return int|array|WPInv_Subscription[]|GetPaid_Subscriptions_Query |
81 | 81 | */ |
82 | -function getpaid_get_subscriptions( $args = array(), $return = 'results' ) { |
|
82 | +function getpaid_get_subscriptions($args = array(), $return = 'results') { |
|
83 | 83 | |
84 | 84 | // Do not retrieve all fields if we just want the count. |
85 | - if ( 'count' == $return ) { |
|
85 | + if ('count' == $return) { |
|
86 | 86 | $args['fields'] = 'id'; |
87 | 87 | $args['number'] = 1; |
88 | 88 | } |
89 | 89 | |
90 | 90 | // Do not count all matches if we just want the results. |
91 | - if ( 'results' == $return ) { |
|
91 | + if ('results' == $return) { |
|
92 | 92 | $args['count_total'] = false; |
93 | 93 | } |
94 | 94 | |
95 | - $query = new GetPaid_Subscriptions_Query( $args ); |
|
95 | + $query = new GetPaid_Subscriptions_Query($args); |
|
96 | 96 | |
97 | - if ( 'results' == $return ) { |
|
97 | + if ('results' == $return) { |
|
98 | 98 | return $query->get_results(); |
99 | 99 | } |
100 | 100 | |
101 | - if ( 'count' == $return ) { |
|
101 | + if ('count' == $return) { |
|
102 | 102 | return $query->get_total(); |
103 | 103 | } |
104 | 104 | |
@@ -115,13 +115,13 @@ discard block |
||
115 | 115 | return apply_filters( |
116 | 116 | 'getpaid_get_subscription_statuses', |
117 | 117 | array( |
118 | - 'pending' => __( 'Pending', 'invoicing' ), |
|
119 | - 'trialling' => __( 'Trialing', 'invoicing' ), |
|
120 | - 'active' => __( 'Active', 'invoicing' ), |
|
121 | - 'failing' => __( 'Failing', 'invoicing' ), |
|
122 | - 'expired' => __( 'Expired', 'invoicing' ), |
|
123 | - 'completed' => __( 'Complete', 'invoicing' ), |
|
124 | - 'cancelled' => __( 'Cancelled', 'invoicing' ), |
|
118 | + 'pending' => __('Pending', 'invoicing'), |
|
119 | + 'trialling' => __('Trialing', 'invoicing'), |
|
120 | + 'active' => __('Active', 'invoicing'), |
|
121 | + 'failing' => __('Failing', 'invoicing'), |
|
122 | + 'expired' => __('Expired', 'invoicing'), |
|
123 | + 'completed' => __('Complete', 'invoicing'), |
|
124 | + 'cancelled' => __('Cancelled', 'invoicing'), |
|
125 | 125 | ) |
126 | 126 | ); |
127 | 127 | |
@@ -132,9 +132,9 @@ discard block |
||
132 | 132 | * |
133 | 133 | * @return string |
134 | 134 | */ |
135 | -function getpaid_get_subscription_status_label( $status ) { |
|
135 | +function getpaid_get_subscription_status_label($status) { |
|
136 | 136 | $statuses = getpaid_get_subscription_statuses(); |
137 | - return isset( $statuses[ $status ] ) ? $statuses[ $status ] : ucfirst( sanitize_text_field( $status ) ); |
|
137 | + return isset($statuses[$status]) ? $statuses[$status] : ucfirst(sanitize_text_field($status)); |
|
138 | 138 | } |
139 | 139 | |
140 | 140 | /** |
@@ -164,14 +164,14 @@ discard block |
||
164 | 164 | * |
165 | 165 | * @return array |
166 | 166 | */ |
167 | -function getpaid_get_subscription_status_counts( $args = array() ) { |
|
167 | +function getpaid_get_subscription_status_counts($args = array()) { |
|
168 | 168 | |
169 | - $statuses = array_keys( getpaid_get_subscription_statuses() ); |
|
169 | + $statuses = array_keys(getpaid_get_subscription_statuses()); |
|
170 | 170 | $counts = array(); |
171 | 171 | |
172 | - foreach ( $statuses as $status ) { |
|
173 | - $_args = wp_parse_args( "status=$status", $args ); |
|
174 | - $counts[ $status ] = getpaid_get_subscriptions( $_args, 'count' ); |
|
172 | + foreach ($statuses as $status) { |
|
173 | + $_args = wp_parse_args("status=$status", $args); |
|
174 | + $counts[$status] = getpaid_get_subscriptions($_args, 'count'); |
|
175 | 175 | } |
176 | 176 | |
177 | 177 | return $counts; |
@@ -190,23 +190,23 @@ discard block |
||
190 | 190 | array( |
191 | 191 | |
192 | 192 | 'day' => array( |
193 | - 'singular' => __( '%s day', 'invoicing' ), |
|
194 | - 'plural' => __( '%d days', 'invoicing' ), |
|
193 | + 'singular' => __('%s day', 'invoicing'), |
|
194 | + 'plural' => __('%d days', 'invoicing'), |
|
195 | 195 | ), |
196 | 196 | |
197 | 197 | 'week' => array( |
198 | - 'singular' => __( '%s week', 'invoicing' ), |
|
199 | - 'plural' => __( '%d weeks', 'invoicing' ), |
|
198 | + 'singular' => __('%s week', 'invoicing'), |
|
199 | + 'plural' => __('%d weeks', 'invoicing'), |
|
200 | 200 | ), |
201 | 201 | |
202 | 202 | 'month' => array( |
203 | - 'singular' => __( '%s month', 'invoicing' ), |
|
204 | - 'plural' => __( '%d months', 'invoicing' ), |
|
203 | + 'singular' => __('%s month', 'invoicing'), |
|
204 | + 'plural' => __('%d months', 'invoicing'), |
|
205 | 205 | ), |
206 | 206 | |
207 | 207 | 'year' => array( |
208 | - 'singular' => __( '%s year', 'invoicing' ), |
|
209 | - 'plural' => __( '%d years', 'invoicing' ), |
|
208 | + 'singular' => __('%s year', 'invoicing'), |
|
209 | + 'plural' => __('%d years', 'invoicing'), |
|
210 | 210 | ), |
211 | 211 | |
212 | 212 | ) |
@@ -220,8 +220,8 @@ discard block |
||
220 | 220 | * @param string $trial_period |
221 | 221 | * @return int |
222 | 222 | */ |
223 | -function getpaid_get_subscription_trial_period_interval( $trial_period ) { |
|
224 | - return (int) preg_replace( '/[^0-9]/', '', $trial_period ); |
|
223 | +function getpaid_get_subscription_trial_period_interval($trial_period) { |
|
224 | + return (int) preg_replace('/[^0-9]/', '', $trial_period); |
|
225 | 225 | } |
226 | 226 | |
227 | 227 | /** |
@@ -230,8 +230,8 @@ discard block |
||
230 | 230 | * @param string $trial_period |
231 | 231 | * @return string |
232 | 232 | */ |
233 | -function getpaid_get_subscription_trial_period_period( $trial_period ) { |
|
234 | - return preg_replace( '/[^a-z]/', '', strtolower( $trial_period ) ); |
|
233 | +function getpaid_get_subscription_trial_period_period($trial_period) { |
|
234 | + return preg_replace('/[^a-z]/', '', strtolower($trial_period)); |
|
235 | 235 | } |
236 | 236 | |
237 | 237 | /** |
@@ -241,9 +241,9 @@ discard block |
||
241 | 241 | * @param int $interval |
242 | 242 | * @return string |
243 | 243 | */ |
244 | -function getpaid_get_subscription_period_label( $period, $interval = 1, $singular_prefix = '1' ) { |
|
245 | - $label = (int) $interval > 1 ? getpaid_get_plural_subscription_period_label( $period, $interval ) : getpaid_get_singular_subscription_period_label( $period, $singular_prefix ); |
|
246 | - return strtolower( sanitize_text_field( $label ) ); |
|
244 | +function getpaid_get_subscription_period_label($period, $interval = 1, $singular_prefix = '1') { |
|
245 | + $label = (int) $interval > 1 ? getpaid_get_plural_subscription_period_label($period, $interval) : getpaid_get_singular_subscription_period_label($period, $singular_prefix); |
|
246 | + return strtolower(sanitize_text_field($label)); |
|
247 | 247 | } |
248 | 248 | |
249 | 249 | /** |
@@ -252,19 +252,19 @@ discard block |
||
252 | 252 | * @param string $period |
253 | 253 | * @return string |
254 | 254 | */ |
255 | -function getpaid_get_singular_subscription_period_label( $period, $singular_prefix = '1' ) { |
|
255 | +function getpaid_get_singular_subscription_period_label($period, $singular_prefix = '1') { |
|
256 | 256 | |
257 | 257 | $periods = getpaid_get_subscription_periods(); |
258 | - $period = strtolower( $period ); |
|
258 | + $period = strtolower($period); |
|
259 | 259 | |
260 | - if ( isset( $periods[ $period ] ) ) { |
|
261 | - return sprintf( $periods[ $period ]['singular'], $singular_prefix ); |
|
260 | + if (isset($periods[$period])) { |
|
261 | + return sprintf($periods[$period]['singular'], $singular_prefix); |
|
262 | 262 | } |
263 | 263 | |
264 | 264 | // Backwards compatibility. |
265 | - foreach ( $periods as $key => $data ) { |
|
266 | - if ( strpos( $key, $period ) === 0 ) { |
|
267 | - return sprintf( $data['singular'], $singular_prefix ); |
|
265 | + foreach ($periods as $key => $data) { |
|
266 | + if (strpos($key, $period) === 0) { |
|
267 | + return sprintf($data['singular'], $singular_prefix); |
|
268 | 268 | } |
269 | 269 | } |
270 | 270 | |
@@ -279,19 +279,19 @@ discard block |
||
279 | 279 | * @param int $interval |
280 | 280 | * @return string |
281 | 281 | */ |
282 | -function getpaid_get_plural_subscription_period_label( $period, $interval ) { |
|
282 | +function getpaid_get_plural_subscription_period_label($period, $interval) { |
|
283 | 283 | |
284 | 284 | $periods = getpaid_get_subscription_periods(); |
285 | - $period = strtolower( $period ); |
|
285 | + $period = strtolower($period); |
|
286 | 286 | |
287 | - if ( isset( $periods[ $period ] ) ) { |
|
288 | - return sprintf( $periods[ $period ]['plural'], $interval ); |
|
287 | + if (isset($periods[$period])) { |
|
288 | + return sprintf($periods[$period]['plural'], $interval); |
|
289 | 289 | } |
290 | 290 | |
291 | 291 | // Backwards compatibility. |
292 | - foreach ( $periods as $key => $data ) { |
|
293 | - if ( strpos( $key, $period ) === 0 ) { |
|
294 | - return sprintf( $data['plural'], $interval ); |
|
292 | + foreach ($periods as $key => $data) { |
|
293 | + if (strpos($key, $period) === 0) { |
|
294 | + return sprintf($data['plural'], $interval); |
|
295 | 295 | } |
296 | 296 | } |
297 | 297 | |
@@ -305,31 +305,31 @@ discard block |
||
305 | 305 | * @param WPInv_Subscription $subscription |
306 | 306 | * @return string |
307 | 307 | */ |
308 | -function getpaid_get_formatted_subscription_amount( $subscription ) { |
|
308 | +function getpaid_get_formatted_subscription_amount($subscription) { |
|
309 | 309 | |
310 | - $initial = wpinv_price( $subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
311 | - $recurring = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() ); |
|
312 | - $period = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' ); |
|
310 | + $initial = wpinv_price($subscription->get_initial_amount(), $subscription->get_parent_payment()->get_currency()); |
|
311 | + $recurring = wpinv_price($subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency()); |
|
312 | + $period = getpaid_get_subscription_period_label($subscription->get_period(), $subscription->get_frequency(), ''); |
|
313 | 313 | $bill_times = $subscription->get_bill_times(); |
314 | 314 | |
315 | - if ( ! empty( $bill_times ) ) { |
|
315 | + if (!empty($bill_times)) { |
|
316 | 316 | $bill_times = $subscription->get_frequency() * $bill_times; |
317 | - $bill_times = getpaid_get_subscription_period_label( $subscription->get_period(), $bill_times ); |
|
317 | + $bill_times = getpaid_get_subscription_period_label($subscription->get_period(), $bill_times); |
|
318 | 318 | } |
319 | 319 | |
320 | 320 | // Trial periods. |
321 | - if ( $subscription->has_trial_period() ) { |
|
321 | + if ($subscription->has_trial_period()) { |
|
322 | 322 | |
323 | - $trial_period = getpaid_get_subscription_trial_period_period( $subscription->get_trial_period() ); |
|
324 | - $trial_interval = getpaid_get_subscription_trial_period_interval( $subscription->get_trial_period() ); |
|
323 | + $trial_period = getpaid_get_subscription_trial_period_period($subscription->get_trial_period()); |
|
324 | + $trial_interval = getpaid_get_subscription_trial_period_interval($subscription->get_trial_period()); |
|
325 | 325 | |
326 | - if ( empty( $bill_times ) ) { |
|
326 | + if (empty($bill_times)) { |
|
327 | 327 | |
328 | 328 | return sprintf( |
329 | 329 | // translators: $1: is the initial amount, $2: is the trial period, $3: is the recurring amount, $4: is the recurring period |
330 | - _x( '%1$s trial for %2$s then %3$s / %4$s', 'Subscription amount. (e.g.: $10 trial for 1 month then $120 / year)', 'invoicing' ), |
|
330 | + _x('%1$s trial for %2$s then %3$s / %4$s', 'Subscription amount. (e.g.: $10 trial for 1 month then $120 / year)', 'invoicing'), |
|
331 | 331 | $initial, |
332 | - getpaid_get_subscription_period_label( $trial_period, $trial_interval ), |
|
332 | + getpaid_get_subscription_period_label($trial_period, $trial_interval), |
|
333 | 333 | $recurring, |
334 | 334 | $period |
335 | 335 | ); |
@@ -338,9 +338,9 @@ discard block |
||
338 | 338 | |
339 | 339 | return sprintf( |
340 | 340 | // translators: $1: is the initial amount, $2: is the trial period, $3: is the recurring amount, $4: is the recurring period, $5: is the bill times |
341 | - _x( '%1$s trial for %2$s then %3$s / %4$s for %5$s', 'Subscription amount. (e.g.: $10 trial for 1 month then $120 / year for 4 years)', 'invoicing' ), |
|
341 | + _x('%1$s trial for %2$s then %3$s / %4$s for %5$s', 'Subscription amount. (e.g.: $10 trial for 1 month then $120 / year for 4 years)', 'invoicing'), |
|
342 | 342 | $initial, |
343 | - getpaid_get_subscription_period_label( $trial_period, $trial_interval ), |
|
343 | + getpaid_get_subscription_period_label($trial_period, $trial_interval), |
|
344 | 344 | $recurring, |
345 | 345 | $period, |
346 | 346 | $bill_times |
@@ -348,13 +348,13 @@ discard block |
||
348 | 348 | |
349 | 349 | } |
350 | 350 | |
351 | - if ( $initial != $recurring ) { |
|
351 | + if ($initial != $recurring) { |
|
352 | 352 | |
353 | - if ( empty( $bill_times ) ) { |
|
353 | + if (empty($bill_times)) { |
|
354 | 354 | |
355 | 355 | return sprintf( |
356 | 356 | // translators: $1: is the initial amount, $2: is the recurring amount, $3: is the recurring period |
357 | - _x( 'Initial payment of %1$s which renews at %2$s / %3$s', 'Subscription amount. (e.g.:Initial payment of $100 which renews at $120 / year)', 'invoicing' ), |
|
357 | + _x('Initial payment of %1$s which renews at %2$s / %3$s', 'Subscription amount. (e.g.:Initial payment of $100 which renews at $120 / year)', 'invoicing'), |
|
358 | 358 | $initial, |
359 | 359 | $recurring, |
360 | 360 | $period |
@@ -364,7 +364,7 @@ discard block |
||
364 | 364 | |
365 | 365 | return sprintf( |
366 | 366 | // translators: $1: is the initial amount, $2: is the recurring amount, $3: is the recurring period, $4: is the bill times |
367 | - _x( 'Initial payment of %1$s which renews at %2$s / %3$s for %4$s', 'Subscription amount. (e.g.:Initial payment of $100 which renews at $120 / year for 5 years)', 'invoicing' ), |
|
367 | + _x('Initial payment of %1$s which renews at %2$s / %3$s for %4$s', 'Subscription amount. (e.g.:Initial payment of $100 which renews at $120 / year for 5 years)', 'invoicing'), |
|
368 | 368 | $initial, |
369 | 369 | $recurring, |
370 | 370 | $period, |
@@ -373,11 +373,11 @@ discard block |
||
373 | 373 | |
374 | 374 | } |
375 | 375 | |
376 | - if ( empty( $bill_times ) ) { |
|
376 | + if (empty($bill_times)) { |
|
377 | 377 | |
378 | 378 | return sprintf( |
379 | 379 | // translators: $1: is the recurring amount, $2: is the recurring period |
380 | - _x( '%1$s / %2$s', 'Subscription amount. (e.g.: $120 / year)', 'invoicing' ), |
|
380 | + _x('%1$s / %2$s', 'Subscription amount. (e.g.: $120 / year)', 'invoicing'), |
|
381 | 381 | $initial, |
382 | 382 | $period |
383 | 383 | ); |
@@ -386,7 +386,7 @@ discard block |
||
386 | 386 | |
387 | 387 | return sprintf( |
388 | 388 | // translators: $1: is the bill times, $2: is the recurring amount, $3: is the recurring period |
389 | - _x( '%2$s / %3$s for %1$s', 'Subscription amount. (e.g.: $120 / year for 5 years)', 'invoicing' ), |
|
389 | + _x('%2$s / %3$s for %1$s', 'Subscription amount. (e.g.: $120 / year for 5 years)', 'invoicing'), |
|
390 | 390 | $bill_times, |
391 | 391 | $initial, |
392 | 392 | $period |
@@ -400,8 +400,8 @@ discard block |
||
400 | 400 | * @param WPInv_Invoice $invoice |
401 | 401 | * @return WPInv_Subscription|false |
402 | 402 | */ |
403 | -function getpaid_get_invoice_subscription( $invoice ) { |
|
404 | - return getpaid_subscriptions()->get_invoice_subscription( $invoice ); |
|
403 | +function getpaid_get_invoice_subscription($invoice) { |
|
404 | + return getpaid_subscriptions()->get_invoice_subscription($invoice); |
|
405 | 405 | } |
406 | 406 | |
407 | 407 | /** |
@@ -409,9 +409,9 @@ discard block |
||
409 | 409 | * |
410 | 410 | * @param WPInv_Invoice $invoice |
411 | 411 | */ |
412 | -function getpaid_activate_invoice_subscription( $invoice ) { |
|
413 | - $subscription = getpaid_get_invoice_subscription( $invoice ); |
|
414 | - if ( is_a( $subscription, 'WPInv_Subscription' ) ) { |
|
412 | +function getpaid_activate_invoice_subscription($invoice) { |
|
413 | + $subscription = getpaid_get_invoice_subscription($invoice); |
|
414 | + if (is_a($subscription, 'WPInv_Subscription')) { |
|
415 | 415 | $subscription->activate(); |
416 | 416 | } |
417 | 417 | } |
@@ -422,7 +422,7 @@ discard block |
||
422 | 422 | * @return WPInv_Subscriptions |
423 | 423 | */ |
424 | 424 | function getpaid_subscriptions() { |
425 | - return getpaid()->get( 'subscriptions' ); |
|
425 | + return getpaid()->get('subscriptions'); |
|
426 | 426 | } |
427 | 427 | |
428 | 428 | /** |
@@ -431,13 +431,13 @@ discard block |
||
431 | 431 | * @since 2.3.0 |
432 | 432 | * @return WPInv_Subscription|bool |
433 | 433 | */ |
434 | -function wpinv_get_invoice_subscription( $invoice ) { |
|
434 | +function wpinv_get_invoice_subscription($invoice) { |
|
435 | 435 | |
436 | 436 | // Retrieve the invoice. |
437 | - $invoice = new WPInv_Invoice( $invoice ); |
|
437 | + $invoice = new WPInv_Invoice($invoice); |
|
438 | 438 | |
439 | 439 | // Ensure it is a recurring invoice. |
440 | - if ( ! $invoice->is_recurring() ) { |
|
440 | + if (!$invoice->is_recurring()) { |
|
441 | 441 | return false; |
442 | 442 | } |
443 | 443 | |
@@ -449,7 +449,7 @@ discard block |
||
449 | 449 | ) |
450 | 450 | ); |
451 | 451 | |
452 | - return empty( $subscription ) ? false : $subscription[0]; |
|
452 | + return empty($subscription) ? false : $subscription[0]; |
|
453 | 453 | |
454 | 454 | } |
455 | 455 | |
@@ -464,50 +464,50 @@ discard block |
||
464 | 464 | * @param GetPaid_Form_Item|WPInv_Item $cart_item |
465 | 465 | * @return string |
466 | 466 | */ |
467 | -function getpaid_get_recurring_item_key( $cart_item ) { |
|
467 | +function getpaid_get_recurring_item_key($cart_item) { |
|
468 | 468 | |
469 | 469 | $cart_key = 'renews_'; |
470 | 470 | $interval = $cart_item->get_recurring_interval(); |
471 | - $period = $cart_item->get_recurring_period( true ); |
|
471 | + $period = $cart_item->get_recurring_period(true); |
|
472 | 472 | $length = $cart_item->get_recurring_limit() * $interval; |
473 | - $trial_period = $cart_item->get_trial_period( true ); |
|
473 | + $trial_period = $cart_item->get_trial_period(true); |
|
474 | 474 | $trial_length = $cart_item->get_trial_interval(); |
475 | 475 | |
476 | 476 | // First start with the billing interval and period |
477 | - switch ( $interval ) { |
|
477 | + switch ($interval) { |
|
478 | 478 | case 1: |
479 | - if ( 'day' == $period ) { |
|
479 | + if ('day' == $period) { |
|
480 | 480 | $cart_key .= 'daily'; |
481 | 481 | } else { |
482 | - $cart_key .= sprintf( '%sly', $period ); |
|
482 | + $cart_key .= sprintf('%sly', $period); |
|
483 | 483 | } |
484 | 484 | break; |
485 | 485 | case 2: |
486 | - $cart_key .= sprintf( 'every_2nd_%s', $period ); |
|
486 | + $cart_key .= sprintf('every_2nd_%s', $period); |
|
487 | 487 | break; |
488 | 488 | case 3: |
489 | - $cart_key .= sprintf( 'every_3rd_%s', $period ); |
|
489 | + $cart_key .= sprintf('every_3rd_%s', $period); |
|
490 | 490 | break; |
491 | 491 | default: |
492 | - $cart_key .= sprintf( 'every_%dth_%s', $interval, $period ); |
|
492 | + $cart_key .= sprintf('every_%dth_%s', $interval, $period); |
|
493 | 493 | break; |
494 | 494 | } |
495 | 495 | |
496 | 496 | // Maybe add the optional maximum billing periods... |
497 | - if ( $length > 0 ) { |
|
497 | + if ($length > 0) { |
|
498 | 498 | $cart_key .= '_for_'; |
499 | - $cart_key .= sprintf( '%d_%s', $length, $period ); |
|
500 | - if ( $length > 1 ) { |
|
499 | + $cart_key .= sprintf('%d_%s', $length, $period); |
|
500 | + if ($length > 1) { |
|
501 | 501 | $cart_key .= 's'; |
502 | 502 | } |
503 | 503 | } |
504 | 504 | |
505 | 505 | // And an optional free trial. |
506 | - if ( $cart_item->has_free_trial() ) { |
|
507 | - $cart_key .= sprintf( '_after_a_%d_%s_trial', $trial_length, $trial_period ); |
|
506 | + if ($cart_item->has_free_trial()) { |
|
507 | + $cart_key .= sprintf('_after_a_%d_%s_trial', $trial_length, $trial_period); |
|
508 | 508 | } |
509 | 509 | |
510 | - return apply_filters( 'getpaid_get_recurring_item_key', $cart_key, $cart_item ); |
|
510 | + return apply_filters('getpaid_get_recurring_item_key', $cart_key, $cart_item); |
|
511 | 511 | } |
512 | 512 | |
513 | 513 | /** |
@@ -516,14 +516,14 @@ discard block |
||
516 | 516 | * @param WPInv_Invoice|GetPaid_Payment_Form_Submission|GetPaid_Payment_Form $invoice |
517 | 517 | * @return array |
518 | 518 | */ |
519 | -function getpaid_get_subscription_groups( $invoice ) { |
|
519 | +function getpaid_get_subscription_groups($invoice) { |
|
520 | 520 | |
521 | 521 | // Generate subscription groups. |
522 | 522 | $subscription_groups = array(); |
523 | - foreach ( $invoice->get_items() as $item ) { |
|
523 | + foreach ($invoice->get_items() as $item) { |
|
524 | 524 | |
525 | - if ( $item->is_recurring() ) { |
|
526 | - $subscription_groups[ getpaid_get_recurring_item_key( $item ) ][] = $item; |
|
525 | + if ($item->is_recurring()) { |
|
526 | + $subscription_groups[getpaid_get_recurring_item_key($item)][] = $item; |
|
527 | 527 | } |
528 | 528 | } |
529 | 529 | |
@@ -539,19 +539,19 @@ discard block |
||
539 | 539 | * @param WPInv_Invoice|GetPaid_Payment_Form_Submission|GetPaid_Payment_Form $invoice |
540 | 540 | * @return array |
541 | 541 | */ |
542 | -function getpaid_calculate_subscription_totals( $invoice ) { |
|
542 | +function getpaid_calculate_subscription_totals($invoice) { |
|
543 | 543 | |
544 | 544 | // Generate subscription groups. |
545 | - $subscription_groups = getpaid_get_subscription_groups( $invoice ); |
|
545 | + $subscription_groups = getpaid_get_subscription_groups($invoice); |
|
546 | 546 | |
547 | 547 | // Now let's calculate the totals for each group of subscriptions |
548 | 548 | $subscription_totals = array(); |
549 | 549 | |
550 | - foreach ( $subscription_groups as $subscription_key => $items ) { |
|
550 | + foreach ($subscription_groups as $subscription_key => $items) { |
|
551 | 551 | |
552 | - if ( empty( $subscription_totals[ $subscription_key ] ) ) { |
|
552 | + if (empty($subscription_totals[$subscription_key])) { |
|
553 | 553 | |
554 | - $subscription_totals[ $subscription_key ] = array( |
|
554 | + $subscription_totals[$subscription_key] = array( |
|
555 | 555 | 'initial_total' => 0, |
556 | 556 | 'recurring_total' => 0, |
557 | 557 | 'items' => array(), |
@@ -564,33 +564,33 @@ discard block |
||
564 | 564 | * Get the totals of the group. |
565 | 565 | * @var GetPaid_Form_Item $item |
566 | 566 | */ |
567 | - foreach ( $items as $item ) { |
|
567 | + foreach ($items as $item) { |
|
568 | 568 | |
569 | - $subscription_totals[ $subscription_key ]['items'][ $item->get_id() ] = $item->prepare_data_for_saving(); |
|
570 | - $subscription_totals[ $subscription_key ]['item_id'] = $item->get_id(); |
|
571 | - $subscription_totals[ $subscription_key ]['period'] = $item->get_recurring_period( true ); |
|
572 | - $subscription_totals[ $subscription_key ]['interval'] = $item->get_recurring_interval(); |
|
573 | - $subscription_totals[ $subscription_key ]['initial_total'] += $item->get_sub_total() + $item->item_tax - $item->item_discount; |
|
574 | - $subscription_totals[ $subscription_key ]['recurring_total'] += $item->get_recurring_sub_total() + $item->item_tax - $item->recurring_item_discount; |
|
575 | - $subscription_totals[ $subscription_key ]['recurring_limit'] = $item->get_recurring_limit(); |
|
569 | + $subscription_totals[$subscription_key]['items'][$item->get_id()] = $item->prepare_data_for_saving(); |
|
570 | + $subscription_totals[$subscription_key]['item_id'] = $item->get_id(); |
|
571 | + $subscription_totals[$subscription_key]['period'] = $item->get_recurring_period(true); |
|
572 | + $subscription_totals[$subscription_key]['interval'] = $item->get_recurring_interval(); |
|
573 | + $subscription_totals[$subscription_key]['initial_total'] += $item->get_sub_total() + $item->item_tax - $item->item_discount; |
|
574 | + $subscription_totals[$subscription_key]['recurring_total'] += $item->get_recurring_sub_total() + $item->item_tax - $item->recurring_item_discount; |
|
575 | + $subscription_totals[$subscription_key]['recurring_limit'] = $item->get_recurring_limit(); |
|
576 | 576 | |
577 | 577 | // Calculate the next renewal date. |
578 | - $period = $item->get_recurring_period( true ); |
|
578 | + $period = $item->get_recurring_period(true); |
|
579 | 579 | $interval = $item->get_recurring_interval(); |
580 | 580 | |
581 | 581 | // If the subscription item has a trial period... |
582 | - if ( $item->has_free_trial() ) { |
|
583 | - $period = $item->get_trial_period( true ); |
|
582 | + if ($item->has_free_trial()) { |
|
583 | + $period = $item->get_trial_period(true); |
|
584 | 584 | $interval = $item->get_trial_interval(); |
585 | - $subscription_totals[ $subscription_key ]['trialling'] = $interval . ' ' . $period; |
|
585 | + $subscription_totals[$subscription_key]['trialling'] = $interval . ' ' . $period; |
|
586 | 586 | } |
587 | 587 | |
588 | - $subscription_totals[ $subscription_key ]['renews_on'] = date( 'Y-m-d H:i:s', strtotime( "+$interval $period", current_time( 'timestamp' ) ) ); |
|
588 | + $subscription_totals[$subscription_key]['renews_on'] = date('Y-m-d H:i:s', strtotime("+$interval $period", current_time('timestamp'))); |
|
589 | 589 | |
590 | 590 | } |
591 | 591 | } |
592 | 592 | |
593 | - return apply_filters( 'getpaid_calculate_subscription_totals', $subscription_totals, $invoice ); |
|
593 | + return apply_filters('getpaid_calculate_subscription_totals', $subscription_totals, $invoice); |
|
594 | 594 | } |
595 | 595 | |
596 | 596 | /** |
@@ -599,18 +599,18 @@ discard block |
||
599 | 599 | * @param WPInv_Invoice|GetPaid_Payment_Form_Submission|GetPaid_Payment_Form $invoice |
600 | 600 | * @return array |
601 | 601 | */ |
602 | -function getpaid_should_group_subscriptions( $invoice ) { |
|
602 | +function getpaid_should_group_subscriptions($invoice) { |
|
603 | 603 | |
604 | 604 | $recurring_items = 0; |
605 | 605 | |
606 | - foreach ( $invoice->get_items() as $item ) { |
|
606 | + foreach ($invoice->get_items() as $item) { |
|
607 | 607 | |
608 | - if ( $item->is_recurring() ) { |
|
609 | - $recurring_items ++; |
|
608 | + if ($item->is_recurring()) { |
|
609 | + $recurring_items++; |
|
610 | 610 | } |
611 | 611 | } |
612 | 612 | |
613 | - return apply_filters( 'getpaid_should_group_subscriptions', $recurring_items > 1, $invoice ); |
|
613 | + return apply_filters('getpaid_should_group_subscriptions', $recurring_items > 1, $invoice); |
|
614 | 614 | } |
615 | 615 | |
616 | 616 | /** |
@@ -620,12 +620,12 @@ discard block |
||
620 | 620 | * @param int|false $subscription_id |
621 | 621 | * @return int |
622 | 622 | */ |
623 | -function getpaid_count_subscription_invoices( $parent_invoice_id, $subscription_id = false ) { |
|
623 | +function getpaid_count_subscription_invoices($parent_invoice_id, $subscription_id = false) { |
|
624 | 624 | global $wpdb; |
625 | 625 | |
626 | 626 | $parent_invoice_id = (int) $parent_invoice_id; |
627 | 627 | |
628 | - if ( false === $subscription_id || ! (bool) get_post_meta( $parent_invoice_id, '_wpinv_subscription_id', true ) ) { |
|
628 | + if (false === $subscription_id || !(bool) get_post_meta($parent_invoice_id, '_wpinv_subscription_id', true)) { |
|
629 | 629 | |
630 | 630 | return (int) $wpdb->get_var( |
631 | 631 | $wpdb->prepare( |
@@ -647,10 +647,10 @@ discard block |
||
647 | 647 | |
648 | 648 | $count = 0; |
649 | 649 | |
650 | - foreach ( wp_parse_id_list( $invoice_ids ) as $invoice_id ) { |
|
650 | + foreach (wp_parse_id_list($invoice_ids) as $invoice_id) { |
|
651 | 651 | |
652 | - if ( $invoice_id == $parent_invoice_id || $subscription_id == (int) get_post_meta( $invoice_id, '_wpinv_subscription_id', true ) ) { |
|
653 | - $count ++; |
|
652 | + if ($invoice_id == $parent_invoice_id || $subscription_id == (int) get_post_meta($invoice_id, '_wpinv_subscription_id', true)) { |
|
653 | + $count++; |
|
654 | 654 | continue; |
655 | 655 | } |
656 | 656 | } |
@@ -12,8 +12,8 @@ discard block |
||
12 | 12 | class WPInv_Subscriptions { |
13 | 13 | |
14 | 14 | /** |
15 | - * Class constructor. |
|
16 | - */ |
|
15 | + * Class constructor. |
|
16 | + */ |
|
17 | 17 | public function __construct() { |
18 | 18 | |
19 | 19 | // Fire gateway specific hooks when a subscription changes. |
@@ -89,12 +89,12 @@ discard block |
||
89 | 89 | } |
90 | 90 | |
91 | 91 | /** |
92 | - * Processes subscription status changes. |
|
92 | + * Processes subscription status changes. |
|
93 | 93 | * |
94 | 94 | * @param WPInv_Subscription $subscription |
95 | 95 | * @param string $from |
96 | 96 | * @param string $to |
97 | - */ |
|
97 | + */ |
|
98 | 98 | public function process_subscription_status_change( $subscription, $from, $to ) { |
99 | 99 | |
100 | 100 | $gateway = $subscription->get_gateway(); |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | /** |
9 | 9 | * Main Subscriptions class. |
10 | 10 | * |
@@ -17,28 +17,28 @@ discard block |
||
17 | 17 | public function __construct() { |
18 | 18 | |
19 | 19 | // Fire gateway specific hooks when a subscription changes. |
20 | - add_action( 'getpaid_subscription_status_changed', array( $this, 'process_subscription_status_change' ), 10, 3 ); |
|
20 | + add_action('getpaid_subscription_status_changed', array($this, 'process_subscription_status_change'), 10, 3); |
|
21 | 21 | |
22 | 22 | // De-activate a subscription whenever the invoice changes payment statuses. |
23 | - add_action( 'getpaid_invoice_status_wpi-refunded', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 ); |
|
24 | - add_action( 'getpaid_invoice_status_wpi-failed', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 ); |
|
25 | - add_action( 'getpaid_invoice_status_wpi-cancelled', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 ); |
|
26 | - add_action( 'getpaid_invoice_status_wpi-pending', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 ); |
|
23 | + add_action('getpaid_invoice_status_wpi-refunded', array($this, 'maybe_deactivate_invoice_subscription'), 20); |
|
24 | + add_action('getpaid_invoice_status_wpi-failed', array($this, 'maybe_deactivate_invoice_subscription'), 20); |
|
25 | + add_action('getpaid_invoice_status_wpi-cancelled', array($this, 'maybe_deactivate_invoice_subscription'), 20); |
|
26 | + add_action('getpaid_invoice_status_wpi-pending', array($this, 'maybe_deactivate_invoice_subscription'), 20); |
|
27 | 27 | |
28 | 28 | // Handles subscription cancelations. |
29 | - add_action( 'getpaid_authenticated_action_subscription_cancel', array( $this, 'user_cancel_single_subscription' ) ); |
|
29 | + add_action('getpaid_authenticated_action_subscription_cancel', array($this, 'user_cancel_single_subscription')); |
|
30 | 30 | |
31 | 31 | // Create a subscription whenever an invoice is created, (and update it when it is updated). |
32 | - add_action( 'getpaid_new_invoice', array( $this, 'maybe_create_invoice_subscription' ), 5 ); |
|
33 | - add_action( 'getpaid_update_invoice', array( $this, 'maybe_update_invoice_subscription' ), 5 ); |
|
32 | + add_action('getpaid_new_invoice', array($this, 'maybe_create_invoice_subscription'), 5); |
|
33 | + add_action('getpaid_update_invoice', array($this, 'maybe_update_invoice_subscription'), 5); |
|
34 | 34 | |
35 | 35 | // Handles admin subscription update actions. |
36 | - add_action( 'getpaid_authenticated_admin_action_update_single_subscription', array( $this, 'admin_update_single_subscription' ) ); |
|
37 | - add_action( 'getpaid_authenticated_admin_action_subscription_manual_renew', array( $this, 'admin_renew_single_subscription' ) ); |
|
38 | - add_action( 'getpaid_authenticated_admin_action_subscription_manual_delete', array( $this, 'admin_delete_single_subscription' ) ); |
|
36 | + add_action('getpaid_authenticated_admin_action_update_single_subscription', array($this, 'admin_update_single_subscription')); |
|
37 | + add_action('getpaid_authenticated_admin_action_subscription_manual_renew', array($this, 'admin_renew_single_subscription')); |
|
38 | + add_action('getpaid_authenticated_admin_action_subscription_manual_delete', array($this, 'admin_delete_single_subscription')); |
|
39 | 39 | |
40 | 40 | // Filter invoice item row actions. |
41 | - add_action( 'getpaid-invoice-page-line-item-actions', array( $this, 'filter_invoice_line_item_actions' ), 10, 3 ); |
|
41 | + add_action('getpaid-invoice-page-line-item-actions', array($this, 'filter_invoice_line_item_actions'), 10, 3); |
|
42 | 42 | } |
43 | 43 | |
44 | 44 | /** |
@@ -47,19 +47,19 @@ discard block |
||
47 | 47 | * @param WPInv_Invoice $invoice |
48 | 48 | * @return WPInv_Subscription|bool |
49 | 49 | */ |
50 | - public function get_invoice_subscription( $invoice ) { |
|
50 | + public function get_invoice_subscription($invoice) { |
|
51 | 51 | $subscription_id = $invoice->get_subscription_id(); |
52 | 52 | |
53 | 53 | // Fallback to the parent invoice if the child invoice has no subscription id. |
54 | - if ( empty( $subscription_id ) && $invoice->is_renewal() ) { |
|
54 | + if (empty($subscription_id) && $invoice->is_renewal()) { |
|
55 | 55 | $subscription_id = $invoice->get_parent_payment()->get_subscription_id(); |
56 | 56 | } |
57 | 57 | |
58 | 58 | // Fetch the subscription. |
59 | - $subscription = new WPInv_Subscription( $subscription_id ); |
|
59 | + $subscription = new WPInv_Subscription($subscription_id); |
|
60 | 60 | |
61 | 61 | // Return subscription or use a fallback for backwards compatibility. |
62 | - return $subscription->exists() ? $subscription : wpinv_get_invoice_subscription( $invoice ); |
|
62 | + return $subscription->exists() ? $subscription : wpinv_get_invoice_subscription($invoice); |
|
63 | 63 | } |
64 | 64 | |
65 | 65 | /** |
@@ -67,21 +67,21 @@ discard block |
||
67 | 67 | * |
68 | 68 | * @param WPInv_Invoice $invoice |
69 | 69 | */ |
70 | - public function maybe_deactivate_invoice_subscription( $invoice ) { |
|
70 | + public function maybe_deactivate_invoice_subscription($invoice) { |
|
71 | 71 | |
72 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
72 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
73 | 73 | |
74 | - if ( empty( $subscriptions ) ) { |
|
74 | + if (empty($subscriptions)) { |
|
75 | 75 | return; |
76 | 76 | } |
77 | 77 | |
78 | - if ( ! is_array( $subscriptions ) ) { |
|
79 | - $subscriptions = array( $subscriptions ); |
|
78 | + if (!is_array($subscriptions)) { |
|
79 | + $subscriptions = array($subscriptions); |
|
80 | 80 | } |
81 | 81 | |
82 | - foreach ( $subscriptions as $subscription ) { |
|
83 | - if ( $subscription->is_active() ) { |
|
84 | - $subscription->set_status( 'pending' ); |
|
82 | + foreach ($subscriptions as $subscription) { |
|
83 | + if ($subscription->is_active()) { |
|
84 | + $subscription->set_status('pending'); |
|
85 | 85 | $subscription->save(); |
86 | 86 | } |
87 | 87 | } |
@@ -95,15 +95,15 @@ discard block |
||
95 | 95 | * @param string $from |
96 | 96 | * @param string $to |
97 | 97 | */ |
98 | - public function process_subscription_status_change( $subscription, $from, $to ) { |
|
98 | + public function process_subscription_status_change($subscription, $from, $to) { |
|
99 | 99 | |
100 | 100 | $gateway = $subscription->get_gateway(); |
101 | 101 | |
102 | - if ( ! empty( $gateway ) ) { |
|
103 | - $gateway = sanitize_key( $gateway ); |
|
104 | - $from = sanitize_key( $from ); |
|
105 | - $to = sanitize_key( $to ); |
|
106 | - do_action( "getpaid_{$gateway}_subscription_$to", $subscription, $from ); |
|
102 | + if (!empty($gateway)) { |
|
103 | + $gateway = sanitize_key($gateway); |
|
104 | + $from = sanitize_key($from); |
|
105 | + $to = sanitize_key($to); |
|
106 | + do_action("getpaid_{$gateway}_subscription_$to", $subscription, $from); |
|
107 | 107 | } |
108 | 108 | |
109 | 109 | } |
@@ -116,8 +116,8 @@ discard block |
||
116 | 116 | * @deprecated |
117 | 117 | * @return mixed|string|void |
118 | 118 | */ |
119 | - public static function wpinv_get_pretty_subscription_frequency( $period, $frequency_count = 1 ) { |
|
120 | - return getpaid_get_subscription_period_label( $period, $frequency_count ); |
|
119 | + public static function wpinv_get_pretty_subscription_frequency($period, $frequency_count = 1) { |
|
120 | + return getpaid_get_subscription_period_label($period, $frequency_count); |
|
121 | 121 | } |
122 | 122 | |
123 | 123 | /** |
@@ -127,33 +127,33 @@ discard block |
||
127 | 127 | * @since 1.0.0 |
128 | 128 | * @return void |
129 | 129 | */ |
130 | - public function user_cancel_single_subscription( $data ) { |
|
130 | + public function user_cancel_single_subscription($data) { |
|
131 | 131 | |
132 | 132 | // Ensure there is a subscription to cancel. |
133 | - if ( empty( $data['subscription'] ) ) { |
|
133 | + if (empty($data['subscription'])) { |
|
134 | 134 | return; |
135 | 135 | } |
136 | 136 | |
137 | - $subscription = new WPInv_Subscription( (int) $data['subscription'] ); |
|
137 | + $subscription = new WPInv_Subscription((int) $data['subscription']); |
|
138 | 138 | |
139 | 139 | // Ensure that it exists and that it belongs to the current user. |
140 | - if ( ! $subscription->exists() || $subscription->get_customer_id() != get_current_user_id() ) { |
|
141 | - wpinv_set_error( 'invalid_subscription', __( 'You do not have permission to cancel this subscription', 'invoicing' ) ); |
|
140 | + if (!$subscription->exists() || $subscription->get_customer_id() != get_current_user_id()) { |
|
141 | + wpinv_set_error('invalid_subscription', __('You do not have permission to cancel this subscription', 'invoicing')); |
|
142 | 142 | |
143 | 143 | // Can it be cancelled. |
144 | - } elseif ( ! $subscription->can_cancel() ) { |
|
145 | - wpinv_set_error( 'cannot_cancel', __( 'This subscription cannot be cancelled as it is not active.', 'invoicing' ) ); |
|
144 | + } elseif (!$subscription->can_cancel()) { |
|
145 | + wpinv_set_error('cannot_cancel', __('This subscription cannot be cancelled as it is not active.', 'invoicing')); |
|
146 | 146 | |
147 | 147 | // Cancel it. |
148 | 148 | } else { |
149 | 149 | |
150 | 150 | $subscription->cancel(); |
151 | - wpinv_set_error( 'cancelled', __( 'This subscription has been cancelled.', 'invoicing' ), 'info' ); |
|
151 | + wpinv_set_error('cancelled', __('This subscription has been cancelled.', 'invoicing'), 'info'); |
|
152 | 152 | } |
153 | 153 | |
154 | - $redirect = remove_query_arg( array( 'getpaid-action', 'getpaid-nonce' ) ); |
|
154 | + $redirect = remove_query_arg(array('getpaid-action', 'getpaid-nonce')); |
|
155 | 155 | |
156 | - wp_safe_redirect( $redirect ); |
|
156 | + wp_safe_redirect($redirect); |
|
157 | 157 | exit; |
158 | 158 | |
159 | 159 | } |
@@ -165,41 +165,41 @@ discard block |
||
165 | 165 | * @param WPInv_Invoice $invoice |
166 | 166 | * @since 1.0.0 |
167 | 167 | */ |
168 | - public function maybe_create_invoice_subscription( $invoice ) { |
|
168 | + public function maybe_create_invoice_subscription($invoice) { |
|
169 | 169 | global $getpaid_subscriptions_skip_invoice_update; |
170 | 170 | |
171 | 171 | // Abort if it is not recurring. |
172 | - if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_free() || ! $invoice->is_recurring() || $invoice->is_renewal() ) { |
|
172 | + if (!$invoice->is_type('invoice') || $invoice->is_free() || !$invoice->is_recurring() || $invoice->is_renewal()) { |
|
173 | 173 | return; |
174 | 174 | } |
175 | 175 | |
176 | 176 | // Either group the subscriptions or only process a single suscription. |
177 | - if ( getpaid_should_group_subscriptions( $invoice ) ) { |
|
177 | + if (getpaid_should_group_subscriptions($invoice)) { |
|
178 | 178 | |
179 | 179 | $subscription_groups = array(); |
180 | 180 | $is_first = true; |
181 | 181 | |
182 | - foreach ( getpaid_calculate_subscription_totals( $invoice ) as $group_key => $totals ) { |
|
183 | - $subscription_groups[ $group_key ] = $this->create_invoice_subscription_group( $totals, $invoice, 0, $is_first ); |
|
182 | + foreach (getpaid_calculate_subscription_totals($invoice) as $group_key => $totals) { |
|
183 | + $subscription_groups[$group_key] = $this->create_invoice_subscription_group($totals, $invoice, 0, $is_first); |
|
184 | 184 | |
185 | - if ( $is_first ) { |
|
185 | + if ($is_first) { |
|
186 | 186 | $getpaid_subscriptions_skip_invoice_update = true; |
187 | - $invoice->set_subscription_id( $subscription_groups[ $group_key ]['subscription_id'] ); |
|
187 | + $invoice->set_subscription_id($subscription_groups[$group_key]['subscription_id']); |
|
188 | 188 | $invoice->save(); |
189 | 189 | $getpaid_subscriptions_skip_invoice_update = false; |
190 | 190 | } |
191 | 191 | |
192 | - $is_first = false; |
|
192 | + $is_first = false; |
|
193 | 193 | } |
194 | 194 | |
195 | 195 | // Cache subscription groups. |
196 | - update_post_meta( $invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups ); |
|
196 | + update_post_meta($invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups); |
|
197 | 197 | return true; |
198 | 198 | |
199 | 199 | } |
200 | 200 | |
201 | 201 | $subscription = new WPInv_Subscription(); |
202 | - return $this->update_invoice_subscription( $subscription, $invoice ); |
|
202 | + return $this->update_invoice_subscription($subscription, $invoice); |
|
203 | 203 | |
204 | 204 | } |
205 | 205 | |
@@ -214,46 +214,46 @@ discard block |
||
214 | 214 | * |
215 | 215 | * @since 2.3.0 |
216 | 216 | */ |
217 | - public function create_invoice_subscription_group( $totals, $invoice, $subscription_id = 0, $is_first = false ) { |
|
217 | + public function create_invoice_subscription_group($totals, $invoice, $subscription_id = 0, $is_first = false) { |
|
218 | 218 | |
219 | - $subscription = new WPInv_Subscription( (int) $subscription_id ); |
|
219 | + $subscription = new WPInv_Subscription((int) $subscription_id); |
|
220 | 220 | $initial_amt = $totals['initial_total']; |
221 | 221 | $recurring_amt = $totals['recurring_total']; |
222 | 222 | $fees = array(); |
223 | 223 | |
224 | 224 | // Maybe add recurring fees. |
225 | - if ( $is_first ) { |
|
225 | + if ($is_first) { |
|
226 | 226 | |
227 | - foreach ( $invoice->get_fees() as $i => $fee ) { |
|
228 | - if ( ! empty( $fee['recurring_fee'] ) ) { |
|
229 | - $initial_amt += wpinv_sanitize_amount( $fee['initial_fee'] ); |
|
230 | - $recurring_amt += wpinv_sanitize_amount( $fee['recurring_fee'] ); |
|
231 | - $fees[ $i ] = $fee; |
|
227 | + foreach ($invoice->get_fees() as $i => $fee) { |
|
228 | + if (!empty($fee['recurring_fee'])) { |
|
229 | + $initial_amt += wpinv_sanitize_amount($fee['initial_fee']); |
|
230 | + $recurring_amt += wpinv_sanitize_amount($fee['recurring_fee']); |
|
231 | + $fees[$i] = $fee; |
|
232 | 232 | } |
233 | 233 | } |
234 | 234 | } |
235 | 235 | |
236 | - $subscription->set_customer_id( $invoice->get_customer_id() ); |
|
237 | - $subscription->set_parent_invoice_id( $invoice->get_id() ); |
|
238 | - $subscription->set_initial_amount( $initial_amt ); |
|
239 | - $subscription->set_recurring_amount( $recurring_amt ); |
|
240 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
241 | - $subscription->set_status( $invoice->is_paid() ? 'active' : 'pending' ); |
|
242 | - $subscription->set_product_id( $totals['item_id'] ); |
|
243 | - $subscription->set_period( $totals['period'] ); |
|
244 | - $subscription->set_frequency( $totals['interval'] ); |
|
245 | - $subscription->set_bill_times( $totals['recurring_limit'] ); |
|
246 | - $subscription->set_next_renewal_date( $totals['renews_on'] ); |
|
236 | + $subscription->set_customer_id($invoice->get_customer_id()); |
|
237 | + $subscription->set_parent_invoice_id($invoice->get_id()); |
|
238 | + $subscription->set_initial_amount($initial_amt); |
|
239 | + $subscription->set_recurring_amount($recurring_amt); |
|
240 | + $subscription->set_date_created(current_time('mysql')); |
|
241 | + $subscription->set_status($invoice->is_paid() ? 'active' : 'pending'); |
|
242 | + $subscription->set_product_id($totals['item_id']); |
|
243 | + $subscription->set_period($totals['period']); |
|
244 | + $subscription->set_frequency($totals['interval']); |
|
245 | + $subscription->set_bill_times($totals['recurring_limit']); |
|
246 | + $subscription->set_next_renewal_date($totals['renews_on']); |
|
247 | 247 | |
248 | 248 | // Trial periods. |
249 | - if ( ! empty( $totals['trialling'] ) ) { |
|
250 | - $subscription->set_trial_period( $totals['trialling'] ); |
|
251 | - $subscription->set_status( 'trialling' ); |
|
249 | + if (!empty($totals['trialling'])) { |
|
250 | + $subscription->set_trial_period($totals['trialling']); |
|
251 | + $subscription->set_status('trialling'); |
|
252 | 252 | |
253 | 253 | // If initial amount is free, treat it as a free trial even if the subscription item does not have a free trial. |
254 | - } elseif ( empty( $initial_amt ) ) { |
|
255 | - $subscription->set_trial_period( $totals['interval'] . ' ' . $totals['period'] ); |
|
256 | - $subscription->set_status( 'trialling' ); |
|
254 | + } elseif (empty($initial_amt)) { |
|
255 | + $subscription->set_trial_period($totals['interval'] . ' ' . $totals['period']); |
|
256 | + $subscription->set_status('trialling'); |
|
257 | 257 | } |
258 | 258 | |
259 | 259 | $subscription->save(); |
@@ -271,86 +271,86 @@ discard block |
||
271 | 271 | * @param WPInv_Invoice $invoice |
272 | 272 | * @since 1.0.19 |
273 | 273 | */ |
274 | - public function maybe_update_invoice_subscription( $invoice ) { |
|
274 | + public function maybe_update_invoice_subscription($invoice) { |
|
275 | 275 | global $getpaid_subscriptions_skip_invoice_update; |
276 | 276 | |
277 | 277 | // Avoid infinite loops. |
278 | - if ( ! empty( $getpaid_subscriptions_skip_invoice_update ) ) { |
|
278 | + if (!empty($getpaid_subscriptions_skip_invoice_update)) { |
|
279 | 279 | return; |
280 | 280 | } |
281 | 281 | |
282 | 282 | // Do not process renewals. |
283 | - if ( $invoice->is_renewal() ) { |
|
283 | + if ($invoice->is_renewal()) { |
|
284 | 284 | return; |
285 | 285 | } |
286 | 286 | |
287 | 287 | // Delete existing subscriptions if available and the invoice is not recurring. |
288 | - if ( ! $invoice->is_recurring() ) { |
|
289 | - $this->delete_invoice_subscriptions( $invoice ); |
|
288 | + if (!$invoice->is_recurring()) { |
|
289 | + $this->delete_invoice_subscriptions($invoice); |
|
290 | 290 | return; |
291 | 291 | } |
292 | 292 | |
293 | 293 | // Fetch existing subscriptions. |
294 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
294 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
295 | 295 | |
296 | 296 | // Create new ones if no existing subscriptions. |
297 | - if ( empty( $subscriptions ) ) { |
|
298 | - return $this->maybe_create_invoice_subscription( $invoice ); |
|
297 | + if (empty($subscriptions)) { |
|
298 | + return $this->maybe_create_invoice_subscription($invoice); |
|
299 | 299 | } |
300 | 300 | |
301 | 301 | // Abort if an invoice is paid and already has a subscription. |
302 | - if ( $invoice->is_paid() || $invoice->is_refunded() ) { |
|
302 | + if ($invoice->is_paid() || $invoice->is_refunded()) { |
|
303 | 303 | return; |
304 | 304 | } |
305 | 305 | |
306 | - $is_grouped = is_array( $subscriptions ); |
|
307 | - $should_group = getpaid_should_group_subscriptions( $invoice ); |
|
306 | + $is_grouped = is_array($subscriptions); |
|
307 | + $should_group = getpaid_should_group_subscriptions($invoice); |
|
308 | 308 | |
309 | 309 | // Ensure that the subscriptions are only grouped if there are more than 1 recurring items. |
310 | - if ( $is_grouped != $should_group ) { |
|
311 | - $this->delete_invoice_subscriptions( $invoice ); |
|
312 | - delete_post_meta( $invoice->get_id(), 'getpaid_subscription_groups' ); |
|
313 | - return $this->maybe_create_invoice_subscription( $invoice ); |
|
310 | + if ($is_grouped != $should_group) { |
|
311 | + $this->delete_invoice_subscriptions($invoice); |
|
312 | + delete_post_meta($invoice->get_id(), 'getpaid_subscription_groups'); |
|
313 | + return $this->maybe_create_invoice_subscription($invoice); |
|
314 | 314 | } |
315 | 315 | |
316 | 316 | // If there is only one recurring item... |
317 | - if ( ! $is_grouped ) { |
|
318 | - return $this->update_invoice_subscription( $subscriptions, $invoice ); |
|
317 | + if (!$is_grouped) { |
|
318 | + return $this->update_invoice_subscription($subscriptions, $invoice); |
|
319 | 319 | } |
320 | 320 | |
321 | 321 | // Process subscription groups. |
322 | - $current_groups = getpaid_get_invoice_subscription_groups( $invoice->get_id() ); |
|
322 | + $current_groups = getpaid_get_invoice_subscription_groups($invoice->get_id()); |
|
323 | 323 | $subscription_groups = array(); |
324 | 324 | $is_first = true; |
325 | 325 | |
326 | 326 | // Create new subscription groups. |
327 | - foreach ( getpaid_calculate_subscription_totals( $invoice ) as $group_key => $totals ) { |
|
328 | - $subscription_id = isset( $current_groups[ $group_key ] ) ? $current_groups[ $group_key ]['subscription_id'] : 0; |
|
329 | - $subscription_groups[ $group_key ] = $this->create_invoice_subscription_group( $totals, $invoice, $subscription_id, $is_first ); |
|
327 | + foreach (getpaid_calculate_subscription_totals($invoice) as $group_key => $totals) { |
|
328 | + $subscription_id = isset($current_groups[$group_key]) ? $current_groups[$group_key]['subscription_id'] : 0; |
|
329 | + $subscription_groups[$group_key] = $this->create_invoice_subscription_group($totals, $invoice, $subscription_id, $is_first); |
|
330 | 330 | |
331 | - if ( $is_first && $invoice->get_subscription_id() !== $subscription_groups[ $group_key ]['subscription_id'] ) { |
|
331 | + if ($is_first && $invoice->get_subscription_id() !== $subscription_groups[$group_key]['subscription_id']) { |
|
332 | 332 | $getpaid_subscriptions_skip_invoice_update = true; |
333 | - $invoice->set_subscription_id( $subscription_groups[ $group_key ]['subscription_id'] ); |
|
333 | + $invoice->set_subscription_id($subscription_groups[$group_key]['subscription_id']); |
|
334 | 334 | $invoice->save(); |
335 | 335 | $getpaid_subscriptions_skip_invoice_update = false; |
336 | 336 | } |
337 | 337 | |
338 | - $is_first = false; |
|
338 | + $is_first = false; |
|
339 | 339 | } |
340 | 340 | |
341 | 341 | // Delete non-existent subscription groups. |
342 | - foreach ( $current_groups as $group_key => $data ) { |
|
343 | - if ( ! isset( $subscription_groups[ $group_key ] ) ) { |
|
344 | - $subscription = new WPInv_Subscription( (int) $data['subscription_id'] ); |
|
342 | + foreach ($current_groups as $group_key => $data) { |
|
343 | + if (!isset($subscription_groups[$group_key])) { |
|
344 | + $subscription = new WPInv_Subscription((int) $data['subscription_id']); |
|
345 | 345 | |
346 | - if ( $subscription->exists() ) { |
|
347 | - $subscription->delete( true ); |
|
346 | + if ($subscription->exists()) { |
|
347 | + $subscription->delete(true); |
|
348 | 348 | } |
349 | 349 | } |
350 | 350 | } |
351 | 351 | |
352 | 352 | // Cache subscription groups. |
353 | - update_post_meta( $invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups ); |
|
353 | + update_post_meta($invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups); |
|
354 | 354 | return true; |
355 | 355 | |
356 | 356 | } |
@@ -360,20 +360,20 @@ discard block |
||
360 | 360 | * |
361 | 361 | * @param WPInv_Invoice $invoice |
362 | 362 | */ |
363 | - public function delete_invoice_subscriptions( $invoice ) { |
|
363 | + public function delete_invoice_subscriptions($invoice) { |
|
364 | 364 | |
365 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
365 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
366 | 366 | |
367 | - if ( empty( $subscriptions ) ) { |
|
367 | + if (empty($subscriptions)) { |
|
368 | 368 | return; |
369 | 369 | } |
370 | 370 | |
371 | - if ( ! is_array( $subscriptions ) ) { |
|
372 | - $subscriptions = array( $subscriptions ); |
|
371 | + if (!is_array($subscriptions)) { |
|
372 | + $subscriptions = array($subscriptions); |
|
373 | 373 | } |
374 | 374 | |
375 | - foreach ( $subscriptions as $subscription ) { |
|
376 | - $subscription->delete( true ); |
|
375 | + foreach ($subscriptions as $subscription) { |
|
376 | + $subscription->delete(true); |
|
377 | 377 | } |
378 | 378 | |
379 | 379 | } |
@@ -386,57 +386,57 @@ discard block |
||
386 | 386 | * @param WPInv_Invoice $invoice |
387 | 387 | * @since 1.0.19 |
388 | 388 | */ |
389 | - public function update_invoice_subscription( $subscription, $invoice ) { |
|
389 | + public function update_invoice_subscription($subscription, $invoice) { |
|
390 | 390 | |
391 | 391 | // Delete the subscription if an invoice is free or nolonger recurring. |
392 | - if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_free() || ! $invoice->is_recurring() ) { |
|
392 | + if (!$invoice->is_type('invoice') || $invoice->is_free() || !$invoice->is_recurring()) { |
|
393 | 393 | return $subscription->delete(); |
394 | 394 | } |
395 | 395 | |
396 | - $subscription->set_customer_id( $invoice->get_customer_id() ); |
|
397 | - $subscription->set_parent_invoice_id( $invoice->get_id() ); |
|
398 | - $subscription->set_initial_amount( $invoice->get_initial_total() ); |
|
399 | - $subscription->set_recurring_amount( $invoice->get_recurring_total() ); |
|
400 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
401 | - $subscription->set_status( $invoice->is_paid() ? 'active' : 'pending' ); |
|
396 | + $subscription->set_customer_id($invoice->get_customer_id()); |
|
397 | + $subscription->set_parent_invoice_id($invoice->get_id()); |
|
398 | + $subscription->set_initial_amount($invoice->get_initial_total()); |
|
399 | + $subscription->set_recurring_amount($invoice->get_recurring_total()); |
|
400 | + $subscription->set_date_created(current_time('mysql')); |
|
401 | + $subscription->set_status($invoice->is_paid() ? 'active' : 'pending'); |
|
402 | 402 | |
403 | 403 | // Get the recurring item and abort if it does not exist. |
404 | - $subscription_item = $invoice->get_recurring( true ); |
|
405 | - if ( ! $subscription_item->get_id() ) { |
|
406 | - $invoice->set_subscription_id( 0 ); |
|
404 | + $subscription_item = $invoice->get_recurring(true); |
|
405 | + if (!$subscription_item->get_id()) { |
|
406 | + $invoice->set_subscription_id(0); |
|
407 | 407 | $invoice->save(); |
408 | 408 | return $subscription->delete(); |
409 | 409 | } |
410 | 410 | |
411 | - $subscription->set_product_id( $subscription_item->get_id() ); |
|
412 | - $subscription->set_period( $subscription_item->get_recurring_period( true ) ); |
|
413 | - $subscription->set_frequency( $subscription_item->get_recurring_interval() ); |
|
414 | - $subscription->set_bill_times( $subscription_item->get_recurring_limit() ); |
|
411 | + $subscription->set_product_id($subscription_item->get_id()); |
|
412 | + $subscription->set_period($subscription_item->get_recurring_period(true)); |
|
413 | + $subscription->set_frequency($subscription_item->get_recurring_interval()); |
|
414 | + $subscription->set_bill_times($subscription_item->get_recurring_limit()); |
|
415 | 415 | |
416 | 416 | // Calculate the next renewal date. |
417 | - $period = $subscription_item->get_recurring_period( true ); |
|
417 | + $period = $subscription_item->get_recurring_period(true); |
|
418 | 418 | $interval = $subscription_item->get_recurring_interval(); |
419 | 419 | |
420 | 420 | // If the subscription item has a trial period... |
421 | - if ( $subscription_item->has_free_trial() ) { |
|
422 | - $period = $subscription_item->get_trial_period( true ); |
|
421 | + if ($subscription_item->has_free_trial()) { |
|
422 | + $period = $subscription_item->get_trial_period(true); |
|
423 | 423 | $interval = $subscription_item->get_trial_interval(); |
424 | - $subscription->set_trial_period( $interval . ' ' . $period ); |
|
425 | - $subscription->set_status( 'trialling' ); |
|
424 | + $subscription->set_trial_period($interval . ' ' . $period); |
|
425 | + $subscription->set_status('trialling'); |
|
426 | 426 | } |
427 | 427 | |
428 | 428 | // If initial amount is free, treat it as a free trial even if the subscription item does not have a free trial. |
429 | - if ( $invoice->has_free_trial() ) { |
|
430 | - $subscription->set_trial_period( $interval . ' ' . $period ); |
|
431 | - $subscription->set_status( 'trialling' ); |
|
429 | + if ($invoice->has_free_trial()) { |
|
430 | + $subscription->set_trial_period($interval . ' ' . $period); |
|
431 | + $subscription->set_status('trialling'); |
|
432 | 432 | } |
433 | 433 | |
434 | 434 | // Calculate the next renewal date. |
435 | - $expiration = date( 'Y-m-d H:i:s', strtotime( "+$interval $period", strtotime( $subscription->get_date_created() ) ) ); |
|
435 | + $expiration = date('Y-m-d H:i:s', strtotime("+$interval $period", strtotime($subscription->get_date_created()))); |
|
436 | 436 | |
437 | - $subscription->set_next_renewal_date( $expiration ); |
|
437 | + $subscription->set_next_renewal_date($expiration); |
|
438 | 438 | $subscription->save(); |
439 | - $invoice->set_subscription_id( $subscription->get_id() ); |
|
439 | + $invoice->set_subscription_id($subscription->get_id()); |
|
440 | 440 | return $subscription->get_id(); |
441 | 441 | |
442 | 442 | } |
@@ -447,27 +447,27 @@ discard block |
||
447 | 447 | * @param array $data |
448 | 448 | * @since 1.0.19 |
449 | 449 | */ |
450 | - public function admin_update_single_subscription( $args ) { |
|
450 | + public function admin_update_single_subscription($args) { |
|
451 | 451 | |
452 | 452 | // Ensure the subscription exists and that a status has been given. |
453 | - if ( empty( $args['subscription_id'] ) ) { |
|
453 | + if (empty($args['subscription_id'])) { |
|
454 | 454 | return; |
455 | 455 | } |
456 | 456 | |
457 | 457 | // Retrieve the subscriptions. |
458 | - $subscription = new WPInv_Subscription( $args['subscription_id'] ); |
|
458 | + $subscription = new WPInv_Subscription($args['subscription_id']); |
|
459 | 459 | |
460 | - if ( $subscription->get_id() ) { |
|
460 | + if ($subscription->get_id()) { |
|
461 | 461 | |
462 | 462 | $subscription->set_props( |
463 | 463 | array( |
464 | - 'status' => isset( $args['subscription_status'] ) ? $args['subscription_status'] : null, |
|
465 | - 'profile_id' => isset( $args['wpinv_subscription_profile_id'] ) ? $args['wpinv_subscription_profile_id'] : null, |
|
464 | + 'status' => isset($args['subscription_status']) ? $args['subscription_status'] : null, |
|
465 | + 'profile_id' => isset($args['wpinv_subscription_profile_id']) ? $args['wpinv_subscription_profile_id'] : null, |
|
466 | 466 | ) |
467 | 467 | ); |
468 | 468 | |
469 | 469 | $subscription->save(); |
470 | - getpaid_admin()->show_info( __( 'Subscription updated', 'invoicing' ) ); |
|
470 | + getpaid_admin()->show_info(__('Subscription updated', 'invoicing')); |
|
471 | 471 | |
472 | 472 | } |
473 | 473 | |
@@ -479,27 +479,27 @@ discard block |
||
479 | 479 | * @param array $data |
480 | 480 | * @since 1.0.19 |
481 | 481 | */ |
482 | - public function admin_renew_single_subscription( $args ) { |
|
482 | + public function admin_renew_single_subscription($args) { |
|
483 | 483 | |
484 | 484 | // Ensure the subscription exists and that a status has been given. |
485 | - if ( empty( $args['id'] ) ) { |
|
485 | + if (empty($args['id'])) { |
|
486 | 486 | return; |
487 | 487 | } |
488 | 488 | |
489 | 489 | // Retrieve the subscriptions. |
490 | - $subscription = new WPInv_Subscription( $args['id'] ); |
|
490 | + $subscription = new WPInv_Subscription($args['id']); |
|
491 | 491 | |
492 | - if ( $subscription->get_id() ) { |
|
492 | + if ($subscription->get_id()) { |
|
493 | 493 | |
494 | - do_action( 'getpaid_admin_renew_subscription', $subscription ); |
|
494 | + do_action('getpaid_admin_renew_subscription', $subscription); |
|
495 | 495 | |
496 | - $args = array( 'transaction_id', $subscription->get_parent_invoice()->generate_key( 'renewal_' ) ); |
|
496 | + $args = array('transaction_id', $subscription->get_parent_invoice()->generate_key('renewal_')); |
|
497 | 497 | |
498 | - if ( ! $subscription->add_payment( $args ) ) { |
|
499 | - getpaid_admin()->show_error( __( 'We are unable to renew this subscription as the parent invoice does not exist.', 'invoicing' ) ); |
|
498 | + if (!$subscription->add_payment($args)) { |
|
499 | + getpaid_admin()->show_error(__('We are unable to renew this subscription as the parent invoice does not exist.', 'invoicing')); |
|
500 | 500 | } else { |
501 | 501 | $subscription->renew(); |
502 | - getpaid_admin()->show_info( __( 'This subscription has been renewed and extended.', 'invoicing' ) ); |
|
502 | + getpaid_admin()->show_info(__('This subscription has been renewed and extended.', 'invoicing')); |
|
503 | 503 | } |
504 | 504 | |
505 | 505 | wp_safe_redirect( |
@@ -522,20 +522,20 @@ discard block |
||
522 | 522 | * @param array $data |
523 | 523 | * @since 1.0.19 |
524 | 524 | */ |
525 | - public function admin_delete_single_subscription( $args ) { |
|
525 | + public function admin_delete_single_subscription($args) { |
|
526 | 526 | |
527 | 527 | // Ensure the subscription exists and that a status has been given. |
528 | - if ( empty( $args['id'] ) ) { |
|
528 | + if (empty($args['id'])) { |
|
529 | 529 | return; |
530 | 530 | } |
531 | 531 | |
532 | 532 | // Retrieve the subscriptions. |
533 | - $subscription = new WPInv_Subscription( $args['id'] ); |
|
533 | + $subscription = new WPInv_Subscription($args['id']); |
|
534 | 534 | |
535 | - if ( $subscription->delete() ) { |
|
536 | - getpaid_admin()->show_info( __( 'This subscription has been deleted.', 'invoicing' ) ); |
|
535 | + if ($subscription->delete()) { |
|
536 | + getpaid_admin()->show_info(__('This subscription has been deleted.', 'invoicing')); |
|
537 | 537 | } else { |
538 | - getpaid_admin()->show_error( __( 'We are unable to delete this subscription. Please try again.', 'invoicing' ) ); |
|
538 | + getpaid_admin()->show_error(__('We are unable to delete this subscription. Please try again.', 'invoicing')); |
|
539 | 539 | } |
540 | 540 | |
541 | 541 | $redirected = wp_safe_redirect( |
@@ -548,7 +548,7 @@ discard block |
||
548 | 548 | ) |
549 | 549 | ); |
550 | 550 | |
551 | - if ( $redirected ) { |
|
551 | + if ($redirected) { |
|
552 | 552 | exit; |
553 | 553 | } |
554 | 554 | |
@@ -561,16 +561,16 @@ discard block |
||
561 | 561 | * @param WPInv_Item $item |
562 | 562 | * @param WPInv_Invoice $invoice |
563 | 563 | */ |
564 | - public function filter_invoice_line_item_actions( $actions, $item, $invoice ) { |
|
564 | + public function filter_invoice_line_item_actions($actions, $item, $invoice) { |
|
565 | 565 | |
566 | 566 | // Abort if this invoice uses subscription groups. |
567 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
568 | - if ( ! $invoice->is_recurring() || ! is_object( $subscriptions ) ) { |
|
567 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
568 | + if (!$invoice->is_recurring() || !is_object($subscriptions)) { |
|
569 | 569 | return $actions; |
570 | 570 | } |
571 | 571 | |
572 | 572 | // Fetch item subscription. |
573 | - $args = array( |
|
573 | + $args = array( |
|
574 | 574 | 'invoice_in' => $invoice->is_parent() ? $invoice->get_id() : $invoice->get_parent_id(), |
575 | 575 | 'product_in' => $item->get_id(), |
576 | 576 | 'number' => 1, |
@@ -578,13 +578,13 @@ discard block |
||
578 | 578 | 'fields' => 'id', |
579 | 579 | ); |
580 | 580 | |
581 | - $subscription = new GetPaid_Subscriptions_Query( $args ); |
|
581 | + $subscription = new GetPaid_Subscriptions_Query($args); |
|
582 | 582 | $subscription = $subscription->get_results(); |
583 | 583 | |
584 | 584 | // In case we found a match... |
585 | - if ( ! empty( $subscription ) ) { |
|
586 | - $url = esc_url( add_query_arg( 'subscription', (int) $subscription[0], get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ) ); |
|
587 | - $actions['subscription'] = "<a href='$url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>'; |
|
585 | + if (!empty($subscription)) { |
|
586 | + $url = esc_url(add_query_arg('subscription', (int) $subscription[0], get_permalink((int) wpinv_get_option('invoice_subscription_page')))); |
|
587 | + $actions['subscription'] = "<a href='$url' class='text-decoration-none'>" . __('Manage Subscription', 'invoicing') . '</a>'; |
|
588 | 588 | } |
589 | 589 | |
590 | 590 | return $actions; |
@@ -271,26 +271,26 @@ discard block |
||
271 | 271 | } |
272 | 272 | |
273 | 273 | function wpinv_get_chosen_gateway( $invoice_id = 0 ) { |
274 | - $gateways = array_keys( wpinv_get_enabled_payment_gateways() ); |
|
274 | + $gateways = array_keys( wpinv_get_enabled_payment_gateways() ); |
|
275 | 275 | |
276 | 276 | $chosen = false; |
277 | 277 | if ( $invoice_id > 0 && $invoice = wpinv_get_invoice( $invoice_id ) ) { |
278 | 278 | $chosen = $invoice->get_gateway(); |
279 | 279 | } |
280 | 280 | |
281 | - $chosen = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen; |
|
281 | + $chosen = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen; |
|
282 | 282 | |
283 | - if ( false !== $chosen ) { |
|
284 | - $chosen = preg_replace( '/[^a-zA-Z0-9-_]+/', '', $chosen ); |
|
285 | - } |
|
283 | + if ( false !== $chosen ) { |
|
284 | + $chosen = preg_replace( '/[^a-zA-Z0-9-_]+/', '', $chosen ); |
|
285 | + } |
|
286 | 286 | |
287 | - if ( ! empty( $chosen ) ) { |
|
288 | - $enabled_gateway = urldecode( $chosen ); |
|
289 | - } elseif ( ! empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) { |
|
290 | - $enabled_gateway = 'manual'; |
|
291 | - } else { |
|
292 | - $enabled_gateway = wpinv_get_default_gateway(); |
|
293 | - } |
|
287 | + if ( ! empty( $chosen ) ) { |
|
288 | + $enabled_gateway = urldecode( $chosen ); |
|
289 | + } elseif ( ! empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) { |
|
290 | + $enabled_gateway = 'manual'; |
|
291 | + } else { |
|
292 | + $enabled_gateway = wpinv_get_default_gateway(); |
|
293 | + } |
|
294 | 294 | |
295 | 295 | if ( ! wpinv_is_gateway_active( $enabled_gateway ) && ! empty( $gateways ) ) { |
296 | 296 | if ( wpinv_is_gateway_active( wpinv_get_default_gateway() ) ) { |
@@ -300,7 +300,7 @@ discard block |
||
300 | 300 | } |
301 | 301 | } |
302 | 302 | |
303 | - return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway ); |
|
303 | + return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway ); |
|
304 | 304 | } |
305 | 305 | |
306 | 306 | function wpinv_record_gateway_error( $title = '', $message = '' ) { |
@@ -308,22 +308,22 @@ discard block |
||
308 | 308 | } |
309 | 309 | |
310 | 310 | function wpinv_count_sales_by_gateway( $gateway_id = 'paypal', $status = 'publish' ) { |
311 | - $ret = 0; |
|
312 | - $args = array( |
|
313 | - 'meta_key' => '_wpinv_gateway', |
|
314 | - 'meta_value' => $gateway_id, |
|
315 | - 'nopaging' => true, |
|
316 | - 'post_type' => 'wpi_invoice', |
|
317 | - 'post_status' => $status, |
|
318 | - 'fields' => 'ids', |
|
319 | - ); |
|
320 | - |
|
321 | - $payments = new WP_Query( $args ); |
|
322 | - |
|
323 | - if ( $payments ) { |
|
324 | - $ret = $payments->post_count; |
|
311 | + $ret = 0; |
|
312 | + $args = array( |
|
313 | + 'meta_key' => '_wpinv_gateway', |
|
314 | + 'meta_value' => $gateway_id, |
|
315 | + 'nopaging' => true, |
|
316 | + 'post_type' => 'wpi_invoice', |
|
317 | + 'post_status' => $status, |
|
318 | + 'fields' => 'ids', |
|
319 | + ); |
|
320 | + |
|
321 | + $payments = new WP_Query( $args ); |
|
322 | + |
|
323 | + if ( $payments ) { |
|
324 | + $ret = $payments->post_count; |
|
325 | 325 | } |
326 | - return $ret; |
|
326 | + return $ret; |
|
327 | 327 | } |
328 | 328 | |
329 | 329 | /** |
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * Contains gateway functions. |
4 | 4 | * |
5 | 5 | */ |
6 | -defined( 'ABSPATH' ) || exit; |
|
6 | +defined('ABSPATH') || exit; |
|
7 | 7 | |
8 | 8 | /** |
9 | 9 | * Returns an array of payment gateways. |
@@ -11,30 +11,30 @@ discard block |
||
11 | 11 | * @return array |
12 | 12 | */ |
13 | 13 | function wpinv_get_payment_gateways() { |
14 | - return apply_filters( 'wpinv_payment_gateways', array() ); |
|
14 | + return apply_filters('wpinv_payment_gateways', array()); |
|
15 | 15 | } |
16 | 16 | |
17 | -function wpinv_payment_gateway_titles( $all_gateways ) { |
|
17 | +function wpinv_payment_gateway_titles($all_gateways) { |
|
18 | 18 | |
19 | 19 | $options = wpinv_get_options(); |
20 | 20 | $gateways = array(); |
21 | - foreach ( $all_gateways as $key => $gateway ) { |
|
22 | - if ( ! empty( $options[ $key . '_title' ] ) ) { |
|
23 | - $all_gateways[ $key ]['checkout_label'] = __( $options[ $key . '_title' ], 'invoicing' ); |
|
21 | + foreach ($all_gateways as $key => $gateway) { |
|
22 | + if (!empty($options[$key . '_title'])) { |
|
23 | + $all_gateways[$key]['checkout_label'] = __($options[$key . '_title'], 'invoicing'); |
|
24 | 24 | } |
25 | 25 | |
26 | - $gateways[ $key ] = isset( $options[ $key . '_ordering' ] ) ? $options[ $key . '_ordering' ] : ( isset( $gateway['ordering'] ) ? $gateway['ordering'] : '' ); |
|
26 | + $gateways[$key] = isset($options[$key . '_ordering']) ? $options[$key . '_ordering'] : (isset($gateway['ordering']) ? $gateway['ordering'] : ''); |
|
27 | 27 | } |
28 | 28 | |
29 | - asort( $gateways ); |
|
29 | + asort($gateways); |
|
30 | 30 | |
31 | - foreach ( $gateways as $gateway => $key ) { |
|
32 | - $gateways[ $gateway ] = $all_gateways[ $gateway ]; |
|
31 | + foreach ($gateways as $gateway => $key) { |
|
32 | + $gateways[$gateway] = $all_gateways[$gateway]; |
|
33 | 33 | } |
34 | 34 | |
35 | 35 | return $gateways; |
36 | 36 | } |
37 | -add_filter( 'wpinv_payment_gateways', 'wpinv_payment_gateway_titles', 1000, 1 ); |
|
37 | +add_filter('wpinv_payment_gateways', 'wpinv_payment_gateway_titles', 1000, 1); |
|
38 | 38 | |
39 | 39 | /** |
40 | 40 | * Returns an array of enabled gateways. |
@@ -42,36 +42,36 @@ discard block |
||
42 | 42 | * @param bool $sort |
43 | 43 | * @return array |
44 | 44 | */ |
45 | -function wpinv_get_enabled_payment_gateways( $sort = false ) { |
|
45 | +function wpinv_get_enabled_payment_gateways($sort = false) { |
|
46 | 46 | |
47 | 47 | $enabled = array(); |
48 | 48 | |
49 | - foreach ( wpinv_get_payment_gateways() as $gateway => $data ) { |
|
49 | + foreach (wpinv_get_payment_gateways() as $gateway => $data) { |
|
50 | 50 | |
51 | - if ( (int) wpinv_get_option( "{$gateway}_active", $gateway === 'manual' ) === 1 ) { |
|
52 | - $enabled[ $gateway ] = $data; |
|
51 | + if ((int) wpinv_get_option("{$gateway}_active", $gateway === 'manual') === 1) { |
|
52 | + $enabled[$gateway] = $data; |
|
53 | 53 | } |
54 | 54 | } |
55 | 55 | |
56 | - if ( true === $sort ) { |
|
57 | - uasort( $enabled, 'wpinv_sort_gateway_order' ); |
|
56 | + if (true === $sort) { |
|
57 | + uasort($enabled, 'wpinv_sort_gateway_order'); |
|
58 | 58 | |
59 | 59 | // Reorder our gateways so the default is first |
60 | 60 | $default_gateway_id = wpinv_get_default_gateway(); |
61 | - if ( isset( $enabled[ $default_gateway_id ] ) ) { |
|
61 | + if (isset($enabled[$default_gateway_id])) { |
|
62 | 62 | $default_gateway = array( |
63 | - $default_gateway_id => $enabled[ $default_gateway_id ], |
|
63 | + $default_gateway_id => $enabled[$default_gateway_id], |
|
64 | 64 | ); |
65 | 65 | |
66 | - unset( $enabled[ $default_gateway_id ] ); |
|
67 | - $enabled = array_merge( $default_gateway, $enabled ); |
|
66 | + unset($enabled[$default_gateway_id]); |
|
67 | + $enabled = array_merge($default_gateway, $enabled); |
|
68 | 68 | } |
69 | 69 | } |
70 | 70 | |
71 | - return apply_filters( 'wpinv_enabled_payment_gateways', $enabled ); |
|
71 | + return apply_filters('wpinv_enabled_payment_gateways', $enabled); |
|
72 | 72 | } |
73 | 73 | |
74 | -function wpinv_sort_gateway_order( $a, $b ) { |
|
74 | +function wpinv_sort_gateway_order($a, $b) { |
|
75 | 75 | return $a['ordering'] - $b['ordering']; |
76 | 76 | } |
77 | 77 | |
@@ -81,9 +81,9 @@ discard block |
||
81 | 81 | * @param string $gateway |
82 | 82 | * @return bool |
83 | 83 | */ |
84 | -function wpinv_is_gateway_active( $gateway ) { |
|
85 | - $is_active = (int) wpinv_get_option( "{$gateway}_active", $gateway === 'manual' ) === 1; |
|
86 | - return apply_filters( 'wpinv_is_gateway_active', $is_active, $gateway ); |
|
84 | +function wpinv_is_gateway_active($gateway) { |
|
85 | + $is_active = (int) wpinv_get_option("{$gateway}_active", $gateway === 'manual') === 1; |
|
86 | + return apply_filters('wpinv_is_gateway_active', $is_active, $gateway); |
|
87 | 87 | } |
88 | 88 | |
89 | 89 | /** |
@@ -92,11 +92,11 @@ discard block |
||
92 | 92 | * @return string|false |
93 | 93 | */ |
94 | 94 | function wpinv_get_default_gateway() { |
95 | - $default = wpinv_get_option( 'default_gateway' ); |
|
95 | + $default = wpinv_get_option('default_gateway'); |
|
96 | 96 | $gateways = wpinv_get_enabled_payment_gateways(); |
97 | - $default = ! empty( $default ) && isset( $gateways[ $default ] ) ? $default : false; |
|
97 | + $default = !empty($default) && isset($gateways[$default]) ? $default : false; |
|
98 | 98 | |
99 | - return apply_filters( 'wpinv_default_gateway', $default ); |
|
99 | + return apply_filters('wpinv_default_gateway', $default); |
|
100 | 100 | } |
101 | 101 | |
102 | 102 | /** |
@@ -105,17 +105,17 @@ discard block |
||
105 | 105 | * @param string $gateway The gateway to key. |
106 | 106 | * @return string |
107 | 107 | */ |
108 | -function wpinv_get_gateway_admin_label( $gateway ) { |
|
108 | +function wpinv_get_gateway_admin_label($gateway) { |
|
109 | 109 | |
110 | - if ( empty( $gateway ) || 'none' == $gateway ) { |
|
111 | - return esc_html__( 'No Gateway', 'invoicing' ); |
|
110 | + if (empty($gateway) || 'none' == $gateway) { |
|
111 | + return esc_html__('No Gateway', 'invoicing'); |
|
112 | 112 | } |
113 | 113 | |
114 | 114 | $gateways = wpinv_get_payment_gateways(); |
115 | - $label = isset( $gateways[ $gateway ] ) ? $gateways[ $gateway ]['admin_label'] : $gateway; |
|
116 | - $gateway = apply_filters( 'wpinv_gateway_admin_label', $label, $gateway ); |
|
115 | + $label = isset($gateways[$gateway]) ? $gateways[$gateway]['admin_label'] : $gateway; |
|
116 | + $gateway = apply_filters('wpinv_gateway_admin_label', $label, $gateway); |
|
117 | 117 | |
118 | - return wpinv_clean( $gateway ); |
|
118 | + return wpinv_clean($gateway); |
|
119 | 119 | } |
120 | 120 | |
121 | 121 | /** |
@@ -123,48 +123,48 @@ discard block |
||
123 | 123 | * |
124 | 124 | * @param string $gateway |
125 | 125 | */ |
126 | -function wpinv_get_gateway_description( $gateway ) { |
|
126 | +function wpinv_get_gateway_description($gateway) { |
|
127 | 127 | |
128 | 128 | $options = wpinv_get_options(); |
129 | - $description = ! empty( $options[ $gateway . '_desc' ] ) ? $options[ $gateway . '_desc' ] : ''; |
|
129 | + $description = !empty($options[$gateway . '_desc']) ? $options[$gateway . '_desc'] : ''; |
|
130 | 130 | |
131 | - return apply_filters( 'wpinv_gateway_description', $description, $gateway ); |
|
131 | + return apply_filters('wpinv_gateway_description', $description, $gateway); |
|
132 | 132 | } |
133 | 133 | |
134 | -function wpinv_get_gateway_button_label( $gateway ) { |
|
135 | - return apply_filters( 'wpinv_gateway_' . $gateway . '_button_label', '' ); |
|
134 | +function wpinv_get_gateway_button_label($gateway) { |
|
135 | + return apply_filters('wpinv_gateway_' . $gateway . '_button_label', ''); |
|
136 | 136 | } |
137 | 137 | |
138 | -function wpinv_get_gateway_checkout_label( $gateway ) { |
|
138 | +function wpinv_get_gateway_checkout_label($gateway) { |
|
139 | 139 | $gateways = wpinv_get_payment_gateways(); |
140 | - $label = isset( $gateways[ $gateway ] ) ? $gateways[ $gateway ]['checkout_label'] : $gateway; |
|
140 | + $label = isset($gateways[$gateway]) ? $gateways[$gateway]['checkout_label'] : $gateway; |
|
141 | 141 | |
142 | - if ( $gateway == 'none' ) { |
|
143 | - $label = __( 'None', 'invoicing' ); |
|
142 | + if ($gateway == 'none') { |
|
143 | + $label = __('None', 'invoicing'); |
|
144 | 144 | } |
145 | 145 | |
146 | - return apply_filters( 'wpinv_gateway_checkout_label', ucfirst( $label ), $gateway ); |
|
146 | + return apply_filters('wpinv_gateway_checkout_label', ucfirst($label), $gateway); |
|
147 | 147 | } |
148 | 148 | |
149 | -function wpinv_settings_sections_gateways( $settings ) { |
|
149 | +function wpinv_settings_sections_gateways($settings) { |
|
150 | 150 | $gateways = wpinv_get_payment_gateways(); |
151 | - ksort( $gateways ); |
|
151 | + ksort($gateways); |
|
152 | 152 | |
153 | - foreach ( $gateways as $key => $gateway ) { |
|
154 | - $settings[ $key ] = $gateway['admin_label']; |
|
153 | + foreach ($gateways as $key => $gateway) { |
|
154 | + $settings[$key] = $gateway['admin_label']; |
|
155 | 155 | } |
156 | 156 | |
157 | 157 | return $settings; |
158 | 158 | } |
159 | -add_filter( 'wpinv_settings_sections_gateways', 'wpinv_settings_sections_gateways', 10, 1 ); |
|
159 | +add_filter('wpinv_settings_sections_gateways', 'wpinv_settings_sections_gateways', 10, 1); |
|
160 | 160 | |
161 | 161 | /** |
162 | 162 | * Adds GateWay settings. |
163 | 163 | */ |
164 | -function wpinv_settings_gateways( $settings ) { |
|
164 | +function wpinv_settings_gateways($settings) { |
|
165 | 165 | |
166 | 166 | // Loop through each gateway. |
167 | - foreach ( wpinv_get_payment_gateways() as $key => $gateway ) { |
|
167 | + foreach (wpinv_get_payment_gateways() as $key => $gateway) { |
|
168 | 168 | |
169 | 169 | $gateway_settings = array( |
170 | 170 | |
@@ -172,7 +172,7 @@ discard block |
||
172 | 172 | "{$key}_header" => array( |
173 | 173 | |
174 | 174 | 'id' => "{$key}_gateway_header", |
175 | - 'name' => '<h3>' . wp_sprintf( __( '%s Settings', 'invoicing' ), $gateway['admin_label'] ) . '</h3>', |
|
175 | + 'name' => '<h3>' . wp_sprintf(__('%s Settings', 'invoicing'), $gateway['admin_label']) . '</h3>', |
|
176 | 176 | 'custom' => $key, |
177 | 177 | 'type' => 'gateway_header', |
178 | 178 | |
@@ -181,8 +181,8 @@ discard block |
||
181 | 181 | // Activate/Deactivate a gateway. |
182 | 182 | "{$key}_active" => array( |
183 | 183 | 'id' => $key . '_active', |
184 | - 'name' => __( 'Activate', 'invoicing' ), |
|
185 | - 'desc' => wp_sprintf( __( 'Enable %s', 'invoicing' ), $gateway['admin_label'] ), |
|
184 | + 'name' => __('Activate', 'invoicing'), |
|
185 | + 'desc' => wp_sprintf(__('Enable %s', 'invoicing'), $gateway['admin_label']), |
|
186 | 186 | 'type' => 'checkbox', |
187 | 187 | 'std' => $key === 'manual' ? '1' : '0', |
188 | 188 | ), |
@@ -190,8 +190,8 @@ discard block |
||
190 | 190 | // Activate/Deactivate sandbox. |
191 | 191 | "{$key}_sandbox" => array( |
192 | 192 | 'id' => $key . '_sandbox', |
193 | - 'name' => __( 'Sandbox', 'invoicing' ), |
|
194 | - 'desc' => __( 'Enable sandbox to test payments', 'invoicing' ), |
|
193 | + 'name' => __('Sandbox', 'invoicing'), |
|
194 | + 'desc' => __('Enable sandbox to test payments', 'invoicing'), |
|
195 | 195 | 'type' => 'checkbox', |
196 | 196 | 'std' => '1', |
197 | 197 | ), |
@@ -199,51 +199,51 @@ discard block |
||
199 | 199 | // Checkout title. |
200 | 200 | "{$key}_title" => array( |
201 | 201 | 'id' => $key . '_title', |
202 | - 'name' => __( 'Checkout Title', 'invoicing' ), |
|
203 | - 'std' => isset( $gateway['checkout_label'] ) ? $gateway['checkout_label'] : '', |
|
202 | + 'name' => __('Checkout Title', 'invoicing'), |
|
203 | + 'std' => isset($gateway['checkout_label']) ? $gateway['checkout_label'] : '', |
|
204 | 204 | 'type' => 'text', |
205 | 205 | ), |
206 | 206 | |
207 | 207 | // Checkout description. |
208 | 208 | "{$key}_desc" => array( |
209 | 209 | 'id' => $key . '_desc', |
210 | - 'name' => __( 'Checkout Description', 'invoicing' ), |
|
211 | - 'std' => apply_filters( "getpaid_default_{$key}_checkout_description", '' ), |
|
210 | + 'name' => __('Checkout Description', 'invoicing'), |
|
211 | + 'std' => apply_filters("getpaid_default_{$key}_checkout_description", ''), |
|
212 | 212 | 'type' => 'text', |
213 | 213 | ), |
214 | 214 | |
215 | 215 | // Checkout order. |
216 | 216 | "{$key}_ordering" => array( |
217 | 217 | 'id' => $key . '_ordering', |
218 | - 'name' => __( 'Priority', 'invoicing' ), |
|
219 | - 'std' => apply_filters( "getpaid_default_{$key}_checkout_description", '' ), |
|
218 | + 'name' => __('Priority', 'invoicing'), |
|
219 | + 'std' => apply_filters("getpaid_default_{$key}_checkout_description", ''), |
|
220 | 220 | 'type' => 'number', |
221 | 221 | 'step' => '1', |
222 | 222 | 'min' => '0', |
223 | 223 | 'max' => '100000', |
224 | - 'std' => isset( $gateway['ordering'] ) ? $gateway['ordering'] : '10', |
|
224 | + 'std' => isset($gateway['ordering']) ? $gateway['ordering'] : '10', |
|
225 | 225 | ), |
226 | 226 | |
227 | 227 | ); |
228 | 228 | |
229 | 229 | // Maybe remove the sandbox. |
230 | - if ( ! getpaid_payment_gateway_supports( $key, 'sandbox' ) ) { |
|
231 | - unset( $gateway_settings[ "{$key}_sandbox" ] ); |
|
230 | + if (!getpaid_payment_gateway_supports($key, 'sandbox')) { |
|
231 | + unset($gateway_settings["{$key}_sandbox"]); |
|
232 | 232 | } |
233 | 233 | |
234 | - $gateway_settings = apply_filters( 'wpinv_gateway_settings', $gateway_settings, $key, $gateway ); |
|
235 | - $gateway_settings = apply_filters( 'wpinv_gateway_settings_' . $key, $gateway_settings, $gateway ); |
|
234 | + $gateway_settings = apply_filters('wpinv_gateway_settings', $gateway_settings, $key, $gateway); |
|
235 | + $gateway_settings = apply_filters('wpinv_gateway_settings_' . $key, $gateway_settings, $gateway); |
|
236 | 236 | |
237 | - $settings[ $key ] = $gateway_settings; |
|
237 | + $settings[$key] = $gateway_settings; |
|
238 | 238 | } |
239 | 239 | |
240 | 240 | return $settings; |
241 | 241 | |
242 | 242 | } |
243 | -add_filter( 'wpinv_settings_gateways', 'wpinv_settings_gateways', 10, 1 ); |
|
243 | +add_filter('wpinv_settings_gateways', 'wpinv_settings_gateways', 10, 1); |
|
244 | 244 | |
245 | -function wpinv_gateway_header_callback( $args ) { |
|
246 | - echo '<input type="hidden" id="wpinv_settings[save_gateway]" name="wpinv_settings[save_gateway]" value="' . esc_attr( $args['custom'] ) . '" />'; |
|
245 | +function wpinv_gateway_header_callback($args) { |
|
246 | + echo '<input type="hidden" id="wpinv_settings[save_gateway]" name="wpinv_settings[save_gateway]" value="' . esc_attr($args['custom']) . '" />'; |
|
247 | 247 | } |
248 | 248 | |
249 | 249 | /** |
@@ -254,60 +254,60 @@ discard block |
||
254 | 254 | * @return bool |
255 | 255 | * @since 2.3.0 |
256 | 256 | */ |
257 | -function getpaid_payment_gateway_supports( $gateway, $feature ) { |
|
257 | +function getpaid_payment_gateway_supports($gateway, $feature) { |
|
258 | 258 | |
259 | 259 | $supports = false; |
260 | 260 | |
261 | - $supports = apply_filters( "getpaid_{$gateway}_supports_{$feature}", false ); |
|
261 | + $supports = apply_filters("getpaid_{$gateway}_supports_{$feature}", false); |
|
262 | 262 | |
263 | 263 | // Backwards compatibility. |
264 | - $supports = apply_filters( "wpinv_{$gateway}_supports_{$feature}", $supports ); |
|
265 | - $supports = apply_filters( "wpinv_{$gateway}_support_{$feature}", $supports ); |
|
264 | + $supports = apply_filters("wpinv_{$gateway}_supports_{$feature}", $supports); |
|
265 | + $supports = apply_filters("wpinv_{$gateway}_support_{$feature}", $supports); |
|
266 | 266 | |
267 | - $supports = apply_filters( "getpaid_gateway_supports_{$feature}", $supports, $gateway ); |
|
268 | - $supports = apply_filters( 'getpaid_payment_gateway_supports', $supports, $feature, $gateway ); |
|
267 | + $supports = apply_filters("getpaid_gateway_supports_{$feature}", $supports, $gateway); |
|
268 | + $supports = apply_filters('getpaid_payment_gateway_supports', $supports, $feature, $gateway); |
|
269 | 269 | |
270 | 270 | return $supports; |
271 | 271 | } |
272 | 272 | |
273 | -function wpinv_get_chosen_gateway( $invoice_id = 0 ) { |
|
274 | - $gateways = array_keys( wpinv_get_enabled_payment_gateways() ); |
|
273 | +function wpinv_get_chosen_gateway($invoice_id = 0) { |
|
274 | + $gateways = array_keys(wpinv_get_enabled_payment_gateways()); |
|
275 | 275 | |
276 | 276 | $chosen = false; |
277 | - if ( $invoice_id > 0 && $invoice = wpinv_get_invoice( $invoice_id ) ) { |
|
277 | + if ($invoice_id > 0 && $invoice = wpinv_get_invoice($invoice_id)) { |
|
278 | 278 | $chosen = $invoice->get_gateway(); |
279 | 279 | } |
280 | 280 | |
281 | - $chosen = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen; |
|
281 | + $chosen = isset($_REQUEST['payment-mode']) ? sanitize_text_field($_REQUEST['payment-mode']) : $chosen; |
|
282 | 282 | |
283 | - if ( false !== $chosen ) { |
|
284 | - $chosen = preg_replace( '/[^a-zA-Z0-9-_]+/', '', $chosen ); |
|
283 | + if (false !== $chosen) { |
|
284 | + $chosen = preg_replace('/[^a-zA-Z0-9-_]+/', '', $chosen); |
|
285 | 285 | } |
286 | 286 | |
287 | - if ( ! empty( $chosen ) ) { |
|
288 | - $enabled_gateway = urldecode( $chosen ); |
|
289 | - } elseif ( ! empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) { |
|
287 | + if (!empty($chosen)) { |
|
288 | + $enabled_gateway = urldecode($chosen); |
|
289 | + } elseif (!empty($invoice) && (float) $invoice->get_subtotal() <= 0) { |
|
290 | 290 | $enabled_gateway = 'manual'; |
291 | 291 | } else { |
292 | 292 | $enabled_gateway = wpinv_get_default_gateway(); |
293 | 293 | } |
294 | 294 | |
295 | - if ( ! wpinv_is_gateway_active( $enabled_gateway ) && ! empty( $gateways ) ) { |
|
296 | - if ( wpinv_is_gateway_active( wpinv_get_default_gateway() ) ) { |
|
295 | + if (!wpinv_is_gateway_active($enabled_gateway) && !empty($gateways)) { |
|
296 | + if (wpinv_is_gateway_active(wpinv_get_default_gateway())) { |
|
297 | 297 | $enabled_gateway = wpinv_get_default_gateway(); |
298 | 298 | } else { |
299 | 299 | $enabled_gateway = $gateways[0]; |
300 | 300 | } |
301 | 301 | } |
302 | 302 | |
303 | - return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway ); |
|
303 | + return apply_filters('wpinv_chosen_gateway', $enabled_gateway); |
|
304 | 304 | } |
305 | 305 | |
306 | -function wpinv_record_gateway_error( $title = '', $message = '' ) { |
|
307 | - return wpinv_error_log( $message, $title ); |
|
306 | +function wpinv_record_gateway_error($title = '', $message = '') { |
|
307 | + return wpinv_error_log($message, $title); |
|
308 | 308 | } |
309 | 309 | |
310 | -function wpinv_count_sales_by_gateway( $gateway_id = 'paypal', $status = 'publish' ) { |
|
310 | +function wpinv_count_sales_by_gateway($gateway_id = 'paypal', $status = 'publish') { |
|
311 | 311 | $ret = 0; |
312 | 312 | $args = array( |
313 | 313 | 'meta_key' => '_wpinv_gateway', |
@@ -318,9 +318,9 @@ discard block |
||
318 | 318 | 'fields' => 'ids', |
319 | 319 | ); |
320 | 320 | |
321 | - $payments = new WP_Query( $args ); |
|
321 | + $payments = new WP_Query($args); |
|
322 | 322 | |
323 | - if ( $payments ) { |
|
323 | + if ($payments) { |
|
324 | 324 | $ret = $payments->post_count; |
325 | 325 | } |
326 | 326 | return $ret; |
@@ -329,11 +329,11 @@ discard block |
||
329 | 329 | /** |
330 | 330 | * Displays the ipn url field. |
331 | 331 | */ |
332 | -function wpinv_ipn_url_callback( $args ) { |
|
333 | - $sanitize_id = esc_attr( wpinv_sanitize_key( $args['id'] ) ); |
|
332 | +function wpinv_ipn_url_callback($args) { |
|
333 | + $sanitize_id = esc_attr(wpinv_sanitize_key($args['id'])); |
|
334 | 334 | |
335 | - echo '<input class="regular-text" type="text" ' . ( $args['readonly'] ? ' readonly' : '' ) . ' value="' . esc_attr( $args['std'] ) . '" name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" onClick="this.select()">'; |
|
336 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']">' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
335 | + echo '<input class="regular-text" type="text" ' . ($args['readonly'] ? ' readonly' : '') . ' value="' . esc_attr($args['std']) . '" name="wpinv_settings[' . esc_attr($sanitize_id) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" onClick="this.select()">'; |
|
336 | + echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']">' . wp_kses_post($args['desc']) . '</label>'; |
|
337 | 337 | |
338 | 338 | } |
339 | 339 | |
@@ -344,10 +344,10 @@ discard block |
||
344 | 344 | * |
345 | 345 | * @return bool |
346 | 346 | */ |
347 | -function wpinv_is_test_mode( $gateway = '' ) { |
|
348 | - $sandbox = empty( $gateway ) ? false : wpinv_get_option( "{$gateway}_sandbox", true ); |
|
349 | - $supports = getpaid_payment_gateway_supports( $gateway, 'sandbox' ); |
|
350 | - return apply_filters( 'wpinv_is_test_mode', $sandbox && $supports, $gateway ); |
|
347 | +function wpinv_is_test_mode($gateway = '') { |
|
348 | + $sandbox = empty($gateway) ? false : wpinv_get_option("{$gateway}_sandbox", true); |
|
349 | + $supports = getpaid_payment_gateway_supports($gateway, 'sandbox'); |
|
350 | + return apply_filters('wpinv_is_test_mode', $sandbox && $supports, $gateway); |
|
351 | 351 | } |
352 | 352 | |
353 | 353 | /** |
@@ -358,7 +358,7 @@ discard block |
||
358 | 358 | * |
359 | 359 | * @return string |
360 | 360 | */ |
361 | -function wpinv_get_ipn_url( $gateway = false, $args = array() ) { |
|
361 | +function wpinv_get_ipn_url($gateway = false, $args = array()) { |
|
362 | 362 | $args = wp_parse_args( |
363 | 363 | array( |
364 | 364 | 'wpi-listener' => 'IPN', |
@@ -367,7 +367,7 @@ discard block |
||
367 | 367 | $args |
368 | 368 | ); |
369 | 369 | |
370 | - return apply_filters( 'wpinv_ipn_url', add_query_arg( $args, home_url( 'index.php' ) ), $gateway, $args ); |
|
370 | + return apply_filters('wpinv_ipn_url', add_query_arg($args, home_url('index.php')), $gateway, $args); |
|
371 | 371 | |
372 | 372 | } |
373 | 373 | |
@@ -378,34 +378,34 @@ discard block |
||
378 | 378 | * |
379 | 379 | * @return string |
380 | 380 | */ |
381 | -function getpaid_get_non_query_string_ipn_url( $gateway ) { |
|
382 | - $gateway = wpinv_sanitize_key( $gateway ); |
|
383 | - return home_url( "getpaid-ipn/$gateway" ); |
|
381 | +function getpaid_get_non_query_string_ipn_url($gateway) { |
|
382 | + $gateway = wpinv_sanitize_key($gateway); |
|
383 | + return home_url("getpaid-ipn/$gateway"); |
|
384 | 384 | } |
385 | 385 | |
386 | 386 | |
387 | 387 | /** |
388 | 388 | * Retrieves request data with slashes removed slashes. |
389 | 389 | */ |
390 | -function wpinv_get_post_data( $method = 'request' ) { |
|
390 | +function wpinv_get_post_data($method = 'request') { |
|
391 | 391 | |
392 | - if ( $method == 'post' ) { |
|
393 | - return wp_kses_post_deep( wp_unslash( $_POST ) ); |
|
392 | + if ($method == 'post') { |
|
393 | + return wp_kses_post_deep(wp_unslash($_POST)); |
|
394 | 394 | } |
395 | 395 | |
396 | - if ( $method == 'get' ) { |
|
397 | - return wp_kses_post_deep( wp_unslash( $_GET ) ); |
|
396 | + if ($method == 'get') { |
|
397 | + return wp_kses_post_deep(wp_unslash($_GET)); |
|
398 | 398 | } |
399 | 399 | |
400 | - return wp_kses_post_deep( wp_unslash( $_REQUEST ) ); |
|
400 | + return wp_kses_post_deep(wp_unslash($_REQUEST)); |
|
401 | 401 | |
402 | 402 | } |
403 | 403 | |
404 | 404 | /** |
405 | 405 | * Checks if a given gateway supports subscription payments. |
406 | 406 | */ |
407 | -function wpinv_gateway_support_subscription( $gateway ) { |
|
408 | - return getpaid_payment_gateway_supports( $gateway, 'subscription' ); |
|
407 | +function wpinv_gateway_support_subscription($gateway) { |
|
408 | + return getpaid_payment_gateway_supports($gateway, 'subscription'); |
|
409 | 409 | } |
410 | 410 | |
411 | 411 | /** |
@@ -414,18 +414,18 @@ discard block |
||
414 | 414 | * @param array $gateways an array of gateways. |
415 | 415 | * @param GetPaid_Payment_Form $form payment form. |
416 | 416 | */ |
417 | -function wpinv_payment_gateways_on_cart( $gateways, $form ) { |
|
417 | +function wpinv_payment_gateways_on_cart($gateways, $form) { |
|
418 | 418 | |
419 | - if ( $form->is_recurring() ) { |
|
419 | + if ($form->is_recurring()) { |
|
420 | 420 | |
421 | - foreach ( array_keys( $gateways ) as $gateway ) { |
|
421 | + foreach (array_keys($gateways) as $gateway) { |
|
422 | 422 | |
423 | - if ( ! wpinv_gateway_support_subscription( $gateway ) ) { |
|
424 | - unset( $gateways[ $gateway ] ); |
|
423 | + if (!wpinv_gateway_support_subscription($gateway)) { |
|
424 | + unset($gateways[$gateway]); |
|
425 | 425 | } |
426 | 426 | } |
427 | 427 | } |
428 | 428 | |
429 | 429 | return $gateways; |
430 | 430 | } |
431 | -add_filter( 'getpaid_payment_form_gateways', 'wpinv_payment_gateways_on_cart', 10, 2 ); |
|
431 | +add_filter('getpaid_payment_form_gateways', 'wpinv_payment_gateways_on_cart', 10, 2); |
@@ -12,256 +12,256 @@ |
||
12 | 12 | defined( 'ABSPATH' ) || exit; |
13 | 13 | |
14 | 14 | return array( |
15 | - 'US' => __( 'United States', 'invoicing' ), |
|
16 | - 'CA' => __( 'Canada', 'invoicing' ), |
|
17 | - 'GB' => __( 'United Kingdom', 'invoicing' ), |
|
18 | - 'AF' => __( 'Afghanistan', 'invoicing' ), |
|
19 | - 'AX' => __( 'Aland Islands', 'invoicing' ), |
|
20 | - 'AL' => __( 'Albania', 'invoicing' ), |
|
21 | - 'DZ' => __( 'Algeria', 'invoicing' ), |
|
22 | - 'AS' => __( 'American Samoa', 'invoicing' ), |
|
23 | - 'AD' => __( 'Andorra', 'invoicing' ), |
|
24 | - 'AO' => __( 'Angola', 'invoicing' ), |
|
25 | - 'AI' => __( 'Anguilla', 'invoicing' ), |
|
26 | - 'AQ' => __( 'Antarctica', 'invoicing' ), |
|
27 | - 'AG' => __( 'Antigua and Barbuda', 'invoicing' ), |
|
28 | - 'AR' => __( 'Argentina', 'invoicing' ), |
|
29 | - 'AM' => __( 'Armenia', 'invoicing' ), |
|
30 | - 'AW' => __( 'Aruba', 'invoicing' ), |
|
31 | - 'AU' => __( 'Australia', 'invoicing' ), |
|
32 | - 'AT' => __( 'Austria', 'invoicing' ), |
|
33 | - 'AZ' => __( 'Azerbaijan', 'invoicing' ), |
|
34 | - 'BS' => __( 'Bahamas', 'invoicing' ), |
|
35 | - 'BH' => __( 'Bahrain', 'invoicing' ), |
|
36 | - 'BD' => __( 'Bangladesh', 'invoicing' ), |
|
37 | - 'BB' => __( 'Barbados', 'invoicing' ), |
|
38 | - 'BY' => __( 'Belarus', 'invoicing' ), |
|
39 | - 'BE' => __( 'Belgium', 'invoicing' ), |
|
40 | - 'BZ' => __( 'Belize', 'invoicing' ), |
|
41 | - 'BJ' => __( 'Benin', 'invoicing' ), |
|
42 | - 'BM' => __( 'Bermuda', 'invoicing' ), |
|
43 | - 'BT' => __( 'Bhutan', 'invoicing' ), |
|
44 | - 'BO' => __( 'Bolivia', 'invoicing' ), |
|
45 | - 'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'invoicing' ), |
|
46 | - 'BA' => __( 'Bosnia and Herzegovina', 'invoicing' ), |
|
47 | - 'BW' => __( 'Botswana', 'invoicing' ), |
|
48 | - 'BV' => __( 'Bouvet Island', 'invoicing' ), |
|
49 | - 'BR' => __( 'Brazil', 'invoicing' ), |
|
50 | - 'IO' => __( 'British Indian Ocean Territory', 'invoicing' ), |
|
51 | - 'BN' => __( 'Brunei Darrussalam', 'invoicing' ), |
|
52 | - 'BG' => __( 'Bulgaria', 'invoicing' ), |
|
53 | - 'BF' => __( 'Burkina Faso', 'invoicing' ), |
|
54 | - 'BI' => __( 'Burundi', 'invoicing' ), |
|
55 | - 'KH' => __( 'Cambodia', 'invoicing' ), |
|
56 | - 'CM' => __( 'Cameroon', 'invoicing' ), |
|
57 | - 'CV' => __( 'Cape Verde', 'invoicing' ), |
|
58 | - 'KY' => __( 'Cayman Islands', 'invoicing' ), |
|
59 | - 'CF' => __( 'Central African Republic', 'invoicing' ), |
|
60 | - 'TD' => __( 'Chad', 'invoicing' ), |
|
61 | - 'CL' => __( 'Chile', 'invoicing' ), |
|
62 | - 'CN' => __( 'China', 'invoicing' ), |
|
63 | - 'CX' => __( 'Christmas Island', 'invoicing' ), |
|
64 | - 'CC' => __( 'Cocos Islands', 'invoicing' ), |
|
65 | - 'CO' => __( 'Colombia', 'invoicing' ), |
|
66 | - 'KM' => __( 'Comoros', 'invoicing' ), |
|
67 | - 'CD' => __( 'Congo, Democratic People\'s Republic', 'invoicing' ), |
|
68 | - 'CG' => __( 'Congo, Republic of', 'invoicing' ), |
|
69 | - 'CK' => __( 'Cook Islands', 'invoicing' ), |
|
70 | - 'CR' => __( 'Costa Rica', 'invoicing' ), |
|
71 | - 'CI' => __( 'Cote d\'Ivoire', 'invoicing' ), |
|
72 | - 'HR' => __( 'Croatia/Hrvatska', 'invoicing' ), |
|
73 | - 'CU' => __( 'Cuba', 'invoicing' ), |
|
74 | - 'CW' => __( 'CuraÇao', 'invoicing' ), |
|
75 | - 'CY' => __( 'Cyprus', 'invoicing' ), |
|
76 | - 'CZ' => __( 'Czech Republic', 'invoicing' ), |
|
77 | - 'DK' => __( 'Denmark', 'invoicing' ), |
|
78 | - 'DJ' => __( 'Djibouti', 'invoicing' ), |
|
79 | - 'DM' => __( 'Dominica', 'invoicing' ), |
|
80 | - 'DO' => __( 'Dominican Republic', 'invoicing' ), |
|
81 | - 'TP' => __( 'East Timor', 'invoicing' ), |
|
82 | - 'EC' => __( 'Ecuador', 'invoicing' ), |
|
83 | - 'EG' => __( 'Egypt', 'invoicing' ), |
|
84 | - 'GQ' => __( 'Equatorial Guinea', 'invoicing' ), |
|
85 | - 'SV' => __( 'El Salvador', 'invoicing' ), |
|
86 | - 'ER' => __( 'Eritrea', 'invoicing' ), |
|
87 | - 'EE' => __( 'Estonia', 'invoicing' ), |
|
88 | - 'ET' => __( 'Ethiopia', 'invoicing' ), |
|
89 | - 'FK' => __( 'Falkland Islands', 'invoicing' ), |
|
90 | - 'FO' => __( 'Faroe Islands', 'invoicing' ), |
|
91 | - 'FJ' => __( 'Fiji', 'invoicing' ), |
|
92 | - 'FI' => __( 'Finland', 'invoicing' ), |
|
93 | - 'FR' => __( 'France', 'invoicing' ), |
|
94 | - 'GF' => __( 'French Guiana', 'invoicing' ), |
|
95 | - 'PF' => __( 'French Polynesia', 'invoicing' ), |
|
96 | - 'TF' => __( 'French Southern Territories', 'invoicing' ), |
|
97 | - 'GA' => __( 'Gabon', 'invoicing' ), |
|
98 | - 'GM' => __( 'Gambia', 'invoicing' ), |
|
99 | - 'GE' => __( 'Georgia', 'invoicing' ), |
|
100 | - 'DE' => __( 'Germany', 'invoicing' ), |
|
101 | - 'GR' => __( 'Greece', 'invoicing' ), |
|
102 | - 'GH' => __( 'Ghana', 'invoicing' ), |
|
103 | - 'GI' => __( 'Gibraltar', 'invoicing' ), |
|
104 | - 'GL' => __( 'Greenland', 'invoicing' ), |
|
105 | - 'GD' => __( 'Grenada', 'invoicing' ), |
|
106 | - 'GP' => __( 'Guadeloupe', 'invoicing' ), |
|
107 | - 'GU' => __( 'Guam', 'invoicing' ), |
|
108 | - 'GT' => __( 'Guatemala', 'invoicing' ), |
|
109 | - 'GG' => __( 'Guernsey', 'invoicing' ), |
|
110 | - 'GN' => __( 'Guinea', 'invoicing' ), |
|
111 | - 'GW' => __( 'Guinea-Bissau', 'invoicing' ), |
|
112 | - 'GY' => __( 'Guyana', 'invoicing' ), |
|
113 | - 'HT' => __( 'Haiti', 'invoicing' ), |
|
114 | - 'HM' => __( 'Heard and McDonald Islands', 'invoicing' ), |
|
115 | - 'VA' => __( 'Holy See (City Vatican State)', 'invoicing' ), |
|
116 | - 'HN' => __( 'Honduras', 'invoicing' ), |
|
117 | - 'HK' => __( 'Hong Kong', 'invoicing' ), |
|
118 | - 'HU' => __( 'Hungary', 'invoicing' ), |
|
119 | - 'IS' => __( 'Iceland', 'invoicing' ), |
|
120 | - 'IN' => __( 'India', 'invoicing' ), |
|
121 | - 'ID' => __( 'Indonesia', 'invoicing' ), |
|
122 | - 'IR' => __( 'Iran', 'invoicing' ), |
|
123 | - 'IQ' => __( 'Iraq', 'invoicing' ), |
|
124 | - 'IE' => __( 'Ireland', 'invoicing' ), |
|
125 | - 'IM' => __( 'Isle of Man', 'invoicing' ), |
|
126 | - 'IL' => __( 'Israel', 'invoicing' ), |
|
127 | - 'IT' => __( 'Italy', 'invoicing' ), |
|
128 | - 'JM' => __( 'Jamaica', 'invoicing' ), |
|
129 | - 'JP' => __( 'Japan', 'invoicing' ), |
|
130 | - 'JE' => __( 'Jersey', 'invoicing' ), |
|
131 | - 'JO' => __( 'Jordan', 'invoicing' ), |
|
132 | - 'KZ' => __( 'Kazakhstan', 'invoicing' ), |
|
133 | - 'KE' => __( 'Kenya', 'invoicing' ), |
|
134 | - 'KI' => __( 'Kiribati', 'invoicing' ), |
|
135 | - 'KW' => __( 'Kuwait', 'invoicing' ), |
|
136 | - 'KG' => __( 'Kyrgyzstan', 'invoicing' ), |
|
137 | - 'LA' => __( 'Lao People\'s Democratic Republic', 'invoicing' ), |
|
138 | - 'LV' => __( 'Latvia', 'invoicing' ), |
|
139 | - 'LB' => __( 'Lebanon', 'invoicing' ), |
|
140 | - 'LS' => __( 'Lesotho', 'invoicing' ), |
|
141 | - 'LR' => __( 'Liberia', 'invoicing' ), |
|
142 | - 'LY' => __( 'Libyan Arab Jamahiriya', 'invoicing' ), |
|
143 | - 'LI' => __( 'Liechtenstein', 'invoicing' ), |
|
144 | - 'LT' => __( 'Lithuania', 'invoicing' ), |
|
145 | - 'LU' => __( 'Luxembourg', 'invoicing' ), |
|
146 | - 'MO' => __( 'Macau', 'invoicing' ), |
|
147 | - 'MK' => __( 'Macedonia', 'invoicing' ), |
|
148 | - 'MG' => __( 'Madagascar', 'invoicing' ), |
|
149 | - 'MW' => __( 'Malawi', 'invoicing' ), |
|
150 | - 'MY' => __( 'Malaysia', 'invoicing' ), |
|
151 | - 'MV' => __( 'Maldives', 'invoicing' ), |
|
152 | - 'ML' => __( 'Mali', 'invoicing' ), |
|
153 | - 'MT' => __( 'Malta', 'invoicing' ), |
|
154 | - 'MH' => __( 'Marshall Islands', 'invoicing' ), |
|
155 | - 'MQ' => __( 'Martinique', 'invoicing' ), |
|
156 | - 'MR' => __( 'Mauritania', 'invoicing' ), |
|
157 | - 'MU' => __( 'Mauritius', 'invoicing' ), |
|
158 | - 'YT' => __( 'Mayotte', 'invoicing' ), |
|
159 | - 'MX' => __( 'Mexico', 'invoicing' ), |
|
160 | - 'FM' => __( 'Micronesia', 'invoicing' ), |
|
161 | - 'MD' => __( 'Moldova, Republic of', 'invoicing' ), |
|
162 | - 'MC' => __( 'Monaco', 'invoicing' ), |
|
163 | - 'MN' => __( 'Mongolia', 'invoicing' ), |
|
164 | - 'ME' => __( 'Montenegro', 'invoicing' ), |
|
165 | - 'MS' => __( 'Montserrat', 'invoicing' ), |
|
166 | - 'MA' => __( 'Morocco', 'invoicing' ), |
|
167 | - 'MZ' => __( 'Mozambique', 'invoicing' ), |
|
168 | - 'MM' => __( 'Myanmar', 'invoicing' ), |
|
169 | - 'NA' => __( 'Namibia', 'invoicing' ), |
|
170 | - 'NR' => __( 'Nauru', 'invoicing' ), |
|
171 | - 'NP' => __( 'Nepal', 'invoicing' ), |
|
172 | - 'NL' => __( 'Netherlands', 'invoicing' ), |
|
173 | - 'AN' => __( 'Netherlands Antilles', 'invoicing' ), |
|
174 | - 'NC' => __( 'New Caledonia', 'invoicing' ), |
|
175 | - 'NZ' => __( 'New Zealand', 'invoicing' ), |
|
176 | - 'NI' => __( 'Nicaragua', 'invoicing' ), |
|
177 | - 'NE' => __( 'Niger', 'invoicing' ), |
|
178 | - 'NG' => __( 'Nigeria', 'invoicing' ), |
|
179 | - 'NU' => __( 'Niue', 'invoicing' ), |
|
180 | - 'NF' => __( 'Norfolk Island', 'invoicing' ), |
|
181 | - 'KP' => __( 'North Korea', 'invoicing' ), |
|
182 | - 'MP' => __( 'Northern Mariana Islands', 'invoicing' ), |
|
183 | - 'NO' => __( 'Norway', 'invoicing' ), |
|
184 | - 'OM' => __( 'Oman', 'invoicing' ), |
|
185 | - 'PK' => __( 'Pakistan', 'invoicing' ), |
|
186 | - 'PW' => __( 'Palau', 'invoicing' ), |
|
187 | - 'PS' => __( 'Palestinian Territories', 'invoicing' ), |
|
188 | - 'PA' => __( 'Panama', 'invoicing' ), |
|
189 | - 'PG' => __( 'Papua New Guinea', 'invoicing' ), |
|
190 | - 'PY' => __( 'Paraguay', 'invoicing' ), |
|
191 | - 'PE' => __( 'Peru', 'invoicing' ), |
|
192 | - 'PH' => __( 'Philippines', 'invoicing' ), |
|
193 | - 'PN' => __( 'Pitcairn Island', 'invoicing' ), |
|
194 | - 'PL' => __( 'Poland', 'invoicing' ), |
|
195 | - 'PT' => __( 'Portugal', 'invoicing' ), |
|
196 | - 'PR' => __( 'Puerto Rico', 'invoicing' ), |
|
197 | - 'QA' => __( 'Qatar', 'invoicing' ), |
|
198 | - 'XK' => __( 'Republic of Kosovo', 'invoicing' ), |
|
199 | - 'RE' => __( 'Reunion Island', 'invoicing' ), |
|
200 | - 'RO' => __( 'Romania', 'invoicing' ), |
|
201 | - 'RU' => __( 'Russian Federation', 'invoicing' ), |
|
202 | - 'RW' => __( 'Rwanda', 'invoicing' ), |
|
203 | - 'BL' => __( 'Saint Barthélemy', 'invoicing' ), |
|
204 | - 'SH' => __( 'Saint Helena', 'invoicing' ), |
|
205 | - 'KN' => __( 'Saint Kitts and Nevis', 'invoicing' ), |
|
206 | - 'LC' => __( 'Saint Lucia', 'invoicing' ), |
|
207 | - 'MF' => __( 'Saint Martin (French)', 'invoicing' ), |
|
208 | - 'SX' => __( 'Saint Martin (Dutch)', 'invoicing' ), |
|
209 | - 'PM' => __( 'Saint Pierre and Miquelon', 'invoicing' ), |
|
210 | - 'VC' => __( 'Saint Vincent and the Grenadines', 'invoicing' ), |
|
211 | - 'SM' => __( 'San Marino', 'invoicing' ), |
|
212 | - 'ST' => __( 'São Tomé and Príncipe', 'invoicing' ), |
|
213 | - 'SA' => __( 'Saudi Arabia', 'invoicing' ), |
|
214 | - 'SN' => __( 'Senegal', 'invoicing' ), |
|
215 | - 'RS' => __( 'Serbia', 'invoicing' ), |
|
216 | - 'SC' => __( 'Seychelles', 'invoicing' ), |
|
217 | - 'SL' => __( 'Sierra Leone', 'invoicing' ), |
|
218 | - 'SG' => __( 'Singapore', 'invoicing' ), |
|
219 | - 'SK' => __( 'Slovak Republic', 'invoicing' ), |
|
220 | - 'SI' => __( 'Slovenia', 'invoicing' ), |
|
221 | - 'SB' => __( 'Solomon Islands', 'invoicing' ), |
|
222 | - 'SO' => __( 'Somalia', 'invoicing' ), |
|
223 | - 'ZA' => __( 'South Africa', 'invoicing' ), |
|
224 | - 'GS' => __( 'South Georgia', 'invoicing' ), |
|
225 | - 'KR' => __( 'South Korea', 'invoicing' ), |
|
226 | - 'SS' => __( 'South Sudan', 'invoicing' ), |
|
227 | - 'ES' => __( 'Spain', 'invoicing' ), |
|
228 | - 'LK' => __( 'Sri Lanka', 'invoicing' ), |
|
229 | - 'SD' => __( 'Sudan', 'invoicing' ), |
|
230 | - 'SR' => __( 'Suriname', 'invoicing' ), |
|
231 | - 'SJ' => __( 'Svalbard and Jan Mayen Islands', 'invoicing' ), |
|
232 | - 'SZ' => __( 'Swaziland', 'invoicing' ), |
|
233 | - 'SE' => __( 'Sweden', 'invoicing' ), |
|
234 | - 'CH' => __( 'Switzerland', 'invoicing' ), |
|
235 | - 'SY' => __( 'Syrian Arab Republic', 'invoicing' ), |
|
236 | - 'TW' => __( 'Taiwan', 'invoicing' ), |
|
237 | - 'TJ' => __( 'Tajikistan', 'invoicing' ), |
|
238 | - 'TZ' => __( 'Tanzania', 'invoicing' ), |
|
239 | - 'TH' => __( 'Thailand', 'invoicing' ), |
|
240 | - 'TL' => __( 'Timor-Leste', 'invoicing' ), |
|
241 | - 'TG' => __( 'Togo', 'invoicing' ), |
|
242 | - 'TK' => __( 'Tokelau', 'invoicing' ), |
|
243 | - 'TO' => __( 'Tonga', 'invoicing' ), |
|
244 | - 'TT' => __( 'Trinidad and Tobago', 'invoicing' ), |
|
245 | - 'TN' => __( 'Tunisia', 'invoicing' ), |
|
246 | - 'TR' => __( 'Turkey', 'invoicing' ), |
|
247 | - 'TM' => __( 'Turkmenistan', 'invoicing' ), |
|
248 | - 'TC' => __( 'Turks and Caicos Islands', 'invoicing' ), |
|
249 | - 'TV' => __( 'Tuvalu', 'invoicing' ), |
|
250 | - 'UG' => __( 'Uganda', 'invoicing' ), |
|
251 | - 'UA' => __( 'Ukraine', 'invoicing' ), |
|
252 | - 'AE' => __( 'United Arab Emirates', 'invoicing' ), |
|
253 | - 'UY' => __( 'Uruguay', 'invoicing' ), |
|
254 | - 'UM' => __( 'US Minor Outlying Islands', 'invoicing' ), |
|
255 | - 'UZ' => __( 'Uzbekistan', 'invoicing' ), |
|
256 | - 'VU' => __( 'Vanuatu', 'invoicing' ), |
|
257 | - 'VE' => __( 'Venezuela', 'invoicing' ), |
|
258 | - 'VN' => __( 'Vietnam', 'invoicing' ), |
|
259 | - 'VG' => __( 'Virgin Islands (British)', 'invoicing' ), |
|
260 | - 'VI' => __( 'Virgin Islands (USA)', 'invoicing' ), |
|
261 | - 'WF' => __( 'Wallis and Futuna Islands', 'invoicing' ), |
|
262 | - 'EH' => __( 'Western Sahara', 'invoicing' ), |
|
263 | - 'WS' => __( 'Western Samoa', 'invoicing' ), |
|
264 | - 'YE' => __( 'Yemen', 'invoicing' ), |
|
265 | - 'ZM' => __( 'Zambia', 'invoicing' ), |
|
266 | - 'ZW' => __( 'Zimbabwe', 'invoicing' ), |
|
15 | + 'US' => __( 'United States', 'invoicing' ), |
|
16 | + 'CA' => __( 'Canada', 'invoicing' ), |
|
17 | + 'GB' => __( 'United Kingdom', 'invoicing' ), |
|
18 | + 'AF' => __( 'Afghanistan', 'invoicing' ), |
|
19 | + 'AX' => __( 'Aland Islands', 'invoicing' ), |
|
20 | + 'AL' => __( 'Albania', 'invoicing' ), |
|
21 | + 'DZ' => __( 'Algeria', 'invoicing' ), |
|
22 | + 'AS' => __( 'American Samoa', 'invoicing' ), |
|
23 | + 'AD' => __( 'Andorra', 'invoicing' ), |
|
24 | + 'AO' => __( 'Angola', 'invoicing' ), |
|
25 | + 'AI' => __( 'Anguilla', 'invoicing' ), |
|
26 | + 'AQ' => __( 'Antarctica', 'invoicing' ), |
|
27 | + 'AG' => __( 'Antigua and Barbuda', 'invoicing' ), |
|
28 | + 'AR' => __( 'Argentina', 'invoicing' ), |
|
29 | + 'AM' => __( 'Armenia', 'invoicing' ), |
|
30 | + 'AW' => __( 'Aruba', 'invoicing' ), |
|
31 | + 'AU' => __( 'Australia', 'invoicing' ), |
|
32 | + 'AT' => __( 'Austria', 'invoicing' ), |
|
33 | + 'AZ' => __( 'Azerbaijan', 'invoicing' ), |
|
34 | + 'BS' => __( 'Bahamas', 'invoicing' ), |
|
35 | + 'BH' => __( 'Bahrain', 'invoicing' ), |
|
36 | + 'BD' => __( 'Bangladesh', 'invoicing' ), |
|
37 | + 'BB' => __( 'Barbados', 'invoicing' ), |
|
38 | + 'BY' => __( 'Belarus', 'invoicing' ), |
|
39 | + 'BE' => __( 'Belgium', 'invoicing' ), |
|
40 | + 'BZ' => __( 'Belize', 'invoicing' ), |
|
41 | + 'BJ' => __( 'Benin', 'invoicing' ), |
|
42 | + 'BM' => __( 'Bermuda', 'invoicing' ), |
|
43 | + 'BT' => __( 'Bhutan', 'invoicing' ), |
|
44 | + 'BO' => __( 'Bolivia', 'invoicing' ), |
|
45 | + 'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'invoicing' ), |
|
46 | + 'BA' => __( 'Bosnia and Herzegovina', 'invoicing' ), |
|
47 | + 'BW' => __( 'Botswana', 'invoicing' ), |
|
48 | + 'BV' => __( 'Bouvet Island', 'invoicing' ), |
|
49 | + 'BR' => __( 'Brazil', 'invoicing' ), |
|
50 | + 'IO' => __( 'British Indian Ocean Territory', 'invoicing' ), |
|
51 | + 'BN' => __( 'Brunei Darrussalam', 'invoicing' ), |
|
52 | + 'BG' => __( 'Bulgaria', 'invoicing' ), |
|
53 | + 'BF' => __( 'Burkina Faso', 'invoicing' ), |
|
54 | + 'BI' => __( 'Burundi', 'invoicing' ), |
|
55 | + 'KH' => __( 'Cambodia', 'invoicing' ), |
|
56 | + 'CM' => __( 'Cameroon', 'invoicing' ), |
|
57 | + 'CV' => __( 'Cape Verde', 'invoicing' ), |
|
58 | + 'KY' => __( 'Cayman Islands', 'invoicing' ), |
|
59 | + 'CF' => __( 'Central African Republic', 'invoicing' ), |
|
60 | + 'TD' => __( 'Chad', 'invoicing' ), |
|
61 | + 'CL' => __( 'Chile', 'invoicing' ), |
|
62 | + 'CN' => __( 'China', 'invoicing' ), |
|
63 | + 'CX' => __( 'Christmas Island', 'invoicing' ), |
|
64 | + 'CC' => __( 'Cocos Islands', 'invoicing' ), |
|
65 | + 'CO' => __( 'Colombia', 'invoicing' ), |
|
66 | + 'KM' => __( 'Comoros', 'invoicing' ), |
|
67 | + 'CD' => __( 'Congo, Democratic People\'s Republic', 'invoicing' ), |
|
68 | + 'CG' => __( 'Congo, Republic of', 'invoicing' ), |
|
69 | + 'CK' => __( 'Cook Islands', 'invoicing' ), |
|
70 | + 'CR' => __( 'Costa Rica', 'invoicing' ), |
|
71 | + 'CI' => __( 'Cote d\'Ivoire', 'invoicing' ), |
|
72 | + 'HR' => __( 'Croatia/Hrvatska', 'invoicing' ), |
|
73 | + 'CU' => __( 'Cuba', 'invoicing' ), |
|
74 | + 'CW' => __( 'CuraÇao', 'invoicing' ), |
|
75 | + 'CY' => __( 'Cyprus', 'invoicing' ), |
|
76 | + 'CZ' => __( 'Czech Republic', 'invoicing' ), |
|
77 | + 'DK' => __( 'Denmark', 'invoicing' ), |
|
78 | + 'DJ' => __( 'Djibouti', 'invoicing' ), |
|
79 | + 'DM' => __( 'Dominica', 'invoicing' ), |
|
80 | + 'DO' => __( 'Dominican Republic', 'invoicing' ), |
|
81 | + 'TP' => __( 'East Timor', 'invoicing' ), |
|
82 | + 'EC' => __( 'Ecuador', 'invoicing' ), |
|
83 | + 'EG' => __( 'Egypt', 'invoicing' ), |
|
84 | + 'GQ' => __( 'Equatorial Guinea', 'invoicing' ), |
|
85 | + 'SV' => __( 'El Salvador', 'invoicing' ), |
|
86 | + 'ER' => __( 'Eritrea', 'invoicing' ), |
|
87 | + 'EE' => __( 'Estonia', 'invoicing' ), |
|
88 | + 'ET' => __( 'Ethiopia', 'invoicing' ), |
|
89 | + 'FK' => __( 'Falkland Islands', 'invoicing' ), |
|
90 | + 'FO' => __( 'Faroe Islands', 'invoicing' ), |
|
91 | + 'FJ' => __( 'Fiji', 'invoicing' ), |
|
92 | + 'FI' => __( 'Finland', 'invoicing' ), |
|
93 | + 'FR' => __( 'France', 'invoicing' ), |
|
94 | + 'GF' => __( 'French Guiana', 'invoicing' ), |
|
95 | + 'PF' => __( 'French Polynesia', 'invoicing' ), |
|
96 | + 'TF' => __( 'French Southern Territories', 'invoicing' ), |
|
97 | + 'GA' => __( 'Gabon', 'invoicing' ), |
|
98 | + 'GM' => __( 'Gambia', 'invoicing' ), |
|
99 | + 'GE' => __( 'Georgia', 'invoicing' ), |
|
100 | + 'DE' => __( 'Germany', 'invoicing' ), |
|
101 | + 'GR' => __( 'Greece', 'invoicing' ), |
|
102 | + 'GH' => __( 'Ghana', 'invoicing' ), |
|
103 | + 'GI' => __( 'Gibraltar', 'invoicing' ), |
|
104 | + 'GL' => __( 'Greenland', 'invoicing' ), |
|
105 | + 'GD' => __( 'Grenada', 'invoicing' ), |
|
106 | + 'GP' => __( 'Guadeloupe', 'invoicing' ), |
|
107 | + 'GU' => __( 'Guam', 'invoicing' ), |
|
108 | + 'GT' => __( 'Guatemala', 'invoicing' ), |
|
109 | + 'GG' => __( 'Guernsey', 'invoicing' ), |
|
110 | + 'GN' => __( 'Guinea', 'invoicing' ), |
|
111 | + 'GW' => __( 'Guinea-Bissau', 'invoicing' ), |
|
112 | + 'GY' => __( 'Guyana', 'invoicing' ), |
|
113 | + 'HT' => __( 'Haiti', 'invoicing' ), |
|
114 | + 'HM' => __( 'Heard and McDonald Islands', 'invoicing' ), |
|
115 | + 'VA' => __( 'Holy See (City Vatican State)', 'invoicing' ), |
|
116 | + 'HN' => __( 'Honduras', 'invoicing' ), |
|
117 | + 'HK' => __( 'Hong Kong', 'invoicing' ), |
|
118 | + 'HU' => __( 'Hungary', 'invoicing' ), |
|
119 | + 'IS' => __( 'Iceland', 'invoicing' ), |
|
120 | + 'IN' => __( 'India', 'invoicing' ), |
|
121 | + 'ID' => __( 'Indonesia', 'invoicing' ), |
|
122 | + 'IR' => __( 'Iran', 'invoicing' ), |
|
123 | + 'IQ' => __( 'Iraq', 'invoicing' ), |
|
124 | + 'IE' => __( 'Ireland', 'invoicing' ), |
|
125 | + 'IM' => __( 'Isle of Man', 'invoicing' ), |
|
126 | + 'IL' => __( 'Israel', 'invoicing' ), |
|
127 | + 'IT' => __( 'Italy', 'invoicing' ), |
|
128 | + 'JM' => __( 'Jamaica', 'invoicing' ), |
|
129 | + 'JP' => __( 'Japan', 'invoicing' ), |
|
130 | + 'JE' => __( 'Jersey', 'invoicing' ), |
|
131 | + 'JO' => __( 'Jordan', 'invoicing' ), |
|
132 | + 'KZ' => __( 'Kazakhstan', 'invoicing' ), |
|
133 | + 'KE' => __( 'Kenya', 'invoicing' ), |
|
134 | + 'KI' => __( 'Kiribati', 'invoicing' ), |
|
135 | + 'KW' => __( 'Kuwait', 'invoicing' ), |
|
136 | + 'KG' => __( 'Kyrgyzstan', 'invoicing' ), |
|
137 | + 'LA' => __( 'Lao People\'s Democratic Republic', 'invoicing' ), |
|
138 | + 'LV' => __( 'Latvia', 'invoicing' ), |
|
139 | + 'LB' => __( 'Lebanon', 'invoicing' ), |
|
140 | + 'LS' => __( 'Lesotho', 'invoicing' ), |
|
141 | + 'LR' => __( 'Liberia', 'invoicing' ), |
|
142 | + 'LY' => __( 'Libyan Arab Jamahiriya', 'invoicing' ), |
|
143 | + 'LI' => __( 'Liechtenstein', 'invoicing' ), |
|
144 | + 'LT' => __( 'Lithuania', 'invoicing' ), |
|
145 | + 'LU' => __( 'Luxembourg', 'invoicing' ), |
|
146 | + 'MO' => __( 'Macau', 'invoicing' ), |
|
147 | + 'MK' => __( 'Macedonia', 'invoicing' ), |
|
148 | + 'MG' => __( 'Madagascar', 'invoicing' ), |
|
149 | + 'MW' => __( 'Malawi', 'invoicing' ), |
|
150 | + 'MY' => __( 'Malaysia', 'invoicing' ), |
|
151 | + 'MV' => __( 'Maldives', 'invoicing' ), |
|
152 | + 'ML' => __( 'Mali', 'invoicing' ), |
|
153 | + 'MT' => __( 'Malta', 'invoicing' ), |
|
154 | + 'MH' => __( 'Marshall Islands', 'invoicing' ), |
|
155 | + 'MQ' => __( 'Martinique', 'invoicing' ), |
|
156 | + 'MR' => __( 'Mauritania', 'invoicing' ), |
|
157 | + 'MU' => __( 'Mauritius', 'invoicing' ), |
|
158 | + 'YT' => __( 'Mayotte', 'invoicing' ), |
|
159 | + 'MX' => __( 'Mexico', 'invoicing' ), |
|
160 | + 'FM' => __( 'Micronesia', 'invoicing' ), |
|
161 | + 'MD' => __( 'Moldova, Republic of', 'invoicing' ), |
|
162 | + 'MC' => __( 'Monaco', 'invoicing' ), |
|
163 | + 'MN' => __( 'Mongolia', 'invoicing' ), |
|
164 | + 'ME' => __( 'Montenegro', 'invoicing' ), |
|
165 | + 'MS' => __( 'Montserrat', 'invoicing' ), |
|
166 | + 'MA' => __( 'Morocco', 'invoicing' ), |
|
167 | + 'MZ' => __( 'Mozambique', 'invoicing' ), |
|
168 | + 'MM' => __( 'Myanmar', 'invoicing' ), |
|
169 | + 'NA' => __( 'Namibia', 'invoicing' ), |
|
170 | + 'NR' => __( 'Nauru', 'invoicing' ), |
|
171 | + 'NP' => __( 'Nepal', 'invoicing' ), |
|
172 | + 'NL' => __( 'Netherlands', 'invoicing' ), |
|
173 | + 'AN' => __( 'Netherlands Antilles', 'invoicing' ), |
|
174 | + 'NC' => __( 'New Caledonia', 'invoicing' ), |
|
175 | + 'NZ' => __( 'New Zealand', 'invoicing' ), |
|
176 | + 'NI' => __( 'Nicaragua', 'invoicing' ), |
|
177 | + 'NE' => __( 'Niger', 'invoicing' ), |
|
178 | + 'NG' => __( 'Nigeria', 'invoicing' ), |
|
179 | + 'NU' => __( 'Niue', 'invoicing' ), |
|
180 | + 'NF' => __( 'Norfolk Island', 'invoicing' ), |
|
181 | + 'KP' => __( 'North Korea', 'invoicing' ), |
|
182 | + 'MP' => __( 'Northern Mariana Islands', 'invoicing' ), |
|
183 | + 'NO' => __( 'Norway', 'invoicing' ), |
|
184 | + 'OM' => __( 'Oman', 'invoicing' ), |
|
185 | + 'PK' => __( 'Pakistan', 'invoicing' ), |
|
186 | + 'PW' => __( 'Palau', 'invoicing' ), |
|
187 | + 'PS' => __( 'Palestinian Territories', 'invoicing' ), |
|
188 | + 'PA' => __( 'Panama', 'invoicing' ), |
|
189 | + 'PG' => __( 'Papua New Guinea', 'invoicing' ), |
|
190 | + 'PY' => __( 'Paraguay', 'invoicing' ), |
|
191 | + 'PE' => __( 'Peru', 'invoicing' ), |
|
192 | + 'PH' => __( 'Philippines', 'invoicing' ), |
|
193 | + 'PN' => __( 'Pitcairn Island', 'invoicing' ), |
|
194 | + 'PL' => __( 'Poland', 'invoicing' ), |
|
195 | + 'PT' => __( 'Portugal', 'invoicing' ), |
|
196 | + 'PR' => __( 'Puerto Rico', 'invoicing' ), |
|
197 | + 'QA' => __( 'Qatar', 'invoicing' ), |
|
198 | + 'XK' => __( 'Republic of Kosovo', 'invoicing' ), |
|
199 | + 'RE' => __( 'Reunion Island', 'invoicing' ), |
|
200 | + 'RO' => __( 'Romania', 'invoicing' ), |
|
201 | + 'RU' => __( 'Russian Federation', 'invoicing' ), |
|
202 | + 'RW' => __( 'Rwanda', 'invoicing' ), |
|
203 | + 'BL' => __( 'Saint Barthélemy', 'invoicing' ), |
|
204 | + 'SH' => __( 'Saint Helena', 'invoicing' ), |
|
205 | + 'KN' => __( 'Saint Kitts and Nevis', 'invoicing' ), |
|
206 | + 'LC' => __( 'Saint Lucia', 'invoicing' ), |
|
207 | + 'MF' => __( 'Saint Martin (French)', 'invoicing' ), |
|
208 | + 'SX' => __( 'Saint Martin (Dutch)', 'invoicing' ), |
|
209 | + 'PM' => __( 'Saint Pierre and Miquelon', 'invoicing' ), |
|
210 | + 'VC' => __( 'Saint Vincent and the Grenadines', 'invoicing' ), |
|
211 | + 'SM' => __( 'San Marino', 'invoicing' ), |
|
212 | + 'ST' => __( 'São Tomé and Príncipe', 'invoicing' ), |
|
213 | + 'SA' => __( 'Saudi Arabia', 'invoicing' ), |
|
214 | + 'SN' => __( 'Senegal', 'invoicing' ), |
|
215 | + 'RS' => __( 'Serbia', 'invoicing' ), |
|
216 | + 'SC' => __( 'Seychelles', 'invoicing' ), |
|
217 | + 'SL' => __( 'Sierra Leone', 'invoicing' ), |
|
218 | + 'SG' => __( 'Singapore', 'invoicing' ), |
|
219 | + 'SK' => __( 'Slovak Republic', 'invoicing' ), |
|
220 | + 'SI' => __( 'Slovenia', 'invoicing' ), |
|
221 | + 'SB' => __( 'Solomon Islands', 'invoicing' ), |
|
222 | + 'SO' => __( 'Somalia', 'invoicing' ), |
|
223 | + 'ZA' => __( 'South Africa', 'invoicing' ), |
|
224 | + 'GS' => __( 'South Georgia', 'invoicing' ), |
|
225 | + 'KR' => __( 'South Korea', 'invoicing' ), |
|
226 | + 'SS' => __( 'South Sudan', 'invoicing' ), |
|
227 | + 'ES' => __( 'Spain', 'invoicing' ), |
|
228 | + 'LK' => __( 'Sri Lanka', 'invoicing' ), |
|
229 | + 'SD' => __( 'Sudan', 'invoicing' ), |
|
230 | + 'SR' => __( 'Suriname', 'invoicing' ), |
|
231 | + 'SJ' => __( 'Svalbard and Jan Mayen Islands', 'invoicing' ), |
|
232 | + 'SZ' => __( 'Swaziland', 'invoicing' ), |
|
233 | + 'SE' => __( 'Sweden', 'invoicing' ), |
|
234 | + 'CH' => __( 'Switzerland', 'invoicing' ), |
|
235 | + 'SY' => __( 'Syrian Arab Republic', 'invoicing' ), |
|
236 | + 'TW' => __( 'Taiwan', 'invoicing' ), |
|
237 | + 'TJ' => __( 'Tajikistan', 'invoicing' ), |
|
238 | + 'TZ' => __( 'Tanzania', 'invoicing' ), |
|
239 | + 'TH' => __( 'Thailand', 'invoicing' ), |
|
240 | + 'TL' => __( 'Timor-Leste', 'invoicing' ), |
|
241 | + 'TG' => __( 'Togo', 'invoicing' ), |
|
242 | + 'TK' => __( 'Tokelau', 'invoicing' ), |
|
243 | + 'TO' => __( 'Tonga', 'invoicing' ), |
|
244 | + 'TT' => __( 'Trinidad and Tobago', 'invoicing' ), |
|
245 | + 'TN' => __( 'Tunisia', 'invoicing' ), |
|
246 | + 'TR' => __( 'Turkey', 'invoicing' ), |
|
247 | + 'TM' => __( 'Turkmenistan', 'invoicing' ), |
|
248 | + 'TC' => __( 'Turks and Caicos Islands', 'invoicing' ), |
|
249 | + 'TV' => __( 'Tuvalu', 'invoicing' ), |
|
250 | + 'UG' => __( 'Uganda', 'invoicing' ), |
|
251 | + 'UA' => __( 'Ukraine', 'invoicing' ), |
|
252 | + 'AE' => __( 'United Arab Emirates', 'invoicing' ), |
|
253 | + 'UY' => __( 'Uruguay', 'invoicing' ), |
|
254 | + 'UM' => __( 'US Minor Outlying Islands', 'invoicing' ), |
|
255 | + 'UZ' => __( 'Uzbekistan', 'invoicing' ), |
|
256 | + 'VU' => __( 'Vanuatu', 'invoicing' ), |
|
257 | + 'VE' => __( 'Venezuela', 'invoicing' ), |
|
258 | + 'VN' => __( 'Vietnam', 'invoicing' ), |
|
259 | + 'VG' => __( 'Virgin Islands (British)', 'invoicing' ), |
|
260 | + 'VI' => __( 'Virgin Islands (USA)', 'invoicing' ), |
|
261 | + 'WF' => __( 'Wallis and Futuna Islands', 'invoicing' ), |
|
262 | + 'EH' => __( 'Western Sahara', 'invoicing' ), |
|
263 | + 'WS' => __( 'Western Samoa', 'invoicing' ), |
|
264 | + 'YE' => __( 'Yemen', 'invoicing' ), |
|
265 | + 'ZM' => __( 'Zambia', 'invoicing' ), |
|
266 | + 'ZW' => __( 'Zimbabwe', 'invoicing' ), |
|
267 | 267 | ); |
@@ -9,259 +9,259 @@ |
||
9 | 9 | * @version 1.0.14 |
10 | 10 | */ |
11 | 11 | |
12 | -defined( 'ABSPATH' ) || exit; |
|
12 | +defined('ABSPATH') || exit; |
|
13 | 13 | |
14 | 14 | return array( |
15 | - 'US' => __( 'United States', 'invoicing' ), |
|
16 | - 'CA' => __( 'Canada', 'invoicing' ), |
|
17 | - 'GB' => __( 'United Kingdom', 'invoicing' ), |
|
18 | - 'AF' => __( 'Afghanistan', 'invoicing' ), |
|
19 | - 'AX' => __( 'Aland Islands', 'invoicing' ), |
|
20 | - 'AL' => __( 'Albania', 'invoicing' ), |
|
21 | - 'DZ' => __( 'Algeria', 'invoicing' ), |
|
22 | - 'AS' => __( 'American Samoa', 'invoicing' ), |
|
23 | - 'AD' => __( 'Andorra', 'invoicing' ), |
|
24 | - 'AO' => __( 'Angola', 'invoicing' ), |
|
25 | - 'AI' => __( 'Anguilla', 'invoicing' ), |
|
26 | - 'AQ' => __( 'Antarctica', 'invoicing' ), |
|
27 | - 'AG' => __( 'Antigua and Barbuda', 'invoicing' ), |
|
28 | - 'AR' => __( 'Argentina', 'invoicing' ), |
|
29 | - 'AM' => __( 'Armenia', 'invoicing' ), |
|
30 | - 'AW' => __( 'Aruba', 'invoicing' ), |
|
31 | - 'AU' => __( 'Australia', 'invoicing' ), |
|
32 | - 'AT' => __( 'Austria', 'invoicing' ), |
|
33 | - 'AZ' => __( 'Azerbaijan', 'invoicing' ), |
|
34 | - 'BS' => __( 'Bahamas', 'invoicing' ), |
|
35 | - 'BH' => __( 'Bahrain', 'invoicing' ), |
|
36 | - 'BD' => __( 'Bangladesh', 'invoicing' ), |
|
37 | - 'BB' => __( 'Barbados', 'invoicing' ), |
|
38 | - 'BY' => __( 'Belarus', 'invoicing' ), |
|
39 | - 'BE' => __( 'Belgium', 'invoicing' ), |
|
40 | - 'BZ' => __( 'Belize', 'invoicing' ), |
|
41 | - 'BJ' => __( 'Benin', 'invoicing' ), |
|
42 | - 'BM' => __( 'Bermuda', 'invoicing' ), |
|
43 | - 'BT' => __( 'Bhutan', 'invoicing' ), |
|
44 | - 'BO' => __( 'Bolivia', 'invoicing' ), |
|
45 | - 'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'invoicing' ), |
|
46 | - 'BA' => __( 'Bosnia and Herzegovina', 'invoicing' ), |
|
47 | - 'BW' => __( 'Botswana', 'invoicing' ), |
|
48 | - 'BV' => __( 'Bouvet Island', 'invoicing' ), |
|
49 | - 'BR' => __( 'Brazil', 'invoicing' ), |
|
50 | - 'IO' => __( 'British Indian Ocean Territory', 'invoicing' ), |
|
51 | - 'BN' => __( 'Brunei Darrussalam', 'invoicing' ), |
|
52 | - 'BG' => __( 'Bulgaria', 'invoicing' ), |
|
53 | - 'BF' => __( 'Burkina Faso', 'invoicing' ), |
|
54 | - 'BI' => __( 'Burundi', 'invoicing' ), |
|
55 | - 'KH' => __( 'Cambodia', 'invoicing' ), |
|
56 | - 'CM' => __( 'Cameroon', 'invoicing' ), |
|
57 | - 'CV' => __( 'Cape Verde', 'invoicing' ), |
|
58 | - 'KY' => __( 'Cayman Islands', 'invoicing' ), |
|
59 | - 'CF' => __( 'Central African Republic', 'invoicing' ), |
|
60 | - 'TD' => __( 'Chad', 'invoicing' ), |
|
61 | - 'CL' => __( 'Chile', 'invoicing' ), |
|
62 | - 'CN' => __( 'China', 'invoicing' ), |
|
63 | - 'CX' => __( 'Christmas Island', 'invoicing' ), |
|
64 | - 'CC' => __( 'Cocos Islands', 'invoicing' ), |
|
65 | - 'CO' => __( 'Colombia', 'invoicing' ), |
|
66 | - 'KM' => __( 'Comoros', 'invoicing' ), |
|
67 | - 'CD' => __( 'Congo, Democratic People\'s Republic', 'invoicing' ), |
|
68 | - 'CG' => __( 'Congo, Republic of', 'invoicing' ), |
|
69 | - 'CK' => __( 'Cook Islands', 'invoicing' ), |
|
70 | - 'CR' => __( 'Costa Rica', 'invoicing' ), |
|
71 | - 'CI' => __( 'Cote d\'Ivoire', 'invoicing' ), |
|
72 | - 'HR' => __( 'Croatia/Hrvatska', 'invoicing' ), |
|
73 | - 'CU' => __( 'Cuba', 'invoicing' ), |
|
74 | - 'CW' => __( 'CuraÇao', 'invoicing' ), |
|
75 | - 'CY' => __( 'Cyprus', 'invoicing' ), |
|
76 | - 'CZ' => __( 'Czech Republic', 'invoicing' ), |
|
77 | - 'DK' => __( 'Denmark', 'invoicing' ), |
|
78 | - 'DJ' => __( 'Djibouti', 'invoicing' ), |
|
79 | - 'DM' => __( 'Dominica', 'invoicing' ), |
|
80 | - 'DO' => __( 'Dominican Republic', 'invoicing' ), |
|
81 | - 'TP' => __( 'East Timor', 'invoicing' ), |
|
82 | - 'EC' => __( 'Ecuador', 'invoicing' ), |
|
83 | - 'EG' => __( 'Egypt', 'invoicing' ), |
|
84 | - 'GQ' => __( 'Equatorial Guinea', 'invoicing' ), |
|
85 | - 'SV' => __( 'El Salvador', 'invoicing' ), |
|
86 | - 'ER' => __( 'Eritrea', 'invoicing' ), |
|
87 | - 'EE' => __( 'Estonia', 'invoicing' ), |
|
88 | - 'ET' => __( 'Ethiopia', 'invoicing' ), |
|
89 | - 'FK' => __( 'Falkland Islands', 'invoicing' ), |
|
90 | - 'FO' => __( 'Faroe Islands', 'invoicing' ), |
|
91 | - 'FJ' => __( 'Fiji', 'invoicing' ), |
|
92 | - 'FI' => __( 'Finland', 'invoicing' ), |
|
93 | - 'FR' => __( 'France', 'invoicing' ), |
|
94 | - 'GF' => __( 'French Guiana', 'invoicing' ), |
|
95 | - 'PF' => __( 'French Polynesia', 'invoicing' ), |
|
96 | - 'TF' => __( 'French Southern Territories', 'invoicing' ), |
|
97 | - 'GA' => __( 'Gabon', 'invoicing' ), |
|
98 | - 'GM' => __( 'Gambia', 'invoicing' ), |
|
99 | - 'GE' => __( 'Georgia', 'invoicing' ), |
|
100 | - 'DE' => __( 'Germany', 'invoicing' ), |
|
101 | - 'GR' => __( 'Greece', 'invoicing' ), |
|
102 | - 'GH' => __( 'Ghana', 'invoicing' ), |
|
103 | - 'GI' => __( 'Gibraltar', 'invoicing' ), |
|
104 | - 'GL' => __( 'Greenland', 'invoicing' ), |
|
105 | - 'GD' => __( 'Grenada', 'invoicing' ), |
|
106 | - 'GP' => __( 'Guadeloupe', 'invoicing' ), |
|
107 | - 'GU' => __( 'Guam', 'invoicing' ), |
|
108 | - 'GT' => __( 'Guatemala', 'invoicing' ), |
|
109 | - 'GG' => __( 'Guernsey', 'invoicing' ), |
|
110 | - 'GN' => __( 'Guinea', 'invoicing' ), |
|
111 | - 'GW' => __( 'Guinea-Bissau', 'invoicing' ), |
|
112 | - 'GY' => __( 'Guyana', 'invoicing' ), |
|
113 | - 'HT' => __( 'Haiti', 'invoicing' ), |
|
114 | - 'HM' => __( 'Heard and McDonald Islands', 'invoicing' ), |
|
115 | - 'VA' => __( 'Holy See (City Vatican State)', 'invoicing' ), |
|
116 | - 'HN' => __( 'Honduras', 'invoicing' ), |
|
117 | - 'HK' => __( 'Hong Kong', 'invoicing' ), |
|
118 | - 'HU' => __( 'Hungary', 'invoicing' ), |
|
119 | - 'IS' => __( 'Iceland', 'invoicing' ), |
|
120 | - 'IN' => __( 'India', 'invoicing' ), |
|
121 | - 'ID' => __( 'Indonesia', 'invoicing' ), |
|
122 | - 'IR' => __( 'Iran', 'invoicing' ), |
|
123 | - 'IQ' => __( 'Iraq', 'invoicing' ), |
|
124 | - 'IE' => __( 'Ireland', 'invoicing' ), |
|
125 | - 'IM' => __( 'Isle of Man', 'invoicing' ), |
|
126 | - 'IL' => __( 'Israel', 'invoicing' ), |
|
127 | - 'IT' => __( 'Italy', 'invoicing' ), |
|
128 | - 'JM' => __( 'Jamaica', 'invoicing' ), |
|
129 | - 'JP' => __( 'Japan', 'invoicing' ), |
|
130 | - 'JE' => __( 'Jersey', 'invoicing' ), |
|
131 | - 'JO' => __( 'Jordan', 'invoicing' ), |
|
132 | - 'KZ' => __( 'Kazakhstan', 'invoicing' ), |
|
133 | - 'KE' => __( 'Kenya', 'invoicing' ), |
|
134 | - 'KI' => __( 'Kiribati', 'invoicing' ), |
|
135 | - 'KW' => __( 'Kuwait', 'invoicing' ), |
|
136 | - 'KG' => __( 'Kyrgyzstan', 'invoicing' ), |
|
137 | - 'LA' => __( 'Lao People\'s Democratic Republic', 'invoicing' ), |
|
138 | - 'LV' => __( 'Latvia', 'invoicing' ), |
|
139 | - 'LB' => __( 'Lebanon', 'invoicing' ), |
|
140 | - 'LS' => __( 'Lesotho', 'invoicing' ), |
|
141 | - 'LR' => __( 'Liberia', 'invoicing' ), |
|
142 | - 'LY' => __( 'Libyan Arab Jamahiriya', 'invoicing' ), |
|
143 | - 'LI' => __( 'Liechtenstein', 'invoicing' ), |
|
144 | - 'LT' => __( 'Lithuania', 'invoicing' ), |
|
145 | - 'LU' => __( 'Luxembourg', 'invoicing' ), |
|
146 | - 'MO' => __( 'Macau', 'invoicing' ), |
|
147 | - 'MK' => __( 'Macedonia', 'invoicing' ), |
|
148 | - 'MG' => __( 'Madagascar', 'invoicing' ), |
|
149 | - 'MW' => __( 'Malawi', 'invoicing' ), |
|
150 | - 'MY' => __( 'Malaysia', 'invoicing' ), |
|
151 | - 'MV' => __( 'Maldives', 'invoicing' ), |
|
152 | - 'ML' => __( 'Mali', 'invoicing' ), |
|
153 | - 'MT' => __( 'Malta', 'invoicing' ), |
|
154 | - 'MH' => __( 'Marshall Islands', 'invoicing' ), |
|
155 | - 'MQ' => __( 'Martinique', 'invoicing' ), |
|
156 | - 'MR' => __( 'Mauritania', 'invoicing' ), |
|
157 | - 'MU' => __( 'Mauritius', 'invoicing' ), |
|
158 | - 'YT' => __( 'Mayotte', 'invoicing' ), |
|
159 | - 'MX' => __( 'Mexico', 'invoicing' ), |
|
160 | - 'FM' => __( 'Micronesia', 'invoicing' ), |
|
161 | - 'MD' => __( 'Moldova, Republic of', 'invoicing' ), |
|
162 | - 'MC' => __( 'Monaco', 'invoicing' ), |
|
163 | - 'MN' => __( 'Mongolia', 'invoicing' ), |
|
164 | - 'ME' => __( 'Montenegro', 'invoicing' ), |
|
165 | - 'MS' => __( 'Montserrat', 'invoicing' ), |
|
166 | - 'MA' => __( 'Morocco', 'invoicing' ), |
|
167 | - 'MZ' => __( 'Mozambique', 'invoicing' ), |
|
168 | - 'MM' => __( 'Myanmar', 'invoicing' ), |
|
169 | - 'NA' => __( 'Namibia', 'invoicing' ), |
|
170 | - 'NR' => __( 'Nauru', 'invoicing' ), |
|
171 | - 'NP' => __( 'Nepal', 'invoicing' ), |
|
172 | - 'NL' => __( 'Netherlands', 'invoicing' ), |
|
173 | - 'AN' => __( 'Netherlands Antilles', 'invoicing' ), |
|
174 | - 'NC' => __( 'New Caledonia', 'invoicing' ), |
|
175 | - 'NZ' => __( 'New Zealand', 'invoicing' ), |
|
176 | - 'NI' => __( 'Nicaragua', 'invoicing' ), |
|
177 | - 'NE' => __( 'Niger', 'invoicing' ), |
|
178 | - 'NG' => __( 'Nigeria', 'invoicing' ), |
|
179 | - 'NU' => __( 'Niue', 'invoicing' ), |
|
180 | - 'NF' => __( 'Norfolk Island', 'invoicing' ), |
|
181 | - 'KP' => __( 'North Korea', 'invoicing' ), |
|
182 | - 'MP' => __( 'Northern Mariana Islands', 'invoicing' ), |
|
183 | - 'NO' => __( 'Norway', 'invoicing' ), |
|
184 | - 'OM' => __( 'Oman', 'invoicing' ), |
|
185 | - 'PK' => __( 'Pakistan', 'invoicing' ), |
|
186 | - 'PW' => __( 'Palau', 'invoicing' ), |
|
187 | - 'PS' => __( 'Palestinian Territories', 'invoicing' ), |
|
188 | - 'PA' => __( 'Panama', 'invoicing' ), |
|
189 | - 'PG' => __( 'Papua New Guinea', 'invoicing' ), |
|
190 | - 'PY' => __( 'Paraguay', 'invoicing' ), |
|
191 | - 'PE' => __( 'Peru', 'invoicing' ), |
|
192 | - 'PH' => __( 'Philippines', 'invoicing' ), |
|
193 | - 'PN' => __( 'Pitcairn Island', 'invoicing' ), |
|
194 | - 'PL' => __( 'Poland', 'invoicing' ), |
|
195 | - 'PT' => __( 'Portugal', 'invoicing' ), |
|
196 | - 'PR' => __( 'Puerto Rico', 'invoicing' ), |
|
197 | - 'QA' => __( 'Qatar', 'invoicing' ), |
|
198 | - 'XK' => __( 'Republic of Kosovo', 'invoicing' ), |
|
199 | - 'RE' => __( 'Reunion Island', 'invoicing' ), |
|
200 | - 'RO' => __( 'Romania', 'invoicing' ), |
|
201 | - 'RU' => __( 'Russian Federation', 'invoicing' ), |
|
202 | - 'RW' => __( 'Rwanda', 'invoicing' ), |
|
203 | - 'BL' => __( 'Saint Barthélemy', 'invoicing' ), |
|
204 | - 'SH' => __( 'Saint Helena', 'invoicing' ), |
|
205 | - 'KN' => __( 'Saint Kitts and Nevis', 'invoicing' ), |
|
206 | - 'LC' => __( 'Saint Lucia', 'invoicing' ), |
|
207 | - 'MF' => __( 'Saint Martin (French)', 'invoicing' ), |
|
208 | - 'SX' => __( 'Saint Martin (Dutch)', 'invoicing' ), |
|
209 | - 'PM' => __( 'Saint Pierre and Miquelon', 'invoicing' ), |
|
210 | - 'VC' => __( 'Saint Vincent and the Grenadines', 'invoicing' ), |
|
211 | - 'SM' => __( 'San Marino', 'invoicing' ), |
|
212 | - 'ST' => __( 'São Tomé and Príncipe', 'invoicing' ), |
|
213 | - 'SA' => __( 'Saudi Arabia', 'invoicing' ), |
|
214 | - 'SN' => __( 'Senegal', 'invoicing' ), |
|
215 | - 'RS' => __( 'Serbia', 'invoicing' ), |
|
216 | - 'SC' => __( 'Seychelles', 'invoicing' ), |
|
217 | - 'SL' => __( 'Sierra Leone', 'invoicing' ), |
|
218 | - 'SG' => __( 'Singapore', 'invoicing' ), |
|
219 | - 'SK' => __( 'Slovak Republic', 'invoicing' ), |
|
220 | - 'SI' => __( 'Slovenia', 'invoicing' ), |
|
221 | - 'SB' => __( 'Solomon Islands', 'invoicing' ), |
|
222 | - 'SO' => __( 'Somalia', 'invoicing' ), |
|
223 | - 'ZA' => __( 'South Africa', 'invoicing' ), |
|
224 | - 'GS' => __( 'South Georgia', 'invoicing' ), |
|
225 | - 'KR' => __( 'South Korea', 'invoicing' ), |
|
226 | - 'SS' => __( 'South Sudan', 'invoicing' ), |
|
227 | - 'ES' => __( 'Spain', 'invoicing' ), |
|
228 | - 'LK' => __( 'Sri Lanka', 'invoicing' ), |
|
229 | - 'SD' => __( 'Sudan', 'invoicing' ), |
|
230 | - 'SR' => __( 'Suriname', 'invoicing' ), |
|
231 | - 'SJ' => __( 'Svalbard and Jan Mayen Islands', 'invoicing' ), |
|
232 | - 'SZ' => __( 'Swaziland', 'invoicing' ), |
|
233 | - 'SE' => __( 'Sweden', 'invoicing' ), |
|
234 | - 'CH' => __( 'Switzerland', 'invoicing' ), |
|
235 | - 'SY' => __( 'Syrian Arab Republic', 'invoicing' ), |
|
236 | - 'TW' => __( 'Taiwan', 'invoicing' ), |
|
237 | - 'TJ' => __( 'Tajikistan', 'invoicing' ), |
|
238 | - 'TZ' => __( 'Tanzania', 'invoicing' ), |
|
239 | - 'TH' => __( 'Thailand', 'invoicing' ), |
|
240 | - 'TL' => __( 'Timor-Leste', 'invoicing' ), |
|
241 | - 'TG' => __( 'Togo', 'invoicing' ), |
|
242 | - 'TK' => __( 'Tokelau', 'invoicing' ), |
|
243 | - 'TO' => __( 'Tonga', 'invoicing' ), |
|
244 | - 'TT' => __( 'Trinidad and Tobago', 'invoicing' ), |
|
245 | - 'TN' => __( 'Tunisia', 'invoicing' ), |
|
246 | - 'TR' => __( 'Turkey', 'invoicing' ), |
|
247 | - 'TM' => __( 'Turkmenistan', 'invoicing' ), |
|
248 | - 'TC' => __( 'Turks and Caicos Islands', 'invoicing' ), |
|
249 | - 'TV' => __( 'Tuvalu', 'invoicing' ), |
|
250 | - 'UG' => __( 'Uganda', 'invoicing' ), |
|
251 | - 'UA' => __( 'Ukraine', 'invoicing' ), |
|
252 | - 'AE' => __( 'United Arab Emirates', 'invoicing' ), |
|
253 | - 'UY' => __( 'Uruguay', 'invoicing' ), |
|
254 | - 'UM' => __( 'US Minor Outlying Islands', 'invoicing' ), |
|
255 | - 'UZ' => __( 'Uzbekistan', 'invoicing' ), |
|
256 | - 'VU' => __( 'Vanuatu', 'invoicing' ), |
|
257 | - 'VE' => __( 'Venezuela', 'invoicing' ), |
|
258 | - 'VN' => __( 'Vietnam', 'invoicing' ), |
|
259 | - 'VG' => __( 'Virgin Islands (British)', 'invoicing' ), |
|
260 | - 'VI' => __( 'Virgin Islands (USA)', 'invoicing' ), |
|
261 | - 'WF' => __( 'Wallis and Futuna Islands', 'invoicing' ), |
|
262 | - 'EH' => __( 'Western Sahara', 'invoicing' ), |
|
263 | - 'WS' => __( 'Western Samoa', 'invoicing' ), |
|
264 | - 'YE' => __( 'Yemen', 'invoicing' ), |
|
265 | - 'ZM' => __( 'Zambia', 'invoicing' ), |
|
266 | - 'ZW' => __( 'Zimbabwe', 'invoicing' ), |
|
15 | + 'US' => __('United States', 'invoicing'), |
|
16 | + 'CA' => __('Canada', 'invoicing'), |
|
17 | + 'GB' => __('United Kingdom', 'invoicing'), |
|
18 | + 'AF' => __('Afghanistan', 'invoicing'), |
|
19 | + 'AX' => __('Aland Islands', 'invoicing'), |
|
20 | + 'AL' => __('Albania', 'invoicing'), |
|
21 | + 'DZ' => __('Algeria', 'invoicing'), |
|
22 | + 'AS' => __('American Samoa', 'invoicing'), |
|
23 | + 'AD' => __('Andorra', 'invoicing'), |
|
24 | + 'AO' => __('Angola', 'invoicing'), |
|
25 | + 'AI' => __('Anguilla', 'invoicing'), |
|
26 | + 'AQ' => __('Antarctica', 'invoicing'), |
|
27 | + 'AG' => __('Antigua and Barbuda', 'invoicing'), |
|
28 | + 'AR' => __('Argentina', 'invoicing'), |
|
29 | + 'AM' => __('Armenia', 'invoicing'), |
|
30 | + 'AW' => __('Aruba', 'invoicing'), |
|
31 | + 'AU' => __('Australia', 'invoicing'), |
|
32 | + 'AT' => __('Austria', 'invoicing'), |
|
33 | + 'AZ' => __('Azerbaijan', 'invoicing'), |
|
34 | + 'BS' => __('Bahamas', 'invoicing'), |
|
35 | + 'BH' => __('Bahrain', 'invoicing'), |
|
36 | + 'BD' => __('Bangladesh', 'invoicing'), |
|
37 | + 'BB' => __('Barbados', 'invoicing'), |
|
38 | + 'BY' => __('Belarus', 'invoicing'), |
|
39 | + 'BE' => __('Belgium', 'invoicing'), |
|
40 | + 'BZ' => __('Belize', 'invoicing'), |
|
41 | + 'BJ' => __('Benin', 'invoicing'), |
|
42 | + 'BM' => __('Bermuda', 'invoicing'), |
|
43 | + 'BT' => __('Bhutan', 'invoicing'), |
|
44 | + 'BO' => __('Bolivia', 'invoicing'), |
|
45 | + 'BQ' => __('Bonaire, Saint Eustatius and Saba', 'invoicing'), |
|
46 | + 'BA' => __('Bosnia and Herzegovina', 'invoicing'), |
|
47 | + 'BW' => __('Botswana', 'invoicing'), |
|
48 | + 'BV' => __('Bouvet Island', 'invoicing'), |
|
49 | + 'BR' => __('Brazil', 'invoicing'), |
|
50 | + 'IO' => __('British Indian Ocean Territory', 'invoicing'), |
|
51 | + 'BN' => __('Brunei Darrussalam', 'invoicing'), |
|
52 | + 'BG' => __('Bulgaria', 'invoicing'), |
|
53 | + 'BF' => __('Burkina Faso', 'invoicing'), |
|
54 | + 'BI' => __('Burundi', 'invoicing'), |
|
55 | + 'KH' => __('Cambodia', 'invoicing'), |
|
56 | + 'CM' => __('Cameroon', 'invoicing'), |
|
57 | + 'CV' => __('Cape Verde', 'invoicing'), |
|
58 | + 'KY' => __('Cayman Islands', 'invoicing'), |
|
59 | + 'CF' => __('Central African Republic', 'invoicing'), |
|
60 | + 'TD' => __('Chad', 'invoicing'), |
|
61 | + 'CL' => __('Chile', 'invoicing'), |
|
62 | + 'CN' => __('China', 'invoicing'), |
|
63 | + 'CX' => __('Christmas Island', 'invoicing'), |
|
64 | + 'CC' => __('Cocos Islands', 'invoicing'), |
|
65 | + 'CO' => __('Colombia', 'invoicing'), |
|
66 | + 'KM' => __('Comoros', 'invoicing'), |
|
67 | + 'CD' => __('Congo, Democratic People\'s Republic', 'invoicing'), |
|
68 | + 'CG' => __('Congo, Republic of', 'invoicing'), |
|
69 | + 'CK' => __('Cook Islands', 'invoicing'), |
|
70 | + 'CR' => __('Costa Rica', 'invoicing'), |
|
71 | + 'CI' => __('Cote d\'Ivoire', 'invoicing'), |
|
72 | + 'HR' => __('Croatia/Hrvatska', 'invoicing'), |
|
73 | + 'CU' => __('Cuba', 'invoicing'), |
|
74 | + 'CW' => __('CuraÇao', 'invoicing'), |
|
75 | + 'CY' => __('Cyprus', 'invoicing'), |
|
76 | + 'CZ' => __('Czech Republic', 'invoicing'), |
|
77 | + 'DK' => __('Denmark', 'invoicing'), |
|
78 | + 'DJ' => __('Djibouti', 'invoicing'), |
|
79 | + 'DM' => __('Dominica', 'invoicing'), |
|
80 | + 'DO' => __('Dominican Republic', 'invoicing'), |
|
81 | + 'TP' => __('East Timor', 'invoicing'), |
|
82 | + 'EC' => __('Ecuador', 'invoicing'), |
|
83 | + 'EG' => __('Egypt', 'invoicing'), |
|
84 | + 'GQ' => __('Equatorial Guinea', 'invoicing'), |
|
85 | + 'SV' => __('El Salvador', 'invoicing'), |
|
86 | + 'ER' => __('Eritrea', 'invoicing'), |
|
87 | + 'EE' => __('Estonia', 'invoicing'), |
|
88 | + 'ET' => __('Ethiopia', 'invoicing'), |
|
89 | + 'FK' => __('Falkland Islands', 'invoicing'), |
|
90 | + 'FO' => __('Faroe Islands', 'invoicing'), |
|
91 | + 'FJ' => __('Fiji', 'invoicing'), |
|
92 | + 'FI' => __('Finland', 'invoicing'), |
|
93 | + 'FR' => __('France', 'invoicing'), |
|
94 | + 'GF' => __('French Guiana', 'invoicing'), |
|
95 | + 'PF' => __('French Polynesia', 'invoicing'), |
|
96 | + 'TF' => __('French Southern Territories', 'invoicing'), |
|
97 | + 'GA' => __('Gabon', 'invoicing'), |
|
98 | + 'GM' => __('Gambia', 'invoicing'), |
|
99 | + 'GE' => __('Georgia', 'invoicing'), |
|
100 | + 'DE' => __('Germany', 'invoicing'), |
|
101 | + 'GR' => __('Greece', 'invoicing'), |
|
102 | + 'GH' => __('Ghana', 'invoicing'), |
|
103 | + 'GI' => __('Gibraltar', 'invoicing'), |
|
104 | + 'GL' => __('Greenland', 'invoicing'), |
|
105 | + 'GD' => __('Grenada', 'invoicing'), |
|
106 | + 'GP' => __('Guadeloupe', 'invoicing'), |
|
107 | + 'GU' => __('Guam', 'invoicing'), |
|
108 | + 'GT' => __('Guatemala', 'invoicing'), |
|
109 | + 'GG' => __('Guernsey', 'invoicing'), |
|
110 | + 'GN' => __('Guinea', 'invoicing'), |
|
111 | + 'GW' => __('Guinea-Bissau', 'invoicing'), |
|
112 | + 'GY' => __('Guyana', 'invoicing'), |
|
113 | + 'HT' => __('Haiti', 'invoicing'), |
|
114 | + 'HM' => __('Heard and McDonald Islands', 'invoicing'), |
|
115 | + 'VA' => __('Holy See (City Vatican State)', 'invoicing'), |
|
116 | + 'HN' => __('Honduras', 'invoicing'), |
|
117 | + 'HK' => __('Hong Kong', 'invoicing'), |
|
118 | + 'HU' => __('Hungary', 'invoicing'), |
|
119 | + 'IS' => __('Iceland', 'invoicing'), |
|
120 | + 'IN' => __('India', 'invoicing'), |
|
121 | + 'ID' => __('Indonesia', 'invoicing'), |
|
122 | + 'IR' => __('Iran', 'invoicing'), |
|
123 | + 'IQ' => __('Iraq', 'invoicing'), |
|
124 | + 'IE' => __('Ireland', 'invoicing'), |
|
125 | + 'IM' => __('Isle of Man', 'invoicing'), |
|
126 | + 'IL' => __('Israel', 'invoicing'), |
|
127 | + 'IT' => __('Italy', 'invoicing'), |
|
128 | + 'JM' => __('Jamaica', 'invoicing'), |
|
129 | + 'JP' => __('Japan', 'invoicing'), |
|
130 | + 'JE' => __('Jersey', 'invoicing'), |
|
131 | + 'JO' => __('Jordan', 'invoicing'), |
|
132 | + 'KZ' => __('Kazakhstan', 'invoicing'), |
|
133 | + 'KE' => __('Kenya', 'invoicing'), |
|
134 | + 'KI' => __('Kiribati', 'invoicing'), |
|
135 | + 'KW' => __('Kuwait', 'invoicing'), |
|
136 | + 'KG' => __('Kyrgyzstan', 'invoicing'), |
|
137 | + 'LA' => __('Lao People\'s Democratic Republic', 'invoicing'), |
|
138 | + 'LV' => __('Latvia', 'invoicing'), |
|
139 | + 'LB' => __('Lebanon', 'invoicing'), |
|
140 | + 'LS' => __('Lesotho', 'invoicing'), |
|
141 | + 'LR' => __('Liberia', 'invoicing'), |
|
142 | + 'LY' => __('Libyan Arab Jamahiriya', 'invoicing'), |
|
143 | + 'LI' => __('Liechtenstein', 'invoicing'), |
|
144 | + 'LT' => __('Lithuania', 'invoicing'), |
|
145 | + 'LU' => __('Luxembourg', 'invoicing'), |
|
146 | + 'MO' => __('Macau', 'invoicing'), |
|
147 | + 'MK' => __('Macedonia', 'invoicing'), |
|
148 | + 'MG' => __('Madagascar', 'invoicing'), |
|
149 | + 'MW' => __('Malawi', 'invoicing'), |
|
150 | + 'MY' => __('Malaysia', 'invoicing'), |
|
151 | + 'MV' => __('Maldives', 'invoicing'), |
|
152 | + 'ML' => __('Mali', 'invoicing'), |
|
153 | + 'MT' => __('Malta', 'invoicing'), |
|
154 | + 'MH' => __('Marshall Islands', 'invoicing'), |
|
155 | + 'MQ' => __('Martinique', 'invoicing'), |
|
156 | + 'MR' => __('Mauritania', 'invoicing'), |
|
157 | + 'MU' => __('Mauritius', 'invoicing'), |
|
158 | + 'YT' => __('Mayotte', 'invoicing'), |
|
159 | + 'MX' => __('Mexico', 'invoicing'), |
|
160 | + 'FM' => __('Micronesia', 'invoicing'), |
|
161 | + 'MD' => __('Moldova, Republic of', 'invoicing'), |
|
162 | + 'MC' => __('Monaco', 'invoicing'), |
|
163 | + 'MN' => __('Mongolia', 'invoicing'), |
|
164 | + 'ME' => __('Montenegro', 'invoicing'), |
|
165 | + 'MS' => __('Montserrat', 'invoicing'), |
|
166 | + 'MA' => __('Morocco', 'invoicing'), |
|
167 | + 'MZ' => __('Mozambique', 'invoicing'), |
|
168 | + 'MM' => __('Myanmar', 'invoicing'), |
|
169 | + 'NA' => __('Namibia', 'invoicing'), |
|
170 | + 'NR' => __('Nauru', 'invoicing'), |
|
171 | + 'NP' => __('Nepal', 'invoicing'), |
|
172 | + 'NL' => __('Netherlands', 'invoicing'), |
|
173 | + 'AN' => __('Netherlands Antilles', 'invoicing'), |
|
174 | + 'NC' => __('New Caledonia', 'invoicing'), |
|
175 | + 'NZ' => __('New Zealand', 'invoicing'), |
|
176 | + 'NI' => __('Nicaragua', 'invoicing'), |
|
177 | + 'NE' => __('Niger', 'invoicing'), |
|
178 | + 'NG' => __('Nigeria', 'invoicing'), |
|
179 | + 'NU' => __('Niue', 'invoicing'), |
|
180 | + 'NF' => __('Norfolk Island', 'invoicing'), |
|
181 | + 'KP' => __('North Korea', 'invoicing'), |
|
182 | + 'MP' => __('Northern Mariana Islands', 'invoicing'), |
|
183 | + 'NO' => __('Norway', 'invoicing'), |
|
184 | + 'OM' => __('Oman', 'invoicing'), |
|
185 | + 'PK' => __('Pakistan', 'invoicing'), |
|
186 | + 'PW' => __('Palau', 'invoicing'), |
|
187 | + 'PS' => __('Palestinian Territories', 'invoicing'), |
|
188 | + 'PA' => __('Panama', 'invoicing'), |
|
189 | + 'PG' => __('Papua New Guinea', 'invoicing'), |
|
190 | + 'PY' => __('Paraguay', 'invoicing'), |
|
191 | + 'PE' => __('Peru', 'invoicing'), |
|
192 | + 'PH' => __('Philippines', 'invoicing'), |
|
193 | + 'PN' => __('Pitcairn Island', 'invoicing'), |
|
194 | + 'PL' => __('Poland', 'invoicing'), |
|
195 | + 'PT' => __('Portugal', 'invoicing'), |
|
196 | + 'PR' => __('Puerto Rico', 'invoicing'), |
|
197 | + 'QA' => __('Qatar', 'invoicing'), |
|
198 | + 'XK' => __('Republic of Kosovo', 'invoicing'), |
|
199 | + 'RE' => __('Reunion Island', 'invoicing'), |
|
200 | + 'RO' => __('Romania', 'invoicing'), |
|
201 | + 'RU' => __('Russian Federation', 'invoicing'), |
|
202 | + 'RW' => __('Rwanda', 'invoicing'), |
|
203 | + 'BL' => __('Saint Barthélemy', 'invoicing'), |
|
204 | + 'SH' => __('Saint Helena', 'invoicing'), |
|
205 | + 'KN' => __('Saint Kitts and Nevis', 'invoicing'), |
|
206 | + 'LC' => __('Saint Lucia', 'invoicing'), |
|
207 | + 'MF' => __('Saint Martin (French)', 'invoicing'), |
|
208 | + 'SX' => __('Saint Martin (Dutch)', 'invoicing'), |
|
209 | + 'PM' => __('Saint Pierre and Miquelon', 'invoicing'), |
|
210 | + 'VC' => __('Saint Vincent and the Grenadines', 'invoicing'), |
|
211 | + 'SM' => __('San Marino', 'invoicing'), |
|
212 | + 'ST' => __('São Tomé and Príncipe', 'invoicing'), |
|
213 | + 'SA' => __('Saudi Arabia', 'invoicing'), |
|
214 | + 'SN' => __('Senegal', 'invoicing'), |
|
215 | + 'RS' => __('Serbia', 'invoicing'), |
|
216 | + 'SC' => __('Seychelles', 'invoicing'), |
|
217 | + 'SL' => __('Sierra Leone', 'invoicing'), |
|
218 | + 'SG' => __('Singapore', 'invoicing'), |
|
219 | + 'SK' => __('Slovak Republic', 'invoicing'), |
|
220 | + 'SI' => __('Slovenia', 'invoicing'), |
|
221 | + 'SB' => __('Solomon Islands', 'invoicing'), |
|
222 | + 'SO' => __('Somalia', 'invoicing'), |
|
223 | + 'ZA' => __('South Africa', 'invoicing'), |
|
224 | + 'GS' => __('South Georgia', 'invoicing'), |
|
225 | + 'KR' => __('South Korea', 'invoicing'), |
|
226 | + 'SS' => __('South Sudan', 'invoicing'), |
|
227 | + 'ES' => __('Spain', 'invoicing'), |
|
228 | + 'LK' => __('Sri Lanka', 'invoicing'), |
|
229 | + 'SD' => __('Sudan', 'invoicing'), |
|
230 | + 'SR' => __('Suriname', 'invoicing'), |
|
231 | + 'SJ' => __('Svalbard and Jan Mayen Islands', 'invoicing'), |
|
232 | + 'SZ' => __('Swaziland', 'invoicing'), |
|
233 | + 'SE' => __('Sweden', 'invoicing'), |
|
234 | + 'CH' => __('Switzerland', 'invoicing'), |
|
235 | + 'SY' => __('Syrian Arab Republic', 'invoicing'), |
|
236 | + 'TW' => __('Taiwan', 'invoicing'), |
|
237 | + 'TJ' => __('Tajikistan', 'invoicing'), |
|
238 | + 'TZ' => __('Tanzania', 'invoicing'), |
|
239 | + 'TH' => __('Thailand', 'invoicing'), |
|
240 | + 'TL' => __('Timor-Leste', 'invoicing'), |
|
241 | + 'TG' => __('Togo', 'invoicing'), |
|
242 | + 'TK' => __('Tokelau', 'invoicing'), |
|
243 | + 'TO' => __('Tonga', 'invoicing'), |
|
244 | + 'TT' => __('Trinidad and Tobago', 'invoicing'), |
|
245 | + 'TN' => __('Tunisia', 'invoicing'), |
|
246 | + 'TR' => __('Turkey', 'invoicing'), |
|
247 | + 'TM' => __('Turkmenistan', 'invoicing'), |
|
248 | + 'TC' => __('Turks and Caicos Islands', 'invoicing'), |
|
249 | + 'TV' => __('Tuvalu', 'invoicing'), |
|
250 | + 'UG' => __('Uganda', 'invoicing'), |
|
251 | + 'UA' => __('Ukraine', 'invoicing'), |
|
252 | + 'AE' => __('United Arab Emirates', 'invoicing'), |
|
253 | + 'UY' => __('Uruguay', 'invoicing'), |
|
254 | + 'UM' => __('US Minor Outlying Islands', 'invoicing'), |
|
255 | + 'UZ' => __('Uzbekistan', 'invoicing'), |
|
256 | + 'VU' => __('Vanuatu', 'invoicing'), |
|
257 | + 'VE' => __('Venezuela', 'invoicing'), |
|
258 | + 'VN' => __('Vietnam', 'invoicing'), |
|
259 | + 'VG' => __('Virgin Islands (British)', 'invoicing'), |
|
260 | + 'VI' => __('Virgin Islands (USA)', 'invoicing'), |
|
261 | + 'WF' => __('Wallis and Futuna Islands', 'invoicing'), |
|
262 | + 'EH' => __('Western Sahara', 'invoicing'), |
|
263 | + 'WS' => __('Western Samoa', 'invoicing'), |
|
264 | + 'YE' => __('Yemen', 'invoicing'), |
|
265 | + 'ZM' => __('Zambia', 'invoicing'), |
|
266 | + 'ZW' => __('Zimbabwe', 'invoicing'), |
|
267 | 267 | ); |
@@ -38,8 +38,8 @@ |
||
38 | 38 | $nonce = wp_create_nonce( 'reset_invoice_count' ); |
39 | 39 | $reset_number = '<a href="' . add_query_arg( |
40 | 40 | array( |
41 | - 'reset_invoice_count' => 1, |
|
42 | - '_nonce' => $nonce, |
|
41 | + 'reset_invoice_count' => 1, |
|
42 | + '_nonce' => $nonce, |
|
43 | 43 | ) |
44 | 44 | ) . '" class="btn button">' . __( 'Force Reset Sequence', 'invoicing' ) . '</a>'; |
45 | 45 | } |
@@ -8,40 +8,40 @@ discard block |
||
8 | 8 | * @version 1.0.19 |
9 | 9 | */ |
10 | 10 | |
11 | -defined( 'ABSPATH' ) || exit; |
|
11 | +defined('ABSPATH') || exit; |
|
12 | 12 | |
13 | 13 | $getpaid_pages = GetPaid_Installer::get_pages(); |
14 | -$pages = wpinv_get_pages( true ); |
|
14 | +$pages = wpinv_get_pages(true); |
|
15 | 15 | |
16 | 16 | $currencies = wpinv_get_currencies(); |
17 | 17 | |
18 | 18 | $currency_code_options = array(); |
19 | -foreach ( $currencies as $code => $name ) { |
|
20 | - $currency_code_options[ $code ] = $code . ' - ' . $name . ' (' . wpinv_currency_symbol( $code ) . ')'; |
|
19 | +foreach ($currencies as $code => $name) { |
|
20 | + $currency_code_options[$code] = $code . ' - ' . $name . ' (' . wpinv_currency_symbol($code) . ')'; |
|
21 | 21 | } |
22 | 22 | |
23 | 23 | $invoice_number_padd_options = array(); |
24 | -for ( $i = 0; $i <= 20; $i++ ) { |
|
25 | - $invoice_number_padd_options[ $i ] = $i; |
|
24 | +for ($i = 0; $i <= 20; $i++) { |
|
25 | + $invoice_number_padd_options[$i] = $i; |
|
26 | 26 | } |
27 | 27 | |
28 | 28 | $currency_symbol = wpinv_currency_symbol(); |
29 | 29 | |
30 | 30 | $last_number = $reset_number = ''; |
31 | -if ( $last_invoice_number = get_option( 'wpinv_last_invoice_number' ) ) { |
|
32 | - $last_invoice_number = preg_replace( '/[^0-9]/', '', $last_invoice_number ); |
|
31 | +if ($last_invoice_number = get_option('wpinv_last_invoice_number')) { |
|
32 | + $last_invoice_number = preg_replace('/[^0-9]/', '', $last_invoice_number); |
|
33 | 33 | |
34 | - if ( ! empty( $last_invoice_number ) ) { |
|
35 | - $last_number = ' ' . wp_sprintf( __( "( Last Invoice's sequential number: <b>%s</b> )", 'invoicing' ), $last_invoice_number ); |
|
34 | + if (!empty($last_invoice_number)) { |
|
35 | + $last_number = ' ' . wp_sprintf(__("( Last Invoice's sequential number: <b>%s</b> )", 'invoicing'), $last_invoice_number); |
|
36 | 36 | } |
37 | 37 | |
38 | - $nonce = wp_create_nonce( 'reset_invoice_count' ); |
|
38 | + $nonce = wp_create_nonce('reset_invoice_count'); |
|
39 | 39 | $reset_number = '<a href="' . add_query_arg( |
40 | 40 | array( |
41 | 41 | 'reset_invoice_count' => 1, |
42 | 42 | '_nonce' => $nonce, |
43 | 43 | ) |
44 | - ) . '" class="btn button">' . __( 'Force Reset Sequence', 'invoicing' ) . '</a>'; |
|
44 | + ) . '" class="btn button">' . __('Force Reset Sequence', 'invoicing') . '</a>'; |
|
45 | 45 | } |
46 | 46 | |
47 | 47 | $alert_wrapper_start = '<p style="color: #F00">'; |
@@ -54,59 +54,59 @@ discard block |
||
54 | 54 | 'main' => array( |
55 | 55 | 'location_settings' => array( |
56 | 56 | 'id' => 'location_settings', |
57 | - 'name' => '<h3>' . __( 'Default Location', 'invoicing' ) . '</h3>', |
|
57 | + 'name' => '<h3>' . __('Default Location', 'invoicing') . '</h3>', |
|
58 | 58 | 'desc' => '', |
59 | 59 | 'type' => 'header', |
60 | 60 | ), |
61 | 61 | 'default_country' => array( |
62 | 62 | 'id' => 'default_country', |
63 | - 'name' => __( 'Default Country', 'invoicing' ), |
|
64 | - 'desc' => __( 'Where does your store operate from?', 'invoicing' ), |
|
63 | + 'name' => __('Default Country', 'invoicing'), |
|
64 | + 'desc' => __('Where does your store operate from?', 'invoicing'), |
|
65 | 65 | 'type' => 'select', |
66 | 66 | 'options' => wpinv_get_country_list(), |
67 | 67 | 'std' => 'GB', |
68 | 68 | 'class' => 'wpi_select2', |
69 | - 'placeholder' => __( 'Select a country', 'invoicing' ), |
|
69 | + 'placeholder' => __('Select a country', 'invoicing'), |
|
70 | 70 | ), |
71 | 71 | 'default_state' => array( |
72 | 72 | 'id' => 'default_state', |
73 | - 'name' => __( 'Default State / Province', 'invoicing' ), |
|
74 | - 'desc' => __( 'What state / province does your store operate from?', 'invoicing' ), |
|
73 | + 'name' => __('Default State / Province', 'invoicing'), |
|
74 | + 'desc' => __('What state / province does your store operate from?', 'invoicing'), |
|
75 | 75 | 'type' => 'country_states', |
76 | 76 | 'class' => 'wpi_select2', |
77 | - 'placeholder' => __( 'Select a state', 'invoicing' ), |
|
77 | + 'placeholder' => __('Select a state', 'invoicing'), |
|
78 | 78 | ), |
79 | 79 | 'store_name' => array( |
80 | 80 | 'id' => 'store_name', |
81 | - 'name' => __( 'Store Name', 'invoicing' ), |
|
82 | - 'desc' => __( 'Store name to print on invoices.', 'invoicing' ), |
|
83 | - 'std' => get_option( 'blogname' ), |
|
81 | + 'name' => __('Store Name', 'invoicing'), |
|
82 | + 'desc' => __('Store name to print on invoices.', 'invoicing'), |
|
83 | + 'std' => get_option('blogname'), |
|
84 | 84 | 'type' => 'text', |
85 | 85 | ), |
86 | 86 | 'logo' => array( |
87 | 87 | 'id' => 'logo', |
88 | - 'name' => __( 'Logo URL', 'invoicing' ), |
|
89 | - 'desc' => __( 'Store logo to print on invoices.', 'invoicing' ), |
|
88 | + 'name' => __('Logo URL', 'invoicing'), |
|
89 | + 'desc' => __('Store logo to print on invoices.', 'invoicing'), |
|
90 | 90 | 'type' => 'text', |
91 | 91 | ), |
92 | 92 | 'logo_width' => array( |
93 | 93 | 'id' => 'logo_width', |
94 | - 'name' => __( 'Logo width', 'invoicing' ), |
|
95 | - 'desc' => __( 'Logo width to use in invoice image.', 'invoicing' ), |
|
94 | + 'name' => __('Logo width', 'invoicing'), |
|
95 | + 'desc' => __('Logo width to use in invoice image.', 'invoicing'), |
|
96 | 96 | 'type' => 'number', |
97 | - 'placeholder' => __( 'Auto', 'invoicing' ), |
|
97 | + 'placeholder' => __('Auto', 'invoicing'), |
|
98 | 98 | ), |
99 | 99 | 'logo_height' => array( |
100 | 100 | 'id' => 'logo_height', |
101 | - 'name' => __( 'Logo height', 'invoicing' ), |
|
102 | - 'desc' => __( 'Logo height to use in invoice image.', 'invoicing' ), |
|
101 | + 'name' => __('Logo height', 'invoicing'), |
|
102 | + 'desc' => __('Logo height to use in invoice image.', 'invoicing'), |
|
103 | 103 | 'type' => 'number', |
104 | - 'placeholder' => __( 'Auto', 'invoicing' ), |
|
104 | + 'placeholder' => __('Auto', 'invoicing'), |
|
105 | 105 | ), |
106 | 106 | 'store_address' => array( |
107 | 107 | 'id' => 'store_address', |
108 | - 'name' => __( 'Store Address', 'invoicing' ), |
|
109 | - 'desc' => __( 'Enter the store address to display on invoice', 'invoicing' ), |
|
108 | + 'name' => __('Store Address', 'invoicing'), |
|
109 | + 'desc' => __('Enter the store address to display on invoice', 'invoicing'), |
|
110 | 110 | 'type' => 'textarea', |
111 | 111 | ), |
112 | 112 | |
@@ -114,114 +114,114 @@ discard block |
||
114 | 114 | 'page_section' => array( |
115 | 115 | 'page_settings' => array( |
116 | 116 | 'id' => 'page_settings', |
117 | - 'name' => '<h3>' . __( 'Page Settings', 'invoicing' ) . '</h3>', |
|
117 | + 'name' => '<h3>' . __('Page Settings', 'invoicing') . '</h3>', |
|
118 | 118 | 'desc' => '', |
119 | 119 | 'type' => 'header', |
120 | 120 | ), |
121 | 121 | 'checkout_page' => array( |
122 | 122 | 'id' => 'checkout_page', |
123 | - 'name' => __( 'Checkout Page', 'invoicing' ), |
|
124 | - 'desc' => __( 'This is the checkout page where buyers will complete their payments. The <b>[wpinv_checkout]</b> short code must be on this page.', 'invoicing' ), |
|
123 | + 'name' => __('Checkout Page', 'invoicing'), |
|
124 | + 'desc' => __('This is the checkout page where buyers will complete their payments. The <b>[wpinv_checkout]</b> short code must be on this page.', 'invoicing'), |
|
125 | 125 | 'type' => 'select', |
126 | 126 | 'options' => $pages, |
127 | 127 | 'class' => 'wpi_select2', |
128 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
129 | - 'default_content' => empty( $getpaid_pages['checkout_page'] ) ? '' : $getpaid_pages['checkout_page']['content'], |
|
128 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
129 | + 'default_content' => empty($getpaid_pages['checkout_page']) ? '' : $getpaid_pages['checkout_page']['content'], |
|
130 | 130 | 'help-tip' => true, |
131 | 131 | ), |
132 | 132 | 'success_page' => array( |
133 | 133 | 'id' => 'success_page', |
134 | - 'name' => __( 'Success Page', 'invoicing' ), |
|
135 | - 'desc' => __( 'This is the page buyers are sent to after completing their payments. The <b>[wpinv_receipt]</b> short code should be on this page.', 'invoicing' ), |
|
134 | + 'name' => __('Success Page', 'invoicing'), |
|
135 | + 'desc' => __('This is the page buyers are sent to after completing their payments. The <b>[wpinv_receipt]</b> short code should be on this page.', 'invoicing'), |
|
136 | 136 | 'type' => 'select', |
137 | 137 | 'options' => $pages, |
138 | 138 | 'class' => 'wpi_select2', |
139 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
140 | - 'default_content' => empty( $getpaid_pages['success_page'] ) ? '' : $getpaid_pages['success_page']['content'], |
|
139 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
140 | + 'default_content' => empty($getpaid_pages['success_page']) ? '' : $getpaid_pages['success_page']['content'], |
|
141 | 141 | 'help-tip' => true, |
142 | 142 | ), |
143 | 143 | 'failure_page' => array( |
144 | 144 | 'id' => 'failure_page', |
145 | - 'name' => __( 'Failed Transaction Page', 'invoicing' ), |
|
146 | - 'desc' => __( 'This is the page buyers are sent to if their transaction is cancelled or fails.', 'invoicing' ), |
|
145 | + 'name' => __('Failed Transaction Page', 'invoicing'), |
|
146 | + 'desc' => __('This is the page buyers are sent to if their transaction is cancelled or fails.', 'invoicing'), |
|
147 | 147 | 'type' => 'select', |
148 | 148 | 'options' => $pages, |
149 | 149 | 'class' => 'wpi_select2', |
150 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
151 | - 'default_content' => empty( $getpaid_pages['failure_page'] ) ? '' : $getpaid_pages['failure_page']['content'], |
|
150 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
151 | + 'default_content' => empty($getpaid_pages['failure_page']) ? '' : $getpaid_pages['failure_page']['content'], |
|
152 | 152 | 'help-tip' => true, |
153 | 153 | ), |
154 | 154 | 'invoice_history_page' => array( |
155 | 155 | 'id' => 'invoice_history_page', |
156 | - 'name' => __( 'Invoice History Page', 'invoicing' ), |
|
157 | - 'desc' => __( 'This page shows an invoice history for the current user. The <b>[wpinv_history]</b> short code should be on this page.', 'invoicing' ), |
|
156 | + 'name' => __('Invoice History Page', 'invoicing'), |
|
157 | + 'desc' => __('This page shows an invoice history for the current user. The <b>[wpinv_history]</b> short code should be on this page.', 'invoicing'), |
|
158 | 158 | 'type' => 'select', |
159 | 159 | 'options' => $pages, |
160 | 160 | 'class' => 'wpi_select2', |
161 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
162 | - 'default_content' => empty( $getpaid_pages['invoice_history_page'] ) ? '' : $getpaid_pages['invoice_history_page']['content'], |
|
161 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
162 | + 'default_content' => empty($getpaid_pages['invoice_history_page']) ? '' : $getpaid_pages['invoice_history_page']['content'], |
|
163 | 163 | 'help-tip' => true, |
164 | 164 | ), |
165 | 165 | 'invoice_subscription_page' => array( |
166 | 166 | 'id' => 'invoice_subscription_page', |
167 | - 'name' => __( 'Invoice Subscriptions Page', 'invoicing' ), |
|
168 | - 'desc' => __( 'This page shows subscriptions history for the current user. The <b>[wpinv_subscriptions]</b> short code should be on this page.', 'invoicing' ), |
|
167 | + 'name' => __('Invoice Subscriptions Page', 'invoicing'), |
|
168 | + 'desc' => __('This page shows subscriptions history for the current user. The <b>[wpinv_subscriptions]</b> short code should be on this page.', 'invoicing'), |
|
169 | 169 | 'type' => 'select', |
170 | 170 | 'options' => $pages, |
171 | 171 | 'class' => 'wpi_select2', |
172 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
173 | - 'default_content' => empty( $getpaid_pages['invoice_subscription_page'] ) ? '' : $getpaid_pages['invoice_subscription_page']['content'], |
|
172 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
173 | + 'default_content' => empty($getpaid_pages['invoice_subscription_page']) ? '' : $getpaid_pages['invoice_subscription_page']['content'], |
|
174 | 174 | 'help-tip' => true, |
175 | 175 | ), |
176 | 176 | ), |
177 | 177 | 'currency_section' => array( |
178 | 178 | 'currency_settings' => array( |
179 | 179 | 'id' => 'currency_settings', |
180 | - 'name' => '<h3>' . __( 'Currency Settings', 'invoicing' ) . '</h3>', |
|
180 | + 'name' => '<h3>' . __('Currency Settings', 'invoicing') . '</h3>', |
|
181 | 181 | 'desc' => '', |
182 | 182 | 'type' => 'header', |
183 | 183 | ), |
184 | 184 | 'currency' => array( |
185 | 185 | 'id' => 'currency', |
186 | - 'name' => __( 'Currency', 'invoicing' ), |
|
187 | - 'desc' => __( 'Choose your currency. Note that some payment gateways have currency restrictions.', 'invoicing' ), |
|
186 | + 'name' => __('Currency', 'invoicing'), |
|
187 | + 'desc' => __('Choose your currency. Note that some payment gateways have currency restrictions.', 'invoicing'), |
|
188 | 188 | 'type' => 'select', |
189 | 189 | 'class' => 'wpi_select2', |
190 | 190 | 'options' => $currency_code_options, |
191 | 191 | ), |
192 | 192 | 'currency_position' => array( |
193 | 193 | 'id' => 'currency_position', |
194 | - 'name' => __( 'Currency Position', 'invoicing' ), |
|
195 | - 'desc' => __( 'Choose the location of the currency sign.', 'invoicing' ), |
|
194 | + 'name' => __('Currency Position', 'invoicing'), |
|
195 | + 'desc' => __('Choose the location of the currency sign.', 'invoicing'), |
|
196 | 196 | 'type' => 'select', |
197 | 197 | 'class' => 'wpi_select2', |
198 | 198 | 'options' => array( |
199 | - 'left' => __( 'Left', 'invoicing' ) . ' (' . $currency_symbol . wpinv_format_amount( '99.99' ) . ')', |
|
200 | - 'right' => __( 'Right', 'invoicing' ) . ' (' . wpinv_format_amount( '99.99' ) . $currency_symbol . ')', |
|
201 | - 'left_space' => __( 'Left with space', 'invoicing' ) . ' (' . $currency_symbol . ' ' . wpinv_format_amount( '99.99' ) . ')', |
|
202 | - 'right_space' => __( 'Right with space', 'invoicing' ) . ' (' . wpinv_format_amount( '99.99' ) . ' ' . $currency_symbol . ')', |
|
199 | + 'left' => __('Left', 'invoicing') . ' (' . $currency_symbol . wpinv_format_amount('99.99') . ')', |
|
200 | + 'right' => __('Right', 'invoicing') . ' (' . wpinv_format_amount('99.99') . $currency_symbol . ')', |
|
201 | + 'left_space' => __('Left with space', 'invoicing') . ' (' . $currency_symbol . ' ' . wpinv_format_amount('99.99') . ')', |
|
202 | + 'right_space' => __('Right with space', 'invoicing') . ' (' . wpinv_format_amount('99.99') . ' ' . $currency_symbol . ')', |
|
203 | 203 | ), |
204 | 204 | ), |
205 | 205 | 'thousands_separator' => array( |
206 | 206 | 'id' => 'thousands_separator', |
207 | - 'name' => __( 'Thousands Separator', 'invoicing' ), |
|
208 | - 'desc' => __( 'The symbol (usually , or .) to separate thousands', 'invoicing' ), |
|
207 | + 'name' => __('Thousands Separator', 'invoicing'), |
|
208 | + 'desc' => __('The symbol (usually , or .) to separate thousands', 'invoicing'), |
|
209 | 209 | 'type' => 'text', |
210 | 210 | 'size' => 'small', |
211 | 211 | 'std' => ',', |
212 | 212 | ), |
213 | 213 | 'decimal_separator' => array( |
214 | 214 | 'id' => 'decimal_separator', |
215 | - 'name' => __( 'Decimal Separator', 'invoicing' ), |
|
216 | - 'desc' => __( 'The symbol (usually , or .) to separate decimal points', 'invoicing' ), |
|
215 | + 'name' => __('Decimal Separator', 'invoicing'), |
|
216 | + 'desc' => __('The symbol (usually , or .) to separate decimal points', 'invoicing'), |
|
217 | 217 | 'type' => 'text', |
218 | 218 | 'size' => 'small', |
219 | 219 | 'std' => '.', |
220 | 220 | ), |
221 | 221 | 'decimals' => array( |
222 | 222 | 'id' => 'decimals', |
223 | - 'name' => __( 'Number of Decimals', 'invoicing' ), |
|
224 | - 'desc' => __( 'This sets the number of decimal points shown in displayed prices.', 'invoicing' ), |
|
223 | + 'name' => __('Number of Decimals', 'invoicing'), |
|
224 | + 'desc' => __('This sets the number of decimal points shown in displayed prices.', 'invoicing'), |
|
225 | 225 | 'type' => 'number', |
226 | 226 | 'size' => 'small', |
227 | 227 | 'std' => '2', |
@@ -233,21 +233,21 @@ discard block |
||
233 | 233 | 'labels' => array( |
234 | 234 | 'labels' => array( |
235 | 235 | 'id' => 'labels_settings', |
236 | - 'name' => '<h3>' . __( 'Invoice Labels', 'invoicing' ) . '</h3>', |
|
236 | + 'name' => '<h3>' . __('Invoice Labels', 'invoicing') . '</h3>', |
|
237 | 237 | 'desc' => '', |
238 | 238 | 'type' => 'header', |
239 | 239 | ), |
240 | 240 | 'vat_invoice_notice_label' => array( |
241 | 241 | 'id' => 'vat_invoice_notice_label', |
242 | - 'name' => __( 'Invoice Notice Label', 'invoicing' ), |
|
243 | - 'desc' => __( 'Use this to add an invoice notice section (label) to your invoices', 'invoicing' ), |
|
242 | + 'name' => __('Invoice Notice Label', 'invoicing'), |
|
243 | + 'desc' => __('Use this to add an invoice notice section (label) to your invoices', 'invoicing'), |
|
244 | 244 | 'type' => 'text', |
245 | 245 | 'size' => 'regular', |
246 | 246 | ), |
247 | 247 | 'vat_invoice_notice' => array( |
248 | 248 | 'id' => 'vat_invoice_notice', |
249 | - 'name' => __( 'Invoice notice', 'invoicing' ), |
|
250 | - 'desc' => __( 'Use this to add an invoice notice section (description) to your invoices', 'invoicing' ), |
|
249 | + 'name' => __('Invoice notice', 'invoicing'), |
|
250 | + 'desc' => __('Use this to add an invoice notice section (description) to your invoices', 'invoicing'), |
|
251 | 251 | 'type' => 'text', |
252 | 252 | 'size' => 'regular', |
253 | 253 | ), |
@@ -260,22 +260,22 @@ discard block |
||
260 | 260 | 'main' => array( |
261 | 261 | 'gateway_settings' => array( |
262 | 262 | 'id' => 'api_header', |
263 | - 'name' => '<h3>' . __( 'Gateway Settings', 'invoicing' ) . '</h3>', |
|
263 | + 'name' => '<h3>' . __('Gateway Settings', 'invoicing') . '</h3>', |
|
264 | 264 | 'desc' => '', |
265 | 265 | 'type' => 'header', |
266 | 266 | ), |
267 | 267 | 'gateways' => array( |
268 | 268 | 'id' => 'gateways', |
269 | - 'name' => __( 'Payment Gateways', 'invoicing' ), |
|
270 | - 'desc' => __( 'Choose the payment gateways you want to enable.', 'invoicing' ), |
|
269 | + 'name' => __('Payment Gateways', 'invoicing'), |
|
270 | + 'desc' => __('Choose the payment gateways you want to enable.', 'invoicing'), |
|
271 | 271 | 'type' => 'gateways', |
272 | - 'std' => array( 'manual' => 1 ), |
|
272 | + 'std' => array('manual' => 1), |
|
273 | 273 | 'options' => wpinv_get_payment_gateways(), |
274 | 274 | ), |
275 | 275 | 'default_gateway' => array( |
276 | 276 | 'id' => 'default_gateway', |
277 | - 'name' => __( 'Default Gateway', 'invoicing' ), |
|
278 | - 'desc' => __( 'This gateway will be loaded automatically with the checkout page.', 'invoicing' ), |
|
277 | + 'name' => __('Default Gateway', 'invoicing'), |
|
278 | + 'desc' => __('This gateway will be loaded automatically with the checkout page.', 'invoicing'), |
|
279 | 279 | 'type' => 'gateway_select', |
280 | 280 | 'std' => 'manual', |
281 | 281 | 'class' => 'wpi_select2', |
@@ -291,32 +291,32 @@ discard block |
||
291 | 291 | 'main' => array( |
292 | 292 | 'tax_settings' => array( |
293 | 293 | 'id' => 'tax_settings', |
294 | - 'name' => '<h3>' . __( 'Tax Settings', 'invoicing' ) . '</h3>', |
|
294 | + 'name' => '<h3>' . __('Tax Settings', 'invoicing') . '</h3>', |
|
295 | 295 | 'type' => 'header', |
296 | 296 | ), |
297 | 297 | |
298 | 298 | 'enable_taxes' => array( |
299 | 299 | 'id' => 'enable_taxes', |
300 | - 'name' => __( 'Enable Taxes', 'invoicing' ), |
|
301 | - 'desc' => __( 'Enable tax rates and calculations.', 'invoicing' ), |
|
300 | + 'name' => __('Enable Taxes', 'invoicing'), |
|
301 | + 'desc' => __('Enable tax rates and calculations.', 'invoicing'), |
|
302 | 302 | 'type' => 'checkbox', |
303 | 303 | 'std' => 0, |
304 | 304 | ), |
305 | 305 | |
306 | 306 | 'tax_subtotal_rounding' => array( |
307 | 307 | 'id' => 'tax_subtotal_rounding', |
308 | - 'name' => __( 'Rounding', 'invoicing' ), |
|
309 | - 'desc' => __( 'Round tax at subtotal level, instead of rounding per tax rate', 'invoicing' ), |
|
308 | + 'name' => __('Rounding', 'invoicing'), |
|
309 | + 'desc' => __('Round tax at subtotal level, instead of rounding per tax rate', 'invoicing'), |
|
310 | 310 | 'type' => 'checkbox', |
311 | 311 | 'std' => 1, |
312 | 312 | ), |
313 | 313 | |
314 | 314 | 'prices_include_tax' => array( |
315 | 315 | 'id' => 'prices_include_tax', |
316 | - 'name' => __( 'Prices entered with tax', 'invoicing' ), |
|
316 | + 'name' => __('Prices entered with tax', 'invoicing'), |
|
317 | 317 | 'options' => array( |
318 | - 'yes' => __( 'Yes, I will enter prices inclusive of tax', 'invoicing' ), |
|
319 | - 'no' => __( 'No, I will enter prices exclusive of tax', 'invoicing' ), |
|
318 | + 'yes' => __('Yes, I will enter prices inclusive of tax', 'invoicing'), |
|
319 | + 'no' => __('No, I will enter prices exclusive of tax', 'invoicing'), |
|
320 | 320 | ), |
321 | 321 | 'type' => 'select', |
322 | 322 | 'std' => 'no', |
@@ -324,10 +324,10 @@ discard block |
||
324 | 324 | |
325 | 325 | 'tax_base' => array( |
326 | 326 | 'id' => 'tax_base', |
327 | - 'name' => __( 'Calculate tax based on', 'invoicing' ), |
|
327 | + 'name' => __('Calculate tax based on', 'invoicing'), |
|
328 | 328 | 'options' => array( |
329 | - 'billing' => __( 'Customer billing address', 'invoicing' ), |
|
330 | - 'base' => __( 'Shop base address', 'invoicing' ), |
|
329 | + 'billing' => __('Customer billing address', 'invoicing'), |
|
330 | + 'base' => __('Shop base address', 'invoicing'), |
|
331 | 331 | ), |
332 | 332 | 'type' => 'select', |
333 | 333 | 'std' => 'billing', |
@@ -335,10 +335,10 @@ discard block |
||
335 | 335 | |
336 | 336 | 'tax_display_totals' => array( |
337 | 337 | 'id' => 'tax_display_totals', |
338 | - 'name' => __( 'Display tax totals', 'invoicing' ), |
|
338 | + 'name' => __('Display tax totals', 'invoicing'), |
|
339 | 339 | 'options' => array( |
340 | - 'single' => __( 'As a single total', 'invoicing' ), |
|
341 | - 'individual' => __( 'As individual tax rates', 'invoicing' ), |
|
340 | + 'single' => __('As a single total', 'invoicing'), |
|
341 | + 'individual' => __('As individual tax rates', 'invoicing'), |
|
342 | 342 | ), |
343 | 343 | 'type' => 'select', |
344 | 344 | 'std' => 'individual', |
@@ -346,8 +346,8 @@ discard block |
||
346 | 346 | |
347 | 347 | 'tax_rate' => array( |
348 | 348 | 'id' => 'tax_rate', |
349 | - 'name' => __( 'Fallback Tax Rate', 'invoicing' ), |
|
350 | - 'desc' => __( 'Enter a percentage, such as 6.5. Customers not in a specific rate will be charged this rate.', 'invoicing' ), |
|
349 | + 'name' => __('Fallback Tax Rate', 'invoicing'), |
|
350 | + 'desc' => __('Enter a percentage, such as 6.5. Customers not in a specific rate will be charged this rate.', 'invoicing'), |
|
351 | 351 | 'type' => 'number', |
352 | 352 | 'size' => 'small', |
353 | 353 | 'min' => '0', |
@@ -359,8 +359,8 @@ discard block |
||
359 | 359 | 'rates' => array( |
360 | 360 | 'tax_rates' => array( |
361 | 361 | 'id' => 'tax_rates', |
362 | - 'name' => '<h3>' . __( 'Tax Rates', 'invoicing' ) . '</h3>', |
|
363 | - 'desc' => __( 'Enter tax rates for specific regions.', 'invoicing' ), |
|
362 | + 'name' => '<h3>' . __('Tax Rates', 'invoicing') . '</h3>', |
|
363 | + 'desc' => __('Enter tax rates for specific regions.', 'invoicing'), |
|
364 | 364 | 'type' => 'tax_rates', |
365 | 365 | ), |
366 | 366 | ), |
@@ -369,45 +369,45 @@ discard block |
||
369 | 369 | |
370 | 370 | 'vat_company_name' => array( |
371 | 371 | 'id' => 'vat_company_name', |
372 | - 'name' => __( 'Company Name', 'invoicing' ), |
|
373 | - 'desc' => wp_sprintf( __( 'Verify your company name and VAT number on the %1$sEU VIES System.%2$s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ), |
|
372 | + 'name' => __('Company Name', 'invoicing'), |
|
373 | + 'desc' => wp_sprintf(__('Verify your company name and VAT number on the %1$sEU VIES System.%2$s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'), |
|
374 | 374 | 'type' => 'text', |
375 | 375 | 'size' => 'regular', |
376 | 376 | ), |
377 | 377 | |
378 | 378 | 'vat_number' => array( |
379 | 379 | 'id' => 'vat_number', |
380 | - 'name' => __( 'VAT Number', 'invoicing' ), |
|
381 | - 'desc' => __( 'Enter your VAT number including the country identifier, eg: GB123456789', 'invoicing' ), |
|
380 | + 'name' => __('VAT Number', 'invoicing'), |
|
381 | + 'desc' => __('Enter your VAT number including the country identifier, eg: GB123456789', 'invoicing'), |
|
382 | 382 | 'type' => 'text', |
383 | 383 | 'size' => 'regular', |
384 | 384 | ), |
385 | 385 | |
386 | 386 | 'vat_prevent_b2c_purchase' => array( |
387 | 387 | 'id' => 'vat_prevent_b2c_purchase', |
388 | - 'name' => __( 'Prevent B2C Sales', 'invoicing' ), |
|
389 | - 'desc' => __( 'Require everyone in the EU to provide a VAT number.', 'invoicing' ), |
|
388 | + 'name' => __('Prevent B2C Sales', 'invoicing'), |
|
389 | + 'desc' => __('Require everyone in the EU to provide a VAT number.', 'invoicing'), |
|
390 | 390 | 'type' => 'checkbox', |
391 | 391 | ), |
392 | 392 | |
393 | 393 | 'validate_vat_number' => array( |
394 | 394 | 'id' => 'validate_vat_number', |
395 | - 'name' => __( 'Validate VAT Number', 'invoicing' ), |
|
396 | - 'desc' => __( 'Validate VAT numbers with VIES.', 'invoicing' ), |
|
395 | + 'name' => __('Validate VAT Number', 'invoicing'), |
|
396 | + 'desc' => __('Validate VAT numbers with VIES.', 'invoicing'), |
|
397 | 397 | 'type' => 'checkbox', |
398 | 398 | ), |
399 | 399 | |
400 | 400 | 'vat_same_country_rule' => array( |
401 | 401 | 'id' => 'vat_same_country_rule', |
402 | - 'name' => __( 'Same Country Rule', 'invoicing' ), |
|
403 | - 'desc' => __( 'What should happen if a customer is from the same country as your business?', 'invoicing' ), |
|
402 | + 'name' => __('Same Country Rule', 'invoicing'), |
|
403 | + 'desc' => __('What should happen if a customer is from the same country as your business?', 'invoicing'), |
|
404 | 404 | 'type' => 'select', |
405 | 405 | 'options' => array( |
406 | - 'no' => __( 'Do not charge tax', 'invoicing' ), |
|
407 | - 'always' => __( 'Charge tax unless vat number is validated', 'invoicing' ), |
|
408 | - 'vat_too' => __( 'Charge tax even if vat number is validated', 'invoicing' ), |
|
406 | + 'no' => __('Do not charge tax', 'invoicing'), |
|
407 | + 'always' => __('Charge tax unless vat number is validated', 'invoicing'), |
|
408 | + 'vat_too' => __('Charge tax even if vat number is validated', 'invoicing'), |
|
409 | 409 | ), |
410 | - 'placeholder' => __( 'Select an option', 'invoicing' ), |
|
410 | + 'placeholder' => __('Select an option', 'invoicing'), |
|
411 | 411 | 'std' => 'vat_too', |
412 | 412 | ), |
413 | 413 | |
@@ -422,66 +422,66 @@ discard block |
||
422 | 422 | 'main' => array( |
423 | 423 | 'email_settings_header' => array( |
424 | 424 | 'id' => 'email_settings_header', |
425 | - 'name' => '<h3>' . __( 'Email Sender Options', 'invoicing' ) . '</h3>', |
|
425 | + 'name' => '<h3>' . __('Email Sender Options', 'invoicing') . '</h3>', |
|
426 | 426 | 'type' => 'header', |
427 | 427 | ), |
428 | 428 | 'email_from_name' => array( |
429 | 429 | 'id' => 'email_from_name', |
430 | - 'name' => __( 'From Name', 'invoicing' ), |
|
431 | - 'desc' => __( 'Enter the sender\'s name appears in outgoing invoice emails. This should be your site name.', 'invoicing' ), |
|
432 | - 'std' => esc_attr( get_bloginfo( 'name', 'display' ) ), |
|
430 | + 'name' => __('From Name', 'invoicing'), |
|
431 | + 'desc' => __('Enter the sender\'s name appears in outgoing invoice emails. This should be your site name.', 'invoicing'), |
|
432 | + 'std' => esc_attr(get_bloginfo('name', 'display')), |
|
433 | 433 | 'type' => 'text', |
434 | 434 | ), |
435 | 435 | 'email_from' => array( |
436 | 436 | 'id' => 'email_from', |
437 | - 'name' => __( 'From Email', 'invoicing' ), |
|
438 | - 'desc' => sprintf( __( 'Email address to send invoice emails from. This will act as the "from" address. %1$s If emails are not being sent it may be that your hosting prevents emails being sent if the email domains do not match.%2$s', 'invoicing' ), $alert_wrapper_start, $alert_wrapper_close ), |
|
439 | - 'std' => get_option( 'admin_email' ), |
|
437 | + 'name' => __('From Email', 'invoicing'), |
|
438 | + 'desc' => sprintf(__('Email address to send invoice emails from. This will act as the "from" address. %1$s If emails are not being sent it may be that your hosting prevents emails being sent if the email domains do not match.%2$s', 'invoicing'), $alert_wrapper_start, $alert_wrapper_close), |
|
439 | + 'std' => get_option('admin_email'), |
|
440 | 440 | 'type' => 'text', |
441 | 441 | ), |
442 | 442 | 'admin_email' => array( |
443 | 443 | 'id' => 'admin_email', |
444 | - 'name' => __( 'Admin Email', 'invoicing' ), |
|
445 | - 'desc' => __( 'Where should we send admin notifications? This will is also act as the "reply-to" address for invoice emails', 'invoicing' ), |
|
446 | - 'std' => get_option( 'admin_email' ), |
|
444 | + 'name' => __('Admin Email', 'invoicing'), |
|
445 | + 'desc' => __('Where should we send admin notifications? This will is also act as the "reply-to" address for invoice emails', 'invoicing'), |
|
446 | + 'std' => get_option('admin_email'), |
|
447 | 447 | 'type' => 'text', |
448 | 448 | ), |
449 | 449 | 'skip_email_free_invoice' => array( |
450 | 450 | 'id' => 'skip_email_free_invoice', |
451 | - 'name' => __( 'Skip Free Invoices', 'invoicing' ), |
|
452 | - 'desc' => __( 'Check this to disable sending emails for free invoices.', 'invoicing' ), |
|
451 | + 'name' => __('Skip Free Invoices', 'invoicing'), |
|
452 | + 'desc' => __('Check this to disable sending emails for free invoices.', 'invoicing'), |
|
453 | 453 | 'type' => 'checkbox', |
454 | 454 | 'std' => false, |
455 | 455 | ), |
456 | 456 | 'overdue_settings_header' => array( |
457 | 457 | 'id' => 'overdue_settings_header', |
458 | - 'name' => '<h3>' . __( 'Due Date Settings', 'invoicing' ) . '</h3>', |
|
458 | + 'name' => '<h3>' . __('Due Date Settings', 'invoicing') . '</h3>', |
|
459 | 459 | 'type' => 'header', |
460 | 460 | ), |
461 | 461 | 'overdue_active' => array( |
462 | 462 | 'id' => 'overdue_active', |
463 | - 'name' => __( 'Enable Due Date', 'invoicing' ), |
|
464 | - 'desc' => __( 'Check this to enable due date option for invoices.', 'invoicing' ), |
|
463 | + 'name' => __('Enable Due Date', 'invoicing'), |
|
464 | + 'desc' => __('Check this to enable due date option for invoices.', 'invoicing'), |
|
465 | 465 | 'type' => 'checkbox', |
466 | 466 | 'std' => false, |
467 | 467 | ), |
468 | 468 | 'email_template_header' => array( |
469 | 469 | 'id' => 'email_template_header', |
470 | - 'name' => '<h3>' . __( 'Email Template', 'invoicing' ) . '</h3>', |
|
470 | + 'name' => '<h3>' . __('Email Template', 'invoicing') . '</h3>', |
|
471 | 471 | 'type' => 'header', |
472 | 472 | ), |
473 | 473 | 'email_header_image' => array( |
474 | 474 | 'id' => 'email_header_image', |
475 | - 'name' => __( 'Header Image', 'invoicing' ), |
|
476 | - 'desc' => __( 'URL to an image you want to show in the email header. Upload images using the media uploader (Admin > Media).', 'invoicing' ), |
|
475 | + 'name' => __('Header Image', 'invoicing'), |
|
476 | + 'desc' => __('URL to an image you want to show in the email header. Upload images using the media uploader (Admin > Media).', 'invoicing'), |
|
477 | 477 | 'std' => '', |
478 | 478 | 'type' => 'text', |
479 | 479 | ), |
480 | 480 | 'email_footer_text' => array( |
481 | 481 | 'id' => 'email_footer_text', |
482 | - 'name' => __( 'Footer Text', 'invoicing' ), |
|
483 | - 'desc' => __( 'The text to appear in the footer of all invoice emails.', 'invoicing' ), |
|
484 | - 'std' => get_bloginfo( 'name', 'display' ) . ' - ' . __( 'Powered by GetPaid', 'invoicing' ), |
|
482 | + 'name' => __('Footer Text', 'invoicing'), |
|
483 | + 'desc' => __('The text to appear in the footer of all invoice emails.', 'invoicing'), |
|
484 | + 'std' => get_bloginfo('name', 'display') . ' - ' . __('Powered by GetPaid', 'invoicing'), |
|
485 | 485 | 'type' => 'textarea', |
486 | 486 | 'class' => 'regular-text', |
487 | 487 | 'rows' => 2, |
@@ -489,29 +489,29 @@ discard block |
||
489 | 489 | ), |
490 | 490 | 'email_base_color' => array( |
491 | 491 | 'id' => 'email_base_color', |
492 | - 'name' => __( 'Base Color', 'invoicing' ), |
|
493 | - 'desc' => __( 'The base color for invoice email template. Default <code>#557da2</code>.', 'invoicing' ), |
|
492 | + 'name' => __('Base Color', 'invoicing'), |
|
493 | + 'desc' => __('The base color for invoice email template. Default <code>#557da2</code>.', 'invoicing'), |
|
494 | 494 | 'std' => '#557da2', |
495 | 495 | 'type' => 'color', |
496 | 496 | ), |
497 | 497 | 'email_background_color' => array( |
498 | 498 | 'id' => 'email_background_color', |
499 | - 'name' => __( 'Background Color', 'invoicing' ), |
|
500 | - 'desc' => __( 'The background color of email template. Default <code>#f5f5f5</code>.', 'invoicing' ), |
|
499 | + 'name' => __('Background Color', 'invoicing'), |
|
500 | + 'desc' => __('The background color of email template. Default <code>#f5f5f5</code>.', 'invoicing'), |
|
501 | 501 | 'std' => '#f5f5f5', |
502 | 502 | 'type' => 'color', |
503 | 503 | ), |
504 | 504 | 'email_body_background_color' => array( |
505 | 505 | 'id' => 'email_body_background_color', |
506 | - 'name' => __( 'Body Background Color', 'invoicing' ), |
|
507 | - 'desc' => __( 'The main body background color of email template. Default <code>#fdfdfd</code>.', 'invoicing' ), |
|
506 | + 'name' => __('Body Background Color', 'invoicing'), |
|
507 | + 'desc' => __('The main body background color of email template. Default <code>#fdfdfd</code>.', 'invoicing'), |
|
508 | 508 | 'std' => '#fdfdfd', |
509 | 509 | 'type' => 'color', |
510 | 510 | ), |
511 | 511 | 'email_text_color' => array( |
512 | 512 | 'id' => 'email_text_color', |
513 | - 'name' => __( 'Body Text Color', 'invoicing' ), |
|
514 | - 'desc' => __( 'The main body text color. Default <code>#505050</code>.', 'invoicing' ), |
|
513 | + 'name' => __('Body Text Color', 'invoicing'), |
|
514 | + 'desc' => __('The main body text color. Default <code>#505050</code>.', 'invoicing'), |
|
515 | 515 | 'std' => '#505050', |
516 | 516 | 'type' => 'color', |
517 | 517 | ), |
@@ -526,7 +526,7 @@ discard block |
||
526 | 526 | ), |
527 | 527 | |
528 | 528 | // Integrations. |
529 | - 'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'settings', 'id' ), |
|
529 | + 'integrations' => wp_list_pluck(getpaid_get_integration_settings(), 'settings', 'id'), |
|
530 | 530 | |
531 | 531 | /** Privacy Settings */ |
532 | 532 | 'privacy' => apply_filters( |
@@ -535,17 +535,17 @@ discard block |
||
535 | 535 | 'main' => array( |
536 | 536 | 'invoicing_privacy_policy_settings' => array( |
537 | 537 | 'id' => 'invoicing_privacy_policy_settings', |
538 | - 'name' => '<h3>' . __( 'Privacy Policy', 'invoicing' ) . '</h3>', |
|
538 | + 'name' => '<h3>' . __('Privacy Policy', 'invoicing') . '</h3>', |
|
539 | 539 | 'type' => 'header', |
540 | 540 | ), |
541 | 541 | 'privacy_page' => array( |
542 | 542 | 'id' => 'privacy_page', |
543 | - 'name' => __( 'Privacy Page', 'invoicing' ), |
|
544 | - 'desc' => __( 'If no privacy policy page set in Settings->Privacy default settings, this page will be used on checkout page.', 'invoicing' ), |
|
543 | + 'name' => __('Privacy Page', 'invoicing'), |
|
544 | + 'desc' => __('If no privacy policy page set in Settings->Privacy default settings, this page will be used on checkout page.', 'invoicing'), |
|
545 | 545 | 'type' => 'select', |
546 | - 'options' => wpinv_get_pages( true, __( 'Select a page', 'invoicing' ) ), |
|
546 | + 'options' => wpinv_get_pages(true, __('Select a page', 'invoicing')), |
|
547 | 547 | 'class' => 'wpi_select2', |
548 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
548 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
549 | 549 | ), |
550 | 550 | ), |
551 | 551 | ) |
@@ -557,19 +557,19 @@ discard block |
||
557 | 557 | 'main' => array( |
558 | 558 | 'invoice_number_format_settings' => array( |
559 | 559 | 'id' => 'invoice_number_format_settings', |
560 | - 'name' => '<h3>' . __( 'Invoice Number', 'invoicing' ) . '</h3>', |
|
560 | + 'name' => '<h3>' . __('Invoice Number', 'invoicing') . '</h3>', |
|
561 | 561 | 'type' => 'header', |
562 | 562 | ), |
563 | 563 | 'sequential_invoice_number' => array( |
564 | 564 | 'id' => 'sequential_invoice_number', |
565 | - 'name' => __( 'Sequential Invoice Numbers', 'invoicing' ), |
|
566 | - 'desc' => __( 'Check this box to enable sequential invoice numbers.', 'invoicing' ) . $reset_number, |
|
565 | + 'name' => __('Sequential Invoice Numbers', 'invoicing'), |
|
566 | + 'desc' => __('Check this box to enable sequential invoice numbers.', 'invoicing') . $reset_number, |
|
567 | 567 | 'type' => 'checkbox', |
568 | 568 | ), |
569 | 569 | 'invoice_sequence_start' => array( |
570 | 570 | 'id' => 'invoice_sequence_start', |
571 | - 'name' => __( 'Sequential Starting Number', 'invoicing' ), |
|
572 | - 'desc' => __( 'The number at which the invoice number sequence should begin.', 'invoicing' ) . $last_number, |
|
571 | + 'name' => __('Sequential Starting Number', 'invoicing'), |
|
572 | + 'desc' => __('The number at which the invoice number sequence should begin.', 'invoicing') . $last_number, |
|
573 | 573 | 'type' => 'number', |
574 | 574 | 'size' => 'small', |
575 | 575 | 'std' => '1', |
@@ -577,8 +577,8 @@ discard block |
||
577 | 577 | ), |
578 | 578 | 'invoice_number_padd' => array( |
579 | 579 | 'id' => 'invoice_number_padd', |
580 | - 'name' => __( 'Minimum Digits', 'invoicing' ), |
|
581 | - 'desc' => __( 'If the invoice number has less digits than this number, it is left padded with 0s. Ex: invoice number 108 will padded to 00108 if digits set to 5. The default 0 means no padding.', 'invoicing' ), |
|
580 | + 'name' => __('Minimum Digits', 'invoicing'), |
|
581 | + 'desc' => __('If the invoice number has less digits than this number, it is left padded with 0s. Ex: invoice number 108 will padded to 00108 if digits set to 5. The default 0 means no padding.', 'invoicing'), |
|
582 | 582 | 'type' => 'select', |
583 | 583 | 'options' => $invoice_number_padd_options, |
584 | 584 | 'std' => 5, |
@@ -586,8 +586,8 @@ discard block |
||
586 | 586 | ), |
587 | 587 | 'invoice_number_prefix' => array( |
588 | 588 | 'id' => 'invoice_number_prefix', |
589 | - 'name' => __( 'Invoice Number Prefix', 'invoicing' ), |
|
590 | - 'desc' => __( 'Prefix for all invoice numbers. Ex: INV-', 'invoicing' ), |
|
589 | + 'name' => __('Invoice Number Prefix', 'invoicing'), |
|
590 | + 'desc' => __('Prefix for all invoice numbers. Ex: INV-', 'invoicing'), |
|
591 | 591 | 'type' => 'text', |
592 | 592 | 'size' => 'regular', |
593 | 593 | 'std' => 'INV-', |
@@ -595,46 +595,46 @@ discard block |
||
595 | 595 | ), |
596 | 596 | 'invoice_number_postfix' => array( |
597 | 597 | 'id' => 'invoice_number_postfix', |
598 | - 'name' => __( 'Invoice Number Postfix', 'invoicing' ), |
|
599 | - 'desc' => __( 'Postfix for all invoice numbers.', 'invoicing' ), |
|
598 | + 'name' => __('Invoice Number Postfix', 'invoicing'), |
|
599 | + 'desc' => __('Postfix for all invoice numbers.', 'invoicing'), |
|
600 | 600 | 'type' => 'text', |
601 | 601 | 'size' => 'regular', |
602 | 602 | 'std' => '', |
603 | 603 | ), |
604 | 604 | 'checkout_settings' => array( |
605 | 605 | 'id' => 'checkout_settings', |
606 | - 'name' => '<h3>' . __( 'Checkout Settings', 'invoicing' ) . '</h3>', |
|
606 | + 'name' => '<h3>' . __('Checkout Settings', 'invoicing') . '</h3>', |
|
607 | 607 | 'type' => 'header', |
608 | 608 | ), |
609 | 609 | 'disable_new_user_emails' => array( |
610 | 610 | 'id' => 'disable_new_user_emails', |
611 | - 'name' => __( 'Disable new user emails', 'invoicing' ), |
|
612 | - 'desc' => __( 'Do not send an email to customers when a new user account is created for them.', 'invoicing' ), |
|
611 | + 'name' => __('Disable new user emails', 'invoicing'), |
|
612 | + 'desc' => __('Do not send an email to customers when a new user account is created for them.', 'invoicing'), |
|
613 | 613 | 'type' => 'checkbox', |
614 | 614 | ), |
615 | 615 | 'login_to_checkout' => array( |
616 | 616 | 'id' => 'login_to_checkout', |
617 | - 'name' => __( 'Require Login To Checkout', 'invoicing' ), |
|
618 | - 'desc' => __( 'If ticked then user needs to be logged in to view or pay invoice, can only view or pay their own invoice. If unticked then anyone can view or pay the invoice.', 'invoicing' ), |
|
617 | + 'name' => __('Require Login To Checkout', 'invoicing'), |
|
618 | + 'desc' => __('If ticked then user needs to be logged in to view or pay invoice, can only view or pay their own invoice. If unticked then anyone can view or pay the invoice.', 'invoicing'), |
|
619 | 619 | 'type' => 'checkbox', |
620 | 620 | ), |
621 | 621 | 'maxmind_license_key' => array( |
622 | 622 | 'id' => 'maxmind_license_key', |
623 | - 'name' => __( 'MaxMind License Key', 'invoicing' ), |
|
623 | + 'name' => __('MaxMind License Key', 'invoicing'), |
|
624 | 624 | 'type' => 'text', |
625 | 625 | 'size' => 'regular', |
626 | - 'desc' => __( "Enter you license key if you would like to use MaxMind to automatically detect a customer's country.", 'invoicing' ) . ' <a href="https://support.maxmind.com/account-faq/license-keys/how-do-i-generate-a-license-key/">' . __( 'How to generate a free license key.', 'invoicing' ) . '</a>', |
|
626 | + 'desc' => __("Enter you license key if you would like to use MaxMind to automatically detect a customer's country.", 'invoicing') . ' <a href="https://support.maxmind.com/account-faq/license-keys/how-do-i-generate-a-license-key/">' . __('How to generate a free license key.', 'invoicing') . '</a>', |
|
627 | 627 | ), |
628 | 628 | |
629 | 629 | 'uninstall_settings' => array( |
630 | 630 | 'id' => 'uninstall_settings', |
631 | - 'name' => '<h3>' . __( 'Uninstall Settings', 'invoicing' ) . '</h3>', |
|
631 | + 'name' => '<h3>' . __('Uninstall Settings', 'invoicing') . '</h3>', |
|
632 | 632 | 'type' => 'header', |
633 | 633 | ), |
634 | 634 | 'remove_data_on_unistall' => array( |
635 | 635 | 'id' => 'remove_data_on_unistall', |
636 | - 'name' => __( 'Remove Data on Uninstall?', 'invoicing' ), |
|
637 | - 'desc' => __( 'Check this box if you would like Invoicing plugin to completely remove all of its data when the plugin is deleted/uninstalled.', 'invoicing' ), |
|
636 | + 'name' => __('Remove Data on Uninstall?', 'invoicing'), |
|
637 | + 'desc' => __('Check this box if you would like Invoicing plugin to completely remove all of its data when the plugin is deleted/uninstalled.', 'invoicing'), |
|
638 | 638 | 'type' => 'checkbox', |
639 | 639 | 'std' => '', |
640 | 640 | ), |
@@ -643,13 +643,13 @@ discard block |
||
643 | 643 | 'custom-css' => array( |
644 | 644 | 'css_settings' => array( |
645 | 645 | 'id' => 'css_settings', |
646 | - 'name' => '<h3>' . __( 'Custom CSS', 'invoicing' ) . '</h3>', |
|
646 | + 'name' => '<h3>' . __('Custom CSS', 'invoicing') . '</h3>', |
|
647 | 647 | 'type' => 'header', |
648 | 648 | ), |
649 | 649 | 'template_custom_css' => array( |
650 | 650 | 'id' => 'template_custom_css', |
651 | - 'name' => __( 'Invoice Template CSS', 'invoicing' ), |
|
652 | - 'desc' => __( 'Add CSS to modify appearance of the print invoice page.', 'invoicing' ), |
|
651 | + 'name' => __('Invoice Template CSS', 'invoicing'), |
|
652 | + 'desc' => __('Add CSS to modify appearance of the print invoice page.', 'invoicing'), |
|
653 | 653 | 'type' => 'textarea', |
654 | 654 | 'class' => 'regular-text', |
655 | 655 | 'rows' => 10, |
@@ -664,8 +664,8 @@ discard block |
||
664 | 664 | 'main' => array( |
665 | 665 | 'tool_settings' => array( |
666 | 666 | 'id' => 'tool_settings', |
667 | - 'name' => '<h3>' . __( 'Diagnostic Tools', 'invoicing' ) . '</h3>', |
|
668 | - 'desc' => __( 'Invoicing diagnostic tools', 'invoicing' ), |
|
667 | + 'name' => '<h3>' . __('Diagnostic Tools', 'invoicing') . '</h3>', |
|
668 | + 'desc' => __('Invoicing diagnostic tools', 'invoicing'), |
|
669 | 669 | 'type' => 'tools', |
670 | 670 | ), |
671 | 671 | ), |
@@ -9,41 +9,41 @@ discard block |
||
9 | 9 | * @version 1.0.19 |
10 | 10 | */ |
11 | 11 | |
12 | -defined( 'ABSPATH' ) || exit; |
|
12 | +defined('ABSPATH') || exit; |
|
13 | 13 | |
14 | 14 | return array( |
15 | 15 | |
16 | 16 | array( |
17 | 17 | 'type' => 'heading', |
18 | - 'name' => __( 'Heading', 'invoicing' ), |
|
18 | + 'name' => __('Heading', 'invoicing'), |
|
19 | 19 | 'defaults' => array( |
20 | 20 | 'level' => 'h2', |
21 | - 'text' => __( 'Heading', 'invoicing' ), |
|
21 | + 'text' => __('Heading', 'invoicing'), |
|
22 | 22 | ), |
23 | 23 | ), |
24 | 24 | |
25 | 25 | array( |
26 | 26 | 'type' => 'paragraph', |
27 | - 'name' => __( 'Paragraph', 'invoicing' ), |
|
27 | + 'name' => __('Paragraph', 'invoicing'), |
|
28 | 28 | 'defaults' => array( |
29 | - 'text' => __( 'Paragraph text', 'invoicing' ), |
|
29 | + 'text' => __('Paragraph text', 'invoicing'), |
|
30 | 30 | ), |
31 | 31 | ), |
32 | 32 | |
33 | 33 | array( |
34 | 34 | 'type' => 'alert', |
35 | - 'name' => __( 'Alert', 'invoicing' ), |
|
35 | + 'name' => __('Alert', 'invoicing'), |
|
36 | 36 | 'defaults' => array( |
37 | 37 | 'value' => '', |
38 | 38 | 'class' => 'alert-warning', |
39 | - 'text' => __( 'Alert', 'invoicing' ), |
|
39 | + 'text' => __('Alert', 'invoicing'), |
|
40 | 40 | 'dismissible' => false, |
41 | 41 | ), |
42 | 42 | ), |
43 | 43 | |
44 | 44 | array( |
45 | 45 | 'type' => 'separator', |
46 | - 'name' => __( 'Separator', 'invoicing' ), |
|
46 | + 'name' => __('Separator', 'invoicing'), |
|
47 | 47 | 'defaults' => array( |
48 | 48 | 'value' => '', |
49 | 49 | ), |
@@ -51,11 +51,11 @@ discard block |
||
51 | 51 | |
52 | 52 | array( |
53 | 53 | 'type' => 'text', |
54 | - 'name' => __( 'Text Input', 'invoicing' ), |
|
54 | + 'name' => __('Text Input', 'invoicing'), |
|
55 | 55 | 'defaults' => array( |
56 | - 'placeholder' => __( 'Enter some text', 'invoicing' ), |
|
56 | + 'placeholder' => __('Enter some text', 'invoicing'), |
|
57 | 57 | 'value' => '', |
58 | - 'label' => __( 'Field Label', 'invoicing' ), |
|
58 | + 'label' => __('Field Label', 'invoicing'), |
|
59 | 59 | 'description' => '', |
60 | 60 | 'required' => false, |
61 | 61 | ), |
@@ -63,11 +63,11 @@ discard block |
||
63 | 63 | |
64 | 64 | array( |
65 | 65 | 'type' => 'textarea', |
66 | - 'name' => __( 'Textarea', 'invoicing' ), |
|
66 | + 'name' => __('Textarea', 'invoicing'), |
|
67 | 67 | 'defaults' => array( |
68 | - 'placeholder' => __( 'Enter your text here', 'invoicing' ), |
|
68 | + 'placeholder' => __('Enter your text here', 'invoicing'), |
|
69 | 69 | 'value' => '', |
70 | - 'label' => __( 'Textarea Label', 'invoicing' ), |
|
70 | + 'label' => __('Textarea Label', 'invoicing'), |
|
71 | 71 | 'description' => '', |
72 | 72 | 'required' => false, |
73 | 73 | ), |
@@ -75,27 +75,27 @@ discard block |
||
75 | 75 | |
76 | 76 | array( |
77 | 77 | 'type' => 'select', |
78 | - 'name' => __( 'Dropdown', 'invoicing' ), |
|
78 | + 'name' => __('Dropdown', 'invoicing'), |
|
79 | 79 | 'defaults' => array( |
80 | - 'placeholder' => __( 'Select a value', 'invoicing' ), |
|
80 | + 'placeholder' => __('Select a value', 'invoicing'), |
|
81 | 81 | 'value' => '', |
82 | - 'label' => __( 'Dropdown Label', 'invoicing' ), |
|
82 | + 'label' => __('Dropdown Label', 'invoicing'), |
|
83 | 83 | 'description' => '', |
84 | 84 | 'required' => false, |
85 | 85 | 'options' => array( |
86 | - esc_attr__( 'Option One', 'invoicing' ), |
|
87 | - esc_attr__( 'Option Two', 'invoicing' ), |
|
88 | - esc_attr__( 'Option Three', 'invoicing' ), |
|
86 | + esc_attr__('Option One', 'invoicing'), |
|
87 | + esc_attr__('Option Two', 'invoicing'), |
|
88 | + esc_attr__('Option Three', 'invoicing'), |
|
89 | 89 | ), |
90 | 90 | ), |
91 | 91 | ), |
92 | 92 | |
93 | 93 | array( |
94 | 94 | 'type' => 'checkbox', |
95 | - 'name' => __( 'Checkbox', 'invoicing' ), |
|
95 | + 'name' => __('Checkbox', 'invoicing'), |
|
96 | 96 | 'defaults' => array( |
97 | 97 | 'value' => '', |
98 | - 'label' => __( 'Checkbox Label', 'invoicing' ), |
|
98 | + 'label' => __('Checkbox Label', 'invoicing'), |
|
99 | 99 | 'description' => '', |
100 | 100 | 'required' => false, |
101 | 101 | ), |
@@ -103,23 +103,23 @@ discard block |
||
103 | 103 | |
104 | 104 | array( |
105 | 105 | 'type' => 'radio', |
106 | - 'name' => __( 'Radio', 'invoicing' ), |
|
106 | + 'name' => __('Radio', 'invoicing'), |
|
107 | 107 | 'defaults' => array( |
108 | - 'label' => __( 'Select one choice', 'invoicing' ), |
|
108 | + 'label' => __('Select one choice', 'invoicing'), |
|
109 | 109 | 'options' => array( |
110 | - esc_attr__( 'Choice One', 'invoicing' ), |
|
111 | - esc_attr__( 'Choice Two', 'invoicing' ), |
|
112 | - esc_attr__( 'Choice Three', 'invoicing' ), |
|
110 | + esc_attr__('Choice One', 'invoicing'), |
|
111 | + esc_attr__('Choice Two', 'invoicing'), |
|
112 | + esc_attr__('Choice Three', 'invoicing'), |
|
113 | 113 | ), |
114 | 114 | ), |
115 | 115 | ), |
116 | 116 | |
117 | 117 | array( |
118 | 118 | 'type' => 'date', |
119 | - 'name' => __( 'Date', 'invoicing' ), |
|
119 | + 'name' => __('Date', 'invoicing'), |
|
120 | 120 | 'defaults' => array( |
121 | 121 | 'value' => '', |
122 | - 'label' => __( 'Date', 'invoicing' ), |
|
122 | + 'label' => __('Date', 'invoicing'), |
|
123 | 123 | 'description' => '', |
124 | 124 | 'single' => 'single', |
125 | 125 | 'required' => false, |
@@ -128,10 +128,10 @@ discard block |
||
128 | 128 | |
129 | 129 | array( |
130 | 130 | 'type' => 'time', |
131 | - 'name' => __( 'Time', 'invoicing' ), |
|
131 | + 'name' => __('Time', 'invoicing'), |
|
132 | 132 | 'defaults' => array( |
133 | 133 | 'value' => '', |
134 | - 'label' => __( 'Time', 'invoicing' ), |
|
134 | + 'label' => __('Time', 'invoicing'), |
|
135 | 135 | 'description' => '', |
136 | 136 | 'required' => false, |
137 | 137 | ), |
@@ -139,11 +139,11 @@ discard block |
||
139 | 139 | |
140 | 140 | array( |
141 | 141 | 'type' => 'number', |
142 | - 'name' => __( 'Number', 'invoicing' ), |
|
142 | + 'name' => __('Number', 'invoicing'), |
|
143 | 143 | 'defaults' => array( |
144 | 144 | 'placeholder' => '', |
145 | 145 | 'value' => '', |
146 | - 'label' => __( 'Number', 'invoicing' ), |
|
146 | + 'label' => __('Number', 'invoicing'), |
|
147 | 147 | 'description' => '', |
148 | 148 | 'required' => false, |
149 | 149 | ), |
@@ -151,11 +151,11 @@ discard block |
||
151 | 151 | |
152 | 152 | array( |
153 | 153 | 'type' => 'website', |
154 | - 'name' => __( 'Website', 'invoicing' ), |
|
154 | + 'name' => __('Website', 'invoicing'), |
|
155 | 155 | 'defaults' => array( |
156 | 156 | 'placeholder' => 'http://example.com', |
157 | 157 | 'value' => '', |
158 | - 'label' => __( 'Website', 'invoicing' ), |
|
158 | + 'label' => __('Website', 'invoicing'), |
|
159 | 159 | 'description' => '', |
160 | 160 | 'required' => false, |
161 | 161 | ), |
@@ -163,11 +163,11 @@ discard block |
||
163 | 163 | |
164 | 164 | array( |
165 | 165 | 'type' => 'email', |
166 | - 'name' => __( 'Email', 'invoicing' ), |
|
166 | + 'name' => __('Email', 'invoicing'), |
|
167 | 167 | 'defaults' => array( |
168 | 168 | 'placeholder' => '[email protected]', |
169 | 169 | 'value' => '', |
170 | - 'label' => __( 'Email Address', 'invoicing' ), |
|
170 | + 'label' => __('Email Address', 'invoicing'), |
|
171 | 171 | 'description' => '', |
172 | 172 | 'required' => false, |
173 | 173 | ), |
@@ -175,31 +175,31 @@ discard block |
||
175 | 175 | |
176 | 176 | array( |
177 | 177 | 'type' => 'file_upload', |
178 | - 'name' => __( 'File Upload', 'invoicing' ), |
|
178 | + 'name' => __('File Upload', 'invoicing'), |
|
179 | 179 | 'defaults' => array( |
180 | 180 | 'value' => '', |
181 | - 'label' => __( 'Upload File', 'invoicing' ), |
|
181 | + 'label' => __('Upload File', 'invoicing'), |
|
182 | 182 | 'description' => '', |
183 | 183 | 'required' => false, |
184 | 184 | 'max_file_num' => 1, |
185 | - 'file_types' => array( 'jpg|jpeg|jpe', 'gif', 'png' ), |
|
185 | + 'file_types' => array('jpg|jpeg|jpe', 'gif', 'png'), |
|
186 | 186 | ), |
187 | 187 | ), |
188 | 188 | |
189 | 189 | array( |
190 | 190 | 'type' => 'address', |
191 | - 'name' => __( 'Address', 'invoicing' ), |
|
191 | + 'name' => __('Address', 'invoicing'), |
|
192 | 192 | 'defaults' => array( |
193 | 193 | |
194 | 194 | 'address_type' => 'billing', |
195 | - 'billing_address_title' => __( 'Billing Address', 'invoicing' ), |
|
196 | - 'shipping_address_title' => __( 'Shipping Address', 'invoicing' ), |
|
197 | - 'shipping_address_toggle' => __( 'Same billing & shipping address.', 'invoicing' ), |
|
195 | + 'billing_address_title' => __('Billing Address', 'invoicing'), |
|
196 | + 'shipping_address_title' => __('Shipping Address', 'invoicing'), |
|
197 | + 'shipping_address_toggle' => __('Same billing & shipping address.', 'invoicing'), |
|
198 | 198 | 'fields' => array( |
199 | 199 | array( |
200 | 200 | 'placeholder' => 'Jon', |
201 | 201 | 'value' => '', |
202 | - 'label' => __( 'First Name', 'invoicing' ), |
|
202 | + 'label' => __('First Name', 'invoicing'), |
|
203 | 203 | 'description' => '', |
204 | 204 | 'required' => false, |
205 | 205 | 'visible' => true, |
@@ -210,7 +210,7 @@ discard block |
||
210 | 210 | array( |
211 | 211 | 'placeholder' => 'Snow', |
212 | 212 | 'value' => '', |
213 | - 'label' => __( 'Last Name', 'invoicing' ), |
|
213 | + 'label' => __('Last Name', 'invoicing'), |
|
214 | 214 | 'description' => '', |
215 | 215 | 'required' => false, |
216 | 216 | 'visible' => true, |
@@ -221,7 +221,7 @@ discard block |
||
221 | 221 | array( |
222 | 222 | 'placeholder' => '', |
223 | 223 | 'value' => '', |
224 | - 'label' => __( 'Address', 'invoicing' ), |
|
224 | + 'label' => __('Address', 'invoicing'), |
|
225 | 225 | 'description' => '', |
226 | 226 | 'required' => false, |
227 | 227 | 'visible' => true, |
@@ -232,7 +232,7 @@ discard block |
||
232 | 232 | array( |
233 | 233 | 'placeholder' => '', |
234 | 234 | 'value' => '', |
235 | - 'label' => __( 'City', 'invoicing' ), |
|
235 | + 'label' => __('City', 'invoicing'), |
|
236 | 236 | 'description' => '', |
237 | 237 | 'required' => false, |
238 | 238 | 'visible' => true, |
@@ -241,9 +241,9 @@ discard block |
||
241 | 241 | ), |
242 | 242 | |
243 | 243 | array( |
244 | - 'placeholder' => __( 'Select your country' ), |
|
244 | + 'placeholder' => __('Select your country'), |
|
245 | 245 | 'value' => '', |
246 | - 'label' => __( 'Country', 'invoicing' ), |
|
246 | + 'label' => __('Country', 'invoicing'), |
|
247 | 247 | 'description' => '', |
248 | 248 | 'required' => false, |
249 | 249 | 'visible' => true, |
@@ -252,9 +252,9 @@ discard block |
||
252 | 252 | ), |
253 | 253 | |
254 | 254 | array( |
255 | - 'placeholder' => __( 'Choose a state', 'invoicing' ), |
|
255 | + 'placeholder' => __('Choose a state', 'invoicing'), |
|
256 | 256 | 'value' => '', |
257 | - 'label' => __( 'State / Province', 'invoicing' ), |
|
257 | + 'label' => __('State / Province', 'invoicing'), |
|
258 | 258 | 'description' => '', |
259 | 259 | 'required' => false, |
260 | 260 | 'visible' => true, |
@@ -265,7 +265,7 @@ discard block |
||
265 | 265 | array( |
266 | 266 | 'placeholder' => '', |
267 | 267 | 'value' => '', |
268 | - 'label' => __( 'ZIP / Postcode', 'invoicing' ), |
|
268 | + 'label' => __('ZIP / Postcode', 'invoicing'), |
|
269 | 269 | 'description' => '', |
270 | 270 | 'required' => false, |
271 | 271 | 'visible' => true, |
@@ -276,7 +276,7 @@ discard block |
||
276 | 276 | array( |
277 | 277 | 'placeholder' => '', |
278 | 278 | 'value' => '', |
279 | - 'label' => __( 'Phone', 'invoicing' ), |
|
279 | + 'label' => __('Phone', 'invoicing'), |
|
280 | 280 | 'description' => '', |
281 | 281 | 'required' => false, |
282 | 282 | 'visible' => true, |
@@ -287,7 +287,7 @@ discard block |
||
287 | 287 | array( |
288 | 288 | 'placeholder' => '', |
289 | 289 | 'value' => '', |
290 | - 'label' => __( 'Company', 'invoicing' ), |
|
290 | + 'label' => __('Company', 'invoicing'), |
|
291 | 291 | 'description' => '', |
292 | 292 | 'required' => false, |
293 | 293 | 'visible' => false, |
@@ -298,7 +298,7 @@ discard block |
||
298 | 298 | array( |
299 | 299 | 'placeholder' => '', |
300 | 300 | 'value' => '', |
301 | - 'label' => __( 'Company ID', 'invoicing' ), |
|
301 | + 'label' => __('Company ID', 'invoicing'), |
|
302 | 302 | 'description' => '', |
303 | 303 | 'required' => false, |
304 | 304 | 'visible' => false, |
@@ -309,7 +309,7 @@ discard block |
||
309 | 309 | array( |
310 | 310 | 'placeholder' => '', |
311 | 311 | 'value' => '', |
312 | - 'label' => __( 'VAT Number', 'invoicing' ), |
|
312 | + 'label' => __('VAT Number', 'invoicing'), |
|
313 | 313 | 'description' => '', |
314 | 314 | 'required' => false, |
315 | 315 | 'visible' => false, |
@@ -322,11 +322,11 @@ discard block |
||
322 | 322 | |
323 | 323 | array( |
324 | 324 | 'type' => 'billing_email', |
325 | - 'name' => __( 'Billing Email', 'invoicing' ), |
|
325 | + 'name' => __('Billing Email', 'invoicing'), |
|
326 | 326 | 'defaults' => array( |
327 | 327 | 'placeholder' => '[email protected]', |
328 | 328 | 'value' => '', |
329 | - 'label' => __( 'Billing Email', 'invoicing' ), |
|
329 | + 'label' => __('Billing Email', 'invoicing'), |
|
330 | 330 | 'description' => '', |
331 | 331 | 'premade' => true, |
332 | 332 | ), |
@@ -334,18 +334,18 @@ discard block |
||
334 | 334 | |
335 | 335 | array( |
336 | 336 | 'type' => 'discount', |
337 | - 'name' => __( 'Discount Input', 'invoicing' ), |
|
337 | + 'name' => __('Discount Input', 'invoicing'), |
|
338 | 338 | 'defaults' => array( |
339 | 339 | 'value' => '', |
340 | - 'input_label' => __( 'Coupon Code', 'invoicing' ), |
|
341 | - 'button_label' => __( 'Apply Coupon', 'invoicing' ), |
|
342 | - 'description' => __( 'Have a discount code? Enter it above.', 'invoicing' ), |
|
340 | + 'input_label' => __('Coupon Code', 'invoicing'), |
|
341 | + 'button_label' => __('Apply Coupon', 'invoicing'), |
|
342 | + 'description' => __('Have a discount code? Enter it above.', 'invoicing'), |
|
343 | 343 | ), |
344 | 344 | ), |
345 | 345 | |
346 | 346 | array( |
347 | 347 | 'type' => 'items', |
348 | - 'name' => __( 'Items', 'invoicing' ), |
|
348 | + 'name' => __('Items', 'invoicing'), |
|
349 | 349 | 'defaults' => array( |
350 | 350 | 'value' => '', |
351 | 351 | 'items_type' => 'total', |
@@ -357,22 +357,22 @@ discard block |
||
357 | 357 | |
358 | 358 | array( |
359 | 359 | 'type' => 'price_input', |
360 | - 'name' => __( 'Price Input', 'invoicing' ), |
|
360 | + 'name' => __('Price Input', 'invoicing'), |
|
361 | 361 | 'defaults' => array( |
362 | - 'placeholder' => wpinv_format_amount( 0 ), |
|
363 | - 'value' => wpinv_format_amount( 0 ), |
|
364 | - 'minimum' => wpinv_format_amount( 0 ), |
|
365 | - 'label' => __( 'Enter Amount', 'invoicing' ), |
|
362 | + 'placeholder' => wpinv_format_amount(0), |
|
363 | + 'value' => wpinv_format_amount(0), |
|
364 | + 'minimum' => wpinv_format_amount(0), |
|
365 | + 'label' => __('Enter Amount', 'invoicing'), |
|
366 | 366 | 'description' => '', |
367 | 367 | ), |
368 | 368 | ), |
369 | 369 | |
370 | 370 | array( |
371 | 371 | 'type' => 'price_select', |
372 | - 'name' => __( 'Price Select', 'invoicing' ), |
|
372 | + 'name' => __('Price Select', 'invoicing'), |
|
373 | 373 | 'defaults' => array( |
374 | 374 | 'description' => '', |
375 | - 'label' => __( 'Select Amount', 'invoicing' ), |
|
375 | + 'label' => __('Select Amount', 'invoicing'), |
|
376 | 376 | 'options' => 'Option 1|10, Option 2|20', |
377 | 377 | 'placeholder' => '', |
378 | 378 | 'select_type' => 'select', |
@@ -381,39 +381,39 @@ discard block |
||
381 | 381 | |
382 | 382 | array( |
383 | 383 | 'type' => 'pay_button', |
384 | - 'name' => __( 'Payment Button', 'invoicing' ), |
|
384 | + 'name' => __('Payment Button', 'invoicing'), |
|
385 | 385 | 'defaults' => array( |
386 | 386 | 'value' => '', |
387 | 387 | 'class' => 'btn-primary', |
388 | - 'label' => __( 'Pay %price% »', 'invoicing' ), |
|
389 | - 'free' => __( 'Continue »', 'invoicing' ), |
|
390 | - 'description' => __( 'By continuing with our payment, you are agreeing to our privacy policy and terms of service.', 'invoicing' ), |
|
388 | + 'label' => __('Pay %price% »', 'invoicing'), |
|
389 | + 'free' => __('Continue »', 'invoicing'), |
|
390 | + 'description' => __('By continuing with our payment, you are agreeing to our privacy policy and terms of service.', 'invoicing'), |
|
391 | 391 | 'premade' => true, |
392 | 392 | ), |
393 | 393 | ), |
394 | 394 | |
395 | 395 | array( |
396 | 396 | 'type' => 'gateway_select', |
397 | - 'name' => __( 'Gateway Select', 'invoicing' ), |
|
397 | + 'name' => __('Gateway Select', 'invoicing'), |
|
398 | 398 | 'defaults' => array( |
399 | - 'text' => __( 'Select Payment Method', 'invoicing' ), |
|
399 | + 'text' => __('Select Payment Method', 'invoicing'), |
|
400 | 400 | 'premade' => true, |
401 | 401 | ), |
402 | 402 | ), |
403 | 403 | |
404 | 404 | array( |
405 | 405 | 'type' => 'total_payable', |
406 | - 'name' => __( 'Total Payable', 'invoicing' ), |
|
406 | + 'name' => __('Total Payable', 'invoicing'), |
|
407 | 407 | 'defaults' => array( |
408 | - 'text' => __( 'Total to pay:', 'invoicing' ), |
|
408 | + 'text' => __('Total to pay:', 'invoicing'), |
|
409 | 409 | ), |
410 | 410 | ), |
411 | 411 | |
412 | 412 | array( |
413 | 413 | 'type' => 'ip_address', |
414 | - 'name' => __( 'IP Address', 'invoicing' ), |
|
414 | + 'name' => __('IP Address', 'invoicing'), |
|
415 | 415 | 'defaults' => array( |
416 | - 'text' => __( 'Your IP address is:', 'invoicing' ), |
|
416 | + 'text' => __('Your IP address is:', 'invoicing'), |
|
417 | 417 | ), |
418 | 418 | ), |
419 | 419 | ); |