Passed
Pull Request — master (#126)
by Kiran
07:22 queued 03:36
created
includes/wpinv-template-functions.php 4 patches
Braces   +21 added lines, -15 removed lines patch added patch discarded remove patch
@@ -173,8 +173,9 @@  discard block
 block discarded – undo
173 173
 
174 174
 	// Setup possible parts
175 175
 	$templates = array();
176
-	if ( isset( $name ) )
177
-		$templates[] = $slug . '-' . $name . '.php';
176
+	if ( isset( $name ) ) {
177
+			$templates[] = $slug . '-' . $name . '.php';
178
+	}
178 179
 	$templates[] = $slug . '.php';
179 180
 
180 181
 	// Allow template parts to be filtered
@@ -192,8 +193,9 @@  discard block
 block discarded – undo
192 193
 	foreach ( (array)$template_names as $template_name ) {
193 194
 
194 195
 		// Continue if template is empty
195
-		if ( empty( $template_name ) )
196
-			continue;
196
+		if ( empty( $template_name ) ) {
197
+					continue;
198
+		}
197 199
 
198 200
 		// Trim off any slashes from the template name
199 201
 		$template_name = ltrim( $template_name, '/' );
@@ -212,8 +214,9 @@  discard block
 block discarded – undo
212 214
 		}
213 215
 	}
214 216
 
215
-	if ( ( true == $load ) && ! empty( $located ) )
216
-		load_template( $located, $require_once );
217
+	if ( ( true == $load ) && ! empty( $located ) ) {
218
+			load_template( $located, $require_once );
219
+	}
217 220
 
218 221
 	return $located;
219 222
 }
@@ -289,8 +292,9 @@  discard block
 block discarded – undo
289 292
 function wpinv_html_dropdown( $name = 'wpinv_discounts', $selected = 0, $status = '' ) {
290 293
     $args = array( 'nopaging' => true );
291 294
 
292
-    if ( ! empty( $status ) )
293
-        $args['post_status'] = $status;
295
+    if ( ! empty( $status ) ) {
296
+            $args['post_status'] = $status;
297
+    }
294 298
 
295 299
     $discounts = wpinv_get_discounts( $args );
296 300
     $options   = array();
@@ -1457,17 +1461,19 @@  discard block
 block discarded – undo
1457 1461
 add_action( 'wpinv_cart_empty', 'wpinv_empty_checkout_cart' );
1458 1462
 
1459 1463
 function wpinv_save_cart_button() {
1460
-    if ( wpinv_is_cart_saving_disabled() )
1461
-        return;
1462
-?>
1464
+    if ( wpinv_is_cart_saving_disabled() ) {
1465
+            return;
1466
+    }
1467
+    ?>
1463 1468
     <a class="wpinv-cart-saving-button wpinv-submit button" id="wpinv-save-cart-button" href="<?php echo esc_url( add_query_arg( 'wpi_action', 'save_cart' ) ); ?>"><?php _e( 'Save Cart', 'invoicing' ); ?></a>
1464 1469
 <?php
1465 1470
 }
1466 1471
 
1467 1472
 function wpinv_update_cart_button() {
1468
-    if ( !wpinv_item_quantities_enabled() )
1469
-        return;
1470
-?>
1473
+    if ( !wpinv_item_quantities_enabled() ) {
1474
+            return;
1475
+    }
1476
+    ?>
1471 1477
     <input type="submit" name="wpinv_update_cart_submit" class="wpinv-submit wpinv-no-js button" value="<?php _e( 'Update Cart', 'invoicing' ); ?>"/>
1472 1478
     <input type="hidden" name="wpi_action" value="update_cart"/>
1473 1479
 <?php
@@ -1606,7 +1612,7 @@  discard block
 block discarded – undo
1606 1612
 		                    </div>
1607 1613
 		                    <?php
1608 1614
 	                    }
1609
-                    }else{
1615
+                    } else{
1610 1616
 	                    echo '<div class="alert alert-warning">'. __('No payment gateway active','invoicing') .'</div>';
1611 1617
                     }
1612 1618
 
Please login to merge, or discard this patch.
Doc Comments   +9 added lines patch added patch discarded remove patch
@@ -140,6 +140,9 @@  discard block
 block discarded – undo
140 140
 	do_action( 'wpinv_after_template_part', $template_name, $template_path, $located, $args );
141 141
 }
142 142
 
143
+/**
144
+ * @param string $template_name
145
+ */
143 146
 function wpinv_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
144 147
 	ob_start();
145 148
 	wpinv_get_template( $template_name, $args, $template_path, $default_path );
@@ -172,6 +175,9 @@  discard block
 block discarded – undo
172 175
     return apply_filters( 'wpinv_locate_template', $template, $template_name, $template_path );
173 176
 }
174 177
 
178
+/**
179
+ * @param string $slug
180
+ */
175 181
 function wpinv_get_template_part( $slug, $name = null, $load = true ) {
176 182
 	do_action( 'get_template_part_' . $slug, $slug, $name );
177 183
 
@@ -871,6 +877,9 @@  discard block
 block discarded – undo
871 877
     return apply_filters( 'wpinv_get_watermark', $output, $id );
872 878
 }
873 879
 
880
+/**
881
+ * @param integer $id
882
+ */
874 883
 function wpinv_get_watermark( $id ) {
875 884
     if ( !$id > 0 ) {
876 885
         return NULL;
Please login to merge, or discard this patch.
Indentation   +97 added lines, -97 removed lines patch added patch discarded remove patch
@@ -103,29 +103,29 @@  discard block
 block discarded – undo
103 103
 
104 104
 function wpinv_get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
105 105
     if ( ! empty( $args ) && is_array( $args ) ) {
106
-		extract( $args );
107
-	}
106
+        extract( $args );
107
+    }
108 108
 
109
-	$located = wpinv_locate_template( $template_name, $template_path, $default_path );
110
-	// Allow 3rd party plugin filter template file from their plugin.
111
-	$located = apply_filters( 'wpinv_get_template', $located, $template_name, $args, $template_path, $default_path );
109
+    $located = wpinv_locate_template( $template_name, $template_path, $default_path );
110
+    // Allow 3rd party plugin filter template file from their plugin.
111
+    $located = apply_filters( 'wpinv_get_template', $located, $template_name, $args, $template_path, $default_path );
112 112
 
113
-	if ( ! file_exists( $located ) ) {
113
+    if ( ! file_exists( $located ) ) {
114 114
         _doing_it_wrong( __FUNCTION__, sprintf( '<code>%s</code> does not exist.', $located ), '2.1' );
115
-		return;
116
-	}
115
+        return;
116
+    }
117 117
 
118
-	do_action( 'wpinv_before_template_part', $template_name, $template_path, $located, $args );
118
+    do_action( 'wpinv_before_template_part', $template_name, $template_path, $located, $args );
119 119
 
120
-	include( $located );
120
+    include( $located );
121 121
 
122
-	do_action( 'wpinv_after_template_part', $template_name, $template_path, $located, $args );
122
+    do_action( 'wpinv_after_template_part', $template_name, $template_path, $located, $args );
123 123
 }
124 124
 
125 125
 function wpinv_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
126
-	ob_start();
127
-	wpinv_get_template( $template_name, $args, $template_path, $default_path );
128
-	return ob_get_clean();
126
+    ob_start();
127
+    wpinv_get_template( $template_name, $args, $template_path, $default_path );
128
+    return ob_get_clean();
129 129
 }
130 130
 
131 131
 function wpinv_locate_template( $template_name, $template_path = '', $default_path = '' ) {
@@ -155,120 +155,120 @@  discard block
 block discarded – undo
155 155
 }
156 156
 
157 157
 function wpinv_get_template_part( $slug, $name = null, $load = true ) {
158
-	do_action( 'get_template_part_' . $slug, $slug, $name );
158
+    do_action( 'get_template_part_' . $slug, $slug, $name );
159 159
 
160
-	// Setup possible parts
161
-	$templates = array();
162
-	if ( isset( $name ) )
163
-		$templates[] = $slug . '-' . $name . '.php';
164
-	$templates[] = $slug . '.php';
160
+    // Setup possible parts
161
+    $templates = array();
162
+    if ( isset( $name ) )
163
+        $templates[] = $slug . '-' . $name . '.php';
164
+    $templates[] = $slug . '.php';
165 165
 
166
-	// Allow template parts to be filtered
167
-	$templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name );
166
+    // Allow template parts to be filtered
167
+    $templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name );
168 168
 
169
-	// Return the part that is found
170
-	return wpinv_locate_tmpl( $templates, $load, false );
169
+    // Return the part that is found
170
+    return wpinv_locate_tmpl( $templates, $load, false );
171 171
 }
172 172
 
173 173
 function wpinv_locate_tmpl( $template_names, $load = false, $require_once = true ) {
174
-	// No file found yet
175
-	$located = false;
174
+    // No file found yet
175
+    $located = false;
176 176
 
177
-	// Try to find a template file
178
-	foreach ( (array)$template_names as $template_name ) {
177
+    // Try to find a template file
178
+    foreach ( (array)$template_names as $template_name ) {
179 179
 
180
-		// Continue if template is empty
181
-		if ( empty( $template_name ) )
182
-			continue;
180
+        // Continue if template is empty
181
+        if ( empty( $template_name ) )
182
+            continue;
183 183
 
184
-		// Trim off any slashes from the template name
185
-		$template_name = ltrim( $template_name, '/' );
184
+        // Trim off any slashes from the template name
185
+        $template_name = ltrim( $template_name, '/' );
186 186
 
187
-		// try locating this template file by looping through the template paths
188
-		foreach( wpinv_get_theme_template_paths() as $template_path ) {
187
+        // try locating this template file by looping through the template paths
188
+        foreach( wpinv_get_theme_template_paths() as $template_path ) {
189 189
 
190
-			if( file_exists( $template_path . $template_name ) ) {
191
-				$located = $template_path . $template_name;
192
-				break;
193
-			}
194
-		}
190
+            if( file_exists( $template_path . $template_name ) ) {
191
+                $located = $template_path . $template_name;
192
+                break;
193
+            }
194
+        }
195 195
 
196
-		if( !empty( $located ) ) {
197
-			break;
198
-		}
199
-	}
196
+        if( !empty( $located ) ) {
197
+            break;
198
+        }
199
+    }
200 200
 
201
-	if ( ( true == $load ) && ! empty( $located ) )
202
-		load_template( $located, $require_once );
201
+    if ( ( true == $load ) && ! empty( $located ) )
202
+        load_template( $located, $require_once );
203 203
 
204
-	return $located;
204
+    return $located;
205 205
 }
206 206
 
207 207
 function wpinv_get_theme_template_paths() {
208
-	$template_dir = wpinv_get_theme_template_dir_name();
208
+    $template_dir = wpinv_get_theme_template_dir_name();
209 209
 
210
-	$file_paths = array(
211
-		1 => trailingslashit( get_stylesheet_directory() ) . $template_dir,
212
-		10 => trailingslashit( get_template_directory() ) . $template_dir,
213
-		100 => wpinv_get_templates_dir()
214
-	);
210
+    $file_paths = array(
211
+        1 => trailingslashit( get_stylesheet_directory() ) . $template_dir,
212
+        10 => trailingslashit( get_template_directory() ) . $template_dir,
213
+        100 => wpinv_get_templates_dir()
214
+    );
215 215
 
216
-	$file_paths = apply_filters( 'wpinv_template_paths', $file_paths );
216
+    $file_paths = apply_filters( 'wpinv_template_paths', $file_paths );
217 217
 
218
-	// sort the file paths based on priority
219
-	ksort( $file_paths, SORT_NUMERIC );
218
+    // sort the file paths based on priority
219
+    ksort( $file_paths, SORT_NUMERIC );
220 220
 
221
-	return array_map( 'trailingslashit', $file_paths );
221
+    return array_map( 'trailingslashit', $file_paths );
222 222
 }
223 223
 
224 224
 function wpinv_get_theme_template_dir_name() {
225
-	return trailingslashit( apply_filters( 'wpinv_templates_dir', 'invoicing' ) );
225
+    return trailingslashit( apply_filters( 'wpinv_templates_dir', 'invoicing' ) );
226 226
 }
227 227
 
228 228
 function wpinv_checkout_meta_tags() {
229 229
 
230
-	$pages   = array();
231
-	$pages[] = wpinv_get_option( 'success_page' );
232
-	$pages[] = wpinv_get_option( 'failure_page' );
233
-	$pages[] = wpinv_get_option( 'invoice_history_page' );
230
+    $pages   = array();
231
+    $pages[] = wpinv_get_option( 'success_page' );
232
+    $pages[] = wpinv_get_option( 'failure_page' );
233
+    $pages[] = wpinv_get_option( 'invoice_history_page' );
234 234
 
235
-	if( !wpinv_is_checkout() && !is_page( $pages ) ) {
236
-		return;
237
-	}
235
+    if( !wpinv_is_checkout() && !is_page( $pages ) ) {
236
+        return;
237
+    }
238 238
 
239
-	echo '<meta name="robots" content="noindex,nofollow" />' . "\n";
239
+    echo '<meta name="robots" content="noindex,nofollow" />' . "\n";
240 240
 }
241 241
 add_action( 'wp_head', 'wpinv_checkout_meta_tags' );
242 242
 
243 243
 function wpinv_add_body_classes( $class ) {
244
-	$classes = (array)$class;
244
+    $classes = (array)$class;
245 245
 
246
-	if( wpinv_is_checkout() ) {
247
-		$classes[] = 'wpinv-checkout';
248
-		$classes[] = 'wpinv-page';
249
-	}
246
+    if( wpinv_is_checkout() ) {
247
+        $classes[] = 'wpinv-checkout';
248
+        $classes[] = 'wpinv-page';
249
+    }
250 250
 
251
-	if( wpinv_is_success_page() ) {
252
-		$classes[] = 'wpinv-success';
253
-		$classes[] = 'wpinv-page';
254
-	}
251
+    if( wpinv_is_success_page() ) {
252
+        $classes[] = 'wpinv-success';
253
+        $classes[] = 'wpinv-page';
254
+    }
255 255
 
256
-	if( wpinv_is_failed_transaction_page() ) {
257
-		$classes[] = 'wpinv-failed-transaction';
258
-		$classes[] = 'wpinv-page';
259
-	}
256
+    if( wpinv_is_failed_transaction_page() ) {
257
+        $classes[] = 'wpinv-failed-transaction';
258
+        $classes[] = 'wpinv-page';
259
+    }
260 260
 
261
-	if( wpinv_is_invoice_history_page() ) {
262
-		$classes[] = 'wpinv-history';
263
-		$classes[] = 'wpinv-page';
264
-	}
261
+    if( wpinv_is_invoice_history_page() ) {
262
+        $classes[] = 'wpinv-history';
263
+        $classes[] = 'wpinv-page';
264
+    }
265 265
 
266
-	if( wpinv_is_test_mode() ) {
267
-		$classes[] = 'wpinv-test-mode';
268
-		$classes[] = 'wpinv-page';
269
-	}
266
+    if( wpinv_is_test_mode() ) {
267
+        $classes[] = 'wpinv-test-mode';
268
+        $classes[] = 'wpinv-page';
269
+    }
270 270
 
271
-	return array_unique( $classes );
271
+    return array_unique( $classes );
272 272
 }
273 273
 add_filter( 'body_class', 'wpinv_add_body_classes' );
274 274
 
@@ -1404,7 +1404,7 @@  discard block
 block discarded – undo
1404 1404
 add_action( 'wpinv_checkout_cart', 'wpinv_checkout_cart', 10 );
1405 1405
 
1406 1406
 function wpinv_empty_cart_message() {
1407
-	return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' );
1407
+    return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' );
1408 1408
 }
1409 1409
 
1410 1410
 /**
@@ -1414,7 +1414,7 @@  discard block
 block discarded – undo
1414 1414
  * @return void
1415 1415
  */
1416 1416
 function wpinv_empty_checkout_cart() {
1417
-	echo wpinv_empty_cart_message();
1417
+    echo wpinv_empty_cart_message();
1418 1418
 }
1419 1419
 add_action( 'wpinv_cart_empty', 'wpinv_empty_checkout_cart' );
1420 1420
 
@@ -1552,11 +1552,11 @@  discard block
 block discarded – undo
1552 1552
                     do_action( 'wpinv_payment_mode_before_gateways' );
1553 1553
                     
1554 1554
                     if(!empty($gateways)){
1555
-	                    foreach ( $gateways as $gateway_id => $gateway ) {
1556
-		                    $checked = checked( $gateway_id, $chosen_gateway, false );
1557
-		                    $button_label = wpinv_get_gateway_button_label( $gateway_id );
1558
-		                    $description = wpinv_get_gateway_description( $gateway_id );
1559
-		                    ?>
1555
+                        foreach ( $gateways as $gateway_id => $gateway ) {
1556
+                            $checked = checked( $gateway_id, $chosen_gateway, false );
1557
+                            $button_label = wpinv_get_gateway_button_label( $gateway_id );
1558
+                            $description = wpinv_get_gateway_description( $gateway_id );
1559
+                            ?>
1560 1560
 		                    <div class="list-group-item">
1561 1561
 			                    <div class="radio">
1562 1562
 				                    <label><input type="radio" data-button-text="<?php echo esc_attr( $button_label );?>" value="<?php echo esc_attr( $gateway_id ) ;?>" <?php echo $checked ;?> id="wpi_gateway_<?php echo esc_attr( $gateway_id );?>" name="wpi-gateway" class="wpi-pmethod"><?php echo esc_html( $gateway['checkout_label'] ); ?></label>
@@ -1569,9 +1569,9 @@  discard block
 block discarded – undo
1569 1569
 			                    </div>
1570 1570
 		                    </div>
1571 1571
 		                    <?php
1572
-	                    }
1572
+                        }
1573 1573
                     }else{
1574
-	                    echo '<div class="alert alert-warning">'. __('No payment gateway active','invoicing') .'</div>';
1574
+                        echo '<div class="alert alert-warning">'. __('No payment gateway active','invoicing') .'</div>';
1575 1575
                     }
1576 1576
 
1577 1577
                     do_action( 'wpinv_payment_mode_after_gateways' );
Please login to merge, or discard this patch.
Spacing   +686 added lines, -686 removed lines patch added patch discarded remove patch
@@ -7,91 +7,91 @@  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
-if ( !is_admin() ) {
15
-    add_filter( 'template_include', 'wpinv_template', 10, 1 );
16
-    add_action( 'wpinv_invoice_print_body_start', 'wpinv_display_invoice_top_bar' );
17
-    add_action( 'wpinv_invoice_top_bar_left', 'wpinv_invoice_display_left_actions' );
18
-    add_action( 'wpinv_invoice_top_bar_right', 'wpinv_invoice_display_right_actions' );
14
+if (!is_admin()) {
15
+    add_filter('template_include', 'wpinv_template', 10, 1);
16
+    add_action('wpinv_invoice_print_body_start', 'wpinv_display_invoice_top_bar');
17
+    add_action('wpinv_invoice_top_bar_left', 'wpinv_invoice_display_left_actions');
18
+    add_action('wpinv_invoice_top_bar_right', 'wpinv_invoice_display_right_actions');
19 19
 }
20 20
 
21 21
 function wpinv_template_path() {
22
-    return apply_filters( 'wpinv_template_path', wpinv_get_theme_template_dir_name() );
22
+    return apply_filters('wpinv_template_path', wpinv_get_theme_template_dir_name());
23 23
 }
24 24
 
25
-function wpinv_display_invoice_top_bar( $invoice ) {
26
-    if ( empty( $invoice ) ) {
25
+function wpinv_display_invoice_top_bar($invoice) {
26
+    if (empty($invoice)) {
27 27
         return;
28 28
     }
29 29
     ?>
30 30
     <div class="row wpinv-top-bar no-print">
31 31
         <div class="container">
32 32
             <div class="col-xs-6">
33
-                <?php do_action( 'wpinv_invoice_top_bar_left', $invoice );?>
33
+                <?php do_action('wpinv_invoice_top_bar_left', $invoice); ?>
34 34
             </div>
35 35
             <div class="col-xs-6 text-right">
36
-                <?php do_action( 'wpinv_invoice_top_bar_right', $invoice );?>
36
+                <?php do_action('wpinv_invoice_top_bar_right', $invoice); ?>
37 37
             </div>
38 38
         </div>
39 39
     </div>
40 40
     <?php
41 41
 }
42 42
 
43
-function wpinv_invoice_display_left_actions( $invoice ) {
44
-    if ( empty( $invoice ) ) {
43
+function wpinv_invoice_display_left_actions($invoice) {
44
+    if (empty($invoice)) {
45 45
         return; // Exit if invoice is not set.
46 46
     }
47 47
     
48
-    if ( $invoice->post_type == 'wpi_invoice' ) {
49
-        if ( $invoice->needs_payment() ) {
50
-            ?> <a class="btn btn-success btn-sm" title="<?php esc_attr_e( 'Pay This Invoice', 'invoicing' ); ?>" href="<?php echo esc_url( $invoice->get_checkout_payment_url() ); ?>"><?php _e( 'Pay For Invoice', 'invoicing' ); ?></a><?php
48
+    if ($invoice->post_type == 'wpi_invoice') {
49
+        if ($invoice->needs_payment()) {
50
+            ?> <a class="btn btn-success btn-sm" title="<?php esc_attr_e('Pay This Invoice', 'invoicing'); ?>" href="<?php echo esc_url($invoice->get_checkout_payment_url()); ?>"><?php _e('Pay For Invoice', 'invoicing'); ?></a><?php
51 51
         }
52 52
     }
53 53
     do_action('wpinv_invoice_display_left_actions', $invoice);
54 54
 }
55 55
 
56
-function wpinv_invoice_display_right_actions( $invoice ) {
57
-    if ( empty( $invoice ) ) {
56
+function wpinv_invoice_display_right_actions($invoice) {
57
+    if (empty($invoice)) {
58 58
         return; // Exit if invoice is not set.
59 59
     }
60 60
 
61
-    if ( $invoice->post_type == 'wpi_invoice' ) { ?>
62
-        <a class="btn btn-primary btn-sm" onclick="window.print();" href="javascript:void(0)"><?php _e( 'Print Invoice', 'invoicing' ); ?></a>
63
-        <?php if ( is_user_logged_in() ) { ?>
64
-        &nbsp;&nbsp;<a class="btn btn-warning btn-sm" href="<?php echo esc_url( wpinv_get_history_page_uri() ); ?>"><?php _e( 'Invoice History', 'invoicing' ); ?></a>
61
+    if ($invoice->post_type == 'wpi_invoice') { ?>
62
+        <a class="btn btn-primary btn-sm" onclick="window.print();" href="javascript:void(0)"><?php _e('Print Invoice', 'invoicing'); ?></a>
63
+        <?php if (is_user_logged_in()) { ?>
64
+        &nbsp;&nbsp;<a class="btn btn-warning btn-sm" href="<?php echo esc_url(wpinv_get_history_page_uri()); ?>"><?php _e('Invoice History', 'invoicing'); ?></a>
65 65
         <?php }
66 66
     }
67 67
     do_action('wpinv_invoice_display_right_actions', $invoice);
68 68
 }
69 69
 
70
-function wpinv_before_invoice_content( $content ) {
70
+function wpinv_before_invoice_content($content) {
71 71
     global $post;
72 72
 
73
-    if ( !empty( $post ) && $post->post_type == 'wpi_invoice' && is_singular( 'wpi_invoice' ) && is_main_query() ) {
73
+    if (!empty($post) && $post->post_type == 'wpi_invoice' && is_singular('wpi_invoice') && is_main_query()) {
74 74
         ob_start();
75
-        do_action( 'wpinv_before_invoice_content', $post->ID );
75
+        do_action('wpinv_before_invoice_content', $post->ID);
76 76
         $content = ob_get_clean() . $content;
77 77
     }
78 78
 
79 79
     return $content;
80 80
 }
81
-add_filter( 'the_content', 'wpinv_before_invoice_content' );
81
+add_filter('the_content', 'wpinv_before_invoice_content');
82 82
 
83
-function wpinv_after_invoice_content( $content ) {
83
+function wpinv_after_invoice_content($content) {
84 84
     global $post;
85 85
 
86
-    if ( !empty( $post ) && $post->post_type == 'wpi_invoice' && is_singular( 'wpi_invoice' ) && is_main_query() ) {
86
+    if (!empty($post) && $post->post_type == 'wpi_invoice' && is_singular('wpi_invoice') && is_main_query()) {
87 87
         ob_start();
88
-        do_action( 'wpinv_after_invoice_content', $post->ID );
88
+        do_action('wpinv_after_invoice_content', $post->ID);
89 89
         $content .= ob_get_clean();
90 90
     }
91 91
 
92 92
     return $content;
93 93
 }
94
-add_filter( 'the_content', 'wpinv_after_invoice_content' );
94
+add_filter('the_content', 'wpinv_after_invoice_content');
95 95
 
96 96
 function wpinv_get_templates_dir() {
97 97
     return WPINV_PLUGIN_DIR . 'templates';
@@ -101,105 +101,105 @@  discard block
 block discarded – undo
101 101
     return WPINV_PLUGIN_URL . 'templates';
102 102
 }
103 103
 
104
-function wpinv_get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
105
-    if ( ! empty( $args ) && is_array( $args ) ) {
106
-		extract( $args );
104
+function wpinv_get_template($template_name, $args = array(), $template_path = '', $default_path = '') {
105
+    if (!empty($args) && is_array($args)) {
106
+		extract($args);
107 107
 	}
108 108
 
109
-	$located = wpinv_locate_template( $template_name, $template_path, $default_path );
109
+	$located = wpinv_locate_template($template_name, $template_path, $default_path);
110 110
 	// Allow 3rd party plugin filter template file from their plugin.
111
-	$located = apply_filters( 'wpinv_get_template', $located, $template_name, $args, $template_path, $default_path );
111
+	$located = apply_filters('wpinv_get_template', $located, $template_name, $args, $template_path, $default_path);
112 112
 
113
-	if ( ! file_exists( $located ) ) {
114
-        _doing_it_wrong( __FUNCTION__, sprintf( '<code>%s</code> does not exist.', $located ), '2.1' );
113
+	if (!file_exists($located)) {
114
+        _doing_it_wrong(__FUNCTION__, sprintf('<code>%s</code> does not exist.', $located), '2.1');
115 115
 		return;
116 116
 	}
117 117
 
118
-	do_action( 'wpinv_before_template_part', $template_name, $template_path, $located, $args );
118
+	do_action('wpinv_before_template_part', $template_name, $template_path, $located, $args);
119 119
 
120
-	include( $located );
120
+	include($located);
121 121
 
122
-	do_action( 'wpinv_after_template_part', $template_name, $template_path, $located, $args );
122
+	do_action('wpinv_after_template_part', $template_name, $template_path, $located, $args);
123 123
 }
124 124
 
125
-function wpinv_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
125
+function wpinv_get_template_html($template_name, $args = array(), $template_path = '', $default_path = '') {
126 126
 	ob_start();
127
-	wpinv_get_template( $template_name, $args, $template_path, $default_path );
127
+	wpinv_get_template($template_name, $args, $template_path, $default_path);
128 128
 	return ob_get_clean();
129 129
 }
130 130
 
131
-function wpinv_locate_template( $template_name, $template_path = '', $default_path = '' ) {
132
-    if ( ! $template_path ) {
131
+function wpinv_locate_template($template_name, $template_path = '', $default_path = '') {
132
+    if (!$template_path) {
133 133
         $template_path = wpinv_template_path();
134 134
     }
135 135
 
136
-    if ( ! $default_path ) {
136
+    if (!$default_path) {
137 137
         $default_path = WPINV_PLUGIN_DIR . 'templates/';
138 138
     }
139 139
 
140 140
     // Look within passed path within the theme - this is priority.
141 141
     $template = locate_template(
142 142
         array(
143
-            trailingslashit( $template_path ) . $template_name,
143
+            trailingslashit($template_path) . $template_name,
144 144
             $template_name
145 145
         )
146 146
     );
147 147
 
148 148
     // Get default templates/
149
-    if ( !$template && $default_path ) {
150
-        $template = trailingslashit( $default_path ) . $template_name;
149
+    if (!$template && $default_path) {
150
+        $template = trailingslashit($default_path) . $template_name;
151 151
     }
152 152
 
153 153
     // Return what we found.
154
-    return apply_filters( 'wpinv_locate_template', $template, $template_name, $template_path );
154
+    return apply_filters('wpinv_locate_template', $template, $template_name, $template_path);
155 155
 }
156 156
 
157
-function wpinv_get_template_part( $slug, $name = null, $load = true ) {
158
-	do_action( 'get_template_part_' . $slug, $slug, $name );
157
+function wpinv_get_template_part($slug, $name = null, $load = true) {
158
+	do_action('get_template_part_' . $slug, $slug, $name);
159 159
 
160 160
 	// Setup possible parts
161 161
 	$templates = array();
162
-	if ( isset( $name ) )
162
+	if (isset($name))
163 163
 		$templates[] = $slug . '-' . $name . '.php';
164 164
 	$templates[] = $slug . '.php';
165 165
 
166 166
 	// Allow template parts to be filtered
167
-	$templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name );
167
+	$templates = apply_filters('wpinv_get_template_part', $templates, $slug, $name);
168 168
 
169 169
 	// Return the part that is found
170
-	return wpinv_locate_tmpl( $templates, $load, false );
170
+	return wpinv_locate_tmpl($templates, $load, false);
171 171
 }
172 172
 
173
-function wpinv_locate_tmpl( $template_names, $load = false, $require_once = true ) {
173
+function wpinv_locate_tmpl($template_names, $load = false, $require_once = true) {
174 174
 	// No file found yet
175 175
 	$located = false;
176 176
 
177 177
 	// Try to find a template file
178
-	foreach ( (array)$template_names as $template_name ) {
178
+	foreach ((array)$template_names as $template_name) {
179 179
 
180 180
 		// Continue if template is empty
181
-		if ( empty( $template_name ) )
181
+		if (empty($template_name))
182 182
 			continue;
183 183
 
184 184
 		// Trim off any slashes from the template name
185
-		$template_name = ltrim( $template_name, '/' );
185
+		$template_name = ltrim($template_name, '/');
186 186
 
187 187
 		// try locating this template file by looping through the template paths
188
-		foreach( wpinv_get_theme_template_paths() as $template_path ) {
188
+		foreach (wpinv_get_theme_template_paths() as $template_path) {
189 189
 
190
-			if( file_exists( $template_path . $template_name ) ) {
190
+			if (file_exists($template_path . $template_name)) {
191 191
 				$located = $template_path . $template_name;
192 192
 				break;
193 193
 			}
194 194
 		}
195 195
 
196
-		if( !empty( $located ) ) {
196
+		if (!empty($located)) {
197 197
 			break;
198 198
 		}
199 199
 	}
200 200
 
201
-	if ( ( true == $load ) && ! empty( $located ) )
202
-		load_template( $located, $require_once );
201
+	if ((true == $load) && !empty($located))
202
+		load_template($located, $require_once);
203 203
 
204 204
 	return $located;
205 205
 }
@@ -208,143 +208,143 @@  discard block
 block discarded – undo
208 208
 	$template_dir = wpinv_get_theme_template_dir_name();
209 209
 
210 210
 	$file_paths = array(
211
-		1 => trailingslashit( get_stylesheet_directory() ) . $template_dir,
212
-		10 => trailingslashit( get_template_directory() ) . $template_dir,
211
+		1 => trailingslashit(get_stylesheet_directory()) . $template_dir,
212
+		10 => trailingslashit(get_template_directory()) . $template_dir,
213 213
 		100 => wpinv_get_templates_dir()
214 214
 	);
215 215
 
216
-	$file_paths = apply_filters( 'wpinv_template_paths', $file_paths );
216
+	$file_paths = apply_filters('wpinv_template_paths', $file_paths);
217 217
 
218 218
 	// sort the file paths based on priority
219
-	ksort( $file_paths, SORT_NUMERIC );
219
+	ksort($file_paths, SORT_NUMERIC);
220 220
 
221
-	return array_map( 'trailingslashit', $file_paths );
221
+	return array_map('trailingslashit', $file_paths);
222 222
 }
223 223
 
224 224
 function wpinv_get_theme_template_dir_name() {
225
-	return trailingslashit( apply_filters( 'wpinv_templates_dir', 'invoicing' ) );
225
+	return trailingslashit(apply_filters('wpinv_templates_dir', 'invoicing'));
226 226
 }
227 227
 
228 228
 function wpinv_checkout_meta_tags() {
229 229
 
230 230
 	$pages   = array();
231
-	$pages[] = wpinv_get_option( 'success_page' );
232
-	$pages[] = wpinv_get_option( 'failure_page' );
233
-	$pages[] = wpinv_get_option( 'invoice_history_page' );
231
+	$pages[] = wpinv_get_option('success_page');
232
+	$pages[] = wpinv_get_option('failure_page');
233
+	$pages[] = wpinv_get_option('invoice_history_page');
234 234
 
235
-	if( !wpinv_is_checkout() && !is_page( $pages ) ) {
235
+	if (!wpinv_is_checkout() && !is_page($pages)) {
236 236
 		return;
237 237
 	}
238 238
 
239 239
 	echo '<meta name="robots" content="noindex,nofollow" />' . "\n";
240 240
 }
241
-add_action( 'wp_head', 'wpinv_checkout_meta_tags' );
241
+add_action('wp_head', 'wpinv_checkout_meta_tags');
242 242
 
243
-function wpinv_add_body_classes( $class ) {
243
+function wpinv_add_body_classes($class) {
244 244
 	$classes = (array)$class;
245 245
 
246
-	if( wpinv_is_checkout() ) {
246
+	if (wpinv_is_checkout()) {
247 247
 		$classes[] = 'wpinv-checkout';
248 248
 		$classes[] = 'wpinv-page';
249 249
 	}
250 250
 
251
-	if( wpinv_is_success_page() ) {
251
+	if (wpinv_is_success_page()) {
252 252
 		$classes[] = 'wpinv-success';
253 253
 		$classes[] = 'wpinv-page';
254 254
 	}
255 255
 
256
-	if( wpinv_is_failed_transaction_page() ) {
256
+	if (wpinv_is_failed_transaction_page()) {
257 257
 		$classes[] = 'wpinv-failed-transaction';
258 258
 		$classes[] = 'wpinv-page';
259 259
 	}
260 260
 
261
-	if( wpinv_is_invoice_history_page() ) {
261
+	if (wpinv_is_invoice_history_page()) {
262 262
 		$classes[] = 'wpinv-history';
263 263
 		$classes[] = 'wpinv-page';
264 264
 	}
265 265
 
266
-	if( wpinv_is_test_mode() ) {
266
+	if (wpinv_is_test_mode()) {
267 267
 		$classes[] = 'wpinv-test-mode';
268 268
 		$classes[] = 'wpinv-page';
269 269
 	}
270 270
 
271
-	return array_unique( $classes );
271
+	return array_unique($classes);
272 272
 }
273
-add_filter( 'body_class', 'wpinv_add_body_classes' );
273
+add_filter('body_class', 'wpinv_add_body_classes');
274 274
 
275
-function wpinv_html_dropdown( $name = 'wpinv_discounts', $selected = 0, $status = '' ) {
276
-    $args = array( 'nopaging' => true );
275
+function wpinv_html_dropdown($name = 'wpinv_discounts', $selected = 0, $status = '') {
276
+    $args = array('nopaging' => true);
277 277
 
278
-    if ( ! empty( $status ) )
278
+    if (!empty($status))
279 279
         $args['post_status'] = $status;
280 280
 
281
-    $discounts = wpinv_get_discounts( $args );
281
+    $discounts = wpinv_get_discounts($args);
282 282
     $options   = array();
283 283
 
284
-    if ( $discounts ) {
285
-        foreach ( $discounts as $discount ) {
286
-            $options[ absint( $discount->ID ) ] = esc_html( get_the_title( $discount->ID ) );
284
+    if ($discounts) {
285
+        foreach ($discounts as $discount) {
286
+            $options[absint($discount->ID)] = esc_html(get_the_title($discount->ID));
287 287
         }
288 288
     } else {
289
-        $options[0] = __( 'No discounts found', 'invoicing' );
289
+        $options[0] = __('No discounts found', 'invoicing');
290 290
     }
291 291
 
292
-    $output = wpinv_html_select( array(
292
+    $output = wpinv_html_select(array(
293 293
         'name'             => $name,
294 294
         'selected'         => $selected,
295 295
         'options'          => $options,
296 296
         'show_option_all'  => false,
297 297
         'show_option_none' => false,
298
-    ) );
298
+    ));
299 299
 
300 300
     return $output;
301 301
 }
302 302
 
303
-function wpinv_html_year_dropdown( $name = 'year', $selected = 0, $years_before = 5, $years_after = 0 ) {
304
-    $current     = date( 'Y' );
305
-    $start_year  = $current - absint( $years_before );
306
-    $end_year    = $current + absint( $years_after );
307
-    $selected    = empty( $selected ) ? date( 'Y' ) : $selected;
303
+function wpinv_html_year_dropdown($name = 'year', $selected = 0, $years_before = 5, $years_after = 0) {
304
+    $current     = date('Y');
305
+    $start_year  = $current - absint($years_before);
306
+    $end_year    = $current + absint($years_after);
307
+    $selected    = empty($selected) ? date('Y') : $selected;
308 308
     $options     = array();
309 309
 
310
-    while ( $start_year <= $end_year ) {
311
-        $options[ absint( $start_year ) ] = $start_year;
310
+    while ($start_year <= $end_year) {
311
+        $options[absint($start_year)] = $start_year;
312 312
         $start_year++;
313 313
     }
314 314
 
315
-    $output = wpinv_html_select( array(
315
+    $output = wpinv_html_select(array(
316 316
         'name'             => $name,
317 317
         'selected'         => $selected,
318 318
         'options'          => $options,
319 319
         'show_option_all'  => false,
320 320
         'show_option_none' => false
321
-    ) );
321
+    ));
322 322
 
323 323
     return $output;
324 324
 }
325 325
 
326
-function wpinv_html_month_dropdown( $name = 'month', $selected = 0 ) {
326
+function wpinv_html_month_dropdown($name = 'month', $selected = 0) {
327 327
     $month   = 1;
328 328
     $options = array();
329
-    $selected = empty( $selected ) ? date( 'n' ) : $selected;
329
+    $selected = empty($selected) ? date('n') : $selected;
330 330
 
331
-    while ( $month <= 12 ) {
332
-        $options[ absint( $month ) ] = wpinv_month_num_to_name( $month );
331
+    while ($month <= 12) {
332
+        $options[absint($month)] = wpinv_month_num_to_name($month);
333 333
         $month++;
334 334
     }
335 335
 
336
-    $output = wpinv_html_select( array(
336
+    $output = wpinv_html_select(array(
337 337
         'name'             => $name,
338 338
         'selected'         => $selected,
339 339
         'options'          => $options,
340 340
         'show_option_all'  => false,
341 341
         'show_option_none' => false
342
-    ) );
342
+    ));
343 343
 
344 344
     return $output;
345 345
 }
346 346
 
347
-function wpinv_html_select( $args = array() ) {
347
+function wpinv_html_select($args = array()) {
348 348
     $defaults = array(
349 349
         'options'          => array(),
350 350
         'name'             => null,
@@ -353,8 +353,8 @@  discard block
 block discarded – undo
353 353
         'selected'         => 0,
354 354
         'placeholder'      => null,
355 355
         'multiple'         => false,
356
-        'show_option_all'  => _x( 'All', 'all dropdown items', 'invoicing' ),
357
-        'show_option_none' => _x( 'None', 'no dropdown items', 'invoicing' ),
356
+        'show_option_all'  => _x('All', 'all dropdown items', 'invoicing'),
357
+        'show_option_none' => _x('None', 'no dropdown items', 'invoicing'),
358 358
         'data'             => array(),
359 359
         'onchange'         => null,
360 360
         'required'         => false,
@@ -362,74 +362,74 @@  discard block
 block discarded – undo
362 362
         'readonly'         => false,
363 363
     );
364 364
 
365
-    $args = wp_parse_args( $args, $defaults );
365
+    $args = wp_parse_args($args, $defaults);
366 366
 
367 367
     $data_elements = '';
368
-    foreach ( $args['data'] as $key => $value ) {
369
-        $data_elements .= ' data-' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
368
+    foreach ($args['data'] as $key => $value) {
369
+        $data_elements .= ' data-' . esc_attr($key) . '="' . esc_attr($value) . '"';
370 370
     }
371 371
 
372
-    if( $args['multiple'] ) {
372
+    if ($args['multiple']) {
373 373
         $multiple = ' MULTIPLE';
374 374
     } else {
375 375
         $multiple = '';
376 376
     }
377 377
 
378
-    if( $args['placeholder'] ) {
378
+    if ($args['placeholder']) {
379 379
         $placeholder = $args['placeholder'];
380 380
     } else {
381 381
         $placeholder = '';
382 382
     }
383 383
     
384 384
     $options = '';
385
-    if( !empty( $args['onchange'] ) ) {
386
-        $options .= ' onchange="' . esc_attr( $args['onchange'] ) . '"';
385
+    if (!empty($args['onchange'])) {
386
+        $options .= ' onchange="' . esc_attr($args['onchange']) . '"';
387 387
     }
388 388
     
389
-    if( !empty( $args['required'] ) ) {
389
+    if (!empty($args['required'])) {
390 390
         $options .= ' required="required"';
391 391
     }
392 392
     
393
-    if( !empty( $args['disabled'] ) ) {
393
+    if (!empty($args['disabled'])) {
394 394
         $options .= ' disabled';
395 395
     }
396 396
     
397
-    if( !empty( $args['readonly'] ) ) {
397
+    if (!empty($args['readonly'])) {
398 398
         $options .= ' readonly';
399 399
     }
400 400
 
401
-    $class  = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
402
-    $output = '<select name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] ) . '" class="wpinv-select ' . $class . '"' . $multiple . ' data-placeholder="' . $placeholder . '" ' . trim( $options ) . $data_elements . '>';
401
+    $class  = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class'])));
402
+    $output = '<select name="' . esc_attr($args['name']) . '" id="' . esc_attr($args['id']) . '" class="wpinv-select ' . $class . '"' . $multiple . ' data-placeholder="' . $placeholder . '" ' . trim($options) . $data_elements . '>';
403 403
 
404
-    if ( $args['show_option_all'] ) {
405
-        if( $args['multiple'] ) {
406
-            $selected = selected( true, in_array( 0, $args['selected'] ), false );
404
+    if ($args['show_option_all']) {
405
+        if ($args['multiple']) {
406
+            $selected = selected(true, in_array(0, $args['selected']), false);
407 407
         } else {
408
-            $selected = selected( $args['selected'], 0, false );
408
+            $selected = selected($args['selected'], 0, false);
409 409
         }
410
-        $output .= '<option value="all"' . $selected . '>' . esc_html( $args['show_option_all'] ) . '</option>';
410
+        $output .= '<option value="all"' . $selected . '>' . esc_html($args['show_option_all']) . '</option>';
411 411
     }
412 412
 
413
-    if ( !empty( $args['options'] ) ) {
413
+    if (!empty($args['options'])) {
414 414
 
415
-        if ( $args['show_option_none'] ) {
416
-            if( $args['multiple'] ) {
417
-                $selected = selected( true, in_array( "", $args['selected'] ), false );
415
+        if ($args['show_option_none']) {
416
+            if ($args['multiple']) {
417
+                $selected = selected(true, in_array("", $args['selected']), false);
418 418
             } else {
419
-                $selected = selected( $args['selected'] === "", true, false );
419
+                $selected = selected($args['selected'] === "", true, false);
420 420
             }
421
-            $output .= '<option value=""' . $selected . '>' . esc_html( $args['show_option_none'] ) . '</option>';
421
+            $output .= '<option value=""' . $selected . '>' . esc_html($args['show_option_none']) . '</option>';
422 422
         }
423 423
 
424
-        foreach( $args['options'] as $key => $option ) {
424
+        foreach ($args['options'] as $key => $option) {
425 425
 
426
-            if( $args['multiple'] && is_array( $args['selected'] ) ) {
427
-                $selected = selected( true, (bool)in_array( $key, $args['selected'] ), false );
426
+            if ($args['multiple'] && is_array($args['selected'])) {
427
+                $selected = selected(true, (bool)in_array($key, $args['selected']), false);
428 428
             } else {
429
-                $selected = selected( $args['selected'], $key, false );
429
+                $selected = selected($args['selected'], $key, false);
430 430
             }
431 431
 
432
-            $output .= '<option value="' . esc_attr( $key ) . '"' . $selected . '>' . esc_html( $option ) . '</option>';
432
+            $output .= '<option value="' . esc_attr($key) . '"' . $selected . '>' . esc_html($option) . '</option>';
433 433
         }
434 434
     }
435 435
 
@@ -438,7 +438,7 @@  discard block
 block discarded – undo
438 438
     return $output;
439 439
 }
440 440
 
441
-function wpinv_item_dropdown( $args = array() ) {
441
+function wpinv_item_dropdown($args = array()) {
442 442
     $defaults = array(
443 443
         'name'              => 'wpi_item',
444 444
         'id'                => 'wpi_item',
@@ -446,14 +446,14 @@  discard block
 block discarded – undo
446 446
         'multiple'          => false,
447 447
         'selected'          => 0,
448 448
         'number'            => 100,
449
-        'placeholder'       => __( 'Choose a item', 'invoicing' ),
450
-        'data'              => array( 'search-type' => 'item' ),
449
+        'placeholder'       => __('Choose a item', 'invoicing'),
450
+        'data'              => array('search-type' => 'item'),
451 451
         'show_option_all'   => false,
452 452
         'show_option_none'  => false,
453 453
         'show_recurring'    => false,
454 454
     );
455 455
 
456
-    $args = wp_parse_args( $args, $defaults );
456
+    $args = wp_parse_args($args, $defaults);
457 457
 
458 458
     $item_args = array(
459 459
         'post_type'      => 'wpi_item',
@@ -462,44 +462,44 @@  discard block
 block discarded – undo
462 462
         'posts_per_page' => $args['number']
463 463
     );
464 464
     
465
-    $item_args  = apply_filters( 'wpinv_item_dropdown_query_args', $item_args, $args, $defaults );
465
+    $item_args  = apply_filters('wpinv_item_dropdown_query_args', $item_args, $args, $defaults);
466 466
 
467
-    $items      = get_posts( $item_args );
467
+    $items      = get_posts($item_args);
468 468
     $options    = array();
469
-    if ( $items ) {
470
-        foreach ( $items as $item ) {
471
-            $title = esc_html( $item->post_title );
469
+    if ($items) {
470
+        foreach ($items as $item) {
471
+            $title = esc_html($item->post_title);
472 472
             
473
-            if ( !empty( $args['show_recurring'] ) ) {
474
-                $title .= wpinv_get_item_suffix( $item->ID, false );
473
+            if (!empty($args['show_recurring'])) {
474
+                $title .= wpinv_get_item_suffix($item->ID, false);
475 475
             }
476 476
             
477
-            $options[ absint( $item->ID ) ] = $title;
477
+            $options[absint($item->ID)] = $title;
478 478
         }
479 479
     }
480 480
 
481 481
     // This ensures that any selected items are included in the drop down
482
-    if( is_array( $args['selected'] ) ) {
483
-        foreach( $args['selected'] as $item ) {
484
-            if( ! in_array( $item, $options ) ) {
485
-                $title = get_the_title( $item );
486
-                if ( !empty( $args['show_recurring'] ) ) {
487
-                    $title .= wpinv_get_item_suffix( $item, false );
482
+    if (is_array($args['selected'])) {
483
+        foreach ($args['selected'] as $item) {
484
+            if (!in_array($item, $options)) {
485
+                $title = get_the_title($item);
486
+                if (!empty($args['show_recurring'])) {
487
+                    $title .= wpinv_get_item_suffix($item, false);
488 488
                 }
489 489
                 $options[$item] = $title;
490 490
             }
491 491
         }
492
-    } elseif ( is_numeric( $args['selected'] ) && $args['selected'] !== 0 ) {
493
-        if ( ! in_array( $args['selected'], $options ) ) {
494
-            $title = get_the_title( $args['selected'] );
495
-            if ( !empty( $args['show_recurring'] ) ) {
496
-                $title .= wpinv_get_item_suffix( $args['selected'], false );
492
+    } elseif (is_numeric($args['selected']) && $args['selected'] !== 0) {
493
+        if (!in_array($args['selected'], $options)) {
494
+            $title = get_the_title($args['selected']);
495
+            if (!empty($args['show_recurring'])) {
496
+                $title .= wpinv_get_item_suffix($args['selected'], false);
497 497
             }
498
-            $options[$args['selected']] = get_the_title( $args['selected'] );
498
+            $options[$args['selected']] = get_the_title($args['selected']);
499 499
         }
500 500
     }
501 501
 
502
-    $output = wpinv_html_select( array(
502
+    $output = wpinv_html_select(array(
503 503
         'name'             => $args['name'],
504 504
         'selected'         => $args['selected'],
505 505
         'id'               => $args['id'],
@@ -510,12 +510,12 @@  discard block
 block discarded – undo
510 510
         'show_option_all'  => $args['show_option_all'],
511 511
         'show_option_none' => $args['show_option_none'],
512 512
         'data'             => $args['data'],
513
-    ) );
513
+    ));
514 514
 
515 515
     return $output;
516 516
 }
517 517
 
518
-function wpinv_html_checkbox( $args = array() ) {
518
+function wpinv_html_checkbox($args = array()) {
519 519
     $defaults = array(
520 520
         'name'     => null,
521 521
         'current'  => null,
@@ -526,38 +526,38 @@  discard block
 block discarded – undo
526 526
         )
527 527
     );
528 528
 
529
-    $args = wp_parse_args( $args, $defaults );
529
+    $args = wp_parse_args($args, $defaults);
530 530
 
531
-    $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
531
+    $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class'])));
532 532
     $options = '';
533
-    if ( ! empty( $args['options']['disabled'] ) ) {
533
+    if (!empty($args['options']['disabled'])) {
534 534
         $options .= ' disabled="disabled"';
535
-    } elseif ( ! empty( $args['options']['readonly'] ) ) {
535
+    } elseif (!empty($args['options']['readonly'])) {
536 536
         $options .= ' readonly';
537 537
     }
538 538
 
539
-    $output = '<input type="checkbox"' . $options . ' name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['name'] ) . '" class="' . $class . ' ' . esc_attr( $args['name'] ) . '" ' . checked( 1, $args['current'], false ) . ' />';
539
+    $output = '<input type="checkbox"' . $options . ' name="' . esc_attr($args['name']) . '" id="' . esc_attr($args['name']) . '" class="' . $class . ' ' . esc_attr($args['name']) . '" ' . checked(1, $args['current'], false) . ' />';
540 540
 
541 541
     return $output;
542 542
 }
543 543
 
544
-function wpinv_html_text( $args = array() ) {
544
+function wpinv_html_text($args = array()) {
545 545
     // Backwards compatibility
546
-    if ( func_num_args() > 1 ) {
546
+    if (func_num_args() > 1) {
547 547
         $args = func_get_args();
548 548
 
549 549
         $name  = $args[0];
550
-        $value = isset( $args[1] ) ? $args[1] : '';
551
-        $label = isset( $args[2] ) ? $args[2] : '';
552
-        $desc  = isset( $args[3] ) ? $args[3] : '';
550
+        $value = isset($args[1]) ? $args[1] : '';
551
+        $label = isset($args[2]) ? $args[2] : '';
552
+        $desc  = isset($args[3]) ? $args[3] : '';
553 553
     }
554 554
 
555 555
     $defaults = array(
556 556
         'id'           => '',
557
-        'name'         => isset( $name )  ? $name  : 'text',
558
-        'value'        => isset( $value ) ? $value : null,
559
-        'label'        => isset( $label ) ? $label : null,
560
-        'desc'         => isset( $desc )  ? $desc  : null,
557
+        'name'         => isset($name) ? $name : 'text',
558
+        'value'        => isset($value) ? $value : null,
559
+        'label'        => isset($label) ? $label : null,
560
+        'desc'         => isset($desc) ? $desc : null,
561 561
         'placeholder'  => '',
562 562
         'class'        => 'regular-text',
563 563
         'disabled'     => false,
@@ -567,51 +567,51 @@  discard block
 block discarded – undo
567 567
         'data'         => false
568 568
     );
569 569
 
570
-    $args = wp_parse_args( $args, $defaults );
570
+    $args = wp_parse_args($args, $defaults);
571 571
 
572
-    $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
572
+    $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class'])));
573 573
     $options = '';
574
-    if( $args['required'] ) {
574
+    if ($args['required']) {
575 575
         $options .= ' required="required"';
576 576
     }
577
-    if( $args['readonly'] ) {
577
+    if ($args['readonly']) {
578 578
         $options .= ' readonly';
579 579
     }
580
-    if( $args['readonly'] ) {
580
+    if ($args['readonly']) {
581 581
         $options .= ' readonly';
582 582
     }
583 583
 
584 584
     $data = '';
585
-    if ( !empty( $args['data'] ) ) {
586
-        foreach ( $args['data'] as $key => $value ) {
587
-            $data .= 'data-' . wpinv_sanitize_key( $key ) . '="' . esc_attr( $value ) . '" ';
585
+    if (!empty($args['data'])) {
586
+        foreach ($args['data'] as $key => $value) {
587
+            $data .= 'data-' . wpinv_sanitize_key($key) . '="' . esc_attr($value) . '" ';
588 588
         }
589 589
     }
590 590
 
591
-    $output = '<span id="wpinv-' . wpinv_sanitize_key( $args['name'] ) . '-wrap">';
592
-    $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key( $args['id'] ) . '">' . esc_html( $args['label'] ) . '</label>';
593
-    if ( ! empty( $args['desc'] ) ) {
594
-        $output .= '<span class="wpinv-description">' . esc_html( $args['desc'] ) . '</span>';
591
+    $output = '<span id="wpinv-' . wpinv_sanitize_key($args['name']) . '-wrap">';
592
+    $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key($args['id']) . '">' . esc_html($args['label']) . '</label>';
593
+    if (!empty($args['desc'])) {
594
+        $output .= '<span class="wpinv-description">' . esc_html($args['desc']) . '</span>';
595 595
     }
596 596
 
597
-    $output .= '<input type="text" name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] )  . '" autocomplete="' . esc_attr( $args['autocomplete'] )  . '" value="' . esc_attr( $args['value'] ) . '" placeholder="' . esc_attr( $args['placeholder'] ) . '" class="' . $class . '" ' . $data . ' ' . trim( $options ) . '/>';
597
+    $output .= '<input type="text" name="' . esc_attr($args['name']) . '" id="' . esc_attr($args['id']) . '" autocomplete="' . esc_attr($args['autocomplete']) . '" value="' . esc_attr($args['value']) . '" placeholder="' . esc_attr($args['placeholder']) . '" class="' . $class . '" ' . $data . ' ' . trim($options) . '/>';
598 598
 
599 599
     $output .= '</span>';
600 600
 
601 601
     return $output;
602 602
 }
603 603
 
604
-function wpinv_html_date_field( $args = array() ) {
605
-    if( empty( $args['class'] ) ) {
604
+function wpinv_html_date_field($args = array()) {
605
+    if (empty($args['class'])) {
606 606
         $args['class'] = 'wpiDatepicker';
607
-    } elseif( ! strpos( $args['class'], 'wpiDatepicker' ) ) {
607
+    } elseif (!strpos($args['class'], 'wpiDatepicker')) {
608 608
         $args['class'] .= ' wpiDatepicker';
609 609
     }
610 610
 
611
-    return wpinv_html_text( $args );
611
+    return wpinv_html_text($args);
612 612
 }
613 613
 
614
-function wpinv_html_textarea( $args = array() ) {
614
+function wpinv_html_textarea($args = array()) {
615 615
     $defaults = array(
616 616
         'name'        => 'textarea',
617 617
         'value'       => null,
@@ -621,31 +621,31 @@  discard block
 block discarded – undo
621 621
         'disabled'    => false
622 622
     );
623 623
 
624
-    $args = wp_parse_args( $args, $defaults );
624
+    $args = wp_parse_args($args, $defaults);
625 625
 
626
-    $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );
626
+    $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class'])));
627 627
     $disabled = '';
628
-    if( $args['disabled'] ) {
628
+    if ($args['disabled']) {
629 629
         $disabled = ' disabled="disabled"';
630 630
     }
631 631
 
632
-    $output = '<span id="wpinv-' . wpinv_sanitize_key( $args['name'] ) . '-wrap">';
633
-    $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key( $args['name'] ) . '">' . esc_html( $args['label'] ) . '</label>';
634
-    $output .= '<textarea name="' . esc_attr( $args['name'] ) . '" id="' . wpinv_sanitize_key( $args['name'] ) . '" class="' . $class . '"' . $disabled . '>' . esc_attr( $args['value'] ) . '</textarea>';
632
+    $output = '<span id="wpinv-' . wpinv_sanitize_key($args['name']) . '-wrap">';
633
+    $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key($args['name']) . '">' . esc_html($args['label']) . '</label>';
634
+    $output .= '<textarea name="' . esc_attr($args['name']) . '" id="' . wpinv_sanitize_key($args['name']) . '" class="' . $class . '"' . $disabled . '>' . esc_attr($args['value']) . '</textarea>';
635 635
 
636
-    if ( ! empty( $args['desc'] ) ) {
637
-        $output .= '<span class="wpinv-description">' . esc_html( $args['desc'] ) . '</span>';
636
+    if (!empty($args['desc'])) {
637
+        $output .= '<span class="wpinv-description">' . esc_html($args['desc']) . '</span>';
638 638
     }
639 639
     $output .= '</span>';
640 640
 
641 641
     return $output;
642 642
 }
643 643
 
644
-function wpinv_html_ajax_user_search( $args = array() ) {
644
+function wpinv_html_ajax_user_search($args = array()) {
645 645
     $defaults = array(
646 646
         'name'        => 'user_id',
647 647
         'value'       => null,
648
-        'placeholder' => __( 'Enter username', 'invoicing' ),
648
+        'placeholder' => __('Enter username', 'invoicing'),
649 649
         'label'       => null,
650 650
         'desc'        => null,
651 651
         'class'       => '',
@@ -654,13 +654,13 @@  discard block
 block discarded – undo
654 654
         'data'        => false
655 655
     );
656 656
 
657
-    $args = wp_parse_args( $args, $defaults );
657
+    $args = wp_parse_args($args, $defaults);
658 658
 
659 659
     $args['class'] = 'wpinv-ajax-user-search ' . $args['class'];
660 660
 
661 661
     $output  = '<span class="wpinv_user_search_wrap">';
662
-        $output .= wpinv_html_text( $args );
663
-        $output .= '<span class="wpinv_user_search_results hidden"><a class="wpinv-ajax-user-cancel" title="' . __( 'Cancel', 'invoicing' ) . '" aria-label="' . __( 'Cancel', 'invoicing' ) . '" href="#">x</a><span></span></span>';
662
+        $output .= wpinv_html_text($args);
663
+        $output .= '<span class="wpinv_user_search_results hidden"><a class="wpinv-ajax-user-cancel" title="' . __('Cancel', 'invoicing') . '" aria-label="' . __('Cancel', 'invoicing') . '" href="#">x</a><span></span></span>';
664 664
     $output .= '</span>';
665 665
 
666 666
     return $output;
@@ -669,7 +669,7 @@  discard block
 block discarded – undo
669 669
 function wpinv_ip_geolocation() {
670 670
     global $wpinv_euvat;
671 671
     
672
-    $ip         = !empty( $_GET['ip'] ) ? sanitize_text_field( $_GET['ip'] ) : '';    
672
+    $ip         = !empty($_GET['ip']) ? sanitize_text_field($_GET['ip']) : '';    
673 673
     $content    = '';
674 674
     $iso        = '';
675 675
     $country    = '';
@@ -680,69 +680,69 @@  discard block
 block discarded – undo
680 680
     $credit     = '';
681 681
     $address    = '';
682 682
     
683
-    if ( wpinv_get_option( 'vat_ip_lookup' ) == 'geoip2' && $geoip2_city = $wpinv_euvat->geoip2_city_record( $ip ) ) {
683
+    if (wpinv_get_option('vat_ip_lookup') == 'geoip2' && $geoip2_city = $wpinv_euvat->geoip2_city_record($ip)) {
684 684
         try {
685 685
             $iso        = $geoip2_city->country->isoCode;
686 686
             $country    = $geoip2_city->country->name;
687
-            $region     = !empty( $geoip2_city->subdivisions ) && !empty( $geoip2_city->subdivisions[0]->name ) ? $geoip2_city->subdivisions[0]->name : '';
687
+            $region     = !empty($geoip2_city->subdivisions) && !empty($geoip2_city->subdivisions[0]->name) ? $geoip2_city->subdivisions[0]->name : '';
688 688
             $city       = $geoip2_city->city->name;
689 689
             $longitude  = $geoip2_city->location->longitude;
690 690
             $latitude   = $geoip2_city->location->latitude;
691
-            $credit     = __( 'Geolocated using the information by MaxMind, available from <a href="http://www.maxmind.com" target="_blank">www.maxmind.com</a>', 'invoicing' );
692
-        } catch( Exception $e ) { }
691
+            $credit     = __('Geolocated using the information by MaxMind, available from <a href="http://www.maxmind.com" target="_blank">www.maxmind.com</a>', 'invoicing');
692
+        } catch (Exception $e) { }
693 693
     }
694 694
     
695
-    if ( !( $iso && $longitude && $latitude ) && function_exists( 'simplexml_load_file' ) ) {
695
+    if (!($iso && $longitude && $latitude) && function_exists('simplexml_load_file')) {
696 696
         try {
697
-            $load_xml = simplexml_load_file( 'http://www.geoplugin.net/xml.gp?ip=' . $ip );
697
+            $load_xml = simplexml_load_file('http://www.geoplugin.net/xml.gp?ip=' . $ip);
698 698
             
699
-            if ( !empty( $load_xml ) && isset( $load_xml->geoplugin_countryCode ) && !empty( $load_xml->geoplugin_latitude ) && !empty( $load_xml->geoplugin_longitude ) ) {
699
+            if (!empty($load_xml) && isset($load_xml->geoplugin_countryCode) && !empty($load_xml->geoplugin_latitude) && !empty($load_xml->geoplugin_longitude)) {
700 700
                 $iso        = $load_xml->geoplugin_countryCode;
701 701
                 $country    = $load_xml->geoplugin_countryName;
702
-                $region     = !empty( $load_xml->geoplugin_regionName ) ? $load_xml->geoplugin_regionName : '';
703
-                $city       = !empty( $load_xml->geoplugin_city ) ? $load_xml->geoplugin_city : '';
702
+                $region     = !empty($load_xml->geoplugin_regionName) ? $load_xml->geoplugin_regionName : '';
703
+                $city       = !empty($load_xml->geoplugin_city) ? $load_xml->geoplugin_city : '';
704 704
                 $longitude  = $load_xml->geoplugin_longitude;
705 705
                 $latitude   = $load_xml->geoplugin_latitude;
706 706
                 $credit     = $load_xml->geoplugin_credit;
707
-                $credit     = __( 'Geolocated using the information by geoPlugin, available from <a href="http://www.geoplugin.com" target="_blank">www.geoplugin.com</a>', 'invoicing' ) . '<br>' . $load_xml->geoplugin_credit;
707
+                $credit     = __('Geolocated using the information by geoPlugin, available from <a href="http://www.geoplugin.com" target="_blank">www.geoplugin.com</a>', 'invoicing') . '<br>' . $load_xml->geoplugin_credit;
708 708
             }
709
-        } catch( Exception $e ) { }
709
+        } catch (Exception $e) { }
710 710
     }
711 711
     
712
-    if ( $iso && $longitude && $latitude ) {
713
-        if ( $city ) {
712
+    if ($iso && $longitude && $latitude) {
713
+        if ($city) {
714 714
             $address .= $city . ', ';
715 715
         }
716 716
         
717
-        if ( $region ) {
717
+        if ($region) {
718 718
             $address .= $region . ', ';
719 719
         }
720 720
         
721 721
         $address .= $country . ' (' . $iso . ')';
722
-        $content = '<p>'. sprintf( __( '<b>Address:</b> %s', 'invoicing' ), $address ) . '</p>';
723
-        $content .= '<p>'. $credit . '</p>';
722
+        $content = '<p>' . sprintf(__('<b>Address:</b> %s', 'invoicing'), $address) . '</p>';
723
+        $content .= '<p>' . $credit . '</p>';
724 724
     } else {
725
-        $content = '<p>'. sprintf( __( 'Unable to find geolocation for the IP address: %s', 'invoicing' ), $ip ) . '</p>';
725
+        $content = '<p>' . sprintf(__('Unable to find geolocation for the IP address: %s', 'invoicing'), $ip) . '</p>';
726 726
     }
727 727
     ?>
728 728
 <!DOCTYPE html>
729
-<html><head><title><?php echo sprintf( __( 'IP: %s', 'invoicing' ), $ip );?></title><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-rc.1/leaflet.css" /><style>html,body{height:100%;margin:0;padding:0;width:100%}body{text-align:center;background:#fff;color:#222;font-size:small;}body,p{font-family: arial,sans-serif}#map{margin:auto;width:100%;height:calc(100% - 120px);min-height:240px}</style></head>
729
+<html><head><title><?php echo sprintf(__('IP: %s', 'invoicing'), $ip); ?></title><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-rc.1/leaflet.css" /><style>html,body{height:100%;margin:0;padding:0;width:100%}body{text-align:center;background:#fff;color:#222;font-size:small;}body,p{font-family: arial,sans-serif}#map{margin:auto;width:100%;height:calc(100% - 120px);min-height:240px}</style></head>
730 730
 <body>
731
-    <?php if ( $latitude && $latitude ) { ?>
731
+    <?php if ($latitude && $latitude) { ?>
732 732
     <div id="map"></div>
733 733
         <script src="//cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-rc.1/leaflet.js"></script>
734 734
         <script type="text/javascript">
735 735
         var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
736 736
             osmAttrib = '&copy; <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors',
737 737
             osm = L.tileLayer(osmUrl, {maxZoom: 18, attribution: osmAttrib}),
738
-            latlng = new L.LatLng(<?php echo $latitude;?>, <?php echo $longitude;?>);
738
+            latlng = new L.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>);
739 739
 
740 740
         var map = new L.Map('map', {center: latlng, zoom: 12, layers: [osm]});
741 741
 
742 742
         var marker = new L.Marker(latlng);
743 743
         map.addLayer(marker);
744 744
 
745
-        marker.bindPopup("<p><?php esc_attr_e( $address );?></p>");
745
+        marker.bindPopup("<p><?php esc_attr_e($address); ?></p>");
746 746
     </script>
747 747
     <?php } ?>
748 748
     <div style="height:100px"><?php echo $content; ?></div>
@@ -750,18 +750,18 @@  discard block
 block discarded – undo
750 750
 <?php
751 751
     exit;
752 752
 }
753
-add_action( 'wp_ajax_wpinv_ip_geolocation', 'wpinv_ip_geolocation' );
754
-add_action( 'wp_ajax_nopriv_wpinv_ip_geolocation', 'wpinv_ip_geolocation' );
753
+add_action('wp_ajax_wpinv_ip_geolocation', 'wpinv_ip_geolocation');
754
+add_action('wp_ajax_nopriv_wpinv_ip_geolocation', 'wpinv_ip_geolocation');
755 755
 
756 756
 // Set up the template for the invoice.
757
-function wpinv_template( $template ) {
757
+function wpinv_template($template) {
758 758
     global $post, $wp_query;
759 759
     
760
-    if ( ( is_single() || is_404() ) && !empty( $post->ID ) && (get_post_type( $post->ID ) == 'wpi_invoice' or get_post_type( $post->ID ) == 'wpi_quote')) {
761
-        if ( wpinv_user_can_view_invoice( $post->ID ) ) {
762
-            $template = wpinv_get_template_part( 'wpinv-invoice-print', false, false );
760
+    if ((is_single() || is_404()) && !empty($post->ID) && (get_post_type($post->ID) == 'wpi_invoice' or get_post_type($post->ID) == 'wpi_quote')) {
761
+        if (wpinv_user_can_view_invoice($post->ID)) {
762
+            $template = wpinv_get_template_part('wpinv-invoice-print', false, false);
763 763
         } else {
764
-            $template = wpinv_get_template_part( 'wpinv-invalid-access', false, false );
764
+            $template = wpinv_get_template_part('wpinv-invalid-access', false, false);
765 765
         }
766 766
     }
767 767
 
@@ -770,7 +770,7 @@  discard block
 block discarded – undo
770 770
 
771 771
 function wpinv_get_business_address() {
772 772
     $business_address   = wpinv_store_address();
773
-    $business_address   = !empty( $business_address ) ? wpautop( wp_kses_post( $business_address ) ) : '';
773
+    $business_address   = !empty($business_address) ? wpautop(wp_kses_post($business_address)) : '';
774 774
     
775 775
     /*
776 776
     $default_country    = wpinv_get_default_country();
@@ -794,7 +794,7 @@  discard block
 block discarded – undo
794 794
     
795 795
     $business_address = $business_address ? '<div class="address">' . $business_address . '</div>' : '';
796 796
     
797
-    return apply_filters( 'wpinv_get_business_address', $business_address );
797
+    return apply_filters('wpinv_get_business_address', $business_address);
798 798
 }
799 799
 
800 800
 function wpinv_display_from_address() {
@@ -804,187 +804,187 @@  discard block
 block discarded – undo
804 804
     if (empty($from_name)) {
805 805
         $from_name = wpinv_get_business_name();
806 806
     }
807
-    ?><div class="from col-xs-2"><strong><?php _e( 'From:', 'invoicing' ) ?></strong></div>
807
+    ?><div class="from col-xs-2"><strong><?php _e('From:', 'invoicing') ?></strong></div>
808 808
     <div class="wrapper col-xs-10">
809
-        <div class="name"><?php echo esc_html( $from_name ); ?></div>
810
-        <?php if ( $address = wpinv_get_business_address() ) { ?>
811
-        <div class="address"><?php echo wpautop( wp_kses_post( $address ) );?></div>
809
+        <div class="name"><?php echo esc_html($from_name); ?></div>
810
+        <?php if ($address = wpinv_get_business_address()) { ?>
811
+        <div class="address"><?php echo wpautop(wp_kses_post($address)); ?></div>
812 812
         <?php } ?>
813
-        <?php if ( $email_from = wpinv_mail_get_from_address() ) { ?>
814
-        <div class="email_from"><?php echo wp_sprintf( __( 'Email: %s', 'invoicing' ), $email_from );?></div>
813
+        <?php if ($email_from = wpinv_mail_get_from_address()) { ?>
814
+        <div class="email_from"><?php echo wp_sprintf(__('Email: %s', 'invoicing'), $email_from); ?></div>
815 815
         <?php } ?>
816 816
     </div>
817 817
     <?php
818 818
 }
819 819
 
820
-function wpinv_watermark( $id = 0 ) {
821
-    $output = wpinv_get_watermark( $id );
820
+function wpinv_watermark($id = 0) {
821
+    $output = wpinv_get_watermark($id);
822 822
     
823
-    return apply_filters( 'wpinv_get_watermark', $output, $id );
823
+    return apply_filters('wpinv_get_watermark', $output, $id);
824 824
 }
825 825
 
826
-function wpinv_get_watermark( $id ) {
827
-    if ( !$id > 0 ) {
826
+function wpinv_get_watermark($id) {
827
+    if (!$id > 0) {
828 828
         return NULL;
829 829
     }
830
-    $invoice = wpinv_get_invoice( $id );
830
+    $invoice = wpinv_get_invoice($id);
831 831
     
832
-    if ( !empty( $invoice ) && "wpi_invoice" === $invoice->post_type ) {
833
-        if ( $invoice->is_paid() ) {
834
-            return __( 'Paid', 'invoicing' );
832
+    if (!empty($invoice) && "wpi_invoice" === $invoice->post_type) {
833
+        if ($invoice->is_paid()) {
834
+            return __('Paid', 'invoicing');
835 835
         }
836
-        if ( $invoice->is_refunded() ) {
837
-            return __( 'Refunded', 'invoicing' );
836
+        if ($invoice->is_refunded()) {
837
+            return __('Refunded', 'invoicing');
838 838
         }
839
-        if ( $invoice->has_status( array( 'wpi-cancelled' ) ) ) {
840
-            return __( 'Cancelled', 'invoicing' );
839
+        if ($invoice->has_status(array('wpi-cancelled'))) {
840
+            return __('Cancelled', 'invoicing');
841 841
         }
842 842
     }
843 843
     
844 844
     return NULL;
845 845
 }
846 846
 
847
-function wpinv_display_invoice_details( $invoice ) {
847
+function wpinv_display_invoice_details($invoice) {
848 848
     global $wpinv_euvat;
849 849
     
850 850
     $invoice_id = $invoice->ID;
851 851
     $vat_name   = $wpinv_euvat->get_vat_name();
852 852
     $use_taxes  = wpinv_use_taxes();
853 853
     
854
-    $invoice_status = wpinv_get_invoice_status( $invoice_id );
854
+    $invoice_status = wpinv_get_invoice_status($invoice_id);
855 855
     ?>
856 856
     <table class="table table-bordered table-sm">
857
-        <?php if ( $invoice_number = wpinv_get_invoice_number( $invoice_id ) ) { ?>
857
+        <?php if ($invoice_number = wpinv_get_invoice_number($invoice_id)) { ?>
858 858
             <tr class="wpi-row-number">
859
-                <th><?php echo apply_filters( 'wpinv_invoice_number_label', __( 'Invoice Number', 'invoicing' ), $invoice ); ?></th>
860
-                <td><?php echo esc_html( $invoice_number ); ?></td>
859
+                <th><?php echo apply_filters('wpinv_invoice_number_label', __('Invoice Number', 'invoicing'), $invoice); ?></th>
860
+                <td><?php echo esc_html($invoice_number); ?></td>
861 861
             </tr>
862 862
         <?php } ?>
863 863
         <tr class="wpi-row-status">
864
-            <th><?php echo apply_filters( 'wpinv_invoice_status_label', __( 'Invoice Status', 'invoicing' ), $invoice ); ?></th>
865
-            <td><?php echo wpinv_invoice_status_label( $invoice_status, wpinv_get_invoice_status( $invoice_id, true ) ); ?></td>
864
+            <th><?php echo apply_filters('wpinv_invoice_status_label', __('Invoice Status', 'invoicing'), $invoice); ?></th>
865
+            <td><?php echo wpinv_invoice_status_label($invoice_status, wpinv_get_invoice_status($invoice_id, true)); ?></td>
866 866
         </tr>
867
-        <?php if ( $invoice->is_renewal() ) { ?>
867
+        <?php if ($invoice->is_renewal()) { ?>
868 868
         <tr class="wpi-row-parent">
869
-            <th><?php echo apply_filters( 'wpinv_invoice_parent_invoice_label', __( 'Parent Invoice', 'invoicing' ), $invoice ); ?></th>
870
-            <td><?php echo wpinv_invoice_link( $invoice->parent_invoice ); ?></td>
869
+            <th><?php echo apply_filters('wpinv_invoice_parent_invoice_label', __('Parent Invoice', 'invoicing'), $invoice); ?></th>
870
+            <td><?php echo wpinv_invoice_link($invoice->parent_invoice); ?></td>
871 871
         </tr>
872 872
         <?php } ?>
873
-        <?php if ( ( $gateway_name = wpinv_get_payment_gateway_name( $invoice_id ) ) && ( $invoice->is_paid() || $invoice->is_refunded() ) ) { ?>
873
+        <?php if (($gateway_name = wpinv_get_payment_gateway_name($invoice_id)) && ($invoice->is_paid() || $invoice->is_refunded())) { ?>
874 874
             <tr class="wpi-row-gateway">
875
-                <th><?php echo apply_filters( 'wpinv_invoice_payment_method_label', __( 'Payment Method', 'invoicing' ), $invoice ); ?></th>
875
+                <th><?php echo apply_filters('wpinv_invoice_payment_method_label', __('Payment Method', 'invoicing'), $invoice); ?></th>
876 876
                 <td><?php echo $gateway_name; ?></td>
877 877
             </tr>
878 878
         <?php } ?>
879
-        <?php if ( $invoice_date = wpinv_get_invoice_date( $invoice_id ) ) { ?>
879
+        <?php if ($invoice_date = wpinv_get_invoice_date($invoice_id)) { ?>
880 880
             <tr class="wpi-row-date">
881
-                <th><?php echo apply_filters( 'wpinv_invoice_date_label', __( 'Invoice Date', 'invoicing' ), $invoice ); ?></th>
881
+                <th><?php echo apply_filters('wpinv_invoice_date_label', __('Invoice Date', 'invoicing'), $invoice); ?></th>
882 882
                 <td><?php echo $invoice_date; ?></td>
883 883
             </tr>
884 884
         <?php } ?>
885
-        <?php if ( wpinv_get_option( 'overdue_active' ) && $invoice->needs_payment() && ( $due_date = $invoice->get_due_date( true ) ) ) { ?>
885
+        <?php if (wpinv_get_option('overdue_active') && $invoice->needs_payment() && ($due_date = $invoice->get_due_date(true))) { ?>
886 886
             <tr class="wpi-row-date">
887
-                <th><?php echo apply_filters( 'wpinv_invoice_due_date_label', __( 'Due Date', 'invoicing' ), $invoice ); ?></th>
887
+                <th><?php echo apply_filters('wpinv_invoice_due_date_label', __('Due Date', 'invoicing'), $invoice); ?></th>
888 888
                 <td><?php echo $due_date; ?></td>
889 889
             </tr>
890 890
         <?php } ?>
891
-        <?php if ( $owner_vat_number = $wpinv_euvat->get_vat_number() ) { ?>
891
+        <?php if ($owner_vat_number = $wpinv_euvat->get_vat_number()) { ?>
892 892
             <tr class="wpi-row-ovatno">
893
-                <th><?php echo apply_filters( 'wpinv_invoice_owner_vat_number_label', wp_sprintf( __( 'Owner %s Number', 'invoicing' ), $vat_name ), $invoice, $vat_name ); ?></th>
893
+                <th><?php echo apply_filters('wpinv_invoice_owner_vat_number_label', wp_sprintf(__('Owner %s Number', 'invoicing'), $vat_name), $invoice, $vat_name); ?></th>
894 894
                 <td><?php echo $owner_vat_number; ?></td>
895 895
             </tr>
896 896
         <?php } ?>
897
-        <?php if ( $use_taxes && ( $user_vat_number = wpinv_get_invoice_vat_number( $invoice_id ) ) ) { ?>
897
+        <?php if ($use_taxes && ($user_vat_number = wpinv_get_invoice_vat_number($invoice_id))) { ?>
898 898
             <tr class="wpi-row-uvatno">
899
-                <th><?php echo apply_filters( 'wpinv_invoice_user_vat_number_label', wp_sprintf( __( 'Invoice %s Number', 'invoicing' ), $vat_name ), $invoice, $vat_name ); ?></th>
899
+                <th><?php echo apply_filters('wpinv_invoice_user_vat_number_label', wp_sprintf(__('Invoice %s Number', 'invoicing'), $vat_name), $invoice, $vat_name); ?></th>
900 900
                 <td><?php echo $user_vat_number; ?></td>
901 901
             </tr>
902 902
         <?php } ?>
903 903
         <tr class="table-active tr-total wpi-row-total">
904
-            <th><strong><?php _e( 'Total Amount', 'invoicing' ) ?></strong></th>
905
-            <td><strong><?php echo wpinv_payment_total( $invoice_id, true ); ?></strong></td>
904
+            <th><strong><?php _e('Total Amount', 'invoicing') ?></strong></th>
905
+            <td><strong><?php echo wpinv_payment_total($invoice_id, true); ?></strong></td>
906 906
         </tr>
907 907
     </table>
908 908
 <?php
909 909
 }
910 910
 
911
-function wpinv_display_to_address( $invoice_id = 0 ) {
912
-    $invoice = wpinv_get_invoice( $invoice_id );
911
+function wpinv_display_to_address($invoice_id = 0) {
912
+    $invoice = wpinv_get_invoice($invoice_id);
913 913
     
914
-    if ( empty( $invoice ) ) {
914
+    if (empty($invoice)) {
915 915
         return NULL;
916 916
     }
917 917
     
918 918
     $billing_details = $invoice->get_user_info();
919
-    $output = '<div class="to col-xs-2"><strong>' . __( 'To:', 'invoicing' ) . '</strong></div>';
919
+    $output = '<div class="to col-xs-2"><strong>' . __('To:', 'invoicing') . '</strong></div>';
920 920
     $output .= '<div class="wrapper col-xs-10">';
921 921
     
922 922
     ob_start();
923
-    do_action( 'wpinv_display_to_address_top', $invoice );
923
+    do_action('wpinv_display_to_address_top', $invoice);
924 924
     $output .= ob_get_clean();
925 925
     
926
-    $output .= '<div class="name">' . esc_html( trim( $billing_details['first_name'] . ' ' . $billing_details['last_name'] ) ) . '</div>';
927
-    if ( $company = $billing_details['company'] ) {
928
-        $output .= '<div class="company">' . wpautop( wp_kses_post( $company ) ) . '</div>';
926
+    $output .= '<div class="name">' . esc_html(trim($billing_details['first_name'] . ' ' . $billing_details['last_name'])) . '</div>';
927
+    if ($company = $billing_details['company']) {
928
+        $output .= '<div class="company">' . wpautop(wp_kses_post($company)) . '</div>';
929 929
     }
930 930
     $address_row = '';
931
-    if ( $address = $billing_details['address'] ) {
932
-        $address_row .= wpautop( wp_kses_post( $address ) );
931
+    if ($address = $billing_details['address']) {
932
+        $address_row .= wpautop(wp_kses_post($address));
933 933
     }
934 934
     
935 935
     $address_fields = array();
936
-    if ( !empty( $billing_details['city'] ) ) {
936
+    if (!empty($billing_details['city'])) {
937 937
         $address_fields[] = $billing_details['city'];
938 938
     }
939 939
     
940
-    $billing_country = !empty( $billing_details['country'] ) ? $billing_details['country'] : '';
941
-    if ( !empty( $billing_details['state'] ) ) {
942
-        $address_fields[] = wpinv_state_name( $billing_details['state'], $billing_country );
940
+    $billing_country = !empty($billing_details['country']) ? $billing_details['country'] : '';
941
+    if (!empty($billing_details['state'])) {
942
+        $address_fields[] = wpinv_state_name($billing_details['state'], $billing_country);
943 943
     }
944 944
     
945
-    if ( !empty( $billing_country ) ) {
946
-        $address_fields[] = wpinv_country_name( $billing_country );
945
+    if (!empty($billing_country)) {
946
+        $address_fields[] = wpinv_country_name($billing_country);
947 947
     }
948 948
     
949
-    if ( !empty( $address_fields ) ) {
950
-        $address_fields = implode( ", ", $address_fields );
949
+    if (!empty($address_fields)) {
950
+        $address_fields = implode(", ", $address_fields);
951 951
         
952
-        if ( !empty( $billing_details['zip'] ) ) {
952
+        if (!empty($billing_details['zip'])) {
953 953
             $address_fields .= ' ' . $billing_details['zip'];
954 954
         }
955 955
         
956
-        $address_row .= wpautop( wp_kses_post( $address_fields ) );
956
+        $address_row .= wpautop(wp_kses_post($address_fields));
957 957
     }
958 958
     
959
-    if ( $address_row ) {
959
+    if ($address_row) {
960 960
         $output .= '<div class="address">' . $address_row . '</div>';
961 961
     }
962 962
     
963
-    if ( $phone = $invoice->get_phone() ) {
964
-        $output .= '<div class="phone">' . wp_sprintf( __( 'Phone: %s', 'invoicing' ), esc_html( $phone ) ) . '</div>';
963
+    if ($phone = $invoice->get_phone()) {
964
+        $output .= '<div class="phone">' . wp_sprintf(__('Phone: %s', 'invoicing'), esc_html($phone)) . '</div>';
965 965
     }
966
-    if ( $email = $invoice->get_email() ) {
967
-        $output .= '<div class="email">' . wp_sprintf( __( 'Email: %s' , 'invoicing'), esc_html( $email ) ) . '</div>';
966
+    if ($email = $invoice->get_email()) {
967
+        $output .= '<div class="email">' . wp_sprintf(__('Email: %s', 'invoicing'), esc_html($email)) . '</div>';
968 968
     }
969 969
     
970 970
     ob_start();
971
-    do_action( 'wpinv_display_to_address_bottom', $invoice );
971
+    do_action('wpinv_display_to_address_bottom', $invoice);
972 972
     $output .= ob_get_clean();
973 973
     
974 974
     $output .= '</div>';
975
-    $output = apply_filters( 'wpinv_display_to_address', $output, $invoice );
975
+    $output = apply_filters('wpinv_display_to_address', $output, $invoice);
976 976
 
977 977
     echo $output;
978 978
 }
979 979
 
980
-function wpinv_display_line_items( $invoice_id = 0 ) {
980
+function wpinv_display_line_items($invoice_id = 0) {
981 981
     global $wpinv_euvat, $ajax_cart_details;
982
-    $invoice            = wpinv_get_invoice( $invoice_id );
982
+    $invoice            = wpinv_get_invoice($invoice_id);
983 983
     $quantities_enabled = wpinv_item_quantities_enabled();
984 984
     $use_taxes          = wpinv_use_taxes();
985 985
     $zero_tax           = !(float)$invoice->get_tax() > 0 ? true : false;
986
-    $tax_label           = $use_taxes && $invoice->has_vat() ? $wpinv_euvat->get_vat_name() : __( 'Tax', 'invoicing' );
987
-    $tax_title          = !$zero_tax && $use_taxes ? ( wpinv_prices_include_tax() ? wp_sprintf( __( '(%s Incl.)', 'invoicing' ), $tax_label ) : wp_sprintf( __( '(%s Excl.)', 'invoicing' ), $tax_label ) ) : '';
986
+    $tax_label = $use_taxes && $invoice->has_vat() ? $wpinv_euvat->get_vat_name() : __('Tax', 'invoicing');
987
+    $tax_title          = !$zero_tax && $use_taxes ? (wpinv_prices_include_tax() ? wp_sprintf(__('(%s Incl.)', 'invoicing'), $tax_label) : wp_sprintf(__('(%s Excl.)', 'invoicing'), $tax_label)) : '';
988 988
     
989 989
     $cart_details       = $invoice->get_cart_details();
990 990
     $ajax_cart_details  = $cart_details;
@@ -993,64 +993,64 @@  discard block
 block discarded – undo
993 993
     <table class="table table-sm table-bordered table-responsive">
994 994
         <thead>
995 995
             <tr>
996
-                <th class="name"><strong><?php _e( "Item Name", "invoicing" );?></strong></th>
997
-                <th class="rate"><strong><?php _e( "Price", "invoicing" );?></strong></th>
996
+                <th class="name"><strong><?php _e("Item Name", "invoicing"); ?></strong></th>
997
+                <th class="rate"><strong><?php _e("Price", "invoicing"); ?></strong></th>
998 998
                 <?php if ($quantities_enabled) { ?>
999
-                    <th class="qty"><strong><?php _e( "Qty", "invoicing" );?></strong></th>
999
+                    <th class="qty"><strong><?php _e("Qty", "invoicing"); ?></strong></th>
1000 1000
                 <?php } ?>
1001 1001
                 <?php if ($use_taxes && !$zero_tax) { ?>
1002 1002
                     <th class="tax"><strong><?php echo $tax_label . ' <span class="normal small">(%)</span>'; ?></strong></th>
1003 1003
                 <?php } ?>
1004
-                <th class="total"><strong><?php echo __( "Item Total", "invoicing" ) . ' <span class="normal small">' . $tax_title . '<span>';?></strong></th>
1004
+                <th class="total"><strong><?php echo __("Item Total", "invoicing") . ' <span class="normal small">' . $tax_title . '<span>'; ?></strong></th>
1005 1005
             </tr>
1006 1006
         </thead>
1007 1007
         <tbody>
1008 1008
         <?php 
1009
-            if ( !empty( $cart_details ) ) {
1010
-                do_action( 'wpinv_display_line_items_start', $invoice );
1009
+            if (!empty($cart_details)) {
1010
+                do_action('wpinv_display_line_items_start', $invoice);
1011 1011
                 
1012 1012
                 $count = 0;
1013 1013
                 $cols  = 3;
1014
-                foreach ( $cart_details as $key => $cart_item ) {
1015
-                    $item_id    = !empty($cart_item['id']) ? absint( $cart_item['id'] ) : '';
1016
-                    $item_price = isset($cart_item["item_price"]) ? wpinv_round_amount( $cart_item["item_price"] ) : 0;
1017
-                    $line_total = isset($cart_item["subtotal"]) ? wpinv_round_amount( $cart_item["subtotal"] ) : 0;
1018
-                    $quantity   = !empty($cart_item['quantity']) && (int)$cart_item['quantity'] > 0 ? absint( $cart_item['quantity'] ) : 1;
1014
+                foreach ($cart_details as $key => $cart_item) {
1015
+                    $item_id    = !empty($cart_item['id']) ? absint($cart_item['id']) : '';
1016
+                    $item_price = isset($cart_item["item_price"]) ? wpinv_round_amount($cart_item["item_price"]) : 0;
1017
+                    $line_total = isset($cart_item["subtotal"]) ? wpinv_round_amount($cart_item["subtotal"]) : 0;
1018
+                    $quantity   = !empty($cart_item['quantity']) && (int)$cart_item['quantity'] > 0 ? absint($cart_item['quantity']) : 1;
1019 1019
                     
1020
-                    $item       = $item_id ? new WPInv_Item( $item_id ) : NULL;
1020
+                    $item       = $item_id ? new WPInv_Item($item_id) : NULL;
1021 1021
                     $summary    = '';
1022 1022
                     $cols       = 3;
1023
-                    if ( !empty($item) ) {
1023
+                    if (!empty($item)) {
1024 1024
                         $item_name  = $item->get_name();
1025 1025
                         $summary    = $item->get_summary();
1026 1026
                     }
1027
-                    $item_name  = !empty($cart_item['name']) ? $cart_item['name'] : $item_name;
1027
+                    $item_name = !empty($cart_item['name']) ? $cart_item['name'] : $item_name;
1028 1028
                     
1029
-                    $summary = apply_filters( 'wpinv_print_invoice_line_item_summary', $summary, $cart_item, $item, $invoice );
1029
+                    $summary = apply_filters('wpinv_print_invoice_line_item_summary', $summary, $cart_item, $item, $invoice);
1030 1030
                     
1031 1031
                     $item_tax       = '';
1032 1032
                     $tax_rate       = '';
1033
-                    if ( $use_taxes && $cart_item['tax'] > 0 && $cart_item['subtotal'] > 0 ) {
1034
-                        $item_tax = wpinv_price( wpinv_format_amount( $cart_item['tax'] ), $invoice->get_currency() );
1035
-                        $tax_rate = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : ( $cart_item['tax'] / $cart_item['subtotal'] ) * 100;
1036
-                        $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount( $tax_rate, 4 ) : '';
1033
+                    if ($use_taxes && $cart_item['tax'] > 0 && $cart_item['subtotal'] > 0) {
1034
+                        $item_tax = wpinv_price(wpinv_format_amount($cart_item['tax']), $invoice->get_currency());
1035
+                        $tax_rate = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : ($cart_item['tax'] / $cart_item['subtotal']) * 100;
1036
+                        $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount($tax_rate, 4) : '';
1037 1037
                         $tax_rate = $tax_rate != '' ? ' <small class="tax-rate">(' . $tax_rate . '%)</small>' : '';
1038 1038
                     }
1039 1039
                     
1040 1040
                     $line_item_tax = $item_tax . $tax_rate;
1041 1041
                     
1042
-                    if ( $line_item_tax === '' ) {
1042
+                    if ($line_item_tax === '') {
1043 1043
                         $line_item_tax = 0; // Zero tax
1044 1044
                     }
1045 1045
                     
1046
-                    $line_item = '<tr class="row-' . ( ($count % 2 == 0) ? 'even' : 'odd' ) . ' wpinv-item">';
1047
-                        $line_item .= '<td class="name">' . esc_html__( $item_name, 'invoicing' ) . wpinv_get_item_suffix( $item );
1048
-                        if ( $summary !== '' ) {
1049
-                            $line_item .= '<br/><small class="meta">' . wpautop( wp_kses_post( $summary ) ) . '</small>';
1046
+                    $line_item = '<tr class="row-' . (($count % 2 == 0) ? 'even' : 'odd') . ' wpinv-item">';
1047
+                        $line_item .= '<td class="name">' . esc_html__($item_name, 'invoicing') . wpinv_get_item_suffix($item);
1048
+                        if ($summary !== '') {
1049
+                            $line_item .= '<br/><small class="meta">' . wpautop(wp_kses_post($summary)) . '</small>';
1050 1050
                         }
1051 1051
                         $line_item .= '</td>';
1052 1052
                         
1053
-                        $line_item .= '<td class="rate">' . esc_html__( wpinv_price( wpinv_format_amount( $item_price ), $invoice->get_currency() ) ) . '</td>';
1053
+                        $line_item .= '<td class="rate">' . esc_html__(wpinv_price(wpinv_format_amount($item_price), $invoice->get_currency())) . '</td>';
1054 1054
                         if ($quantities_enabled) {
1055 1055
                             $cols++;
1056 1056
                             $line_item .= '<td class="qty">' . $quantity . '</td>';
@@ -1059,55 +1059,55 @@  discard block
 block discarded – undo
1059 1059
                             $cols++;
1060 1060
                             $line_item .= '<td class="tax">' . $line_item_tax . '</td>';
1061 1061
                         }
1062
-                        $line_item .= '<td class="total">' . esc_html__( wpinv_price( wpinv_format_amount( $line_total ), $invoice->get_currency() ) ) . '</td>';
1062
+                        $line_item .= '<td class="total">' . esc_html__(wpinv_price(wpinv_format_amount($line_total), $invoice->get_currency())) . '</td>';
1063 1063
                     $line_item .= '</tr>';
1064 1064
                     
1065
-                    echo apply_filters( 'wpinv_display_line_item', $line_item, $cart_item, $invoice, $cols );
1065
+                    echo apply_filters('wpinv_display_line_item', $line_item, $cart_item, $invoice, $cols);
1066 1066
 
1067 1067
                     $count++;
1068 1068
                 }
1069 1069
                 
1070
-                do_action( 'wpinv_display_before_subtotal', $invoice, $cols );
1070
+                do_action('wpinv_display_before_subtotal', $invoice, $cols);
1071 1071
                 ?>
1072 1072
                 <tr class="row-sub-total row_odd">
1073
-                    <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php echo apply_filters( 'wpinv_print_cart_subtotal_label', '<strong>' . __( 'Sub Total', 'invoicing' ) . ':</strong>', $invoice ); ?></td>
1074
-                    <td class="total"><strong><?php _e( wpinv_subtotal( $invoice_id, true ) ) ?></strong></td>
1073
+                    <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php echo apply_filters('wpinv_print_cart_subtotal_label', '<strong>' . __('Sub Total', 'invoicing') . ':</strong>', $invoice); ?></td>
1074
+                    <td class="total"><strong><?php _e(wpinv_subtotal($invoice_id, true)) ?></strong></td>
1075 1075
                 </tr>
1076 1076
                 <?php
1077
-                do_action( 'wpinv_display_after_subtotal', $invoice, $cols );
1077
+                do_action('wpinv_display_after_subtotal', $invoice, $cols);
1078 1078
                 
1079
-                if ( wpinv_discount( $invoice_id, false ) > 0 ) {
1080
-                    do_action( 'wpinv_display_before_discount', $invoice, $cols );
1079
+                if (wpinv_discount($invoice_id, false) > 0) {
1080
+                    do_action('wpinv_display_before_discount', $invoice, $cols);
1081 1081
                     ?>
1082 1082
                         <tr class="row-discount">
1083
-                            <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php wpinv_get_discount_label( wpinv_discount_code( $invoice_id ) ); ?>:</td>
1084
-                            <td class="total"><?php echo wpinv_discount( $invoice_id, true, true ); ?></td>
1083
+                            <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php wpinv_get_discount_label(wpinv_discount_code($invoice_id)); ?>:</td>
1084
+                            <td class="total"><?php echo wpinv_discount($invoice_id, true, true); ?></td>
1085 1085
                         </tr>
1086 1086
                     <?php
1087
-                    do_action( 'wpinv_display_after_discount', $invoice, $cols );
1087
+                    do_action('wpinv_display_after_discount', $invoice, $cols);
1088 1088
                 }
1089 1089
                 
1090
-                if ( $use_taxes ) {
1091
-                    do_action( 'wpinv_display_before_tax', $invoice, $cols );
1090
+                if ($use_taxes) {
1091
+                    do_action('wpinv_display_before_tax', $invoice, $cols);
1092 1092
                     ?>
1093 1093
                     <tr class="row-tax">
1094
-                        <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php echo apply_filters( 'wpinv_print_cart_tax_label', '<strong>' . $tax_label . ':</strong>', $invoice ); ?></td>
1095
-                        <td class="total"><?php _e( wpinv_tax( $invoice_id, true ) ) ?></td>
1094
+                        <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php echo apply_filters('wpinv_print_cart_tax_label', '<strong>' . $tax_label . ':</strong>', $invoice); ?></td>
1095
+                        <td class="total"><?php _e(wpinv_tax($invoice_id, true)) ?></td>
1096 1096
                     </tr>
1097 1097
                     <?php
1098
-                    do_action( 'wpinv_display_after_tax', $invoice, $cols );
1098
+                    do_action('wpinv_display_after_tax', $invoice, $cols);
1099 1099
                 }
1100 1100
                 
1101
-                do_action( 'wpinv_display_before_total', $invoice, $cols );
1101
+                do_action('wpinv_display_before_total', $invoice, $cols);
1102 1102
                 ?>
1103 1103
                 <tr class="table-active row-total">
1104
-                    <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php echo apply_filters( 'wpinv_print_cart_total_label', '<strong>' . __( 'Total', 'invoicing' ) . ':</strong>', $invoice ); ?></td>
1105
-                    <td class="total"><strong><?php _e( wpinv_payment_total( $invoice_id, true ) ) ?></strong></td>
1104
+                    <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php echo apply_filters('wpinv_print_cart_total_label', '<strong>' . __('Total', 'invoicing') . ':</strong>', $invoice); ?></td>
1105
+                    <td class="total"><strong><?php _e(wpinv_payment_total($invoice_id, true)) ?></strong></td>
1106 1106
                 </tr>
1107 1107
                 <?php
1108
-                do_action( 'wpinv_display_after_total', $invoice, $cols );
1108
+                do_action('wpinv_display_after_total', $invoice, $cols);
1109 1109
                 
1110
-                do_action( 'wpinv_display_line_end', $invoice, $cols );
1110
+                do_action('wpinv_display_line_end', $invoice, $cols);
1111 1111
             }
1112 1112
         ?>
1113 1113
         </tbody>
@@ -1116,35 +1116,35 @@  discard block
 block discarded – undo
1116 1116
     echo ob_get_clean();
1117 1117
 }
1118 1118
 
1119
-function wpinv_display_invoice_totals( $invoice_id = 0 ) {    
1119
+function wpinv_display_invoice_totals($invoice_id = 0) {    
1120 1120
     $use_taxes = wpinv_use_taxes();
1121 1121
     
1122
-    do_action( 'wpinv_before_display_totals_table', $invoice_id ); 
1122
+    do_action('wpinv_before_display_totals_table', $invoice_id); 
1123 1123
     ?>
1124 1124
     <table class="table table-sm table-bordered table-responsive">
1125 1125
         <tbody>
1126
-            <?php do_action( 'wpinv_before_display_totals' ); ?>
1126
+            <?php do_action('wpinv_before_display_totals'); ?>
1127 1127
             <tr class="row-sub-total">
1128
-                <td class="rate"><strong><?php _e( 'Sub Total', 'invoicing' ); ?></strong></td>
1129
-                <td class="total"><strong><?php _e( wpinv_subtotal( $invoice_id, true ) ) ?></strong></td>
1128
+                <td class="rate"><strong><?php _e('Sub Total', 'invoicing'); ?></strong></td>
1129
+                <td class="total"><strong><?php _e(wpinv_subtotal($invoice_id, true)) ?></strong></td>
1130 1130
             </tr>
1131
-            <?php do_action( 'wpinv_after_display_totals' ); ?>
1132
-            <?php if ( wpinv_discount( $invoice_id, false ) > 0 ) { ?>
1131
+            <?php do_action('wpinv_after_display_totals'); ?>
1132
+            <?php if (wpinv_discount($invoice_id, false) > 0) { ?>
1133 1133
                 <tr class="row-discount">
1134
-                    <td class="rate"><?php wpinv_get_discount_label( wpinv_discount_code( $invoice_id ) ); ?></td>
1135
-                    <td class="total"><?php echo wpinv_discount( $invoice_id, true, true ); ?></td>
1134
+                    <td class="rate"><?php wpinv_get_discount_label(wpinv_discount_code($invoice_id)); ?></td>
1135
+                    <td class="total"><?php echo wpinv_discount($invoice_id, true, true); ?></td>
1136 1136
                 </tr>
1137
-            <?php do_action( 'wpinv_after_display_discount' ); ?>
1137
+            <?php do_action('wpinv_after_display_discount'); ?>
1138 1138
             <?php } ?>
1139
-            <?php if ( $use_taxes ) { ?>
1139
+            <?php if ($use_taxes) { ?>
1140 1140
             <tr class="row-tax">
1141
-                <td class="rate"><?php _e( 'Tax', 'invoicing' ); ?></td>
1142
-                <td class="total"><?php _e( wpinv_tax( $invoice_id, true ) ) ?></td>
1141
+                <td class="rate"><?php _e('Tax', 'invoicing'); ?></td>
1142
+                <td class="total"><?php _e(wpinv_tax($invoice_id, true)) ?></td>
1143 1143
             </tr>
1144
-            <?php do_action( 'wpinv_after_display_tax' ); ?>
1144
+            <?php do_action('wpinv_after_display_tax'); ?>
1145 1145
             <?php } ?>
1146
-            <?php if ( $fees = wpinv_get_fees( $invoice_id ) ) { ?>
1147
-                <?php foreach ( $fees as $fee ) { ?>
1146
+            <?php if ($fees = wpinv_get_fees($invoice_id)) { ?>
1147
+                <?php foreach ($fees as $fee) { ?>
1148 1148
                     <tr class="row-fee">
1149 1149
                         <td class="rate"><?php echo $fee['label']; ?></td>
1150 1150
                         <td class="total"><?php echo $fee['amount_display']; ?></td>
@@ -1152,73 +1152,73 @@  discard block
 block discarded – undo
1152 1152
                 <?php } ?>
1153 1153
             <?php } ?>
1154 1154
             <tr class="table-active row-total">
1155
-                <td class="rate"><strong><?php _e( 'Total', 'invoicing' ) ?></strong></td>
1156
-                <td class="total"><strong><?php _e( wpinv_payment_total( $invoice_id, true ) ) ?></strong></td>
1155
+                <td class="rate"><strong><?php _e('Total', 'invoicing') ?></strong></td>
1156
+                <td class="total"><strong><?php _e(wpinv_payment_total($invoice_id, true)) ?></strong></td>
1157 1157
             </tr>
1158
-            <?php do_action( 'wpinv_after_totals' ); ?>
1158
+            <?php do_action('wpinv_after_totals'); ?>
1159 1159
         </tbody>
1160 1160
 
1161 1161
     </table>
1162 1162
 
1163
-    <?php do_action( 'wpinv_after_totals_table' );
1163
+    <?php do_action('wpinv_after_totals_table');
1164 1164
 }
1165 1165
 
1166
-function wpinv_display_payments_info( $invoice_id = 0, $echo = true ) {
1167
-    $invoice = wpinv_get_invoice( $invoice_id );
1166
+function wpinv_display_payments_info($invoice_id = 0, $echo = true) {
1167
+    $invoice = wpinv_get_invoice($invoice_id);
1168 1168
     
1169 1169
     ob_start();
1170
-    do_action( 'wpinv_before_display_payments_info', $invoice_id );
1171
-    if ( ( $gateway_title = $invoice->get_gateway_title() ) || $invoice->is_paid() || $invoice->is_refunded() ) {
1170
+    do_action('wpinv_before_display_payments_info', $invoice_id);
1171
+    if (($gateway_title = $invoice->get_gateway_title()) || $invoice->is_paid() || $invoice->is_refunded()) {
1172 1172
         ?>
1173 1173
         <div class="wpi-payment-info">
1174
-            <p class="wpi-payment-gateway"><?php echo wp_sprintf( __( 'Payment via %s', 'invoicing' ), $gateway_title ? $gateway_title : __( 'Manually', 'invoicing' ) ); ?></p>
1175
-            <?php if ( $gateway_title ) { ?>
1176
-            <p class="wpi-payment-transid"><?php echo wp_sprintf( __( 'Transaction ID: %s', 'invoicing' ), $invoice->get_transaction_id() ); ?></p>
1174
+            <p class="wpi-payment-gateway"><?php echo wp_sprintf(__('Payment via %s', 'invoicing'), $gateway_title ? $gateway_title : __('Manually', 'invoicing')); ?></p>
1175
+            <?php if ($gateway_title) { ?>
1176
+            <p class="wpi-payment-transid"><?php echo wp_sprintf(__('Transaction ID: %s', 'invoicing'), $invoice->get_transaction_id()); ?></p>
1177 1177
             <?php } ?>
1178 1178
         </div>
1179 1179
         <?php
1180 1180
     }
1181
-    do_action( 'wpinv_after_display_payments_info', $invoice_id );
1181
+    do_action('wpinv_after_display_payments_info', $invoice_id);
1182 1182
     $outout = ob_get_clean();
1183 1183
     
1184
-    if ( $echo ) {
1184
+    if ($echo) {
1185 1185
         echo $outout;
1186 1186
     } else {
1187 1187
         return $outout;
1188 1188
     }
1189 1189
 }
1190 1190
 
1191
-function wpinv_display_style( $invoice ) {
1192
-    wp_register_style( 'wpinv-single-style', WPINV_PLUGIN_URL . 'assets/css/invoice.css', array(), WPINV_VERSION );
1191
+function wpinv_display_style($invoice) {
1192
+    wp_register_style('wpinv-single-style', WPINV_PLUGIN_URL . 'assets/css/invoice.css', array(), WPINV_VERSION);
1193 1193
     
1194
-    wp_print_styles( 'open-sans' );
1195
-    wp_print_styles( 'wpinv-single-style' );
1194
+    wp_print_styles('open-sans');
1195
+    wp_print_styles('wpinv-single-style');
1196 1196
 }
1197
-add_action( 'wpinv_invoice_print_head', 'wpinv_display_style' );
1198
-add_action( 'wpinv_invalid_invoice_head', 'wpinv_display_style' );
1197
+add_action('wpinv_invoice_print_head', 'wpinv_display_style');
1198
+add_action('wpinv_invalid_invoice_head', 'wpinv_display_style');
1199 1199
 
1200 1200
 function wpinv_checkout_billing_details() {  
1201 1201
     $invoice_id = (int)wpinv_get_invoice_cart_id();
1202 1202
     if (empty($invoice_id)) {
1203
-        wpinv_error_log( 'Invoice id not found', 'ERROR', __FILE__, __LINE__ );
1203
+        wpinv_error_log('Invoice id not found', 'ERROR', __FILE__, __LINE__);
1204 1204
         return null;
1205 1205
     }
1206 1206
     
1207
-    $invoice = wpinv_get_invoice_cart( $invoice_id );
1207
+    $invoice = wpinv_get_invoice_cart($invoice_id);
1208 1208
     if (empty($invoice)) {
1209
-        wpinv_error_log( 'Invoice not found', 'ERROR', __FILE__, __LINE__ );
1209
+        wpinv_error_log('Invoice not found', 'ERROR', __FILE__, __LINE__);
1210 1210
         return null;
1211 1211
     }
1212 1212
     $user_id        = $invoice->get_user_id();
1213 1213
     $user_info      = $invoice->get_user_info();
1214
-    $address_info   = wpinv_get_user_address( $user_id );
1214
+    $address_info   = wpinv_get_user_address($user_id);
1215 1215
     
1216
-    if ( empty( $user_info['first_name'] ) && !empty( $user_info['first_name'] ) ) {
1216
+    if (empty($user_info['first_name']) && !empty($user_info['first_name'])) {
1217 1217
         $user_info['first_name'] = $user_info['first_name'];
1218 1218
         $user_info['last_name'] = $user_info['last_name'];
1219 1219
     }
1220 1220
     
1221
-    if ( ( ( empty( $user_info['country'] ) && !empty( $address_info['country'] ) ) || ( empty( $user_info['state'] ) && !empty( $address_info['state'] ) && $user_info['country'] == $address_info['country'] ) ) ) {
1221
+    if (((empty($user_info['country']) && !empty($address_info['country'])) || (empty($user_info['state']) && !empty($address_info['state']) && $user_info['country'] == $address_info['country']))) {
1222 1222
         $user_info['country']   = $address_info['country'];
1223 1223
         $user_info['state']     = $address_info['state'];
1224 1224
         $user_info['city']      = $address_info['city'];
@@ -1234,98 +1234,98 @@  discard block
 block discarded – undo
1234 1234
         'address'
1235 1235
     );
1236 1236
     
1237
-    foreach ( $address_fields as $field ) {
1238
-        if ( empty( $user_info[$field] ) ) {
1237
+    foreach ($address_fields as $field) {
1238
+        if (empty($user_info[$field])) {
1239 1239
             $user_info[$field] = $address_info[$field];
1240 1240
         }
1241 1241
     }
1242 1242
     
1243
-    return apply_filters( 'wpinv_checkout_billing_details', $user_info, $invoice );
1243
+    return apply_filters('wpinv_checkout_billing_details', $user_info, $invoice);
1244 1244
 }
1245 1245
 
1246 1246
 function wpinv_admin_get_line_items($invoice = array()) {
1247 1247
     $item_quantities    = wpinv_item_quantities_enabled();
1248 1248
     $use_taxes          = wpinv_use_taxes();
1249 1249
     
1250
-    if ( empty( $invoice ) ) {
1250
+    if (empty($invoice)) {
1251 1251
         return NULL;
1252 1252
     }
1253 1253
     
1254 1254
     $cart_items = $invoice->get_cart_details();
1255
-    if ( empty( $cart_items ) ) {
1255
+    if (empty($cart_items)) {
1256 1256
         return NULL;
1257 1257
     }
1258 1258
     ob_start();
1259 1259
     
1260
-    do_action( 'wpinv_admin_before_line_items', $cart_items, $invoice );
1260
+    do_action('wpinv_admin_before_line_items', $cart_items, $invoice);
1261 1261
     
1262 1262
     $count = 0;
1263
-    foreach ( $cart_items as $key => $cart_item ) {
1263
+    foreach ($cart_items as $key => $cart_item) {
1264 1264
         $item_id    = $cart_item['id'];
1265
-        $wpi_item   = $item_id > 0 ? new WPInv_Item( $item_id ) : NULL;
1265
+        $wpi_item   = $item_id > 0 ? new WPInv_Item($item_id) : NULL;
1266 1266
         
1267 1267
         if (empty($wpi_item)) {
1268 1268
             continue;
1269 1269
         }
1270 1270
         
1271
-        $item_price     = wpinv_price( wpinv_format_amount( $cart_item['item_price'] ), $invoice->get_currency() );
1272
-        $quantity       = !empty( $cart_item['quantity'] ) && $cart_item['quantity'] > 0 ? $cart_item['quantity'] : 1;
1273
-        $item_subtotal  = wpinv_price( wpinv_format_amount( $cart_item['subtotal'] ), $invoice->get_currency() );
1271
+        $item_price     = wpinv_price(wpinv_format_amount($cart_item['item_price']), $invoice->get_currency());
1272
+        $quantity       = !empty($cart_item['quantity']) && $cart_item['quantity'] > 0 ? $cart_item['quantity'] : 1;
1273
+        $item_subtotal  = wpinv_price(wpinv_format_amount($cart_item['subtotal']), $invoice->get_currency());
1274 1274
         $can_remove     = true;
1275 1275
         
1276
-        $summary = apply_filters( 'wpinv_admin_invoice_line_item_summary', '', $cart_item, $wpi_item, $invoice );
1276
+        $summary = apply_filters('wpinv_admin_invoice_line_item_summary', '', $cart_item, $wpi_item, $invoice);
1277 1277
         
1278 1278
         $item_tax       = '';
1279 1279
         $tax_rate       = '';
1280
-        if ( $cart_item['tax'] > 0 && $cart_item['subtotal'] > 0 ) {
1281
-            $item_tax = wpinv_price( wpinv_format_amount( $cart_item['tax'] ), $invoice->get_currency() );
1282
-            $tax_rate = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : ( $cart_item['tax'] / $cart_item['subtotal'] ) * 100;
1283
-            $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount( $tax_rate, 4 ) : '';
1280
+        if ($cart_item['tax'] > 0 && $cart_item['subtotal'] > 0) {
1281
+            $item_tax = wpinv_price(wpinv_format_amount($cart_item['tax']), $invoice->get_currency());
1282
+            $tax_rate = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : ($cart_item['tax'] / $cart_item['subtotal']) * 100;
1283
+            $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount($tax_rate, 4) : '';
1284 1284
             $tax_rate = $tax_rate != '' ? ' <span class="tax-rate">(' . $tax_rate . '%)</span>' : '';
1285 1285
         }
1286 1286
         $line_item_tax = $item_tax . $tax_rate;
1287 1287
         
1288
-        if ( $line_item_tax === '' ) {
1288
+        if ($line_item_tax === '') {
1289 1289
             $line_item_tax = 0; // Zero tax
1290 1290
         }
1291 1291
 
1292
-        $line_item = '<tr class="item item-' . ( ($count % 2 == 0) ? 'even' : 'odd' ) . '" data-item-id="' . $item_id . '">';
1292
+        $line_item = '<tr class="item item-' . (($count % 2 == 0) ? 'even' : 'odd') . '" data-item-id="' . $item_id . '">';
1293 1293
             $line_item .= '<td class="id">' . $item_id . '</td>';
1294
-            $line_item .= '<td class="title"><a href="' . get_edit_post_link( $item_id ) . '" target="_blank">' . $cart_item['name'] . '</a>' . wpinv_get_item_suffix( $wpi_item );
1295
-            if ( $summary !== '' ) {
1296
-                $line_item .= '<span class="meta">' . wpautop( wp_kses_post( $summary ) ) . '</span>';
1294
+            $line_item .= '<td class="title"><a href="' . get_edit_post_link($item_id) . '" target="_blank">' . $cart_item['name'] . '</a>' . wpinv_get_item_suffix($wpi_item);
1295
+            if ($summary !== '') {
1296
+                $line_item .= '<span class="meta">' . wpautop(wp_kses_post($summary)) . '</span>';
1297 1297
             }
1298 1298
             $line_item .= '</td>';
1299 1299
             $line_item .= '<td class="price">' . $item_price . '</td>';
1300 1300
             
1301
-            if ( $item_quantities ) {
1302
-                if ( count( $cart_items ) == 1 && $quantity <= 1 ) {
1301
+            if ($item_quantities) {
1302
+                if (count($cart_items) == 1 && $quantity <= 1) {
1303 1303
                     $can_remove = false;
1304 1304
                 }
1305 1305
                 $line_item .= '<td class="qty" data-quantity="' . $quantity . '">&nbsp;&times;&nbsp;' . $quantity . '</td>';
1306 1306
             } else {
1307
-                if ( count( $cart_items ) == 1 ) {
1307
+                if (count($cart_items) == 1) {
1308 1308
                     $can_remove = false;
1309 1309
                 }
1310 1310
             }
1311 1311
             $line_item .= '<td class="total">' . $item_subtotal . '</td>';
1312 1312
             
1313
-            if ( $use_taxes ) {
1313
+            if ($use_taxes) {
1314 1314
                 $line_item .= '<td class="tax">' . $line_item_tax . '</td>';
1315 1315
             }
1316 1316
             $line_item .= '<td class="action">';
1317
-            if ( !$invoice->is_paid() && !$invoice->is_refunded() && $can_remove ) {
1317
+            if (!$invoice->is_paid() && !$invoice->is_refunded() && $can_remove) {
1318 1318
                 $line_item .= '<i class="fa fa-remove wpinv-item-remove"></i>';
1319 1319
             }
1320 1320
             $line_item .= '</td>';
1321 1321
         $line_item .= '</tr>';
1322 1322
         
1323
-        echo apply_filters( 'wpinv_admin_line_item', $line_item, $cart_item, $invoice );
1323
+        echo apply_filters('wpinv_admin_line_item', $line_item, $cart_item, $invoice);
1324 1324
         
1325 1325
         $count++;
1326 1326
     } 
1327 1327
     
1328
-    do_action( 'wpinv_admin_after_line_items', $cart_items, $invoice );
1328
+    do_action('wpinv_admin_after_line_items', $cart_items, $invoice);
1329 1329
     
1330 1330
     return ob_get_clean();
1331 1331
 }
@@ -1336,35 +1336,35 @@  discard block
 block discarded – undo
1336 1336
     // Set current invoice id.
1337 1337
     $wpi_checkout_id = wpinv_get_invoice_cart_id();
1338 1338
     
1339
-    $form_action  = esc_url( wpinv_get_checkout_uri() );
1339
+    $form_action = esc_url(wpinv_get_checkout_uri());
1340 1340
 
1341 1341
     ob_start();
1342 1342
         echo '<div id="wpinv_checkout_wrap">';
1343 1343
         
1344
-        if ( wpinv_get_cart_contents() || wpinv_cart_has_fees() ) {
1344
+        if (wpinv_get_cart_contents() || wpinv_cart_has_fees()) {
1345 1345
             ?>
1346 1346
             <div id="wpinv_checkout_form_wrap" class="wpinv_clearfix table-responsive">
1347
-                <?php do_action( 'wpinv_before_checkout_form' ); ?>
1347
+                <?php do_action('wpinv_before_checkout_form'); ?>
1348 1348
                 <form id="wpinv_checkout_form" class="wpi-form" action="<?php echo $form_action; ?>" method="POST">
1349 1349
                     <?php
1350
-                    do_action( 'wpinv_checkout_form_top' );
1351
-                    do_action( 'wpinv_checkout_billing_info' );
1352
-                    do_action( 'wpinv_checkout_cart' );
1353
-                    do_action( 'wpinv_payment_mode_select'  );
1354
-                    do_action( 'wpinv_checkout_form_bottom' )
1350
+                    do_action('wpinv_checkout_form_top');
1351
+                    do_action('wpinv_checkout_billing_info');
1352
+                    do_action('wpinv_checkout_cart');
1353
+                    do_action('wpinv_payment_mode_select');
1354
+                    do_action('wpinv_checkout_form_bottom')
1355 1355
                     ?>
1356 1356
                 </form>
1357
-                <?php do_action( 'wpinv_after_purchase_form' ); ?>
1357
+                <?php do_action('wpinv_after_purchase_form'); ?>
1358 1358
             </div><!--end #wpinv_checkout_form_wrap-->
1359 1359
         <?php
1360 1360
         } else {
1361
-            do_action( 'wpinv_cart_empty' );
1361
+            do_action('wpinv_cart_empty');
1362 1362
         }
1363 1363
         echo '</div><!--end #wpinv_checkout_wrap-->';
1364 1364
     return ob_get_clean();
1365 1365
 }
1366 1366
 
1367
-function wpinv_checkout_cart( $cart_details = array(), $echo = true ) {
1367
+function wpinv_checkout_cart($cart_details = array(), $echo = true) {
1368 1368
     global $ajax_cart_details;
1369 1369
     $ajax_cart_details = $cart_details;
1370 1370
     /*
@@ -1379,25 +1379,25 @@  discard block
 block discarded – undo
1379 1379
     }
1380 1380
     */
1381 1381
     ob_start();
1382
-    do_action( 'wpinv_before_checkout_cart' );
1382
+    do_action('wpinv_before_checkout_cart');
1383 1383
     echo '<div id="wpinv_checkout_cart_form" method="post">';
1384 1384
         echo '<div id="wpinv_checkout_cart_wrap">';
1385
-            wpinv_get_template_part( 'wpinv-checkout-cart' );
1385
+            wpinv_get_template_part('wpinv-checkout-cart');
1386 1386
         echo '</div>';
1387 1387
     echo '</div>';
1388
-    do_action( 'wpinv_after_checkout_cart' );
1388
+    do_action('wpinv_after_checkout_cart');
1389 1389
     $content = ob_get_clean();
1390 1390
     
1391
-    if ( $echo ) {
1391
+    if ($echo) {
1392 1392
         echo $content;
1393 1393
     } else {
1394 1394
         return $content;
1395 1395
     }
1396 1396
 }
1397
-add_action( 'wpinv_checkout_cart', 'wpinv_checkout_cart', 10 );
1397
+add_action('wpinv_checkout_cart', 'wpinv_checkout_cart', 10);
1398 1398
 
1399 1399
 function wpinv_empty_cart_message() {
1400
-	return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' );
1400
+	return apply_filters('wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __('Your cart is empty.', 'invoicing') . '</span>');
1401 1401
 }
1402 1402
 
1403 1403
 /**
@@ -1409,91 +1409,91 @@  discard block
 block discarded – undo
1409 1409
 function wpinv_empty_checkout_cart() {
1410 1410
 	echo wpinv_empty_cart_message();
1411 1411
 }
1412
-add_action( 'wpinv_cart_empty', 'wpinv_empty_checkout_cart' );
1412
+add_action('wpinv_cart_empty', 'wpinv_empty_checkout_cart');
1413 1413
 
1414 1414
 function wpinv_save_cart_button() {
1415
-    if ( wpinv_is_cart_saving_disabled() )
1415
+    if (wpinv_is_cart_saving_disabled())
1416 1416
         return;
1417 1417
 ?>
1418
-    <a class="wpinv-cart-saving-button wpinv-submit button" id="wpinv-save-cart-button" href="<?php echo esc_url( add_query_arg( 'wpi_action', 'save_cart' ) ); ?>"><?php _e( 'Save Cart', 'invoicing' ); ?></a>
1418
+    <a class="wpinv-cart-saving-button wpinv-submit button" id="wpinv-save-cart-button" href="<?php echo esc_url(add_query_arg('wpi_action', 'save_cart')); ?>"><?php _e('Save Cart', 'invoicing'); ?></a>
1419 1419
 <?php
1420 1420
 }
1421 1421
 
1422 1422
 function wpinv_update_cart_button() {
1423
-    if ( !wpinv_item_quantities_enabled() )
1423
+    if (!wpinv_item_quantities_enabled())
1424 1424
         return;
1425 1425
 ?>
1426
-    <input type="submit" name="wpinv_update_cart_submit" class="wpinv-submit wpinv-no-js button" value="<?php _e( 'Update Cart', 'invoicing' ); ?>"/>
1426
+    <input type="submit" name="wpinv_update_cart_submit" class="wpinv-submit wpinv-no-js button" value="<?php _e('Update Cart', 'invoicing'); ?>"/>
1427 1427
     <input type="hidden" name="wpi_action" value="update_cart"/>
1428 1428
 <?php
1429 1429
 }
1430 1430
 
1431 1431
 function wpinv_checkout_cart_columns() {
1432 1432
     $default = 3;
1433
-    if ( wpinv_item_quantities_enabled() ) {
1433
+    if (wpinv_item_quantities_enabled()) {
1434 1434
         $default++;
1435 1435
     }
1436 1436
     
1437
-    if ( wpinv_use_taxes() ) {
1437
+    if (wpinv_use_taxes()) {
1438 1438
         $default++;
1439 1439
     }
1440 1440
 
1441
-    return apply_filters( 'wpinv_checkout_cart_columns', $default );
1441
+    return apply_filters('wpinv_checkout_cart_columns', $default);
1442 1442
 }
1443 1443
 
1444 1444
 function wpinv_display_cart_messages() {
1445 1445
     global $wpi_session;
1446 1446
 
1447
-    $messages = $wpi_session->get( 'wpinv_cart_messages' );
1447
+    $messages = $wpi_session->get('wpinv_cart_messages');
1448 1448
 
1449
-    if ( $messages ) {
1450
-        foreach ( $messages as $message_id => $message ) {
1449
+    if ($messages) {
1450
+        foreach ($messages as $message_id => $message) {
1451 1451
             // Try and detect what type of message this is
1452
-            if ( strpos( strtolower( $message ), 'error' ) ) {
1452
+            if (strpos(strtolower($message), 'error')) {
1453 1453
                 $type = 'error';
1454
-            } elseif ( strpos( strtolower( $message ), 'success' ) ) {
1454
+            } elseif (strpos(strtolower($message), 'success')) {
1455 1455
                 $type = 'success';
1456 1456
             } else {
1457 1457
                 $type = 'info';
1458 1458
             }
1459 1459
 
1460
-            $classes = apply_filters( 'wpinv_' . $type . '_class', array( 'wpinv_errors', 'wpinv-alert', 'wpinv-alert-' . $type ) );
1460
+            $classes = apply_filters('wpinv_' . $type . '_class', array('wpinv_errors', 'wpinv-alert', 'wpinv-alert-' . $type));
1461 1461
 
1462
-            echo '<div class="' . implode( ' ', $classes ) . '">';
1462
+            echo '<div class="' . implode(' ', $classes) . '">';
1463 1463
                 // Loop message codes and display messages
1464 1464
                     echo '<p class="wpinv_error" id="wpinv_msg_' . $message_id . '">' . $message . '</p>';
1465 1465
             echo '</div>';
1466 1466
         }
1467 1467
 
1468 1468
         // Remove all of the cart saving messages
1469
-        $wpi_session->set( 'wpinv_cart_messages', null );
1469
+        $wpi_session->set('wpinv_cart_messages', null);
1470 1470
     }
1471 1471
 }
1472
-add_action( 'wpinv_before_checkout_cart', 'wpinv_display_cart_messages' );
1472
+add_action('wpinv_before_checkout_cart', 'wpinv_display_cart_messages');
1473 1473
 
1474 1474
 function wpinv_discount_field() {
1475
-    if ( isset( $_GET['wpi-gateway'] ) && wpinv_is_ajax_disabled() ) {
1475
+    if (isset($_GET['wpi-gateway']) && wpinv_is_ajax_disabled()) {
1476 1476
         return; // Only show before a payment method has been selected if ajax is disabled
1477 1477
     }
1478 1478
 
1479
-    if ( !wpinv_is_checkout() ) {
1479
+    if (!wpinv_is_checkout()) {
1480 1480
         return;
1481 1481
     }
1482 1482
 
1483
-    if ( wpinv_has_active_discounts() && wpinv_get_cart_total() ) {
1483
+    if (wpinv_has_active_discounts() && wpinv_get_cart_total()) {
1484 1484
     ?>
1485 1485
     <div id="wpinv-discount-field" class="panel panel-default">
1486 1486
         <div class="panel-body">
1487 1487
             <p>
1488
-                <label class="wpinv-label" for="wpinv_discount_code"><strong><?php _e( 'Discount', 'invoicing' ); ?></strong></label>
1489
-                <span class="wpinv-description"><?php _e( 'Enter a discount code if you have one.', 'invoicing' ); ?></span>
1488
+                <label class="wpinv-label" for="wpinv_discount_code"><strong><?php _e('Discount', 'invoicing'); ?></strong></label>
1489
+                <span class="wpinv-description"><?php _e('Enter a discount code if you have one.', 'invoicing'); ?></span>
1490 1490
             </p>
1491 1491
             <div class="form-group row">
1492 1492
                 <div class="col-sm-4">
1493
-                    <input class="wpinv-input form-control" type="text" id="wpinv_discount_code" name="wpinv_discount_code" placeholder="<?php _e( 'Enter discount code', 'invoicing' ); ?>"/>
1493
+                    <input class="wpinv-input form-control" type="text" id="wpinv_discount_code" name="wpinv_discount_code" placeholder="<?php _e('Enter discount code', 'invoicing'); ?>"/>
1494 1494
                 </div>
1495 1495
                 <div class="col-sm-3">
1496
-                    <button id="wpi-apply-discount" type="button" class="btn btn-success btn-sm"><?php _e( 'Apply Discount', 'invoicing' ); ?></button>
1496
+                    <button id="wpi-apply-discount" type="button" class="btn btn-success btn-sm"><?php _e('Apply Discount', 'invoicing'); ?></button>
1497 1497
                 </div>
1498 1498
                 <div style="clear:both"></div>
1499 1499
                 <div class="col-sm-12 wpinv-discount-msg">
@@ -1506,10 +1506,10 @@  discard block
 block discarded – undo
1506 1506
 <?php
1507 1507
     }
1508 1508
 }
1509
-add_action( 'wpinv_after_checkout_cart', 'wpinv_discount_field', -10 );
1509
+add_action('wpinv_after_checkout_cart', 'wpinv_discount_field', -10);
1510 1510
 
1511 1511
 function wpinv_agree_to_terms_js() {
1512
-    if ( wpinv_get_option( 'show_agree_to_terms', false ) ) {
1512
+    if (wpinv_get_option('show_agree_to_terms', false)) {
1513 1513
 ?>
1514 1514
 <script type="text/javascript">
1515 1515
     jQuery(document).ready(function($){
@@ -1524,126 +1524,126 @@  discard block
 block discarded – undo
1524 1524
 <?php
1525 1525
     }
1526 1526
 }
1527
-add_action( 'wpinv_checkout_form_top', 'wpinv_agree_to_terms_js' );
1527
+add_action('wpinv_checkout_form_top', 'wpinv_agree_to_terms_js');
1528 1528
 
1529 1529
 function wpinv_payment_mode_select() {
1530
-    $gateways = wpinv_get_enabled_payment_gateways( true );
1531
-    $gateways = apply_filters( 'wpinv_payment_gateways_on_cart', $gateways );
1530
+    $gateways = wpinv_get_enabled_payment_gateways(true);
1531
+    $gateways = apply_filters('wpinv_payment_gateways_on_cart', $gateways);
1532 1532
     $page_URL = wpinv_get_current_page_url();
1533
-    $invoice = wpinv_get_invoice( 0, true );
1533
+    $invoice = wpinv_get_invoice(0, true);
1534 1534
     
1535 1535
     do_action('wpinv_payment_mode_top');
1536 1536
     $invoice_id = (int)$invoice->ID;
1537
-    $chosen_gateway = wpinv_get_chosen_gateway( $invoice_id );
1537
+    $chosen_gateway = wpinv_get_chosen_gateway($invoice_id);
1538 1538
     ?>
1539
-    <div id="wpinv_payment_mode_select" data-gateway="<?php echo $chosen_gateway; ?>" <?php echo ( $invoice->is_free() ? 'style="display:none;" data-free="1"' : '' ); ?>>
1540
-            <?php do_action( 'wpinv_payment_mode_before_gateways_wrap' ); ?>
1539
+    <div id="wpinv_payment_mode_select" data-gateway="<?php echo $chosen_gateway; ?>" <?php echo ($invoice->is_free() ? 'style="display:none;" data-free="1"' : ''); ?>>
1540
+            <?php do_action('wpinv_payment_mode_before_gateways_wrap'); ?>
1541 1541
             <div id="wpinv-payment-mode-wrap" class="panel panel-default">
1542
-                <div class="panel-heading"><h3 class="panel-title"><?php _e( 'Select Payment Method', 'invoicing' ); ?></h3></div>
1542
+                <div class="panel-heading"><h3 class="panel-title"><?php _e('Select Payment Method', 'invoicing'); ?></h3></div>
1543 1543
                 <div class="panel-body list-group wpi-payment_methods">
1544 1544
                     <?php
1545
-                    do_action( 'wpinv_payment_mode_before_gateways' );
1545
+                    do_action('wpinv_payment_mode_before_gateways');
1546 1546
                     
1547
-                    if(!empty($gateways)){
1548
-	                    foreach ( $gateways as $gateway_id => $gateway ) {
1549
-		                    $checked = checked( $gateway_id, $chosen_gateway, false );
1550
-		                    $button_label = wpinv_get_gateway_button_label( $gateway_id );
1551
-		                    $description = wpinv_get_gateway_description( $gateway_id );
1547
+                    if (!empty($gateways)) {
1548
+	                    foreach ($gateways as $gateway_id => $gateway) {
1549
+		                    $checked = checked($gateway_id, $chosen_gateway, false);
1550
+		                    $button_label = wpinv_get_gateway_button_label($gateway_id);
1551
+		                    $description = wpinv_get_gateway_description($gateway_id);
1552 1552
 		                    ?>
1553 1553
 		                    <div class="list-group-item">
1554 1554
 			                    <div class="radio">
1555
-				                    <label><input type="radio" data-button-text="<?php echo esc_attr( $button_label );?>" value="<?php echo esc_attr( $gateway_id ) ;?>" <?php echo $checked ;?> id="wpi_gateway_<?php echo esc_attr( $gateway_id );?>" name="wpi-gateway" class="wpi-pmethod"><?php echo esc_html( $gateway['checkout_label'] ); ?></label>
1555
+				                    <label><input type="radio" data-button-text="<?php echo esc_attr($button_label); ?>" value="<?php echo esc_attr($gateway_id); ?>" <?php echo $checked; ?> id="wpi_gateway_<?php echo esc_attr($gateway_id); ?>" name="wpi-gateway" class="wpi-pmethod"><?php echo esc_html($gateway['checkout_label']); ?></label>
1556 1556
 			                    </div>
1557
-			                    <div style="display:none;" class="payment_box wpi_gateway_<?php echo esc_attr( $gateway_id );?>" role="alert">
1558
-				                    <?php if ( !empty( $description ) ) { ?>
1559
-					                    <div class="wpi-gateway-desc alert alert-info"><?php echo $description;?></div>
1557
+			                    <div style="display:none;" class="payment_box wpi_gateway_<?php echo esc_attr($gateway_id); ?>" role="alert">
1558
+				                    <?php if (!empty($description)) { ?>
1559
+					                    <div class="wpi-gateway-desc alert alert-info"><?php echo $description; ?></div>
1560 1560
 				                    <?php } ?>
1561
-				                    <?php do_action( 'wpinv_' . $gateway_id . '_cc_form', $invoice_id ) ;?>
1561
+				                    <?php do_action('wpinv_' . $gateway_id . '_cc_form', $invoice_id); ?>
1562 1562
 			                    </div>
1563 1563
 		                    </div>
1564 1564
 		                    <?php
1565 1565
 	                    }
1566
-                    }else{
1567
-	                    echo '<div class="alert alert-warning">'. __('No payment gateway active','invoicing') .'</div>';
1566
+                    } else {
1567
+	                    echo '<div class="alert alert-warning">' . __('No payment gateway active', 'invoicing') . '</div>';
1568 1568
                     }
1569 1569
 
1570
-                    do_action( 'wpinv_payment_mode_after_gateways' );
1570
+                    do_action('wpinv_payment_mode_after_gateways');
1571 1571
                     ?>
1572 1572
                 </div>
1573 1573
             </div>
1574
-            <?php do_action( 'wpinv_payment_mode_after_gateways_wrap' ); ?>
1574
+            <?php do_action('wpinv_payment_mode_after_gateways_wrap'); ?>
1575 1575
     </div>
1576 1576
     <?php
1577 1577
     do_action('wpinv_payment_mode_bottom');
1578 1578
 }
1579
-add_action( 'wpinv_payment_mode_select', 'wpinv_payment_mode_select' );
1579
+add_action('wpinv_payment_mode_select', 'wpinv_payment_mode_select');
1580 1580
 
1581 1581
 function wpinv_checkout_billing_info() {    
1582
-    if ( wpinv_is_checkout() ) {
1582
+    if (wpinv_is_checkout()) {
1583 1583
         $logged_in          = is_user_logged_in();
1584 1584
         $billing_details    = wpinv_checkout_billing_details();
1585
-        $selected_country   = !empty( $billing_details['country'] ) ? $billing_details['country'] : wpinv_default_billing_country();
1585
+        $selected_country   = !empty($billing_details['country']) ? $billing_details['country'] : wpinv_default_billing_country();
1586 1586
         ?>
1587 1587
         <div id="wpinv-fields" class="clearfix">
1588 1588
             <div id="wpi-billing" class="wpi-billing clearfix panel panel-default">
1589
-                <div class="panel-heading"><h3 class="panel-title"><?php _e( 'Billing Details', 'invoicing' );?></h3></div>
1589
+                <div class="panel-heading"><h3 class="panel-title"><?php _e('Billing Details', 'invoicing'); ?></h3></div>
1590 1590
                 <div id="wpinv-fields-box" class="panel-body">
1591
-                    <?php do_action( 'wpinv_checkout_billing_fields_first', $billing_details ); ?>
1591
+                    <?php do_action('wpinv_checkout_billing_fields_first', $billing_details); ?>
1592 1592
                     <p class="wpi-cart-field wpi-col2 wpi-colf">
1593
-                        <label for="wpinv_first_name" class="wpi-label"><?php _e( 'First Name', 'invoicing' );?><?php if ( wpinv_get_option( 'fname_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label>
1593
+                        <label for="wpinv_first_name" class="wpi-label"><?php _e('First Name', 'invoicing'); ?><?php if (wpinv_get_option('fname_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label>
1594 1594
                         <?php
1595
-                        echo wpinv_html_text( array(
1595
+                        echo wpinv_html_text(array(
1596 1596
                                 'id'            => 'wpinv_first_name',
1597 1597
                                 'name'          => 'wpinv_first_name',
1598 1598
                                 'value'         => $billing_details['first_name'],
1599 1599
                                 'class'         => 'wpi-input form-control',
1600
-                                'placeholder'   => __( 'First name', 'invoicing' ),
1601
-                                'required'      => (bool)wpinv_get_option( 'fname_mandatory' ),
1602
-                            ) );
1600
+                                'placeholder'   => __('First name', 'invoicing'),
1601
+                                'required'      => (bool)wpinv_get_option('fname_mandatory'),
1602
+                            ));
1603 1603
                         ?>
1604 1604
                     </p>
1605 1605
                     <p class="wpi-cart-field wpi-col2 wpi-coll">
1606
-                        <label for="wpinv_last_name" class="wpi-label"><?php _e( 'Last Name', 'invoicing' );?><?php if ( wpinv_get_option( 'lname_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label>
1606
+                        <label for="wpinv_last_name" class="wpi-label"><?php _e('Last Name', 'invoicing'); ?><?php if (wpinv_get_option('lname_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label>
1607 1607
                         <?php
1608
-                        echo wpinv_html_text( array(
1608
+                        echo wpinv_html_text(array(
1609 1609
                                 'id'            => 'wpinv_last_name',
1610 1610
                                 'name'          => 'wpinv_last_name',
1611 1611
                                 'value'         => $billing_details['last_name'],
1612 1612
                                 'class'         => 'wpi-input form-control',
1613
-                                'placeholder'   => __( 'Last name', 'invoicing' ),
1614
-                                'required'      => (bool)wpinv_get_option( 'lname_mandatory' ),
1615
-                            ) );
1613
+                                'placeholder'   => __('Last name', 'invoicing'),
1614
+                                'required'      => (bool)wpinv_get_option('lname_mandatory'),
1615
+                            ));
1616 1616
                         ?>
1617 1617
                     </p>
1618 1618
                     <p class="wpi-cart-field wpi-col2 wpi-colf">
1619
-                        <label for="wpinv_address" class="wpi-label"><?php _e( 'Address', 'invoicing' );?><?php if ( wpinv_get_option( 'address_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label>
1619
+                        <label for="wpinv_address" class="wpi-label"><?php _e('Address', 'invoicing'); ?><?php if (wpinv_get_option('address_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label>
1620 1620
                         <?php
1621
-                        echo wpinv_html_text( array(
1621
+                        echo wpinv_html_text(array(
1622 1622
                                 'id'            => 'wpinv_address',
1623 1623
                                 'name'          => 'wpinv_address',
1624 1624
                                 'value'         => $billing_details['address'],
1625 1625
                                 'class'         => 'wpi-input form-control',
1626
-                                'placeholder'   => __( 'Address', 'invoicing' ),
1627
-                                'required'      => (bool)wpinv_get_option( 'address_mandatory' ),
1628
-                            ) );
1626
+                                'placeholder'   => __('Address', 'invoicing'),
1627
+                                'required'      => (bool)wpinv_get_option('address_mandatory'),
1628
+                            ));
1629 1629
                         ?>
1630 1630
                     </p>
1631 1631
                     <p class="wpi-cart-field wpi-col2 wpi-coll">
1632
-                        <label for="wpinv_city" class="wpi-label"><?php _e( 'City', 'invoicing' );?><?php if ( wpinv_get_option( 'city_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label>
1632
+                        <label for="wpinv_city" class="wpi-label"><?php _e('City', 'invoicing'); ?><?php if (wpinv_get_option('city_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label>
1633 1633
                         <?php
1634
-                        echo wpinv_html_text( array(
1634
+                        echo wpinv_html_text(array(
1635 1635
                                 'id'            => 'wpinv_city',
1636 1636
                                 'name'          => 'wpinv_city',
1637 1637
                                 'value'         => $billing_details['city'],
1638 1638
                                 'class'         => 'wpi-input form-control',
1639
-                                'placeholder'   => __( 'City', 'invoicing' ),
1640
-                                'required'      => (bool)wpinv_get_option( 'city_mandatory' ),
1641
-                            ) );
1639
+                                'placeholder'   => __('City', 'invoicing'),
1640
+                                'required'      => (bool)wpinv_get_option('city_mandatory'),
1641
+                            ));
1642 1642
                         ?>
1643 1643
                     </p>
1644 1644
                     <p id="wpinv_country_box" class="wpi-cart-field wpi-col2 wpi-colf">
1645
-                        <label for="wpinv_country" class="wpi-label"><?php _e( 'Country', 'invoicing' );?><?php if ( wpinv_get_option( 'country_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label>
1646
-                        <?php echo wpinv_html_select( array(
1645
+                        <label for="wpinv_country" class="wpi-label"><?php _e('Country', 'invoicing'); ?><?php if (wpinv_get_option('country_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label>
1646
+                        <?php echo wpinv_html_select(array(
1647 1647
                             'options'          => wpinv_get_country_list(),
1648 1648
                             'name'             => 'wpinv_country',
1649 1649
                             'id'               => 'wpinv_country',
@@ -1651,16 +1651,16 @@  discard block
 block discarded – undo
1651 1651
                             'show_option_all'  => false,
1652 1652
                             'show_option_none' => false,
1653 1653
                             'class'            => 'wpi-input form-control',
1654
-                            'placeholder'      => __( 'Choose a country', 'invoicing' ),
1655
-                            'required'         => (bool)wpinv_get_option( 'country_mandatory' ),
1656
-                        ) ); ?>
1654
+                            'placeholder'      => __('Choose a country', 'invoicing'),
1655
+                            'required'         => (bool)wpinv_get_option('country_mandatory'),
1656
+                        )); ?>
1657 1657
                     </p>
1658 1658
                     <p id="wpinv_state_box" class="wpi-cart-field wpi-col2 wpi-coll">
1659
-                        <label for="wpinv_state" class="wpi-label"><?php _e( 'State / Province', 'invoicing' );?><?php if ( wpinv_get_option( 'state_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label>
1659
+                        <label for="wpinv_state" class="wpi-label"><?php _e('State / Province', 'invoicing'); ?><?php if (wpinv_get_option('state_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label>
1660 1660
                         <?php
1661
-                        $states = wpinv_get_country_states( $selected_country );
1662
-                        if( !empty( $states ) ) {
1663
-                            echo wpinv_html_select( array(
1661
+                        $states = wpinv_get_country_states($selected_country);
1662
+                        if (!empty($states)) {
1663
+                            echo wpinv_html_select(array(
1664 1664
                                 'options'          => $states,
1665 1665
                                 'name'             => 'wpinv_state',
1666 1666
                                 'id'               => 'wpinv_state',
@@ -1668,61 +1668,61 @@  discard block
 block discarded – undo
1668 1668
                                 'show_option_all'  => false,
1669 1669
                                 'show_option_none' => false,
1670 1670
                                 'class'            => 'wpi-input form-control',
1671
-                                'placeholder'      => __( 'Choose a state', 'invoicing' ),
1672
-                                'required'         => (bool)wpinv_get_option( 'state_mandatory' ),
1673
-                            ) );
1671
+                                'placeholder'      => __('Choose a state', 'invoicing'),
1672
+                                'required'         => (bool)wpinv_get_option('state_mandatory'),
1673
+                            ));
1674 1674
                         } else {
1675
-                            echo wpinv_html_text( array(
1675
+                            echo wpinv_html_text(array(
1676 1676
                                 'name'          => 'wpinv_state',
1677 1677
                                 'value'         => $billing_details['state'],
1678 1678
                                 'id'            => 'wpinv_state',
1679 1679
                                 'class'         => 'wpi-input form-control',
1680
-                                'placeholder'   => __( 'State / Province', 'invoicing' ),
1681
-                                'required'      => (bool)wpinv_get_option( 'state_mandatory' ),
1682
-                            ) );
1680
+                                'placeholder'   => __('State / Province', 'invoicing'),
1681
+                                'required'      => (bool)wpinv_get_option('state_mandatory'),
1682
+                            ));
1683 1683
                         }
1684 1684
                         ?>
1685 1685
                     </p>
1686 1686
                     <p class="wpi-cart-field wpi-col2 wpi-colf">
1687
-                        <label for="wpinv_zip" class="wpi-label"><?php _e( 'ZIP / Postcode', 'invoicing' );?><?php if ( wpinv_get_option( 'zip_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label>
1687
+                        <label for="wpinv_zip" class="wpi-label"><?php _e('ZIP / Postcode', 'invoicing'); ?><?php if (wpinv_get_option('zip_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label>
1688 1688
                         <?php
1689
-                        echo wpinv_html_text( array(
1689
+                        echo wpinv_html_text(array(
1690 1690
                                 'name'          => 'wpinv_zip',
1691 1691
                                 'value'         => $billing_details['zip'],
1692 1692
                                 'id'            => 'wpinv_zip',
1693 1693
                                 'class'         => 'wpi-input form-control',
1694
-                                'placeholder'   => __( 'ZIP / Postcode', 'invoicing' ),
1695
-                                'required'      => (bool)wpinv_get_option( 'zip_mandatory' ),
1696
-                            ) );
1694
+                                'placeholder'   => __('ZIP / Postcode', 'invoicing'),
1695
+                                'required'      => (bool)wpinv_get_option('zip_mandatory'),
1696
+                            ));
1697 1697
                         ?>
1698 1698
                     </p>
1699 1699
                     <p class="wpi-cart-field wpi-col2 wpi-coll">
1700
-                        <label for="wpinv_phone" class="wpi-label"><?php _e( 'Phone', 'invoicing' );?><?php if ( wpinv_get_option( 'phone_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label>
1700
+                        <label for="wpinv_phone" class="wpi-label"><?php _e('Phone', 'invoicing'); ?><?php if (wpinv_get_option('phone_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label>
1701 1701
                         <?php
1702
-                        echo wpinv_html_text( array(
1702
+                        echo wpinv_html_text(array(
1703 1703
                                 'id'            => 'wpinv_phone',
1704 1704
                                 'name'          => 'wpinv_phone',
1705 1705
                                 'value'         => $billing_details['phone'],
1706 1706
                                 'class'         => 'wpi-input form-control',
1707
-                                'placeholder'   => __( 'Phone', 'invoicing' ),
1708
-                                'required'      => (bool)wpinv_get_option( 'phone_mandatory' ),
1709
-                            ) );
1707
+                                'placeholder'   => __('Phone', 'invoicing'),
1708
+                                'required'      => (bool)wpinv_get_option('phone_mandatory'),
1709
+                            ));
1710 1710
                         ?>
1711 1711
                     </p>
1712
-                    <?php do_action( 'wpinv_checkout_billing_fields_last', $billing_details ); ?>
1712
+                    <?php do_action('wpinv_checkout_billing_fields_last', $billing_details); ?>
1713 1713
                     <div class="clearfix"></div>
1714 1714
                 </div>
1715 1715
             </div>
1716
-            <?php do_action( 'wpinv_after_billing_fields', $billing_details ); ?>
1716
+            <?php do_action('wpinv_after_billing_fields', $billing_details); ?>
1717 1717
         </div>
1718 1718
         <?php
1719 1719
     }
1720 1720
 }
1721
-add_action( 'wpinv_checkout_billing_info', 'wpinv_checkout_billing_info' );
1721
+add_action('wpinv_checkout_billing_info', 'wpinv_checkout_billing_info');
1722 1722
 
1723 1723
 function wpinv_checkout_hidden_fields() {
1724 1724
 ?>
1725
-    <?php if ( is_user_logged_in() ) { ?>
1725
+    <?php if (is_user_logged_in()) { ?>
1726 1726
     <input type="hidden" name="wpinv_user_id" value="<?php echo get_current_user_id(); ?>"/>
1727 1727
     <?php } ?>
1728 1728
     <input type="hidden" name="wpi_action" value="payment" />
@@ -1732,9 +1732,9 @@  discard block
 block discarded – undo
1732 1732
 function wpinv_checkout_button_purchase() {
1733 1733
     ob_start();
1734 1734
 ?>
1735
-    <input type="submit" class="btn btn-success wpinv-submit" id="wpinv-payment-button" data-value="<?php esc_attr_e( 'Proceed to Pay', 'invoicing' ) ?>" name="wpinv_payment" value="<?php esc_attr_e( 'Proceed to Pay', 'invoicing' ) ?>"/>
1735
+    <input type="submit" class="btn btn-success wpinv-submit" id="wpinv-payment-button" data-value="<?php esc_attr_e('Proceed to Pay', 'invoicing') ?>" name="wpinv_payment" value="<?php esc_attr_e('Proceed to Pay', 'invoicing') ?>"/>
1736 1736
 <?php
1737
-    return apply_filters( 'wpinv_checkout_button_purchase', ob_get_clean() );
1737
+    return apply_filters('wpinv_checkout_button_purchase', ob_get_clean());
1738 1738
 }
1739 1739
 
1740 1740
 function wpinv_checkout_total() {
@@ -1743,96 +1743,96 @@  discard block
 block discarded – undo
1743 1743
 <div id="wpinv_checkout_total" class="panel panel-info">
1744 1744
     <div class="panel-body">
1745 1745
     <?php
1746
-    do_action( 'wpinv_purchase_form_before_checkout_total' );
1746
+    do_action('wpinv_purchase_form_before_checkout_total');
1747 1747
     ?>
1748
-    <strong><?php _e( 'Invoice Total:', 'invoicing' ) ?></strong> <span class="wpinv-chdeckout-total"><?php echo $cart_total;?></span>
1748
+    <strong><?php _e('Invoice Total:', 'invoicing') ?></strong> <span class="wpinv-chdeckout-total"><?php echo $cart_total; ?></span>
1749 1749
     <?php
1750
-    do_action( 'wpinv_purchase_form_after_checkout_total' );
1750
+    do_action('wpinv_purchase_form_after_checkout_total');
1751 1751
     ?>
1752 1752
     </div>
1753 1753
 </div>
1754 1754
 <?php
1755 1755
 }
1756
-add_action( 'wpinv_checkout_form_bottom', 'wpinv_checkout_total', 9998 );
1756
+add_action('wpinv_checkout_form_bottom', 'wpinv_checkout_total', 9998);
1757 1757
 
1758 1758
 function wpinv_checkout_submit() {
1759 1759
 ?>
1760 1760
 <div id="wpinv_purchase_submit" class="panel panel-success">
1761 1761
     <div class="panel-body text-center">
1762 1762
     <?php
1763
-    do_action( 'wpinv_purchase_form_before_submit' );
1763
+    do_action('wpinv_purchase_form_before_submit');
1764 1764
     wpinv_checkout_hidden_fields();
1765 1765
     echo wpinv_checkout_button_purchase();
1766
-    do_action( 'wpinv_purchase_form_after_submit' );
1766
+    do_action('wpinv_purchase_form_after_submit');
1767 1767
     ?>
1768 1768
     </div>
1769 1769
 </div>
1770 1770
 <?php
1771 1771
 }
1772
-add_action( 'wpinv_checkout_form_bottom', 'wpinv_checkout_submit', 9999 );
1772
+add_action('wpinv_checkout_form_bottom', 'wpinv_checkout_submit', 9999);
1773 1773
 
1774
-function wpinv_receipt_billing_address( $invoice_id = 0 ) {
1775
-    $invoice = wpinv_get_invoice( $invoice_id );
1774
+function wpinv_receipt_billing_address($invoice_id = 0) {
1775
+    $invoice = wpinv_get_invoice($invoice_id);
1776 1776
     
1777
-    if ( empty( $invoice ) ) {
1777
+    if (empty($invoice)) {
1778 1778
         return NULL;
1779 1779
     }
1780 1780
     
1781 1781
     $billing_details = $invoice->get_user_info();
1782 1782
     $address_row = '';
1783
-    if ( $address = $billing_details['address'] ) {
1784
-        $address_row .= wpautop( wp_kses_post( $address ) );
1783
+    if ($address = $billing_details['address']) {
1784
+        $address_row .= wpautop(wp_kses_post($address));
1785 1785
     }
1786 1786
     
1787 1787
     $address_fields = array();
1788
-    if ( !empty( $billing_details['city'] ) ) {
1788
+    if (!empty($billing_details['city'])) {
1789 1789
         $address_fields[] = $billing_details['city'];
1790 1790
     }
1791 1791
     
1792
-    $billing_country = !empty( $billing_details['country'] ) ? $billing_details['country'] : '';
1793
-    if ( !empty( $billing_details['state'] ) ) {
1794
-        $address_fields[] = wpinv_state_name( $billing_details['state'], $billing_country );
1792
+    $billing_country = !empty($billing_details['country']) ? $billing_details['country'] : '';
1793
+    if (!empty($billing_details['state'])) {
1794
+        $address_fields[] = wpinv_state_name($billing_details['state'], $billing_country);
1795 1795
     }
1796 1796
     
1797
-    if ( !empty( $billing_country ) ) {
1798
-        $address_fields[] = wpinv_country_name( $billing_country );
1797
+    if (!empty($billing_country)) {
1798
+        $address_fields[] = wpinv_country_name($billing_country);
1799 1799
     }
1800 1800
     
1801
-    if ( !empty( $address_fields ) ) {
1802
-        $address_fields = implode( ", ", $address_fields );
1801
+    if (!empty($address_fields)) {
1802
+        $address_fields = implode(", ", $address_fields);
1803 1803
         
1804
-        if ( !empty( $billing_details['zip'] ) ) {
1804
+        if (!empty($billing_details['zip'])) {
1805 1805
             $address_fields .= ' ' . $billing_details['zip'];
1806 1806
         }
1807 1807
         
1808
-        $address_row .= wpautop( wp_kses_post( $address_fields ) );
1808
+        $address_row .= wpautop(wp_kses_post($address_fields));
1809 1809
     }
1810 1810
     ob_start();
1811 1811
     ?>
1812 1812
     <table class="table table-bordered table-sm wpi-billing-details">
1813 1813
         <tbody>
1814 1814
             <tr class="wpi-receipt-name">
1815
-                <th class="text-left"><?php _e( 'Name', 'invoicing' ); ?></th>
1816
-                <td><?php echo esc_html( trim( $billing_details['first_name'] . ' ' . $billing_details['last_name'] ) ) ;?></td>
1815
+                <th class="text-left"><?php _e('Name', 'invoicing'); ?></th>
1816
+                <td><?php echo esc_html(trim($billing_details['first_name'] . ' ' . $billing_details['last_name'])); ?></td>
1817 1817
             </tr>
1818 1818
             <tr class="wpi-receipt-email">
1819
-                <th class="text-left"><?php _e( 'Email', 'invoicing' ); ?></th>
1820
-                <td><?php echo $billing_details['email'] ;?></td>
1819
+                <th class="text-left"><?php _e('Email', 'invoicing'); ?></th>
1820
+                <td><?php echo $billing_details['email']; ?></td>
1821 1821
             </tr>
1822
-            <?php if ( $billing_details['company'] ) { ?>
1822
+            <?php if ($billing_details['company']) { ?>
1823 1823
             <tr class="wpi-receipt-company">
1824
-                <th class="text-left"><?php _e( 'Company', 'invoicing' ); ?></th>
1825
-                <td><?php echo esc_html( $billing_details['company'] ) ;?></td>
1824
+                <th class="text-left"><?php _e('Company', 'invoicing'); ?></th>
1825
+                <td><?php echo esc_html($billing_details['company']); ?></td>
1826 1826
             </tr>
1827 1827
             <?php } ?>
1828 1828
             <tr class="wpi-receipt-address">
1829
-                <th class="text-left"><?php _e( 'Address', 'invoicing' ); ?></th>
1830
-                <td><?php echo $address_row ;?></td>
1829
+                <th class="text-left"><?php _e('Address', 'invoicing'); ?></th>
1830
+                <td><?php echo $address_row; ?></td>
1831 1831
             </tr>
1832
-            <?php if ( $billing_details['phone'] ) { ?>
1832
+            <?php if ($billing_details['phone']) { ?>
1833 1833
             <tr class="wpi-receipt-phone">
1834
-                <th class="text-left"><?php _e( 'Phone', 'invoicing' ); ?></th>
1835
-                <td><?php echo esc_html( $billing_details['phone'] ) ;?></td>
1834
+                <th class="text-left"><?php _e('Phone', 'invoicing'); ?></th>
1835
+                <td><?php echo esc_html($billing_details['phone']); ?></td>
1836 1836
             </tr>
1837 1837
             <?php } ?>
1838 1838
         </tbody>
@@ -1840,103 +1840,103 @@  discard block
 block discarded – undo
1840 1840
     <?php
1841 1841
     $output = ob_get_clean();
1842 1842
     
1843
-    $output = apply_filters( 'wpinv_receipt_billing_address', $output, $invoice_id );
1843
+    $output = apply_filters('wpinv_receipt_billing_address', $output, $invoice_id);
1844 1844
 
1845 1845
     echo $output;
1846 1846
 }
1847 1847
 
1848
-function wpinv_filter_success_page_content( $content ) {
1849
-    if ( isset( $_GET['payment-confirm'] ) && wpinv_is_success_page() ) {
1850
-        if ( has_filter( 'wpinv_payment_confirm_' . sanitize_text_field( $_GET['payment-confirm'] ) ) ) {
1851
-            $content = apply_filters( 'wpinv_payment_confirm_' . sanitize_text_field( $_GET['payment-confirm'] ), $content );
1848
+function wpinv_filter_success_page_content($content) {
1849
+    if (isset($_GET['payment-confirm']) && wpinv_is_success_page()) {
1850
+        if (has_filter('wpinv_payment_confirm_' . sanitize_text_field($_GET['payment-confirm']))) {
1851
+            $content = apply_filters('wpinv_payment_confirm_' . sanitize_text_field($_GET['payment-confirm']), $content);
1852 1852
         }
1853 1853
     }
1854 1854
 
1855 1855
     return $content;
1856 1856
 }
1857
-add_filter( 'the_content', 'wpinv_filter_success_page_content', 99999 );
1857
+add_filter('the_content', 'wpinv_filter_success_page_content', 99999);
1858 1858
 
1859
-function wpinv_receipt_actions( $invoice ) {
1860
-    if ( !empty( $invoice ) ) {
1859
+function wpinv_receipt_actions($invoice) {
1860
+    if (!empty($invoice)) {
1861 1861
         $actions = array();
1862 1862
 
1863
-        if ( wpinv_user_can_view_invoice( $invoice->ID ) ) {
1864
-            $actions['print']   = array(
1865
-                'url'  => $invoice->get_view_url( true ),
1866
-                'name' => __( 'Print Invoice', 'invoicing' ),
1863
+        if (wpinv_user_can_view_invoice($invoice->ID)) {
1864
+            $actions['print'] = array(
1865
+                'url'  => $invoice->get_view_url(true),
1866
+                'name' => __('Print Invoice', 'invoicing'),
1867 1867
                 'class' => 'btn-primary',
1868 1868
             );
1869 1869
         }
1870 1870
 
1871
-        if ( is_user_logged_in() ) {
1871
+        if (is_user_logged_in()) {
1872 1872
             $actions['history'] = array(
1873 1873
                 'url'  => wpinv_get_history_page_uri(),
1874
-                'name' => __( 'Invoice History', 'invoicing' ),
1874
+                'name' => __('Invoice History', 'invoicing'),
1875 1875
                 'class' => 'btn-warning',
1876 1876
             );
1877 1877
         }
1878 1878
 
1879
-        $actions = apply_filters( 'wpinv_invoice_receipt_actions', $actions, $invoice );
1879
+        $actions = apply_filters('wpinv_invoice_receipt_actions', $actions, $invoice);
1880 1880
         
1881
-        if ( !empty( $actions ) ) {
1881
+        if (!empty($actions)) {
1882 1882
         ?>
1883 1883
         <div class="wpinv-receipt-actions text-right">
1884
-            <?php foreach ( $actions as $key => $action ) { $class = !empty($action['class']) ? sanitize_html_class( $action['class'] ) : ''; ?>
1885
-            <a href="<?php echo esc_url( $action['url'] );?>" class="btn btn-sm <?php echo $class . ' ' . sanitize_html_class( $key );?>" <?php echo ( !empty($action['attrs']) ? $action['attrs'] : '' ) ;?>><?php echo esc_html( $action['name'] );?></a>
1884
+            <?php foreach ($actions as $key => $action) { $class = !empty($action['class']) ? sanitize_html_class($action['class']) : ''; ?>
1885
+            <a href="<?php echo esc_url($action['url']); ?>" class="btn btn-sm <?php echo $class . ' ' . sanitize_html_class($key); ?>" <?php echo (!empty($action['attrs']) ? $action['attrs'] : ''); ?>><?php echo esc_html($action['name']); ?></a>
1886 1886
             <?php } ?>
1887 1887
         </div>
1888 1888
         <?php
1889 1889
         }
1890 1890
     }
1891 1891
 }
1892
-add_action( 'wpinv_receipt_start', 'wpinv_receipt_actions', -10, 1 );
1892
+add_action('wpinv_receipt_start', 'wpinv_receipt_actions', -10, 1);
1893 1893
 
1894
-function wpinv_invoice_link( $invoice_id ) {
1895
-    $invoice = wpinv_get_invoice( $invoice_id );
1894
+function wpinv_invoice_link($invoice_id) {
1895
+    $invoice = wpinv_get_invoice($invoice_id);
1896 1896
     
1897
-    if ( empty( $invoice ) ) {
1897
+    if (empty($invoice)) {
1898 1898
         return NULL;
1899 1899
     }
1900 1900
     
1901
-    $invoice_link = '<a href="' . esc_url( $invoice->get_view_url() ) . '">' . $invoice->get_number() . '</a>';
1901
+    $invoice_link = '<a href="' . esc_url($invoice->get_view_url()) . '">' . $invoice->get_number() . '</a>';
1902 1902
     
1903
-    return apply_filters( 'wpinv_get_invoice_link', $invoice_link, $invoice );
1903
+    return apply_filters('wpinv_get_invoice_link', $invoice_link, $invoice);
1904 1904
 }
1905 1905
 
1906
-function wpinv_invoice_subscription_details( $invoice ) {
1907
-    if ( !empty( $invoice ) && $invoice->is_recurring() && !wpinv_is_subscription_payment( $invoice ) ) {
1906
+function wpinv_invoice_subscription_details($invoice) {
1907
+    if (!empty($invoice) && $invoice->is_recurring() && !wpinv_is_subscription_payment($invoice)) {
1908 1908
         $total_payments = (int)$invoice->get_total_payments();
1909 1909
         $payments       = $invoice->get_child_payments();
1910 1910
         
1911 1911
         $subscription   = $invoice->get_subscription_data();
1912 1912
         
1913
-        if ( !( !empty( $subscription ) && !empty( $subscription['item_id'] ) ) ) {
1913
+        if (!(!empty($subscription) && !empty($subscription['item_id']))) {
1914 1914
             return;
1915 1915
         }
1916 1916
         
1917
-        $billing_cycle  = wpinv_get_billing_cycle( $subscription['initial_amount'], $subscription['recurring_amount'], $subscription['period'], $subscription['interval'], $subscription['bill_times'], $subscription['trial_period'], $subscription['trial_interval'], $invoice->get_currency() );
1918
-        $times_billed   = $total_payments . ' / ' . ( ( (int)$subscription['bill_times'] == 0 ) ? __( 'Until cancelled', 'invoicing' ) : $subscription['bill_times'] );
1917
+        $billing_cycle  = wpinv_get_billing_cycle($subscription['initial_amount'], $subscription['recurring_amount'], $subscription['period'], $subscription['interval'], $subscription['bill_times'], $subscription['trial_period'], $subscription['trial_interval'], $invoice->get_currency());
1918
+        $times_billed   = $total_payments . ' / ' . (((int)$subscription['bill_times'] == 0) ? __('Until cancelled', 'invoicing') : $subscription['bill_times']);
1919 1919
         
1920 1920
         $subscription_status = $invoice->get_subscription_status();
1921 1921
         
1922 1922
         $status_desc = '';
1923
-        if ( $subscription_status == 'trialing' && $trial_end_date = $invoice->get_trial_end_date() ) {
1924
-            $status_desc = wp_sprintf( __( 'Until: %s', 'invoicing' ), $trial_end_date );
1925
-        } else if ( $subscription_status == 'cancelled' && $cancelled_date = $invoice->get_cancelled_date() ) {
1926
-            $status_desc = wp_sprintf( __( 'On: %s', 'invoicing' ), $cancelled_date );
1923
+        if ($subscription_status == 'trialing' && $trial_end_date = $invoice->get_trial_end_date()) {
1924
+            $status_desc = wp_sprintf(__('Until: %s', 'invoicing'), $trial_end_date);
1925
+        } else if ($subscription_status == 'cancelled' && $cancelled_date = $invoice->get_cancelled_date()) {
1926
+            $status_desc = wp_sprintf(__('On: %s', 'invoicing'), $cancelled_date);
1927 1927
         }
1928 1928
         $status_desc = $status_desc != '' ? '<span class="meta">' . $status_desc . '</span>' : '';
1929 1929
         ?>
1930 1930
         <div class="wpinv-subscriptions-details">
1931
-            <h3 class="wpinv-subscriptions-t"><?php echo apply_filters( 'wpinv_subscription_details_title', __( 'Subscription Details', 'invoicing' ) ); ?></h3>
1931
+            <h3 class="wpinv-subscriptions-t"><?php echo apply_filters('wpinv_subscription_details_title', __('Subscription Details', 'invoicing')); ?></h3>
1932 1932
             <table class="table">
1933 1933
                 <thead>
1934 1934
                     <tr>
1935
-                        <th><?php _e( 'Billing Cycle', 'invoicing' ) ;?></th>
1936
-                        <th><?php _e( 'Start Date', 'invoicing' ) ;?></th>
1937
-                        <th><?php _e( 'Expiration Date', 'invoicing' ) ;?></th>
1938
-                        <th class="text-center"><?php _e( 'Times Billed', 'invoicing' ) ;?></th>
1939
-                        <th class="text-center"><?php _e( 'Status', 'invoicing' ) ;?></th>
1935
+                        <th><?php _e('Billing Cycle', 'invoicing'); ?></th>
1936
+                        <th><?php _e('Start Date', 'invoicing'); ?></th>
1937
+                        <th><?php _e('Expiration Date', 'invoicing'); ?></th>
1938
+                        <th class="text-center"><?php _e('Times Billed', 'invoicing'); ?></th>
1939
+                        <th class="text-center"><?php _e('Status', 'invoicing'); ?></th>
1940 1940
                     </tr>
1941 1941
                 </thead>
1942 1942
                 <tbody>
@@ -1945,32 +1945,32 @@  discard block
 block discarded – undo
1945 1945
                         <td><?php echo $invoice->get_subscription_start(); ?></td>
1946 1946
                         <td><?php echo $invoice->get_subscription_end(); ?></td>
1947 1947
                         <td class="text-center"><?php echo $times_billed; ?></td>
1948
-                        <td class="text-center wpi-sub-status"><?php echo $invoice->get_subscription_status_label() ;?>
1948
+                        <td class="text-center wpi-sub-status"><?php echo $invoice->get_subscription_status_label(); ?>
1949 1949
                         <?php echo $status_desc; ?>
1950 1950
                         </td>
1951 1951
                     </tr>
1952 1952
                 </tbody>
1953 1953
             </table>
1954 1954
         </div>
1955
-        <?php if ( !empty( $payments ) ) { ?>
1955
+        <?php if (!empty($payments)) { ?>
1956 1956
         <div class="wpinv-renewal-payments">
1957
-            <h3 class="wpinv-renewals-t"><?php echo apply_filters( 'wpinv_renewal_payments_title', __( 'Renewal Payments', 'invoicing' ) ); ?></h3>
1957
+            <h3 class="wpinv-renewals-t"><?php echo apply_filters('wpinv_renewal_payments_title', __('Renewal Payments', 'invoicing')); ?></h3>
1958 1958
             <table class="table">
1959 1959
                 <thead>
1960 1960
                     <tr>
1961 1961
                         <th>#</th>
1962
-                        <th><?php _e( 'Invoice', 'invoicing' ) ;?></th>
1963
-                        <th><?php _e( 'Date', 'invoicing' ) ;?></th>
1964
-                        <th class="text-right"><?php _e( 'Amount', 'invoicing' ) ;?></th>
1962
+                        <th><?php _e('Invoice', 'invoicing'); ?></th>
1963
+                        <th><?php _e('Date', 'invoicing'); ?></th>
1964
+                        <th class="text-right"><?php _e('Amount', 'invoicing'); ?></th>
1965 1965
                     </tr>
1966 1966
                 </thead>
1967 1967
                 <tbody>
1968
-                    <?php foreach ( $payments as $key => $invoice_id ) { ?>
1968
+                    <?php foreach ($payments as $key => $invoice_id) { ?>
1969 1969
                     <tr>
1970
-                        <th scope="row"><?php echo ( $key + 1 );?></th>
1971
-                        <td><?php echo wpinv_invoice_link( $invoice_id ) ;?></td>
1972
-                        <td><?php echo wpinv_get_invoice_date( $invoice_id ); ?></td>
1973
-                        <td class="text-right"><?php echo wpinv_payment_total( $invoice_id, true ); ?></td>
1970
+                        <th scope="row"><?php echo ($key + 1); ?></th>
1971
+                        <td><?php echo wpinv_invoice_link($invoice_id); ?></td>
1972
+                        <td><?php echo wpinv_get_invoice_date($invoice_id); ?></td>
1973
+                        <td class="text-right"><?php echo wpinv_payment_total($invoice_id, true); ?></td>
1974 1974
                     </tr>
1975 1975
                     <?php } ?>
1976 1976
                     <tr><td colspan="4" style="padding:0"></td></tr>
@@ -1982,52 +1982,52 @@  discard block
 block discarded – undo
1982 1982
     }
1983 1983
 }
1984 1984
 
1985
-function wpinv_cart_total_label( $label, $invoice ) {
1986
-    if ( empty( $invoice ) ) {
1985
+function wpinv_cart_total_label($label, $invoice) {
1986
+    if (empty($invoice)) {
1987 1987
         return $label;
1988 1988
     }
1989 1989
     
1990 1990
     $prefix_label = '';
1991
-    if ( $invoice->is_parent() && $item_id = $invoice->get_recurring() ) {        
1992
-        $prefix_label   = '<span class="label label-primary label-recurring">' . __( 'Recurring Payment', 'invoicing' ) . '</span> ' . wpinv_subscription_payment_desc( $invoice );
1993
-    } else if ( $invoice->is_renewal() ) {
1994
-        $prefix_label   = '<span class="label label-primary label-renewal">' . __( 'Renewal Payment', 'invoicing' ) . '</span> ';        
1991
+    if ($invoice->is_parent() && $item_id = $invoice->get_recurring()) {        
1992
+        $prefix_label   = '<span class="label label-primary label-recurring">' . __('Recurring Payment', 'invoicing') . '</span> ' . wpinv_subscription_payment_desc($invoice);
1993
+    } else if ($invoice->is_renewal()) {
1994
+        $prefix_label   = '<span class="label label-primary label-renewal">' . __('Renewal Payment', 'invoicing') . '</span> ';        
1995 1995
     }
1996 1996
     
1997
-    if ( $prefix_label != '' ) {
1998
-        $label  = '<span class="wpinv-cart-sub-desc">' . $prefix_label . '</span> ' . $label;
1997
+    if ($prefix_label != '') {
1998
+        $label = '<span class="wpinv-cart-sub-desc">' . $prefix_label . '</span> ' . $label;
1999 1999
     }
2000 2000
     
2001 2001
     return $label;
2002 2002
 }
2003
-add_filter( 'wpinv_cart_total_label', 'wpinv_cart_total_label', 10, 2 );
2004
-add_filter( 'wpinv_email_cart_total_label', 'wpinv_cart_total_label', 10, 2 );
2005
-add_filter( 'wpinv_print_cart_total_label', 'wpinv_cart_total_label', 10, 2 );
2003
+add_filter('wpinv_cart_total_label', 'wpinv_cart_total_label', 10, 2);
2004
+add_filter('wpinv_email_cart_total_label', 'wpinv_cart_total_label', 10, 2);
2005
+add_filter('wpinv_print_cart_total_label', 'wpinv_cart_total_label', 10, 2);
2006 2006
 
2007
-add_action( 'wpinv_invoice_print_middle', 'wpinv_invoice_subscription_details', 10, 1 );
2007
+add_action('wpinv_invoice_print_middle', 'wpinv_invoice_subscription_details', 10, 1);
2008 2008
 
2009
-function wpinv_invoice_print_description( $invoice ) {
2010
-    if ( empty( $invoice ) ) {
2009
+function wpinv_invoice_print_description($invoice) {
2010
+    if (empty($invoice)) {
2011 2011
         return NULL;
2012 2012
     }
2013
-    if ( $description = wpinv_get_invoice_description( $invoice->ID ) ) {
2013
+    if ($description = wpinv_get_invoice_description($invoice->ID)) {
2014 2014
         ?>
2015 2015
         <div class="row wpinv-lower">
2016 2016
             <div class="col-sm-12 wpinv-description">
2017
-                <?php echo wpautop( $description ); ?>
2017
+                <?php echo wpautop($description); ?>
2018 2018
             </div>
2019 2019
         </div>
2020 2020
         <?php
2021 2021
     }
2022 2022
 }
2023
-add_action( 'wpinv_invoice_print_middle', 'wpinv_invoice_print_description', 10.1, 1 );
2023
+add_action('wpinv_invoice_print_middle', 'wpinv_invoice_print_description', 10.1, 1);
2024 2024
 
2025
-function wpinv_invoice_print_payment_info( $invoice ) {
2026
-    if ( empty( $invoice ) ) {
2025
+function wpinv_invoice_print_payment_info($invoice) {
2026
+    if (empty($invoice)) {
2027 2027
         return NULL;
2028 2028
     }
2029 2029
     
2030
-    if ( $payments_info = wpinv_display_payments_info( $invoice->ID, false ) ) {
2030
+    if ($payments_info = wpinv_display_payments_info($invoice->ID, false)) {
2031 2031
         ?>
2032 2032
         <div class="row wpinv-payments">
2033 2033
             <div class="col-sm-12">
@@ -2039,43 +2039,43 @@  discard block
 block discarded – undo
2039 2039
 }
2040 2040
 // add_action( 'wpinv_invoice_print_after_line_items', 'wpinv_invoice_print_payment_info', 10, 1 );
2041 2041
 
2042
-function wpinv_get_invoice_note_line_item( $note, $echo = true ) {
2043
-    if ( empty( $note ) ) {
2042
+function wpinv_get_invoice_note_line_item($note, $echo = true) {
2043
+    if (empty($note)) {
2044 2044
         return NULL;
2045 2045
     }
2046 2046
     
2047
-    if ( is_int( $note ) ) {
2048
-        $note = get_comment( $note );
2047
+    if (is_int($note)) {
2048
+        $note = get_comment($note);
2049 2049
     }
2050 2050
     
2051
-    if ( !( is_object( $note ) && is_a( $note, 'WP_Comment' ) ) ) {
2051
+    if (!(is_object($note) && is_a($note, 'WP_Comment'))) {
2052 2052
         return NULL;
2053 2053
     }
2054 2054
     
2055
-    $note_classes   = array( 'note' );
2056
-    $note_classes[] = get_comment_meta( $note->comment_ID, '_wpi_customer_note', true ) ? 'customer-note' : '';
2057
-    $note_classes[] = $note->comment_author === __( 'System', 'invoicing' ) ? 'system-note' : '';
2058
-    $note_classes   = apply_filters( 'wpinv_invoice_note_class', array_filter( $note_classes ), $note );
2059
-    $note_classes   = !empty( $note_classes ) ? implode( ' ', $note_classes ) : '';
2055
+    $note_classes   = array('note');
2056
+    $note_classes[] = get_comment_meta($note->comment_ID, '_wpi_customer_note', true) ? 'customer-note' : '';
2057
+    $note_classes[] = $note->comment_author === __('System', 'invoicing') ? 'system-note' : '';
2058
+    $note_classes   = apply_filters('wpinv_invoice_note_class', array_filter($note_classes), $note);
2059
+    $note_classes   = !empty($note_classes) ? implode(' ', $note_classes) : '';
2060 2060
     
2061 2061
     ob_start();
2062 2062
     ?>
2063
-    <li rel="<?php echo absint( $note->comment_ID ) ; ?>" class="<?php echo esc_attr( $note_classes ); ?>">
2063
+    <li rel="<?php echo absint($note->comment_ID); ?>" class="<?php echo esc_attr($note_classes); ?>">
2064 2064
         <div class="note_content">
2065
-            <?php echo wpautop( wptexturize( wp_kses_post( $note->comment_content ) ) ); ?>
2065
+            <?php echo wpautop(wptexturize(wp_kses_post($note->comment_content))); ?>
2066 2066
         </div>
2067 2067
         <p class="meta">
2068
-            <abbr class="exact-date" title="<?php echo $note->comment_date; ?>"><?php printf( __( '%1$s - %2$s at %3$s', 'invoicing' ), $note->comment_author, date_i18n( get_option( 'date_format' ), strtotime( $note->comment_date ) ), date_i18n( get_option( 'time_format' ), strtotime( $note->comment_date ) ) ); ?></abbr>&nbsp;&nbsp;
2069
-            <?php if($note->comment_author !== 'System') {?>
2070
-                <a href="#" class="delete_note"><?php _e( 'Delete note', 'invoicing' ); ?></a>
2068
+            <abbr class="exact-date" title="<?php echo $note->comment_date; ?>"><?php printf(__('%1$s - %2$s at %3$s', 'invoicing'), $note->comment_author, date_i18n(get_option('date_format'), strtotime($note->comment_date)), date_i18n(get_option('time_format'), strtotime($note->comment_date))); ?></abbr>&nbsp;&nbsp;
2069
+            <?php if ($note->comment_author !== 'System') {?>
2070
+                <a href="#" class="delete_note"><?php _e('Delete note', 'invoicing'); ?></a>
2071 2071
             <?php } ?>
2072 2072
         </p>
2073 2073
     </li>
2074 2074
     <?php
2075 2075
     $note_content = ob_get_clean();
2076
-    $note_content = apply_filters( 'wpinv_get_invoice_note_line_item', $note_content, $note, $echo );
2076
+    $note_content = apply_filters('wpinv_get_invoice_note_line_item', $note_content, $note, $echo);
2077 2077
     
2078
-    if ( $echo ) {
2078
+    if ($echo) {
2079 2079
         echo $note_content;
2080 2080
     } else {
2081 2081
         return $note_content;
@@ -2085,33 +2085,33 @@  discard block
 block discarded – undo
2085 2085
 function wpinv_invalid_invoice_content() {
2086 2086
     global $post;
2087 2087
 
2088
-    $invoice = wpinv_get_invoice( $post->ID );
2088
+    $invoice = wpinv_get_invoice($post->ID);
2089 2089
 
2090
-    $error = __( 'This invoice is only viewable by clicking on the invoice link that sent to you via email.', 'invoicing' );
2091
-    if ( !empty( $invoice->ID ) && $invoice->has_status( array_keys( wpinv_get_invoice_statuses() ) ) ) {
2092
-        if ( is_user_logged_in() ) {
2093
-            if ( wpinv_require_login_to_checkout() ) {
2094
-                if ( isset( $_GET['invoice_key'] ) && $_GET['invoice_key'] === $invoice->get_key() ) {
2095
-                    $error = __( 'You are not allowed to view this invoice.', 'invoicing' );
2090
+    $error = __('This invoice is only viewable by clicking on the invoice link that sent to you via email.', 'invoicing');
2091
+    if (!empty($invoice->ID) && $invoice->has_status(array_keys(wpinv_get_invoice_statuses()))) {
2092
+        if (is_user_logged_in()) {
2093
+            if (wpinv_require_login_to_checkout()) {
2094
+                if (isset($_GET['invoice_key']) && $_GET['invoice_key'] === $invoice->get_key()) {
2095
+                    $error = __('You are not allowed to view this invoice.', 'invoicing');
2096 2096
                 }
2097 2097
             }
2098 2098
         } else {
2099
-            if ( wpinv_require_login_to_checkout() ) {
2100
-                if ( isset( $_GET['invoice_key'] ) && $_GET['invoice_key'] === $invoice->get_key() ) {
2101
-                    $error = __( 'You must be logged in to view this invoice.', 'invoicing' );
2099
+            if (wpinv_require_login_to_checkout()) {
2100
+                if (isset($_GET['invoice_key']) && $_GET['invoice_key'] === $invoice->get_key()) {
2101
+                    $error = __('You must be logged in to view this invoice.', 'invoicing');
2102 2102
                 }
2103 2103
             }
2104 2104
         }
2105 2105
     } else {
2106
-        $error = __( 'This invoice is deleted or does not exist.', 'invoicing' );
2106
+        $error = __('This invoice is deleted or does not exist.', 'invoicing');
2107 2107
     }
2108 2108
     ?>
2109 2109
     <div class="row wpinv-row-invalid">
2110 2110
         <div class="col-md-6 col-md-offset-3 wpinv-message error">
2111
-            <h3><?php _e( 'Access Denied', 'invoicing' ); ?></h3>
2111
+            <h3><?php _e('Access Denied', 'invoicing'); ?></h3>
2112 2112
             <p class="wpinv-msg-text"><?php echo $error; ?></p>
2113 2113
         </div>
2114 2114
     </div>
2115 2115
     <?php
2116 2116
 }
2117
-add_action( 'wpinv_invalid_invoice_content', 'wpinv_invalid_invoice_content' );
2118 2117
\ No newline at end of file
2118
+add_action('wpinv_invalid_invoice_content', 'wpinv_invalid_invoice_content');
2119 2119
\ No newline at end of file
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   +103 added lines, -103 removed lines patch added patch discarded remove patch
@@ -7,44 +7,44 @@  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
     $cap_type = 'wpi_invoice';
38 38
     $args = array(
39 39
         'labels'             => $labels,
40
-        'description'        => __( 'This is where invoices are stored.', 'invoicing' ),
40
+        'description'        => __('This is where invoices are stored.', 'invoicing'),
41 41
         'public'             => true,
42 42
         'can_export'         => true,
43 43
         '_builtin'           => false,
44 44
         'publicly_queryable' => true,
45 45
         'exclude_from_search'=> true,
46 46
         'show_ui'            => true,
47
-        'show_in_menu'       => current_user_can( 'manage_invoicing' ) ? 'wpinv' : true,
47
+        'show_in_menu'       => current_user_can('manage_invoicing') ? 'wpinv' : true,
48 48
         'show_in_nav_menus'  => false,
49 49
         'query_var'          => false,
50 50
         'rewrite'            => true,
@@ -69,39 +69,39 @@  discard block
 block discarded – undo
69 69
         'has_archive'        => false,
70 70
         'hierarchical'       => false,
71 71
         'menu_position'      => null,
72
-        'supports'           => array( 'title', 'author' ),
72
+        'supports'           => array('title', 'author'),
73 73
         'menu_icon'          => $menu_icon,
74 74
     );
75 75
             
76
-    $args = apply_filters( 'wpinv_register_post_type_invoice', $args );
76
+    $args = apply_filters('wpinv_register_post_type_invoice', $args);
77 77
     
78
-    register_post_type( 'wpi_invoice', $args );
78
+    register_post_type('wpi_invoice', $args);
79 79
     
80 80
     $items_labels = array(
81
-        'name'               => _x( 'Items', 'post type general name', 'invoicing' ),
82
-        'singular_name'      => _x( 'Item', 'post type singular name', 'invoicing' ),
83
-        'menu_name'          => _x( 'Items', 'admin menu', 'invoicing' ),
84
-        'add_new'            => _x( 'Add New', 'wpi_item', 'invoicing' ),
85
-        'add_new_item'       => __( 'Add New Item', 'invoicing' ),
86
-        'new_item'           => __( 'New Item', 'invoicing' ),
87
-        'edit_item'          => __( 'Edit Item', 'invoicing' ),
88
-        'view_item'          => __( 'View Item', 'invoicing' ),
89
-        'all_items'          => __( 'Items', 'invoicing' ),
90
-        'search_items'       => __( 'Search Items', 'invoicing' ),
81
+        'name'               => _x('Items', 'post type general name', 'invoicing'),
82
+        'singular_name'      => _x('Item', 'post type singular name', 'invoicing'),
83
+        'menu_name'          => _x('Items', 'admin menu', 'invoicing'),
84
+        'add_new'            => _x('Add New', 'wpi_item', 'invoicing'),
85
+        'add_new_item'       => __('Add New Item', 'invoicing'),
86
+        'new_item'           => __('New Item', 'invoicing'),
87
+        'edit_item'          => __('Edit Item', 'invoicing'),
88
+        'view_item'          => __('View Item', 'invoicing'),
89
+        'all_items'          => __('Items', 'invoicing'),
90
+        'search_items'       => __('Search Items', 'invoicing'),
91 91
         'parent_item_colon'  => '',
92
-        'not_found'          => __( 'No items found.', 'invoicing' ),
93
-        'not_found_in_trash' => __( 'No items found in trash.', 'invoicing' )
92
+        'not_found'          => __('No items found.', 'invoicing'),
93
+        'not_found_in_trash' => __('No items found in trash.', 'invoicing')
94 94
     );
95
-    $items_labels = apply_filters( 'wpinv_items_labels', $items_labels );
95
+    $items_labels = apply_filters('wpinv_items_labels', $items_labels);
96 96
 
97 97
     $cap_type = 'wpi_item';
98 98
     $invoice_item_args = array(
99 99
         'labels'                => $items_labels,
100 100
         'public'                => false,
101 101
         'show_ui'               => true,
102
-        'show_in_menu'          => current_user_can( 'manage_invoicing' ) ? 'wpinv' : false,
102
+        'show_in_menu'          => current_user_can('manage_invoicing') ? 'wpinv' : false,
103 103
         'show_in_nav_menus'     => false,
104
-        'supports'              => array( 'title', 'excerpt' ),
104
+        'supports'              => array('title', 'excerpt'),
105 105
         'register_meta_box_cb'  => 'wpinv_register_item_meta_boxes',
106 106
         'rewrite'               => false,
107 107
         'query_var'             => false,
@@ -125,40 +125,40 @@  discard block
 block discarded – undo
125 125
         ),
126 126
         'can_export'            => true,
127 127
     );
128
-    $invoice_item_args = apply_filters( 'wpinv_register_post_type_invoice_item', $invoice_item_args );
128
+    $invoice_item_args = apply_filters('wpinv_register_post_type_invoice_item', $invoice_item_args);
129 129
 
130
-    register_post_type( 'wpi_item', $invoice_item_args );
130
+    register_post_type('wpi_item', $invoice_item_args);
131 131
     
132 132
     $labels = array(
133
-        'name'               => _x( 'Discounts', 'post type general name', 'invoicing' ),
134
-        'singular_name'      => _x( 'Discount', 'post type singular name', 'invoicing' ),
135
-        'menu_name'          => _x( 'Discounts', 'admin menu', 'invoicing' ),
136
-        'name_admin_bar'     => _x( 'Discount', 'add new on admin bar', 'invoicing' ),
137
-        'add_new'            => _x( 'Add New', 'book', 'invoicing' ),
138
-        'add_new_item'       => __( 'Add New Discount', 'invoicing' ),
139
-        'new_item'           => __( 'New Discount', 'invoicing' ),
140
-        'edit_item'          => __( 'Edit Discount', 'invoicing' ),
141
-        'view_item'          => __( 'View Discount', 'invoicing' ),
142
-        'all_items'          => __( 'Discounts', 'invoicing' ),
143
-        'search_items'       => __( 'Search Discounts', 'invoicing' ),
144
-        'parent_item_colon'  => __( 'Parent Discounts:', 'invoicing' ),
145
-        'not_found'          => __( 'No discounts found.', 'invoicing' ),
146
-        'not_found_in_trash' => __( 'No discounts found in trash.', 'invoicing' )
133
+        'name'               => _x('Discounts', 'post type general name', 'invoicing'),
134
+        'singular_name'      => _x('Discount', 'post type singular name', 'invoicing'),
135
+        'menu_name'          => _x('Discounts', 'admin menu', 'invoicing'),
136
+        'name_admin_bar'     => _x('Discount', 'add new on admin bar', 'invoicing'),
137
+        'add_new'            => _x('Add New', 'book', 'invoicing'),
138
+        'add_new_item'       => __('Add New Discount', 'invoicing'),
139
+        'new_item'           => __('New Discount', 'invoicing'),
140
+        'edit_item'          => __('Edit Discount', 'invoicing'),
141
+        'view_item'          => __('View Discount', 'invoicing'),
142
+        'all_items'          => __('Discounts', 'invoicing'),
143
+        'search_items'       => __('Search Discounts', 'invoicing'),
144
+        'parent_item_colon'  => __('Parent Discounts:', 'invoicing'),
145
+        'not_found'          => __('No discounts found.', 'invoicing'),
146
+        'not_found_in_trash' => __('No discounts found in trash.', 'invoicing')
147 147
     );
148
-    $labels = apply_filters( 'wpinv_discounts_labels', $labels );
148
+    $labels = apply_filters('wpinv_discounts_labels', $labels);
149 149
 
150 150
     $cap_type = 'wpi_discount';
151 151
     
152 152
     $args = array(
153 153
         'labels'             => $labels,
154
-        'description'        => __( 'This is where you can add new discounts that users can use in invoices.', 'invoicing' ),
154
+        'description'        => __('This is where you can add new discounts that users can use in invoices.', 'invoicing'),
155 155
         'public'             => false,
156 156
         'can_export'         => true,
157 157
         '_builtin'           => false,
158 158
         'publicly_queryable' => false,
159 159
         'exclude_from_search'=> true,
160 160
         'show_ui'            => true,
161
-        'show_in_menu'       => current_user_can( 'manage_invoicing' ) ? 'wpinv' : false,
161
+        'show_in_menu'       => current_user_can('manage_invoicing') ? 'wpinv' : false,
162 162
         'query_var'          => false,
163 163
         'rewrite'            => false,
164 164
         'capability_type'    => $cap_type,
@@ -181,7 +181,7 @@  discard block
 block discarded – undo
181 181
         ),
182 182
         'has_archive'        => false,
183 183
         'hierarchical'       => false,
184
-        'supports'           => array( 'title', 'excerpt' ),
184
+        'supports'           => array('title', 'excerpt'),
185 185
         'register_meta_box_cb'  => 'wpinv_register_discount_meta_boxes',
186 186
         'show_in_nav_menus'  => false,
187 187
         'show_in_admin_bar'  => true,
@@ -189,107 +189,107 @@  discard block
 block discarded – undo
189 189
         'menu_position'      => null,
190 190
     );
191 191
             
192
-    $args = apply_filters( 'wpinv_register_post_type_discount', $args );
192
+    $args = apply_filters('wpinv_register_post_type_discount', $args);
193 193
     
194
-    register_post_type( 'wpi_discount', $args );
194
+    register_post_type('wpi_discount', $args);
195 195
 }
196 196
 
197 197
 function wpinv_get_default_labels() {
198 198
     $defaults = array(
199
-       'singular' => __( 'Invoice', 'invoicing' ),
200
-       'plural'   => __( 'Invoices', 'invoicing' )
199
+       'singular' => __('Invoice', 'invoicing'),
200
+       'plural'   => __('Invoices', 'invoicing')
201 201
     );
202 202
     
203
-    return apply_filters( 'wpinv_default_invoices_name', $defaults );
203
+    return apply_filters('wpinv_default_invoices_name', $defaults);
204 204
 }
205 205
 
206
-function wpinv_get_label_singular( $lowercase = false ) {
206
+function wpinv_get_label_singular($lowercase = false) {
207 207
     $defaults = wpinv_get_default_labels();
208 208
     
209
-    return ($lowercase) ? strtolower( $defaults['singular'] ) : $defaults['singular'];
209
+    return ($lowercase) ? strtolower($defaults['singular']) : $defaults['singular'];
210 210
 }
211 211
 
212
-function wpinv_get_label_plural( $lowercase = false ) {
212
+function wpinv_get_label_plural($lowercase = false) {
213 213
     $defaults = wpinv_get_default_labels();
214 214
     
215
-    return ( $lowercase ) ? strtolower( $defaults['plural'] ) : $defaults['plural'];
215
+    return ($lowercase) ? strtolower($defaults['plural']) : $defaults['plural'];
216 216
 }
217 217
 
218
-function wpinv_change_default_title( $title ) {
219
-     if ( !is_admin() ) {
218
+function wpinv_change_default_title($title) {
219
+     if (!is_admin()) {
220 220
         $label = wpinv_get_label_singular();
221
-        $title = sprintf( __( 'Enter %s name here', 'invoicing' ), $label );
221
+        $title = sprintf(__('Enter %s name here', 'invoicing'), $label);
222 222
         return $title;
223 223
      }
224 224
 
225 225
      $screen = get_current_screen();
226 226
 
227
-     if ( 'wpi_invoice' == $screen->post_type ) {
227
+     if ('wpi_invoice' == $screen->post_type) {
228 228
         $label = wpinv_get_label_singular();
229
-        $title = sprintf( __( 'Enter %s name here', 'invoicing' ), $label );
229
+        $title = sprintf(__('Enter %s name here', 'invoicing'), $label);
230 230
      }
231 231
 
232 232
      return $title;
233 233
 }
234
-add_filter( 'enter_title_here', 'wpinv_change_default_title' );
234
+add_filter('enter_title_here', 'wpinv_change_default_title');
235 235
 
236 236
 function wpinv_register_post_status() {
237
-    register_post_status( 'wpi-pending', array(
238
-        'label'                     => _x( 'Pending', 'Invoice status', 'invoicing' ),
237
+    register_post_status('wpi-pending', array(
238
+        'label'                     => _x('Pending', 'Invoice status', 'invoicing'),
239 239
         'public'                    => true,
240 240
         'exclude_from_search'       => true,
241 241
         'show_in_admin_all_list'    => true,
242 242
         'show_in_admin_status_list' => true,
243
-        'label_count'               => _n_noop( 'Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>', 'invoicing' )
244
-    ) );
245
-    register_post_status( 'wpi-processing', array(
246
-        'label'                     => _x( 'Processing', 'Invoice status', 'invoicing' ),
243
+        'label_count'               => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>', 'invoicing')
244
+    ));
245
+    register_post_status('wpi-processing', array(
246
+        'label'                     => _x('Processing', 'Invoice status', 'invoicing'),
247 247
         'public'                    => true,
248 248
         'exclude_from_search'       => true,
249 249
         'show_in_admin_all_list'    => true,
250 250
         'show_in_admin_status_list' => true,
251
-        'label_count'               => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing' )
252
-    ) );
253
-    register_post_status( 'wpi-onhold', array(
254
-        'label'                     => _x( 'On Hold', 'Invoice status', 'invoicing' ),
251
+        'label_count'               => _n_noop('Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing')
252
+    ));
253
+    register_post_status('wpi-onhold', array(
254
+        'label'                     => _x('On Hold', 'Invoice status', 'invoicing'),
255 255
         'public'                    => true,
256 256
         'exclude_from_search'       => true,
257 257
         'show_in_admin_all_list'    => true,
258 258
         'show_in_admin_status_list' => true,
259
-        'label_count'               => _n_noop( 'On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing' )
260
-    ) );
261
-    register_post_status( 'wpi-cancelled', array(
262
-        'label'                     => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
259
+        'label_count'               => _n_noop('On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing')
260
+    ));
261
+    register_post_status('wpi-cancelled', array(
262
+        'label'                     => _x('Cancelled', 'Invoice status', 'invoicing'),
263 263
         'public'                    => true,
264 264
         'exclude_from_search'       => true,
265 265
         'show_in_admin_all_list'    => true,
266 266
         'show_in_admin_status_list' => true,
267
-        'label_count'               => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing' )
268
-    ) );
269
-    register_post_status( 'wpi-refunded', array(
270
-        'label'                     => _x( 'Refunded', 'Invoice status', 'invoicing' ),
267
+        'label_count'               => _n_noop('Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing')
268
+    ));
269
+    register_post_status('wpi-refunded', array(
270
+        'label'                     => _x('Refunded', 'Invoice status', 'invoicing'),
271 271
         'public'                    => true,
272 272
         'exclude_from_search'       => true,
273 273
         'show_in_admin_all_list'    => true,
274 274
         'show_in_admin_status_list' => true,
275
-        'label_count'               => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing' )
276
-    ) );
277
-    register_post_status( 'wpi-failed', array(
278
-        'label'                     => _x( 'Failed', 'Invoice status', 'invoicing' ),
275
+        'label_count'               => _n_noop('Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing')
276
+    ));
277
+    register_post_status('wpi-failed', array(
278
+        'label'                     => _x('Failed', 'Invoice status', 'invoicing'),
279 279
         'public'                    => true,
280 280
         'exclude_from_search'       => true,
281 281
         'show_in_admin_all_list'    => true,
282 282
         'show_in_admin_status_list' => true,
283
-        'label_count'               => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing' )
284
-    ) );
285
-    register_post_status( 'wpi-renewal', array(
286
-        'label'                     => _x( 'Renewal', 'Invoice status', 'invoicing' ),
283
+        'label_count'               => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing')
284
+    ));
285
+    register_post_status('wpi-renewal', array(
286
+        'label'                     => _x('Renewal', 'Invoice status', 'invoicing'),
287 287
         'public'                    => true,
288 288
         'exclude_from_search'       => true,
289 289
         'show_in_admin_all_list'    => true,
290 290
         'show_in_admin_status_list' => true,
291
-        'label_count'               => _n_noop( 'Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing' )
292
-    ) );
291
+        'label_count'               => _n_noop('Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing')
292
+    ));
293 293
 }
294
-add_action( 'init', 'wpinv_register_post_status', 10 );
294
+add_action('init', 'wpinv_register_post_status', 10);
295 295
 
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'] ) : 'publish';
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']) : 'publish';
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   +28 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();
@@ -117,6 +126,9 @@  discard block
 block discarded – undo
117 126
     return $status;
118 127
 }
119 128
 
129
+/**
130
+ * @return string
131
+ */
120 132
 function wpinv_get_currency() {
121 133
     $currency = wpinv_get_option( 'currency', 'USD' );
122 134
     
@@ -187,6 +199,9 @@  discard block
 block discarded – undo
187 199
     return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency );
188 200
 }
189 201
 
202
+/**
203
+ * @return string
204
+ */
190 205
 function wpinv_currency_position() {
191 206
     $position = wpinv_get_option( 'currency_position', 'left' );
192 207
     
@@ -315,6 +330,9 @@  discard block
 block discarded – undo
315 330
     return $price;
316 331
 }
317 332
 
333
+/**
334
+ * @return string
335
+ */
318 336
 function wpinv_format_amount( $amount, $decimals = NULL, $calculate = false ) {
319 337
     $thousands_sep = wpinv_thousands_separator();
320 338
     $decimal_sep   = wpinv_decimal_separator();
@@ -365,6 +383,9 @@  discard block
 block discarded – undo
365 383
     return apply_filters( 'wpinv_sanitize_key', $key, $raw_key );
366 384
 }
367 385
 
386
+/**
387
+ * @return string
388
+ */
368 389
 function wpinv_get_file_extension( $str ) {
369 390
     $parts = explode( '.', $str );
370 391
     return end( $parts );
@@ -569,6 +590,9 @@  discard block
 block discarded – undo
569 590
     return strlen( $str );
570 591
 }
571 592
 
593
+/**
594
+ * @param string $str
595
+ */
572 596
 function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) {
573 597
     if ( function_exists( 'mb_strtolower' ) ) {
574 598
         return mb_strtolower( $str, $encoding );
@@ -577,6 +601,9 @@  discard block
 block discarded – undo
577 601
     return strtolower( $str );
578 602
 }
579 603
 
604
+/**
605
+ * @param string $str
606
+ */
580 607
 function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) {
581 608
     if ( function_exists( 'mb_strtoupper' ) ) {
582 609
         return mb_strtoupper( $str, $encoding );
@@ -654,7 +681,7 @@  discard block
 block discarded – undo
654 681
  *
655 682
  * @param string $str The string being decoded.
656 683
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
657
- * @return string The width of string.
684
+ * @return integer The width of string.
658 685
  */
659 686
 function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) {
660 687
     if ( function_exists( 'mb_strwidth' ) ) {
Please login to merge, or discard this patch.
Spacing   +364 added lines, -364 removed lines patch added patch discarded remove patch
@@ -7,89 +7,89 @@  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
     global $post;
94 94
     $invoice_statuses = array();
95 95
     $invoice_statuses = array(
@@ -103,32 +103,32 @@  discard block
 block discarded – undo
103 103
         'wpi-renewal' => __('Renewal Payment', 'invoicing')
104 104
     );
105 105
     
106
-    if ( $trashed ) {
107
-        $invoice_statuses['trash'] = __( 'Trash', 'invoicing' );
106
+    if ($trashed) {
107
+        $invoice_statuses['trash'] = __('Trash', 'invoicing');
108 108
     }
109 109
 
110
-    return apply_filters( 'wpinv_statuses', $invoice_statuses );
110
+    return apply_filters('wpinv_statuses', $invoice_statuses);
111 111
 }
112 112
 
113
-function wpinv_status_nicename( $status ) {
113
+function wpinv_status_nicename($status) {
114 114
     $statuses = wpinv_get_invoice_statuses();
115
-    $status   = isset( $statuses[$status] ) ? $statuses[$status] : __( $status, 'invoicing' );
115
+    $status   = isset($statuses[$status]) ? $statuses[$status] : __($status, 'invoicing');
116 116
 
117 117
     return $status;
118 118
 }
119 119
 
120 120
 function wpinv_get_currency() {
121
-    $currency = wpinv_get_option( 'currency', 'USD' );
121
+    $currency = wpinv_get_option('currency', 'USD');
122 122
     
123
-    return apply_filters( 'wpinv_currency', $currency );
123
+    return apply_filters('wpinv_currency', $currency);
124 124
 }
125 125
 
126
-function wpinv_currency_symbol( $currency = '' ) {
127
-    if ( empty( $currency ) ) {
126
+function wpinv_currency_symbol($currency = '') {
127
+    if (empty($currency)) {
128 128
         $currency = wpinv_get_currency();
129 129
     }
130 130
     
131
-    $symbols = apply_filters( 'wpinv_currency_symbols', array(
131
+    $symbols = apply_filters('wpinv_currency_symbols', array(
132 132
         'AED' => '&#x62f;.&#x625;',
133 133
         'AFN' => '&#x60b;',
134 134
         'ALL' => 'L',
@@ -291,208 +291,208 @@  discard block
 block discarded – undo
291 291
         'YER' => '&#xfdfc;',
292 292
         'ZAR' => '&#82;',
293 293
         'ZMW' => 'ZK',
294
-    ) );
294
+    ));
295 295
 
296
-    $currency_symbol = isset( $symbols[$currency] ) ? $symbols[$currency] : $currency;
296
+    $currency_symbol = isset($symbols[$currency]) ? $symbols[$currency] : $currency;
297 297
 
298
-    return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency );
298
+    return apply_filters('wpinv_currency_symbol', $currency_symbol, $currency);
299 299
 }
300 300
 
301 301
 function wpinv_currency_position() {
302
-    $position = wpinv_get_option( 'currency_position', 'left' );
302
+    $position = wpinv_get_option('currency_position', 'left');
303 303
     
304
-    return apply_filters( 'wpinv_currency_position', $position );
304
+    return apply_filters('wpinv_currency_position', $position);
305 305
 }
306 306
 
307 307
 function wpinv_thousands_separator() {
308
-    $thousand_sep = wpinv_get_option( 'thousands_separator', ',' );
308
+    $thousand_sep = wpinv_get_option('thousands_separator', ',');
309 309
     
310
-    return apply_filters( 'wpinv_thousands_separator', $thousand_sep );
310
+    return apply_filters('wpinv_thousands_separator', $thousand_sep);
311 311
 }
312 312
 
313 313
 function wpinv_decimal_separator() {
314
-    $decimal_sep = wpinv_get_option( 'decimal_separator', '.' );
314
+    $decimal_sep = wpinv_get_option('decimal_separator', '.');
315 315
     
316
-    return apply_filters( 'wpinv_decimal_separator', $decimal_sep );
316
+    return apply_filters('wpinv_decimal_separator', $decimal_sep);
317 317
 }
318 318
 
319 319
 function wpinv_decimals() {
320
-    $decimals = apply_filters( 'wpinv_decimals', wpinv_get_option( 'decimals', 2 ) );
320
+    $decimals = apply_filters('wpinv_decimals', wpinv_get_option('decimals', 2));
321 321
     
322
-    return absint( $decimals );
322
+    return absint($decimals);
323 323
 }
324 324
 
325 325
 function wpinv_get_currencies() {
326 326
     $currencies = array(
327
-        'USD' => __( 'US Dollar', 'invoicing' ),
328
-        'EUR' => __( 'Euro', 'invoicing' ),
329
-        'GBP' => __( 'Pound Sterling', 'invoicing' ),
330
-        'AFN' => __( 'Afghan Afghani', 'invoicing' ),
331
-        'ALL' => __( 'Albanian Lek', 'invoicing' ),
332
-        'AMD' => __( 'Armenian Dram', 'invoicing' ),
333
-        'ANG' => __( 'Netherlands Antillean Guilder', 'invoicing' ),
334
-        'AOA' => __( 'Angolan Kwanza', 'invoicing' ),
335
-        'ARS' => __( 'Argentine Peso', 'invoicing' ),
336
-        'AUD' => __( 'Australian Dollar', 'invoicing' ),
337
-        'AWG' => __( 'Aruban Florin', 'invoicing' ),
338
-        'AZN' => __( 'Azerbaijani Manat', 'invoicing' ),
339
-        'BAM' => __( 'Bosnia and Herzegovina Convertible Marka', 'invoicing' ),
340
-        'BBD' => __( 'Barbadian Dollar', 'invoicing' ),
341
-        'BDT' => __( 'Bangladeshi Taka', 'invoicing' ),
342
-        'BGN' => __( 'Bulgarian Lev', 'invoicing' ),
343
-        'BHD' => __( 'Bahraini Dinar', 'invoicing' ),
344
-        'BIF' => __( 'Burundian Franc', 'invoicing' ),
345
-        'BMD' => __( 'Bermudian Dollar', 'invoicing' ),
346
-        'BND' => __( 'Brunei Dollar', 'invoicing' ),
347
-        'BOB' => __( 'Bolivian Boliviano', 'invoicing' ),
348
-        'BRL' => __( 'Brazilian Real', 'invoicing' ),
349
-        'BSD' => __( 'Bahamian Dollar', 'invoicing' ),
350
-        'BTC' => __( 'Bitcoin', 'invoicing' ),
351
-        'BTN' => __( 'Bhutanese Ngultrum', 'invoicing' ),
352
-        'BWP' => __( 'Botswana Pula', 'invoicing' ),
353
-        'BYR' => __( 'Belarusian Ruble', 'invoicing' ),
354
-        'BZD' => __( 'Belize Dollar', 'invoicing' ),
355
-        'CAD' => __( 'Canadian Dollar', 'invoicing' ),
356
-        'CDF' => __( 'Congolese Franc', 'invoicing' ),
357
-        'CHF' => __( 'Swiss Franc', 'invoicing' ),
358
-        'CLP' => __( 'Chilean Peso', 'invoicing' ),
359
-        'CNY' => __( 'Chinese Yuan', 'invoicing' ),
360
-        'COP' => __( 'Colombian Peso', 'invoicing' ),
361
-        'CRC' => __( 'Costa Rican Colon', 'invoicing' ),
362
-        'CUC' => __( 'Cuban Convertible Peso', 'invoicing' ),
363
-        'CUP' => __( 'Cuban Peso', 'invoicing' ),
364
-        'CVE' => __( 'Cape Verdean escudo', 'invoicing' ),
365
-        'CZK' => __( 'Czech Koruna', 'invoicing' ),
366
-        'DJF' => __( 'Djiboutian Franc', 'invoicing' ),
367
-        'DKK' => __( 'Danish Krone', 'invoicing' ),
368
-        'DOP' => __( 'Dominican Peso', 'invoicing' ),
369
-        'DZD' => __( 'Algerian Dinar', 'invoicing' ),
370
-        'EGP' => __( 'Egyptian Pound', 'invoicing' ),
371
-        'ERN' => __( 'Eritrean Nakfa', 'invoicing' ),
372
-        'ETB' => __( 'Ethiopian irr', 'invoicing' ),
373
-        'FJD' => __( 'Fijian Dollar', 'invoicing' ),
374
-        'FKP' => __( 'Falkland Islands Pound', 'invoicing' ),
375
-        'GEL' => __( 'Georgian lari', 'invoicing' ),
376
-        'GGP' => __( 'Guernsey Pound', 'invoicing' ),
377
-        'GHS' => __( 'Ghana cedi', 'invoicing' ),
378
-        'GIP' => __( 'Gibraltar Pound', 'invoicing' ),
379
-        'GMD' => __( 'Gambian Dalasi', 'invoicing' ),
380
-        'GNF' => __( 'Guinean Franc', 'invoicing' ),
381
-        'GTQ' => __( 'Guatemalan Quetzal', 'invoicing' ),
382
-        'GYD' => __( 'Guyanese Dollar', 'invoicing' ),
383
-        'HKD' => __( 'Hong Kong Dollar', 'invoicing' ),
384
-        'HNL' => __( 'Honduran Lempira', 'invoicing' ),
385
-        'HRK' => __( 'Croatian Kuna', 'invoicing' ),
386
-        'HTG' => __( 'Haitian Gourde', 'invoicing' ),
387
-        'HUF' => __( 'Hungarian Forint', 'invoicing' ),
388
-        'IDR' => __( 'Indonesian Rupiah', 'invoicing' ),
389
-        'ILS' => __( 'Israeli New Shekel', 'invoicing' ),
390
-        'IMP' => __( 'Manx Pound', 'invoicing' ),
391
-        'INR' => __( 'Indian Rupee', 'invoicing' ),
392
-        'IQD' => __( 'Iraqi Dinar', 'invoicing' ),
393
-        'IRR' => __( 'Iranian Rial', 'invoicing' ),
394
-        'IRT' => __( 'Iranian Toman', 'invoicing' ),
395
-        'ISK' => __( 'Icelandic Krona', 'invoicing' ),
396
-        'JEP' => __( 'Jersey Pound', 'invoicing' ),
397
-        'JMD' => __( 'Jamaican Dollar', 'invoicing' ),
398
-        'JOD' => __( 'Jordanian Dinar', 'invoicing' ),
399
-        'JPY' => __( 'Japanese Yen', 'invoicing' ),
400
-        'KES' => __( 'Kenyan Shilling', 'invoicing' ),
401
-        'KGS' => __( 'Kyrgyzstani Som', 'invoicing' ),
402
-        'KHR' => __( 'Cambodian Riel', 'invoicing' ),
403
-        'KMF' => __( 'Comorian Franc', 'invoicing' ),
404
-        'KPW' => __( 'North Korean Won', 'invoicing' ),
405
-        'KRW' => __( 'South Korean Won', 'invoicing' ),
406
-        'KWD' => __( 'Kuwaiti Dinar', 'invoicing' ),
407
-        'KYD' => __( 'Cayman Islands Dollar', 'invoicing' ),
408
-        'KZT' => __( 'Kazakhstani Tenge', 'invoicing' ),
409
-        'LAK' => __( 'Lao Kip', 'invoicing' ),
410
-        'LBP' => __( 'Lebanese Pound', 'invoicing' ),
411
-        'LKR' => __( 'Sri Lankan Rupee', 'invoicing' ),
412
-        'LRD' => __( 'Liberian Dollar', 'invoicing' ),
413
-        'LSL' => __( 'Lesotho Loti', 'invoicing' ),
414
-        'LYD' => __( 'Libyan Dinar', 'invoicing' ),
415
-        'MAD' => __( 'Moroccan Dirham', 'invoicing' ),
416
-        'MDL' => __( 'Moldovan Leu', 'invoicing' ),
417
-        'MGA' => __( 'Malagasy Ariary', 'invoicing' ),
418
-        'MKD' => __( 'Macedonian Denar', 'invoicing' ),
419
-        'MMK' => __( 'Burmese Kyat', 'invoicing' ),
420
-        'MNT' => __( 'Mongolian Tughrik', 'invoicing' ),
421
-        'MOP' => __( 'Macanese Pataca', 'invoicing' ),
422
-        'MRO' => __( 'Mauritanian Ouguiya', 'invoicing' ),
423
-        'MUR' => __( 'Mauritian Rupee', 'invoicing' ),
424
-        'MVR' => __( 'Maldivian Rufiyaa', 'invoicing' ),
425
-        'MWK' => __( 'Malawian Kwacha', 'invoicing' ),
426
-        'MXN' => __( 'Mexican Peso', 'invoicing' ),
427
-        'MYR' => __( 'Malaysian Ringgit', 'invoicing' ),
428
-        'MZN' => __( 'Mozambican Metical', 'invoicing' ),
429
-        'NAD' => __( 'Namibian Dollar', 'invoicing' ),
430
-        'NGN' => __( 'Nigerian Naira', 'invoicing' ),
431
-        'NIO' => __( 'Nicaraguan Cordoba', 'invoicing' ),
432
-        'NOK' => __( 'Norwegian Krone', 'invoicing' ),
433
-        'NPR' => __( 'Nepalese Rupee', 'invoicing' ),
434
-        'NZD' => __( 'New Zealand Dollar', 'invoicing' ),
435
-        'OMR' => __( 'Omani Rial', 'invoicing' ),
436
-        'PAB' => __( 'Panamanian Balboa', 'invoicing' ),
437
-        'PEN' => __( 'Peruvian Nuevo Sol', 'invoicing' ),
438
-        'PGK' => __( 'Papua New Guinean Kina', 'invoicing' ),
439
-        'PHP' => __( 'Philippine Peso', 'invoicing' ),
440
-        'PKR' => __( 'Pakistani Rupee', 'invoicing' ),
441
-        'PLN' => __( 'Polish Zloty', 'invoicing' ),
442
-        'PRB' => __( 'Transnistrian Ruble', 'invoicing' ),
443
-        'PYG' => __( 'Paraguayan Guarani', 'invoicing' ),
444
-        'QAR' => __( 'Qatari Riyal', 'invoicing' ),
445
-        'RON' => __( 'Romanian Leu', 'invoicing' ),
446
-        'RSD' => __( 'Serbian Dinar', 'invoicing' ),
447
-        'RUB' => __( 'Russian Ruble', 'invoicing' ),
448
-        'RWF' => __( 'Rwandan Franc', 'invoicing' ),
449
-        'SAR' => __( 'Saudi Riyal', 'invoicing' ),
450
-        'SBD' => __( 'Solomon Islands Dollar', 'invoicing' ),
451
-        'SCR' => __( 'Seychellois Rupee', 'invoicing' ),
452
-        'SDG' => __( 'Sudanese Pound', 'invoicing' ),
453
-        'SEK' => __( 'Swedish Krona', 'invoicing' ),
454
-        'SGD' => __( 'Singapore Dollar', 'invoicing' ),
455
-        'SHP' => __( 'Saint Helena Pound', 'invoicing' ),
456
-        'SLL' => __( 'Sierra Leonean Leone', 'invoicing' ),
457
-        'SOS' => __( 'Somali Shilling', 'invoicing' ),
458
-        'SRD' => __( 'Surinamese Dollar', 'invoicing' ),
459
-        'SSP' => __( 'South Sudanese Pound', 'invoicing' ),
460
-        'STD' => __( 'Sao Tomean Dobra', 'invoicing' ),
461
-        'SYP' => __( 'Syrian Pound', 'invoicing' ),
462
-        'SZL' => __( 'Swazi Lilangeni', 'invoicing' ),
463
-        'THB' => __( 'Thai Baht', 'invoicing' ),
464
-        'TJS' => __( 'Tajikistani Somoni', 'invoicing' ),
465
-        'TMT' => __( 'Turkmenistan Manat', 'invoicing' ),
466
-        'TND' => __( 'Tunisian Dinar', 'invoicing' ),
467
-        'TOP' => __( 'Tongan Pa&#x2bb;anga', 'invoicing' ),
468
-        'TRY' => __( 'Turkish Lira', 'invoicing' ),
469
-        'TTD' => __( 'Trinidad and Tobago Dollar', 'invoicing' ),
470
-        'TWD' => __( 'New Taiwan Dollar', 'invoicing' ),
471
-        'TZS' => __( 'Tanzanian Shilling', 'invoicing' ),
472
-        'UAH' => __( 'Ukrainian Hryvnia', 'invoicing' ),
473
-        'UGX' => __( 'Ugandan Shilling', 'invoicing' ),
474
-        'UYU' => __( 'Uruguayan Peso', 'invoicing' ),
475
-        'UZS' => __( 'Uzbekistani Som', 'invoicing' ),
476
-        'VEF' => __( 'Venezuelan Bol&iacute;var', 'invoicing' ),
477
-        'VND' => __( 'Vietnamese Dong', 'invoicing' ),
478
-        'VUV' => __( 'Vanuatu Vatu', 'invoicing' ),
479
-        'WST' => __( 'Samoan Tala', 'invoicing' ),
480
-        'XAF' => __( 'Central African CFA Franc', 'invoicing' ),
481
-        'XCD' => __( 'East Caribbean Dollar', 'invoicing' ),
482
-        'XOF' => __( 'West African CFA Franc', 'invoicing' ),
483
-        'XPF' => __( 'CFP Franc', 'invoicing' ),
484
-        'YER' => __( 'Yemeni Rial', 'invoicing' ),
485
-        'ZAR' => __( 'South African Rand', 'invoicing' ),
486
-        'ZMW' => __( 'Zambian Kwacha', 'invoicing' ),
327
+        'USD' => __('US Dollar', 'invoicing'),
328
+        'EUR' => __('Euro', 'invoicing'),
329
+        'GBP' => __('Pound Sterling', 'invoicing'),
330
+        'AFN' => __('Afghan Afghani', 'invoicing'),
331
+        'ALL' => __('Albanian Lek', 'invoicing'),
332
+        'AMD' => __('Armenian Dram', 'invoicing'),
333
+        'ANG' => __('Netherlands Antillean Guilder', 'invoicing'),
334
+        'AOA' => __('Angolan Kwanza', 'invoicing'),
335
+        'ARS' => __('Argentine Peso', 'invoicing'),
336
+        'AUD' => __('Australian Dollar', 'invoicing'),
337
+        'AWG' => __('Aruban Florin', 'invoicing'),
338
+        'AZN' => __('Azerbaijani Manat', 'invoicing'),
339
+        'BAM' => __('Bosnia and Herzegovina Convertible Marka', 'invoicing'),
340
+        'BBD' => __('Barbadian Dollar', 'invoicing'),
341
+        'BDT' => __('Bangladeshi Taka', 'invoicing'),
342
+        'BGN' => __('Bulgarian Lev', 'invoicing'),
343
+        'BHD' => __('Bahraini Dinar', 'invoicing'),
344
+        'BIF' => __('Burundian Franc', 'invoicing'),
345
+        'BMD' => __('Bermudian Dollar', 'invoicing'),
346
+        'BND' => __('Brunei Dollar', 'invoicing'),
347
+        'BOB' => __('Bolivian Boliviano', 'invoicing'),
348
+        'BRL' => __('Brazilian Real', 'invoicing'),
349
+        'BSD' => __('Bahamian Dollar', 'invoicing'),
350
+        'BTC' => __('Bitcoin', 'invoicing'),
351
+        'BTN' => __('Bhutanese Ngultrum', 'invoicing'),
352
+        'BWP' => __('Botswana Pula', 'invoicing'),
353
+        'BYR' => __('Belarusian Ruble', 'invoicing'),
354
+        'BZD' => __('Belize Dollar', 'invoicing'),
355
+        'CAD' => __('Canadian Dollar', 'invoicing'),
356
+        'CDF' => __('Congolese Franc', 'invoicing'),
357
+        'CHF' => __('Swiss Franc', 'invoicing'),
358
+        'CLP' => __('Chilean Peso', 'invoicing'),
359
+        'CNY' => __('Chinese Yuan', 'invoicing'),
360
+        'COP' => __('Colombian Peso', 'invoicing'),
361
+        'CRC' => __('Costa Rican Colon', 'invoicing'),
362
+        'CUC' => __('Cuban Convertible Peso', 'invoicing'),
363
+        'CUP' => __('Cuban Peso', 'invoicing'),
364
+        'CVE' => __('Cape Verdean escudo', 'invoicing'),
365
+        'CZK' => __('Czech Koruna', 'invoicing'),
366
+        'DJF' => __('Djiboutian Franc', 'invoicing'),
367
+        'DKK' => __('Danish Krone', 'invoicing'),
368
+        'DOP' => __('Dominican Peso', 'invoicing'),
369
+        'DZD' => __('Algerian Dinar', 'invoicing'),
370
+        'EGP' => __('Egyptian Pound', 'invoicing'),
371
+        'ERN' => __('Eritrean Nakfa', 'invoicing'),
372
+        'ETB' => __('Ethiopian irr', 'invoicing'),
373
+        'FJD' => __('Fijian Dollar', 'invoicing'),
374
+        'FKP' => __('Falkland Islands Pound', 'invoicing'),
375
+        'GEL' => __('Georgian lari', 'invoicing'),
376
+        'GGP' => __('Guernsey Pound', 'invoicing'),
377
+        'GHS' => __('Ghana cedi', 'invoicing'),
378
+        'GIP' => __('Gibraltar Pound', 'invoicing'),
379
+        'GMD' => __('Gambian Dalasi', 'invoicing'),
380
+        'GNF' => __('Guinean Franc', 'invoicing'),
381
+        'GTQ' => __('Guatemalan Quetzal', 'invoicing'),
382
+        'GYD' => __('Guyanese Dollar', 'invoicing'),
383
+        'HKD' => __('Hong Kong Dollar', 'invoicing'),
384
+        'HNL' => __('Honduran Lempira', 'invoicing'),
385
+        'HRK' => __('Croatian Kuna', 'invoicing'),
386
+        'HTG' => __('Haitian Gourde', 'invoicing'),
387
+        'HUF' => __('Hungarian Forint', 'invoicing'),
388
+        'IDR' => __('Indonesian Rupiah', 'invoicing'),
389
+        'ILS' => __('Israeli New Shekel', 'invoicing'),
390
+        'IMP' => __('Manx Pound', 'invoicing'),
391
+        'INR' => __('Indian Rupee', 'invoicing'),
392
+        'IQD' => __('Iraqi Dinar', 'invoicing'),
393
+        'IRR' => __('Iranian Rial', 'invoicing'),
394
+        'IRT' => __('Iranian Toman', 'invoicing'),
395
+        'ISK' => __('Icelandic Krona', 'invoicing'),
396
+        'JEP' => __('Jersey Pound', 'invoicing'),
397
+        'JMD' => __('Jamaican Dollar', 'invoicing'),
398
+        'JOD' => __('Jordanian Dinar', 'invoicing'),
399
+        'JPY' => __('Japanese Yen', 'invoicing'),
400
+        'KES' => __('Kenyan Shilling', 'invoicing'),
401
+        'KGS' => __('Kyrgyzstani Som', 'invoicing'),
402
+        'KHR' => __('Cambodian Riel', 'invoicing'),
403
+        'KMF' => __('Comorian Franc', 'invoicing'),
404
+        'KPW' => __('North Korean Won', 'invoicing'),
405
+        'KRW' => __('South Korean Won', 'invoicing'),
406
+        'KWD' => __('Kuwaiti Dinar', 'invoicing'),
407
+        'KYD' => __('Cayman Islands Dollar', 'invoicing'),
408
+        'KZT' => __('Kazakhstani Tenge', 'invoicing'),
409
+        'LAK' => __('Lao Kip', 'invoicing'),
410
+        'LBP' => __('Lebanese Pound', 'invoicing'),
411
+        'LKR' => __('Sri Lankan Rupee', 'invoicing'),
412
+        'LRD' => __('Liberian Dollar', 'invoicing'),
413
+        'LSL' => __('Lesotho Loti', 'invoicing'),
414
+        'LYD' => __('Libyan Dinar', 'invoicing'),
415
+        'MAD' => __('Moroccan Dirham', 'invoicing'),
416
+        'MDL' => __('Moldovan Leu', 'invoicing'),
417
+        'MGA' => __('Malagasy Ariary', 'invoicing'),
418
+        'MKD' => __('Macedonian Denar', 'invoicing'),
419
+        'MMK' => __('Burmese Kyat', 'invoicing'),
420
+        'MNT' => __('Mongolian Tughrik', 'invoicing'),
421
+        'MOP' => __('Macanese Pataca', 'invoicing'),
422
+        'MRO' => __('Mauritanian Ouguiya', 'invoicing'),
423
+        'MUR' => __('Mauritian Rupee', 'invoicing'),
424
+        'MVR' => __('Maldivian Rufiyaa', 'invoicing'),
425
+        'MWK' => __('Malawian Kwacha', 'invoicing'),
426
+        'MXN' => __('Mexican Peso', 'invoicing'),
427
+        'MYR' => __('Malaysian Ringgit', 'invoicing'),
428
+        'MZN' => __('Mozambican Metical', 'invoicing'),
429
+        'NAD' => __('Namibian Dollar', 'invoicing'),
430
+        'NGN' => __('Nigerian Naira', 'invoicing'),
431
+        'NIO' => __('Nicaraguan Cordoba', 'invoicing'),
432
+        'NOK' => __('Norwegian Krone', 'invoicing'),
433
+        'NPR' => __('Nepalese Rupee', 'invoicing'),
434
+        'NZD' => __('New Zealand Dollar', 'invoicing'),
435
+        'OMR' => __('Omani Rial', 'invoicing'),
436
+        'PAB' => __('Panamanian Balboa', 'invoicing'),
437
+        'PEN' => __('Peruvian Nuevo Sol', 'invoicing'),
438
+        'PGK' => __('Papua New Guinean Kina', 'invoicing'),
439
+        'PHP' => __('Philippine Peso', 'invoicing'),
440
+        'PKR' => __('Pakistani Rupee', 'invoicing'),
441
+        'PLN' => __('Polish Zloty', 'invoicing'),
442
+        'PRB' => __('Transnistrian Ruble', 'invoicing'),
443
+        'PYG' => __('Paraguayan Guarani', 'invoicing'),
444
+        'QAR' => __('Qatari Riyal', 'invoicing'),
445
+        'RON' => __('Romanian Leu', 'invoicing'),
446
+        'RSD' => __('Serbian Dinar', 'invoicing'),
447
+        'RUB' => __('Russian Ruble', 'invoicing'),
448
+        'RWF' => __('Rwandan Franc', 'invoicing'),
449
+        'SAR' => __('Saudi Riyal', 'invoicing'),
450
+        'SBD' => __('Solomon Islands Dollar', 'invoicing'),
451
+        'SCR' => __('Seychellois Rupee', 'invoicing'),
452
+        'SDG' => __('Sudanese Pound', 'invoicing'),
453
+        'SEK' => __('Swedish Krona', 'invoicing'),
454
+        'SGD' => __('Singapore Dollar', 'invoicing'),
455
+        'SHP' => __('Saint Helena Pound', 'invoicing'),
456
+        'SLL' => __('Sierra Leonean Leone', 'invoicing'),
457
+        'SOS' => __('Somali Shilling', 'invoicing'),
458
+        'SRD' => __('Surinamese Dollar', 'invoicing'),
459
+        'SSP' => __('South Sudanese Pound', 'invoicing'),
460
+        'STD' => __('Sao Tomean Dobra', 'invoicing'),
461
+        'SYP' => __('Syrian Pound', 'invoicing'),
462
+        'SZL' => __('Swazi Lilangeni', 'invoicing'),
463
+        'THB' => __('Thai Baht', 'invoicing'),
464
+        'TJS' => __('Tajikistani Somoni', 'invoicing'),
465
+        'TMT' => __('Turkmenistan Manat', 'invoicing'),
466
+        'TND' => __('Tunisian Dinar', 'invoicing'),
467
+        'TOP' => __('Tongan Pa&#x2bb;anga', 'invoicing'),
468
+        'TRY' => __('Turkish Lira', 'invoicing'),
469
+        'TTD' => __('Trinidad and Tobago Dollar', 'invoicing'),
470
+        'TWD' => __('New Taiwan Dollar', 'invoicing'),
471
+        'TZS' => __('Tanzanian Shilling', 'invoicing'),
472
+        'UAH' => __('Ukrainian Hryvnia', 'invoicing'),
473
+        'UGX' => __('Ugandan Shilling', 'invoicing'),
474
+        'UYU' => __('Uruguayan Peso', 'invoicing'),
475
+        'UZS' => __('Uzbekistani Som', 'invoicing'),
476
+        'VEF' => __('Venezuelan Bol&iacute;var', 'invoicing'),
477
+        'VND' => __('Vietnamese Dong', 'invoicing'),
478
+        'VUV' => __('Vanuatu Vatu', 'invoicing'),
479
+        'WST' => __('Samoan Tala', 'invoicing'),
480
+        'XAF' => __('Central African CFA Franc', 'invoicing'),
481
+        'XCD' => __('East Caribbean Dollar', 'invoicing'),
482
+        'XOF' => __('West African CFA Franc', 'invoicing'),
483
+        'XPF' => __('CFP Franc', 'invoicing'),
484
+        'YER' => __('Yemeni Rial', 'invoicing'),
485
+        'ZAR' => __('South African Rand', 'invoicing'),
486
+        'ZMW' => __('Zambian Kwacha', 'invoicing'),
487 487
     );
488 488
     
489 489
     //asort( $currencies ); // this
490 490
 
491
-    return apply_filters( 'wpinv_currencies', $currencies );
491
+    return apply_filters('wpinv_currencies', $currencies);
492 492
 }
493 493
 
494
-function wpinv_price( $amount = '', $currency = '' ) {
495
-    if( empty( $currency ) ) {
494
+function wpinv_price($amount = '', $currency = '') {
495
+    if (empty($currency)) {
496 496
         $currency = wpinv_get_currency();
497 497
     }
498 498
 
@@ -500,14 +500,14 @@  discard block
 block discarded – undo
500 500
 
501 501
     $negative = $amount < 0;
502 502
 
503
-    if ( $negative ) {
504
-        $amount = substr( $amount, 1 );
503
+    if ($negative) {
504
+        $amount = substr($amount, 1);
505 505
     }
506 506
 
507
-    $symbol = wpinv_currency_symbol( $currency );
507
+    $symbol = wpinv_currency_symbol($currency);
508 508
 
509
-    if ( $position == 'left' || $position == 'left_space' ) {
510
-        switch ( $currency ) {
509
+    if ($position == 'left' || $position == 'left_space') {
510
+        switch ($currency) {
511 511
             case "GBP" :
512 512
             case "BRL" :
513 513
             case "EUR" :
@@ -519,15 +519,15 @@  discard block
 block discarded – undo
519 519
             case "NZD" :
520 520
             case "SGD" :
521 521
             case "JPY" :
522
-                $price = $position == 'left_space' ? $symbol . ' ' .  $amount : $symbol . $amount;
522
+                $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount;
523 523
                 break;
524 524
             default :
525 525
                 //$price = $currency . ' ' . $amount;
526
-                $price = $position == 'left_space' ? $symbol . ' ' .  $amount : $symbol . $amount;
526
+                $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount;
527 527
                 break;
528 528
         }
529 529
     } else {
530
-        switch ( $currency ) {
530
+        switch ($currency) {
531 531
             case "GBP" :
532 532
             case "BRL" :
533 533
             case "EUR" :
@@ -538,83 +538,83 @@  discard block
 block discarded – undo
538 538
             case "MXN" :
539 539
             case "SGD" :
540 540
             case "JPY" :
541
-                $price = $position == 'right_space' ? $amount . ' ' .  $symbol : $amount . $symbol;
541
+                $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol;
542 542
                 break;
543 543
             default :
544 544
                 //$price = $amount . ' ' . $currency;
545
-                $price = $position == 'right_space' ? $amount . ' ' .  $symbol : $amount . $symbol;
545
+                $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol;
546 546
                 break;
547 547
         }
548 548
     }
549 549
     
550
-    if ( $negative ) {
550
+    if ($negative) {
551 551
         $price = '-' . $price;
552 552
     }
553 553
     
554
-    $price = apply_filters( 'wpinv_' . strtolower( $currency ) . '_currency_filter_' . $position, $price, $currency, $amount );
554
+    $price = apply_filters('wpinv_' . strtolower($currency) . '_currency_filter_' . $position, $price, $currency, $amount);
555 555
 
556 556
     return $price;
557 557
 }
558 558
 
559
-function wpinv_format_amount( $amount, $decimals = NULL, $calculate = false ) {
559
+function wpinv_format_amount($amount, $decimals = NULL, $calculate = false) {
560 560
     $thousands_sep = wpinv_thousands_separator();
561 561
     $decimal_sep   = wpinv_decimal_separator();
562 562
 
563
-    if ( $decimals === NULL ) {
563
+    if ($decimals === NULL) {
564 564
         $decimals = wpinv_decimals();
565 565
     }
566 566
 
567
-    if ( $decimal_sep == ',' && false !== ( $sep_found = strpos( $amount, $decimal_sep ) ) ) {
568
-        $whole = substr( $amount, 0, $sep_found );
569
-        $part = substr( $amount, $sep_found + 1, ( strlen( $amount ) - 1 ) );
567
+    if ($decimal_sep == ',' && false !== ($sep_found = strpos($amount, $decimal_sep))) {
568
+        $whole = substr($amount, 0, $sep_found);
569
+        $part = substr($amount, $sep_found + 1, (strlen($amount) - 1));
570 570
         $amount = $whole . '.' . $part;
571 571
     }
572 572
 
573
-    if ( $thousands_sep == ',' && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) {
574
-        $amount = str_replace( ',', '', $amount );
573
+    if ($thousands_sep == ',' && false !== ($found = strpos($amount, $thousands_sep))) {
574
+        $amount = str_replace(',', '', $amount);
575 575
     }
576 576
 
577
-    if ( $thousands_sep == ' ' && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) {
578
-        $amount = str_replace( ' ', '', $amount );
577
+    if ($thousands_sep == ' ' && false !== ($found = strpos($amount, $thousands_sep))) {
578
+        $amount = str_replace(' ', '', $amount);
579 579
     }
580 580
 
581
-    if ( empty( $amount ) ) {
581
+    if (empty($amount)) {
582 582
         $amount = 0;
583 583
     }
584 584
     
585
-    $decimals  = apply_filters( 'wpinv_amount_format_decimals', $decimals ? $decimals : 0, $amount, $calculate );
586
-    $formatted = number_format( (float)$amount, $decimals, $decimal_sep, $thousands_sep );
585
+    $decimals  = apply_filters('wpinv_amount_format_decimals', $decimals ? $decimals : 0, $amount, $calculate);
586
+    $formatted = number_format((float)$amount, $decimals, $decimal_sep, $thousands_sep);
587 587
     
588
-    if ( $calculate ) {
589
-        if ( $thousands_sep === "," ) {
590
-            $formatted = str_replace( ",", "", $formatted );
588
+    if ($calculate) {
589
+        if ($thousands_sep === ",") {
590
+            $formatted = str_replace(",", "", $formatted);
591 591
         }
592 592
         
593
-        if ( $decimal_sep === "," ) {
594
-            $formatted = str_replace( ",", ".", $formatted );
593
+        if ($decimal_sep === ",") {
594
+            $formatted = str_replace(",", ".", $formatted);
595 595
         }
596 596
     }
597 597
 
598
-    return apply_filters( 'wpinv_amount_format', $formatted, $amount, $decimals, $decimal_sep, $thousands_sep, $calculate );
598
+    return apply_filters('wpinv_amount_format', $formatted, $amount, $decimals, $decimal_sep, $thousands_sep, $calculate);
599 599
 }
600
-add_filter( 'wpinv_amount_format_decimals', 'wpinv_currency_decimal_filter', 10, 1 );
600
+add_filter('wpinv_amount_format_decimals', 'wpinv_currency_decimal_filter', 10, 1);
601 601
 
602
-function wpinv_sanitize_key( $key ) {
602
+function wpinv_sanitize_key($key) {
603 603
     $raw_key = $key;
604
-    $key = preg_replace( '/[^a-zA-Z0-9_\-\.\:\/]/', '', $key );
604
+    $key = preg_replace('/[^a-zA-Z0-9_\-\.\:\/]/', '', $key);
605 605
 
606
-    return apply_filters( 'wpinv_sanitize_key', $key, $raw_key );
606
+    return apply_filters('wpinv_sanitize_key', $key, $raw_key);
607 607
 }
608 608
 
609
-function wpinv_get_file_extension( $str ) {
610
-    $parts = explode( '.', $str );
611
-    return end( $parts );
609
+function wpinv_get_file_extension($str) {
610
+    $parts = explode('.', $str);
611
+    return end($parts);
612 612
 }
613 613
 
614
-function wpinv_string_is_image_url( $str ) {
615
-    $ext = wpinv_get_file_extension( $str );
614
+function wpinv_string_is_image_url($str) {
615
+    $ext = wpinv_get_file_extension($str);
616 616
 
617
-    switch ( strtolower( $ext ) ) {
617
+    switch (strtolower($ext)) {
618 618
         case 'jpeg';
619 619
         case 'jpg';
620 620
             $return = true;
@@ -630,32 +630,32 @@  discard block
 block discarded – undo
630 630
             break;
631 631
     }
632 632
 
633
-    return (bool)apply_filters( 'wpinv_string_is_image', $return, $str );
633
+    return (bool)apply_filters('wpinv_string_is_image', $return, $str);
634 634
 }
635 635
 
636
-function wpinv_error_log( $log, $title = '', $file = '', $line = '', $exit = false ) {
637
-    $should_log = apply_filters( 'wpinv_log_errors', WP_DEBUG );
636
+function wpinv_error_log($log, $title = '', $file = '', $line = '', $exit = false) {
637
+    $should_log = apply_filters('wpinv_log_errors', WP_DEBUG);
638 638
     
639
-    if ( true === $should_log ) {
639
+    if (true === $should_log) {
640 640
         $label = '';
641
-        if ( $file && $file !== '' ) {
642
-            $label .= basename( $file ) . ( $line ? '(' . $line . ')' : '' );
641
+        if ($file && $file !== '') {
642
+            $label .= basename($file) . ($line ? '(' . $line . ')' : '');
643 643
         }
644 644
         
645
-        if ( $title && $title !== '' ) {
645
+        if ($title && $title !== '') {
646 646
             $label = $label !== '' ? $label . ' ' : '';
647 647
             $label .= $title . ' ';
648 648
         }
649 649
         
650
-        $label = $label !== '' ? trim( $label ) . ' : ' : '';
650
+        $label = $label !== '' ? trim($label) . ' : ' : '';
651 651
         
652
-        if ( is_array( $log ) || is_object( $log ) ) {
653
-            error_log( $label . print_r( $log, true ) );
652
+        if (is_array($log) || is_object($log)) {
653
+            error_log($label . print_r($log, true));
654 654
         } else {
655
-            error_log( $label . $log );
655
+            error_log($label . $log);
656 656
         }
657 657
         
658
-        if ( $exit ) {
658
+        if ($exit) {
659 659
             exit;
660 660
         }
661 661
     }
@@ -663,65 +663,65 @@  discard block
 block discarded – undo
663 663
 
664 664
 function wpinv_is_ajax_disabled() {
665 665
     $retval = false;
666
-    return apply_filters( 'wpinv_is_ajax_disabled', $retval );
666
+    return apply_filters('wpinv_is_ajax_disabled', $retval);
667 667
 }
668 668
 
669
-function wpinv_get_current_page_url( $nocache = false ) {
669
+function wpinv_get_current_page_url($nocache = false) {
670 670
     global $wp;
671 671
 
672
-    if ( get_option( 'permalink_structure' ) ) {
673
-        $base = trailingslashit( home_url( $wp->request ) );
672
+    if (get_option('permalink_structure')) {
673
+        $base = trailingslashit(home_url($wp->request));
674 674
     } else {
675
-        $base = add_query_arg( $wp->query_string, '', trailingslashit( home_url( $wp->request ) ) );
676
-        $base = remove_query_arg( array( 'post_type', 'name' ), $base );
675
+        $base = add_query_arg($wp->query_string, '', trailingslashit(home_url($wp->request)));
676
+        $base = remove_query_arg(array('post_type', 'name'), $base);
677 677
     }
678 678
 
679 679
     $scheme = is_ssl() ? 'https' : 'http';
680
-    $uri    = set_url_scheme( $base, $scheme );
680
+    $uri    = set_url_scheme($base, $scheme);
681 681
 
682
-    if ( is_front_page() ) {
683
-        $uri = home_url( '/' );
684
-    } elseif ( wpinv_is_checkout( array(), false ) ) {
682
+    if (is_front_page()) {
683
+        $uri = home_url('/');
684
+    } elseif (wpinv_is_checkout(array(), false)) {
685 685
         $uri = wpinv_get_checkout_uri();
686 686
     }
687 687
 
688
-    $uri = apply_filters( 'wpinv_get_current_page_url', $uri );
688
+    $uri = apply_filters('wpinv_get_current_page_url', $uri);
689 689
 
690
-    if ( $nocache ) {
691
-        $uri = wpinv_add_cache_busting( $uri );
690
+    if ($nocache) {
691
+        $uri = wpinv_add_cache_busting($uri);
692 692
     }
693 693
 
694 694
     return $uri;
695 695
 }
696 696
 
697 697
 function wpinv_get_php_arg_separator_output() {
698
-	return ini_get( 'arg_separator.output' );
698
+	return ini_get('arg_separator.output');
699 699
 }
700 700
 
701
-function wpinv_rgb_from_hex( $color ) {
702
-    $color = str_replace( '#', '', $color );
701
+function wpinv_rgb_from_hex($color) {
702
+    $color = str_replace('#', '', $color);
703 703
     // Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF"
704
-    $color = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color );
704
+    $color = preg_replace('~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color);
705 705
 
706 706
     $rgb      = array();
707
-    $rgb['R'] = hexdec( $color{0}.$color{1} );
708
-    $rgb['G'] = hexdec( $color{2}.$color{3} );
709
-    $rgb['B'] = hexdec( $color{4}.$color{5} );
707
+    $rgb['R'] = hexdec($color{0} . $color{1} );
708
+    $rgb['G'] = hexdec($color{2} . $color{3} );
709
+    $rgb['B'] = hexdec($color{4} . $color{5} );
710 710
 
711 711
     return $rgb;
712 712
 }
713 713
 
714
-function wpinv_hex_darker( $color, $factor = 30 ) {
715
-    $base  = wpinv_rgb_from_hex( $color );
714
+function wpinv_hex_darker($color, $factor = 30) {
715
+    $base  = wpinv_rgb_from_hex($color);
716 716
     $color = '#';
717 717
 
718
-    foreach ( $base as $k => $v ) {
718
+    foreach ($base as $k => $v) {
719 719
         $amount      = $v / 100;
720
-        $amount      = round( $amount * $factor );
720
+        $amount      = round($amount * $factor);
721 721
         $new_decimal = $v - $amount;
722 722
 
723
-        $new_hex_component = dechex( $new_decimal );
724
-        if ( strlen( $new_hex_component ) < 2 ) {
723
+        $new_hex_component = dechex($new_decimal);
724
+        if (strlen($new_hex_component) < 2) {
725 725
             $new_hex_component = "0" . $new_hex_component;
726 726
         }
727 727
         $color .= $new_hex_component;
@@ -730,18 +730,18 @@  discard block
 block discarded – undo
730 730
     return $color;
731 731
 }
732 732
 
733
-function wpinv_hex_lighter( $color, $factor = 30 ) {
734
-    $base  = wpinv_rgb_from_hex( $color );
733
+function wpinv_hex_lighter($color, $factor = 30) {
734
+    $base  = wpinv_rgb_from_hex($color);
735 735
     $color = '#';
736 736
 
737
-    foreach ( $base as $k => $v ) {
737
+    foreach ($base as $k => $v) {
738 738
         $amount      = 255 - $v;
739 739
         $amount      = $amount / 100;
740
-        $amount      = round( $amount * $factor );
740
+        $amount      = round($amount * $factor);
741 741
         $new_decimal = $v + $amount;
742 742
 
743
-        $new_hex_component = dechex( $new_decimal );
744
-        if ( strlen( $new_hex_component ) < 2 ) {
743
+        $new_hex_component = dechex($new_decimal);
744
+        if (strlen($new_hex_component) < 2) {
745 745
             $new_hex_component = "0" . $new_hex_component;
746 746
         }
747 747
         $color .= $new_hex_component;
@@ -750,22 +750,22 @@  discard block
 block discarded – undo
750 750
     return $color;
751 751
 }
752 752
 
753
-function wpinv_light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) {
754
-    $hex = str_replace( '#', '', $color );
753
+function wpinv_light_or_dark($color, $dark = '#000000', $light = '#FFFFFF') {
754
+    $hex = str_replace('#', '', $color);
755 755
 
756
-    $c_r = hexdec( substr( $hex, 0, 2 ) );
757
-    $c_g = hexdec( substr( $hex, 2, 2 ) );
758
-    $c_b = hexdec( substr( $hex, 4, 2 ) );
756
+    $c_r = hexdec(substr($hex, 0, 2));
757
+    $c_g = hexdec(substr($hex, 2, 2));
758
+    $c_b = hexdec(substr($hex, 4, 2));
759 759
 
760
-    $brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000;
760
+    $brightness = (($c_r * 299) + ($c_g * 587) + ($c_b * 114)) / 1000;
761 761
 
762 762
     return $brightness > 155 ? $dark : $light;
763 763
 }
764 764
 
765
-function wpinv_format_hex( $hex ) {
766
-    $hex = trim( str_replace( '#', '', $hex ) );
765
+function wpinv_format_hex($hex) {
766
+    $hex = trim(str_replace('#', '', $hex));
767 767
 
768
-    if ( strlen( $hex ) == 3 ) {
768
+    if (strlen($hex) == 3) {
769 769
         $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2];
770 770
     }
771 771
 
@@ -785,12 +785,12 @@  discard block
 block discarded – undo
785 785
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
786 786
  * @return string
787 787
  */
788
-function wpinv_utf8_strimwidth( $str, $start, $width, $trimmaker = '', $encoding = 'UTF-8' ) {
789
-    if ( function_exists( 'mb_strimwidth' ) ) {
790
-        return mb_strimwidth( $str, $start, $width, $trimmaker, $encoding );
788
+function wpinv_utf8_strimwidth($str, $start, $width, $trimmaker = '', $encoding = 'UTF-8') {
789
+    if (function_exists('mb_strimwidth')) {
790
+        return mb_strimwidth($str, $start, $width, $trimmaker, $encoding);
791 791
     }
792 792
     
793
-    return wpinv_utf8_substr( $str, $start, $width, $encoding ) . $trimmaker;
793
+    return wpinv_utf8_substr($str, $start, $width, $encoding) . $trimmaker;
794 794
 }
795 795
 
796 796
 /**
@@ -802,28 +802,28 @@  discard block
 block discarded – undo
802 802
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
803 803
  * @return int Returns the number of characters in string.
804 804
  */
805
-function wpinv_utf8_strlen( $str, $encoding = 'UTF-8' ) {
806
-    if ( function_exists( 'mb_strlen' ) ) {
807
-        return mb_strlen( $str, $encoding );
805
+function wpinv_utf8_strlen($str, $encoding = 'UTF-8') {
806
+    if (function_exists('mb_strlen')) {
807
+        return mb_strlen($str, $encoding);
808 808
     }
809 809
         
810
-    return strlen( $str );
810
+    return strlen($str);
811 811
 }
812 812
 
813
-function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) {
814
-    if ( function_exists( 'mb_strtolower' ) ) {
815
-        return mb_strtolower( $str, $encoding );
813
+function wpinv_utf8_strtolower($str, $encoding = 'UTF-8') {
814
+    if (function_exists('mb_strtolower')) {
815
+        return mb_strtolower($str, $encoding);
816 816
     }
817 817
     
818
-    return strtolower( $str );
818
+    return strtolower($str);
819 819
 }
820 820
 
821
-function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) {
822
-    if ( function_exists( 'mb_strtoupper' ) ) {
823
-        return mb_strtoupper( $str, $encoding );
821
+function wpinv_utf8_strtoupper($str, $encoding = 'UTF-8') {
822
+    if (function_exists('mb_strtoupper')) {
823
+        return mb_strtoupper($str, $encoding);
824 824
     }
825 825
     
826
-    return strtoupper( $str );
826
+    return strtoupper($str);
827 827
 }
828 828
 
829 829
 /**
@@ -837,12 +837,12 @@  discard block
 block discarded – undo
837 837
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
838 838
  * @return int Returns the position of the first occurrence of search in the string.
839 839
  */
840
-function wpinv_utf8_strpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) {
841
-    if ( function_exists( 'mb_strpos' ) ) {
842
-        return mb_strpos( $str, $find, $offset, $encoding );
840
+function wpinv_utf8_strpos($str, $find, $offset = 0, $encoding = 'UTF-8') {
841
+    if (function_exists('mb_strpos')) {
842
+        return mb_strpos($str, $find, $offset, $encoding);
843 843
     }
844 844
         
845
-    return strpos( $str, $find, $offset );
845
+    return strpos($str, $find, $offset);
846 846
 }
847 847
 
848 848
 /**
@@ -856,12 +856,12 @@  discard block
 block discarded – undo
856 856
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
857 857
  * @return int Returns the position of the last occurrence of search.
858 858
  */
859
-function wpinv_utf8_strrpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) {
860
-    if ( function_exists( 'mb_strrpos' ) ) {
861
-        return mb_strrpos( $str, $find, $offset, $encoding );
859
+function wpinv_utf8_strrpos($str, $find, $offset = 0, $encoding = 'UTF-8') {
860
+    if (function_exists('mb_strrpos')) {
861
+        return mb_strrpos($str, $find, $offset, $encoding);
862 862
     }
863 863
         
864
-    return strrpos( $str, $find, $offset );
864
+    return strrpos($str, $find, $offset);
865 865
 }
866 866
 
867 867
 /**
@@ -876,16 +876,16 @@  discard block
 block discarded – undo
876 876
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
877 877
  * @return string
878 878
  */
879
-function wpinv_utf8_substr( $str, $start, $length = null, $encoding = 'UTF-8' ) {
880
-    if ( function_exists( 'mb_substr' ) ) {
881
-        if ( $length === null ) {
882
-            return mb_substr( $str, $start, wpinv_utf8_strlen( $str, $encoding ), $encoding );
879
+function wpinv_utf8_substr($str, $start, $length = null, $encoding = 'UTF-8') {
880
+    if (function_exists('mb_substr')) {
881
+        if ($length === null) {
882
+            return mb_substr($str, $start, wpinv_utf8_strlen($str, $encoding), $encoding);
883 883
         } else {
884
-            return mb_substr( $str, $start, $length, $encoding );
884
+            return mb_substr($str, $start, $length, $encoding);
885 885
         }
886 886
     }
887 887
         
888
-    return substr( $str, $start, $length );
888
+    return substr($str, $start, $length);
889 889
 }
890 890
 
891 891
 /**
@@ -897,48 +897,48 @@  discard block
 block discarded – undo
897 897
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
898 898
  * @return string The width of string.
899 899
  */
900
-function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) {
901
-    if ( function_exists( 'mb_strwidth' ) ) {
902
-        return mb_strwidth( $str, $encoding );
900
+function wpinv_utf8_strwidth($str, $encoding = 'UTF-8') {
901
+    if (function_exists('mb_strwidth')) {
902
+        return mb_strwidth($str, $encoding);
903 903
     }
904 904
     
905
-    return wpinv_utf8_strlen( $str, $encoding );
905
+    return wpinv_utf8_strlen($str, $encoding);
906 906
 }
907 907
 
908
-function wpinv_utf8_ucfirst( $str, $lower_str_end = false, $encoding = 'UTF-8' ) {
909
-    if ( function_exists( 'mb_strlen' ) ) {
910
-        $first_letter = wpinv_utf8_strtoupper( wpinv_utf8_substr( $str, 0, 1, $encoding ), $encoding );
908
+function wpinv_utf8_ucfirst($str, $lower_str_end = false, $encoding = 'UTF-8') {
909
+    if (function_exists('mb_strlen')) {
910
+        $first_letter = wpinv_utf8_strtoupper(wpinv_utf8_substr($str, 0, 1, $encoding), $encoding);
911 911
         $str_end = "";
912 912
         
913
-        if ( $lower_str_end ) {
914
-            $str_end = wpinv_utf8_strtolower( wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding ), $encoding );
913
+        if ($lower_str_end) {
914
+            $str_end = wpinv_utf8_strtolower(wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding), $encoding);
915 915
         } else {
916
-            $str_end = wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding );
916
+            $str_end = wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding);
917 917
         }
918 918
 
919 919
         return $first_letter . $str_end;
920 920
     }
921 921
     
922
-    return ucfirst( $str );
922
+    return ucfirst($str);
923 923
 }
924 924
 
925
-function wpinv_utf8_ucwords( $str, $encoding = 'UTF-8' ) {
926
-    if ( function_exists( 'mb_convert_case' ) ) {
927
-        return mb_convert_case( $str, MB_CASE_TITLE, $encoding );
925
+function wpinv_utf8_ucwords($str, $encoding = 'UTF-8') {
926
+    if (function_exists('mb_convert_case')) {
927
+        return mb_convert_case($str, MB_CASE_TITLE, $encoding);
928 928
     }
929 929
     
930
-    return ucwords( $str );
930
+    return ucwords($str);
931 931
 }
932 932
 
933
-function wpinv_period_in_days( $period, $unit ) {
934
-    $period = absint( $period );
933
+function wpinv_period_in_days($period, $unit) {
934
+    $period = absint($period);
935 935
     
936
-    if ( $period > 0 ) {
937
-        if ( in_array( strtolower( $unit ), array( 'w', 'week', 'weeks' ) ) ) {
936
+    if ($period > 0) {
937
+        if (in_array(strtolower($unit), array('w', 'week', 'weeks'))) {
938 938
             $period = $period * 7;
939
-        } else if ( in_array( strtolower( $unit ), array( 'm', 'month', 'months' ) ) ) {
939
+        } else if (in_array(strtolower($unit), array('m', 'month', 'months'))) {
940 940
             $period = $period * 30;
941
-        } else if ( in_array( strtolower( $unit ), array( 'y', 'year', 'years' ) ) ) {
941
+        } else if (in_array(strtolower($unit), array('y', 'year', 'years'))) {
942 942
             $period = $period * 365;
943 943
         }
944 944
     }
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
 
@@ -921,6 +924,9 @@  discard block
 block discarded – undo
921 924
         return $removed;
922 925
     }
923 926
 
927
+    /**
928
+     * @param string $key
929
+     */
924 930
     public function remove_fee_by( $key, $value, $global = false ) {
925 931
         $allowed_fee_keys = apply_filters( 'wpinv_fee_keys', array(
926 932
             'index', 'label', 'amount', 'type',
@@ -1380,6 +1386,9 @@  discard block
 block discarded – undo
1380 1386
         return apply_filters( 'wpinv_get_invoice_final_total', $final_total, $this, $currency );
1381 1387
     }
1382 1388
     
1389
+    /**
1390
+     * @return boolean
1391
+     */
1383 1392
     public function get_discounts( $array = false ) {
1384 1393
         $discounts = $this->discounts;
1385 1394
         if ( $array && $discounts ) {
@@ -1388,6 +1397,9 @@  discard block
 block discarded – undo
1388 1397
         return apply_filters( 'wpinv_payment_discounts', $discounts, $this->ID, $this, $array );
1389 1398
     }
1390 1399
     
1400
+    /**
1401
+     * @return string
1402
+     */
1391 1403
     public function get_discount( $currency = false, $dash = false ) {
1392 1404
         if ( !empty( $this->discounts ) ) {
1393 1405
             global $ajax_cart_details;
@@ -1490,10 +1502,16 @@  discard block
 block discarded – undo
1490 1502
         return apply_filters( 'wpinv_user_full_name', $this->full_name, $this->ID, $this );
1491 1503
     }
1492 1504
     
1505
+    /**
1506
+     * @return string
1507
+     */
1493 1508
     public function get_user_info() {
1494 1509
         return apply_filters( 'wpinv_user_info', $this->user_info, $this->ID, $this );
1495 1510
     }
1496 1511
     
1512
+    /**
1513
+     * @return string
1514
+     */
1497 1515
     public function get_email() {
1498 1516
         return apply_filters( 'wpinv_user_email', $this->email, $this->ID, $this );
1499 1517
     }
@@ -1536,10 +1554,16 @@  discard block
 block discarded – undo
1536 1554
         return apply_filters( 'wpinv_currency_code', $this->currency, $this->ID, $this );
1537 1555
     }
1538 1556
     
1557
+    /**
1558
+     * @return string
1559
+     */
1539 1560
     public function get_created_date() {
1540 1561
         return apply_filters( 'wpinv_created_date', $this->date, $this->ID, $this );
1541 1562
     }
1542 1563
     
1564
+    /**
1565
+     * @return string
1566
+     */
1543 1567
     public function get_due_date( $display = false ) {
1544 1568
         $due_date = apply_filters( 'wpinv_due_date', $this->due_date, $this->ID, $this );
1545 1569
         
@@ -2103,6 +2127,9 @@  discard block
 block discarded – undo
2103 2127
         return apply_filters( 'wpinv_invoice_get_subscription_name', $name, $this );
2104 2128
     }
2105 2129
         
2130
+    /**
2131
+     * @return string
2132
+     */
2106 2133
     public function get_expiration() {
2107 2134
         $expiration = $this->get_meta( '_wpinv_subscr_expiration', true );
2108 2135
         return $expiration;
@@ -2118,6 +2145,9 @@  discard block
 block discarded – undo
2118 2145
         return $cancelled_date;
2119 2146
     }
2120 2147
     
2148
+    /**
2149
+     * @return string
2150
+     */
2121 2151
     public function get_trial_end_date( $formatted = true ) {
2122 2152
         if ( !$this->is_free_trial() || ! ( $this->is_paid() || $this->is_refunded() ) ) {
2123 2153
             return NULL;
@@ -2139,6 +2169,9 @@  discard block
 block discarded – undo
2139 2169
         return $trial_end_date;
2140 2170
     }
2141 2171
     
2172
+    /**
2173
+     * @return string
2174
+     */
2142 2175
     public function get_subscription_created( $default = true ) {
2143 2176
         $created = $this->get_meta( '_wpinv_subscr_created', true );
2144 2177
         
@@ -2148,6 +2181,9 @@  discard block
 block discarded – undo
2148 2181
         return $created;
2149 2182
     }
2150 2183
     
2184
+    /**
2185
+     * @return string
2186
+     */
2151 2187
     public function get_subscription_start( $formatted = true ) {
2152 2188
         if ( ! ( $this->is_paid() || $this->is_refunded() ) ) {
2153 2189
             return '-';
Please login to merge, or discard this patch.
Spacing   +800 added lines, -800 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($invoice->post_status);
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,35 +186,35 @@  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($status) {
200
-        $all_invoice_statuses  = wpinv_get_invoice_statuses();
201
-        $status   = isset( $all_invoice_statuses[$status] ) ? $all_invoice_statuses[$status] : __( $status, 'invoicing' );
200
+        $all_invoice_statuses = wpinv_get_invoice_statuses();
201
+        $status = isset($all_invoice_statuses[$status]) ? $all_invoice_statuses[$status] : __($status, 'invoicing');
202 202
 
203
-        return apply_filters( 'setup_status_nicename', $status );
203
+        return apply_filters('setup_status_nicename', $status);
204 204
     }
205 205
     
206
-    private function setup_post_name( $post = NULL ) {
206
+    private function setup_post_name($post = NULL) {
207 207
         global $wpdb;
208 208
         
209 209
         $post_name = '';
210 210
         
211
-        if ( !empty( $post ) ) {
212
-            if( !empty( $post->post_name ) ) {
211
+        if (!empty($post)) {
212
+            if (!empty($post->post_name)) {
213 213
                 $post_name = $post->post_name;
214
-            } else if ( !empty( $post->ID ) ) {
215
-                $post_name = wpinv_generate_post_name( $post->ID );
214
+            } else if (!empty($post->ID)) {
215
+                $post_name = wpinv_generate_post_name($post->ID);
216 216
 
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
 
@@ -222,12 +222,12 @@  discard block
 block discarded – undo
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,66 +235,66 @@  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 ( 'wpi-pending' == $invoice->post_status || 'preapproved' == $invoice->post_status ) {
240
+        if ('wpi-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
-        if ( $tax < 0 ) {
297
+        if ($tax < 0) {
298 298
             $tax = 0;
299 299
         }
300 300
 
@@ -305,9 +305,9 @@  discard block
 block discarded – undo
305 305
         $subtotal     = 0;
306 306
         $cart_details = $this->cart_details;
307 307
 
308
-        if ( is_array( $cart_details ) ) {
309
-            foreach ( $cart_details as $item ) {
310
-                if ( isset( $item['subtotal'] ) ) {
308
+        if (is_array($cart_details)) {
309
+            foreach ($cart_details as $item) {
310
+                if (isset($item['subtotal'])) {
311 311
                     $subtotal += $item['subtotal'];
312 312
                 }
313 313
             }
@@ -321,23 +321,23 @@  discard block
 block discarded – undo
321 321
     }
322 322
     
323 323
     private function setup_discounts() {
324
-        $discounts = ! empty( $this->payment_meta['user_info']['discount'] ) ? $this->payment_meta['user_info']['discount'] : array();
324
+        $discounts = !empty($this->payment_meta['user_info']['discount']) ? $this->payment_meta['user_info']['discount'] : array();
325 325
         return $discounts;
326 326
     }
327 327
     
328 328
     private function setup_total() {
329
-        $amount = $this->get_meta( '_wpinv_total', true );
329
+        $amount = $this->get_meta('_wpinv_total', true);
330 330
 
331
-        if ( empty( $amount ) && '0.00' != $amount ) {
332
-            $meta   = $this->get_meta( '_wpinv_payment_meta', true );
333
-            $meta   = maybe_unserialize( $meta );
331
+        if (empty($amount) && '0.00' != $amount) {
332
+            $meta   = $this->get_meta('_wpinv_payment_meta', true);
333
+            $meta   = maybe_unserialize($meta);
334 334
 
335
-            if ( isset( $meta['amount'] ) ) {
335
+            if (isset($meta['amount'])) {
336 336
                 $amount = $meta['amount'];
337 337
             }
338 338
         }
339 339
 
340
-        if($amount < 0){
340
+        if ($amount < 0) {
341 341
             $amount = 0;
342 342
         }
343 343
 
@@ -345,13 +345,13 @@  discard block
 block discarded – undo
345 345
     }
346 346
     
347 347
     private function setup_mode() {
348
-        return $this->get_meta( '_wpinv_mode' );
348
+        return $this->get_meta('_wpinv_mode');
349 349
     }
350 350
 
351 351
     private function setup_gateway() {
352
-        $gateway = $this->get_meta( '_wpinv_gateway' );
352
+        $gateway = $this->get_meta('_wpinv_gateway');
353 353
         
354
-        if ( empty( $gateway ) && 'publish' === $this->status ) {
354
+        if (empty($gateway) && 'publish' === $this->status) {
355 355
             $gateway = 'manual';
356 356
         }
357 357
         
@@ -359,23 +359,23 @@  discard block
 block discarded – undo
359 359
     }
360 360
     
361 361
     private function setup_gateway_title() {
362
-        $gateway_title = wpinv_get_gateway_checkout_label( $this->gateway );
362
+        $gateway_title = wpinv_get_gateway_checkout_label($this->gateway);
363 363
         return $gateway_title;
364 364
     }
365 365
 
366 366
     private function setup_transaction_id() {
367
-        $transaction_id = $this->get_meta( '_wpinv_transaction_id' );
367
+        $transaction_id = $this->get_meta('_wpinv_transaction_id');
368 368
 
369
-        if ( empty( $transaction_id ) || (int) $transaction_id === (int) $this->ID ) {
369
+        if (empty($transaction_id) || (int)$transaction_id === (int)$this->ID) {
370 370
             $gateway        = $this->gateway;
371
-            $transaction_id = apply_filters( 'wpinv_get_invoice_transaction_id-' . $gateway, $this->ID );
371
+            $transaction_id = apply_filters('wpinv_get_invoice_transaction_id-' . $gateway, $this->ID);
372 372
         }
373 373
 
374 374
         return $transaction_id;
375 375
     }
376 376
 
377 377
     private function setup_ip() {
378
-        $ip = $this->get_meta( '_wpinv_user_ip' );
378
+        $ip = $this->get_meta('_wpinv_user_ip');
379 379
         return $ip;
380 380
     }
381 381
 
@@ -385,62 +385,62 @@  discard block
 block discarded – undo
385 385
     ///}
386 386
         
387 387
     private function setup_first_name() {
388
-        $first_name = $this->get_meta( '_wpinv_first_name' );
388
+        $first_name = $this->get_meta('_wpinv_first_name');
389 389
         return $first_name;
390 390
     }
391 391
     
392 392
     private function setup_last_name() {
393
-        $last_name = $this->get_meta( '_wpinv_last_name' );
393
+        $last_name = $this->get_meta('_wpinv_last_name');
394 394
         return $last_name;
395 395
     }
396 396
     
397 397
     private function setup_company() {
398
-        $company = $this->get_meta( '_wpinv_company' );
398
+        $company = $this->get_meta('_wpinv_company');
399 399
         return $company;
400 400
     }
401 401
     
402 402
     private function setup_vat_number() {
403
-        $vat_number = $this->get_meta( '_wpinv_vat_number' );
403
+        $vat_number = $this->get_meta('_wpinv_vat_number');
404 404
         return $vat_number;
405 405
     }
406 406
     
407 407
     private function setup_vat_rate() {
408
-        $vat_rate = $this->get_meta( '_wpinv_vat_rate' );
408
+        $vat_rate = $this->get_meta('_wpinv_vat_rate');
409 409
         return $vat_rate;
410 410
     }
411 411
     
412 412
     private function setup_adddress_confirmed() {
413
-        $adddress_confirmed = $this->get_meta( '_wpinv_adddress_confirmed' );
413
+        $adddress_confirmed = $this->get_meta('_wpinv_adddress_confirmed');
414 414
         return $adddress_confirmed;
415 415
     }
416 416
     
417 417
     private function setup_phone() {
418
-        $phone = $this->get_meta( '_wpinv_phone' );
418
+        $phone = $this->get_meta('_wpinv_phone');
419 419
         return $phone;
420 420
     }
421 421
     
422 422
     private function setup_address() {
423
-        $address = $this->get_meta( '_wpinv_address', true );
423
+        $address = $this->get_meta('_wpinv_address', true);
424 424
         return $address;
425 425
     }
426 426
     
427 427
     private function setup_city() {
428
-        $city = $this->get_meta( '_wpinv_city', true );
428
+        $city = $this->get_meta('_wpinv_city', true);
429 429
         return $city;
430 430
     }
431 431
     
432 432
     private function setup_country() {
433
-        $country = $this->get_meta( '_wpinv_country', true );
433
+        $country = $this->get_meta('_wpinv_country', true);
434 434
         return $country;
435 435
     }
436 436
     
437 437
     private function setup_state() {
438
-        $state = $this->get_meta( '_wpinv_state', true );
438
+        $state = $this->get_meta('_wpinv_state', true);
439 439
         return $state;
440 440
     }
441 441
     
442 442
     private function setup_zip() {
443
-        $zip = $this->get_meta( '_wpinv_zip', true );
443
+        $zip = $this->get_meta('_wpinv_zip', true);
444 444
         return $zip;
445 445
     }
446 446
 
@@ -449,7 +449,7 @@  discard block
 block discarded – undo
449 449
             'user_id'        => $this->user_id,
450 450
             'first_name'     => $this->first_name,
451 451
             'last_name'      => $this->last_name,
452
-            'email'          => get_the_author_meta( 'email', $this->user_id ),
452
+            'email'          => get_the_author_meta('email', $this->user_id),
453 453
             'phone'          => $this->phone,
454 454
             'address'        => $this->address,
455 455
             'city'           => $this->city,
@@ -464,12 +464,12 @@  discard block
 block discarded – undo
464 464
         );
465 465
         
466 466
         $user_info = array();
467
-        if ( isset( $this->payment_meta['user_info'] ) ) {
468
-            $user_info = maybe_unserialize( $this->payment_meta['user_info'] );
467
+        if (isset($this->payment_meta['user_info'])) {
468
+            $user_info = maybe_unserialize($this->payment_meta['user_info']);
469 469
             
470
-            if ( !empty( $user_info ) && isset( $user_info['user_id'] ) && $post = get_post( $this->ID ) ) {
470
+            if (!empty($user_info) && isset($user_info['user_id']) && $post = get_post($this->ID)) {
471 471
                 $this->user_id = $post->post_author;
472
-                $this->email = get_the_author_meta( 'email', $this->user_id );
472
+                $this->email = get_the_author_meta('email', $this->user_id);
473 473
                 
474 474
                 $user_info['user_id'] = $this->user_id;
475 475
                 $user_info['email'] = $this->email;
@@ -478,13 +478,13 @@  discard block
 block discarded – undo
478 478
             }
479 479
         }
480 480
         
481
-        $user_info    = wp_parse_args( $user_info, $defaults );
481
+        $user_info = wp_parse_args($user_info, $defaults);
482 482
         
483 483
         // Get the user, but only if it's been created
484
-        $user = get_userdata( $this->user_id );
484
+        $user = get_userdata($this->user_id);
485 485
         
486
-        if ( !empty( $user ) && $user->ID > 0 ) {
487
-            if ( empty( $user_info ) ) {
486
+        if (!empty($user) && $user->ID > 0) {
487
+            if (empty($user_info)) {
488 488
                 $user_info = array(
489 489
                     'user_id'    => $user->ID,
490 490
                     'first_name' => $user->first_name,
@@ -493,23 +493,23 @@  discard block
 block discarded – undo
493 493
                     'discount'   => '',
494 494
                 );
495 495
             } else {
496
-                foreach ( $user_info as $key => $value ) {
497
-                    if ( ! empty( $value ) ) {
496
+                foreach ($user_info as $key => $value) {
497
+                    if (!empty($value)) {
498 498
                         continue;
499 499
                     }
500 500
 
501
-                    switch( $key ) {
501
+                    switch ($key) {
502 502
                         case 'user_id':
503
-                            $user_info[ $key ] = $user->ID;
503
+                            $user_info[$key] = $user->ID;
504 504
                             break;
505 505
                         case 'first_name':
506
-                            $user_info[ $key ] = $user->first_name;
506
+                            $user_info[$key] = $user->first_name;
507 507
                             break;
508 508
                         case 'last_name':
509
-                            $user_info[ $key ] = $user->last_name;
509
+                            $user_info[$key] = $user->last_name;
510 510
                             break;
511 511
                         case 'email':
512
-                            $user_info[ $key ] = $user->user_email;
512
+                            $user_info[$key] = $user->user_email;
513 513
                             break;
514 514
                     }
515 515
                 }
@@ -520,25 +520,25 @@  discard block
 block discarded – undo
520 520
     }
521 521
 
522 522
     private function setup_invoice_key() {
523
-        $key = $this->get_meta( '_wpinv_key', true );
523
+        $key = $this->get_meta('_wpinv_key', true);
524 524
         
525 525
         return $key;
526 526
     }
527 527
 
528 528
     private function setup_invoice_number() {
529
-        $number = $this->get_meta( '_wpinv_number', true );
529
+        $number = $this->get_meta('_wpinv_number', true);
530 530
 
531
-        if ( !$number ) {
531
+        if (!$number) {
532 532
             $number = $this->ID;
533 533
 
534
-            if ( $this->status == 'auto-draft' ) {
535
-                if ( wpinv_sequential_number_active( $this->post_type ) ) {
536
-                    $next_number = wpinv_get_next_invoice_number( $this->post_type );
534
+            if ($this->status == 'auto-draft') {
535
+                if (wpinv_sequential_number_active($this->post_type)) {
536
+                    $next_number = wpinv_get_next_invoice_number($this->post_type);
537 537
                     $number      = $next_number;
538 538
                 }
539 539
             }
540 540
             
541
-            $number = wpinv_format_invoice_number( $number, $this->post_type );
541
+            $number = wpinv_format_invoice_number($number, $this->post_type);
542 542
         }
543 543
 
544 544
         return $number;
@@ -547,10 +547,10 @@  discard block
 block discarded – undo
547 547
     private function insert_invoice() {
548 548
         global $wpdb;
549 549
 
550
-        if ( empty( $this->post_type ) ) {
551
-            if ( !empty( $this->ID ) && $post_type = get_post_type( $this->ID ) ) {
550
+        if (empty($this->post_type)) {
551
+            if (!empty($this->ID) && $post_type = get_post_type($this->ID)) {
552 552
                 $this->post_type = $post_type;
553
-            } else if ( !empty( $this->parent_invoice ) && $post_type = get_post_type( $this->parent_invoice ) ) {
553
+            } else if (!empty($this->parent_invoice) && $post_type = get_post_type($this->parent_invoice)) {
554 554
                 $this->post_type = $post_type;
555 555
             } else {
556 556
                 $this->post_type = 'wpi_invoice';
@@ -558,16 +558,16 @@  discard block
 block discarded – undo
558 558
         }
559 559
 
560 560
         $invoice_number = $this->ID;
561
-        if ( $number = $this->get_meta( '_wpinv_number', true ) ) {
561
+        if ($number = $this->get_meta('_wpinv_number', true)) {
562 562
             $invoice_number = $number;
563 563
         }
564 564
 
565
-        if ( empty( $this->key ) ) {
565
+        if (empty($this->key)) {
566 566
             $this->key = self::generate_key();
567 567
             $this->pending['key'] = $this->key;
568 568
         }
569 569
 
570
-        if ( empty( $this->ip ) ) {
570
+        if (empty($this->ip)) {
571 571
             $this->ip = wpinv_get_ip();
572 572
             $this->pending['ip'] = $this->ip;
573 573
         }
@@ -604,61 +604,61 @@  discard block
 block discarded – undo
604 604
                         'post_status'   => $this->status,
605 605
                         'post_author'   => $this->user_id,
606 606
                         'post_type'     => $this->post_type,
607
-                        'post_date'     => ! empty( $this->date ) && $this->date != '0000-00-00 00:00:00' ? $this->date : current_time( 'mysql' ),
608
-                        'post_date_gmt' => ! empty( $this->date ) && $this->date != '0000-00-00 00:00:00' ? get_gmt_from_date( $this->date ) : current_time( 'mysql', 1 ),
607
+                        'post_date'     => !empty($this->date) && $this->date != '0000-00-00 00:00:00' ? $this->date : current_time('mysql'),
608
+                        'post_date_gmt' => !empty($this->date) && $this->date != '0000-00-00 00:00:00' ? get_gmt_from_date($this->date) : current_time('mysql', 1),
609 609
                         'post_parent'   => $this->parent_invoice,
610 610
                     );
611
-        $args = apply_filters( 'wpinv_insert_invoice_args', $post_data, $this );
611
+        $args = apply_filters('wpinv_insert_invoice_args', $post_data, $this);
612 612
 
613 613
         // Create a blank invoice
614
-        if ( !empty( $this->ID ) ) {
615
-            $args['ID']         = $this->ID;
614
+        if (!empty($this->ID)) {
615
+            $args['ID'] = $this->ID;
616 616
 
617
-            $invoice_id = wp_update_post( $args, true );
617
+            $invoice_id = wp_update_post($args, true);
618 618
         } else {
619
-            $invoice_id = wp_insert_post( $args, true );
619
+            $invoice_id = wp_insert_post($args, true);
620 620
         }
621 621
 
622
-        if ( is_wp_error( $invoice_id ) ) {
622
+        if (is_wp_error($invoice_id)) {
623 623
             return false;
624 624
         }
625 625
 
626
-        if ( !empty( $invoice_id ) ) {
626
+        if (!empty($invoice_id)) {
627 627
             $this->ID  = $invoice_id;
628 628
             $this->_ID = $invoice_id;
629 629
 
630
-            $this->payment_meta = apply_filters( 'wpinv_payment_meta', $this->payment_meta, $payment_data );
631
-            if ( ! empty( $this->payment_meta['fees'] ) ) {
632
-                $this->fees = array_merge( $this->fees, $this->payment_meta['fees'] );
633
-                foreach( $this->fees as $fee ) {
634
-                    $this->increase_fees( $fee['amount'] );
630
+            $this->payment_meta = apply_filters('wpinv_payment_meta', $this->payment_meta, $payment_data);
631
+            if (!empty($this->payment_meta['fees'])) {
632
+                $this->fees = array_merge($this->fees, $this->payment_meta['fees']);
633
+                foreach ($this->fees as $fee) {
634
+                    $this->increase_fees($fee['amount']);
635 635
                 }
636 636
             }
637 637
 
638
-            $this->update_meta( '_wpinv_payment_meta', $this->payment_meta );            
638
+            $this->update_meta('_wpinv_payment_meta', $this->payment_meta);            
639 639
             $this->new = true;
640 640
         }
641 641
 
642 642
         return $this->ID;
643 643
     }
644 644
 
645
-    public function save( $setup = false ) {
645
+    public function save($setup = false) {
646 646
         global $wpi_session;
647 647
         
648 648
         $saved = false;
649
-        if ( empty( $this->items ) ) {
649
+        if (empty($this->items)) {
650 650
             return $saved; // Don't save empty invoice.
651 651
         }
652 652
         
653
-        if ( empty( $this->key ) ) {
653
+        if (empty($this->key)) {
654 654
             $this->key = self::generate_key();
655 655
             $this->pending['key'] = $this->key;
656 656
         }
657 657
         
658
-        if ( empty( $this->ID ) ) {
658
+        if (empty($this->ID)) {
659 659
             $invoice_id = $this->insert_invoice();
660 660
 
661
-            if ( false === $invoice_id ) {
661
+            if (false === $invoice_id) {
662 662
                 $saved = false;
663 663
             } else {
664 664
                 $this->ID = $invoice_id;
@@ -666,27 +666,27 @@  discard block
 block discarded – undo
666 666
         }
667 667
 
668 668
         // If we have something pending, let's save it
669
-        if ( !empty( $this->pending ) ) {
669
+        if (!empty($this->pending)) {
670 670
             $total_increase = 0;
671 671
             $total_decrease = 0;
672 672
 
673
-            foreach ( $this->pending as $key => $value ) {
674
-                switch( $key ) {
673
+            foreach ($this->pending as $key => $value) {
674
+                switch ($key) {
675 675
                     case 'items':
676 676
                         // Update totals for pending items
677
-                        foreach ( $this->pending[ $key ] as $item ) {
678
-                            switch( $item['action'] ) {
677
+                        foreach ($this->pending[$key] as $item) {
678
+                            switch ($item['action']) {
679 679
                                 case 'add':
680 680
                                     $price = $item['price'];
681 681
                                     $taxes = $item['tax'];
682 682
 
683
-                                    if ( 'publish' === $this->status ) {
683
+                                    if ('publish' === $this->status) {
684 684
                                         $total_increase += $price;
685 685
                                     }
686 686
                                     break;
687 687
 
688 688
                                 case 'remove':
689
-                                    if ( 'publish' === $this->status ) {
689
+                                    if ('publish' === $this->status) {
690 690
                                         $total_decrease += $item['price'];
691 691
                                     }
692 692
                                     break;
@@ -694,16 +694,16 @@  discard block
 block discarded – undo
694 694
                         }
695 695
                         break;
696 696
                     case 'fees':
697
-                        if ( 'publish' !== $this->status ) {
697
+                        if ('publish' !== $this->status) {
698 698
                             break;
699 699
                         }
700 700
 
701
-                        if ( empty( $this->pending[ $key ] ) ) {
701
+                        if (empty($this->pending[$key])) {
702 702
                             break;
703 703
                         }
704 704
 
705
-                        foreach ( $this->pending[ $key ] as $fee ) {
706
-                            switch( $fee['action'] ) {
705
+                        foreach ($this->pending[$key] as $fee) {
706
+                            switch ($fee['action']) {
707 707
                                 case 'add':
708 708
                                     $total_increase += $fee['amount'];
709 709
                                     break;
@@ -715,83 +715,83 @@  discard block
 block discarded – undo
715 715
                         }
716 716
                         break;
717 717
                     case 'status':
718
-                        $this->update_status( $this->status );
718
+                        $this->update_status($this->status);
719 719
                         break;
720 720
                     case 'gateway':
721
-                        $this->update_meta( '_wpinv_gateway', $this->gateway );
721
+                        $this->update_meta('_wpinv_gateway', $this->gateway);
722 722
                         break;
723 723
                     case 'mode':
724
-                        $this->update_meta( '_wpinv_mode', $this->mode );
724
+                        $this->update_meta('_wpinv_mode', $this->mode);
725 725
                         break;
726 726
                     case 'transaction_id':
727
-                        $this->update_meta( '_wpinv_transaction_id', $this->transaction_id );
727
+                        $this->update_meta('_wpinv_transaction_id', $this->transaction_id);
728 728
                         break;
729 729
                     case 'ip':
730
-                        $this->update_meta( '_wpinv_user_ip', $this->ip );
730
+                        $this->update_meta('_wpinv_user_ip', $this->ip);
731 731
                         break;
732 732
                     ///case 'user_id':
733 733
                         ///$this->update_meta( '_wpinv_user_id', $this->user_id );
734 734
                         ///$this->user_info['user_id'] = $this->user_id;
735 735
                         ///break;
736 736
                     case 'first_name':
737
-                        $this->update_meta( '_wpinv_first_name', $this->first_name );
737
+                        $this->update_meta('_wpinv_first_name', $this->first_name);
738 738
                         $this->user_info['first_name'] = $this->first_name;
739 739
                         break;
740 740
                     case 'last_name':
741
-                        $this->update_meta( '_wpinv_last_name', $this->last_name );
741
+                        $this->update_meta('_wpinv_last_name', $this->last_name);
742 742
                         $this->user_info['last_name'] = $this->last_name;
743 743
                         break;
744 744
                     case 'phone':
745
-                        $this->update_meta( '_wpinv_phone', $this->phone );
745
+                        $this->update_meta('_wpinv_phone', $this->phone);
746 746
                         $this->user_info['phone'] = $this->phone;
747 747
                         break;
748 748
                     case 'address':
749
-                        $this->update_meta( '_wpinv_address', $this->address );
749
+                        $this->update_meta('_wpinv_address', $this->address);
750 750
                         $this->user_info['address'] = $this->address;
751 751
                         break;
752 752
                     case 'city':
753
-                        $this->update_meta( '_wpinv_city', $this->city );
753
+                        $this->update_meta('_wpinv_city', $this->city);
754 754
                         $this->user_info['city'] = $this->city;
755 755
                         break;
756 756
                     case 'country':
757
-                        $this->update_meta( '_wpinv_country', $this->country );
757
+                        $this->update_meta('_wpinv_country', $this->country);
758 758
                         $this->user_info['country'] = $this->country;
759 759
                         break;
760 760
                     case 'state':
761
-                        $this->update_meta( '_wpinv_state', $this->state );
761
+                        $this->update_meta('_wpinv_state', $this->state);
762 762
                         $this->user_info['state'] = $this->state;
763 763
                         break;
764 764
                     case 'zip':
765
-                        $this->update_meta( '_wpinv_zip', $this->zip );
765
+                        $this->update_meta('_wpinv_zip', $this->zip);
766 766
                         $this->user_info['zip'] = $this->zip;
767 767
                         break;
768 768
                     case 'company':
769
-                        $this->update_meta( '_wpinv_company', $this->company );
769
+                        $this->update_meta('_wpinv_company', $this->company);
770 770
                         $this->user_info['company'] = $this->company;
771 771
                         break;
772 772
                     case 'vat_number':
773
-                        $this->update_meta( '_wpinv_vat_number', $this->vat_number );
773
+                        $this->update_meta('_wpinv_vat_number', $this->vat_number);
774 774
                         $this->user_info['vat_number'] = $this->vat_number;
775 775
                         
776
-                        $vat_info = $wpi_session->get( 'user_vat_data' );
777
-                        if ( $this->vat_number && !empty( $vat_info ) && isset( $vat_info['number'] ) && isset( $vat_info['valid'] ) && $vat_info['number'] == $this->vat_number ) {
778
-                            $adddress_confirmed = isset( $vat_info['adddress_confirmed'] ) ? $vat_info['adddress_confirmed'] : false;
779
-                            $this->update_meta( '_wpinv_adddress_confirmed', (bool)$adddress_confirmed );
776
+                        $vat_info = $wpi_session->get('user_vat_data');
777
+                        if ($this->vat_number && !empty($vat_info) && isset($vat_info['number']) && isset($vat_info['valid']) && $vat_info['number'] == $this->vat_number) {
778
+                            $adddress_confirmed = isset($vat_info['adddress_confirmed']) ? $vat_info['adddress_confirmed'] : false;
779
+                            $this->update_meta('_wpinv_adddress_confirmed', (bool)$adddress_confirmed);
780 780
                             $this->user_info['adddress_confirmed'] = (bool)$adddress_confirmed;
781 781
                         }
782 782
     
783 783
                         break;
784 784
                     case 'vat_rate':
785
-                        $this->update_meta( '_wpinv_vat_rate', $this->vat_rate );
785
+                        $this->update_meta('_wpinv_vat_rate', $this->vat_rate);
786 786
                         $this->user_info['vat_rate'] = $this->vat_rate;
787 787
                         break;
788 788
                     case 'adddress_confirmed':
789
-                        $this->update_meta( '_wpinv_adddress_confirmed', $this->adddress_confirmed );
789
+                        $this->update_meta('_wpinv_adddress_confirmed', $this->adddress_confirmed);
790 790
                         $this->user_info['adddress_confirmed'] = $this->adddress_confirmed;
791 791
                         break;
792 792
                     
793 793
                     case 'key':
794
-                        $this->update_meta( '_wpinv_key', $this->key );
794
+                        $this->update_meta('_wpinv_key', $this->key);
795 795
                         break;
796 796
                     case 'date':
797 797
                         $args = array(
@@ -800,49 +800,49 @@  discard block
 block discarded – undo
800 800
                             'edit_date' => true,
801 801
                         );
802 802
 
803
-                        wp_update_post( $args );
803
+                        wp_update_post($args);
804 804
                         break;
805 805
                     case 'due_date':
806
-                        if ( empty( $this->due_date ) ) {
806
+                        if (empty($this->due_date)) {
807 807
                             $this->due_date = 'none';
808 808
                         }
809 809
                         
810
-                        $this->update_meta( '_wpinv_due_date', $this->due_date );
810
+                        $this->update_meta('_wpinv_due_date', $this->due_date);
811 811
                         break;
812 812
                     case 'completed_date':
813
-                        $this->update_meta( '_wpinv_completed_date', $this->completed_date );
813
+                        $this->update_meta('_wpinv_completed_date', $this->completed_date);
814 814
                         break;
815 815
                     case 'discounts':
816
-                        if ( ! is_array( $this->discounts ) ) {
817
-                            $this->discounts = explode( ',', $this->discounts );
816
+                        if (!is_array($this->discounts)) {
817
+                            $this->discounts = explode(',', $this->discounts);
818 818
                         }
819 819
 
820
-                        $this->user_info['discount'] = implode( ',', $this->discounts );
820
+                        $this->user_info['discount'] = implode(',', $this->discounts);
821 821
                         break;
822 822
                     case 'discount':
823
-                        $this->update_meta( '_wpinv_discount', wpinv_round_amount( $this->discount ) );
823
+                        $this->update_meta('_wpinv_discount', wpinv_round_amount($this->discount));
824 824
                         break;
825 825
                     case 'discount_code':
826
-                        $this->update_meta( '_wpinv_discount_code', $this->discount_code );
826
+                        $this->update_meta('_wpinv_discount_code', $this->discount_code);
827 827
                         break;
828 828
                     case 'parent_invoice':
829 829
                         $args = array(
830 830
                             'ID'          => $this->ID,
831 831
                             'post_parent' => $this->parent_invoice,
832 832
                         );
833
-                        wp_update_post( $args );
833
+                        wp_update_post($args);
834 834
                         break;
835 835
                     default:
836
-                        do_action( 'wpinv_save', $this, $key );
836
+                        do_action('wpinv_save', $this, $key);
837 837
                         break;
838 838
                 }
839 839
             }
840 840
 
841
-            $this->update_meta( '_wpinv_subtotal', wpinv_round_amount( $this->subtotal ) );
842
-            $this->update_meta( '_wpinv_total', wpinv_round_amount( $this->total ) );
843
-            $this->update_meta( '_wpinv_tax', wpinv_round_amount( $this->tax ) );
841
+            $this->update_meta('_wpinv_subtotal', wpinv_round_amount($this->subtotal));
842
+            $this->update_meta('_wpinv_total', wpinv_round_amount($this->total));
843
+            $this->update_meta('_wpinv_tax', wpinv_round_amount($this->tax));
844 844
             
845
-            $this->items    = array_values( $this->items );
845
+            $this->items = array_values($this->items);
846 846
             
847 847
             $new_meta = array(
848 848
                 'items'         => $this->items,
@@ -853,12 +853,12 @@  discard block
 block discarded – undo
853 853
             );
854 854
             
855 855
             $meta        = $this->get_meta();
856
-            $merged_meta = array_merge( $meta, $new_meta );
856
+            $merged_meta = array_merge($meta, $new_meta);
857 857
 
858 858
             // Only save the payment meta if it's changed
859
-            if ( md5( serialize( $meta ) ) !== md5( serialize( $merged_meta) ) ) {
860
-                $updated     = $this->update_meta( '_wpinv_payment_meta', $merged_meta );
861
-                if ( false !== $updated ) {
859
+            if (md5(serialize($meta)) !== md5(serialize($merged_meta))) {
860
+                $updated = $this->update_meta('_wpinv_payment_meta', $merged_meta);
861
+                if (false !== $updated) {
862 862
                     $saved = true;
863 863
                 }
864 864
             }
@@ -866,15 +866,15 @@  discard block
 block discarded – undo
866 866
             $this->pending = array();
867 867
             $saved         = true;
868 868
         } else {
869
-            $this->update_meta( '_wpinv_subtotal', wpinv_round_amount( $this->subtotal ) );
870
-            $this->update_meta( '_wpinv_total', wpinv_round_amount( $this->total ) );
871
-            $this->update_meta( '_wpinv_tax', wpinv_round_amount( $this->tax ) );
869
+            $this->update_meta('_wpinv_subtotal', wpinv_round_amount($this->subtotal));
870
+            $this->update_meta('_wpinv_total', wpinv_round_amount($this->total));
871
+            $this->update_meta('_wpinv_tax', wpinv_round_amount($this->tax));
872 872
         }
873 873
         
874
-        do_action( 'wpinv_invoice_save', $this, $saved );
874
+        do_action('wpinv_invoice_save', $this, $saved);
875 875
 
876
-        if ( true === $saved || $setup ) {
877
-            $this->setup_invoice( $this->ID );
876
+        if (true === $saved || $setup) {
877
+            $this->setup_invoice($this->ID);
878 878
         }
879 879
         
880 880
         $this->refresh_item_ids();
@@ -882,7 +882,7 @@  discard block
 block discarded – undo
882 882
         return $saved;
883 883
     }
884 884
     
885
-    public function add_fee( $args, $global = true ) {
885
+    public function add_fee($args, $global = true) {
886 886
         $default_args = array(
887 887
             'label'       => '',
888 888
             'amount'      => 0,
@@ -892,75 +892,75 @@  discard block
 block discarded – undo
892 892
             'item_id'     => 0,
893 893
         );
894 894
 
895
-        $fee = wp_parse_args( $args, $default_args );
895
+        $fee = wp_parse_args($args, $default_args);
896 896
         
897
-        if ( empty( $fee['label'] ) ) {
897
+        if (empty($fee['label'])) {
898 898
             return false;
899 899
         }
900 900
         
901
-        $fee['id']  = sanitize_title( $fee['label'] );
901
+        $fee['id'] = sanitize_title($fee['label']);
902 902
         
903
-        $this->fees[]               = $fee;
903
+        $this->fees[] = $fee;
904 904
         
905 905
         $added_fee               = $fee;
906 906
         $added_fee['action']     = 'add';
907 907
         $this->pending['fees'][] = $added_fee;
908
-        reset( $this->fees );
908
+        reset($this->fees);
909 909
 
910
-        $this->increase_fees( $fee['amount'] );
910
+        $this->increase_fees($fee['amount']);
911 911
         return true;
912 912
     }
913 913
 
914
-    public function remove_fee( $key ) {
914
+    public function remove_fee($key) {
915 915
         $removed = false;
916 916
 
917
-        if ( is_numeric( $key ) ) {
918
-            $removed = $this->remove_fee_by( 'index', $key );
917
+        if (is_numeric($key)) {
918
+            $removed = $this->remove_fee_by('index', $key);
919 919
         }
920 920
 
921 921
         return $removed;
922 922
     }
923 923
 
924
-    public function remove_fee_by( $key, $value, $global = false ) {
925
-        $allowed_fee_keys = apply_filters( 'wpinv_fee_keys', array(
924
+    public function remove_fee_by($key, $value, $global = false) {
925
+        $allowed_fee_keys = apply_filters('wpinv_fee_keys', array(
926 926
             'index', 'label', 'amount', 'type',
927
-        ) );
927
+        ));
928 928
 
929
-        if ( ! in_array( $key, $allowed_fee_keys ) ) {
929
+        if (!in_array($key, $allowed_fee_keys)) {
930 930
             return false;
931 931
         }
932 932
 
933 933
         $removed = false;
934
-        if ( 'index' === $key && array_key_exists( $value, $this->fees ) ) {
935
-            $removed_fee             = $this->fees[ $value ];
934
+        if ('index' === $key && array_key_exists($value, $this->fees)) {
935
+            $removed_fee             = $this->fees[$value];
936 936
             $removed_fee['action']   = 'remove';
937 937
             $this->pending['fees'][] = $removed_fee;
938 938
 
939
-            $this->decrease_fees( $removed_fee['amount'] );
939
+            $this->decrease_fees($removed_fee['amount']);
940 940
 
941
-            unset( $this->fees[ $value ] );
941
+            unset($this->fees[$value]);
942 942
             $removed = true;
943
-        } else if ( 'index' !== $key ) {
944
-            foreach ( $this->fees as $index => $fee ) {
945
-                if ( isset( $fee[ $key ] ) && $fee[ $key ] == $value ) {
943
+        } else if ('index' !== $key) {
944
+            foreach ($this->fees as $index => $fee) {
945
+                if (isset($fee[$key]) && $fee[$key] == $value) {
946 946
                     $removed_fee             = $fee;
947 947
                     $removed_fee['action']   = 'remove';
948 948
                     $this->pending['fees'][] = $removed_fee;
949 949
 
950
-                    $this->decrease_fees( $removed_fee['amount'] );
950
+                    $this->decrease_fees($removed_fee['amount']);
951 951
 
952
-                    unset( $this->fees[ $index ] );
952
+                    unset($this->fees[$index]);
953 953
                     $removed = true;
954 954
 
955
-                    if ( false === $global ) {
955
+                    if (false === $global) {
956 956
                         break;
957 957
                     }
958 958
                 }
959 959
             }
960 960
         }
961 961
 
962
-        if ( true === $removed ) {
963
-            $this->fees = array_values( $this->fees );
962
+        if (true === $removed) {
963
+            $this->fees = array_values($this->fees);
964 964
         }
965 965
 
966 966
         return $removed;
@@ -968,35 +968,35 @@  discard block
 block discarded – undo
968 968
 
969 969
     
970 970
 
971
-    public function add_note( $note = '', $customer_type = false, $added_by_user = false, $system = false ) {
971
+    public function add_note($note = '', $customer_type = false, $added_by_user = false, $system = false) {
972 972
         // Bail if no note specified
973
-        if( !$note ) {
973
+        if (!$note) {
974 974
             return false;
975 975
         }
976 976
 
977
-        if ( empty( $this->ID ) )
977
+        if (empty($this->ID))
978 978
             return false;
979 979
         
980
-        if ( ( ( is_user_logged_in() && current_user_can( 'manage_options' ) ) || $added_by_user ) && !$system ) {
981
-            $user                 = get_user_by( 'id', get_current_user_id() );
980
+        if (((is_user_logged_in() && current_user_can('manage_options')) || $added_by_user) && !$system) {
981
+            $user                 = get_user_by('id', get_current_user_id());
982 982
             $comment_author       = $user->display_name;
983 983
             $comment_author_email = $user->user_email;
984 984
         } else {
985
-            $comment_author       = __( 'System', 'invoicing' );
986
-            $comment_author_email = strtolower( __( 'System', 'invoicing' ) ) . '@';
987
-            $comment_author_email .= isset( $_SERVER['HTTP_HOST'] ) ? str_replace( 'www.', '', $_SERVER['HTTP_HOST'] ) : 'noreply.com';
988
-            $comment_author_email = sanitize_email( $comment_author_email );
985
+            $comment_author       = __('System', 'invoicing');
986
+            $comment_author_email = strtolower(__('System', 'invoicing')) . '@';
987
+            $comment_author_email .= isset($_SERVER['HTTP_HOST']) ? str_replace('www.', '', $_SERVER['HTTP_HOST']) : 'noreply.com';
988
+            $comment_author_email = sanitize_email($comment_author_email);
989 989
         }
990 990
 
991
-        do_action( 'wpinv_pre_insert_invoice_note', $this->ID, $note, $customer_type );
991
+        do_action('wpinv_pre_insert_invoice_note', $this->ID, $note, $customer_type);
992 992
 
993
-        $note_id = wp_insert_comment( wp_filter_comment( array(
993
+        $note_id = wp_insert_comment(wp_filter_comment(array(
994 994
             'comment_post_ID'      => $this->ID,
995 995
             'comment_content'      => $note,
996 996
             'comment_agent'        => 'WPInvoicing',
997 997
             'user_id'              => is_admin() ? get_current_user_id() : 0,
998
-            'comment_date'         => current_time( 'mysql' ),
999
-            'comment_date_gmt'     => current_time( 'mysql', 1 ),
998
+            'comment_date'         => current_time('mysql'),
999
+            'comment_date_gmt'     => current_time('mysql', 1),
1000 1000
             'comment_approved'     => 1,
1001 1001
             'comment_parent'       => 0,
1002 1002
             'comment_author'       => $comment_author,
@@ -1004,53 +1004,53 @@  discard block
 block discarded – undo
1004 1004
             'comment_author_url'   => '',
1005 1005
             'comment_author_email' => $comment_author_email,
1006 1006
             'comment_type'         => 'wpinv_note'
1007
-        ) ) );
1007
+        )));
1008 1008
 
1009
-        do_action( 'wpinv_insert_payment_note', $note_id, $this->ID, $note );
1009
+        do_action('wpinv_insert_payment_note', $note_id, $this->ID, $note);
1010 1010
         
1011
-        if ( $customer_type ) {
1012
-            add_comment_meta( $note_id, '_wpi_customer_note', 1 );
1011
+        if ($customer_type) {
1012
+            add_comment_meta($note_id, '_wpi_customer_note', 1);
1013 1013
 
1014
-            do_action( 'wpinv_new_customer_note', array( 'invoice_id' => $this->ID, 'user_note' => $note ) );
1014
+            do_action('wpinv_new_customer_note', array('invoice_id' => $this->ID, 'user_note' => $note));
1015 1015
         }
1016 1016
 
1017 1017
         return $note_id;
1018 1018
     }
1019 1019
 
1020
-    private function increase_subtotal( $amount = 0.00 ) {
1021
-        $amount          = (float) $amount;
1020
+    private function increase_subtotal($amount = 0.00) {
1021
+        $amount          = (float)$amount;
1022 1022
         $this->subtotal += $amount;
1023
-        $this->subtotal  = wpinv_round_amount( $this->subtotal );
1023
+        $this->subtotal  = wpinv_round_amount($this->subtotal);
1024 1024
 
1025 1025
         $this->recalculate_total();
1026 1026
     }
1027 1027
 
1028
-    private function decrease_subtotal( $amount = 0.00 ) {
1029
-        $amount          = (float) $amount;
1028
+    private function decrease_subtotal($amount = 0.00) {
1029
+        $amount          = (float)$amount;
1030 1030
         $this->subtotal -= $amount;
1031
-        $this->subtotal  = wpinv_round_amount( $this->subtotal );
1031
+        $this->subtotal  = wpinv_round_amount($this->subtotal);
1032 1032
 
1033
-        if ( $this->subtotal < 0 ) {
1033
+        if ($this->subtotal < 0) {
1034 1034
             $this->subtotal = 0;
1035 1035
         }
1036 1036
 
1037 1037
         $this->recalculate_total();
1038 1038
     }
1039 1039
 
1040
-    private function increase_fees( $amount = 0.00 ) {
1040
+    private function increase_fees($amount = 0.00) {
1041 1041
         $amount            = (float)$amount;
1042 1042
         $this->fees_total += $amount;
1043
-        $this->fees_total  = wpinv_round_amount( $this->fees_total );
1043
+        $this->fees_total  = wpinv_round_amount($this->fees_total);
1044 1044
 
1045 1045
         $this->recalculate_total();
1046 1046
     }
1047 1047
 
1048
-    private function decrease_fees( $amount = 0.00 ) {
1049
-        $amount            = (float) $amount;
1048
+    private function decrease_fees($amount = 0.00) {
1049
+        $amount            = (float)$amount;
1050 1050
         $this->fees_total -= $amount;
1051
-        $this->fees_total  = wpinv_round_amount( $this->fees_total );
1051
+        $this->fees_total  = wpinv_round_amount($this->fees_total);
1052 1052
 
1053
-        if ( $this->fees_total < 0 ) {
1053
+        if ($this->fees_total < 0) {
1054 1054
             $this->fees_total = 0;
1055 1055
         }
1056 1056
 
@@ -1061,54 +1061,54 @@  discard block
 block discarded – undo
1061 1061
         global $wpi_nosave;
1062 1062
         
1063 1063
         $this->total = $this->subtotal + $this->tax + $this->fees_total;
1064
-        $this->total = wpinv_round_amount( $this->total );
1064
+        $this->total = wpinv_round_amount($this->total);
1065 1065
         
1066
-        do_action( 'wpinv_invoice_recalculate_total', $this, $wpi_nosave );
1066
+        do_action('wpinv_invoice_recalculate_total', $this, $wpi_nosave);
1067 1067
     }
1068 1068
     
1069
-    public function increase_tax( $amount = 0.00 ) {
1070
-        $amount       = (float) $amount;
1069
+    public function increase_tax($amount = 0.00) {
1070
+        $amount       = (float)$amount;
1071 1071
         $this->tax   += $amount;
1072 1072
 
1073 1073
         $this->recalculate_total();
1074 1074
     }
1075 1075
 
1076
-    public function decrease_tax( $amount = 0.00 ) {
1077
-        $amount     = (float) $amount;
1076
+    public function decrease_tax($amount = 0.00) {
1077
+        $amount     = (float)$amount;
1078 1078
         $this->tax -= $amount;
1079 1079
 
1080
-        if ( $this->tax < 0 ) {
1080
+        if ($this->tax < 0) {
1081 1081
             $this->tax = 0;
1082 1082
         }
1083 1083
 
1084 1084
         $this->recalculate_total();
1085 1085
     }
1086 1086
 
1087
-    public function update_status( $new_status = false, $note = '', $manual = false ) {
1088
-        $old_status = ! empty( $this->old_status ) ? $this->old_status : get_post_status( $this->ID );
1087
+    public function update_status($new_status = false, $note = '', $manual = false) {
1088
+        $old_status = !empty($this->old_status) ? $this->old_status : get_post_status($this->ID);
1089 1089
         
1090
-        if ( $old_status === $new_status && in_array( $new_status, array_keys( wpinv_get_invoice_statuses() ) ) ) {
1090
+        if ($old_status === $new_status && in_array($new_status, array_keys(wpinv_get_invoice_statuses()))) {
1091 1091
             return false; // Don't permit status changes that aren't changes
1092 1092
         }
1093 1093
 
1094
-        $do_change = apply_filters( 'wpinv_should_update_invoice_status', true, $this->ID, $new_status, $old_status );
1094
+        $do_change = apply_filters('wpinv_should_update_invoice_status', true, $this->ID, $new_status, $old_status);
1095 1095
         $updated = false;
1096 1096
 
1097
-        if ( $do_change ) {
1098
-            do_action( 'wpinv_before_invoice_status_change', $this->ID, $new_status, $old_status );
1097
+        if ($do_change) {
1098
+            do_action('wpinv_before_invoice_status_change', $this->ID, $new_status, $old_status);
1099 1099
 
1100 1100
             $update_post_data                   = array();
1101 1101
             $update_post_data['ID']             = $this->ID;
1102 1102
             $update_post_data['post_status']    = $new_status;
1103
-            $update_post_data['edit_date']      = current_time( 'mysql', 0 );
1104
-            $update_post_data['edit_date_gmt']  = current_time( 'mysql', 1 );
1103
+            $update_post_data['edit_date']      = current_time('mysql', 0);
1104
+            $update_post_data['edit_date_gmt']  = current_time('mysql', 1);
1105 1105
             
1106
-            $update_post_data = apply_filters( 'wpinv_update_invoice_status_fields', $update_post_data, $this->ID );
1106
+            $update_post_data = apply_filters('wpinv_update_invoice_status_fields', $update_post_data, $this->ID);
1107 1107
 
1108
-            $updated = wp_update_post( $update_post_data );     
1108
+            $updated = wp_update_post($update_post_data);     
1109 1109
            
1110 1110
             // Process any specific status functions
1111
-            switch( $new_status ) {
1111
+            switch ($new_status) {
1112 1112
                 case 'wpi-refunded':
1113 1113
                     $this->process_refund();
1114 1114
                     break;
@@ -1121,9 +1121,9 @@  discard block
 block discarded – undo
1121 1121
             }
1122 1122
             
1123 1123
             // Status was changed.
1124
-            do_action( 'wpinv_status_' . $new_status, $this->ID, $old_status );
1125
-            do_action( 'wpinv_status_' . $old_status . '_to_' . $new_status, $this->ID, $old_status );
1126
-            do_action( 'wpinv_update_status', $this->ID, $new_status, $old_status );
1124
+            do_action('wpinv_status_' . $new_status, $this->ID, $old_status);
1125
+            do_action('wpinv_status_' . $old_status . '_to_' . $new_status, $this->ID, $old_status);
1126
+            do_action('wpinv_update_status', $this->ID, $new_status, $old_status);
1127 1127
         }
1128 1128
 
1129 1129
         return $updated;
@@ -1137,20 +1137,20 @@  discard block
 block discarded – undo
1137 1137
         $this->save();
1138 1138
     }
1139 1139
 
1140
-    public function update_meta( $meta_key = '', $meta_value = '', $prev_value = '' ) {
1141
-        if ( empty( $meta_key ) ) {
1140
+    public function update_meta($meta_key = '', $meta_value = '', $prev_value = '') {
1141
+        if (empty($meta_key)) {
1142 1142
             return false;
1143 1143
         }
1144 1144
 
1145
-        if ( $meta_key == 'key' || $meta_key == 'date' ) {
1145
+        if ($meta_key == 'key' || $meta_key == 'date') {
1146 1146
             $current_meta = $this->get_meta();
1147
-            $current_meta[ $meta_key ] = $meta_value;
1147
+            $current_meta[$meta_key] = $meta_value;
1148 1148
 
1149 1149
             $meta_key     = '_wpinv_payment_meta';
1150 1150
             $meta_value   = $current_meta;
1151 1151
         }
1152 1152
 
1153
-        $meta_value = apply_filters( 'wpinv_update_payment_meta_' . $meta_key, $meta_value, $this->ID );
1153
+        $meta_value = apply_filters('wpinv_update_payment_meta_' . $meta_key, $meta_value, $this->ID);
1154 1154
         
1155 1155
         // Do not update created date on invoice marked as paid.
1156 1156
         /*if ( $meta_key == '_wpinv_completed_date' && !empty( $meta_value ) ) {
@@ -1165,45 +1165,45 @@  discard block
 block discarded – undo
1165 1165
             wp_update_post( $args );
1166 1166
         }*/
1167 1167
         
1168
-        return update_post_meta( $this->ID, $meta_key, $meta_value, $prev_value );
1168
+        return update_post_meta($this->ID, $meta_key, $meta_value, $prev_value);
1169 1169
     }
1170 1170
 
1171 1171
     private function process_refund() {
1172 1172
         $process_refund = true;
1173 1173
 
1174 1174
         // If the payment was not in publish, don't decrement stats as they were never incremented
1175
-        if ( 'publish' != $this->old_status || 'wpi-refunded' != $this->status ) {
1175
+        if ('publish' != $this->old_status || 'wpi-refunded' != $this->status) {
1176 1176
             $process_refund = false;
1177 1177
         }
1178 1178
 
1179 1179
         // Allow extensions to filter for their own payment types, Example: Recurring Payments
1180
-        $process_refund = apply_filters( 'wpinv_should_process_refund', $process_refund, $this );
1180
+        $process_refund = apply_filters('wpinv_should_process_refund', $process_refund, $this);
1181 1181
 
1182
-        if ( false === $process_refund ) {
1182
+        if (false === $process_refund) {
1183 1183
             return;
1184 1184
         }
1185 1185
 
1186
-        do_action( 'wpinv_pre_refund_invoice', $this );
1186
+        do_action('wpinv_pre_refund_invoice', $this);
1187 1187
         
1188
-        $decrease_store_earnings = apply_filters( 'wpinv_decrease_store_earnings_on_refund', true, $this );
1189
-        $decrease_customer_value = apply_filters( 'wpinv_decrease_customer_value_on_refund', true, $this );
1190
-        $decrease_purchase_count = apply_filters( 'wpinv_decrease_customer_purchase_count_on_refund', true, $this );
1188
+        $decrease_store_earnings = apply_filters('wpinv_decrease_store_earnings_on_refund', true, $this);
1189
+        $decrease_customer_value = apply_filters('wpinv_decrease_customer_value_on_refund', true, $this);
1190
+        $decrease_purchase_count = apply_filters('wpinv_decrease_customer_purchase_count_on_refund', true, $this);
1191 1191
         
1192
-        do_action( 'wpinv_post_refund_invoice', $this );
1192
+        do_action('wpinv_post_refund_invoice', $this);
1193 1193
     }
1194 1194
 
1195 1195
     private function process_failure() {
1196 1196
         $discounts = $this->discounts;
1197
-        if ( empty( $discounts ) ) {
1197
+        if (empty($discounts)) {
1198 1198
             return;
1199 1199
         }
1200 1200
 
1201
-        if ( ! is_array( $discounts ) ) {
1202
-            $discounts = array_map( 'trim', explode( ',', $discounts ) );
1201
+        if (!is_array($discounts)) {
1202
+            $discounts = array_map('trim', explode(',', $discounts));
1203 1203
         }
1204 1204
 
1205
-        foreach ( $discounts as $discount ) {
1206
-            wpinv_decrease_discount_usage( $discount );
1205
+        foreach ($discounts as $discount) {
1206
+            wpinv_decrease_discount_usage($discount);
1207 1207
         }
1208 1208
     }
1209 1209
     
@@ -1211,92 +1211,92 @@  discard block
 block discarded – undo
1211 1211
         $process_pending = true;
1212 1212
 
1213 1213
         // If the payment was not in publish or revoked status, don't decrement stats as they were never incremented
1214
-        if ( ( 'publish' != $this->old_status && 'revoked' != $this->old_status ) || 'wpi-pending' != $this->status ) {
1214
+        if (('publish' != $this->old_status && 'revoked' != $this->old_status) || 'wpi-pending' != $this->status) {
1215 1215
             $process_pending = false;
1216 1216
         }
1217 1217
 
1218 1218
         // Allow extensions to filter for their own payment types, Example: Recurring Payments
1219
-        $process_pending = apply_filters( 'wpinv_should_process_pending', $process_pending, $this );
1219
+        $process_pending = apply_filters('wpinv_should_process_pending', $process_pending, $this);
1220 1220
 
1221
-        if ( false === $process_pending ) {
1221
+        if (false === $process_pending) {
1222 1222
             return;
1223 1223
         }
1224 1224
 
1225
-        $decrease_store_earnings = apply_filters( 'wpinv_decrease_store_earnings_on_pending', true, $this );
1226
-        $decrease_customer_value = apply_filters( 'wpinv_decrease_customer_value_on_pending', true, $this );
1227
-        $decrease_purchase_count = apply_filters( 'wpinv_decrease_customer_purchase_count_on_pending', true, $this );
1225
+        $decrease_store_earnings = apply_filters('wpinv_decrease_store_earnings_on_pending', true, $this);
1226
+        $decrease_customer_value = apply_filters('wpinv_decrease_customer_value_on_pending', true, $this);
1227
+        $decrease_purchase_count = apply_filters('wpinv_decrease_customer_purchase_count_on_pending', true, $this);
1228 1228
 
1229 1229
         $this->completed_date = '';
1230
-        $this->update_meta( '_wpinv_completed_date', '' );
1230
+        $this->update_meta('_wpinv_completed_date', '');
1231 1231
     }
1232 1232
     
1233 1233
     // get data
1234
-    public function get_meta( $meta_key = '_wpinv_payment_meta', $single = true ) {
1235
-        $meta = get_post_meta( $this->ID, $meta_key, $single );
1234
+    public function get_meta($meta_key = '_wpinv_payment_meta', $single = true) {
1235
+        $meta = get_post_meta($this->ID, $meta_key, $single);
1236 1236
 
1237
-        if ( $meta_key === '_wpinv_payment_meta' ) {
1237
+        if ($meta_key === '_wpinv_payment_meta') {
1238 1238
 
1239
-            if(!is_array($meta)){$meta = array();} // we need this to be an array so make sure it is.
1239
+            if (!is_array($meta)) {$meta = array(); } // we need this to be an array so make sure it is.
1240 1240
 
1241
-            if ( empty( $meta['key'] ) ) {
1241
+            if (empty($meta['key'])) {
1242 1242
                 $meta['key'] = $this->setup_invoice_key();
1243 1243
             }
1244 1244
 
1245
-            if ( empty( $meta['date'] ) ) {
1246
-                $meta['date'] = get_post_field( 'post_date', $this->ID );
1245
+            if (empty($meta['date'])) {
1246
+                $meta['date'] = get_post_field('post_date', $this->ID);
1247 1247
             }
1248 1248
         }
1249 1249
 
1250
-        $meta = apply_filters( 'wpinv_get_invoice_meta_' . $meta_key, $meta, $this->ID );
1250
+        $meta = apply_filters('wpinv_get_invoice_meta_' . $meta_key, $meta, $this->ID);
1251 1251
 
1252
-        return apply_filters( 'wpinv_get_invoice_meta', $meta, $this->ID, $meta_key );
1252
+        return apply_filters('wpinv_get_invoice_meta', $meta, $this->ID, $meta_key);
1253 1253
     }
1254 1254
     
1255 1255
     public function get_description() {
1256
-        $post = get_post( $this->ID );
1256
+        $post = get_post($this->ID);
1257 1257
         
1258
-        $description = !empty( $post ) ? $post->post_content : '';
1259
-        return apply_filters( 'wpinv_get_description', $description, $this->ID, $this );
1258
+        $description = !empty($post) ? $post->post_content : '';
1259
+        return apply_filters('wpinv_get_description', $description, $this->ID, $this);
1260 1260
     }
1261 1261
     
1262
-    public function get_status( $nicename = false ) {
1263
-        if ( !$nicename ) {
1262
+    public function get_status($nicename = false) {
1263
+        if (!$nicename) {
1264 1264
             $status = $this->status;
1265 1265
         } else {
1266 1266
             $status = $this->status_nicename;
1267 1267
         }
1268 1268
         
1269
-        return apply_filters( 'wpinv_get_status', $status, $nicename, $this->ID, $this );
1269
+        return apply_filters('wpinv_get_status', $status, $nicename, $this->ID, $this);
1270 1270
     }
1271 1271
     
1272 1272
     public function get_cart_details() {
1273
-        return apply_filters( 'wpinv_cart_details', $this->cart_details, $this->ID, $this );
1273
+        return apply_filters('wpinv_cart_details', $this->cart_details, $this->ID, $this);
1274 1274
     }
1275 1275
     
1276
-    public function get_subtotal( $currency = false ) {
1277
-        $subtotal = wpinv_round_amount( $this->subtotal );
1276
+    public function get_subtotal($currency = false) {
1277
+        $subtotal = wpinv_round_amount($this->subtotal);
1278 1278
         
1279
-        if ( $currency ) {
1280
-            $subtotal = wpinv_price( wpinv_format_amount( $subtotal, NULL, !$currency ), $this->get_currency() );
1279
+        if ($currency) {
1280
+            $subtotal = wpinv_price(wpinv_format_amount($subtotal, NULL, !$currency), $this->get_currency());
1281 1281
         }
1282 1282
         
1283
-        return apply_filters( 'wpinv_get_invoice_subtotal', $subtotal, $this->ID, $this, $currency );
1283
+        return apply_filters('wpinv_get_invoice_subtotal', $subtotal, $this->ID, $this, $currency);
1284 1284
     }
1285 1285
     
1286
-    public function get_total( $currency = false ) {        
1287
-        if ( $this->is_free_trial() ) {
1288
-            $total = wpinv_round_amount( 0 );
1286
+    public function get_total($currency = false) {        
1287
+        if ($this->is_free_trial()) {
1288
+            $total = wpinv_round_amount(0);
1289 1289
         } else {
1290
-            $total = wpinv_round_amount( $this->total );
1290
+            $total = wpinv_round_amount($this->total);
1291 1291
         }
1292
-        if ( $currency ) {
1293
-            $total = wpinv_price( wpinv_format_amount( $total, NULL, !$currency ), $this->get_currency() );
1292
+        if ($currency) {
1293
+            $total = wpinv_price(wpinv_format_amount($total, NULL, !$currency), $this->get_currency());
1294 1294
         }
1295 1295
         
1296
-        return apply_filters( 'wpinv_get_invoice_total', $total, $this->ID, $this, $currency );
1296
+        return apply_filters('wpinv_get_invoice_total', $total, $this->ID, $this, $currency);
1297 1297
     }
1298 1298
     
1299
-    public function get_recurring_details( $field = '', $currency = false ) {        
1299
+    public function get_recurring_details($field = '', $currency = false) {        
1300 1300
         $data                 = array();
1301 1301
         $data['cart_details'] = $this->cart_details;
1302 1302
         $data['subtotal']     = $this->get_subtotal();
@@ -1304,45 +1304,45 @@  discard block
 block discarded – undo
1304 1304
         $data['tax']          = $this->get_tax();
1305 1305
         $data['total']        = $this->get_total();
1306 1306
     
1307
-        if ( !empty( $this->cart_details ) && ( $this->is_parent() || $this->is_renewal() ) ) {
1307
+        if (!empty($this->cart_details) && ($this->is_parent() || $this->is_renewal())) {
1308 1308
             $is_free_trial = $this->is_free_trial();
1309
-            $discounts = $this->get_discounts( true );
1309
+            $discounts = $this->get_discounts(true);
1310 1310
             
1311
-            if ( $is_free_trial || !empty( $discounts ) ) {
1311
+            if ($is_free_trial || !empty($discounts)) {
1312 1312
                 $first_use_only = false;
1313 1313
                 
1314
-                if ( !empty( $discounts ) ) {
1315
-                    foreach ( $discounts as $key => $code ) {
1316
-                        if ( wpinv_discount_is_recurring( $code, true ) ) {
1314
+                if (!empty($discounts)) {
1315
+                    foreach ($discounts as $key => $code) {
1316
+                        if (wpinv_discount_is_recurring($code, true)) {
1317 1317
                             $first_use_only = true;
1318 1318
                             break;
1319 1319
                         }
1320 1320
                     }
1321 1321
                 }
1322 1322
                     
1323
-                if ( !$first_use_only ) {
1324
-                    $data['subtotal'] = wpinv_round_amount( $this->subtotal );
1325
-                    $data['discount'] = wpinv_round_amount( $this->discount );
1326
-                    $data['tax']      = wpinv_round_amount( $this->tax );
1327
-                    $data['total']    = wpinv_round_amount( $this->total );
1323
+                if (!$first_use_only) {
1324
+                    $data['subtotal'] = wpinv_round_amount($this->subtotal);
1325
+                    $data['discount'] = wpinv_round_amount($this->discount);
1326
+                    $data['tax']      = wpinv_round_amount($this->tax);
1327
+                    $data['total']    = wpinv_round_amount($this->total);
1328 1328
                 } else {
1329 1329
                     $cart_subtotal   = 0;
1330 1330
                     $cart_discount   = 0;
1331 1331
                     $cart_tax        = 0;
1332 1332
 
1333
-                    foreach ( $this->cart_details as $key => $item ) {
1334
-                        $item_quantity  = $item['quantity'] > 0 ? absint( $item['quantity'] ) : 1;
1335
-                        $item_subtotal  = !empty( $item['subtotal'] ) ? $item['subtotal'] : $item['item_price'] * $item_quantity;
1333
+                    foreach ($this->cart_details as $key => $item) {
1334
+                        $item_quantity  = $item['quantity'] > 0 ? absint($item['quantity']) : 1;
1335
+                        $item_subtotal  = !empty($item['subtotal']) ? $item['subtotal'] : $item['item_price'] * $item_quantity;
1336 1336
                         $item_discount  = 0;
1337
-                        $item_tax       = $item_subtotal > 0 && !empty( $item['vat_rate'] ) ? ( $item_subtotal * 0.01 * (float)$item['vat_rate'] ) : 0;
1337
+                        $item_tax       = $item_subtotal > 0 && !empty($item['vat_rate']) ? ($item_subtotal * 0.01 * (float)$item['vat_rate']) : 0;
1338 1338
                         
1339
-                        if ( wpinv_prices_include_tax() ) {
1340
-                            $item_subtotal -= wpinv_round_amount( $item_tax );
1339
+                        if (wpinv_prices_include_tax()) {
1340
+                            $item_subtotal -= wpinv_round_amount($item_tax);
1341 1341
                         }
1342 1342
                         
1343 1343
                         $item_total     = $item_subtotal - $item_discount + $item_tax;
1344 1344
                         // Do not allow totals to go negative
1345
-                        if ( $item_total < 0 ) {
1345
+                        if ($item_total < 0) {
1346 1346
                             $item_total = 0;
1347 1347
                         }
1348 1348
                         
@@ -1350,113 +1350,113 @@  discard block
 block discarded – undo
1350 1350
                         $cart_discount  += (float)($item_discount);
1351 1351
                         $cart_tax       += (float)($item_tax);
1352 1352
                         
1353
-                        $data['cart_details'][$key]['discount']   = wpinv_round_amount( $item_discount );
1354
-                        $data['cart_details'][$key]['tax']        = wpinv_round_amount( $item_tax );
1355
-                        $data['cart_details'][$key]['price']      = wpinv_round_amount( $item_total );
1353
+                        $data['cart_details'][$key]['discount']   = wpinv_round_amount($item_discount);
1354
+                        $data['cart_details'][$key]['tax']        = wpinv_round_amount($item_tax);
1355
+                        $data['cart_details'][$key]['price']      = wpinv_round_amount($item_total);
1356 1356
                     }
1357 1357
                     
1358
-                    $data['subtotal'] = wpinv_round_amount( $cart_subtotal );
1359
-                    $data['discount'] = wpinv_round_amount( $cart_discount );
1360
-                    $data['tax']      = wpinv_round_amount( $cart_tax );
1361
-                    $data['total']    = wpinv_round_amount( $data['subtotal'] + $data['tax'] );
1358
+                    $data['subtotal'] = wpinv_round_amount($cart_subtotal);
1359
+                    $data['discount'] = wpinv_round_amount($cart_discount);
1360
+                    $data['tax']      = wpinv_round_amount($cart_tax);
1361
+                    $data['total']    = wpinv_round_amount($data['subtotal'] + $data['tax']);
1362 1362
                 }
1363 1363
             }
1364 1364
         }
1365 1365
         
1366
-        $data = apply_filters( 'wpinv_get_invoice_recurring_details', $data, $this, $field, $currency );
1366
+        $data = apply_filters('wpinv_get_invoice_recurring_details', $data, $this, $field, $currency);
1367 1367
 
1368
-        if ( isset( $data[$field] ) ) {
1369
-            return ( $currency ? wpinv_price( $data[$field], $this->get_currency() ) : $data[$field] );
1368
+        if (isset($data[$field])) {
1369
+            return ($currency ? wpinv_price($data[$field], $this->get_currency()) : $data[$field]);
1370 1370
         }
1371 1371
         
1372 1372
         return $data;
1373 1373
     }
1374 1374
     
1375
-    public function get_final_tax( $currency = false ) {        
1376
-        $final_total = wpinv_round_amount( $this->tax );
1377
-        if ( $currency ) {
1378
-            $final_total = wpinv_price( wpinv_format_amount( $final_total, NULL, !$currency ), $this->get_currency() );
1375
+    public function get_final_tax($currency = false) {        
1376
+        $final_total = wpinv_round_amount($this->tax);
1377
+        if ($currency) {
1378
+            $final_total = wpinv_price(wpinv_format_amount($final_total, NULL, !$currency), $this->get_currency());
1379 1379
         }
1380 1380
         
1381
-        return apply_filters( 'wpinv_get_invoice_final_total', $final_total, $this, $currency );
1381
+        return apply_filters('wpinv_get_invoice_final_total', $final_total, $this, $currency);
1382 1382
     }
1383 1383
     
1384
-    public function get_discounts( $array = false ) {
1384
+    public function get_discounts($array = false) {
1385 1385
         $discounts = $this->discounts;
1386
-        if ( $array && $discounts ) {
1387
-            $discounts = explode( ',', $discounts );
1386
+        if ($array && $discounts) {
1387
+            $discounts = explode(',', $discounts);
1388 1388
         }
1389
-        return apply_filters( 'wpinv_payment_discounts', $discounts, $this->ID, $this, $array );
1389
+        return apply_filters('wpinv_payment_discounts', $discounts, $this->ID, $this, $array);
1390 1390
     }
1391 1391
     
1392
-    public function get_discount( $currency = false, $dash = false ) {
1393
-        if ( !empty( $this->discounts ) ) {
1392
+    public function get_discount($currency = false, $dash = false) {
1393
+        if (!empty($this->discounts)) {
1394 1394
             global $ajax_cart_details;
1395 1395
             $ajax_cart_details = $this->get_cart_details();
1396 1396
             
1397
-            if ( !empty( $ajax_cart_details ) && count( $ajax_cart_details ) == count( $this->items ) ) {
1397
+            if (!empty($ajax_cart_details) && count($ajax_cart_details) == count($this->items)) {
1398 1398
                 $cart_items = $ajax_cart_details;
1399 1399
             } else {
1400 1400
                 $cart_items = $this->items;
1401 1401
             }
1402 1402
 
1403
-            $this->discount = wpinv_get_cart_items_discount_amount( $cart_items , $this->discounts );
1403
+            $this->discount = wpinv_get_cart_items_discount_amount($cart_items, $this->discounts);
1404 1404
         }
1405
-        $discount   = wpinv_round_amount( $this->discount );
1405
+        $discount   = wpinv_round_amount($this->discount);
1406 1406
         $dash       = $dash && $discount > 0 ? '&ndash;' : '';
1407 1407
         
1408
-        if ( $currency ) {
1409
-            $discount = wpinv_price( wpinv_format_amount( $discount, NULL, !$currency ), $this->get_currency() );
1408
+        if ($currency) {
1409
+            $discount = wpinv_price(wpinv_format_amount($discount, NULL, !$currency), $this->get_currency());
1410 1410
         }
1411 1411
         
1412
-        $discount   = $dash . $discount;
1412
+        $discount = $dash . $discount;
1413 1413
         
1414
-        return apply_filters( 'wpinv_get_invoice_discount', $discount, $this->ID, $this, $currency, $dash );
1414
+        return apply_filters('wpinv_get_invoice_discount', $discount, $this->ID, $this, $currency, $dash);
1415 1415
     }
1416 1416
     
1417 1417
     public function get_discount_code() {
1418 1418
         return $this->discount_code;
1419 1419
     }
1420 1420
     
1421
-    public function get_tax( $currency = false ) {
1422
-        $tax = wpinv_round_amount( $this->tax );
1421
+    public function get_tax($currency = false) {
1422
+        $tax = wpinv_round_amount($this->tax);
1423 1423
         
1424
-        if ( $currency ) {
1425
-            $tax = wpinv_price( wpinv_format_amount( $tax, NULL, !$currency ), $this->get_currency() );
1424
+        if ($currency) {
1425
+            $tax = wpinv_price(wpinv_format_amount($tax, NULL, !$currency), $this->get_currency());
1426 1426
         }
1427 1427
         
1428
-        return apply_filters( 'wpinv_get_invoice_tax', $tax, $this->ID, $this, $currency );
1428
+        return apply_filters('wpinv_get_invoice_tax', $tax, $this->ID, $this, $currency);
1429 1429
     }
1430 1430
     
1431
-    public function get_fees( $type = 'all' ) {
1432
-        $fees    = array();
1431
+    public function get_fees($type = 'all') {
1432
+        $fees = array();
1433 1433
 
1434
-        if ( ! empty( $this->fees ) && is_array( $this->fees ) ) {
1435
-            foreach ( $this->fees as $fee ) {
1436
-                if( 'all' != $type && ! empty( $fee['type'] ) && $type != $fee['type'] ) {
1434
+        if (!empty($this->fees) && is_array($this->fees)) {
1435
+            foreach ($this->fees as $fee) {
1436
+                if ('all' != $type && !empty($fee['type']) && $type != $fee['type']) {
1437 1437
                     continue;
1438 1438
                 }
1439 1439
 
1440
-                $fee['label'] = stripslashes( $fee['label'] );
1441
-                $fee['amount_display'] = wpinv_price( $fee['amount'], $this->get_currency() );
1442
-                $fees[]    = $fee;
1440
+                $fee['label'] = stripslashes($fee['label']);
1441
+                $fee['amount_display'] = wpinv_price($fee['amount'], $this->get_currency());
1442
+                $fees[] = $fee;
1443 1443
             }
1444 1444
         }
1445 1445
 
1446
-        return apply_filters( 'wpinv_get_invoice_fees', $fees, $this->ID, $this );
1446
+        return apply_filters('wpinv_get_invoice_fees', $fees, $this->ID, $this);
1447 1447
     }
1448 1448
     
1449
-    public function get_fees_total( $type = 'all' ) {
1450
-        $fees_total = (float) 0.00;
1449
+    public function get_fees_total($type = 'all') {
1450
+        $fees_total = (float)0.00;
1451 1451
 
1452
-        $payment_fees = isset( $this->payment_meta['fees'] ) ? $this->payment_meta['fees'] : array();
1453
-        if ( ! empty( $payment_fees ) ) {
1454
-            foreach ( $payment_fees as $fee ) {
1455
-                $fees_total += (float) $fee['amount'];
1452
+        $payment_fees = isset($this->payment_meta['fees']) ? $this->payment_meta['fees'] : array();
1453
+        if (!empty($payment_fees)) {
1454
+            foreach ($payment_fees as $fee) {
1455
+                $fees_total += (float)$fee['amount'];
1456 1456
             }
1457 1457
         }
1458 1458
 
1459
-        return apply_filters( 'wpinv_get_invoice_fees_total', $fees_total, $this->ID, $this );
1459
+        return apply_filters('wpinv_get_invoice_fees_total', $fees_total, $this->ID, $this);
1460 1460
         /*
1461 1461
         $fees = $this->get_fees( $type );
1462 1462
 
@@ -1476,116 +1476,116 @@  discard block
 block discarded – undo
1476 1476
     }
1477 1477
 
1478 1478
     public function get_user_id() {
1479
-        return apply_filters( 'wpinv_user_id', $this->user_id, $this->ID, $this );
1479
+        return apply_filters('wpinv_user_id', $this->user_id, $this->ID, $this);
1480 1480
     }
1481 1481
     
1482 1482
     public function get_first_name() {
1483
-        return apply_filters( 'wpinv_first_name', $this->first_name, $this->ID, $this );
1483
+        return apply_filters('wpinv_first_name', $this->first_name, $this->ID, $this);
1484 1484
     }
1485 1485
     
1486 1486
     public function get_last_name() {
1487
-        return apply_filters( 'wpinv_last_name', $this->last_name, $this->ID, $this );
1487
+        return apply_filters('wpinv_last_name', $this->last_name, $this->ID, $this);
1488 1488
     }
1489 1489
     
1490 1490
     public function get_user_full_name() {
1491
-        return apply_filters( 'wpinv_user_full_name', $this->full_name, $this->ID, $this );
1491
+        return apply_filters('wpinv_user_full_name', $this->full_name, $this->ID, $this);
1492 1492
     }
1493 1493
     
1494 1494
     public function get_user_info() {
1495
-        return apply_filters( 'wpinv_user_info', $this->user_info, $this->ID, $this );
1495
+        return apply_filters('wpinv_user_info', $this->user_info, $this->ID, $this);
1496 1496
     }
1497 1497
     
1498 1498
     public function get_email() {
1499
-        return apply_filters( 'wpinv_user_email', $this->email, $this->ID, $this );
1499
+        return apply_filters('wpinv_user_email', $this->email, $this->ID, $this);
1500 1500
     }
1501 1501
     
1502 1502
     public function get_address() {
1503
-        return apply_filters( 'wpinv_address', $this->address, $this->ID, $this );
1503
+        return apply_filters('wpinv_address', $this->address, $this->ID, $this);
1504 1504
     }
1505 1505
     
1506 1506
     public function get_phone() {
1507
-        return apply_filters( 'wpinv_phone', $this->phone, $this->ID, $this );
1507
+        return apply_filters('wpinv_phone', $this->phone, $this->ID, $this);
1508 1508
     }
1509 1509
     
1510 1510
     public function get_number() {
1511
-        return apply_filters( 'wpinv_number', $this->number, $this->ID, $this );
1511
+        return apply_filters('wpinv_number', $this->number, $this->ID, $this);
1512 1512
     }
1513 1513
     
1514 1514
     public function get_items() {
1515
-        return apply_filters( 'wpinv_payment_meta_items', $this->items, $this->ID, $this );
1515
+        return apply_filters('wpinv_payment_meta_items', $this->items, $this->ID, $this);
1516 1516
     }
1517 1517
     
1518 1518
     public function get_key() {
1519
-        return apply_filters( 'wpinv_key', $this->key, $this->ID, $this );
1519
+        return apply_filters('wpinv_key', $this->key, $this->ID, $this);
1520 1520
     }
1521 1521
     
1522 1522
     public function get_transaction_id() {
1523
-        return apply_filters( 'wpinv_get_invoice_transaction_id', $this->transaction_id, $this->ID, $this );
1523
+        return apply_filters('wpinv_get_invoice_transaction_id', $this->transaction_id, $this->ID, $this);
1524 1524
     }
1525 1525
     
1526 1526
     public function get_gateway() {
1527
-        return apply_filters( 'wpinv_gateway', $this->gateway, $this->ID, $this );
1527
+        return apply_filters('wpinv_gateway', $this->gateway, $this->ID, $this);
1528 1528
     }
1529 1529
     
1530 1530
     public function get_gateway_title() {
1531
-        $this->gateway_title = !empty( $this->gateway_title ) ? $this->gateway_title : wpinv_get_gateway_checkout_label( $this->gateway );
1531
+        $this->gateway_title = !empty($this->gateway_title) ? $this->gateway_title : wpinv_get_gateway_checkout_label($this->gateway);
1532 1532
         
1533
-        return apply_filters( 'wpinv_gateway_title', $this->gateway_title, $this->ID, $this );
1533
+        return apply_filters('wpinv_gateway_title', $this->gateway_title, $this->ID, $this);
1534 1534
     }
1535 1535
     
1536 1536
     public function get_currency() {
1537
-        return apply_filters( 'wpinv_currency_code', $this->currency, $this->ID, $this );
1537
+        return apply_filters('wpinv_currency_code', $this->currency, $this->ID, $this);
1538 1538
     }
1539 1539
     
1540 1540
     public function get_created_date() {
1541
-        return apply_filters( 'wpinv_created_date', $this->date, $this->ID, $this );
1541
+        return apply_filters('wpinv_created_date', $this->date, $this->ID, $this);
1542 1542
     }
1543 1543
     
1544
-    public function get_due_date( $display = false ) {
1545
-        $due_date = apply_filters( 'wpinv_due_date', $this->due_date, $this->ID, $this );
1544
+    public function get_due_date($display = false) {
1545
+        $due_date = apply_filters('wpinv_due_date', $this->due_date, $this->ID, $this);
1546 1546
         
1547
-        if ( !$display || empty( $due_date ) ) {
1547
+        if (!$display || empty($due_date)) {
1548 1548
             return $due_date;
1549 1549
         }
1550 1550
         
1551
-        return date_i18n( get_option( 'date_format' ), strtotime( $due_date ) );
1551
+        return date_i18n(get_option('date_format'), strtotime($due_date));
1552 1552
     }
1553 1553
     
1554 1554
     public function get_completed_date() {
1555
-        return apply_filters( 'wpinv_completed_date', $this->completed_date, $this->ID, $this );
1555
+        return apply_filters('wpinv_completed_date', $this->completed_date, $this->ID, $this);
1556 1556
     }
1557 1557
     
1558
-    public function get_invoice_date( $formatted = true ) {
1558
+    public function get_invoice_date($formatted = true) {
1559 1559
         $date_completed = $this->completed_date;
1560 1560
         $invoice_date   = $date_completed != '' && $date_completed != '0000-00-00 00:00:00' ? $date_completed : '';
1561 1561
         
1562
-        if ( $invoice_date == '' ) {
1562
+        if ($invoice_date == '') {
1563 1563
             $date_created   = $this->date;
1564 1564
             $invoice_date   = $date_created != '' && $date_created != '0000-00-00 00:00:00' ? $date_created : '';
1565 1565
         }
1566 1566
         
1567
-        if ( $formatted && $invoice_date ) {
1568
-            $invoice_date   = date_i18n( get_option( 'date_format' ), strtotime( $invoice_date ) );
1567
+        if ($formatted && $invoice_date) {
1568
+            $invoice_date = date_i18n(get_option('date_format'), strtotime($invoice_date));
1569 1569
         }
1570 1570
 
1571
-        return apply_filters( 'wpinv_get_invoice_date', $invoice_date, $formatted, $this->ID, $this );
1571
+        return apply_filters('wpinv_get_invoice_date', $invoice_date, $formatted, $this->ID, $this);
1572 1572
     }
1573 1573
     
1574 1574
     public function get_ip() {
1575
-        return apply_filters( 'wpinv_user_ip', $this->ip, $this->ID, $this );
1575
+        return apply_filters('wpinv_user_ip', $this->ip, $this->ID, $this);
1576 1576
     }
1577 1577
         
1578
-    public function has_status( $status ) {
1579
-        return apply_filters( 'wpinv_has_status', ( is_array( $status ) && in_array( $this->get_status(), $status ) ) || $this->get_status() === $status ? true : false, $this, $status );
1578
+    public function has_status($status) {
1579
+        return apply_filters('wpinv_has_status', (is_array($status) && in_array($this->get_status(), $status)) || $this->get_status() === $status ? true : false, $this, $status);
1580 1580
     }
1581 1581
     
1582
-    public function add_item( $item_id = 0, $args = array() ) {
1582
+    public function add_item($item_id = 0, $args = array()) {
1583 1583
         global $wpi_current_id, $wpi_item_id;
1584 1584
         
1585
-        $item = new WPInv_Item( $item_id );
1585
+        $item = new WPInv_Item($item_id);
1586 1586
 
1587 1587
         // Bail if this post isn't a item
1588
-        if( !$item || $item->post_type !== 'wpi_item' ) {
1588
+        if (!$item || $item->post_type !== 'wpi_item') {
1589 1589
             return false;
1590 1590
         }
1591 1591
         
@@ -1604,8 +1604,8 @@  discard block
 block discarded – undo
1604 1604
             'fees'          => array()
1605 1605
         );
1606 1606
 
1607
-        $args = wp_parse_args( apply_filters( 'wpinv_add_item_args', $args, $item->ID ), $defaults );
1608
-        $args['quantity']   = $has_quantities && $args['quantity'] > 0 ? absint( $args['quantity'] ) : 1;
1607
+        $args = wp_parse_args(apply_filters('wpinv_add_item_args', $args, $item->ID), $defaults);
1608
+        $args['quantity'] = $has_quantities && $args['quantity'] > 0 ? absint($args['quantity']) : 1;
1609 1609
 
1610 1610
         $wpi_current_id         = $this->ID;
1611 1611
         $wpi_item_id            = $item->ID;
@@ -1617,19 +1617,19 @@  discard block
 block discarded – undo
1617 1617
         $found_cart_key         = false;
1618 1618
         
1619 1619
         if ($has_quantities) {
1620
-            $this->cart_details = !empty( $this->cart_details ) ? array_values( $this->cart_details ) : $this->cart_details;
1620
+            $this->cart_details = !empty($this->cart_details) ? array_values($this->cart_details) : $this->cart_details;
1621 1621
             
1622
-            foreach ( $this->items as $key => $cart_item ) {
1623
-                if ( (int)$item_id !== (int)$cart_item['id'] ) {
1622
+            foreach ($this->items as $key => $cart_item) {
1623
+                if ((int)$item_id !== (int)$cart_item['id']) {
1624 1624
                     continue;
1625 1625
                 }
1626 1626
 
1627
-                $this->items[ $key ]['quantity'] += $args['quantity'];
1627
+                $this->items[$key]['quantity'] += $args['quantity'];
1628 1628
                 break;
1629 1629
             }
1630 1630
             
1631
-            foreach ( $this->cart_details as $cart_key => $cart_item ) {
1632
-                if ( $item_id != $cart_item['id'] ) {
1631
+            foreach ($this->cart_details as $cart_key => $cart_item) {
1632
+                if ($item_id != $cart_item['id']) {
1633 1633
                     continue;
1634 1634
                 }
1635 1635
 
@@ -1641,29 +1641,29 @@  discard block
 block discarded – undo
1641 1641
         if ($has_quantities && $found_cart_key !== false) {
1642 1642
             $cart_item          = $this->cart_details[$found_cart_key];
1643 1643
             $item_price         = $cart_item['item_price'];
1644
-            $quantity           = !empty( $cart_item['quantity'] ) ? $cart_item['quantity'] : 1;
1645
-            $tax_rate           = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : 0;
1644
+            $quantity           = !empty($cart_item['quantity']) ? $cart_item['quantity'] : 1;
1645
+            $tax_rate           = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : 0;
1646 1646
             
1647 1647
             $new_quantity       = $quantity + $args['quantity'];
1648 1648
             $subtotal           = $item_price * $new_quantity;
1649 1649
             
1650 1650
             $args['quantity']   = $new_quantity;
1651
-            $discount           = !empty( $args['discount'] ) ? $args['discount'] : 0;
1652
-            $tax                = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1651
+            $discount           = !empty($args['discount']) ? $args['discount'] : 0;
1652
+            $tax                = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0;
1653 1653
             
1654 1654
             $discount_increased = $discount > 0 && $subtotal > 0 && $discount > (float)$cart_item['discount'] ? $discount - (float)$cart_item['discount'] : 0;
1655 1655
             $tax_increased      = $tax > 0 && $subtotal > 0 && $tax > (float)$cart_item['tax'] ? $tax - (float)$cart_item['tax'] : 0;
1656 1656
             // The total increase equals the number removed * the item_price
1657
-            $total_increased    = wpinv_round_amount( $item_price );
1657
+            $total_increased    = wpinv_round_amount($item_price);
1658 1658
             
1659
-            if ( wpinv_prices_include_tax() ) {
1660
-                $subtotal -= wpinv_round_amount( $tax );
1659
+            if (wpinv_prices_include_tax()) {
1660
+                $subtotal -= wpinv_round_amount($tax);
1661 1661
             }
1662 1662
 
1663
-            $total              = $subtotal - $discount + $tax;
1663
+            $total = $subtotal - $discount + $tax;
1664 1664
 
1665 1665
             // Do not allow totals to go negative
1666
-            if( $total < 0 ) {
1666
+            if ($total < 0) {
1667 1667
                 $total = 0;
1668 1668
             }
1669 1669
             
@@ -1679,25 +1679,25 @@  discard block
 block discarded – undo
1679 1679
             $this->cart_details[$found_cart_key] = $cart_item;
1680 1680
         } else {
1681 1681
             // Set custom price.
1682
-            if ( $args['custom_price'] !== '' ) {
1682
+            if ($args['custom_price'] !== '') {
1683 1683
                 $item_price = $args['custom_price'];
1684 1684
             } else {
1685 1685
                 // Allow overriding the price
1686
-                if ( false !== $args['item_price'] ) {
1686
+                if (false !== $args['item_price']) {
1687 1687
                     $item_price = $args['item_price'];
1688 1688
                 } else {
1689
-                    $item_price = wpinv_get_item_price( $item->ID );
1689
+                    $item_price = wpinv_get_item_price($item->ID);
1690 1690
                 }
1691 1691
             }
1692 1692
 
1693 1693
             // Sanitizing the price here so we don't have a dozen calls later
1694
-            $item_price = wpinv_sanitize_amount( $item_price );
1695
-            $subtotal   = wpinv_round_amount( $item_price * $args['quantity'] );
1694
+            $item_price = wpinv_sanitize_amount($item_price);
1695
+            $subtotal   = wpinv_round_amount($item_price * $args['quantity']);
1696 1696
         
1697
-            $discount   = !empty( $args['discount'] ) ? $args['discount'] : 0;
1698
-            $tax_class  = !empty( $args['vat_class'] ) ? $args['vat_class'] : '';
1699
-            $tax_rate   = !empty( $args['vat_rate'] ) ? $args['vat_rate'] : 0;
1700
-            $tax        = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1697
+            $discount   = !empty($args['discount']) ? $args['discount'] : 0;
1698
+            $tax_class  = !empty($args['vat_class']) ? $args['vat_class'] : '';
1699
+            $tax_rate   = !empty($args['vat_rate']) ? $args['vat_rate'] : 0;
1700
+            $tax        = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0;
1701 1701
 
1702 1702
             // Setup the items meta item
1703 1703
             $new_item = array(
@@ -1705,29 +1705,29 @@  discard block
 block discarded – undo
1705 1705
                 'quantity' => $args['quantity'],
1706 1706
             );
1707 1707
 
1708
-            $this->items[]  = $new_item;
1708
+            $this->items[] = $new_item;
1709 1709
 
1710
-            if ( wpinv_prices_include_tax() ) {
1711
-                $subtotal -= wpinv_round_amount( $tax );
1710
+            if (wpinv_prices_include_tax()) {
1711
+                $subtotal -= wpinv_round_amount($tax);
1712 1712
             }
1713 1713
 
1714
-            $total      = $subtotal - $discount + $tax;
1714
+            $total = $subtotal - $discount + $tax;
1715 1715
 
1716 1716
             // Do not allow totals to go negative
1717
-            if( $total < 0 ) {
1717
+            if ($total < 0) {
1718 1718
                 $total = 0;
1719 1719
             }
1720 1720
         
1721 1721
             $this->cart_details[] = array(
1722 1722
                 'name'          => !empty($args['name']) ? $args['name'] : $item->get_name(),
1723 1723
                 'id'            => $item->ID,
1724
-                'item_price'    => wpinv_round_amount( $item_price ),
1725
-                'custom_price'  => ( $args['custom_price'] !== '' ? wpinv_round_amount( $args['custom_price'] ) : '' ),
1724
+                'item_price'    => wpinv_round_amount($item_price),
1725
+                'custom_price'  => ($args['custom_price'] !== '' ? wpinv_round_amount($args['custom_price']) : ''),
1726 1726
                 'quantity'      => $args['quantity'],
1727 1727
                 'discount'      => $discount,
1728
-                'subtotal'      => wpinv_round_amount( $subtotal ),
1729
-                'tax'           => wpinv_round_amount( $tax ),
1730
-                'price'         => wpinv_round_amount( $total ),
1728
+                'subtotal'      => wpinv_round_amount($subtotal),
1729
+                'tax'           => wpinv_round_amount($tax),
1730
+                'price'         => wpinv_round_amount($total),
1731 1731
                 'vat_rate'      => $tax_rate,
1732 1732
                 'vat_class'     => $tax_class,
1733 1733
                 'meta'          => $args['meta'],
@@ -1737,18 +1737,18 @@  discard block
 block discarded – undo
1737 1737
             $subtotal = $subtotal - $discount;
1738 1738
         }
1739 1739
         
1740
-        $added_item = end( $this->cart_details );
1741
-        $added_item['action']  = 'add';
1740
+        $added_item = end($this->cart_details);
1741
+        $added_item['action'] = 'add';
1742 1742
         
1743 1743
         $this->pending['items'][] = $added_item;
1744 1744
         
1745
-        $this->increase_subtotal( $subtotal );
1746
-        $this->increase_tax( $tax );
1745
+        $this->increase_subtotal($subtotal);
1746
+        $this->increase_tax($tax);
1747 1747
 
1748 1748
         return true;
1749 1749
     }
1750 1750
     
1751
-    public function remove_item( $item_id, $args = array() ) {
1751
+    public function remove_item($item_id, $args = array()) {
1752 1752
         // Set some defaults
1753 1753
         $defaults = array(
1754 1754
             'quantity'      => 1,
@@ -1756,51 +1756,51 @@  discard block
 block discarded – undo
1756 1756
             'custom_price'  => '',
1757 1757
             'cart_index'    => false,
1758 1758
         );
1759
-        $args = wp_parse_args( $args, $defaults );
1759
+        $args = wp_parse_args($args, $defaults);
1760 1760
 
1761 1761
         // Bail if this post isn't a item
1762
-        if ( get_post_type( $item_id ) !== 'wpi_item' ) {
1762
+        if (get_post_type($item_id) !== 'wpi_item') {
1763 1763
             return false;
1764 1764
         }
1765 1765
         
1766
-        $this->cart_details = !empty( $this->cart_details ) ? array_values( $this->cart_details ) : $this->cart_details;
1766
+        $this->cart_details = !empty($this->cart_details) ? array_values($this->cart_details) : $this->cart_details;
1767 1767
 
1768
-        foreach ( $this->items as $key => $item ) {
1769
-            if ( !empty($item['id']) && (int)$item_id !== (int)$item['id'] ) {
1768
+        foreach ($this->items as $key => $item) {
1769
+            if (!empty($item['id']) && (int)$item_id !== (int)$item['id']) {
1770 1770
                 continue;
1771 1771
             }
1772 1772
 
1773
-            if ( false !== $args['cart_index'] ) {
1774
-                $cart_index = absint( $args['cart_index'] );
1775
-                $cart_item  = ! empty( $this->cart_details[ $cart_index ] ) ? $this->cart_details[ $cart_index ] : false;
1773
+            if (false !== $args['cart_index']) {
1774
+                $cart_index = absint($args['cart_index']);
1775
+                $cart_item  = !empty($this->cart_details[$cart_index]) ? $this->cart_details[$cart_index] : false;
1776 1776
 
1777
-                if ( ! empty( $cart_item ) ) {
1777
+                if (!empty($cart_item)) {
1778 1778
                     // If the cart index item isn't the same item ID, don't remove it
1779
-                    if ( !empty($cart_item['id']) && $cart_item['id'] != $item['id'] ) {
1779
+                    if (!empty($cart_item['id']) && $cart_item['id'] != $item['id']) {
1780 1780
                         continue;
1781 1781
                     }
1782 1782
                 }
1783 1783
             }
1784 1784
 
1785
-            $item_quantity = $this->items[ $key ]['quantity'];
1786
-            if ( $item_quantity > $args['quantity'] ) {
1787
-                $this->items[ $key ]['quantity'] -= $args['quantity'];
1785
+            $item_quantity = $this->items[$key]['quantity'];
1786
+            if ($item_quantity > $args['quantity']) {
1787
+                $this->items[$key]['quantity'] -= $args['quantity'];
1788 1788
                 break;
1789 1789
             } else {
1790
-                unset( $this->items[ $key ] );
1790
+                unset($this->items[$key]);
1791 1791
                 break;
1792 1792
             }
1793 1793
         }
1794 1794
 
1795 1795
         $found_cart_key = false;
1796
-        if ( false === $args['cart_index'] ) {
1797
-            foreach ( $this->cart_details as $cart_key => $item ) {
1798
-                if ( $item_id != $item['id'] ) {
1796
+        if (false === $args['cart_index']) {
1797
+            foreach ($this->cart_details as $cart_key => $item) {
1798
+                if ($item_id != $item['id']) {
1799 1799
                     continue;
1800 1800
                 }
1801 1801
 
1802
-                if ( false !== $args['item_price'] ) {
1803
-                    if ( isset( $item['item_price'] ) && (float) $args['item_price'] != (float) $item['item_price'] ) {
1802
+                if (false !== $args['item_price']) {
1803
+                    if (isset($item['item_price']) && (float)$args['item_price'] != (float)$item['item_price']) {
1804 1804
                         continue;
1805 1805
                     }
1806 1806
                 }
@@ -1809,13 +1809,13 @@  discard block
 block discarded – undo
1809 1809
                 break;
1810 1810
             }
1811 1811
         } else {
1812
-            $cart_index = absint( $args['cart_index'] );
1812
+            $cart_index = absint($args['cart_index']);
1813 1813
 
1814
-            if ( ! array_key_exists( $cart_index, $this->cart_details ) ) {
1814
+            if (!array_key_exists($cart_index, $this->cart_details)) {
1815 1815
                 return false; // Invalid cart index passed.
1816 1816
             }
1817 1817
 
1818
-            if ( (int) $this->cart_details[ $cart_index ]['id'] > 0 && (int) $this->cart_details[ $cart_index ]['id'] !== (int) $item_id ) {
1818
+            if ((int)$this->cart_details[$cart_index]['id'] > 0 && (int)$this->cart_details[$cart_index]['id'] !== (int)$item_id) {
1819 1819
                 return false; // We still need the proper Item ID to be sure.
1820 1820
             }
1821 1821
 
@@ -1823,41 +1823,41 @@  discard block
 block discarded – undo
1823 1823
         }
1824 1824
         
1825 1825
         $cart_item  = $this->cart_details[$found_cart_key];
1826
-        $quantity   = !empty( $cart_item['quantity'] ) ? $cart_item['quantity'] : 1;
1826
+        $quantity   = !empty($cart_item['quantity']) ? $cart_item['quantity'] : 1;
1827 1827
         
1828
-        if ( count( $this->cart_details ) == 1 && ( $quantity - $args['quantity'] ) < 1 ) {
1828
+        if (count($this->cart_details) == 1 && ($quantity - $args['quantity']) < 1) {
1829 1829
             return false; // Invoice must contain at least one item.
1830 1830
         }
1831 1831
         
1832
-        $discounts  = $this->get_discounts();
1832
+        $discounts = $this->get_discounts();
1833 1833
         
1834
-        if ( $quantity > $args['quantity'] ) {
1834
+        if ($quantity > $args['quantity']) {
1835 1835
             $item_price         = $cart_item['item_price'];
1836
-            $tax_rate           = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : 0;
1836
+            $tax_rate           = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : 0;
1837 1837
             
1838
-            $new_quantity       = max( $quantity - $args['quantity'], 1);
1838
+            $new_quantity       = max($quantity - $args['quantity'], 1);
1839 1839
             $subtotal           = $item_price * $new_quantity;
1840 1840
             
1841 1841
             $args['quantity']   = $new_quantity;
1842
-            $discount           = !empty( $cart_item['discount'] ) ? $cart_item['discount'] : 0;
1843
-            $tax                = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1842
+            $discount           = !empty($cart_item['discount']) ? $cart_item['discount'] : 0;
1843
+            $tax                = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0;
1844 1844
             
1845
-            $discount_decrease  = (float)$cart_item['discount'] > 0 && $quantity > 0 ? wpinv_round_amount( ( (float)$cart_item['discount'] / $quantity ) ) : 0;
1845
+            $discount_decrease  = (float)$cart_item['discount'] > 0 && $quantity > 0 ? wpinv_round_amount(((float)$cart_item['discount'] / $quantity)) : 0;
1846 1846
             $discount_decrease  = $discount > 0 && $subtotal > 0 && (float)$cart_item['discount'] > $discount ? (float)$cart_item['discount'] - $discount : $discount_decrease; 
1847
-            $tax_decrease       = (float)$cart_item['tax'] > 0 && $quantity > 0 ? wpinv_round_amount( ( (float)$cart_item['tax'] / $quantity ) ) : 0;
1847
+            $tax_decrease       = (float)$cart_item['tax'] > 0 && $quantity > 0 ? wpinv_round_amount(((float)$cart_item['tax'] / $quantity)) : 0;
1848 1848
             $tax_decrease       = $tax > 0 && $subtotal > 0 && (float)$cart_item['tax'] > $tax ? (float)$cart_item['tax'] - $tax : $tax_decrease;
1849 1849
             
1850 1850
             // The total increase equals the number removed * the item_price
1851
-            $total_decrease     = wpinv_round_amount( $item_price );
1851
+            $total_decrease     = wpinv_round_amount($item_price);
1852 1852
             
1853
-            if ( wpinv_prices_include_tax() ) {
1854
-                $subtotal -= wpinv_round_amount( $tax );
1853
+            if (wpinv_prices_include_tax()) {
1854
+                $subtotal -= wpinv_round_amount($tax);
1855 1855
             }
1856 1856
 
1857
-            $total              = $subtotal - $discount + $tax;
1857
+            $total = $subtotal - $discount + $tax;
1858 1858
 
1859 1859
             // Do not allow totals to go negative
1860
-            if( $total < 0 ) {
1860
+            if ($total < 0) {
1861 1861
                 $total = 0;
1862 1862
             }
1863 1863
             
@@ -1876,16 +1876,16 @@  discard block
 block discarded – undo
1876 1876
             
1877 1877
             $this->cart_details[$found_cart_key] = $cart_item;
1878 1878
             
1879
-            $remove_item = end( $this->cart_details );
1879
+            $remove_item = end($this->cart_details);
1880 1880
         } else {
1881 1881
             $item_price     = $cart_item['item_price'];
1882
-            $discount       = !empty( $cart_item['discount'] ) ? $cart_item['discount'] : 0;
1883
-            $tax            = !empty( $cart_item['tax'] ) ? $cart_item['tax'] : 0;
1882
+            $discount       = !empty($cart_item['discount']) ? $cart_item['discount'] : 0;
1883
+            $tax            = !empty($cart_item['tax']) ? $cart_item['tax'] : 0;
1884 1884
         
1885
-            $subtotal_decrease  = ( $item_price * $quantity ) - $discount;
1885
+            $subtotal_decrease  = ($item_price * $quantity) - $discount;
1886 1886
             $tax_decrease       = $tax;
1887 1887
 
1888
-            unset( $this->cart_details[$found_cart_key] );
1888
+            unset($this->cart_details[$found_cart_key]);
1889 1889
             
1890 1890
             $remove_item             = $args;
1891 1891
             $remove_item['id']       = $item_id;
@@ -1896,8 +1896,8 @@  discard block
 block discarded – undo
1896 1896
         $remove_item['action']      = 'remove';
1897 1897
         $this->pending['items'][]   = $remove_item;
1898 1898
                
1899
-        $this->decrease_subtotal( $subtotal_decrease );
1900
-        $this->decrease_tax( $tax_decrease );
1899
+        $this->decrease_subtotal($subtotal_decrease);
1900
+        $this->decrease_tax($tax_decrease);
1901 1901
         
1902 1902
         return true;
1903 1903
     }
@@ -1905,7 +1905,7 @@  discard block
 block discarded – undo
1905 1905
     public function update_items($temp = false) {
1906 1906
         global $wpinv_euvat, $wpi_current_id, $wpi_item_id, $wpi_nosave;
1907 1907
         
1908
-        if ( !empty( $this->cart_details ) ) {
1908
+        if (!empty($this->cart_details)) {
1909 1909
             $wpi_nosave             = $temp;
1910 1910
             $cart_subtotal          = 0;
1911 1911
             $cart_discount          = 0;
@@ -1915,42 +1915,42 @@  discard block
 block discarded – undo
1915 1915
             $_POST['wpinv_country'] = $this->country;
1916 1916
             $_POST['wpinv_state']   = $this->state;
1917 1917
             
1918
-            foreach ( $this->cart_details as $key => $item ) {
1918
+            foreach ($this->cart_details as $key => $item) {
1919 1919
                 $item_price = $item['item_price'];
1920
-                $quantity   = wpinv_item_quantities_enabled() && $item['quantity'] > 0 ? absint( $item['quantity'] ) : 1;
1921
-                $amount     = wpinv_round_amount( $item_price * $quantity );
1920
+                $quantity   = wpinv_item_quantities_enabled() && $item['quantity'] > 0 ? absint($item['quantity']) : 1;
1921
+                $amount     = wpinv_round_amount($item_price * $quantity);
1922 1922
                 $subtotal   = $item_price * $quantity;
1923 1923
                 
1924 1924
                 $wpi_current_id         = $this->ID;
1925 1925
                 $wpi_item_id            = $item['id'];
1926 1926
                 
1927
-                $discount   = wpinv_get_cart_item_discount_amount( $item, $this->get_discounts() );
1927
+                $discount   = wpinv_get_cart_item_discount_amount($item, $this->get_discounts());
1928 1928
                 
1929
-                $tax_rate   = wpinv_get_tax_rate( $this->country, $this->state, $wpi_item_id );
1930
-                $tax_class  = $wpinv_euvat->get_item_class( $wpi_item_id );
1931
-                $tax        = $item_price > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1929
+                $tax_rate   = wpinv_get_tax_rate($this->country, $this->state, $wpi_item_id);
1930
+                $tax_class  = $wpinv_euvat->get_item_class($wpi_item_id);
1931
+                $tax        = $item_price > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0;
1932 1932
 
1933
-                if ( wpinv_prices_include_tax() ) {
1934
-                    $subtotal -= wpinv_round_amount( $tax );
1933
+                if (wpinv_prices_include_tax()) {
1934
+                    $subtotal -= wpinv_round_amount($tax);
1935 1935
                 }
1936 1936
 
1937
-                $total      = $subtotal - $discount + $tax;
1937
+                $total = $subtotal - $discount + $tax;
1938 1938
 
1939 1939
                 // Do not allow totals to go negative
1940
-                if( $total < 0 ) {
1940
+                if ($total < 0) {
1941 1941
                     $total = 0;
1942 1942
                 }
1943 1943
 
1944 1944
                 $cart_details[] = array(
1945 1945
                     'id'          => $item['id'],
1946 1946
                     'name'        => $item['name'],
1947
-                    'item_price'  => wpinv_round_amount( $item_price ),
1948
-                    'custom_price'=> ( isset( $item['custom_price'] ) ? $item['custom_price'] : '' ),
1947
+                    'item_price'  => wpinv_round_amount($item_price),
1948
+                    'custom_price'=> (isset($item['custom_price']) ? $item['custom_price'] : ''),
1949 1949
                     'quantity'    => $quantity,
1950 1950
                     'discount'    => $discount,
1951
-                    'subtotal'    => wpinv_round_amount( $subtotal ),
1952
-                    'tax'         => wpinv_round_amount( $tax ),
1953
-                    'price'       => wpinv_round_amount( $total ),
1951
+                    'subtotal'    => wpinv_round_amount($subtotal),
1952
+                    'tax'         => wpinv_round_amount($tax),
1953
+                    'price'       => wpinv_round_amount($total),
1954 1954
                     'vat_rate'    => $tax_rate,
1955 1955
                     'vat_class'   => $tax_class,
1956 1956
                     'meta'        => isset($item['meta']) ? $item['meta'] : array(),
@@ -1961,15 +1961,15 @@  discard block
 block discarded – undo
1961 1961
                 $cart_discount  += (float)($discount);
1962 1962
                 $cart_tax       += (float)($tax);
1963 1963
             }
1964
-            if ( $cart_subtotal < 0 ) {
1964
+            if ($cart_subtotal < 0) {
1965 1965
                 $cart_subtotal = 0;
1966 1966
             }
1967
-            if ( $cart_tax < 0 ) {
1967
+            if ($cart_tax < 0) {
1968 1968
                 $cart_tax = 0;
1969 1969
             }
1970
-            $this->subtotal = wpinv_round_amount( $cart_subtotal );
1971
-            $this->tax      = wpinv_round_amount( $cart_tax );
1972
-            $this->discount = wpinv_round_amount( $cart_discount );
1970
+            $this->subtotal = wpinv_round_amount($cart_subtotal);
1971
+            $this->tax      = wpinv_round_amount($cart_tax);
1972
+            $this->discount = wpinv_round_amount($cart_discount);
1973 1973
             
1974 1974
             $this->recalculate_total();
1975 1975
             
@@ -1981,226 +1981,226 @@  discard block
 block discarded – undo
1981 1981
     
1982 1982
     public function recalculate_totals($temp = false) {        
1983 1983
         $this->update_items($temp);
1984
-        $this->save( true );
1984
+        $this->save(true);
1985 1985
         
1986 1986
         return $this;
1987 1987
     }
1988 1988
     
1989 1989
     public function needs_payment() {
1990
-        $valid_invoice_statuses = apply_filters( 'wpinv_valid_invoice_statuses_for_payment', array( 'wpi-pending' ), $this );
1990
+        $valid_invoice_statuses = apply_filters('wpinv_valid_invoice_statuses_for_payment', array('wpi-pending'), $this);
1991 1991
 
1992
-        if ( $this->has_status( $valid_invoice_statuses ) && ( $this->get_total() > 0 || $this->is_free_trial() || $this->is_free() ) ) {
1992
+        if ($this->has_status($valid_invoice_statuses) && ($this->get_total() > 0 || $this->is_free_trial() || $this->is_free())) {
1993 1993
             $needs_payment = true;
1994 1994
         } else {
1995 1995
             $needs_payment = false;
1996 1996
         }
1997 1997
 
1998
-        return apply_filters( 'wpinv_needs_payment', $needs_payment, $this, $valid_invoice_statuses );
1998
+        return apply_filters('wpinv_needs_payment', $needs_payment, $this, $valid_invoice_statuses);
1999 1999
     }
2000 2000
     
2001
-    public function get_checkout_payment_url( $with_key = false, $secret = false ) {
2001
+    public function get_checkout_payment_url($with_key = false, $secret = false) {
2002 2002
         $pay_url = wpinv_get_checkout_uri();
2003 2003
 
2004
-        if ( is_ssl() ) {
2005
-            $pay_url = str_replace( 'http:', 'https:', $pay_url );
2004
+        if (is_ssl()) {
2005
+            $pay_url = str_replace('http:', 'https:', $pay_url);
2006 2006
         }
2007 2007
         
2008 2008
         $key = $this->get_key();
2009 2009
 
2010
-        if ( $with_key ) {
2011
-            $pay_url = add_query_arg( 'invoice_key', $key, $pay_url );
2010
+        if ($with_key) {
2011
+            $pay_url = add_query_arg('invoice_key', $key, $pay_url);
2012 2012
         } else {
2013
-            $pay_url = add_query_arg( array( 'wpi_action' => 'pay_for_invoice', 'invoice_key' => $key ), $pay_url );
2013
+            $pay_url = add_query_arg(array('wpi_action' => 'pay_for_invoice', 'invoice_key' => $key), $pay_url);
2014 2014
         }
2015 2015
         
2016
-        if ( $secret ) {
2017
-            $pay_url = add_query_arg( array( '_wpipay' => md5( $this->get_user_id() . '::' . $this->get_email() . '::' . $key ) ), $pay_url );
2016
+        if ($secret) {
2017
+            $pay_url = add_query_arg(array('_wpipay' => md5($this->get_user_id() . '::' . $this->get_email() . '::' . $key)), $pay_url);
2018 2018
         }
2019 2019
 
2020
-        return apply_filters( 'wpinv_get_checkout_payment_url', $pay_url, $this, $with_key, $secret );
2020
+        return apply_filters('wpinv_get_checkout_payment_url', $pay_url, $this, $with_key, $secret);
2021 2021
     }
2022 2022
     
2023
-    public function get_view_url( $with_key = false ) {
2024
-        $invoice_url = get_permalink( $this->ID );
2023
+    public function get_view_url($with_key = false) {
2024
+        $invoice_url = get_permalink($this->ID);
2025 2025
 
2026
-        if ( $with_key ) {
2027
-            $invoice_url = add_query_arg( 'invoice_key', $this->get_key(), $invoice_url );
2026
+        if ($with_key) {
2027
+            $invoice_url = add_query_arg('invoice_key', $this->get_key(), $invoice_url);
2028 2028
         }
2029 2029
 
2030
-        return apply_filters( 'wpinv_get_view_url', $invoice_url, $this, $with_key );
2030
+        return apply_filters('wpinv_get_view_url', $invoice_url, $this, $with_key);
2031 2031
     }
2032 2032
     
2033
-    public function generate_key( $string = '' ) {
2034
-        $auth_key  = defined( 'AUTH_KEY' ) ? AUTH_KEY : '';
2035
-        return strtolower( md5( $string . date( 'Y-m-d H:i:s' ) . $auth_key . uniqid( 'wpinv', true ) ) );  // Unique key
2033
+    public function generate_key($string = '') {
2034
+        $auth_key = defined('AUTH_KEY') ? AUTH_KEY : '';
2035
+        return strtolower(md5($string . date('Y-m-d H:i:s') . $auth_key . uniqid('wpinv', true))); // Unique key
2036 2036
     }
2037 2037
     
2038 2038
     public function is_recurring() {
2039
-        if ( empty( $this->cart_details ) ) {
2039
+        if (empty($this->cart_details)) {
2040 2040
             return false;
2041 2041
         }
2042 2042
         
2043 2043
         $has_subscription = false;
2044
-        foreach( $this->cart_details as $cart_item ) {
2045
-            if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] )  ) {
2044
+        foreach ($this->cart_details as $cart_item) {
2045
+            if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) {
2046 2046
                 $has_subscription = true;
2047 2047
                 break;
2048 2048
             }
2049 2049
         }
2050 2050
         
2051
-        if ( count( $this->cart_details ) > 1 ) {
2051
+        if (count($this->cart_details) > 1) {
2052 2052
             $has_subscription = false;
2053 2053
         }
2054 2054
 
2055
-        return apply_filters( 'wpinv_invoice_has_recurring_item', $has_subscription, $this->cart_details );
2055
+        return apply_filters('wpinv_invoice_has_recurring_item', $has_subscription, $this->cart_details);
2056 2056
     }
2057 2057
     
2058 2058
     public function is_free_trial() {
2059 2059
         $is_free_trial = false;
2060 2060
         
2061
-        if ( $this->is_parent() && $item = $this->get_recurring( true ) ) {
2062
-            if ( !empty( $item ) && $item->has_free_trial() ) {
2061
+        if ($this->is_parent() && $item = $this->get_recurring(true)) {
2062
+            if (!empty($item) && $item->has_free_trial()) {
2063 2063
                 $is_free_trial = true;
2064 2064
             }
2065 2065
         }
2066 2066
 
2067
-        return apply_filters( 'wpinv_invoice_is_free_trial', $is_free_trial, $this->cart_details );
2067
+        return apply_filters('wpinv_invoice_is_free_trial', $is_free_trial, $this->cart_details);
2068 2068
     }
2069 2069
     
2070
-    public function get_recurring( $object = false ) {
2070
+    public function get_recurring($object = false) {
2071 2071
         $item = NULL;
2072 2072
         
2073
-        if ( empty( $this->cart_details ) ) {
2073
+        if (empty($this->cart_details)) {
2074 2074
             return $item;
2075 2075
         }
2076 2076
         
2077
-        foreach( $this->cart_details as $cart_item ) {
2078
-            if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] )  ) {
2077
+        foreach ($this->cart_details as $cart_item) {
2078
+            if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) {
2079 2079
                 $item = $cart_item['id'];
2080 2080
                 break;
2081 2081
             }
2082 2082
         }
2083 2083
         
2084
-        if ( $object ) {
2085
-            $item = $item ? new WPInv_Item( $item ) : NULL;
2084
+        if ($object) {
2085
+            $item = $item ? new WPInv_Item($item) : NULL;
2086 2086
             
2087
-            apply_filters( 'wpinv_invoice_get_recurring_item', $item, $this );
2087
+            apply_filters('wpinv_invoice_get_recurring_item', $item, $this);
2088 2088
         }
2089 2089
 
2090
-        return apply_filters( 'wpinv_invoice_get_recurring_item_id', $item, $this );
2090
+        return apply_filters('wpinv_invoice_get_recurring_item_id', $item, $this);
2091 2091
     }
2092 2092
     
2093 2093
     public function get_subscription_name() {
2094
-        $item = $this->get_recurring( true );
2094
+        $item = $this->get_recurring(true);
2095 2095
         
2096
-        if ( empty( $item ) ) {
2096
+        if (empty($item)) {
2097 2097
             return NULL;
2098 2098
         }
2099 2099
         
2100
-        if ( !($name = $item->get_name()) ) {
2100
+        if (!($name = $item->get_name())) {
2101 2101
             $name = $item->post_name;
2102 2102
         }
2103 2103
 
2104
-        return apply_filters( 'wpinv_invoice_get_subscription_name', $name, $this );
2104
+        return apply_filters('wpinv_invoice_get_subscription_name', $name, $this);
2105 2105
     }
2106 2106
         
2107 2107
     public function get_expiration() {
2108
-        $expiration = $this->get_meta( '_wpinv_subscr_expiration', true );
2108
+        $expiration = $this->get_meta('_wpinv_subscr_expiration', true);
2109 2109
         return $expiration;
2110 2110
     }
2111 2111
     
2112
-    public function get_cancelled_date( $formatted = true ) {
2113
-        $cancelled_date = $this->get_subscription_status() == 'cancelled' ? $this->get_meta( '_wpinv_subscr_cancelled_on', true ) : '';
2112
+    public function get_cancelled_date($formatted = true) {
2113
+        $cancelled_date = $this->get_subscription_status() == 'cancelled' ? $this->get_meta('_wpinv_subscr_cancelled_on', true) : '';
2114 2114
         
2115
-        if ( $formatted && $cancelled_date ) {
2116
-            $cancelled_date = date_i18n( get_option( 'date_format' ), strtotime( $cancelled_date ) );
2115
+        if ($formatted && $cancelled_date) {
2116
+            $cancelled_date = date_i18n(get_option('date_format'), strtotime($cancelled_date));
2117 2117
         }
2118 2118
         
2119 2119
         return $cancelled_date;
2120 2120
     }
2121 2121
     
2122
-    public function get_trial_end_date( $formatted = true ) {
2123
-        if ( !$this->is_free_trial() || ! ( $this->is_paid() || $this->is_refunded() ) ) {
2122
+    public function get_trial_end_date($formatted = true) {
2123
+        if (!$this->is_free_trial() || !($this->is_paid() || $this->is_refunded())) {
2124 2124
             return NULL;
2125 2125
         }
2126 2126
         
2127
-        $trial_end_date = $this->get_subscription_status() == 'trialing' ? $this->get_meta( '_wpinv_subscr_trial_end', true ) : '';
2127
+        $trial_end_date = $this->get_subscription_status() == 'trialing' ? $this->get_meta('_wpinv_subscr_trial_end', true) : '';
2128 2128
         
2129
-        if ( empty( $trial_end_date ) ) {
2130
-            $trial_start_time = strtotime( $this->get_subscription_start() );
2131
-            $trial_start_time += ( wpinv_period_in_days( $this->get_subscription_trial_interval(), $this->get_subscription_trial_period() ) * DAY_IN_SECONDS ) ;
2129
+        if (empty($trial_end_date)) {
2130
+            $trial_start_time = strtotime($this->get_subscription_start());
2131
+            $trial_start_time += (wpinv_period_in_days($this->get_subscription_trial_interval(), $this->get_subscription_trial_period()) * DAY_IN_SECONDS);
2132 2132
             
2133
-            $trial_end_date = date_i18n( 'Y-m-d H:i:s', $trial_start_time );
2133
+            $trial_end_date = date_i18n('Y-m-d H:i:s', $trial_start_time);
2134 2134
         }
2135 2135
         
2136
-        if ( $formatted && $trial_end_date ) {
2137
-            $trial_end_date = date_i18n( get_option( 'date_format' ), strtotime( $trial_end_date ) );
2136
+        if ($formatted && $trial_end_date) {
2137
+            $trial_end_date = date_i18n(get_option('date_format'), strtotime($trial_end_date));
2138 2138
         }
2139 2139
         
2140 2140
         return $trial_end_date;
2141 2141
     }
2142 2142
     
2143
-    public function get_subscription_created( $default = true ) {
2144
-        $created = $this->get_meta( '_wpinv_subscr_created', true );
2143
+    public function get_subscription_created($default = true) {
2144
+        $created = $this->get_meta('_wpinv_subscr_created', true);
2145 2145
         
2146
-        if ( empty( $created ) && $default ) {
2146
+        if (empty($created) && $default) {
2147 2147
             $created = $this->date;
2148 2148
         }
2149 2149
         return $created;
2150 2150
     }
2151 2151
     
2152
-    public function get_subscription_start( $formatted = true ) {
2153
-        if ( ! ( $this->is_paid() || $this->is_refunded() ) ) {
2152
+    public function get_subscription_start($formatted = true) {
2153
+        if (!($this->is_paid() || $this->is_refunded())) {
2154 2154
             return '-';
2155 2155
         }
2156
-        $start   = $this->get_subscription_created();
2156
+        $start = $this->get_subscription_created();
2157 2157
         
2158
-        if ( $formatted ) {
2159
-            $date = date_i18n( get_option( 'date_format' ), strtotime( $start ) );
2158
+        if ($formatted) {
2159
+            $date = date_i18n(get_option('date_format'), strtotime($start));
2160 2160
         } else {
2161
-            $date = date_i18n( 'Y-m-d H:i:s', strtotime( $start ) );
2161
+            $date = date_i18n('Y-m-d H:i:s', strtotime($start));
2162 2162
         }
2163 2163
 
2164 2164
         return $date;
2165 2165
     }
2166 2166
     
2167
-    public function get_subscription_end( $formatted = true ) {
2168
-        if ( ! ( $this->is_paid() || $this->is_refunded() ) ) {
2167
+    public function get_subscription_end($formatted = true) {
2168
+        if (!($this->is_paid() || $this->is_refunded())) {
2169 2169
             return '-';
2170 2170
         }
2171 2171
 
2172
-        if ( $this->get_subscription_status() == 'cancelled' ) {
2173
-            return $this->get_cancelled_date( $formatted );
2172
+        if ($this->get_subscription_status() == 'cancelled') {
2173
+            return $this->get_cancelled_date($formatted);
2174 2174
         }
2175 2175
 
2176 2176
         $start          = $this->get_subscription_created();
2177 2177
         $interval       = $this->get_subscription_interval();
2178
-        $period         = $this->get_subscription_period( true );
2178
+        $period         = $this->get_subscription_period(true);
2179 2179
         $bill_times     = (int)$this->get_bill_times();
2180 2180
         
2181
-        if ( $bill_times == 0 ) {
2182
-            return $formatted ? __( 'Until cancelled', 'invoicing' ) : $bill_times;
2181
+        if ($bill_times == 0) {
2182
+            return $formatted ? __('Until cancelled', 'invoicing') : $bill_times;
2183 2183
         }
2184 2184
         
2185
-        $total_period = $start . '+' . ( $interval * $bill_times ) . ' ' . $period;
2185
+        $total_period = $start . '+' . ($interval * $bill_times) . ' ' . $period;
2186 2186
         
2187
-        $end_time = strtotime( $start . '+' . ( $interval * $bill_times ) . ' ' . $period );
2187
+        $end_time = strtotime($start . '+' . ($interval * $bill_times) . ' ' . $period);
2188 2188
         
2189
-        if ( $this->is_free_trial() ) {
2190
-            $end_time += ( wpinv_period_in_days( $this->get_subscription_trial_interval(), $this->get_subscription_trial_period() ) * DAY_IN_SECONDS ) ;
2189
+        if ($this->is_free_trial()) {
2190
+            $end_time += (wpinv_period_in_days($this->get_subscription_trial_interval(), $this->get_subscription_trial_period()) * DAY_IN_SECONDS);
2191 2191
         }
2192 2192
         
2193
-        if ( $formatted ) {
2194
-            $date = date_i18n( get_option( 'date_format' ), $end_time );
2193
+        if ($formatted) {
2194
+            $date = date_i18n(get_option('date_format'), $end_time);
2195 2195
         } else {
2196
-            $date = date_i18n( 'Y-m-d H:i:s', $end_time );
2196
+            $date = date_i18n('Y-m-d H:i:s', $end_time);
2197 2197
         }
2198 2198
 
2199 2199
         return $date;
2200 2200
     }
2201 2201
     
2202 2202
     public function get_expiration_time() {
2203
-        return strtotime( $this->get_expiration(), current_time( 'timestamp' ) );
2203
+        return strtotime($this->get_expiration(), current_time('timestamp'));
2204 2204
     }
2205 2205
     
2206 2206
     public function get_original_invoice_id() {        
@@ -2212,125 +2212,125 @@  discard block
 block discarded – undo
2212 2212
         return $subscription_data['bill_times'];
2213 2213
     }
2214 2214
 
2215
-    public function get_child_payments( $self = false ) {
2216
-        $invoices = get_posts( array(
2215
+    public function get_child_payments($self = false) {
2216
+        $invoices = get_posts(array(
2217 2217
             'post_type'         => $this->post_type,
2218 2218
             'post_parent'       => (int)$this->ID,
2219 2219
             'posts_per_page'    => '999',
2220
-            'post_status'       => array( 'publish', 'wpi-processing', 'wpi-renewal' ),
2220
+            'post_status'       => array('publish', 'wpi-processing', 'wpi-renewal'),
2221 2221
             'orderby'           => 'ID',
2222 2222
             'order'             => 'DESC',
2223 2223
             'fields'            => 'ids'
2224
-        ) );
2224
+        ));
2225 2225
         
2226
-        if ( $this->is_free_trial() ) {
2226
+        if ($this->is_free_trial()) {
2227 2227
             $self = false;
2228 2228
         }
2229 2229
         
2230
-        if ( $self && $this->is_paid() ) {
2231
-            if ( !empty( $invoices ) ) {
2230
+        if ($self && $this->is_paid()) {
2231
+            if (!empty($invoices)) {
2232 2232
                 $invoices[] = (int)$this->ID;
2233 2233
             } else {
2234
-                $invoices = array( $this->ID );
2234
+                $invoices = array($this->ID);
2235 2235
             }
2236 2236
             
2237
-            $invoices = array_unique( $invoices );
2237
+            $invoices = array_unique($invoices);
2238 2238
         }
2239 2239
 
2240 2240
         return $invoices;
2241 2241
     }
2242 2242
 
2243
-    public function get_total_payments( $self = true ) {
2244
-        return count( $this->get_child_payments( $self ) );
2243
+    public function get_total_payments($self = true) {
2244
+        return count($this->get_child_payments($self));
2245 2245
     }
2246 2246
     
2247
-    public function get_subscriptions( $limit = -1 ) {
2248
-        $subscriptions = wpinv_get_subscriptions( array( 'parent_invoice_id' => $this->ID, 'numberposts' => $limit ) );
2247
+    public function get_subscriptions($limit = -1) {
2248
+        $subscriptions = wpinv_get_subscriptions(array('parent_invoice_id' => $this->ID, 'numberposts' => $limit));
2249 2249
 
2250 2250
         return $subscriptions;
2251 2251
     }
2252 2252
     
2253 2253
     public function get_subscription_id() {
2254
-        $subscription_id = $this->get_meta( '_wpinv_subscr_profile_id', true );
2254
+        $subscription_id = $this->get_meta('_wpinv_subscr_profile_id', true);
2255 2255
         
2256
-        if ( empty( $subscription_id ) && !empty( $this->parent_invoice ) ) {
2257
-            $parent_invoice = wpinv_get_invoice( $this->parent_invoice );
2256
+        if (empty($subscription_id) && !empty($this->parent_invoice)) {
2257
+            $parent_invoice = wpinv_get_invoice($this->parent_invoice);
2258 2258
             
2259
-            $subscription_id = $parent_invoice->get_meta( '_wpinv_subscr_profile_id', true );
2259
+            $subscription_id = $parent_invoice->get_meta('_wpinv_subscr_profile_id', true);
2260 2260
         }
2261 2261
         
2262 2262
         return $subscription_id;
2263 2263
     }
2264 2264
     
2265 2265
     public function get_subscription_status() {
2266
-        $subscription_status = $this->get_meta( '_wpinv_subscr_status', true );
2266
+        $subscription_status = $this->get_meta('_wpinv_subscr_status', true);
2267 2267
 
2268
-        if ( empty( $subscription_status ) ) {
2268
+        if (empty($subscription_status)) {
2269 2269
             $status = 'pending';
2270 2270
             
2271
-            if ( $this->is_paid() ) {        
2271
+            if ($this->is_paid()) {        
2272 2272
                 $bill_times   = (int)$this->get_bill_times();
2273 2273
                 $times_billed = (int)$this->get_total_payments();
2274
-                $expiration = $this->get_subscription_end( false );
2275
-                $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;
2274
+                $expiration = $this->get_subscription_end(false);
2275
+                $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;
2276 2276
                 
2277
-                if ( (int)$bill_times == 0 ) {
2277
+                if ((int)$bill_times == 0) {
2278 2278
                     $status = $expired ? 'expired' : 'active';
2279
-                } else if ( $bill_times > 0 && $times_billed >= $bill_times ) {
2279
+                } else if ($bill_times > 0 && $times_billed >= $bill_times) {
2280 2280
                     $status = 'completed';
2281
-                } else if ( $expired ) {
2281
+                } else if ($expired) {
2282 2282
                     $status = 'expired';
2283
-                } else if ( $bill_times > 0 ) {
2283
+                } else if ($bill_times > 0) {
2284 2284
                     $status = 'active';
2285 2285
                 } else {
2286 2286
                     $status = 'pending';
2287 2287
                 }
2288 2288
             }
2289 2289
             
2290
-            if ( $status && $status != $subscription_status ) {
2290
+            if ($status && $status != $subscription_status) {
2291 2291
                 $subscription_status = $status;
2292 2292
                 
2293
-                $this->update_meta( '_wpinv_subscr_status', $status );
2293
+                $this->update_meta('_wpinv_subscr_status', $status);
2294 2294
             }
2295 2295
         }
2296 2296
         
2297 2297
         return $subscription_status;
2298 2298
     }
2299 2299
     
2300
-    public function get_subscription_status_label( $status = '' ) {
2301
-        $status = !empty( $status ) ? $status : $this->get_subscription_status();
2300
+    public function get_subscription_status_label($status = '') {
2301
+        $status = !empty($status) ? $status : $this->get_subscription_status();
2302 2302
 
2303
-        switch( $status ) {
2303
+        switch ($status) {
2304 2304
             case 'active' :
2305
-                $status_label = __( 'Active', 'invoicing' );
2305
+                $status_label = __('Active', 'invoicing');
2306 2306
                 break;
2307 2307
 
2308 2308
             case 'cancelled' :
2309
-                $status_label = __( 'Cancelled', 'invoicing' );
2309
+                $status_label = __('Cancelled', 'invoicing');
2310 2310
                 break;
2311 2311
                 
2312 2312
             case 'completed' :
2313
-                $status_label = __( 'Completed', 'invoicing' );
2313
+                $status_label = __('Completed', 'invoicing');
2314 2314
                 break;
2315 2315
 
2316 2316
             case 'expired' :
2317
-                $status_label = __( 'Expired', 'invoicing' );
2317
+                $status_label = __('Expired', 'invoicing');
2318 2318
                 break;
2319 2319
 
2320 2320
             case 'pending' :
2321
-                $status_label = __( 'Pending', 'invoicing' );
2321
+                $status_label = __('Pending', 'invoicing');
2322 2322
                 break;
2323 2323
 
2324 2324
             case 'failing' :
2325
-                $status_label = __( 'Failing', 'invoicing' );
2325
+                $status_label = __('Failing', 'invoicing');
2326 2326
                 break;
2327 2327
                 
2328 2328
             case 'stopped' :
2329
-                $status_label = __( 'Stopped', 'invoicing' );
2329
+                $status_label = __('Stopped', 'invoicing');
2330 2330
                 break;
2331 2331
                 
2332 2332
             case 'trialing' :
2333
-                $status_label = __( 'Trialing', 'invoicing' );
2333
+                $status_label = __('Trialing', 'invoicing');
2334 2334
                 break;
2335 2335
 
2336 2336
             default:
@@ -2341,26 +2341,26 @@  discard block
 block discarded – undo
2341 2341
         return $status_label;
2342 2342
     }
2343 2343
     
2344
-    public function get_subscription_period( $full = false ) {
2345
-        $period = $this->get_meta( '_wpinv_subscr_period', true );
2344
+    public function get_subscription_period($full = false) {
2345
+        $period = $this->get_meta('_wpinv_subscr_period', true);
2346 2346
         
2347 2347
         // Fix period for old invoices
2348
-        if ( $period == 'day' ) {
2348
+        if ($period == 'day') {
2349 2349
             $period = 'D';
2350
-        } else if ( $period == 'week' ) {
2350
+        } else if ($period == 'week') {
2351 2351
             $period = 'W';
2352
-        } else if ( $period == 'month' ) {
2352
+        } else if ($period == 'month') {
2353 2353
             $period = 'M';
2354
-        } else if ( $period == 'year' ) {
2354
+        } else if ($period == 'year') {
2355 2355
             $period = 'Y';
2356 2356
         }
2357 2357
         
2358
-        if ( !in_array( $period, array( 'D', 'W', 'M', 'Y' ) ) ) {
2358
+        if (!in_array($period, array('D', 'W', 'M', 'Y'))) {
2359 2359
             $period = 'D';
2360 2360
         }
2361 2361
         
2362
-        if ( $full ) {
2363
-            switch( $period ) {
2362
+        if ($full) {
2363
+            switch ($period) {
2364 2364
                 case 'D':
2365 2365
                     $period = 'day';
2366 2366
                 break;
@@ -2380,39 +2380,39 @@  discard block
 block discarded – undo
2380 2380
     }
2381 2381
     
2382 2382
     public function get_subscription_interval() {
2383
-        $interval = (int)$this->get_meta( '_wpinv_subscr_interval', true );
2383
+        $interval = (int)$this->get_meta('_wpinv_subscr_interval', true);
2384 2384
         
2385
-        if ( !$interval > 0 ) {
2385
+        if (!$interval > 0) {
2386 2386
             $interval = 1;
2387 2387
         }
2388 2388
         
2389 2389
         return $interval;
2390 2390
     }
2391 2391
     
2392
-    public function get_subscription_trial_period( $full = false ) {
2393
-        if ( !$this->is_free_trial() ) {
2392
+    public function get_subscription_trial_period($full = false) {
2393
+        if (!$this->is_free_trial()) {
2394 2394
             return '';
2395 2395
         }
2396 2396
         
2397
-        $period = $this->get_meta( '_wpinv_subscr_trial_period', true );
2397
+        $period = $this->get_meta('_wpinv_subscr_trial_period', true);
2398 2398
         
2399 2399
         // Fix period for old invoices
2400
-        if ( $period == 'day' ) {
2400
+        if ($period == 'day') {
2401 2401
             $period = 'D';
2402
-        } else if ( $period == 'week' ) {
2402
+        } else if ($period == 'week') {
2403 2403
             $period = 'W';
2404
-        } else if ( $period == 'month' ) {
2404
+        } else if ($period == 'month') {
2405 2405
             $period = 'M';
2406
-        } else if ( $period == 'year' ) {
2406
+        } else if ($period == 'year') {
2407 2407
             $period = 'Y';
2408 2408
         }
2409 2409
         
2410
-        if ( !in_array( $period, array( 'D', 'W', 'M', 'Y' ) ) ) {
2410
+        if (!in_array($period, array('D', 'W', 'M', 'Y'))) {
2411 2411
             $period = 'D';
2412 2412
         }
2413 2413
         
2414
-        if ( $full ) {
2415
-            switch( $period ) {
2414
+        if ($full) {
2415
+            switch ($period) {
2416 2416
                 case 'D':
2417 2417
                     $period = 'day';
2418 2418
                 break;
@@ -2432,13 +2432,13 @@  discard block
 block discarded – undo
2432 2432
     }
2433 2433
     
2434 2434
     public function get_subscription_trial_interval() {
2435
-        if ( !$this->is_free_trial() ) {
2435
+        if (!$this->is_free_trial()) {
2436 2436
             return 0;
2437 2437
         }
2438 2438
         
2439
-        $interval = (int)$this->get_meta( '_wpinv_subscr_trial_interval', true );
2439
+        $interval = (int)$this->get_meta('_wpinv_subscr_trial_interval', true);
2440 2440
         
2441
-        if ( !$interval > 0 ) {
2441
+        if (!$interval > 0) {
2442 2442
             $interval = 1;
2443 2443
         }
2444 2444
         
@@ -2450,8 +2450,8 @@  discard block
 block discarded – undo
2450 2450
             'status' => 'failing'
2451 2451
         );
2452 2452
 
2453
-        if ( $this->update_subscription( $args ) ) {
2454
-            do_action( 'wpinv_subscription_failing', $this->ID, $this );
2453
+        if ($this->update_subscription($args)) {
2454
+            do_action('wpinv_subscription_failing', $this->ID, $this);
2455 2455
             return true;
2456 2456
         }
2457 2457
 
@@ -2463,8 +2463,8 @@  discard block
 block discarded – undo
2463 2463
             'status' => 'stopped'
2464 2464
         );
2465 2465
 
2466
-        if ( $this->update_subscription( $args ) ) {
2467
-            do_action( 'wpinv_subscription_stopped', $this->ID, $this );
2466
+        if ($this->update_subscription($args)) {
2467
+            do_action('wpinv_subscription_stopped', $this->ID, $this);
2468 2468
             return true;
2469 2469
         }
2470 2470
 
@@ -2476,8 +2476,8 @@  discard block
 block discarded – undo
2476 2476
             'status' => 'active'
2477 2477
         );
2478 2478
 
2479
-        if ( $this->update_subscription( $args ) ) {
2480
-            do_action( 'wpinv_subscription_restarted', $this->ID, $this );
2479
+        if ($this->update_subscription($args)) {
2480
+            do_action('wpinv_subscription_restarted', $this->ID, $this);
2481 2481
             return true;
2482 2482
         }
2483 2483
 
@@ -2489,23 +2489,23 @@  discard block
 block discarded – undo
2489 2489
             'status' => 'cancelled'
2490 2490
         );
2491 2491
 
2492
-        if ( $this->update_subscription( $args ) ) {
2493
-            if ( is_user_logged_in() ) {
2494
-                $userdata = get_userdata( get_current_user_id() );
2492
+        if ($this->update_subscription($args)) {
2493
+            if (is_user_logged_in()) {
2494
+                $userdata = get_userdata(get_current_user_id());
2495 2495
                 $user     = $userdata->user_login;
2496 2496
             } else {
2497
-                $user = __( 'gateway', 'invoicing' );
2497
+                $user = __('gateway', 'invoicing');
2498 2498
             }
2499 2499
             
2500 2500
             $subscription_id = $this->get_subscription_id();
2501
-            if ( !$subscription_id ) {
2501
+            if (!$subscription_id) {
2502 2502
                 $subscription_id = $this->ID;
2503 2503
             }
2504 2504
 
2505
-            $note = sprintf( __( 'Subscription %s has been cancelled by %s', 'invoicing' ), $subscription_id, $user );
2506
-            $this->add_note( $note );
2505
+            $note = sprintf(__('Subscription %s has been cancelled by %s', 'invoicing'), $subscription_id, $user);
2506
+            $this->add_note($note);
2507 2507
 
2508
-            do_action( 'wpinv_subscription_cancelled', $this->ID, $this );
2508
+            do_action('wpinv_subscription_cancelled', $this->ID, $this);
2509 2509
             return true;
2510 2510
         }
2511 2511
 
@@ -2513,11 +2513,11 @@  discard block
 block discarded – undo
2513 2513
     }
2514 2514
 
2515 2515
     public function can_cancel() {
2516
-        return apply_filters( 'wpinv_subscription_can_cancel', false, $this );
2516
+        return apply_filters('wpinv_subscription_can_cancel', false, $this);
2517 2517
     }
2518 2518
     
2519
-    public function add_subscription( $data = array() ) {
2520
-        if ( empty( $this->ID ) ) {
2519
+    public function add_subscription($data = array()) {
2520
+        if (empty($this->ID)) {
2521 2521
             return false;
2522 2522
         }
2523 2523
 
@@ -2536,85 +2536,85 @@  discard block
 block discarded – undo
2536 2536
             'profile_id'        => '',
2537 2537
         );
2538 2538
 
2539
-        $args = wp_parse_args( $data, $defaults );
2539
+        $args = wp_parse_args($data, $defaults);
2540 2540
 
2541
-        if ( $args['expiration'] && strtotime( 'NOW', current_time( 'timestamp' ) ) > strtotime( $args['expiration'], current_time( 'timestamp' ) ) ) {
2542
-            if ( 'active' == $args['status'] || $args['status'] == 'trialing' ) {
2541
+        if ($args['expiration'] && strtotime('NOW', current_time('timestamp')) > strtotime($args['expiration'], current_time('timestamp'))) {
2542
+            if ('active' == $args['status'] || $args['status'] == 'trialing') {
2543 2543
                 $args['status'] = 'expired';
2544 2544
             }
2545 2545
         }
2546 2546
 
2547
-        do_action( 'wpinv_subscription_pre_create', $args, $data, $this );
2547
+        do_action('wpinv_subscription_pre_create', $args, $data, $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_create', $args, $data, $this );
2555
+        do_action('wpinv_subscription_post_create', $args, $data, $this);
2556 2556
 
2557 2557
         return true;
2558 2558
     }
2559 2559
     
2560
-    public function update_subscription( $args = array() ) {
2561
-        if ( empty( $this->ID ) ) {
2560
+    public function update_subscription($args = array()) {
2561
+        if (empty($this->ID)) {
2562 2562
             return false;
2563 2563
         }
2564 2564
 
2565
-        if ( !empty( $args['expiration'] ) && $args['expiration'] && strtotime( 'NOW', current_time( 'timestamp' ) ) > strtotime( $args['expiration'], current_time( 'timestamp' ) ) ) {
2566
-            if ( !isset( $args['status'] ) || ( isset( $args['status'] ) && ( 'active' == $args['status'] || $args['status'] == 'trialing' ) ) ) {
2565
+        if (!empty($args['expiration']) && $args['expiration'] && strtotime('NOW', current_time('timestamp')) > strtotime($args['expiration'], current_time('timestamp'))) {
2566
+            if (!isset($args['status']) || (isset($args['status']) && ('active' == $args['status'] || $args['status'] == 'trialing'))) {
2567 2567
                 $args['status'] = 'expired';
2568 2568
             }
2569 2569
         }
2570 2570
 
2571
-        if ( isset( $args['status'] ) && $args['status'] == 'cancelled' && empty( $args['cancelled_on'] ) ) {
2572
-            $args['cancelled_on'] = date_i18n( 'Y-m-d H:i:s', current_time( 'timestamp' ) );
2571
+        if (isset($args['status']) && $args['status'] == 'cancelled' && empty($args['cancelled_on'])) {
2572
+            $args['cancelled_on'] = date_i18n('Y-m-d H:i:s', current_time('timestamp'));
2573 2573
         }
2574 2574
 
2575
-        do_action( 'wpinv_subscription_pre_update', $args, $this );
2575
+        do_action('wpinv_subscription_pre_update', $args, $this);
2576 2576
         
2577
-        if ( !empty( $args ) ) {
2578
-            foreach ( $args as $key => $value ) {
2579
-                $this->update_meta( '_wpinv_subscr_' . $key, $value );
2577
+        if (!empty($args)) {
2578
+            foreach ($args as $key => $value) {
2579
+                $this->update_meta('_wpinv_subscr_' . $key, $value);
2580 2580
             }
2581 2581
         }
2582 2582
 
2583
-        do_action( 'wpinv_subscription_post_update', $args, $this );
2583
+        do_action('wpinv_subscription_post_update', $args, $this);
2584 2584
 
2585 2585
         return true;
2586 2586
     }
2587 2587
     
2588 2588
     public function renew_subscription() {
2589 2589
         $parent_invoice = $this->get_parent_payment();
2590
-        $parent_invoice = empty( $parent_invoice ) ? $this : $parent_invoice;
2590
+        $parent_invoice = empty($parent_invoice) ? $this : $parent_invoice;
2591 2591
         
2592
-        $current_time   = current_time( 'timestamp' );
2592
+        $current_time   = current_time('timestamp');
2593 2593
         $start          = $this->get_subscription_created();
2594
-        $start          = $start ? strtotime( $start ) : $current_time;
2594
+        $start          = $start ? strtotime($start) : $current_time;
2595 2595
         $expires        = $this->get_expiration_time();
2596 2596
         
2597
-        if ( !$expires ) {
2598
-            $expires    = strtotime( '+' . $parent_invoice->get_subscription_interval() . ' ' . $parent_invoice->get_subscription_period( true ), $start );
2597
+        if (!$expires) {
2598
+            $expires    = strtotime('+' . $parent_invoice->get_subscription_interval() . ' ' . $parent_invoice->get_subscription_period(true), $start);
2599 2599
         }
2600 2600
         
2601
-        $expiration     = date_i18n( 'Y-m-d 23:59:59', $expires );
2602
-        $expiration     = apply_filters( 'wpinv_subscription_renewal_expiration', $expiration, $this->ID, $this );
2601
+        $expiration     = date_i18n('Y-m-d 23:59:59', $expires);
2602
+        $expiration     = apply_filters('wpinv_subscription_renewal_expiration', $expiration, $this->ID, $this);
2603 2603
         $bill_times     = $parent_invoice->get_bill_times();
2604 2604
         $times_billed   = $parent_invoice->get_total_payments();
2605 2605
         
2606
-        if ( $parent_invoice->get_subscription_status() == 'trialing' && ( $times_billed > 0 || strtotime( date_i18n( 'Y-m-d' ) ) < strtotime( $parent_invoice->get_trial_end_date( false ) ) ) ) {
2606
+        if ($parent_invoice->get_subscription_status() == 'trialing' && ($times_billed > 0 || strtotime(date_i18n('Y-m-d')) < strtotime($parent_invoice->get_trial_end_date(false)))) {
2607 2607
             $args = array(
2608 2608
                 'status'     => 'active',
2609 2609
             );
2610 2610
 
2611
-            $parent_invoice->update_subscription( $args );
2611
+            $parent_invoice->update_subscription($args);
2612 2612
         }
2613 2613
         
2614
-        do_action( 'wpinv_subscription_pre_renew', $this->ID, $expiration, $this );
2614
+        do_action('wpinv_subscription_pre_renew', $this->ID, $expiration, $this);
2615 2615
 
2616
-        $status       = 'active';
2617
-        if ( $bill_times > 0 && $times_billed >= $bill_times ) {
2616
+        $status = 'active';
2617
+        if ($bill_times > 0 && $times_billed >= $bill_times) {
2618 2618
             $this->complete_subscription();
2619 2619
             $status = 'completed';
2620 2620
         }
@@ -2624,10 +2624,10 @@  discard block
 block discarded – undo
2624 2624
             'status'     => $status,
2625 2625
         );
2626 2626
 
2627
-        $this->update_subscription( $args );
2627
+        $this->update_subscription($args);
2628 2628
 
2629
-        do_action( 'wpinv_subscription_post_renew', $this->ID, $expiration, $this );
2630
-        do_action( 'wpinv_recurring_set_subscription_status', $this->ID, $status, $this );
2629
+        do_action('wpinv_subscription_post_renew', $this->ID, $expiration, $this);
2630
+        do_action('wpinv_recurring_set_subscription_status', $this->ID, $status, $this);
2631 2631
     }
2632 2632
     
2633 2633
     public function complete_subscription() {
@@ -2635,8 +2635,8 @@  discard block
 block discarded – undo
2635 2635
             'status' => 'completed'
2636 2636
         );
2637 2637
 
2638
-        if ( $this->update_subscription( $args ) ) {
2639
-            do_action( 'wpinv_subscription_completed', $this->ID, $this );
2638
+        if ($this->update_subscription($args)) {
2639
+            do_action('wpinv_subscription_completed', $this->ID, $this);
2640 2640
         }
2641 2641
     }
2642 2642
     
@@ -2645,44 +2645,44 @@  discard block
 block discarded – undo
2645 2645
             'status' => 'expired'
2646 2646
         );
2647 2647
 
2648
-        if ( $this->update_subscription( $args ) ) {
2649
-            do_action( 'wpinv_subscription_expired', $this->ID, $this );
2648
+        if ($this->update_subscription($args)) {
2649
+            do_action('wpinv_subscription_expired', $this->ID, $this);
2650 2650
         }
2651 2651
     }
2652 2652
 
2653 2653
     public function get_cancel_url() {
2654
-        $url = wp_nonce_url( add_query_arg( array( 'wpi_action' => 'cancel_subscription', 'sub_id' => $this->ID ) ), 'wpinv-recurring-cancel' );
2654
+        $url = wp_nonce_url(add_query_arg(array('wpi_action' => 'cancel_subscription', 'sub_id' => $this->ID)), 'wpinv-recurring-cancel');
2655 2655
 
2656
-        return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
2656
+        return apply_filters('wpinv_subscription_cancel_url', $url, $this);
2657 2657
     }
2658 2658
 
2659 2659
     public function can_update() {
2660
-        return apply_filters( 'wpinv_subscription_can_update', false, $this );
2660
+        return apply_filters('wpinv_subscription_can_update', false, $this);
2661 2661
     }
2662 2662
 
2663 2663
     public function get_update_url() {
2664
-        $url = add_query_arg( array( 'action' => 'update', 'sub_id' => $this->ID ) );
2664
+        $url = add_query_arg(array('action' => 'update', 'sub_id' => $this->ID));
2665 2665
 
2666
-        return apply_filters( 'wpinv_subscription_update_url', $url, $this );
2666
+        return apply_filters('wpinv_subscription_update_url', $url, $this);
2667 2667
     }
2668 2668
 
2669 2669
     public function is_parent() {
2670
-        $is_parent = empty( $this->parent_invoice ) ? true : false;
2670
+        $is_parent = empty($this->parent_invoice) ? true : false;
2671 2671
 
2672
-        return apply_filters( 'wpinv_invoice_is_parent', $is_parent, $this );
2672
+        return apply_filters('wpinv_invoice_is_parent', $is_parent, $this);
2673 2673
     }
2674 2674
     
2675 2675
     public function is_renewal() {
2676 2676
         $is_renewal = $this->parent_invoice && $this->parent_invoice != $this->ID ? true : false;
2677 2677
 
2678
-        return apply_filters( 'wpinv_invoice_is_renewal', $is_renewal, $this );
2678
+        return apply_filters('wpinv_invoice_is_renewal', $is_renewal, $this);
2679 2679
     }
2680 2680
     
2681 2681
     public function get_parent_payment() {
2682 2682
         $parent_payment = NULL;
2683 2683
         
2684
-        if ( $this->is_renewal() ) {
2685
-            $parent_payment = wpinv_get_invoice( $this->parent_invoice );
2684
+        if ($this->is_renewal()) {
2685
+            $parent_payment = wpinv_get_invoice($this->parent_invoice);
2686 2686
         }
2687 2687
         
2688 2688
         return $parent_payment;
@@ -2693,100 +2693,100 @@  discard block
 block discarded – undo
2693 2693
         
2694 2694
         $subscription_status = $this->get_subscription_status();
2695 2695
 
2696
-        if( ! $this->is_subscription_expired() && ( $subscription_status == 'active' || $subscription_status == 'cancelled' || $subscription_status == 'trialing' ) ) {
2696
+        if (!$this->is_subscription_expired() && ($subscription_status == 'active' || $subscription_status == 'cancelled' || $subscription_status == 'trialing')) {
2697 2697
             $ret = true;
2698 2698
         }
2699 2699
 
2700
-        return apply_filters( 'wpinv_subscription_is_active', $ret, $this->ID, $this );
2700
+        return apply_filters('wpinv_subscription_is_active', $ret, $this->ID, $this);
2701 2701
     }
2702 2702
 
2703 2703
     public function is_subscription_expired() {
2704 2704
         $ret = false;
2705 2705
         $subscription_status = $this->get_subscription_status();
2706 2706
 
2707
-        if ( $subscription_status == 'expired' ) {
2707
+        if ($subscription_status == 'expired') {
2708 2708
             $ret = true;
2709
-        } else if ( 'active' === $subscription_status || 'cancelled' === $subscription_status || 'trialing' == $subscription_status ) {
2709
+        } else if ('active' === $subscription_status || 'cancelled' === $subscription_status || 'trialing' == $subscription_status) {
2710 2710
             $ret        = false;
2711 2711
             $expiration = $this->get_expiration_time();
2712 2712
 
2713
-            if ( $expiration && strtotime( 'NOW', current_time( 'timestamp' ) ) > $expiration ) {
2713
+            if ($expiration && strtotime('NOW', current_time('timestamp')) > $expiration) {
2714 2714
                 $ret = true;
2715 2715
 
2716
-                if ( 'active' === $subscription_status || 'trialing' === $subscription_status ) {
2716
+                if ('active' === $subscription_status || 'trialing' === $subscription_status) {
2717 2717
                     $this->expire_subscription();
2718 2718
                 }
2719 2719
             }
2720 2720
         }
2721 2721
 
2722
-        return apply_filters( 'wpinv_subscription_is_expired', $ret, $this->ID, $this );
2722
+        return apply_filters('wpinv_subscription_is_expired', $ret, $this->ID, $this);
2723 2723
     }
2724 2724
     
2725
-    public function get_new_expiration( $item_id = 0, $trial = true ) {
2726
-        $item   = new WPInv_Item( $item_id );
2725
+    public function get_new_expiration($item_id = 0, $trial = true) {
2726
+        $item   = new WPInv_Item($item_id);
2727 2727
         $interval = $item->get_recurring_interval();
2728
-        $period = $item->get_recurring_period( true );
2728
+        $period = $item->get_recurring_period(true);
2729 2729
         
2730
-        $expiration_time = strtotime( '+' . $interval . ' ' . $period );
2730
+        $expiration_time = strtotime('+' . $interval . ' ' . $period);
2731 2731
         
2732
-        if ( $trial && $this->is_free_trial() && $item->has_free_trial() ) {
2733
-            $expiration_time += ( wpinv_period_in_days( $item->get_trial_interval(), $item->get_trial_period() ) * DAY_IN_SECONDS ) ;
2732
+        if ($trial && $this->is_free_trial() && $item->has_free_trial()) {
2733
+            $expiration_time += (wpinv_period_in_days($item->get_trial_interval(), $item->get_trial_period()) * DAY_IN_SECONDS);
2734 2734
         }
2735 2735
 
2736
-        return date_i18n( 'Y-m-d 23:59:59', $expiration_time );
2736
+        return date_i18n('Y-m-d 23:59:59', $expiration_time);
2737 2737
     }
2738 2738
     
2739
-    public function get_subscription_data( $filed = '' ) {
2740
-        $fields = array( 'item_id', 'status', 'period', 'initial_amount', 'recurring_amount', 'interval', 'bill_times', 'trial_period', 'trial_interval', 'expiration', 'profile_id', 'created', 'cancelled_on' );
2739
+    public function get_subscription_data($filed = '') {
2740
+        $fields = array('item_id', 'status', 'period', 'initial_amount', 'recurring_amount', 'interval', 'bill_times', 'trial_period', 'trial_interval', 'expiration', 'profile_id', 'created', 'cancelled_on');
2741 2741
         
2742 2742
         $subscription_meta = array();
2743
-        foreach ( $fields as $field ) {
2744
-            $subscription_meta[ $field ] = $this->get_meta( '_wpinv_subscr_' . $field );
2743
+        foreach ($fields as $field) {
2744
+            $subscription_meta[$field] = $this->get_meta('_wpinv_subscr_' . $field);
2745 2745
         }
2746 2746
         
2747
-        $item = $this->get_recurring( true );
2747
+        $item = $this->get_recurring(true);
2748 2748
         
2749
-        if ( !empty( $item ) ) {
2750
-            if ( empty( $subscription_meta['item_id'] ) ) {
2749
+        if (!empty($item)) {
2750
+            if (empty($subscription_meta['item_id'])) {
2751 2751
                 $subscription_meta['item_id'] = $item->ID;
2752 2752
             }
2753
-            if ( empty( $subscription_meta['period'] ) ) {
2753
+            if (empty($subscription_meta['period'])) {
2754 2754
                 $subscription_meta['period'] = $item->get_recurring_period();
2755 2755
             }
2756
-            if ( empty( $subscription_meta['interval'] ) ) {
2756
+            if (empty($subscription_meta['interval'])) {
2757 2757
                 $subscription_meta['interval'] = $item->get_recurring_interval();
2758 2758
             }
2759
-            if ( $item->has_free_trial() ) {
2760
-                if ( empty( $subscription_meta['trial_period'] ) ) {
2759
+            if ($item->has_free_trial()) {
2760
+                if (empty($subscription_meta['trial_period'])) {
2761 2761
                     $subscription_meta['trial_period'] = $item->get_trial_period();
2762 2762
                 }
2763
-                if ( empty( $subscription_meta['trial_interval'] ) ) {
2763
+                if (empty($subscription_meta['trial_interval'])) {
2764 2764
                     $subscription_meta['trial_interval'] = $item->get_trial_interval();
2765 2765
                 }
2766 2766
             } else {
2767 2767
                 $subscription_meta['trial_period']      = '';
2768 2768
                 $subscription_meta['trial_interval']    = 0;
2769 2769
             }
2770
-            if ( !$subscription_meta['bill_times'] && $subscription_meta['bill_times'] !== 0 ) {
2770
+            if (!$subscription_meta['bill_times'] && $subscription_meta['bill_times'] !== 0) {
2771 2771
                 $subscription_meta['bill_times'] = $item->get_recurring_limit();
2772 2772
             }
2773
-            if ( $subscription_meta['initial_amount'] === '' || $subscription_meta['recurring_amount'] === '' ) {
2774
-                $subscription_meta['initial_amount']    = wpinv_round_amount( $this->get_total() );
2775
-                $subscription_meta['recurring_amount']  = wpinv_round_amount( $this->get_recurring_details( 'total' ) );
2773
+            if ($subscription_meta['initial_amount'] === '' || $subscription_meta['recurring_amount'] === '') {
2774
+                $subscription_meta['initial_amount']    = wpinv_round_amount($this->get_total());
2775
+                $subscription_meta['recurring_amount']  = wpinv_round_amount($this->get_recurring_details('total'));
2776 2776
             }
2777 2777
         }
2778 2778
         
2779
-        if ( $filed === '' ) {
2780
-            return apply_filters( 'wpinv_get_invoice_subscription_data', $subscription_meta, $this );
2779
+        if ($filed === '') {
2780
+            return apply_filters('wpinv_get_invoice_subscription_data', $subscription_meta, $this);
2781 2781
         }
2782 2782
         
2783
-        $value = isset( $subscription_meta[$filed] ) ? $subscription_meta[$filed] : '';
2783
+        $value = isset($subscription_meta[$filed]) ? $subscription_meta[$filed] : '';
2784 2784
         
2785
-        return apply_filters( 'wpinv_invoice_subscription_data_value', $value, $subscription_meta, $this );
2785
+        return apply_filters('wpinv_invoice_subscription_data_value', $value, $subscription_meta, $this);
2786 2786
     }
2787 2787
     
2788 2788
     public function is_paid() {
2789
-        if ( $this->has_status( array( 'publish', 'wpi-processing', 'wpi-renewal' ) ) ) {
2789
+        if ($this->has_status(array('publish', 'wpi-processing', 'wpi-renewal'))) {
2790 2790
             return true;
2791 2791
         }
2792 2792
         
@@ -2794,23 +2794,23 @@  discard block
 block discarded – undo
2794 2794
     }
2795 2795
     
2796 2796
     public function is_refunded() {
2797
-        $is_refunded = $this->has_status( array( 'wpi-refunded' ) );
2797
+        $is_refunded = $this->has_status(array('wpi-refunded'));
2798 2798
 
2799
-        return apply_filters( 'wpinv_invoice_is_refunded', $is_refunded, $this );
2799
+        return apply_filters('wpinv_invoice_is_refunded', $is_refunded, $this);
2800 2800
     }
2801 2801
     
2802 2802
     public function is_free() {
2803 2803
         $is_free = false;
2804 2804
         
2805
-        if ( !( (float)wpinv_round_amount( $this->get_total() ) > 0 ) ) {
2806
-            if ( $this->is_parent() && $this->is_recurring() ) {
2807
-                $is_free = (float)wpinv_round_amount( $this->get_recurring_details( 'total' ) ) > 0 ? false : true;
2805
+        if (!((float)wpinv_round_amount($this->get_total()) > 0)) {
2806
+            if ($this->is_parent() && $this->is_recurring()) {
2807
+                $is_free = (float)wpinv_round_amount($this->get_recurring_details('total')) > 0 ? false : true;
2808 2808
             } else {
2809 2809
                 $is_free = true;
2810 2810
             }
2811 2811
         }
2812 2812
         
2813
-        return apply_filters( 'wpinv_invoice_is_free', $is_free, $this );
2813
+        return apply_filters('wpinv_invoice_is_free', $is_free, $this);
2814 2814
     }
2815 2815
     
2816 2816
     public function has_vat() {
@@ -2818,41 +2818,41 @@  discard block
 block discarded – undo
2818 2818
         
2819 2819
         $requires_vat = false;
2820 2820
         
2821
-        if ( $this->country ) {
2821
+        if ($this->country) {
2822 2822
             $wpi_country        = $this->country;
2823 2823
             
2824
-            $requires_vat       = $wpinv_euvat->requires_vat( $requires_vat, $this->get_user_id(), $wpinv_euvat->invoice_has_digital_rule( $this ) );
2824
+            $requires_vat       = $wpinv_euvat->requires_vat($requires_vat, $this->get_user_id(), $wpinv_euvat->invoice_has_digital_rule($this));
2825 2825
         }
2826 2826
         
2827
-        return apply_filters( 'wpinv_invoice_has_vat', $requires_vat, $this );
2827
+        return apply_filters('wpinv_invoice_has_vat', $requires_vat, $this);
2828 2828
     }
2829 2829
     
2830 2830
     public function refresh_item_ids() {
2831 2831
         $item_ids = array();
2832 2832
         
2833
-        if ( !empty( $this->cart_details ) ) {
2834
-            foreach ( $this->cart_details as $key => $item ) {
2835
-                if ( !empty( $item['id'] ) ) {
2833
+        if (!empty($this->cart_details)) {
2834
+            foreach ($this->cart_details as $key => $item) {
2835
+                if (!empty($item['id'])) {
2836 2836
                     $item_ids[] = $item['id'];
2837 2837
                 }
2838 2838
             }
2839 2839
         }
2840 2840
         
2841
-        $item_ids = !empty( $item_ids ) ? implode( ',', array_unique( $item_ids ) ) : '';
2841
+        $item_ids = !empty($item_ids) ? implode(',', array_unique($item_ids)) : '';
2842 2842
         
2843
-        update_post_meta( $this->ID, '_wpinv_item_ids', $item_ids );
2843
+        update_post_meta($this->ID, '_wpinv_item_ids', $item_ids);
2844 2844
     }
2845 2845
     
2846
-    public function get_invoice_quote_type( $post_id ) {
2847
-        if ( empty( $post_id ) ) {
2846
+    public function get_invoice_quote_type($post_id) {
2847
+        if (empty($post_id)) {
2848 2848
             return '';
2849 2849
         }
2850 2850
 
2851
-        $type = get_post_type( $post_id );
2851
+        $type = get_post_type($post_id);
2852 2852
 
2853
-        if ( 'wpi_invoice' === $type ) {
2853
+        if ('wpi_invoice' === $type) {
2854 2854
             $post_type = __('Invoice', 'invoicing');
2855
-        } else{
2855
+        } else {
2856 2856
             $post_type = __('Quote', 'invoicing');
2857 2857
         }
2858 2858
 
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.