Passed
Pull Request — master (#47)
by Kiran
04:02
created
includes/class-wpinv-ajax.php 2 patches
Braces   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -512,7 +512,7 @@
 block discarded – undo
512 512
             
513 513
             $response['success'] = true;
514 514
             $response['msg'] = __( 'Discount has been applied successfully.', 'invoicing' );
515
-        }  else {
515
+        } else {
516 516
             $errors = wpinv_get_errors();
517 517
             if ( !empty( $errors['wpinv-discount-error'] ) ) {
518 518
                 $response['msg'] = $errors['wpinv-discount-error'];
Please login to merge, or discard this patch.
Spacing   +193 added lines, -193 removed lines patch added patch discarded remove patch
@@ -7,28 +7,28 @@  discard block
 block discarded – undo
7 7
  */
8 8
  
9 9
 // MUST have WordPress.
10
-if ( !defined( 'WPINC' ) ) {
11
-    exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) );
10
+if (!defined('WPINC')) {
11
+    exit('Do NOT access this file directly: ' . basename(__FILE__));
12 12
 }
13 13
 
14 14
 class WPInv_Ajax {
15 15
     public static function init() {
16
-        add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
17
-        add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
16
+        add_action('init', array(__CLASS__, 'define_ajax'), 0);
17
+        add_action('template_redirect', array(__CLASS__, 'do_wpinv_ajax'), 0);
18 18
         self::add_ajax_events();
19 19
     }
20 20
 
21 21
     public static function define_ajax() {
22
-        if ( !empty( $_GET['wpinv-ajax'] ) ) {
23
-            if ( ! defined( 'DOING_AJAX' ) ) {
24
-                define( 'DOING_AJAX', true );
22
+        if (!empty($_GET['wpinv-ajax'])) {
23
+            if (!defined('DOING_AJAX')) {
24
+                define('DOING_AJAX', true);
25 25
             }
26
-            if ( ! defined( 'WC_DOING_AJAX' ) ) {
27
-                define( 'WC_DOING_AJAX', true );
26
+            if (!defined('WC_DOING_AJAX')) {
27
+                define('WC_DOING_AJAX', true);
28 28
             }
29 29
             // Turn off display_errors during AJAX events to prevent malformed JSON
30
-            if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
31
-                @ini_set( 'display_errors', 0 );
30
+            if (!WP_DEBUG || (WP_DEBUG && !WP_DEBUG_DISPLAY)) {
31
+                @ini_set('display_errors', 0);
32 32
             }
33 33
             $GLOBALS['wpdb']->hide_errors();
34 34
         }
@@ -37,24 +37,24 @@  discard block
 block discarded – undo
37 37
     public static function do_wpinv_ajax() {
38 38
         global $wp_query;
39 39
 
40
-        if ( !empty( $_GET['wpinv-ajax'] ) ) {
41
-            $wp_query->set( 'wpinv-ajax', sanitize_text_field( $_GET['wpinv-ajax'] ) );
40
+        if (!empty($_GET['wpinv-ajax'])) {
41
+            $wp_query->set('wpinv-ajax', sanitize_text_field($_GET['wpinv-ajax']));
42 42
         }
43 43
 
44
-        if ( $action = $wp_query->get( 'wpinv-ajax' ) ) {
44
+        if ($action = $wp_query->get('wpinv-ajax')) {
45 45
             self::wpinv_ajax_headers();
46
-            do_action( 'wpinv_ajax_' . sanitize_text_field( $action ) );
46
+            do_action('wpinv_ajax_' . sanitize_text_field($action));
47 47
             die();
48 48
         }
49 49
     }
50 50
     
51 51
     private static function wpinv_ajax_headers() {
52 52
         send_origin_headers();
53
-        @header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
54
-        @header( 'X-Robots-Tag: noindex' );
53
+        @header('Content-Type: text/html; charset=' . get_option('blog_charset'));
54
+        @header('X-Robots-Tag: noindex');
55 55
         send_nosniff_header();
56 56
         nocache_headers();
57
-        status_header( 200 );
57
+        status_header(200);
58 58
     }
59 59
     
60 60
     public static function add_ajax_events() {
@@ -76,39 +76,39 @@  discard block
 block discarded – undo
76 76
             'remove_discount' => false,
77 77
         );
78 78
 
79
-        foreach ( $ajax_events as $ajax_event => $nopriv ) {
80
-            add_action( 'wp_ajax_wpinv_' . $ajax_event, array( __CLASS__, $ajax_event ) );
79
+        foreach ($ajax_events as $ajax_event => $nopriv) {
80
+            add_action('wp_ajax_wpinv_' . $ajax_event, array(__CLASS__, $ajax_event));
81 81
             
82
-            if ( !defined( 'WPI_AJAX_' . strtoupper( $nopriv ) ) ) {
83
-                define( 'WPI_AJAX_' . strtoupper( $nopriv ), 1 );
82
+            if (!defined('WPI_AJAX_' . strtoupper($nopriv))) {
83
+                define('WPI_AJAX_' . strtoupper($nopriv), 1);
84 84
             }
85 85
 
86
-            if ( $nopriv ) {
87
-                add_action( 'wp_ajax_nopriv_wpinv_' . $ajax_event, array( __CLASS__, $ajax_event ) );
86
+            if ($nopriv) {
87
+                add_action('wp_ajax_nopriv_wpinv_' . $ajax_event, array(__CLASS__, $ajax_event));
88 88
 
89
-                add_action( 'wpinv_ajax_' . $ajax_event, array( __CLASS__, $ajax_event ) );
89
+                add_action('wpinv_ajax_' . $ajax_event, array(__CLASS__, $ajax_event));
90 90
             }
91 91
         }
92 92
     }
93 93
     
94 94
     public static function add_note() {
95
-        check_ajax_referer( 'add-invoice-note', '_nonce' );
95
+        check_ajax_referer('add-invoice-note', '_nonce');
96 96
 
97
-        if ( !current_user_can( 'manage_options' ) ) {
97
+        if (!current_user_can('manage_options')) {
98 98
             die(-1);
99 99
         }
100 100
 
101
-        $post_id   = absint( $_POST['post_id'] );
102
-        $note      = wp_kses_post( trim( stripslashes( $_POST['note'] ) ) );
103
-        $note_type = sanitize_text_field( $_POST['note_type'] );
101
+        $post_id   = absint($_POST['post_id']);
102
+        $note      = wp_kses_post(trim(stripslashes($_POST['note'])));
103
+        $note_type = sanitize_text_field($_POST['note_type']);
104 104
 
105 105
         $is_customer_note = $note_type == 'customer' ? 1 : 0;
106 106
 
107
-        if ( $post_id > 0 ) {
108
-            $note_id = wpinv_insert_payment_note( $post_id, $note, $is_customer_note );
107
+        if ($post_id > 0) {
108
+            $note_id = wpinv_insert_payment_note($post_id, $note, $is_customer_note);
109 109
 
110
-            if ( $note_id > 0 && !is_wp_error( $note_id ) ) {
111
-                wpinv_get_invoice_note_line_item( $note_id );
110
+            if ($note_id > 0 && !is_wp_error($note_id)) {
111
+                wpinv_get_invoice_note_line_item($note_id);
112 112
             }
113 113
         }
114 114
 
@@ -116,16 +116,16 @@  discard block
 block discarded – undo
116 116
     }
117 117
 
118 118
     public static function delete_note() {
119
-        check_ajax_referer( 'delete-invoice-note', '_nonce' );
119
+        check_ajax_referer('delete-invoice-note', '_nonce');
120 120
 
121
-        if ( !current_user_can( 'manage_options' ) ) {
121
+        if (!current_user_can('manage_options')) {
122 122
             die(-1);
123 123
         }
124 124
 
125 125
         $note_id = (int)$_POST['note_id'];
126 126
 
127
-        if ( $note_id > 0 ) {
128
-            wp_delete_comment( $note_id, true );
127
+        if ($note_id > 0) {
128
+            wp_delete_comment($note_id, true);
129 129
         }
130 130
 
131 131
         die();
@@ -138,8 +138,8 @@  discard block
 block discarded – undo
138 138
     }
139 139
     
140 140
     public static function checkout() {
141
-        if ( ! defined( 'WPINV_CHECKOUT' ) ) {
142
-            define( 'WPINV_CHECKOUT', true );
141
+        if (!defined('WPINV_CHECKOUT')) {
142
+            define('WPINV_CHECKOUT', true);
143 143
         }
144 144
 
145 145
         wpinv_process_checkout();
@@ -148,53 +148,53 @@  discard block
 block discarded – undo
148 148
     
149 149
     public static function add_invoice_item() {
150 150
         global $wpi_userID, $wpinv_ip_address_country;
151
-        check_ajax_referer( 'invoice-item', '_nonce' );
152
-        if ( !current_user_can( 'manage_options' ) ) {
151
+        check_ajax_referer('invoice-item', '_nonce');
152
+        if (!current_user_can('manage_options')) {
153 153
             die(-1);
154 154
         }
155 155
         
156
-        $item_id    = sanitize_text_field( $_POST['item_id'] );
157
-        $invoice_id = absint( $_POST['invoice_id'] );
156
+        $item_id    = sanitize_text_field($_POST['item_id']);
157
+        $invoice_id = absint($_POST['invoice_id']);
158 158
         
159
-        if ( !is_numeric( $invoice_id ) || !is_numeric( $item_id ) ) {
159
+        if (!is_numeric($invoice_id) || !is_numeric($item_id)) {
160 160
             die();
161 161
         }
162 162
         
163
-        $invoice    = wpinv_get_invoice( $invoice_id );
164
-        if ( empty( $invoice ) ) {
163
+        $invoice = wpinv_get_invoice($invoice_id);
164
+        if (empty($invoice)) {
165 165
             die();
166 166
         }
167 167
         
168
-        if ( $invoice->is_paid() ) {
168
+        if ($invoice->is_paid()) {
169 169
             die(); // Don't allow modify items for paid invoice.
170 170
         }
171 171
         
172
-        if ( !empty( $_POST['user_id'] ) ) {
173
-            $wpi_userID = absint( $_POST['user_id'] ); 
172
+        if (!empty($_POST['user_id'])) {
173
+            $wpi_userID = absint($_POST['user_id']); 
174 174
         }
175 175
 
176
-        $item = new WPInv_Item( $item_id );
177
-        if ( !( !empty( $item ) && $item->post_type == 'wpi_item' ) ) {
176
+        $item = new WPInv_Item($item_id);
177
+        if (!(!empty($item) && $item->post_type == 'wpi_item')) {
178 178
             die();
179 179
         }
180 180
         
181 181
         // Validate item before adding to invoice because recurring item must be paid individually.
182
-        if ( !empty( $invoice->cart_details ) ) {
182
+        if (!empty($invoice->cart_details)) {
183 183
             $valid = true;
184 184
             
185
-            if ( $recurring_item = $invoice->get_recurring() ) {
186
-                if ( $recurring_item != $item_id ) {
185
+            if ($recurring_item = $invoice->get_recurring()) {
186
+                if ($recurring_item != $item_id) {
187 187
                     $valid = false;
188 188
                 }
189
-            } else if ( wpinv_is_recurring_item( $item_id ) ) {
189
+            } else if (wpinv_is_recurring_item($item_id)) {
190 190
                 $valid = false;
191 191
             }
192 192
             
193
-            if ( !$valid ) {
193
+            if (!$valid) {
194 194
                 $response               = array();
195 195
                 $response['success']    = false;
196
-                $response['msg']        = __( 'You can not add item to invoice because recurring item must be paid individually!', 'invoicing' );
197
-                wp_send_json( $response );
196
+                $response['msg']        = __('You can not add item to invoice because recurring item must be paid individually!', 'invoicing');
197
+                wp_send_json($response);
198 198
             }
199 199
         }
200 200
         
@@ -202,9 +202,9 @@  discard block
 block discarded – undo
202 202
         
203 203
         $data                   = array();
204 204
         $data['invoice_id']     = $invoice_id;
205
-        $data['cart_discounts'] = $invoice->get_discounts( true );
205
+        $data['cart_discounts'] = $invoice->get_discounts(true);
206 206
         
207
-        wpinv_set_checkout_session( $data );
207
+        wpinv_set_checkout_session($data);
208 208
         
209 209
         $quantity = wpinv_item_quantities_enabled() && !empty($_POST['qty']) && (int)$_POST['qty'] > 0 ? (int)$_POST['qty'] : 1;
210 210
 
@@ -219,21 +219,21 @@  discard block
 block discarded – undo
219 219
             'fees'          => array()
220 220
         );
221 221
 
222
-        $invoice->add_item( $item_id, $args );
222
+        $invoice->add_item($item_id, $args);
223 223
         $invoice->save();
224 224
         
225
-        if ( empty( $_POST['country'] ) ) {
225
+        if (empty($_POST['country'])) {
226 226
             $_POST['country'] = !empty($invoice->country) ? $invoice->country : wpinv_get_default_country();
227 227
         }
228
-        if ( empty( $_POST['state'] ) ) {
228
+        if (empty($_POST['state'])) {
229 229
             $_POST['state'] = $invoice->state;
230 230
         }
231 231
          
232
-        $invoice->country   = sanitize_text_field( $_POST['country'] );
233
-        $invoice->state     = sanitize_text_field( $_POST['state'] );
232
+        $invoice->country   = sanitize_text_field($_POST['country']);
233
+        $invoice->state     = sanitize_text_field($_POST['state']);
234 234
         
235
-        $invoice->set( 'country', sanitize_text_field( $_POST['country'] ) );
236
-        $invoice->set( 'state', sanitize_text_field( $_POST['state'] ) );
235
+        $invoice->set('country', sanitize_text_field($_POST['country']));
236
+        $invoice->set('state', sanitize_text_field($_POST['state']));
237 237
         
238 238
         $wpinv_ip_address_country = $invoice->country;
239 239
 
@@ -241,52 +241,52 @@  discard block
 block discarded – undo
241 241
         
242 242
         $response                       = array();
243 243
         $response['success']            = true;
244
-        $response['data']['items']      = wpinv_admin_get_line_items( $invoice );
244
+        $response['data']['items']      = wpinv_admin_get_line_items($invoice);
245 245
         $response['data']['subtotal']   = $invoice->get_subtotal();
246 246
         $response['data']['subtotalf']  = $invoice->get_subtotal(true);
247 247
         $response['data']['tax']        = $invoice->get_tax();
248 248
         $response['data']['taxf']       = $invoice->get_tax(true);
249 249
         $response['data']['discount']   = $invoice->discount;
250
-        $response['data']['discountf']  = wpinv_price( $invoice->discount, $invoice->get_currency() );
250
+        $response['data']['discountf']  = wpinv_price($invoice->discount, $invoice->get_currency());
251 251
         $response['data']['total']      = $invoice->get_total();
252 252
         $response['data']['totalf']     = $invoice->get_total(true);
253 253
         
254 254
         wpinv_set_checkout_session($checkout_session);
255 255
         
256
-        wp_send_json( $response );
256
+        wp_send_json($response);
257 257
     }
258 258
     
259 259
     public static function remove_invoice_item() {
260 260
         global $wpi_userID, $wpinv_ip_address_country;
261 261
         
262
-        check_ajax_referer( 'invoice-item', '_nonce' );
263
-        if ( !current_user_can( 'manage_options' ) ) {
262
+        check_ajax_referer('invoice-item', '_nonce');
263
+        if (!current_user_can('manage_options')) {
264 264
             die(-1);
265 265
         }
266 266
         
267
-        $item_id    = sanitize_text_field( $_POST['item_id'] );
268
-        $invoice_id = absint( $_POST['invoice_id'] );
269
-        $cart_index = isset( $_POST['index'] ) && $_POST['index'] >= 0 ? $_POST['index'] : false;
267
+        $item_id    = sanitize_text_field($_POST['item_id']);
268
+        $invoice_id = absint($_POST['invoice_id']);
269
+        $cart_index = isset($_POST['index']) && $_POST['index'] >= 0 ? $_POST['index'] : false;
270 270
         
271
-        if ( !is_numeric( $invoice_id ) || !is_numeric( $item_id ) ) {
271
+        if (!is_numeric($invoice_id) || !is_numeric($item_id)) {
272 272
             die();
273 273
         }
274 274
 
275
-        $invoice    = wpinv_get_invoice( $invoice_id );
276
-        if ( empty( $invoice ) ) {
275
+        $invoice = wpinv_get_invoice($invoice_id);
276
+        if (empty($invoice)) {
277 277
             die();
278 278
         }
279 279
         
280
-        if ( $invoice->is_paid() ) {
280
+        if ($invoice->is_paid()) {
281 281
             die(); // Don't allow modify items for paid invoice.
282 282
         }
283 283
         
284
-        if ( !empty( $_POST['user_id'] ) ) {
285
-            $wpi_userID = absint( $_POST['user_id'] ); 
284
+        if (!empty($_POST['user_id'])) {
285
+            $wpi_userID = absint($_POST['user_id']); 
286 286
         }
287 287
 
288
-        $item       = new WPInv_Item( $item_id );
289
-        if ( !( !empty( $item ) && $item->post_type == 'wpi_item' ) ) {
288
+        $item = new WPInv_Item($item_id);
289
+        if (!(!empty($item) && $item->post_type == 'wpi_item')) {
290 290
             die();
291 291
         }
292 292
         
@@ -294,9 +294,9 @@  discard block
 block discarded – undo
294 294
         
295 295
         $data                   = array();
296 296
         $data['invoice_id']     = $invoice_id;
297
-        $data['cart_discounts'] = $invoice->get_discounts( true );
297
+        $data['cart_discounts'] = $invoice->get_discounts(true);
298 298
         
299
-        wpinv_set_checkout_session( $data );
299
+        wpinv_set_checkout_session($data);
300 300
 
301 301
         $args = array(
302 302
             'id'         => $item_id,
@@ -304,21 +304,21 @@  discard block
 block discarded – undo
304 304
             'cart_index' => $cart_index
305 305
         );
306 306
 
307
-        $invoice->remove_item( $item_id, $args );
307
+        $invoice->remove_item($item_id, $args);
308 308
         $invoice->save();
309 309
         
310
-        if ( empty( $_POST['country'] ) ) {
310
+        if (empty($_POST['country'])) {
311 311
             $_POST['country'] = !empty($invoice->country) ? $invoice->country : wpinv_get_default_country();
312 312
         }
313
-        if ( empty( $_POST['state'] ) ) {
313
+        if (empty($_POST['state'])) {
314 314
             $_POST['state'] = $invoice->state;
315 315
         }
316 316
          
317
-        $invoice->country   = sanitize_text_field( $_POST['country'] );
318
-        $invoice->state     = sanitize_text_field( $_POST['state'] );
317
+        $invoice->country   = sanitize_text_field($_POST['country']);
318
+        $invoice->state     = sanitize_text_field($_POST['state']);
319 319
         
320
-        $invoice->set( 'country', sanitize_text_field( $_POST['country'] ) );
321
-        $invoice->set( 'state', sanitize_text_field( $_POST['state'] ) );
320
+        $invoice->set('country', sanitize_text_field($_POST['country']));
321
+        $invoice->set('state', sanitize_text_field($_POST['state']));
322 322
         
323 323
         $wpinv_ip_address_country = $invoice->country;
324 324
         
@@ -326,52 +326,52 @@  discard block
 block discarded – undo
326 326
         
327 327
         $response                       = array();
328 328
         $response['success']            = true;
329
-        $response['data']['items']      = wpinv_admin_get_line_items( $invoice );
329
+        $response['data']['items']      = wpinv_admin_get_line_items($invoice);
330 330
         $response['data']['subtotal']   = $invoice->get_subtotal();
331 331
         $response['data']['subtotalf']  = $invoice->get_subtotal(true);
332 332
         $response['data']['tax']        = $invoice->get_tax();
333 333
         $response['data']['taxf']       = $invoice->get_tax(true);
334 334
         $response['data']['discount']   = $invoice->discount;
335
-        $response['data']['discountf']  = wpinv_price( $invoice->discount, $invoice->get_currency() );
335
+        $response['data']['discountf']  = wpinv_price($invoice->discount, $invoice->get_currency());
336 336
         $response['data']['total']      = $invoice->get_total();
337 337
         $response['data']['totalf']     = $invoice->get_total(true);
338 338
         
339 339
         wpinv_set_checkout_session($checkout_session);
340 340
         
341
-        wp_send_json( $response );
341
+        wp_send_json($response);
342 342
     }
343 343
     
344 344
     public static function create_invoice_item() {
345
-        check_ajax_referer( 'invoice-item', '_nonce' );
346
-        if ( !current_user_can( 'manage_options' ) ) {
345
+        check_ajax_referer('invoice-item', '_nonce');
346
+        if (!current_user_can('manage_options')) {
347 347
             die(-1);
348 348
         }
349 349
         
350
-        $invoice_id = absint( $_POST['invoice_id'] );
350
+        $invoice_id = absint($_POST['invoice_id']);
351 351
 
352 352
         // Find the item
353
-        if ( !is_numeric( $invoice_id ) ) {
353
+        if (!is_numeric($invoice_id)) {
354 354
             die();
355 355
         }        
356 356
         
357
-        $invoice     = wpinv_get_invoice( $invoice_id );
358
-        if ( empty( $invoice ) ) {
357
+        $invoice = wpinv_get_invoice($invoice_id);
358
+        if (empty($invoice)) {
359 359
             die();
360 360
         }
361 361
         
362 362
         // Validate item before adding to invoice because recurring item must be paid individually.
363
-        if ( !empty( $invoice->cart_details ) && $invoice->get_recurring() ) {
363
+        if (!empty($invoice->cart_details) && $invoice->get_recurring()) {
364 364
             $response               = array();
365 365
             $response['success']    = false;
366
-            $response['msg']        = __( 'You can not add item to invoice because recurring item must be paid individually!', 'invoicing' );
367
-            wp_send_json( $response );
366
+            $response['msg']        = __('You can not add item to invoice because recurring item must be paid individually!', 'invoicing');
367
+            wp_send_json($response);
368 368
         }        
369 369
         
370 370
         $save_item = $_POST['_wpinv_quick'];
371 371
         
372 372
         $meta               = array();
373 373
         $meta['type']       = !empty($save_item['type']) ? sanitize_text_field($save_item['type']) : 'custom';
374
-        $meta['price']      = !empty($save_item['price']) ? wpinv_sanitize_amount( $save_item['price'] ) : 0;
374
+        $meta['price']      = !empty($save_item['price']) ? wpinv_sanitize_amount($save_item['price']) : 0;
375 375
         $meta['vat_rule']   = !empty($save_item['vat_rule']) ? sanitize_text_field($save_item['vat_rule']) : 'digital';
376 376
         $meta['vat_class']  = !empty($save_item['vat_class']) ? sanitize_text_field($save_item['vat_class']) : '_standard';
377 377
         
@@ -381,9 +381,9 @@  discard block
 block discarded – undo
381 381
         $data['meta']           = $meta;
382 382
         
383 383
         $item = new WPInv_Item();
384
-        $item->create( $data );
384
+        $item->create($data);
385 385
         
386
-        if ( !empty( $item ) ) {
386
+        if (!empty($item)) {
387 387
             $_POST['item_id']   = $item->ID;
388 388
             $_POST['qty']       = !empty($save_item['qty']) && $save_item['qty'] > 0 ? (int)$save_item['qty'] : 1;
389 389
             
@@ -393,15 +393,15 @@  discard block
 block discarded – undo
393 393
     }
394 394
     
395 395
     public static function get_billing_details() {
396
-        check_ajax_referer( 'get-billing-details', '_nonce' );
396
+        check_ajax_referer('get-billing-details', '_nonce');
397 397
         
398
-        if ( !current_user_can( 'manage_options' ) ) {
398
+        if (!current_user_can('manage_options')) {
399 399
             die(-1);
400 400
         }
401 401
 
402 402
         $user_id            = (int)$_POST['user_id'];
403 403
         $billing_details    = wpinv_get_user_address($user_id);
404
-        $billing_details    = apply_filters( 'wpinv_fill_billing_details', $billing_details, $user_id );
404
+        $billing_details    = apply_filters('wpinv_fill_billing_details', $billing_details, $user_id);
405 405
         
406 406
         if (isset($billing_details['user_id'])) {
407 407
             unset($billing_details['user_id']);
@@ -415,20 +415,20 @@  discard block
 block discarded – undo
415 415
         $response['success']                    = true;
416 416
         $response['data']['billing_details']    = $billing_details;
417 417
         
418
-        wp_send_json( $response );
418
+        wp_send_json($response);
419 419
     }
420 420
     
421 421
     public static function admin_recalculate_totals() {
422 422
         global $wpi_userID, $wpinv_ip_address_country;
423 423
         
424
-        check_ajax_referer( 'wpinv-nonce', '_nonce' );
425
-        if ( !current_user_can( 'manage_options' ) ) {
424
+        check_ajax_referer('wpinv-nonce', '_nonce');
425
+        if (!current_user_can('manage_options')) {
426 426
             die(-1);
427 427
         }
428 428
         
429
-        $invoice_id = absint( $_POST['invoice_id'] );        
430
-        $invoice    = wpinv_get_invoice( $invoice_id );
431
-        if ( empty( $invoice ) ) {
429
+        $invoice_id = absint($_POST['invoice_id']);        
430
+        $invoice    = wpinv_get_invoice($invoice_id);
431
+        if (empty($invoice)) {
432 432
             die();
433 433
         }
434 434
         
@@ -436,23 +436,23 @@  discard block
 block discarded – undo
436 436
         
437 437
         $data                   = array();
438 438
         $data['invoice_id']     = $invoice_id;
439
-        $data['cart_discounts'] = $invoice->get_discounts( true );
439
+        $data['cart_discounts'] = $invoice->get_discounts(true);
440 440
         
441
-        wpinv_set_checkout_session( $data );
441
+        wpinv_set_checkout_session($data);
442 442
         
443
-        if ( !empty( $_POST['user_id'] ) ) {
444
-            $wpi_userID = absint( $_POST['user_id'] ); 
443
+        if (!empty($_POST['user_id'])) {
444
+            $wpi_userID = absint($_POST['user_id']); 
445 445
         }
446 446
         
447
-        if ( empty( $_POST['country'] ) ) {
447
+        if (empty($_POST['country'])) {
448 448
             $_POST['country'] = !empty($invoice->country) ? $invoice->country : wpinv_get_default_country();
449 449
         }
450 450
             
451
-        $invoice->country = sanitize_text_field( $_POST['country'] );
452
-        $invoice->set( 'country', sanitize_text_field( $_POST['country'] ) );
453
-        if ( isset( $_POST['state'] ) ) {
454
-            $invoice->state = sanitize_text_field( $_POST['state'] );
455
-            $invoice->set( 'state', sanitize_text_field( $_POST['state'] ) );
451
+        $invoice->country = sanitize_text_field($_POST['country']);
452
+        $invoice->set('country', sanitize_text_field($_POST['country']));
453
+        if (isset($_POST['state'])) {
454
+            $invoice->state = sanitize_text_field($_POST['state']);
455
+            $invoice->set('state', sanitize_text_field($_POST['state']));
456 456
         }
457 457
         
458 458
         $wpinv_ip_address_country = $invoice->country;
@@ -461,7 +461,7 @@  discard block
 block discarded – undo
461 461
         
462 462
         $response                       = array();
463 463
         $response['success']            = true;
464
-        $response['data']['items']      = wpinv_admin_get_line_items( $invoice );
464
+        $response['data']['items']      = wpinv_admin_get_line_items($invoice);
465 465
         $response['data']['subtotal']   = $invoice->get_subtotal();
466 466
         $response['data']['subtotalf']  = $invoice->get_subtotal(true);
467 467
         $response['data']['tax']        = $invoice->get_tax();
@@ -473,25 +473,25 @@  discard block
 block discarded – undo
473 473
         
474 474
         wpinv_set_checkout_session($checkout_session);
475 475
         
476
-        wp_send_json( $response );
476
+        wp_send_json($response);
477 477
     }
478 478
     
479 479
     public static function admin_apply_discount() {
480 480
         global $wpi_userID;
481 481
         
482
-        check_ajax_referer( 'wpinv-nonce', '_nonce' );
483
-        if ( !current_user_can( 'manage_options' ) ) {
482
+        check_ajax_referer('wpinv-nonce', '_nonce');
483
+        if (!current_user_can('manage_options')) {
484 484
             die(-1);
485 485
         }
486 486
         
487
-        $invoice_id = absint( $_POST['invoice_id'] );
488
-        $discount_code = sanitize_text_field( $_POST['code'] );
489
-        if ( empty( $invoice_id ) || empty( $discount_code ) ) {
487
+        $invoice_id = absint($_POST['invoice_id']);
488
+        $discount_code = sanitize_text_field($_POST['code']);
489
+        if (empty($invoice_id) || empty($discount_code)) {
490 490
             die();
491 491
         }
492 492
         
493
-        $invoice = wpinv_get_invoice( $invoice_id );
494
-        if ( empty( $invoice ) || ( !empty( $invoice ) && $invoice->is_paid() ) ) {
493
+        $invoice = wpinv_get_invoice($invoice_id);
494
+        if (empty($invoice) || (!empty($invoice) && $invoice->is_paid())) {
495 495
             die();
496 496
         }
497 497
         
@@ -499,49 +499,49 @@  discard block
 block discarded – undo
499 499
         
500 500
         $data                   = array();
501 501
         $data['invoice_id']     = $invoice_id;
502
-        $data['cart_discounts'] = $invoice->get_discounts( true );
502
+        $data['cart_discounts'] = $invoice->get_discounts(true);
503 503
         
504
-        wpinv_set_checkout_session( $data );
504
+        wpinv_set_checkout_session($data);
505 505
         
506 506
         $response               = array();
507 507
         $response['success']    = false;
508
-        $response['msg']        = __( 'This discount is invalid.', 'invoicing' );
508
+        $response['msg']        = __('This discount is invalid.', 'invoicing');
509 509
         $response['data']['code'] = $discount_code;
510 510
         
511
-        if ( wpinv_is_discount_valid( $discount_code, $invoice->get_user_id() ) ) {
512
-            $discounts = wpinv_set_cart_discount( $discount_code );
511
+        if (wpinv_is_discount_valid($discount_code, $invoice->get_user_id())) {
512
+            $discounts = wpinv_set_cart_discount($discount_code);
513 513
             
514 514
             $response['success'] = true;
515
-            $response['msg'] = __( 'Discount has been applied successfully.', 'invoicing' );
516
-        }  else {
515
+            $response['msg'] = __('Discount has been applied successfully.', 'invoicing');
516
+        } else {
517 517
             $errors = wpinv_get_errors();
518
-            if ( !empty( $errors['wpinv-discount-error'] ) ) {
518
+            if (!empty($errors['wpinv-discount-error'])) {
519 519
                 $response['msg'] = $errors['wpinv-discount-error'];
520 520
             }
521
-            wpinv_unset_error( 'wpinv-discount-error' );
521
+            wpinv_unset_error('wpinv-discount-error');
522 522
         }
523 523
         
524 524
         wpinv_set_checkout_session($checkout_session);
525 525
         
526
-        wp_send_json( $response );
526
+        wp_send_json($response);
527 527
     }
528 528
     
529 529
     public static function admin_remove_discount() {
530 530
         global $wpi_userID;
531 531
         
532
-        check_ajax_referer( 'wpinv-nonce', '_nonce' );
533
-        if ( !current_user_can( 'manage_options' ) ) {
532
+        check_ajax_referer('wpinv-nonce', '_nonce');
533
+        if (!current_user_can('manage_options')) {
534 534
             die(-1);
535 535
         }
536 536
         
537
-        $invoice_id = absint( $_POST['invoice_id'] );
538
-        $discount_code = sanitize_text_field( $_POST['code'] );
539
-        if ( empty( $invoice_id ) || empty( $discount_code ) ) {
537
+        $invoice_id = absint($_POST['invoice_id']);
538
+        $discount_code = sanitize_text_field($_POST['code']);
539
+        if (empty($invoice_id) || empty($discount_code)) {
540 540
             die();
541 541
         }
542 542
         
543
-        $invoice = wpinv_get_invoice( $invoice_id );
544
-        if ( empty( $invoice ) || ( !empty( $invoice ) && $invoice->is_paid() ) ) {
543
+        $invoice = wpinv_get_invoice($invoice_id);
544
+        if (empty($invoice) || (!empty($invoice) && $invoice->is_paid())) {
545 545
             die();
546 546
         }
547 547
         
@@ -549,38 +549,38 @@  discard block
 block discarded – undo
549 549
         
550 550
         $data                   = array();
551 551
         $data['invoice_id']     = $invoice_id;
552
-        $data['cart_discounts'] = $invoice->get_discounts( true );
552
+        $data['cart_discounts'] = $invoice->get_discounts(true);
553 553
         
554
-        wpinv_set_checkout_session( $data );
554
+        wpinv_set_checkout_session($data);
555 555
         
556 556
         $response               = array();
557 557
         $response['success']    = false;
558 558
         $response['msg']        = NULL;
559 559
         
560
-        $discounts  = wpinv_unset_cart_discount( $discount_code );
560
+        $discounts = wpinv_unset_cart_discount($discount_code);
561 561
         $response['success'] = true;
562
-        $response['msg'] = __( 'Discount has been removed successfully.', 'invoicing' );
562
+        $response['msg'] = __('Discount has been removed successfully.', 'invoicing');
563 563
         
564 564
         wpinv_set_checkout_session($checkout_session);
565 565
         
566
-        wp_send_json( $response );
566
+        wp_send_json($response);
567 567
     }
568 568
     
569 569
     public static function check_email() {
570
-        check_ajax_referer( 'wpinv-nonce', '_nonce' );
571
-        if ( !current_user_can( 'manage_options' ) ) {
570
+        check_ajax_referer('wpinv-nonce', '_nonce');
571
+        if (!current_user_can('manage_options')) {
572 572
             die(-1);
573 573
         }
574 574
         
575
-        $email = sanitize_text_field( $_POST['email'] );
575
+        $email = sanitize_text_field($_POST['email']);
576 576
         
577 577
         $response = array();
578
-        if ( is_email( $email ) && email_exists( $email ) && $user_data = get_user_by( 'email', $email ) ) {
578
+        if (is_email($email) && email_exists($email) && $user_data = get_user_by('email', $email)) {
579 579
             $user_id            = $user_data->ID;
580 580
             $user_login         = $user_data->user_login;
581 581
             $display_name       = $user_data->display_name ? $user_data->display_name : $user_login;
582 582
             $billing_details    = wpinv_get_user_address($user_id);
583
-            $billing_details    = apply_filters( 'wpinv_fill_billing_details', $billing_details, $user_id );
583
+            $billing_details    = apply_filters('wpinv_fill_billing_details', $billing_details, $user_id);
584 584
             
585 585
             if (isset($billing_details['user_id'])) {
586 586
                 unset($billing_details['user_id']);
@@ -596,31 +596,31 @@  discard block
 block discarded – undo
596 596
             $response['data']['billing_details']    = $billing_details;
597 597
         }
598 598
         
599
-        wp_send_json( $response );
599
+        wp_send_json($response);
600 600
     }
601 601
     
602 602
     public static function run_tool() {
603
-        check_ajax_referer( 'wpinv-nonce', '_nonce' );
604
-        if ( !current_user_can( 'manage_options' ) ) {
603
+        check_ajax_referer('wpinv-nonce', '_nonce');
604
+        if (!current_user_can('manage_options')) {
605 605
             die(-1);
606 606
         }
607 607
         
608
-        $tool = sanitize_text_field( $_POST['tool'] );
608
+        $tool = sanitize_text_field($_POST['tool']);
609 609
         
610
-        do_action( 'wpinv_run_tool' );
610
+        do_action('wpinv_run_tool');
611 611
         
612
-        if ( !empty( $tool ) ) {
613
-            do_action( 'wpinv_tool_' . $tool );
612
+        if (!empty($tool)) {
613
+            do_action('wpinv_tool_' . $tool);
614 614
         }
615 615
     }
616 616
     
617 617
     public static function apply_discount() {
618
-        check_ajax_referer( 'wpinv-nonce', '_nonce' );
618
+        check_ajax_referer('wpinv-nonce', '_nonce');
619 619
         
620 620
         $response = array();
621 621
         
622
-        if ( isset( $_POST['code'] ) ) {
623
-            $discount_code = sanitize_text_field( $_POST['code'] );
622
+        if (isset($_POST['code'])) {
623
+            $discount_code = sanitize_text_field($_POST['code']);
624 624
 
625 625
             $response['success']        = false;
626 626
             $response['msg']            = '';
@@ -628,14 +628,14 @@  discard block
 block discarded – undo
628 628
             
629 629
             $user = is_user_logged_in() ? get_current_user_id() : '';
630 630
 
631
-            if ( wpinv_is_discount_valid( $discount_code, $user ) ) {
632
-                $discount       = wpinv_get_discount_by_code( $discount_code );
633
-                $discounts      = wpinv_set_cart_discount( $discount_code );
634
-                $amount         = wpinv_format_discount_rate( wpinv_get_discount_type( $discount->ID ), wpinv_get_discount_amount( $discount->ID ) );
635
-                $total          = wpinv_get_cart_total( null, $discounts );
636
-                $cart_totals    = wpinv_recalculate_tax( true );
631
+            if (wpinv_is_discount_valid($discount_code, $user)) {
632
+                $discount       = wpinv_get_discount_by_code($discount_code);
633
+                $discounts      = wpinv_set_cart_discount($discount_code);
634
+                $amount         = wpinv_format_discount_rate(wpinv_get_discount_type($discount->ID), wpinv_get_discount_amount($discount->ID));
635
+                $total          = wpinv_get_cart_total(null, $discounts);
636
+                $cart_totals    = wpinv_recalculate_tax(true);
637 637
             
638
-                if ( !empty( $cart_totals ) ) {
638
+                if (!empty($cart_totals)) {
639 639
                     $response['success']        = true;
640 640
                     $response['data']           = $cart_totals;
641 641
                     $response['data']['code']   = $discount_code;
@@ -644,29 +644,29 @@  discard block
 block discarded – undo
644 644
                 }
645 645
             } else {
646 646
                 $errors = wpinv_get_errors();
647
-                $response['msg']  = $errors['wpinv-discount-error'];
648
-                wpinv_unset_error( 'wpinv-discount-error' );
647
+                $response['msg'] = $errors['wpinv-discount-error'];
648
+                wpinv_unset_error('wpinv-discount-error');
649 649
             }
650 650
 
651 651
             // Allow for custom discount code handling
652
-            $response = apply_filters( 'wpinv_ajax_discount_response', $response );
652
+            $response = apply_filters('wpinv_ajax_discount_response', $response);
653 653
         }
654 654
         
655
-        wp_send_json( $response );
655
+        wp_send_json($response);
656 656
     }
657 657
     
658 658
     public static function remove_discount() {
659
-        check_ajax_referer( 'wpinv-nonce', '_nonce' );
659
+        check_ajax_referer('wpinv-nonce', '_nonce');
660 660
         
661 661
         $response = array();
662 662
         
663
-        if ( isset( $_POST['code'] ) ) {
664
-            $discount_code  = sanitize_text_field( $_POST['code'] );
665
-            $discounts      = wpinv_unset_cart_discount( $discount_code );
666
-            $total          = wpinv_get_cart_total( null, $discounts );
667
-            $cart_totals    = wpinv_recalculate_tax( true );
663
+        if (isset($_POST['code'])) {
664
+            $discount_code  = sanitize_text_field($_POST['code']);
665
+            $discounts      = wpinv_unset_cart_discount($discount_code);
666
+            $total          = wpinv_get_cart_total(null, $discounts);
667
+            $cart_totals    = wpinv_recalculate_tax(true);
668 668
             
669
-            if ( !empty( $cart_totals ) ) {
669
+            if (!empty($cart_totals)) {
670 670
                 $response['success']        = true;
671 671
                 $response['data']           = $cart_totals;
672 672
                 $response['data']['code']   = $discount_code;
@@ -675,10 +675,10 @@  discard block
 block discarded – undo
675 675
             }
676 676
             
677 677
             // Allow for custom discount code handling
678
-            $response = apply_filters( 'wpinv_ajax_discount_response', $response );
678
+            $response = apply_filters('wpinv_ajax_discount_response', $response);
679 679
         }
680 680
         
681
-        wp_send_json( $response );
681
+        wp_send_json($response);
682 682
     }
683 683
 }
684 684
 
Please login to merge, or discard this patch.
includes/wpinv-post-types.php 2 patches
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -140,8 +140,8 @@  discard block
 block discarded – undo
140 140
 
141 141
 function wpinv_get_default_labels() {
142 142
     $defaults = array(
143
-       'singular' => __( 'Invoice', 'invoicing' ),
144
-       'plural'   => __( 'Invoices', 'invoicing' )
143
+        'singular' => __( 'Invoice', 'invoicing' ),
144
+        'plural'   => __( 'Invoices', 'invoicing' )
145 145
     );
146 146
     
147 147
     return apply_filters( 'wpinv_default_invoices_name', $defaults );
@@ -160,20 +160,20 @@  discard block
 block discarded – undo
160 160
 }
161 161
 
162 162
 function wpinv_change_default_title( $title ) {
163
-     if ( !is_admin() ) {
163
+        if ( !is_admin() ) {
164 164
         $label = wpinv_get_label_singular();
165 165
         $title = sprintf( __( 'Enter %s name here', 'invoicing' ), $label );
166 166
         return $title;
167
-     }
167
+        }
168 168
 
169
-     $screen = get_current_screen();
169
+        $screen = get_current_screen();
170 170
 
171
-     if ( 'wpi_invoice' == $screen->post_type ) {
171
+        if ( 'wpi_invoice' == $screen->post_type ) {
172 172
         $label = wpinv_get_label_singular();
173 173
         $title = sprintf( __( 'Enter %s name here', 'invoicing' ), $label );
174
-     }
174
+        }
175 175
 
176
-     return $title;
176
+        return $title;
177 177
 }
178 178
 add_filter( 'enter_title_here', 'wpinv_change_default_title' );
179 179
 
Please login to merge, or discard this patch.
Spacing   +96 added lines, -96 removed lines patch added patch discarded remove patch
@@ -7,36 +7,36 @@  discard block
 block discarded – undo
7 7
  */
8 8
  
9 9
 // MUST have WordPress.
10
-if ( !defined( 'WPINC' ) ) {
11
-    exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) );
10
+if (!defined('WPINC')) {
11
+    exit('Do NOT access this file directly: ' . basename(__FILE__));
12 12
 }
13 13
 
14
-add_action( 'init', 'wpinv_register_post_types', 1 );
14
+add_action('init', 'wpinv_register_post_types', 1);
15 15
 function wpinv_register_post_types() {    
16 16
     $labels = array(
17
-        'name'               => _x( 'Invoices', 'post type general name', 'invoicing' ),
18
-        'singular_name'      => _x( 'Invoice', 'post type singular name', 'invoicing' ),
19
-        'menu_name'          => _x( 'Invoices', 'admin menu', 'invoicing' ),
20
-        'name_admin_bar'     => _x( 'Invoice', 'add new on admin bar', 'invoicing' ),
21
-        'add_new'            => _x( 'Add New', 'book', 'invoicing' ),
22
-        'add_new_item'       => __( 'Add New Invoice', 'invoicing' ),
23
-        'new_item'           => __( 'New Invoice', 'invoicing' ),
24
-        'edit_item'          => __( 'Edit Invoice', 'invoicing' ),
25
-        'view_item'          => __( 'View Invoice', 'invoicing' ),
26
-        'all_items'          => __( 'Invoices', 'invoicing' ),
27
-        'search_items'       => __( 'Search Invoices', 'invoicing' ),
28
-        'parent_item_colon'  => __( 'Parent Invoices:', 'invoicing' ),
29
-        'not_found'          => __( 'No invoices found.', 'invoicing' ),
30
-        'not_found_in_trash' => __( 'No invoices found in trash.', 'invoicing' )
17
+        'name'               => _x('Invoices', 'post type general name', 'invoicing'),
18
+        'singular_name'      => _x('Invoice', 'post type singular name', 'invoicing'),
19
+        'menu_name'          => _x('Invoices', 'admin menu', 'invoicing'),
20
+        'name_admin_bar'     => _x('Invoice', 'add new on admin bar', 'invoicing'),
21
+        'add_new'            => _x('Add New', 'book', 'invoicing'),
22
+        'add_new_item'       => __('Add New Invoice', 'invoicing'),
23
+        'new_item'           => __('New Invoice', 'invoicing'),
24
+        'edit_item'          => __('Edit Invoice', 'invoicing'),
25
+        'view_item'          => __('View Invoice', 'invoicing'),
26
+        'all_items'          => __('Invoices', 'invoicing'),
27
+        'search_items'       => __('Search Invoices', 'invoicing'),
28
+        'parent_item_colon'  => __('Parent Invoices:', 'invoicing'),
29
+        'not_found'          => __('No invoices found.', 'invoicing'),
30
+        'not_found_in_trash' => __('No invoices found in trash.', 'invoicing')
31 31
     );
32
-    $labels = apply_filters( 'wpinv_labels', $labels );
32
+    $labels = apply_filters('wpinv_labels', $labels);
33 33
     
34 34
     $menu_icon = WPINV_PLUGIN_URL . '/assets/images/favicon.ico';
35
-    $menu_icon = apply_filters( 'wpinv_menu_icon_invoice', $menu_icon );
35
+    $menu_icon = apply_filters('wpinv_menu_icon_invoice', $menu_icon);
36 36
 
37 37
     $args = array(
38 38
         'labels'             => $labels,
39
-        'description'        => __( 'This is where invoices are stored.', 'invoicing' ),
39
+        'description'        => __('This is where invoices are stored.', 'invoicing'),
40 40
         'public'             => true,
41 41
         'can_export'         => true,
42 42
         '_builtin'           => false,
@@ -50,68 +50,68 @@  discard block
 block discarded – undo
50 50
         'has_archive'        => false,
51 51
         'hierarchical'       => false,
52 52
         'menu_position'      => null,
53
-        'supports'           => array( 'title', 'author' ),
53
+        'supports'           => array('title', 'author'),
54 54
         'menu_icon'          => $menu_icon,
55 55
     );
56 56
             
57
-    $args = apply_filters( 'wpinv_register_post_type_invoice', $args );
57
+    $args = apply_filters('wpinv_register_post_type_invoice', $args);
58 58
     
59
-    register_post_type( 'wpi_invoice', $args );
59
+    register_post_type('wpi_invoice', $args);
60 60
     
61 61
     $items_labels = array(
62
-        'name'               => _x( 'Items', 'post type general name', 'invoicing' ),
63
-        'singular_name'      => _x( 'Item', 'post type singular name', 'invoicing' ),
64
-        'menu_name'          => _x( 'Items', 'admin menu', 'invoicing' ),
65
-        'add_new'            => _x( 'Add New', 'wpi_item', 'invoicing' ),
66
-        'add_new_item'       => __( 'Add New Item', 'invoicing' ),
67
-        'new_item'           => __( 'New Item', 'invoicing' ),
68
-        'edit_item'          => __( 'Edit Item', 'invoicing' ),
69
-        'view_item'          => __( 'View Item', 'invoicing' ),
70
-        'all_items'          => __( 'Items', 'invoicing' ),
71
-        'search_items'       => __( 'Search Items', 'invoicing' ),
62
+        'name'               => _x('Items', 'post type general name', 'invoicing'),
63
+        'singular_name'      => _x('Item', 'post type singular name', 'invoicing'),
64
+        'menu_name'          => _x('Items', 'admin menu', 'invoicing'),
65
+        'add_new'            => _x('Add New', 'wpi_item', 'invoicing'),
66
+        'add_new_item'       => __('Add New Item', 'invoicing'),
67
+        'new_item'           => __('New Item', 'invoicing'),
68
+        'edit_item'          => __('Edit Item', 'invoicing'),
69
+        'view_item'          => __('View Item', 'invoicing'),
70
+        'all_items'          => __('Items', 'invoicing'),
71
+        'search_items'       => __('Search Items', 'invoicing'),
72 72
         'parent_item_colon'  => '',
73
-        'not_found'          => __( 'No items found.', 'invoicing' ),
74
-        'not_found_in_trash' => __( 'No items found in trash.', 'invoicing' )
73
+        'not_found'          => __('No items found.', 'invoicing'),
74
+        'not_found_in_trash' => __('No items found in trash.', 'invoicing')
75 75
     );
76
-    $items_labels = apply_filters( 'wpinv_items_labels', $items_labels );
76
+    $items_labels = apply_filters('wpinv_items_labels', $items_labels);
77 77
     
78 78
     $invoice_item_args = array(
79 79
         'labels'                => $items_labels,
80 80
         'public'                => false,
81 81
         'show_ui'               => true,
82 82
         'show_in_menu'          => 'wpinv',
83
-        'supports'              => array( 'title', 'excerpt' ),
83
+        'supports'              => array('title', 'excerpt'),
84 84
         'register_meta_box_cb'  => 'wpinv_register_item_meta_boxes',
85 85
         'rewrite'               => false,
86 86
         'query_var'             => false,
87 87
         'map_meta_cap'          => true,
88 88
         'can_export'            => true,
89 89
     );
90
-    $invoice_item_args = apply_filters( 'wpinv_register_post_type_invoice_item', $invoice_item_args );
90
+    $invoice_item_args = apply_filters('wpinv_register_post_type_invoice_item', $invoice_item_args);
91 91
 
92
-    register_post_type( 'wpi_item', $invoice_item_args );
92
+    register_post_type('wpi_item', $invoice_item_args);
93 93
     
94 94
     $labels = array(
95
-        'name'               => _x( 'Discounts', 'post type general name', 'invoicing' ),
96
-        'singular_name'      => _x( 'Discount', 'post type singular name', 'invoicing' ),
97
-        'menu_name'          => _x( 'Discounts', 'admin menu', 'invoicing' ),
98
-        'name_admin_bar'     => _x( 'Discount', 'add new on admin bar', 'invoicing' ),
99
-        'add_new'            => _x( 'Add New', 'book', 'invoicing' ),
100
-        'add_new_item'       => __( 'Add New Discount', 'invoicing' ),
101
-        'new_item'           => __( 'New Discount', 'invoicing' ),
102
-        'edit_item'          => __( 'Edit Discount', 'invoicing' ),
103
-        'view_item'          => __( 'View Discount', 'invoicing' ),
104
-        'all_items'          => __( 'Discounts', 'invoicing' ),
105
-        'search_items'       => __( 'Search Discounts', 'invoicing' ),
106
-        'parent_item_colon'  => __( 'Parent Discounts:', 'invoicing' ),
107
-        'not_found'          => __( 'No discounts found.', 'invoicing' ),
108
-        'not_found_in_trash' => __( 'No discounts found in trash.', 'invoicing' )
95
+        'name'               => _x('Discounts', 'post type general name', 'invoicing'),
96
+        'singular_name'      => _x('Discount', 'post type singular name', 'invoicing'),
97
+        'menu_name'          => _x('Discounts', 'admin menu', 'invoicing'),
98
+        'name_admin_bar'     => _x('Discount', 'add new on admin bar', 'invoicing'),
99
+        'add_new'            => _x('Add New', 'book', 'invoicing'),
100
+        'add_new_item'       => __('Add New Discount', 'invoicing'),
101
+        'new_item'           => __('New Discount', 'invoicing'),
102
+        'edit_item'          => __('Edit Discount', 'invoicing'),
103
+        'view_item'          => __('View Discount', 'invoicing'),
104
+        'all_items'          => __('Discounts', 'invoicing'),
105
+        'search_items'       => __('Search Discounts', 'invoicing'),
106
+        'parent_item_colon'  => __('Parent Discounts:', 'invoicing'),
107
+        'not_found'          => __('No discounts found.', 'invoicing'),
108
+        'not_found_in_trash' => __('No discounts found in trash.', 'invoicing')
109 109
     );
110
-    $labels = apply_filters( 'wpinv_discounts_labels', $labels );
110
+    $labels = apply_filters('wpinv_discounts_labels', $labels);
111 111
     
112 112
     $args = array(
113 113
         'labels'             => $labels,
114
-        'description'        => __( 'This is where you can add new discounts that users can use in invoices.', 'invoicing' ),
114
+        'description'        => __('This is where you can add new discounts that users can use in invoices.', 'invoicing'),
115 115
         'public'             => false,
116 116
         'can_export'         => true,
117 117
         '_builtin'           => false,
@@ -125,7 +125,7 @@  discard block
 block discarded – undo
125 125
         'map_meta_cap'       => true,
126 126
         'has_archive'        => false,
127 127
         'hierarchical'       => false,
128
-        'supports'           => array( 'title', 'excerpt' ),
128
+        'supports'           => array('title', 'excerpt'),
129 129
         'register_meta_box_cb'  => 'wpinv_register_discount_meta_boxes',
130 130
         'show_in_nav_menus'  => false,
131 131
         'show_in_admin_bar'  => true,
@@ -133,99 +133,99 @@  discard block
 block discarded – undo
133 133
         'menu_position'      => null,
134 134
     );
135 135
             
136
-    $args = apply_filters( 'wpinv_register_post_type_discount', $args );
136
+    $args = apply_filters('wpinv_register_post_type_discount', $args);
137 137
     
138
-    register_post_type( 'wpi_discount', $args );
138
+    register_post_type('wpi_discount', $args);
139 139
 }
140 140
 
141 141
 function wpinv_get_default_labels() {
142 142
     $defaults = array(
143
-       'singular' => __( 'Invoice', 'invoicing' ),
144
-       'plural'   => __( 'Invoices', 'invoicing' )
143
+       'singular' => __('Invoice', 'invoicing'),
144
+       'plural'   => __('Invoices', 'invoicing')
145 145
     );
146 146
     
147
-    return apply_filters( 'wpinv_default_invoices_name', $defaults );
147
+    return apply_filters('wpinv_default_invoices_name', $defaults);
148 148
 }
149 149
 
150
-function wpinv_get_label_singular( $lowercase = false ) {
150
+function wpinv_get_label_singular($lowercase = false) {
151 151
     $defaults = wpinv_get_default_labels();
152 152
     
153
-    return ($lowercase) ? strtolower( $defaults['singular'] ) : $defaults['singular'];
153
+    return ($lowercase) ? strtolower($defaults['singular']) : $defaults['singular'];
154 154
 }
155 155
 
156
-function wpinv_get_label_plural( $lowercase = false ) {
156
+function wpinv_get_label_plural($lowercase = false) {
157 157
     $defaults = wpinv_get_default_labels();
158 158
     
159
-    return ( $lowercase ) ? strtolower( $defaults['plural'] ) : $defaults['plural'];
159
+    return ($lowercase) ? strtolower($defaults['plural']) : $defaults['plural'];
160 160
 }
161 161
 
162
-function wpinv_change_default_title( $title ) {
163
-     if ( !is_admin() ) {
162
+function wpinv_change_default_title($title) {
163
+     if (!is_admin()) {
164 164
         $label = wpinv_get_label_singular();
165
-        $title = sprintf( __( 'Enter %s name here', 'invoicing' ), $label );
165
+        $title = sprintf(__('Enter %s name here', 'invoicing'), $label);
166 166
         return $title;
167 167
      }
168 168
 
169 169
      $screen = get_current_screen();
170 170
 
171
-     if ( 'wpi_invoice' == $screen->post_type ) {
171
+     if ('wpi_invoice' == $screen->post_type) {
172 172
         $label = wpinv_get_label_singular();
173
-        $title = sprintf( __( 'Enter %s name here', 'invoicing' ), $label );
173
+        $title = sprintf(__('Enter %s name here', 'invoicing'), $label);
174 174
      }
175 175
 
176 176
      return $title;
177 177
 }
178
-add_filter( 'enter_title_here', 'wpinv_change_default_title' );
178
+add_filter('enter_title_here', 'wpinv_change_default_title');
179 179
 
180 180
 function wpinv_register_post_status() {
181
-    register_post_status( 'wpi-processing', array(
182
-        'label'                     => _x( 'Processing', 'Invoice status', 'invoicing' ),
181
+    register_post_status('wpi-processing', array(
182
+        'label'                     => _x('Processing', 'Invoice status', 'invoicing'),
183 183
         'public'                    => true,
184 184
         'exclude_from_search'       => true,
185 185
         'show_in_admin_all_list'    => true,
186 186
         'show_in_admin_status_list' => true,
187
-        'label_count'               => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing' )
188
-    ) );
189
-    register_post_status( 'wpi-onhold', array(
190
-        'label'                     => _x( 'On Hold', 'Invoice status', 'invoicing' ),
187
+        'label_count'               => _n_noop('Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing')
188
+    ));
189
+    register_post_status('wpi-onhold', array(
190
+        'label'                     => _x('On Hold', 'Invoice status', 'invoicing'),
191 191
         'public'                    => true,
192 192
         'exclude_from_search'       => true,
193 193
         'show_in_admin_all_list'    => true,
194 194
         'show_in_admin_status_list' => true,
195
-        'label_count'               => _n_noop( 'On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing' )
196
-    ) );
197
-    register_post_status( 'wpi-cancelled', array(
198
-        'label'                     => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
195
+        'label_count'               => _n_noop('On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing')
196
+    ));
197
+    register_post_status('wpi-cancelled', array(
198
+        'label'                     => _x('Cancelled', 'Invoice status', 'invoicing'),
199 199
         'public'                    => true,
200 200
         'exclude_from_search'       => true,
201 201
         'show_in_admin_all_list'    => true,
202 202
         'show_in_admin_status_list' => true,
203
-        'label_count'               => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing' )
204
-    ) );
205
-    register_post_status( 'wpi-refunded', array(
206
-        'label'                     => _x( 'Refunded', 'Invoice status', 'invoicing' ),
203
+        'label_count'               => _n_noop('Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing')
204
+    ));
205
+    register_post_status('wpi-refunded', array(
206
+        'label'                     => _x('Refunded', 'Invoice status', 'invoicing'),
207 207
         'public'                    => true,
208 208
         'exclude_from_search'       => true,
209 209
         'show_in_admin_all_list'    => true,
210 210
         'show_in_admin_status_list' => true,
211
-        'label_count'               => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing' )
212
-    ) );
213
-    register_post_status( 'wpi-failed', array(
214
-        'label'                     => _x( 'Failed', 'Invoice status', 'invoicing' ),
211
+        'label_count'               => _n_noop('Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing')
212
+    ));
213
+    register_post_status('wpi-failed', array(
214
+        'label'                     => _x('Failed', 'Invoice status', 'invoicing'),
215 215
         'public'                    => true,
216 216
         'exclude_from_search'       => true,
217 217
         'show_in_admin_all_list'    => true,
218 218
         'show_in_admin_status_list' => true,
219
-        'label_count'               => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing' )
220
-    ) );
221
-    register_post_status( 'wpi-renewal', array(
222
-        'label'                     => _x( 'Renewal', 'Invoice status', 'invoicing' ),
219
+        'label_count'               => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing')
220
+    ));
221
+    register_post_status('wpi-renewal', array(
222
+        'label'                     => _x('Renewal', 'Invoice status', 'invoicing'),
223 223
         'public'                    => true,
224 224
         'exclude_from_search'       => true,
225 225
         'show_in_admin_all_list'    => true,
226 226
         'show_in_admin_status_list' => true,
227
-        'label_count'               => _n_noop( 'Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing' )
228
-    ) );
227
+        'label_count'               => _n_noop('Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing')
228
+    ));
229 229
 }
230
-add_action( 'init', 'wpinv_register_post_status', 10 );
230
+add_action('init', 'wpinv_register_post_status', 10);
231 231
 
Please login to merge, or discard this patch.
includes/class-wpinv-reports.php 2 patches
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -166,13 +166,13 @@
 block discarded – undo
166 166
             $is_writeable   = $is_dir && is_writeable( $this->export_dir );
167 167
             
168 168
             if ( $is_dir && $is_writeable ) {
169
-               return true;
169
+                return true;
170 170
             } else if ( $is_dir && !$is_writeable ) {
171
-               if ( !$this->wp_filesystem->chmod( $this->export_dir, FS_CHMOD_DIR ) ) {
172
-                   return wp_sprintf( __( 'Filesystem ERROR: Export location %s is not writable, check your file permissions.', 'invoicing' ), $this->export_dir );
173
-               }
171
+                if ( !$this->wp_filesystem->chmod( $this->export_dir, FS_CHMOD_DIR ) ) {
172
+                    return wp_sprintf( __( 'Filesystem ERROR: Export location %s is not writable, check your file permissions.', 'invoicing' ), $this->export_dir );
173
+                }
174 174
                
175
-               return true;
175
+                return true;
176 176
             } else {
177 177
                 if ( !$this->wp_filesystem->mkdir( $this->export_dir, FS_CHMOD_DIR ) ) {
178 178
                     return wp_sprintf( __( 'Filesystem ERROR: Could not create directory %s. This is usually due to inconsistent file permissions.', 'invoicing' ), $this->export_dir );
Please login to merge, or discard this patch.
Spacing   +169 added lines, -169 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) {
2
+if (!defined('ABSPATH')) {
3 3
     exit; // Exit if accessed directly
4 4
 }
5 5
 
@@ -21,68 +21,68 @@  discard block
 block discarded – undo
21 21
     public function init() {
22 22
         global $wp_filesystem;
23 23
 
24
-        if ( empty( $wp_filesystem ) ) {
25
-            require_once( ABSPATH . '/wp-admin/includes/file.php' );
24
+        if (empty($wp_filesystem)) {
25
+            require_once(ABSPATH . '/wp-admin/includes/file.php');
26 26
             WP_Filesystem();
27 27
             global $wp_filesystem;
28 28
         }
29 29
         $this->wp_filesystem    = $wp_filesystem;
30 30
         
31 31
         $this->export_dir       = $this->export_location();
32
-        $this->export_url       = $this->export_location( true );
32
+        $this->export_url       = $this->export_location(true);
33 33
         $this->export           = 'invoicing';
34 34
         $this->filetype         = 'csv';
35 35
         $this->per_page         = 20;
36 36
         
37
-        do_action( 'wpinv_class_reports_init', $this );
37
+        do_action('wpinv_class_reports_init', $this);
38 38
     }
39 39
     
40 40
     public function includes() {
41
-        do_action( 'wpinv_class_reports_includes', $this );
41
+        do_action('wpinv_class_reports_includes', $this);
42 42
     }
43 43
     
44 44
     public function actions() {
45
-        if ( is_admin() ) {
46
-            add_action( 'admin_menu', array( $this, 'add_submenu' ), 10 );
47
-            add_action( 'wpinv_reports_tab_export', array( $this, 'export' ) );
48
-            add_action( 'wp_ajax_wpinv_ajax_export', array( $this, 'ajax_export' ) );
45
+        if (is_admin()) {
46
+            add_action('admin_menu', array($this, 'add_submenu'), 10);
47
+            add_action('wpinv_reports_tab_export', array($this, 'export'));
48
+            add_action('wp_ajax_wpinv_ajax_export', array($this, 'ajax_export'));
49 49
             
50 50
             // Export Invoices.
51
-            add_action( 'wpinv_export_set_params_invoices', array( $this, 'set_invoices_export' ) );
52
-            add_filter( 'wpinv_export_get_columns_invoices', array( $this, 'get_invoices_columns' ) );
53
-            add_filter( 'wpinv_export_get_data_invoices', array( $this, 'get_invoices_data' ) );
54
-            add_filter( 'wpinv_get_export_status_invoices', array( $this, 'invoices_export_status' ) );
51
+            add_action('wpinv_export_set_params_invoices', array($this, 'set_invoices_export'));
52
+            add_filter('wpinv_export_get_columns_invoices', array($this, 'get_invoices_columns'));
53
+            add_filter('wpinv_export_get_data_invoices', array($this, 'get_invoices_data'));
54
+            add_filter('wpinv_get_export_status_invoices', array($this, 'invoices_export_status'));
55 55
         }
56
-        do_action( 'wpinv_class_reports_actions', $this );
56
+        do_action('wpinv_class_reports_actions', $this);
57 57
     }
58 58
     
59 59
     public function add_submenu() {
60 60
         global $wpi_reports_page;
61
-        $wpi_reports_page = add_submenu_page( 'wpinv', __( 'Reports', 'invoicing' ), __( 'Reports', 'invoicing' ), 'manage_options', 'wpinv-reports', array( $this, 'reports_page' ) );
61
+        $wpi_reports_page = add_submenu_page('wpinv', __('Reports', 'invoicing'), __('Reports', 'invoicing'), 'manage_options', 'wpinv-reports', array($this, 'reports_page'));
62 62
     }
63 63
     
64 64
     public function reports_page() {
65
-        if ( !wp_script_is( 'postbox', 'enqueued' ) ) {
66
-            wp_enqueue_script( 'postbox' );
65
+        if (!wp_script_is('postbox', 'enqueued')) {
66
+            wp_enqueue_script('postbox');
67 67
         }
68
-        if ( !wp_script_is( 'jquery-ui-datepicker', 'enqueued' ) ) {
69
-            wp_enqueue_script( 'jquery-ui-datepicker' );
68
+        if (!wp_script_is('jquery-ui-datepicker', 'enqueued')) {
69
+            wp_enqueue_script('jquery-ui-datepicker');
70 70
         }
71 71
         
72
-        $current_page = admin_url( 'admin.php?page=wpinv-reports' );
73
-        $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : 'export';
72
+        $current_page = admin_url('admin.php?page=wpinv-reports');
73
+        $active_tab = isset($_GET['tab']) ? sanitize_text_field($_GET['tab']) : 'export';
74 74
         ?>
75 75
         <div class="wrap wpi-reports-wrap">
76
-            <h1><?php echo esc_html( __( 'Reports', 'invoicing' ) ); ?></h1>
76
+            <h1><?php echo esc_html(__('Reports', 'invoicing')); ?></h1>
77 77
             <h2 class="nav-tab-wrapper wp-clearfix">
78
-                <a href="<?php echo add_query_arg( array( 'tab' => 'export', 'settings-updated' => false ), $current_page ); ?>" class="nav-tab <?php echo $active_tab == 'export' ? 'nav-tab-active' : ''; ?>"><?php _e( 'Export', 'invoicing' ); ?></a>
79
-                <?php do_action( 'wpinv_reports_page_tabs' ); ;?>
78
+                <a href="<?php echo add_query_arg(array('tab' => 'export', 'settings-updated' => false), $current_page); ?>" class="nav-tab <?php echo $active_tab == 'export' ? 'nav-tab-active' : ''; ?>"><?php _e('Export', 'invoicing'); ?></a>
79
+                <?php do_action('wpinv_reports_page_tabs'); ;?>
80 80
             </h2>
81 81
             <div class="wpi-reports-content wpi-reports-<?php echo $active_tab; ?>">
82 82
             <?php
83
-                do_action( 'wpinv_reports_page_top' );
84
-                do_action( 'wpinv_reports_tab_' . $active_tab );
85
-                do_action( 'wpinv_reports_page_bottom' );
83
+                do_action('wpinv_reports_page_top');
84
+                do_action('wpinv_reports_tab_' . $active_tab);
85
+                do_action('wpinv_reports_page_bottom');
86 86
             ?>
87 87
         </div>
88 88
         <?php
@@ -90,97 +90,97 @@  discard block
 block discarded – undo
90 90
     
91 91
     public function export() {
92 92
         $statuses = wpinv_get_invoice_statuses();
93
-        $statuses = array_merge( array( 'any' => __( 'All Statuses', 'invoicing' ) ), $statuses );
93
+        $statuses = array_merge(array('any' => __('All Statuses', 'invoicing')), $statuses);
94 94
         ?>
95 95
         <div class="metabox-holder">
96 96
             <div id="post-body">
97 97
                 <div id="post-body-content">
98
-                    <?php do_action( 'wpinv_reports_tab_export_content_top' ); ?>
98
+                    <?php do_action('wpinv_reports_tab_export_content_top'); ?>
99 99
                     
100 100
                     <div class="postbox wpi-export-invoices">
101
-                        <h2 class="hndle ui-sortabled-handle"><span><?php _e( 'Invoices','invoicing' ); ?></span></h2>
101
+                        <h2 class="hndle ui-sortabled-handle"><span><?php _e('Invoices', 'invoicing'); ?></span></h2>
102 102
                         <div class="inside">
103
-                            <p><?php _e( 'Download a CSV of all payment invoices.', 'invoicing' ); ?></p>
103
+                            <p><?php _e('Download a CSV of all payment invoices.', 'invoicing'); ?></p>
104 104
                             <form id="wpi-export-invoices" class="wpi-export-form" method="post">
105
-                                <?php echo wpinv_html_date_field( array( 
105
+                                <?php echo wpinv_html_date_field(array( 
106 106
                                     'id' => 'wpi_export_from_date', 
107 107
                                     'name' => 'from_date',
108 108
                                     'data' => array(
109 109
                                         'dateFormat' => 'yy-mm-dd'
110 110
                                     ),
111
-                                    'placeholder' => __( 'From date', 'invoicing' ) )
111
+                                    'placeholder' => __('From date', 'invoicing') )
112 112
                                 ); ?>
113
-                                <?php echo wpinv_html_date_field( array( 
113
+                                <?php echo wpinv_html_date_field(array( 
114 114
                                     'id' => 'wpi_export_to_date',
115 115
                                     'name' => 'to_date',
116 116
                                     'data' => array(
117 117
                                         'dateFormat' => 'yy-mm-dd'
118 118
                                     ),
119
-                                    'placeholder' => __( 'To date', 'invoicing' ) )
119
+                                    'placeholder' => __('To date', 'invoicing') )
120 120
                                 ); ?>
121 121
                                 <span id="wpinv-status-wrap">
122
-                                <?php echo wpinv_html_select( array(
122
+                                <?php echo wpinv_html_select(array(
123 123
                                     'options'          => $statuses,
124 124
                                     'name'             => 'status',
125 125
                                     'id'               => 'wpi_export_status',
126 126
                                     'show_option_all'  => false,
127 127
                                     'show_option_none' => false,
128 128
                                     'class'            => '',
129
-                                ) ); ?>
130
-                                <?php wp_nonce_field( 'wpi_ajax_export', 'wpi_ajax_export' ); ?>
129
+                                )); ?>
130
+                                <?php wp_nonce_field('wpi_ajax_export', 'wpi_ajax_export'); ?>
131 131
                                 </span>
132 132
                                 <span id="wpinv-submit-wrap">
133 133
                                     <input type="hidden" value="invoices" name="export" />
134
-                                    <input type="submit" value="<?php _e( 'Generate CSV', 'invoicing' ); ?>" class="button-primary" />
134
+                                    <input type="submit" value="<?php _e('Generate CSV', 'invoicing'); ?>" class="button-primary" />
135 135
                                 </span>
136 136
                             </form>
137 137
                         </div>
138 138
                     </div>
139 139
                     
140
-                    <?php do_action( 'wpinv_reports_tab_export_content_bottom' ); ?>
140
+                    <?php do_action('wpinv_reports_tab_export_content_bottom'); ?>
141 141
                 </div>
142 142
             </div>
143 143
         </div>
144 144
         <?php
145 145
     }
146 146
     
147
-    public function export_location( $relative = false ) {
147
+    public function export_location($relative = false) {
148 148
         $upload_dir         = wp_upload_dir();
149
-        $export_location    = $relative ? trailingslashit( $upload_dir['baseurl'] ) . 'cache' : trailingslashit( $upload_dir['basedir'] ) . 'cache';
150
-        $export_location    = apply_filters( 'wpinv_export_location', $export_location, $relative );
149
+        $export_location    = $relative ? trailingslashit($upload_dir['baseurl']) . 'cache' : trailingslashit($upload_dir['basedir']) . 'cache';
150
+        $export_location    = apply_filters('wpinv_export_location', $export_location, $relative);
151 151
         
152
-        return trailingslashit( $export_location );
152
+        return trailingslashit($export_location);
153 153
     }
154 154
     
155 155
     public function check_export_location() {
156 156
         try {
157
-            if ( empty( $this->wp_filesystem ) ) {
158
-                return __( 'Filesystem ERROR: Could not access filesystem.', 'invoicing' );
157
+            if (empty($this->wp_filesystem)) {
158
+                return __('Filesystem ERROR: Could not access filesystem.', 'invoicing');
159 159
             }
160 160
 
161
-            if ( is_wp_error( $this->wp_filesystem ) ) {
162
-                return __( 'Filesystem ERROR: ' . $this->wp_filesystem->get_error_message(), 'invoicing' );
161
+            if (is_wp_error($this->wp_filesystem)) {
162
+                return __('Filesystem ERROR: ' . $this->wp_filesystem->get_error_message(), 'invoicing');
163 163
             }
164 164
         
165
-            $is_dir         = $this->wp_filesystem->is_dir( $this->export_dir );
166
-            $is_writeable   = $is_dir && is_writeable( $this->export_dir );
165
+            $is_dir         = $this->wp_filesystem->is_dir($this->export_dir);
166
+            $is_writeable   = $is_dir && is_writeable($this->export_dir);
167 167
             
168
-            if ( $is_dir && $is_writeable ) {
168
+            if ($is_dir && $is_writeable) {
169 169
                return true;
170
-            } else if ( $is_dir && !$is_writeable ) {
171
-               if ( !$this->wp_filesystem->chmod( $this->export_dir, FS_CHMOD_DIR ) ) {
172
-                   return wp_sprintf( __( 'Filesystem ERROR: Export location %s is not writable, check your file permissions.', 'invoicing' ), $this->export_dir );
170
+            } else if ($is_dir && !$is_writeable) {
171
+               if (!$this->wp_filesystem->chmod($this->export_dir, FS_CHMOD_DIR)) {
172
+                   return wp_sprintf(__('Filesystem ERROR: Export location %s is not writable, check your file permissions.', 'invoicing'), $this->export_dir);
173 173
                }
174 174
                
175 175
                return true;
176 176
             } else {
177
-                if ( !$this->wp_filesystem->mkdir( $this->export_dir, FS_CHMOD_DIR ) ) {
178
-                    return wp_sprintf( __( 'Filesystem ERROR: Could not create directory %s. This is usually due to inconsistent file permissions.', 'invoicing' ), $this->export_dir );
177
+                if (!$this->wp_filesystem->mkdir($this->export_dir, FS_CHMOD_DIR)) {
178
+                    return wp_sprintf(__('Filesystem ERROR: Could not create directory %s. This is usually due to inconsistent file permissions.', 'invoicing'), $this->export_dir);
179 179
                 }
180 180
                 
181 181
                 return true;
182 182
             }
183
-        } catch ( Exception $e ) {
183
+        } catch (Exception $e) {
184 184
             return $e->getMessage();
185 185
         }
186 186
     }
@@ -188,130 +188,130 @@  discard block
 block discarded – undo
188 188
     public function ajax_export() {
189 189
         $response               = array();
190 190
         $response['success']    = false;
191
-        $response['msg']        = __( 'Invalid export request found.', 'invoicing' );
191
+        $response['msg']        = __('Invalid export request found.', 'invoicing');
192 192
         
193
-        if ( empty( $_POST['data'] ) || !current_user_can( 'manage_options' ) ) {
194
-            wp_send_json( $response );
193
+        if (empty($_POST['data']) || !current_user_can('manage_options')) {
194
+            wp_send_json($response);
195 195
         }
196 196
 
197
-        parse_str( $_POST['data'], $data );
197
+        parse_str($_POST['data'], $data);
198 198
         
199
-        $data['step']   = !empty( $_POST['step'] ) ? absint( $_POST['step'] ) : 1;
199
+        $data['step'] = !empty($_POST['step']) ? absint($_POST['step']) : 1;
200 200
 
201 201
         $_REQUEST = (array)$data;
202
-        if ( !( !empty( $_REQUEST['wpi_ajax_export'] ) && wp_verify_nonce( $_REQUEST['wpi_ajax_export'], 'wpi_ajax_export' ) ) ) {
203
-            $response['msg']    = __( 'Security check failed.', 'invoicing' );
204
-            wp_send_json( $response );
202
+        if (!(!empty($_REQUEST['wpi_ajax_export']) && wp_verify_nonce($_REQUEST['wpi_ajax_export'], 'wpi_ajax_export'))) {
203
+            $response['msg'] = __('Security check failed.', 'invoicing');
204
+            wp_send_json($response);
205 205
         }
206 206
         
207
-        if ( ( $error = $this->check_export_location( true ) ) !== true ) {
208
-            $response['msg'] = __( 'Filesystem ERROR: ' . $error, 'invoicing' );
209
-            wp_send_json( $response );
207
+        if (($error = $this->check_export_location(true)) !== true) {
208
+            $response['msg'] = __('Filesystem ERROR: ' . $error, 'invoicing');
209
+            wp_send_json($response);
210 210
         }
211 211
                         
212
-        $this->set_export_params( $_REQUEST );
212
+        $this->set_export_params($_REQUEST);
213 213
         
214 214
         $return = $this->process_export_step();
215 215
         $done   = $this->get_export_status();
216 216
         
217
-        if ( $return ) {
217
+        if ($return) {
218 218
             $this->step += 1;
219 219
             
220 220
             $response['success']    = true;
221 221
             $response['msg']        = '';
222 222
             
223
-            if ( $done >= 100 ) {
223
+            if ($done >= 100) {
224 224
                 $this->step     = 'done';
225
-                $new_filename   = 'wpi-' . $this->export . '-' . date( 'y-m-d-H-i' ) . '.' . $this->filetype;
225
+                $new_filename   = 'wpi-' . $this->export . '-' . date('y-m-d-H-i') . '.' . $this->filetype;
226 226
                 $new_file       = $this->export_dir . $new_filename;
227 227
                 
228
-                if ( file_exists( $this->file ) ) {
229
-                    $this->wp_filesystem->move( $this->file, $new_file, true );
228
+                if (file_exists($this->file)) {
229
+                    $this->wp_filesystem->move($this->file, $new_file, true);
230 230
                 }
231 231
                 
232
-                if ( file_exists( $new_file ) ) {
233
-                    $response['data']['file'] = array( 'u' => $this->export_url . $new_filename, 's' => size_format( filesize( $new_file ), 2 ) );
232
+                if (file_exists($new_file)) {
233
+                    $response['data']['file'] = array('u' => $this->export_url . $new_filename, 's' => size_format(filesize($new_file), 2));
234 234
                 }
235 235
             }
236 236
             
237 237
             $response['data']['step']   = $this->step;
238 238
             $response['data']['done']   = $done;
239 239
         } else {
240
-            $response['msg']    = __( 'No data found for export.', 'invoicing' );
240
+            $response['msg'] = __('No data found for export.', 'invoicing');
241 241
         }
242 242
 
243
-        wp_send_json( $response );
243
+        wp_send_json($response);
244 244
     }
245 245
     
246
-    public function set_export_params( $request ) {
246
+    public function set_export_params($request) {
247 247
         $this->empty    = false;
248
-        $this->step     = !empty( $request['step'] ) ? absint( $request['step'] ) : 1;
249
-        $this->export   = !empty( $request['export'] ) ? $request['export'] : $this->export;
248
+        $this->step     = !empty($request['step']) ? absint($request['step']) : 1;
249
+        $this->export   = !empty($request['export']) ? $request['export'] : $this->export;
250 250
         $this->filename = 'wpi-' . $this->export . '-' . $request['wpi_ajax_export'] . '.' . $this->filetype;
251 251
         $this->file     = $this->export_dir . $this->filename;
252 252
         
253
-        do_action( 'wpinv_export_set_params_' . $this->export, $request );
253
+        do_action('wpinv_export_set_params_' . $this->export, $request);
254 254
     }
255 255
     
256 256
     public function get_columns() {
257 257
         $columns = array(
258
-            'id'   => __( 'ID',   'invoicing' ),
259
-            'date' => __( 'Date', 'invoicing' )
258
+            'id'   => __('ID', 'invoicing'),
259
+            'date' => __('Date', 'invoicing')
260 260
         );
261 261
         
262
-        return apply_filters( 'wpinv_export_get_columns_' . $this->export, $columns );
262
+        return apply_filters('wpinv_export_get_columns_' . $this->export, $columns);
263 263
     }
264 264
     
265 265
     protected function get_export_file() {
266 266
         $file = '';
267 267
 
268
-        if ( $this->wp_filesystem->exists( $this->file ) ) {
269
-            $file = $this->wp_filesystem->get_contents( $this->file );
268
+        if ($this->wp_filesystem->exists($this->file)) {
269
+            $file = $this->wp_filesystem->get_contents($this->file);
270 270
         } else {
271
-            $this->wp_filesystem->put_contents( $this->file, '' );
271
+            $this->wp_filesystem->put_contents($this->file, '');
272 272
         }
273 273
 
274 274
         return $file;
275 275
     }
276 276
     
277
-    protected function attach_export_data( $data = '' ) {
278
-        $filedata   = $this->get_export_file();
279
-        $filedata   .= $data;
277
+    protected function attach_export_data($data = '') {
278
+        $filedata = $this->get_export_file();
279
+        $filedata .= $data;
280 280
         
281
-        $this->wp_filesystem->put_contents( $this->file, $filedata );
281
+        $this->wp_filesystem->put_contents($this->file, $filedata);
282 282
 
283
-        $rows       = file( $this->file, FILE_SKIP_EMPTY_LINES );
283
+        $rows       = file($this->file, FILE_SKIP_EMPTY_LINES);
284 284
         $columns    = $this->get_columns();
285
-        $columns    = empty( $columns ) ? 0 : 1;
285
+        $columns    = empty($columns) ? 0 : 1;
286 286
 
287
-        $this->empty = count( $rows ) == $columns ? true : false;
287
+        $this->empty = count($rows) == $columns ? true : false;
288 288
     }
289 289
     
290 290
     public function print_columns() {
291 291
         $column_data    = '';
292 292
         $columns        = $this->get_columns();
293 293
         $i              = 1;
294
-        foreach( $columns as $key => $column ) {
295
-            $column_data .= '"' . addslashes( $column ) . '"';
296
-            $column_data .= $i == count( $columns ) ? '' : ',';
294
+        foreach ($columns as $key => $column) {
295
+            $column_data .= '"' . addslashes($column) . '"';
296
+            $column_data .= $i == count($columns) ? '' : ',';
297 297
             $i++;
298 298
         }
299 299
         $column_data .= "\r\n";
300 300
 
301
-        $this->attach_export_data( $column_data );
301
+        $this->attach_export_data($column_data);
302 302
 
303 303
         return $column_data;
304 304
     }
305 305
     
306 306
     public function process_export_step() {
307
-        if ( $this->step < 2 ) {
308
-            @unlink( $this->file );
307
+        if ($this->step < 2) {
308
+            @unlink($this->file);
309 309
             $this->print_columns();
310 310
         }
311 311
         
312 312
         $return = $this->print_rows();
313 313
         
314
-        if ( $return ) {
314
+        if ($return) {
315 315
             return true;
316 316
         } else {
317 317
             return false;
@@ -320,23 +320,23 @@  discard block
 block discarded – undo
320 320
     
321 321
     public function get_export_status() {
322 322
         $status = 100;
323
-        return apply_filters( 'wpinv_get_export_status_' . $this->export, $status );
323
+        return apply_filters('wpinv_get_export_status_' . $this->export, $status);
324 324
     }
325 325
     
326 326
     public function get_export_data() {
327 327
         $data = array(
328 328
             0 => array(
329 329
                 'id'   => '',
330
-                'data' => date( 'F j, Y' )
330
+                'data' => date('F j, Y')
331 331
             ),
332 332
             1 => array(
333 333
                 'id'   => '',
334
-                'data' => date( 'F j, Y' )
334
+                'data' => date('F j, Y')
335 335
             )
336 336
         );
337 337
 
338
-        $data = apply_filters( 'wpinv_export_get_data', $data );
339
-        $data = apply_filters( 'wpinv_export_get_data_' . $this->export, $data );
338
+        $data = apply_filters('wpinv_export_get_data', $data);
339
+        $data = apply_filters('wpinv_export_get_data_' . $this->export, $data);
340 340
 
341 341
         return $data;
342 342
     }
@@ -346,20 +346,20 @@  discard block
 block discarded – undo
346 346
         $data       = $this->get_export_data();
347 347
         $columns    = $this->get_columns();
348 348
 
349
-        if ( $data ) {
350
-            foreach ( $data as $row ) {
349
+        if ($data) {
350
+            foreach ($data as $row) {
351 351
                 $i = 1;
352
-                foreach ( $row as $key => $column ) {
353
-                    if ( array_key_exists( $key, $columns ) ) {
354
-                        $row_data .= '"' . addslashes( preg_replace( "/\"/","'", $column ) ) . '"';
355
-                        $row_data .= $i == count( $columns ) ? '' : ',';
352
+                foreach ($row as $key => $column) {
353
+                    if (array_key_exists($key, $columns)) {
354
+                        $row_data .= '"' . addslashes(preg_replace("/\"/", "'", $column)) . '"';
355
+                        $row_data .= $i == count($columns) ? '' : ',';
356 356
                         $i++;
357 357
                     }
358 358
                 }
359 359
                 $row_data .= "\r\n";
360 360
             }
361 361
 
362
-            $this->attach_export_data( $row_data );
362
+            $this->attach_export_data($row_data);
363 363
 
364 364
             return $row_data;
365 365
         }
@@ -368,46 +368,46 @@  discard block
 block discarded – undo
368 368
     }
369 369
     
370 370
     // Export Invoices.
371
-    public function set_invoices_export( $request ) {
372
-        $this->from_date    = isset( $request['from_date'] ) ? sanitize_text_field( $request['from_date'] ) : '';
373
-        $this->to_date      = isset( $request['to_date'] ) ? sanitize_text_field( $request['to_date'] ) : '';
374
-        $this->status       = isset( $request['status'] ) ? sanitize_text_field( $request['status'] ) : 'publich';
371
+    public function set_invoices_export($request) {
372
+        $this->from_date    = isset($request['from_date']) ? sanitize_text_field($request['from_date']) : '';
373
+        $this->to_date      = isset($request['to_date']) ? sanitize_text_field($request['to_date']) : '';
374
+        $this->status       = isset($request['status']) ? sanitize_text_field($request['status']) : 'publich';
375 375
     }
376 376
     
377
-    public function get_invoices_columns( $columns = array() ) {
377
+    public function get_invoices_columns($columns = array()) {
378 378
         $columns = array(
379
-            'id'            => __( 'ID',   'invoicing' ),
380
-            'number'        => __( 'Number',   'invoicing' ),
381
-            'date'          => __( 'Date', 'invoicing' ),
382
-            'amount'        => __( 'Amount', 'invoicing' ),
383
-            'status_nicename'  => __( 'Status Nicename', 'invoicing' ),
384
-            'status'        => __( 'Status', 'invoicing' ),
385
-            'tax'           => __( 'Tax', 'invoicing' ),
386
-            'discount'      => __( 'Discount', 'invoicing' ),
387
-            'user_id'       => __( 'User ID', 'invoicing' ),
388
-            'email'         => __( 'Email', 'invoicing' ),
389
-            'first_name'    => __( 'First Name', 'invoicing' ),
390
-            'last_name'     => __( 'Last Name', 'invoicing' ),
391
-            'address'       => __( 'Address', 'invoicing' ),
392
-            'city'          => __( 'City', 'invoicing' ),
393
-            'state'         => __( 'State', 'invoicing' ),
394
-            'country'       => __( 'Country', 'invoicing' ),
395
-            'zip'           => __( 'Zipcode', 'invoicing' ),
396
-            'phone'         => __( 'Phone', 'invoicing' ),
397
-            'company'       => __( 'Company', 'invoicing' ),
398
-            'vat_number'    => __( 'Vat Number', 'invoicing' ),
399
-            'ip'            => __( 'IP', 'invoicing' ),
400
-            'gateway'       => __( 'Gateway', 'invoicing' ),
401
-            'gateway_nicename'       => __( 'Gateway Nicename', 'invoicing' ),
402
-            'transaction_id'=> __( 'Transaction ID', 'invoicing' ),
403
-            'currency'      => __( 'Currency', 'invoicing' ),
404
-            'due_date'      => __( 'Due Date', 'invoicing' ),
379
+            'id'            => __('ID', 'invoicing'),
380
+            'number'        => __('Number', 'invoicing'),
381
+            'date'          => __('Date', 'invoicing'),
382
+            'amount'        => __('Amount', 'invoicing'),
383
+            'status_nicename'  => __('Status Nicename', 'invoicing'),
384
+            'status'        => __('Status', 'invoicing'),
385
+            'tax'           => __('Tax', 'invoicing'),
386
+            'discount'      => __('Discount', 'invoicing'),
387
+            'user_id'       => __('User ID', 'invoicing'),
388
+            'email'         => __('Email', 'invoicing'),
389
+            'first_name'    => __('First Name', 'invoicing'),
390
+            'last_name'     => __('Last Name', 'invoicing'),
391
+            'address'       => __('Address', 'invoicing'),
392
+            'city'          => __('City', 'invoicing'),
393
+            'state'         => __('State', 'invoicing'),
394
+            'country'       => __('Country', 'invoicing'),
395
+            'zip'           => __('Zipcode', 'invoicing'),
396
+            'phone'         => __('Phone', 'invoicing'),
397
+            'company'       => __('Company', 'invoicing'),
398
+            'vat_number'    => __('Vat Number', 'invoicing'),
399
+            'ip'            => __('IP', 'invoicing'),
400
+            'gateway'       => __('Gateway', 'invoicing'),
401
+            'gateway_nicename'       => __('Gateway Nicename', 'invoicing'),
402
+            'transaction_id'=> __('Transaction ID', 'invoicing'),
403
+            'currency'      => __('Currency', 'invoicing'),
404
+            'due_date'      => __('Due Date', 'invoicing'),
405 405
         );
406 406
 
407 407
         return $columns;
408 408
     }
409 409
         
410
-    public function get_invoices_data( $response = array() ) {
410
+    public function get_invoices_data($response = array()) {
411 411
         $args = array(
412 412
             'limit'    => $this->per_page,
413 413
             'page'     => $this->step,
@@ -415,35 +415,35 @@  discard block
 block discarded – undo
415 415
             'orderby'  => 'date',
416 416
         );
417 417
         
418
-        if ( $this->status != 'any' ) {
418
+        if ($this->status != 'any') {
419 419
             $args['status'] = $this->status;
420 420
         }
421 421
 
422
-        if ( !empty( $this->from_date ) || !empty( $this->to_date ) ) {
422
+        if (!empty($this->from_date) || !empty($this->to_date)) {
423 423
             $args['date_query'] = array(
424 424
                 array(
425
-                    'after'     => date( 'Y-n-d 00:00:00', strtotime( $this->from_date ) ),
426
-                    'before'    => date( 'Y-n-d 23:59:59', strtotime( $this->to_date ) ),
425
+                    'after'     => date('Y-n-d 00:00:00', strtotime($this->from_date)),
426
+                    'before'    => date('Y-n-d 23:59:59', strtotime($this->to_date)),
427 427
                     'inclusive' => true
428 428
                 )
429 429
             );
430 430
         }
431 431
 
432
-        $invoices = wpinv_get_invoices( $args );
432
+        $invoices = wpinv_get_invoices($args);
433 433
         
434 434
         $data = array();
435 435
         
436
-        if ( !empty( $invoices ) ) {
437
-            foreach ( $invoices as $invoice ) {
436
+        if (!empty($invoices)) {
437
+            foreach ($invoices as $invoice) {
438 438
                 $row = array(
439 439
                     'id'            => $invoice->ID,
440 440
                     'number'        => $invoice->get_number(),
441
-                    'date'          => $invoice->get_invoice_date( false ),
442
-                    'amount'        => wpinv_round_amount( $invoice->get_total() ),
443
-                    'status_nicename' => $invoice->get_status( true ),
441
+                    'date'          => $invoice->get_invoice_date(false),
442
+                    'amount'        => wpinv_round_amount($invoice->get_total()),
443
+                    'status_nicename' => $invoice->get_status(true),
444 444
                     'status'        => $invoice->get_status(),
445
-                    'tax'           => $invoice->get_tax() > 0 ? wpinv_round_amount( $invoice->get_tax() ) : '',
446
-                    'discount'      => $invoice->get_discount() > 0 ? wpinv_round_amount( $invoice->get_discount() ) : '',
445
+                    'tax'           => $invoice->get_tax() > 0 ? wpinv_round_amount($invoice->get_tax()) : '',
446
+                    'discount'      => $invoice->get_discount() > 0 ? wpinv_round_amount($invoice->get_discount()) : '',
447 447
                     'user_id'       => $invoice->get_user_id(),
448 448
                     'email'         => $invoice->get_email(),
449 449
                     'first_name'    => $invoice->get_first_name(),
@@ -464,7 +464,7 @@  discard block
 block discarded – undo
464 464
                     'due_date'      => $invoice->needs_payment() ? $invoice->get_due_date() : '',
465 465
                 );
466 466
                 
467
-                $data[] = apply_filters( 'wpinv_export_invoice_row', $row, $invoice );
467
+                $data[] = apply_filters('wpinv_export_invoice_row', $row, $invoice);
468 468
             }
469 469
 
470 470
             return $data;
@@ -480,29 +480,29 @@  discard block
 block discarded – undo
480 480
             'return'   => 'ids',
481 481
         );
482 482
         
483
-        if ( $this->status != 'any' ) {
483
+        if ($this->status != 'any') {
484 484
             $args['status'] = $this->status;
485 485
         }
486 486
 
487
-        if ( !empty( $this->from_date ) || !empty( $this->to_date ) ) {
487
+        if (!empty($this->from_date) || !empty($this->to_date)) {
488 488
             $args['date_query'] = array(
489 489
                 array(
490
-                    'after'     => date( 'Y-n-d 00:00:00', strtotime( $this->from_date ) ),
491
-                    'before'    => date( 'Y-n-d 23:59:59', strtotime( $this->to_date ) ),
490
+                    'after'     => date('Y-n-d 00:00:00', strtotime($this->from_date)),
491
+                    'before'    => date('Y-n-d 23:59:59', strtotime($this->to_date)),
492 492
                     'inclusive' => true
493 493
                 )
494 494
             );
495 495
         }
496 496
 
497
-        $invoices   = wpinv_get_invoices( $args );
498
-        $total      = !empty( $invoices ) ? count( $invoices ) : 0;
497
+        $invoices   = wpinv_get_invoices($args);
498
+        $total      = !empty($invoices) ? count($invoices) : 0;
499 499
         $status     = 100;
500 500
 
501
-        if ( $total > 0 ) {
502
-            $status = ( ( $this->per_page * $this->step ) / $total ) * 100;
501
+        if ($total > 0) {
502
+            $status = (($this->per_page * $this->step) / $total) * 100;
503 503
         }
504 504
 
505
-        if ( $status > 100 ) {
505
+        if ($status > 100) {
506 506
             $status = 100;
507 507
         }
508 508
 
Please login to merge, or discard this patch.
includes/wpinv-helper-functions.php 3 patches
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -437,7 +437,7 @@
 block discarded – undo
437 437
 }
438 438
 
439 439
 function wpinv_get_php_arg_separator_output() {
440
-	return ini_get( 'arg_separator.output' );
440
+    return ini_get( 'arg_separator.output' );
441 441
 }
442 442
 
443 443
 function wpinv_rgb_from_hex( $color ) {
Please login to merge, or discard this patch.
Doc Comments   +31 added lines, -1 removed lines patch added patch discarded remove patch
@@ -31,6 +31,9 @@  discard block
 block discarded – undo
31 31
     return apply_filters( 'wpinv_get_ip', $ip );
32 32
 }
33 33
 
34
+/**
35
+ * @return string
36
+ */
34 37
 function wpinv_get_user_agent() {
35 38
     if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
36 39
         $user_agent = sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] );
@@ -41,6 +44,9 @@  discard block
 block discarded – undo
41 44
     return apply_filters( 'wpinv_get_user_agent', $user_agent );
42 45
 }
43 46
 
47
+/**
48
+ * @param integer $decimals
49
+ */
44 50
 function wpinv_sanitize_amount( $amount, $decimals = NULL ) {
45 51
     $is_negative   = false;
46 52
     $thousands_sep = wpinv_thousands_separator();
@@ -79,6 +85,9 @@  discard block
 block discarded – undo
79 85
 }
80 86
 add_filter( 'wpinv_sanitize_amount_decimals', 'wpinv_currency_decimal_filter', 10, 1 );
81 87
 
88
+/**
89
+ * @param integer $decimals
90
+ */
82 91
 function wpinv_round_amount( $amount, $decimals = NULL ) {
83 92
     if ( $decimals === NULL ) {
84 93
         $decimals = wpinv_decimals();
@@ -115,6 +124,9 @@  discard block
 block discarded – undo
115 124
     return $status;
116 125
 }
117 126
 
127
+/**
128
+ * @return string
129
+ */
118 130
 function wpinv_get_currency() {
119 131
     $currency = wpinv_get_option( 'currency', 'USD' );
120 132
     
@@ -185,6 +197,9 @@  discard block
 block discarded – undo
185 197
     return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency );
186 198
 }
187 199
 
200
+/**
201
+ * @return string
202
+ */
188 203
 function wpinv_currency_position() {
189 204
     $position = wpinv_get_option( 'currency_position', 'left' );
190 205
     
@@ -313,6 +328,9 @@  discard block
 block discarded – undo
313 328
     return $price;
314 329
 }
315 330
 
331
+/**
332
+ * @return string
333
+ */
316 334
 function wpinv_format_amount( $amount, $decimals = NULL, $calculate = false ) {
317 335
     $thousands_sep = wpinv_thousands_separator();
318 336
     $decimal_sep   = wpinv_decimal_separator();
@@ -363,6 +381,9 @@  discard block
 block discarded – undo
363 381
     return apply_filters( 'wpinv_sanitize_key', $key, $raw_key );
364 382
 }
365 383
 
384
+/**
385
+ * @return string
386
+ */
366 387
 function wpinv_get_file_extension( $str ) {
367 388
     $parts = explode( '.', $str );
368 389
     return end( $parts );
@@ -567,6 +588,9 @@  discard block
 block discarded – undo
567 588
     return strlen( $str );
568 589
 }
569 590
 
591
+/**
592
+ * @param string $str
593
+ */
570 594
 function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) {
571 595
     if ( function_exists( 'mb_strtolower' ) ) {
572 596
         return mb_strtolower( $str, $encoding );
@@ -575,6 +599,9 @@  discard block
 block discarded – undo
575 599
     return strtolower( $str );
576 600
 }
577 601
 
602
+/**
603
+ * @param string $str
604
+ */
578 605
 function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) {
579 606
     if ( function_exists( 'mb_strtoupper' ) ) {
580 607
         return mb_strtoupper( $str, $encoding );
@@ -652,7 +679,7 @@  discard block
 block discarded – undo
652 679
  *
653 680
  * @param string $str The string being decoded.
654 681
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
655
- * @return string The width of string.
682
+ * @return integer The width of string.
656 683
  */
657 684
 function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) {
658 685
     if ( function_exists( 'mb_strwidth' ) ) {
@@ -662,6 +689,9 @@  discard block
 block discarded – undo
662 689
     return wpinv_utf8_strlen( $str, $encoding );
663 690
 }
664 691
 
692
+/**
693
+ * @param string $str
694
+ */
665 695
 function wpinv_utf8_ucfirst( $str, $lower_str_end = false, $encoding = 'UTF-8' ) {
666 696
     if ( function_exists( 'mb_strlen' ) ) {
667 697
         $first_letter = wpinv_utf8_strtoupper( wpinv_utf8_substr( $str, 0, 1, $encoding ), $encoding );
Please login to merge, or discard this patch.
Spacing   +243 added lines, -243 removed lines patch added patch discarded remove patch
@@ -7,126 +7,126 @@  discard block
 block discarded – undo
7 7
  */
8 8
  
9 9
 // MUST have WordPress.
10
-if ( !defined( 'WPINC' ) ) {
11
-    exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) );
10
+if (!defined('WPINC')) {
11
+    exit('Do NOT access this file directly: ' . basename(__FILE__));
12 12
 }
13 13
 
14 14
 function wpinv_item_quantities_enabled() {
15
-    $ret = wpinv_get_option( 'item_quantities', true );
15
+    $ret = wpinv_get_option('item_quantities', true);
16 16
     
17
-    return (bool) apply_filters( 'wpinv_item_quantities_enabled', $ret );
17
+    return (bool)apply_filters('wpinv_item_quantities_enabled', $ret);
18 18
 }
19 19
 
20 20
 function wpinv_get_ip() {
21 21
     $ip = '127.0.0.1';
22 22
 
23
-    if ( !empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
24
-        $ip = sanitize_text_field( $_SERVER['HTTP_CLIENT_IP'] );
25
-    } elseif ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
26
-        $ip = sanitize_text_field( $_SERVER['HTTP_X_FORWARDED_FOR'] );
27
-    } elseif( !empty( $_SERVER['REMOTE_ADDR'] ) ) {
28
-        $ip = sanitize_text_field( $_SERVER['REMOTE_ADDR'] );
23
+    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
24
+        $ip = sanitize_text_field($_SERVER['HTTP_CLIENT_IP']);
25
+    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
26
+        $ip = sanitize_text_field($_SERVER['HTTP_X_FORWARDED_FOR']);
27
+    } elseif (!empty($_SERVER['REMOTE_ADDR'])) {
28
+        $ip = sanitize_text_field($_SERVER['REMOTE_ADDR']);
29 29
     }
30 30
     
31
-    return apply_filters( 'wpinv_get_ip', $ip );
31
+    return apply_filters('wpinv_get_ip', $ip);
32 32
 }
33 33
 
34 34
 function wpinv_get_user_agent() {
35
-    if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
36
-        $user_agent = sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] );
35
+    if (!empty($_SERVER['HTTP_USER_AGENT'])) {
36
+        $user_agent = sanitize_text_field($_SERVER['HTTP_USER_AGENT']);
37 37
     } else {
38 38
         $user_agent = '';
39 39
     }
40 40
     
41
-    return apply_filters( 'wpinv_get_user_agent', $user_agent );
41
+    return apply_filters('wpinv_get_user_agent', $user_agent);
42 42
 }
43 43
 
44
-function wpinv_sanitize_amount( $amount, $decimals = NULL ) {
44
+function wpinv_sanitize_amount($amount, $decimals = NULL) {
45 45
     $is_negative   = false;
46 46
     $thousands_sep = wpinv_thousands_separator();
47 47
     $decimal_sep   = wpinv_decimal_separator();
48
-    if ( $decimals === NULL ) {
48
+    if ($decimals === NULL) {
49 49
         $decimals = wpinv_decimals();
50 50
     }
51 51
 
52 52
     // Sanitize the amount
53
-    if ( $decimal_sep == ',' && false !== ( $found = strpos( $amount, $decimal_sep ) ) ) {
54
-        if ( ( $thousands_sep == '.' || $thousands_sep == ' ' ) && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) {
55
-            $amount = str_replace( $thousands_sep, '', $amount );
56
-        } elseif( empty( $thousands_sep ) && false !== ( $found = strpos( $amount, '.' ) ) ) {
57
-            $amount = str_replace( '.', '', $amount );
53
+    if ($decimal_sep == ',' && false !== ($found = strpos($amount, $decimal_sep))) {
54
+        if (($thousands_sep == '.' || $thousands_sep == ' ') && false !== ($found = strpos($amount, $thousands_sep))) {
55
+            $amount = str_replace($thousands_sep, '', $amount);
56
+        } elseif (empty($thousands_sep) && false !== ($found = strpos($amount, '.'))) {
57
+            $amount = str_replace('.', '', $amount);
58 58
         }
59 59
 
60
-        $amount = str_replace( $decimal_sep, '.', $amount );
61
-    } elseif( $thousands_sep == ',' && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) {
62
-        $amount = str_replace( $thousands_sep, '', $amount );
60
+        $amount = str_replace($decimal_sep, '.', $amount);
61
+    } elseif ($thousands_sep == ',' && false !== ($found = strpos($amount, $thousands_sep))) {
62
+        $amount = str_replace($thousands_sep, '', $amount);
63 63
     }
64 64
 
65
-    if( $amount < 0 ) {
65
+    if ($amount < 0) {
66 66
         $is_negative = true;
67 67
     }
68 68
 
69
-    $amount   = preg_replace( '/[^0-9\.]/', '', $amount );
69
+    $amount   = preg_replace('/[^0-9\.]/', '', $amount);
70 70
 
71
-    $decimals = apply_filters( 'wpinv_sanitize_amount_decimals', absint( $decimals ), $amount );
72
-    $amount   = number_format( (double) $amount, absint( $decimals ), '.', '' );
71
+    $decimals = apply_filters('wpinv_sanitize_amount_decimals', absint($decimals), $amount);
72
+    $amount   = number_format((double)$amount, absint($decimals), '.', '');
73 73
 
74
-    if( $is_negative ) {
74
+    if ($is_negative) {
75 75
         $amount *= -1;
76 76
     }
77 77
 
78
-    return apply_filters( 'wpinv_sanitize_amount', $amount, $decimals );
78
+    return apply_filters('wpinv_sanitize_amount', $amount, $decimals);
79 79
 }
80
-add_filter( 'wpinv_sanitize_amount_decimals', 'wpinv_currency_decimal_filter', 10, 1 );
80
+add_filter('wpinv_sanitize_amount_decimals', 'wpinv_currency_decimal_filter', 10, 1);
81 81
 
82
-function wpinv_round_amount( $amount, $decimals = NULL ) {
83
-    if ( $decimals === NULL ) {
82
+function wpinv_round_amount($amount, $decimals = NULL) {
83
+    if ($decimals === NULL) {
84 84
         $decimals = wpinv_decimals();
85 85
     }
86 86
     
87
-    $amount = round( (double)$amount, wpinv_currency_decimal_filter( absint( $decimals ) ) );
87
+    $amount = round((double)$amount, wpinv_currency_decimal_filter(absint($decimals)));
88 88
 
89
-    return apply_filters( 'wpinv_round_amount', $amount, $decimals );
89
+    return apply_filters('wpinv_round_amount', $amount, $decimals);
90 90
 }
91 91
 
92
-function wpinv_get_invoice_statuses( $trashed = false ) {
92
+function wpinv_get_invoice_statuses($trashed = false) {
93 93
     $invoice_statuses = array(
94
-        'pending'       => __( 'Pending Payment', 'invoicing' ),
95
-        'publish'       => __( 'Paid', 'invoicing' ),
96
-        'wpi-processing'    => __( 'Processing', 'invoicing' ),
97
-        'wpi-onhold'        => __( 'On Hold', 'invoicing' ),
98
-        'wpi-refunded'      => __( 'Refunded', 'invoicing' ),
99
-        'wpi-cancelled'     => __( 'Cancelled', 'invoicing' ),
100
-        'wpi-failed'        => __( 'Failed', 'invoicing' ),
101
-        'wpi-renewal'       => __( 'Renewal Payment', 'invoicing' )
94
+        'pending'       => __('Pending Payment', 'invoicing'),
95
+        'publish'       => __('Paid', 'invoicing'),
96
+        'wpi-processing'    => __('Processing', 'invoicing'),
97
+        'wpi-onhold'        => __('On Hold', 'invoicing'),
98
+        'wpi-refunded'      => __('Refunded', 'invoicing'),
99
+        'wpi-cancelled'     => __('Cancelled', 'invoicing'),
100
+        'wpi-failed'        => __('Failed', 'invoicing'),
101
+        'wpi-renewal'       => __('Renewal Payment', 'invoicing')
102 102
     );
103 103
     
104
-    if ( $trashed ) {
105
-        $invoice_statuses['trash'] = __( 'Trash', 'invoicing' );
104
+    if ($trashed) {
105
+        $invoice_statuses['trash'] = __('Trash', 'invoicing');
106 106
     }
107 107
 
108
-    return apply_filters( 'wpinv_statuses', $invoice_statuses );
108
+    return apply_filters('wpinv_statuses', $invoice_statuses);
109 109
 }
110 110
 
111
-function wpinv_status_nicename( $status ) {
111
+function wpinv_status_nicename($status) {
112 112
     $statuses = wpinv_get_invoice_statuses();
113
-    $status   = isset( $statuses[$status] ) ? $statuses[$status] : __( $status, 'invoicing' );
113
+    $status   = isset($statuses[$status]) ? $statuses[$status] : __($status, 'invoicing');
114 114
 
115 115
     return $status;
116 116
 }
117 117
 
118 118
 function wpinv_get_currency() {
119
-    $currency = wpinv_get_option( 'currency', 'USD' );
119
+    $currency = wpinv_get_option('currency', 'USD');
120 120
     
121
-    return apply_filters( 'wpinv_currency', $currency );
121
+    return apply_filters('wpinv_currency', $currency);
122 122
 }
123 123
 
124
-function wpinv_currency_symbol( $currency = '' ) {
125
-    if ( empty( $currency ) ) {
124
+function wpinv_currency_symbol($currency = '') {
125
+    if (empty($currency)) {
126 126
         $currency = wpinv_get_currency();
127 127
     }
128 128
     
129
-    $symbols = apply_filters( 'wpinv_currency_symbols', array(
129
+    $symbols = apply_filters('wpinv_currency_symbols', array(
130 130
         'AED' => 'د.إ',
131 131
         'ARS' => '&#36;',
132 132
         'AUD' => '&#36;',
@@ -178,78 +178,78 @@  discard block
 block discarded – undo
178 178
         'USD' => '&#36;',
179 179
         'VND' => '&#8363;',
180 180
         'ZAR' => '&#82;',
181
-    ) );
181
+    ));
182 182
 
183
-    $currency_symbol = isset( $symbols[$currency] ) ? $symbols[$currency] : '&#36;';
183
+    $currency_symbol = isset($symbols[$currency]) ? $symbols[$currency] : '&#36;';
184 184
 
185
-    return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency );
185
+    return apply_filters('wpinv_currency_symbol', $currency_symbol, $currency);
186 186
 }
187 187
 
188 188
 function wpinv_currency_position() {
189
-    $position = wpinv_get_option( 'currency_position', 'left' );
189
+    $position = wpinv_get_option('currency_position', 'left');
190 190
     
191
-    return apply_filters( 'wpinv_currency_position', $position );
191
+    return apply_filters('wpinv_currency_position', $position);
192 192
 }
193 193
 
194 194
 function wpinv_thousands_separator() {
195
-    $thousand_sep = wpinv_get_option( 'thousands_separator', ',' );
195
+    $thousand_sep = wpinv_get_option('thousands_separator', ',');
196 196
     
197
-    return apply_filters( 'wpinv_thousands_separator', $thousand_sep );
197
+    return apply_filters('wpinv_thousands_separator', $thousand_sep);
198 198
 }
199 199
 
200 200
 function wpinv_decimal_separator() {
201
-    $decimal_sep = wpinv_get_option( 'decimal_separator', '.' );
201
+    $decimal_sep = wpinv_get_option('decimal_separator', '.');
202 202
     
203
-    return apply_filters( 'wpinv_decimal_separator', $decimal_sep );
203
+    return apply_filters('wpinv_decimal_separator', $decimal_sep);
204 204
 }
205 205
 
206 206
 function wpinv_decimals() {
207
-    $decimals = apply_filters( 'wpinv_decimals', wpinv_get_option( 'decimals', 2 ) );
207
+    $decimals = apply_filters('wpinv_decimals', wpinv_get_option('decimals', 2));
208 208
     
209
-    return absint( $decimals );
209
+    return absint($decimals);
210 210
 }
211 211
 
212 212
 function wpinv_get_currencies() {
213 213
     $currencies = array(
214
-        'USD'  => __( 'US Dollars (&#36;)', 'invoicing' ),
215
-        'EUR'  => __( 'Euros (&euro;)', 'invoicing' ),
216
-        'GBP'  => __( 'Pounds Sterling (&pound;)', 'invoicing' ),
217
-        'AUD'  => __( 'Australian Dollars (&#36;)', 'invoicing' ),
218
-        'BRL'  => __( 'Brazilian Real (R&#36;)', 'invoicing' ),
219
-        'CAD'  => __( 'Canadian Dollars (&#36;)', 'invoicing' ),
220
-        'CLP'  => __( 'Chilean Peso (&#36;)', 'invoicing' ),
221
-        'CNY'  => __( 'Chinese Yuan (&yen;)', 'invoicing' ),
222
-        'CZK'  => __( 'Czech Koruna (&#75;&#269;)', 'invoicing' ),
223
-        'DKK'  => __( 'Danish Krone (DKK)', 'invoicing' ),
224
-        'HKD'  => __( 'Hong Kong Dollar (&#36;)', 'invoicing' ),
225
-        'HUF'  => __( 'Hungarian Forint (&#70;&#116;)', 'invoicing' ),
226
-        'INR'  => __( 'Indian Rupee (&#8377;)', 'invoicing' ),
227
-        'ILS'  => __( 'Israeli Shekel (&#8362;)', 'invoicing' ),
228
-        'JPY'  => __( 'Japanese Yen (&yen;)', 'invoicing' ),
229
-        'MYR'  => __( 'Malaysian Ringgit (&#82;&#77;)', 'invoicing' ),
230
-        'MXN'  => __( 'Mexican Peso (&#36;)', 'invoicing' ),
231
-        'NZD'  => __( 'New Zealand Dollar (&#36;)', 'invoicing' ),
232
-        'NOK'  => __( 'Norwegian Krone (&#107;&#114;)', 'invoicing' ),
233
-        'PHP'  => __( 'Philippine Peso (&#8369;)', 'invoicing' ),
234
-        'PLN'  => __( 'Polish Zloty (&#122;&#322;)', 'invoicing' ),
235
-        'SGD'  => __( 'Singapore Dollar (&#36;)', 'invoicing' ),
236
-        'SEK'  => __( 'Swedish Krona (&#107;&#114;)', 'invoicing' ),
237
-        'CHF'  => __( 'Swiss Franc (&#67;&#72;&#70;)', 'invoicing' ),
238
-        'TWD'  => __( 'Taiwan New Dollar (&#78;&#84;&#36;)', 'invoicing' ),
239
-        'THB'  => __( 'Thai Baht (&#3647;)', 'invoicing' ),
240
-        'TRY'  => __( 'Turkish Lira (&#8378;)', 'invoicing' ),
241
-        'RIAL' => __( 'Iranian Rial (&#65020;)', 'invoicing' ),
242
-        'RUB'  => __( 'Russian Ruble (&#8381;)', 'invoicing' ),
243
-        'ZAR'  => __( 'South African Rand (&#82;)', 'invoicing' )
214
+        'USD'  => __('US Dollars (&#36;)', 'invoicing'),
215
+        'EUR'  => __('Euros (&euro;)', 'invoicing'),
216
+        'GBP'  => __('Pounds Sterling (&pound;)', 'invoicing'),
217
+        'AUD'  => __('Australian Dollars (&#36;)', 'invoicing'),
218
+        'BRL'  => __('Brazilian Real (R&#36;)', 'invoicing'),
219
+        'CAD'  => __('Canadian Dollars (&#36;)', 'invoicing'),
220
+        'CLP'  => __('Chilean Peso (&#36;)', 'invoicing'),
221
+        'CNY'  => __('Chinese Yuan (&yen;)', 'invoicing'),
222
+        'CZK'  => __('Czech Koruna (&#75;&#269;)', 'invoicing'),
223
+        'DKK'  => __('Danish Krone (DKK)', 'invoicing'),
224
+        'HKD'  => __('Hong Kong Dollar (&#36;)', 'invoicing'),
225
+        'HUF'  => __('Hungarian Forint (&#70;&#116;)', 'invoicing'),
226
+        'INR'  => __('Indian Rupee (&#8377;)', 'invoicing'),
227
+        'ILS'  => __('Israeli Shekel (&#8362;)', 'invoicing'),
228
+        'JPY'  => __('Japanese Yen (&yen;)', 'invoicing'),
229
+        'MYR'  => __('Malaysian Ringgit (&#82;&#77;)', 'invoicing'),
230
+        'MXN'  => __('Mexican Peso (&#36;)', 'invoicing'),
231
+        'NZD'  => __('New Zealand Dollar (&#36;)', 'invoicing'),
232
+        'NOK'  => __('Norwegian Krone (&#107;&#114;)', 'invoicing'),
233
+        'PHP'  => __('Philippine Peso (&#8369;)', 'invoicing'),
234
+        'PLN'  => __('Polish Zloty (&#122;&#322;)', 'invoicing'),
235
+        'SGD'  => __('Singapore Dollar (&#36;)', 'invoicing'),
236
+        'SEK'  => __('Swedish Krona (&#107;&#114;)', 'invoicing'),
237
+        'CHF'  => __('Swiss Franc (&#67;&#72;&#70;)', 'invoicing'),
238
+        'TWD'  => __('Taiwan New Dollar (&#78;&#84;&#36;)', 'invoicing'),
239
+        'THB'  => __('Thai Baht (&#3647;)', 'invoicing'),
240
+        'TRY'  => __('Turkish Lira (&#8378;)', 'invoicing'),
241
+        'RIAL' => __('Iranian Rial (&#65020;)', 'invoicing'),
242
+        'RUB'  => __('Russian Ruble (&#8381;)', 'invoicing'),
243
+        'ZAR'  => __('South African Rand (&#82;)', 'invoicing')
244 244
     );
245 245
     
246
-    asort( $currencies );
246
+    asort($currencies);
247 247
 
248
-    return apply_filters( 'wpinv_currencies', $currencies );
248
+    return apply_filters('wpinv_currencies', $currencies);
249 249
 }
250 250
 
251
-function wpinv_price( $amount = '', $currency = '' ) {
252
-    if( empty( $currency ) ) {
251
+function wpinv_price($amount = '', $currency = '') {
252
+    if (empty($currency)) {
253 253
         $currency = wpinv_get_currency();
254 254
     }
255 255
 
@@ -257,14 +257,14 @@  discard block
 block discarded – undo
257 257
 
258 258
     $negative = $amount < 0;
259 259
 
260
-    if ( $negative ) {
261
-        $amount = substr( $amount, 1 );
260
+    if ($negative) {
261
+        $amount = substr($amount, 1);
262 262
     }
263 263
 
264
-    $symbol = wpinv_currency_symbol( $currency );
264
+    $symbol = wpinv_currency_symbol($currency);
265 265
 
266
-    if ( $position == 'left' || $position == 'left_space' ) {
267
-        switch ( $currency ) {
266
+    if ($position == 'left' || $position == 'left_space') {
267
+        switch ($currency) {
268 268
             case "GBP" :
269 269
             case "BRL" :
270 270
             case "EUR" :
@@ -276,15 +276,15 @@  discard block
 block discarded – undo
276 276
             case "NZD" :
277 277
             case "SGD" :
278 278
             case "JPY" :
279
-                $price = $position == 'left_space' ? $symbol . ' ' .  $amount : $symbol . $amount;
279
+                $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount;
280 280
                 break;
281 281
             default :
282 282
                 //$price = $currency . ' ' . $amount;
283
-                $price = $position == 'left_space' ? $symbol . ' ' .  $amount : $symbol . $amount;
283
+                $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount;
284 284
                 break;
285 285
         }
286 286
     } else {
287
-        switch ( $currency ) {
287
+        switch ($currency) {
288 288
             case "GBP" :
289 289
             case "BRL" :
290 290
             case "EUR" :
@@ -295,83 +295,83 @@  discard block
 block discarded – undo
295 295
             case "MXN" :
296 296
             case "SGD" :
297 297
             case "JPY" :
298
-                $price = $position == 'right_space' ? $amount . ' ' .  $symbol : $amount . $symbol;
298
+                $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol;
299 299
                 break;
300 300
             default :
301 301
                 //$price = $amount . ' ' . $currency;
302
-                $price = $position == 'right_space' ? $amount . ' ' .  $symbol : $amount . $symbol;
302
+                $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol;
303 303
                 break;
304 304
         }
305 305
     }
306 306
     
307
-    if ( $negative ) {
307
+    if ($negative) {
308 308
         $price = '-' . $price;
309 309
     }
310 310
     
311
-    $price = apply_filters( 'wpinv_' . strtolower( $currency ) . '_currency_filter_' . $position, $price, $currency, $amount );
311
+    $price = apply_filters('wpinv_' . strtolower($currency) . '_currency_filter_' . $position, $price, $currency, $amount);
312 312
 
313 313
     return $price;
314 314
 }
315 315
 
316
-function wpinv_format_amount( $amount, $decimals = NULL, $calculate = false ) {
316
+function wpinv_format_amount($amount, $decimals = NULL, $calculate = false) {
317 317
     $thousands_sep = wpinv_thousands_separator();
318 318
     $decimal_sep   = wpinv_decimal_separator();
319 319
 
320
-    if ( $decimals === NULL ) {
320
+    if ($decimals === NULL) {
321 321
         $decimals = wpinv_decimals();
322 322
     }
323 323
 
324
-    if ( $decimal_sep == ',' && false !== ( $sep_found = strpos( $amount, $decimal_sep ) ) ) {
325
-        $whole = substr( $amount, 0, $sep_found );
326
-        $part = substr( $amount, $sep_found + 1, ( strlen( $amount ) - 1 ) );
324
+    if ($decimal_sep == ',' && false !== ($sep_found = strpos($amount, $decimal_sep))) {
325
+        $whole = substr($amount, 0, $sep_found);
326
+        $part = substr($amount, $sep_found + 1, (strlen($amount) - 1));
327 327
         $amount = $whole . '.' . $part;
328 328
     }
329 329
 
330
-    if ( $thousands_sep == ',' && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) {
331
-        $amount = str_replace( ',', '', $amount );
330
+    if ($thousands_sep == ',' && false !== ($found = strpos($amount, $thousands_sep))) {
331
+        $amount = str_replace(',', '', $amount);
332 332
     }
333 333
 
334
-    if ( $thousands_sep == ' ' && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) {
335
-        $amount = str_replace( ' ', '', $amount );
334
+    if ($thousands_sep == ' ' && false !== ($found = strpos($amount, $thousands_sep))) {
335
+        $amount = str_replace(' ', '', $amount);
336 336
     }
337 337
 
338
-    if ( empty( $amount ) ) {
338
+    if (empty($amount)) {
339 339
         $amount = 0;
340 340
     }
341 341
     
342
-    $decimals  = apply_filters( 'wpinv_amount_format_decimals', $decimals ? $decimals : 0, $amount, $calculate );
343
-    $formatted = number_format( (float)$amount, $decimals, $decimal_sep, $thousands_sep );
342
+    $decimals  = apply_filters('wpinv_amount_format_decimals', $decimals ? $decimals : 0, $amount, $calculate);
343
+    $formatted = number_format((float)$amount, $decimals, $decimal_sep, $thousands_sep);
344 344
     
345
-    if ( $calculate ) {
346
-        if ( $thousands_sep === "," ) {
347
-            $formatted = str_replace( ",", "", $formatted );
345
+    if ($calculate) {
346
+        if ($thousands_sep === ",") {
347
+            $formatted = str_replace(",", "", $formatted);
348 348
         }
349 349
         
350
-        if ( $decimal_sep === "," ) {
351
-            $formatted = str_replace( ",", ".", $formatted );
350
+        if ($decimal_sep === ",") {
351
+            $formatted = str_replace(",", ".", $formatted);
352 352
         }
353 353
     }
354 354
 
355
-    return apply_filters( 'wpinv_amount_format', $formatted, $amount, $decimals, $decimal_sep, $thousands_sep, $calculate );
355
+    return apply_filters('wpinv_amount_format', $formatted, $amount, $decimals, $decimal_sep, $thousands_sep, $calculate);
356 356
 }
357
-add_filter( 'wpinv_amount_format_decimals', 'wpinv_currency_decimal_filter', 10, 1 );
357
+add_filter('wpinv_amount_format_decimals', 'wpinv_currency_decimal_filter', 10, 1);
358 358
 
359
-function wpinv_sanitize_key( $key ) {
359
+function wpinv_sanitize_key($key) {
360 360
     $raw_key = $key;
361
-    $key = preg_replace( '/[^a-zA-Z0-9_\-\.\:\/]/', '', $key );
361
+    $key = preg_replace('/[^a-zA-Z0-9_\-\.\:\/]/', '', $key);
362 362
 
363
-    return apply_filters( 'wpinv_sanitize_key', $key, $raw_key );
363
+    return apply_filters('wpinv_sanitize_key', $key, $raw_key);
364 364
 }
365 365
 
366
-function wpinv_get_file_extension( $str ) {
367
-    $parts = explode( '.', $str );
368
-    return end( $parts );
366
+function wpinv_get_file_extension($str) {
367
+    $parts = explode('.', $str);
368
+    return end($parts);
369 369
 }
370 370
 
371
-function wpinv_string_is_image_url( $str ) {
372
-    $ext = wpinv_get_file_extension( $str );
371
+function wpinv_string_is_image_url($str) {
372
+    $ext = wpinv_get_file_extension($str);
373 373
 
374
-    switch ( strtolower( $ext ) ) {
374
+    switch (strtolower($ext)) {
375 375
         case 'jpeg';
376 376
         case 'jpg';
377 377
             $return = true;
@@ -387,32 +387,32 @@  discard block
 block discarded – undo
387 387
             break;
388 388
     }
389 389
 
390
-    return (bool)apply_filters( 'wpinv_string_is_image', $return, $str );
390
+    return (bool)apply_filters('wpinv_string_is_image', $return, $str);
391 391
 }
392 392
 
393
-function wpinv_error_log( $log, $title = '', $file = '', $line = '', $exit = false ) {
394
-    $should_log = apply_filters( 'wpinv_log_errors', WP_DEBUG );
393
+function wpinv_error_log($log, $title = '', $file = '', $line = '', $exit = false) {
394
+    $should_log = apply_filters('wpinv_log_errors', WP_DEBUG);
395 395
     
396
-    if ( true === $should_log ) {
396
+    if (true === $should_log) {
397 397
         $label = '';
398
-        if ( $file && $file !== '' ) {
399
-            $label .= basename( $file ) . ( $line ? '(' . $line . ')' : '' );
398
+        if ($file && $file !== '') {
399
+            $label .= basename($file) . ($line ? '(' . $line . ')' : '');
400 400
         }
401 401
         
402
-        if ( $title && $title !== '' ) {
402
+        if ($title && $title !== '') {
403 403
             $label = $label !== '' ? $label . ' ' : '';
404 404
             $label .= $title . ' ';
405 405
         }
406 406
         
407
-        $label = $label !== '' ? trim( $label ) . ' : ' : '';
407
+        $label = $label !== '' ? trim($label) . ' : ' : '';
408 408
         
409
-        if ( is_array( $log ) || is_object( $log ) ) {
410
-            error_log( $label . print_r( $log, true ) );
409
+        if (is_array($log) || is_object($log)) {
410
+            error_log($label . print_r($log, true));
411 411
         } else {
412
-            error_log( $label . $log );
412
+            error_log($label . $log);
413 413
         }
414 414
         
415
-        if ( $exit ) {
415
+        if ($exit) {
416 416
             exit;
417 417
         }
418 418
     }
@@ -420,65 +420,65 @@  discard block
 block discarded – undo
420 420
 
421 421
 function wpinv_is_ajax_disabled() {
422 422
     $retval = false;
423
-    return apply_filters( 'wpinv_is_ajax_disabled', $retval );
423
+    return apply_filters('wpinv_is_ajax_disabled', $retval);
424 424
 }
425 425
 
426
-function wpinv_get_current_page_url( $nocache = false ) {
426
+function wpinv_get_current_page_url($nocache = false) {
427 427
     global $wp;
428 428
 
429
-    if ( get_option( 'permalink_structure' ) ) {
430
-        $base = trailingslashit( home_url( $wp->request ) );
429
+    if (get_option('permalink_structure')) {
430
+        $base = trailingslashit(home_url($wp->request));
431 431
     } else {
432
-        $base = add_query_arg( $wp->query_string, '', trailingslashit( home_url( $wp->request ) ) );
433
-        $base = remove_query_arg( array( 'post_type', 'name' ), $base );
432
+        $base = add_query_arg($wp->query_string, '', trailingslashit(home_url($wp->request)));
433
+        $base = remove_query_arg(array('post_type', 'name'), $base);
434 434
     }
435 435
 
436 436
     $scheme = is_ssl() ? 'https' : 'http';
437
-    $uri    = set_url_scheme( $base, $scheme );
437
+    $uri    = set_url_scheme($base, $scheme);
438 438
 
439
-    if ( is_front_page() ) {
440
-        $uri = home_url( '/' );
441
-    } elseif ( wpinv_is_checkout( array(), false ) ) {
439
+    if (is_front_page()) {
440
+        $uri = home_url('/');
441
+    } elseif (wpinv_is_checkout(array(), false)) {
442 442
         $uri = wpinv_get_checkout_uri();
443 443
     }
444 444
 
445
-    $uri = apply_filters( 'wpinv_get_current_page_url', $uri );
445
+    $uri = apply_filters('wpinv_get_current_page_url', $uri);
446 446
 
447
-    if ( $nocache ) {
448
-        $uri = wpinv_add_cache_busting( $uri );
447
+    if ($nocache) {
448
+        $uri = wpinv_add_cache_busting($uri);
449 449
     }
450 450
 
451 451
     return $uri;
452 452
 }
453 453
 
454 454
 function wpinv_get_php_arg_separator_output() {
455
-	return ini_get( 'arg_separator.output' );
455
+	return ini_get('arg_separator.output');
456 456
 }
457 457
 
458
-function wpinv_rgb_from_hex( $color ) {
459
-    $color = str_replace( '#', '', $color );
458
+function wpinv_rgb_from_hex($color) {
459
+    $color = str_replace('#', '', $color);
460 460
     // Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF"
461
-    $color = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color );
461
+    $color = preg_replace('~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color);
462 462
 
463 463
     $rgb      = array();
464
-    $rgb['R'] = hexdec( $color{0}.$color{1} );
465
-    $rgb['G'] = hexdec( $color{2}.$color{3} );
466
-    $rgb['B'] = hexdec( $color{4}.$color{5} );
464
+    $rgb['R'] = hexdec($color{0} . $color{1} );
465
+    $rgb['G'] = hexdec($color{2} . $color{3} );
466
+    $rgb['B'] = hexdec($color{4} . $color{5} );
467 467
 
468 468
     return $rgb;
469 469
 }
470 470
 
471
-function wpinv_hex_darker( $color, $factor = 30 ) {
472
-    $base  = wpinv_rgb_from_hex( $color );
471
+function wpinv_hex_darker($color, $factor = 30) {
472
+    $base  = wpinv_rgb_from_hex($color);
473 473
     $color = '#';
474 474
 
475
-    foreach ( $base as $k => $v ) {
475
+    foreach ($base as $k => $v) {
476 476
         $amount      = $v / 100;
477
-        $amount      = round( $amount * $factor );
477
+        $amount      = round($amount * $factor);
478 478
         $new_decimal = $v - $amount;
479 479
 
480
-        $new_hex_component = dechex( $new_decimal );
481
-        if ( strlen( $new_hex_component ) < 2 ) {
480
+        $new_hex_component = dechex($new_decimal);
481
+        if (strlen($new_hex_component) < 2) {
482 482
             $new_hex_component = "0" . $new_hex_component;
483 483
         }
484 484
         $color .= $new_hex_component;
@@ -487,18 +487,18 @@  discard block
 block discarded – undo
487 487
     return $color;
488 488
 }
489 489
 
490
-function wpinv_hex_lighter( $color, $factor = 30 ) {
491
-    $base  = wpinv_rgb_from_hex( $color );
490
+function wpinv_hex_lighter($color, $factor = 30) {
491
+    $base  = wpinv_rgb_from_hex($color);
492 492
     $color = '#';
493 493
 
494
-    foreach ( $base as $k => $v ) {
494
+    foreach ($base as $k => $v) {
495 495
         $amount      = 255 - $v;
496 496
         $amount      = $amount / 100;
497
-        $amount      = round( $amount * $factor );
497
+        $amount      = round($amount * $factor);
498 498
         $new_decimal = $v + $amount;
499 499
 
500
-        $new_hex_component = dechex( $new_decimal );
501
-        if ( strlen( $new_hex_component ) < 2 ) {
500
+        $new_hex_component = dechex($new_decimal);
501
+        if (strlen($new_hex_component) < 2) {
502 502
             $new_hex_component = "0" . $new_hex_component;
503 503
         }
504 504
         $color .= $new_hex_component;
@@ -507,22 +507,22 @@  discard block
 block discarded – undo
507 507
     return $color;
508 508
 }
509 509
 
510
-function wpinv_light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) {
511
-    $hex = str_replace( '#', '', $color );
510
+function wpinv_light_or_dark($color, $dark = '#000000', $light = '#FFFFFF') {
511
+    $hex = str_replace('#', '', $color);
512 512
 
513
-    $c_r = hexdec( substr( $hex, 0, 2 ) );
514
-    $c_g = hexdec( substr( $hex, 2, 2 ) );
515
-    $c_b = hexdec( substr( $hex, 4, 2 ) );
513
+    $c_r = hexdec(substr($hex, 0, 2));
514
+    $c_g = hexdec(substr($hex, 2, 2));
515
+    $c_b = hexdec(substr($hex, 4, 2));
516 516
 
517
-    $brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000;
517
+    $brightness = (($c_r * 299) + ($c_g * 587) + ($c_b * 114)) / 1000;
518 518
 
519 519
     return $brightness > 155 ? $dark : $light;
520 520
 }
521 521
 
522
-function wpinv_format_hex( $hex ) {
523
-    $hex = trim( str_replace( '#', '', $hex ) );
522
+function wpinv_format_hex($hex) {
523
+    $hex = trim(str_replace('#', '', $hex));
524 524
 
525
-    if ( strlen( $hex ) == 3 ) {
525
+    if (strlen($hex) == 3) {
526 526
         $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2];
527 527
     }
528 528
 
@@ -542,12 +542,12 @@  discard block
 block discarded – undo
542 542
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
543 543
  * @return string
544 544
  */
545
-function wpinv_utf8_strimwidth( $str, $start, $width, $trimmaker = '', $encoding = 'UTF-8' ) {
546
-    if ( function_exists( 'mb_strimwidth' ) ) {
547
-        return mb_strimwidth( $str, $start, $width, $trimmaker, $encoding );
545
+function wpinv_utf8_strimwidth($str, $start, $width, $trimmaker = '', $encoding = 'UTF-8') {
546
+    if (function_exists('mb_strimwidth')) {
547
+        return mb_strimwidth($str, $start, $width, $trimmaker, $encoding);
548 548
     }
549 549
     
550
-    return wpinv_utf8_substr( $str, $start, $width, $encoding ) . $trimmaker;
550
+    return wpinv_utf8_substr($str, $start, $width, $encoding) . $trimmaker;
551 551
 }
552 552
 
553 553
 /**
@@ -559,28 +559,28 @@  discard block
 block discarded – undo
559 559
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
560 560
  * @return int Returns the number of characters in string.
561 561
  */
562
-function wpinv_utf8_strlen( $str, $encoding = 'UTF-8' ) {
563
-    if ( function_exists( 'mb_strlen' ) ) {
564
-        return mb_strlen( $str, $encoding );
562
+function wpinv_utf8_strlen($str, $encoding = 'UTF-8') {
563
+    if (function_exists('mb_strlen')) {
564
+        return mb_strlen($str, $encoding);
565 565
     }
566 566
         
567
-    return strlen( $str );
567
+    return strlen($str);
568 568
 }
569 569
 
570
-function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) {
571
-    if ( function_exists( 'mb_strtolower' ) ) {
572
-        return mb_strtolower( $str, $encoding );
570
+function wpinv_utf8_strtolower($str, $encoding = 'UTF-8') {
571
+    if (function_exists('mb_strtolower')) {
572
+        return mb_strtolower($str, $encoding);
573 573
     }
574 574
     
575
-    return strtolower( $str );
575
+    return strtolower($str);
576 576
 }
577 577
 
578
-function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) {
579
-    if ( function_exists( 'mb_strtoupper' ) ) {
580
-        return mb_strtoupper( $str, $encoding );
578
+function wpinv_utf8_strtoupper($str, $encoding = 'UTF-8') {
579
+    if (function_exists('mb_strtoupper')) {
580
+        return mb_strtoupper($str, $encoding);
581 581
     }
582 582
     
583
-    return strtoupper( $str );
583
+    return strtoupper($str);
584 584
 }
585 585
 
586 586
 /**
@@ -594,12 +594,12 @@  discard block
 block discarded – undo
594 594
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
595 595
  * @return int Returns the position of the first occurrence of search in the string.
596 596
  */
597
-function wpinv_utf8_strpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) {
598
-    if ( function_exists( 'mb_strpos' ) ) {
599
-        return mb_strpos( $str, $find, $offset, $encoding );
597
+function wpinv_utf8_strpos($str, $find, $offset = 0, $encoding = 'UTF-8') {
598
+    if (function_exists('mb_strpos')) {
599
+        return mb_strpos($str, $find, $offset, $encoding);
600 600
     }
601 601
         
602
-    return strpos( $str, $find, $offset );
602
+    return strpos($str, $find, $offset);
603 603
 }
604 604
 
605 605
 /**
@@ -613,12 +613,12 @@  discard block
 block discarded – undo
613 613
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
614 614
  * @return int Returns the position of the last occurrence of search.
615 615
  */
616
-function wpinv_utf8_strrpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) {
617
-    if ( function_exists( 'mb_strrpos' ) ) {
618
-        return mb_strrpos( $str, $find, $offset, $encoding );
616
+function wpinv_utf8_strrpos($str, $find, $offset = 0, $encoding = 'UTF-8') {
617
+    if (function_exists('mb_strrpos')) {
618
+        return mb_strrpos($str, $find, $offset, $encoding);
619 619
     }
620 620
         
621
-    return strrpos( $str, $find, $offset );
621
+    return strrpos($str, $find, $offset);
622 622
 }
623 623
 
624 624
 /**
@@ -633,16 +633,16 @@  discard block
 block discarded – undo
633 633
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
634 634
  * @return string
635 635
  */
636
-function wpinv_utf8_substr( $str, $start, $length = null, $encoding = 'UTF-8' ) {
637
-    if ( function_exists( 'mb_substr' ) ) {
638
-        if ( $length === null ) {
639
-            return mb_substr( $str, $start, wpinv_utf8_strlen( $str, $encoding ), $encoding );
636
+function wpinv_utf8_substr($str, $start, $length = null, $encoding = 'UTF-8') {
637
+    if (function_exists('mb_substr')) {
638
+        if ($length === null) {
639
+            return mb_substr($str, $start, wpinv_utf8_strlen($str, $encoding), $encoding);
640 640
         } else {
641
-            return mb_substr( $str, $start, $length, $encoding );
641
+            return mb_substr($str, $start, $length, $encoding);
642 642
         }
643 643
     }
644 644
         
645
-    return substr( $str, $start, $length );
645
+    return substr($str, $start, $length);
646 646
 }
647 647
 
648 648
 /**
@@ -654,48 +654,48 @@  discard block
 block discarded – undo
654 654
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
655 655
  * @return string The width of string.
656 656
  */
657
-function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) {
658
-    if ( function_exists( 'mb_strwidth' ) ) {
659
-        return mb_strwidth( $str, $encoding );
657
+function wpinv_utf8_strwidth($str, $encoding = 'UTF-8') {
658
+    if (function_exists('mb_strwidth')) {
659
+        return mb_strwidth($str, $encoding);
660 660
     }
661 661
     
662
-    return wpinv_utf8_strlen( $str, $encoding );
662
+    return wpinv_utf8_strlen($str, $encoding);
663 663
 }
664 664
 
665
-function wpinv_utf8_ucfirst( $str, $lower_str_end = false, $encoding = 'UTF-8' ) {
666
-    if ( function_exists( 'mb_strlen' ) ) {
667
-        $first_letter = wpinv_utf8_strtoupper( wpinv_utf8_substr( $str, 0, 1, $encoding ), $encoding );
665
+function wpinv_utf8_ucfirst($str, $lower_str_end = false, $encoding = 'UTF-8') {
666
+    if (function_exists('mb_strlen')) {
667
+        $first_letter = wpinv_utf8_strtoupper(wpinv_utf8_substr($str, 0, 1, $encoding), $encoding);
668 668
         $str_end = "";
669 669
         
670
-        if ( $lower_str_end ) {
671
-            $str_end = wpinv_utf8_strtolower( wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding ), $encoding );
670
+        if ($lower_str_end) {
671
+            $str_end = wpinv_utf8_strtolower(wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding), $encoding);
672 672
         } else {
673
-            $str_end = wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding );
673
+            $str_end = wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding);
674 674
         }
675 675
 
676 676
         return $first_letter . $str_end;
677 677
     }
678 678
     
679
-    return ucfirst( $str );
679
+    return ucfirst($str);
680 680
 }
681 681
 
682
-function wpinv_utf8_ucwords( $str, $encoding = 'UTF-8' ) {
683
-    if ( function_exists( 'mb_convert_case' ) ) {
684
-        return mb_convert_case( $str, MB_CASE_TITLE, $encoding );
682
+function wpinv_utf8_ucwords($str, $encoding = 'UTF-8') {
683
+    if (function_exists('mb_convert_case')) {
684
+        return mb_convert_case($str, MB_CASE_TITLE, $encoding);
685 685
     }
686 686
     
687
-    return ucwords( $str );
687
+    return ucwords($str);
688 688
 }
689 689
 
690
-function wpinv_period_in_days( $period, $unit ) {
691
-    $period = absint( $period );
690
+function wpinv_period_in_days($period, $unit) {
691
+    $period = absint($period);
692 692
     
693
-    if ( $period > 0 ) {
694
-        if ( in_array( strtolower( $unit ), array( 'w', 'week', 'weeks' ) ) ) {
693
+    if ($period > 0) {
694
+        if (in_array(strtolower($unit), array('w', 'week', 'weeks'))) {
695 695
             $period = $period * 7;
696
-        } else if ( in_array( strtolower( $unit ), array( 'm', 'month', 'months' ) ) ) {
696
+        } else if (in_array(strtolower($unit), array('m', 'month', 'months'))) {
697 697
             $period = $period * 30;
698
-        } else if ( in_array( strtolower( $unit ), array( 'y', 'year', 'years' ) ) ) {
698
+        } else if (in_array(strtolower($unit), array('y', 'year', 'years'))) {
699 699
             $period = $period * 365;
700 700
         }
701 701
     }
Please login to merge, or discard this patch.
includes/class-wpinv-invoice.php 3 patches
Braces   +3 added lines, -2 removed lines patch added patch discarded remove patch
@@ -971,8 +971,9 @@
 block discarded – undo
971 971
             return false;
972 972
         }
973 973
 
974
-        if ( empty( $this->ID ) )
975
-            return false;
974
+        if ( empty( $this->ID ) ) {
975
+                    return false;
976
+        }
976 977
         
977 978
         if ( ( ( is_user_logged_in() && current_user_can( 'manage_options' ) ) || $added_by_user ) && !$system ) {
978 979
             $user                 = get_user_by( 'id', get_current_user_id() );
Please login to merge, or discard this patch.
Doc Comments   +36 added lines patch added patch discarded remove patch
@@ -83,6 +83,9 @@  discard block
 block discarded – undo
83 83
         return $value;
84 84
     }
85 85
 
86
+    /**
87
+     * @param string $key
88
+     */
86 89
     public function set( $key, $value ) {
87 90
         $ignore = array( 'items', 'cart_details', 'fees', '_ID' );
88 91
 
@@ -916,6 +919,9 @@  discard block
 block discarded – undo
916 919
         return $removed;
917 920
     }
918 921
 
922
+    /**
923
+     * @param string $key
924
+     */
919 925
     public function remove_fee_by( $key, $value, $global = false ) {
920 926
         $allowed_fee_keys = apply_filters( 'wpinv_fee_keys', array(
921 927
             'index', 'label', 'amount', 'type',
@@ -1375,6 +1381,9 @@  discard block
 block discarded – undo
1375 1381
         return apply_filters( 'wpinv_get_invoice_final_total', $final_total, $this, $currency );
1376 1382
     }
1377 1383
     
1384
+    /**
1385
+     * @return boolean
1386
+     */
1378 1387
     public function get_discounts( $array = false ) {
1379 1388
         $discounts = $this->discounts;
1380 1389
         if ( $array && $discounts ) {
@@ -1383,6 +1392,9 @@  discard block
 block discarded – undo
1383 1392
         return apply_filters( 'wpinv_payment_discounts', $discounts, $this->ID, $this, $array );
1384 1393
     }
1385 1394
     
1395
+    /**
1396
+     * @return string
1397
+     */
1386 1398
     public function get_discount( $currency = false, $dash = false ) {
1387 1399
         if ( !empty( $this->discounts ) ) {
1388 1400
             global $ajax_cart_details;
@@ -1479,10 +1491,16 @@  discard block
 block discarded – undo
1479 1491
         return apply_filters( 'wpinv_user_full_name', $this->full_name, $this->ID, $this );
1480 1492
     }
1481 1493
     
1494
+    /**
1495
+     * @return string
1496
+     */
1482 1497
     public function get_user_info() {
1483 1498
         return apply_filters( 'wpinv_user_info', $this->user_info, $this->ID, $this );
1484 1499
     }
1485 1500
     
1501
+    /**
1502
+     * @return string
1503
+     */
1486 1504
     public function get_email() {
1487 1505
         return apply_filters( 'wpinv_user_email', $this->email, $this->ID, $this );
1488 1506
     }
@@ -1525,10 +1543,16 @@  discard block
 block discarded – undo
1525 1543
         return apply_filters( 'wpinv_currency_code', $this->currency, $this->ID, $this );
1526 1544
     }
1527 1545
     
1546
+    /**
1547
+     * @return string
1548
+     */
1528 1549
     public function get_created_date() {
1529 1550
         return apply_filters( 'wpinv_created_date', $this->date, $this->ID, $this );
1530 1551
     }
1531 1552
     
1553
+    /**
1554
+     * @return string
1555
+     */
1532 1556
     public function get_due_date( $display = false ) {
1533 1557
         $due_date = apply_filters( 'wpinv_due_date', $this->due_date, $this->ID, $this );
1534 1558
         
@@ -2081,6 +2105,9 @@  discard block
 block discarded – undo
2081 2105
         return apply_filters( 'wpinv_invoice_get_subscription_name', $name, $this );
2082 2106
     }
2083 2107
         
2108
+    /**
2109
+     * @return string
2110
+     */
2084 2111
     public function get_expiration() {
2085 2112
         $expiration = $this->get_meta( '_wpinv_subscr_expiration', true );
2086 2113
         return $expiration;
@@ -2096,6 +2123,9 @@  discard block
 block discarded – undo
2096 2123
         return $cancelled_date;
2097 2124
     }
2098 2125
     
2126
+    /**
2127
+     * @return string
2128
+     */
2099 2129
     public function get_trial_end_date( $formatted = true ) {
2100 2130
         if ( !$this->is_free_trial() || !$this->is_paid() ) {
2101 2131
             return NULL;
@@ -2117,6 +2147,9 @@  discard block
 block discarded – undo
2117 2147
         return $trial_end_date;
2118 2148
     }
2119 2149
     
2150
+    /**
2151
+     * @return string
2152
+     */
2120 2153
     public function get_subscription_created( $default = true ) {
2121 2154
         $created = $this->get_meta( '_wpinv_subscr_created', true );
2122 2155
         
@@ -2126,6 +2159,9 @@  discard block
 block discarded – undo
2126 2159
         return $created;
2127 2160
     }
2128 2161
     
2162
+    /**
2163
+     * @return string
2164
+     */
2129 2165
     public function get_subscription_start( $formatted = true ) {
2130 2166
         if ( !$this->is_paid() ) {
2131 2167
             return '-';
Please login to merge, or discard this patch.
Spacing   +787 added lines, -787 removed lines patch added patch discarded remove patch
@@ -7,12 +7,12 @@  discard block
 block discarded – undo
7 7
  */
8 8
  
9 9
 // MUST have WordPress.
10
-if ( !defined( 'WPINC' ) ) {
11
-    exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) );
10
+if (!defined('WPINC')) {
11
+    exit('Do NOT access this file directly: ' . basename(__FILE__));
12 12
 }
13 13
 
14 14
 final class WPInv_Invoice {
15
-    public $ID  = 0;
15
+    public $ID = 0;
16 16
     public $title;
17 17
     public $post_type;
18 18
     
@@ -65,17 +65,17 @@  discard block
 block discarded – undo
65 65
     public $full_name = '';
66 66
     public $parent_invoice = 0;
67 67
     
68
-    public function __construct( $invoice_id = false ) {
69
-        if( empty( $invoice_id ) ) {
68
+    public function __construct($invoice_id = false) {
69
+        if (empty($invoice_id)) {
70 70
             return false;
71 71
         }
72 72
 
73
-        $this->setup_invoice( $invoice_id );
73
+        $this->setup_invoice($invoice_id);
74 74
     }
75 75
 
76
-    public function get( $key ) {
77
-        if ( method_exists( $this, 'get_' . $key ) ) {
78
-            $value = call_user_func( array( $this, 'get_' . $key ) );
76
+    public function get($key) {
77
+        if (method_exists($this, 'get_' . $key)) {
78
+            $value = call_user_func(array($this, 'get_' . $key));
79 79
         } else {
80 80
             $value = $this->$key;
81 81
         }
@@ -83,51 +83,51 @@  discard block
 block discarded – undo
83 83
         return $value;
84 84
     }
85 85
 
86
-    public function set( $key, $value ) {
87
-        $ignore = array( 'items', 'cart_details', 'fees', '_ID' );
86
+    public function set($key, $value) {
87
+        $ignore = array('items', 'cart_details', 'fees', '_ID');
88 88
 
89
-        if ( $key === 'status' ) {
89
+        if ($key === 'status') {
90 90
             $this->old_status = $this->status;
91 91
         }
92 92
 
93
-        if ( ! in_array( $key, $ignore ) ) {
94
-            $this->pending[ $key ] = $value;
93
+        if (!in_array($key, $ignore)) {
94
+            $this->pending[$key] = $value;
95 95
         }
96 96
 
97
-        if( '_ID' !== $key ) {
97
+        if ('_ID' !== $key) {
98 98
             $this->$key = $value;
99 99
         }
100 100
     }
101 101
 
102
-    public function _isset( $name ) {
103
-        if ( property_exists( $this, $name) ) {
104
-            return false === empty( $this->$name );
102
+    public function _isset($name) {
103
+        if (property_exists($this, $name)) {
104
+            return false === empty($this->$name);
105 105
         } else {
106 106
             return null;
107 107
         }
108 108
     }
109 109
 
110
-    private function setup_invoice( $invoice_id ) {
110
+    private function setup_invoice($invoice_id) {
111 111
         $this->pending = array();
112 112
 
113
-        if ( empty( $invoice_id ) ) {
113
+        if (empty($invoice_id)) {
114 114
             return false;
115 115
         }
116 116
 
117
-        $invoice = get_post( $invoice_id );
117
+        $invoice = get_post($invoice_id);
118 118
 
119
-        if( !$invoice || is_wp_error( $invoice ) ) {
119
+        if (!$invoice || is_wp_error($invoice)) {
120 120
             return false;
121 121
         }
122 122
 
123
-        if( !('wpi_invoice' == $invoice->post_type OR 'wpi_quote' == $invoice->post_type) ) {
123
+        if (!('wpi_invoice' == $invoice->post_type OR 'wpi_quote' == $invoice->post_type)) {
124 124
             return false;
125 125
         }
126 126
 
127
-        do_action( 'wpinv_pre_setup_invoice', $this, $invoice_id );
127
+        do_action('wpinv_pre_setup_invoice', $this, $invoice_id);
128 128
         
129 129
         // Primary Identifier
130
-        $this->ID              = absint( $invoice_id );
130
+        $this->ID              = absint($invoice_id);
131 131
         $this->post_type       = $invoice->post_type;
132 132
         
133 133
         // We have a payment, get the generic payment_meta item to reduce calls to it
@@ -139,7 +139,7 @@  discard block
 block discarded – undo
139 139
         $this->post_status     = $this->status;
140 140
         $this->mode            = $this->setup_mode();
141 141
         $this->parent_invoice  = $invoice->post_parent;
142
-        $this->post_name       = $this->setup_post_name( $invoice );
142
+        $this->post_name       = $this->setup_post_name($invoice);
143 143
         $this->status_nicename = $this->setup_status_nicename();
144 144
 
145 145
         // Items
@@ -161,8 +161,8 @@  discard block
 block discarded – undo
161 161
         
162 162
         // User based
163 163
         $this->ip              = $this->setup_ip();
164
-        $this->user_id         = !empty( $invoice->post_author ) ? $invoice->post_author : get_current_user_id();///$this->setup_user_id();
165
-        $this->email           = get_the_author_meta( 'email', $this->user_id );
164
+        $this->user_id         = !empty($invoice->post_author) ? $invoice->post_author : get_current_user_id(); ///$this->setup_user_id();
165
+        $this->email           = get_the_author_meta('email', $this->user_id);
166 166
         
167 167
         $this->user_info       = $this->setup_user_info();
168 168
                 
@@ -171,7 +171,7 @@  discard block
 block discarded – undo
171 171
         $this->company         = $this->user_info['company'];
172 172
         $this->vat_number      = $this->user_info['vat_number'];
173 173
         $this->vat_rate        = $this->user_info['vat_rate'];
174
-        $this->adddress_confirmed  = $this->user_info['adddress_confirmed'];
174
+        $this->adddress_confirmed = $this->user_info['adddress_confirmed'];
175 175
         $this->address         = $this->user_info['address'];
176 176
         $this->city            = $this->user_info['city'];
177 177
         $this->country         = $this->user_info['country'];
@@ -186,48 +186,48 @@  discard block
 block discarded – undo
186 186
         // Other Identifiers
187 187
         $this->key             = $this->setup_invoice_key();
188 188
         $this->number          = $this->setup_invoice_number();
189
-        $this->title           = !empty( $invoice->post_title ) ? $invoice->post_title : $this->number;
189
+        $this->title           = !empty($invoice->post_title) ? $invoice->post_title : $this->number;
190 190
         
191
-        $this->full_name       = trim( $this->first_name . ' '. $this->last_name );
191
+        $this->full_name       = trim($this->first_name . ' ' . $this->last_name);
192 192
         
193 193
         // Allow extensions to add items to this object via hook
194
-        do_action( 'wpinv_setup_invoice', $this, $invoice_id );
194
+        do_action('wpinv_setup_invoice', $this, $invoice_id);
195 195
 
196 196
         return true;
197 197
     }
198 198
     
199 199
     private function setup_status_nicename() {
200
-        $all_invoice_statuses  = wpinv_get_invoice_statuses();
200
+        $all_invoice_statuses = wpinv_get_invoice_statuses();
201 201
         
202
-        $status = array_key_exists( $this->status, $all_invoice_statuses ) ? $all_invoice_statuses[$this->status] : ucfirst( $this->status );
202
+        $status = array_key_exists($this->status, $all_invoice_statuses) ? $all_invoice_statuses[$this->status] : ucfirst($this->status);
203 203
 
204 204
         return $status;
205 205
     }
206 206
     
207
-    private function setup_post_name( $post = NULL ) {
207
+    private function setup_post_name($post = NULL) {
208 208
         $post_name = '';
209 209
         
210
-        if ( !empty( $post ) ) {
211
-            if( !empty( $post->post_name ) ) {
210
+        if (!empty($post)) {
211
+            if (!empty($post->post_name)) {
212 212
                 $post_name = $post->post_name;
213
-            } else if ( !empty( $post->ID ) && !empty( $post->post_title ) ) {
214
-                $post_name = sanitize_title( $post->post_title );
213
+            } else if (!empty($post->ID) && !empty($post->post_title)) {
214
+                $post_name = sanitize_title($post->post_title);
215 215
                 
216 216
                 global $wpdb;
217
-                $wpdb->update( $wpdb->posts, array( 'post_name' => $post_name ), array( 'ID' => $post->ID ) );
217
+                $wpdb->update($wpdb->posts, array('post_name' => $post_name), array('ID' => $post->ID));
218 218
             }
219 219
         }
220 220
 
221
-        $this->post_name   = $post_name;
221
+        $this->post_name = $post_name;
222 222
     }
223 223
     
224 224
     private function setup_due_date() {
225
-        $due_date = $this->get_meta( '_wpinv_due_date' );
225
+        $due_date = $this->get_meta('_wpinv_due_date');
226 226
         
227
-        if ( empty( $due_date ) ) {
228
-            $overdue_time = strtotime( $this->date ) + ( DAY_IN_SECONDS * absint( wpinv_get_option( 'overdue_days' ) ) );
229
-            $due_date = date_i18n( 'Y-m-d', $overdue_time );
230
-        } else if ( $due_date == 'none' ) {
227
+        if (empty($due_date)) {
228
+            $overdue_time = strtotime($this->date) + (DAY_IN_SECONDS * absint(wpinv_get_option('overdue_days')));
229
+            $due_date = date_i18n('Y-m-d', $overdue_time);
230
+        } else if ($due_date == 'none') {
231 231
             $due_date = '';
232 232
         }
233 233
         
@@ -235,63 +235,63 @@  discard block
 block discarded – undo
235 235
     }
236 236
     
237 237
     private function setup_completed_date() {
238
-        $invoice = get_post( $this->ID );
238
+        $invoice = get_post($this->ID);
239 239
 
240
-        if ( 'pending' == $invoice->post_status || 'preapproved' == $invoice->post_status ) {
240
+        if ('pending' == $invoice->post_status || 'preapproved' == $invoice->post_status) {
241 241
             return false; // This invoice was never paid
242 242
         }
243 243
 
244
-        $date = ( $date = $this->get_meta( '_wpinv_completed_date', true ) ) ? $date : $invoice->modified_date;
244
+        $date = ($date = $this->get_meta('_wpinv_completed_date', true)) ? $date : $invoice->modified_date;
245 245
 
246 246
         return $date;
247 247
     }
248 248
     
249 249
     private function setup_cart_details() {
250
-        $cart_details = isset( $this->payment_meta['cart_details'] ) ? maybe_unserialize( $this->payment_meta['cart_details'] ) : array();
250
+        $cart_details = isset($this->payment_meta['cart_details']) ? maybe_unserialize($this->payment_meta['cart_details']) : array();
251 251
         return $cart_details;
252 252
     }
253 253
     
254 254
     public function array_convert() {
255
-        return get_object_vars( $this );
255
+        return get_object_vars($this);
256 256
     }
257 257
     
258 258
     private function setup_items() {
259
-        $items = isset( $this->payment_meta['items'] ) ? maybe_unserialize( $this->payment_meta['items'] ) : array();
259
+        $items = isset($this->payment_meta['items']) ? maybe_unserialize($this->payment_meta['items']) : array();
260 260
         return $items;
261 261
     }
262 262
     
263 263
     private function setup_fees() {
264
-        $payment_fees = isset( $this->payment_meta['fees'] ) ? $this->payment_meta['fees'] : array();
264
+        $payment_fees = isset($this->payment_meta['fees']) ? $this->payment_meta['fees'] : array();
265 265
         return $payment_fees;
266 266
     }
267 267
         
268 268
     private function setup_currency() {
269
-        $currency = isset( $this->payment_meta['currency'] ) ? $this->payment_meta['currency'] : apply_filters( 'wpinv_currency_default', wpinv_get_currency(), $this );
269
+        $currency = isset($this->payment_meta['currency']) ? $this->payment_meta['currency'] : apply_filters('wpinv_currency_default', wpinv_get_currency(), $this);
270 270
         return $currency;
271 271
     }
272 272
     
273 273
     private function setup_discount() {
274 274
         //$discount = $this->get_meta( '_wpinv_discount', true );
275
-        $discount = (float)$this->subtotal - ( (float)$this->total - (float)$this->tax - (float)$this->fees_total );
276
-        if ( $discount < 0 ) {
275
+        $discount = (float)$this->subtotal - ((float)$this->total - (float)$this->tax - (float)$this->fees_total);
276
+        if ($discount < 0) {
277 277
             $discount = 0;
278 278
         }
279
-        $discount = wpinv_round_amount( $discount );
279
+        $discount = wpinv_round_amount($discount);
280 280
         
281 281
         return $discount;
282 282
     }
283 283
     
284 284
     private function setup_discount_code() {
285
-        $discount_code = !empty( $this->discounts ) ? $this->discounts : $this->get_meta( '_wpinv_discount_code', true );
285
+        $discount_code = !empty($this->discounts) ? $this->discounts : $this->get_meta('_wpinv_discount_code', true);
286 286
         return $discount_code;
287 287
     }
288 288
     
289 289
     private function setup_tax() {
290
-        $tax = $this->get_meta( '_wpinv_tax', true );
290
+        $tax = $this->get_meta('_wpinv_tax', true);
291 291
 
292 292
         // We don't have tax as it's own meta and no meta was passed
293
-        if ( '' === $tax ) {            
294
-            $tax = isset( $this->payment_meta['tax'] ) ? $this->payment_meta['tax'] : 0;
293
+        if ('' === $tax) {            
294
+            $tax = isset($this->payment_meta['tax']) ? $this->payment_meta['tax'] : 0;
295 295
         }
296 296
 
297 297
         return $tax;
@@ -301,9 +301,9 @@  discard block
 block discarded – undo
301 301
         $subtotal     = 0;
302 302
         $cart_details = $this->cart_details;
303 303
 
304
-        if ( is_array( $cart_details ) ) {
305
-            foreach ( $cart_details as $item ) {
306
-                if ( isset( $item['subtotal'] ) ) {
304
+        if (is_array($cart_details)) {
305
+            foreach ($cart_details as $item) {
306
+                if (isset($item['subtotal'])) {
307 307
                     $subtotal += $item['subtotal'];
308 308
                 }
309 309
             }
@@ -317,18 +317,18 @@  discard block
 block discarded – undo
317 317
     }
318 318
     
319 319
     private function setup_discounts() {
320
-        $discounts = ! empty( $this->payment_meta['user_info']['discount'] ) ? $this->payment_meta['user_info']['discount'] : array();
320
+        $discounts = !empty($this->payment_meta['user_info']['discount']) ? $this->payment_meta['user_info']['discount'] : array();
321 321
         return $discounts;
322 322
     }
323 323
     
324 324
     private function setup_total() {
325
-        $amount = $this->get_meta( '_wpinv_total', true );
325
+        $amount = $this->get_meta('_wpinv_total', true);
326 326
 
327
-        if ( empty( $amount ) && '0.00' != $amount ) {
328
-            $meta   = $this->get_meta( '_wpinv_payment_meta', true );
329
-            $meta   = maybe_unserialize( $meta );
327
+        if (empty($amount) && '0.00' != $amount) {
328
+            $meta   = $this->get_meta('_wpinv_payment_meta', true);
329
+            $meta   = maybe_unserialize($meta);
330 330
 
331
-            if ( isset( $meta['amount'] ) ) {
331
+            if (isset($meta['amount'])) {
332 332
                 $amount = $meta['amount'];
333 333
             }
334 334
         }
@@ -337,13 +337,13 @@  discard block
 block discarded – undo
337 337
     }
338 338
     
339 339
     private function setup_mode() {
340
-        return $this->get_meta( '_wpinv_mode' );
340
+        return $this->get_meta('_wpinv_mode');
341 341
     }
342 342
 
343 343
     private function setup_gateway() {
344
-        $gateway = $this->get_meta( '_wpinv_gateway' );
344
+        $gateway = $this->get_meta('_wpinv_gateway');
345 345
         
346
-        if ( empty( $gateway ) && 'publish' === $this->status ) {
346
+        if (empty($gateway) && 'publish' === $this->status) {
347 347
             $gateway = 'manual';
348 348
         }
349 349
         
@@ -351,23 +351,23 @@  discard block
 block discarded – undo
351 351
     }
352 352
     
353 353
     private function setup_gateway_title() {
354
-        $gateway_title = wpinv_get_gateway_checkout_label( $this->gateway );
354
+        $gateway_title = wpinv_get_gateway_checkout_label($this->gateway);
355 355
         return $gateway_title;
356 356
     }
357 357
 
358 358
     private function setup_transaction_id() {
359
-        $transaction_id = $this->get_meta( '_wpinv_transaction_id' );
359
+        $transaction_id = $this->get_meta('_wpinv_transaction_id');
360 360
 
361
-        if ( empty( $transaction_id ) || (int) $transaction_id === (int) $this->ID ) {
361
+        if (empty($transaction_id) || (int)$transaction_id === (int)$this->ID) {
362 362
             $gateway        = $this->gateway;
363
-            $transaction_id = apply_filters( 'wpinv_get_invoice_transaction_id-' . $gateway, $this->ID );
363
+            $transaction_id = apply_filters('wpinv_get_invoice_transaction_id-' . $gateway, $this->ID);
364 364
         }
365 365
 
366 366
         return $transaction_id;
367 367
     }
368 368
 
369 369
     private function setup_ip() {
370
-        $ip = $this->get_meta( '_wpinv_user_ip' );
370
+        $ip = $this->get_meta('_wpinv_user_ip');
371 371
         return $ip;
372 372
     }
373 373
 
@@ -377,62 +377,62 @@  discard block
 block discarded – undo
377 377
     ///}
378 378
         
379 379
     private function setup_first_name() {
380
-        $first_name = $this->get_meta( '_wpinv_first_name' );
380
+        $first_name = $this->get_meta('_wpinv_first_name');
381 381
         return $first_name;
382 382
     }
383 383
     
384 384
     private function setup_last_name() {
385
-        $last_name = $this->get_meta( '_wpinv_last_name' );
385
+        $last_name = $this->get_meta('_wpinv_last_name');
386 386
         return $last_name;
387 387
     }
388 388
     
389 389
     private function setup_company() {
390
-        $company = $this->get_meta( '_wpinv_company' );
390
+        $company = $this->get_meta('_wpinv_company');
391 391
         return $company;
392 392
     }
393 393
     
394 394
     private function setup_vat_number() {
395
-        $vat_number = $this->get_meta( '_wpinv_vat_number' );
395
+        $vat_number = $this->get_meta('_wpinv_vat_number');
396 396
         return $vat_number;
397 397
     }
398 398
     
399 399
     private function setup_vat_rate() {
400
-        $vat_rate = $this->get_meta( '_wpinv_vat_rate' );
400
+        $vat_rate = $this->get_meta('_wpinv_vat_rate');
401 401
         return $vat_rate;
402 402
     }
403 403
     
404 404
     private function setup_adddress_confirmed() {
405
-        $adddress_confirmed = $this->get_meta( '_wpinv_adddress_confirmed' );
405
+        $adddress_confirmed = $this->get_meta('_wpinv_adddress_confirmed');
406 406
         return $adddress_confirmed;
407 407
     }
408 408
     
409 409
     private function setup_phone() {
410
-        $phone = $this->get_meta( '_wpinv_phone' );
410
+        $phone = $this->get_meta('_wpinv_phone');
411 411
         return $phone;
412 412
     }
413 413
     
414 414
     private function setup_address() {
415
-        $address = $this->get_meta( '_wpinv_address', true );
415
+        $address = $this->get_meta('_wpinv_address', true);
416 416
         return $address;
417 417
     }
418 418
     
419 419
     private function setup_city() {
420
-        $city = $this->get_meta( '_wpinv_city', true );
420
+        $city = $this->get_meta('_wpinv_city', true);
421 421
         return $city;
422 422
     }
423 423
     
424 424
     private function setup_country() {
425
-        $country = $this->get_meta( '_wpinv_country', true );
425
+        $country = $this->get_meta('_wpinv_country', true);
426 426
         return $country;
427 427
     }
428 428
     
429 429
     private function setup_state() {
430
-        $state = $this->get_meta( '_wpinv_state', true );
430
+        $state = $this->get_meta('_wpinv_state', true);
431 431
         return $state;
432 432
     }
433 433
     
434 434
     private function setup_zip() {
435
-        $zip = $this->get_meta( '_wpinv_zip', true );
435
+        $zip = $this->get_meta('_wpinv_zip', true);
436 436
         return $zip;
437 437
     }
438 438
 
@@ -441,7 +441,7 @@  discard block
 block discarded – undo
441 441
             'user_id'        => $this->user_id,
442 442
             'first_name'     => $this->first_name,
443 443
             'last_name'      => $this->last_name,
444
-            'email'          => get_the_author_meta( 'email', $this->user_id ),
444
+            'email'          => get_the_author_meta('email', $this->user_id),
445 445
             'phone'          => $this->phone,
446 446
             'address'        => $this->address,
447 447
             'city'           => $this->city,
@@ -456,12 +456,12 @@  discard block
 block discarded – undo
456 456
         );
457 457
         
458 458
         $user_info = array();
459
-        if ( isset( $this->payment_meta['user_info'] ) ) {
460
-            $user_info = maybe_unserialize( $this->payment_meta['user_info'] );
459
+        if (isset($this->payment_meta['user_info'])) {
460
+            $user_info = maybe_unserialize($this->payment_meta['user_info']);
461 461
             
462
-            if ( !empty( $user_info ) && isset( $user_info['user_id'] ) && $post = get_post( $this->ID ) ) {
462
+            if (!empty($user_info) && isset($user_info['user_id']) && $post = get_post($this->ID)) {
463 463
                 $this->user_id = $post->post_author;
464
-                $this->email = get_the_author_meta( 'email', $this->user_id );
464
+                $this->email = get_the_author_meta('email', $this->user_id);
465 465
                 
466 466
                 $user_info['user_id'] = $this->user_id;
467 467
                 $user_info['email'] = $this->email;
@@ -470,13 +470,13 @@  discard block
 block discarded – undo
470 470
             }
471 471
         }
472 472
         
473
-        $user_info    = wp_parse_args( $user_info, $defaults );
473
+        $user_info = wp_parse_args($user_info, $defaults);
474 474
         
475 475
         // Get the user, but only if it's been created
476
-        $user = get_userdata( $this->user_id );
476
+        $user = get_userdata($this->user_id);
477 477
         
478
-        if ( !empty( $user ) && $user->ID > 0 ) {
479
-            if ( empty( $user_info ) ) {
478
+        if (!empty($user) && $user->ID > 0) {
479
+            if (empty($user_info)) {
480 480
                 $user_info = array(
481 481
                     'user_id'    => $user->ID,
482 482
                     'first_name' => $user->first_name,
@@ -485,23 +485,23 @@  discard block
 block discarded – undo
485 485
                     'discount'   => '',
486 486
                 );
487 487
             } else {
488
-                foreach ( $user_info as $key => $value ) {
489
-                    if ( ! empty( $value ) ) {
488
+                foreach ($user_info as $key => $value) {
489
+                    if (!empty($value)) {
490 490
                         continue;
491 491
                     }
492 492
 
493
-                    switch( $key ) {
493
+                    switch ($key) {
494 494
                         case 'user_id':
495
-                            $user_info[ $key ] = $user->ID;
495
+                            $user_info[$key] = $user->ID;
496 496
                             break;
497 497
                         case 'first_name':
498
-                            $user_info[ $key ] = $user->first_name;
498
+                            $user_info[$key] = $user->first_name;
499 499
                             break;
500 500
                         case 'last_name':
501
-                            $user_info[ $key ] = $user->last_name;
501
+                            $user_info[$key] = $user->last_name;
502 502
                             break;
503 503
                         case 'email':
504
-                            $user_info[ $key ] = $user->user_email;
504
+                            $user_info[$key] = $user->user_email;
505 505
                             break;
506 506
                     }
507 507
                 }
@@ -512,16 +512,16 @@  discard block
 block discarded – undo
512 512
     }
513 513
 
514 514
     private function setup_invoice_key() {
515
-        $key = $this->get_meta( '_wpinv_key', true );
515
+        $key = $this->get_meta('_wpinv_key', true);
516 516
         
517 517
         return $key;
518 518
     }
519 519
 
520 520
     private function setup_invoice_number() {
521
-        $number = $this->get_meta( '_wpinv_number', true );
521
+        $number = $this->get_meta('_wpinv_number', true);
522 522
 
523
-        if ( !$number ) {
524
-            $number = wpinv_format_invoice_number( $this->ID );
523
+        if (!$number) {
524
+            $number = wpinv_format_invoice_number($this->ID);
525 525
         }
526 526
 
527 527
         return $number;
@@ -532,18 +532,18 @@  discard block
 block discarded – undo
532 532
 
533 533
         if ($number = $this->get_number()) {
534 534
             $invoice_title = $number;
535
-        } else if ( ! empty( $this->ID ) ) {
536
-            $invoice_title = wpinv_format_invoice_number( $this->ID );
535
+        } else if (!empty($this->ID)) {
536
+            $invoice_title = wpinv_format_invoice_number($this->ID);
537 537
         } else {
538
-            $invoice_title = wpinv_format_invoice_number( 0 );
538
+            $invoice_title = wpinv_format_invoice_number(0);
539 539
         }
540 540
 
541
-        if ( empty( $this->key ) ) {
541
+        if (empty($this->key)) {
542 542
             $this->key = self::generate_key();
543 543
             $this->pending['key'] = $this->key;
544 544
         }
545 545
 
546
-        if ( empty( $this->ip ) ) {
546
+        if (empty($this->ip)) {
547 547
             $this->ip = wpinv_get_ip();
548 548
             $this->pending['ip'] = $this->ip;
549 549
         }
@@ -575,75 +575,75 @@  discard block
 block discarded – undo
575 575
             'fees'         => $this->fees,
576 576
         );
577 577
         
578
-        $post_name      = sanitize_title( $invoice_title );
578
+        $post_name = sanitize_title($invoice_title);
579 579
 
580 580
         $post_data = array(
581 581
                         'post_title'    => $invoice_title,
582 582
                         'post_status'   => $this->status,
583 583
                         'post_author'   => $this->user_id,
584 584
                         'post_type'     => $this->post_type,
585
-                        'post_date'     => ! empty( $this->date ) && $this->date != '0000-00-00 00:00:00' ? $this->date : current_time( 'mysql' ),
586
-                        'post_date_gmt' => ! empty( $this->date ) && $this->date != '0000-00-00 00:00:00' ? get_gmt_from_date( $this->date ) : current_time( 'mysql', 1 ),
585
+                        'post_date'     => !empty($this->date) && $this->date != '0000-00-00 00:00:00' ? $this->date : current_time('mysql'),
586
+                        'post_date_gmt' => !empty($this->date) && $this->date != '0000-00-00 00:00:00' ? get_gmt_from_date($this->date) : current_time('mysql', 1),
587 587
                         'post_parent'   => $this->parent_invoice,
588 588
                     );
589
-        $args = apply_filters( 'wpinv_insert_invoice_args', $post_data, $this );
589
+        $args = apply_filters('wpinv_insert_invoice_args', $post_data, $this);
590 590
 
591 591
         // Create a blank invoice
592
-        if ( !empty( $this->ID ) ) {
592
+        if (!empty($this->ID)) {
593 593
             $args['ID']         = $this->ID;
594 594
             $args['post_name']  = $post_name;
595 595
             
596
-            $invoice_id = wp_update_post( $args );
596
+            $invoice_id = wp_update_post($args);
597 597
         } else {
598
-            $invoice_id = wp_insert_post( $args );
598
+            $invoice_id = wp_insert_post($args);
599 599
             
600
-            $post_title = wpinv_format_invoice_number( $invoice_id );
600
+            $post_title = wpinv_format_invoice_number($invoice_id);
601 601
             global $wpdb;
602
-            $wpdb->update( $wpdb->posts, array( 'post_title' => $post_title, 'post_name' => sanitize_title( $post_title ) ), array( 'ID' => $invoice_id ) );
603
-            clean_post_cache( $invoice_id );
602
+            $wpdb->update($wpdb->posts, array('post_title' => $post_title, 'post_name' => sanitize_title($post_title)), array('ID' => $invoice_id));
603
+            clean_post_cache($invoice_id);
604 604
         }
605 605
 
606
-        if ( !empty( $invoice_id ) ) {             
606
+        if (!empty($invoice_id)) {             
607 607
             $this->ID  = $invoice_id;
608 608
             $this->_ID = $invoice_id;
609 609
             
610 610
             ///$this->pending['user_id'] = $this->user_id;
611
-            if ( isset( $this->pending['number'] ) ) {
611
+            if (isset($this->pending['number'])) {
612 612
                 $this->pending['number'] = $post_name;
613 613
             }
614 614
             
615
-            $this->payment_meta = apply_filters( 'wpinv_payment_meta', $this->payment_meta, $payment_data );
616
-            if ( ! empty( $this->payment_meta['fees'] ) ) {
617
-                $this->fees = array_merge( $this->fees, $this->payment_meta['fees'] );
618
-                foreach( $this->fees as $fee ) {
619
-                    $this->increase_fees( $fee['amount'] );
615
+            $this->payment_meta = apply_filters('wpinv_payment_meta', $this->payment_meta, $payment_data);
616
+            if (!empty($this->payment_meta['fees'])) {
617
+                $this->fees = array_merge($this->fees, $this->payment_meta['fees']);
618
+                foreach ($this->fees as $fee) {
619
+                    $this->increase_fees($fee['amount']);
620 620
                 }
621 621
             }
622 622
 
623
-            $this->update_meta( '_wpinv_payment_meta', $this->payment_meta );            
623
+            $this->update_meta('_wpinv_payment_meta', $this->payment_meta);            
624 624
             $this->new = true;
625 625
         }
626 626
 
627 627
         return $this->ID;
628 628
     }
629 629
 
630
-    public function save( $setup = false ) {
630
+    public function save($setup = false) {
631 631
         global $wpi_session;
632 632
         
633 633
         $saved = false;
634
-        if ( empty( $this->items ) ) {
634
+        if (empty($this->items)) {
635 635
             return $saved; // Don't save empty invoice.
636 636
         }
637 637
         
638
-        if ( empty( $this->key ) ) {
638
+        if (empty($this->key)) {
639 639
             $this->key = self::generate_key();
640 640
             $this->pending['key'] = $this->key;
641 641
         }
642 642
         
643
-        if ( empty( $this->ID ) ) {
643
+        if (empty($this->ID)) {
644 644
             $invoice_id = $this->insert_invoice();
645 645
 
646
-            if ( false === $invoice_id ) {
646
+            if (false === $invoice_id) {
647 647
                 $saved = false;
648 648
             } else {
649 649
                 $this->ID = $invoice_id;
@@ -651,27 +651,27 @@  discard block
 block discarded – undo
651 651
         }        
652 652
 
653 653
         // If we have something pending, let's save it
654
-        if ( !empty( $this->pending ) ) {
654
+        if (!empty($this->pending)) {
655 655
             $total_increase = 0;
656 656
             $total_decrease = 0;
657 657
 
658
-            foreach ( $this->pending as $key => $value ) {
659
-                switch( $key ) {
658
+            foreach ($this->pending as $key => $value) {
659
+                switch ($key) {
660 660
                     case 'items':
661 661
                         // Update totals for pending items
662
-                        foreach ( $this->pending[ $key ] as $item ) {
663
-                            switch( $item['action'] ) {
662
+                        foreach ($this->pending[$key] as $item) {
663
+                            switch ($item['action']) {
664 664
                                 case 'add':
665 665
                                     $price = $item['price'];
666 666
                                     $taxes = $item['tax'];
667 667
 
668
-                                    if ( 'publish' === $this->status ) {
668
+                                    if ('publish' === $this->status) {
669 669
                                         $total_increase += $price;
670 670
                                     }
671 671
                                     break;
672 672
 
673 673
                                 case 'remove':
674
-                                    if ( 'publish' === $this->status ) {
674
+                                    if ('publish' === $this->status) {
675 675
                                         $total_decrease += $item['price'];
676 676
                                     }
677 677
                                     break;
@@ -679,16 +679,16 @@  discard block
 block discarded – undo
679 679
                         }
680 680
                         break;
681 681
                     case 'fees':
682
-                        if ( 'publish' !== $this->status ) {
682
+                        if ('publish' !== $this->status) {
683 683
                             break;
684 684
                         }
685 685
 
686
-                        if ( empty( $this->pending[ $key ] ) ) {
686
+                        if (empty($this->pending[$key])) {
687 687
                             break;
688 688
                         }
689 689
 
690
-                        foreach ( $this->pending[ $key ] as $fee ) {
691
-                            switch( $fee['action'] ) {
690
+                        foreach ($this->pending[$key] as $fee) {
691
+                            switch ($fee['action']) {
692 692
                                 case 'add':
693 693
                                     $total_increase += $fee['amount'];
694 694
                                     break;
@@ -700,86 +700,86 @@  discard block
 block discarded – undo
700 700
                         }
701 701
                         break;
702 702
                     case 'status':
703
-                        $this->update_status( $this->status );
703
+                        $this->update_status($this->status);
704 704
                         break;
705 705
                     case 'gateway':
706
-                        $this->update_meta( '_wpinv_gateway', $this->gateway );
706
+                        $this->update_meta('_wpinv_gateway', $this->gateway);
707 707
                         break;
708 708
                     case 'mode':
709
-                        $this->update_meta( '_wpinv_mode', $this->mode );
709
+                        $this->update_meta('_wpinv_mode', $this->mode);
710 710
                         break;
711 711
                     case 'transaction_id':
712
-                        $this->update_meta( '_wpinv_transaction_id', $this->transaction_id );
712
+                        $this->update_meta('_wpinv_transaction_id', $this->transaction_id);
713 713
                         break;
714 714
                     case 'ip':
715
-                        $this->update_meta( '_wpinv_user_ip', $this->ip );
715
+                        $this->update_meta('_wpinv_user_ip', $this->ip);
716 716
                         break;
717 717
                     ///case 'user_id':
718 718
                         ///$this->update_meta( '_wpinv_user_id', $this->user_id );
719 719
                         ///$this->user_info['user_id'] = $this->user_id;
720 720
                         ///break;
721 721
                     case 'first_name':
722
-                        $this->update_meta( '_wpinv_first_name', $this->first_name );
722
+                        $this->update_meta('_wpinv_first_name', $this->first_name);
723 723
                         $this->user_info['first_name'] = $this->first_name;
724 724
                         break;
725 725
                     case 'last_name':
726
-                        $this->update_meta( '_wpinv_last_name', $this->last_name );
726
+                        $this->update_meta('_wpinv_last_name', $this->last_name);
727 727
                         $this->user_info['last_name'] = $this->last_name;
728 728
                         break;
729 729
                     case 'phone':
730
-                        $this->update_meta( '_wpinv_phone', $this->phone );
730
+                        $this->update_meta('_wpinv_phone', $this->phone);
731 731
                         $this->user_info['phone'] = $this->phone;
732 732
                         break;
733 733
                     case 'address':
734
-                        $this->update_meta( '_wpinv_address', $this->address );
734
+                        $this->update_meta('_wpinv_address', $this->address);
735 735
                         $this->user_info['address'] = $this->address;
736 736
                         break;
737 737
                     case 'city':
738
-                        $this->update_meta( '_wpinv_city', $this->city );
738
+                        $this->update_meta('_wpinv_city', $this->city);
739 739
                         $this->user_info['city'] = $this->city;
740 740
                         break;
741 741
                     case 'country':
742
-                        $this->update_meta( '_wpinv_country', $this->country );
742
+                        $this->update_meta('_wpinv_country', $this->country);
743 743
                         $this->user_info['country'] = $this->country;
744 744
                         break;
745 745
                     case 'state':
746
-                        $this->update_meta( '_wpinv_state', $this->state );
746
+                        $this->update_meta('_wpinv_state', $this->state);
747 747
                         $this->user_info['state'] = $this->state;
748 748
                         break;
749 749
                     case 'zip':
750
-                        $this->update_meta( '_wpinv_zip', $this->zip );
750
+                        $this->update_meta('_wpinv_zip', $this->zip);
751 751
                         $this->user_info['zip'] = $this->zip;
752 752
                         break;
753 753
                     case 'company':
754
-                        $this->update_meta( '_wpinv_company', $this->company );
754
+                        $this->update_meta('_wpinv_company', $this->company);
755 755
                         $this->user_info['company'] = $this->company;
756 756
                         break;
757 757
                     case 'vat_number':
758
-                        $this->update_meta( '_wpinv_vat_number', $this->vat_number );
758
+                        $this->update_meta('_wpinv_vat_number', $this->vat_number);
759 759
                         $this->user_info['vat_number'] = $this->vat_number;
760 760
                         
761
-                        $vat_info = $wpi_session->get( 'user_vat_data' );
762
-                        if ( $this->vat_number && !empty( $vat_info ) && isset( $vat_info['number'] ) && isset( $vat_info['valid'] ) && $vat_info['number'] == $this->vat_number ) {
763
-                            $adddress_confirmed = isset( $vat_info['adddress_confirmed'] ) ? $vat_info['adddress_confirmed'] : false;
764
-                            $this->update_meta( '_wpinv_adddress_confirmed', (bool)$adddress_confirmed );
761
+                        $vat_info = $wpi_session->get('user_vat_data');
762
+                        if ($this->vat_number && !empty($vat_info) && isset($vat_info['number']) && isset($vat_info['valid']) && $vat_info['number'] == $this->vat_number) {
763
+                            $adddress_confirmed = isset($vat_info['adddress_confirmed']) ? $vat_info['adddress_confirmed'] : false;
764
+                            $this->update_meta('_wpinv_adddress_confirmed', (bool)$adddress_confirmed);
765 765
                             $this->user_info['adddress_confirmed'] = (bool)$adddress_confirmed;
766 766
                         }
767 767
     
768 768
                         break;
769 769
                     case 'vat_rate':
770
-                        $this->update_meta( '_wpinv_vat_rate', $this->vat_rate );
770
+                        $this->update_meta('_wpinv_vat_rate', $this->vat_rate);
771 771
                         $this->user_info['vat_rate'] = $this->vat_rate;
772 772
                         break;
773 773
                     case 'adddress_confirmed':
774
-                        $this->update_meta( '_wpinv_adddress_confirmed', $this->adddress_confirmed );
774
+                        $this->update_meta('_wpinv_adddress_confirmed', $this->adddress_confirmed);
775 775
                         $this->user_info['adddress_confirmed'] = $this->adddress_confirmed;
776 776
                         break;
777 777
                     
778 778
                     case 'key':
779
-                        $this->update_meta( '_wpinv_key', $this->key );
779
+                        $this->update_meta('_wpinv_key', $this->key);
780 780
                         break;
781 781
                     case 'number':
782
-                        $this->update_meta( '_wpinv_number', $this->number );
782
+                        $this->update_meta('_wpinv_number', $this->number);
783 783
                         break;
784 784
                     case 'date':
785 785
                         $args = array(
@@ -788,34 +788,34 @@  discard block
 block discarded – undo
788 788
                             'edit_date' => true,
789 789
                         );
790 790
 
791
-                        wp_update_post( $args );
791
+                        wp_update_post($args);
792 792
                         break;
793 793
                     case 'due_date':
794
-                        if ( empty( $this->due_date ) ) {
794
+                        if (empty($this->due_date)) {
795 795
                             $this->due_date = 'none';
796 796
                         }
797 797
                         
798
-                        $this->update_meta( '_wpinv_due_date', $this->due_date );
798
+                        $this->update_meta('_wpinv_due_date', $this->due_date);
799 799
                         break;
800 800
                     case 'completed_date':
801
-                        $this->update_meta( '_wpinv_completed_date', $this->completed_date );
801
+                        $this->update_meta('_wpinv_completed_date', $this->completed_date);
802 802
                         break;
803 803
                     case 'discounts':
804
-                        if ( ! is_array( $this->discounts ) ) {
805
-                            $this->discounts = explode( ',', $this->discounts );
804
+                        if (!is_array($this->discounts)) {
805
+                            $this->discounts = explode(',', $this->discounts);
806 806
                         }
807 807
 
808
-                        $this->user_info['discount'] = implode( ',', $this->discounts );
808
+                        $this->user_info['discount'] = implode(',', $this->discounts);
809 809
                         break;
810 810
                         
811 811
                     //case 'tax':
812 812
                         //$this->update_meta( '_wpinv_tax', wpinv_round_amount( $this->tax ) );
813 813
                         //break;
814 814
                     case 'discount':
815
-                        $this->update_meta( '_wpinv_discount', wpinv_round_amount( $this->discount ) );
815
+                        $this->update_meta('_wpinv_discount', wpinv_round_amount($this->discount));
816 816
                         break;
817 817
                     case 'discount_code':
818
-                        $this->update_meta( '_wpinv_discount_code', $this->discount_code );
818
+                        $this->update_meta('_wpinv_discount_code', $this->discount_code);
819 819
                         break;
820 820
                     //case 'fees':
821 821
                         //$this->update_meta( '_wpinv_fees', $this->fees );
@@ -825,19 +825,19 @@  discard block
 block discarded – undo
825 825
                             'ID'          => $this->ID,
826 826
                             'post_parent' => $this->parent_invoice,
827 827
                         );
828
-                        wp_update_post( $args );
828
+                        wp_update_post($args);
829 829
                         break;
830 830
                     default:
831
-                        do_action( 'wpinv_save', $this, $key );
831
+                        do_action('wpinv_save', $this, $key);
832 832
                         break;
833 833
                 }
834 834
             }       
835 835
 
836
-            $this->update_meta( '_wpinv_subtotal', wpinv_round_amount( $this->subtotal ) );
837
-            $this->update_meta( '_wpinv_total', wpinv_round_amount( $this->total ) );
838
-            $this->update_meta( '_wpinv_tax', wpinv_round_amount( $this->tax ) );
836
+            $this->update_meta('_wpinv_subtotal', wpinv_round_amount($this->subtotal));
837
+            $this->update_meta('_wpinv_total', wpinv_round_amount($this->total));
838
+            $this->update_meta('_wpinv_tax', wpinv_round_amount($this->tax));
839 839
             
840
-            $this->items    = array_values( $this->items );
840
+            $this->items = array_values($this->items);
841 841
             
842 842
             $new_meta = array(
843 843
                 'items'         => $this->items,
@@ -848,12 +848,12 @@  discard block
 block discarded – undo
848 848
             );
849 849
             
850 850
             $meta        = $this->get_meta();
851
-            $merged_meta = array_merge( $meta, $new_meta );
851
+            $merged_meta = array_merge($meta, $new_meta);
852 852
 
853 853
             // Only save the payment meta if it's changed
854
-            if ( md5( serialize( $meta ) ) !== md5( serialize( $merged_meta) ) ) {
855
-                $updated     = $this->update_meta( '_wpinv_payment_meta', $merged_meta );
856
-                if ( false !== $updated ) {
854
+            if (md5(serialize($meta)) !== md5(serialize($merged_meta))) {
855
+                $updated = $this->update_meta('_wpinv_payment_meta', $merged_meta);
856
+                if (false !== $updated) {
857 857
                     $saved = true;
858 858
                 }
859 859
             }
@@ -861,15 +861,15 @@  discard block
 block discarded – undo
861 861
             $this->pending = array();
862 862
             $saved         = true;
863 863
         } else {
864
-            $this->update_meta( '_wpinv_subtotal', wpinv_round_amount( $this->subtotal ) );
865
-            $this->update_meta( '_wpinv_total', wpinv_round_amount( $this->total ) );
866
-            $this->update_meta( '_wpinv_tax', wpinv_round_amount( $this->tax ) );
864
+            $this->update_meta('_wpinv_subtotal', wpinv_round_amount($this->subtotal));
865
+            $this->update_meta('_wpinv_total', wpinv_round_amount($this->total));
866
+            $this->update_meta('_wpinv_tax', wpinv_round_amount($this->tax));
867 867
         }
868 868
         
869
-        do_action( 'wpinv_invoice_save', $this, $saved );
869
+        do_action('wpinv_invoice_save', $this, $saved);
870 870
 
871
-        if ( true === $saved || $setup ) {
872
-            $this->setup_invoice( $this->ID );
871
+        if (true === $saved || $setup) {
872
+            $this->setup_invoice($this->ID);
873 873
         }
874 874
         
875 875
         $this->refresh_item_ids();
@@ -877,7 +877,7 @@  discard block
 block discarded – undo
877 877
         return $saved;
878 878
     }
879 879
     
880
-    public function add_fee( $args, $global = true ) {
880
+    public function add_fee($args, $global = true) {
881 881
         $default_args = array(
882 882
             'label'       => '',
883 883
             'amount'      => 0,
@@ -887,75 +887,75 @@  discard block
 block discarded – undo
887 887
             'item_id'     => 0,
888 888
         );
889 889
 
890
-        $fee = wp_parse_args( $args, $default_args );
890
+        $fee = wp_parse_args($args, $default_args);
891 891
         
892
-        if ( !empty( $fee['label'] ) ) {
892
+        if (!empty($fee['label'])) {
893 893
             return false;
894 894
         }
895 895
         
896
-        $fee['id']  = sanitize_title( $fee['label'] );
896
+        $fee['id'] = sanitize_title($fee['label']);
897 897
         
898
-        $this->fees[]               = $fee;
898
+        $this->fees[] = $fee;
899 899
         
900 900
         $added_fee               = $fee;
901 901
         $added_fee['action']     = 'add';
902 902
         $this->pending['fees'][] = $added_fee;
903
-        reset( $this->fees );
903
+        reset($this->fees);
904 904
 
905
-        $this->increase_fees( $fee['amount'] );
905
+        $this->increase_fees($fee['amount']);
906 906
         return true;
907 907
     }
908 908
 
909
-    public function remove_fee( $key ) {
909
+    public function remove_fee($key) {
910 910
         $removed = false;
911 911
 
912
-        if ( is_numeric( $key ) ) {
913
-            $removed = $this->remove_fee_by( 'index', $key );
912
+        if (is_numeric($key)) {
913
+            $removed = $this->remove_fee_by('index', $key);
914 914
         }
915 915
 
916 916
         return $removed;
917 917
     }
918 918
 
919
-    public function remove_fee_by( $key, $value, $global = false ) {
920
-        $allowed_fee_keys = apply_filters( 'wpinv_fee_keys', array(
919
+    public function remove_fee_by($key, $value, $global = false) {
920
+        $allowed_fee_keys = apply_filters('wpinv_fee_keys', array(
921 921
             'index', 'label', 'amount', 'type',
922
-        ) );
922
+        ));
923 923
 
924
-        if ( ! in_array( $key, $allowed_fee_keys ) ) {
924
+        if (!in_array($key, $allowed_fee_keys)) {
925 925
             return false;
926 926
         }
927 927
 
928 928
         $removed = false;
929
-        if ( 'index' === $key && array_key_exists( $value, $this->fees ) ) {
930
-            $removed_fee             = $this->fees[ $value ];
929
+        if ('index' === $key && array_key_exists($value, $this->fees)) {
930
+            $removed_fee             = $this->fees[$value];
931 931
             $removed_fee['action']   = 'remove';
932 932
             $this->pending['fees'][] = $removed_fee;
933 933
 
934
-            $this->decrease_fees( $removed_fee['amount'] );
934
+            $this->decrease_fees($removed_fee['amount']);
935 935
 
936
-            unset( $this->fees[ $value ] );
936
+            unset($this->fees[$value]);
937 937
             $removed = true;
938
-        } else if ( 'index' !== $key ) {
939
-            foreach ( $this->fees as $index => $fee ) {
940
-                if ( isset( $fee[ $key ] ) && $fee[ $key ] == $value ) {
938
+        } else if ('index' !== $key) {
939
+            foreach ($this->fees as $index => $fee) {
940
+                if (isset($fee[$key]) && $fee[$key] == $value) {
941 941
                     $removed_fee             = $fee;
942 942
                     $removed_fee['action']   = 'remove';
943 943
                     $this->pending['fees'][] = $removed_fee;
944 944
 
945
-                    $this->decrease_fees( $removed_fee['amount'] );
945
+                    $this->decrease_fees($removed_fee['amount']);
946 946
 
947
-                    unset( $this->fees[ $index ] );
947
+                    unset($this->fees[$index]);
948 948
                     $removed = true;
949 949
 
950
-                    if ( false === $global ) {
950
+                    if (false === $global) {
951 951
                         break;
952 952
                     }
953 953
                 }
954 954
             }
955 955
         }
956 956
 
957
-        if ( true === $removed ) {
958
-            $this->fees = array_values( $this->fees );
957
+        if (true === $removed) {
958
+            $this->fees = array_values($this->fees);
959 959
         }
960 960
 
961 961
         return $removed;
@@ -963,35 +963,35 @@  discard block
 block discarded – undo
963 963
 
964 964
     
965 965
 
966
-    public function add_note( $note = '', $customer_type = false, $added_by_user = false, $system = false ) {
966
+    public function add_note($note = '', $customer_type = false, $added_by_user = false, $system = false) {
967 967
         // Bail if no note specified
968
-        if( !$note ) {
968
+        if (!$note) {
969 969
             return false;
970 970
         }
971 971
 
972
-        if ( empty( $this->ID ) )
972
+        if (empty($this->ID))
973 973
             return false;
974 974
         
975
-        if ( ( ( is_user_logged_in() && current_user_can( 'manage_options' ) ) || $added_by_user ) && !$system ) {
976
-            $user                 = get_user_by( 'id', get_current_user_id() );
975
+        if (((is_user_logged_in() && current_user_can('manage_options')) || $added_by_user) && !$system) {
976
+            $user                 = get_user_by('id', get_current_user_id());
977 977
             $comment_author       = $user->display_name;
978 978
             $comment_author_email = $user->user_email;
979 979
         } else {
980
-            $comment_author       = __( 'System', 'invoicing' );
981
-            $comment_author_email = strtolower( __( 'System', 'invoicing' ) ) . '@';
982
-            $comment_author_email .= isset( $_SERVER['HTTP_HOST'] ) ? str_replace( 'www.', '', $_SERVER['HTTP_HOST'] ) : 'noreply.com';
983
-            $comment_author_email = sanitize_email( $comment_author_email );
980
+            $comment_author       = __('System', 'invoicing');
981
+            $comment_author_email = strtolower(__('System', 'invoicing')) . '@';
982
+            $comment_author_email .= isset($_SERVER['HTTP_HOST']) ? str_replace('www.', '', $_SERVER['HTTP_HOST']) : 'noreply.com';
983
+            $comment_author_email = sanitize_email($comment_author_email);
984 984
         }
985 985
 
986
-        do_action( 'wpinv_pre_insert_invoice_note', $this->ID, $note, $customer_type );
986
+        do_action('wpinv_pre_insert_invoice_note', $this->ID, $note, $customer_type);
987 987
 
988
-        $note_id = wp_insert_comment( wp_filter_comment( array(
988
+        $note_id = wp_insert_comment(wp_filter_comment(array(
989 989
             'comment_post_ID'      => $this->ID,
990 990
             'comment_content'      => $note,
991 991
             'comment_agent'        => 'GeoDirectory',
992 992
             'user_id'              => is_admin() ? get_current_user_id() : 0,
993
-            'comment_date'         => current_time( 'mysql' ),
994
-            'comment_date_gmt'     => current_time( 'mysql', 1 ),
993
+            'comment_date'         => current_time('mysql'),
994
+            'comment_date_gmt'     => current_time('mysql', 1),
995 995
             'comment_approved'     => 1,
996 996
             'comment_parent'       => 0,
997 997
             'comment_author'       => $comment_author,
@@ -999,53 +999,53 @@  discard block
 block discarded – undo
999 999
             'comment_author_url'   => '',
1000 1000
             'comment_author_email' => $comment_author_email,
1001 1001
             'comment_type'         => 'wpinv_note'
1002
-        ) ) );
1002
+        )));
1003 1003
 
1004
-        do_action( 'wpinv_insert_payment_note', $note_id, $this->ID, $note );
1004
+        do_action('wpinv_insert_payment_note', $note_id, $this->ID, $note);
1005 1005
         
1006
-        if ( $customer_type ) {
1007
-            add_comment_meta( $note_id, '_wpi_customer_note', 1 );
1006
+        if ($customer_type) {
1007
+            add_comment_meta($note_id, '_wpi_customer_note', 1);
1008 1008
 
1009
-            do_action( 'wpinv_new_customer_note', array( 'invoice_id' => $this->ID, 'user_note' => $note ) );
1009
+            do_action('wpinv_new_customer_note', array('invoice_id' => $this->ID, 'user_note' => $note));
1010 1010
         }
1011 1011
 
1012 1012
         return $note_id;
1013 1013
     }
1014 1014
 
1015
-    private function increase_subtotal( $amount = 0.00 ) {
1016
-        $amount          = (float) $amount;
1015
+    private function increase_subtotal($amount = 0.00) {
1016
+        $amount          = (float)$amount;
1017 1017
         $this->subtotal += $amount;
1018
-        $this->subtotal  = wpinv_round_amount( $this->subtotal );
1018
+        $this->subtotal  = wpinv_round_amount($this->subtotal);
1019 1019
 
1020 1020
         $this->recalculate_total();
1021 1021
     }
1022 1022
 
1023
-    private function decrease_subtotal( $amount = 0.00 ) {
1024
-        $amount          = (float) $amount;
1023
+    private function decrease_subtotal($amount = 0.00) {
1024
+        $amount          = (float)$amount;
1025 1025
         $this->subtotal -= $amount;
1026
-        $this->subtotal  = wpinv_round_amount( $this->subtotal );
1026
+        $this->subtotal  = wpinv_round_amount($this->subtotal);
1027 1027
 
1028
-        if ( $this->subtotal < 0 ) {
1028
+        if ($this->subtotal < 0) {
1029 1029
             $this->subtotal = 0;
1030 1030
         }
1031 1031
 
1032 1032
         $this->recalculate_total();
1033 1033
     }
1034 1034
 
1035
-    private function increase_fees( $amount = 0.00 ) {
1035
+    private function increase_fees($amount = 0.00) {
1036 1036
         $amount            = (float)$amount;
1037 1037
         $this->fees_total += $amount;
1038
-        $this->fees_total  = wpinv_round_amount( $this->fees_total );
1038
+        $this->fees_total  = wpinv_round_amount($this->fees_total);
1039 1039
 
1040 1040
         $this->recalculate_total();
1041 1041
     }
1042 1042
 
1043
-    private function decrease_fees( $amount = 0.00 ) {
1044
-        $amount            = (float) $amount;
1043
+    private function decrease_fees($amount = 0.00) {
1044
+        $amount            = (float)$amount;
1045 1045
         $this->fees_total -= $amount;
1046
-        $this->fees_total  = wpinv_round_amount( $this->fees_total );
1046
+        $this->fees_total  = wpinv_round_amount($this->fees_total);
1047 1047
 
1048
-        if ( $this->fees_total < 0 ) {
1048
+        if ($this->fees_total < 0) {
1049 1049
             $this->fees_total = 0;
1050 1050
         }
1051 1051
 
@@ -1056,54 +1056,54 @@  discard block
 block discarded – undo
1056 1056
         global $wpi_nosave;
1057 1057
         
1058 1058
         $this->total = $this->subtotal + $this->tax + $this->fees_total;
1059
-        $this->total = wpinv_round_amount( $this->total );
1059
+        $this->total = wpinv_round_amount($this->total);
1060 1060
         
1061
-        do_action( 'wpinv_invoice_recalculate_total', $this, $wpi_nosave );
1061
+        do_action('wpinv_invoice_recalculate_total', $this, $wpi_nosave);
1062 1062
     }
1063 1063
     
1064
-    public function increase_tax( $amount = 0.00 ) {
1065
-        $amount       = (float) $amount;
1064
+    public function increase_tax($amount = 0.00) {
1065
+        $amount       = (float)$amount;
1066 1066
         $this->tax   += $amount;
1067 1067
 
1068 1068
         $this->recalculate_total();
1069 1069
     }
1070 1070
 
1071
-    public function decrease_tax( $amount = 0.00 ) {
1072
-        $amount     = (float) $amount;
1071
+    public function decrease_tax($amount = 0.00) {
1072
+        $amount     = (float)$amount;
1073 1073
         $this->tax -= $amount;
1074 1074
 
1075
-        if ( $this->tax < 0 ) {
1075
+        if ($this->tax < 0) {
1076 1076
             $this->tax = 0;
1077 1077
         }
1078 1078
 
1079 1079
         $this->recalculate_total();
1080 1080
     }
1081 1081
 
1082
-    public function update_status( $new_status = false, $note = '', $manual = false ) {
1083
-        $old_status = ! empty( $this->old_status ) ? $this->old_status : get_post_status( $this->ID );
1082
+    public function update_status($new_status = false, $note = '', $manual = false) {
1083
+        $old_status = !empty($this->old_status) ? $this->old_status : get_post_status($this->ID);
1084 1084
         
1085
-        if ( $old_status === $new_status && in_array( $new_status, array_keys( wpinv_get_invoice_statuses() ) ) ) {
1085
+        if ($old_status === $new_status && in_array($new_status, array_keys(wpinv_get_invoice_statuses()))) {
1086 1086
             return false; // Don't permit status changes that aren't changes
1087 1087
         }
1088 1088
 
1089
-        $do_change = apply_filters( 'wpinv_should_update_invoice_status', true, $this->ID, $new_status, $old_status );
1089
+        $do_change = apply_filters('wpinv_should_update_invoice_status', true, $this->ID, $new_status, $old_status);
1090 1090
         $updated = false;
1091 1091
 
1092
-        if ( $do_change ) {
1093
-            do_action( 'wpinv_before_invoice_status_change', $this->ID, $new_status, $old_status );
1092
+        if ($do_change) {
1093
+            do_action('wpinv_before_invoice_status_change', $this->ID, $new_status, $old_status);
1094 1094
 
1095 1095
             $update_post_data                   = array();
1096 1096
             $update_post_data['ID']             = $this->ID;
1097 1097
             $update_post_data['post_status']    = $new_status;
1098
-            $update_post_data['edit_date']      = current_time( 'mysql', 0 );
1099
-            $update_post_data['edit_date_gmt']  = current_time( 'mysql', 1 );
1098
+            $update_post_data['edit_date']      = current_time('mysql', 0);
1099
+            $update_post_data['edit_date_gmt']  = current_time('mysql', 1);
1100 1100
             
1101
-            $update_post_data = apply_filters( 'wpinv_update_invoice_status_fields', $update_post_data, $this->ID );
1101
+            $update_post_data = apply_filters('wpinv_update_invoice_status_fields', $update_post_data, $this->ID);
1102 1102
 
1103
-            $updated = wp_update_post( $update_post_data );     
1103
+            $updated = wp_update_post($update_post_data);     
1104 1104
            
1105 1105
             // Process any specific status functions
1106
-            switch( $new_status ) {
1106
+            switch ($new_status) {
1107 1107
                 case 'wpi-refunded':
1108 1108
                     $this->process_refund();
1109 1109
                     break;
@@ -1116,9 +1116,9 @@  discard block
 block discarded – undo
1116 1116
             }
1117 1117
             
1118 1118
             // Status was changed.
1119
-            do_action( 'wpinv_status_' . $new_status, $this->ID, $old_status );
1120
-            do_action( 'wpinv_status_' . $old_status . '_to_' . $new_status, $this->ID, $old_status );
1121
-            do_action( 'wpinv_update_status', $this->ID, $new_status, $old_status );
1119
+            do_action('wpinv_status_' . $new_status, $this->ID, $old_status);
1120
+            do_action('wpinv_status_' . $old_status . '_to_' . $new_status, $this->ID, $old_status);
1121
+            do_action('wpinv_update_status', $this->ID, $new_status, $old_status);
1122 1122
         }
1123 1123
 
1124 1124
         return $updated;
@@ -1132,72 +1132,72 @@  discard block
 block discarded – undo
1132 1132
         $this->save();
1133 1133
     }
1134 1134
 
1135
-    public function update_meta( $meta_key = '', $meta_value = '', $prev_value = '' ) {
1136
-        if ( empty( $meta_key ) ) {
1135
+    public function update_meta($meta_key = '', $meta_value = '', $prev_value = '') {
1136
+        if (empty($meta_key)) {
1137 1137
             return false;
1138 1138
         }
1139 1139
 
1140
-        if ( $meta_key == 'key' || $meta_key == 'date' ) {
1140
+        if ($meta_key == 'key' || $meta_key == 'date') {
1141 1141
             $current_meta = $this->get_meta();
1142
-            $current_meta[ $meta_key ] = $meta_value;
1142
+            $current_meta[$meta_key] = $meta_value;
1143 1143
 
1144 1144
             $meta_key     = '_wpinv_payment_meta';
1145 1145
             $meta_value   = $current_meta;
1146 1146
         }
1147 1147
 
1148
-        $meta_value = apply_filters( 'wpinv_update_payment_meta_' . $meta_key, $meta_value, $this->ID );
1148
+        $meta_value = apply_filters('wpinv_update_payment_meta_' . $meta_key, $meta_value, $this->ID);
1149 1149
         
1150
-        if ( $meta_key == '_wpinv_completed_date' && !empty( $meta_value ) ) {
1150
+        if ($meta_key == '_wpinv_completed_date' && !empty($meta_value)) {
1151 1151
             $args = array(
1152 1152
                 'ID'                => $this->ID,
1153 1153
                 'post_date'         => $meta_value,
1154 1154
                 'edit_date'         => true,
1155
-                'post_date_gmt'     => get_gmt_from_date( $meta_value ),
1155
+                'post_date_gmt'     => get_gmt_from_date($meta_value),
1156 1156
                 'post_modified'     => $meta_value,
1157
-                'post_modified_gmt' => get_gmt_from_date( $meta_value )
1157
+                'post_modified_gmt' => get_gmt_from_date($meta_value)
1158 1158
             );
1159
-            wp_update_post( $args );
1159
+            wp_update_post($args);
1160 1160
         }
1161 1161
         
1162
-        return update_post_meta( $this->ID, $meta_key, $meta_value, $prev_value );
1162
+        return update_post_meta($this->ID, $meta_key, $meta_value, $prev_value);
1163 1163
     }
1164 1164
 
1165 1165
     private function process_refund() {
1166 1166
         $process_refund = true;
1167 1167
 
1168 1168
         // If the payment was not in publish, don't decrement stats as they were never incremented
1169
-        if ( 'publish' != $this->old_status || 'wpi-refunded' != $this->status ) {
1169
+        if ('publish' != $this->old_status || 'wpi-refunded' != $this->status) {
1170 1170
             $process_refund = false;
1171 1171
         }
1172 1172
 
1173 1173
         // Allow extensions to filter for their own payment types, Example: Recurring Payments
1174
-        $process_refund = apply_filters( 'wpinv_should_process_refund', $process_refund, $this );
1174
+        $process_refund = apply_filters('wpinv_should_process_refund', $process_refund, $this);
1175 1175
 
1176
-        if ( false === $process_refund ) {
1176
+        if (false === $process_refund) {
1177 1177
             return;
1178 1178
         }
1179 1179
 
1180
-        do_action( 'wpinv_pre_refund_invoice', $this );
1180
+        do_action('wpinv_pre_refund_invoice', $this);
1181 1181
         
1182
-        $decrease_store_earnings = apply_filters( 'wpinv_decrease_store_earnings_on_refund', true, $this );
1183
-        $decrease_customer_value = apply_filters( 'wpinv_decrease_customer_value_on_refund', true, $this );
1184
-        $decrease_purchase_count = apply_filters( 'wpinv_decrease_customer_purchase_count_on_refund', true, $this );
1182
+        $decrease_store_earnings = apply_filters('wpinv_decrease_store_earnings_on_refund', true, $this);
1183
+        $decrease_customer_value = apply_filters('wpinv_decrease_customer_value_on_refund', true, $this);
1184
+        $decrease_purchase_count = apply_filters('wpinv_decrease_customer_purchase_count_on_refund', true, $this);
1185 1185
         
1186
-        do_action( 'wpinv_post_refund_invoice', $this );
1186
+        do_action('wpinv_post_refund_invoice', $this);
1187 1187
     }
1188 1188
 
1189 1189
     private function process_failure() {
1190 1190
         $discounts = $this->discounts;
1191
-        if ( empty( $discounts ) ) {
1191
+        if (empty($discounts)) {
1192 1192
             return;
1193 1193
         }
1194 1194
 
1195
-        if ( ! is_array( $discounts ) ) {
1196
-            $discounts = array_map( 'trim', explode( ',', $discounts ) );
1195
+        if (!is_array($discounts)) {
1196
+            $discounts = array_map('trim', explode(',', $discounts));
1197 1197
         }
1198 1198
 
1199
-        foreach ( $discounts as $discount ) {
1200
-            wpinv_decrease_discount_usage( $discount );
1199
+        foreach ($discounts as $discount) {
1200
+            wpinv_decrease_discount_usage($discount);
1201 1201
         }
1202 1202
     }
1203 1203
     
@@ -1205,92 +1205,92 @@  discard block
 block discarded – undo
1205 1205
         $process_pending = true;
1206 1206
 
1207 1207
         // If the payment was not in publish or revoked status, don't decrement stats as they were never incremented
1208
-        if ( ( 'publish' != $this->old_status && 'revoked' != $this->old_status ) || 'pending' != $this->status ) {
1208
+        if (('publish' != $this->old_status && 'revoked' != $this->old_status) || 'pending' != $this->status) {
1209 1209
             $process_pending = false;
1210 1210
         }
1211 1211
 
1212 1212
         // Allow extensions to filter for their own payment types, Example: Recurring Payments
1213
-        $process_pending = apply_filters( 'wpinv_should_process_pending', $process_pending, $this );
1213
+        $process_pending = apply_filters('wpinv_should_process_pending', $process_pending, $this);
1214 1214
 
1215
-        if ( false === $process_pending ) {
1215
+        if (false === $process_pending) {
1216 1216
             return;
1217 1217
         }
1218 1218
 
1219
-        $decrease_store_earnings = apply_filters( 'wpinv_decrease_store_earnings_on_pending', true, $this );
1220
-        $decrease_customer_value = apply_filters( 'wpinv_decrease_customer_value_on_pending', true, $this );
1221
-        $decrease_purchase_count = apply_filters( 'wpinv_decrease_customer_purchase_count_on_pending', true, $this );
1219
+        $decrease_store_earnings = apply_filters('wpinv_decrease_store_earnings_on_pending', true, $this);
1220
+        $decrease_customer_value = apply_filters('wpinv_decrease_customer_value_on_pending', true, $this);
1221
+        $decrease_purchase_count = apply_filters('wpinv_decrease_customer_purchase_count_on_pending', true, $this);
1222 1222
 
1223 1223
         $this->completed_date = '';
1224
-        $this->update_meta( '_wpinv_completed_date', '' );
1224
+        $this->update_meta('_wpinv_completed_date', '');
1225 1225
     }
1226 1226
     
1227 1227
     // get data
1228
-    public function get_meta( $meta_key = '_wpinv_payment_meta', $single = true ) {
1229
-        $meta = get_post_meta( $this->ID, $meta_key, $single );
1228
+    public function get_meta($meta_key = '_wpinv_payment_meta', $single = true) {
1229
+        $meta = get_post_meta($this->ID, $meta_key, $single);
1230 1230
 
1231
-        if ( $meta_key === '_wpinv_payment_meta' ) {
1231
+        if ($meta_key === '_wpinv_payment_meta') {
1232 1232
 
1233
-            if(!is_array($meta)){$meta = array();} // we need this to be an array so make sure it is.
1233
+            if (!is_array($meta)) {$meta = array(); } // we need this to be an array so make sure it is.
1234 1234
 
1235
-            if ( empty( $meta['key'] ) ) {
1235
+            if (empty($meta['key'])) {
1236 1236
                 $meta['key'] = $this->setup_invoice_key();
1237 1237
             }
1238 1238
 
1239
-            if ( empty( $meta['date'] ) ) {
1240
-                $meta['date'] = get_post_field( 'post_date', $this->ID );
1239
+            if (empty($meta['date'])) {
1240
+                $meta['date'] = get_post_field('post_date', $this->ID);
1241 1241
             }
1242 1242
         }
1243 1243
 
1244
-        $meta = apply_filters( 'wpinv_get_invoice_meta_' . $meta_key, $meta, $this->ID );
1244
+        $meta = apply_filters('wpinv_get_invoice_meta_' . $meta_key, $meta, $this->ID);
1245 1245
 
1246
-        return apply_filters( 'wpinv_get_invoice_meta', $meta, $this->ID, $meta_key );
1246
+        return apply_filters('wpinv_get_invoice_meta', $meta, $this->ID, $meta_key);
1247 1247
     }
1248 1248
     
1249 1249
     public function get_description() {
1250
-        $post = get_post( $this->ID );
1250
+        $post = get_post($this->ID);
1251 1251
         
1252
-        $description = !empty( $post ) ? $post->post_content : '';
1253
-        return apply_filters( 'wpinv_get_description', $description, $this->ID, $this );
1252
+        $description = !empty($post) ? $post->post_content : '';
1253
+        return apply_filters('wpinv_get_description', $description, $this->ID, $this);
1254 1254
     }
1255 1255
     
1256
-    public function get_status( $nicename = false ) {
1257
-        if ( !$nicename ) {
1256
+    public function get_status($nicename = false) {
1257
+        if (!$nicename) {
1258 1258
             $status = $this->status;
1259 1259
         } else {
1260 1260
             $status = $this->status_nicename;
1261 1261
         }
1262 1262
         
1263
-        return apply_filters( 'wpinv_get_status', $status, $nicename, $this->ID, $this );
1263
+        return apply_filters('wpinv_get_status', $status, $nicename, $this->ID, $this);
1264 1264
     }
1265 1265
     
1266 1266
     public function get_cart_details() {
1267
-        return apply_filters( 'wpinv_cart_details', $this->cart_details, $this->ID, $this );
1267
+        return apply_filters('wpinv_cart_details', $this->cart_details, $this->ID, $this);
1268 1268
     }
1269 1269
     
1270
-    public function get_subtotal( $currency = false ) {
1271
-        $subtotal = wpinv_round_amount( $this->subtotal );
1270
+    public function get_subtotal($currency = false) {
1271
+        $subtotal = wpinv_round_amount($this->subtotal);
1272 1272
         
1273
-        if ( $currency ) {
1274
-            $subtotal = wpinv_price( wpinv_format_amount( $subtotal, NULL, !$currency ), $this->get_currency() );
1273
+        if ($currency) {
1274
+            $subtotal = wpinv_price(wpinv_format_amount($subtotal, NULL, !$currency), $this->get_currency());
1275 1275
         }
1276 1276
         
1277
-        return apply_filters( 'wpinv_get_invoice_subtotal', $subtotal, $this->ID, $this, $currency );
1277
+        return apply_filters('wpinv_get_invoice_subtotal', $subtotal, $this->ID, $this, $currency);
1278 1278
     }
1279 1279
     
1280
-    public function get_total( $currency = false ) {        
1281
-        if ( $this->is_free_trial() ) {
1282
-            $total = wpinv_round_amount( 0 );
1280
+    public function get_total($currency = false) {        
1281
+        if ($this->is_free_trial()) {
1282
+            $total = wpinv_round_amount(0);
1283 1283
         } else {
1284
-            $total = wpinv_round_amount( $this->total );
1284
+            $total = wpinv_round_amount($this->total);
1285 1285
         }
1286
-        if ( $currency ) {
1287
-            $total = wpinv_price( wpinv_format_amount( $total, NULL, !$currency ), $this->get_currency() );
1286
+        if ($currency) {
1287
+            $total = wpinv_price(wpinv_format_amount($total, NULL, !$currency), $this->get_currency());
1288 1288
         }
1289 1289
         
1290
-        return apply_filters( 'wpinv_get_invoice_total', $total, $this->ID, $this, $currency );
1290
+        return apply_filters('wpinv_get_invoice_total', $total, $this->ID, $this, $currency);
1291 1291
     }
1292 1292
     
1293
-    public function get_recurring_details( $field = '', $currency = false ) {        
1293
+    public function get_recurring_details($field = '', $currency = false) {        
1294 1294
         $data                 = array();
1295 1295
         $data['cart_details'] = $this->cart_details;
1296 1296
         $data['subtotal']     = $this->get_subtotal();
@@ -1298,45 +1298,45 @@  discard block
 block discarded – undo
1298 1298
         $data['tax']          = $this->get_tax();
1299 1299
         $data['total']        = $this->get_total();
1300 1300
     
1301
-        if ( !empty( $this->cart_details ) && ( $this->is_parent() || $this->is_renewal() ) ) {
1301
+        if (!empty($this->cart_details) && ($this->is_parent() || $this->is_renewal())) {
1302 1302
             $is_free_trial = $this->is_free_trial();
1303
-            $discounts = $this->get_discounts( true );
1303
+            $discounts = $this->get_discounts(true);
1304 1304
             
1305
-            if ( $is_free_trial || !empty( $discounts ) ) {
1305
+            if ($is_free_trial || !empty($discounts)) {
1306 1306
                 $first_use_only = false;
1307 1307
                 
1308
-                if ( !empty( $discounts ) ) {
1309
-                    foreach ( $discounts as $key => $code ) {
1310
-                        if ( wpinv_discount_is_recurring( $code, true ) ) {
1308
+                if (!empty($discounts)) {
1309
+                    foreach ($discounts as $key => $code) {
1310
+                        if (wpinv_discount_is_recurring($code, true)) {
1311 1311
                             $first_use_only = true;
1312 1312
                             break;
1313 1313
                         }
1314 1314
                     }
1315 1315
                 }
1316 1316
                     
1317
-                if ( !$first_use_only ) {
1318
-                    $data['subtotal'] = wpinv_round_amount( $this->subtotal );
1319
-                    $data['discount'] = wpinv_round_amount( $this->discount );
1320
-                    $data['tax']      = wpinv_round_amount( $this->tax );
1321
-                    $data['total']    = wpinv_round_amount( $this->total );
1317
+                if (!$first_use_only) {
1318
+                    $data['subtotal'] = wpinv_round_amount($this->subtotal);
1319
+                    $data['discount'] = wpinv_round_amount($this->discount);
1320
+                    $data['tax']      = wpinv_round_amount($this->tax);
1321
+                    $data['total']    = wpinv_round_amount($this->total);
1322 1322
                 } else {
1323 1323
                     $cart_subtotal   = 0;
1324 1324
                     $cart_discount   = 0;
1325 1325
                     $cart_tax        = 0;
1326 1326
 
1327
-                    foreach ( $this->cart_details as $key => $item ) {
1328
-                        $item_quantity  = $item['quantity'] > 0 ? absint( $item['quantity'] ) : 1;
1329
-                        $item_subtotal  = !empty( $item['subtotal'] ) ? $item['subtotal'] : $item['item_price'] * $item_quantity;
1327
+                    foreach ($this->cart_details as $key => $item) {
1328
+                        $item_quantity  = $item['quantity'] > 0 ? absint($item['quantity']) : 1;
1329
+                        $item_subtotal  = !empty($item['subtotal']) ? $item['subtotal'] : $item['item_price'] * $item_quantity;
1330 1330
                         $item_discount  = 0;
1331
-                        $item_tax       = $item_subtotal > 0 && !empty( $item['vat_rate'] ) ? ( $item_subtotal * 0.01 * (float)$item['vat_rate'] ) : 0;
1331
+                        $item_tax       = $item_subtotal > 0 && !empty($item['vat_rate']) ? ($item_subtotal * 0.01 * (float)$item['vat_rate']) : 0;
1332 1332
                         
1333
-                        if ( wpinv_prices_include_tax() ) {
1334
-                            $item_subtotal -= wpinv_round_amount( $item_tax );
1333
+                        if (wpinv_prices_include_tax()) {
1334
+                            $item_subtotal -= wpinv_round_amount($item_tax);
1335 1335
                         }
1336 1336
                         
1337 1337
                         $item_total     = $item_subtotal - $item_discount + $item_tax;
1338 1338
                         // Do not allow totals to go negative
1339
-                        if ( $item_total < 0 ) {
1339
+                        if ($item_total < 0) {
1340 1340
                             $item_total = 0;
1341 1341
                         }
1342 1342
                         
@@ -1344,107 +1344,107 @@  discard block
 block discarded – undo
1344 1344
                         $cart_discount  += (float)($item_discount);
1345 1345
                         $cart_tax       += (float)($item_tax);
1346 1346
                         
1347
-                        $data['cart_details'][$key]['discount']   = wpinv_round_amount( $item_discount );
1348
-                        $data['cart_details'][$key]['tax']        = wpinv_round_amount( $item_tax );
1349
-                        $data['cart_details'][$key]['price']      = wpinv_round_amount( $item_total );
1347
+                        $data['cart_details'][$key]['discount']   = wpinv_round_amount($item_discount);
1348
+                        $data['cart_details'][$key]['tax']        = wpinv_round_amount($item_tax);
1349
+                        $data['cart_details'][$key]['price']      = wpinv_round_amount($item_total);
1350 1350
                     }
1351 1351
                     
1352
-                    $data['subtotal'] = wpinv_round_amount( $cart_subtotal );
1353
-                    $data['discount'] = wpinv_round_amount( $cart_discount );
1354
-                    $data['tax']      = wpinv_round_amount( $cart_tax );
1355
-                    $data['total']    = wpinv_round_amount( $data['subtotal'] + $data['tax'] );
1352
+                    $data['subtotal'] = wpinv_round_amount($cart_subtotal);
1353
+                    $data['discount'] = wpinv_round_amount($cart_discount);
1354
+                    $data['tax']      = wpinv_round_amount($cart_tax);
1355
+                    $data['total']    = wpinv_round_amount($data['subtotal'] + $data['tax']);
1356 1356
                 }
1357 1357
             }
1358 1358
         }
1359 1359
         
1360
-        $data = apply_filters( 'wpinv_get_invoice_recurring_details', $data, $this, $field, $currency );
1360
+        $data = apply_filters('wpinv_get_invoice_recurring_details', $data, $this, $field, $currency);
1361 1361
 
1362
-        if ( isset( $data[$field] ) ) {
1363
-            return ( $currency ? wpinv_price( $data[$field], $this->get_currency() ) : $data[$field] );
1362
+        if (isset($data[$field])) {
1363
+            return ($currency ? wpinv_price($data[$field], $this->get_currency()) : $data[$field]);
1364 1364
         }
1365 1365
         
1366 1366
         return $data;
1367 1367
     }
1368 1368
     
1369
-    public function get_final_tax( $currency = false ) {        
1370
-        $final_total = wpinv_round_amount( $this->tax );
1371
-        if ( $currency ) {
1372
-            $final_total = wpinv_price( wpinv_format_amount( $final_total, NULL, !$currency ), $this->get_currency() );
1369
+    public function get_final_tax($currency = false) {        
1370
+        $final_total = wpinv_round_amount($this->tax);
1371
+        if ($currency) {
1372
+            $final_total = wpinv_price(wpinv_format_amount($final_total, NULL, !$currency), $this->get_currency());
1373 1373
         }
1374 1374
         
1375
-        return apply_filters( 'wpinv_get_invoice_final_total', $final_total, $this, $currency );
1375
+        return apply_filters('wpinv_get_invoice_final_total', $final_total, $this, $currency);
1376 1376
     }
1377 1377
     
1378
-    public function get_discounts( $array = false ) {
1378
+    public function get_discounts($array = false) {
1379 1379
         $discounts = $this->discounts;
1380
-        if ( $array && $discounts ) {
1381
-            $discounts = explode( ',', $discounts );
1380
+        if ($array && $discounts) {
1381
+            $discounts = explode(',', $discounts);
1382 1382
         }
1383
-        return apply_filters( 'wpinv_payment_discounts', $discounts, $this->ID, $this, $array );
1383
+        return apply_filters('wpinv_payment_discounts', $discounts, $this->ID, $this, $array);
1384 1384
     }
1385 1385
     
1386
-    public function get_discount( $currency = false, $dash = false ) {
1387
-        if ( !empty( $this->discounts ) ) {
1386
+    public function get_discount($currency = false, $dash = false) {
1387
+        if (!empty($this->discounts)) {
1388 1388
             global $ajax_cart_details;
1389 1389
             $ajax_cart_details = $this->get_cart_details();
1390 1390
 
1391
-            $this->discount = wpinv_get_cart_items_discount_amount( $this->items , $this->discounts );
1391
+            $this->discount = wpinv_get_cart_items_discount_amount($this->items, $this->discounts);
1392 1392
         }
1393
-        $discount   = wpinv_round_amount( $this->discount );
1393
+        $discount   = wpinv_round_amount($this->discount);
1394 1394
         $dash       = $dash && $discount > 0 ? '&ndash;' : '';
1395 1395
         
1396
-        if ( $currency ) {
1397
-            $discount = wpinv_price( wpinv_format_amount( $discount, NULL, !$currency ), $this->get_currency() );
1396
+        if ($currency) {
1397
+            $discount = wpinv_price(wpinv_format_amount($discount, NULL, !$currency), $this->get_currency());
1398 1398
         }
1399 1399
         
1400
-        $discount   = $dash . $discount;
1400
+        $discount = $dash . $discount;
1401 1401
         
1402
-        return apply_filters( 'wpinv_get_invoice_discount', $discount, $this->ID, $this, $currency, $dash );
1402
+        return apply_filters('wpinv_get_invoice_discount', $discount, $this->ID, $this, $currency, $dash);
1403 1403
     }
1404 1404
     
1405 1405
     public function get_discount_code() {
1406 1406
         return $this->discount_code;
1407 1407
     }
1408 1408
     
1409
-    public function get_tax( $currency = false ) {
1410
-        $tax = wpinv_round_amount( $this->tax );
1409
+    public function get_tax($currency = false) {
1410
+        $tax = wpinv_round_amount($this->tax);
1411 1411
         
1412
-        if ( $currency ) {
1413
-            $tax = wpinv_price( wpinv_format_amount( $tax, NULL, !$currency ), $this->get_currency() );
1412
+        if ($currency) {
1413
+            $tax = wpinv_price(wpinv_format_amount($tax, NULL, !$currency), $this->get_currency());
1414 1414
         }
1415 1415
         
1416
-        return apply_filters( 'wpinv_get_invoice_tax', $tax, $this->ID, $this, $currency );
1416
+        return apply_filters('wpinv_get_invoice_tax', $tax, $this->ID, $this, $currency);
1417 1417
     }
1418 1418
     
1419
-    public function get_fees( $type = 'all' ) {
1420
-        $fees    = array();
1419
+    public function get_fees($type = 'all') {
1420
+        $fees = array();
1421 1421
 
1422
-        if ( ! empty( $this->fees ) && is_array( $this->fees ) ) {
1423
-            foreach ( $this->fees as $fee ) {
1424
-                if( 'all' != $type && ! empty( $fee['type'] ) && $type != $fee['type'] ) {
1422
+        if (!empty($this->fees) && is_array($this->fees)) {
1423
+            foreach ($this->fees as $fee) {
1424
+                if ('all' != $type && !empty($fee['type']) && $type != $fee['type']) {
1425 1425
                     continue;
1426 1426
                 }
1427 1427
 
1428
-                $fee['label'] = stripslashes( $fee['label'] );
1429
-                $fee['amount_display'] = wpinv_price( $fee['amount'], $this->get_currency() );
1430
-                $fees[]    = $fee;
1428
+                $fee['label'] = stripslashes($fee['label']);
1429
+                $fee['amount_display'] = wpinv_price($fee['amount'], $this->get_currency());
1430
+                $fees[] = $fee;
1431 1431
             }
1432 1432
         }
1433 1433
 
1434
-        return apply_filters( 'wpinv_get_invoice_fees', $fees, $this->ID, $this );
1434
+        return apply_filters('wpinv_get_invoice_fees', $fees, $this->ID, $this);
1435 1435
     }
1436 1436
     
1437
-    public function get_fees_total( $type = 'all' ) {
1438
-        $fees_total = (float) 0.00;
1437
+    public function get_fees_total($type = 'all') {
1438
+        $fees_total = (float)0.00;
1439 1439
 
1440
-        $payment_fees = isset( $this->payment_meta['fees'] ) ? $this->payment_meta['fees'] : array();
1441
-        if ( ! empty( $payment_fees ) ) {
1442
-            foreach ( $payment_fees as $fee ) {
1443
-                $fees_total += (float) $fee['amount'];
1440
+        $payment_fees = isset($this->payment_meta['fees']) ? $this->payment_meta['fees'] : array();
1441
+        if (!empty($payment_fees)) {
1442
+            foreach ($payment_fees as $fee) {
1443
+                $fees_total += (float)$fee['amount'];
1444 1444
             }
1445 1445
         }
1446 1446
 
1447
-        return apply_filters( 'wpinv_get_invoice_fees_total', $fees_total, $this->ID, $this );
1447
+        return apply_filters('wpinv_get_invoice_fees_total', $fees_total, $this->ID, $this);
1448 1448
         /*
1449 1449
         $fees = $this->get_fees( $type );
1450 1450
 
@@ -1464,116 +1464,116 @@  discard block
 block discarded – undo
1464 1464
     }
1465 1465
 
1466 1466
     public function get_user_id() {
1467
-        return apply_filters( 'wpinv_user_id', $this->user_id, $this->ID, $this );
1467
+        return apply_filters('wpinv_user_id', $this->user_id, $this->ID, $this);
1468 1468
     }
1469 1469
     
1470 1470
     public function get_first_name() {
1471
-        return apply_filters( 'wpinv_first_name', $this->first_name, $this->ID, $this );
1471
+        return apply_filters('wpinv_first_name', $this->first_name, $this->ID, $this);
1472 1472
     }
1473 1473
     
1474 1474
     public function get_last_name() {
1475
-        return apply_filters( 'wpinv_last_name', $this->last_name, $this->ID, $this );
1475
+        return apply_filters('wpinv_last_name', $this->last_name, $this->ID, $this);
1476 1476
     }
1477 1477
     
1478 1478
     public function get_user_full_name() {
1479
-        return apply_filters( 'wpinv_user_full_name', $this->full_name, $this->ID, $this );
1479
+        return apply_filters('wpinv_user_full_name', $this->full_name, $this->ID, $this);
1480 1480
     }
1481 1481
     
1482 1482
     public function get_user_info() {
1483
-        return apply_filters( 'wpinv_user_info', $this->user_info, $this->ID, $this );
1483
+        return apply_filters('wpinv_user_info', $this->user_info, $this->ID, $this);
1484 1484
     }
1485 1485
     
1486 1486
     public function get_email() {
1487
-        return apply_filters( 'wpinv_user_email', $this->email, $this->ID, $this );
1487
+        return apply_filters('wpinv_user_email', $this->email, $this->ID, $this);
1488 1488
     }
1489 1489
     
1490 1490
     public function get_address() {
1491
-        return apply_filters( 'wpinv_address', $this->address, $this->ID, $this );
1491
+        return apply_filters('wpinv_address', $this->address, $this->ID, $this);
1492 1492
     }
1493 1493
     
1494 1494
     public function get_phone() {
1495
-        return apply_filters( 'wpinv_phone', $this->phone, $this->ID, $this );
1495
+        return apply_filters('wpinv_phone', $this->phone, $this->ID, $this);
1496 1496
     }
1497 1497
     
1498 1498
     public function get_number() {
1499
-        return apply_filters( 'wpinv_number', $this->number, $this->ID, $this );
1499
+        return apply_filters('wpinv_number', $this->number, $this->ID, $this);
1500 1500
     }
1501 1501
     
1502 1502
     public function get_items() {
1503
-        return apply_filters( 'wpinv_payment_meta_items', $this->items, $this->ID, $this );
1503
+        return apply_filters('wpinv_payment_meta_items', $this->items, $this->ID, $this);
1504 1504
     }
1505 1505
     
1506 1506
     public function get_key() {
1507
-        return apply_filters( 'wpinv_key', $this->key, $this->ID, $this );
1507
+        return apply_filters('wpinv_key', $this->key, $this->ID, $this);
1508 1508
     }
1509 1509
     
1510 1510
     public function get_transaction_id() {
1511
-        return apply_filters( 'wpinv_get_invoice_transaction_id', $this->transaction_id, $this->ID, $this );
1511
+        return apply_filters('wpinv_get_invoice_transaction_id', $this->transaction_id, $this->ID, $this);
1512 1512
     }
1513 1513
     
1514 1514
     public function get_gateway() {
1515
-        return apply_filters( 'wpinv_gateway', $this->gateway, $this->ID, $this );
1515
+        return apply_filters('wpinv_gateway', $this->gateway, $this->ID, $this);
1516 1516
     }
1517 1517
     
1518 1518
     public function get_gateway_title() {
1519
-        $this->gateway_title = !empty( $this->gateway_title ) ? $this->gateway_title : wpinv_get_gateway_checkout_label( $this->gateway );
1519
+        $this->gateway_title = !empty($this->gateway_title) ? $this->gateway_title : wpinv_get_gateway_checkout_label($this->gateway);
1520 1520
         
1521
-        return apply_filters( 'wpinv_gateway_title', $this->gateway_title, $this->ID, $this );
1521
+        return apply_filters('wpinv_gateway_title', $this->gateway_title, $this->ID, $this);
1522 1522
     }
1523 1523
     
1524 1524
     public function get_currency() {
1525
-        return apply_filters( 'wpinv_currency_code', $this->currency, $this->ID, $this );
1525
+        return apply_filters('wpinv_currency_code', $this->currency, $this->ID, $this);
1526 1526
     }
1527 1527
     
1528 1528
     public function get_created_date() {
1529
-        return apply_filters( 'wpinv_created_date', $this->date, $this->ID, $this );
1529
+        return apply_filters('wpinv_created_date', $this->date, $this->ID, $this);
1530 1530
     }
1531 1531
     
1532
-    public function get_due_date( $display = false ) {
1533
-        $due_date = apply_filters( 'wpinv_due_date', $this->due_date, $this->ID, $this );
1532
+    public function get_due_date($display = false) {
1533
+        $due_date = apply_filters('wpinv_due_date', $this->due_date, $this->ID, $this);
1534 1534
         
1535
-        if ( !$display || empty( $due_date ) ) {
1535
+        if (!$display || empty($due_date)) {
1536 1536
             return $due_date;
1537 1537
         }
1538 1538
         
1539
-        return date_i18n( get_option( 'date_format' ), strtotime( $due_date ) );
1539
+        return date_i18n(get_option('date_format'), strtotime($due_date));
1540 1540
     }
1541 1541
     
1542 1542
     public function get_completed_date() {
1543
-        return apply_filters( 'wpinv_completed_date', $this->completed_date, $this->ID, $this );
1543
+        return apply_filters('wpinv_completed_date', $this->completed_date, $this->ID, $this);
1544 1544
     }
1545 1545
     
1546
-    public function get_invoice_date( $formatted = true ) {
1546
+    public function get_invoice_date($formatted = true) {
1547 1547
         $date_completed = $this->completed_date;
1548 1548
         $invoice_date   = $date_completed != '' && $date_completed != '0000-00-00 00:00:00' ? $date_completed : '';
1549 1549
         
1550
-        if ( $invoice_date == '' ) {
1550
+        if ($invoice_date == '') {
1551 1551
             $date_created   = $this->date;
1552 1552
             $invoice_date   = $date_created != '' && $date_created != '0000-00-00 00:00:00' ? $date_created : '';
1553 1553
         }
1554 1554
         
1555
-        if ( $formatted && $invoice_date ) {
1556
-            $invoice_date   = date_i18n( get_option( 'date_format' ), strtotime( $invoice_date ) );
1555
+        if ($formatted && $invoice_date) {
1556
+            $invoice_date = date_i18n(get_option('date_format'), strtotime($invoice_date));
1557 1557
         }
1558 1558
 
1559
-        return apply_filters( 'wpinv_get_invoice_date', $invoice_date, $formatted, $this->ID, $this );
1559
+        return apply_filters('wpinv_get_invoice_date', $invoice_date, $formatted, $this->ID, $this);
1560 1560
     }
1561 1561
     
1562 1562
     public function get_ip() {
1563
-        return apply_filters( 'wpinv_user_ip', $this->ip, $this->ID, $this );
1563
+        return apply_filters('wpinv_user_ip', $this->ip, $this->ID, $this);
1564 1564
     }
1565 1565
         
1566
-    public function has_status( $status ) {
1567
-        return apply_filters( 'wpinv_has_status', ( is_array( $status ) && in_array( $this->get_status(), $status ) ) || $this->get_status() === $status ? true : false, $this, $status );
1566
+    public function has_status($status) {
1567
+        return apply_filters('wpinv_has_status', (is_array($status) && in_array($this->get_status(), $status)) || $this->get_status() === $status ? true : false, $this, $status);
1568 1568
     }
1569 1569
     
1570
-    public function add_item( $item_id = 0, $args = array() ) {
1570
+    public function add_item($item_id = 0, $args = array()) {
1571 1571
         global $wpi_current_id, $wpi_item_id;
1572 1572
         
1573
-        $item = new WPInv_Item( $item_id );
1573
+        $item = new WPInv_Item($item_id);
1574 1574
 
1575 1575
         // Bail if this post isn't a item
1576
-        if( !$item || $item->post_type !== 'wpi_item' ) {
1576
+        if (!$item || $item->post_type !== 'wpi_item') {
1577 1577
             return false;
1578 1578
         }
1579 1579
         
@@ -1592,8 +1592,8 @@  discard block
 block discarded – undo
1592 1592
             'fees'          => array()
1593 1593
         );
1594 1594
 
1595
-        $args = wp_parse_args( apply_filters( 'wpinv_add_item_args', $args, $item->ID ), $defaults );
1596
-        $args['quantity']   = $has_quantities && $args['quantity'] > 0 ? absint( $args['quantity'] ) : 1;
1595
+        $args = wp_parse_args(apply_filters('wpinv_add_item_args', $args, $item->ID), $defaults);
1596
+        $args['quantity'] = $has_quantities && $args['quantity'] > 0 ? absint($args['quantity']) : 1;
1597 1597
 
1598 1598
         $wpi_current_id         = $this->ID;
1599 1599
         $wpi_item_id            = $item->ID;
@@ -1605,19 +1605,19 @@  discard block
 block discarded – undo
1605 1605
         $found_cart_key         = false;
1606 1606
         
1607 1607
         if ($has_quantities) {
1608
-            $this->cart_details = !empty( $this->cart_details ) ? array_values( $this->cart_details ) : $this->cart_details;
1608
+            $this->cart_details = !empty($this->cart_details) ? array_values($this->cart_details) : $this->cart_details;
1609 1609
             
1610
-            foreach ( $this->items as $key => $cart_item ) {
1611
-                if ( (int)$item_id !== (int)$cart_item['id'] ) {
1610
+            foreach ($this->items as $key => $cart_item) {
1611
+                if ((int)$item_id !== (int)$cart_item['id']) {
1612 1612
                     continue;
1613 1613
                 }
1614 1614
 
1615
-                $this->items[ $key ]['quantity'] += $args['quantity'];
1615
+                $this->items[$key]['quantity'] += $args['quantity'];
1616 1616
                 break;
1617 1617
             }
1618 1618
             
1619
-            foreach ( $this->cart_details as $cart_key => $cart_item ) {
1620
-                if ( $item_id != $cart_item['id'] ) {
1619
+            foreach ($this->cart_details as $cart_key => $cart_item) {
1620
+                if ($item_id != $cart_item['id']) {
1621 1621
                     continue;
1622 1622
                 }
1623 1623
 
@@ -1629,29 +1629,29 @@  discard block
 block discarded – undo
1629 1629
         if ($has_quantities && $found_cart_key !== false) {
1630 1630
             $cart_item          = $this->cart_details[$found_cart_key];
1631 1631
             $item_price         = $cart_item['item_price'];
1632
-            $quantity           = !empty( $cart_item['quantity'] ) ? $cart_item['quantity'] : 1;
1633
-            $tax_rate           = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : 0;
1632
+            $quantity           = !empty($cart_item['quantity']) ? $cart_item['quantity'] : 1;
1633
+            $tax_rate           = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : 0;
1634 1634
             
1635 1635
             $new_quantity       = $quantity + $args['quantity'];
1636 1636
             $subtotal           = $item_price * $new_quantity;
1637 1637
             
1638 1638
             $args['quantity']   = $new_quantity;
1639
-            $discount           = !empty( $args['discount'] ) ? $args['discount'] : 0;
1640
-            $tax                = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1639
+            $discount           = !empty($args['discount']) ? $args['discount'] : 0;
1640
+            $tax                = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0;
1641 1641
             
1642 1642
             $discount_increased = $discount > 0 && $subtotal > 0 && $discount > (float)$cart_item['discount'] ? $discount - (float)$cart_item['discount'] : 0;
1643 1643
             $tax_increased      = $tax > 0 && $subtotal > 0 && $tax > (float)$cart_item['tax'] ? $tax - (float)$cart_item['tax'] : 0;
1644 1644
             // The total increase equals the number removed * the item_price
1645
-            $total_increased    = wpinv_round_amount( $item_price );
1645
+            $total_increased    = wpinv_round_amount($item_price);
1646 1646
             
1647
-            if ( wpinv_prices_include_tax() ) {
1648
-                $subtotal -= wpinv_round_amount( $tax );
1647
+            if (wpinv_prices_include_tax()) {
1648
+                $subtotal -= wpinv_round_amount($tax);
1649 1649
             }
1650 1650
 
1651
-            $total              = $subtotal - $discount + $tax;
1651
+            $total = $subtotal - $discount + $tax;
1652 1652
 
1653 1653
             // Do not allow totals to go negative
1654
-            if( $total < 0 ) {
1654
+            if ($total < 0) {
1655 1655
                 $total = 0;
1656 1656
             }
1657 1657
             
@@ -1667,20 +1667,20 @@  discard block
 block discarded – undo
1667 1667
             $this->cart_details[$found_cart_key] = $cart_item;
1668 1668
         } else {
1669 1669
             // Allow overriding the price
1670
-            if( false !== $args['item_price'] ) {
1670
+            if (false !== $args['item_price']) {
1671 1671
                 $item_price = $args['item_price'];
1672 1672
             } else {
1673
-                $item_price = wpinv_get_item_price( $item->ID );
1673
+                $item_price = wpinv_get_item_price($item->ID);
1674 1674
             }
1675 1675
 
1676 1676
             // Sanitizing the price here so we don't have a dozen calls later
1677
-            $item_price = wpinv_sanitize_amount( $item_price );
1678
-            $subtotal   = wpinv_round_amount( $item_price * $args['quantity'] );
1677
+            $item_price = wpinv_sanitize_amount($item_price);
1678
+            $subtotal   = wpinv_round_amount($item_price * $args['quantity']);
1679 1679
         
1680
-            $discount   = !empty( $args['discount'] ) ? $args['discount'] : 0;
1681
-            $tax_class  = !empty( $args['vat_class'] ) ? $args['vat_class'] : '';
1682
-            $tax_rate   = !empty( $args['vat_rate'] ) ? $args['vat_rate'] : 0;
1683
-            $tax        = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1680
+            $discount   = !empty($args['discount']) ? $args['discount'] : 0;
1681
+            $tax_class  = !empty($args['vat_class']) ? $args['vat_class'] : '';
1682
+            $tax_rate   = !empty($args['vat_rate']) ? $args['vat_rate'] : 0;
1683
+            $tax        = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0;
1684 1684
 
1685 1685
             // Setup the items meta item
1686 1686
             $new_item = array(
@@ -1688,29 +1688,29 @@  discard block
 block discarded – undo
1688 1688
                 'quantity' => $args['quantity'],
1689 1689
             );
1690 1690
 
1691
-            $this->items[]  = $new_item;
1691
+            $this->items[] = $new_item;
1692 1692
 
1693
-            if ( wpinv_prices_include_tax() ) {
1694
-                $subtotal -= wpinv_round_amount( $tax );
1693
+            if (wpinv_prices_include_tax()) {
1694
+                $subtotal -= wpinv_round_amount($tax);
1695 1695
             }
1696 1696
 
1697
-            $total      = $subtotal - $discount + $tax;
1697
+            $total = $subtotal - $discount + $tax;
1698 1698
 
1699 1699
             // Do not allow totals to go negative
1700
-            if( $total < 0 ) {
1700
+            if ($total < 0) {
1701 1701
                 $total = 0;
1702 1702
             }
1703 1703
         
1704 1704
             $this->cart_details[] = array(
1705 1705
                 'name'          => !empty($args['name']) ? $args['name'] : $item->get_name(),
1706 1706
                 'id'            => $item->ID,
1707
-                'item_price'    => wpinv_round_amount( $item_price ),
1707
+                'item_price'    => wpinv_round_amount($item_price),
1708 1708
                 'custom_price'  => $args['custom_price'],
1709 1709
                 'quantity'      => $args['quantity'],
1710 1710
                 'discount'      => $discount,
1711
-                'subtotal'      => wpinv_round_amount( $subtotal ),
1712
-                'tax'           => wpinv_round_amount( $tax ),
1713
-                'price'         => wpinv_round_amount( $total ),
1711
+                'subtotal'      => wpinv_round_amount($subtotal),
1712
+                'tax'           => wpinv_round_amount($tax),
1713
+                'price'         => wpinv_round_amount($total),
1714 1714
                 'vat_rate'      => $tax_rate,
1715 1715
                 'vat_class'     => $tax_class,
1716 1716
                 'meta'          => $args['meta'],
@@ -1720,18 +1720,18 @@  discard block
 block discarded – undo
1720 1720
             $subtotal = $subtotal - $discount;
1721 1721
         }
1722 1722
         
1723
-        $added_item = end( $this->cart_details );
1724
-        $added_item['action']  = 'add';
1723
+        $added_item = end($this->cart_details);
1724
+        $added_item['action'] = 'add';
1725 1725
         
1726 1726
         $this->pending['items'][] = $added_item;
1727 1727
         
1728
-        $this->increase_subtotal( $subtotal );
1729
-        $this->increase_tax( $tax );
1728
+        $this->increase_subtotal($subtotal);
1729
+        $this->increase_tax($tax);
1730 1730
 
1731 1731
         return true;
1732 1732
     }
1733 1733
     
1734
-    public function remove_item( $item_id, $args = array() ) {
1734
+    public function remove_item($item_id, $args = array()) {
1735 1735
         // Set some defaults
1736 1736
         $defaults = array(
1737 1737
             'quantity'      => 1,
@@ -1739,51 +1739,51 @@  discard block
 block discarded – undo
1739 1739
             'custom_price'  => '',
1740 1740
             'cart_index'    => false,
1741 1741
         );
1742
-        $args = wp_parse_args( $args, $defaults );
1742
+        $args = wp_parse_args($args, $defaults);
1743 1743
 
1744 1744
         // Bail if this post isn't a item
1745
-        if ( get_post_type( $item_id ) !== 'wpi_item' ) {
1745
+        if (get_post_type($item_id) !== 'wpi_item') {
1746 1746
             return false;
1747 1747
         }
1748 1748
         
1749
-        $this->cart_details = !empty( $this->cart_details ) ? array_values( $this->cart_details ) : $this->cart_details;
1749
+        $this->cart_details = !empty($this->cart_details) ? array_values($this->cart_details) : $this->cart_details;
1750 1750
 
1751
-        foreach ( $this->items as $key => $item ) {
1752
-            if ( !empty($item['id']) && (int)$item_id !== (int)$item['id'] ) {
1751
+        foreach ($this->items as $key => $item) {
1752
+            if (!empty($item['id']) && (int)$item_id !== (int)$item['id']) {
1753 1753
                 continue;
1754 1754
             }
1755 1755
 
1756
-            if ( false !== $args['cart_index'] ) {
1757
-                $cart_index = absint( $args['cart_index'] );
1758
-                $cart_item  = ! empty( $this->cart_details[ $cart_index ] ) ? $this->cart_details[ $cart_index ] : false;
1756
+            if (false !== $args['cart_index']) {
1757
+                $cart_index = absint($args['cart_index']);
1758
+                $cart_item  = !empty($this->cart_details[$cart_index]) ? $this->cart_details[$cart_index] : false;
1759 1759
 
1760
-                if ( ! empty( $cart_item ) ) {
1760
+                if (!empty($cart_item)) {
1761 1761
                     // If the cart index item isn't the same item ID, don't remove it
1762
-                    if ( !empty($cart_item['id']) && $cart_item['id'] != $item['id'] ) {
1762
+                    if (!empty($cart_item['id']) && $cart_item['id'] != $item['id']) {
1763 1763
                         continue;
1764 1764
                     }
1765 1765
                 }
1766 1766
             }
1767 1767
 
1768
-            $item_quantity = $this->items[ $key ]['quantity'];
1769
-            if ( $item_quantity > $args['quantity'] ) {
1770
-                $this->items[ $key ]['quantity'] -= $args['quantity'];
1768
+            $item_quantity = $this->items[$key]['quantity'];
1769
+            if ($item_quantity > $args['quantity']) {
1770
+                $this->items[$key]['quantity'] -= $args['quantity'];
1771 1771
                 break;
1772 1772
             } else {
1773
-                unset( $this->items[ $key ] );
1773
+                unset($this->items[$key]);
1774 1774
                 break;
1775 1775
             }
1776 1776
         }
1777 1777
 
1778 1778
         $found_cart_key = false;
1779
-        if ( false === $args['cart_index'] ) {
1780
-            foreach ( $this->cart_details as $cart_key => $item ) {
1781
-                if ( $item_id != $item['id'] ) {
1779
+        if (false === $args['cart_index']) {
1780
+            foreach ($this->cart_details as $cart_key => $item) {
1781
+                if ($item_id != $item['id']) {
1782 1782
                     continue;
1783 1783
                 }
1784 1784
 
1785
-                if ( false !== $args['item_price'] ) {
1786
-                    if ( isset( $item['item_price'] ) && (float) $args['item_price'] != (float) $item['item_price'] ) {
1785
+                if (false !== $args['item_price']) {
1786
+                    if (isset($item['item_price']) && (float)$args['item_price'] != (float)$item['item_price']) {
1787 1787
                         continue;
1788 1788
                     }
1789 1789
                 }
@@ -1792,13 +1792,13 @@  discard block
 block discarded – undo
1792 1792
                 break;
1793 1793
             }
1794 1794
         } else {
1795
-            $cart_index = absint( $args['cart_index'] );
1795
+            $cart_index = absint($args['cart_index']);
1796 1796
 
1797
-            if ( ! array_key_exists( $cart_index, $this->cart_details ) ) {
1797
+            if (!array_key_exists($cart_index, $this->cart_details)) {
1798 1798
                 return false; // Invalid cart index passed.
1799 1799
             }
1800 1800
 
1801
-            if ( (int) $this->cart_details[ $cart_index ]['id'] > 0 && (int) $this->cart_details[ $cart_index ]['id'] !== (int) $item_id ) {
1801
+            if ((int)$this->cart_details[$cart_index]['id'] > 0 && (int)$this->cart_details[$cart_index]['id'] !== (int)$item_id) {
1802 1802
                 return false; // We still need the proper Item ID to be sure.
1803 1803
             }
1804 1804
 
@@ -1806,41 +1806,41 @@  discard block
 block discarded – undo
1806 1806
         }
1807 1807
         
1808 1808
         $cart_item  = $this->cart_details[$found_cart_key];
1809
-        $quantity   = !empty( $cart_item['quantity'] ) ? $cart_item['quantity'] : 1;
1809
+        $quantity   = !empty($cart_item['quantity']) ? $cart_item['quantity'] : 1;
1810 1810
         
1811
-        if ( count( $this->cart_details ) == 1 && ( $quantity - $args['quantity'] ) < 1 ) {
1811
+        if (count($this->cart_details) == 1 && ($quantity - $args['quantity']) < 1) {
1812 1812
             return false; // Invoice must contain at least one item.
1813 1813
         }
1814 1814
         
1815
-        $discounts  = $this->get_discounts();
1815
+        $discounts = $this->get_discounts();
1816 1816
         
1817
-        if ( $quantity > $args['quantity'] ) {
1817
+        if ($quantity > $args['quantity']) {
1818 1818
             $item_price         = $cart_item['item_price'];
1819
-            $tax_rate           = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : 0;
1819
+            $tax_rate           = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : 0;
1820 1820
             
1821
-            $new_quantity       = max( $quantity - $args['quantity'], 1);
1821
+            $new_quantity       = max($quantity - $args['quantity'], 1);
1822 1822
             $subtotal           = $item_price * $new_quantity;
1823 1823
             
1824 1824
             $args['quantity']   = $new_quantity;
1825
-            $discount           = !empty( $cart_item['discount'] ) ? $cart_item['discount'] : 0;
1826
-            $tax                = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1825
+            $discount           = !empty($cart_item['discount']) ? $cart_item['discount'] : 0;
1826
+            $tax                = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0;
1827 1827
             
1828
-            $discount_decrease  = (float)$cart_item['discount'] > 0 && $quantity > 0 ? wpinv_round_amount( ( (float)$cart_item['discount'] / $quantity ) ) : 0;
1828
+            $discount_decrease  = (float)$cart_item['discount'] > 0 && $quantity > 0 ? wpinv_round_amount(((float)$cart_item['discount'] / $quantity)) : 0;
1829 1829
             $discount_decrease  = $discount > 0 && $subtotal > 0 && (float)$cart_item['discount'] > $discount ? (float)$cart_item['discount'] - $discount : $discount_decrease; 
1830
-            $tax_decrease       = (float)$cart_item['tax'] > 0 && $quantity > 0 ? wpinv_round_amount( ( (float)$cart_item['tax'] / $quantity ) ) : 0;
1830
+            $tax_decrease       = (float)$cart_item['tax'] > 0 && $quantity > 0 ? wpinv_round_amount(((float)$cart_item['tax'] / $quantity)) : 0;
1831 1831
             $tax_decrease       = $tax > 0 && $subtotal > 0 && (float)$cart_item['tax'] > $tax ? (float)$cart_item['tax'] - $tax : $tax_decrease;
1832 1832
             
1833 1833
             // The total increase equals the number removed * the item_price
1834
-            $total_decrease     = wpinv_round_amount( $item_price );
1834
+            $total_decrease     = wpinv_round_amount($item_price);
1835 1835
             
1836
-            if ( wpinv_prices_include_tax() ) {
1837
-                $subtotal -= wpinv_round_amount( $tax );
1836
+            if (wpinv_prices_include_tax()) {
1837
+                $subtotal -= wpinv_round_amount($tax);
1838 1838
             }
1839 1839
 
1840
-            $total              = $subtotal - $discount + $tax;
1840
+            $total = $subtotal - $discount + $tax;
1841 1841
 
1842 1842
             // Do not allow totals to go negative
1843
-            if( $total < 0 ) {
1843
+            if ($total < 0) {
1844 1844
                 $total = 0;
1845 1845
             }
1846 1846
             
@@ -1859,16 +1859,16 @@  discard block
 block discarded – undo
1859 1859
             
1860 1860
             $this->cart_details[$found_cart_key] = $cart_item;
1861 1861
             
1862
-            $remove_item = end( $this->cart_details );
1862
+            $remove_item = end($this->cart_details);
1863 1863
         } else {
1864 1864
             $item_price     = $cart_item['item_price'];
1865
-            $discount       = !empty( $cart_item['discount'] ) ? $cart_item['discount'] : 0;
1866
-            $tax            = !empty( $cart_item['tax'] ) ? $cart_item['tax'] : 0;
1865
+            $discount       = !empty($cart_item['discount']) ? $cart_item['discount'] : 0;
1866
+            $tax            = !empty($cart_item['tax']) ? $cart_item['tax'] : 0;
1867 1867
         
1868
-            $subtotal_decrease  = ( $item_price * $quantity ) - $discount;
1868
+            $subtotal_decrease  = ($item_price * $quantity) - $discount;
1869 1869
             $tax_decrease       = $tax;
1870 1870
 
1871
-            unset( $this->cart_details[$found_cart_key] );
1871
+            unset($this->cart_details[$found_cart_key]);
1872 1872
             
1873 1873
             $remove_item             = $args;
1874 1874
             $remove_item['id']       = $item_id;
@@ -1879,8 +1879,8 @@  discard block
 block discarded – undo
1879 1879
         $remove_item['action']      = 'remove';
1880 1880
         $this->pending['items'][]   = $remove_item;
1881 1881
                
1882
-        $this->decrease_subtotal( $subtotal_decrease );
1883
-        $this->decrease_tax( $tax_decrease );
1882
+        $this->decrease_subtotal($subtotal_decrease);
1883
+        $this->decrease_tax($tax_decrease);
1884 1884
         
1885 1885
         return true;
1886 1886
     }
@@ -1888,7 +1888,7 @@  discard block
 block discarded – undo
1888 1888
     public function update_items($temp = false) {
1889 1889
         global $wpinv_euvat, $wpi_current_id, $wpi_item_id, $wpi_nosave;
1890 1890
         
1891
-        if ( !empty( $this->cart_details ) ) {
1891
+        if (!empty($this->cart_details)) {
1892 1892
             $wpi_nosave             = $temp;
1893 1893
             $cart_subtotal          = 0;
1894 1894
             $cart_discount          = 0;
@@ -1898,42 +1898,42 @@  discard block
 block discarded – undo
1898 1898
             $_POST['wpinv_country'] = $this->country;
1899 1899
             $_POST['wpinv_state']   = $this->state;
1900 1900
             
1901
-            foreach ( $this->cart_details as $key => $item ) {
1901
+            foreach ($this->cart_details as $key => $item) {
1902 1902
                 $item_price = $item['item_price'];
1903
-                $quantity   = wpinv_item_quantities_enabled() && $item['quantity'] > 0 ? absint( $item['quantity'] ) : 1;
1904
-                $amount     = wpinv_round_amount( $item_price * $quantity );
1903
+                $quantity   = wpinv_item_quantities_enabled() && $item['quantity'] > 0 ? absint($item['quantity']) : 1;
1904
+                $amount     = wpinv_round_amount($item_price * $quantity);
1905 1905
                 $subtotal   = $item_price * $quantity;
1906 1906
                 
1907 1907
                 $wpi_current_id         = $this->ID;
1908 1908
                 $wpi_item_id            = $item['id'];
1909 1909
                 
1910
-                $discount   = wpinv_get_cart_item_discount_amount( $item, $this->get_discounts() );
1910
+                $discount   = wpinv_get_cart_item_discount_amount($item, $this->get_discounts());
1911 1911
                 
1912
-                $tax_rate   = wpinv_get_tax_rate( $this->country, $this->state, $wpi_item_id );
1913
-                $tax_class  = $wpinv_euvat->get_item_class( $wpi_item_id );
1914
-                $tax        = $item_price > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1912
+                $tax_rate   = wpinv_get_tax_rate($this->country, $this->state, $wpi_item_id);
1913
+                $tax_class  = $wpinv_euvat->get_item_class($wpi_item_id);
1914
+                $tax        = $item_price > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0;
1915 1915
 
1916
-                if ( wpinv_prices_include_tax() ) {
1917
-                    $subtotal -= wpinv_round_amount( $tax );
1916
+                if (wpinv_prices_include_tax()) {
1917
+                    $subtotal -= wpinv_round_amount($tax);
1918 1918
                 }
1919 1919
 
1920
-                $total      = $subtotal - $discount + $tax;
1920
+                $total = $subtotal - $discount + $tax;
1921 1921
 
1922 1922
                 // Do not allow totals to go negative
1923
-                if( $total < 0 ) {
1923
+                if ($total < 0) {
1924 1924
                     $total = 0;
1925 1925
                 }
1926 1926
 
1927 1927
                 $cart_details[] = array(
1928 1928
                     'id'          => $item['id'],
1929 1929
                     'name'        => $item['name'],
1930
-                    'item_price'  => wpinv_round_amount( $item_price ),
1930
+                    'item_price'  => wpinv_round_amount($item_price),
1931 1931
                     'custom_price'=> isset($item['custom_price']) ? $item['custom_price'] : '',
1932 1932
                     'quantity'    => $quantity,
1933 1933
                     'discount'    => $discount,
1934
-                    'subtotal'    => wpinv_round_amount( $subtotal ),
1935
-                    'tax'         => wpinv_round_amount( $tax ),
1936
-                    'price'       => wpinv_round_amount( $total ),
1934
+                    'subtotal'    => wpinv_round_amount($subtotal),
1935
+                    'tax'         => wpinv_round_amount($tax),
1936
+                    'price'       => wpinv_round_amount($total),
1937 1937
                     'vat_rate'    => $tax_rate,
1938 1938
                     'vat_class'   => $tax_class,
1939 1939
                     'meta'        => isset($item['meta']) ? $item['meta'] : array(),
@@ -1944,9 +1944,9 @@  discard block
 block discarded – undo
1944 1944
                 $cart_discount  += (float)($discount);
1945 1945
                 $cart_tax       += (float)($tax);
1946 1946
             }
1947
-            $this->subtotal = wpinv_round_amount( $cart_subtotal );
1948
-            $this->tax      = wpinv_round_amount( $cart_tax );
1949
-            $this->discount = wpinv_round_amount( $cart_discount );
1947
+            $this->subtotal = wpinv_round_amount($cart_subtotal);
1948
+            $this->tax      = wpinv_round_amount($cart_tax);
1949
+            $this->discount = wpinv_round_amount($cart_discount);
1950 1950
             
1951 1951
             $this->recalculate_total();
1952 1952
             
@@ -1958,221 +1958,221 @@  discard block
 block discarded – undo
1958 1958
     
1959 1959
     public function recalculate_totals($temp = false) {        
1960 1960
         $this->update_items($temp);
1961
-        $this->save( true );
1961
+        $this->save(true);
1962 1962
         
1963 1963
         return $this;
1964 1964
     }
1965 1965
     
1966 1966
     public function needs_payment() {
1967
-        $valid_invoice_statuses = apply_filters( 'wpinv_valid_invoice_statuses_for_payment', array( 'pending' ), $this );
1967
+        $valid_invoice_statuses = apply_filters('wpinv_valid_invoice_statuses_for_payment', array('pending'), $this);
1968 1968
 
1969
-        if ( $this->has_status( $valid_invoice_statuses ) && ( $this->get_total() > 0 || $this->is_free_trial() || $this->is_free() ) ) {
1969
+        if ($this->has_status($valid_invoice_statuses) && ($this->get_total() > 0 || $this->is_free_trial() || $this->is_free())) {
1970 1970
             $needs_payment = true;
1971 1971
         } else {
1972 1972
             $needs_payment = false;
1973 1973
         }
1974 1974
 
1975
-        return apply_filters( 'wpinv_needs_payment', $needs_payment, $this, $valid_invoice_statuses );
1975
+        return apply_filters('wpinv_needs_payment', $needs_payment, $this, $valid_invoice_statuses);
1976 1976
     }
1977 1977
     
1978
-    public function get_checkout_payment_url( $on_checkout = false, $secret = false ) {
1978
+    public function get_checkout_payment_url($on_checkout = false, $secret = false) {
1979 1979
         $pay_url = wpinv_get_checkout_uri();
1980 1980
 
1981
-        if ( is_ssl() ) {
1982
-            $pay_url = str_replace( 'http:', 'https:', $pay_url );
1981
+        if (is_ssl()) {
1982
+            $pay_url = str_replace('http:', 'https:', $pay_url);
1983 1983
         }
1984 1984
         
1985 1985
         $key = $this->get_key();
1986 1986
 
1987
-        if ( $on_checkout ) {
1988
-            $pay_url = add_query_arg( 'invoice_key', $key, $pay_url );
1987
+        if ($on_checkout) {
1988
+            $pay_url = add_query_arg('invoice_key', $key, $pay_url);
1989 1989
         } else {
1990
-            $pay_url = add_query_arg( array( 'wpi_action' => 'pay_for_invoice', 'invoice_key' => $key ), $pay_url );
1990
+            $pay_url = add_query_arg(array('wpi_action' => 'pay_for_invoice', 'invoice_key' => $key), $pay_url);
1991 1991
         }
1992 1992
         
1993
-        if ( $secret ) {
1994
-            $pay_url = add_query_arg( array( '_wpipay' => md5( $this->get_user_id() . '::' . $this->get_email() . '::' . $key ) ), $pay_url );
1993
+        if ($secret) {
1994
+            $pay_url = add_query_arg(array('_wpipay' => md5($this->get_user_id() . '::' . $this->get_email() . '::' . $key)), $pay_url);
1995 1995
         }
1996 1996
 
1997
-        return apply_filters( 'wpinv_get_checkout_payment_url', $pay_url, $this );
1997
+        return apply_filters('wpinv_get_checkout_payment_url', $pay_url, $this);
1998 1998
     }
1999 1999
     
2000
-    public function get_view_url( $secret = false ) {
2001
-        $print_url = get_permalink( $this->ID );
2000
+    public function get_view_url($secret = false) {
2001
+        $print_url = get_permalink($this->ID);
2002 2002
         
2003
-        if ( $secret ) {
2004
-            $print_url = add_query_arg( array( '_wpipay' => md5( $this->get_user_id() . '::' . $this->get_email() . '::' . $this->get_key() ) ), $print_url );
2003
+        if ($secret) {
2004
+            $print_url = add_query_arg(array('_wpipay' => md5($this->get_user_id() . '::' . $this->get_email() . '::' . $this->get_key())), $print_url);
2005 2005
         }
2006 2006
 
2007
-        return apply_filters( 'wpinv_get_view_url', $print_url, $this );
2007
+        return apply_filters('wpinv_get_view_url', $print_url, $this);
2008 2008
     }
2009 2009
     
2010
-    public function generate_key( $string = '' ) {
2011
-        $auth_key  = defined( 'AUTH_KEY' ) ? AUTH_KEY : '';
2012
-        return strtolower( md5( $string . date( 'Y-m-d H:i:s' ) . $auth_key . uniqid( 'wpinv', true ) ) );  // Unique key
2010
+    public function generate_key($string = '') {
2011
+        $auth_key = defined('AUTH_KEY') ? AUTH_KEY : '';
2012
+        return strtolower(md5($string . date('Y-m-d H:i:s') . $auth_key . uniqid('wpinv', true))); // Unique key
2013 2013
     }
2014 2014
     
2015 2015
     public function is_recurring() {
2016
-        if ( empty( $this->cart_details ) ) {
2016
+        if (empty($this->cart_details)) {
2017 2017
             return false;
2018 2018
         }
2019 2019
         
2020 2020
         $has_subscription = false;
2021
-        foreach( $this->cart_details as $cart_item ) {
2022
-            if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] )  ) {
2021
+        foreach ($this->cart_details as $cart_item) {
2022
+            if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) {
2023 2023
                 $has_subscription = true;
2024 2024
                 break;
2025 2025
             }
2026 2026
         }
2027 2027
         
2028
-        if ( count( $this->cart_details ) > 1 ) {
2028
+        if (count($this->cart_details) > 1) {
2029 2029
             $has_subscription = false;
2030 2030
         }
2031 2031
 
2032
-        return apply_filters( 'wpinv_invoice_has_recurring_item', $has_subscription, $this->cart_details );
2032
+        return apply_filters('wpinv_invoice_has_recurring_item', $has_subscription, $this->cart_details);
2033 2033
     }
2034 2034
     
2035 2035
     public function is_free_trial() {
2036 2036
         $is_free_trial = false;
2037 2037
         
2038
-        if ( $this->is_parent() && $item = $this->get_recurring( true ) ) {
2039
-            if ( !empty( $item ) && $item->has_free_trial() ) {
2038
+        if ($this->is_parent() && $item = $this->get_recurring(true)) {
2039
+            if (!empty($item) && $item->has_free_trial()) {
2040 2040
                 $is_free_trial = true;
2041 2041
             }
2042 2042
         }
2043 2043
 
2044
-        return apply_filters( 'wpinv_invoice_is_free_trial', $is_free_trial, $this->cart_details );
2044
+        return apply_filters('wpinv_invoice_is_free_trial', $is_free_trial, $this->cart_details);
2045 2045
     }
2046 2046
     
2047
-    public function get_recurring( $object = false ) {
2047
+    public function get_recurring($object = false) {
2048 2048
         $item = NULL;
2049 2049
         
2050
-        if ( empty( $this->cart_details ) ) {
2050
+        if (empty($this->cart_details)) {
2051 2051
             return $item;
2052 2052
         }
2053 2053
         
2054
-        foreach( $this->cart_details as $cart_item ) {
2055
-            if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] )  ) {
2054
+        foreach ($this->cart_details as $cart_item) {
2055
+            if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) {
2056 2056
                 $item = $cart_item['id'];
2057 2057
                 break;
2058 2058
             }
2059 2059
         }
2060 2060
         
2061
-        if ( $object ) {
2062
-            $item = $item ? new WPInv_Item( $item ) : NULL;
2061
+        if ($object) {
2062
+            $item = $item ? new WPInv_Item($item) : NULL;
2063 2063
             
2064
-            apply_filters( 'wpinv_invoice_get_recurring_item', $item, $this );
2064
+            apply_filters('wpinv_invoice_get_recurring_item', $item, $this);
2065 2065
         }
2066 2066
 
2067
-        return apply_filters( 'wpinv_invoice_get_recurring_item_id', $item, $this );
2067
+        return apply_filters('wpinv_invoice_get_recurring_item_id', $item, $this);
2068 2068
     }
2069 2069
     
2070 2070
     public function get_subscription_name() {
2071
-        $item = $this->get_recurring( true );
2071
+        $item = $this->get_recurring(true);
2072 2072
         
2073
-        if ( empty( $item ) ) {
2073
+        if (empty($item)) {
2074 2074
             return NULL;
2075 2075
         }
2076 2076
         
2077
-        if ( !($name = $item->get_name()) ) {
2077
+        if (!($name = $item->get_name())) {
2078 2078
             $name = $item->post_name;
2079 2079
         }
2080 2080
 
2081
-        return apply_filters( 'wpinv_invoice_get_subscription_name', $name, $this );
2081
+        return apply_filters('wpinv_invoice_get_subscription_name', $name, $this);
2082 2082
     }
2083 2083
         
2084 2084
     public function get_expiration() {
2085
-        $expiration = $this->get_meta( '_wpinv_subscr_expiration', true );
2085
+        $expiration = $this->get_meta('_wpinv_subscr_expiration', true);
2086 2086
         return $expiration;
2087 2087
     }
2088 2088
     
2089
-    public function get_cancelled_date( $formatted = true ) {
2090
-        $cancelled_date = $this->get_subscription_status() == 'cancelled' ? $this->get_meta( '_wpinv_subscr_cancelled_on', true ) : '';
2089
+    public function get_cancelled_date($formatted = true) {
2090
+        $cancelled_date = $this->get_subscription_status() == 'cancelled' ? $this->get_meta('_wpinv_subscr_cancelled_on', true) : '';
2091 2091
         
2092
-        if ( $formatted && $cancelled_date ) {
2093
-            $cancelled_date = date_i18n( get_option( 'date_format' ), strtotime( $cancelled_date ) );
2092
+        if ($formatted && $cancelled_date) {
2093
+            $cancelled_date = date_i18n(get_option('date_format'), strtotime($cancelled_date));
2094 2094
         }
2095 2095
         
2096 2096
         return $cancelled_date;
2097 2097
     }
2098 2098
     
2099
-    public function get_trial_end_date( $formatted = true ) {
2100
-        if ( !$this->is_free_trial() || !$this->is_paid() ) {
2099
+    public function get_trial_end_date($formatted = true) {
2100
+        if (!$this->is_free_trial() || !$this->is_paid()) {
2101 2101
             return NULL;
2102 2102
         }
2103 2103
         
2104
-        $trial_end_date = $this->get_subscription_status() == 'trialing' ? $this->get_meta( '_wpinv_subscr_trial_end', true ) : '';
2104
+        $trial_end_date = $this->get_subscription_status() == 'trialing' ? $this->get_meta('_wpinv_subscr_trial_end', true) : '';
2105 2105
         
2106
-        if ( empty( $trial_end_date ) ) {
2107
-            $trial_start_time = strtotime( $this->get_subscription_start() );
2108
-            $trial_start_time += ( wpinv_period_in_days( $this->get_subscription_trial_interval(), $this->get_subscription_trial_period() ) * DAY_IN_SECONDS ) ;
2106
+        if (empty($trial_end_date)) {
2107
+            $trial_start_time = strtotime($this->get_subscription_start());
2108
+            $trial_start_time += (wpinv_period_in_days($this->get_subscription_trial_interval(), $this->get_subscription_trial_period()) * DAY_IN_SECONDS);
2109 2109
             
2110
-            $trial_end_date = date_i18n( 'Y-m-d H:i:s', $trial_start_time );
2110
+            $trial_end_date = date_i18n('Y-m-d H:i:s', $trial_start_time);
2111 2111
         }
2112 2112
         
2113
-        if ( $formatted && $trial_end_date ) {
2114
-            $trial_end_date = date_i18n( get_option( 'date_format' ), strtotime( $trial_end_date ) );
2113
+        if ($formatted && $trial_end_date) {
2114
+            $trial_end_date = date_i18n(get_option('date_format'), strtotime($trial_end_date));
2115 2115
         }
2116 2116
         
2117 2117
         return $trial_end_date;
2118 2118
     }
2119 2119
     
2120
-    public function get_subscription_created( $default = true ) {
2121
-        $created = $this->get_meta( '_wpinv_subscr_created', true );
2120
+    public function get_subscription_created($default = true) {
2121
+        $created = $this->get_meta('_wpinv_subscr_created', true);
2122 2122
         
2123
-        if ( empty( $created ) && $default ) {
2123
+        if (empty($created) && $default) {
2124 2124
             $created = $this->date;
2125 2125
         }
2126 2126
         return $created;
2127 2127
     }
2128 2128
     
2129
-    public function get_subscription_start( $formatted = true ) {
2130
-        if ( !$this->is_paid() ) {
2129
+    public function get_subscription_start($formatted = true) {
2130
+        if (!$this->is_paid()) {
2131 2131
             return '-';
2132 2132
         }
2133
-        $start   = $this->get_subscription_created();
2133
+        $start = $this->get_subscription_created();
2134 2134
         
2135
-        if ( $formatted ) {
2136
-            $date = date_i18n( get_option( 'date_format' ), strtotime( $start ) );
2135
+        if ($formatted) {
2136
+            $date = date_i18n(get_option('date_format'), strtotime($start));
2137 2137
         } else {
2138
-            $date = date_i18n( 'Y-m-d H:i:s', strtotime( $start ) );
2138
+            $date = date_i18n('Y-m-d H:i:s', strtotime($start));
2139 2139
         }
2140 2140
 
2141 2141
         return $date;
2142 2142
     }
2143 2143
     
2144
-    public function get_subscription_end( $formatted = true ) {
2145
-        if ( !$this->is_paid() ) {
2144
+    public function get_subscription_end($formatted = true) {
2145
+        if (!$this->is_paid()) {
2146 2146
             return '-';
2147 2147
         }
2148 2148
         $start          = $this->get_subscription_created();
2149 2149
         $interval       = $this->get_subscription_interval();
2150
-        $period         = $this->get_subscription_period( true );
2150
+        $period         = $this->get_subscription_period(true);
2151 2151
         $bill_times     = (int)$this->get_bill_times();
2152 2152
         
2153
-        if ( $bill_times == 0 ) {
2154
-            return $formatted ? __( 'Until cancelled', 'invoicing' ) : $bill_times;
2153
+        if ($bill_times == 0) {
2154
+            return $formatted ? __('Until cancelled', 'invoicing') : $bill_times;
2155 2155
         }
2156 2156
         
2157
-        $total_period = $start . '+' . ( $interval * $bill_times ) . ' ' . $period;
2157
+        $total_period = $start . '+' . ($interval * $bill_times) . ' ' . $period;
2158 2158
         
2159
-        $end_time = strtotime( $start . '+' . ( $interval * $bill_times ) . ' ' . $period );
2159
+        $end_time = strtotime($start . '+' . ($interval * $bill_times) . ' ' . $period);
2160 2160
         
2161
-        if ( $this->is_free_trial() ) {
2162
-            $end_time += ( wpinv_period_in_days( $this->get_subscription_trial_interval(), $this->get_subscription_trial_period() ) * DAY_IN_SECONDS ) ;
2161
+        if ($this->is_free_trial()) {
2162
+            $end_time += (wpinv_period_in_days($this->get_subscription_trial_interval(), $this->get_subscription_trial_period()) * DAY_IN_SECONDS);
2163 2163
         }
2164 2164
         
2165
-        if ( $formatted ) {
2166
-            $date = date_i18n( get_option( 'date_format' ), $end_time );
2165
+        if ($formatted) {
2166
+            $date = date_i18n(get_option('date_format'), $end_time);
2167 2167
         } else {
2168
-            $date = date_i18n( 'Y-m-d H:i:s', $end_time );
2168
+            $date = date_i18n('Y-m-d H:i:s', $end_time);
2169 2169
         }
2170 2170
 
2171 2171
         return $date;
2172 2172
     }
2173 2173
     
2174 2174
     public function get_expiration_time() {
2175
-        return strtotime( $this->get_expiration(), current_time( 'timestamp' ) );
2175
+        return strtotime($this->get_expiration(), current_time('timestamp'));
2176 2176
     }
2177 2177
     
2178 2178
     public function get_original_invoice_id() {        
@@ -2184,125 +2184,125 @@  discard block
 block discarded – undo
2184 2184
         return $subscription_data['bill_times'];
2185 2185
     }
2186 2186
 
2187
-    public function get_child_payments( $self = false ) {
2188
-        $invoices = get_posts( array(
2187
+    public function get_child_payments($self = false) {
2188
+        $invoices = get_posts(array(
2189 2189
             'post_type'         => $this->post_type,
2190 2190
             'post_parent'       => (int)$this->ID,
2191 2191
             'posts_per_page'    => '999',
2192
-            'post_status'       => array( 'publish', 'wpi-processing', 'wpi-renewal' ),
2192
+            'post_status'       => array('publish', 'wpi-processing', 'wpi-renewal'),
2193 2193
             'orderby'           => 'ID',
2194 2194
             'order'             => 'DESC',
2195 2195
             'fields'            => 'ids'
2196
-        ) );
2196
+        ));
2197 2197
         
2198
-        if ( $this->is_free_trial() ) {
2198
+        if ($this->is_free_trial()) {
2199 2199
             $self = false;
2200 2200
         }
2201 2201
         
2202
-        if ( $self && $this->is_paid() ) {
2203
-            if ( !empty( $invoices ) ) {
2202
+        if ($self && $this->is_paid()) {
2203
+            if (!empty($invoices)) {
2204 2204
                 $invoices[] = (int)$this->ID;
2205 2205
             } else {
2206
-                $invoices = array( $this->ID );
2206
+                $invoices = array($this->ID);
2207 2207
             }
2208 2208
             
2209
-            $invoices = array_unique( $invoices );
2209
+            $invoices = array_unique($invoices);
2210 2210
         }
2211 2211
 
2212 2212
         return $invoices;
2213 2213
     }
2214 2214
 
2215
-    public function get_total_payments( $self = true ) {
2216
-        return count( $this->get_child_payments( $self ) );
2215
+    public function get_total_payments($self = true) {
2216
+        return count($this->get_child_payments($self));
2217 2217
     }
2218 2218
     
2219
-    public function get_subscriptions( $limit = -1 ) {
2220
-        $subscriptions = wpinv_get_subscriptions( array( 'parent_invoice_id' => $this->ID, 'numberposts' => $limit ) );
2219
+    public function get_subscriptions($limit = -1) {
2220
+        $subscriptions = wpinv_get_subscriptions(array('parent_invoice_id' => $this->ID, 'numberposts' => $limit));
2221 2221
 
2222 2222
         return $subscriptions;
2223 2223
     }
2224 2224
     
2225 2225
     public function get_subscription_id() {
2226
-        $subscription_id = $this->get_meta( '_wpinv_subscr_profile_id', true );
2226
+        $subscription_id = $this->get_meta('_wpinv_subscr_profile_id', true);
2227 2227
         
2228
-        if ( empty( $subscription_id ) && !empty( $this->parent_invoice ) ) {
2229
-            $parent_invoice = wpinv_get_invoice( $this->parent_invoice );
2228
+        if (empty($subscription_id) && !empty($this->parent_invoice)) {
2229
+            $parent_invoice = wpinv_get_invoice($this->parent_invoice);
2230 2230
             
2231
-            $subscription_id = $parent_invoice->get_meta( '_wpinv_subscr_profile_id', true );
2231
+            $subscription_id = $parent_invoice->get_meta('_wpinv_subscr_profile_id', true);
2232 2232
         }
2233 2233
         
2234 2234
         return $subscription_id;
2235 2235
     }
2236 2236
     
2237 2237
     public function get_subscription_status() {
2238
-        $subscription_status = $this->get_meta( '_wpinv_subscr_status', true );
2238
+        $subscription_status = $this->get_meta('_wpinv_subscr_status', true);
2239 2239
 
2240
-        if ( empty( $subscription_status ) ) {
2240
+        if (empty($subscription_status)) {
2241 2241
             $status = 'pending';
2242 2242
             
2243
-            if ( $this->is_paid() ) {        
2243
+            if ($this->is_paid()) {        
2244 2244
                 $bill_times   = (int)$this->get_bill_times();
2245 2245
                 $times_billed = (int)$this->get_total_payments();
2246
-                $expiration = $this->get_subscription_end( false );
2247
-                $expired = $bill_times != 0 && $expiration != '' && $expiration != '-' && strtotime( date_i18n( 'Y-m-d', strtotime( $expiration ) ) ) < strtotime( date_i18n( 'Y-m-d', current_time( 'timestamp' ) ) ) ? true : false;
2246
+                $expiration = $this->get_subscription_end(false);
2247
+                $expired = $bill_times != 0 && $expiration != '' && $expiration != '-' && strtotime(date_i18n('Y-m-d', strtotime($expiration))) < strtotime(date_i18n('Y-m-d', current_time('timestamp'))) ? true : false;
2248 2248
                 
2249
-                if ( (int)$bill_times == 0 ) {
2249
+                if ((int)$bill_times == 0) {
2250 2250
                     $status = $expired ? 'expired' : 'active';
2251
-                } else if ( $bill_times > 0 && $times_billed >= $bill_times ) {
2251
+                } else if ($bill_times > 0 && $times_billed >= $bill_times) {
2252 2252
                     $status = 'completed';
2253
-                } else if ( $expired ) {
2253
+                } else if ($expired) {
2254 2254
                     $status = 'expired';
2255
-                } else if ( $bill_times > 0 ) {
2255
+                } else if ($bill_times > 0) {
2256 2256
                     $status = 'active';
2257 2257
                 } else {
2258 2258
                     $status = 'pending';
2259 2259
                 }
2260 2260
             }
2261 2261
             
2262
-            if ( $status && $status != $subscription_status ) {
2262
+            if ($status && $status != $subscription_status) {
2263 2263
                 $subscription_status = $status;
2264 2264
                 
2265
-                $this->update_meta( '_wpinv_subscr_status', $status );
2265
+                $this->update_meta('_wpinv_subscr_status', $status);
2266 2266
             }
2267 2267
         }
2268 2268
         
2269 2269
         return $subscription_status;
2270 2270
     }
2271 2271
     
2272
-    public function get_subscription_status_label( $status = '' ) {
2273
-        $status = !empty( $status ) ? $status : $this->get_subscription_status();
2272
+    public function get_subscription_status_label($status = '') {
2273
+        $status = !empty($status) ? $status : $this->get_subscription_status();
2274 2274
 
2275
-        switch( $status ) {
2275
+        switch ($status) {
2276 2276
             case 'active' :
2277
-                $status_label = __( 'Active', 'invoicing' );
2277
+                $status_label = __('Active', 'invoicing');
2278 2278
                 break;
2279 2279
 
2280 2280
             case 'cancelled' :
2281
-                $status_label = __( 'Cancelled', 'invoicing' );
2281
+                $status_label = __('Cancelled', 'invoicing');
2282 2282
                 break;
2283 2283
                 
2284 2284
             case 'completed' :
2285
-                $status_label = __( 'Completed', 'invoicing' );
2285
+                $status_label = __('Completed', 'invoicing');
2286 2286
                 break;
2287 2287
 
2288 2288
             case 'expired' :
2289
-                $status_label = __( 'Expired', 'invoicing' );
2289
+                $status_label = __('Expired', 'invoicing');
2290 2290
                 break;
2291 2291
 
2292 2292
             case 'pending' :
2293
-                $status_label = __( 'Pending', 'invoicing' );
2293
+                $status_label = __('Pending', 'invoicing');
2294 2294
                 break;
2295 2295
 
2296 2296
             case 'failing' :
2297
-                $status_label = __( 'Failing', 'invoicing' );
2297
+                $status_label = __('Failing', 'invoicing');
2298 2298
                 break;
2299 2299
                 
2300 2300
             case 'stopped' :
2301
-                $status_label = __( 'Stopped', 'invoicing' );
2301
+                $status_label = __('Stopped', 'invoicing');
2302 2302
                 break;
2303 2303
                 
2304 2304
             case 'trialing' :
2305
-                $status_label = __( 'Trialing', 'invoicing' );
2305
+                $status_label = __('Trialing', 'invoicing');
2306 2306
                 break;
2307 2307
 
2308 2308
             default:
@@ -2313,26 +2313,26 @@  discard block
 block discarded – undo
2313 2313
         return $status_label;
2314 2314
     }
2315 2315
     
2316
-    public function get_subscription_period( $full = false ) {
2317
-        $period = $this->get_meta( '_wpinv_subscr_period', true );
2316
+    public function get_subscription_period($full = false) {
2317
+        $period = $this->get_meta('_wpinv_subscr_period', true);
2318 2318
         
2319 2319
         // Fix period for old invoices
2320
-        if ( $period == 'day' ) {
2320
+        if ($period == 'day') {
2321 2321
             $period = 'D';
2322
-        } else if ( $period == 'week' ) {
2322
+        } else if ($period == 'week') {
2323 2323
             $period = 'W';
2324
-        } else if ( $period == 'month' ) {
2324
+        } else if ($period == 'month') {
2325 2325
             $period = 'M';
2326
-        } else if ( $period == 'year' ) {
2326
+        } else if ($period == 'year') {
2327 2327
             $period = 'Y';
2328 2328
         }
2329 2329
         
2330
-        if ( !in_array( $period, array( 'D', 'W', 'M', 'Y' ) ) ) {
2330
+        if (!in_array($period, array('D', 'W', 'M', 'Y'))) {
2331 2331
             $period = 'D';
2332 2332
         }
2333 2333
         
2334
-        if ( $full ) {
2335
-            switch( $period ) {
2334
+        if ($full) {
2335
+            switch ($period) {
2336 2336
                 case 'D':
2337 2337
                     $period = 'day';
2338 2338
                 break;
@@ -2352,39 +2352,39 @@  discard block
 block discarded – undo
2352 2352
     }
2353 2353
     
2354 2354
     public function get_subscription_interval() {
2355
-        $interval = (int)$this->get_meta( '_wpinv_subscr_interval', true );
2355
+        $interval = (int)$this->get_meta('_wpinv_subscr_interval', true);
2356 2356
         
2357
-        if ( !$interval > 0 ) {
2357
+        if (!$interval > 0) {
2358 2358
             $interval = 1;
2359 2359
         }
2360 2360
         
2361 2361
         return $interval;
2362 2362
     }
2363 2363
     
2364
-    public function get_subscription_trial_period( $full = false ) {
2365
-        if ( !$this->is_free_trial() ) {
2364
+    public function get_subscription_trial_period($full = false) {
2365
+        if (!$this->is_free_trial()) {
2366 2366
             return '';
2367 2367
         }
2368 2368
         
2369
-        $period = $this->get_meta( '_wpinv_subscr_trial_period', true );
2369
+        $period = $this->get_meta('_wpinv_subscr_trial_period', true);
2370 2370
         
2371 2371
         // Fix period for old invoices
2372
-        if ( $period == 'day' ) {
2372
+        if ($period == 'day') {
2373 2373
             $period = 'D';
2374
-        } else if ( $period == 'week' ) {
2374
+        } else if ($period == 'week') {
2375 2375
             $period = 'W';
2376
-        } else if ( $period == 'month' ) {
2376
+        } else if ($period == 'month') {
2377 2377
             $period = 'M';
2378
-        } else if ( $period == 'year' ) {
2378
+        } else if ($period == 'year') {
2379 2379
             $period = 'Y';
2380 2380
         }
2381 2381
         
2382
-        if ( !in_array( $period, array( 'D', 'W', 'M', 'Y' ) ) ) {
2382
+        if (!in_array($period, array('D', 'W', 'M', 'Y'))) {
2383 2383
             $period = 'D';
2384 2384
         }
2385 2385
         
2386
-        if ( $full ) {
2387
-            switch( $period ) {
2386
+        if ($full) {
2387
+            switch ($period) {
2388 2388
                 case 'D':
2389 2389
                     $period = 'day';
2390 2390
                 break;
@@ -2404,13 +2404,13 @@  discard block
 block discarded – undo
2404 2404
     }
2405 2405
     
2406 2406
     public function get_subscription_trial_interval() {
2407
-        if ( !$this->is_free_trial() ) {
2407
+        if (!$this->is_free_trial()) {
2408 2408
             return 0;
2409 2409
         }
2410 2410
         
2411
-        $interval = (int)$this->get_meta( '_wpinv_subscr_trial_interval', true );
2411
+        $interval = (int)$this->get_meta('_wpinv_subscr_trial_interval', true);
2412 2412
         
2413
-        if ( !$interval > 0 ) {
2413
+        if (!$interval > 0) {
2414 2414
             $interval = 1;
2415 2415
         }
2416 2416
         
@@ -2422,8 +2422,8 @@  discard block
 block discarded – undo
2422 2422
             'status' => 'failing'
2423 2423
         );
2424 2424
 
2425
-        if ( $this->update_subscription( $args ) ) {
2426
-            do_action( 'wpinv_subscription_failing', $this->ID, $this );
2425
+        if ($this->update_subscription($args)) {
2426
+            do_action('wpinv_subscription_failing', $this->ID, $this);
2427 2427
             return true;
2428 2428
         }
2429 2429
 
@@ -2435,8 +2435,8 @@  discard block
 block discarded – undo
2435 2435
             'status' => 'stopped'
2436 2436
         );
2437 2437
 
2438
-        if ( $this->update_subscription( $args ) ) {
2439
-            do_action( 'wpinv_subscription_stopped', $this->ID, $this );
2438
+        if ($this->update_subscription($args)) {
2439
+            do_action('wpinv_subscription_stopped', $this->ID, $this);
2440 2440
             return true;
2441 2441
         }
2442 2442
 
@@ -2448,8 +2448,8 @@  discard block
 block discarded – undo
2448 2448
             'status' => 'active'
2449 2449
         );
2450 2450
 
2451
-        if ( $this->update_subscription( $args ) ) {
2452
-            do_action( 'wpinv_subscription_restarted', $this->ID, $this );
2451
+        if ($this->update_subscription($args)) {
2452
+            do_action('wpinv_subscription_restarted', $this->ID, $this);
2453 2453
             return true;
2454 2454
         }
2455 2455
 
@@ -2461,23 +2461,23 @@  discard block
 block discarded – undo
2461 2461
             'status' => 'cancelled'
2462 2462
         );
2463 2463
 
2464
-        if ( $this->update_subscription( $args ) ) {
2465
-            if ( is_user_logged_in() ) {
2466
-                $userdata = get_userdata( get_current_user_id() );
2464
+        if ($this->update_subscription($args)) {
2465
+            if (is_user_logged_in()) {
2466
+                $userdata = get_userdata(get_current_user_id());
2467 2467
                 $user     = $userdata->user_login;
2468 2468
             } else {
2469
-                $user = __( 'gateway', 'invoicing' );
2469
+                $user = __('gateway', 'invoicing');
2470 2470
             }
2471 2471
             
2472 2472
             $subscription_id = $this->get_subscription_id();
2473
-            if ( !$subscription_id ) {
2473
+            if (!$subscription_id) {
2474 2474
                 $subscription_id = $this->ID;
2475 2475
             }
2476 2476
 
2477
-            $note = sprintf( __( 'Subscription %s has been cancelled by %s', 'invoicing' ), $subscription_id, $user );
2478
-            $this->add_note( $note );
2477
+            $note = sprintf(__('Subscription %s has been cancelled by %s', 'invoicing'), $subscription_id, $user);
2478
+            $this->add_note($note);
2479 2479
 
2480
-            do_action( 'wpinv_subscription_cancelled', $this->ID, $this );
2480
+            do_action('wpinv_subscription_cancelled', $this->ID, $this);
2481 2481
             return true;
2482 2482
         }
2483 2483
 
@@ -2485,11 +2485,11 @@  discard block
 block discarded – undo
2485 2485
     }
2486 2486
 
2487 2487
     public function can_cancel() {
2488
-        return apply_filters( 'wpinv_subscription_can_cancel', false, $this );
2488
+        return apply_filters('wpinv_subscription_can_cancel', false, $this);
2489 2489
     }
2490 2490
     
2491
-    public function add_subscription( $data = array() ) {
2492
-        if ( empty( $this->ID ) ) {
2491
+    public function add_subscription($data = array()) {
2492
+        if (empty($this->ID)) {
2493 2493
             return false;
2494 2494
         }
2495 2495
 
@@ -2508,85 +2508,85 @@  discard block
 block discarded – undo
2508 2508
             'profile_id'        => '',
2509 2509
         );
2510 2510
 
2511
-        $args = wp_parse_args( $data, $defaults );
2511
+        $args = wp_parse_args($data, $defaults);
2512 2512
 
2513
-        if ( $args['expiration'] && strtotime( 'NOW', current_time( 'timestamp' ) ) > strtotime( $args['expiration'], current_time( 'timestamp' ) ) ) {
2514
-            if ( 'active' == $args['status'] || $args['status'] == 'trialing' ) {
2513
+        if ($args['expiration'] && strtotime('NOW', current_time('timestamp')) > strtotime($args['expiration'], current_time('timestamp'))) {
2514
+            if ('active' == $args['status'] || $args['status'] == 'trialing') {
2515 2515
                 $args['status'] = 'expired';
2516 2516
             }
2517 2517
         }
2518 2518
 
2519
-        do_action( 'wpinv_subscription_pre_create', $args, $data, $this );
2519
+        do_action('wpinv_subscription_pre_create', $args, $data, $this);
2520 2520
         
2521
-        if ( !empty( $args ) ) {
2522
-            foreach ( $args as $key => $value ) {
2523
-                $this->update_meta( '_wpinv_subscr_' . $key, $value );
2521
+        if (!empty($args)) {
2522
+            foreach ($args as $key => $value) {
2523
+                $this->update_meta('_wpinv_subscr_' . $key, $value);
2524 2524
             }
2525 2525
         }
2526 2526
 
2527
-        do_action( 'wpinv_subscription_post_create', $args, $data, $this );
2527
+        do_action('wpinv_subscription_post_create', $args, $data, $this);
2528 2528
 
2529 2529
         return true;
2530 2530
     }
2531 2531
     
2532
-    public function update_subscription( $args = array() ) {
2533
-        if ( empty( $this->ID ) ) {
2532
+    public function update_subscription($args = array()) {
2533
+        if (empty($this->ID)) {
2534 2534
             return false;
2535 2535
         }
2536 2536
 
2537
-        if ( !empty( $args['expiration'] ) && $args['expiration'] && strtotime( 'NOW', current_time( 'timestamp' ) ) > strtotime( $args['expiration'], current_time( 'timestamp' ) ) ) {
2538
-            if ( !isset( $args['status'] ) || ( isset( $args['status'] ) && ( 'active' == $args['status'] || $args['status'] == 'trialing' ) ) ) {
2537
+        if (!empty($args['expiration']) && $args['expiration'] && strtotime('NOW', current_time('timestamp')) > strtotime($args['expiration'], current_time('timestamp'))) {
2538
+            if (!isset($args['status']) || (isset($args['status']) && ('active' == $args['status'] || $args['status'] == 'trialing'))) {
2539 2539
                 $args['status'] = 'expired';
2540 2540
             }
2541 2541
         }
2542 2542
 
2543
-        if ( isset( $args['status'] ) && $args['status'] == 'cancelled' && empty( $args['cancelled_on'] ) ) {
2544
-            $args['cancelled_on'] = date_i18n( 'Y-m-d H:i:s', current_time( 'timestamp' ) );
2543
+        if (isset($args['status']) && $args['status'] == 'cancelled' && empty($args['cancelled_on'])) {
2544
+            $args['cancelled_on'] = date_i18n('Y-m-d H:i:s', current_time('timestamp'));
2545 2545
         }
2546 2546
 
2547
-        do_action( 'wpinv_subscription_pre_update', $args, $this );
2547
+        do_action('wpinv_subscription_pre_update', $args, $this);
2548 2548
         
2549
-        if ( !empty( $args ) ) {
2550
-            foreach ( $args as $key => $value ) {
2551
-                $this->update_meta( '_wpinv_subscr_' . $key, $value );
2549
+        if (!empty($args)) {
2550
+            foreach ($args as $key => $value) {
2551
+                $this->update_meta('_wpinv_subscr_' . $key, $value);
2552 2552
             }
2553 2553
         }
2554 2554
 
2555
-        do_action( 'wpinv_subscription_post_update', $args, $this );
2555
+        do_action('wpinv_subscription_post_update', $args, $this);
2556 2556
 
2557 2557
         return true;
2558 2558
     }
2559 2559
     
2560 2560
     public function renew_subscription() {
2561 2561
         $parent_invoice = $this->get_parent_payment();
2562
-        $parent_invoice = empty( $parent_invoice ) ? $this : $parent_invoice;
2562
+        $parent_invoice = empty($parent_invoice) ? $this : $parent_invoice;
2563 2563
         
2564
-        $current_time   = current_time( 'timestamp' );
2564
+        $current_time   = current_time('timestamp');
2565 2565
         $start          = $this->get_subscription_created();
2566
-        $start          = $start ? strtotime( $start ) : $current_time;
2566
+        $start          = $start ? strtotime($start) : $current_time;
2567 2567
         $expires        = $this->get_expiration_time();
2568 2568
         
2569
-        if ( !$expires ) {
2570
-            $expires    = strtotime( '+' . $parent_invoice->get_subscription_interval() . ' ' . $parent_invoice->get_subscription_period( true ), $start );
2569
+        if (!$expires) {
2570
+            $expires    = strtotime('+' . $parent_invoice->get_subscription_interval() . ' ' . $parent_invoice->get_subscription_period(true), $start);
2571 2571
         }
2572 2572
         
2573
-        $expiration     = date_i18n( 'Y-m-d 23:59:59', $expires );
2574
-        $expiration     = apply_filters( 'wpinv_subscription_renewal_expiration', $expiration, $this->ID, $this );
2573
+        $expiration     = date_i18n('Y-m-d 23:59:59', $expires);
2574
+        $expiration     = apply_filters('wpinv_subscription_renewal_expiration', $expiration, $this->ID, $this);
2575 2575
         $bill_times     = $parent_invoice->get_bill_times();
2576 2576
         $times_billed   = $parent_invoice->get_total_payments();
2577 2577
         
2578
-        if ( $parent_invoice->get_subscription_status() == 'trialing' && ( $times_billed > 0 || strtotime( date_i18n( 'Y-m-d' ) ) < strtotime( $parent_invoice->get_trial_end_date( false ) ) ) ) {
2578
+        if ($parent_invoice->get_subscription_status() == 'trialing' && ($times_billed > 0 || strtotime(date_i18n('Y-m-d')) < strtotime($parent_invoice->get_trial_end_date(false)))) {
2579 2579
             $args = array(
2580 2580
                 'status'     => 'active',
2581 2581
             );
2582 2582
 
2583
-            $parent_invoice->update_subscription( $args );
2583
+            $parent_invoice->update_subscription($args);
2584 2584
         }
2585 2585
         
2586
-        do_action( 'wpinv_subscription_pre_renew', $this->ID, $expiration, $this );
2586
+        do_action('wpinv_subscription_pre_renew', $this->ID, $expiration, $this);
2587 2587
 
2588
-        $status       = 'active';
2589
-        if ( $bill_times > 0 && $times_billed >= $bill_times ) {
2588
+        $status = 'active';
2589
+        if ($bill_times > 0 && $times_billed >= $bill_times) {
2590 2590
             $this->complete_subscription();
2591 2591
             $status = 'completed';
2592 2592
         }
@@ -2596,10 +2596,10 @@  discard block
 block discarded – undo
2596 2596
             'status'     => $status,
2597 2597
         );
2598 2598
 
2599
-        $this->update_subscription( $args );
2599
+        $this->update_subscription($args);
2600 2600
 
2601
-        do_action( 'wpinv_subscription_post_renew', $this->ID, $expiration, $this );
2602
-        do_action( 'wpinv_recurring_set_subscription_status', $this->ID, $status, $this );
2601
+        do_action('wpinv_subscription_post_renew', $this->ID, $expiration, $this);
2602
+        do_action('wpinv_recurring_set_subscription_status', $this->ID, $status, $this);
2603 2603
     }
2604 2604
     
2605 2605
     public function complete_subscription() {
@@ -2607,8 +2607,8 @@  discard block
 block discarded – undo
2607 2607
             'status' => 'completed'
2608 2608
         );
2609 2609
 
2610
-        if ( $this->update_subscription( $args ) ) {
2611
-            do_action( 'wpinv_subscription_completed', $this->ID, $this );
2610
+        if ($this->update_subscription($args)) {
2611
+            do_action('wpinv_subscription_completed', $this->ID, $this);
2612 2612
         }
2613 2613
     }
2614 2614
     
@@ -2617,44 +2617,44 @@  discard block
 block discarded – undo
2617 2617
             'status' => 'expired'
2618 2618
         );
2619 2619
 
2620
-        if ( $this->update_subscription( $args ) ) {
2621
-            do_action( 'wpinv_subscription_expired', $this->ID, $this );
2620
+        if ($this->update_subscription($args)) {
2621
+            do_action('wpinv_subscription_expired', $this->ID, $this);
2622 2622
         }
2623 2623
     }
2624 2624
 
2625 2625
     public function get_cancel_url() {
2626
-        $url = wp_nonce_url( add_query_arg( array( 'wpi_action' => 'cancel_subscription', 'sub_id' => $this->ID ) ), 'wpinv-recurring-cancel' );
2626
+        $url = wp_nonce_url(add_query_arg(array('wpi_action' => 'cancel_subscription', 'sub_id' => $this->ID)), 'wpinv-recurring-cancel');
2627 2627
 
2628
-        return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
2628
+        return apply_filters('wpinv_subscription_cancel_url', $url, $this);
2629 2629
     }
2630 2630
 
2631 2631
     public function can_update() {
2632
-        return apply_filters( 'wpinv_subscription_can_update', false, $this );
2632
+        return apply_filters('wpinv_subscription_can_update', false, $this);
2633 2633
     }
2634 2634
 
2635 2635
     public function get_update_url() {
2636
-        $url = add_query_arg( array( 'action' => 'update', 'sub_id' => $this->ID ) );
2636
+        $url = add_query_arg(array('action' => 'update', 'sub_id' => $this->ID));
2637 2637
 
2638
-        return apply_filters( 'wpinv_subscription_update_url', $url, $this );
2638
+        return apply_filters('wpinv_subscription_update_url', $url, $this);
2639 2639
     }
2640 2640
 
2641 2641
     public function is_parent() {
2642
-        $is_parent = empty( $this->parent_invoice ) ? true : false;
2642
+        $is_parent = empty($this->parent_invoice) ? true : false;
2643 2643
 
2644
-        return apply_filters( 'wpinv_invoice_is_parent', $is_parent, $this );
2644
+        return apply_filters('wpinv_invoice_is_parent', $is_parent, $this);
2645 2645
     }
2646 2646
     
2647 2647
     public function is_renewal() {
2648 2648
         $is_renewal = $this->parent_invoice && $this->parent_invoice != $this->ID ? true : false;
2649 2649
 
2650
-        return apply_filters( 'wpinv_invoice_is_renewal', $is_renewal, $this );
2650
+        return apply_filters('wpinv_invoice_is_renewal', $is_renewal, $this);
2651 2651
     }
2652 2652
     
2653 2653
     public function get_parent_payment() {
2654 2654
         $parent_payment = NULL;
2655 2655
         
2656
-        if ( $this->is_renewal() ) {
2657
-            $parent_payment = wpinv_get_invoice( $this->parent_invoice );
2656
+        if ($this->is_renewal()) {
2657
+            $parent_payment = wpinv_get_invoice($this->parent_invoice);
2658 2658
         }
2659 2659
         
2660 2660
         return $parent_payment;
@@ -2665,100 +2665,100 @@  discard block
 block discarded – undo
2665 2665
         
2666 2666
         $subscription_status = $this->get_subscription_status();
2667 2667
 
2668
-        if( ! $this->is_subscription_expired() && ( $subscription_status == 'active' || $subscription_status == 'cancelled' || $subscription_status == 'trialing' ) ) {
2668
+        if (!$this->is_subscription_expired() && ($subscription_status == 'active' || $subscription_status == 'cancelled' || $subscription_status == 'trialing')) {
2669 2669
             $ret = true;
2670 2670
         }
2671 2671
 
2672
-        return apply_filters( 'wpinv_subscription_is_active', $ret, $this->ID, $this );
2672
+        return apply_filters('wpinv_subscription_is_active', $ret, $this->ID, $this);
2673 2673
     }
2674 2674
 
2675 2675
     public function is_subscription_expired() {
2676 2676
         $ret = false;
2677 2677
         $subscription_status = $this->get_subscription_status();
2678 2678
 
2679
-        if ( $subscription_status == 'expired' ) {
2679
+        if ($subscription_status == 'expired') {
2680 2680
             $ret = true;
2681
-        } else if ( 'active' === $subscription_status || 'cancelled' === $subscription_status || 'trialing' == $subscription_status ) {
2681
+        } else if ('active' === $subscription_status || 'cancelled' === $subscription_status || 'trialing' == $subscription_status) {
2682 2682
             $ret        = false;
2683 2683
             $expiration = $this->get_expiration_time();
2684 2684
 
2685
-            if ( $expiration && strtotime( 'NOW', current_time( 'timestamp' ) ) > $expiration ) {
2685
+            if ($expiration && strtotime('NOW', current_time('timestamp')) > $expiration) {
2686 2686
                 $ret = true;
2687 2687
 
2688
-                if ( 'active' === $subscription_status || 'trialing' === $subscription_status ) {
2688
+                if ('active' === $subscription_status || 'trialing' === $subscription_status) {
2689 2689
                     $this->expire_subscription();
2690 2690
                 }
2691 2691
             }
2692 2692
         }
2693 2693
 
2694
-        return apply_filters( 'wpinv_subscription_is_expired', $ret, $this->ID, $this );
2694
+        return apply_filters('wpinv_subscription_is_expired', $ret, $this->ID, $this);
2695 2695
     }
2696 2696
     
2697
-    public function get_new_expiration( $item_id = 0, $trial = true ) {
2698
-        $item   = new WPInv_Item( $item_id );
2697
+    public function get_new_expiration($item_id = 0, $trial = true) {
2698
+        $item   = new WPInv_Item($item_id);
2699 2699
         $interval = $item->get_recurring_interval();
2700
-        $period = $item->get_recurring_period( true );
2700
+        $period = $item->get_recurring_period(true);
2701 2701
         
2702
-        $expiration_time = strtotime( '+' . $interval . ' ' . $period );
2702
+        $expiration_time = strtotime('+' . $interval . ' ' . $period);
2703 2703
         
2704
-        if ( $trial && $this->is_free_trial() && $item->has_free_trial() ) {
2705
-            $expiration_time += ( wpinv_period_in_days( $item->get_trial_interval(), $item->get_trial_period() ) * DAY_IN_SECONDS ) ;
2704
+        if ($trial && $this->is_free_trial() && $item->has_free_trial()) {
2705
+            $expiration_time += (wpinv_period_in_days($item->get_trial_interval(), $item->get_trial_period()) * DAY_IN_SECONDS);
2706 2706
         }
2707 2707
 
2708
-        return date_i18n( 'Y-m-d 23:59:59', $expiration_time );
2708
+        return date_i18n('Y-m-d 23:59:59', $expiration_time);
2709 2709
     }
2710 2710
     
2711
-    public function get_subscription_data( $filed = '' ) {
2712
-        $fields = array( 'item_id', 'status', 'period', 'initial_amount', 'recurring_amount', 'interval', 'bill_times', 'trial_period', 'trial_interval', 'expiration', 'profile_id', 'created', 'cancelled_on' );
2711
+    public function get_subscription_data($filed = '') {
2712
+        $fields = array('item_id', 'status', 'period', 'initial_amount', 'recurring_amount', 'interval', 'bill_times', 'trial_period', 'trial_interval', 'expiration', 'profile_id', 'created', 'cancelled_on');
2713 2713
         
2714 2714
         $subscription_meta = array();
2715
-        foreach ( $fields as $field ) {
2716
-            $subscription_meta[ $field ] = $this->get_meta( '_wpinv_subscr_' . $field );
2715
+        foreach ($fields as $field) {
2716
+            $subscription_meta[$field] = $this->get_meta('_wpinv_subscr_' . $field);
2717 2717
         }
2718 2718
         
2719
-        $item = $this->get_recurring( true );
2719
+        $item = $this->get_recurring(true);
2720 2720
         
2721
-        if ( !empty( $item ) ) {
2722
-            if ( empty( $subscription_meta['item_id'] ) ) {
2721
+        if (!empty($item)) {
2722
+            if (empty($subscription_meta['item_id'])) {
2723 2723
                 $subscription_meta['item_id'] = $item->ID;
2724 2724
             }
2725
-            if ( empty( $subscription_meta['period'] ) ) {
2725
+            if (empty($subscription_meta['period'])) {
2726 2726
                 $subscription_meta['period'] = $item->get_recurring_period();
2727 2727
             }
2728
-            if ( empty( $subscription_meta['interval'] ) ) {
2728
+            if (empty($subscription_meta['interval'])) {
2729 2729
                 $subscription_meta['interval'] = $item->get_recurring_interval();
2730 2730
             }
2731
-            if ( $item->has_free_trial() ) {
2732
-                if ( empty( $subscription_meta['trial_period'] ) ) {
2731
+            if ($item->has_free_trial()) {
2732
+                if (empty($subscription_meta['trial_period'])) {
2733 2733
                     $subscription_meta['trial_period'] = $item->get_trial_period();
2734 2734
                 }
2735
-                if ( empty( $subscription_meta['trial_interval'] ) ) {
2735
+                if (empty($subscription_meta['trial_interval'])) {
2736 2736
                     $subscription_meta['trial_interval'] = $item->get_trial_interval();
2737 2737
                 }
2738 2738
             } else {
2739 2739
                 $subscription_meta['trial_period']      = '';
2740 2740
                 $subscription_meta['trial_interval']    = 0;
2741 2741
             }
2742
-            if ( !$subscription_meta['bill_times'] && $subscription_meta['bill_times'] !== 0 ) {
2742
+            if (!$subscription_meta['bill_times'] && $subscription_meta['bill_times'] !== 0) {
2743 2743
                 $subscription_meta['bill_times'] = $item->get_recurring_limit();
2744 2744
             }
2745
-            if ( $subscription_meta['initial_amount'] === '' || $subscription_meta['recurring_amount'] === '' ) {
2746
-                $subscription_meta['initial_amount']    = wpinv_round_amount( $this->get_total() );
2747
-                $subscription_meta['recurring_amount']  = wpinv_round_amount( $this->get_recurring_details( 'total' ) );
2745
+            if ($subscription_meta['initial_amount'] === '' || $subscription_meta['recurring_amount'] === '') {
2746
+                $subscription_meta['initial_amount']    = wpinv_round_amount($this->get_total());
2747
+                $subscription_meta['recurring_amount']  = wpinv_round_amount($this->get_recurring_details('total'));
2748 2748
             }
2749 2749
         }
2750 2750
         
2751
-        if ( $filed === '' ) {
2752
-            return apply_filters( 'wpinv_get_invoice_subscription_data', $subscription_meta, $this );
2751
+        if ($filed === '') {
2752
+            return apply_filters('wpinv_get_invoice_subscription_data', $subscription_meta, $this);
2753 2753
         }
2754 2754
         
2755
-        $value = isset( $subscription_meta[$filed] ) ? $subscription_meta[$filed] : '';
2755
+        $value = isset($subscription_meta[$filed]) ? $subscription_meta[$filed] : '';
2756 2756
         
2757
-        return apply_filters( 'wpinv_invoice_subscription_data_value', $value, $subscription_meta, $this );
2757
+        return apply_filters('wpinv_invoice_subscription_data_value', $value, $subscription_meta, $this);
2758 2758
     }
2759 2759
     
2760 2760
     public function is_paid() {
2761
-        if ( $this->has_status( array( 'publish', 'wpi-processing', 'wpi-renewal' ) ) ) {
2761
+        if ($this->has_status(array('publish', 'wpi-processing', 'wpi-renewal'))) {
2762 2762
             return true;
2763 2763
         }
2764 2764
         
@@ -2768,15 +2768,15 @@  discard block
 block discarded – undo
2768 2768
     public function is_free() {
2769 2769
         $is_free = false;
2770 2770
         
2771
-        if ( !( (float)wpinv_round_amount( $this->get_total() ) > 0 ) ) {
2772
-            if ( $this->is_parent() && $this->is_recurring() ) {
2773
-                $is_free = (float)wpinv_round_amount( $this->get_recurring_details( 'total' ) ) > 0 ? false : true;
2771
+        if (!((float)wpinv_round_amount($this->get_total()) > 0)) {
2772
+            if ($this->is_parent() && $this->is_recurring()) {
2773
+                $is_free = (float)wpinv_round_amount($this->get_recurring_details('total')) > 0 ? false : true;
2774 2774
             } else {
2775 2775
                 $is_free = true;
2776 2776
             }
2777 2777
         }
2778 2778
         
2779
-        return apply_filters( 'wpinv_invoice_is_free', $is_free, $this );
2779
+        return apply_filters('wpinv_invoice_is_free', $is_free, $this);
2780 2780
     }
2781 2781
     
2782 2782
     public function has_vat() {
@@ -2784,28 +2784,28 @@  discard block
 block discarded – undo
2784 2784
         
2785 2785
         $requires_vat = false;
2786 2786
         
2787
-        if ( $this->country ) {
2787
+        if ($this->country) {
2788 2788
             $wpi_country        = $this->country;
2789 2789
             
2790
-            $requires_vat       = $wpinv_euvat->requires_vat( $requires_vat, $this->get_user_id(), $wpinv_euvat->invoice_has_digital_rule( $this ) );
2790
+            $requires_vat       = $wpinv_euvat->requires_vat($requires_vat, $this->get_user_id(), $wpinv_euvat->invoice_has_digital_rule($this));
2791 2791
         }
2792 2792
         
2793
-        return apply_filters( 'wpinv_invoice_has_vat', $requires_vat, $this );
2793
+        return apply_filters('wpinv_invoice_has_vat', $requires_vat, $this);
2794 2794
     }
2795 2795
     
2796 2796
     public function refresh_item_ids() {
2797 2797
         $item_ids = array();
2798 2798
         
2799
-        if ( !empty( $this->cart_details ) ) {
2800
-            foreach ( $this->cart_details as $key => $item ) {
2801
-                if ( !empty( $item['id'] ) ) {
2799
+        if (!empty($this->cart_details)) {
2800
+            foreach ($this->cart_details as $key => $item) {
2801
+                if (!empty($item['id'])) {
2802 2802
                     $item_ids[] = $item['id'];
2803 2803
                 }
2804 2804
             }
2805 2805
         }
2806 2806
         
2807
-        $item_ids = !empty( $item_ids ) ? implode( ',', array_unique( $item_ids ) ) : '';
2807
+        $item_ids = !empty($item_ids) ? implode(',', array_unique($item_ids)) : '';
2808 2808
         
2809
-        update_post_meta( $this->ID, '_wpinv_item_ids', $item_ids );
2809
+        update_post_meta($this->ID, '_wpinv_item_ids', $item_ids);
2810 2810
     }
2811 2811
 }
Please login to merge, or discard this patch.
includes/libraries/GeoIp2/Model/City.php 1 patch
Spacing   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -130,7 +130,6 @@
 block discarded – undo
130 130
     private function mostSpecificSubdivision()
131 131
     {
132 132
         return empty($this->subdivisions) ?
133
-            new \GeoIp2\Record\Subdivision(array(), $this->locales) :
134
-            end($this->subdivisions);
133
+            new \GeoIp2\Record\Subdivision(array(), $this->locales) : end($this->subdivisions);
135 134
     }
136 135
 }
Please login to merge, or discard this patch.
includes/libraries/GeoIp2/Compat/JsonSerializable.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -5,12 +5,12 @@
 block discarded – undo
5 5
 // @codingStandardsIgnoreFile
6 6
 
7 7
 /**
8
-  * This interface exists to provide backwards compatibility with PHP 5.3
9
-  *
10
-  * This should _not_ be used by any third-party code.
11
-  *
12
-  * @ignore
13
-  */
8
+ * This interface exists to provide backwards compatibility with PHP 5.3
9
+ *
10
+ * This should _not_ be used by any third-party code.
11
+ *
12
+ * @ignore
13
+ */
14 14
 if (interface_exists('JsonSerializable')) {
15 15
     interface JsonSerializable extends \JsonSerializable
16 16
     {
Please login to merge, or discard this patch.
includes/libraries/class-emogrifier.php 2 patches
Indentation   +776 added lines, -776 removed lines patch added patch discarded remove patch
@@ -9,780 +9,780 @@
 block discarded – undo
9 9
  * @author Roman Ožana <[email protected]>
10 10
  */
11 11
 class Emogrifier {
12
-	/**
13
-	 * @var string
14
-	 */
15
-	const ENCODING = 'UTF-8';
16
-
17
-	/**
18
-	 * @var integer
19
-	 */
20
-	const CACHE_KEY_CSS = 0;
21
-
22
-	/**
23
-	 * @var integer
24
-	 */
25
-	const CACHE_KEY_SELECTOR = 1;
26
-
27
-	/**
28
-	 * @var integer
29
-	 */
30
-	const CACHE_KEY_XPATH = 2;
31
-
32
-	/**
33
-	 * @var integer
34
-	 */
35
-	const CACHE_KEY_CSS_DECLARATION_BLOCK = 3;
36
-
37
-	/**
38
-	 * for calculating nth-of-type and nth-child selectors.
39
-	 *
40
-	 * @var integer
41
-	 */
42
-	const INDEX = 0;
43
-
44
-	/**
45
-	 * for calculating nth-of-type and nth-child selectors.
46
-	 *
47
-	 * @var integer
48
-	 */
49
-	const MULTIPLIER = 1;
50
-
51
-	/**
52
-	 * @var string
53
-	 */
54
-	const ID_ATTRIBUTE_MATCHER = '/(\\w+)?\\#([\\w\\-]+)/';
55
-
56
-	/**
57
-	 * @var string
58
-	 */
59
-	const CLASS_ATTRIBUTE_MATCHER = '/(\\w+|[\\*\\]])?((\\.[\\w\\-]+)+)/';
60
-
61
-	/**
62
-	 * @var string
63
-	 */
64
-	private $html = '';
65
-
66
-	/**
67
-	 * @var string
68
-	 */
69
-	private $css = '';
70
-
71
-	/**
72
-	 * @var array<string>
73
-	 */
74
-	private $unprocessableHtmlTags = array('wbr');
75
-
76
-	/**
77
-	 * @var array<array>
78
-	 */
79
-	private $caches = array(
80
-		self::CACHE_KEY_CSS => array(),
81
-		self::CACHE_KEY_SELECTOR => array(),
82
-		self::CACHE_KEY_XPATH => array(),
83
-		self::CACHE_KEY_CSS_DECLARATION_BLOCK => array(),
84
-	);
85
-
86
-	/**
87
-	 * the visited nodes with the XPath paths as array keys.
88
-	 *
89
-	 * @var array<\DOMNode>
90
-	 */
91
-	private $visitedNodes = array();
92
-
93
-	/**
94
-	 * the styles to apply to the nodes with the XPath paths as array keys for the outer array and the attribute names/values.
95
-	 * as key/value pairs for the inner array.
96
-	 *
97
-	 * @var array<array><string>
98
-	 */
99
-	private $styleAttributesForNodes = array();
100
-
101
-	/**
102
-	 * This attribute applies to the case where you want to preserve your original text encoding.
103
-	 *
104
-	 * By default, emogrifier translates your text into HTML entities for two reasons:
105
-	 *
106
-	 * 1. Because of client incompatibilities, it is better practice to send out HTML entities rather than unicode over email.
107
-	 *
108
-	 * 2. It translates any illegal XML characters that DOMDocument cannot work with.
109
-	 *
110
-	 * If you would like to preserve your original encoding, set this attribute to TRUE.
111
-	 *
112
-	 * @var boolean
113
-	 */
114
-	public $preserveEncoding = false;
115
-
116
-	public static $_media = '';
117
-
118
-	/**
119
-	 * The constructor.
120
-	 *
121
-	 * @param string $html the HTML to emogrify, must be UTF-8-encoded
122
-	 * @param string $css the CSS to merge, must be UTF-8-encoded
123
-	 */
124
-	public function __construct($html = '', $css = '') {
125
-		$this->setHtml($html);
126
-		$this->setCss($css);
127
-	}
128
-
129
-	/**
130
-	 * The destructor.
131
-	 */
132
-	public function __destruct() {
133
-		$this->purgeVisitedNodes();
134
-	}
135
-
136
-	/**
137
-	 * Sets the HTML to emogrify.
138
-	 *
139
-	 * @param string $html the HTML to emogrify, must be UTF-8-encoded
140
-	 */
141
-	public function setHtml($html = '') {
142
-		$this->html = $html;
143
-	}
144
-
145
-	/**
146
-	 * Sets the CSS to merge with the HTML.
147
-	 *
148
-	 * @param string $css the CSS to merge, must be UTF-8-encoded
149
-	 */
150
-	public function setCss($css = '') {
151
-		$this->css = $css;
152
-	}
153
-
154
-	/**
155
-	 * Clears all caches.
156
-	 */
157
-	private function clearAllCaches() {
158
-		$this->clearCache(self::CACHE_KEY_CSS);
159
-		$this->clearCache(self::CACHE_KEY_SELECTOR);
160
-		$this->clearCache(self::CACHE_KEY_XPATH);
161
-		$this->clearCache(self::CACHE_KEY_CSS_DECLARATION_BLOCK);
162
-	}
163
-
164
-	/**
165
-	 * Clears a single cache by key.
166
-	 *
167
-	 * @param integer $key the cache key, must be CACHE_KEY_CSS, CACHE_KEY_SELECTOR, CACHE_KEY_XPATH or CACHE_KEY_CSS_DECLARATION_BLOCK
168
-	 *
169
-	 * @throws InvalidArgumentException
170
-	 */
171
-	private function clearCache($key) {
172
-		$allowedCacheKeys = array(self::CACHE_KEY_CSS, self::CACHE_KEY_SELECTOR, self::CACHE_KEY_XPATH, self::CACHE_KEY_CSS_DECLARATION_BLOCK);
173
-		if (!in_array($key, $allowedCacheKeys, true)) {
174
-			throw new InvalidArgumentException('Invalid cache key: ' . $key, 1391822035);
175
-		}
176
-
177
-		$this->caches[$key] = array();
178
-	}
179
-
180
-	/**
181
-	 * Purges the visited nodes.
182
-	 */
183
-	private function purgeVisitedNodes() {
184
-		$this->visitedNodes = array();
185
-		$this->styleAttributesForNodes = array();
186
-	}
187
-
188
-	/**
189
-	 * Marks a tag for removal.
190
-	 *
191
-	 * There are some HTML tags that DOMDocument cannot process, and it will throw an error if it encounters them.
192
-	 * In particular, DOMDocument will complain if you try to use HTML5 tags in an XHTML document.
193
-	 *
194
-	 * Note: The tags will not be removed if they have any content.
195
-	 *
196
-	 * @param string $tagName the tag name, e.g., "p"
197
-	 */
198
-	public function addUnprocessableHtmlTag($tagName) {
199
-		$this->unprocessableHtmlTags[] = $tagName;
200
-	}
201
-
202
-	/**
203
-	 * Drops a tag from the removal list.
204
-	 *
205
-	 * @param string $tagName the tag name, e.g., "p"
206
-	 */
207
-	public function removeUnprocessableHtmlTag($tagName) {
208
-		$key = array_search($tagName, $this->unprocessableHtmlTags, true);
209
-		if ($key !== false) {
210
-			unset($this->unprocessableHtmlTags[$key]);
211
-		}
212
-	}
213
-
214
-	/**
215
-	 * Applies the CSS you submit to the HTML you submit.
216
-	 *
217
-	 * This method places the CSS inline.
218
-	 *
219
-	 * @return string
220
-	 *
221
-	 * @throws BadMethodCallException
222
-	 */
223
-	public function emogrify() {
224
-		if ($this->html === '') {
225
-			throw new BadMethodCallException('Please set some HTML first before calling emogrify.', 1390393096);
226
-		}
227
-
228
-		$xmlDocument = $this->createXmlDocument();
229
-		$xpath = new DOMXPath($xmlDocument);
230
-		$this->clearAllCaches();
231
-
232
-		// before be begin processing the CSS file, parse the document and normalize all existing CSS attributes (changes 'DISPLAY: none' to 'display: none');
233
-		// we wouldn't have to do this if DOMXPath supported XPath 2.0.
234
-		// also store a reference of nodes with existing inline styles so we don't overwrite them
235
-		$this->purgeVisitedNodes();
236
-
237
-		$nodesWithStyleAttributes = $xpath->query('//*[@style]');
238
-		if ($nodesWithStyleAttributes !== false) {
239
-			/** @var $nodeWithStyleAttribute DOMNode */
240
-			foreach ($nodesWithStyleAttributes as $node) {
241
-				$normalizedOriginalStyle = preg_replace_callback( '/[A-z\\-]+(?=\\:)/S', array( $this, 'strtolower' ), $node->getAttribute('style') );
242
-
243
-				// in order to not overwrite existing style attributes in the HTML, we have to save the original HTML styles
244
-				$nodePath = $node->getNodePath();
245
-				if (!isset($this->styleAttributesForNodes[$nodePath])) {
246
-					$this->styleAttributesForNodes[$nodePath] = $this->parseCssDeclarationBlock($normalizedOriginalStyle);
247
-					$this->visitedNodes[$nodePath] = $node;
248
-				}
249
-
250
-				$node->setAttribute('style', $normalizedOriginalStyle);
251
-			}
252
-		}
253
-
254
-		// grab any existing style blocks from the html and append them to the existing CSS
255
-		// (these blocks should be appended so as to have precedence over conflicting styles in the existing CSS)
256
-		$allCss = $this->css;
257
-
258
-		$allCss .= $this->getCssFromAllStyleNodes($xpath);
259
-
260
-		$cssParts = $this->splitCssAndMediaQuery($allCss);
261
-		self::$_media = ''; // reset
262
-
263
-		$cssKey = md5($cssParts['css']);
264
-		if (!isset($this->caches[self::CACHE_KEY_CSS][$cssKey])) {
265
-			// process the CSS file for selectors and definitions
266
-			preg_match_all('/(?:^|[\\s^{}]*)([^{]+){([^}]*)}/mis', $cssParts['css'], $matches, PREG_SET_ORDER);
267
-
268
-			$allSelectors = array();
269
-			foreach ($matches as $key => $selectorString) {
270
-				// if there is a blank definition, skip
271
-				if (!strlen(trim($selectorString[2]))) {
272
-					continue;
273
-				}
274
-
275
-				// else split by commas and duplicate attributes so we can sort by selector precedence
276
-				$selectors = explode(',', $selectorString[1]);
277
-				foreach ($selectors as $selector) {
278
-					// don't process pseudo-elements and behavioral (dynamic) pseudo-classes; ONLY allow structural pseudo-classes
279
-					if (strpos($selector, ':') !== false && !preg_match('/:\\S+\\-(child|type)\\(/i', $selector)) {
280
-						continue;
281
-					}
282
-
283
-					$allSelectors[] = array('selector' => trim($selector),
284
-											 'attributes' => trim($selectorString[2]),
285
-											 // keep track of where it appears in the file, since order is important
286
-											 'line' => $key,
287
-					);
288
-				}
289
-			}
290
-
291
-			// now sort the selectors by precedence
292
-			usort($allSelectors, array($this,'sortBySelectorPrecedence'));
293
-
294
-			$this->caches[self::CACHE_KEY_CSS][$cssKey] = $allSelectors;
295
-		}
296
-
297
-		foreach ($this->caches[self::CACHE_KEY_CSS][$cssKey] as $value) {
298
-			// query the body for the xpath selector
299
-			$nodesMatchingCssSelectors = $xpath->query($this->translateCssToXpath($value['selector']));
300
-
301
-			/** @var $node \DOMNode */
302
-			foreach ($nodesMatchingCssSelectors as $node) {
303
-				// if it has a style attribute, get it, process it, and append (overwrite) new stuff
304
-				if ($node->hasAttribute('style')) {
305
-					// break it up into an associative array
306
-					$oldStyleDeclarations = $this->parseCssDeclarationBlock($node->getAttribute('style'));
307
-				} else {
308
-					$oldStyleDeclarations = array();
309
-				}
310
-				$newStyleDeclarations = $this->parseCssDeclarationBlock($value['attributes']);
311
-				$node->setAttribute('style', $this->generateStyleStringFromDeclarationsArrays($oldStyleDeclarations, $newStyleDeclarations));
312
-			}
313
-		}
314
-
315
-		// now iterate through the nodes that contained inline styles in the original HTML
316
-		foreach ($this->styleAttributesForNodes as $nodePath => $styleAttributesForNode) {
317
-			$node = $this->visitedNodes[$nodePath];
318
-			$currentStyleAttributes = $this->parseCssDeclarationBlock($node->getAttribute('style'));
319
-			$node->setAttribute('style', $this->generateStyleStringFromDeclarationsArrays($currentStyleAttributes, $styleAttributesForNode));
320
-		}
321
-
322
-		// This removes styles from your email that contain display:none.
323
-		// We need to look for display:none, but we need to do a case-insensitive search. Since DOMDocument only supports XPath 1.0,
324
-		// lower-case() isn't available to us. We've thus far only set attributes to lowercase, not attribute values. Consequently, we need
325
-		// to translate() the letters that would be in 'NONE' ("NOE") to lowercase.
326
-		$nodesWithStyleDisplayNone = $xpath->query('//*[contains(translate(translate(@style," ",""),"NOE","noe"),"display:none")]');
327
-		// The checks on parentNode and is_callable below ensure that if we've deleted the parent node,
328
-		// we don't try to call removeChild on a nonexistent child node
329
-		if ($nodesWithStyleDisplayNone->length > 0) {
330
-			/** @var $node \DOMNode */
331
-			foreach ($nodesWithStyleDisplayNone as $node) {
332
-				if ($node->parentNode && is_callable(array($node->parentNode,'removeChild'))) {
333
-					$node->parentNode->removeChild($node);
334
-				}
335
-			}
336
-		}
337
-
338
-		$this->copyCssWithMediaToStyleNode($cssParts, $xmlDocument);
339
-
340
-		if ($this->preserveEncoding) {
341
-			if ( function_exists( 'mb_convert_encoding' ) ) {
342
-				return mb_convert_encoding( $xmlDocument->saveHTML(), self::ENCODING, 'HTML-ENTITIES' );
343
-			} else {
344
-				return htmlspecialchars_decode( utf8_encode( html_entity_decode( $xmlDocument->saveHTML(), ENT_COMPAT, self::ENCODING ) ) );
345
-			}
346
-		} else {
347
-			return $xmlDocument->saveHTML();
348
-		}
349
-	}
350
-
351
-	public function strtolower(array $m) {
352
-		return strtolower($m[0]);
353
-	}
354
-
355
-
356
-	/**
357
-	 * This method merges old or existing name/value array with new name/value array.
358
-	 * and then generates a string of the combined style suitable for placing inline.
359
-	 * This becomes the single point for CSS string generation allowing for consistent.
360
-	 * CSS output no matter where the CSS originally came from.
361
-	 * @param array $oldStyles
362
-	 * @param array $newStyles
363
-	 * @return string
364
-	 */
365
-	private function generateStyleStringFromDeclarationsArrays(array $oldStyles, array $newStyles) {
366
-		$combinedStyles = array_merge($oldStyles, $newStyles);
367
-		$style = '';
368
-		foreach ($combinedStyles as $attributeName => $attributeValue) {
369
-			$style .= (strtolower(trim($attributeName)) . ': ' . trim($attributeValue) . '; ');
370
-		}
371
-		return trim($style);
372
-	}
373
-
374
-
375
-	/**
376
-	 * Copies the media part from CSS array parts to $xmlDocument.
377
-	 *
378
-	 * @param array $cssParts
379
-	 * @param DOMDocument $xmlDocument
380
-	 */
381
-	public function copyCssWithMediaToStyleNode(array $cssParts, DOMDocument $xmlDocument) {
382
-		if (isset($cssParts['media']) && $cssParts['media'] !== '') {
383
-			$this->addStyleElementToDocument($xmlDocument, $cssParts['media']);
384
-		}
385
-	}
386
-
387
-	/**
388
-	 * Returns CSS content.
389
-	 *
390
-	 * @param DOMXPath $xpath
391
-	 * @return string
392
-	 */
393
-	private function getCssFromAllStyleNodes(DOMXPath $xpath) {
394
-		$styleNodes = $xpath->query('//style');
395
-
396
-		if ($styleNodes === false) {
397
-			return '';
398
-		}
399
-
400
-		$css = '';
401
-		/** @var $styleNode DOMNode */
402
-		foreach ($styleNodes as $styleNode) {
403
-			$css .= "\n\n" . $styleNode->nodeValue;
404
-			$styleNode->parentNode->removeChild($styleNode);
405
-		}
406
-
407
-		return $css;
408
-	}
409
-
410
-	/**
411
-	 * Adds a style element with $css to $document.
412
-	 *
413
-	 * @param DOMDocument $document
414
-	 * @param string $css
415
-	 */
416
-	private function addStyleElementToDocument(DOMDocument $document, $css) {
417
-		$styleElement = $document->createElement('style', $css);
418
-		$styleAttribute = $document->createAttribute('type');
419
-		$styleAttribute->value = 'text/css';
420
-		$styleElement->appendChild($styleAttribute);
421
-
422
-		$head = $this->getOrCreateHeadElement($document);
423
-		$head->appendChild($styleElement);
424
-	}
425
-
426
-	/**
427
-	 * Returns the existing or creates a new head element in $document.
428
-	 *
429
-	 * @param DOMDocument $document
430
-	 * @return DOMNode the head element
431
-	 */
432
-	private function getOrCreateHeadElement(DOMDocument $document) {
433
-		$head = $document->getElementsByTagName('head')->item(0);
434
-
435
-		if ($head === null) {
436
-			$head = $document->createElement('head');
437
-			$html = $document->getElementsByTagName('html')->item(0);
438
-			$html->insertBefore($head, $document->getElementsByTagName('body')->item(0));
439
-		}
440
-
441
-		return $head;
442
-	}
443
-
444
-	/**
445
-	 * Splits input CSS code to an array where:
446
-	 *
447
-	 * - key "css" will be contains clean CSS code.
448
-	 * - key "media" will be contains all valuable media queries.
449
-	 *
450
-	 * Example:
451
-	 *
452
-	 * The CSS code.
453
-	 *
454
-	 *   "@import "file.css"; h1 { color:red; } @media { h1 {}} @media tv { h1 {}}"
455
-	 *
456
-	 * will be parsed into the following array:
457
-	 *
458
-	 *   "css" => "h1 { color:red; }"
459
-	 *   "media" => "@media { h1 {}}"
460
-	 *
461
-	 * @param string $css
462
-	 * @return array
463
-	 */
464
-	private function splitCssAndMediaQuery($css) {
465
-		$css = preg_replace_callback( '#@media\\s+(?:only\\s)?(?:[\\s{\(]|screen|all)\\s?[^{]+{.*}\\s*}\\s*#misU', array( $this, '_media_concat' ), $css );
466
-
467
-		// filter the CSS
468
-		$search = array(
469
-			// get rid of css comment code
470
-			'/\\/\\*.*\\*\\//sU',
471
-			// strip out any import directives
472
-			'/^\\s*@import\\s[^;]+;/misU',
473
-			// strip remains media enclosures
474
-			'/^\\s*@media\\s[^{]+{(.*)}\\s*}\\s/misU',
475
-		);
476
-
477
-		$replace = array(
478
-			'',
479
-			'',
480
-			'',
481
-		);
482
-
483
-		// clean CSS before output
484
-		$css = preg_replace($search, $replace, $css);
485
-
486
-		return array('css' => $css, 'media' => self::$_media);
487
-	}
488
-
489
-	private function _media_concat( $matches ) {
490
-		self::$_media .= $matches[0];
491
-	}
492
-
493
-	/**
494
-	 * Creates a DOMDocument instance with the current HTML.
495
-	 *
496
-	 * @return DOMDocument
497
-	 */
498
-	private function createXmlDocument() {
499
-		$xmlDocument = new DOMDocument;
500
-		$xmlDocument->encoding = self::ENCODING;
501
-		$xmlDocument->strictErrorChecking = false;
502
-		$xmlDocument->formatOutput = true;
503
-		$libXmlState = libxml_use_internal_errors(true);
504
-		$xmlDocument->loadHTML($this->getUnifiedHtml());
505
-		libxml_clear_errors();
506
-		libxml_use_internal_errors($libXmlState);
507
-		$xmlDocument->normalizeDocument();
508
-
509
-		return $xmlDocument;
510
-	}
511
-
512
-	/**
513
-	 * Returns the HTML with the non-ASCII characters converts into HTML entities and the unprocessable HTML tags removed.
514
-	 *
515
-	 * @return string the unified HTML
516
-	 *
517
-	 * @throws BadMethodCallException
518
-	 */
519
-	private function getUnifiedHtml() {
520
-		if (!empty($this->unprocessableHtmlTags)) {
521
-			$unprocessableHtmlTags = implode('|', $this->unprocessableHtmlTags);
522
-			$bodyWithoutUnprocessableTags = preg_replace('/<\\/?(' . $unprocessableHtmlTags . ')[^>]*>/i', '', $this->html);
523
-		} else {
524
-			$bodyWithoutUnprocessableTags = $this->html;
525
-		}
526
-
527
-		if ( function_exists( 'mb_convert_encoding' ) ) {
528
-			return mb_convert_encoding( $bodyWithoutUnprocessableTags, 'HTML-ENTITIES', self::ENCODING );
529
-		} else {
530
-			return htmlspecialchars_decode( utf8_decode( htmlentities( $bodyWithoutUnprocessableTags, ENT_COMPAT, self::ENCODING, false ) ) );
531
-		}
532
-	}
533
-
534
-	/**
535
-	 * @param array $a
536
-	 * @param array $b
537
-	 *
538
-	 * @return integer
539
-	 */
540
-	private function sortBySelectorPrecedence(array $a, array $b) {
541
-		$precedenceA = $this->getCssSelectorPrecedence($a['selector']);
542
-		$precedenceB = $this->getCssSelectorPrecedence($b['selector']);
543
-
544
-		// We want these sorted in ascending order so selectors with lesser precedence get processed first and
545
-		// selectors with greater precedence get sorted last.
546
-		// The parenthesis around the -1 are necessary to avoid a PHP_CodeSniffer warning about missing spaces around
547
-		// arithmetic operators.
548
-		// @see http://forge.typo3.org/issues/55605
549
-		$precedenceForEquals = ($a['line'] < $b['line'] ? (-1) : 1);
550
-		$precedenceForNotEquals = ($precedenceA < $precedenceB ? (-1) : 1);
551
-		return ($precedenceA === $precedenceB) ? $precedenceForEquals : $precedenceForNotEquals;
552
-	}
553
-
554
-	/**
555
-	 * @param string $selector
556
-	 *
557
-	 * @return integer
558
-	 */
559
-	private function getCssSelectorPrecedence($selector) {
560
-		$selectorKey = md5($selector);
561
-		if (!isset($this->caches[self::CACHE_KEY_SELECTOR][$selectorKey])) {
562
-			$precedence = 0;
563
-			$value = 100;
564
-			// ids: worth 100, classes: worth 10, elements: worth 1
565
-			$search = array('\\#','\\.','');
566
-
567
-			foreach ($search as $s) {
568
-				if (trim($selector == '')) {
569
-					break;
570
-				}
571
-				$number = 0;
572
-				$selector = preg_replace('/' . $s . '\\w+/', '', $selector, -1, $number);
573
-				$precedence += ($value * $number);
574
-				$value /= 10;
575
-			}
576
-			$this->caches[self::CACHE_KEY_SELECTOR][$selectorKey] = $precedence;
577
-		}
578
-
579
-		return $this->caches[self::CACHE_KEY_SELECTOR][$selectorKey];
580
-	}
581
-
582
-	/**
583
-	 * Right now, we support all CSS 1 selectors and most CSS2/3 selectors.
584
-	 *
585
-	 * @see http://plasmasturm.org/log/444/
586
-	 *
587
-	 * @param string $paramCssSelector
588
-	 *
589
-	 * @return string
590
-	 */
591
-	private function translateCssToXpath($paramCssSelector) {
592
-		$cssSelector = ' ' . $paramCssSelector . ' ';
593
-		$cssSelector = preg_replace_callback( '/\s+\w+\s+/', array( $this, 'strtolower' ), $cssSelector );
594
-		$cssSelector = trim($cssSelector);
595
-		$xpathKey = md5($cssSelector);
596
-		if (!isset($this->caches[self::CACHE_KEY_XPATH][$xpathKey])) {
597
-			// returns an Xpath selector
598
-			$search = array(
599
-				// Matches any element that is a child of parent.
600
-				'/\\s+>\\s+/',
601
-				// Matches any element that is an adjacent sibling.
602
-				'/\\s+\\+\\s+/',
603
-				// Matches any element that is a descendant of an parent element element.
604
-				'/\\s+/',
605
-				// first-child pseudo-selector
606
-				'/([^\\/]+):first-child/i',
607
-				// last-child pseudo-selector
608
-				'/([^\\/]+):last-child/i',
609
-				// Matches attribute only selector
610
-				'/^\\[(\\w+)\\]/',
611
-				// Matches element with attribute
612
-				'/(\\w)\\[(\\w+)\\]/',
613
-				// Matches element with EXACT attribute
614
-				'/(\\w)\\[(\\w+)\\=[\'"]?(\\w+)[\'"]?\\]/',
615
-			);
616
-			$replace = array(
617
-				'/',
618
-				'/following-sibling::*[1]/self::',
619
-				'//',
620
-				'*[1]/self::\\1',
621
-				'*[last()]/self::\\1',
622
-				'*[@\\1]',
623
-				'\\1[@\\2]',
624
-				'\\1[@\\2="\\3"]',
625
-			);
626
-
627
-			$cssSelector = '//' . preg_replace($search, $replace, $cssSelector);
628
-
629
-			$cssSelector = preg_replace_callback(self::ID_ATTRIBUTE_MATCHER, array($this, 'matchIdAttributes'), $cssSelector);
630
-			$cssSelector = preg_replace_callback(self::CLASS_ATTRIBUTE_MATCHER, array($this, 'matchClassAttributes'), $cssSelector);
631
-
632
-			// Advanced selectors are going to require a bit more advanced emogrification.
633
-			// When we required PHP 5.3, we could do this with closures.
634
-			$cssSelector = preg_replace_callback(
635
-				'/([^\\/]+):nth-child\\(\s*(odd|even|[+\-]?\\d|[+\\-]?\\d?n(\\s*[+\\-]\\s*\\d)?)\\s*\\)/i',
636
-				array($this, 'translateNthChild'), $cssSelector
637
-			);
638
-			$cssSelector = preg_replace_callback(
639
-				'/([^\\/]+):nth-of-type\\(\s*(odd|even|[+\-]?\\d|[+\\-]?\\d?n(\\s*[+\\-]\\s*\\d)?)\\s*\\)/i',
640
-				array($this, 'translateNthOfType'), $cssSelector
641
-			);
642
-
643
-			$this->caches[self::CACHE_KEY_SELECTOR][$xpathKey] = $cssSelector;
644
-		}
645
-		return $this->caches[self::CACHE_KEY_SELECTOR][$xpathKey];
646
-	}
647
-
648
-	/**
649
-	 * @param array $match
650
-	 *
651
-	 * @return string
652
-	 */
653
-	private function matchIdAttributes(array $match) {
654
-		return (strlen($match[1]) ? $match[1] : '*') . '[@id="' . $match[2] . '"]';
655
-	}
656
-
657
-	/**
658
-	 * @param array $match
659
-	 *
660
-	 * @return string
661
-	 */
662
-	private function matchClassAttributes(array $match) {
663
-		return (strlen($match[1]) ? $match[1] : '*') . '[contains(concat(" ",@class," "),concat(" ","' .
664
-			implode(
665
-				'"," "))][contains(concat(" ",@class," "),concat(" ","',
666
-				explode('.', substr($match[2], 1))
667
-			) . '"," "))]';
668
-	}
669
-
670
-	/**
671
-	 * @param array $match
672
-	 *
673
-	 * @return string
674
-	 */
675
-	private function translateNthChild(array $match) {
676
-		$result = $this->parseNth($match);
677
-
678
-		if (isset($result[self::MULTIPLIER])) {
679
-			if ($result[self::MULTIPLIER] < 0) {
680
-				$result[self::MULTIPLIER] = abs($result[self::MULTIPLIER]);
681
-				return sprintf('*[(last() - position()) mod %u = %u]/self::%s', $result[self::MULTIPLIER], $result[self::INDEX], $match[1]);
682
-			} else {
683
-				return sprintf('*[position() mod %u = %u]/self::%s', $result[self::MULTIPLIER], $result[self::INDEX], $match[1]);
684
-			}
685
-		} else {
686
-			return sprintf('*[%u]/self::%s', $result[self::INDEX], $match[1]);
687
-		}
688
-	}
689
-
690
-	/**
691
-	 * @param array $match
692
-	 *
693
-	 * @return string
694
-	 */
695
-	private function translateNthOfType(array $match) {
696
-		$result = $this->parseNth($match);
697
-
698
-		if (isset($result[self::MULTIPLIER])) {
699
-			if ($result[self::MULTIPLIER] < 0) {
700
-				$result[self::MULTIPLIER] = abs($result[self::MULTIPLIER]);
701
-				return sprintf('%s[(last() - position()) mod %u = %u]', $match[1], $result[self::MULTIPLIER], $result[self::INDEX]);
702
-			} else {
703
-				return sprintf('%s[position() mod %u = %u]', $match[1], $result[self::MULTIPLIER], $result[self::INDEX]);
704
-			}
705
-		} else {
706
-			return sprintf('%s[%u]', $match[1], $result[self::INDEX]);
707
-		}
708
-	}
709
-
710
-	/**
711
-	 * @param array $match
712
-	 *
713
-	 * @return array
714
-	 */
715
-	private function parseNth(array $match) {
716
-		if (in_array(strtolower($match[2]), array('even','odd'))) {
717
-			$index = strtolower($match[2]) == 'even' ? 0 : 1;
718
-			return array(self::MULTIPLIER => 2, self::INDEX => $index);
719
-		} elseif (stripos($match[2], 'n') === false) {
720
-			// if there is a multiplier
721
-			$index = intval(str_replace(' ', '', $match[2]));
722
-			return array(self::INDEX => $index);
723
-		} else {
724
-			if (isset($match[3])) {
725
-				$multipleTerm = str_replace($match[3], '', $match[2]);
726
-				$index = intval(str_replace(' ', '', $match[3]));
727
-			} else {
728
-				$multipleTerm = $match[2];
729
-				$index = 0;
730
-			}
731
-
732
-			$multiplier = str_ireplace('n', '', $multipleTerm);
733
-
734
-			if (!strlen($multiplier)) {
735
-				$multiplier = 1;
736
-			} elseif ($multiplier == 0) {
737
-				return array(self::INDEX => $index);
738
-			} else {
739
-				$multiplier = intval($multiplier);
740
-			}
741
-
742
-			while ($index < 0) {
743
-				$index += abs($multiplier);
744
-			}
745
-
746
-			return array(self::MULTIPLIER => $multiplier, self::INDEX => $index);
747
-		}
748
-	}
749
-
750
-	/**
751
-	 * Parses a CSS declaration block into property name/value pairs.
752
-	 *
753
-	 * Example:
754
-	 *
755
-	 * The declaration block.
756
-	 *
757
-	 *   "color: #000; font-weight: bold;".
758
-	 *
759
-	 * will be parsed into the following array:
760
-	 *
761
-	 *   "color" => "#000"
762
-	 *   "font-weight" => "bold"
763
-	 *
764
-	 * @param string $cssDeclarationBlock the CSS declaration block without the curly braces, may be empty
765
-	 *
766
-	 * @return array the CSS declarations with the property names as array keys and the property values as array values
767
-	 */
768
-	private function parseCssDeclarationBlock($cssDeclarationBlock) {
769
-		if (isset($this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock])) {
770
-			return $this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock];
771
-		}
772
-
773
-		$properties = array();
774
-		$declarations = explode(';', $cssDeclarationBlock);
775
-		foreach ($declarations as $declaration) {
776
-			$matches = array();
777
-			if (!preg_match('/ *([A-Za-z\\-]+) *: *([^;]+) */', $declaration, $matches)) {
778
-				continue;
779
-			}
780
-			$propertyName = strtolower($matches[1]);
781
-			$propertyValue = $matches[2];
782
-			$properties[$propertyName] = $propertyValue;
783
-		}
784
-		$this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock] = $properties;
785
-
786
-		return $properties;
787
-	}
12
+    /**
13
+     * @var string
14
+     */
15
+    const ENCODING = 'UTF-8';
16
+
17
+    /**
18
+     * @var integer
19
+     */
20
+    const CACHE_KEY_CSS = 0;
21
+
22
+    /**
23
+     * @var integer
24
+     */
25
+    const CACHE_KEY_SELECTOR = 1;
26
+
27
+    /**
28
+     * @var integer
29
+     */
30
+    const CACHE_KEY_XPATH = 2;
31
+
32
+    /**
33
+     * @var integer
34
+     */
35
+    const CACHE_KEY_CSS_DECLARATION_BLOCK = 3;
36
+
37
+    /**
38
+     * for calculating nth-of-type and nth-child selectors.
39
+     *
40
+     * @var integer
41
+     */
42
+    const INDEX = 0;
43
+
44
+    /**
45
+     * for calculating nth-of-type and nth-child selectors.
46
+     *
47
+     * @var integer
48
+     */
49
+    const MULTIPLIER = 1;
50
+
51
+    /**
52
+     * @var string
53
+     */
54
+    const ID_ATTRIBUTE_MATCHER = '/(\\w+)?\\#([\\w\\-]+)/';
55
+
56
+    /**
57
+     * @var string
58
+     */
59
+    const CLASS_ATTRIBUTE_MATCHER = '/(\\w+|[\\*\\]])?((\\.[\\w\\-]+)+)/';
60
+
61
+    /**
62
+     * @var string
63
+     */
64
+    private $html = '';
65
+
66
+    /**
67
+     * @var string
68
+     */
69
+    private $css = '';
70
+
71
+    /**
72
+     * @var array<string>
73
+     */
74
+    private $unprocessableHtmlTags = array('wbr');
75
+
76
+    /**
77
+     * @var array<array>
78
+     */
79
+    private $caches = array(
80
+        self::CACHE_KEY_CSS => array(),
81
+        self::CACHE_KEY_SELECTOR => array(),
82
+        self::CACHE_KEY_XPATH => array(),
83
+        self::CACHE_KEY_CSS_DECLARATION_BLOCK => array(),
84
+    );
85
+
86
+    /**
87
+     * the visited nodes with the XPath paths as array keys.
88
+     *
89
+     * @var array<\DOMNode>
90
+     */
91
+    private $visitedNodes = array();
92
+
93
+    /**
94
+     * the styles to apply to the nodes with the XPath paths as array keys for the outer array and the attribute names/values.
95
+     * as key/value pairs for the inner array.
96
+     *
97
+     * @var array<array><string>
98
+     */
99
+    private $styleAttributesForNodes = array();
100
+
101
+    /**
102
+     * This attribute applies to the case where you want to preserve your original text encoding.
103
+     *
104
+     * By default, emogrifier translates your text into HTML entities for two reasons:
105
+     *
106
+     * 1. Because of client incompatibilities, it is better practice to send out HTML entities rather than unicode over email.
107
+     *
108
+     * 2. It translates any illegal XML characters that DOMDocument cannot work with.
109
+     *
110
+     * If you would like to preserve your original encoding, set this attribute to TRUE.
111
+     *
112
+     * @var boolean
113
+     */
114
+    public $preserveEncoding = false;
115
+
116
+    public static $_media = '';
117
+
118
+    /**
119
+     * The constructor.
120
+     *
121
+     * @param string $html the HTML to emogrify, must be UTF-8-encoded
122
+     * @param string $css the CSS to merge, must be UTF-8-encoded
123
+     */
124
+    public function __construct($html = '', $css = '') {
125
+        $this->setHtml($html);
126
+        $this->setCss($css);
127
+    }
128
+
129
+    /**
130
+     * The destructor.
131
+     */
132
+    public function __destruct() {
133
+        $this->purgeVisitedNodes();
134
+    }
135
+
136
+    /**
137
+     * Sets the HTML to emogrify.
138
+     *
139
+     * @param string $html the HTML to emogrify, must be UTF-8-encoded
140
+     */
141
+    public function setHtml($html = '') {
142
+        $this->html = $html;
143
+    }
144
+
145
+    /**
146
+     * Sets the CSS to merge with the HTML.
147
+     *
148
+     * @param string $css the CSS to merge, must be UTF-8-encoded
149
+     */
150
+    public function setCss($css = '') {
151
+        $this->css = $css;
152
+    }
153
+
154
+    /**
155
+     * Clears all caches.
156
+     */
157
+    private function clearAllCaches() {
158
+        $this->clearCache(self::CACHE_KEY_CSS);
159
+        $this->clearCache(self::CACHE_KEY_SELECTOR);
160
+        $this->clearCache(self::CACHE_KEY_XPATH);
161
+        $this->clearCache(self::CACHE_KEY_CSS_DECLARATION_BLOCK);
162
+    }
163
+
164
+    /**
165
+     * Clears a single cache by key.
166
+     *
167
+     * @param integer $key the cache key, must be CACHE_KEY_CSS, CACHE_KEY_SELECTOR, CACHE_KEY_XPATH or CACHE_KEY_CSS_DECLARATION_BLOCK
168
+     *
169
+     * @throws InvalidArgumentException
170
+     */
171
+    private function clearCache($key) {
172
+        $allowedCacheKeys = array(self::CACHE_KEY_CSS, self::CACHE_KEY_SELECTOR, self::CACHE_KEY_XPATH, self::CACHE_KEY_CSS_DECLARATION_BLOCK);
173
+        if (!in_array($key, $allowedCacheKeys, true)) {
174
+            throw new InvalidArgumentException('Invalid cache key: ' . $key, 1391822035);
175
+        }
176
+
177
+        $this->caches[$key] = array();
178
+    }
179
+
180
+    /**
181
+     * Purges the visited nodes.
182
+     */
183
+    private function purgeVisitedNodes() {
184
+        $this->visitedNodes = array();
185
+        $this->styleAttributesForNodes = array();
186
+    }
187
+
188
+    /**
189
+     * Marks a tag for removal.
190
+     *
191
+     * There are some HTML tags that DOMDocument cannot process, and it will throw an error if it encounters them.
192
+     * In particular, DOMDocument will complain if you try to use HTML5 tags in an XHTML document.
193
+     *
194
+     * Note: The tags will not be removed if they have any content.
195
+     *
196
+     * @param string $tagName the tag name, e.g., "p"
197
+     */
198
+    public function addUnprocessableHtmlTag($tagName) {
199
+        $this->unprocessableHtmlTags[] = $tagName;
200
+    }
201
+
202
+    /**
203
+     * Drops a tag from the removal list.
204
+     *
205
+     * @param string $tagName the tag name, e.g., "p"
206
+     */
207
+    public function removeUnprocessableHtmlTag($tagName) {
208
+        $key = array_search($tagName, $this->unprocessableHtmlTags, true);
209
+        if ($key !== false) {
210
+            unset($this->unprocessableHtmlTags[$key]);
211
+        }
212
+    }
213
+
214
+    /**
215
+     * Applies the CSS you submit to the HTML you submit.
216
+     *
217
+     * This method places the CSS inline.
218
+     *
219
+     * @return string
220
+     *
221
+     * @throws BadMethodCallException
222
+     */
223
+    public function emogrify() {
224
+        if ($this->html === '') {
225
+            throw new BadMethodCallException('Please set some HTML first before calling emogrify.', 1390393096);
226
+        }
227
+
228
+        $xmlDocument = $this->createXmlDocument();
229
+        $xpath = new DOMXPath($xmlDocument);
230
+        $this->clearAllCaches();
231
+
232
+        // before be begin processing the CSS file, parse the document and normalize all existing CSS attributes (changes 'DISPLAY: none' to 'display: none');
233
+        // we wouldn't have to do this if DOMXPath supported XPath 2.0.
234
+        // also store a reference of nodes with existing inline styles so we don't overwrite them
235
+        $this->purgeVisitedNodes();
236
+
237
+        $nodesWithStyleAttributes = $xpath->query('//*[@style]');
238
+        if ($nodesWithStyleAttributes !== false) {
239
+            /** @var $nodeWithStyleAttribute DOMNode */
240
+            foreach ($nodesWithStyleAttributes as $node) {
241
+                $normalizedOriginalStyle = preg_replace_callback( '/[A-z\\-]+(?=\\:)/S', array( $this, 'strtolower' ), $node->getAttribute('style') );
242
+
243
+                // in order to not overwrite existing style attributes in the HTML, we have to save the original HTML styles
244
+                $nodePath = $node->getNodePath();
245
+                if (!isset($this->styleAttributesForNodes[$nodePath])) {
246
+                    $this->styleAttributesForNodes[$nodePath] = $this->parseCssDeclarationBlock($normalizedOriginalStyle);
247
+                    $this->visitedNodes[$nodePath] = $node;
248
+                }
249
+
250
+                $node->setAttribute('style', $normalizedOriginalStyle);
251
+            }
252
+        }
253
+
254
+        // grab any existing style blocks from the html and append them to the existing CSS
255
+        // (these blocks should be appended so as to have precedence over conflicting styles in the existing CSS)
256
+        $allCss = $this->css;
257
+
258
+        $allCss .= $this->getCssFromAllStyleNodes($xpath);
259
+
260
+        $cssParts = $this->splitCssAndMediaQuery($allCss);
261
+        self::$_media = ''; // reset
262
+
263
+        $cssKey = md5($cssParts['css']);
264
+        if (!isset($this->caches[self::CACHE_KEY_CSS][$cssKey])) {
265
+            // process the CSS file for selectors and definitions
266
+            preg_match_all('/(?:^|[\\s^{}]*)([^{]+){([^}]*)}/mis', $cssParts['css'], $matches, PREG_SET_ORDER);
267
+
268
+            $allSelectors = array();
269
+            foreach ($matches as $key => $selectorString) {
270
+                // if there is a blank definition, skip
271
+                if (!strlen(trim($selectorString[2]))) {
272
+                    continue;
273
+                }
274
+
275
+                // else split by commas and duplicate attributes so we can sort by selector precedence
276
+                $selectors = explode(',', $selectorString[1]);
277
+                foreach ($selectors as $selector) {
278
+                    // don't process pseudo-elements and behavioral (dynamic) pseudo-classes; ONLY allow structural pseudo-classes
279
+                    if (strpos($selector, ':') !== false && !preg_match('/:\\S+\\-(child|type)\\(/i', $selector)) {
280
+                        continue;
281
+                    }
282
+
283
+                    $allSelectors[] = array('selector' => trim($selector),
284
+                                                'attributes' => trim($selectorString[2]),
285
+                                                // keep track of where it appears in the file, since order is important
286
+                                                'line' => $key,
287
+                    );
288
+                }
289
+            }
290
+
291
+            // now sort the selectors by precedence
292
+            usort($allSelectors, array($this,'sortBySelectorPrecedence'));
293
+
294
+            $this->caches[self::CACHE_KEY_CSS][$cssKey] = $allSelectors;
295
+        }
296
+
297
+        foreach ($this->caches[self::CACHE_KEY_CSS][$cssKey] as $value) {
298
+            // query the body for the xpath selector
299
+            $nodesMatchingCssSelectors = $xpath->query($this->translateCssToXpath($value['selector']));
300
+
301
+            /** @var $node \DOMNode */
302
+            foreach ($nodesMatchingCssSelectors as $node) {
303
+                // if it has a style attribute, get it, process it, and append (overwrite) new stuff
304
+                if ($node->hasAttribute('style')) {
305
+                    // break it up into an associative array
306
+                    $oldStyleDeclarations = $this->parseCssDeclarationBlock($node->getAttribute('style'));
307
+                } else {
308
+                    $oldStyleDeclarations = array();
309
+                }
310
+                $newStyleDeclarations = $this->parseCssDeclarationBlock($value['attributes']);
311
+                $node->setAttribute('style', $this->generateStyleStringFromDeclarationsArrays($oldStyleDeclarations, $newStyleDeclarations));
312
+            }
313
+        }
314
+
315
+        // now iterate through the nodes that contained inline styles in the original HTML
316
+        foreach ($this->styleAttributesForNodes as $nodePath => $styleAttributesForNode) {
317
+            $node = $this->visitedNodes[$nodePath];
318
+            $currentStyleAttributes = $this->parseCssDeclarationBlock($node->getAttribute('style'));
319
+            $node->setAttribute('style', $this->generateStyleStringFromDeclarationsArrays($currentStyleAttributes, $styleAttributesForNode));
320
+        }
321
+
322
+        // This removes styles from your email that contain display:none.
323
+        // We need to look for display:none, but we need to do a case-insensitive search. Since DOMDocument only supports XPath 1.0,
324
+        // lower-case() isn't available to us. We've thus far only set attributes to lowercase, not attribute values. Consequently, we need
325
+        // to translate() the letters that would be in 'NONE' ("NOE") to lowercase.
326
+        $nodesWithStyleDisplayNone = $xpath->query('//*[contains(translate(translate(@style," ",""),"NOE","noe"),"display:none")]');
327
+        // The checks on parentNode and is_callable below ensure that if we've deleted the parent node,
328
+        // we don't try to call removeChild on a nonexistent child node
329
+        if ($nodesWithStyleDisplayNone->length > 0) {
330
+            /** @var $node \DOMNode */
331
+            foreach ($nodesWithStyleDisplayNone as $node) {
332
+                if ($node->parentNode && is_callable(array($node->parentNode,'removeChild'))) {
333
+                    $node->parentNode->removeChild($node);
334
+                }
335
+            }
336
+        }
337
+
338
+        $this->copyCssWithMediaToStyleNode($cssParts, $xmlDocument);
339
+
340
+        if ($this->preserveEncoding) {
341
+            if ( function_exists( 'mb_convert_encoding' ) ) {
342
+                return mb_convert_encoding( $xmlDocument->saveHTML(), self::ENCODING, 'HTML-ENTITIES' );
343
+            } else {
344
+                return htmlspecialchars_decode( utf8_encode( html_entity_decode( $xmlDocument->saveHTML(), ENT_COMPAT, self::ENCODING ) ) );
345
+            }
346
+        } else {
347
+            return $xmlDocument->saveHTML();
348
+        }
349
+    }
350
+
351
+    public function strtolower(array $m) {
352
+        return strtolower($m[0]);
353
+    }
354
+
355
+
356
+    /**
357
+     * This method merges old or existing name/value array with new name/value array.
358
+     * and then generates a string of the combined style suitable for placing inline.
359
+     * This becomes the single point for CSS string generation allowing for consistent.
360
+     * CSS output no matter where the CSS originally came from.
361
+     * @param array $oldStyles
362
+     * @param array $newStyles
363
+     * @return string
364
+     */
365
+    private function generateStyleStringFromDeclarationsArrays(array $oldStyles, array $newStyles) {
366
+        $combinedStyles = array_merge($oldStyles, $newStyles);
367
+        $style = '';
368
+        foreach ($combinedStyles as $attributeName => $attributeValue) {
369
+            $style .= (strtolower(trim($attributeName)) . ': ' . trim($attributeValue) . '; ');
370
+        }
371
+        return trim($style);
372
+    }
373
+
374
+
375
+    /**
376
+     * Copies the media part from CSS array parts to $xmlDocument.
377
+     *
378
+     * @param array $cssParts
379
+     * @param DOMDocument $xmlDocument
380
+     */
381
+    public function copyCssWithMediaToStyleNode(array $cssParts, DOMDocument $xmlDocument) {
382
+        if (isset($cssParts['media']) && $cssParts['media'] !== '') {
383
+            $this->addStyleElementToDocument($xmlDocument, $cssParts['media']);
384
+        }
385
+    }
386
+
387
+    /**
388
+     * Returns CSS content.
389
+     *
390
+     * @param DOMXPath $xpath
391
+     * @return string
392
+     */
393
+    private function getCssFromAllStyleNodes(DOMXPath $xpath) {
394
+        $styleNodes = $xpath->query('//style');
395
+
396
+        if ($styleNodes === false) {
397
+            return '';
398
+        }
399
+
400
+        $css = '';
401
+        /** @var $styleNode DOMNode */
402
+        foreach ($styleNodes as $styleNode) {
403
+            $css .= "\n\n" . $styleNode->nodeValue;
404
+            $styleNode->parentNode->removeChild($styleNode);
405
+        }
406
+
407
+        return $css;
408
+    }
409
+
410
+    /**
411
+     * Adds a style element with $css to $document.
412
+     *
413
+     * @param DOMDocument $document
414
+     * @param string $css
415
+     */
416
+    private function addStyleElementToDocument(DOMDocument $document, $css) {
417
+        $styleElement = $document->createElement('style', $css);
418
+        $styleAttribute = $document->createAttribute('type');
419
+        $styleAttribute->value = 'text/css';
420
+        $styleElement->appendChild($styleAttribute);
421
+
422
+        $head = $this->getOrCreateHeadElement($document);
423
+        $head->appendChild($styleElement);
424
+    }
425
+
426
+    /**
427
+     * Returns the existing or creates a new head element in $document.
428
+     *
429
+     * @param DOMDocument $document
430
+     * @return DOMNode the head element
431
+     */
432
+    private function getOrCreateHeadElement(DOMDocument $document) {
433
+        $head = $document->getElementsByTagName('head')->item(0);
434
+
435
+        if ($head === null) {
436
+            $head = $document->createElement('head');
437
+            $html = $document->getElementsByTagName('html')->item(0);
438
+            $html->insertBefore($head, $document->getElementsByTagName('body')->item(0));
439
+        }
440
+
441
+        return $head;
442
+    }
443
+
444
+    /**
445
+     * Splits input CSS code to an array where:
446
+     *
447
+     * - key "css" will be contains clean CSS code.
448
+     * - key "media" will be contains all valuable media queries.
449
+     *
450
+     * Example:
451
+     *
452
+     * The CSS code.
453
+     *
454
+     *   "@import "file.css"; h1 { color:red; } @media { h1 {}} @media tv { h1 {}}"
455
+     *
456
+     * will be parsed into the following array:
457
+     *
458
+     *   "css" => "h1 { color:red; }"
459
+     *   "media" => "@media { h1 {}}"
460
+     *
461
+     * @param string $css
462
+     * @return array
463
+     */
464
+    private function splitCssAndMediaQuery($css) {
465
+        $css = preg_replace_callback( '#@media\\s+(?:only\\s)?(?:[\\s{\(]|screen|all)\\s?[^{]+{.*}\\s*}\\s*#misU', array( $this, '_media_concat' ), $css );
466
+
467
+        // filter the CSS
468
+        $search = array(
469
+            // get rid of css comment code
470
+            '/\\/\\*.*\\*\\//sU',
471
+            // strip out any import directives
472
+            '/^\\s*@import\\s[^;]+;/misU',
473
+            // strip remains media enclosures
474
+            '/^\\s*@media\\s[^{]+{(.*)}\\s*}\\s/misU',
475
+        );
476
+
477
+        $replace = array(
478
+            '',
479
+            '',
480
+            '',
481
+        );
482
+
483
+        // clean CSS before output
484
+        $css = preg_replace($search, $replace, $css);
485
+
486
+        return array('css' => $css, 'media' => self::$_media);
487
+    }
488
+
489
+    private function _media_concat( $matches ) {
490
+        self::$_media .= $matches[0];
491
+    }
492
+
493
+    /**
494
+     * Creates a DOMDocument instance with the current HTML.
495
+     *
496
+     * @return DOMDocument
497
+     */
498
+    private function createXmlDocument() {
499
+        $xmlDocument = new DOMDocument;
500
+        $xmlDocument->encoding = self::ENCODING;
501
+        $xmlDocument->strictErrorChecking = false;
502
+        $xmlDocument->formatOutput = true;
503
+        $libXmlState = libxml_use_internal_errors(true);
504
+        $xmlDocument->loadHTML($this->getUnifiedHtml());
505
+        libxml_clear_errors();
506
+        libxml_use_internal_errors($libXmlState);
507
+        $xmlDocument->normalizeDocument();
508
+
509
+        return $xmlDocument;
510
+    }
511
+
512
+    /**
513
+     * Returns the HTML with the non-ASCII characters converts into HTML entities and the unprocessable HTML tags removed.
514
+     *
515
+     * @return string the unified HTML
516
+     *
517
+     * @throws BadMethodCallException
518
+     */
519
+    private function getUnifiedHtml() {
520
+        if (!empty($this->unprocessableHtmlTags)) {
521
+            $unprocessableHtmlTags = implode('|', $this->unprocessableHtmlTags);
522
+            $bodyWithoutUnprocessableTags = preg_replace('/<\\/?(' . $unprocessableHtmlTags . ')[^>]*>/i', '', $this->html);
523
+        } else {
524
+            $bodyWithoutUnprocessableTags = $this->html;
525
+        }
526
+
527
+        if ( function_exists( 'mb_convert_encoding' ) ) {
528
+            return mb_convert_encoding( $bodyWithoutUnprocessableTags, 'HTML-ENTITIES', self::ENCODING );
529
+        } else {
530
+            return htmlspecialchars_decode( utf8_decode( htmlentities( $bodyWithoutUnprocessableTags, ENT_COMPAT, self::ENCODING, false ) ) );
531
+        }
532
+    }
533
+
534
+    /**
535
+     * @param array $a
536
+     * @param array $b
537
+     *
538
+     * @return integer
539
+     */
540
+    private function sortBySelectorPrecedence(array $a, array $b) {
541
+        $precedenceA = $this->getCssSelectorPrecedence($a['selector']);
542
+        $precedenceB = $this->getCssSelectorPrecedence($b['selector']);
543
+
544
+        // We want these sorted in ascending order so selectors with lesser precedence get processed first and
545
+        // selectors with greater precedence get sorted last.
546
+        // The parenthesis around the -1 are necessary to avoid a PHP_CodeSniffer warning about missing spaces around
547
+        // arithmetic operators.
548
+        // @see http://forge.typo3.org/issues/55605
549
+        $precedenceForEquals = ($a['line'] < $b['line'] ? (-1) : 1);
550
+        $precedenceForNotEquals = ($precedenceA < $precedenceB ? (-1) : 1);
551
+        return ($precedenceA === $precedenceB) ? $precedenceForEquals : $precedenceForNotEquals;
552
+    }
553
+
554
+    /**
555
+     * @param string $selector
556
+     *
557
+     * @return integer
558
+     */
559
+    private function getCssSelectorPrecedence($selector) {
560
+        $selectorKey = md5($selector);
561
+        if (!isset($this->caches[self::CACHE_KEY_SELECTOR][$selectorKey])) {
562
+            $precedence = 0;
563
+            $value = 100;
564
+            // ids: worth 100, classes: worth 10, elements: worth 1
565
+            $search = array('\\#','\\.','');
566
+
567
+            foreach ($search as $s) {
568
+                if (trim($selector == '')) {
569
+                    break;
570
+                }
571
+                $number = 0;
572
+                $selector = preg_replace('/' . $s . '\\w+/', '', $selector, -1, $number);
573
+                $precedence += ($value * $number);
574
+                $value /= 10;
575
+            }
576
+            $this->caches[self::CACHE_KEY_SELECTOR][$selectorKey] = $precedence;
577
+        }
578
+
579
+        return $this->caches[self::CACHE_KEY_SELECTOR][$selectorKey];
580
+    }
581
+
582
+    /**
583
+     * Right now, we support all CSS 1 selectors and most CSS2/3 selectors.
584
+     *
585
+     * @see http://plasmasturm.org/log/444/
586
+     *
587
+     * @param string $paramCssSelector
588
+     *
589
+     * @return string
590
+     */
591
+    private function translateCssToXpath($paramCssSelector) {
592
+        $cssSelector = ' ' . $paramCssSelector . ' ';
593
+        $cssSelector = preg_replace_callback( '/\s+\w+\s+/', array( $this, 'strtolower' ), $cssSelector );
594
+        $cssSelector = trim($cssSelector);
595
+        $xpathKey = md5($cssSelector);
596
+        if (!isset($this->caches[self::CACHE_KEY_XPATH][$xpathKey])) {
597
+            // returns an Xpath selector
598
+            $search = array(
599
+                // Matches any element that is a child of parent.
600
+                '/\\s+>\\s+/',
601
+                // Matches any element that is an adjacent sibling.
602
+                '/\\s+\\+\\s+/',
603
+                // Matches any element that is a descendant of an parent element element.
604
+                '/\\s+/',
605
+                // first-child pseudo-selector
606
+                '/([^\\/]+):first-child/i',
607
+                // last-child pseudo-selector
608
+                '/([^\\/]+):last-child/i',
609
+                // Matches attribute only selector
610
+                '/^\\[(\\w+)\\]/',
611
+                // Matches element with attribute
612
+                '/(\\w)\\[(\\w+)\\]/',
613
+                // Matches element with EXACT attribute
614
+                '/(\\w)\\[(\\w+)\\=[\'"]?(\\w+)[\'"]?\\]/',
615
+            );
616
+            $replace = array(
617
+                '/',
618
+                '/following-sibling::*[1]/self::',
619
+                '//',
620
+                '*[1]/self::\\1',
621
+                '*[last()]/self::\\1',
622
+                '*[@\\1]',
623
+                '\\1[@\\2]',
624
+                '\\1[@\\2="\\3"]',
625
+            );
626
+
627
+            $cssSelector = '//' . preg_replace($search, $replace, $cssSelector);
628
+
629
+            $cssSelector = preg_replace_callback(self::ID_ATTRIBUTE_MATCHER, array($this, 'matchIdAttributes'), $cssSelector);
630
+            $cssSelector = preg_replace_callback(self::CLASS_ATTRIBUTE_MATCHER, array($this, 'matchClassAttributes'), $cssSelector);
631
+
632
+            // Advanced selectors are going to require a bit more advanced emogrification.
633
+            // When we required PHP 5.3, we could do this with closures.
634
+            $cssSelector = preg_replace_callback(
635
+                '/([^\\/]+):nth-child\\(\s*(odd|even|[+\-]?\\d|[+\\-]?\\d?n(\\s*[+\\-]\\s*\\d)?)\\s*\\)/i',
636
+                array($this, 'translateNthChild'), $cssSelector
637
+            );
638
+            $cssSelector = preg_replace_callback(
639
+                '/([^\\/]+):nth-of-type\\(\s*(odd|even|[+\-]?\\d|[+\\-]?\\d?n(\\s*[+\\-]\\s*\\d)?)\\s*\\)/i',
640
+                array($this, 'translateNthOfType'), $cssSelector
641
+            );
642
+
643
+            $this->caches[self::CACHE_KEY_SELECTOR][$xpathKey] = $cssSelector;
644
+        }
645
+        return $this->caches[self::CACHE_KEY_SELECTOR][$xpathKey];
646
+    }
647
+
648
+    /**
649
+     * @param array $match
650
+     *
651
+     * @return string
652
+     */
653
+    private function matchIdAttributes(array $match) {
654
+        return (strlen($match[1]) ? $match[1] : '*') . '[@id="' . $match[2] . '"]';
655
+    }
656
+
657
+    /**
658
+     * @param array $match
659
+     *
660
+     * @return string
661
+     */
662
+    private function matchClassAttributes(array $match) {
663
+        return (strlen($match[1]) ? $match[1] : '*') . '[contains(concat(" ",@class," "),concat(" ","' .
664
+            implode(
665
+                '"," "))][contains(concat(" ",@class," "),concat(" ","',
666
+                explode('.', substr($match[2], 1))
667
+            ) . '"," "))]';
668
+    }
669
+
670
+    /**
671
+     * @param array $match
672
+     *
673
+     * @return string
674
+     */
675
+    private function translateNthChild(array $match) {
676
+        $result = $this->parseNth($match);
677
+
678
+        if (isset($result[self::MULTIPLIER])) {
679
+            if ($result[self::MULTIPLIER] < 0) {
680
+                $result[self::MULTIPLIER] = abs($result[self::MULTIPLIER]);
681
+                return sprintf('*[(last() - position()) mod %u = %u]/self::%s', $result[self::MULTIPLIER], $result[self::INDEX], $match[1]);
682
+            } else {
683
+                return sprintf('*[position() mod %u = %u]/self::%s', $result[self::MULTIPLIER], $result[self::INDEX], $match[1]);
684
+            }
685
+        } else {
686
+            return sprintf('*[%u]/self::%s', $result[self::INDEX], $match[1]);
687
+        }
688
+    }
689
+
690
+    /**
691
+     * @param array $match
692
+     *
693
+     * @return string
694
+     */
695
+    private function translateNthOfType(array $match) {
696
+        $result = $this->parseNth($match);
697
+
698
+        if (isset($result[self::MULTIPLIER])) {
699
+            if ($result[self::MULTIPLIER] < 0) {
700
+                $result[self::MULTIPLIER] = abs($result[self::MULTIPLIER]);
701
+                return sprintf('%s[(last() - position()) mod %u = %u]', $match[1], $result[self::MULTIPLIER], $result[self::INDEX]);
702
+            } else {
703
+                return sprintf('%s[position() mod %u = %u]', $match[1], $result[self::MULTIPLIER], $result[self::INDEX]);
704
+            }
705
+        } else {
706
+            return sprintf('%s[%u]', $match[1], $result[self::INDEX]);
707
+        }
708
+    }
709
+
710
+    /**
711
+     * @param array $match
712
+     *
713
+     * @return array
714
+     */
715
+    private function parseNth(array $match) {
716
+        if (in_array(strtolower($match[2]), array('even','odd'))) {
717
+            $index = strtolower($match[2]) == 'even' ? 0 : 1;
718
+            return array(self::MULTIPLIER => 2, self::INDEX => $index);
719
+        } elseif (stripos($match[2], 'n') === false) {
720
+            // if there is a multiplier
721
+            $index = intval(str_replace(' ', '', $match[2]));
722
+            return array(self::INDEX => $index);
723
+        } else {
724
+            if (isset($match[3])) {
725
+                $multipleTerm = str_replace($match[3], '', $match[2]);
726
+                $index = intval(str_replace(' ', '', $match[3]));
727
+            } else {
728
+                $multipleTerm = $match[2];
729
+                $index = 0;
730
+            }
731
+
732
+            $multiplier = str_ireplace('n', '', $multipleTerm);
733
+
734
+            if (!strlen($multiplier)) {
735
+                $multiplier = 1;
736
+            } elseif ($multiplier == 0) {
737
+                return array(self::INDEX => $index);
738
+            } else {
739
+                $multiplier = intval($multiplier);
740
+            }
741
+
742
+            while ($index < 0) {
743
+                $index += abs($multiplier);
744
+            }
745
+
746
+            return array(self::MULTIPLIER => $multiplier, self::INDEX => $index);
747
+        }
748
+    }
749
+
750
+    /**
751
+     * Parses a CSS declaration block into property name/value pairs.
752
+     *
753
+     * Example:
754
+     *
755
+     * The declaration block.
756
+     *
757
+     *   "color: #000; font-weight: bold;".
758
+     *
759
+     * will be parsed into the following array:
760
+     *
761
+     *   "color" => "#000"
762
+     *   "font-weight" => "bold"
763
+     *
764
+     * @param string $cssDeclarationBlock the CSS declaration block without the curly braces, may be empty
765
+     *
766
+     * @return array the CSS declarations with the property names as array keys and the property values as array values
767
+     */
768
+    private function parseCssDeclarationBlock($cssDeclarationBlock) {
769
+        if (isset($this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock])) {
770
+            return $this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock];
771
+        }
772
+
773
+        $properties = array();
774
+        $declarations = explode(';', $cssDeclarationBlock);
775
+        foreach ($declarations as $declaration) {
776
+            $matches = array();
777
+            if (!preg_match('/ *([A-Za-z\\-]+) *: *([^;]+) */', $declaration, $matches)) {
778
+                continue;
779
+            }
780
+            $propertyName = strtolower($matches[1]);
781
+            $propertyValue = $matches[2];
782
+            $properties[$propertyName] = $propertyValue;
783
+        }
784
+        $this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock] = $properties;
785
+
786
+        return $properties;
787
+    }
788 788
 }
Please login to merge, or discard this patch.
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -238,7 +238,7 @@  discard block
 block discarded – undo
238 238
 		if ($nodesWithStyleAttributes !== false) {
239 239
 			/** @var $nodeWithStyleAttribute DOMNode */
240 240
 			foreach ($nodesWithStyleAttributes as $node) {
241
-				$normalizedOriginalStyle = preg_replace_callback( '/[A-z\\-]+(?=\\:)/S', array( $this, 'strtolower' ), $node->getAttribute('style') );
241
+				$normalizedOriginalStyle = preg_replace_callback('/[A-z\\-]+(?=\\:)/S', array($this, 'strtolower'), $node->getAttribute('style'));
242 242
 
243 243
 				// in order to not overwrite existing style attributes in the HTML, we have to save the original HTML styles
244 244
 				$nodePath = $node->getNodePath();
@@ -289,7 +289,7 @@  discard block
 block discarded – undo
289 289
 			}
290 290
 
291 291
 			// now sort the selectors by precedence
292
-			usort($allSelectors, array($this,'sortBySelectorPrecedence'));
292
+			usort($allSelectors, array($this, 'sortBySelectorPrecedence'));
293 293
 
294 294
 			$this->caches[self::CACHE_KEY_CSS][$cssKey] = $allSelectors;
295 295
 		}
@@ -329,7 +329,7 @@  discard block
 block discarded – undo
329 329
 		if ($nodesWithStyleDisplayNone->length > 0) {
330 330
 			/** @var $node \DOMNode */
331 331
 			foreach ($nodesWithStyleDisplayNone as $node) {
332
-				if ($node->parentNode && is_callable(array($node->parentNode,'removeChild'))) {
332
+				if ($node->parentNode && is_callable(array($node->parentNode, 'removeChild'))) {
333 333
 					$node->parentNode->removeChild($node);
334 334
 				}
335 335
 			}
@@ -338,10 +338,10 @@  discard block
 block discarded – undo
338 338
 		$this->copyCssWithMediaToStyleNode($cssParts, $xmlDocument);
339 339
 
340 340
 		if ($this->preserveEncoding) {
341
-			if ( function_exists( 'mb_convert_encoding' ) ) {
342
-				return mb_convert_encoding( $xmlDocument->saveHTML(), self::ENCODING, 'HTML-ENTITIES' );
341
+			if (function_exists('mb_convert_encoding')) {
342
+				return mb_convert_encoding($xmlDocument->saveHTML(), self::ENCODING, 'HTML-ENTITIES');
343 343
 			} else {
344
-				return htmlspecialchars_decode( utf8_encode( html_entity_decode( $xmlDocument->saveHTML(), ENT_COMPAT, self::ENCODING ) ) );
344
+				return htmlspecialchars_decode(utf8_encode(html_entity_decode($xmlDocument->saveHTML(), ENT_COMPAT, self::ENCODING)));
345 345
 			}
346 346
 		} else {
347 347
 			return $xmlDocument->saveHTML();
@@ -462,7 +462,7 @@  discard block
 block discarded – undo
462 462
 	 * @return array
463 463
 	 */
464 464
 	private function splitCssAndMediaQuery($css) {
465
-		$css = preg_replace_callback( '#@media\\s+(?:only\\s)?(?:[\\s{\(]|screen|all)\\s?[^{]+{.*}\\s*}\\s*#misU', array( $this, '_media_concat' ), $css );
465
+		$css = preg_replace_callback('#@media\\s+(?:only\\s)?(?:[\\s{\(]|screen|all)\\s?[^{]+{.*}\\s*}\\s*#misU', array($this, '_media_concat'), $css);
466 466
 
467 467
 		// filter the CSS
468 468
 		$search = array(
@@ -486,7 +486,7 @@  discard block
 block discarded – undo
486 486
 		return array('css' => $css, 'media' => self::$_media);
487 487
 	}
488 488
 
489
-	private function _media_concat( $matches ) {
489
+	private function _media_concat($matches) {
490 490
 		self::$_media .= $matches[0];
491 491
 	}
492 492
 
@@ -524,10 +524,10 @@  discard block
 block discarded – undo
524 524
 			$bodyWithoutUnprocessableTags = $this->html;
525 525
 		}
526 526
 
527
-		if ( function_exists( 'mb_convert_encoding' ) ) {
528
-			return mb_convert_encoding( $bodyWithoutUnprocessableTags, 'HTML-ENTITIES', self::ENCODING );
527
+		if (function_exists('mb_convert_encoding')) {
528
+			return mb_convert_encoding($bodyWithoutUnprocessableTags, 'HTML-ENTITIES', self::ENCODING);
529 529
 		} else {
530
-			return htmlspecialchars_decode( utf8_decode( htmlentities( $bodyWithoutUnprocessableTags, ENT_COMPAT, self::ENCODING, false ) ) );
530
+			return htmlspecialchars_decode(utf8_decode(htmlentities($bodyWithoutUnprocessableTags, ENT_COMPAT, self::ENCODING, false)));
531 531
 		}
532 532
 	}
533 533
 
@@ -562,7 +562,7 @@  discard block
 block discarded – undo
562 562
 			$precedence = 0;
563 563
 			$value = 100;
564 564
 			// ids: worth 100, classes: worth 10, elements: worth 1
565
-			$search = array('\\#','\\.','');
565
+			$search = array('\\#', '\\.', '');
566 566
 
567 567
 			foreach ($search as $s) {
568 568
 				if (trim($selector == '')) {
@@ -590,7 +590,7 @@  discard block
 block discarded – undo
590 590
 	 */
591 591
 	private function translateCssToXpath($paramCssSelector) {
592 592
 		$cssSelector = ' ' . $paramCssSelector . ' ';
593
-		$cssSelector = preg_replace_callback( '/\s+\w+\s+/', array( $this, 'strtolower' ), $cssSelector );
593
+		$cssSelector = preg_replace_callback('/\s+\w+\s+/', array($this, 'strtolower'), $cssSelector);
594 594
 		$cssSelector = trim($cssSelector);
595 595
 		$xpathKey = md5($cssSelector);
596 596
 		if (!isset($this->caches[self::CACHE_KEY_XPATH][$xpathKey])) {
@@ -713,7 +713,7 @@  discard block
 block discarded – undo
713 713
 	 * @return array
714 714
 	 */
715 715
 	private function parseNth(array $match) {
716
-		if (in_array(strtolower($match[2]), array('even','odd'))) {
716
+		if (in_array(strtolower($match[2]), array('even', 'odd'))) {
717 717
 			$index = strtolower($match[2]) == 'even' ? 0 : 1;
718 718
 			return array(self::MULTIPLIER => 2, self::INDEX => $index);
719 719
 		} elseif (stripos($match[2], 'n') === false) {
Please login to merge, or discard this patch.
includes/libraries/wp-session/wp-cli.php 2 patches
Indentation   +145 added lines, -145 removed lines patch added patch discarded remove patch
@@ -8,151 +8,151 @@
 block discarded – undo
8 8
  */
9 9
 class WP_Session_Command extends \WP_CLI_Command {
10 10
 
11
-	/**
12
-	 * Count the total number of sessions stored in the database.
13
-	 *
14
-	 *
15
-	 * ## EXAMPLES
16
-	 *
17
-	 *      wp session count
18
-	 *
19
-	 * @global wpdb $wpdb
20
-	 *
21
-	 * @param array $args
22
-	 * @param array $assoc_args
23
-	 */
24
-	public function count( $args, $assoc_args ) {
25
-		$sessions = WP_Session_Utils::count_sessions();
26
-
27
-		\WP_CLI::line( sprintf( '%d sessions currently exist.', absint( $sessions ) ) );
28
-	}
29
-
30
-	/**
31
-	 * Delete sessions from the database.
32
-	 *
33
-	 * ## OPTIONS
34
-	 *
35
-	 * [--all]
36
-	 * : Flag whether or not to purge all sessions from the database.
37
-	 *
38
-	 * [--batch=<batch>]
39
-	 * : Set the batch size for deleting old sessions
40
-	 *
41
-	 * [--limit=<limit>]
42
-	 * : Delete just this number of old sessions
43
-	 *
44
-	 * ## EXAMPLES
45
-	 *
46
-	 *      wp session delete
47
-	 *      wp session delete [--batch=<batch>]
48
-	 *      wp session delete [--limit=<limit>]
49
-	 *      wp session delete [--all]
50
-	 *
51
-	 * @synopsis [--all] [--batch=<batch>] [--limit=<limit>]
52
-	 *
53
-	 * @param array $args
54
-	 * @param array $assoc_args
55
-	 */
56
-	public function delete( $args, $assoc_args ) {
57
-		if ( isset( $assoc_args['limit'] ) ) {
58
-			$limit = absint( $assoc_args['limit'] );
59
-
60
-			$count = WP_Session_Utils::delete_old_sessions( $limit );
61
-
62
-			if ( $count > 0 ) {
63
-				\WP_CLI::line( sprintf( 'Deleted %d sessions.', $count ) );
64
-			}
65
-
66
-			// Clear memory
67
-			self::free_up_memory();
68
-			return;
69
-		}
70
-
71
-		// Determine if we're deleting all sessions or just a subset.
72
-		$all = isset( $assoc_args['all'] );
73
-
74
-		/**
75
-		 * Determine the size of each batch for deletion.
76
-		 *
77
-		 * @param int
78
-		 */
79
-		$batch = isset( $assoc_args['batch'] ) ? absint( $assoc_args['batch'] ) : apply_filters( 'wp_session_delete_batch_size', 1000 );
80
-
81
-		switch ( $all ) {
82
-			case true:
83
-				$count = WP_Session_Utils::delete_all_sessions();
84
-
85
-				\WP_CLI::line( sprintf( 'Deleted all %d sessions.', $count ) );
86
-				break;
87
-			case false:
88
-				do {
89
-					$count = WP_Session_Utils::delete_old_sessions( $batch );
90
-
91
-					if ( $count > 0 ) {
92
-						\WP_CLI::line( sprintf( 'Deleted %d sessions.', $count ) );
93
-					}
94
-
95
-					// Clear memory
96
-					self::free_up_memory();
97
-				} while ( $count > 0 );
98
-				break;
99
-		}
100
-	}
101
-
102
-	/**
103
-	 * Generate a number of dummy sessions for testing purposes.
104
-	 *
105
-	 * ## OPTIONS
106
-	 *
107
-	 * <count>
108
-	 * : Number of sessions to create.
109
-	 *
110
-	 * [--expires=<date>]
111
-	 * : Optional expiration time tagged for each session. Will use WordPress' local time.
112
-	 *
113
-	 * ## EXAMPLES
114
-	 *
115
-	 *      wp session generate 5000
116
-	 *      wp session generate 5000 --expires="2014-11-09T08:00"
117
-	 *
118
-	 * @synopsis <count> [--expires=<date>]
119
-	 *
120
-	 * @param array $args
121
-	 * @param array $assoc_args
122
-	 */
123
-	public function generate( $args, $assoc_args ) {
124
-		$count = absint( $args[0] );
125
-		$date  = isset( $assoc_args['expires'] ) ? $assoc_args['expires'] : null;
126
-
127
-		$notify = \WP_CLI\Utils\make_progress_bar( 'Generating sessions', $count );
128
-
129
-		for ( $i = 0; $i < $count; $i ++ ) {
130
-			WP_Session_Utils::create_dummy_session( $date );
131
-			$notify->tick();
132
-		}
133
-
134
-		$notify->finish();
135
-	}
136
-
137
-	/**
138
-	 * Free up memory
139
-	 *
140
-	 * @global WP_Object_Cache $wp_object_cache
141
-	 * @global wpdb            $wpdb
142
-	 */
143
-	private function free_up_memory() {
144
-		global $wp_object_cache, $wpdb;
145
-		$wpdb->queries = array();
146
-
147
-		if ( ! is_object( $wp_object_cache ) ) {
148
-			return;
149
-		}
150
-
151
-		$wp_object_cache->group_ops      = array();
152
-		$wp_object_cache->stats          = array();
153
-		$wp_object_cache->memcache_debug = array();
154
-		$wp_object_cache->cache          = array();
155
-	}
11
+    /**
12
+     * Count the total number of sessions stored in the database.
13
+     *
14
+     *
15
+     * ## EXAMPLES
16
+     *
17
+     *      wp session count
18
+     *
19
+     * @global wpdb $wpdb
20
+     *
21
+     * @param array $args
22
+     * @param array $assoc_args
23
+     */
24
+    public function count( $args, $assoc_args ) {
25
+        $sessions = WP_Session_Utils::count_sessions();
26
+
27
+        \WP_CLI::line( sprintf( '%d sessions currently exist.', absint( $sessions ) ) );
28
+    }
29
+
30
+    /**
31
+     * Delete sessions from the database.
32
+     *
33
+     * ## OPTIONS
34
+     *
35
+     * [--all]
36
+     * : Flag whether or not to purge all sessions from the database.
37
+     *
38
+     * [--batch=<batch>]
39
+     * : Set the batch size for deleting old sessions
40
+     *
41
+     * [--limit=<limit>]
42
+     * : Delete just this number of old sessions
43
+     *
44
+     * ## EXAMPLES
45
+     *
46
+     *      wp session delete
47
+     *      wp session delete [--batch=<batch>]
48
+     *      wp session delete [--limit=<limit>]
49
+     *      wp session delete [--all]
50
+     *
51
+     * @synopsis [--all] [--batch=<batch>] [--limit=<limit>]
52
+     *
53
+     * @param array $args
54
+     * @param array $assoc_args
55
+     */
56
+    public function delete( $args, $assoc_args ) {
57
+        if ( isset( $assoc_args['limit'] ) ) {
58
+            $limit = absint( $assoc_args['limit'] );
59
+
60
+            $count = WP_Session_Utils::delete_old_sessions( $limit );
61
+
62
+            if ( $count > 0 ) {
63
+                \WP_CLI::line( sprintf( 'Deleted %d sessions.', $count ) );
64
+            }
65
+
66
+            // Clear memory
67
+            self::free_up_memory();
68
+            return;
69
+        }
70
+
71
+        // Determine if we're deleting all sessions or just a subset.
72
+        $all = isset( $assoc_args['all'] );
73
+
74
+        /**
75
+         * Determine the size of each batch for deletion.
76
+         *
77
+         * @param int
78
+         */
79
+        $batch = isset( $assoc_args['batch'] ) ? absint( $assoc_args['batch'] ) : apply_filters( 'wp_session_delete_batch_size', 1000 );
80
+
81
+        switch ( $all ) {
82
+            case true:
83
+                $count = WP_Session_Utils::delete_all_sessions();
84
+
85
+                \WP_CLI::line( sprintf( 'Deleted all %d sessions.', $count ) );
86
+                break;
87
+            case false:
88
+                do {
89
+                    $count = WP_Session_Utils::delete_old_sessions( $batch );
90
+
91
+                    if ( $count > 0 ) {
92
+                        \WP_CLI::line( sprintf( 'Deleted %d sessions.', $count ) );
93
+                    }
94
+
95
+                    // Clear memory
96
+                    self::free_up_memory();
97
+                } while ( $count > 0 );
98
+                break;
99
+        }
100
+    }
101
+
102
+    /**
103
+     * Generate a number of dummy sessions for testing purposes.
104
+     *
105
+     * ## OPTIONS
106
+     *
107
+     * <count>
108
+     * : Number of sessions to create.
109
+     *
110
+     * [--expires=<date>]
111
+     * : Optional expiration time tagged for each session. Will use WordPress' local time.
112
+     *
113
+     * ## EXAMPLES
114
+     *
115
+     *      wp session generate 5000
116
+     *      wp session generate 5000 --expires="2014-11-09T08:00"
117
+     *
118
+     * @synopsis <count> [--expires=<date>]
119
+     *
120
+     * @param array $args
121
+     * @param array $assoc_args
122
+     */
123
+    public function generate( $args, $assoc_args ) {
124
+        $count = absint( $args[0] );
125
+        $date  = isset( $assoc_args['expires'] ) ? $assoc_args['expires'] : null;
126
+
127
+        $notify = \WP_CLI\Utils\make_progress_bar( 'Generating sessions', $count );
128
+
129
+        for ( $i = 0; $i < $count; $i ++ ) {
130
+            WP_Session_Utils::create_dummy_session( $date );
131
+            $notify->tick();
132
+        }
133
+
134
+        $notify->finish();
135
+    }
136
+
137
+    /**
138
+     * Free up memory
139
+     *
140
+     * @global WP_Object_Cache $wp_object_cache
141
+     * @global wpdb            $wpdb
142
+     */
143
+    private function free_up_memory() {
144
+        global $wp_object_cache, $wpdb;
145
+        $wpdb->queries = array();
146
+
147
+        if ( ! is_object( $wp_object_cache ) ) {
148
+            return;
149
+        }
150
+
151
+        $wp_object_cache->group_ops      = array();
152
+        $wp_object_cache->stats          = array();
153
+        $wp_object_cache->memcache_debug = array();
154
+        $wp_object_cache->cache          = array();
155
+    }
156 156
 }
157 157
 
158 158
 \WP_CLI::add_command( 'session', 'WP_Session_Command' );
159 159
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -21,10 +21,10 @@  discard block
 block discarded – undo
21 21
 	 * @param array $args
22 22
 	 * @param array $assoc_args
23 23
 	 */
24
-	public function count( $args, $assoc_args ) {
24
+	public function count($args, $assoc_args) {
25 25
 		$sessions = WP_Session_Utils::count_sessions();
26 26
 
27
-		\WP_CLI::line( sprintf( '%d sessions currently exist.', absint( $sessions ) ) );
27
+		\WP_CLI::line(sprintf('%d sessions currently exist.', absint($sessions)));
28 28
 	}
29 29
 
30 30
 	/**
@@ -53,14 +53,14 @@  discard block
 block discarded – undo
53 53
 	 * @param array $args
54 54
 	 * @param array $assoc_args
55 55
 	 */
56
-	public function delete( $args, $assoc_args ) {
57
-		if ( isset( $assoc_args['limit'] ) ) {
58
-			$limit = absint( $assoc_args['limit'] );
56
+	public function delete($args, $assoc_args) {
57
+		if (isset($assoc_args['limit'])) {
58
+			$limit = absint($assoc_args['limit']);
59 59
 
60
-			$count = WP_Session_Utils::delete_old_sessions( $limit );
60
+			$count = WP_Session_Utils::delete_old_sessions($limit);
61 61
 
62
-			if ( $count > 0 ) {
63
-				\WP_CLI::line( sprintf( 'Deleted %d sessions.', $count ) );
62
+			if ($count > 0) {
63
+				\WP_CLI::line(sprintf('Deleted %d sessions.', $count));
64 64
 			}
65 65
 
66 66
 			// Clear memory
@@ -69,32 +69,32 @@  discard block
 block discarded – undo
69 69
 		}
70 70
 
71 71
 		// Determine if we're deleting all sessions or just a subset.
72
-		$all = isset( $assoc_args['all'] );
72
+		$all = isset($assoc_args['all']);
73 73
 
74 74
 		/**
75 75
 		 * Determine the size of each batch for deletion.
76 76
 		 *
77 77
 		 * @param int
78 78
 		 */
79
-		$batch = isset( $assoc_args['batch'] ) ? absint( $assoc_args['batch'] ) : apply_filters( 'wp_session_delete_batch_size', 1000 );
79
+		$batch = isset($assoc_args['batch']) ? absint($assoc_args['batch']) : apply_filters('wp_session_delete_batch_size', 1000);
80 80
 
81
-		switch ( $all ) {
81
+		switch ($all) {
82 82
 			case true:
83 83
 				$count = WP_Session_Utils::delete_all_sessions();
84 84
 
85
-				\WP_CLI::line( sprintf( 'Deleted all %d sessions.', $count ) );
85
+				\WP_CLI::line(sprintf('Deleted all %d sessions.', $count));
86 86
 				break;
87 87
 			case false:
88 88
 				do {
89
-					$count = WP_Session_Utils::delete_old_sessions( $batch );
89
+					$count = WP_Session_Utils::delete_old_sessions($batch);
90 90
 
91
-					if ( $count > 0 ) {
92
-						\WP_CLI::line( sprintf( 'Deleted %d sessions.', $count ) );
91
+					if ($count > 0) {
92
+						\WP_CLI::line(sprintf('Deleted %d sessions.', $count));
93 93
 					}
94 94
 
95 95
 					// Clear memory
96 96
 					self::free_up_memory();
97
-				} while ( $count > 0 );
97
+				} while ($count > 0);
98 98
 				break;
99 99
 		}
100 100
 	}
@@ -120,14 +120,14 @@  discard block
 block discarded – undo
120 120
 	 * @param array $args
121 121
 	 * @param array $assoc_args
122 122
 	 */
123
-	public function generate( $args, $assoc_args ) {
124
-		$count = absint( $args[0] );
125
-		$date  = isset( $assoc_args['expires'] ) ? $assoc_args['expires'] : null;
123
+	public function generate($args, $assoc_args) {
124
+		$count = absint($args[0]);
125
+		$date  = isset($assoc_args['expires']) ? $assoc_args['expires'] : null;
126 126
 
127
-		$notify = \WP_CLI\Utils\make_progress_bar( 'Generating sessions', $count );
127
+		$notify = \WP_CLI\Utils\make_progress_bar('Generating sessions', $count);
128 128
 
129
-		for ( $i = 0; $i < $count; $i ++ ) {
130
-			WP_Session_Utils::create_dummy_session( $date );
129
+		for ($i = 0; $i < $count; $i++) {
130
+			WP_Session_Utils::create_dummy_session($date);
131 131
 			$notify->tick();
132 132
 		}
133 133
 
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
 		global $wp_object_cache, $wpdb;
145 145
 		$wpdb->queries = array();
146 146
 
147
-		if ( ! is_object( $wp_object_cache ) ) {
147
+		if (!is_object($wp_object_cache)) {
148 148
 			return;
149 149
 		}
150 150
 
@@ -155,4 +155,4 @@  discard block
 block discarded – undo
155 155
 	}
156 156
 }
157 157
 
158
-\WP_CLI::add_command( 'session', 'WP_Session_Command' );
159 158
\ No newline at end of file
159
+\WP_CLI::add_command('session', 'WP_Session_Command');
160 160
\ No newline at end of file
Please login to merge, or discard this patch.