Passed
Pull Request — master (#260)
by Brian
04:46
created
includes/api/class-wpinv-rest-invoice-controller.php 2 patches
Indentation   +1272 added lines, -1272 removed lines patch added patch discarded remove patch
@@ -20,31 +20,31 @@  discard block
 block discarded – undo
20 20
 class WPInv_REST_Invoice_Controller extends WP_REST_Posts_Controller {
21 21
 
22 22
     /**
23
-	 * Post type.
24
-	 *
25
-	 * @var string
26
-	 */
27
-	protected $post_type = 'wpi_invoice';
23
+     * Post type.
24
+     *
25
+     * @var string
26
+     */
27
+    protected $post_type = 'wpi_invoice';
28 28
 	
29
-	/**
30
-	 * Cached results of get_item_schema.
31
-	 *
32
-	 * @since 1.0.13
33
-	 * @var array
34
-	 */
35
-	protected $schema;
29
+    /**
30
+     * Cached results of get_item_schema.
31
+     *
32
+     * @since 1.0.13
33
+     * @var array
34
+     */
35
+    protected $schema;
36 36
 
37 37
     /**
38
-	 * Constructor.
39
-	 *
40
-	 * @since 1.0.13
41
-	 *
42
-	 * @param string $namespace Api Namespace
43
-	 */
44
-	public function __construct( $namespace ) {
38
+     * Constructor.
39
+     *
40
+     * @since 1.0.13
41
+     *
42
+     * @param string $namespace Api Namespace
43
+     */
44
+    public function __construct( $namespace ) {
45 45
         
46 46
         // Set api namespace...
47
-		$this->namespace = $namespace;
47
+        $this->namespace = $namespace;
48 48
 
49 49
         // ... and the rest base
50 50
         $this->rest_base = 'invoices';
@@ -52,79 +52,79 @@  discard block
 block discarded – undo
52 52
     }
53 53
     
54 54
     /**
55
-	 * Checks if a given request has access to read invoices.
55
+     * Checks if a given request has access to read invoices.
56 56
      * 
57
-	 *
58
-	 * @since 1.0.13
59
-	 *
60
-	 * @param WP_REST_Request $request Full details about the request.
61
-	 * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
62
-	 */
63
-	public function get_items_permissions_check( $request ) {
57
+     *
58
+     * @since 1.0.13
59
+     *
60
+     * @param WP_REST_Request $request Full details about the request.
61
+     * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
62
+     */
63
+    public function get_items_permissions_check( $request ) {
64 64
 	
65 65
         $post_type = get_post_type_object( $this->post_type );
66 66
 
67
-		if ( 'edit' === $request['context'] && ! current_user_can( $post_type->cap->edit_posts ) ) {
68
-			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
69
-		}
67
+        if ( 'edit' === $request['context'] && ! current_user_can( $post_type->cap->edit_posts ) ) {
68
+            return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
69
+        }
70 70
 
71
-		if ( ! is_user_logged_in() ) {
72
-			return new WP_Error( 'rest_forbidden', __( 'Sorry, you must be logged in to view items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
73
-		}
71
+        if ( ! is_user_logged_in() ) {
72
+            return new WP_Error( 'rest_forbidden', __( 'Sorry, you must be logged in to view items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
73
+        }
74 74
 
75
-		// Read checks will be evaluated on a per invoice basis
75
+        // Read checks will be evaluated on a per invoice basis
76 76
 
77
-		return true;
77
+        return true;
78 78
 
79 79
     }
80 80
     
81 81
     /**
82
-	 * Retrieves a collection of invoices.
83
-	 *
84
-	 * @since 1.0.13
85
-	 *
86
-	 * @param WP_REST_Request $request Full details about the request.
87
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
88
-	 */
89
-	public function get_items( $request ) {
82
+     * Retrieves a collection of invoices.
83
+     *
84
+     * @since 1.0.13
85
+     *
86
+     * @param WP_REST_Request $request Full details about the request.
87
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
88
+     */
89
+    public function get_items( $request ) {
90 90
 		
91
-		// Retrieve request query parameters.
92
-		$args          = $this->get_request_collection_params( $request );
91
+        // Retrieve request query parameters.
92
+        $args          = $this->get_request_collection_params( $request );
93 93
 		
94
-		// WP_Query Args.
95
-		$wp_query_args = $this->get_collection_wp_query_params( $args, $request );
94
+        // WP_Query Args.
95
+        $wp_query_args = $this->get_collection_wp_query_params( $args, $request );
96 96
 		
97
-		// Get invoice ids...
98
-		$query         = new WP_Query( $wp_query_args );
99
-
100
-		// ... and map them into invoice objects.
101
-		$_invoices     = array_map( array( $this, 'get_post' ), $query->posts );
102
-
103
-		// Prepare the retrieved invoices
104
-		$invoices      = array();
105
-
106
-		foreach( $_invoices as $invoice ) {
107
-			if ( $this->check_read_permission( $invoice ) ) {
108
-				$invoices[] = $this->prepare_response_for_collection( $this->prepare_item_for_response( $invoice, $request ) );
109
-			}
110
-		}
111
-
112
-		// Prepare the response.
113
-		$response = rest_ensure_response( $invoices );
114
-		$response->header( 'X-WP-Total', (int) $query->found_posts );
115
-		$response->header( 'X-WP-TotalPages', (int) $query->max_num_pages );
116
-
117
-		/**
118
-		 * Filters the responses for invoices requests.
119
-		 *
120
-		 *
121
-		 * @since 1.0.13
122
-		 *
123
-		 *
124
-		 * @param arrWP_REST_Response $response    Response object.
125
-		 * @param WP_REST_Request     $request The request used.
97
+        // Get invoice ids...
98
+        $query         = new WP_Query( $wp_query_args );
99
+
100
+        // ... and map them into invoice objects.
101
+        $_invoices     = array_map( array( $this, 'get_post' ), $query->posts );
102
+
103
+        // Prepare the retrieved invoices
104
+        $invoices      = array();
105
+
106
+        foreach( $_invoices as $invoice ) {
107
+            if ( $this->check_read_permission( $invoice ) ) {
108
+                $invoices[] = $this->prepare_response_for_collection( $this->prepare_item_for_response( $invoice, $request ) );
109
+            }
110
+        }
111
+
112
+        // Prepare the response.
113
+        $response = rest_ensure_response( $invoices );
114
+        $response->header( 'X-WP-Total', (int) $query->found_posts );
115
+        $response->header( 'X-WP-TotalPages', (int) $query->max_num_pages );
116
+
117
+        /**
118
+         * Filters the responses for invoices requests.
119
+         *
120
+         *
121
+         * @since 1.0.13
122
+         *
123
+         *
124
+         * @param arrWP_REST_Response $response    Response object.
125
+         * @param WP_REST_Request     $request The request used.
126 126
          * @param array               $args Array of args used to retrieve the invoices
127
-		 */
127
+         */
128 128
         $response       = apply_filters( "wpinv_rest_invoices_response", $response, $request, $args );
129 129
 
130 130
         return rest_ensure_response( $response );
@@ -132,25 +132,25 @@  discard block
 block discarded – undo
132 132
     }
133 133
 
134 134
     /**
135
-	 * Get the post, if the ID is valid.
136
-	 *
137
-	 * @since 1.0.13
138
-	 *
139
-	 * @param int $invoice_id Supplied ID.
140
-	 * @return WPInv_Invoice|WP_Error Invoice object if ID is valid, WP_Error otherwise.
141
-	 */
142
-	protected function get_post( $invoice_id ) {
135
+     * Get the post, if the ID is valid.
136
+     *
137
+     * @since 1.0.13
138
+     *
139
+     * @param int $invoice_id Supplied ID.
140
+     * @return WPInv_Invoice|WP_Error Invoice object if ID is valid, WP_Error otherwise.
141
+     */
142
+    protected function get_post( $invoice_id ) {
143 143
 		
144
-		$error     = new WP_Error( 'rest_invoice_invalid_id', __( 'Invalid item ID.', 'invoicing' ), array( 'status' => 404 ) );
144
+        $error     = new WP_Error( 'rest_invoice_invalid_id', __( 'Invalid item ID.', 'invoicing' ), array( 'status' => 404 ) );
145 145
 
146 146
         // Ids start from 1
147 147
         if ( (int) $invoice_id <= 0 ) {
148
-			return $error;
149
-		}
148
+            return $error;
149
+        }
150 150
 
151
-		$invoice = wpinv_get_invoice( (int) $invoice_id );
152
-		if ( empty( $invoice ) || $this->post_type !== $invoice->post_type ) {
153
-			return $error;
151
+        $invoice = wpinv_get_invoice( (int) $invoice_id );
152
+        if ( empty( $invoice ) || $this->post_type !== $invoice->post_type ) {
153
+            return $error;
154 154
         }
155 155
 
156 156
         return $invoice;
@@ -158,77 +158,77 @@  discard block
 block discarded – undo
158 158
     }
159 159
 
160 160
     /**
161
-	 * Checks if a given request has access to read an invoice.
162
-	 *
163
-	 * @since 1.0.13
164
-	 *
165
-	 * @param WP_REST_Request $request Full details about the request.
166
-	 * @return bool|WP_Error True if the request has read access for the invoice, WP_Error object otherwise.
167
-	 */
168
-	public function get_item_permissions_check( $request ) {
161
+     * Checks if a given request has access to read an invoice.
162
+     *
163
+     * @since 1.0.13
164
+     *
165
+     * @param WP_REST_Request $request Full details about the request.
166
+     * @return bool|WP_Error True if the request has read access for the invoice, WP_Error object otherwise.
167
+     */
168
+    public function get_item_permissions_check( $request ) {
169 169
 
170 170
         // Retrieve the invoice object.
171 171
         $invoice = $this->get_post( $request['id'] );
172 172
         
173 173
         // Ensure it is valid.
174
-		if ( is_wp_error( $invoice ) ) {
175
-			return $invoice;
176
-		}
174
+        if ( is_wp_error( $invoice ) ) {
175
+            return $invoice;
176
+        }
177 177
 
178
-		if ( $invoice ) {
179
-			return $this->check_read_permission( $invoice );
180
-		}
178
+        if ( $invoice ) {
179
+            return $this->check_read_permission( $invoice );
180
+        }
181 181
 
182
-		return true;
182
+        return true;
183 183
     }
184 184
     
185 185
     /**
186
-	 * Checks if an invoice can be read.
187
-	 * 
188
-	 * An invoice can be read by site admins and owners of the invoice
189
-	 *
190
-	 *
191
-	 * @since 1.0.13
192
-	 *
193
-	 * @param WPInv_Invoice $invoice WPInv_Invoice object.
194
-	 * @return bool Whether the post can be read.
195
-	 */
196
-	public function check_read_permission( $invoice ) {
197
-		return wpinv_user_can_view_invoice( $invoice->ID );
186
+     * Checks if an invoice can be read.
187
+     * 
188
+     * An invoice can be read by site admins and owners of the invoice
189
+     *
190
+     *
191
+     * @since 1.0.13
192
+     *
193
+     * @param WPInv_Invoice $invoice WPInv_Invoice object.
194
+     * @return bool Whether the post can be read.
195
+     */
196
+    public function check_read_permission( $invoice ) {
197
+        return wpinv_user_can_view_invoice( $invoice->ID );
198 198
     }
199 199
     
200 200
     /**
201
-	 * Retrieves a single invoice.
202
-	 *
203
-	 * @since 1.0.13
204
-	 *
205
-	 * @param WP_REST_Request $request Full details about the request.
206
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
207
-	 */
208
-	public function get_item( $request ) {
201
+     * Retrieves a single invoice.
202
+     *
203
+     * @since 1.0.13
204
+     *
205
+     * @param WP_REST_Request $request Full details about the request.
206
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
207
+     */
208
+    public function get_item( $request ) {
209 209
 
210 210
         // Fetch the invoice.
211 211
         $invoice = $this->get_post( $request['id'] );
212 212
         
213 213
         // Abort early if it does not exist
214
-		if ( is_wp_error( $invoice ) ) {
215
-			return $invoice;
216
-		}
217
-
218
-		// Prepare the response
219
-		$response = $this->prepare_item_for_response( $invoice, $request );
220
-		$response->link_header( 'alternate', esc_url( $invoice->get_view_url() ), array( 'type' => 'text/html' ) );
221
-
222
-		/**
223
-		 * Filters the responses for single invoice requests.
224
-		 *
225
-		 *
226
-		 * @since 1.0.13
227
-		 * @var WP_HTTP_Response
228
-		 *
229
-		 * @param WP_HTTP_Response $response Response.
230
-		 * @param WP_REST_Request  $request The request used.
231
-		 */
214
+        if ( is_wp_error( $invoice ) ) {
215
+            return $invoice;
216
+        }
217
+
218
+        // Prepare the response
219
+        $response = $this->prepare_item_for_response( $invoice, $request );
220
+        $response->link_header( 'alternate', esc_url( $invoice->get_view_url() ), array( 'type' => 'text/html' ) );
221
+
222
+        /**
223
+         * Filters the responses for single invoice requests.
224
+         *
225
+         *
226
+         * @since 1.0.13
227
+         * @var WP_HTTP_Response
228
+         *
229
+         * @param WP_HTTP_Response $response Response.
230
+         * @param WP_REST_Request  $request The request used.
231
+         */
232 232
         $response       = apply_filters( "wpinv_rest_get_invoice_response", $response, $request );
233 233
 
234 234
         return rest_ensure_response( $response );
@@ -236,23 +236,23 @@  discard block
 block discarded – undo
236 236
     }
237 237
     
238 238
     /**
239
-	 * Checks if a given request has access to create an invoice.
240
-	 *
241
-	 * @since 1.0.13
242
-	 *
243
-	 * @param WP_REST_Request $request Full details about the request.
244
-	 * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise.
245
-	 */
246
-	public function create_item_permissions_check( $request ) {
239
+     * Checks if a given request has access to create an invoice.
240
+     *
241
+     * @since 1.0.13
242
+     *
243
+     * @param WP_REST_Request $request Full details about the request.
244
+     * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise.
245
+     */
246
+    public function create_item_permissions_check( $request ) {
247 247
 	
248
-		if ( ! empty( $request['id'] ) ) {
249
-			return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
250
-		}
248
+        if ( ! empty( $request['id'] ) ) {
249
+            return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
250
+        }
251 251
 
252
-		$post_type = get_post_type_object( $this->post_type );
252
+        $post_type = get_post_type_object( $this->post_type );
253 253
 
254
-		if ( ! current_user_can( $post_type->cap->create_posts ) && ! wpinv_current_user_can_manage_invoicing() ) {
255
-			return new WP_Error( 
254
+        if ( ! current_user_can( $post_type->cap->create_posts ) && ! wpinv_current_user_can_manage_invoicing() ) {
255
+            return new WP_Error( 
256 256
                 'rest_cannot_create',
257 257
                 __( 'Sorry, you are not allowed to create items as this user.', 'invoicing' ), 
258 258
                 array( 
@@ -261,90 +261,90 @@  discard block
 block discarded – undo
261 261
             );
262 262
         }
263 263
 
264
-		return true;
264
+        return true;
265 265
     }
266 266
     
267 267
     /**
268
-	 * Creates a single invoice.
269
-	 *
270
-	 * @since 1.0.13
271
-	 *
272
-	 * @param WP_REST_Request $request Full details about the request.
273
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
274
-	 */
275
-	public function create_item( $request ) {
276
-
277
-		if ( ! empty( $request['id'] ) ) {
278
-			return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
279
-		}
280
-
281
-		$request->set_param( 'context', 'edit' );
282
-
283
-		// Prepare the updated data.
284
-		$invoice_data = $this->prepare_item_for_database( $request );
285
-
286
-		if ( is_wp_error( $invoice_data ) ) {
287
-			return $invoice_data;
288
-		}
289
-
290
-		// Try creating the invoice
291
-		$invoice_data['post_type']    = $this->post_type;
292
-		$invoice_data['private_note'] = __( 'Created via API.', 'invoicing' );
268
+     * Creates a single invoice.
269
+     *
270
+     * @since 1.0.13
271
+     *
272
+     * @param WP_REST_Request $request Full details about the request.
273
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
274
+     */
275
+    public function create_item( $request ) {
276
+
277
+        if ( ! empty( $request['id'] ) ) {
278
+            return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
279
+        }
280
+
281
+        $request->set_param( 'context', 'edit' );
282
+
283
+        // Prepare the updated data.
284
+        $invoice_data = $this->prepare_item_for_database( $request );
285
+
286
+        if ( is_wp_error( $invoice_data ) ) {
287
+            return $invoice_data;
288
+        }
289
+
290
+        // Try creating the invoice
291
+        $invoice_data['post_type']    = $this->post_type;
292
+        $invoice_data['private_note'] = __( 'Created via API.', 'invoicing' );
293 293
         $invoice = wpinv_insert_invoice( $invoice_data, true );
294 294
 
295
-		if ( is_wp_error( $invoice ) ) {
295
+        if ( is_wp_error( $invoice ) ) {
296 296
             return $invoice;
297
-		}
298
-
299
-		// Prepare the response
300
-		$response = $this->prepare_item_for_response( $invoice, $request );
301
-
302
-		/**
303
-		 * Fires after a single invoice is created or updated via the REST API.
304
-		 *
305
-		 * @since 1.0.13
306
-		 *
307
-		 * @param WPinv_Invoice   $invoice  Inserted or updated invoice object.
308
-		 * @param WP_REST_Request $request  Request object.
309
-		 * @param bool            $creating True when creating a post, false when updating.
310
-		 */
311
-		do_action( "wpinv_rest_insert_invoice", $invoice, $request, true );
312
-
313
-		/**
314
-		 * Filters the responses for creating single invoice requests.
315
-		 *
316
-		 *
317
-		 * @since 1.0.13
318
-		 *
319
-		 *
320
-		 * @param array           $invoice_data Invoice properties.
321
-		 * @param WP_REST_Request $request The request used.
322
-		 */
297
+        }
298
+
299
+        // Prepare the response
300
+        $response = $this->prepare_item_for_response( $invoice, $request );
301
+
302
+        /**
303
+         * Fires after a single invoice is created or updated via the REST API.
304
+         *
305
+         * @since 1.0.13
306
+         *
307
+         * @param WPinv_Invoice   $invoice  Inserted or updated invoice object.
308
+         * @param WP_REST_Request $request  Request object.
309
+         * @param bool            $creating True when creating a post, false when updating.
310
+         */
311
+        do_action( "wpinv_rest_insert_invoice", $invoice, $request, true );
312
+
313
+        /**
314
+         * Filters the responses for creating single invoice requests.
315
+         *
316
+         *
317
+         * @since 1.0.13
318
+         *
319
+         *
320
+         * @param array           $invoice_data Invoice properties.
321
+         * @param WP_REST_Request $request The request used.
322
+         */
323 323
         $response       = apply_filters( "wpinv_rest_create_invoice_response", $response, $request );
324 324
 
325 325
         return rest_ensure_response( $response );
326
-	}
327
-
328
-	/**
329
-	 * Checks if a given request has access to update an invoice.
330
-	 *
331
-	 * @since 1.0.13
332
-	 *
333
-	 * @param WP_REST_Request $request Full details about the request.
334
-	 * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise.
335
-	 */
336
-	public function update_item_permissions_check( $request ) {
337
-
338
-		// Retrieve the invoice.
339
-		$invoice = $this->get_post( $request['id'] );
340
-		if ( is_wp_error( $invoice ) ) {
341
-			return $invoice;
342
-		}
343
-
344
-		$post_type = get_post_type_object( $this->post_type );
345
-
346
-		if ( ! current_user_can(  $post_type->cap->edit_post, $invoice->ID  ) ) {
347
-			return new WP_Error( 
326
+    }
327
+
328
+    /**
329
+     * Checks if a given request has access to update an invoice.
330
+     *
331
+     * @since 1.0.13
332
+     *
333
+     * @param WP_REST_Request $request Full details about the request.
334
+     * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise.
335
+     */
336
+    public function update_item_permissions_check( $request ) {
337
+
338
+        // Retrieve the invoice.
339
+        $invoice = $this->get_post( $request['id'] );
340
+        if ( is_wp_error( $invoice ) ) {
341
+            return $invoice;
342
+        }
343
+
344
+        $post_type = get_post_type_object( $this->post_type );
345
+
346
+        if ( ! current_user_can(  $post_type->cap->edit_post, $invoice->ID  ) ) {
347
+            return new WP_Error( 
348 348
                 'rest_cannot_edit', 
349 349
                 __( 'Sorry, you are not allowed to update this item.', 'invoicing' ), 
350 350
                 array( 
@@ -353,162 +353,162 @@  discard block
 block discarded – undo
353 353
             );
354 354
         }
355 355
 
356
-		return true;
357
-	}
358
-
359
-	/**
360
-	 * Updates a single invoice.
361
-	 *
362
-	 * @since 1.0.13
363
-	 *
364
-	 * @param WP_REST_Request $request Full details about the request.
365
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
366
-	 */
367
-	public function update_item( $request ) {
356
+        return true;
357
+    }
358
+
359
+    /**
360
+     * Updates a single invoice.
361
+     *
362
+     * @since 1.0.13
363
+     *
364
+     * @param WP_REST_Request $request Full details about the request.
365
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
366
+     */
367
+    public function update_item( $request ) {
368 368
 		
369
-		// Ensure the invoice exists.
369
+        // Ensure the invoice exists.
370 370
         $valid_check = $this->get_post( $request['id'] );
371 371
         
372 372
         // Abort early if it does not exist
373
-		if ( is_wp_error( $valid_check ) ) {
374
-			return $valid_check;
375
-		}
373
+        if ( is_wp_error( $valid_check ) ) {
374
+            return $valid_check;
375
+        }
376 376
 
377
-		$request->set_param( 'context', 'edit' );
377
+        $request->set_param( 'context', 'edit' );
378 378
 
379
-		// Prepare the updated data.
380
-		$data_to_update = $this->prepare_item_for_database( $request );
379
+        // Prepare the updated data.
380
+        $data_to_update = $this->prepare_item_for_database( $request );
381 381
 
382
-		if ( is_wp_error( $data_to_update ) ) {
383
-			return $data_to_update;
384
-		}
382
+        if ( is_wp_error( $data_to_update ) ) {
383
+            return $data_to_update;
384
+        }
385 385
 
386
-		// Abort if no invoice data is provided
386
+        // Abort if no invoice data is provided
387 387
         if( empty( $data_to_update ) ) {
388 388
             return new WP_Error( 'missing_data', __( 'An update request cannot be empty.', 'invoicing' ) );
389 389
         }
390 390
 
391
-		// Include the invoice ID
392
-		$data_to_update['ID'] = $request['id'];
393
-
394
-		// Update the invoice
395
-		$updated_invoice = wpinv_update_invoice( $data_to_update, true );
396
-
397
-		// Incase the update operation failed...
398
-		if ( is_wp_error( $updated_invoice ) ) {
399
-			return $updated_invoice;
400
-		}
401
-
402
-		// Prepare the response
403
-		$response = $this->prepare_item_for_response( $updated_invoice, $request );
404
-
405
-		/** This action is documented in includes/class-wpinv-rest-invoice-controller.php */
406
-		do_action( "wpinv_rest_insert_invoice", $updated_invoice, $request, false );
407
-
408
-		/**
409
-		 * Filters the responses for updating single invoice requests.
410
-		 *
411
-		 *
412
-		 * @since 1.0.13
413
-		 *
414
-		 *
415
-		 * @param array           $invoice_data Invoice properties.
416
-		 * @param WP_REST_Request $request The request used.
417
-		 */
391
+        // Include the invoice ID
392
+        $data_to_update['ID'] = $request['id'];
393
+
394
+        // Update the invoice
395
+        $updated_invoice = wpinv_update_invoice( $data_to_update, true );
396
+
397
+        // Incase the update operation failed...
398
+        if ( is_wp_error( $updated_invoice ) ) {
399
+            return $updated_invoice;
400
+        }
401
+
402
+        // Prepare the response
403
+        $response = $this->prepare_item_for_response( $updated_invoice, $request );
404
+
405
+        /** This action is documented in includes/class-wpinv-rest-invoice-controller.php */
406
+        do_action( "wpinv_rest_insert_invoice", $updated_invoice, $request, false );
407
+
408
+        /**
409
+         * Filters the responses for updating single invoice requests.
410
+         *
411
+         *
412
+         * @since 1.0.13
413
+         *
414
+         *
415
+         * @param array           $invoice_data Invoice properties.
416
+         * @param WP_REST_Request $request The request used.
417
+         */
418 418
         $response       = apply_filters( "wpinv_rest_update_invoice_response", $response, $request );
419 419
 
420 420
         return rest_ensure_response( $response );
421
-	}
422
-
423
-	/**
424
-	 * Checks if a given request has access to delete an invoice.
425
-	 *
426
-	 * @since 1.0.13
427
-	 *
428
-	 * @param WP_REST_Request $request Full details about the request.
429
-	 * @return true|WP_Error True if the request has access to delete the invoice, WP_Error object otherwise.
430
-	 */
431
-	public function delete_item_permissions_check( $request ) {
432
-
433
-		// Retrieve the invoice.
434
-		$invoice = $this->get_post( $request['id'] );
435
-		if ( is_wp_error( $invoice ) ) {
436
-			return $invoice;
437
-		}
438
-
439
-		// Ensure the current user can delete invoices
440
-		if ( wpinv_current_user_can_manage_invoicing() ||  current_user_can( 'delete_invoices', $request['id'] ) ) {
441
-			return true;
442
-		}
443
-
444
-		return new WP_Error( 
445
-			'rest_cannot_delete', 
446
-			__( 'Sorry, you are not allowed to delete this item.', 'invoicing' ), 
447
-			array( 
448
-				'status' => rest_authorization_required_code(),
449
-			)
450
-		);
451
-	}
452
-
453
-	/**
454
-	 * Deletes a single invoice.
455
-	 *
456
-	 * @since 1.0.13
457
-	 *
458
-	 * @param WP_REST_Request $request Full details about the request.
459
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
460
-	 */
461
-	public function delete_item( $request ) {
421
+    }
422
+
423
+    /**
424
+     * Checks if a given request has access to delete an invoice.
425
+     *
426
+     * @since 1.0.13
427
+     *
428
+     * @param WP_REST_Request $request Full details about the request.
429
+     * @return true|WP_Error True if the request has access to delete the invoice, WP_Error object otherwise.
430
+     */
431
+    public function delete_item_permissions_check( $request ) {
432
+
433
+        // Retrieve the invoice.
434
+        $invoice = $this->get_post( $request['id'] );
435
+        if ( is_wp_error( $invoice ) ) {
436
+            return $invoice;
437
+        }
438
+
439
+        // Ensure the current user can delete invoices
440
+        if ( wpinv_current_user_can_manage_invoicing() ||  current_user_can( 'delete_invoices', $request['id'] ) ) {
441
+            return true;
442
+        }
443
+
444
+        return new WP_Error( 
445
+            'rest_cannot_delete', 
446
+            __( 'Sorry, you are not allowed to delete this item.', 'invoicing' ), 
447
+            array( 
448
+                'status' => rest_authorization_required_code(),
449
+            )
450
+        );
451
+    }
452
+
453
+    /**
454
+     * Deletes a single invoice.
455
+     *
456
+     * @since 1.0.13
457
+     *
458
+     * @param WP_REST_Request $request Full details about the request.
459
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
460
+     */
461
+    public function delete_item( $request ) {
462 462
 		
463
-		// Retrieve the invoice.
464
-		$invoice = $this->get_post( $request['id'] );
465
-		if ( is_wp_error( $invoice ) ) {
466
-			return $invoice;
467
-		}
463
+        // Retrieve the invoice.
464
+        $invoice = $this->get_post( $request['id'] );
465
+        if ( is_wp_error( $invoice ) ) {
466
+            return $invoice;
467
+        }
468 468
 
469
-		$request->set_param( 'context', 'edit' );
469
+        $request->set_param( 'context', 'edit' );
470 470
 
471
-		// Prepare the invoice id
472
-		$id    = $invoice->ID;
471
+        // Prepare the invoice id
472
+        $id    = $invoice->ID;
473 473
 
474
-		// Prepare the response
475
-		$response = $this->prepare_item_for_response( $invoice, $request );
474
+        // Prepare the response
475
+        $response = $this->prepare_item_for_response( $invoice, $request );
476 476
 
477
-		// Check if the user wants to bypass the trash...
478
-		$force_delete = (bool) $request['force'];
477
+        // Check if the user wants to bypass the trash...
478
+        $force_delete = (bool) $request['force'];
479 479
 
480
-		// Try deleting the invoice.
481
-		$deleted = wp_delete_post( $id, $force_delete );
480
+        // Try deleting the invoice.
481
+        $deleted = wp_delete_post( $id, $force_delete );
482 482
 
483
-		// Abort early if we can't delete the invoice.
484
-		if ( ! $deleted ) {
485
-			return new WP_Error( 'rest_cannot_delete', __( 'The item cannot be deleted.', 'invoicing' ), array( 'status' => 500 ) );
486
-		}
483
+        // Abort early if we can't delete the invoice.
484
+        if ( ! $deleted ) {
485
+            return new WP_Error( 'rest_cannot_delete', __( 'The item cannot be deleted.', 'invoicing' ), array( 'status' => 500 ) );
486
+        }
487 487
 
488
-		/**
489
-		 * Fires immediately after a single invoice is deleted or trashed via the REST API.
490
-		 *
491
-		 *
492
-		 * @since 1.0.13
493
-		 *
494
-		 * @param WPInv_Invoice    $invoice  The deleted or trashed invoice.
495
-		 * @param WP_REST_Request  $request  The request sent to the API.
496
-		 */
497
-		do_action( "wpinv_rest_delete_invoice", $invoice, $request );
488
+        /**
489
+         * Fires immediately after a single invoice is deleted or trashed via the REST API.
490
+         *
491
+         *
492
+         * @since 1.0.13
493
+         *
494
+         * @param WPInv_Invoice    $invoice  The deleted or trashed invoice.
495
+         * @param WP_REST_Request  $request  The request sent to the API.
496
+         */
497
+        do_action( "wpinv_rest_delete_invoice", $invoice, $request );
498 498
 
499
-		return $response;
499
+        return $response;
500 500
 
501
-	}
501
+    }
502 502
     
503 503
     
504 504
     /**
505
-	 * Retrieves the query params for the invoices collection.
506
-	 *
507
-	 * @since 1.0.13
508
-	 *
509
-	 * @return array Collection parameters.
510
-	 */
511
-	public function get_collection_params() {
505
+     * Retrieves the query params for the invoices collection.
506
+     *
507
+     * @since 1.0.13
508
+     *
509
+     * @return array Collection parameters.
510
+     */
511
+    public function get_collection_params() {
512 512
         
513 513
         $query_params               = array(
514 514
 
@@ -526,11 +526,11 @@  discard block
 block discarded – undo
526 526
 
527 527
             // User.
528 528
             'user'                  => array(
529
-				'description'       => __( 'Limit result set to items for a specif user. Accepts a user ID, or comma-separated list of IDs', 'invoicing' ),
530
-				'type'              => 'string',
531
-			),
529
+                'description'       => __( 'Limit result set to items for a specif user. Accepts a user ID, or comma-separated list of IDs', 'invoicing' ),
530
+                'type'              => 'string',
531
+            ),
532 532
 
533
-			// Exclude certain users
533
+            // Exclude certain users
534 534
             'exclude_users'  	    => array(
535 535
                 'description' 		=> __( 'Exclude items from specific users.', 'invoicing' ),
536 536
                 'type'        		=> 'array',
@@ -540,59 +540,59 @@  discard block
 block discarded – undo
540 540
                 'default'     		=> array(),
541 541
             ),
542 542
 			
543
-			// Items before.
543
+            // Items before.
544 544
             'before_date'           => array(
545
-				'description'       => __( 'Limit result set to items created before a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
546
-				'type'              => 'string',
547
-			),
545
+                'description'       => __( 'Limit result set to items created before a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
546
+                'type'              => 'string',
547
+            ),
548 548
 
549 549
             'meta_key'           => array(
550
-				'description'       => __( 'Filter items by custom field key.', 'invoicing' ),
551
-				'type'              => 'string',
552
-			),
550
+                'description'       => __( 'Filter items by custom field key.', 'invoicing' ),
551
+                'type'              => 'string',
552
+            ),
553 553
 
554 554
             'meta_compare_key'           => array(
555
-				'description'       => __( 'Comparison operator to test the `meta_key`.', 'invoicing' ),
556
-				'type'              => 'string',
557
-				'default'              => '=',
558
-				'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
559
-			),
555
+                'description'       => __( 'Comparison operator to test the `meta_key`.', 'invoicing' ),
556
+                'type'              => 'string',
557
+                'default'              => '=',
558
+                'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
559
+            ),
560 560
 
561 561
             'meta_value'           => array(
562
-				'description'       => __( 'Filter items by custom field value.', 'invoicing' ),
563
-				'type'              => 'string',
564
-			),
562
+                'description'       => __( 'Filter items by custom field value.', 'invoicing' ),
563
+                'type'              => 'string',
564
+            ),
565 565
 
566 566
             'meta_compare'           => array(
567
-				'description'       => __( 'Comparison operator to test the `meta_value`.', 'invoicing' ),
568
-				'type'              => 'string',
569
-				'default'              => '=',
570
-				'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
571
-			),
572
-
573
-			'meta_value_num'           => array(
574
-				'description'       => __( 'Filter items by a numeric custom field value.', 'invoicing' ),
575
-				'type'              => 'integer',
576
-			),
577
-
578
-			// items after.
567
+                'description'       => __( 'Comparison operator to test the `meta_value`.', 'invoicing' ),
568
+                'type'              => 'string',
569
+                'default'              => '=',
570
+                'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
571
+            ),
572
+
573
+            'meta_value_num'           => array(
574
+                'description'       => __( 'Filter items by a numeric custom field value.', 'invoicing' ),
575
+                'type'              => 'integer',
576
+            ),
577
+
578
+            // items after.
579 579
             'after_date'            => array(
580
-				'description'       => __( 'Limit result set to items created after a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
581
-				'type'              => 'string',
580
+                'description'       => __( 'Limit result set to items created after a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
581
+                'type'              => 'string',
582 582
             ),
583 583
             
584 584
             // Number of results per page
585 585
             'limit'                 => array(
586
-				'description'       => __( 'Number of items to fetch.', 'invoicing' ),
587
-				'type'              => 'integer',
588
-				'default'           => (int) get_option( 'posts_per_page' ),
586
+                'description'       => __( 'Number of items to fetch.', 'invoicing' ),
587
+                'type'              => 'integer',
588
+                'default'           => (int) get_option( 'posts_per_page' ),
589 589
             ),
590 590
 
591 591
             // Pagination
592 592
             'page'     => array(
593
-				'description'       => __( 'Current page to fetch.', 'invoicing' ),
594
-				'type'              => 'integer',
595
-				'default'           => 1,
593
+                'description'       => __( 'Current page to fetch.', 'invoicing' ),
594
+                'type'              => 'integer',
595
+                'default'           => 1,
596 596
             ),
597 597
 
598 598
             // limit to certain items
@@ -603,9 +603,9 @@  discard block
 block discarded – undo
603 603
                     'type' => 'integer',
604 604
                 ),
605 605
                 'default'     => array(),
606
-			),
606
+            ),
607 607
 			
608
-			// Exclude certain items
608
+            // Exclude certain items
609 609
             'exclude'  => array(
610 610
                 'description' => __( 'Ensure result set excludes specific IDs.', 'invoicing' ),
611 611
                 'type'        => 'array',
@@ -624,9 +624,9 @@  discard block
 block discarded – undo
624 624
                     'date',
625 625
                     'id',
626 626
                     'modified',
627
-					'title',
628
-					'meta_value',
629
-					'meta_value_num'
627
+                    'title',
628
+                    'meta_value',
629
+                    'meta_value_num'
630 630
                 ),
631 631
             ),
632 632
 
@@ -639,932 +639,932 @@  discard block
 block discarded – undo
639 639
             ),
640 640
         );
641 641
 
642
-		/**
643
-		 * Filter collection parameters for the invoices controller.
644
-		 *
645
-		 *
646
-		 * @since 1.0.13
647
-		 *
648
-		 * @param array        $query_params JSON Schema-formatted collection parameters.
649
-		 */
650
-		return apply_filters( "wpinv_rest_invoices_collection_params", $query_params );
651
-	}
642
+        /**
643
+         * Filter collection parameters for the invoices controller.
644
+         *
645
+         *
646
+         * @since 1.0.13
647
+         *
648
+         * @param array        $query_params JSON Schema-formatted collection parameters.
649
+         */
650
+        return apply_filters( "wpinv_rest_invoices_collection_params", $query_params );
651
+    }
652 652
 	
653
-	/**
654
-	 * Retrieves the request query params for the invoices collection.
655
-	 *
656
-	 * @since 1.0.15
657
-	 * @param WP_REST_Request $request Full details about the request.
658
-	 * @return array Request collection parameters.
659
-	 */
660
-	public function get_request_collection_params( $request ) {
653
+    /**
654
+     * Retrieves the request query params for the invoices collection.
655
+     *
656
+     * @since 1.0.15
657
+     * @param WP_REST_Request $request Full details about the request.
658
+     * @return array Request collection parameters.
659
+     */
660
+    public function get_request_collection_params( $request ) {
661 661
 		
662
-		// Retrieve the list of registered invoice query parameters.
663
-		$registered = $this->get_collection_params();
662
+        // Retrieve the list of registered invoice query parameters.
663
+        $registered = $this->get_collection_params();
664 664
 
665
-		// Default args
666
-		$args       = array(
665
+        // Default args
666
+        $args       = array(
667 667
             'status'                => $this->get_post_statuses(),
668 668
             'user'                  => null,
669 669
             'exclude_users'  	    => array(),
670
-			'before_date'           => null,
670
+            'before_date'           => null,
671 671
             'meta_key'              => null,
672 672
             'meta_compare_key'      => '=',
673 673
             'meta_value'            => null,
674 674
             'meta_compare'          => '=',
675
-			'meta_value_num'        => null,
675
+            'meta_value_num'        => null,
676 676
             'after_date'            => null,
677 677
             'limit'                 => (int) get_option( 'posts_per_page' ),
678
-			'page'     				=> 1,
679
-			'include'				=> array(),
678
+            'page'     				=> 1,
679
+            'include'				=> array(),
680 680
             'exclude'  				=> array(),
681 681
             'orderby'  		  		=> 'date',
682 682
             'order'    				=> 'DESC',
683
-		);
683
+        );
684 684
 
685
-		// Add any params from the requests.
686
-		foreach ( array_keys( $registered ) as $key ) {
685
+        // Add any params from the requests.
686
+        foreach ( array_keys( $registered ) as $key ) {
687 687
             if ( isset( $request[ $key] ) ) {
688 688
                 $args[ $key ] = $request[ $key];
689 689
             }
690 690
         }
691 691
 		
692
-		/**
693
-		 * Filters the requests collection parameters for the invoices controller.
694
-		 *
695
-		 *
696
-		 * @since 1.0.15
697
-		 *
698
-		 * @param array           $args    Request query args.
699
-		 * @param WP_REST_Request $request Full details about the request.
700
-		 */
701
-		return apply_filters( "wpinv_rest_invoices_collection_request_params", $args, $request );
702
-	}
692
+        /**
693
+         * Filters the requests collection parameters for the invoices controller.
694
+         *
695
+         *
696
+         * @since 1.0.15
697
+         *
698
+         * @param array           $args    Request query args.
699
+         * @param WP_REST_Request $request Full details about the request.
700
+         */
701
+        return apply_filters( "wpinv_rest_invoices_collection_request_params", $args, $request );
702
+    }
703 703
 	
704
-	/**
705
-	 * Retrieves the WP_Query params for the invoices collection.
706
-	 *
707
-	 * @since 1.0.15
708
-	 * @param array           $args Request args.
709
-	 * @param WP_REST_Request $request Full details about the request.
710
-	 * @return array WP_Query parameters.
711
-	 */
712
-	public function get_collection_wp_query_params( $args, $request ) {
704
+    /**
705
+     * Retrieves the WP_Query params for the invoices collection.
706
+     *
707
+     * @since 1.0.15
708
+     * @param array           $args Request args.
709
+     * @param WP_REST_Request $request Full details about the request.
710
+     * @return array WP_Query parameters.
711
+     */
712
+    public function get_collection_wp_query_params( $args, $request ) {
713 713
 		
714
-		// Prepare the parameters.
715
-		$wp_query_args = array(
716
-			'post_type'        => $this->post_type,
717
-			'post_status'      => $args['status'],
718
-			'author'           => $args['user'],
719
-			'author__not_in'   => $args['exclude_users'],
720
-			'posts_per_page'   => $args['limit'],
721
-			'paged'            => $args['page'],
722
-			'meta_key'         => $args['meta_key'],
723
-			'meta_compare_key' => $args['meta_compare_key'],
724
-			'meta_value'       => $args['meta_value'],
725
-			'meta_compare'     => $args['meta_compare'],
726
-			'meta_value_num'   => $args['meta_value_num'],
727
-			'post__in'         => $args['include'],
728
-			'post__in'         => $args['exclude'],
729
-			'date_query'       => array( array() ),
730
-			'fields'           => 'ids',
731
-			'orderby'          => $args['orderby'],
732
-			'order'            => $args['order'],
733
-		);
734
-
735
-		// Only admins can view other user's invoices.
736
-		if ( ! wpinv_current_user_can_manage_invoicing() ) {
737
-			$wp_query_args['author'] = get_current_user_id();
738
-		}
739
-
740
-		// No date specific params provided.
741
-		if ( empty( $args['before_date'] ) && empty( $args['after_date'] ) ) {
742
-			unset( $wp_query_args['date_query'] );
743
-		}
744
-
745
-		if ( ! empty( $args['before_date'] ) ) {
746
-			$wp_query_args['date_query'][0]['before'] = $args['before_date'];
747
-		}
748
-
749
-		if ( ! empty( $args['after_date'] ) ) {
750
-			$wp_query_args['date_query'][0]['after'] = $args['after_date'];
751
-		}
752
-
753
-		// Remove empty variables.
754
-		$wp_query_args = array_filter( $wp_query_args );
755
-
756
-		// This can be zero.
757
-		if ( ! is_null( $args['meta_value_num'] ) ) {
758
-			$wp_query_args['meta_value_num'] = $args['meta_value_num'];
759
-		}
714
+        // Prepare the parameters.
715
+        $wp_query_args = array(
716
+            'post_type'        => $this->post_type,
717
+            'post_status'      => $args['status'],
718
+            'author'           => $args['user'],
719
+            'author__not_in'   => $args['exclude_users'],
720
+            'posts_per_page'   => $args['limit'],
721
+            'paged'            => $args['page'],
722
+            'meta_key'         => $args['meta_key'],
723
+            'meta_compare_key' => $args['meta_compare_key'],
724
+            'meta_value'       => $args['meta_value'],
725
+            'meta_compare'     => $args['meta_compare'],
726
+            'meta_value_num'   => $args['meta_value_num'],
727
+            'post__in'         => $args['include'],
728
+            'post__in'         => $args['exclude'],
729
+            'date_query'       => array( array() ),
730
+            'fields'           => 'ids',
731
+            'orderby'          => $args['orderby'],
732
+            'order'            => $args['order'],
733
+        );
734
+
735
+        // Only admins can view other user's invoices.
736
+        if ( ! wpinv_current_user_can_manage_invoicing() ) {
737
+            $wp_query_args['author'] = get_current_user_id();
738
+        }
739
+
740
+        // No date specific params provided.
741
+        if ( empty( $args['before_date'] ) && empty( $args['after_date'] ) ) {
742
+            unset( $wp_query_args['date_query'] );
743
+        }
744
+
745
+        if ( ! empty( $args['before_date'] ) ) {
746
+            $wp_query_args['date_query'][0]['before'] = $args['before_date'];
747
+        }
748
+
749
+        if ( ! empty( $args['after_date'] ) ) {
750
+            $wp_query_args['date_query'][0]['after'] = $args['after_date'];
751
+        }
752
+
753
+        // Remove empty variables.
754
+        $wp_query_args = array_filter( $wp_query_args );
755
+
756
+        // This can be zero.
757
+        if ( ! is_null( $args['meta_value_num'] ) ) {
758
+            $wp_query_args['meta_value_num'] = $args['meta_value_num'];
759
+        }
760 760
 		
761
-		/**
762
-		 * Filters the invoices collection WP_Query parameters for the invoices controller.
763
-		 *
764
-		 *
765
-		 * @since 1.0.15
766
-		 *
767
-		 * @param array           $args          Request args.
768
-		 * @param array           $wp_query_args Generated WP_Query args args.
769
-		 * @param WP_REST_Request $request       Full details about the request.
770
-		 */
771
-		return apply_filters( "wpinv_rest_invoices_collection_wp_query_params", $wp_query_args, $args, $request );
761
+        /**
762
+         * Filters the invoices collection WP_Query parameters for the invoices controller.
763
+         *
764
+         *
765
+         * @since 1.0.15
766
+         *
767
+         * @param array           $args          Request args.
768
+         * @param array           $wp_query_args Generated WP_Query args args.
769
+         * @param WP_REST_Request $request       Full details about the request.
770
+         */
771
+        return apply_filters( "wpinv_rest_invoices_collection_wp_query_params", $wp_query_args, $args, $request );
772 772
     }
773 773
     
774 774
     /**
775
-	 * Checks if a given post type can be viewed or managed.
776
-	 *
777
-	 * @since 1.0.13
778
-	 *
779
-	 * @param object|string $post_type Post type name or object.
780
-	 * @return bool Whether the post type is allowed in REST.
781
-	 */
782
-	protected function check_is_post_type_allowed( $post_type ) {
783
-		return true;
784
-	}
785
-
786
-	/**
787
-	 * Prepares a single invoice for create or update.
788
-	 *
789
-	 * @since 1.0.13
790
-	 *
791
-	 * @param WP_REST_Request $request Request object.
792
-	 * @return array|WP_Error Invoice Properties or WP_Error.
793
-	 */
794
-	protected function prepare_item_for_database( $request ) {
795
-		$prepared_invoice = new stdClass();
796
-
797
-		// Post ID.
798
-		if ( isset( $request['id'] ) ) {
799
-			$existing_invoice = $this->get_post( $request['id'] );
800
-			if ( is_wp_error( $existing_invoice ) ) {
801
-				return $existing_invoice;
802
-			}
803
-
804
-			$prepared_invoice->ID 		  = $existing_invoice->ID;
805
-			$prepared_invoice->invoice_id = $existing_invoice->ID;
806
-		}
807
-
808
-		$schema = $this->get_item_schema();
809
-
810
-		// Invoice owner.
811
-		if ( ! empty( $schema['properties']['user_id'] ) && isset( $request['user_id'] ) ) {
812
-			$prepared_invoice->user_id = (int) $request['user_id'];
813
-		}
814
-
815
-		// Cart details.
816
-		if ( ! empty( $schema['properties']['cart_details'] ) && isset( $request['cart_details'] ) ) {
817
-			$prepared_invoice->cart_details = (array) $request['cart_details'];
818
-		}
819
-
820
-		// Invoice status.
821
-		if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) ) {
822
-
823
-			if ( in_array( $request['status'], $this->get_post_statuses(), true ) ) {
824
-				$prepared_invoice->status = $request['status'];
825
-			}
826
-
827
-		}
828
-
829
-		// User info
830
-		if ( ! empty( $schema['properties']['user_info'] ) && isset( $request['user_info'] ) ) {
831
-			$prepared_invoice->user_info = array();
832
-			$user_info = (array) $request['user_info'];
833
-
834
-			foreach( $user_info as $prop => $value ) {
835
-
836
-				if ( ! empty( $schema['properties']['user_info']['properties'][$prop] ) ) {
837
-
838
-					$prepared_invoice->user_info[$prop] = $value;
775
+     * Checks if a given post type can be viewed or managed.
776
+     *
777
+     * @since 1.0.13
778
+     *
779
+     * @param object|string $post_type Post type name or object.
780
+     * @return bool Whether the post type is allowed in REST.
781
+     */
782
+    protected function check_is_post_type_allowed( $post_type ) {
783
+        return true;
784
+    }
785
+
786
+    /**
787
+     * Prepares a single invoice for create or update.
788
+     *
789
+     * @since 1.0.13
790
+     *
791
+     * @param WP_REST_Request $request Request object.
792
+     * @return array|WP_Error Invoice Properties or WP_Error.
793
+     */
794
+    protected function prepare_item_for_database( $request ) {
795
+        $prepared_invoice = new stdClass();
796
+
797
+        // Post ID.
798
+        if ( isset( $request['id'] ) ) {
799
+            $existing_invoice = $this->get_post( $request['id'] );
800
+            if ( is_wp_error( $existing_invoice ) ) {
801
+                return $existing_invoice;
802
+            }
803
+
804
+            $prepared_invoice->ID 		  = $existing_invoice->ID;
805
+            $prepared_invoice->invoice_id = $existing_invoice->ID;
806
+        }
807
+
808
+        $schema = $this->get_item_schema();
809
+
810
+        // Invoice owner.
811
+        if ( ! empty( $schema['properties']['user_id'] ) && isset( $request['user_id'] ) ) {
812
+            $prepared_invoice->user_id = (int) $request['user_id'];
813
+        }
814
+
815
+        // Cart details.
816
+        if ( ! empty( $schema['properties']['cart_details'] ) && isset( $request['cart_details'] ) ) {
817
+            $prepared_invoice->cart_details = (array) $request['cart_details'];
818
+        }
819
+
820
+        // Invoice status.
821
+        if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) ) {
822
+
823
+            if ( in_array( $request['status'], $this->get_post_statuses(), true ) ) {
824
+                $prepared_invoice->status = $request['status'];
825
+            }
826
+
827
+        }
828
+
829
+        // User info
830
+        if ( ! empty( $schema['properties']['user_info'] ) && isset( $request['user_info'] ) ) {
831
+            $prepared_invoice->user_info = array();
832
+            $user_info = (array) $request['user_info'];
833
+
834
+            foreach( $user_info as $prop => $value ) {
835
+
836
+                if ( ! empty( $schema['properties']['user_info']['properties'][$prop] ) ) {
837
+
838
+                    $prepared_invoice->user_info[$prop] = $value;
839 839
 		
840
-				}
840
+                }
841 841
 
842
-			}
842
+            }
843 843
 
844
-		}
844
+        }
845 845
 
846
-		// IP
847
-		if ( ! empty( $schema['properties']['ip'] ) && isset( $request['ip'] ) ) {
848
-			$prepared_invoice->ip = $request['ip'];
849
-		}
846
+        // IP
847
+        if ( ! empty( $schema['properties']['ip'] ) && isset( $request['ip'] ) ) {
848
+            $prepared_invoice->ip = $request['ip'];
849
+        }
850 850
 
851
-		// Payment details
852
-		$prepared_invoice->payment_details = array();
851
+        // Payment details
852
+        $prepared_invoice->payment_details = array();
853 853
 
854
-		if ( ! empty( $schema['properties']['gateway'] ) && isset( $request['gateway'] ) ) {
855
-			$prepared_invoice->payment_details['gateway'] = $request['gateway'];
856
-		}
854
+        if ( ! empty( $schema['properties']['gateway'] ) && isset( $request['gateway'] ) ) {
855
+            $prepared_invoice->payment_details['gateway'] = $request['gateway'];
856
+        }
857 857
 
858
-		if ( ! empty( $schema['properties']['gateway_title'] ) && isset( $request['gateway_title'] ) ) {
859
-			$prepared_invoice->payment_details['gateway_title'] = $request['gateway_title'];
860
-		}
858
+        if ( ! empty( $schema['properties']['gateway_title'] ) && isset( $request['gateway_title'] ) ) {
859
+            $prepared_invoice->payment_details['gateway_title'] = $request['gateway_title'];
860
+        }
861 861
 
862
-		if ( ! empty( $schema['properties']['currency'] ) && isset( $request['currency'] ) ) {
863
-			$prepared_invoice->payment_details['currency'] = $request['currency'];
864
-		}
862
+        if ( ! empty( $schema['properties']['currency'] ) && isset( $request['currency'] ) ) {
863
+            $prepared_invoice->payment_details['currency'] = $request['currency'];
864
+        }
865 865
 
866
-		if ( ! empty( $schema['properties']['transaction_id'] ) && isset( $request['transaction_id'] ) ) {
867
-			$prepared_invoice->payment_details['transaction_id'] = $request['transaction_id'];
868
-		}
866
+        if ( ! empty( $schema['properties']['transaction_id'] ) && isset( $request['transaction_id'] ) ) {
867
+            $prepared_invoice->payment_details['transaction_id'] = $request['transaction_id'];
868
+        }
869 869
 
870
-		// Dates
871
-		if ( ! empty( $schema['properties']['date'] ) && isset( $request['date'] ) ) {
872
-			$post_date = rest_get_date_with_gmt( $request['date'] );
870
+        // Dates
871
+        if ( ! empty( $schema['properties']['date'] ) && isset( $request['date'] ) ) {
872
+            $post_date = rest_get_date_with_gmt( $request['date'] );
873 873
 
874
-			if ( ! empty( $post_date ) ) {
875
-				$prepared_invoice->post_date = $post_date[0];
876
-			}
874
+            if ( ! empty( $post_date ) ) {
875
+                $prepared_invoice->post_date = $post_date[0];
876
+            }
877 877
 			
878
-		}
878
+        }
879 879
 
880
-		if ( ! empty( $schema['properties']['due_date'] ) && isset( $request['due_date'] ) ) {
881
-			$due_date = rest_get_date_with_gmt( $request['due_date'] );
880
+        if ( ! empty( $schema['properties']['due_date'] ) && isset( $request['due_date'] ) ) {
881
+            $due_date = rest_get_date_with_gmt( $request['due_date'] );
882 882
 
883
-			if ( ! empty( $due_date ) ) {
884
-				$prepared_invoice->due_date = $due_date[0];
885
-			}
883
+            if ( ! empty( $due_date ) ) {
884
+                $prepared_invoice->due_date = $due_date[0];
885
+            }
886 886
 
887
-		}
887
+        }
888 888
 
889
-		if ( ! empty( $schema['properties']['valid_until'] ) && isset( $request['valid_until'] ) ) {
889
+        if ( ! empty( $schema['properties']['valid_until'] ) && isset( $request['valid_until'] ) ) {
890 890
 
891
-			if ( ! empty( $request['valid_until'] ) ) {
892
-				$prepared_invoice->valid_until = gmdate( 'Y-m-d', strtotime( $request['valid_until'] ) );
893
-			} else {
894
-				$prepared_invoice->valid_until = '';
895
-			}
891
+            if ( ! empty( $request['valid_until'] ) ) {
892
+                $prepared_invoice->valid_until = gmdate( 'Y-m-d', strtotime( $request['valid_until'] ) );
893
+            } else {
894
+                $prepared_invoice->valid_until = '';
895
+            }
896 896
 
897
-		}
897
+        }
898 898
 
899
-		$invoice_data = (array) wp_unslash( $prepared_invoice );
899
+        $invoice_data = (array) wp_unslash( $prepared_invoice );
900 900
 
901
-		/**
902
-		 * Filters an invoice before it is inserted via the REST API.
903
-		 *
904
-		 * @since 1.0.13
905
-		 *
906
-		 * @param array        $invoice_data An array of invoice data
907
-		 * @param WP_REST_Request $request       Request object.
908
-		 */
909
-		return apply_filters( "wpinv_rest_pre_insert_invoice", $invoice_data, $request );
901
+        /**
902
+         * Filters an invoice before it is inserted via the REST API.
903
+         *
904
+         * @since 1.0.13
905
+         *
906
+         * @param array        $invoice_data An array of invoice data
907
+         * @param WP_REST_Request $request       Request object.
908
+         */
909
+        return apply_filters( "wpinv_rest_pre_insert_invoice", $invoice_data, $request );
910 910
 
911
-	}
911
+    }
912 912
 
913
-	/**
914
-	 * Prepares a single invoice output for response.
915
-	 *
916
-	 * @since 1.0.13
917
-	 *
918
-	 * @param WPInv_Invoice   $invoice    Invoice object.
919
-	 * @param WP_REST_Request $request Request object.
920
-	 * @return WP_REST_Response Response object.
921
-	 */
922
-	public function prepare_item_for_response( $invoice, $request ) {
913
+    /**
914
+     * Prepares a single invoice output for response.
915
+     *
916
+     * @since 1.0.13
917
+     *
918
+     * @param WPInv_Invoice   $invoice    Invoice object.
919
+     * @param WP_REST_Request $request Request object.
920
+     * @return WP_REST_Response Response object.
921
+     */
922
+    public function prepare_item_for_response( $invoice, $request ) {
923 923
 
924
-		$GLOBALS['post'] = get_post( $invoice->ID );
924
+        $GLOBALS['post'] = get_post( $invoice->ID );
925 925
 
926
-		setup_postdata( $invoice->ID );
926
+        setup_postdata( $invoice->ID );
927 927
 
928
-		// Fetch the fields to include in this response.
929
-		$fields = $this->get_fields_for_response( $request );
928
+        // Fetch the fields to include in this response.
929
+        $fields = $this->get_fields_for_response( $request );
930 930
 
931
-		// Base fields for every invoice.
932
-		$data = array();
931
+        // Base fields for every invoice.
932
+        $data = array();
933 933
 
934
-		// Set up ID
935
-		if ( rest_is_field_included( 'id', $fields ) ) {
936
-			$data['id'] = $invoice->ID;
937
-		}
934
+        // Set up ID
935
+        if ( rest_is_field_included( 'id', $fields ) ) {
936
+            $data['id'] = $invoice->ID;
937
+        }
938 938
 
939 939
 
940
-		// Basic properties
941
-		$invoice_properties = array(
942
-			'title', 'email', 'ip', 
943
-			'key', 'number', 'transaction_id', 'mode',
944
-			'gateway', 'gateway_title',
945
-			'total', 'discount', 'discount_code', 
946
-			'tax', 'fees_total', 'subtotal', 'currency',
947
-			'status', 'status_nicename', 'post_type'
948
-		);
949
-
950
-		foreach( $invoice_properties as $property ) {
940
+        // Basic properties
941
+        $invoice_properties = array(
942
+            'title', 'email', 'ip', 
943
+            'key', 'number', 'transaction_id', 'mode',
944
+            'gateway', 'gateway_title',
945
+            'total', 'discount', 'discount_code', 
946
+            'tax', 'fees_total', 'subtotal', 'currency',
947
+            'status', 'status_nicename', 'post_type'
948
+        );
951 949
 
952
-			if ( rest_is_field_included( $property, $fields ) ) {
953
-				$data[$property] = $invoice->get( $property );
954
-			}
955
-
956
-		}
957
-
958
-		// Valid until
959
-		if ( rest_is_field_included( 'valid_until', $fields ) && $this->post_type === 'wpi_quote' ) {
960
-			$data['valid_until'] = get_post_meta( $invoice->ID, 'wpinv_quote_valid_until', true );
961
-		}
962
-
963
-		// Cart details
964
-		if ( rest_is_field_included( 'cart_details', $fields ) ) {
965
-			$data['cart_details'] = $invoice->get( 'cart_details' );
966
-		}
967
-
968
-		//Dates
969
-		$invoice_properties = array( 'date', 'due_date', 'completed_date' );
970
-
971
-		foreach( $invoice_properties as $property ) {
972
-
973
-			if ( rest_is_field_included( $property, $fields ) ) {
974
-				$data[$property] = $this->prepare_date_response( '0000-00-00 00:00:00', $invoice->get( $property ) );
975
-			}
976
-
977
-		}
978
-
979
-		// User id
980
-		if ( rest_is_field_included( 'user_id', $fields ) ) {
981
-			$data['user_id'] = (int) $invoice->get( 'user_id' );
982
-		}
983
-
984
-		// User info
985
-		$user_info = array( 'first_name', 'last_name', 'company', 'vat_number', 'vat_rate', 'address', 'city', 'country', 'state', 'zip', 'phone' );
986
-
987
-		foreach( $user_info as $property ) {
988
-
989
-			if ( rest_is_field_included( "user_info.$property", $fields ) ) {
990
-				$data['user_info'][$property] = $invoice->get( $property );
991
-			}
992
-
993
-		}
994
-
995
-		// Slug
996
-		if ( rest_is_field_included( 'slug', $fields ) ) {
997
-			$data['slug'] = $invoice->get( 'post_name' );
998
-		}
999
-
1000
-		// View invoice link
1001
-		if ( rest_is_field_included( 'link', $fields ) ) {
1002
-			$data['link'] = esc_url( $invoice->get_view_url() );
1003
-		}
1004
-
1005
-
1006
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
1007
-		$data    = $this->add_additional_fields_to_object( $data, $request );
1008
-		$data    = $this->filter_response_by_context( $data, $context );
1009
-
1010
-		// Wrap the data in a response object.
1011
-		$response = rest_ensure_response( $data );
1012
-
1013
-		$links = $this->prepare_links( $invoice );
1014
-		$response->add_links( $links );
1015
-
1016
-		if ( ! empty( $links['self']['href'] ) ) {
1017
-			$actions = $this->get_available_actions( $invoice, $request );
1018
-
1019
-			$self = $links['self']['href'];
1020
-
1021
-			foreach ( $actions as $rel ) {
1022
-				$response->add_link( $rel, $self );
1023
-			}
1024
-		}
1025
-
1026
-		/**
1027
-		 * Filters the invoice data for a response.
1028
-		 *
1029
-		 * @since 1.0.13
1030
-		 *
1031
-		 * @param WP_REST_Response $response The response object.
1032
-		 * @param WPInv_Invoice    $invoice  The invoice object.
1033
-		 * @param WP_REST_Request  $request  Request object.
1034
-		 */
1035
-		return apply_filters( "wpinv_rest_prepare_invoice", $response, $invoice, $request );
1036
-	}
1037
-
1038
-	/**
1039
-	 * Gets an array of fields to be included on the response.
1040
-	 *
1041
-	 * Included fields are based on item schema and `_fields=` request argument.
1042
-	 *
1043
-	 * @since 1.0.13
1044
-	 *
1045
-	 * @param WP_REST_Request $request Full details about the request.
1046
-	 * @return array Fields to be included in the response.
1047
-	 */
1048
-	public function get_fields_for_response( $request ) {
1049
-		$schema     = $this->get_item_schema();
1050
-		$properties = isset( $schema['properties'] ) ? $schema['properties'] : array();
1051
-
1052
-		$additional_fields = $this->get_additional_fields();
1053
-		foreach ( $additional_fields as $field_name => $field_options ) {
1054
-			// For back-compat, include any field with an empty schema
1055
-			// because it won't be present in $this->get_item_schema().
1056
-			if ( is_null( $field_options['schema'] ) ) {
1057
-				$properties[ $field_name ] = $field_options;
1058
-			}
1059
-		}
1060
-
1061
-		// Exclude fields that specify a different context than the request context.
1062
-		$context = $request['context'];
1063
-		if ( $context ) {
1064
-			foreach ( $properties as $name => $options ) {
1065
-				if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) {
1066
-					unset( $properties[ $name ] );
1067
-				}
1068
-			}
1069
-		}
1070
-
1071
-		$fields = array_keys( $properties );
1072
-
1073
-		if ( ! isset( $request['_fields'] ) ) {
1074
-			return $fields;
1075
-		}
1076
-		$requested_fields = wpinv_parse_list( $request['_fields'] );
1077
-		if ( 0 === count( $requested_fields ) ) {
1078
-			return $fields;
1079
-		}
1080
-		// Trim off outside whitespace from the comma delimited list.
1081
-		$requested_fields = array_map( 'trim', $requested_fields );
1082
-		// Always persist 'id', because it can be needed for add_additional_fields_to_object().
1083
-		if ( in_array( 'id', $fields, true ) ) {
1084
-			$requested_fields[] = 'id';
1085
-		}
1086
-		// Return the list of all requested fields which appear in the schema.
1087
-		return array_reduce(
1088
-			$requested_fields,
1089
-			function( $response_fields, $field ) use ( $fields ) {
1090
-				if ( in_array( $field, $fields, true ) ) {
1091
-					$response_fields[] = $field;
1092
-					return $response_fields;
1093
-				}
1094
-				// Check for nested fields if $field is not a direct match.
1095
-				$nested_fields = explode( '.', $field );
1096
-				// A nested field is included so long as its top-level property is
1097
-				// present in the schema.
1098
-				if ( in_array( $nested_fields[0], $fields, true ) ) {
1099
-					$response_fields[] = $field;
1100
-				}
1101
-				return $response_fields;
1102
-			},
1103
-			array()
1104
-		);
1105
-	}
1106
-
1107
-	/**
1108
-	 * Retrieves the invoice's schema, conforming to JSON Schema.
1109
-	 *
1110
-	 * @since 1.0.13
1111
-	 *
1112
-	 * @return array Invoice schema data.
1113
-	 */
1114
-	public function get_item_schema() {
1115
-
1116
-		// Maybe retrieve the schema from cache.
1117
-		if ( $this->schema ) {
1118
-			return $this->add_additional_fields_schema( $this->schema );
1119
-		}
1120
-
1121
-		$schema = array(
1122
-			'$schema'    => 'http://json-schema.org/draft-04/schema#',
1123
-			'title'      => $this->post_type,
1124
-			'type'       => 'object',
1125
-
1126
-			// Base properties for every Invoice.
1127
-			'properties' 		  => array(
1128
-
1129
-				'title'			  => array(
1130
-					'description' => __( 'The title for the invoice.', 'invoicing' ),
1131
-					'type'        => 'string',
1132
-					'context'     => array( 'view', 'edit', 'embed' ),
1133
-					'readonly'    => true,
1134
-				),
1135
-
1136
-				'user_id'		  => array(
1137
-					'description' => __( 'The ID of the owner of the invoice.', 'invoicing' ),
1138
-					'type'        => 'integer',
1139
-					'context'     => array( 'view', 'edit', 'embed' ),
1140
-				),
1141
-
1142
-				'email'		  	  => array(
1143
-					'description' => __( 'The email of the owner of the invoice.', 'invoicing' ),
1144
-					'type'        => 'string',
1145
-					'context'     => array( 'view', 'edit', 'embed' ),
1146
-					'readonly'    => true,
1147
-				),
1148
-
1149
-				'ip'			  => array(
1150
-					'description' => __( 'The IP of the owner of the invoice.', 'invoicing' ),
1151
-					'type'        => 'string',
1152
-					'context'     => array( 'view', 'edit', 'embed' ),
1153
-				),
1154
-
1155
-				'user_info'       => array(
1156
-					'description' => __( 'Information about the owner of the invoice.', 'invoicing' ),
1157
-					'type'        => 'object',
1158
-					'context'     => array( 'view', 'edit', 'embed' ),
1159
-					'properties'  => array(
1160
-
1161
-						'first_name'      => array(
1162
-							'description' => __( 'The first name of the owner of the invoice.', 'invoicing' ),
1163
-							'type'        => 'string',
1164
-							'context'     => array( 'view', 'edit', 'embed' ),
1165
-						),
1166
-
1167
-						'last_name'       => array(
1168
-							'description' => __( 'The last name of the owner of the invoice.', 'invoicing' ),
1169
-							'type'        => 'string',
1170
-							'context'     => array( 'view', 'edit', 'embed' ),
1171
-						),
1172
-
1173
-						'company'         => array(
1174
-							'description' => __( 'The company of the owner of the invoice.', 'invoicing' ),
1175
-							'type'        => 'string',
1176
-							'context'     => array( 'view', 'edit', 'embed' ),
1177
-						),
1178
-
1179
-						'vat_number'      => array(
1180
-							'description' => __( 'The VAT number of the owner of the invoice.', 'invoicing' ),
1181
-							'type'        => 'string',
1182
-							'context'     => array( 'view', 'edit', 'embed' ),
1183
-						),
1184
-
1185
-						'vat_rate'        => array(
1186
-							'description' => __( 'The VAT rate applied on the invoice.', 'invoicing' ),
1187
-							'type'        => 'string',
1188
-							'context'     => array( 'view', 'edit', 'embed' ),
1189
-						),
1190
-
1191
-						'address'        => array(
1192
-							'description' => __( 'The address of the invoice owner.', 'invoicing' ),
1193
-							'type'        => 'string',
1194
-							'context'     => array( 'view', 'edit', 'embed' ),
1195
-						),
1196
-
1197
-						'city'            => array(
1198
-							'description' => __( 'The city of the invoice owner.', 'invoicing' ),
1199
-							'type'        => 'string',
1200
-							'context'     => array( 'view', 'edit', 'embed' ),
1201
-						),
1202
-
1203
-						'country'         => array(
1204
-							'description' => __( 'The country of the invoice owner.', 'invoicing' ),
1205
-							'type'        => 'string',
1206
-							'context'     => array( 'view', 'edit', 'embed' ),
1207
-						),
1208
-
1209
-						'state'           => array(
1210
-							'description' => __( 'The state of the invoice owner.', 'invoicing' ),
1211
-							'type'        => 'string',
1212
-							'context'     => array( 'view', 'edit', 'embed' ),
1213
-						),
1214
-
1215
-						'zip'             => array(
1216
-							'description' => __( 'The zip code of the invoice owner.', 'invoicing' ),
1217
-							'type'        => 'string',
1218
-							'context'     => array( 'view', 'edit', 'embed' ),
1219
-						),
1220
-
1221
-						'phone'             => array(
1222
-							'description' => __( 'The phone number of the invoice owner.', 'invoicing' ),
1223
-							'type'        => 'string',
1224
-							'context'     => array( 'view', 'edit', 'embed' ),
1225
-						),
1226
-					),
1227
-				),
1228
-
1229
-				'id'           => array(
1230
-					'description' => __( 'Unique identifier for the invoice.', 'invoicing' ),
1231
-					'type'        => 'integer',
1232
-					'context'     => array( 'view', 'edit', 'embed' ),
1233
-					'readonly'    => true,
1234
-				),
1235
-
1236
-				'key'			  => array(
1237
-					'description' => __( 'A unique key for the invoice.', 'invoicing' ),
1238
-					'type'        => 'string',
1239
-					'context'     => array( 'view', 'edit', 'embed' ),
1240
-					'readonly'    => true,
1241
-				),
1242
-
1243
-				'number'		  => array(
1244
-					'description' => __( 'The invoice number.', 'invoicing' ),
1245
-					'type'        => 'string',
1246
-					'context'     => array( 'view', 'edit', 'embed' ),
1247
-					'readonly'    => true,
1248
-				),
1249
-
1250
-				'transaction_id'  => array(
1251
-					'description' => __( 'The transaction id of the invoice.', 'invoicing' ),
1252
-					'type'        => 'string',
1253
-					'context'     => array( 'view', 'edit', 'embed' ),
1254
-				),
1255
-
1256
-				'gateway'		  => array(
1257
-					'description' => __( 'The gateway used to process the invoice.', 'invoicing' ),
1258
-					'type'        => 'string',
1259
-					'context'     => array( 'view', 'edit', 'embed' ),
1260
-				),
1261
-
1262
-				'gateway_title'	  => array(
1263
-					'description' => __( 'The title of the gateway used to process the invoice.', 'invoicing' ),
1264
-					'type'        => 'string',
1265
-					'context'     => array( 'view', 'edit', 'embed' ),
1266
-				),
1267
-
1268
-				'total'	  		  => array(
1269
-					'description' => __( 'The total amount of the invoice.', 'invoicing' ),
1270
-					'type'        => 'number',
1271
-					'context'     => array( 'view', 'edit', 'embed' ),
1272
-					'readonly'    => true,
1273
-				),
1274
-
1275
-				'discount'		  => array(
1276
-					'description' => __( 'The discount applied to the invoice.', 'invoicing' ),
1277
-					'type'        => 'number',
1278
-					'context'     => array( 'view', 'edit', 'embed' ),
1279
-					'readonly'    => true,
1280
-				),
1281
-
1282
-				'discount_code'	  => array(
1283
-					'description' => __( 'The discount code applied to the invoice.', 'invoicing' ),
1284
-					'type'        => 'string',
1285
-					'context'     => array( 'view', 'edit', 'embed' ),
1286
-					'readonly'    => true,
1287
-				),
1288
-
1289
-				'tax'	  		  => array(
1290
-					'description' => __( 'The tax applied to the invoice.', 'invoicing' ),
1291
-					'type'        => 'number',
1292
-					'context'     => array( 'view', 'edit', 'embed' ),
1293
-					'readonly'    => true,
1294
-				),
1295
-
1296
-				'fees_total'	  => array(
1297
-					'description' => __( 'The total fees applied to the invoice.', 'invoicing' ),
1298
-					'type'        => 'number',
1299
-					'context'     => array( 'view', 'edit', 'embed' ),
1300
-					'readonly'    => true,
1301
-				),
1302
-
1303
-				'subtotal'	  	  => array(
1304
-					'description' => __( 'The sub-total for the invoice.', 'invoicing' ),
1305
-					'type'        => 'number',
1306
-					'context'     => array( 'view', 'edit', 'embed' ),
1307
-					'readonly'    => true,
1308
-				),
1309
-
1310
-				'currency'	  	  => array(
1311
-					'description' => __( 'The currency used to process the invoice.', 'invoicing' ),
1312
-					'type'        => 'string',
1313
-					'context'     => array( 'view', 'edit', 'embed' ),
1314
-				),
1315
-
1316
-				'cart_details'	  => array(
1317
-					'description' => __( 'The cart details for invoice.', 'invoicing' ),
1318
-					'type'        => 'array',
1319
-					'context'     => array( 'view', 'edit', 'embed' ),
1320
-					'required'	  => true,
1321
-				),
1322
-
1323
-				'date'         => array(
1324
-					'description' => __( "The date the invoice was published, in the site's timezone.", 'invoicing' ),
1325
-					'type'        => array( 'string', 'null' ),
1326
-					'format'      => 'date-time',
1327
-					'context'     => array( 'view', 'edit', 'embed' ),
1328
-				),
1329
-
1330
-				'due_date'     => array(
1331
-					'description' => __( 'The due date for the invoice.', 'invoicing' ),
1332
-					'type'        => array( 'string', 'null' ),
1333
-					'format'      => 'date-time',
1334
-					'context'     => array( 'view', 'edit', 'embed' ),
1335
-				),
1336
-
1337
-				'completed_date'  => array(
1338
-					'description' => __( 'The completed date for the invoice.', 'invoicing' ),
1339
-					'type'        => array( 'string', 'null' ),
1340
-					'format'      => 'date-time',
1341
-					'context'     => array( 'view', 'edit', 'embed' ),
1342
-					'readonly'    => true,
1343
-				),
950
+        foreach( $invoice_properties as $property ) {
951
+
952
+            if ( rest_is_field_included( $property, $fields ) ) {
953
+                $data[$property] = $invoice->get( $property );
954
+            }
955
+
956
+        }
957
+
958
+        // Valid until
959
+        if ( rest_is_field_included( 'valid_until', $fields ) && $this->post_type === 'wpi_quote' ) {
960
+            $data['valid_until'] = get_post_meta( $invoice->ID, 'wpinv_quote_valid_until', true );
961
+        }
962
+
963
+        // Cart details
964
+        if ( rest_is_field_included( 'cart_details', $fields ) ) {
965
+            $data['cart_details'] = $invoice->get( 'cart_details' );
966
+        }
967
+
968
+        //Dates
969
+        $invoice_properties = array( 'date', 'due_date', 'completed_date' );
970
+
971
+        foreach( $invoice_properties as $property ) {
972
+
973
+            if ( rest_is_field_included( $property, $fields ) ) {
974
+                $data[$property] = $this->prepare_date_response( '0000-00-00 00:00:00', $invoice->get( $property ) );
975
+            }
976
+
977
+        }
978
+
979
+        // User id
980
+        if ( rest_is_field_included( 'user_id', $fields ) ) {
981
+            $data['user_id'] = (int) $invoice->get( 'user_id' );
982
+        }
983
+
984
+        // User info
985
+        $user_info = array( 'first_name', 'last_name', 'company', 'vat_number', 'vat_rate', 'address', 'city', 'country', 'state', 'zip', 'phone' );
986
+
987
+        foreach( $user_info as $property ) {
988
+
989
+            if ( rest_is_field_included( "user_info.$property", $fields ) ) {
990
+                $data['user_info'][$property] = $invoice->get( $property );
991
+            }
992
+
993
+        }
994
+
995
+        // Slug
996
+        if ( rest_is_field_included( 'slug', $fields ) ) {
997
+            $data['slug'] = $invoice->get( 'post_name' );
998
+        }
999
+
1000
+        // View invoice link
1001
+        if ( rest_is_field_included( 'link', $fields ) ) {
1002
+            $data['link'] = esc_url( $invoice->get_view_url() );
1003
+        }
1004
+
1005
+
1006
+        $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
1007
+        $data    = $this->add_additional_fields_to_object( $data, $request );
1008
+        $data    = $this->filter_response_by_context( $data, $context );
1009
+
1010
+        // Wrap the data in a response object.
1011
+        $response = rest_ensure_response( $data );
1012
+
1013
+        $links = $this->prepare_links( $invoice );
1014
+        $response->add_links( $links );
1015
+
1016
+        if ( ! empty( $links['self']['href'] ) ) {
1017
+            $actions = $this->get_available_actions( $invoice, $request );
1018
+
1019
+            $self = $links['self']['href'];
1020
+
1021
+            foreach ( $actions as $rel ) {
1022
+                $response->add_link( $rel, $self );
1023
+            }
1024
+        }
1025
+
1026
+        /**
1027
+         * Filters the invoice data for a response.
1028
+         *
1029
+         * @since 1.0.13
1030
+         *
1031
+         * @param WP_REST_Response $response The response object.
1032
+         * @param WPInv_Invoice    $invoice  The invoice object.
1033
+         * @param WP_REST_Request  $request  Request object.
1034
+         */
1035
+        return apply_filters( "wpinv_rest_prepare_invoice", $response, $invoice, $request );
1036
+    }
1037
+
1038
+    /**
1039
+     * Gets an array of fields to be included on the response.
1040
+     *
1041
+     * Included fields are based on item schema and `_fields=` request argument.
1042
+     *
1043
+     * @since 1.0.13
1044
+     *
1045
+     * @param WP_REST_Request $request Full details about the request.
1046
+     * @return array Fields to be included in the response.
1047
+     */
1048
+    public function get_fields_for_response( $request ) {
1049
+        $schema     = $this->get_item_schema();
1050
+        $properties = isset( $schema['properties'] ) ? $schema['properties'] : array();
1051
+
1052
+        $additional_fields = $this->get_additional_fields();
1053
+        foreach ( $additional_fields as $field_name => $field_options ) {
1054
+            // For back-compat, include any field with an empty schema
1055
+            // because it won't be present in $this->get_item_schema().
1056
+            if ( is_null( $field_options['schema'] ) ) {
1057
+                $properties[ $field_name ] = $field_options;
1058
+            }
1059
+        }
1060
+
1061
+        // Exclude fields that specify a different context than the request context.
1062
+        $context = $request['context'];
1063
+        if ( $context ) {
1064
+            foreach ( $properties as $name => $options ) {
1065
+                if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) {
1066
+                    unset( $properties[ $name ] );
1067
+                }
1068
+            }
1069
+        }
1070
+
1071
+        $fields = array_keys( $properties );
1072
+
1073
+        if ( ! isset( $request['_fields'] ) ) {
1074
+            return $fields;
1075
+        }
1076
+        $requested_fields = wpinv_parse_list( $request['_fields'] );
1077
+        if ( 0 === count( $requested_fields ) ) {
1078
+            return $fields;
1079
+        }
1080
+        // Trim off outside whitespace from the comma delimited list.
1081
+        $requested_fields = array_map( 'trim', $requested_fields );
1082
+        // Always persist 'id', because it can be needed for add_additional_fields_to_object().
1083
+        if ( in_array( 'id', $fields, true ) ) {
1084
+            $requested_fields[] = 'id';
1085
+        }
1086
+        // Return the list of all requested fields which appear in the schema.
1087
+        return array_reduce(
1088
+            $requested_fields,
1089
+            function( $response_fields, $field ) use ( $fields ) {
1090
+                if ( in_array( $field, $fields, true ) ) {
1091
+                    $response_fields[] = $field;
1092
+                    return $response_fields;
1093
+                }
1094
+                // Check for nested fields if $field is not a direct match.
1095
+                $nested_fields = explode( '.', $field );
1096
+                // A nested field is included so long as its top-level property is
1097
+                // present in the schema.
1098
+                if ( in_array( $nested_fields[0], $fields, true ) ) {
1099
+                    $response_fields[] = $field;
1100
+                }
1101
+                return $response_fields;
1102
+            },
1103
+            array()
1104
+        );
1105
+    }
1106
+
1107
+    /**
1108
+     * Retrieves the invoice's schema, conforming to JSON Schema.
1109
+     *
1110
+     * @since 1.0.13
1111
+     *
1112
+     * @return array Invoice schema data.
1113
+     */
1114
+    public function get_item_schema() {
1115
+
1116
+        // Maybe retrieve the schema from cache.
1117
+        if ( $this->schema ) {
1118
+            return $this->add_additional_fields_schema( $this->schema );
1119
+        }
1120
+
1121
+        $schema = array(
1122
+            '$schema'    => 'http://json-schema.org/draft-04/schema#',
1123
+            'title'      => $this->post_type,
1124
+            'type'       => 'object',
1125
+
1126
+            // Base properties for every Invoice.
1127
+            'properties' 		  => array(
1128
+
1129
+                'title'			  => array(
1130
+                    'description' => __( 'The title for the invoice.', 'invoicing' ),
1131
+                    'type'        => 'string',
1132
+                    'context'     => array( 'view', 'edit', 'embed' ),
1133
+                    'readonly'    => true,
1134
+                ),
1135
+
1136
+                'user_id'		  => array(
1137
+                    'description' => __( 'The ID of the owner of the invoice.', 'invoicing' ),
1138
+                    'type'        => 'integer',
1139
+                    'context'     => array( 'view', 'edit', 'embed' ),
1140
+                ),
1141
+
1142
+                'email'		  	  => array(
1143
+                    'description' => __( 'The email of the owner of the invoice.', 'invoicing' ),
1144
+                    'type'        => 'string',
1145
+                    'context'     => array( 'view', 'edit', 'embed' ),
1146
+                    'readonly'    => true,
1147
+                ),
1148
+
1149
+                'ip'			  => array(
1150
+                    'description' => __( 'The IP of the owner of the invoice.', 'invoicing' ),
1151
+                    'type'        => 'string',
1152
+                    'context'     => array( 'view', 'edit', 'embed' ),
1153
+                ),
1154
+
1155
+                'user_info'       => array(
1156
+                    'description' => __( 'Information about the owner of the invoice.', 'invoicing' ),
1157
+                    'type'        => 'object',
1158
+                    'context'     => array( 'view', 'edit', 'embed' ),
1159
+                    'properties'  => array(
1160
+
1161
+                        'first_name'      => array(
1162
+                            'description' => __( 'The first name of the owner of the invoice.', 'invoicing' ),
1163
+                            'type'        => 'string',
1164
+                            'context'     => array( 'view', 'edit', 'embed' ),
1165
+                        ),
1166
+
1167
+                        'last_name'       => array(
1168
+                            'description' => __( 'The last name of the owner of the invoice.', 'invoicing' ),
1169
+                            'type'        => 'string',
1170
+                            'context'     => array( 'view', 'edit', 'embed' ),
1171
+                        ),
1172
+
1173
+                        'company'         => array(
1174
+                            'description' => __( 'The company of the owner of the invoice.', 'invoicing' ),
1175
+                            'type'        => 'string',
1176
+                            'context'     => array( 'view', 'edit', 'embed' ),
1177
+                        ),
1178
+
1179
+                        'vat_number'      => array(
1180
+                            'description' => __( 'The VAT number of the owner of the invoice.', 'invoicing' ),
1181
+                            'type'        => 'string',
1182
+                            'context'     => array( 'view', 'edit', 'embed' ),
1183
+                        ),
1184
+
1185
+                        'vat_rate'        => array(
1186
+                            'description' => __( 'The VAT rate applied on the invoice.', 'invoicing' ),
1187
+                            'type'        => 'string',
1188
+                            'context'     => array( 'view', 'edit', 'embed' ),
1189
+                        ),
1190
+
1191
+                        'address'        => array(
1192
+                            'description' => __( 'The address of the invoice owner.', 'invoicing' ),
1193
+                            'type'        => 'string',
1194
+                            'context'     => array( 'view', 'edit', 'embed' ),
1195
+                        ),
1196
+
1197
+                        'city'            => array(
1198
+                            'description' => __( 'The city of the invoice owner.', 'invoicing' ),
1199
+                            'type'        => 'string',
1200
+                            'context'     => array( 'view', 'edit', 'embed' ),
1201
+                        ),
1202
+
1203
+                        'country'         => array(
1204
+                            'description' => __( 'The country of the invoice owner.', 'invoicing' ),
1205
+                            'type'        => 'string',
1206
+                            'context'     => array( 'view', 'edit', 'embed' ),
1207
+                        ),
1208
+
1209
+                        'state'           => array(
1210
+                            'description' => __( 'The state of the invoice owner.', 'invoicing' ),
1211
+                            'type'        => 'string',
1212
+                            'context'     => array( 'view', 'edit', 'embed' ),
1213
+                        ),
1214
+
1215
+                        'zip'             => array(
1216
+                            'description' => __( 'The zip code of the invoice owner.', 'invoicing' ),
1217
+                            'type'        => 'string',
1218
+                            'context'     => array( 'view', 'edit', 'embed' ),
1219
+                        ),
1220
+
1221
+                        'phone'             => array(
1222
+                            'description' => __( 'The phone number of the invoice owner.', 'invoicing' ),
1223
+                            'type'        => 'string',
1224
+                            'context'     => array( 'view', 'edit', 'embed' ),
1225
+                        ),
1226
+                    ),
1227
+                ),
1228
+
1229
+                'id'           => array(
1230
+                    'description' => __( 'Unique identifier for the invoice.', 'invoicing' ),
1231
+                    'type'        => 'integer',
1232
+                    'context'     => array( 'view', 'edit', 'embed' ),
1233
+                    'readonly'    => true,
1234
+                ),
1235
+
1236
+                'key'			  => array(
1237
+                    'description' => __( 'A unique key for the invoice.', 'invoicing' ),
1238
+                    'type'        => 'string',
1239
+                    'context'     => array( 'view', 'edit', 'embed' ),
1240
+                    'readonly'    => true,
1241
+                ),
1242
+
1243
+                'number'		  => array(
1244
+                    'description' => __( 'The invoice number.', 'invoicing' ),
1245
+                    'type'        => 'string',
1246
+                    'context'     => array( 'view', 'edit', 'embed' ),
1247
+                    'readonly'    => true,
1248
+                ),
1249
+
1250
+                'transaction_id'  => array(
1251
+                    'description' => __( 'The transaction id of the invoice.', 'invoicing' ),
1252
+                    'type'        => 'string',
1253
+                    'context'     => array( 'view', 'edit', 'embed' ),
1254
+                ),
1255
+
1256
+                'gateway'		  => array(
1257
+                    'description' => __( 'The gateway used to process the invoice.', 'invoicing' ),
1258
+                    'type'        => 'string',
1259
+                    'context'     => array( 'view', 'edit', 'embed' ),
1260
+                ),
1261
+
1262
+                'gateway_title'	  => array(
1263
+                    'description' => __( 'The title of the gateway used to process the invoice.', 'invoicing' ),
1264
+                    'type'        => 'string',
1265
+                    'context'     => array( 'view', 'edit', 'embed' ),
1266
+                ),
1267
+
1268
+                'total'	  		  => array(
1269
+                    'description' => __( 'The total amount of the invoice.', 'invoicing' ),
1270
+                    'type'        => 'number',
1271
+                    'context'     => array( 'view', 'edit', 'embed' ),
1272
+                    'readonly'    => true,
1273
+                ),
1274
+
1275
+                'discount'		  => array(
1276
+                    'description' => __( 'The discount applied to the invoice.', 'invoicing' ),
1277
+                    'type'        => 'number',
1278
+                    'context'     => array( 'view', 'edit', 'embed' ),
1279
+                    'readonly'    => true,
1280
+                ),
1281
+
1282
+                'discount_code'	  => array(
1283
+                    'description' => __( 'The discount code applied to the invoice.', 'invoicing' ),
1284
+                    'type'        => 'string',
1285
+                    'context'     => array( 'view', 'edit', 'embed' ),
1286
+                    'readonly'    => true,
1287
+                ),
1288
+
1289
+                'tax'	  		  => array(
1290
+                    'description' => __( 'The tax applied to the invoice.', 'invoicing' ),
1291
+                    'type'        => 'number',
1292
+                    'context'     => array( 'view', 'edit', 'embed' ),
1293
+                    'readonly'    => true,
1294
+                ),
1295
+
1296
+                'fees_total'	  => array(
1297
+                    'description' => __( 'The total fees applied to the invoice.', 'invoicing' ),
1298
+                    'type'        => 'number',
1299
+                    'context'     => array( 'view', 'edit', 'embed' ),
1300
+                    'readonly'    => true,
1301
+                ),
1302
+
1303
+                'subtotal'	  	  => array(
1304
+                    'description' => __( 'The sub-total for the invoice.', 'invoicing' ),
1305
+                    'type'        => 'number',
1306
+                    'context'     => array( 'view', 'edit', 'embed' ),
1307
+                    'readonly'    => true,
1308
+                ),
1309
+
1310
+                'currency'	  	  => array(
1311
+                    'description' => __( 'The currency used to process the invoice.', 'invoicing' ),
1312
+                    'type'        => 'string',
1313
+                    'context'     => array( 'view', 'edit', 'embed' ),
1314
+                ),
1315
+
1316
+                'cart_details'	  => array(
1317
+                    'description' => __( 'The cart details for invoice.', 'invoicing' ),
1318
+                    'type'        => 'array',
1319
+                    'context'     => array( 'view', 'edit', 'embed' ),
1320
+                    'required'	  => true,
1321
+                ),
1322
+
1323
+                'date'         => array(
1324
+                    'description' => __( "The date the invoice was published, in the site's timezone.", 'invoicing' ),
1325
+                    'type'        => array( 'string', 'null' ),
1326
+                    'format'      => 'date-time',
1327
+                    'context'     => array( 'view', 'edit', 'embed' ),
1328
+                ),
1329
+
1330
+                'due_date'     => array(
1331
+                    'description' => __( 'The due date for the invoice.', 'invoicing' ),
1332
+                    'type'        => array( 'string', 'null' ),
1333
+                    'format'      => 'date-time',
1334
+                    'context'     => array( 'view', 'edit', 'embed' ),
1335
+                ),
1336
+
1337
+                'completed_date'  => array(
1338
+                    'description' => __( 'The completed date for the invoice.', 'invoicing' ),
1339
+                    'type'        => array( 'string', 'null' ),
1340
+                    'format'      => 'date-time',
1341
+                    'context'     => array( 'view', 'edit', 'embed' ),
1342
+                    'readonly'    => true,
1343
+                ),
1344 1344
 				
1345
-				'link'         => array(
1346
-					'description' => __( 'URL to the invoice.', 'invoicing' ),
1347
-					'type'        => 'string',
1348
-					'format'      => 'uri',
1349
-					'context'     => array( 'view', 'edit', 'embed' ),
1350
-					'readonly'    => true,
1351
-				),
1352
-
1353
-				'mode'       	  => array(
1354
-					'description' => __( 'The mode used to process the invoice.', 'invoicing' ),
1355
-					'type'        => 'string',
1356
-					'enum'        => array( 'live', 'test' ),
1357
-					'context'     => array( 'view', 'edit', 'embed' ),
1358
-					'readonly'    => true,
1359
-				),
1360
-
1361
-				'slug'       	  => array(
1362
-					'description' => __( 'An alphanumeric identifier for the invoice.', 'invoicing' ),
1363
-					'type'        => 'string',
1364
-					'context'     => array( 'view', 'edit', 'embed' ),
1365
-					'arg_options' => array(
1366
-						'sanitize_callback' => array( $this, 'sanitize_slug' ),
1367
-					),
1368
-					'readonly'    => true,
1369
-				),
1370
-
1371
-				'status'       	  => array(
1372
-					'description' => __( 'A named status for the invoice.', 'invoicing' ),
1373
-					'type'        => 'string',
1374
-					'enum'        => $this->get_post_statuses(),
1375
-					'context'     => array( 'view', 'edit' ),
1376
-					'default'	  => 'wpi-pending',
1377
-				),
1378
-
1379
-				'status_nicename' => array(
1380
-					'description' => __( 'A human-readable status name for the invoice.', 'invoicing' ),
1381
-					'type'        => 'string',
1382
-					'context'     => array( 'view', 'embed' ),
1383
-					'readonly'    => true,
1384
-				),
1385
-
1386
-				'post_type'       => array(
1387
-					'description' => __( 'The post type for the invoice.', 'invoicing' ),
1388
-					'type'        => 'string',
1389
-					'context'     => array( 'view' ),
1390
-					'readonly'    => true,
1391
-				),
1392
-			),
1393
-		);
1394
-
1395
-		// Add helpful links to the invoice schem.
1396
-		$schema['links'] = $this->get_schema_links();
1397
-
1398
-		/**
1399
-		 * Filters the invoice schema for the REST API.
1400
-		 *
1401
-		 * Enables adding extra properties to invoices.
1402
-		 *
1403
-		 * @since 1.0.13
1404
-		 *
1405
-		 * @param array   $schema    The invoice schema.
1406
-		 */
1345
+                'link'         => array(
1346
+                    'description' => __( 'URL to the invoice.', 'invoicing' ),
1347
+                    'type'        => 'string',
1348
+                    'format'      => 'uri',
1349
+                    'context'     => array( 'view', 'edit', 'embed' ),
1350
+                    'readonly'    => true,
1351
+                ),
1352
+
1353
+                'mode'       	  => array(
1354
+                    'description' => __( 'The mode used to process the invoice.', 'invoicing' ),
1355
+                    'type'        => 'string',
1356
+                    'enum'        => array( 'live', 'test' ),
1357
+                    'context'     => array( 'view', 'edit', 'embed' ),
1358
+                    'readonly'    => true,
1359
+                ),
1360
+
1361
+                'slug'       	  => array(
1362
+                    'description' => __( 'An alphanumeric identifier for the invoice.', 'invoicing' ),
1363
+                    'type'        => 'string',
1364
+                    'context'     => array( 'view', 'edit', 'embed' ),
1365
+                    'arg_options' => array(
1366
+                        'sanitize_callback' => array( $this, 'sanitize_slug' ),
1367
+                    ),
1368
+                    'readonly'    => true,
1369
+                ),
1370
+
1371
+                'status'       	  => array(
1372
+                    'description' => __( 'A named status for the invoice.', 'invoicing' ),
1373
+                    'type'        => 'string',
1374
+                    'enum'        => $this->get_post_statuses(),
1375
+                    'context'     => array( 'view', 'edit' ),
1376
+                    'default'	  => 'wpi-pending',
1377
+                ),
1378
+
1379
+                'status_nicename' => array(
1380
+                    'description' => __( 'A human-readable status name for the invoice.', 'invoicing' ),
1381
+                    'type'        => 'string',
1382
+                    'context'     => array( 'view', 'embed' ),
1383
+                    'readonly'    => true,
1384
+                ),
1385
+
1386
+                'post_type'       => array(
1387
+                    'description' => __( 'The post type for the invoice.', 'invoicing' ),
1388
+                    'type'        => 'string',
1389
+                    'context'     => array( 'view' ),
1390
+                    'readonly'    => true,
1391
+                ),
1392
+            ),
1393
+        );
1394
+
1395
+        // Add helpful links to the invoice schem.
1396
+        $schema['links'] = $this->get_schema_links();
1397
+
1398
+        /**
1399
+         * Filters the invoice schema for the REST API.
1400
+         *
1401
+         * Enables adding extra properties to invoices.
1402
+         *
1403
+         * @since 1.0.13
1404
+         *
1405
+         * @param array   $schema    The invoice schema.
1406
+         */
1407 1407
         $schema = apply_filters( "wpinv_rest_invoice_schema", $schema );
1408 1408
 
1409
-		// Cache the invoice schema.
1410
-		$this->schema = $schema;
1409
+        // Cache the invoice schema.
1410
+        $this->schema = $schema;
1411 1411
 		
1412
-		return $this->add_additional_fields_schema( $this->schema );
1413
-	}
1414
-
1415
-	/**
1416
-	 * Retrieve Link Description Objects that should be added to the Schema for the invoices collection.
1417
-	 *
1418
-	 * @since 1.0.13
1419
-	 *
1420
-	 * @return array
1421
-	 */
1422
-	protected function get_schema_links() {
1423
-
1424
-		$href = rest_url( "{$this->namespace}/{$this->rest_base}/{id}" );
1425
-
1426
-		$links = array();
1427
-
1428
-		$links[] = array(
1429
-			'rel'          => 'https://api.w.org/action-publish',
1430
-			'title'        => __( 'The current user can mark this invoice as completed.', 'invoicing' ),
1431
-			'href'         => $href,
1432
-			'targetSchema' => array(
1433
-				'type'       => 'object',
1434
-				'properties' => array(
1435
-					'status' => array(
1436
-						'type' => 'string',
1437
-						'enum' => array( 'publish', 'wpi-renewal' ),
1438
-					),
1439
-				),
1440
-			),
1441
-		);
1442
-
1443
-		$links[] = array(
1444
-			'rel'          => 'https://api.w.org/action-assign-author',
1445
-			'title'        => __( 'The current user can change the owner of this invoice.', 'invoicing' ),
1446
-			'href'         => $href,
1447
-			'targetSchema' => array(
1448
-				'type'       => 'object',
1449
-				'properties'   => array(
1450
-					'user_id'  => array(
1451
-						'type' => 'integer',
1452
-					),
1453
-				),
1454
-			),
1455
-		);
1456
-
1457
-		return $links;
1458
-	}
1459
-
1460
-	/**
1461
-	 * Prepares links for the request.
1462
-	 *
1463
-	 * @since 1.0.13
1464
-	 *
1465
-	 * @param WPInv_Invoice $invoice Invoice Object.
1466
-	 * @return array Links for the given invoice.
1467
-	 */
1468
-	protected function prepare_links( $invoice ) {
1469
-
1470
-		// Prepare the base REST API endpoint for invoices.
1471
-		$base = sprintf( '%s/%s', $this->namespace, $this->rest_base );
1472
-
1473
-		// Entity meta.
1474
-		$links = array(
1475
-			'self'       => array(
1476
-				'href' => rest_url( trailingslashit( $base ) . $invoice->ID ),
1477
-			),
1478
-			'collection' => array(
1479
-				'href' => rest_url( $base ),
1480
-			),
1481
-		);
1482
-
1483
-		if ( ! empty( $invoice->user_id ) ) {
1484
-			$links['user'] = array(
1485
-				'href'       => rest_url( 'wp/v2/users/' . $invoice->user_id ),
1486
-				'embeddable' => true,
1487
-			);
1488
-		}
1489
-
1490
-		/**
1491
-		 * Filters the returned invoice links for the REST API.
1492
-		 *
1493
-		 * Enables adding extra links to invoice API responses.
1494
-		 *
1495
-		 * @since 1.0.13
1496
-		 *
1497
-		 * @param array   $links    Rest links.
1498
-		 */
1499
-		return apply_filters( "wpinv_rest_invoice_links", $links );
1500
-
1501
-	}
1502
-
1503
-	/**
1504
-	 * Get the link relations available for the post and current user.
1505
-	 *
1506
-	 * @since 1.0.13
1507
-	 *
1508
-	 * @param WPInv_Invoice   $invoice    Invoice object.
1509
-	 * @param WP_REST_Request $request Request object.
1510
-	 * @return array List of link relations.
1511
-	 */
1512
-	protected function get_available_actions( $invoice, $request ) {
1513
-
1514
-		if ( 'edit' !== $request['context'] ) {
1515
-			return array();
1516
-		}
1517
-
1518
-		$rels = array();
1519
-
1520
-		// Retrieve the post type object.
1521
-		$post_type = get_post_type_object( $invoice->post_type );
1522
-
1523
-		// Mark invoice as completed.
1524
-		if ( current_user_can( $post_type->cap->publish_posts ) ) {
1525
-			$rels[] = 'https://api.w.org/action-publish';
1526
-		}
1527
-
1528
-		// Change the owner of the invoice.
1529
-		if ( current_user_can( $post_type->cap->edit_others_posts ) ) {
1530
-			$rels[] = 'https://api.w.org/action-assign-author';
1531
-		}
1532
-
1533
-		/**
1534
-		 * Filters the available invoice link relations for the REST API.
1535
-		 *
1536
-		 * Enables adding extra link relation for the current user and request to invoice responses.
1537
-		 *
1538
-		 * @since 1.0.13
1539
-		 *
1540
-		 * @param array   $rels    Available link relations.
1541
-		 */
1542
-		return apply_filters( "wpinv_rest_invoice_link_relations", $rels );
1543
-	}
1544
-
1545
-	/**
1546
-	 * Sanitizes and validates the list of post statuses.
1547
-	 *
1548
-	 * @since 1.0.13
1549
-	 *
1550
-	 * @param string|array    $statuses  One or more post statuses.
1551
-	 * @param WP_REST_Request $request   Full details about the request.
1552
-	 * @param string          $parameter Additional parameter to pass to validation.
1553
-	 * @return array|WP_Error A list of valid statuses, otherwise WP_Error object.
1554
-	 */
1555
-	public function sanitize_post_statuses( $statuses, $request, $parameter ) {
1556
-		return array_intersect( wp_parse_slug_list( $statuses ), $this->get_post_statuses() );
1557
-	}
1558
-
1559
-	/**
1560
-	 * Retrieves a valid list of post statuses.
1561
-	 *
1562
-	 * @since 1.0.15
1563
-	 *
1564
-	 * @return array A list of registered item statuses.
1565
-	 */
1566
-	public function get_post_statuses() {
1567
-		return array_keys( wpinv_get_invoice_statuses( true, true ) );
1568
-	}
1412
+        return $this->add_additional_fields_schema( $this->schema );
1413
+    }
1414
+
1415
+    /**
1416
+     * Retrieve Link Description Objects that should be added to the Schema for the invoices collection.
1417
+     *
1418
+     * @since 1.0.13
1419
+     *
1420
+     * @return array
1421
+     */
1422
+    protected function get_schema_links() {
1423
+
1424
+        $href = rest_url( "{$this->namespace}/{$this->rest_base}/{id}" );
1425
+
1426
+        $links = array();
1427
+
1428
+        $links[] = array(
1429
+            'rel'          => 'https://api.w.org/action-publish',
1430
+            'title'        => __( 'The current user can mark this invoice as completed.', 'invoicing' ),
1431
+            'href'         => $href,
1432
+            'targetSchema' => array(
1433
+                'type'       => 'object',
1434
+                'properties' => array(
1435
+                    'status' => array(
1436
+                        'type' => 'string',
1437
+                        'enum' => array( 'publish', 'wpi-renewal' ),
1438
+                    ),
1439
+                ),
1440
+            ),
1441
+        );
1442
+
1443
+        $links[] = array(
1444
+            'rel'          => 'https://api.w.org/action-assign-author',
1445
+            'title'        => __( 'The current user can change the owner of this invoice.', 'invoicing' ),
1446
+            'href'         => $href,
1447
+            'targetSchema' => array(
1448
+                'type'       => 'object',
1449
+                'properties'   => array(
1450
+                    'user_id'  => array(
1451
+                        'type' => 'integer',
1452
+                    ),
1453
+                ),
1454
+            ),
1455
+        );
1456
+
1457
+        return $links;
1458
+    }
1459
+
1460
+    /**
1461
+     * Prepares links for the request.
1462
+     *
1463
+     * @since 1.0.13
1464
+     *
1465
+     * @param WPInv_Invoice $invoice Invoice Object.
1466
+     * @return array Links for the given invoice.
1467
+     */
1468
+    protected function prepare_links( $invoice ) {
1469
+
1470
+        // Prepare the base REST API endpoint for invoices.
1471
+        $base = sprintf( '%s/%s', $this->namespace, $this->rest_base );
1472
+
1473
+        // Entity meta.
1474
+        $links = array(
1475
+            'self'       => array(
1476
+                'href' => rest_url( trailingslashit( $base ) . $invoice->ID ),
1477
+            ),
1478
+            'collection' => array(
1479
+                'href' => rest_url( $base ),
1480
+            ),
1481
+        );
1482
+
1483
+        if ( ! empty( $invoice->user_id ) ) {
1484
+            $links['user'] = array(
1485
+                'href'       => rest_url( 'wp/v2/users/' . $invoice->user_id ),
1486
+                'embeddable' => true,
1487
+            );
1488
+        }
1489
+
1490
+        /**
1491
+         * Filters the returned invoice links for the REST API.
1492
+         *
1493
+         * Enables adding extra links to invoice API responses.
1494
+         *
1495
+         * @since 1.0.13
1496
+         *
1497
+         * @param array   $links    Rest links.
1498
+         */
1499
+        return apply_filters( "wpinv_rest_invoice_links", $links );
1500
+
1501
+    }
1502
+
1503
+    /**
1504
+     * Get the link relations available for the post and current user.
1505
+     *
1506
+     * @since 1.0.13
1507
+     *
1508
+     * @param WPInv_Invoice   $invoice    Invoice object.
1509
+     * @param WP_REST_Request $request Request object.
1510
+     * @return array List of link relations.
1511
+     */
1512
+    protected function get_available_actions( $invoice, $request ) {
1513
+
1514
+        if ( 'edit' !== $request['context'] ) {
1515
+            return array();
1516
+        }
1517
+
1518
+        $rels = array();
1519
+
1520
+        // Retrieve the post type object.
1521
+        $post_type = get_post_type_object( $invoice->post_type );
1522
+
1523
+        // Mark invoice as completed.
1524
+        if ( current_user_can( $post_type->cap->publish_posts ) ) {
1525
+            $rels[] = 'https://api.w.org/action-publish';
1526
+        }
1527
+
1528
+        // Change the owner of the invoice.
1529
+        if ( current_user_can( $post_type->cap->edit_others_posts ) ) {
1530
+            $rels[] = 'https://api.w.org/action-assign-author';
1531
+        }
1532
+
1533
+        /**
1534
+         * Filters the available invoice link relations for the REST API.
1535
+         *
1536
+         * Enables adding extra link relation for the current user and request to invoice responses.
1537
+         *
1538
+         * @since 1.0.13
1539
+         *
1540
+         * @param array   $rels    Available link relations.
1541
+         */
1542
+        return apply_filters( "wpinv_rest_invoice_link_relations", $rels );
1543
+    }
1544
+
1545
+    /**
1546
+     * Sanitizes and validates the list of post statuses.
1547
+     *
1548
+     * @since 1.0.13
1549
+     *
1550
+     * @param string|array    $statuses  One or more post statuses.
1551
+     * @param WP_REST_Request $request   Full details about the request.
1552
+     * @param string          $parameter Additional parameter to pass to validation.
1553
+     * @return array|WP_Error A list of valid statuses, otherwise WP_Error object.
1554
+     */
1555
+    public function sanitize_post_statuses( $statuses, $request, $parameter ) {
1556
+        return array_intersect( wp_parse_slug_list( $statuses ), $this->get_post_statuses() );
1557
+    }
1558
+
1559
+    /**
1560
+     * Retrieves a valid list of post statuses.
1561
+     *
1562
+     * @since 1.0.15
1563
+     *
1564
+     * @return array A list of registered item statuses.
1565
+     */
1566
+    public function get_post_statuses() {
1567
+        return array_keys( wpinv_get_invoice_statuses( true, true ) );
1568
+    }
1569 1569
     
1570 1570
 }
1571 1571
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +325 added lines, -325 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  * @since    1.0.13
9 9
  */
10 10
 
11
-if ( !defined( 'WPINC' ) ) {
11
+if (!defined('WPINC')) {
12 12
     exit;
13 13
 }
14 14
 
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
 	 *
42 42
 	 * @param string $namespace Api Namespace
43 43
 	 */
44
-	public function __construct( $namespace ) {
44
+	public function __construct($namespace) {
45 45
         
46 46
         // Set api namespace...
47 47
 		$this->namespace = $namespace;
@@ -60,16 +60,16 @@  discard block
 block discarded – undo
60 60
 	 * @param WP_REST_Request $request Full details about the request.
61 61
 	 * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
62 62
 	 */
63
-	public function get_items_permissions_check( $request ) {
63
+	public function get_items_permissions_check($request) {
64 64
 	
65
-        $post_type = get_post_type_object( $this->post_type );
65
+        $post_type = get_post_type_object($this->post_type);
66 66
 
67
-		if ( 'edit' === $request['context'] && ! current_user_can( $post_type->cap->edit_posts ) ) {
68
-			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
67
+		if ('edit' === $request['context'] && !current_user_can($post_type->cap->edit_posts)) {
68
+			return new WP_Error('rest_forbidden_context', __('Sorry, you are not allowed to edit items.', 'invoicing'), array('status' => rest_authorization_required_code()));
69 69
 		}
70 70
 
71
-		if ( ! is_user_logged_in() ) {
72
-			return new WP_Error( 'rest_forbidden', __( 'Sorry, you must be logged in to view items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
71
+		if (!is_user_logged_in()) {
72
+			return new WP_Error('rest_forbidden', __('Sorry, you must be logged in to view items.', 'invoicing'), array('status' => rest_authorization_required_code()));
73 73
 		}
74 74
 
75 75
 		// Read checks will be evaluated on a per invoice basis
@@ -86,33 +86,33 @@  discard block
 block discarded – undo
86 86
 	 * @param WP_REST_Request $request Full details about the request.
87 87
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
88 88
 	 */
89
-	public function get_items( $request ) {
89
+	public function get_items($request) {
90 90
 		
91 91
 		// Retrieve request query parameters.
92
-		$args          = $this->get_request_collection_params( $request );
92
+		$args          = $this->get_request_collection_params($request);
93 93
 		
94 94
 		// WP_Query Args.
95
-		$wp_query_args = $this->get_collection_wp_query_params( $args, $request );
95
+		$wp_query_args = $this->get_collection_wp_query_params($args, $request);
96 96
 		
97 97
 		// Get invoice ids...
98
-		$query         = new WP_Query( $wp_query_args );
98
+		$query         = new WP_Query($wp_query_args);
99 99
 
100 100
 		// ... and map them into invoice objects.
101
-		$_invoices     = array_map( array( $this, 'get_post' ), $query->posts );
101
+		$_invoices     = array_map(array($this, 'get_post'), $query->posts);
102 102
 
103 103
 		// Prepare the retrieved invoices
104 104
 		$invoices      = array();
105 105
 
106
-		foreach( $_invoices as $invoice ) {
107
-			if ( $this->check_read_permission( $invoice ) ) {
108
-				$invoices[] = $this->prepare_response_for_collection( $this->prepare_item_for_response( $invoice, $request ) );
106
+		foreach ($_invoices as $invoice) {
107
+			if ($this->check_read_permission($invoice)) {
108
+				$invoices[] = $this->prepare_response_for_collection($this->prepare_item_for_response($invoice, $request));
109 109
 			}
110 110
 		}
111 111
 
112 112
 		// Prepare the response.
113
-		$response = rest_ensure_response( $invoices );
114
-		$response->header( 'X-WP-Total', (int) $query->found_posts );
115
-		$response->header( 'X-WP-TotalPages', (int) $query->max_num_pages );
113
+		$response = rest_ensure_response($invoices);
114
+		$response->header('X-WP-Total', (int) $query->found_posts);
115
+		$response->header('X-WP-TotalPages', (int) $query->max_num_pages);
116 116
 
117 117
 		/**
118 118
 		 * Filters the responses for invoices requests.
@@ -125,9 +125,9 @@  discard block
 block discarded – undo
125 125
 		 * @param WP_REST_Request     $request The request used.
126 126
          * @param array               $args Array of args used to retrieve the invoices
127 127
 		 */
128
-        $response       = apply_filters( "wpinv_rest_invoices_response", $response, $request, $args );
128
+        $response = apply_filters("wpinv_rest_invoices_response", $response, $request, $args);
129 129
 
130
-        return rest_ensure_response( $response );
130
+        return rest_ensure_response($response);
131 131
         
132 132
     }
133 133
 
@@ -139,17 +139,17 @@  discard block
 block discarded – undo
139 139
 	 * @param int $invoice_id Supplied ID.
140 140
 	 * @return WPInv_Invoice|WP_Error Invoice object if ID is valid, WP_Error otherwise.
141 141
 	 */
142
-	protected function get_post( $invoice_id ) {
142
+	protected function get_post($invoice_id) {
143 143
 		
144
-		$error     = new WP_Error( 'rest_invoice_invalid_id', __( 'Invalid item ID.', 'invoicing' ), array( 'status' => 404 ) );
144
+		$error = new WP_Error('rest_invoice_invalid_id', __('Invalid item ID.', 'invoicing'), array('status' => 404));
145 145
 
146 146
         // Ids start from 1
147
-        if ( (int) $invoice_id <= 0 ) {
147
+        if ((int) $invoice_id <= 0) {
148 148
 			return $error;
149 149
 		}
150 150
 
151
-		$invoice = wpinv_get_invoice( (int) $invoice_id );
152
-		if ( empty( $invoice ) || $this->post_type !== $invoice->post_type ) {
151
+		$invoice = wpinv_get_invoice((int) $invoice_id);
152
+		if (empty($invoice) || $this->post_type !== $invoice->post_type) {
153 153
 			return $error;
154 154
         }
155 155
 
@@ -165,18 +165,18 @@  discard block
 block discarded – undo
165 165
 	 * @param WP_REST_Request $request Full details about the request.
166 166
 	 * @return bool|WP_Error True if the request has read access for the invoice, WP_Error object otherwise.
167 167
 	 */
168
-	public function get_item_permissions_check( $request ) {
168
+	public function get_item_permissions_check($request) {
169 169
 
170 170
         // Retrieve the invoice object.
171
-        $invoice = $this->get_post( $request['id'] );
171
+        $invoice = $this->get_post($request['id']);
172 172
         
173 173
         // Ensure it is valid.
174
-		if ( is_wp_error( $invoice ) ) {
174
+		if (is_wp_error($invoice)) {
175 175
 			return $invoice;
176 176
 		}
177 177
 
178
-		if ( $invoice ) {
179
-			return $this->check_read_permission( $invoice );
178
+		if ($invoice) {
179
+			return $this->check_read_permission($invoice);
180 180
 		}
181 181
 
182 182
 		return true;
@@ -193,8 +193,8 @@  discard block
 block discarded – undo
193 193
 	 * @param WPInv_Invoice $invoice WPInv_Invoice object.
194 194
 	 * @return bool Whether the post can be read.
195 195
 	 */
196
-	public function check_read_permission( $invoice ) {
197
-		return wpinv_user_can_view_invoice( $invoice->ID );
196
+	public function check_read_permission($invoice) {
197
+		return wpinv_user_can_view_invoice($invoice->ID);
198 198
     }
199 199
     
200 200
     /**
@@ -205,19 +205,19 @@  discard block
 block discarded – undo
205 205
 	 * @param WP_REST_Request $request Full details about the request.
206 206
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
207 207
 	 */
208
-	public function get_item( $request ) {
208
+	public function get_item($request) {
209 209
 
210 210
         // Fetch the invoice.
211
-        $invoice = $this->get_post( $request['id'] );
211
+        $invoice = $this->get_post($request['id']);
212 212
         
213 213
         // Abort early if it does not exist
214
-		if ( is_wp_error( $invoice ) ) {
214
+		if (is_wp_error($invoice)) {
215 215
 			return $invoice;
216 216
 		}
217 217
 
218 218
 		// Prepare the response
219
-		$response = $this->prepare_item_for_response( $invoice, $request );
220
-		$response->link_header( 'alternate', esc_url( $invoice->get_view_url() ), array( 'type' => 'text/html' ) );
219
+		$response = $this->prepare_item_for_response($invoice, $request);
220
+		$response->link_header('alternate', esc_url($invoice->get_view_url()), array('type' => 'text/html'));
221 221
 
222 222
 		/**
223 223
 		 * Filters the responses for single invoice requests.
@@ -229,9 +229,9 @@  discard block
 block discarded – undo
229 229
 		 * @param WP_HTTP_Response $response Response.
230 230
 		 * @param WP_REST_Request  $request The request used.
231 231
 		 */
232
-        $response       = apply_filters( "wpinv_rest_get_invoice_response", $response, $request );
232
+        $response = apply_filters("wpinv_rest_get_invoice_response", $response, $request);
233 233
 
234
-        return rest_ensure_response( $response );
234
+        return rest_ensure_response($response);
235 235
 
236 236
     }
237 237
     
@@ -243,18 +243,18 @@  discard block
 block discarded – undo
243 243
 	 * @param WP_REST_Request $request Full details about the request.
244 244
 	 * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise.
245 245
 	 */
246
-	public function create_item_permissions_check( $request ) {
246
+	public function create_item_permissions_check($request) {
247 247
 	
248
-		if ( ! empty( $request['id'] ) ) {
249
-			return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
248
+		if (!empty($request['id'])) {
249
+			return new WP_Error('rest_invoice_exists', __('Cannot create existing item.', 'invoicing'), array('status' => 400));
250 250
 		}
251 251
 
252
-		$post_type = get_post_type_object( $this->post_type );
252
+		$post_type = get_post_type_object($this->post_type);
253 253
 
254
-		if ( ! current_user_can( $post_type->cap->create_posts ) && ! wpinv_current_user_can_manage_invoicing() ) {
254
+		if (!current_user_can($post_type->cap->create_posts) && !wpinv_current_user_can_manage_invoicing()) {
255 255
 			return new WP_Error( 
256 256
                 'rest_cannot_create',
257
-                __( 'Sorry, you are not allowed to create items as this user.', 'invoicing' ), 
257
+                __('Sorry, you are not allowed to create items as this user.', 'invoicing'), 
258 258
                 array( 
259 259
                     'status' => rest_authorization_required_code(),
260 260
                 )
@@ -272,32 +272,32 @@  discard block
 block discarded – undo
272 272
 	 * @param WP_REST_Request $request Full details about the request.
273 273
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
274 274
 	 */
275
-	public function create_item( $request ) {
275
+	public function create_item($request) {
276 276
 
277
-		if ( ! empty( $request['id'] ) ) {
278
-			return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
277
+		if (!empty($request['id'])) {
278
+			return new WP_Error('rest_invoice_exists', __('Cannot create existing item.', 'invoicing'), array('status' => 400));
279 279
 		}
280 280
 
281
-		$request->set_param( 'context', 'edit' );
281
+		$request->set_param('context', 'edit');
282 282
 
283 283
 		// Prepare the updated data.
284
-		$invoice_data = $this->prepare_item_for_database( $request );
284
+		$invoice_data = $this->prepare_item_for_database($request);
285 285
 
286
-		if ( is_wp_error( $invoice_data ) ) {
286
+		if (is_wp_error($invoice_data)) {
287 287
 			return $invoice_data;
288 288
 		}
289 289
 
290 290
 		// Try creating the invoice
291 291
 		$invoice_data['post_type']    = $this->post_type;
292
-		$invoice_data['private_note'] = __( 'Created via API.', 'invoicing' );
293
-        $invoice = wpinv_insert_invoice( $invoice_data, true );
292
+		$invoice_data['private_note'] = __('Created via API.', 'invoicing');
293
+        $invoice = wpinv_insert_invoice($invoice_data, true);
294 294
 
295
-		if ( is_wp_error( $invoice ) ) {
295
+		if (is_wp_error($invoice)) {
296 296
             return $invoice;
297 297
 		}
298 298
 
299 299
 		// Prepare the response
300
-		$response = $this->prepare_item_for_response( $invoice, $request );
300
+		$response = $this->prepare_item_for_response($invoice, $request);
301 301
 
302 302
 		/**
303 303
 		 * Fires after a single invoice is created or updated via the REST API.
@@ -308,7 +308,7 @@  discard block
 block discarded – undo
308 308
 		 * @param WP_REST_Request $request  Request object.
309 309
 		 * @param bool            $creating True when creating a post, false when updating.
310 310
 		 */
311
-		do_action( "wpinv_rest_insert_invoice", $invoice, $request, true );
311
+		do_action("wpinv_rest_insert_invoice", $invoice, $request, true);
312 312
 
313 313
 		/**
314 314
 		 * Filters the responses for creating single invoice requests.
@@ -320,9 +320,9 @@  discard block
 block discarded – undo
320 320
 		 * @param array           $invoice_data Invoice properties.
321 321
 		 * @param WP_REST_Request $request The request used.
322 322
 		 */
323
-        $response       = apply_filters( "wpinv_rest_create_invoice_response", $response, $request );
323
+        $response = apply_filters("wpinv_rest_create_invoice_response", $response, $request);
324 324
 
325
-        return rest_ensure_response( $response );
325
+        return rest_ensure_response($response);
326 326
 	}
327 327
 
328 328
 	/**
@@ -333,20 +333,20 @@  discard block
 block discarded – undo
333 333
 	 * @param WP_REST_Request $request Full details about the request.
334 334
 	 * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise.
335 335
 	 */
336
-	public function update_item_permissions_check( $request ) {
336
+	public function update_item_permissions_check($request) {
337 337
 
338 338
 		// Retrieve the invoice.
339
-		$invoice = $this->get_post( $request['id'] );
340
-		if ( is_wp_error( $invoice ) ) {
339
+		$invoice = $this->get_post($request['id']);
340
+		if (is_wp_error($invoice)) {
341 341
 			return $invoice;
342 342
 		}
343 343
 
344
-		$post_type = get_post_type_object( $this->post_type );
344
+		$post_type = get_post_type_object($this->post_type);
345 345
 
346
-		if ( ! current_user_can(  $post_type->cap->edit_post, $invoice->ID  ) ) {
346
+		if (!current_user_can($post_type->cap->edit_post, $invoice->ID)) {
347 347
 			return new WP_Error( 
348 348
                 'rest_cannot_edit', 
349
-                __( 'Sorry, you are not allowed to update this item.', 'invoicing' ), 
349
+                __('Sorry, you are not allowed to update this item.', 'invoicing'), 
350 350
                 array( 
351 351
                     'status' => rest_authorization_required_code(),
352 352
                 )
@@ -364,46 +364,46 @@  discard block
 block discarded – undo
364 364
 	 * @param WP_REST_Request $request Full details about the request.
365 365
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
366 366
 	 */
367
-	public function update_item( $request ) {
367
+	public function update_item($request) {
368 368
 		
369 369
 		// Ensure the invoice exists.
370
-        $valid_check = $this->get_post( $request['id'] );
370
+        $valid_check = $this->get_post($request['id']);
371 371
         
372 372
         // Abort early if it does not exist
373
-		if ( is_wp_error( $valid_check ) ) {
373
+		if (is_wp_error($valid_check)) {
374 374
 			return $valid_check;
375 375
 		}
376 376
 
377
-		$request->set_param( 'context', 'edit' );
377
+		$request->set_param('context', 'edit');
378 378
 
379 379
 		// Prepare the updated data.
380
-		$data_to_update = $this->prepare_item_for_database( $request );
380
+		$data_to_update = $this->prepare_item_for_database($request);
381 381
 
382
-		if ( is_wp_error( $data_to_update ) ) {
382
+		if (is_wp_error($data_to_update)) {
383 383
 			return $data_to_update;
384 384
 		}
385 385
 
386 386
 		// Abort if no invoice data is provided
387
-        if( empty( $data_to_update ) ) {
388
-            return new WP_Error( 'missing_data', __( 'An update request cannot be empty.', 'invoicing' ) );
387
+        if (empty($data_to_update)) {
388
+            return new WP_Error('missing_data', __('An update request cannot be empty.', 'invoicing'));
389 389
         }
390 390
 
391 391
 		// Include the invoice ID
392 392
 		$data_to_update['ID'] = $request['id'];
393 393
 
394 394
 		// Update the invoice
395
-		$updated_invoice = wpinv_update_invoice( $data_to_update, true );
395
+		$updated_invoice = wpinv_update_invoice($data_to_update, true);
396 396
 
397 397
 		// Incase the update operation failed...
398
-		if ( is_wp_error( $updated_invoice ) ) {
398
+		if (is_wp_error($updated_invoice)) {
399 399
 			return $updated_invoice;
400 400
 		}
401 401
 
402 402
 		// Prepare the response
403
-		$response = $this->prepare_item_for_response( $updated_invoice, $request );
403
+		$response = $this->prepare_item_for_response($updated_invoice, $request);
404 404
 
405 405
 		/** This action is documented in includes/class-wpinv-rest-invoice-controller.php */
406
-		do_action( "wpinv_rest_insert_invoice", $updated_invoice, $request, false );
406
+		do_action("wpinv_rest_insert_invoice", $updated_invoice, $request, false);
407 407
 
408 408
 		/**
409 409
 		 * Filters the responses for updating single invoice requests.
@@ -415,9 +415,9 @@  discard block
 block discarded – undo
415 415
 		 * @param array           $invoice_data Invoice properties.
416 416
 		 * @param WP_REST_Request $request The request used.
417 417
 		 */
418
-        $response       = apply_filters( "wpinv_rest_update_invoice_response", $response, $request );
418
+        $response = apply_filters("wpinv_rest_update_invoice_response", $response, $request);
419 419
 
420
-        return rest_ensure_response( $response );
420
+        return rest_ensure_response($response);
421 421
 	}
422 422
 
423 423
 	/**
@@ -428,22 +428,22 @@  discard block
 block discarded – undo
428 428
 	 * @param WP_REST_Request $request Full details about the request.
429 429
 	 * @return true|WP_Error True if the request has access to delete the invoice, WP_Error object otherwise.
430 430
 	 */
431
-	public function delete_item_permissions_check( $request ) {
431
+	public function delete_item_permissions_check($request) {
432 432
 
433 433
 		// Retrieve the invoice.
434
-		$invoice = $this->get_post( $request['id'] );
435
-		if ( is_wp_error( $invoice ) ) {
434
+		$invoice = $this->get_post($request['id']);
435
+		if (is_wp_error($invoice)) {
436 436
 			return $invoice;
437 437
 		}
438 438
 
439 439
 		// Ensure the current user can delete invoices
440
-		if ( wpinv_current_user_can_manage_invoicing() ||  current_user_can( 'delete_invoices', $request['id'] ) ) {
440
+		if (wpinv_current_user_can_manage_invoicing() || current_user_can('delete_invoices', $request['id'])) {
441 441
 			return true;
442 442
 		}
443 443
 
444 444
 		return new WP_Error( 
445 445
 			'rest_cannot_delete', 
446
-			__( 'Sorry, you are not allowed to delete this item.', 'invoicing' ), 
446
+			__('Sorry, you are not allowed to delete this item.', 'invoicing'), 
447 447
 			array( 
448 448
 				'status' => rest_authorization_required_code(),
449 449
 			)
@@ -458,31 +458,31 @@  discard block
 block discarded – undo
458 458
 	 * @param WP_REST_Request $request Full details about the request.
459 459
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
460 460
 	 */
461
-	public function delete_item( $request ) {
461
+	public function delete_item($request) {
462 462
 		
463 463
 		// Retrieve the invoice.
464
-		$invoice = $this->get_post( $request['id'] );
465
-		if ( is_wp_error( $invoice ) ) {
464
+		$invoice = $this->get_post($request['id']);
465
+		if (is_wp_error($invoice)) {
466 466
 			return $invoice;
467 467
 		}
468 468
 
469
-		$request->set_param( 'context', 'edit' );
469
+		$request->set_param('context', 'edit');
470 470
 
471 471
 		// Prepare the invoice id
472
-		$id    = $invoice->ID;
472
+		$id = $invoice->ID;
473 473
 
474 474
 		// Prepare the response
475
-		$response = $this->prepare_item_for_response( $invoice, $request );
475
+		$response = $this->prepare_item_for_response($invoice, $request);
476 476
 
477 477
 		// Check if the user wants to bypass the trash...
478 478
 		$force_delete = (bool) $request['force'];
479 479
 
480 480
 		// Try deleting the invoice.
481
-		$deleted = wp_delete_post( $id, $force_delete );
481
+		$deleted = wp_delete_post($id, $force_delete);
482 482
 
483 483
 		// Abort early if we can't delete the invoice.
484
-		if ( ! $deleted ) {
485
-			return new WP_Error( 'rest_cannot_delete', __( 'The item cannot be deleted.', 'invoicing' ), array( 'status' => 500 ) );
484
+		if (!$deleted) {
485
+			return new WP_Error('rest_cannot_delete', __('The item cannot be deleted.', 'invoicing'), array('status' => 500));
486 486
 		}
487 487
 
488 488
 		/**
@@ -494,7 +494,7 @@  discard block
 block discarded – undo
494 494
 		 * @param WPInv_Invoice    $invoice  The deleted or trashed invoice.
495 495
 		 * @param WP_REST_Request  $request  The request sent to the API.
496 496
 		 */
497
-		do_action( "wpinv_rest_delete_invoice", $invoice, $request );
497
+		do_action("wpinv_rest_delete_invoice", $invoice, $request);
498 498
 
499 499
 		return $response;
500 500
 
@@ -510,29 +510,29 @@  discard block
 block discarded – undo
510 510
 	 */
511 511
 	public function get_collection_params() {
512 512
         
513
-        $query_params               = array(
513
+        $query_params = array(
514 514
 
515 515
             // item status.
516 516
             'status'                => array(
517 517
                 'default'           => $this->get_post_statuses(),
518
-                'description'       => __( 'Limit result set to items assigned one or more statuses.', 'invoicing' ),
518
+                'description'       => __('Limit result set to items assigned one or more statuses.', 'invoicing'),
519 519
                 'type'              => 'array',
520 520
                 'items'             => array(
521 521
                     'enum'          => $this->get_post_statuses(),
522 522
                     'type'          => 'string',
523 523
                 ),
524
-                'sanitize_callback' => array( $this, 'sanitize_post_statuses' ),
524
+                'sanitize_callback' => array($this, 'sanitize_post_statuses'),
525 525
             ),
526 526
 
527 527
             // User.
528 528
             'user'                  => array(
529
-				'description'       => __( 'Limit result set to items for a specif user. Accepts a user ID, or comma-separated list of IDs', 'invoicing' ),
529
+				'description'       => __('Limit result set to items for a specif user. Accepts a user ID, or comma-separated list of IDs', 'invoicing'),
530 530
 				'type'              => 'string',
531 531
 			),
532 532
 
533 533
 			// Exclude certain users
534 534
             'exclude_users'  	    => array(
535
-                'description' 		=> __( 'Exclude items from specific users.', 'invoicing' ),
535
+                'description' 		=> __('Exclude items from specific users.', 'invoicing'),
536 536
                 'type'        		=> 'array',
537 537
                 'items'       		=> array(
538 538
                     'type' => 'integer',
@@ -542,62 +542,62 @@  discard block
 block discarded – undo
542 542
 			
543 543
 			// Items before.
544 544
             'before_date'           => array(
545
-				'description'       => __( 'Limit result set to items created before a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
545
+				'description'       => __('Limit result set to items created before a specific date. Accepts strtotime()-compatible string.', 'invoicing'),
546 546
 				'type'              => 'string',
547 547
 			),
548 548
 
549 549
             'meta_key'           => array(
550
-				'description'       => __( 'Filter items by custom field key.', 'invoicing' ),
550
+				'description'       => __('Filter items by custom field key.', 'invoicing'),
551 551
 				'type'              => 'string',
552 552
 			),
553 553
 
554 554
             'meta_compare_key'           => array(
555
-				'description'       => __( 'Comparison operator to test the `meta_key`.', 'invoicing' ),
555
+				'description'       => __('Comparison operator to test the `meta_key`.', 'invoicing'),
556 556
 				'type'              => 'string',
557 557
 				'default'              => '=',
558
-				'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
558
+				'enum'        		=> array_map('trim', explode(',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE')),
559 559
 			),
560 560
 
561 561
             'meta_value'           => array(
562
-				'description'       => __( 'Filter items by custom field value.', 'invoicing' ),
562
+				'description'       => __('Filter items by custom field value.', 'invoicing'),
563 563
 				'type'              => 'string',
564 564
 			),
565 565
 
566 566
             'meta_compare'           => array(
567
-				'description'       => __( 'Comparison operator to test the `meta_value`.', 'invoicing' ),
567
+				'description'       => __('Comparison operator to test the `meta_value`.', 'invoicing'),
568 568
 				'type'              => 'string',
569 569
 				'default'              => '=',
570
-				'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
570
+				'enum'        		=> array_map('trim', explode(',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE')),
571 571
 			),
572 572
 
573 573
 			'meta_value_num'           => array(
574
-				'description'       => __( 'Filter items by a numeric custom field value.', 'invoicing' ),
574
+				'description'       => __('Filter items by a numeric custom field value.', 'invoicing'),
575 575
 				'type'              => 'integer',
576 576
 			),
577 577
 
578 578
 			// items after.
579 579
             'after_date'            => array(
580
-				'description'       => __( 'Limit result set to items created after a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
580
+				'description'       => __('Limit result set to items created after a specific date. Accepts strtotime()-compatible string.', 'invoicing'),
581 581
 				'type'              => 'string',
582 582
             ),
583 583
             
584 584
             // Number of results per page
585 585
             'limit'                 => array(
586
-				'description'       => __( 'Number of items to fetch.', 'invoicing' ),
586
+				'description'       => __('Number of items to fetch.', 'invoicing'),
587 587
 				'type'              => 'integer',
588
-				'default'           => (int) get_option( 'posts_per_page' ),
588
+				'default'           => (int) get_option('posts_per_page'),
589 589
             ),
590 590
 
591 591
             // Pagination
592 592
             'page'     => array(
593
-				'description'       => __( 'Current page to fetch.', 'invoicing' ),
593
+				'description'       => __('Current page to fetch.', 'invoicing'),
594 594
 				'type'              => 'integer',
595 595
 				'default'           => 1,
596 596
             ),
597 597
 
598 598
             // limit to certain items
599 599
             'include'  => array(
600
-                'description' => __( 'Limit result set to specific IDs.', 'invoicing' ),
600
+                'description' => __('Limit result set to specific IDs.', 'invoicing'),
601 601
                 'type'        => 'array',
602 602
                 'items'       => array(
603 603
                     'type' => 'integer',
@@ -607,7 +607,7 @@  discard block
 block discarded – undo
607 607
 			
608 608
 			// Exclude certain items
609 609
             'exclude'  => array(
610
-                'description' => __( 'Ensure result set excludes specific IDs.', 'invoicing' ),
610
+                'description' => __('Ensure result set excludes specific IDs.', 'invoicing'),
611 611
                 'type'        => 'array',
612 612
                 'items'       => array(
613 613
                     'type' => 'integer',
@@ -617,7 +617,7 @@  discard block
 block discarded – undo
617 617
 
618 618
             // Order items by
619 619
             'orderby'  		  => array(
620
-                'description' => __( 'Sort retrieved items by parameter.', 'invoicing' ),
620
+                'description' => __('Sort retrieved items by parameter.', 'invoicing'),
621 621
                 'type'        => 'string',
622 622
                 'default'     => 'date',
623 623
                 'enum'        => array(
@@ -632,10 +632,10 @@  discard block
 block discarded – undo
632 632
 
633 633
             // How to order
634 634
             'order'    => array(
635
-                'description' => __( 'Designates ascending or descending order of ítems.', 'invoicing' ),
635
+                'description' => __('Designates ascending or descending order of ítems.', 'invoicing'),
636 636
                 'type'        => 'string',
637 637
                 'default'     => 'DESC',
638
-                'enum'        => array( 'ASC', 'DESC' ),
638
+                'enum'        => array('ASC', 'DESC'),
639 639
             ),
640 640
         );
641 641
 
@@ -647,7 +647,7 @@  discard block
 block discarded – undo
647 647
 		 *
648 648
 		 * @param array        $query_params JSON Schema-formatted collection parameters.
649 649
 		 */
650
-		return apply_filters( "wpinv_rest_invoices_collection_params", $query_params );
650
+		return apply_filters("wpinv_rest_invoices_collection_params", $query_params);
651 651
 	}
652 652
 	
653 653
 	/**
@@ -657,7 +657,7 @@  discard block
 block discarded – undo
657 657
 	 * @param WP_REST_Request $request Full details about the request.
658 658
 	 * @return array Request collection parameters.
659 659
 	 */
660
-	public function get_request_collection_params( $request ) {
660
+	public function get_request_collection_params($request) {
661 661
 		
662 662
 		// Retrieve the list of registered invoice query parameters.
663 663
 		$registered = $this->get_collection_params();
@@ -674,7 +674,7 @@  discard block
 block discarded – undo
674 674
             'meta_compare'          => '=',
675 675
 			'meta_value_num'        => null,
676 676
             'after_date'            => null,
677
-            'limit'                 => (int) get_option( 'posts_per_page' ),
677
+            'limit'                 => (int) get_option('posts_per_page'),
678 678
 			'page'     				=> 1,
679 679
 			'include'				=> array(),
680 680
             'exclude'  				=> array(),
@@ -683,9 +683,9 @@  discard block
 block discarded – undo
683 683
 		);
684 684
 
685 685
 		// Add any params from the requests.
686
-		foreach ( array_keys( $registered ) as $key ) {
687
-            if ( isset( $request[ $key] ) ) {
688
-                $args[ $key ] = $request[ $key];
686
+		foreach (array_keys($registered) as $key) {
687
+            if (isset($request[$key])) {
688
+                $args[$key] = $request[$key];
689 689
             }
690 690
         }
691 691
 		
@@ -698,7 +698,7 @@  discard block
 block discarded – undo
698 698
 		 * @param array           $args    Request query args.
699 699
 		 * @param WP_REST_Request $request Full details about the request.
700 700
 		 */
701
-		return apply_filters( "wpinv_rest_invoices_collection_request_params", $args, $request );
701
+		return apply_filters("wpinv_rest_invoices_collection_request_params", $args, $request);
702 702
 	}
703 703
 	
704 704
 	/**
@@ -709,7 +709,7 @@  discard block
 block discarded – undo
709 709
 	 * @param WP_REST_Request $request Full details about the request.
710 710
 	 * @return array WP_Query parameters.
711 711
 	 */
712
-	public function get_collection_wp_query_params( $args, $request ) {
712
+	public function get_collection_wp_query_params($args, $request) {
713 713
 		
714 714
 		// Prepare the parameters.
715 715
 		$wp_query_args = array(
@@ -726,35 +726,35 @@  discard block
 block discarded – undo
726 726
 			'meta_value_num'   => $args['meta_value_num'],
727 727
 			'post__in'         => $args['include'],
728 728
 			'post__in'         => $args['exclude'],
729
-			'date_query'       => array( array() ),
729
+			'date_query'       => array(array()),
730 730
 			'fields'           => 'ids',
731 731
 			'orderby'          => $args['orderby'],
732 732
 			'order'            => $args['order'],
733 733
 		);
734 734
 
735 735
 		// Only admins can view other user's invoices.
736
-		if ( ! wpinv_current_user_can_manage_invoicing() ) {
736
+		if (!wpinv_current_user_can_manage_invoicing()) {
737 737
 			$wp_query_args['author'] = get_current_user_id();
738 738
 		}
739 739
 
740 740
 		// No date specific params provided.
741
-		if ( empty( $args['before_date'] ) && empty( $args['after_date'] ) ) {
742
-			unset( $wp_query_args['date_query'] );
741
+		if (empty($args['before_date']) && empty($args['after_date'])) {
742
+			unset($wp_query_args['date_query']);
743 743
 		}
744 744
 
745
-		if ( ! empty( $args['before_date'] ) ) {
745
+		if (!empty($args['before_date'])) {
746 746
 			$wp_query_args['date_query'][0]['before'] = $args['before_date'];
747 747
 		}
748 748
 
749
-		if ( ! empty( $args['after_date'] ) ) {
749
+		if (!empty($args['after_date'])) {
750 750
 			$wp_query_args['date_query'][0]['after'] = $args['after_date'];
751 751
 		}
752 752
 
753 753
 		// Remove empty variables.
754
-		$wp_query_args = array_filter( $wp_query_args );
754
+		$wp_query_args = array_filter($wp_query_args);
755 755
 
756 756
 		// This can be zero.
757
-		if ( ! is_null( $args['meta_value_num'] ) ) {
757
+		if (!is_null($args['meta_value_num'])) {
758 758
 			$wp_query_args['meta_value_num'] = $args['meta_value_num'];
759 759
 		}
760 760
 		
@@ -768,7 +768,7 @@  discard block
 block discarded – undo
768 768
 		 * @param array           $wp_query_args Generated WP_Query args args.
769 769
 		 * @param WP_REST_Request $request       Full details about the request.
770 770
 		 */
771
-		return apply_filters( "wpinv_rest_invoices_collection_wp_query_params", $wp_query_args, $args, $request );
771
+		return apply_filters("wpinv_rest_invoices_collection_wp_query_params", $wp_query_args, $args, $request);
772 772
     }
773 773
     
774 774
     /**
@@ -779,7 +779,7 @@  discard block
 block discarded – undo
779 779
 	 * @param object|string $post_type Post type name or object.
780 780
 	 * @return bool Whether the post type is allowed in REST.
781 781
 	 */
782
-	protected function check_is_post_type_allowed( $post_type ) {
782
+	protected function check_is_post_type_allowed($post_type) {
783 783
 		return true;
784 784
 	}
785 785
 
@@ -791,49 +791,49 @@  discard block
 block discarded – undo
791 791
 	 * @param WP_REST_Request $request Request object.
792 792
 	 * @return array|WP_Error Invoice Properties or WP_Error.
793 793
 	 */
794
-	protected function prepare_item_for_database( $request ) {
794
+	protected function prepare_item_for_database($request) {
795 795
 		$prepared_invoice = new stdClass();
796 796
 
797 797
 		// Post ID.
798
-		if ( isset( $request['id'] ) ) {
799
-			$existing_invoice = $this->get_post( $request['id'] );
800
-			if ( is_wp_error( $existing_invoice ) ) {
798
+		if (isset($request['id'])) {
799
+			$existing_invoice = $this->get_post($request['id']);
800
+			if (is_wp_error($existing_invoice)) {
801 801
 				return $existing_invoice;
802 802
 			}
803 803
 
804
-			$prepared_invoice->ID 		  = $existing_invoice->ID;
804
+			$prepared_invoice->ID = $existing_invoice->ID;
805 805
 			$prepared_invoice->invoice_id = $existing_invoice->ID;
806 806
 		}
807 807
 
808 808
 		$schema = $this->get_item_schema();
809 809
 
810 810
 		// Invoice owner.
811
-		if ( ! empty( $schema['properties']['user_id'] ) && isset( $request['user_id'] ) ) {
811
+		if (!empty($schema['properties']['user_id']) && isset($request['user_id'])) {
812 812
 			$prepared_invoice->user_id = (int) $request['user_id'];
813 813
 		}
814 814
 
815 815
 		// Cart details.
816
-		if ( ! empty( $schema['properties']['cart_details'] ) && isset( $request['cart_details'] ) ) {
816
+		if (!empty($schema['properties']['cart_details']) && isset($request['cart_details'])) {
817 817
 			$prepared_invoice->cart_details = (array) $request['cart_details'];
818 818
 		}
819 819
 
820 820
 		// Invoice status.
821
-		if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) ) {
821
+		if (!empty($schema['properties']['status']) && isset($request['status'])) {
822 822
 
823
-			if ( in_array( $request['status'], $this->get_post_statuses(), true ) ) {
823
+			if (in_array($request['status'], $this->get_post_statuses(), true)) {
824 824
 				$prepared_invoice->status = $request['status'];
825 825
 			}
826 826
 
827 827
 		}
828 828
 
829 829
 		// User info
830
-		if ( ! empty( $schema['properties']['user_info'] ) && isset( $request['user_info'] ) ) {
830
+		if (!empty($schema['properties']['user_info']) && isset($request['user_info'])) {
831 831
 			$prepared_invoice->user_info = array();
832 832
 			$user_info = (array) $request['user_info'];
833 833
 
834
-			foreach( $user_info as $prop => $value ) {
834
+			foreach ($user_info as $prop => $value) {
835 835
 
836
-				if ( ! empty( $schema['properties']['user_info']['properties'][$prop] ) ) {
836
+				if (!empty($schema['properties']['user_info']['properties'][$prop])) {
837 837
 
838 838
 					$prepared_invoice->user_info[$prop] = $value;
839 839
 		
@@ -844,59 +844,59 @@  discard block
 block discarded – undo
844 844
 		}
845 845
 
846 846
 		// IP
847
-		if ( ! empty( $schema['properties']['ip'] ) && isset( $request['ip'] ) ) {
847
+		if (!empty($schema['properties']['ip']) && isset($request['ip'])) {
848 848
 			$prepared_invoice->ip = $request['ip'];
849 849
 		}
850 850
 
851 851
 		// Payment details
852 852
 		$prepared_invoice->payment_details = array();
853 853
 
854
-		if ( ! empty( $schema['properties']['gateway'] ) && isset( $request['gateway'] ) ) {
854
+		if (!empty($schema['properties']['gateway']) && isset($request['gateway'])) {
855 855
 			$prepared_invoice->payment_details['gateway'] = $request['gateway'];
856 856
 		}
857 857
 
858
-		if ( ! empty( $schema['properties']['gateway_title'] ) && isset( $request['gateway_title'] ) ) {
858
+		if (!empty($schema['properties']['gateway_title']) && isset($request['gateway_title'])) {
859 859
 			$prepared_invoice->payment_details['gateway_title'] = $request['gateway_title'];
860 860
 		}
861 861
 
862
-		if ( ! empty( $schema['properties']['currency'] ) && isset( $request['currency'] ) ) {
862
+		if (!empty($schema['properties']['currency']) && isset($request['currency'])) {
863 863
 			$prepared_invoice->payment_details['currency'] = $request['currency'];
864 864
 		}
865 865
 
866
-		if ( ! empty( $schema['properties']['transaction_id'] ) && isset( $request['transaction_id'] ) ) {
866
+		if (!empty($schema['properties']['transaction_id']) && isset($request['transaction_id'])) {
867 867
 			$prepared_invoice->payment_details['transaction_id'] = $request['transaction_id'];
868 868
 		}
869 869
 
870 870
 		// Dates
871
-		if ( ! empty( $schema['properties']['date'] ) && isset( $request['date'] ) ) {
872
-			$post_date = rest_get_date_with_gmt( $request['date'] );
871
+		if (!empty($schema['properties']['date']) && isset($request['date'])) {
872
+			$post_date = rest_get_date_with_gmt($request['date']);
873 873
 
874
-			if ( ! empty( $post_date ) ) {
874
+			if (!empty($post_date)) {
875 875
 				$prepared_invoice->post_date = $post_date[0];
876 876
 			}
877 877
 			
878 878
 		}
879 879
 
880
-		if ( ! empty( $schema['properties']['due_date'] ) && isset( $request['due_date'] ) ) {
881
-			$due_date = rest_get_date_with_gmt( $request['due_date'] );
880
+		if (!empty($schema['properties']['due_date']) && isset($request['due_date'])) {
881
+			$due_date = rest_get_date_with_gmt($request['due_date']);
882 882
 
883
-			if ( ! empty( $due_date ) ) {
883
+			if (!empty($due_date)) {
884 884
 				$prepared_invoice->due_date = $due_date[0];
885 885
 			}
886 886
 
887 887
 		}
888 888
 
889
-		if ( ! empty( $schema['properties']['valid_until'] ) && isset( $request['valid_until'] ) ) {
889
+		if (!empty($schema['properties']['valid_until']) && isset($request['valid_until'])) {
890 890
 
891
-			if ( ! empty( $request['valid_until'] ) ) {
892
-				$prepared_invoice->valid_until = gmdate( 'Y-m-d', strtotime( $request['valid_until'] ) );
891
+			if (!empty($request['valid_until'])) {
892
+				$prepared_invoice->valid_until = gmdate('Y-m-d', strtotime($request['valid_until']));
893 893
 			} else {
894 894
 				$prepared_invoice->valid_until = '';
895 895
 			}
896 896
 
897 897
 		}
898 898
 
899
-		$invoice_data = (array) wp_unslash( $prepared_invoice );
899
+		$invoice_data = (array) wp_unslash($prepared_invoice);
900 900
 
901 901
 		/**
902 902
 		 * Filters an invoice before it is inserted via the REST API.
@@ -906,7 +906,7 @@  discard block
 block discarded – undo
906 906
 		 * @param array        $invoice_data An array of invoice data
907 907
 		 * @param WP_REST_Request $request       Request object.
908 908
 		 */
909
-		return apply_filters( "wpinv_rest_pre_insert_invoice", $invoice_data, $request );
909
+		return apply_filters("wpinv_rest_pre_insert_invoice", $invoice_data, $request);
910 910
 
911 911
 	}
912 912
 
@@ -919,20 +919,20 @@  discard block
 block discarded – undo
919 919
 	 * @param WP_REST_Request $request Request object.
920 920
 	 * @return WP_REST_Response Response object.
921 921
 	 */
922
-	public function prepare_item_for_response( $invoice, $request ) {
922
+	public function prepare_item_for_response($invoice, $request) {
923 923
 
924
-		$GLOBALS['post'] = get_post( $invoice->ID );
924
+		$GLOBALS['post'] = get_post($invoice->ID);
925 925
 
926
-		setup_postdata( $invoice->ID );
926
+		setup_postdata($invoice->ID);
927 927
 
928 928
 		// Fetch the fields to include in this response.
929
-		$fields = $this->get_fields_for_response( $request );
929
+		$fields = $this->get_fields_for_response($request);
930 930
 
931 931
 		// Base fields for every invoice.
932 932
 		$data = array();
933 933
 
934 934
 		// Set up ID
935
-		if ( rest_is_field_included( 'id', $fields ) ) {
935
+		if (rest_is_field_included('id', $fields)) {
936 936
 			$data['id'] = $invoice->ID;
937 937
 		}
938 938
 
@@ -947,79 +947,79 @@  discard block
 block discarded – undo
947 947
 			'status', 'status_nicename', 'post_type'
948 948
 		);
949 949
 
950
-		foreach( $invoice_properties as $property ) {
950
+		foreach ($invoice_properties as $property) {
951 951
 
952
-			if ( rest_is_field_included( $property, $fields ) ) {
953
-				$data[$property] = $invoice->get( $property );
952
+			if (rest_is_field_included($property, $fields)) {
953
+				$data[$property] = $invoice->get($property);
954 954
 			}
955 955
 
956 956
 		}
957 957
 
958 958
 		// Valid until
959
-		if ( rest_is_field_included( 'valid_until', $fields ) && $this->post_type === 'wpi_quote' ) {
960
-			$data['valid_until'] = get_post_meta( $invoice->ID, 'wpinv_quote_valid_until', true );
959
+		if (rest_is_field_included('valid_until', $fields) && $this->post_type === 'wpi_quote') {
960
+			$data['valid_until'] = get_post_meta($invoice->ID, 'wpinv_quote_valid_until', true);
961 961
 		}
962 962
 
963 963
 		// Cart details
964
-		if ( rest_is_field_included( 'cart_details', $fields ) ) {
965
-			$data['cart_details'] = $invoice->get( 'cart_details' );
964
+		if (rest_is_field_included('cart_details', $fields)) {
965
+			$data['cart_details'] = $invoice->get('cart_details');
966 966
 		}
967 967
 
968 968
 		//Dates
969
-		$invoice_properties = array( 'date', 'due_date', 'completed_date' );
969
+		$invoice_properties = array('date', 'due_date', 'completed_date');
970 970
 
971
-		foreach( $invoice_properties as $property ) {
971
+		foreach ($invoice_properties as $property) {
972 972
 
973
-			if ( rest_is_field_included( $property, $fields ) ) {
974
-				$data[$property] = $this->prepare_date_response( '0000-00-00 00:00:00', $invoice->get( $property ) );
973
+			if (rest_is_field_included($property, $fields)) {
974
+				$data[$property] = $this->prepare_date_response('0000-00-00 00:00:00', $invoice->get($property));
975 975
 			}
976 976
 
977 977
 		}
978 978
 
979 979
 		// User id
980
-		if ( rest_is_field_included( 'user_id', $fields ) ) {
981
-			$data['user_id'] = (int) $invoice->get( 'user_id' );
980
+		if (rest_is_field_included('user_id', $fields)) {
981
+			$data['user_id'] = (int) $invoice->get('user_id');
982 982
 		}
983 983
 
984 984
 		// User info
985
-		$user_info = array( 'first_name', 'last_name', 'company', 'vat_number', 'vat_rate', 'address', 'city', 'country', 'state', 'zip', 'phone' );
985
+		$user_info = array('first_name', 'last_name', 'company', 'vat_number', 'vat_rate', 'address', 'city', 'country', 'state', 'zip', 'phone');
986 986
 
987
-		foreach( $user_info as $property ) {
987
+		foreach ($user_info as $property) {
988 988
 
989
-			if ( rest_is_field_included( "user_info.$property", $fields ) ) {
990
-				$data['user_info'][$property] = $invoice->get( $property );
989
+			if (rest_is_field_included("user_info.$property", $fields)) {
990
+				$data['user_info'][$property] = $invoice->get($property);
991 991
 			}
992 992
 
993 993
 		}
994 994
 
995 995
 		// Slug
996
-		if ( rest_is_field_included( 'slug', $fields ) ) {
997
-			$data['slug'] = $invoice->get( 'post_name' );
996
+		if (rest_is_field_included('slug', $fields)) {
997
+			$data['slug'] = $invoice->get('post_name');
998 998
 		}
999 999
 
1000 1000
 		// View invoice link
1001
-		if ( rest_is_field_included( 'link', $fields ) ) {
1002
-			$data['link'] = esc_url( $invoice->get_view_url() );
1001
+		if (rest_is_field_included('link', $fields)) {
1002
+			$data['link'] = esc_url($invoice->get_view_url());
1003 1003
 		}
1004 1004
 
1005 1005
 
1006
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
1007
-		$data    = $this->add_additional_fields_to_object( $data, $request );
1008
-		$data    = $this->filter_response_by_context( $data, $context );
1006
+		$context = !empty($request['context']) ? $request['context'] : 'view';
1007
+		$data    = $this->add_additional_fields_to_object($data, $request);
1008
+		$data    = $this->filter_response_by_context($data, $context);
1009 1009
 
1010 1010
 		// Wrap the data in a response object.
1011
-		$response = rest_ensure_response( $data );
1011
+		$response = rest_ensure_response($data);
1012 1012
 
1013
-		$links = $this->prepare_links( $invoice );
1014
-		$response->add_links( $links );
1013
+		$links = $this->prepare_links($invoice);
1014
+		$response->add_links($links);
1015 1015
 
1016
-		if ( ! empty( $links['self']['href'] ) ) {
1017
-			$actions = $this->get_available_actions( $invoice, $request );
1016
+		if (!empty($links['self']['href'])) {
1017
+			$actions = $this->get_available_actions($invoice, $request);
1018 1018
 
1019 1019
 			$self = $links['self']['href'];
1020 1020
 
1021
-			foreach ( $actions as $rel ) {
1022
-				$response->add_link( $rel, $self );
1021
+			foreach ($actions as $rel) {
1022
+				$response->add_link($rel, $self);
1023 1023
 			}
1024 1024
 		}
1025 1025
 
@@ -1032,7 +1032,7 @@  discard block
 block discarded – undo
1032 1032
 		 * @param WPInv_Invoice    $invoice  The invoice object.
1033 1033
 		 * @param WP_REST_Request  $request  Request object.
1034 1034
 		 */
1035
-		return apply_filters( "wpinv_rest_prepare_invoice", $response, $invoice, $request );
1035
+		return apply_filters("wpinv_rest_prepare_invoice", $response, $invoice, $request);
1036 1036
 	}
1037 1037
 
1038 1038
 	/**
@@ -1045,57 +1045,57 @@  discard block
 block discarded – undo
1045 1045
 	 * @param WP_REST_Request $request Full details about the request.
1046 1046
 	 * @return array Fields to be included in the response.
1047 1047
 	 */
1048
-	public function get_fields_for_response( $request ) {
1048
+	public function get_fields_for_response($request) {
1049 1049
 		$schema     = $this->get_item_schema();
1050
-		$properties = isset( $schema['properties'] ) ? $schema['properties'] : array();
1050
+		$properties = isset($schema['properties']) ? $schema['properties'] : array();
1051 1051
 
1052 1052
 		$additional_fields = $this->get_additional_fields();
1053
-		foreach ( $additional_fields as $field_name => $field_options ) {
1053
+		foreach ($additional_fields as $field_name => $field_options) {
1054 1054
 			// For back-compat, include any field with an empty schema
1055 1055
 			// because it won't be present in $this->get_item_schema().
1056
-			if ( is_null( $field_options['schema'] ) ) {
1057
-				$properties[ $field_name ] = $field_options;
1056
+			if (is_null($field_options['schema'])) {
1057
+				$properties[$field_name] = $field_options;
1058 1058
 			}
1059 1059
 		}
1060 1060
 
1061 1061
 		// Exclude fields that specify a different context than the request context.
1062 1062
 		$context = $request['context'];
1063
-		if ( $context ) {
1064
-			foreach ( $properties as $name => $options ) {
1065
-				if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) {
1066
-					unset( $properties[ $name ] );
1063
+		if ($context) {
1064
+			foreach ($properties as $name => $options) {
1065
+				if (!empty($options['context']) && !in_array($context, $options['context'], true)) {
1066
+					unset($properties[$name]);
1067 1067
 				}
1068 1068
 			}
1069 1069
 		}
1070 1070
 
1071
-		$fields = array_keys( $properties );
1071
+		$fields = array_keys($properties);
1072 1072
 
1073
-		if ( ! isset( $request['_fields'] ) ) {
1073
+		if (!isset($request['_fields'])) {
1074 1074
 			return $fields;
1075 1075
 		}
1076
-		$requested_fields = wpinv_parse_list( $request['_fields'] );
1077
-		if ( 0 === count( $requested_fields ) ) {
1076
+		$requested_fields = wpinv_parse_list($request['_fields']);
1077
+		if (0 === count($requested_fields)) {
1078 1078
 			return $fields;
1079 1079
 		}
1080 1080
 		// Trim off outside whitespace from the comma delimited list.
1081
-		$requested_fields = array_map( 'trim', $requested_fields );
1081
+		$requested_fields = array_map('trim', $requested_fields);
1082 1082
 		// Always persist 'id', because it can be needed for add_additional_fields_to_object().
1083
-		if ( in_array( 'id', $fields, true ) ) {
1083
+		if (in_array('id', $fields, true)) {
1084 1084
 			$requested_fields[] = 'id';
1085 1085
 		}
1086 1086
 		// Return the list of all requested fields which appear in the schema.
1087 1087
 		return array_reduce(
1088 1088
 			$requested_fields,
1089
-			function( $response_fields, $field ) use ( $fields ) {
1090
-				if ( in_array( $field, $fields, true ) ) {
1089
+			function($response_fields, $field) use ($fields) {
1090
+				if (in_array($field, $fields, true)) {
1091 1091
 					$response_fields[] = $field;
1092 1092
 					return $response_fields;
1093 1093
 				}
1094 1094
 				// Check for nested fields if $field is not a direct match.
1095
-				$nested_fields = explode( '.', $field );
1095
+				$nested_fields = explode('.', $field);
1096 1096
 				// A nested field is included so long as its top-level property is
1097 1097
 				// present in the schema.
1098
-				if ( in_array( $nested_fields[0], $fields, true ) ) {
1098
+				if (in_array($nested_fields[0], $fields, true)) {
1099 1099
 					$response_fields[] = $field;
1100 1100
 				}
1101 1101
 				return $response_fields;
@@ -1114,8 +1114,8 @@  discard block
 block discarded – undo
1114 1114
 	public function get_item_schema() {
1115 1115
 
1116 1116
 		// Maybe retrieve the schema from cache.
1117
-		if ( $this->schema ) {
1118
-			return $this->add_additional_fields_schema( $this->schema );
1117
+		if ($this->schema) {
1118
+			return $this->add_additional_fields_schema($this->schema);
1119 1119
 		}
1120 1120
 
1121 1121
 		$schema = array(
@@ -1127,266 +1127,266 @@  discard block
 block discarded – undo
1127 1127
 			'properties' 		  => array(
1128 1128
 
1129 1129
 				'title'			  => array(
1130
-					'description' => __( 'The title for the invoice.', 'invoicing' ),
1130
+					'description' => __('The title for the invoice.', 'invoicing'),
1131 1131
 					'type'        => 'string',
1132
-					'context'     => array( 'view', 'edit', 'embed' ),
1132
+					'context'     => array('view', 'edit', 'embed'),
1133 1133
 					'readonly'    => true,
1134 1134
 				),
1135 1135
 
1136 1136
 				'user_id'		  => array(
1137
-					'description' => __( 'The ID of the owner of the invoice.', 'invoicing' ),
1137
+					'description' => __('The ID of the owner of the invoice.', 'invoicing'),
1138 1138
 					'type'        => 'integer',
1139
-					'context'     => array( 'view', 'edit', 'embed' ),
1139
+					'context'     => array('view', 'edit', 'embed'),
1140 1140
 				),
1141 1141
 
1142 1142
 				'email'		  	  => array(
1143
-					'description' => __( 'The email of the owner of the invoice.', 'invoicing' ),
1143
+					'description' => __('The email of the owner of the invoice.', 'invoicing'),
1144 1144
 					'type'        => 'string',
1145
-					'context'     => array( 'view', 'edit', 'embed' ),
1145
+					'context'     => array('view', 'edit', 'embed'),
1146 1146
 					'readonly'    => true,
1147 1147
 				),
1148 1148
 
1149 1149
 				'ip'			  => array(
1150
-					'description' => __( 'The IP of the owner of the invoice.', 'invoicing' ),
1150
+					'description' => __('The IP of the owner of the invoice.', 'invoicing'),
1151 1151
 					'type'        => 'string',
1152
-					'context'     => array( 'view', 'edit', 'embed' ),
1152
+					'context'     => array('view', 'edit', 'embed'),
1153 1153
 				),
1154 1154
 
1155 1155
 				'user_info'       => array(
1156
-					'description' => __( 'Information about the owner of the invoice.', 'invoicing' ),
1156
+					'description' => __('Information about the owner of the invoice.', 'invoicing'),
1157 1157
 					'type'        => 'object',
1158
-					'context'     => array( 'view', 'edit', 'embed' ),
1158
+					'context'     => array('view', 'edit', 'embed'),
1159 1159
 					'properties'  => array(
1160 1160
 
1161 1161
 						'first_name'      => array(
1162
-							'description' => __( 'The first name of the owner of the invoice.', 'invoicing' ),
1162
+							'description' => __('The first name of the owner of the invoice.', 'invoicing'),
1163 1163
 							'type'        => 'string',
1164
-							'context'     => array( 'view', 'edit', 'embed' ),
1164
+							'context'     => array('view', 'edit', 'embed'),
1165 1165
 						),
1166 1166
 
1167 1167
 						'last_name'       => array(
1168
-							'description' => __( 'The last name of the owner of the invoice.', 'invoicing' ),
1168
+							'description' => __('The last name of the owner of the invoice.', 'invoicing'),
1169 1169
 							'type'        => 'string',
1170
-							'context'     => array( 'view', 'edit', 'embed' ),
1170
+							'context'     => array('view', 'edit', 'embed'),
1171 1171
 						),
1172 1172
 
1173 1173
 						'company'         => array(
1174
-							'description' => __( 'The company of the owner of the invoice.', 'invoicing' ),
1174
+							'description' => __('The company of the owner of the invoice.', 'invoicing'),
1175 1175
 							'type'        => 'string',
1176
-							'context'     => array( 'view', 'edit', 'embed' ),
1176
+							'context'     => array('view', 'edit', 'embed'),
1177 1177
 						),
1178 1178
 
1179 1179
 						'vat_number'      => array(
1180
-							'description' => __( 'The VAT number of the owner of the invoice.', 'invoicing' ),
1180
+							'description' => __('The VAT number of the owner of the invoice.', 'invoicing'),
1181 1181
 							'type'        => 'string',
1182
-							'context'     => array( 'view', 'edit', 'embed' ),
1182
+							'context'     => array('view', 'edit', 'embed'),
1183 1183
 						),
1184 1184
 
1185 1185
 						'vat_rate'        => array(
1186
-							'description' => __( 'The VAT rate applied on the invoice.', 'invoicing' ),
1186
+							'description' => __('The VAT rate applied on the invoice.', 'invoicing'),
1187 1187
 							'type'        => 'string',
1188
-							'context'     => array( 'view', 'edit', 'embed' ),
1188
+							'context'     => array('view', 'edit', 'embed'),
1189 1189
 						),
1190 1190
 
1191 1191
 						'address'        => array(
1192
-							'description' => __( 'The address of the invoice owner.', 'invoicing' ),
1192
+							'description' => __('The address of the invoice owner.', 'invoicing'),
1193 1193
 							'type'        => 'string',
1194
-							'context'     => array( 'view', 'edit', 'embed' ),
1194
+							'context'     => array('view', 'edit', 'embed'),
1195 1195
 						),
1196 1196
 
1197 1197
 						'city'            => array(
1198
-							'description' => __( 'The city of the invoice owner.', 'invoicing' ),
1198
+							'description' => __('The city of the invoice owner.', 'invoicing'),
1199 1199
 							'type'        => 'string',
1200
-							'context'     => array( 'view', 'edit', 'embed' ),
1200
+							'context'     => array('view', 'edit', 'embed'),
1201 1201
 						),
1202 1202
 
1203 1203
 						'country'         => array(
1204
-							'description' => __( 'The country of the invoice owner.', 'invoicing' ),
1204
+							'description' => __('The country of the invoice owner.', 'invoicing'),
1205 1205
 							'type'        => 'string',
1206
-							'context'     => array( 'view', 'edit', 'embed' ),
1206
+							'context'     => array('view', 'edit', 'embed'),
1207 1207
 						),
1208 1208
 
1209 1209
 						'state'           => array(
1210
-							'description' => __( 'The state of the invoice owner.', 'invoicing' ),
1210
+							'description' => __('The state of the invoice owner.', 'invoicing'),
1211 1211
 							'type'        => 'string',
1212
-							'context'     => array( 'view', 'edit', 'embed' ),
1212
+							'context'     => array('view', 'edit', 'embed'),
1213 1213
 						),
1214 1214
 
1215 1215
 						'zip'             => array(
1216
-							'description' => __( 'The zip code of the invoice owner.', 'invoicing' ),
1216
+							'description' => __('The zip code of the invoice owner.', 'invoicing'),
1217 1217
 							'type'        => 'string',
1218
-							'context'     => array( 'view', 'edit', 'embed' ),
1218
+							'context'     => array('view', 'edit', 'embed'),
1219 1219
 						),
1220 1220
 
1221 1221
 						'phone'             => array(
1222
-							'description' => __( 'The phone number of the invoice owner.', 'invoicing' ),
1222
+							'description' => __('The phone number of the invoice owner.', 'invoicing'),
1223 1223
 							'type'        => 'string',
1224
-							'context'     => array( 'view', 'edit', 'embed' ),
1224
+							'context'     => array('view', 'edit', 'embed'),
1225 1225
 						),
1226 1226
 					),
1227 1227
 				),
1228 1228
 
1229 1229
 				'id'           => array(
1230
-					'description' => __( 'Unique identifier for the invoice.', 'invoicing' ),
1230
+					'description' => __('Unique identifier for the invoice.', 'invoicing'),
1231 1231
 					'type'        => 'integer',
1232
-					'context'     => array( 'view', 'edit', 'embed' ),
1232
+					'context'     => array('view', 'edit', 'embed'),
1233 1233
 					'readonly'    => true,
1234 1234
 				),
1235 1235
 
1236 1236
 				'key'			  => array(
1237
-					'description' => __( 'A unique key for the invoice.', 'invoicing' ),
1237
+					'description' => __('A unique key for the invoice.', 'invoicing'),
1238 1238
 					'type'        => 'string',
1239
-					'context'     => array( 'view', 'edit', 'embed' ),
1239
+					'context'     => array('view', 'edit', 'embed'),
1240 1240
 					'readonly'    => true,
1241 1241
 				),
1242 1242
 
1243 1243
 				'number'		  => array(
1244
-					'description' => __( 'The invoice number.', 'invoicing' ),
1244
+					'description' => __('The invoice number.', 'invoicing'),
1245 1245
 					'type'        => 'string',
1246
-					'context'     => array( 'view', 'edit', 'embed' ),
1246
+					'context'     => array('view', 'edit', 'embed'),
1247 1247
 					'readonly'    => true,
1248 1248
 				),
1249 1249
 
1250 1250
 				'transaction_id'  => array(
1251
-					'description' => __( 'The transaction id of the invoice.', 'invoicing' ),
1251
+					'description' => __('The transaction id of the invoice.', 'invoicing'),
1252 1252
 					'type'        => 'string',
1253
-					'context'     => array( 'view', 'edit', 'embed' ),
1253
+					'context'     => array('view', 'edit', 'embed'),
1254 1254
 				),
1255 1255
 
1256 1256
 				'gateway'		  => array(
1257
-					'description' => __( 'The gateway used to process the invoice.', 'invoicing' ),
1257
+					'description' => __('The gateway used to process the invoice.', 'invoicing'),
1258 1258
 					'type'        => 'string',
1259
-					'context'     => array( 'view', 'edit', 'embed' ),
1259
+					'context'     => array('view', 'edit', 'embed'),
1260 1260
 				),
1261 1261
 
1262 1262
 				'gateway_title'	  => array(
1263
-					'description' => __( 'The title of the gateway used to process the invoice.', 'invoicing' ),
1263
+					'description' => __('The title of the gateway used to process the invoice.', 'invoicing'),
1264 1264
 					'type'        => 'string',
1265
-					'context'     => array( 'view', 'edit', 'embed' ),
1265
+					'context'     => array('view', 'edit', 'embed'),
1266 1266
 				),
1267 1267
 
1268 1268
 				'total'	  		  => array(
1269
-					'description' => __( 'The total amount of the invoice.', 'invoicing' ),
1269
+					'description' => __('The total amount of the invoice.', 'invoicing'),
1270 1270
 					'type'        => 'number',
1271
-					'context'     => array( 'view', 'edit', 'embed' ),
1271
+					'context'     => array('view', 'edit', 'embed'),
1272 1272
 					'readonly'    => true,
1273 1273
 				),
1274 1274
 
1275 1275
 				'discount'		  => array(
1276
-					'description' => __( 'The discount applied to the invoice.', 'invoicing' ),
1276
+					'description' => __('The discount applied to the invoice.', 'invoicing'),
1277 1277
 					'type'        => 'number',
1278
-					'context'     => array( 'view', 'edit', 'embed' ),
1278
+					'context'     => array('view', 'edit', 'embed'),
1279 1279
 					'readonly'    => true,
1280 1280
 				),
1281 1281
 
1282 1282
 				'discount_code'	  => array(
1283
-					'description' => __( 'The discount code applied to the invoice.', 'invoicing' ),
1283
+					'description' => __('The discount code applied to the invoice.', 'invoicing'),
1284 1284
 					'type'        => 'string',
1285
-					'context'     => array( 'view', 'edit', 'embed' ),
1285
+					'context'     => array('view', 'edit', 'embed'),
1286 1286
 					'readonly'    => true,
1287 1287
 				),
1288 1288
 
1289 1289
 				'tax'	  		  => array(
1290
-					'description' => __( 'The tax applied to the invoice.', 'invoicing' ),
1290
+					'description' => __('The tax applied to the invoice.', 'invoicing'),
1291 1291
 					'type'        => 'number',
1292
-					'context'     => array( 'view', 'edit', 'embed' ),
1292
+					'context'     => array('view', 'edit', 'embed'),
1293 1293
 					'readonly'    => true,
1294 1294
 				),
1295 1295
 
1296 1296
 				'fees_total'	  => array(
1297
-					'description' => __( 'The total fees applied to the invoice.', 'invoicing' ),
1297
+					'description' => __('The total fees applied to the invoice.', 'invoicing'),
1298 1298
 					'type'        => 'number',
1299
-					'context'     => array( 'view', 'edit', 'embed' ),
1299
+					'context'     => array('view', 'edit', 'embed'),
1300 1300
 					'readonly'    => true,
1301 1301
 				),
1302 1302
 
1303 1303
 				'subtotal'	  	  => array(
1304
-					'description' => __( 'The sub-total for the invoice.', 'invoicing' ),
1304
+					'description' => __('The sub-total for the invoice.', 'invoicing'),
1305 1305
 					'type'        => 'number',
1306
-					'context'     => array( 'view', 'edit', 'embed' ),
1306
+					'context'     => array('view', 'edit', 'embed'),
1307 1307
 					'readonly'    => true,
1308 1308
 				),
1309 1309
 
1310 1310
 				'currency'	  	  => array(
1311
-					'description' => __( 'The currency used to process the invoice.', 'invoicing' ),
1311
+					'description' => __('The currency used to process the invoice.', 'invoicing'),
1312 1312
 					'type'        => 'string',
1313
-					'context'     => array( 'view', 'edit', 'embed' ),
1313
+					'context'     => array('view', 'edit', 'embed'),
1314 1314
 				),
1315 1315
 
1316 1316
 				'cart_details'	  => array(
1317
-					'description' => __( 'The cart details for invoice.', 'invoicing' ),
1317
+					'description' => __('The cart details for invoice.', 'invoicing'),
1318 1318
 					'type'        => 'array',
1319
-					'context'     => array( 'view', 'edit', 'embed' ),
1319
+					'context'     => array('view', 'edit', 'embed'),
1320 1320
 					'required'	  => true,
1321 1321
 				),
1322 1322
 
1323 1323
 				'date'         => array(
1324
-					'description' => __( "The date the invoice was published, in the site's timezone.", 'invoicing' ),
1325
-					'type'        => array( 'string', 'null' ),
1324
+					'description' => __("The date the invoice was published, in the site's timezone.", 'invoicing'),
1325
+					'type'        => array('string', 'null'),
1326 1326
 					'format'      => 'date-time',
1327
-					'context'     => array( 'view', 'edit', 'embed' ),
1327
+					'context'     => array('view', 'edit', 'embed'),
1328 1328
 				),
1329 1329
 
1330 1330
 				'due_date'     => array(
1331
-					'description' => __( 'The due date for the invoice.', 'invoicing' ),
1332
-					'type'        => array( 'string', 'null' ),
1331
+					'description' => __('The due date for the invoice.', 'invoicing'),
1332
+					'type'        => array('string', 'null'),
1333 1333
 					'format'      => 'date-time',
1334
-					'context'     => array( 'view', 'edit', 'embed' ),
1334
+					'context'     => array('view', 'edit', 'embed'),
1335 1335
 				),
1336 1336
 
1337 1337
 				'completed_date'  => array(
1338
-					'description' => __( 'The completed date for the invoice.', 'invoicing' ),
1339
-					'type'        => array( 'string', 'null' ),
1338
+					'description' => __('The completed date for the invoice.', 'invoicing'),
1339
+					'type'        => array('string', 'null'),
1340 1340
 					'format'      => 'date-time',
1341
-					'context'     => array( 'view', 'edit', 'embed' ),
1341
+					'context'     => array('view', 'edit', 'embed'),
1342 1342
 					'readonly'    => true,
1343 1343
 				),
1344 1344
 				
1345 1345
 				'link'         => array(
1346
-					'description' => __( 'URL to the invoice.', 'invoicing' ),
1346
+					'description' => __('URL to the invoice.', 'invoicing'),
1347 1347
 					'type'        => 'string',
1348 1348
 					'format'      => 'uri',
1349
-					'context'     => array( 'view', 'edit', 'embed' ),
1349
+					'context'     => array('view', 'edit', 'embed'),
1350 1350
 					'readonly'    => true,
1351 1351
 				),
1352 1352
 
1353 1353
 				'mode'       	  => array(
1354
-					'description' => __( 'The mode used to process the invoice.', 'invoicing' ),
1354
+					'description' => __('The mode used to process the invoice.', 'invoicing'),
1355 1355
 					'type'        => 'string',
1356
-					'enum'        => array( 'live', 'test' ),
1357
-					'context'     => array( 'view', 'edit', 'embed' ),
1356
+					'enum'        => array('live', 'test'),
1357
+					'context'     => array('view', 'edit', 'embed'),
1358 1358
 					'readonly'    => true,
1359 1359
 				),
1360 1360
 
1361 1361
 				'slug'       	  => array(
1362
-					'description' => __( 'An alphanumeric identifier for the invoice.', 'invoicing' ),
1362
+					'description' => __('An alphanumeric identifier for the invoice.', 'invoicing'),
1363 1363
 					'type'        => 'string',
1364
-					'context'     => array( 'view', 'edit', 'embed' ),
1364
+					'context'     => array('view', 'edit', 'embed'),
1365 1365
 					'arg_options' => array(
1366
-						'sanitize_callback' => array( $this, 'sanitize_slug' ),
1366
+						'sanitize_callback' => array($this, 'sanitize_slug'),
1367 1367
 					),
1368 1368
 					'readonly'    => true,
1369 1369
 				),
1370 1370
 
1371 1371
 				'status'       	  => array(
1372
-					'description' => __( 'A named status for the invoice.', 'invoicing' ),
1372
+					'description' => __('A named status for the invoice.', 'invoicing'),
1373 1373
 					'type'        => 'string',
1374 1374
 					'enum'        => $this->get_post_statuses(),
1375
-					'context'     => array( 'view', 'edit' ),
1375
+					'context'     => array('view', 'edit'),
1376 1376
 					'default'	  => 'wpi-pending',
1377 1377
 				),
1378 1378
 
1379 1379
 				'status_nicename' => array(
1380
-					'description' => __( 'A human-readable status name for the invoice.', 'invoicing' ),
1380
+					'description' => __('A human-readable status name for the invoice.', 'invoicing'),
1381 1381
 					'type'        => 'string',
1382
-					'context'     => array( 'view', 'embed' ),
1382
+					'context'     => array('view', 'embed'),
1383 1383
 					'readonly'    => true,
1384 1384
 				),
1385 1385
 
1386 1386
 				'post_type'       => array(
1387
-					'description' => __( 'The post type for the invoice.', 'invoicing' ),
1387
+					'description' => __('The post type for the invoice.', 'invoicing'),
1388 1388
 					'type'        => 'string',
1389
-					'context'     => array( 'view' ),
1389
+					'context'     => array('view'),
1390 1390
 					'readonly'    => true,
1391 1391
 				),
1392 1392
 			),
@@ -1404,12 +1404,12 @@  discard block
 block discarded – undo
1404 1404
 		 *
1405 1405
 		 * @param array   $schema    The invoice schema.
1406 1406
 		 */
1407
-        $schema = apply_filters( "wpinv_rest_invoice_schema", $schema );
1407
+        $schema = apply_filters("wpinv_rest_invoice_schema", $schema);
1408 1408
 
1409 1409
 		// Cache the invoice schema.
1410 1410
 		$this->schema = $schema;
1411 1411
 		
1412
-		return $this->add_additional_fields_schema( $this->schema );
1412
+		return $this->add_additional_fields_schema($this->schema);
1413 1413
 	}
1414 1414
 
1415 1415
 	/**
@@ -1421,20 +1421,20 @@  discard block
 block discarded – undo
1421 1421
 	 */
1422 1422
 	protected function get_schema_links() {
1423 1423
 
1424
-		$href = rest_url( "{$this->namespace}/{$this->rest_base}/{id}" );
1424
+		$href = rest_url("{$this->namespace}/{$this->rest_base}/{id}");
1425 1425
 
1426 1426
 		$links = array();
1427 1427
 
1428 1428
 		$links[] = array(
1429 1429
 			'rel'          => 'https://api.w.org/action-publish',
1430
-			'title'        => __( 'The current user can mark this invoice as completed.', 'invoicing' ),
1430
+			'title'        => __('The current user can mark this invoice as completed.', 'invoicing'),
1431 1431
 			'href'         => $href,
1432 1432
 			'targetSchema' => array(
1433 1433
 				'type'       => 'object',
1434 1434
 				'properties' => array(
1435 1435
 					'status' => array(
1436 1436
 						'type' => 'string',
1437
-						'enum' => array( 'publish', 'wpi-renewal' ),
1437
+						'enum' => array('publish', 'wpi-renewal'),
1438 1438
 					),
1439 1439
 				),
1440 1440
 			),
@@ -1442,7 +1442,7 @@  discard block
 block discarded – undo
1442 1442
 
1443 1443
 		$links[] = array(
1444 1444
 			'rel'          => 'https://api.w.org/action-assign-author',
1445
-			'title'        => __( 'The current user can change the owner of this invoice.', 'invoicing' ),
1445
+			'title'        => __('The current user can change the owner of this invoice.', 'invoicing'),
1446 1446
 			'href'         => $href,
1447 1447
 			'targetSchema' => array(
1448 1448
 				'type'       => 'object',
@@ -1465,24 +1465,24 @@  discard block
 block discarded – undo
1465 1465
 	 * @param WPInv_Invoice $invoice Invoice Object.
1466 1466
 	 * @return array Links for the given invoice.
1467 1467
 	 */
1468
-	protected function prepare_links( $invoice ) {
1468
+	protected function prepare_links($invoice) {
1469 1469
 
1470 1470
 		// Prepare the base REST API endpoint for invoices.
1471
-		$base = sprintf( '%s/%s', $this->namespace, $this->rest_base );
1471
+		$base = sprintf('%s/%s', $this->namespace, $this->rest_base);
1472 1472
 
1473 1473
 		// Entity meta.
1474 1474
 		$links = array(
1475 1475
 			'self'       => array(
1476
-				'href' => rest_url( trailingslashit( $base ) . $invoice->ID ),
1476
+				'href' => rest_url(trailingslashit($base) . $invoice->ID),
1477 1477
 			),
1478 1478
 			'collection' => array(
1479
-				'href' => rest_url( $base ),
1479
+				'href' => rest_url($base),
1480 1480
 			),
1481 1481
 		);
1482 1482
 
1483
-		if ( ! empty( $invoice->user_id ) ) {
1483
+		if (!empty($invoice->user_id)) {
1484 1484
 			$links['user'] = array(
1485
-				'href'       => rest_url( 'wp/v2/users/' . $invoice->user_id ),
1485
+				'href'       => rest_url('wp/v2/users/' . $invoice->user_id),
1486 1486
 				'embeddable' => true,
1487 1487
 			);
1488 1488
 		}
@@ -1496,7 +1496,7 @@  discard block
 block discarded – undo
1496 1496
 		 *
1497 1497
 		 * @param array   $links    Rest links.
1498 1498
 		 */
1499
-		return apply_filters( "wpinv_rest_invoice_links", $links );
1499
+		return apply_filters("wpinv_rest_invoice_links", $links);
1500 1500
 
1501 1501
 	}
1502 1502
 
@@ -1509,24 +1509,24 @@  discard block
 block discarded – undo
1509 1509
 	 * @param WP_REST_Request $request Request object.
1510 1510
 	 * @return array List of link relations.
1511 1511
 	 */
1512
-	protected function get_available_actions( $invoice, $request ) {
1512
+	protected function get_available_actions($invoice, $request) {
1513 1513
 
1514
-		if ( 'edit' !== $request['context'] ) {
1514
+		if ('edit' !== $request['context']) {
1515 1515
 			return array();
1516 1516
 		}
1517 1517
 
1518 1518
 		$rels = array();
1519 1519
 
1520 1520
 		// Retrieve the post type object.
1521
-		$post_type = get_post_type_object( $invoice->post_type );
1521
+		$post_type = get_post_type_object($invoice->post_type);
1522 1522
 
1523 1523
 		// Mark invoice as completed.
1524
-		if ( current_user_can( $post_type->cap->publish_posts ) ) {
1524
+		if (current_user_can($post_type->cap->publish_posts)) {
1525 1525
 			$rels[] = 'https://api.w.org/action-publish';
1526 1526
 		}
1527 1527
 
1528 1528
 		// Change the owner of the invoice.
1529
-		if ( current_user_can( $post_type->cap->edit_others_posts ) ) {
1529
+		if (current_user_can($post_type->cap->edit_others_posts)) {
1530 1530
 			$rels[] = 'https://api.w.org/action-assign-author';
1531 1531
 		}
1532 1532
 
@@ -1539,7 +1539,7 @@  discard block
 block discarded – undo
1539 1539
 		 *
1540 1540
 		 * @param array   $rels    Available link relations.
1541 1541
 		 */
1542
-		return apply_filters( "wpinv_rest_invoice_link_relations", $rels );
1542
+		return apply_filters("wpinv_rest_invoice_link_relations", $rels);
1543 1543
 	}
1544 1544
 
1545 1545
 	/**
@@ -1552,8 +1552,8 @@  discard block
 block discarded – undo
1552 1552
 	 * @param string          $parameter Additional parameter to pass to validation.
1553 1553
 	 * @return array|WP_Error A list of valid statuses, otherwise WP_Error object.
1554 1554
 	 */
1555
-	public function sanitize_post_statuses( $statuses, $request, $parameter ) {
1556
-		return array_intersect( wp_parse_slug_list( $statuses ), $this->get_post_statuses() );
1555
+	public function sanitize_post_statuses($statuses, $request, $parameter) {
1556
+		return array_intersect(wp_parse_slug_list($statuses), $this->get_post_statuses());
1557 1557
 	}
1558 1558
 
1559 1559
 	/**
@@ -1564,7 +1564,7 @@  discard block
 block discarded – undo
1564 1564
 	 * @return array A list of registered item statuses.
1565 1565
 	 */
1566 1566
 	public function get_post_statuses() {
1567
-		return array_keys( wpinv_get_invoice_statuses( true, true ) );
1567
+		return array_keys(wpinv_get_invoice_statuses(true, true));
1568 1568
 	}
1569 1569
     
1570 1570
 }
1571 1571
\ No newline at end of file
Please login to merge, or discard this patch.
includes/class-wpinv-api.php 2 patches
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -58,14 +58,14 @@  discard block
 block discarded – undo
58 58
     }
59 59
 
60 60
 
61
-	/**
62
-	 * Registers routes
63
-	 *
61
+    /**
62
+     * Registers routes
63
+     *
64 64
      * @since 1.0.13
65
-	 */
66
-	public function register_rest_routes() {
65
+     */
66
+    public function register_rest_routes() {
67 67
 
68
-		// Invoices.
68
+        // Invoices.
69 69
         $this->invoices_controller->register_routes();
70 70
         
71 71
         // Items.
@@ -75,15 +75,15 @@  discard block
 block discarded – undo
75 75
         $this->discounts_controller->register_routes();
76 76
 
77 77
         /**
78
-		 * Fires when registering Invoicing REST routes.
79
-		 *
80
-		 *
81
-		 * @since 1.0.15
82
-		 *
83
-		 *
84
-		 * @param array           $invoice_data Invoice properties.
85
-		 * @param WP_REST_Request $request The request used.
86
-		 */
78
+         * Fires when registering Invoicing REST routes.
79
+         *
80
+         *
81
+         * @since 1.0.15
82
+         *
83
+         *
84
+         * @param array           $invoice_data Invoice properties.
85
+         * @param WP_REST_Request $request The request used.
86
+         */
87 87
         do_action( "wpinv_register_rest_routes", $this );
88 88
         
89 89
     }
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  */
8 8
  
9 9
 // MUST have WordPress.
10
-if ( !defined( 'WPINC' ) ) {
10
+if (!defined('WPINC')) {
11 11
     exit;
12 12
 }
13 13
 
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
     /**
20 20
      * @param string A prefix for our REST routes
21 21
      */
22
-    public $api_namespace    = '';
22
+    public $api_namespace = '';
23 23
 
24 24
     /**
25 25
      * @param WPInv_REST_Invoice_Controller Invoices controller
@@ -42,19 +42,19 @@  discard block
 block discarded – undo
42 42
      * @since 1.0.13
43 43
      * Sets the API namespace and inits hooks
44 44
      */
45
-    public function __construct( $api_namespace = 'invoicing/v1' ) {
45
+    public function __construct($api_namespace = 'invoicing/v1') {
46 46
 
47 47
         // Include controllers and related files
48 48
         $this->includes();
49 49
 
50 50
         // Set up class variables
51
-        $this->api_namespace       = apply_filters( 'wpinv_rest_api_namespace', $api_namespace );
52
-        $this->invoices_controller = new WPInv_REST_Invoice_Controller( $this->api_namespace );
53
-        $this->items_controller    = new WPInv_REST_Items_Controller( $this->api_namespace );
54
-        $this->discounts_controller= new WPInv_REST_Discounts_Controller( $this->api_namespace );
51
+        $this->api_namespace       = apply_filters('wpinv_rest_api_namespace', $api_namespace);
52
+        $this->invoices_controller = new WPInv_REST_Invoice_Controller($this->api_namespace);
53
+        $this->items_controller    = new WPInv_REST_Items_Controller($this->api_namespace);
54
+        $this->discounts_controller = new WPInv_REST_Discounts_Controller($this->api_namespace);
55 55
 
56 56
         //Register REST routes
57
-        add_action( 'rest_api_init', array( $this, 'register_rest_routes' ) );
57
+        add_action('rest_api_init', array($this, 'register_rest_routes'));
58 58
     }
59 59
 
60 60
 
@@ -84,7 +84,7 @@  discard block
 block discarded – undo
84 84
 		 * @param array           $invoice_data Invoice properties.
85 85
 		 * @param WP_REST_Request $request The request used.
86 86
 		 */
87
-        do_action( "wpinv_register_rest_routes", $this );
87
+        do_action("wpinv_register_rest_routes", $this);
88 88
         
89 89
     }
90 90
 
@@ -97,13 +97,13 @@  discard block
 block discarded – undo
97 97
     protected function includes() {
98 98
         
99 99
         // Invoices
100
-        require_once( WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-invoice-controller.php' );
100
+        require_once(WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-invoice-controller.php');
101 101
 
102 102
         // Items
103
-        require_once( WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-items-controller.php' );
103
+        require_once(WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-items-controller.php');
104 104
 
105 105
         // Discounts
106
-        require_once( WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-discounts-controller.php' );
106
+        require_once(WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-discounts-controller.php');
107 107
 
108 108
     }
109 109
     
Please login to merge, or discard this patch.
includes/wpinv-general-functions.php 1 patch
Spacing   +177 added lines, -177 removed lines patch added patch discarded remove patch
@@ -7,201 +7,201 @@  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_is_checkout() {
15 15
     global $wp_query;
16 16
 
17
-    $is_object_set    = isset( $wp_query->queried_object );
18
-    $is_object_id_set = isset( $wp_query->queried_object_id );
19
-    $is_checkout      = is_page( wpinv_get_option( 'checkout_page' ) );
17
+    $is_object_set    = isset($wp_query->queried_object);
18
+    $is_object_id_set = isset($wp_query->queried_object_id);
19
+    $is_checkout      = is_page(wpinv_get_option('checkout_page'));
20 20
 
21
-    if ( !$is_object_set ) {
22
-        unset( $wp_query->queried_object );
21
+    if (!$is_object_set) {
22
+        unset($wp_query->queried_object);
23 23
     }
24 24
 
25
-    if ( !$is_object_id_set ) {
26
-        unset( $wp_query->queried_object_id );
25
+    if (!$is_object_id_set) {
26
+        unset($wp_query->queried_object_id);
27 27
     }
28 28
 
29
-    return apply_filters( 'wpinv_is_checkout', $is_checkout );
29
+    return apply_filters('wpinv_is_checkout', $is_checkout);
30 30
 }
31 31
 
32 32
 function wpinv_can_checkout() {
33 33
 	$can_checkout = true; // Always true for now
34 34
 
35
-	return (bool) apply_filters( 'wpinv_can_checkout', $can_checkout );
35
+	return (bool) apply_filters('wpinv_can_checkout', $can_checkout);
36 36
 }
37 37
 
38 38
 function wpinv_get_success_page_uri() {
39
-	$page_id = wpinv_get_option( 'success_page', 0 );
40
-	$page_id = absint( $page_id );
39
+	$page_id = wpinv_get_option('success_page', 0);
40
+	$page_id = absint($page_id);
41 41
 
42
-	return apply_filters( 'wpinv_get_success_page_uri', get_permalink( $page_id ) );
42
+	return apply_filters('wpinv_get_success_page_uri', get_permalink($page_id));
43 43
 }
44 44
 
45 45
 function wpinv_get_history_page_uri() {
46
-	$page_id = wpinv_get_option( 'invoice_history_page', 0 );
47
-	$page_id = absint( $page_id );
46
+	$page_id = wpinv_get_option('invoice_history_page', 0);
47
+	$page_id = absint($page_id);
48 48
 
49
-	return apply_filters( 'wpinv_get_history_page_uri', get_permalink( $page_id ) );
49
+	return apply_filters('wpinv_get_history_page_uri', get_permalink($page_id));
50 50
 }
51 51
 
52 52
 function wpinv_is_success_page() {
53
-	$is_success_page = wpinv_get_option( 'success_page', false );
54
-	$is_success_page = isset( $is_success_page ) ? is_page( $is_success_page ) : false;
53
+	$is_success_page = wpinv_get_option('success_page', false);
54
+	$is_success_page = isset($is_success_page) ? is_page($is_success_page) : false;
55 55
 
56
-	return apply_filters( 'wpinv_is_success_page', $is_success_page );
56
+	return apply_filters('wpinv_is_success_page', $is_success_page);
57 57
 }
58 58
 
59 59
 function wpinv_is_invoice_history_page() {
60
-	$ret = wpinv_get_option( 'invoice_history_page', false );
61
-	$ret = $ret ? is_page( $ret ) : false;
62
-	return apply_filters( 'wpinv_is_invoice_history_page', $ret );
60
+	$ret = wpinv_get_option('invoice_history_page', false);
61
+	$ret = $ret ? is_page($ret) : false;
62
+	return apply_filters('wpinv_is_invoice_history_page', $ret);
63 63
 }
64 64
 
65 65
 function wpinv_is_subscriptions_history_page() {
66
-    $ret = wpinv_get_option( 'invoice_subscription_page', false );
67
-    $ret = $ret ? is_page( $ret ) : false;
68
-    return apply_filters( 'wpinv_is_subscriptions_history_page', $ret );
66
+    $ret = wpinv_get_option('invoice_subscription_page', false);
67
+    $ret = $ret ? is_page($ret) : false;
68
+    return apply_filters('wpinv_is_subscriptions_history_page', $ret);
69 69
 }
70 70
 
71
-function wpinv_send_to_success_page( $args = null ) {
71
+function wpinv_send_to_success_page($args = null) {
72 72
 	$redirect = wpinv_get_success_page_uri();
73 73
     
74
-    if ( !empty( $args ) ) {
74
+    if (!empty($args)) {
75 75
         // Check for backward compatibility
76
-        if ( is_string( $args ) )
77
-            $args = str_replace( '?', '', $args );
76
+        if (is_string($args))
77
+            $args = str_replace('?', '', $args);
78 78
 
79
-        $args = wp_parse_args( $args );
79
+        $args = wp_parse_args($args);
80 80
 
81
-        $redirect = add_query_arg( $args, $redirect );
81
+        $redirect = add_query_arg($args, $redirect);
82 82
     }
83 83
 
84
-    $gateway = isset( $_REQUEST['wpi-gateway'] ) ? $_REQUEST['wpi-gateway'] : '';
84
+    $gateway = isset($_REQUEST['wpi-gateway']) ? $_REQUEST['wpi-gateway'] : '';
85 85
     
86
-    $redirect = apply_filters( 'wpinv_success_page_redirect', $redirect, $gateway, $args );
87
-    wp_redirect( $redirect );
86
+    $redirect = apply_filters('wpinv_success_page_redirect', $redirect, $gateway, $args);
87
+    wp_redirect($redirect);
88 88
     exit;
89 89
 }
90 90
 
91
-function wpinv_send_to_failed_page( $args = null ) {
91
+function wpinv_send_to_failed_page($args = null) {
92 92
 	$redirect = wpinv_get_failed_transaction_uri();
93 93
     
94
-    if ( !empty( $args ) ) {
94
+    if (!empty($args)) {
95 95
         // Check for backward compatibility
96
-        if ( is_string( $args ) )
97
-            $args = str_replace( '?', '', $args );
96
+        if (is_string($args))
97
+            $args = str_replace('?', '', $args);
98 98
 
99
-        $args = wp_parse_args( $args );
99
+        $args = wp_parse_args($args);
100 100
 
101
-        $redirect = add_query_arg( $args, $redirect );
101
+        $redirect = add_query_arg($args, $redirect);
102 102
     }
103 103
 
104
-    $gateway = isset( $_REQUEST['wpi-gateway'] ) ? $_REQUEST['wpi-gateway'] : '';
104
+    $gateway = isset($_REQUEST['wpi-gateway']) ? $_REQUEST['wpi-gateway'] : '';
105 105
     
106
-    $redirect = apply_filters( 'wpinv_failed_page_redirect', $redirect, $gateway, $args );
107
-    wp_redirect( $redirect );
106
+    $redirect = apply_filters('wpinv_failed_page_redirect', $redirect, $gateway, $args);
107
+    wp_redirect($redirect);
108 108
     exit;
109 109
 }
110 110
 
111
-function wpinv_get_checkout_uri( $args = array() ) {
112
-	$uri = wpinv_get_option( 'checkout_page', false );
113
-	$uri = isset( $uri ) ? get_permalink( $uri ) : NULL;
111
+function wpinv_get_checkout_uri($args = array()) {
112
+	$uri = wpinv_get_option('checkout_page', false);
113
+	$uri = isset($uri) ? get_permalink($uri) : NULL;
114 114
 
115
-	if ( !empty( $args ) ) {
115
+	if (!empty($args)) {
116 116
 		// Check for backward compatibility
117
-		if ( is_string( $args ) )
118
-			$args = str_replace( '?', '', $args );
117
+		if (is_string($args))
118
+			$args = str_replace('?', '', $args);
119 119
 
120
-		$args = wp_parse_args( $args );
120
+		$args = wp_parse_args($args);
121 121
 
122
-		$uri = add_query_arg( $args, $uri );
122
+		$uri = add_query_arg($args, $uri);
123 123
 	}
124 124
 
125
-	$scheme = defined( 'FORCE_SSL_ADMIN' ) && FORCE_SSL_ADMIN ? 'https' : 'admin';
125
+	$scheme = defined('FORCE_SSL_ADMIN') && FORCE_SSL_ADMIN ? 'https' : 'admin';
126 126
 
127
-	$ajax_url = admin_url( 'admin-ajax.php', $scheme );
127
+	$ajax_url = admin_url('admin-ajax.php', $scheme);
128 128
 
129
-	if ( ( ! preg_match( '/^https/', $uri ) && preg_match( '/^https/', $ajax_url ) ) || wpinv_is_ssl_enforced() ) {
130
-		$uri = preg_replace( '/^http:/', 'https:', $uri );
129
+	if ((!preg_match('/^https/', $uri) && preg_match('/^https/', $ajax_url)) || wpinv_is_ssl_enforced()) {
130
+		$uri = preg_replace('/^http:/', 'https:', $uri);
131 131
 	}
132 132
 
133
-	return apply_filters( 'wpinv_get_checkout_uri', $uri );
133
+	return apply_filters('wpinv_get_checkout_uri', $uri);
134 134
 }
135 135
 
136
-function wpinv_send_back_to_checkout( $args = array() ) {
136
+function wpinv_send_back_to_checkout($args = array()) {
137 137
 	$redirect = wpinv_get_checkout_uri();
138 138
 
139
-	if ( ! empty( $args ) ) {
139
+	if (!empty($args)) {
140 140
 		// Check for backward compatibility
141
-		if ( is_string( $args ) )
142
-			$args = str_replace( '?', '', $args );
141
+		if (is_string($args))
142
+			$args = str_replace('?', '', $args);
143 143
 
144
-		$args = wp_parse_args( $args );
144
+		$args = wp_parse_args($args);
145 145
 
146
-		$redirect = add_query_arg( $args, $redirect );
146
+		$redirect = add_query_arg($args, $redirect);
147 147
 	}
148 148
 
149
-	wp_redirect( apply_filters( 'wpinv_send_back_to_checkout', $redirect, $args ) );
149
+	wp_redirect(apply_filters('wpinv_send_back_to_checkout', $redirect, $args));
150 150
 	exit;
151 151
 }
152 152
 
153
-function wpinv_get_success_page_url( $query_string = null ) {
154
-	$success_page = wpinv_get_option( 'success_page', 0 );
155
-	$success_page = get_permalink( $success_page );
153
+function wpinv_get_success_page_url($query_string = null) {
154
+	$success_page = wpinv_get_option('success_page', 0);
155
+	$success_page = get_permalink($success_page);
156 156
 
157
-	if ( $query_string )
157
+	if ($query_string)
158 158
 		$success_page .= $query_string;
159 159
 
160
-	return apply_filters( 'wpinv_success_page_url', $success_page );
160
+	return apply_filters('wpinv_success_page_url', $success_page);
161 161
 }
162 162
 
163
-function wpinv_get_failed_transaction_uri( $extras = false ) {
164
-	$uri = wpinv_get_option( 'failure_page', '' );
165
-	$uri = ! empty( $uri ) ? trailingslashit( get_permalink( $uri ) ) : home_url();
163
+function wpinv_get_failed_transaction_uri($extras = false) {
164
+	$uri = wpinv_get_option('failure_page', '');
165
+	$uri = !empty($uri) ? trailingslashit(get_permalink($uri)) : home_url();
166 166
 
167
-	if ( $extras )
167
+	if ($extras)
168 168
 		$uri .= $extras;
169 169
 
170
-	return apply_filters( 'wpinv_get_failed_transaction_uri', $uri );
170
+	return apply_filters('wpinv_get_failed_transaction_uri', $uri);
171 171
 }
172 172
 
173 173
 function wpinv_is_failed_transaction_page() {
174
-	$ret = wpinv_get_option( 'failure_page', false );
175
-	$ret = isset( $ret ) ? is_page( $ret ) : false;
174
+	$ret = wpinv_get_option('failure_page', false);
175
+	$ret = isset($ret) ? is_page($ret) : false;
176 176
 
177
-	return apply_filters( 'wpinv_is_failure_page', $ret );
177
+	return apply_filters('wpinv_is_failure_page', $ret);
178 178
 }
179 179
 
180
-function wpinv_transaction_query( $type = 'start' ) {
180
+function wpinv_transaction_query($type = 'start') {
181 181
     global $wpdb;
182 182
 
183 183
     $wpdb->hide_errors();
184 184
 
185
-    if ( ! defined( 'WPINV_USE_TRANSACTIONS' ) ) {
186
-        define( 'WPINV_USE_TRANSACTIONS', true );
185
+    if (!defined('WPINV_USE_TRANSACTIONS')) {
186
+        define('WPINV_USE_TRANSACTIONS', true);
187 187
     }
188 188
 
189
-    if ( WPINV_USE_TRANSACTIONS ) {
190
-        switch ( $type ) {
189
+    if (WPINV_USE_TRANSACTIONS) {
190
+        switch ($type) {
191 191
             case 'commit' :
192
-                $wpdb->query( 'COMMIT' );
192
+                $wpdb->query('COMMIT');
193 193
                 break;
194 194
             case 'rollback' :
195
-                $wpdb->query( 'ROLLBACK' );
195
+                $wpdb->query('ROLLBACK');
196 196
                 break;
197 197
             default :
198
-                $wpdb->query( 'START TRANSACTION' );
198
+                $wpdb->query('START TRANSACTION');
199 199
             break;
200 200
         }
201 201
     }
202 202
 }
203 203
 
204
-function wpinv_create_invoice( $args = array(), $data = array(), $wp_error = false ) {
204
+function wpinv_create_invoice($args = array(), $data = array(), $wp_error = false) {
205 205
     $default_args = array(
206 206
         'status'        => '',
207 207
         'user_id'       => null,
@@ -212,66 +212,66 @@  discard block
 block discarded – undo
212 212
         'post_type'     => 'wpi_invoice'
213 213
     );
214 214
 
215
-    $args           = wp_parse_args( $args, $default_args );
215
+    $args           = wp_parse_args($args, $default_args);
216 216
     $invoice_data   = array();
217 217
 
218
-    if ( $args['invoice_id'] > 0 ) {
219
-        $updating           = true;
218
+    if ($args['invoice_id'] > 0) {
219
+        $updating = true;
220 220
         $invoice_data['post_type']  = $args['post_type'];
221 221
         $invoice_data['ID']         = $args['invoice_id'];
222 222
     } else {
223 223
         $updating                       = false;
224 224
         $invoice_data['post_type']      = $args['post_type'];
225
-        $invoice_data['post_status']    = apply_filters( 'wpinv_default_invoice_status', 'wpi-pending' );
225
+        $invoice_data['post_status']    = apply_filters('wpinv_default_invoice_status', 'wpi-pending');
226 226
         $invoice_data['ping_status']    = 'closed';
227
-        $invoice_data['post_author']    = !empty( $args['user_id'] ) ? $args['user_id'] : get_current_user_id();
228
-        $invoice_data['post_title']     = wpinv_format_invoice_number( '0' );
229
-        $invoice_data['post_parent']    = absint( $args['parent'] );
230
-        if ( !empty( $args['created_date'] ) ) {
227
+        $invoice_data['post_author']    = !empty($args['user_id']) ? $args['user_id'] : get_current_user_id();
228
+        $invoice_data['post_title']     = wpinv_format_invoice_number('0');
229
+        $invoice_data['post_parent']    = absint($args['parent']);
230
+        if (!empty($args['created_date'])) {
231 231
             $invoice_data['post_date']      = $args['created_date'];
232
-            $invoice_data['post_date_gmt']  = get_gmt_from_date( $args['created_date'] );
232
+            $invoice_data['post_date_gmt']  = get_gmt_from_date($args['created_date']);
233 233
         }
234 234
     }
235 235
 
236
-    if ( $args['status'] ) {
237
-        if ( ! in_array( $args['status'], array_keys( wpinv_get_invoice_statuses() ) ) && 'wpi_invoice' === $invoice_data['post_type'] ) {
238
-            return new WP_Error( 'wpinv_invalid_invoice_status', wp_sprintf( __( 'Invalid invoice status: %s', 'invoicing' ), $args['status'] ) );
236
+    if ($args['status']) {
237
+        if (!in_array($args['status'], array_keys(wpinv_get_invoice_statuses())) && 'wpi_invoice' === $invoice_data['post_type']) {
238
+            return new WP_Error('wpinv_invalid_invoice_status', wp_sprintf(__('Invalid invoice status: %s', 'invoicing'), $args['status']));
239 239
         }
240
-        $invoice_data['post_status']    = $args['status'];
240
+        $invoice_data['post_status'] = $args['status'];
241 241
     }
242 242
 
243
-    if ( ! is_null( $args['user_note'] ) ) {
244
-        $invoice_data['post_excerpt']   = $args['user_note'];
243
+    if (!is_null($args['user_note'])) {
244
+        $invoice_data['post_excerpt'] = $args['user_note'];
245 245
     }
246 246
 
247
-    if ( $updating ) {
248
-        $invoice_id = wp_update_post( $invoice_data, true );
247
+    if ($updating) {
248
+        $invoice_id = wp_update_post($invoice_data, true);
249 249
     } else {
250
-        $invoice_id = wp_insert_post( apply_filters( 'wpinv_new_invoice_data', $invoice_data ), true );
250
+        $invoice_id = wp_insert_post(apply_filters('wpinv_new_invoice_data', $invoice_data), true);
251 251
     }
252 252
 
253
-    if ( is_wp_error( $invoice_id ) ) {
253
+    if (is_wp_error($invoice_id)) {
254 254
         return $wp_error ? $invoice_id : 0;
255 255
     }
256 256
     
257
-    $invoice = wpinv_get_invoice( $invoice_id );
258
-
259
-    if ( !$updating ) {
260
-        update_post_meta( $invoice_id, '_wpinv_key', apply_filters( 'wpinv_generate_invoice_key', uniqid( 'wpinv_' ) ) );
261
-        update_post_meta( $invoice_id, '_wpinv_currency', wpinv_get_currency() );
262
-        update_post_meta( $invoice_id, '_wpinv_include_tax', get_option( 'wpinv_prices_include_tax' ) );
263
-        update_post_meta( $invoice_id, '_wpinv_user_ip', wpinv_get_ip() );
264
-        update_post_meta( $invoice_id, '_wpinv_user_agent', wpinv_get_user_agent() );
265
-        update_post_meta( $invoice_id, '_wpinv_created_via', sanitize_text_field( $args['created_via'] ) );
257
+    $invoice = wpinv_get_invoice($invoice_id);
258
+
259
+    if (!$updating) {
260
+        update_post_meta($invoice_id, '_wpinv_key', apply_filters('wpinv_generate_invoice_key', uniqid('wpinv_')));
261
+        update_post_meta($invoice_id, '_wpinv_currency', wpinv_get_currency());
262
+        update_post_meta($invoice_id, '_wpinv_include_tax', get_option('wpinv_prices_include_tax'));
263
+        update_post_meta($invoice_id, '_wpinv_user_ip', wpinv_get_ip());
264
+        update_post_meta($invoice_id, '_wpinv_user_agent', wpinv_get_user_agent());
265
+        update_post_meta($invoice_id, '_wpinv_created_via', sanitize_text_field($args['created_via']));
266 266
         
267 267
         // Add invoice note
268
-        if ( ! $invoice->is_quote() ) {
269
-            $invoice->add_note( wp_sprintf( __( 'Invoice is created with status %s.', 'invoicing' ), wpinv_status_nicename( $invoice->status ) ) );
268
+        if (!$invoice->is_quote()) {
269
+            $invoice->add_note(wp_sprintf(__('Invoice is created with status %s.', 'invoicing'), wpinv_status_nicename($invoice->status)));
270 270
         }
271 271
         
272 272
     }
273 273
 
274
-    update_post_meta( $invoice_id, '_wpinv_version', WPINV_VERSION );
274
+    update_post_meta($invoice_id, '_wpinv_version', WPINV_VERSION);
275 275
 
276 276
     return $invoice;
277 277
 }
@@ -279,184 +279,184 @@  discard block
 block discarded – undo
279 279
 function wpinv_get_prefix() {
280 280
     $invoice_prefix = 'INV-';
281 281
     
282
-    return apply_filters( 'wpinv_get_prefix', $invoice_prefix );
282
+    return apply_filters('wpinv_get_prefix', $invoice_prefix);
283 283
 }
284 284
 
285 285
 function wpinv_get_business_logo() {
286
-    $business_logo = wpinv_get_option( 'logo' );
287
-    return apply_filters( 'wpinv_get_business_logo', $business_logo );
286
+    $business_logo = wpinv_get_option('logo');
287
+    return apply_filters('wpinv_get_business_logo', $business_logo);
288 288
 }
289 289
 
290 290
 function wpinv_get_business_name() {
291 291
     $business_name = wpinv_get_option('store_name');
292
-    return apply_filters( 'wpinv_get_business_name', $business_name );
292
+    return apply_filters('wpinv_get_business_name', $business_name);
293 293
 }
294 294
 
295 295
 function wpinv_get_blogname() {
296
-    return wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
296
+    return wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
297 297
 }
298 298
 
299 299
 function wpinv_get_admin_email() {
300
-    $admin_email = get_option( 'admin_email' );
301
-    return apply_filters( 'wpinv_admin_email', $admin_email );
300
+    $admin_email = get_option('admin_email');
301
+    return apply_filters('wpinv_admin_email', $admin_email);
302 302
 }
303 303
 
304 304
 function wpinv_get_business_website() {
305
-    $business_website = home_url( '/' );
306
-    return apply_filters( 'wpinv_get_business_website', $business_website );
305
+    $business_website = home_url('/');
306
+    return apply_filters('wpinv_get_business_website', $business_website);
307 307
 }
308 308
 
309
-function wpinv_get_terms_text( $invoice_id = 0 ) {
309
+function wpinv_get_terms_text($invoice_id = 0) {
310 310
     $terms_text = '';
311
-    return apply_filters( 'wpinv_get_terms_text', $terms_text, $invoice_id );
311
+    return apply_filters('wpinv_get_terms_text', $terms_text, $invoice_id);
312 312
 }
313 313
 
314 314
 function wpinv_get_business_footer() {
315
-    $site_link = '<a target="_blank" href="' . esc_url( wpinv_get_business_website() ) . '">' . esc_html( wpinv_get_business_name() ) . '</a>';
316
-    $business_footer = wp_sprintf( __( 'Thanks for using %s', 'invoicing' ), $site_link );
317
-    return apply_filters( 'wpinv_get_business_footer', $business_footer );
315
+    $site_link = '<a target="_blank" href="' . esc_url(wpinv_get_business_website()) . '">' . esc_html(wpinv_get_business_name()) . '</a>';
316
+    $business_footer = wp_sprintf(__('Thanks for using %s', 'invoicing'), $site_link);
317
+    return apply_filters('wpinv_get_business_footer', $business_footer);
318 318
 }
319 319
 
320 320
 function wpinv_checkout_required_fields() {
321 321
     $required_fields = array();
322 322
     
323 323
     // Let payment gateways and other extensions determine if address fields should be required
324
-    $require_billing_details = apply_filters( 'wpinv_checkout_required_billing_details', wpinv_use_taxes() );
324
+    $require_billing_details = apply_filters('wpinv_checkout_required_billing_details', wpinv_use_taxes());
325 325
     
326
-    if ( $require_billing_details ) {
327
-		if ( (bool)wpinv_get_option( 'fname_mandatory' ) ) {
326
+    if ($require_billing_details) {
327
+		if ((bool) wpinv_get_option('fname_mandatory')) {
328 328
 			$required_fields['first_name'] = array(
329 329
 				'error_id' => 'invalid_first_name',
330
-				'error_message' => __( 'Please enter your first name', 'invoicing' )
330
+				'error_message' => __('Please enter your first name', 'invoicing')
331 331
 			);
332 332
 		}
333
-		if ( (bool)wpinv_get_option( 'address_mandatory' ) ) {
333
+		if ((bool) wpinv_get_option('address_mandatory')) {
334 334
 			$required_fields['address'] = array(
335 335
 				'error_id' => 'invalid_address',
336
-				'error_message' => __( 'Please enter your address', 'invoicing' )
336
+				'error_message' => __('Please enter your address', 'invoicing')
337 337
 			);
338 338
 		}
339
-		if ( (bool)wpinv_get_option( 'city_mandatory' ) ) {
339
+		if ((bool) wpinv_get_option('city_mandatory')) {
340 340
 			$required_fields['city'] = array(
341 341
 				'error_id' => 'invalid_city',
342
-				'error_message' => __( 'Please enter your billing city', 'invoicing' )
342
+				'error_message' => __('Please enter your billing city', 'invoicing')
343 343
 			);
344 344
 		}
345
-		if ( (bool)wpinv_get_option( 'state_mandatory' ) ) {
345
+		if ((bool) wpinv_get_option('state_mandatory')) {
346 346
 			$required_fields['state'] = array(
347 347
 				'error_id' => 'invalid_state',
348
-				'error_message' => __( 'Please enter billing state / province', 'invoicing' )
348
+				'error_message' => __('Please enter billing state / province', 'invoicing')
349 349
 			);
350 350
 		}
351
-		if ( (bool)wpinv_get_option( 'country_mandatory' ) ) {
351
+		if ((bool) wpinv_get_option('country_mandatory')) {
352 352
 			$required_fields['country'] = array(
353 353
 				'error_id' => 'invalid_country',
354
-				'error_message' => __( 'Please select your billing country', 'invoicing' )
354
+				'error_message' => __('Please select your billing country', 'invoicing')
355 355
 			);
356 356
 		}
357 357
     }
358 358
 
359
-    return apply_filters( 'wpinv_checkout_required_fields', $required_fields );
359
+    return apply_filters('wpinv_checkout_required_fields', $required_fields);
360 360
 }
361 361
 
362 362
 function wpinv_is_ssl_enforced() {
363
-    $ssl_enforced = wpinv_get_option( 'enforce_ssl', false );
364
-    return (bool) apply_filters( 'wpinv_is_ssl_enforced', $ssl_enforced );
363
+    $ssl_enforced = wpinv_get_option('enforce_ssl', false);
364
+    return (bool) apply_filters('wpinv_is_ssl_enforced', $ssl_enforced);
365 365
 }
366 366
 
367
-function wpinv_user_can_view_invoice( $post ) {
367
+function wpinv_user_can_view_invoice($post) {
368 368
     $allow = false;
369 369
 
370
-    $post = get_post( $post );
370
+    $post = get_post($post);
371 371
 
372
-    if ( empty( $post->ID ) ) {
372
+    if (empty($post->ID)) {
373 373
         return $allow;
374 374
     }
375 375
 
376
-    $invoice = wpinv_get_invoice( $post->ID );
377
-    if ( empty( $invoice->ID ) ) {
376
+    $invoice = wpinv_get_invoice($post->ID);
377
+    if (empty($invoice->ID)) {
378 378
         return $allow;
379 379
     }
380 380
 
381 381
     // Don't allow trash, draft status
382
-    if ( $invoice->has_status( array_keys( wpinv_get_invoice_statuses() ) ) ) {
383
-        if ( wpinv_current_user_can_manage_invoicing() || current_user_can( 'view_invoices', $invoice->ID ) ) { // Admin user
382
+    if ($invoice->has_status(array_keys(wpinv_get_invoice_statuses()))) {
383
+        if (wpinv_current_user_can_manage_invoicing() || current_user_can('view_invoices', $invoice->ID)) { // Admin user
384 384
             $allow = true;
385 385
         } else {
386
-            if ( is_user_logged_in() ) {
387
-                if ( (int)$invoice->get_user_id() === (int)get_current_user_id() ) {
386
+            if (is_user_logged_in()) {
387
+                if ((int) $invoice->get_user_id() === (int) get_current_user_id()) {
388 388
                     $allow = true;
389
-                } else if ( !wpinv_require_login_to_checkout() && isset( $_GET['invoice_key'] ) && $_GET['invoice_key'] === $invoice->get_key() ) {
389
+                } else if (!wpinv_require_login_to_checkout() && isset($_GET['invoice_key']) && $_GET['invoice_key'] === $invoice->get_key()) {
390 390
                     $allow = true;
391 391
                 }
392 392
             } else {
393
-                if ( !wpinv_require_login_to_checkout() && isset( $_GET['invoice_key'] ) && $_GET['invoice_key'] === $invoice->get_key() ) {
393
+                if (!wpinv_require_login_to_checkout() && isset($_GET['invoice_key']) && $_GET['invoice_key'] === $invoice->get_key()) {
394 394
                     $allow = true;
395 395
                 }
396 396
             }
397 397
         }
398 398
     }
399 399
     
400
-    return apply_filters( 'wpinv_can_print_invoice', $allow, $post, $invoice );
400
+    return apply_filters('wpinv_can_print_invoice', $allow, $post, $invoice);
401 401
 }
402 402
 
403 403
 function wpinv_schedule_events() {
404 404
     // hourly, daily and twicedaily
405
-    if ( !wp_next_scheduled( 'wpinv_register_schedule_event_twicedaily' ) ) {
406
-        wp_schedule_event( current_time( 'timestamp' ), 'twicedaily', 'wpinv_register_schedule_event_twicedaily' );
405
+    if (!wp_next_scheduled('wpinv_register_schedule_event_twicedaily')) {
406
+        wp_schedule_event(current_time('timestamp'), 'twicedaily', 'wpinv_register_schedule_event_twicedaily');
407 407
     }
408 408
 }
409
-add_action( 'wp', 'wpinv_schedule_events' );
409
+add_action('wp', 'wpinv_schedule_events');
410 410
 
411 411
 function wpinv_schedule_event_twicedaily() {
412 412
     wpinv_email_payment_reminders();
413 413
 }
414
-add_action( 'wpinv_register_schedule_event_twicedaily', 'wpinv_schedule_event_twicedaily' );
414
+add_action('wpinv_register_schedule_event_twicedaily', 'wpinv_schedule_event_twicedaily');
415 415
 
416 416
 function wpinv_require_login_to_checkout() {
417
-    $return = wpinv_get_option( 'login_to_checkout', false );
418
-    return (bool) apply_filters( 'wpinv_require_login_to_checkout', $return );
417
+    $return = wpinv_get_option('login_to_checkout', false);
418
+    return (bool) apply_filters('wpinv_require_login_to_checkout', $return);
419 419
 }
420 420
 
421
-function wpinv_sequential_number_active( $type = '' ) {
422
-    $check = apply_filters( 'wpinv_pre_check_sequential_number_active', null, $type );
423
-    if ( null !== $check ) {
421
+function wpinv_sequential_number_active($type = '') {
422
+    $check = apply_filters('wpinv_pre_check_sequential_number_active', null, $type);
423
+    if (null !== $check) {
424 424
         return $check;
425 425
     }
426 426
     
427
-    return wpinv_get_option( 'sequential_invoice_number' );
427
+    return wpinv_get_option('sequential_invoice_number');
428 428
 }
429 429
 
430
-function wpinv_switch_to_locale( $locale = NULL ) {
430
+function wpinv_switch_to_locale($locale = NULL) {
431 431
     global $invoicing, $wpi_switch_locale;
432 432
 
433
-    if ( ! empty( $invoicing ) && function_exists( 'switch_to_locale' ) ) {
434
-        $locale = empty( $locale ) ? get_locale() : $locale;
433
+    if (!empty($invoicing) && function_exists('switch_to_locale')) {
434
+        $locale = empty($locale) ? get_locale() : $locale;
435 435
 
436
-        switch_to_locale( $locale );
436
+        switch_to_locale($locale);
437 437
 
438 438
         $wpi_switch_locale = $locale;
439 439
 
440
-        add_filter( 'plugin_locale', 'get_locale' );
440
+        add_filter('plugin_locale', 'get_locale');
441 441
 
442 442
         $invoicing->load_textdomain();
443 443
 
444
-        do_action( 'wpinv_switch_to_locale', $locale );
444
+        do_action('wpinv_switch_to_locale', $locale);
445 445
     }
446 446
 }
447 447
 
448 448
 function wpinv_restore_locale() {
449 449
     global $invoicing, $wpi_switch_locale;
450 450
     
451
-    if ( ! empty( $invoicing ) && function_exists( 'restore_previous_locale' ) && $wpi_switch_locale ) {
451
+    if (!empty($invoicing) && function_exists('restore_previous_locale') && $wpi_switch_locale) {
452 452
         restore_previous_locale();
453 453
 
454 454
         $wpi_switch_locale = NULL;
455 455
 
456
-        remove_filter( 'plugin_locale', 'get_locale' );
456
+        remove_filter('plugin_locale', 'get_locale');
457 457
 
458 458
         $invoicing->load_textdomain();
459 459
 
460
-        do_action( 'wpinv_restore_locale' );
460
+        do_action('wpinv_restore_locale');
461 461
     }
462 462
 }
463 463
\ No newline at end of file
Please login to merge, or discard this patch.
includes/wpinv-invoice-functions.php 1 patch
Spacing   +775 added lines, -775 removed lines patch added patch discarded remove patch
@@ -7,14 +7,14 @@  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_get_invoice_cart_id() {
15 15
     $wpinv_checkout = wpinv_get_checkout_session();
16 16
     
17
-    if ( !empty( $wpinv_checkout['invoice_id'] ) ) {
17
+    if (!empty($wpinv_checkout['invoice_id'])) {
18 18
         return $wpinv_checkout['invoice_id'];
19 19
     }
20 20
     
@@ -28,48 +28,48 @@  discard block
 block discarded – undo
28 28
  * @param  bool          $wp_error       Whether to return false or WP_Error on failure.
29 29
  * @return mixed         The value 0 or WP_Error on failure. The WPInv_Invoice object on success.
30 30
  */
31
-function wpinv_insert_invoice( $invoice_data = array(), $wp_error = false ) {
32
-    if ( empty( $invoice_data ) ) {
31
+function wpinv_insert_invoice($invoice_data = array(), $wp_error = false) {
32
+    if (empty($invoice_data)) {
33 33
         return false;
34 34
     }
35 35
     
36
-    if ( !( !empty( $invoice_data['cart_details'] ) && is_array( $invoice_data['cart_details'] ) ) ) {
37
-        return $wp_error ? new WP_Error( 'wpinv_invalid_items', __( 'Invoice must have atleast one item.', 'invoicing' ) ) : 0;
36
+    if (!(!empty($invoice_data['cart_details']) && is_array($invoice_data['cart_details']))) {
37
+        return $wp_error ? new WP_Error('wpinv_invalid_items', __('Invoice must have atleast one item.', 'invoicing')) : 0;
38 38
     }
39 39
     
40 40
     // If no user id is provided, default to the current user id
41
-    if ( empty( $invoice_data['user_id'] ) ) {
41
+    if (empty($invoice_data['user_id'])) {
42 42
         $invoice_data['user_id'] = get_current_user_id();
43 43
     }
44 44
     
45
-    $invoice_data['invoice_id'] = !empty( $invoice_data['invoice_id'] ) ? (int)$invoice_data['invoice_id'] : 0;
45
+    $invoice_data['invoice_id'] = !empty($invoice_data['invoice_id']) ? (int) $invoice_data['invoice_id'] : 0;
46 46
     
47
-    if ( empty( $invoice_data['status'] ) ) {
47
+    if (empty($invoice_data['status'])) {
48 48
         $invoice_data['status'] = 'wpi-pending';
49 49
     }
50 50
 
51
-    if ( empty( $invoice_data['post_type'] ) ) {
51
+    if (empty($invoice_data['post_type'])) {
52 52
         $invoice_data['post_type'] = 'wpi-invoice';
53 53
     }
54 54
     
55
-    if ( empty( $invoice_data['ip'] ) ) {
55
+    if (empty($invoice_data['ip'])) {
56 56
         $invoice_data['ip'] = wpinv_get_ip();
57 57
     }
58 58
 
59 59
     // default invoice args, note that status is checked for validity in wpinv_create_invoice()
60 60
     $default_args = array(
61
-        'invoice_id'    => (int)$invoice_data['invoice_id'],
62
-        'user_id'       => (int)$invoice_data['user_id'],
61
+        'invoice_id'    => (int) $invoice_data['invoice_id'],
62
+        'user_id'       => (int) $invoice_data['user_id'],
63 63
         'status'        => $invoice_data['status'],
64 64
         'post_type'     => $invoice_data['post_type'],
65 65
     );
66 66
 
67
-    $invoice = wpinv_create_invoice( $default_args, $invoice_data, true );
68
-    if ( is_wp_error( $invoice ) ) {
67
+    $invoice = wpinv_create_invoice($default_args, $invoice_data, true);
68
+    if (is_wp_error($invoice)) {
69 69
         return $wp_error ? $invoice : 0;
70 70
     }
71 71
     
72
-    if ( empty( $invoice_data['invoice_id'] ) ) {
72
+    if (empty($invoice_data['invoice_id'])) {
73 73
         //$invoice->add_note( wp_sprintf( __( 'Invoice is created with status %s.', 'invoicing' ), wpinv_status_nicename( $invoice->status ) ) );
74 74
     }
75 75
     
@@ -92,24 +92,24 @@  discard block
 block discarded – undo
92 92
         'discount'              => array(),
93 93
     );
94 94
 
95
-    if ( $user_id = (int)$invoice->get_user_id() ) {
96
-        if ( $user_address = wpinv_get_user_address( $user_id ) ) {
97
-            $default_user_info = wp_parse_args( $user_address, $default_user_info );
95
+    if ($user_id = (int) $invoice->get_user_id()) {
96
+        if ($user_address = wpinv_get_user_address($user_id)) {
97
+            $default_user_info = wp_parse_args($user_address, $default_user_info);
98 98
         }
99 99
     }
100 100
     
101
-    if ( empty( $invoice_data['user_info'] ) ) {
101
+    if (empty($invoice_data['user_info'])) {
102 102
         $invoice_data['user_info'] = array();
103 103
     }
104 104
     
105
-    $user_info = wp_parse_args( $invoice_data['user_info'], $default_user_info );
105
+    $user_info = wp_parse_args($invoice_data['user_info'], $default_user_info);
106 106
     
107
-    if ( empty( $user_info['first_name'] ) ) {
107
+    if (empty($user_info['first_name'])) {
108 108
         $user_info['first_name'] = $default_user_info['first_name'];
109 109
         $user_info['last_name'] = $default_user_info['last_name'];
110 110
     }
111 111
     
112
-    if ( empty( $user_info['country'] ) ) {
112
+    if (empty($user_info['country'])) {
113 113
         $user_info['country'] = $default_user_info['country'];
114 114
         $user_info['state'] = $default_user_info['state'];
115 115
         $user_info['city'] = $default_user_info['city'];
@@ -118,13 +118,13 @@  discard block
 block discarded – undo
118 118
         $user_info['phone'] = $default_user_info['phone'];
119 119
     }
120 120
     
121
-    if ( !empty( $user_info['discount'] ) && !is_array( $user_info['discount'] ) ) {
122
-        $user_info['discount'] = (array)$user_info['discount'];
121
+    if (!empty($user_info['discount']) && !is_array($user_info['discount'])) {
122
+        $user_info['discount'] = (array) $user_info['discount'];
123 123
     }
124 124
 
125 125
     // Payment details
126 126
     $payment_details = array();
127
-    if ( !empty( $invoice_data['payment_details'] ) ) {
127
+    if (!empty($invoice_data['payment_details'])) {
128 128
         $default_payment_details = array(
129 129
             'gateway'           => 'manual',
130 130
             'gateway_title'     => '',
@@ -132,56 +132,56 @@  discard block
 block discarded – undo
132 132
             'transaction_id'    => '',
133 133
         );
134 134
         
135
-        $payment_details = wp_parse_args( $invoice_data['payment_details'], $default_payment_details );
135
+        $payment_details = wp_parse_args($invoice_data['payment_details'], $default_payment_details);
136 136
         
137
-        if ( empty( $payment_details['gateway'] ) ) {
137
+        if (empty($payment_details['gateway'])) {
138 138
             $payment_details['gateway'] = 'manual';
139 139
         }
140 140
         
141
-        if ( empty( $payment_details['currency'] ) ) {
141
+        if (empty($payment_details['currency'])) {
142 142
             $payment_details['currency'] = wpinv_get_default_country();
143 143
         }
144 144
         
145
-        if ( empty( $payment_details['gateway_title'] ) ) {
146
-            $payment_details['gateway_title'] = wpinv_get_gateway_checkout_label( $payment_details['gateway'] );
145
+        if (empty($payment_details['gateway_title'])) {
146
+            $payment_details['gateway_title'] = wpinv_get_gateway_checkout_label($payment_details['gateway']);
147 147
         }
148 148
     }
149 149
     
150
-    $invoice->set( 'status', ( !empty( $invoice_data['status'] ) ? $invoice_data['status'] : 'wpi-pending' ) );
151
-    
152
-    if ( !empty( $payment_details ) ) {
153
-        $invoice->set( 'currency', $payment_details['currency'] );
154
-        $invoice->set( 'gateway', $payment_details['gateway'] );
155
-        $invoice->set( 'gateway_title', $payment_details['gateway_title'] );
156
-        $invoice->set( 'transaction_id', $payment_details['transaction_id'] );
157
-    }
158
-    
159
-    $invoice->set( 'user_info', $user_info );
160
-    $invoice->set( 'first_name', $user_info['first_name'] );
161
-    $invoice->set( 'last_name', $user_info['last_name'] );
162
-    $invoice->set( 'address', $user_info['address'] );
163
-    $invoice->set( 'company', $user_info['company'] );
164
-    $invoice->set( 'vat_number', $user_info['vat_number'] );
165
-    $invoice->set( 'phone', $user_info['phone'] );
166
-    $invoice->set( 'city', $user_info['city'] );
167
-    $invoice->set( 'country', $user_info['country'] );
168
-    $invoice->set( 'state', $user_info['state'] );
169
-    $invoice->set( 'zip', $user_info['zip'] );
170
-    $invoice->set( 'discounts', $user_info['discount'] );
171
-    $invoice->set( 'ip', ( !empty( $invoice_data['ip'] ) ? $invoice_data['ip'] : wpinv_get_ip() ) );
172
-    $invoice->set( 'mode', ( wpinv_is_test_mode() ? 'test' : 'live' ) );
173
-    $invoice->set( 'parent_invoice', ( !empty( $invoice_data['parent'] ) ? absint( $invoice_data['parent'] ) : '' ) );
174
-    
175
-    if ( !empty( $invoice_data['cart_details'] ) && is_array( $invoice_data['cart_details'] ) ) {
176
-        foreach ( $invoice_data['cart_details'] as $key => $item ) {
177
-            $item_id        = !empty( $item['id'] ) ? $item['id'] : 0;
178
-            $quantity       = !empty( $item['quantity'] ) ? $item['quantity'] : 1;
179
-            $name           = !empty( $item['name'] ) ? $item['name'] : '';
180
-            $item_price     = isset( $item['item_price'] ) ? $item['item_price'] : '';
150
+    $invoice->set('status', (!empty($invoice_data['status']) ? $invoice_data['status'] : 'wpi-pending'));
151
+    
152
+    if (!empty($payment_details)) {
153
+        $invoice->set('currency', $payment_details['currency']);
154
+        $invoice->set('gateway', $payment_details['gateway']);
155
+        $invoice->set('gateway_title', $payment_details['gateway_title']);
156
+        $invoice->set('transaction_id', $payment_details['transaction_id']);
157
+    }
158
+    
159
+    $invoice->set('user_info', $user_info);
160
+    $invoice->set('first_name', $user_info['first_name']);
161
+    $invoice->set('last_name', $user_info['last_name']);
162
+    $invoice->set('address', $user_info['address']);
163
+    $invoice->set('company', $user_info['company']);
164
+    $invoice->set('vat_number', $user_info['vat_number']);
165
+    $invoice->set('phone', $user_info['phone']);
166
+    $invoice->set('city', $user_info['city']);
167
+    $invoice->set('country', $user_info['country']);
168
+    $invoice->set('state', $user_info['state']);
169
+    $invoice->set('zip', $user_info['zip']);
170
+    $invoice->set('discounts', $user_info['discount']);
171
+    $invoice->set('ip', (!empty($invoice_data['ip']) ? $invoice_data['ip'] : wpinv_get_ip()));
172
+    $invoice->set('mode', (wpinv_is_test_mode() ? 'test' : 'live'));
173
+    $invoice->set('parent_invoice', (!empty($invoice_data['parent']) ? absint($invoice_data['parent']) : ''));
174
+    
175
+    if (!empty($invoice_data['cart_details']) && is_array($invoice_data['cart_details'])) {
176
+        foreach ($invoice_data['cart_details'] as $key => $item) {
177
+            $item_id        = !empty($item['id']) ? $item['id'] : 0;
178
+            $quantity       = !empty($item['quantity']) ? $item['quantity'] : 1;
179
+            $name           = !empty($item['name']) ? $item['name'] : '';
180
+            $item_price     = isset($item['item_price']) ? $item['item_price'] : '';
181 181
             
182
-            $post_item  = new WPInv_Item( $item_id );
183
-            if ( !empty( $post_item ) ) {
184
-                $name       = !empty( $name ) ? $name : $post_item->get_name();
182
+            $post_item = new WPInv_Item($item_id);
183
+            if (!empty($post_item)) {
184
+                $name       = !empty($name) ? $name : $post_item->get_name();
185 185
                 $item_price = $item_price !== '' ? $item_price : $post_item->get_price();
186 186
             } else {
187 187
                 continue;
@@ -191,262 +191,262 @@  discard block
 block discarded – undo
191 191
                 'name'          => $name,
192 192
                 'quantity'      => $quantity,
193 193
                 'item_price'    => $item_price,
194
-                'custom_price'  => isset( $item['custom_price'] ) ? $item['custom_price'] : '',
195
-                'tax'           => !empty( $item['tax'] ) ? $item['tax'] : 0.00,
196
-                'discount'      => isset( $item['discount'] ) ? $item['discount'] : 0,
197
-                'meta'          => isset( $item['meta'] ) ? $item['meta'] : array(),
198
-                'fees'          => isset( $item['fees'] ) ? $item['fees'] : array(),
194
+                'custom_price'  => isset($item['custom_price']) ? $item['custom_price'] : '',
195
+                'tax'           => !empty($item['tax']) ? $item['tax'] : 0.00,
196
+                'discount'      => isset($item['discount']) ? $item['discount'] : 0,
197
+                'meta'          => isset($item['meta']) ? $item['meta'] : array(),
198
+                'fees'          => isset($item['fees']) ? $item['fees'] : array(),
199 199
             );
200 200
 
201
-            $invoice->add_item( $item_id, $args );
201
+            $invoice->add_item($item_id, $args);
202 202
         }
203 203
     }
204 204
 
205
-    $invoice->increase_tax( wpinv_get_cart_fee_tax() );
205
+    $invoice->increase_tax(wpinv_get_cart_fee_tax());
206 206
 
207
-    if ( isset( $invoice_data['post_date'] ) ) {
208
-        $invoice->set( 'date', $invoice_data['post_date'] );
207
+    if (isset($invoice_data['post_date'])) {
208
+        $invoice->set('date', $invoice_data['post_date']);
209 209
     }
210 210
     
211 211
     // Invoice due date
212
-    if ( isset( $invoice_data['due_date'] ) ) {
213
-        $invoice->set( 'due_date', $invoice_data['due_date'] );
212
+    if (isset($invoice_data['due_date'])) {
213
+        $invoice->set('due_date', $invoice_data['due_date']);
214 214
     }
215 215
     
216 216
     $invoice->save();
217 217
     
218 218
     // Add notes
219
-    if ( !empty( $invoice_data['private_note'] ) ) {
220
-        $invoice->add_note( $invoice_data['private_note'] );
219
+    if (!empty($invoice_data['private_note'])) {
220
+        $invoice->add_note($invoice_data['private_note']);
221 221
     }
222
-    if ( !empty( $invoice_data['user_note'] ) ) {
223
-        $invoice->add_note( $invoice_data['user_note'], true );
222
+    if (!empty($invoice_data['user_note'])) {
223
+        $invoice->add_note($invoice_data['user_note'], true);
224 224
     }
225 225
     
226
-    if ( $invoice->is_quote() ) {
226
+    if ($invoice->is_quote()) {
227 227
 
228
-        if ( isset( $invoice_data['valid_until'] ) ) {
229
-            update_post_meta( $invoice->ID, 'wpinv_quote_valid_until', $invoice_data['valid_until'] );
228
+        if (isset($invoice_data['valid_until'])) {
229
+            update_post_meta($invoice->ID, 'wpinv_quote_valid_until', $invoice_data['valid_until']);
230 230
         }
231 231
         return $invoice;
232 232
 
233 233
     }
234 234
 
235
-    do_action( 'wpinv_insert_invoice', $invoice->ID, $invoice_data );
235
+    do_action('wpinv_insert_invoice', $invoice->ID, $invoice_data);
236 236
 
237
-    if ( ! empty( $invoice->ID ) ) {
237
+    if (!empty($invoice->ID)) {
238 238
         global $wpi_userID, $wpinv_ip_address_country;
239 239
         
240 240
         $checkout_session = wpinv_get_checkout_session();
241 241
         
242 242
         $data_session                   = array();
243 243
         $data_session['invoice_id']     = $invoice->ID;
244
-        $data_session['cart_discounts'] = $invoice->get_discounts( true );
244
+        $data_session['cart_discounts'] = $invoice->get_discounts(true);
245 245
         
246
-        wpinv_set_checkout_session( $data_session );
246
+        wpinv_set_checkout_session($data_session);
247 247
         
248
-        $wpi_userID         = (int)$invoice->get_user_id();
248
+        $wpi_userID         = (int) $invoice->get_user_id();
249 249
         
250
-        $_POST['country']   = !empty( $invoice->country ) ? $invoice->country : wpinv_get_default_country();
250
+        $_POST['country']   = !empty($invoice->country) ? $invoice->country : wpinv_get_default_country();
251 251
         $_POST['state']     = $invoice->state;
252 252
 
253
-        $invoice->set( 'country', sanitize_text_field( $_POST['country'] ) );
254
-        $invoice->set( 'state', sanitize_text_field( $_POST['state'] ) );
253
+        $invoice->set('country', sanitize_text_field($_POST['country']));
254
+        $invoice->set('state', sanitize_text_field($_POST['state']));
255 255
         
256 256
         $wpinv_ip_address_country = $invoice->country;
257 257
         
258
-        $invoice = $invoice->recalculate_totals( true );
258
+        $invoice = $invoice->recalculate_totals(true);
259 259
         
260
-        wpinv_set_checkout_session( $checkout_session );
260
+        wpinv_set_checkout_session($checkout_session);
261 261
                     
262 262
         return $invoice;
263 263
     }
264 264
     
265
-    if ( $wp_error ) {
266
-        if ( is_wp_error( $invoice ) ) {
265
+    if ($wp_error) {
266
+        if (is_wp_error($invoice)) {
267 267
             return $invoice;
268 268
         } else {
269
-            return new WP_Error( 'wpinv_insert_invoice_error', __( 'Error in insert invoice.', 'invoicing' ) );
269
+            return new WP_Error('wpinv_insert_invoice_error', __('Error in insert invoice.', 'invoicing'));
270 270
         }
271 271
     } else {
272 272
         return 0;
273 273
     }
274 274
 }
275 275
 
276
-function wpinv_update_invoice( $invoice_data = array(), $wp_error = false ) {
277
-    $invoice_ID = !empty( $invoice_data['ID'] ) ? absint( $invoice_data['ID'] ) : NULL;
276
+function wpinv_update_invoice($invoice_data = array(), $wp_error = false) {
277
+    $invoice_ID = !empty($invoice_data['ID']) ? absint($invoice_data['ID']) : NULL;
278 278
 
279
-    if ( !$invoice_ID ) {
280
-        if ( $wp_error ) {
281
-            return new WP_Error( 'invalid_invoice_id', __( 'Invalid invoice ID.', 'invoicing' ) );
279
+    if (!$invoice_ID) {
280
+        if ($wp_error) {
281
+            return new WP_Error('invalid_invoice_id', __('Invalid invoice ID.', 'invoicing'));
282 282
         }
283 283
         return 0;
284 284
     }
285 285
 
286
-    $invoice = wpinv_get_invoice( $invoice_ID );
286
+    $invoice = wpinv_get_invoice($invoice_ID);
287 287
 
288
-    $recurring_item = $invoice->is_recurring() ? $invoice->get_recurring( true ) : NULL;
288
+    $recurring_item = $invoice->is_recurring() ? $invoice->get_recurring(true) : NULL;
289 289
 
290
-    if ( empty( $invoice->ID ) ) {
291
-        if ( $wp_error ) {
292
-            return new WP_Error( 'invalid_invoice', __( 'Invalid invoice.', 'invoicing' ) );
290
+    if (empty($invoice->ID)) {
291
+        if ($wp_error) {
292
+            return new WP_Error('invalid_invoice', __('Invalid invoice.', 'invoicing'));
293 293
         }
294 294
         return 0;
295 295
     }
296 296
 
297
-    if ( ! $invoice->has_status( array( 'wpi-pending' ) ) && ! $invoice->is_quote()  ) {
298
-        if ( $wp_error ) {
299
-            return new WP_Error( 'invalid_invoice_status', __( 'Only invoice with pending payment is allowed to update.', 'invoicing' ) );
297
+    if (!$invoice->has_status(array('wpi-pending')) && !$invoice->is_quote()) {
298
+        if ($wp_error) {
299
+            return new WP_Error('invalid_invoice_status', __('Only invoice with pending payment is allowed to update.', 'invoicing'));
300 300
         }
301 301
         return 0;
302 302
     }
303 303
 
304 304
     // Invoice status
305
-    if ( !empty( $invoice_data['status'] ) ) {
306
-        $invoice->set( 'status', $invoice_data['status'] );
305
+    if (!empty($invoice_data['status'])) {
306
+        $invoice->set('status', $invoice_data['status']);
307 307
     }
308 308
 
309 309
     // Invoice date
310
-    if ( !empty( $invoice_data['post_date'] ) ) {
311
-        $invoice->set( 'date', $invoice_data['post_date'] );
310
+    if (!empty($invoice_data['post_date'])) {
311
+        $invoice->set('date', $invoice_data['post_date']);
312 312
     }
313 313
 
314 314
     // Invoice due date
315
-    if ( isset( $invoice_data['due_date'] ) ) {
316
-        $invoice->set( 'due_date', $invoice_data['due_date'] );
315
+    if (isset($invoice_data['due_date'])) {
316
+        $invoice->set('due_date', $invoice_data['due_date']);
317 317
     }
318 318
 
319 319
     // Invoice IP address
320
-    if ( !empty( $invoice_data['ip'] ) ) {
321
-        $invoice->set( 'ip', $invoice_data['ip'] );
320
+    if (!empty($invoice_data['ip'])) {
321
+        $invoice->set('ip', $invoice_data['ip']);
322 322
     }
323 323
     
324 324
     // User info
325
-    if ( !empty( $invoice_data['user_info'] ) && is_array( $invoice_data['user_info'] ) ) {
326
-        $user_info = wp_parse_args( $invoice_data['user_info'], $invoice->user_info );
325
+    if (!empty($invoice_data['user_info']) && is_array($invoice_data['user_info'])) {
326
+        $user_info = wp_parse_args($invoice_data['user_info'], $invoice->user_info);
327 327
 
328
-        if ( $discounts = $invoice->get_discounts() ) {
328
+        if ($discounts = $invoice->get_discounts()) {
329 329
             $set_discount = $discounts;
330 330
         } else {
331 331
             $set_discount = '';
332 332
         }
333 333
 
334 334
         // Manage discount
335
-        if ( !empty( $invoice_data['user_info']['discount'] ) ) {
335
+        if (!empty($invoice_data['user_info']['discount'])) {
336 336
             // Remove discount
337
-            if ( $invoice_data['user_info']['discount'] == 'none' ) {
337
+            if ($invoice_data['user_info']['discount'] == 'none') {
338 338
                 $set_discount = '';
339 339
             } else {
340 340
                 $set_discount = $invoice_data['user_info']['discount'];
341 341
             }
342 342
 
343
-            $invoice->set( 'discounts', $set_discount );
343
+            $invoice->set('discounts', $set_discount);
344 344
         }
345 345
 
346 346
         $user_info['discount'] = $set_discount;
347 347
 
348
-        $invoice->set( 'user_info', $user_info );
348
+        $invoice->set('user_info', $user_info);
349 349
     }
350 350
 
351
-    if ( !empty( $invoice_data['cart_details'] ) && is_array( $invoice_data['cart_details'] ) && $cart_details = $invoice_data['cart_details'] ) {
352
-        $remove_items = !empty( $cart_details['remove_items'] ) && is_array( $cart_details['remove_items'] ) ? $cart_details['remove_items'] : array();
351
+    if (!empty($invoice_data['cart_details']) && is_array($invoice_data['cart_details']) && $cart_details = $invoice_data['cart_details']) {
352
+        $remove_items = !empty($cart_details['remove_items']) && is_array($cart_details['remove_items']) ? $cart_details['remove_items'] : array();
353 353
 
354
-        if ( !empty( $remove_items[0]['id'] ) ) {
355
-            foreach ( $remove_items as $item ) {
356
-                $item_id        = !empty( $item['id'] ) ? $item['id'] : 0;
357
-                $quantity       = !empty( $item['quantity'] ) ? $item['quantity'] : 1;
358
-                if ( empty( $item_id ) ) {
354
+        if (!empty($remove_items[0]['id'])) {
355
+            foreach ($remove_items as $item) {
356
+                $item_id        = !empty($item['id']) ? $item['id'] : 0;
357
+                $quantity       = !empty($item['quantity']) ? $item['quantity'] : 1;
358
+                if (empty($item_id)) {
359 359
                     continue;
360 360
                 }
361 361
 
362
-                foreach ( $invoice->cart_details as $cart_index => $cart_item ) {
363
-                    if ( $item_id == $cart_item['id'] ) {
362
+                foreach ($invoice->cart_details as $cart_index => $cart_item) {
363
+                    if ($item_id == $cart_item['id']) {
364 364
                         $args = array(
365 365
                             'id'         => $item_id,
366 366
                             'quantity'   => $quantity,
367 367
                             'cart_index' => $cart_index
368 368
                         );
369 369
 
370
-                        $invoice->remove_item( $item_id, $args );
370
+                        $invoice->remove_item($item_id, $args);
371 371
                         break;
372 372
                     }
373 373
                 }
374 374
             }
375 375
         }
376 376
 
377
-        $add_items = !empty( $cart_details['add_items'] ) && is_array( $cart_details['add_items'] ) ? $cart_details['add_items'] : array();
377
+        $add_items = !empty($cart_details['add_items']) && is_array($cart_details['add_items']) ? $cart_details['add_items'] : array();
378 378
 
379
-        if ( !empty( $add_items[0]['id'] ) ) {
380
-            foreach ( $add_items as $item ) {
381
-                $item_id        = !empty( $item['id'] ) ? $item['id'] : 0;
382
-                $post_item      = new WPInv_Item( $item_id );
383
-                if ( empty( $post_item ) ) {
379
+        if (!empty($add_items[0]['id'])) {
380
+            foreach ($add_items as $item) {
381
+                $item_id        = !empty($item['id']) ? $item['id'] : 0;
382
+                $post_item      = new WPInv_Item($item_id);
383
+                if (empty($post_item)) {
384 384
                     continue;
385 385
                 }
386 386
 
387 387
                 $valid_item = true;
388
-                if ( !empty( $recurring_item ) ) {
389
-                    if ( $recurring_item->ID != $item_id ) {
388
+                if (!empty($recurring_item)) {
389
+                    if ($recurring_item->ID != $item_id) {
390 390
                         $valid_item = false;
391 391
                     }
392
-                } else if ( wpinv_is_recurring_item( $item_id ) ) {
392
+                } else if (wpinv_is_recurring_item($item_id)) {
393 393
                     $valid_item = false;
394 394
                 }
395 395
                 
396
-                if ( !$valid_item ) {
397
-                    if ( $wp_error ) {
398
-                        return new WP_Error( 'invalid_invoice_item', __( 'You can not add item because recurring item must be paid individually!', 'invoicing' ) );
396
+                if (!$valid_item) {
397
+                    if ($wp_error) {
398
+                        return new WP_Error('invalid_invoice_item', __('You can not add item because recurring item must be paid individually!', 'invoicing'));
399 399
                     }
400 400
                     return 0;
401 401
                 }
402 402
 
403
-                $quantity       = !empty( $item['quantity'] ) ? $item['quantity'] : 1;
404
-                $name           = !empty( $item['name'] ) ? $item['name'] : $post_item->get_name();
405
-                $item_price     = isset( $item['item_price'] ) ? $item['item_price'] : $post_item->get_price();
403
+                $quantity       = !empty($item['quantity']) ? $item['quantity'] : 1;
404
+                $name           = !empty($item['name']) ? $item['name'] : $post_item->get_name();
405
+                $item_price     = isset($item['item_price']) ? $item['item_price'] : $post_item->get_price();
406 406
 
407 407
                 $args = array(
408 408
                     'name'          => $name,
409 409
                     'quantity'      => $quantity,
410 410
                     'item_price'    => $item_price,
411
-                    'custom_price'  => isset( $item['custom_price'] ) ? $item['custom_price'] : '',
412
-                    'tax'           => !empty( $item['tax'] ) ? $item['tax'] : 0,
413
-                    'discount'      => isset( $item['discount'] ) ? $item['discount'] : 0,
414
-                    'meta'          => isset( $item['meta'] ) ? $item['meta'] : array(),
415
-                    'fees'          => isset( $item['fees'] ) ? $item['fees'] : array(),
411
+                    'custom_price'  => isset($item['custom_price']) ? $item['custom_price'] : '',
412
+                    'tax'           => !empty($item['tax']) ? $item['tax'] : 0,
413
+                    'discount'      => isset($item['discount']) ? $item['discount'] : 0,
414
+                    'meta'          => isset($item['meta']) ? $item['meta'] : array(),
415
+                    'fees'          => isset($item['fees']) ? $item['fees'] : array(),
416 416
                 );
417 417
 
418
-                $invoice->add_item( $item_id, $args );
418
+                $invoice->add_item($item_id, $args);
419 419
             }
420 420
         }
421 421
     }
422 422
     
423 423
     // Payment details
424
-    if ( !empty( $invoice_data['payment_details'] ) && $payment_details = $invoice_data['payment_details'] ) {
425
-        if ( !empty( $payment_details['gateway'] ) ) {
426
-            $invoice->set( 'gateway', $payment_details['gateway'] );
424
+    if (!empty($invoice_data['payment_details']) && $payment_details = $invoice_data['payment_details']) {
425
+        if (!empty($payment_details['gateway'])) {
426
+            $invoice->set('gateway', $payment_details['gateway']);
427 427
         }
428 428
 
429
-        if ( !empty( $payment_details['transaction_id'] ) ) {
430
-            $invoice->set( 'transaction_id', $payment_details['transaction_id'] );
429
+        if (!empty($payment_details['transaction_id'])) {
430
+            $invoice->set('transaction_id', $payment_details['transaction_id']);
431 431
         }
432 432
     }
433 433
 
434
-    do_action( 'wpinv_pre_update_invoice', $invoice->ID, $invoice_data );
434
+    do_action('wpinv_pre_update_invoice', $invoice->ID, $invoice_data);
435 435
 
436 436
     // Parent invoice
437
-    if ( !empty( $invoice_data['parent'] ) ) {
438
-        $invoice->set( 'parent_invoice', $invoice_data['parent'] );
437
+    if (!empty($invoice_data['parent'])) {
438
+        $invoice->set('parent_invoice', $invoice_data['parent']);
439 439
     }
440 440
 
441 441
     // Save invoice data.
442 442
     $invoice->save();
443 443
     
444
-    if ( empty( $invoice->ID ) || is_wp_error( $invoice ) ) {
445
-        if ( $wp_error ) {
446
-            if ( is_wp_error( $invoice ) ) {
444
+    if (empty($invoice->ID) || is_wp_error($invoice)) {
445
+        if ($wp_error) {
446
+            if (is_wp_error($invoice)) {
447 447
                 return $invoice;
448 448
             } else {
449
-                return new WP_Error( 'wpinv_update_invoice_error', __( 'Error in update invoice.', 'invoicing' ) );
449
+                return new WP_Error('wpinv_update_invoice_error', __('Error in update invoice.', 'invoicing'));
450 450
             }
451 451
         } else {
452 452
             return 0;
@@ -454,19 +454,19 @@  discard block
 block discarded – undo
454 454
     }
455 455
 
456 456
     // Add private note
457
-    if ( !empty( $invoice_data['private_note'] ) ) {
458
-        $invoice->add_note( $invoice_data['private_note'] );
457
+    if (!empty($invoice_data['private_note'])) {
458
+        $invoice->add_note($invoice_data['private_note']);
459 459
     }
460 460
 
461 461
     // Add user note
462
-    if ( !empty( $invoice_data['user_note'] ) ) {
463
-        $invoice->add_note( $invoice_data['user_note'], true );
462
+    if (!empty($invoice_data['user_note'])) {
463
+        $invoice->add_note($invoice_data['user_note'], true);
464 464
     }
465 465
 
466
-    if ( $invoice->is_quote() ) {
466
+    if ($invoice->is_quote()) {
467 467
 
468
-        if ( isset( $invoice_data['valid_until'] ) ) {
469
-            update_post_meta( $invoice->ID, 'wpinv_quote_valid_until', $invoice_data['valid_until'] );
468
+        if (isset($invoice_data['valid_until'])) {
469
+            update_post_meta($invoice->ID, 'wpinv_quote_valid_until', $invoice_data['valid_until']);
470 470
         }
471 471
         return $invoice;
472 472
 
@@ -478,450 +478,450 @@  discard block
 block discarded – undo
478 478
 
479 479
     $data_session                   = array();
480 480
     $data_session['invoice_id']     = $invoice->ID;
481
-    $data_session['cart_discounts'] = $invoice->get_discounts( true );
481
+    $data_session['cart_discounts'] = $invoice->get_discounts(true);
482 482
 
483
-    wpinv_set_checkout_session( $data_session );
483
+    wpinv_set_checkout_session($data_session);
484 484
 
485
-    $wpi_userID         = (int)$invoice->get_user_id();
485
+    $wpi_userID         = (int) $invoice->get_user_id();
486 486
 
487
-    $_POST['country']   = !empty( $invoice->country ) ? $invoice->country : wpinv_get_default_country();
487
+    $_POST['country']   = !empty($invoice->country) ? $invoice->country : wpinv_get_default_country();
488 488
     $_POST['state']     = $invoice->state;
489 489
 
490
-    $invoice->set( 'country', sanitize_text_field( $_POST['country'] ) );
491
-    $invoice->set( 'state', sanitize_text_field( $_POST['state'] ) );
490
+    $invoice->set('country', sanitize_text_field($_POST['country']));
491
+    $invoice->set('state', sanitize_text_field($_POST['state']));
492 492
 
493 493
     $wpinv_ip_address_country = $invoice->country;
494 494
 
495
-    $invoice = $invoice->recalculate_totals( true );
495
+    $invoice = $invoice->recalculate_totals(true);
496 496
 
497
-    do_action( 'wpinv_post_update_invoice', $invoice->ID, $invoice_data );
497
+    do_action('wpinv_post_update_invoice', $invoice->ID, $invoice_data);
498 498
 
499
-    wpinv_set_checkout_session( $checkout_session );
499
+    wpinv_set_checkout_session($checkout_session);
500 500
 
501 501
     return $invoice;
502 502
 }
503 503
 
504
-function wpinv_get_invoice( $invoice_id = 0, $cart = false ) {
505
-    if ( $cart && empty( $invoice_id ) ) {
506
-        $invoice_id = (int)wpinv_get_invoice_cart_id();
504
+function wpinv_get_invoice($invoice_id = 0, $cart = false) {
505
+    if ($cart && empty($invoice_id)) {
506
+        $invoice_id = (int) wpinv_get_invoice_cart_id();
507 507
     }
508 508
 
509
-    $invoice = new WPInv_Invoice( $invoice_id );
509
+    $invoice = new WPInv_Invoice($invoice_id);
510 510
 
511
-    if ( ! empty( $invoice ) && ! empty( $invoice->ID ) ) {
511
+    if (!empty($invoice) && !empty($invoice->ID)) {
512 512
         return $invoice;
513 513
     }
514 514
     
515 515
     return NULL;
516 516
 }
517 517
 
518
-function wpinv_get_invoice_cart( $invoice_id = 0 ) {
519
-    return wpinv_get_invoice( $invoice_id, true );
518
+function wpinv_get_invoice_cart($invoice_id = 0) {
519
+    return wpinv_get_invoice($invoice_id, true);
520 520
 }
521 521
 
522
-function wpinv_get_invoice_description( $invoice_id = 0 ) {
523
-    $invoice = new WPInv_Invoice( $invoice_id );
522
+function wpinv_get_invoice_description($invoice_id = 0) {
523
+    $invoice = new WPInv_Invoice($invoice_id);
524 524
     return $invoice->get_description();
525 525
 }
526 526
 
527
-function wpinv_get_invoice_currency_code( $invoice_id = 0 ) {
528
-    $invoice = new WPInv_Invoice( $invoice_id );
527
+function wpinv_get_invoice_currency_code($invoice_id = 0) {
528
+    $invoice = new WPInv_Invoice($invoice_id);
529 529
     return $invoice->get_currency();
530 530
 }
531 531
 
532
-function wpinv_get_payment_user_email( $invoice_id ) {
533
-    $invoice = new WPInv_Invoice( $invoice_id );
532
+function wpinv_get_payment_user_email($invoice_id) {
533
+    $invoice = new WPInv_Invoice($invoice_id);
534 534
     return $invoice->get_email();
535 535
 }
536 536
 
537
-function wpinv_get_user_id( $invoice_id ) {
538
-    $invoice = new WPInv_Invoice( $invoice_id );
537
+function wpinv_get_user_id($invoice_id) {
538
+    $invoice = new WPInv_Invoice($invoice_id);
539 539
     return $invoice->get_user_id();
540 540
 }
541 541
 
542
-function wpinv_get_invoice_status( $invoice_id, $return_label = false ) {
543
-    $invoice = new WPInv_Invoice( $invoice_id );
542
+function wpinv_get_invoice_status($invoice_id, $return_label = false) {
543
+    $invoice = new WPInv_Invoice($invoice_id);
544 544
     
545
-    return $invoice->get_status( $return_label );
545
+    return $invoice->get_status($return_label);
546 546
 }
547 547
 
548
-function wpinv_get_payment_gateway( $invoice_id, $return_label = false ) {
549
-    $invoice = new WPInv_Invoice( $invoice_id );
548
+function wpinv_get_payment_gateway($invoice_id, $return_label = false) {
549
+    $invoice = new WPInv_Invoice($invoice_id);
550 550
     
551
-    return $invoice->get_gateway( $return_label );
551
+    return $invoice->get_gateway($return_label);
552 552
 }
553 553
 
554
-function wpinv_get_payment_gateway_name( $invoice_id ) {
555
-    $invoice = new WPInv_Invoice( $invoice_id );
554
+function wpinv_get_payment_gateway_name($invoice_id) {
555
+    $invoice = new WPInv_Invoice($invoice_id);
556 556
     
557 557
     return $invoice->get_gateway_title();
558 558
 }
559 559
 
560
-function wpinv_get_payment_transaction_id( $invoice_id ) {
561
-    $invoice = new WPInv_Invoice( $invoice_id );
560
+function wpinv_get_payment_transaction_id($invoice_id) {
561
+    $invoice = new WPInv_Invoice($invoice_id);
562 562
     
563 563
     return $invoice->get_transaction_id();
564 564
 }
565 565
 
566
-function wpinv_get_id_by_transaction_id( $key ) {
566
+function wpinv_get_id_by_transaction_id($key) {
567 567
     global $wpdb;
568 568
 
569
-    $invoice_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wpinv_transaction_id' AND meta_value = %s LIMIT 1", $key ) );
569
+    $invoice_id = $wpdb->get_var($wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wpinv_transaction_id' AND meta_value = %s LIMIT 1", $key));
570 570
 
571
-    if ( $invoice_id != NULL )
571
+    if ($invoice_id != NULL)
572 572
         return $invoice_id;
573 573
 
574 574
     return 0;
575 575
 }
576 576
 
577
-function wpinv_get_invoice_meta( $invoice_id = 0, $meta_key = '_wpinv_payment_meta', $single = true ) {
578
-    $invoice = new WPInv_Invoice( $invoice_id );
577
+function wpinv_get_invoice_meta($invoice_id = 0, $meta_key = '_wpinv_payment_meta', $single = true) {
578
+    $invoice = new WPInv_Invoice($invoice_id);
579 579
 
580
-    return $invoice->get_meta( $meta_key, $single );
580
+    return $invoice->get_meta($meta_key, $single);
581 581
 }
582 582
 
583
-function wpinv_update_invoice_meta( $invoice_id = 0, $meta_key = '', $meta_value = '', $prev_value = '' ) {
584
-    $invoice = new WPInv_Invoice( $invoice_id );
583
+function wpinv_update_invoice_meta($invoice_id = 0, $meta_key = '', $meta_value = '', $prev_value = '') {
584
+    $invoice = new WPInv_Invoice($invoice_id);
585 585
     
586
-    return $invoice->update_meta( $meta_key, $meta_value, $prev_value );
586
+    return $invoice->update_meta($meta_key, $meta_value, $prev_value);
587 587
 }
588 588
 
589
-function wpinv_get_items( $invoice_id = 0 ) {
590
-    $invoice            = wpinv_get_invoice( $invoice_id );
589
+function wpinv_get_items($invoice_id = 0) {
590
+    $invoice            = wpinv_get_invoice($invoice_id);
591 591
     
592 592
     $items              = $invoice->get_items();
593 593
     $invoice_currency   = $invoice->get_currency();
594 594
 
595
-    if ( !empty( $items ) && is_array( $items ) ) {
596
-        foreach ( $items as $key => $item ) {
595
+    if (!empty($items) && is_array($items)) {
596
+        foreach ($items as $key => $item) {
597 597
             $items[$key]['currency'] = $invoice_currency;
598 598
 
599
-            if ( !isset( $item['subtotal'] ) ) {
599
+            if (!isset($item['subtotal'])) {
600 600
                 $items[$key]['subtotal'] = $items[$key]['amount'] * 1;
601 601
             }
602 602
         }
603 603
     }
604 604
 
605
-    return apply_filters( 'wpinv_get_items', $items, $invoice_id );
605
+    return apply_filters('wpinv_get_items', $items, $invoice_id);
606 606
 }
607 607
 
608
-function wpinv_get_fees( $invoice_id = 0 ) {
609
-    $invoice           = wpinv_get_invoice( $invoice_id );
608
+function wpinv_get_fees($invoice_id = 0) {
609
+    $invoice           = wpinv_get_invoice($invoice_id);
610 610
     $fees              = $invoice->get_fees();
611 611
 
612
-    return apply_filters( 'wpinv_get_fees', $fees, $invoice_id );
612
+    return apply_filters('wpinv_get_fees', $fees, $invoice_id);
613 613
 }
614 614
 
615
-function wpinv_get_invoice_ip( $invoice_id ) {
616
-    $invoice = new WPInv_Invoice( $invoice_id );
615
+function wpinv_get_invoice_ip($invoice_id) {
616
+    $invoice = new WPInv_Invoice($invoice_id);
617 617
     return $invoice->get_ip();
618 618
 }
619 619
 
620
-function wpinv_get_invoice_user_info( $invoice_id ) {
621
-    $invoice = new WPInv_Invoice( $invoice_id );
620
+function wpinv_get_invoice_user_info($invoice_id) {
621
+    $invoice = new WPInv_Invoice($invoice_id);
622 622
     return $invoice->get_user_info();
623 623
 }
624 624
 
625
-function wpinv_subtotal( $invoice_id = 0, $currency = false ) {
626
-    $invoice = new WPInv_Invoice( $invoice_id );
625
+function wpinv_subtotal($invoice_id = 0, $currency = false) {
626
+    $invoice = new WPInv_Invoice($invoice_id);
627 627
 
628
-    return $invoice->get_subtotal( $currency );
628
+    return $invoice->get_subtotal($currency);
629 629
 }
630 630
 
631
-function wpinv_tax( $invoice_id = 0, $currency = false ) {
632
-    $invoice = new WPInv_Invoice( $invoice_id );
631
+function wpinv_tax($invoice_id = 0, $currency = false) {
632
+    $invoice = new WPInv_Invoice($invoice_id);
633 633
 
634
-    return $invoice->get_tax( $currency );
634
+    return $invoice->get_tax($currency);
635 635
 }
636 636
 
637
-function wpinv_discount( $invoice_id = 0, $currency = false, $dash = false ) {
638
-    $invoice = wpinv_get_invoice( $invoice_id );
637
+function wpinv_discount($invoice_id = 0, $currency = false, $dash = false) {
638
+    $invoice = wpinv_get_invoice($invoice_id);
639 639
 
640
-    return $invoice->get_discount( $currency, $dash );
640
+    return $invoice->get_discount($currency, $dash);
641 641
 }
642 642
 
643
-function wpinv_discount_code( $invoice_id = 0 ) {
644
-    $invoice = new WPInv_Invoice( $invoice_id );
643
+function wpinv_discount_code($invoice_id = 0) {
644
+    $invoice = new WPInv_Invoice($invoice_id);
645 645
 
646 646
     return $invoice->get_discount_code();
647 647
 }
648 648
 
649
-function wpinv_payment_total( $invoice_id = 0, $currency = false ) {
650
-    $invoice = new WPInv_Invoice( $invoice_id );
649
+function wpinv_payment_total($invoice_id = 0, $currency = false) {
650
+    $invoice = new WPInv_Invoice($invoice_id);
651 651
 
652
-    return $invoice->get_total( $currency );
652
+    return $invoice->get_total($currency);
653 653
 }
654 654
 
655
-function wpinv_get_date_created( $invoice_id = 0, $format = '' ) {
656
-    $invoice = new WPInv_Invoice( $invoice_id );
655
+function wpinv_get_date_created($invoice_id = 0, $format = '') {
656
+    $invoice = new WPInv_Invoice($invoice_id);
657 657
 
658
-    $format         = !empty( $format ) ? $format : get_option( 'date_format' );
658
+    $format         = !empty($format) ? $format : get_option('date_format');
659 659
     $date_created   = $invoice->get_created_date();
660
-    $date_created   = $date_created != '' && $date_created != '0000-00-00 00:00:00' ? date_i18n( $format, strtotime( $date_created ) ) : '';
660
+    $date_created   = $date_created != '' && $date_created != '0000-00-00 00:00:00' ? date_i18n($format, strtotime($date_created)) : '';
661 661
 
662 662
     return $date_created;
663 663
 }
664 664
 
665
-function wpinv_get_invoice_date( $invoice_id = 0, $format = '', $default = true ) {
666
-    $invoice = new WPInv_Invoice( $invoice_id );
665
+function wpinv_get_invoice_date($invoice_id = 0, $format = '', $default = true) {
666
+    $invoice = new WPInv_Invoice($invoice_id);
667 667
     
668
-    $format         = !empty( $format ) ? $format : get_option( 'date_format' );
668
+    $format         = !empty($format) ? $format : get_option('date_format');
669 669
     $date_completed = $invoice->get_completed_date();
670
-    $invoice_date   = $date_completed != '' && $date_completed != '0000-00-00 00:00:00' ? date_i18n( $format, strtotime( $date_completed ) ) : '';
671
-    if ( $invoice_date == '' && $default ) {
672
-        $invoice_date   = wpinv_get_date_created( $invoice_id, $format );
670
+    $invoice_date   = $date_completed != '' && $date_completed != '0000-00-00 00:00:00' ? date_i18n($format, strtotime($date_completed)) : '';
671
+    if ($invoice_date == '' && $default) {
672
+        $invoice_date = wpinv_get_date_created($invoice_id, $format);
673 673
     }
674 674
 
675 675
     return $invoice_date;
676 676
 }
677 677
 
678
-function wpinv_get_invoice_vat_number( $invoice_id = 0 ) {
679
-    $invoice = new WPInv_Invoice( $invoice_id );
678
+function wpinv_get_invoice_vat_number($invoice_id = 0) {
679
+    $invoice = new WPInv_Invoice($invoice_id);
680 680
     
681 681
     return $invoice->vat_number;
682 682
 }
683 683
 
684
-function wpinv_insert_payment_note( $invoice_id = 0, $note = '', $user_type = false, $added_by_user = false, $system = false ) {
685
-    $invoice = new WPInv_Invoice( $invoice_id );
684
+function wpinv_insert_payment_note($invoice_id = 0, $note = '', $user_type = false, $added_by_user = false, $system = false) {
685
+    $invoice = new WPInv_Invoice($invoice_id);
686 686
 
687
-    return $invoice->add_note( $note, $user_type, $added_by_user, $system );
687
+    return $invoice->add_note($note, $user_type, $added_by_user, $system);
688 688
 }
689 689
 
690
-function wpinv_get_invoice_notes( $invoice_id = 0, $type = '' ) {
690
+function wpinv_get_invoice_notes($invoice_id = 0, $type = '') {
691 691
     global $invoicing;
692 692
     
693
-    if ( empty( $invoice_id ) ) {
693
+    if (empty($invoice_id)) {
694 694
         return NULL;
695 695
     }
696 696
     
697
-    $notes = $invoicing->notes->get_invoice_notes( $invoice_id, $type );
697
+    $notes = $invoicing->notes->get_invoice_notes($invoice_id, $type);
698 698
     
699
-    return apply_filters( 'wpinv_invoice_notes', $notes, $invoice_id, $type );
699
+    return apply_filters('wpinv_invoice_notes', $notes, $invoice_id, $type);
700 700
 }
701 701
 
702
-function wpinv_get_payment_key( $invoice_id = 0 ) {
703
-	$invoice = new WPInv_Invoice( $invoice_id );
702
+function wpinv_get_payment_key($invoice_id = 0) {
703
+	$invoice = new WPInv_Invoice($invoice_id);
704 704
     return $invoice->get_key();
705 705
 }
706 706
 
707
-function wpinv_get_invoice_number( $invoice_id = 0 ) {
708
-    $invoice = new WPInv_Invoice( $invoice_id );
707
+function wpinv_get_invoice_number($invoice_id = 0) {
708
+    $invoice = new WPInv_Invoice($invoice_id);
709 709
     return $invoice->get_number();
710 710
 }
711 711
 
712
-function wpinv_get_cart_discountable_subtotal( $code_id ) {
712
+function wpinv_get_cart_discountable_subtotal($code_id) {
713 713
     $cart_items = wpinv_get_cart_content_details();
714 714
     $items      = array();
715 715
 
716
-    $excluded_items = wpinv_get_discount_excluded_items( $code_id );
716
+    $excluded_items = wpinv_get_discount_excluded_items($code_id);
717 717
 
718
-    if( $cart_items ) {
718
+    if ($cart_items) {
719 719
 
720
-        foreach( $cart_items as $item ) {
720
+        foreach ($cart_items as $item) {
721 721
 
722
-            if( ! in_array( $item['id'], $excluded_items ) ) {
723
-                $items[] =  $item;
722
+            if (!in_array($item['id'], $excluded_items)) {
723
+                $items[] = $item;
724 724
             }
725 725
         }
726 726
     }
727 727
 
728
-    $subtotal = wpinv_get_cart_items_subtotal( $items );
728
+    $subtotal = wpinv_get_cart_items_subtotal($items);
729 729
 
730
-    return apply_filters( 'wpinv_get_cart_discountable_subtotal', $subtotal );
730
+    return apply_filters('wpinv_get_cart_discountable_subtotal', $subtotal);
731 731
 }
732 732
 
733
-function wpinv_get_cart_items_subtotal( $items ) {
733
+function wpinv_get_cart_items_subtotal($items) {
734 734
     $subtotal = 0.00;
735 735
 
736
-    if ( is_array( $items ) && ! empty( $items ) ) {
737
-        $prices = wp_list_pluck( $items, 'subtotal' );
736
+    if (is_array($items) && !empty($items)) {
737
+        $prices = wp_list_pluck($items, 'subtotal');
738 738
 
739
-        if( is_array( $prices ) ) {
740
-            $subtotal = array_sum( $prices );
739
+        if (is_array($prices)) {
740
+            $subtotal = array_sum($prices);
741 741
         } else {
742 742
             $subtotal = 0.00;
743 743
         }
744 744
 
745
-        if( $subtotal < 0 ) {
745
+        if ($subtotal < 0) {
746 746
             $subtotal = 0.00;
747 747
         }
748 748
     }
749 749
 
750
-    return apply_filters( 'wpinv_get_cart_items_subtotal', $subtotal );
750
+    return apply_filters('wpinv_get_cart_items_subtotal', $subtotal);
751 751
 }
752 752
 
753
-function wpinv_get_cart_subtotal( $items = array() ) {
754
-    $items    = !empty( $items ) ? $items : wpinv_get_cart_content_details();
755
-    $subtotal = wpinv_get_cart_items_subtotal( $items );
753
+function wpinv_get_cart_subtotal($items = array()) {
754
+    $items    = !empty($items) ? $items : wpinv_get_cart_content_details();
755
+    $subtotal = wpinv_get_cart_items_subtotal($items);
756 756
 
757
-    return apply_filters( 'wpinv_get_cart_subtotal', $subtotal );
757
+    return apply_filters('wpinv_get_cart_subtotal', $subtotal);
758 758
 }
759 759
 
760
-function wpinv_cart_subtotal( $items = array() ) {
761
-    $price = wpinv_price( wpinv_format_amount( wpinv_get_cart_subtotal( $items ) ) );
760
+function wpinv_cart_subtotal($items = array()) {
761
+    $price = wpinv_price(wpinv_format_amount(wpinv_get_cart_subtotal($items)));
762 762
 
763 763
     return $price;
764 764
 }
765 765
 
766
-function wpinv_get_cart_total( $items = array(), $discounts = false, $invoice = array() ) {
767
-    $subtotal  = (float)wpinv_get_cart_subtotal( $items );
768
-    $discounts = (float)wpinv_get_cart_discounted_amount( $items );
769
-    $cart_tax  = (float)wpinv_get_cart_tax( $items );
770
-    $fees      = (float)wpinv_get_cart_fee_total();
771
-    if ( !empty( $invoice ) && $invoice->is_free_trial() ) {
766
+function wpinv_get_cart_total($items = array(), $discounts = false, $invoice = array()) {
767
+    $subtotal  = (float) wpinv_get_cart_subtotal($items);
768
+    $discounts = (float) wpinv_get_cart_discounted_amount($items);
769
+    $cart_tax  = (float) wpinv_get_cart_tax($items);
770
+    $fees      = (float) wpinv_get_cart_fee_total();
771
+    if (!empty($invoice) && $invoice->is_free_trial()) {
772 772
         $total = 0;
773 773
     } else {
774
-        $total     = $subtotal - $discounts + $cart_tax + $fees;
774
+        $total = $subtotal - $discounts + $cart_tax + $fees;
775 775
     }
776 776
 
777
-    if ( $total < 0 ) {
777
+    if ($total < 0) {
778 778
         $total = 0.00;
779 779
     }
780 780
     
781
-    $total = (float)apply_filters( 'wpinv_get_cart_total', $total, $items );
781
+    $total = (float) apply_filters('wpinv_get_cart_total', $total, $items);
782 782
 
783
-    return wpinv_sanitize_amount( $total );
783
+    return wpinv_sanitize_amount($total);
784 784
 }
785 785
 
786
-function wpinv_cart_total( $cart_items = array(), $echo = true, $invoice = array() ) {
786
+function wpinv_cart_total($cart_items = array(), $echo = true, $invoice = array()) {
787 787
     global $cart_total;
788
-    $total = wpinv_price( wpinv_format_amount( wpinv_get_cart_total( $cart_items, NULL, $invoice ) ) );
789
-    $total = apply_filters( 'wpinv_cart_total', $total, $cart_items, $invoice );
788
+    $total = wpinv_price(wpinv_format_amount(wpinv_get_cart_total($cart_items, NULL, $invoice)));
789
+    $total = apply_filters('wpinv_cart_total', $total, $cart_items, $invoice);
790 790
     
791 791
     $cart_total = $total;
792 792
 
793
-    if ( !$echo ) {
793
+    if (!$echo) {
794 794
         return $total;
795 795
     }
796 796
 
797 797
     echo $total;
798 798
 }
799 799
 
800
-function wpinv_get_cart_tax( $items = array() ) {
800
+function wpinv_get_cart_tax($items = array()) {
801 801
     $cart_tax = 0;
802
-    $items    = !empty( $items ) ? $items : wpinv_get_cart_content_details();
802
+    $items    = !empty($items) ? $items : wpinv_get_cart_content_details();
803 803
 
804
-    if ( $items ) {
805
-        $taxes = wp_list_pluck( $items, 'tax' );
804
+    if ($items) {
805
+        $taxes = wp_list_pluck($items, 'tax');
806 806
 
807
-        if( is_array( $taxes ) ) {
808
-            $cart_tax = array_sum( $taxes );
807
+        if (is_array($taxes)) {
808
+            $cart_tax = array_sum($taxes);
809 809
         }
810 810
     }
811 811
 
812 812
     $cart_tax += wpinv_get_cart_fee_tax();
813 813
 
814
-    return apply_filters( 'wpinv_get_cart_tax', wpinv_sanitize_amount( $cart_tax ) );
814
+    return apply_filters('wpinv_get_cart_tax', wpinv_sanitize_amount($cart_tax));
815 815
 }
816 816
 
817
-function wpinv_cart_tax( $items = array(), $echo = false ) {
818
-    $cart_tax = wpinv_get_cart_tax( $items );
819
-    $cart_tax = wpinv_price( wpinv_format_amount( $cart_tax ) );
817
+function wpinv_cart_tax($items = array(), $echo = false) {
818
+    $cart_tax = wpinv_get_cart_tax($items);
819
+    $cart_tax = wpinv_price(wpinv_format_amount($cart_tax));
820 820
 
821
-    $tax = apply_filters( 'wpinv_cart_tax', $cart_tax, $items );
821
+    $tax = apply_filters('wpinv_cart_tax', $cart_tax, $items);
822 822
 
823
-    if ( !$echo ) {
823
+    if (!$echo) {
824 824
         return $tax;
825 825
     }
826 826
 
827 827
     echo $tax;
828 828
 }
829 829
 
830
-function wpinv_get_cart_discount_code( $items = array() ) {
830
+function wpinv_get_cart_discount_code($items = array()) {
831 831
     $invoice = wpinv_get_invoice_cart();
832
-    $cart_discount_code = !empty( $invoice ) ? $invoice->get_discount_code() : '';
832
+    $cart_discount_code = !empty($invoice) ? $invoice->get_discount_code() : '';
833 833
     
834
-    return apply_filters( 'wpinv_get_cart_discount_code', $cart_discount_code );
834
+    return apply_filters('wpinv_get_cart_discount_code', $cart_discount_code);
835 835
 }
836 836
 
837
-function wpinv_cart_discount_code( $items = array(), $echo = false ) {
838
-    $cart_discount_code = wpinv_get_cart_discount_code( $items );
837
+function wpinv_cart_discount_code($items = array(), $echo = false) {
838
+    $cart_discount_code = wpinv_get_cart_discount_code($items);
839 839
 
840
-    if ( $cart_discount_code != '' ) {
840
+    if ($cart_discount_code != '') {
841 841
         $cart_discount_code = ' (' . $cart_discount_code . ')';
842 842
     }
843 843
     
844
-    $discount_code = apply_filters( 'wpinv_cart_discount_code', $cart_discount_code, $items );
844
+    $discount_code = apply_filters('wpinv_cart_discount_code', $cart_discount_code, $items);
845 845
 
846
-    if ( !$echo ) {
846
+    if (!$echo) {
847 847
         return $discount_code;
848 848
     }
849 849
 
850 850
     echo $discount_code;
851 851
 }
852 852
 
853
-function wpinv_get_cart_discount( $items = array() ) {
853
+function wpinv_get_cart_discount($items = array()) {
854 854
     $invoice = wpinv_get_invoice_cart();
855
-    $cart_discount = !empty( $invoice ) ? $invoice->get_discount() : 0;
855
+    $cart_discount = !empty($invoice) ? $invoice->get_discount() : 0;
856 856
     
857
-    return apply_filters( 'wpinv_get_cart_discount', wpinv_sanitize_amount( $cart_discount ), $items );
857
+    return apply_filters('wpinv_get_cart_discount', wpinv_sanitize_amount($cart_discount), $items);
858 858
 }
859 859
 
860
-function wpinv_cart_discount( $items = array(), $echo = false ) {
861
-    $cart_discount = wpinv_get_cart_discount( $items );
862
-    $cart_discount = wpinv_price( wpinv_format_amount( $cart_discount ) );
860
+function wpinv_cart_discount($items = array(), $echo = false) {
861
+    $cart_discount = wpinv_get_cart_discount($items);
862
+    $cart_discount = wpinv_price(wpinv_format_amount($cart_discount));
863 863
 
864
-    $discount = apply_filters( 'wpinv_cart_discount', $cart_discount, $items );
864
+    $discount = apply_filters('wpinv_cart_discount', $cart_discount, $items);
865 865
 
866
-    if ( !$echo ) {
866
+    if (!$echo) {
867 867
         return $discount;
868 868
     }
869 869
 
870 870
     echo $discount;
871 871
 }
872 872
 
873
-function wpinv_get_cart_fees( $type = 'all', $item_id = 0 ) {
874
-    $item = new WPInv_Item( $item_id );
873
+function wpinv_get_cart_fees($type = 'all', $item_id = 0) {
874
+    $item = new WPInv_Item($item_id);
875 875
     
876
-    return $item->get_fees( $type, $item_id );
876
+    return $item->get_fees($type, $item_id);
877 877
 }
878 878
 
879 879
 function wpinv_get_cart_fee_total() {
880
-    $total  = 0;
880
+    $total = 0;
881 881
     $fees = wpinv_get_cart_fees();
882 882
     
883
-    if ( $fees ) {
884
-        foreach ( $fees as $fee_id => $fee ) {
883
+    if ($fees) {
884
+        foreach ($fees as $fee_id => $fee) {
885 885
             $total += $fee['amount'];
886 886
         }
887 887
     }
888 888
 
889
-    return apply_filters( 'wpinv_get_cart_fee_total', $total );
889
+    return apply_filters('wpinv_get_cart_fee_total', $total);
890 890
 }
891 891
 
892 892
 function wpinv_get_cart_fee_tax() {
893 893
     $tax  = 0;
894 894
     $fees = wpinv_get_cart_fees();
895 895
 
896
-    if ( $fees ) {
897
-        foreach ( $fees as $fee_id => $fee ) {
898
-            if( ! empty( $fee['no_tax'] ) ) {
896
+    if ($fees) {
897
+        foreach ($fees as $fee_id => $fee) {
898
+            if (!empty($fee['no_tax'])) {
899 899
                 continue;
900 900
             }
901 901
 
902
-            $tax += wpinv_calculate_tax( $fee['amount'] );
902
+            $tax += wpinv_calculate_tax($fee['amount']);
903 903
         }
904 904
     }
905 905
 
906
-    return apply_filters( 'wpinv_get_cart_fee_tax', $tax );
906
+    return apply_filters('wpinv_get_cart_fee_tax', $tax);
907 907
 }
908 908
 
909 909
 function wpinv_cart_has_recurring_item() {
910 910
     $cart_items = wpinv_get_cart_contents();
911 911
     
912
-    if ( empty( $cart_items ) ) {
912
+    if (empty($cart_items)) {
913 913
         return false;
914 914
     }
915 915
     
916 916
     $has_subscription = false;
917
-    foreach( $cart_items as $cart_item ) {
918
-        if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] )  ) {
917
+    foreach ($cart_items as $cart_item) {
918
+        if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) {
919 919
             $has_subscription = true;
920 920
             break;
921 921
         }
922 922
     }
923 923
     
924
-    return apply_filters( 'wpinv_cart_has_recurring_item', $has_subscription, $cart_items );
924
+    return apply_filters('wpinv_cart_has_recurring_item', $has_subscription, $cart_items);
925 925
 }
926 926
 
927 927
 function wpinv_cart_has_free_trial() {
@@ -929,97 +929,97 @@  discard block
 block discarded – undo
929 929
     
930 930
     $free_trial = false;
931 931
     
932
-    if ( !empty( $invoice ) && $invoice->is_free_trial() ) {
932
+    if (!empty($invoice) && $invoice->is_free_trial()) {
933 933
         $free_trial = true;
934 934
     }
935 935
     
936
-    return apply_filters( 'wpinv_cart_has_free_trial', $free_trial, $invoice );
936
+    return apply_filters('wpinv_cart_has_free_trial', $free_trial, $invoice);
937 937
 }
938 938
 
939 939
 function wpinv_get_cart_contents() {
940 940
     $cart_details = wpinv_get_cart_details();
941 941
     
942
-    return apply_filters( 'wpinv_get_cart_contents', $cart_details );
942
+    return apply_filters('wpinv_get_cart_contents', $cart_details);
943 943
 }
944 944
 
945 945
 function wpinv_get_cart_content_details() {
946 946
     global $wpinv_euvat, $wpi_current_id, $wpi_item_id, $wpinv_is_last_cart_item, $wpinv_flat_discount_total;
947 947
     $cart_items = wpinv_get_cart_contents();
948 948
     
949
-    if ( empty( $cart_items ) ) {
949
+    if (empty($cart_items)) {
950 950
         return false;
951 951
     }
952 952
     $invoice = wpinv_get_invoice_cart();
953
-	if ( empty( $invoice ) ) {
953
+	if (empty($invoice)) {
954 954
         return false;
955 955
     }
956 956
 
957 957
     $details = array();
958
-    $length  = count( $cart_items ) - 1;
958
+    $length  = count($cart_items) - 1;
959 959
     
960
-    if ( empty( $_POST['country'] ) ) {
960
+    if (empty($_POST['country'])) {
961 961
         $_POST['country'] = $invoice->country;
962 962
     }
963
-    if ( !isset( $_POST['state'] ) ) {
963
+    if (!isset($_POST['state'])) {
964 964
         $_POST['state'] = $invoice->state;
965 965
     }
966 966
 
967
-    foreach( $cart_items as $key => $item ) {
968
-        $item_id            = isset( $item['id'] ) ? sanitize_text_field( $item['id'] ) : '';
969
-        if ( empty( $item_id ) ) {
967
+    foreach ($cart_items as $key => $item) {
968
+        $item_id = isset($item['id']) ? sanitize_text_field($item['id']) : '';
969
+        if (empty($item_id)) {
970 970
             continue;
971 971
         }
972 972
         
973 973
         $wpi_current_id         = $invoice->ID;
974 974
         $wpi_item_id            = $item_id;
975 975
         
976
-        if ( isset( $item['custom_price'] ) && $item['custom_price'] !== '' ) {
976
+        if (isset($item['custom_price']) && $item['custom_price'] !== '') {
977 977
             $item_price = $item['custom_price'];
978 978
         } else {
979
-            if ( isset( $item['item_price'] ) && $item['item_price'] !== '' && $item['item_price'] !== false ) {
979
+            if (isset($item['item_price']) && $item['item_price'] !== '' && $item['item_price'] !== false) {
980 980
                 $item_price = $item['item_price'];
981 981
             } else {
982
-                $item_price = wpinv_get_item_price( $item_id );
982
+                $item_price = wpinv_get_item_price($item_id);
983 983
             }
984 984
         }
985
-        $discount           = wpinv_get_cart_item_discount_amount( $item );
986
-        $discount           = apply_filters( 'wpinv_get_cart_content_details_item_discount_amount', $discount, $item );
987
-        $quantity           = wpinv_get_cart_item_quantity( $item );
988
-        $fees               = wpinv_get_cart_fees( 'fee', $item_id );
985
+        $discount           = wpinv_get_cart_item_discount_amount($item);
986
+        $discount           = apply_filters('wpinv_get_cart_content_details_item_discount_amount', $discount, $item);
987
+        $quantity           = wpinv_get_cart_item_quantity($item);
988
+        $fees               = wpinv_get_cart_fees('fee', $item_id);
989 989
         
990 990
         $subtotal           = $item_price * $quantity;
991
-        $tax_rate           = wpinv_get_tax_rate( $_POST['country'], $_POST['state'], $wpi_item_id );
992
-        $tax_class          = $wpinv_euvat->get_item_class( $item_id );
993
-        $tax                = wpinv_get_cart_item_tax( $item_id, $subtotal - $discount );
991
+        $tax_rate           = wpinv_get_tax_rate($_POST['country'], $_POST['state'], $wpi_item_id);
992
+        $tax_class          = $wpinv_euvat->get_item_class($item_id);
993
+        $tax                = wpinv_get_cart_item_tax($item_id, $subtotal - $discount);
994 994
         
995
-        if ( wpinv_prices_include_tax() ) {
996
-            $subtotal -= wpinv_round_amount( $tax );
995
+        if (wpinv_prices_include_tax()) {
996
+            $subtotal -= wpinv_round_amount($tax);
997 997
         }
998 998
         
999
-        $total              = $subtotal - $discount + $tax;
999
+        $total = $subtotal - $discount + $tax;
1000 1000
         
1001 1001
         // Do not allow totals to go negatve
1002
-        if( $total < 0 ) {
1002
+        if ($total < 0) {
1003 1003
             $total = 0;
1004 1004
         }
1005 1005
         
1006
-        $details[ $key ]  = array(
1006
+        $details[$key] = array(
1007 1007
             'id'                => $item_id,
1008
-            'name'              => !empty($item['name']) ? $item['name'] : get_the_title( $item_id ),
1009
-            'item_price'        => wpinv_round_amount( $item_price ),
1010
-            'custom_price'      => isset( $item['custom_price'] ) ? $item['custom_price'] : '',
1008
+            'name'              => !empty($item['name']) ? $item['name'] : get_the_title($item_id),
1009
+            'item_price'        => wpinv_round_amount($item_price),
1010
+            'custom_price'      => isset($item['custom_price']) ? $item['custom_price'] : '',
1011 1011
             'quantity'          => $quantity,
1012
-            'discount'          => wpinv_round_amount( $discount ),
1013
-            'subtotal'          => wpinv_round_amount( $subtotal ),
1014
-            'tax'               => wpinv_round_amount( $tax ),
1015
-            'price'             => wpinv_round_amount( $total ),
1012
+            'discount'          => wpinv_round_amount($discount),
1013
+            'subtotal'          => wpinv_round_amount($subtotal),
1014
+            'tax'               => wpinv_round_amount($tax),
1015
+            'price'             => wpinv_round_amount($total),
1016 1016
             'vat_rates_class'   => $tax_class,
1017 1017
             'vat_rate'          => $tax_rate,
1018
-            'meta'              => isset( $item['meta'] ) ? $item['meta'] : array(),
1018
+            'meta'              => isset($item['meta']) ? $item['meta'] : array(),
1019 1019
             'fees'              => $fees,
1020 1020
         );
1021 1021
         
1022
-        if ( $wpinv_is_last_cart_item ) {
1022
+        if ($wpinv_is_last_cart_item) {
1023 1023
             $wpinv_is_last_cart_item   = false;
1024 1024
             $wpinv_flat_discount_total = 0.00;
1025 1025
         }
@@ -1028,67 +1028,67 @@  discard block
 block discarded – undo
1028 1028
     return $details;
1029 1029
 }
1030 1030
 
1031
-function wpinv_get_cart_details( $invoice_id = 0 ) {
1031
+function wpinv_get_cart_details($invoice_id = 0) {
1032 1032
     global $ajax_cart_details;
1033 1033
 
1034
-    $invoice      = wpinv_get_invoice_cart( $invoice_id );
1034
+    $invoice      = wpinv_get_invoice_cart($invoice_id);
1035 1035
     $cart_details = $ajax_cart_details;
1036
-    if ( empty( $cart_details ) && ! empty( $invoice->cart_details ) ) {
1036
+    if (empty($cart_details) && !empty($invoice->cart_details)) {
1037 1037
         $cart_details = $invoice->cart_details;
1038 1038
     }
1039 1039
 
1040
-    if ( ! empty( $cart_details ) && is_array( $cart_details ) ) {
1041
-        $invoice_currency = ! empty( $invoice->currency ) ? $invoice->currency : wpinv_get_default_country();
1040
+    if (!empty($cart_details) && is_array($cart_details)) {
1041
+        $invoice_currency = !empty($invoice->currency) ? $invoice->currency : wpinv_get_default_country();
1042 1042
 
1043
-        foreach ( $cart_details as $key => $cart_item ) {
1044
-            $cart_details[ $key ]['currency'] = $invoice_currency;
1043
+        foreach ($cart_details as $key => $cart_item) {
1044
+            $cart_details[$key]['currency'] = $invoice_currency;
1045 1045
 
1046
-            if ( ! isset( $cart_item['subtotal'] ) ) {
1047
-                $cart_details[ $key ]['subtotal'] = $cart_item['price'];
1046
+            if (!isset($cart_item['subtotal'])) {
1047
+                $cart_details[$key]['subtotal'] = $cart_item['price'];
1048 1048
             }
1049 1049
         }
1050 1050
     }
1051 1051
 
1052
-    return apply_filters( 'wpinv_get_cart_details', $cart_details, $invoice_id );
1052
+    return apply_filters('wpinv_get_cart_details', $cart_details, $invoice_id);
1053 1053
 }
1054 1054
 
1055
-function wpinv_record_status_change( $invoice_id, $new_status, $old_status ) {
1056
-    if ( 'wpi_invoice' != get_post_type( $invoice_id ) ) {
1055
+function wpinv_record_status_change($invoice_id, $new_status, $old_status) {
1056
+    if ('wpi_invoice' != get_post_type($invoice_id)) {
1057 1057
         return;
1058 1058
     }
1059 1059
 
1060
-    if ( ( $old_status == 'wpi-pending' && $new_status == 'draft' ) || ( $old_status == 'draft' && $new_status == 'wpi-pending' ) ) {
1060
+    if (($old_status == 'wpi-pending' && $new_status == 'draft') || ($old_status == 'draft' && $new_status == 'wpi-pending')) {
1061 1061
         return;
1062 1062
     }
1063 1063
 
1064
-    $invoice    = wpinv_get_invoice( $invoice_id );
1064
+    $invoice    = wpinv_get_invoice($invoice_id);
1065 1065
     
1066
-    $old_status = wpinv_status_nicename( $old_status );
1067
-    $new_status = wpinv_status_nicename( $new_status );
1066
+    $old_status = wpinv_status_nicename($old_status);
1067
+    $new_status = wpinv_status_nicename($new_status);
1068 1068
 
1069
-    $status_change = sprintf( __( 'Invoice status changed from %s to %s', 'invoicing' ), $old_status, $new_status );
1069
+    $status_change = sprintf(__('Invoice status changed from %s to %s', 'invoicing'), $old_status, $new_status);
1070 1070
     
1071 1071
     // Add note
1072
-    return $invoice->add_note( $status_change, false, false, true );
1072
+    return $invoice->add_note($status_change, false, false, true);
1073 1073
 }
1074
-add_action( 'wpinv_update_status', 'wpinv_record_status_change', 100, 3 );
1074
+add_action('wpinv_update_status', 'wpinv_record_status_change', 100, 3);
1075 1075
 
1076
-function wpinv_complete_payment( $invoice_id, $new_status, $old_status ) {
1076
+function wpinv_complete_payment($invoice_id, $new_status, $old_status) {
1077 1077
     global $wpi_has_free_trial;
1078 1078
     
1079 1079
     $wpi_has_free_trial = false;
1080 1080
     
1081
-    if ( $old_status == 'publish' ) {
1081
+    if ($old_status == 'publish') {
1082 1082
         return; // Make sure that payments are only paid once
1083 1083
     }
1084 1084
 
1085 1085
     // Make sure the payment completion is only processed when new status is paid
1086
-    if ( $new_status != 'publish' ) {
1086
+    if ($new_status != 'publish') {
1087 1087
         return;
1088 1088
     }
1089 1089
 
1090
-    $invoice = new WPInv_Invoice( $invoice_id );
1091
-    if ( empty( $invoice ) ) {
1090
+    $invoice = new WPInv_Invoice($invoice_id);
1091
+    if (empty($invoice)) {
1092 1092
         return;
1093 1093
     }
1094 1094
 
@@ -1096,58 +1096,58 @@  discard block
 block discarded – undo
1096 1096
     $completed_date = $invoice->completed_date;
1097 1097
     $cart_details   = $invoice->cart_details;
1098 1098
 
1099
-    do_action( 'wpinv_pre_complete_payment', $invoice_id );
1099
+    do_action('wpinv_pre_complete_payment', $invoice_id);
1100 1100
 
1101
-    if ( is_array( $cart_details ) ) {
1101
+    if (is_array($cart_details)) {
1102 1102
         // Increase purchase count and earnings
1103
-        foreach ( $cart_details as $cart_index => $item ) {
1103
+        foreach ($cart_details as $cart_index => $item) {
1104 1104
             // Ensure these actions only run once, ever
1105
-            if ( empty( $completed_date ) ) {
1106
-                do_action( 'wpinv_complete_item_payment', $item['id'], $invoice_id, $item, $cart_index );
1105
+            if (empty($completed_date)) {
1106
+                do_action('wpinv_complete_item_payment', $item['id'], $invoice_id, $item, $cart_index);
1107 1107
             }
1108 1108
         }
1109 1109
     }
1110 1110
     
1111 1111
     // Check for discount codes and increment their use counts
1112
-    if ( $discounts = $invoice->get_discounts( true ) ) {
1113
-        if( ! empty( $discounts ) ) {
1114
-            foreach( $discounts as $code ) {
1115
-                wpinv_increase_discount_usage( $code );
1112
+    if ($discounts = $invoice->get_discounts(true)) {
1113
+        if (!empty($discounts)) {
1114
+            foreach ($discounts as $code) {
1115
+                wpinv_increase_discount_usage($code);
1116 1116
             }
1117 1117
         }
1118 1118
     }
1119 1119
     
1120 1120
     // Ensure this action only runs once ever
1121
-    if( empty( $completed_date ) ) {
1121
+    if (empty($completed_date)) {
1122 1122
         // Save the completed date
1123
-        $invoice->set( 'completed_date', current_time( 'mysql', 0 ) );
1123
+        $invoice->set('completed_date', current_time('mysql', 0));
1124 1124
         $invoice->save();
1125 1125
 
1126
-        do_action( 'wpinv_complete_payment', $invoice_id );
1126
+        do_action('wpinv_complete_payment', $invoice_id);
1127 1127
     }
1128 1128
 
1129 1129
     // Empty the shopping cart
1130 1130
     wpinv_empty_cart();
1131 1131
 }
1132
-add_action( 'wpinv_update_status', 'wpinv_complete_payment', 100, 3 );
1132
+add_action('wpinv_update_status', 'wpinv_complete_payment', 100, 3);
1133 1133
 
1134
-function wpinv_update_payment_status( $invoice_id, $new_status = 'publish' ) {    
1135
-    $invoice = !empty( $invoice_id ) && is_object( $invoice_id ) ? $invoice_id : wpinv_get_invoice( (int)$invoice_id );
1134
+function wpinv_update_payment_status($invoice_id, $new_status = 'publish') {    
1135
+    $invoice = !empty($invoice_id) && is_object($invoice_id) ? $invoice_id : wpinv_get_invoice((int) $invoice_id);
1136 1136
     
1137
-    if ( empty( $invoice ) ) {
1137
+    if (empty($invoice)) {
1138 1138
         return false;
1139 1139
     }
1140 1140
     
1141
-    return $invoice->update_status( $new_status );
1141
+    return $invoice->update_status($new_status);
1142 1142
 }
1143 1143
 
1144
-function wpinv_cart_has_fees( $type = 'all' ) {
1144
+function wpinv_cart_has_fees($type = 'all') {
1145 1145
     return false;
1146 1146
 }
1147 1147
 
1148 1148
 function wpinv_validate_checkout_fields() {    
1149 1149
     // Check if there is $_POST
1150
-    if ( empty( $_POST ) ) {
1150
+    if (empty($_POST)) {
1151 1151
         return false;
1152 1152
     }
1153 1153
     
@@ -1159,11 +1159,11 @@  discard block
 block discarded – undo
1159 1159
     );
1160 1160
     
1161 1161
     // Validate agree to terms
1162
-    $page = wpinv_get_option( 'tandc_page' );
1163
-    if(isset($page) && (int)$page > 0 && apply_filters( 'wpinv_checkout_show_terms', true )){
1162
+    $page = wpinv_get_option('tandc_page');
1163
+    if (isset($page) && (int) $page > 0 && apply_filters('wpinv_checkout_show_terms', true)) {
1164 1164
         // Validate agree to terms
1165
-        if ( ! isset( $_POST['wpi_terms'] ) || !$_POST['wpi_terms'] ) {
1166
-            wpinv_set_error( 'accept_terms', apply_filters( 'wpinv_accept_terms_error_text', __( 'You must accept terms and conditions', 'invoicing' ) ) );
1165
+        if (!isset($_POST['wpi_terms']) || !$_POST['wpi_terms']) {
1166
+            wpinv_set_error('accept_terms', apply_filters('wpinv_accept_terms_error_text', __('You must accept terms and conditions', 'invoicing')));
1167 1167
         }
1168 1168
     }
1169 1169
     
@@ -1179,26 +1179,26 @@  discard block
 block discarded – undo
1179 1179
     
1180 1180
     $invoice = wpinv_get_invoice_cart();
1181 1181
     $has_subscription = $invoice->is_recurring();
1182
-    if ( empty( $invoice ) ) {
1183
-        wpinv_set_error( 'invalid_invoice', __( 'Your cart is empty.', 'invoicing' ) );
1182
+    if (empty($invoice)) {
1183
+        wpinv_set_error('invalid_invoice', __('Your cart is empty.', 'invoicing'));
1184 1184
         return $gateway;
1185 1185
     }
1186 1186
 
1187 1187
     // Check if a gateway value is present
1188
-    if ( !empty( $_REQUEST['wpi-gateway'] ) ) {
1189
-        $gateway = sanitize_text_field( $_REQUEST['wpi-gateway'] );
1188
+    if (!empty($_REQUEST['wpi-gateway'])) {
1189
+        $gateway = sanitize_text_field($_REQUEST['wpi-gateway']);
1190 1190
 
1191
-        if ( $invoice->is_free() ) {
1191
+        if ($invoice->is_free()) {
1192 1192
             $gateway = 'manual';
1193
-        } elseif ( !wpinv_is_gateway_active( $gateway ) ) {
1194
-            wpinv_set_error( 'invalid_gateway', __( 'The selected payment gateway is not enabled', 'invoicing' ) );
1195
-        } elseif ( $has_subscription && !wpinv_gateway_support_subscription( $gateway ) ) {
1196
-            wpinv_set_error( 'invalid_gateway', __( 'The selected payment gateway doesnot support subscription payment', 'invoicing' ) );
1193
+        } elseif (!wpinv_is_gateway_active($gateway)) {
1194
+            wpinv_set_error('invalid_gateway', __('The selected payment gateway is not enabled', 'invoicing'));
1195
+        } elseif ($has_subscription && !wpinv_gateway_support_subscription($gateway)) {
1196
+            wpinv_set_error('invalid_gateway', __('The selected payment gateway doesnot support subscription payment', 'invoicing'));
1197 1197
         }
1198 1198
     }
1199 1199
 
1200
-    if ( $has_subscription && count( wpinv_get_cart_contents() ) > 1 ) {
1201
-        wpinv_set_error( 'subscription_invalid', __( 'Only one subscription may be purchased through payment per checkout.', 'invoicing' ) );
1200
+    if ($has_subscription && count(wpinv_get_cart_contents()) > 1) {
1201
+        wpinv_set_error('subscription_invalid', __('Only one subscription may be purchased through payment per checkout.', 'invoicing'));
1202 1202
     }
1203 1203
 
1204 1204
     return $gateway;
@@ -1212,10 +1212,10 @@  discard block
 block discarded – undo
1212 1212
     
1213 1213
     $error = false;
1214 1214
     // If we have discounts, loop through them
1215
-    if ( ! empty( $discounts ) ) {
1216
-        foreach ( $discounts as $discount ) {
1215
+    if (!empty($discounts)) {
1216
+        foreach ($discounts as $discount) {
1217 1217
             // Check if valid
1218
-            if (  !wpinv_is_discount_valid( $discount, (int)$wpi_cart->get_user_id() ) ) {
1218
+            if (!wpinv_is_discount_valid($discount, (int) $wpi_cart->get_user_id())) {
1219 1219
                 // Discount is not valid
1220 1220
                 $error = true;
1221 1221
             }
@@ -1225,20 +1225,20 @@  discard block
 block discarded – undo
1225 1225
         return NULL;
1226 1226
     }
1227 1227
 
1228
-    if ( $error && !wpinv_get_errors() ) {
1229
-        wpinv_set_error( 'invalid_discount', __( 'Discount code you entered is invalid', 'invoicing' ) );
1228
+    if ($error && !wpinv_get_errors()) {
1229
+        wpinv_set_error('invalid_discount', __('Discount code you entered is invalid', 'invoicing'));
1230 1230
     }
1231 1231
 
1232
-    return implode( ',', $discounts );
1232
+    return implode(',', $discounts);
1233 1233
 }
1234 1234
 
1235 1235
 function wpinv_checkout_validate_cc() {
1236 1236
     $card_data = wpinv_checkout_get_cc_info();
1237 1237
 
1238 1238
     // Validate the card zip
1239
-    if ( !empty( $card_data['wpinv_zip'] ) ) {
1240
-        if ( !wpinv_checkout_validate_cc_zip( $card_data['wpinv_zip'], $card_data['wpinv_country'] ) ) {
1241
-            wpinv_set_error( 'invalid_cc_zip', __( 'The zip / postcode you entered for your billing address is invalid', 'invoicing' ) );
1239
+    if (!empty($card_data['wpinv_zip'])) {
1240
+        if (!wpinv_checkout_validate_cc_zip($card_data['wpinv_zip'], $card_data['wpinv_country'])) {
1241
+            wpinv_set_error('invalid_cc_zip', __('The zip / postcode you entered for your billing address is invalid', 'invoicing'));
1242 1242
         }
1243 1243
     }
1244 1244
 
@@ -1248,28 +1248,28 @@  discard block
 block discarded – undo
1248 1248
 
1249 1249
 function wpinv_checkout_get_cc_info() {
1250 1250
 	$cc_info = array();
1251
-	$cc_info['card_name']      = isset( $_POST['card_name'] )       ? sanitize_text_field( $_POST['card_name'] )       : '';
1252
-	$cc_info['card_number']    = isset( $_POST['card_number'] )     ? sanitize_text_field( $_POST['card_number'] )     : '';
1253
-	$cc_info['card_cvc']       = isset( $_POST['card_cvc'] )        ? sanitize_text_field( $_POST['card_cvc'] )        : '';
1254
-	$cc_info['card_exp_month'] = isset( $_POST['card_exp_month'] )  ? sanitize_text_field( $_POST['card_exp_month'] )  : '';
1255
-	$cc_info['card_exp_year']  = isset( $_POST['card_exp_year'] )   ? sanitize_text_field( $_POST['card_exp_year'] )   : '';
1256
-	$cc_info['card_address']   = isset( $_POST['wpinv_address'] )  ? sanitize_text_field( $_POST['wpinv_address'] ) : '';
1257
-	$cc_info['card_city']      = isset( $_POST['wpinv_city'] )     ? sanitize_text_field( $_POST['wpinv_city'] )    : '';
1258
-	$cc_info['card_state']     = isset( $_POST['wpinv_state'] )    ? sanitize_text_field( $_POST['wpinv_state'] )   : '';
1259
-	$cc_info['card_country']   = isset( $_POST['wpinv_country'] )  ? sanitize_text_field( $_POST['wpinv_country'] ) : '';
1260
-	$cc_info['card_zip']       = isset( $_POST['wpinv_zip'] )      ? sanitize_text_field( $_POST['wpinv_zip'] )     : '';
1251
+	$cc_info['card_name']      = isset($_POST['card_name']) ? sanitize_text_field($_POST['card_name']) : '';
1252
+	$cc_info['card_number']    = isset($_POST['card_number']) ? sanitize_text_field($_POST['card_number']) : '';
1253
+	$cc_info['card_cvc']       = isset($_POST['card_cvc']) ? sanitize_text_field($_POST['card_cvc']) : '';
1254
+	$cc_info['card_exp_month'] = isset($_POST['card_exp_month']) ? sanitize_text_field($_POST['card_exp_month']) : '';
1255
+	$cc_info['card_exp_year']  = isset($_POST['card_exp_year']) ? sanitize_text_field($_POST['card_exp_year']) : '';
1256
+	$cc_info['card_address']   = isset($_POST['wpinv_address']) ? sanitize_text_field($_POST['wpinv_address']) : '';
1257
+	$cc_info['card_city']      = isset($_POST['wpinv_city']) ? sanitize_text_field($_POST['wpinv_city']) : '';
1258
+	$cc_info['card_state']     = isset($_POST['wpinv_state']) ? sanitize_text_field($_POST['wpinv_state']) : '';
1259
+	$cc_info['card_country']   = isset($_POST['wpinv_country']) ? sanitize_text_field($_POST['wpinv_country']) : '';
1260
+	$cc_info['card_zip']       = isset($_POST['wpinv_zip']) ? sanitize_text_field($_POST['wpinv_zip']) : '';
1261 1261
 
1262 1262
 	// Return cc info
1263 1263
 	return $cc_info;
1264 1264
 }
1265 1265
 
1266
-function wpinv_checkout_validate_cc_zip( $zip = 0, $country_code = '' ) {
1266
+function wpinv_checkout_validate_cc_zip($zip = 0, $country_code = '') {
1267 1267
     $ret = false;
1268 1268
 
1269
-    if ( empty( $zip ) || empty( $country_code ) )
1269
+    if (empty($zip) || empty($country_code))
1270 1270
         return $ret;
1271 1271
 
1272
-    $country_code = strtoupper( $country_code );
1272
+    $country_code = strtoupper($country_code);
1273 1273
 
1274 1274
     $zip_regex = array(
1275 1275
         "AD" => "AD\d{3}",
@@ -1429,72 +1429,72 @@  discard block
 block discarded – undo
1429 1429
         "ZM" => "\d{5}"
1430 1430
     );
1431 1431
 
1432
-    if ( ! isset ( $zip_regex[ $country_code ] ) || preg_match( "/" . $zip_regex[ $country_code ] . "/i", $zip ) )
1432
+    if (!isset ($zip_regex[$country_code]) || preg_match("/" . $zip_regex[$country_code] . "/i", $zip))
1433 1433
         $ret = true;
1434 1434
 
1435
-    return apply_filters( 'wpinv_is_zip_valid', $ret, $zip, $country_code );
1435
+    return apply_filters('wpinv_is_zip_valid', $ret, $zip, $country_code);
1436 1436
 }
1437 1437
 
1438 1438
 function wpinv_checkout_validate_agree_to_terms() {
1439 1439
     // Validate agree to terms
1440
-    if ( ! isset( $_POST['wpi_agree_to_terms'] ) || $_POST['wpi_agree_to_terms'] != 1 ) {
1440
+    if (!isset($_POST['wpi_agree_to_terms']) || $_POST['wpi_agree_to_terms'] != 1) {
1441 1441
         // User did not agree
1442
-        wpinv_set_error( 'agree_to_terms', apply_filters( 'wpinv_agree_to_terms_text', __( 'You must agree to the terms of use', 'invoicing' ) ) );
1442
+        wpinv_set_error('agree_to_terms', apply_filters('wpinv_agree_to_terms_text', __('You must agree to the terms of use', 'invoicing')));
1443 1443
     }
1444 1444
 }
1445 1445
 
1446 1446
 function wpinv_checkout_validate_invoice_user() {
1447 1447
     global $wpi_cart, $user_ID;
1448 1448
 
1449
-    if(empty($wpi_cart)){
1449
+    if (empty($wpi_cart)) {
1450 1450
         $wpi_cart = wpinv_get_invoice_cart();
1451 1451
     }
1452 1452
 
1453
-    $invoice_user = (int)$wpi_cart->get_user_id();
1453
+    $invoice_user = (int) $wpi_cart->get_user_id();
1454 1454
     $valid_user_data = array(
1455 1455
         'user_id' => $invoice_user
1456 1456
     );
1457 1457
 
1458 1458
     // If guest checkout allowed
1459
-    if ( !wpinv_require_login_to_checkout() ) {
1459
+    if (!wpinv_require_login_to_checkout()) {
1460 1460
         return $valid_user_data;
1461 1461
     }
1462 1462
     
1463 1463
     // Verify there is a user_ID
1464
-    if ( $user_ID == $invoice_user ) {
1464
+    if ($user_ID == $invoice_user) {
1465 1465
         // Get the logged in user data
1466
-        $user_data = get_userdata( $user_ID );
1467
-        $required_fields  = wpinv_checkout_required_fields();
1466
+        $user_data = get_userdata($user_ID);
1467
+        $required_fields = wpinv_checkout_required_fields();
1468 1468
 
1469 1469
         // Loop through required fields and show error messages
1470
-         if ( !empty( $required_fields ) ) {
1471
-            foreach ( $required_fields as $field_name => $value ) {
1472
-                if ( in_array( $value, $required_fields ) && empty( $_POST[ 'wpinv_' . $field_name ] ) ) {
1473
-                    wpinv_set_error( $value['error_id'], $value['error_message'] );
1470
+         if (!empty($required_fields)) {
1471
+            foreach ($required_fields as $field_name => $value) {
1472
+                if (in_array($value, $required_fields) && empty($_POST['wpinv_' . $field_name])) {
1473
+                    wpinv_set_error($value['error_id'], $value['error_message']);
1474 1474
                 }
1475 1475
             }
1476 1476
         }
1477 1477
 
1478 1478
         // Verify data
1479
-        if ( $user_data ) {
1479
+        if ($user_data) {
1480 1480
             // Collected logged in user data
1481 1481
             $valid_user_data = array(
1482 1482
                 'user_id'     => $user_ID,
1483
-                'email'       => isset( $_POST['wpinv_email'] ) ? sanitize_email( $_POST['wpinv_email'] ) : $user_data->user_email,
1484
-                'first_name'  => isset( $_POST['wpinv_first_name'] ) && ! empty( $_POST['wpinv_first_name'] ) ? sanitize_text_field( $_POST['wpinv_first_name'] ) : $user_data->first_name,
1485
-                'last_name'   => isset( $_POST['wpinv_last_name'] ) && ! empty( $_POST['wpinv_last_name']  ) ? sanitize_text_field( $_POST['wpinv_last_name']  ) : $user_data->last_name,
1483
+                'email'       => isset($_POST['wpinv_email']) ? sanitize_email($_POST['wpinv_email']) : $user_data->user_email,
1484
+                'first_name'  => isset($_POST['wpinv_first_name']) && !empty($_POST['wpinv_first_name']) ? sanitize_text_field($_POST['wpinv_first_name']) : $user_data->first_name,
1485
+                'last_name'   => isset($_POST['wpinv_last_name']) && !empty($_POST['wpinv_last_name']) ? sanitize_text_field($_POST['wpinv_last_name']) : $user_data->last_name,
1486 1486
             );
1487 1487
 
1488
-            if ( !empty( $_POST[ 'wpinv_email' ] ) && !is_email( $_POST[ 'wpinv_email' ] ) ) {
1489
-                wpinv_set_error( 'invalid_email', __( 'Please enter a valid email address', 'invoicing' ) );
1488
+            if (!empty($_POST['wpinv_email']) && !is_email($_POST['wpinv_email'])) {
1489
+                wpinv_set_error('invalid_email', __('Please enter a valid email address', 'invoicing'));
1490 1490
             }
1491 1491
         } else {
1492 1492
             // Set invalid user error
1493
-            wpinv_set_error( 'invalid_user', __( 'The user billing information is invalid', 'invoicing' ) );
1493
+            wpinv_set_error('invalid_user', __('The user billing information is invalid', 'invoicing'));
1494 1494
         }
1495 1495
     } else {
1496 1496
         // Set invalid user error
1497
-        wpinv_set_error( 'invalid_user_id', __( 'The invalid invoice user id', 'invoicing' ) );
1497
+        wpinv_set_error('invalid_user_id', __('The invalid invoice user id', 'invoicing'));
1498 1498
     }
1499 1499
 
1500 1500
     // Return user data
@@ -1506,27 +1506,27 @@  discard block
 block discarded – undo
1506 1506
 
1507 1507
     $data = array();
1508 1508
     
1509
-    if ( is_user_logged_in() ) {
1510
-        if ( !wpinv_require_login_to_checkout() || ( wpinv_require_login_to_checkout() && (int)$wpi_cart->get_user_id() === (int)get_current_user_id() ) ) {
1511
-            $data['user_id'] = (int)get_current_user_id();
1509
+    if (is_user_logged_in()) {
1510
+        if (!wpinv_require_login_to_checkout() || (wpinv_require_login_to_checkout() && (int) $wpi_cart->get_user_id() === (int) get_current_user_id())) {
1511
+            $data['user_id'] = (int) get_current_user_id();
1512 1512
         } else {
1513
-            wpinv_set_error( 'logged_in_only', __( 'You are not allowed to pay for this invoice', 'invoicing' ) );
1513
+            wpinv_set_error('logged_in_only', __('You are not allowed to pay for this invoice', 'invoicing'));
1514 1514
         }
1515 1515
     } else {
1516 1516
         // If guest checkout allowed
1517
-        if ( !wpinv_require_login_to_checkout() ) {
1517
+        if (!wpinv_require_login_to_checkout()) {
1518 1518
             $data['user_id'] = 0;
1519 1519
         } else {
1520
-            wpinv_set_error( 'logged_in_only', __( 'You must be logged in to pay for this invoice', 'invoicing' ) );
1520
+            wpinv_set_error('logged_in_only', __('You must be logged in to pay for this invoice', 'invoicing'));
1521 1521
         }
1522 1522
     }
1523 1523
 
1524 1524
     return $data;
1525 1525
 }
1526 1526
 
1527
-function wpinv_checkout_form_get_user( $valid_data = array() ) {
1527
+function wpinv_checkout_form_get_user($valid_data = array()) {
1528 1528
 
1529
-    if ( !empty( $valid_data['current_user']['user_id'] ) ) {
1529
+    if (!empty($valid_data['current_user']['user_id'])) {
1530 1530
         $user = $valid_data['current_user'];
1531 1531
     } else {
1532 1532
         // Set the valid invoice user
@@ -1534,7 +1534,7 @@  discard block
 block discarded – undo
1534 1534
     }
1535 1535
 
1536 1536
     // Verify invoice have an user
1537
-    if ( false === $user || empty( $user ) ) {
1537
+    if (false === $user || empty($user)) {
1538 1538
         return false;
1539 1539
     }
1540 1540
 
@@ -1551,11 +1551,11 @@  discard block
 block discarded – undo
1551 1551
         'zip',
1552 1552
     );
1553 1553
     
1554
-    foreach ( $address_fields as $field ) {
1555
-        $user[$field]  = !empty( $_POST['wpinv_' . $field] ) ? sanitize_text_field( $_POST['wpinv_' . $field] ) : false;
1554
+    foreach ($address_fields as $field) {
1555
+        $user[$field] = !empty($_POST['wpinv_' . $field]) ? sanitize_text_field($_POST['wpinv_' . $field]) : false;
1556 1556
         
1557
-        if ( !empty( $user['user_id'] ) && !empty( $valid_data['current_user']['user_id'] ) && $valid_data['current_user']['user_id'] == $valid_data['invoice_user']['user_id'] ) {
1558
-            update_user_meta( $user['user_id'], '_wpinv_' . $field, $user[$field] );
1557
+        if (!empty($user['user_id']) && !empty($valid_data['current_user']['user_id']) && $valid_data['current_user']['user_id'] == $valid_data['invoice_user']['user_id']) {
1558
+            update_user_meta($user['user_id'], '_wpinv_' . $field, $user[$field]);
1559 1559
         }
1560 1560
     }
1561 1561
 
@@ -1563,28 +1563,28 @@  discard block
 block discarded – undo
1563 1563
     return $user;
1564 1564
 }
1565 1565
 
1566
-function wpinv_set_checkout_session( $invoice_data = array() ) {
1566
+function wpinv_set_checkout_session($invoice_data = array()) {
1567 1567
     global $wpi_session;
1568 1568
     
1569
-    return $wpi_session->set( 'wpinv_checkout', $invoice_data );
1569
+    return $wpi_session->set('wpinv_checkout', $invoice_data);
1570 1570
 }
1571 1571
 
1572 1572
 function wpinv_get_checkout_session() {
1573 1573
 	global $wpi_session;
1574 1574
     
1575
-    return $wpi_session->get( 'wpinv_checkout' );
1575
+    return $wpi_session->get('wpinv_checkout');
1576 1576
 }
1577 1577
 
1578 1578
 function wpinv_empty_cart() {
1579 1579
     global $wpi_session;
1580 1580
 
1581 1581
     // Remove cart contents
1582
-    $wpi_session->set( 'wpinv_checkout', NULL );
1582
+    $wpi_session->set('wpinv_checkout', NULL);
1583 1583
 
1584 1584
     // Remove all cart fees
1585
-    $wpi_session->set( 'wpi_cart_fees', NULL );
1585
+    $wpi_session->set('wpi_cart_fees', NULL);
1586 1586
 
1587
-    do_action( 'wpinv_empty_cart' );
1587
+    do_action('wpinv_empty_cart');
1588 1588
 }
1589 1589
 
1590 1590
 function wpinv_process_checkout() {
@@ -1593,7 +1593,7 @@  discard block
 block discarded – undo
1593 1593
     wpinv_clear_errors();
1594 1594
     
1595 1595
     $invoice = wpinv_get_invoice_cart();
1596
-    if ( empty( $invoice ) ) {
1596
+    if (empty($invoice)) {
1597 1597
         return false;
1598 1598
     }
1599 1599
     
@@ -1601,42 +1601,42 @@  discard block
 block discarded – undo
1601 1601
     
1602 1602
     $wpi_checkout_id = $invoice->ID;
1603 1603
     
1604
-    do_action( 'wpinv_pre_process_checkout' );
1604
+    do_action('wpinv_pre_process_checkout');
1605 1605
     
1606
-    if ( !wpinv_get_cart_contents() ) { // Make sure the cart isn't empty
1606
+    if (!wpinv_get_cart_contents()) { // Make sure the cart isn't empty
1607 1607
         $valid_data = false;
1608
-        wpinv_set_error( 'empty_cart', __( 'Your cart is empty', 'invoicing' ) );
1608
+        wpinv_set_error('empty_cart', __('Your cart is empty', 'invoicing'));
1609 1609
     } else {
1610 1610
         // Validate the form $_POST data
1611 1611
         $valid_data = wpinv_validate_checkout_fields();
1612 1612
         
1613 1613
         // Allow themes and plugins to hook to errors
1614
-        do_action( 'wpinv_checkout_error_checks', $valid_data, $_POST );
1614
+        do_action('wpinv_checkout_error_checks', $valid_data, $_POST);
1615 1615
     }
1616 1616
     
1617
-    $is_ajax    = defined( 'DOING_AJAX' ) && DOING_AJAX;
1617
+    $is_ajax = defined('DOING_AJAX') && DOING_AJAX;
1618 1618
     
1619 1619
     // Validate the user
1620
-    $user = wpinv_checkout_form_get_user( $valid_data );
1620
+    $user = wpinv_checkout_form_get_user($valid_data);
1621 1621
 
1622 1622
     // Let extensions validate fields after user is logged in if user has used login/registration form
1623
-    do_action( 'wpinv_checkout_user_error_checks', $user, $valid_data, $_POST );
1623
+    do_action('wpinv_checkout_user_error_checks', $user, $valid_data, $_POST);
1624 1624
     
1625
-    if ( false === $valid_data || wpinv_get_errors() || ! $user ) {
1626
-        if ( $is_ajax ) {
1627
-            do_action( 'wpinv_ajax_checkout_errors' );
1625
+    if (false === $valid_data || wpinv_get_errors() || !$user) {
1626
+        if ($is_ajax) {
1627
+            do_action('wpinv_ajax_checkout_errors');
1628 1628
             die();
1629 1629
         } else {
1630 1630
             return false;
1631 1631
         }
1632 1632
     }
1633 1633
 
1634
-    if ( $is_ajax ) {
1634
+    if ($is_ajax) {
1635 1635
         // Save address fields.
1636
-        $address_fields = array( 'first_name', 'last_name', 'phone', 'address', 'city', 'country', 'state', 'zip', 'company' );
1637
-        foreach ( $address_fields as $field ) {
1638
-            if ( isset( $user[$field] ) ) {
1639
-                $invoice->set( $field, $user[$field] );
1636
+        $address_fields = array('first_name', 'last_name', 'phone', 'address', 'city', 'country', 'state', 'zip', 'company');
1637
+        foreach ($address_fields as $field) {
1638
+            if (isset($user[$field])) {
1639
+                $invoice->set($field, $user[$field]);
1640 1640
             }
1641 1641
 
1642 1642
             $invoice->save();
@@ -1644,16 +1644,16 @@  discard block
 block discarded – undo
1644 1644
 
1645 1645
         $response['success']            = true;
1646 1646
         $response['data']['subtotal']   = $invoice->get_subtotal();
1647
-        $response['data']['subtotalf']  = $invoice->get_subtotal( true );
1647
+        $response['data']['subtotalf']  = $invoice->get_subtotal(true);
1648 1648
         $response['data']['discount']   = $invoice->get_discount();
1649
-        $response['data']['discountf']  = $invoice->get_discount( true );
1649
+        $response['data']['discountf']  = $invoice->get_discount(true);
1650 1650
         $response['data']['tax']        = $invoice->get_tax();
1651
-        $response['data']['taxf']       = $invoice->get_tax( true );
1651
+        $response['data']['taxf']       = $invoice->get_tax(true);
1652 1652
         $response['data']['total']      = $invoice->get_total();
1653
-        $response['data']['totalf']     = $invoice->get_total( true );
1654
-	    $response['data']['free']       = $invoice->is_free() && ( ! ( (float) $response['data']['total'] > 0 ) || $invoice->is_free_trial() ) ? true : false;
1653
+        $response['data']['totalf']     = $invoice->get_total(true);
1654
+	    $response['data']['free'] = $invoice->is_free() && (!((float) $response['data']['total'] > 0) || $invoice->is_free_trial()) ? true : false;
1655 1655
 
1656
-        wp_send_json( $response );
1656
+        wp_send_json($response);
1657 1657
     }
1658 1658
     
1659 1659
     $user_info = array(
@@ -1675,42 +1675,42 @@  discard block
 block discarded – undo
1675 1675
     
1676 1676
     // Setup invoice information
1677 1677
     $invoice_data = array(
1678
-        'invoice_id'        => !empty( $invoice ) ? $invoice->ID : 0,
1678
+        'invoice_id'        => !empty($invoice) ? $invoice->ID : 0,
1679 1679
         'items'             => $cart_items,
1680 1680
         'cart_discounts'    => $discounts,
1681
-        'fees'              => wpinv_get_cart_fees(),        // Any arbitrary fees that have been added to the cart
1682
-        'subtotal'          => wpinv_get_cart_subtotal( $cart_items ),    // Amount before taxes and discounts
1683
-        'discount'          => wpinv_get_cart_items_discount_amount( $cart_items, $discounts ), // Discounted amount
1684
-        'tax'               => wpinv_get_cart_tax( $cart_items ),               // Taxed amount
1685
-        'price'             => wpinv_get_cart_total( $cart_items, $discounts ),    // Amount after taxes
1681
+        'fees'              => wpinv_get_cart_fees(), // Any arbitrary fees that have been added to the cart
1682
+        'subtotal'          => wpinv_get_cart_subtotal($cart_items), // Amount before taxes and discounts
1683
+        'discount'          => wpinv_get_cart_items_discount_amount($cart_items, $discounts), // Discounted amount
1684
+        'tax'               => wpinv_get_cart_tax($cart_items), // Taxed amount
1685
+        'price'             => wpinv_get_cart_total($cart_items, $discounts), // Amount after taxes
1686 1686
         'invoice_key'       => $invoice->get_key() ? $invoice->get_key() : $invoice->generate_key(),
1687 1687
         'user_email'        => $invoice->get_email(),
1688
-        'date'              => date( 'Y-m-d H:i:s', current_time( 'timestamp' ) ),
1689
-        'user_info'         => stripslashes_deep( $user_info ),
1688
+        'date'              => date('Y-m-d H:i:s', current_time('timestamp')),
1689
+        'user_info'         => stripslashes_deep($user_info),
1690 1690
         'post_data'         => $_POST,
1691 1691
         'cart_details'      => $cart_items,
1692 1692
         'gateway'           => $valid_data['gateway'],
1693 1693
         'card_info'         => $valid_data['cc_info']
1694 1694
     );
1695 1695
     
1696
-    $vat_info   = $wpinv_euvat->current_vat_data();
1697
-    if ( is_array( $vat_info ) ) {
1696
+    $vat_info = $wpinv_euvat->current_vat_data();
1697
+    if (is_array($vat_info)) {
1698 1698
         $invoice_data['user_info']['vat_number']        = $vat_info['number'];
1699 1699
         $invoice_data['user_info']['vat_rate']          = wpinv_get_tax_rate($invoice_data['user_info']['country'], $invoice_data['user_info']['state']);
1700
-        $invoice_data['user_info']['adddress_confirmed']    = isset($vat_info['adddress_confirmed']) ? $vat_info['adddress_confirmed'] : false;
1700
+        $invoice_data['user_info']['adddress_confirmed'] = isset($vat_info['adddress_confirmed']) ? $vat_info['adddress_confirmed'] : false;
1701 1701
 
1702 1702
         // Add the VAT rate to each item in the cart
1703
-        foreach( $invoice_data['cart_details'] as $key => $item_data) {
1703
+        foreach ($invoice_data['cart_details'] as $key => $item_data) {
1704 1704
             $rate = wpinv_get_tax_rate($invoice_data['user_info']['country'], $invoice_data['user_info']['state'], $item_data['id']);
1705
-            $invoice_data['cart_details'][$key]['vat_rate'] = wpinv_round_amount( $rate, 4 );
1705
+            $invoice_data['cart_details'][$key]['vat_rate'] = wpinv_round_amount($rate, 4);
1706 1706
         }
1707 1707
     }
1708 1708
     
1709 1709
     // Save vat fields.
1710
-    $address_fields = array( 'vat_number', 'vat_rate', 'adddress_confirmed' );
1711
-    foreach ( $address_fields as $field ) {
1712
-        if ( isset( $invoice_data['user_info'][$field] ) ) {
1713
-            $invoice->set( $field, $invoice_data['user_info'][$field] );
1710
+    $address_fields = array('vat_number', 'vat_rate', 'adddress_confirmed');
1711
+    foreach ($address_fields as $field) {
1712
+        if (isset($invoice_data['user_info'][$field])) {
1713
+            $invoice->set($field, $invoice_data['user_info'][$field]);
1714 1714
         }
1715 1715
 
1716 1716
         $invoice->save();
@@ -1720,55 +1720,55 @@  discard block
 block discarded – undo
1720 1720
     $valid_data['user'] = $user;
1721 1721
     
1722 1722
     // Allow themes and plugins to hook before the gateway
1723
-    do_action( 'wpinv_checkout_before_gateway', $_POST, $user_info, $valid_data );
1723
+    do_action('wpinv_checkout_before_gateway', $_POST, $user_info, $valid_data);
1724 1724
     
1725 1725
     // If the total amount in the cart is 0, send to the manual gateway. This emulates a free invoice
1726
-    if ( !$invoice_data['price'] ) {
1726
+    if (!$invoice_data['price']) {
1727 1727
         // Revert to manual
1728 1728
         $invoice_data['gateway'] = 'manual';
1729 1729
         $_POST['wpi-gateway'] = 'manual';
1730 1730
     }
1731 1731
     
1732 1732
     // Allow the invoice data to be modified before it is sent to the gateway
1733
-    $invoice_data = apply_filters( 'wpinv_data_before_gateway', $invoice_data, $valid_data );
1733
+    $invoice_data = apply_filters('wpinv_data_before_gateway', $invoice_data, $valid_data);
1734 1734
     
1735
-    if ( $invoice_data['price'] && $invoice_data['gateway'] == 'manual' ) {
1735
+    if ($invoice_data['price'] && $invoice_data['gateway'] == 'manual') {
1736 1736
         $mode = 'test';
1737 1737
     } else {
1738
-        $mode = wpinv_is_test_mode( $invoice_data['gateway'] ) ? 'test' : 'live';
1738
+        $mode = wpinv_is_test_mode($invoice_data['gateway']) ? 'test' : 'live';
1739 1739
     }
1740 1740
     
1741 1741
     // Setup the data we're storing in the purchase session
1742 1742
     $session_data = $invoice_data;
1743 1743
     // Make sure credit card numbers are never stored in sessions
1744
-    if ( !empty( $session_data['card_info']['card_number'] ) ) {
1745
-        unset( $session_data['card_info']['card_number'] );
1744
+    if (!empty($session_data['card_info']['card_number'])) {
1745
+        unset($session_data['card_info']['card_number']);
1746 1746
     }
1747 1747
     
1748 1748
     // Used for showing item links to non logged-in users after purchase, and for other plugins needing purchase data.
1749
-    wpinv_set_checkout_session( $invoice_data );
1749
+    wpinv_set_checkout_session($invoice_data);
1750 1750
     
1751 1751
     // Set gateway
1752
-    $invoice->update_meta( '_wpinv_gateway', $invoice_data['gateway'] );
1753
-    $invoice->update_meta( '_wpinv_mode', $mode );
1754
-    $invoice->update_meta( '_wpinv_checkout', date_i18n( 'Y-m-d H:i:s', current_time( 'timestamp' ) ) );
1752
+    $invoice->update_meta('_wpinv_gateway', $invoice_data['gateway']);
1753
+    $invoice->update_meta('_wpinv_mode', $mode);
1754
+    $invoice->update_meta('_wpinv_checkout', date_i18n('Y-m-d H:i:s', current_time('timestamp')));
1755 1755
     
1756
-    do_action( 'wpinv_checkout_before_send_to_gateway', $invoice, $invoice_data );
1756
+    do_action('wpinv_checkout_before_send_to_gateway', $invoice, $invoice_data);
1757 1757
 
1758 1758
     // Send info to the gateway for payment processing
1759
-    wpinv_send_to_gateway( $invoice_data['gateway'], $invoice_data );
1759
+    wpinv_send_to_gateway($invoice_data['gateway'], $invoice_data);
1760 1760
     die();
1761 1761
 }
1762
-add_action( 'wpinv_payment', 'wpinv_process_checkout' );
1762
+add_action('wpinv_payment', 'wpinv_process_checkout');
1763 1763
 
1764
-function wpinv_get_invoices( $args ) {
1765
-    $args = wp_parse_args( $args, array(
1766
-        'status'   => array_keys( wpinv_get_invoice_statuses() ),
1764
+function wpinv_get_invoices($args) {
1765
+    $args = wp_parse_args($args, array(
1766
+        'status'   => array_keys(wpinv_get_invoice_statuses()),
1767 1767
         'type'     => 'wpi_invoice',
1768 1768
         'parent'   => null,
1769 1769
         'user'     => null,
1770 1770
         'email'    => '',
1771
-        'limit'    => get_option( 'posts_per_page' ),
1771
+        'limit'    => get_option('posts_per_page'),
1772 1772
         'offset'   => null,
1773 1773
         'page'     => 1,
1774 1774
         'exclude'  => array(),
@@ -1776,7 +1776,7 @@  discard block
 block discarded – undo
1776 1776
         'order'    => 'DESC',
1777 1777
         'return'   => 'objects',
1778 1778
         'paginate' => false,
1779
-    ) );
1779
+    ));
1780 1780
     
1781 1781
     // Handle some BW compatibility arg names where wp_query args differ in naming.
1782 1782
     $map_legacy = array(
@@ -1789,18 +1789,18 @@  discard block
 block discarded – undo
1789 1789
         'paged'          => 'page',
1790 1790
     );
1791 1791
 
1792
-    foreach ( $map_legacy as $from => $to ) {
1793
-        if ( isset( $args[ $from ] ) ) {
1794
-            $args[ $to ] = $args[ $from ];
1792
+    foreach ($map_legacy as $from => $to) {
1793
+        if (isset($args[$from])) {
1794
+            $args[$to] = $args[$from];
1795 1795
         }
1796 1796
     }
1797 1797
 
1798
-    if ( get_query_var( 'paged' ) )
1798
+    if (get_query_var('paged'))
1799 1799
         $args['page'] = get_query_var('paged');
1800
-    else if ( get_query_var( 'page' ) )
1801
-        $args['page'] = get_query_var( 'page' );
1802
-    else if ( !empty( $args[ 'page' ] ) )
1803
-        $args['page'] = $args[ 'page' ];
1800
+    else if (get_query_var('page'))
1801
+        $args['page'] = get_query_var('page');
1802
+    else if (!empty($args['page']))
1803
+        $args['page'] = $args['page'];
1804 1804
     else
1805 1805
         $args['page'] = 1;
1806 1806
 
@@ -1813,48 +1813,48 @@  discard block
 block discarded – undo
1813 1813
         'post_status'    => $args['status'],
1814 1814
         'posts_per_page' => $args['limit'],
1815 1815
         'meta_query'     => array(),
1816
-        'date_query'     => !empty( $args['date_query'] ) ? $args['date_query'] : array(),
1816
+        'date_query'     => !empty($args['date_query']) ? $args['date_query'] : array(),
1817 1817
         'fields'         => 'ids',
1818 1818
         'orderby'        => $args['orderby'],
1819 1819
         'order'          => $args['order'],
1820 1820
     );
1821 1821
     
1822
-    if ( !empty( $args['user'] ) ) {
1823
-        $wp_query_args['author'] = absint( $args['user'] );
1822
+    if (!empty($args['user'])) {
1823
+        $wp_query_args['author'] = absint($args['user']);
1824 1824
     }
1825 1825
 
1826
-    if ( ! is_null( $args['parent'] ) ) {
1827
-        $wp_query_args['post_parent'] = absint( $args['parent'] );
1826
+    if (!is_null($args['parent'])) {
1827
+        $wp_query_args['post_parent'] = absint($args['parent']);
1828 1828
     }
1829 1829
 
1830
-    if ( ! is_null( $args['offset'] ) ) {
1831
-        $wp_query_args['offset'] = absint( $args['offset'] );
1830
+    if (!is_null($args['offset'])) {
1831
+        $wp_query_args['offset'] = absint($args['offset']);
1832 1832
     } else {
1833
-        $wp_query_args['paged'] = absint( $args['page'] );
1833
+        $wp_query_args['paged'] = absint($args['page']);
1834 1834
     }
1835 1835
 
1836
-    if ( ! empty( $args['exclude'] ) ) {
1837
-        $wp_query_args['post__not_in'] = array_map( 'absint', $args['exclude'] );
1836
+    if (!empty($args['exclude'])) {
1837
+        $wp_query_args['post__not_in'] = array_map('absint', $args['exclude']);
1838 1838
     }
1839 1839
 
1840
-    if ( ! $args['paginate' ] ) {
1840
+    if (!$args['paginate']) {
1841 1841
         $wp_query_args['no_found_rows'] = true;
1842 1842
     }
1843 1843
 
1844 1844
     $wp_query_args = apply_filters('wpinv_get_invoices_args', $wp_query_args, $args);
1845 1845
 
1846 1846
     // Get results.
1847
-    $invoices = new WP_Query( $wp_query_args );
1847
+    $invoices = new WP_Query($wp_query_args);
1848 1848
 
1849
-    if ( 'objects' === $args['return'] ) {
1850
-        $return = array_map( 'wpinv_get_invoice', $invoices->posts );
1851
-    } elseif ( 'self' === $args['return'] ) {
1849
+    if ('objects' === $args['return']) {
1850
+        $return = array_map('wpinv_get_invoice', $invoices->posts);
1851
+    } elseif ('self' === $args['return']) {
1852 1852
         return $invoices;
1853 1853
     } else {
1854 1854
         $return = $invoices->posts;
1855 1855
     }
1856 1856
 
1857
-    if ( $args['paginate' ] ) {
1857
+    if ($args['paginate']) {
1858 1858
         return (object) array(
1859 1859
             'invoices'      => $return,
1860 1860
             'total'         => $invoices->found_posts,
@@ -1867,22 +1867,22 @@  discard block
 block discarded – undo
1867 1867
 
1868 1868
 function wpinv_get_user_invoices_columns() {
1869 1869
     $columns = array(
1870
-            'invoice-number'  => array( 'title' => __( 'ID', 'invoicing' ), 'class' => 'text-left' ),
1871
-            'created-date'    => array( 'title' => __( 'Created Date', 'invoicing' ), 'class' => 'text-left' ),
1872
-            'payment-date'    => array( 'title' => __( 'Payment Date', 'invoicing' ), 'class' => 'text-left' ),
1873
-            'invoice-status'  => array( 'title' => __( 'Status', 'invoicing' ), 'class' => 'text-center' ),
1874
-            'invoice-total'   => array( 'title' => __( 'Total', 'invoicing' ), 'class' => 'text-right' ),
1875
-            'invoice-actions' => array( 'title' => '&nbsp;', 'class' => 'text-center' ),
1870
+            'invoice-number'  => array('title' => __('ID', 'invoicing'), 'class' => 'text-left'),
1871
+            'created-date'    => array('title' => __('Created Date', 'invoicing'), 'class' => 'text-left'),
1872
+            'payment-date'    => array('title' => __('Payment Date', 'invoicing'), 'class' => 'text-left'),
1873
+            'invoice-status'  => array('title' => __('Status', 'invoicing'), 'class' => 'text-center'),
1874
+            'invoice-total'   => array('title' => __('Total', 'invoicing'), 'class' => 'text-right'),
1875
+            'invoice-actions' => array('title' => '&nbsp;', 'class' => 'text-center'),
1876 1876
         );
1877 1877
 
1878
-    return apply_filters( 'wpinv_user_invoices_columns', $columns );
1878
+    return apply_filters('wpinv_user_invoices_columns', $columns);
1879 1879
 }
1880 1880
 
1881
-function wpinv_payment_receipt( $atts, $content = null ) {
1881
+function wpinv_payment_receipt($atts, $content = null) {
1882 1882
     global $wpinv_receipt_args;
1883 1883
 
1884
-    $wpinv_receipt_args = shortcode_atts( array(
1885
-        'error'           => __( 'Sorry, trouble retrieving payment receipt.', 'invoicing' ),
1884
+    $wpinv_receipt_args = shortcode_atts(array(
1885
+        'error'           => __('Sorry, trouble retrieving payment receipt.', 'invoicing'),
1886 1886
         'price'           => true,
1887 1887
         'discount'        => true,
1888 1888
         'items'           => true,
@@ -1891,197 +1891,197 @@  discard block
 block discarded – undo
1891 1891
         'invoice_key'     => false,
1892 1892
         'payment_method'  => true,
1893 1893
         'invoice_id'      => true
1894
-    ), $atts, 'wpinv_receipt' );
1894
+    ), $atts, 'wpinv_receipt');
1895 1895
 
1896 1896
     $session = wpinv_get_checkout_session();
1897
-    if ( isset( $_GET['invoice_key'] ) ) {
1898
-        $invoice_key = urldecode( $_GET['invoice_key'] );
1899
-    } else if ( $session && isset( $session['invoice_key'] ) ) {
1897
+    if (isset($_GET['invoice_key'])) {
1898
+        $invoice_key = urldecode($_GET['invoice_key']);
1899
+    } else if ($session && isset($session['invoice_key'])) {
1900 1900
         $invoice_key = $session['invoice_key'];
1901
-    } elseif ( isset( $wpinv_receipt_args['invoice_key'] ) && $wpinv_receipt_args['invoice_key'] ) {
1901
+    } elseif (isset($wpinv_receipt_args['invoice_key']) && $wpinv_receipt_args['invoice_key']) {
1902 1902
         $invoice_key = $wpinv_receipt_args['invoice_key'];
1903
-    } else if ( isset( $_GET['invoice-id'] ) ) {
1904
-        $invoice_key = wpinv_get_payment_key( (int)$_GET['invoice-id'] );
1903
+    } else if (isset($_GET['invoice-id'])) {
1904
+        $invoice_key = wpinv_get_payment_key((int) $_GET['invoice-id']);
1905 1905
     }
1906 1906
 
1907 1907
     // No key found
1908
-    if ( ! isset( $invoice_key ) ) {
1908
+    if (!isset($invoice_key)) {
1909 1909
         return '<p class="alert alert-error">' . $wpinv_receipt_args['error'] . '</p>';
1910 1910
     }
1911 1911
 
1912
-    $invoice_id    = wpinv_get_invoice_id_by_key( $invoice_key );
1913
-    $user_can_view = wpinv_can_view_receipt( $invoice_key );
1914
-    if ( $user_can_view && isset( $_GET['invoice-id'] ) ) {
1915
-        $invoice_id     = (int)$_GET['invoice-id'];
1916
-        $user_can_view  = $invoice_key == wpinv_get_payment_key( (int)$_GET['invoice-id'] ) ? true : false;
1912
+    $invoice_id    = wpinv_get_invoice_id_by_key($invoice_key);
1913
+    $user_can_view = wpinv_can_view_receipt($invoice_key);
1914
+    if ($user_can_view && isset($_GET['invoice-id'])) {
1915
+        $invoice_id     = (int) $_GET['invoice-id'];
1916
+        $user_can_view  = $invoice_key == wpinv_get_payment_key((int) $_GET['invoice-id']) ? true : false;
1917 1917
     }
1918 1918
 
1919 1919
     // Key was provided, but user is logged out. Offer them the ability to login and view the receipt
1920
-    if ( ! $user_can_view && ! empty( $invoice_key ) && ! is_user_logged_in() ) {
1920
+    if (!$user_can_view && !empty($invoice_key) && !is_user_logged_in()) {
1921 1921
         // login redirect
1922
-        return '<p class="alert alert-error">' . __( 'You are not allowed to access this section', 'invoicing' ) . '</p>';
1922
+        return '<p class="alert alert-error">' . __('You are not allowed to access this section', 'invoicing') . '</p>';
1923 1923
     }
1924 1924
 
1925
-    if ( ! apply_filters( 'wpinv_user_can_view_receipt', $user_can_view, $wpinv_receipt_args ) ) {
1925
+    if (!apply_filters('wpinv_user_can_view_receipt', $user_can_view, $wpinv_receipt_args)) {
1926 1926
         return '<p class="alert alert-error">' . $wpinv_receipt_args['error'] . '</p>';
1927 1927
     }
1928 1928
 
1929 1929
     ob_start();
1930 1930
 
1931
-    wpinv_get_template_part( 'wpinv-invoice-receipt' );
1931
+    wpinv_get_template_part('wpinv-invoice-receipt');
1932 1932
 
1933 1933
     $display = ob_get_clean();
1934 1934
 
1935 1935
     return $display;
1936 1936
 }
1937 1937
 
1938
-function wpinv_get_invoice_id_by_key( $key ) {
1938
+function wpinv_get_invoice_id_by_key($key) {
1939 1939
 	global $wpdb;
1940 1940
 
1941
-	$invoice_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wpinv_key' AND meta_value = %s LIMIT 1", $key ) );
1941
+	$invoice_id = $wpdb->get_var($wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wpinv_key' AND meta_value = %s LIMIT 1", $key));
1942 1942
 
1943
-	if ( $invoice_id != NULL )
1943
+	if ($invoice_id != NULL)
1944 1944
 		return $invoice_id;
1945 1945
 
1946 1946
 	return 0;
1947 1947
 }
1948 1948
 
1949
-function wpinv_can_view_receipt( $invoice_key = '' ) {
1949
+function wpinv_can_view_receipt($invoice_key = '') {
1950 1950
 	$return = false;
1951 1951
 
1952
-	if ( empty( $invoice_key ) ) {
1952
+	if (empty($invoice_key)) {
1953 1953
 		return $return;
1954 1954
 	}
1955 1955
 
1956 1956
 	global $wpinv_receipt_args;
1957 1957
 
1958
-	$wpinv_receipt_args['id'] = wpinv_get_invoice_id_by_key( $invoice_key );
1959
-	if ( isset( $_GET['invoice-id'] ) ) {
1960
-		$wpinv_receipt_args['id'] = $invoice_key == wpinv_get_payment_key( (int)$_GET['invoice-id'] ) ? (int)$_GET['invoice-id'] : 0;
1958
+	$wpinv_receipt_args['id'] = wpinv_get_invoice_id_by_key($invoice_key);
1959
+	if (isset($_GET['invoice-id'])) {
1960
+		$wpinv_receipt_args['id'] = $invoice_key == wpinv_get_payment_key((int) $_GET['invoice-id']) ? (int) $_GET['invoice-id'] : 0;
1961 1961
 	}
1962 1962
 
1963
-	if ( empty( $wpinv_receipt_args['id'] ) ) {
1963
+	if (empty($wpinv_receipt_args['id'])) {
1964 1964
 		return $return;
1965 1965
 	}
1966 1966
 
1967
-	$invoice = wpinv_get_invoice( $wpinv_receipt_args['id'] );
1968
-	if ( !( !empty( $invoice->ID ) && $invoice->get_key() === $invoice_key ) ) {
1967
+	$invoice = wpinv_get_invoice($wpinv_receipt_args['id']);
1968
+	if (!(!empty($invoice->ID) && $invoice->get_key() === $invoice_key)) {
1969 1969
 		return $return;
1970 1970
 	}
1971 1971
 
1972
-	if ( is_user_logged_in() ) {
1973
-		if ( (int)$invoice->get_user_id() === (int) get_current_user_id() ) {
1972
+	if (is_user_logged_in()) {
1973
+		if ((int) $invoice->get_user_id() === (int) get_current_user_id()) {
1974 1974
 			$return = true;
1975 1975
 		}
1976 1976
 	}
1977 1977
 
1978 1978
 	$session = wpinv_get_checkout_session();
1979
-	if ( isset( $_GET['invoice_key'] ) || ( $session && isset( $session['invoice_key'] ) ) ) {
1980
-		$check_key = isset( $_GET['invoice_key'] ) ? $_GET['invoice_key'] : $session['invoice_key'];
1979
+	if (isset($_GET['invoice_key']) || ($session && isset($session['invoice_key']))) {
1980
+		$check_key = isset($_GET['invoice_key']) ? $_GET['invoice_key'] : $session['invoice_key'];
1981 1981
 
1982
-		if ( wpinv_require_login_to_checkout() ) {
1982
+		if (wpinv_require_login_to_checkout()) {
1983 1983
 			$return = $return && $check_key === $invoice_key;
1984 1984
 		} else {
1985 1985
 			$return = $check_key === $invoice_key;
1986 1986
 		}
1987 1987
 	}
1988 1988
 
1989
-	return (bool) apply_filters( 'wpinv_can_view_receipt', $return, $invoice_key );
1989
+	return (bool) apply_filters('wpinv_can_view_receipt', $return, $invoice_key);
1990 1990
 }
1991 1991
 
1992 1992
 function wpinv_pay_for_invoice() {
1993 1993
     global $wpinv_euvat;
1994 1994
     
1995
-    if ( isset( $_GET['invoice_key'] ) ) {
1995
+    if (isset($_GET['invoice_key'])) {
1996 1996
         $checkout_uri   = wpinv_get_checkout_uri();
1997
-        $invoice_key    = sanitize_text_field( $_GET['invoice_key'] );
1997
+        $invoice_key    = sanitize_text_field($_GET['invoice_key']);
1998 1998
         
1999
-        if ( empty( $invoice_key ) ) {
2000
-            wpinv_set_error( 'invalid_invoice', __( 'Invoice not found', 'invoicing' ) );
2001
-            wp_redirect( $checkout_uri );
1999
+        if (empty($invoice_key)) {
2000
+            wpinv_set_error('invalid_invoice', __('Invoice not found', 'invoicing'));
2001
+            wp_redirect($checkout_uri);
2002 2002
             exit();
2003 2003
         }
2004 2004
         
2005
-        do_action( 'wpinv_check_pay_for_invoice', $invoice_key );
2005
+        do_action('wpinv_check_pay_for_invoice', $invoice_key);
2006 2006
 
2007
-        $invoice_id    = wpinv_get_invoice_id_by_key( $invoice_key );
2008
-        $user_can_view = wpinv_can_view_receipt( $invoice_key );
2009
-        if ( $user_can_view && isset( $_GET['invoice-id'] ) ) {
2010
-            $invoice_id     = (int)$_GET['invoice-id'];
2011
-            $user_can_view  = $invoice_key == wpinv_get_payment_key( (int)$_GET['invoice-id'] ) ? true : false;
2007
+        $invoice_id    = wpinv_get_invoice_id_by_key($invoice_key);
2008
+        $user_can_view = wpinv_can_view_receipt($invoice_key);
2009
+        if ($user_can_view && isset($_GET['invoice-id'])) {
2010
+            $invoice_id     = (int) $_GET['invoice-id'];
2011
+            $user_can_view  = $invoice_key == wpinv_get_payment_key((int) $_GET['invoice-id']) ? true : false;
2012 2012
         }
2013 2013
         
2014
-        if ( $invoice_id && $user_can_view && ( $invoice = wpinv_get_invoice( $invoice_id ) ) ) {
2015
-            if ( $invoice->needs_payment() ) {
2014
+        if ($invoice_id && $user_can_view && ($invoice = wpinv_get_invoice($invoice_id))) {
2015
+            if ($invoice->needs_payment()) {
2016 2016
                 $data                   = array();
2017 2017
                 $data['invoice_id']     = $invoice_id;
2018
-                $data['cart_discounts'] = $invoice->get_discounts( true );
2018
+                $data['cart_discounts'] = $invoice->get_discounts(true);
2019 2019
                 
2020
-                wpinv_set_checkout_session( $data );
2020
+                wpinv_set_checkout_session($data);
2021 2021
                 
2022
-                if ( wpinv_get_option( 'vat_ip_country_default' ) ) {
2022
+                if (wpinv_get_option('vat_ip_country_default')) {
2023 2023
                     $_POST['country']   = $wpinv_euvat->get_country_by_ip();
2024 2024
                     $_POST['state']     = $_POST['country'] == $invoice->country ? $invoice->state : '';
2025 2025
                     
2026
-                    wpinv_recalculate_tax( true );
2026
+                    wpinv_recalculate_tax(true);
2027 2027
                 }
2028 2028
                 
2029 2029
             } else {
2030 2030
                 $checkout_uri = $invoice->get_view_url();
2031 2031
             }
2032 2032
         } else {
2033
-            wpinv_set_error( 'invalid_invoice', __( 'You are not allowed to view this invoice', 'invoicing' ) );
2033
+            wpinv_set_error('invalid_invoice', __('You are not allowed to view this invoice', 'invoicing'));
2034 2034
             
2035
-            $checkout_uri = is_user_logged_in() ? wpinv_get_history_page_uri() : wp_login_url( get_permalink() );
2035
+            $checkout_uri = is_user_logged_in() ? wpinv_get_history_page_uri() : wp_login_url(get_permalink());
2036 2036
         }
2037 2037
         
2038
-        if(wp_redirect( $checkout_uri )){
2038
+        if (wp_redirect($checkout_uri)) {
2039 2039
             exit;
2040 2040
         };
2041 2041
         wpinv_die();
2042 2042
     }
2043 2043
 }
2044
-add_action( 'wpinv_pay_for_invoice', 'wpinv_pay_for_invoice' );
2044
+add_action('wpinv_pay_for_invoice', 'wpinv_pay_for_invoice');
2045 2045
 
2046
-function wpinv_handle_pay_via_invoice_link( $invoice_key ) {
2047
-    if ( !empty( $invoice_key ) && !empty( $_REQUEST['_wpipay'] ) && !is_user_logged_in() && $invoice_id = wpinv_get_invoice_id_by_key( $invoice_key ) ) {
2048
-        if ( $invoice = wpinv_get_invoice( $invoice_id ) ) {
2046
+function wpinv_handle_pay_via_invoice_link($invoice_key) {
2047
+    if (!empty($invoice_key) && !empty($_REQUEST['_wpipay']) && !is_user_logged_in() && $invoice_id = wpinv_get_invoice_id_by_key($invoice_key)) {
2048
+        if ($invoice = wpinv_get_invoice($invoice_id)) {
2049 2049
             $user_id = $invoice->get_user_id();
2050
-            $secret = sanitize_text_field( $_GET['_wpipay'] );
2050
+            $secret = sanitize_text_field($_GET['_wpipay']);
2051 2051
             
2052
-            if ( $secret === md5( $user_id . '::' . $invoice->get_email() . '::' . $invoice_key ) ) { // valid invoice link
2053
-                $redirect_to = remove_query_arg( '_wpipay', get_permalink() );
2052
+            if ($secret === md5($user_id . '::' . $invoice->get_email() . '::' . $invoice_key)) { // valid invoice link
2053
+                $redirect_to = remove_query_arg('_wpipay', get_permalink());
2054 2054
                 
2055
-                wpinv_guest_redirect( $redirect_to, $user_id );
2055
+                wpinv_guest_redirect($redirect_to, $user_id);
2056 2056
                 exit();
2057 2057
             }
2058 2058
         }
2059 2059
     }
2060 2060
 }
2061
-add_action( 'wpinv_check_pay_for_invoice', 'wpinv_handle_pay_via_invoice_link' );
2061
+add_action('wpinv_check_pay_for_invoice', 'wpinv_handle_pay_via_invoice_link');
2062 2062
 
2063
-function wpinv_set_payment_transaction_id( $invoice_id = 0, $transaction_id = '' ) {
2064
-    $invoice_id = is_object( $invoice_id ) && !empty( $invoice_id->ID ) ? $invoice_id : $invoice_id;
2063
+function wpinv_set_payment_transaction_id($invoice_id = 0, $transaction_id = '') {
2064
+    $invoice_id = is_object($invoice_id) && !empty($invoice_id->ID) ? $invoice_id : $invoice_id;
2065 2065
     
2066
-    if ( empty( $invoice_id ) && $invoice_id > 0 ) {
2066
+    if (empty($invoice_id) && $invoice_id > 0) {
2067 2067
         return false;
2068 2068
     }
2069 2069
     
2070
-    if ( empty( $transaction_id ) ) {
2070
+    if (empty($transaction_id)) {
2071 2071
         $transaction_id = $invoice_id;
2072 2072
     }
2073 2073
 
2074
-    $transaction_id = apply_filters( 'wpinv_set_payment_transaction_id', $transaction_id, $invoice_id );
2074
+    $transaction_id = apply_filters('wpinv_set_payment_transaction_id', $transaction_id, $invoice_id);
2075 2075
     
2076
-    return wpinv_update_invoice_meta( $invoice_id, '_wpinv_transaction_id', $transaction_id );
2076
+    return wpinv_update_invoice_meta($invoice_id, '_wpinv_transaction_id', $transaction_id);
2077 2077
 }
2078 2078
 
2079
-function wpinv_invoice_status_label( $status, $status_display = '' ) {
2080
-    if ( empty( $status_display ) ) {
2081
-        $status_display = wpinv_status_nicename( $status );
2079
+function wpinv_invoice_status_label($status, $status_display = '') {
2080
+    if (empty($status_display)) {
2081
+        $status_display = wpinv_status_nicename($status);
2082 2082
     }
2083 2083
     
2084
-    switch ( $status ) {
2084
+    switch ($status) {
2085 2085
         case 'publish' :
2086 2086
         case 'wpi-renewal' :
2087 2087
             $class = 'label-success';
@@ -2106,201 +2106,201 @@  discard block
 block discarded – undo
2106 2106
     
2107 2107
     $label = '<span class="label label-inv-' . $status . ' ' . $class . '">' . $status_display . '</span>';
2108 2108
     
2109
-    return apply_filters( 'wpinv_invoice_status_label', $label, $status, $status_display );
2109
+    return apply_filters('wpinv_invoice_status_label', $label, $status, $status_display);
2110 2110
 }
2111 2111
 
2112
-function wpinv_format_invoice_number( $number, $type = '' ) {
2113
-    $check = apply_filters( 'wpinv_pre_format_invoice_number', null, $number, $type );
2114
-    if ( null !== $check ) {
2112
+function wpinv_format_invoice_number($number, $type = '') {
2113
+    $check = apply_filters('wpinv_pre_format_invoice_number', null, $number, $type);
2114
+    if (null !== $check) {
2115 2115
         return $check;
2116 2116
     }
2117 2117
 
2118
-    if ( !empty( $number ) && !is_numeric( $number ) ) {
2118
+    if (!empty($number) && !is_numeric($number)) {
2119 2119
         return $number;
2120 2120
     }
2121 2121
 
2122
-    $padd  = wpinv_get_option( 'invoice_number_padd' );
2123
-    $prefix  = wpinv_get_option( 'invoice_number_prefix' );
2124
-    $postfix = wpinv_get_option( 'invoice_number_postfix' );
2122
+    $padd = wpinv_get_option('invoice_number_padd');
2123
+    $prefix  = wpinv_get_option('invoice_number_prefix');
2124
+    $postfix = wpinv_get_option('invoice_number_postfix');
2125 2125
     
2126
-    $padd = absint( $padd );
2127
-    $formatted_number = absint( $number );
2126
+    $padd = absint($padd);
2127
+    $formatted_number = absint($number);
2128 2128
     
2129
-    if ( $padd > 0 ) {
2130
-        $formatted_number = zeroise( $formatted_number, $padd );
2129
+    if ($padd > 0) {
2130
+        $formatted_number = zeroise($formatted_number, $padd);
2131 2131
     }    
2132 2132
 
2133 2133
     $formatted_number = $prefix . $formatted_number . $postfix;
2134 2134
 
2135
-    return apply_filters( 'wpinv_format_invoice_number', $formatted_number, $number, $prefix, $postfix, $padd );
2135
+    return apply_filters('wpinv_format_invoice_number', $formatted_number, $number, $prefix, $postfix, $padd);
2136 2136
 }
2137 2137
 
2138
-function wpinv_get_next_invoice_number( $type = '' ) {
2139
-    $check = apply_filters( 'wpinv_get_pre_next_invoice_number', null, $type );
2140
-    if ( null !== $check ) {
2138
+function wpinv_get_next_invoice_number($type = '') {
2139
+    $check = apply_filters('wpinv_get_pre_next_invoice_number', null, $type);
2140
+    if (null !== $check) {
2141 2141
         return $check;
2142 2142
     }
2143 2143
     
2144
-    if ( !wpinv_sequential_number_active() ) {
2144
+    if (!wpinv_sequential_number_active()) {
2145 2145
         return false;
2146 2146
     }
2147 2147
 
2148
-    $number = $last_number = get_option( 'wpinv_last_invoice_number', 0 );
2149
-    $start  = wpinv_get_option( 'invoice_sequence_start', 1 );
2150
-    if ( !absint( $start ) > 0 ) {
2148
+    $number = $last_number = get_option('wpinv_last_invoice_number', 0);
2149
+    $start  = wpinv_get_option('invoice_sequence_start', 1);
2150
+    if (!absint($start) > 0) {
2151 2151
         $start = 1;
2152 2152
     }
2153 2153
     $increment_number = true;
2154 2154
     $save_number = false;
2155 2155
 
2156
-    if ( !empty( $number ) && !is_numeric( $number ) && $number == wpinv_format_invoice_number( $number ) ) {
2157
-        $number = wpinv_clean_invoice_number( $number );
2156
+    if (!empty($number) && !is_numeric($number) && $number == wpinv_format_invoice_number($number)) {
2157
+        $number = wpinv_clean_invoice_number($number);
2158 2158
     }
2159 2159
 
2160
-    if ( empty( $number ) ) {
2161
-        if ( !( $last_number === 0 || $last_number === '0' ) ) {
2162
-            $last_invoice = wpinv_get_invoices( array( 'limit' => 1, 'order' => 'DESC', 'orderby' => 'ID', 'return' => 'posts', 'fields' => 'ids', 'status' => array_keys( wpinv_get_invoice_statuses( true, true ) ) ) );
2160
+    if (empty($number)) {
2161
+        if (!($last_number === 0 || $last_number === '0')) {
2162
+            $last_invoice = wpinv_get_invoices(array('limit' => 1, 'order' => 'DESC', 'orderby' => 'ID', 'return' => 'posts', 'fields' => 'ids', 'status' => array_keys(wpinv_get_invoice_statuses(true, true))));
2163 2163
 
2164
-            if ( !empty( $last_invoice[0] ) && $invoice_number = wpinv_get_invoice_number( $last_invoice[0] ) ) {
2165
-                if ( is_numeric( $invoice_number ) ) {
2164
+            if (!empty($last_invoice[0]) && $invoice_number = wpinv_get_invoice_number($last_invoice[0])) {
2165
+                if (is_numeric($invoice_number)) {
2166 2166
                     $number = $invoice_number;
2167 2167
                 } else {
2168
-                    $number = wpinv_clean_invoice_number( $invoice_number );
2168
+                    $number = wpinv_clean_invoice_number($invoice_number);
2169 2169
                 }
2170 2170
             }
2171 2171
 
2172
-            if ( empty( $number ) ) {
2172
+            if (empty($number)) {
2173 2173
                 $increment_number = false;
2174 2174
                 $number = $start;
2175
-                $save_number = ( $number - 1 );
2175
+                $save_number = ($number - 1);
2176 2176
             } else {
2177 2177
                 $save_number = $number;
2178 2178
             }
2179 2179
         }
2180 2180
     }
2181 2181
 
2182
-    if ( $start > $number ) {
2182
+    if ($start > $number) {
2183 2183
         $increment_number = false;
2184 2184
         $number = $start;
2185
-        $save_number = ( $number - 1 );
2185
+        $save_number = ($number - 1);
2186 2186
     }
2187 2187
 
2188
-    if ( $save_number !== false ) {
2189
-        update_option( 'wpinv_last_invoice_number', $save_number );
2188
+    if ($save_number !== false) {
2189
+        update_option('wpinv_last_invoice_number', $save_number);
2190 2190
     }
2191 2191
     
2192
-    $increment_number = apply_filters( 'wpinv_increment_payment_number', $increment_number, $number );
2192
+    $increment_number = apply_filters('wpinv_increment_payment_number', $increment_number, $number);
2193 2193
 
2194
-    if ( $increment_number ) {
2194
+    if ($increment_number) {
2195 2195
         $number++;
2196 2196
     }
2197 2197
 
2198
-    return apply_filters( 'wpinv_get_next_invoice_number', $number );
2198
+    return apply_filters('wpinv_get_next_invoice_number', $number);
2199 2199
 }
2200 2200
 
2201
-function wpinv_clean_invoice_number( $number, $type = '' ) {
2202
-    $check = apply_filters( 'wpinv_pre_clean_invoice_number', null, $number, $type );
2203
-    if ( null !== $check ) {
2201
+function wpinv_clean_invoice_number($number, $type = '') {
2202
+    $check = apply_filters('wpinv_pre_clean_invoice_number', null, $number, $type);
2203
+    if (null !== $check) {
2204 2204
         return $check;
2205 2205
     }
2206 2206
     
2207
-    $prefix  = wpinv_get_option( 'invoice_number_prefix' );
2208
-    $postfix = wpinv_get_option( 'invoice_number_postfix' );
2207
+    $prefix  = wpinv_get_option('invoice_number_prefix');
2208
+    $postfix = wpinv_get_option('invoice_number_postfix');
2209 2209
 
2210
-    $number = preg_replace( '/' . $prefix . '/', '', $number, 1 );
2210
+    $number = preg_replace('/' . $prefix . '/', '', $number, 1);
2211 2211
 
2212
-    $length      = strlen( $number );
2213
-    $postfix_pos = strrpos( $number, $postfix );
2212
+    $length      = strlen($number);
2213
+    $postfix_pos = strrpos($number, $postfix);
2214 2214
     
2215
-    if ( false !== $postfix_pos ) {
2216
-        $number      = substr_replace( $number, '', $postfix_pos, $length );
2215
+    if (false !== $postfix_pos) {
2216
+        $number = substr_replace($number, '', $postfix_pos, $length);
2217 2217
     }
2218 2218
 
2219
-    $number = intval( $number );
2219
+    $number = intval($number);
2220 2220
 
2221
-    return apply_filters( 'wpinv_clean_invoice_number', $number, $prefix, $postfix );
2221
+    return apply_filters('wpinv_clean_invoice_number', $number, $prefix, $postfix);
2222 2222
 }
2223 2223
 
2224
-function wpinv_save_number_post_saved( $post_ID, $post, $update ) {
2224
+function wpinv_save_number_post_saved($post_ID, $post, $update) {
2225 2225
     global $wpdb;
2226 2226
 
2227
-    if ( !$update && !get_post_meta( $post_ID, '_wpinv_number', true ) ) {
2228
-        wpinv_update_invoice_number( $post_ID, $post->post_status != 'auto-draft', $post->post_type );
2227
+    if (!$update && !get_post_meta($post_ID, '_wpinv_number', true)) {
2228
+        wpinv_update_invoice_number($post_ID, $post->post_status != 'auto-draft', $post->post_type);
2229 2229
     }
2230 2230
 
2231
-    if ( !$update ) {
2232
-        $wpdb->update( $wpdb->posts, array( 'post_name' => wpinv_generate_post_name( $post_ID ) ), array( 'ID' => $post_ID ) );
2233
-        clean_post_cache( $post_ID );
2231
+    if (!$update) {
2232
+        $wpdb->update($wpdb->posts, array('post_name' => wpinv_generate_post_name($post_ID)), array('ID' => $post_ID));
2233
+        clean_post_cache($post_ID);
2234 2234
     }
2235 2235
 }
2236
-add_action( 'save_post_wpi_invoice', 'wpinv_save_number_post_saved', 1, 3 );
2236
+add_action('save_post_wpi_invoice', 'wpinv_save_number_post_saved', 1, 3);
2237 2237
 
2238
-function wpinv_save_number_post_updated( $post_ID, $post_after, $post_before ) {
2239
-    if ( !empty( $post_after->post_type ) && $post_after->post_type == 'wpi_invoice' && $post_before->post_status == 'auto-draft' && $post_after->post_status != $post_before->post_status ) {
2240
-        wpinv_update_invoice_number( $post_ID, true, $post_after->post_type );
2238
+function wpinv_save_number_post_updated($post_ID, $post_after, $post_before) {
2239
+    if (!empty($post_after->post_type) && $post_after->post_type == 'wpi_invoice' && $post_before->post_status == 'auto-draft' && $post_after->post_status != $post_before->post_status) {
2240
+        wpinv_update_invoice_number($post_ID, true, $post_after->post_type);
2241 2241
     }
2242 2242
 }
2243
-add_action( 'post_updated', 'wpinv_save_number_post_updated', 1, 3 );
2243
+add_action('post_updated', 'wpinv_save_number_post_updated', 1, 3);
2244 2244
 
2245
-function wpinv_update_invoice_number( $post_ID, $save_sequential = false, $type = '' ) {
2245
+function wpinv_update_invoice_number($post_ID, $save_sequential = false, $type = '') {
2246 2246
     global $wpdb;
2247 2247
     
2248
-    $check = apply_filters( 'wpinv_pre_update_invoice_number', null, $post_ID, $save_sequential, $type );
2249
-    if ( null !== $check ) {
2248
+    $check = apply_filters('wpinv_pre_update_invoice_number', null, $post_ID, $save_sequential, $type);
2249
+    if (null !== $check) {
2250 2250
         return $check;
2251 2251
     }
2252 2252
 
2253
-    if ( wpinv_sequential_number_active() ) {
2253
+    if (wpinv_sequential_number_active()) {
2254 2254
         $number = wpinv_get_next_invoice_number();
2255 2255
 
2256
-        if ( $save_sequential ) {
2257
-            update_option( 'wpinv_last_invoice_number', $number );
2256
+        if ($save_sequential) {
2257
+            update_option('wpinv_last_invoice_number', $number);
2258 2258
         }
2259 2259
     } else {
2260 2260
         $number = $post_ID;
2261 2261
     }
2262 2262
 
2263
-    $number = wpinv_format_invoice_number( $number );
2263
+    $number = wpinv_format_invoice_number($number);
2264 2264
 
2265
-    update_post_meta( $post_ID, '_wpinv_number', $number );
2265
+    update_post_meta($post_ID, '_wpinv_number', $number);
2266 2266
 
2267
-    $wpdb->update( $wpdb->posts, array( 'post_title' => $number ), array( 'ID' => $post_ID ) );
2267
+    $wpdb->update($wpdb->posts, array('post_title' => $number), array('ID' => $post_ID));
2268 2268
 
2269
-    clean_post_cache( $post_ID );
2269
+    clean_post_cache($post_ID);
2270 2270
 
2271 2271
     return $number;
2272 2272
 }
2273 2273
 
2274
-function wpinv_post_name_prefix( $post_type = 'wpi_invoice' ) {
2275
-    return apply_filters( 'wpinv_post_name_prefix', 'inv-', $post_type );
2274
+function wpinv_post_name_prefix($post_type = 'wpi_invoice') {
2275
+    return apply_filters('wpinv_post_name_prefix', 'inv-', $post_type);
2276 2276
 }
2277 2277
 
2278
-function wpinv_generate_post_name( $post_ID ) {
2279
-    $prefix = wpinv_post_name_prefix( get_post_type( $post_ID ) );
2280
-    $post_name = sanitize_title( $prefix . $post_ID );
2278
+function wpinv_generate_post_name($post_ID) {
2279
+    $prefix = wpinv_post_name_prefix(get_post_type($post_ID));
2280
+    $post_name = sanitize_title($prefix . $post_ID);
2281 2281
 
2282
-    return apply_filters( 'wpinv_generate_post_name', $post_name, $post_ID, $prefix );
2282
+    return apply_filters('wpinv_generate_post_name', $post_name, $post_ID, $prefix);
2283 2283
 }
2284 2284
 
2285
-function wpinv_is_invoice_viewed( $invoice_id ) {
2286
-    if ( empty( $invoice_id ) ) {
2285
+function wpinv_is_invoice_viewed($invoice_id) {
2286
+    if (empty($invoice_id)) {
2287 2287
         return false;
2288 2288
     }
2289 2289
 
2290
-    $viewed_meta = get_post_meta( $invoice_id, '_wpinv_is_viewed', true );
2290
+    $viewed_meta = get_post_meta($invoice_id, '_wpinv_is_viewed', true);
2291 2291
 
2292
-    return apply_filters( 'wpinv_is_invoice_viewed', 1 === (int)$viewed_meta, $invoice_id );
2292
+    return apply_filters('wpinv_is_invoice_viewed', 1 === (int) $viewed_meta, $invoice_id);
2293 2293
 }
2294 2294
 
2295 2295
 function wpinv_mark_invoice_viewed() {
2296 2296
 
2297
-    if ( isset( $_GET['invoice_key'] ) || is_singular( 'wpi_invoice' ) || is_singular( 'wpi_quote' ) ) {
2298
-        $invoice_key = isset( $_GET['invoice_key'] ) ? urldecode($_GET['invoice_key']) : '';
2297
+    if (isset($_GET['invoice_key']) || is_singular('wpi_invoice') || is_singular('wpi_quote')) {
2298
+        $invoice_key = isset($_GET['invoice_key']) ? urldecode($_GET['invoice_key']) : '';
2299 2299
 	    global $post;
2300 2300
 
2301
-        if(!empty($invoice_key)){
2301
+        if (!empty($invoice_key)) {
2302 2302
 	        $invoice_id = wpinv_get_invoice_id_by_key($invoice_key);
2303
-        } else if(!empty( $post ) && ($post->post_type == 'wpi_invoice' || $post->post_type == 'wpi_quote')) {
2303
+        } else if (!empty($post) && ($post->post_type == 'wpi_invoice' || $post->post_type == 'wpi_quote')) {
2304 2304
 			$invoice_id = $post->ID;
2305 2305
         } else {
2306 2306
         	return;
@@ -2308,60 +2308,60 @@  discard block
 block discarded – undo
2308 2308
 
2309 2309
         $invoice = new WPInv_Invoice($invoice_id);
2310 2310
 
2311
-        if(!$invoice_id){
2311
+        if (!$invoice_id) {
2312 2312
             return;
2313 2313
         }
2314 2314
 
2315
-	    if ( is_user_logged_in() ) {
2316
-		    if ( (int)$invoice->get_user_id() === get_current_user_id() ) {
2317
-			    update_post_meta($invoice_id,'_wpinv_is_viewed', 1);
2318
-		    } else if ( !wpinv_require_login_to_checkout() && isset( $_GET['invoice_key'] ) && $_GET['invoice_key'] === $invoice->get_key() ) {
2319
-			    update_post_meta($invoice_id,'_wpinv_is_viewed', 1);
2315
+	    if (is_user_logged_in()) {
2316
+		    if ((int) $invoice->get_user_id() === get_current_user_id()) {
2317
+			    update_post_meta($invoice_id, '_wpinv_is_viewed', 1);
2318
+		    } else if (!wpinv_require_login_to_checkout() && isset($_GET['invoice_key']) && $_GET['invoice_key'] === $invoice->get_key()) {
2319
+			    update_post_meta($invoice_id, '_wpinv_is_viewed', 1);
2320 2320
 		    }
2321 2321
 	    } else {
2322
-		    if ( !wpinv_require_login_to_checkout() && isset( $_GET['invoice_key'] ) && $_GET['invoice_key'] === $invoice->get_key() ) {
2323
-			    update_post_meta($invoice_id,'_wpinv_is_viewed', 1);
2322
+		    if (!wpinv_require_login_to_checkout() && isset($_GET['invoice_key']) && $_GET['invoice_key'] === $invoice->get_key()) {
2323
+			    update_post_meta($invoice_id, '_wpinv_is_viewed', 1);
2324 2324
 		    }
2325 2325
 	    }
2326 2326
     }
2327 2327
 
2328 2328
 }
2329
-add_action( 'template_redirect', 'wpinv_mark_invoice_viewed' );
2329
+add_action('template_redirect', 'wpinv_mark_invoice_viewed');
2330 2330
 
2331
-function wpinv_get_subscription( $invoice, $by_parent = false ) {
2332
-    if ( empty( $invoice ) ) {
2331
+function wpinv_get_subscription($invoice, $by_parent = false) {
2332
+    if (empty($invoice)) {
2333 2333
         return false;
2334 2334
     }
2335 2335
     
2336
-    if ( ! is_object( $invoice ) && is_scalar( $invoice ) ) {
2337
-        $invoice = wpinv_get_invoice( $invoice );
2336
+    if (!is_object($invoice) && is_scalar($invoice)) {
2337
+        $invoice = wpinv_get_invoice($invoice);
2338 2338
     }
2339 2339
     
2340
-    if ( !( is_object( $invoice ) && ! empty( $invoice->ID ) && $invoice->is_recurring() ) ) {
2340
+    if (!(is_object($invoice) && !empty($invoice->ID) && $invoice->is_recurring())) {
2341 2341
         return false;
2342 2342
     }
2343 2343
     
2344
-    $invoice_id = ! $by_parent && ! empty( $invoice->parent_invoice ) ? $invoice->parent_invoice : $invoice->ID;
2344
+    $invoice_id = !$by_parent && !empty($invoice->parent_invoice) ? $invoice->parent_invoice : $invoice->ID;
2345 2345
     
2346 2346
     $subs_db    = new WPInv_Subscriptions_DB;
2347
-    $subs       = $subs_db->get_subscriptions( array( 'parent_payment_id' => $invoice_id, 'number' => 1 ) );
2347
+    $subs       = $subs_db->get_subscriptions(array('parent_payment_id' => $invoice_id, 'number' => 1));
2348 2348
     
2349
-    if ( ! empty( $subs ) ) {
2350
-        return reset( $subs );
2349
+    if (!empty($subs)) {
2350
+        return reset($subs);
2351 2351
     }
2352 2352
     
2353 2353
     return false;
2354 2354
 }
2355 2355
 
2356
-function wpinv_filter_posts_clauses( $clauses, $wp_query ) {
2356
+function wpinv_filter_posts_clauses($clauses, $wp_query) {
2357 2357
     global $wpdb;
2358 2358
 
2359
-    if ( ! empty( $wp_query->query_vars['orderby'] ) && $wp_query->query_vars['orderby'] == 'invoice_date' ) {
2360
-        if ( !empty( $clauses['join'] ) ) {
2359
+    if (!empty($wp_query->query_vars['orderby']) && $wp_query->query_vars['orderby'] == 'invoice_date') {
2360
+        if (!empty($clauses['join'])) {
2361 2361
             $clauses['join'] .= " ";
2362 2362
         }
2363 2363
 
2364
-        if ( !empty( $clauses['fields'] ) ) {
2364
+        if (!empty($clauses['fields'])) {
2365 2365
             $clauses['fields'] .= ", ";
2366 2366
         }
2367 2367
 
@@ -2372,4 +2372,4 @@  discard block
 block discarded – undo
2372 2372
 
2373 2373
     return $clauses;
2374 2374
 }
2375
-add_filter( 'posts_clauses', 'wpinv_filter_posts_clauses', 10, 2 );
2376 2375
\ No newline at end of file
2376
+add_filter('posts_clauses', 'wpinv_filter_posts_clauses', 10, 2);
2377 2377
\ No newline at end of file
Please login to merge, or discard this patch.
includes/class-wpinv-invoice.php 1 patch
Spacing   +619 added lines, -619 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,39 +186,39 @@  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
-    private function setup_status_nicename( $status ) {
200
-        $all_invoice_statuses  = wpinv_get_invoice_statuses( true, true, $this );
199
+    private function setup_status_nicename($status) {
200
+        $all_invoice_statuses = wpinv_get_invoice_statuses(true, true, $this);
201 201
 
202
-        if ( $this->is_quote() && class_exists( 'Wpinv_Quotes_Shared' ) ) {
203
-            $all_invoice_statuses  = Wpinv_Quotes_Shared::wpinv_get_quote_statuses();
202
+        if ($this->is_quote() && class_exists('Wpinv_Quotes_Shared')) {
203
+            $all_invoice_statuses = Wpinv_Quotes_Shared::wpinv_get_quote_statuses();
204 204
         }
205
-        $status   = isset( $all_invoice_statuses[$status] ) ? $all_invoice_statuses[$status] : __( $status, 'invoicing' );
205
+        $status = isset($all_invoice_statuses[$status]) ? $all_invoice_statuses[$status] : __($status, 'invoicing');
206 206
 
207
-        return apply_filters( 'setup_status_nicename', $status );
207
+        return apply_filters('setup_status_nicename', $status);
208 208
     }
209 209
     
210
-    private function setup_post_name( $post = NULL ) {
210
+    private function setup_post_name($post = NULL) {
211 211
         global $wpdb;
212 212
         
213 213
         $post_name = '';
214 214
         
215
-        if ( !empty( $post ) ) {
216
-            if( !empty( $post->post_name ) ) {
215
+        if (!empty($post)) {
216
+            if (!empty($post->post_name)) {
217 217
                 $post_name = $post->post_name;
218
-            } else if ( !empty( $post->ID ) ) {
219
-                $post_name = wpinv_generate_post_name( $post->ID );
218
+            } else if (!empty($post->ID)) {
219
+                $post_name = wpinv_generate_post_name($post->ID);
220 220
 
221
-                $wpdb->update( $wpdb->posts, array( 'post_name' => $post_name ), array( 'ID' => $post->ID ) );
221
+                $wpdb->update($wpdb->posts, array('post_name' => $post_name), array('ID' => $post->ID));
222 222
             }
223 223
         }
224 224
 
@@ -226,12 +226,12 @@  discard block
 block discarded – undo
226 226
     }
227 227
     
228 228
     private function setup_due_date() {
229
-        $due_date = $this->get_meta( '_wpinv_due_date' );
229
+        $due_date = $this->get_meta('_wpinv_due_date');
230 230
         
231
-        if ( empty( $due_date ) ) {
232
-            $overdue_time = strtotime( $this->date ) + ( DAY_IN_SECONDS * absint( wpinv_get_option( 'overdue_days' ) ) );
233
-            $due_date = date_i18n( 'Y-m-d', $overdue_time );
234
-        } else if ( $due_date == 'none' ) {
231
+        if (empty($due_date)) {
232
+            $overdue_time = strtotime($this->date) + (DAY_IN_SECONDS * absint(wpinv_get_option('overdue_days')));
233
+            $due_date = date_i18n('Y-m-d', $overdue_time);
234
+        } else if ($due_date == 'none') {
235 235
             $due_date = '';
236 236
         }
237 237
         
@@ -239,66 +239,66 @@  discard block
 block discarded – undo
239 239
     }
240 240
     
241 241
     private function setup_completed_date() {
242
-        $invoice = get_post( $this->ID );
242
+        $invoice = get_post($this->ID);
243 243
 
244
-        if ( 'wpi-pending' == $invoice->post_status || 'preapproved' == $invoice->post_status ) {
244
+        if ('wpi-pending' == $invoice->post_status || 'preapproved' == $invoice->post_status) {
245 245
             return false; // This invoice was never paid
246 246
         }
247 247
 
248
-        $date = ( $date = $this->get_meta( '_wpinv_completed_date', true ) ) ? $date : $invoice->modified_date;
248
+        $date = ($date = $this->get_meta('_wpinv_completed_date', true)) ? $date : $invoice->modified_date;
249 249
 
250 250
         return $date;
251 251
     }
252 252
     
253 253
     private function setup_cart_details() {
254
-        $cart_details = isset( $this->payment_meta['cart_details'] ) ? maybe_unserialize( $this->payment_meta['cart_details'] ) : array();
254
+        $cart_details = isset($this->payment_meta['cart_details']) ? maybe_unserialize($this->payment_meta['cart_details']) : array();
255 255
         return $cart_details;
256 256
     }
257 257
     
258 258
     public function array_convert() {
259
-        return get_object_vars( $this );
259
+        return get_object_vars($this);
260 260
     }
261 261
     
262 262
     private function setup_items() {
263
-        $items = isset( $this->payment_meta['items'] ) ? maybe_unserialize( $this->payment_meta['items'] ) : array();
263
+        $items = isset($this->payment_meta['items']) ? maybe_unserialize($this->payment_meta['items']) : array();
264 264
         return $items;
265 265
     }
266 266
     
267 267
     private function setup_fees() {
268
-        $payment_fees = isset( $this->payment_meta['fees'] ) ? $this->payment_meta['fees'] : array();
268
+        $payment_fees = isset($this->payment_meta['fees']) ? $this->payment_meta['fees'] : array();
269 269
         return $payment_fees;
270 270
     }
271 271
         
272 272
     private function setup_currency() {
273
-        $currency = isset( $this->payment_meta['currency'] ) ? $this->payment_meta['currency'] : apply_filters( 'wpinv_currency_default', wpinv_get_currency(), $this );
273
+        $currency = isset($this->payment_meta['currency']) ? $this->payment_meta['currency'] : apply_filters('wpinv_currency_default', wpinv_get_currency(), $this);
274 274
         return $currency;
275 275
     }
276 276
     
277 277
     private function setup_discount() {
278 278
         //$discount = $this->get_meta( '_wpinv_discount', true );
279
-        $discount = (float)$this->subtotal - ( (float)$this->total - (float)$this->tax - (float)$this->fees_total );
280
-        if ( $discount < 0 ) {
279
+        $discount = (float) $this->subtotal - ((float) $this->total - (float) $this->tax - (float) $this->fees_total);
280
+        if ($discount < 0) {
281 281
             $discount = 0;
282 282
         }
283
-        $discount = wpinv_round_amount( $discount );
283
+        $discount = wpinv_round_amount($discount);
284 284
         
285 285
         return $discount;
286 286
     }
287 287
     
288 288
     private function setup_discount_code() {
289
-        $discount_code = !empty( $this->discounts ) ? $this->discounts : $this->get_meta( '_wpinv_discount_code', true );
289
+        $discount_code = !empty($this->discounts) ? $this->discounts : $this->get_meta('_wpinv_discount_code', true);
290 290
         return $discount_code;
291 291
     }
292 292
     
293 293
     private function setup_tax() {
294
-        $tax = $this->get_meta( '_wpinv_tax', true );
294
+        $tax = $this->get_meta('_wpinv_tax', true);
295 295
 
296 296
         // We don't have tax as it's own meta and no meta was passed
297
-        if ( '' === $tax ) {            
298
-            $tax = isset( $this->payment_meta['tax'] ) ? $this->payment_meta['tax'] : 0;
297
+        if ('' === $tax) {            
298
+            $tax = isset($this->payment_meta['tax']) ? $this->payment_meta['tax'] : 0;
299 299
         }
300 300
         
301
-        if ( $tax < 0 ) {
301
+        if ($tax < 0) {
302 302
             $tax = 0;
303 303
         }
304 304
 
@@ -309,9 +309,9 @@  discard block
 block discarded – undo
309 309
         $subtotal     = 0;
310 310
         $cart_details = $this->cart_details;
311 311
 
312
-        if ( is_array( $cart_details ) ) {
313
-            foreach ( $cart_details as $item ) {
314
-                if ( isset( $item['subtotal'] ) ) {
312
+        if (is_array($cart_details)) {
313
+            foreach ($cart_details as $item) {
314
+                if (isset($item['subtotal'])) {
315 315
                     $subtotal += $item['subtotal'];
316 316
                 }
317 317
             }
@@ -325,23 +325,23 @@  discard block
 block discarded – undo
325 325
     }
326 326
     
327 327
     private function setup_discounts() {
328
-        $discounts = ! empty( $this->payment_meta['user_info']['discount'] ) ? $this->payment_meta['user_info']['discount'] : array();
328
+        $discounts = !empty($this->payment_meta['user_info']['discount']) ? $this->payment_meta['user_info']['discount'] : array();
329 329
         return $discounts;
330 330
     }
331 331
     
332 332
     private function setup_total() {
333
-        $amount = $this->get_meta( '_wpinv_total', true );
333
+        $amount = $this->get_meta('_wpinv_total', true);
334 334
 
335
-        if ( empty( $amount ) && '0.00' != $amount ) {
336
-            $meta   = $this->get_meta( '_wpinv_payment_meta', true );
337
-            $meta   = maybe_unserialize( $meta );
335
+        if (empty($amount) && '0.00' != $amount) {
336
+            $meta   = $this->get_meta('_wpinv_payment_meta', true);
337
+            $meta   = maybe_unserialize($meta);
338 338
 
339
-            if ( isset( $meta['amount'] ) ) {
339
+            if (isset($meta['amount'])) {
340 340
                 $amount = $meta['amount'];
341 341
             }
342 342
         }
343 343
 
344
-        if($amount < 0){
344
+        if ($amount < 0) {
345 345
             $amount = 0;
346 346
         }
347 347
 
@@ -349,13 +349,13 @@  discard block
 block discarded – undo
349 349
     }
350 350
     
351 351
     private function setup_mode() {
352
-        return $this->get_meta( '_wpinv_mode' );
352
+        return $this->get_meta('_wpinv_mode');
353 353
     }
354 354
 
355 355
     private function setup_gateway() {
356
-        $gateway = $this->get_meta( '_wpinv_gateway' );
356
+        $gateway = $this->get_meta('_wpinv_gateway');
357 357
         
358
-        if ( empty( $gateway ) && 'publish' === $this->status ) {
358
+        if (empty($gateway) && 'publish' === $this->status) {
359 359
             $gateway = 'manual';
360 360
         }
361 361
         
@@ -363,23 +363,23 @@  discard block
 block discarded – undo
363 363
     }
364 364
     
365 365
     private function setup_gateway_title() {
366
-        $gateway_title = wpinv_get_gateway_checkout_label( $this->gateway );
366
+        $gateway_title = wpinv_get_gateway_checkout_label($this->gateway);
367 367
         return $gateway_title;
368 368
     }
369 369
 
370 370
     private function setup_transaction_id() {
371
-        $transaction_id = $this->get_meta( '_wpinv_transaction_id' );
371
+        $transaction_id = $this->get_meta('_wpinv_transaction_id');
372 372
 
373
-        if ( empty( $transaction_id ) || (int) $transaction_id === (int) $this->ID ) {
373
+        if (empty($transaction_id) || (int) $transaction_id === (int) $this->ID) {
374 374
             $gateway        = $this->gateway;
375
-            $transaction_id = apply_filters( 'wpinv_get_invoice_transaction_id-' . $gateway, $this->ID );
375
+            $transaction_id = apply_filters('wpinv_get_invoice_transaction_id-' . $gateway, $this->ID);
376 376
         }
377 377
 
378 378
         return $transaction_id;
379 379
     }
380 380
 
381 381
     private function setup_ip() {
382
-        $ip = $this->get_meta( '_wpinv_user_ip' );
382
+        $ip = $this->get_meta('_wpinv_user_ip');
383 383
         return $ip;
384 384
     }
385 385
 
@@ -389,62 +389,62 @@  discard block
 block discarded – undo
389 389
     ///}
390 390
         
391 391
     private function setup_first_name() {
392
-        $first_name = $this->get_meta( '_wpinv_first_name' );
392
+        $first_name = $this->get_meta('_wpinv_first_name');
393 393
         return $first_name;
394 394
     }
395 395
     
396 396
     private function setup_last_name() {
397
-        $last_name = $this->get_meta( '_wpinv_last_name' );
397
+        $last_name = $this->get_meta('_wpinv_last_name');
398 398
         return $last_name;
399 399
     }
400 400
     
401 401
     private function setup_company() {
402
-        $company = $this->get_meta( '_wpinv_company' );
402
+        $company = $this->get_meta('_wpinv_company');
403 403
         return $company;
404 404
     }
405 405
     
406 406
     private function setup_vat_number() {
407
-        $vat_number = $this->get_meta( '_wpinv_vat_number' );
407
+        $vat_number = $this->get_meta('_wpinv_vat_number');
408 408
         return $vat_number;
409 409
     }
410 410
     
411 411
     private function setup_vat_rate() {
412
-        $vat_rate = $this->get_meta( '_wpinv_vat_rate' );
412
+        $vat_rate = $this->get_meta('_wpinv_vat_rate');
413 413
         return $vat_rate;
414 414
     }
415 415
     
416 416
     private function setup_adddress_confirmed() {
417
-        $adddress_confirmed = $this->get_meta( '_wpinv_adddress_confirmed' );
417
+        $adddress_confirmed = $this->get_meta('_wpinv_adddress_confirmed');
418 418
         return $adddress_confirmed;
419 419
     }
420 420
     
421 421
     private function setup_phone() {
422
-        $phone = $this->get_meta( '_wpinv_phone' );
422
+        $phone = $this->get_meta('_wpinv_phone');
423 423
         return $phone;
424 424
     }
425 425
     
426 426
     private function setup_address() {
427
-        $address = $this->get_meta( '_wpinv_address', true );
427
+        $address = $this->get_meta('_wpinv_address', true);
428 428
         return $address;
429 429
     }
430 430
     
431 431
     private function setup_city() {
432
-        $city = $this->get_meta( '_wpinv_city', true );
432
+        $city = $this->get_meta('_wpinv_city', true);
433 433
         return $city;
434 434
     }
435 435
     
436 436
     private function setup_country() {
437
-        $country = $this->get_meta( '_wpinv_country', true );
437
+        $country = $this->get_meta('_wpinv_country', true);
438 438
         return $country;
439 439
     }
440 440
     
441 441
     private function setup_state() {
442
-        $state = $this->get_meta( '_wpinv_state', true );
442
+        $state = $this->get_meta('_wpinv_state', true);
443 443
         return $state;
444 444
     }
445 445
     
446 446
     private function setup_zip() {
447
-        $zip = $this->get_meta( '_wpinv_zip', true );
447
+        $zip = $this->get_meta('_wpinv_zip', true);
448 448
         return $zip;
449 449
     }
450 450
 
@@ -453,7 +453,7 @@  discard block
 block discarded – undo
453 453
             'user_id'        => $this->user_id,
454 454
             'first_name'     => $this->first_name,
455 455
             'last_name'      => $this->last_name,
456
-            'email'          => get_the_author_meta( 'email', $this->user_id ),
456
+            'email'          => get_the_author_meta('email', $this->user_id),
457 457
             'phone'          => $this->phone,
458 458
             'address'        => $this->address,
459 459
             'city'           => $this->city,
@@ -468,12 +468,12 @@  discard block
 block discarded – undo
468 468
         );
469 469
         
470 470
         $user_info = array();
471
-        if ( isset( $this->payment_meta['user_info'] ) ) {
472
-            $user_info = maybe_unserialize( $this->payment_meta['user_info'] );
471
+        if (isset($this->payment_meta['user_info'])) {
472
+            $user_info = maybe_unserialize($this->payment_meta['user_info']);
473 473
             
474
-            if ( !empty( $user_info ) && isset( $user_info['user_id'] ) && $post = get_post( $this->ID ) ) {
474
+            if (!empty($user_info) && isset($user_info['user_id']) && $post = get_post($this->ID)) {
475 475
                 $this->user_id = $post->post_author;
476
-                $this->email = get_the_author_meta( 'email', $this->user_id );
476
+                $this->email = get_the_author_meta('email', $this->user_id);
477 477
                 
478 478
                 $user_info['user_id'] = $this->user_id;
479 479
                 $user_info['email'] = $this->email;
@@ -482,13 +482,13 @@  discard block
 block discarded – undo
482 482
             }
483 483
         }
484 484
         
485
-        $user_info    = wp_parse_args( $user_info, $defaults );
485
+        $user_info = wp_parse_args($user_info, $defaults);
486 486
         
487 487
         // Get the user, but only if it's been created
488
-        $user = get_userdata( $this->user_id );
488
+        $user = get_userdata($this->user_id);
489 489
         
490
-        if ( !empty( $user ) && $user->ID > 0 ) {
491
-            if ( empty( $user_info ) ) {
490
+        if (!empty($user) && $user->ID > 0) {
491
+            if (empty($user_info)) {
492 492
                 $user_info = array(
493 493
                     'user_id'    => $user->ID,
494 494
                     'first_name' => $user->first_name,
@@ -497,23 +497,23 @@  discard block
 block discarded – undo
497 497
                     'discount'   => '',
498 498
                 );
499 499
             } else {
500
-                foreach ( $user_info as $key => $value ) {
501
-                    if ( ! empty( $value ) ) {
500
+                foreach ($user_info as $key => $value) {
501
+                    if (!empty($value)) {
502 502
                         continue;
503 503
                     }
504 504
 
505
-                    switch( $key ) {
505
+                    switch ($key) {
506 506
                         case 'user_id':
507
-                            $user_info[ $key ] = $user->ID;
507
+                            $user_info[$key] = $user->ID;
508 508
                             break;
509 509
                         case 'first_name':
510
-                            $user_info[ $key ] = $user->first_name;
510
+                            $user_info[$key] = $user->first_name;
511 511
                             break;
512 512
                         case 'last_name':
513
-                            $user_info[ $key ] = $user->last_name;
513
+                            $user_info[$key] = $user->last_name;
514 514
                             break;
515 515
                         case 'email':
516
-                            $user_info[ $key ] = $user->user_email;
516
+                            $user_info[$key] = $user->user_email;
517 517
                             break;
518 518
                     }
519 519
                 }
@@ -524,25 +524,25 @@  discard block
 block discarded – undo
524 524
     }
525 525
 
526 526
     private function setup_invoice_key() {
527
-        $key = $this->get_meta( '_wpinv_key', true );
527
+        $key = $this->get_meta('_wpinv_key', true);
528 528
         
529 529
         return $key;
530 530
     }
531 531
 
532 532
     private function setup_invoice_number() {
533
-        $number = $this->get_meta( '_wpinv_number', true );
533
+        $number = $this->get_meta('_wpinv_number', true);
534 534
 
535
-        if ( !$number ) {
535
+        if (!$number) {
536 536
             $number = $this->ID;
537 537
 
538
-            if ( $this->status == 'auto-draft' ) {
539
-                if ( wpinv_sequential_number_active( $this->post_type ) ) {
540
-                    $next_number = wpinv_get_next_invoice_number( $this->post_type );
538
+            if ($this->status == 'auto-draft') {
539
+                if (wpinv_sequential_number_active($this->post_type)) {
540
+                    $next_number = wpinv_get_next_invoice_number($this->post_type);
541 541
                     $number      = $next_number;
542 542
                 }
543 543
             }
544 544
             
545
-            $number = wpinv_format_invoice_number( $number, $this->post_type );
545
+            $number = wpinv_format_invoice_number($number, $this->post_type);
546 546
         }
547 547
 
548 548
         return $number;
@@ -551,10 +551,10 @@  discard block
 block discarded – undo
551 551
     private function insert_invoice() {
552 552
         global $wpdb;
553 553
 
554
-        if ( empty( $this->post_type ) ) {
555
-            if ( !empty( $this->ID ) && $post_type = get_post_type( $this->ID ) ) {
554
+        if (empty($this->post_type)) {
555
+            if (!empty($this->ID) && $post_type = get_post_type($this->ID)) {
556 556
                 $this->post_type = $post_type;
557
-            } else if ( !empty( $this->parent_invoice ) && $post_type = get_post_type( $this->parent_invoice ) ) {
557
+            } else if (!empty($this->parent_invoice) && $post_type = get_post_type($this->parent_invoice)) {
558 558
                 $this->post_type = $post_type;
559 559
             } else {
560 560
                 $this->post_type = 'wpi_invoice';
@@ -562,16 +562,16 @@  discard block
 block discarded – undo
562 562
         }
563 563
 
564 564
         $invoice_number = $this->ID;
565
-        if ( $number = $this->get_meta( '_wpinv_number', true ) ) {
565
+        if ($number = $this->get_meta('_wpinv_number', true)) {
566 566
             $invoice_number = $number;
567 567
         }
568 568
 
569
-        if ( empty( $this->key ) ) {
569
+        if (empty($this->key)) {
570 570
             $this->key = self::generate_key();
571 571
             $this->pending['key'] = $this->key;
572 572
         }
573 573
 
574
-        if ( empty( $this->ip ) ) {
574
+        if (empty($this->ip)) {
575 575
             $this->ip = wpinv_get_ip();
576 576
             $this->pending['ip'] = $this->ip;
577 577
         }
@@ -608,61 +608,61 @@  discard block
 block discarded – undo
608 608
                         'post_status'   => $this->status,
609 609
                         'post_author'   => $this->user_id,
610 610
                         'post_type'     => $this->post_type,
611
-                        'post_date'     => ! empty( $this->date ) && $this->date != '0000-00-00 00:00:00' ? $this->date : current_time( 'mysql' ),
612
-                        'post_date_gmt' => ! empty( $this->date ) && $this->date != '0000-00-00 00:00:00' ? get_gmt_from_date( $this->date ) : current_time( 'mysql', 1 ),
611
+                        'post_date'     => !empty($this->date) && $this->date != '0000-00-00 00:00:00' ? $this->date : current_time('mysql'),
612
+                        'post_date_gmt' => !empty($this->date) && $this->date != '0000-00-00 00:00:00' ? get_gmt_from_date($this->date) : current_time('mysql', 1),
613 613
                         'post_parent'   => $this->parent_invoice,
614 614
                     );
615
-        $args = apply_filters( 'wpinv_insert_invoice_args', $post_data, $this );
615
+        $args = apply_filters('wpinv_insert_invoice_args', $post_data, $this);
616 616
 
617 617
         // Create a blank invoice
618
-        if ( !empty( $this->ID ) ) {
619
-            $args['ID']         = $this->ID;
618
+        if (!empty($this->ID)) {
619
+            $args['ID'] = $this->ID;
620 620
 
621
-            $invoice_id = wp_update_post( $args, true );
621
+            $invoice_id = wp_update_post($args, true);
622 622
         } else {
623
-            $invoice_id = wp_insert_post( $args, true );
623
+            $invoice_id = wp_insert_post($args, true);
624 624
         }
625 625
 
626
-        if ( is_wp_error( $invoice_id ) ) {
626
+        if (is_wp_error($invoice_id)) {
627 627
             return false;
628 628
         }
629 629
 
630
-        if ( !empty( $invoice_id ) ) {
630
+        if (!empty($invoice_id)) {
631 631
             $this->ID  = $invoice_id;
632 632
             $this->_ID = $invoice_id;
633 633
 
634
-            $this->payment_meta = apply_filters( 'wpinv_payment_meta', $this->payment_meta, $payment_data );
635
-            if ( ! empty( $this->payment_meta['fees'] ) ) {
636
-                $this->fees = array_merge( $this->fees, $this->payment_meta['fees'] );
637
-                foreach( $this->fees as $fee ) {
638
-                    $this->increase_fees( $fee['amount'] );
634
+            $this->payment_meta = apply_filters('wpinv_payment_meta', $this->payment_meta, $payment_data);
635
+            if (!empty($this->payment_meta['fees'])) {
636
+                $this->fees = array_merge($this->fees, $this->payment_meta['fees']);
637
+                foreach ($this->fees as $fee) {
638
+                    $this->increase_fees($fee['amount']);
639 639
                 }
640 640
             }
641 641
 
642
-            $this->update_meta( '_wpinv_payment_meta', $this->payment_meta );            
642
+            $this->update_meta('_wpinv_payment_meta', $this->payment_meta);            
643 643
             $this->new = true;
644 644
         }
645 645
 
646 646
         return $this->ID;
647 647
     }
648 648
 
649
-    public function save( $setup = false ) {
649
+    public function save($setup = false) {
650 650
         global $wpi_session;
651 651
         
652 652
         $saved = false;
653
-        if ( empty( $this->items ) ) {
653
+        if (empty($this->items)) {
654 654
             return $saved; // Don't save empty invoice.
655 655
         }
656 656
         
657
-        if ( empty( $this->key ) ) {
657
+        if (empty($this->key)) {
658 658
             $this->key = self::generate_key();
659 659
             $this->pending['key'] = $this->key;
660 660
         }
661 661
         
662
-        if ( empty( $this->ID ) ) {
662
+        if (empty($this->ID)) {
663 663
             $invoice_id = $this->insert_invoice();
664 664
 
665
-            if ( false === $invoice_id ) {
665
+            if (false === $invoice_id) {
666 666
                 $saved = false;
667 667
             } else {
668 668
                 $this->ID = $invoice_id;
@@ -670,27 +670,27 @@  discard block
 block discarded – undo
670 670
         }
671 671
 
672 672
         // If we have something pending, let's save it
673
-        if ( !empty( $this->pending ) ) {
673
+        if (!empty($this->pending)) {
674 674
             $total_increase = 0;
675 675
             $total_decrease = 0;
676 676
 
677
-            foreach ( $this->pending as $key => $value ) {
678
-                switch( $key ) {
677
+            foreach ($this->pending as $key => $value) {
678
+                switch ($key) {
679 679
                     case 'items':
680 680
                         // Update totals for pending items
681
-                        foreach ( $this->pending[ $key ] as $item ) {
682
-                            switch( $item['action'] ) {
681
+                        foreach ($this->pending[$key] as $item) {
682
+                            switch ($item['action']) {
683 683
                                 case 'add':
684 684
                                     $price = $item['price'];
685 685
                                     $taxes = $item['tax'];
686 686
 
687
-                                    if ( 'publish' === $this->status ) {
687
+                                    if ('publish' === $this->status) {
688 688
                                         $total_increase += $price;
689 689
                                     }
690 690
                                     break;
691 691
 
692 692
                                 case 'remove':
693
-                                    if ( 'publish' === $this->status ) {
693
+                                    if ('publish' === $this->status) {
694 694
                                         $total_decrease += $item['price'];
695 695
                                     }
696 696
                                     break;
@@ -698,16 +698,16 @@  discard block
 block discarded – undo
698 698
                         }
699 699
                         break;
700 700
                     case 'fees':
701
-                        if ( 'publish' !== $this->status ) {
701
+                        if ('publish' !== $this->status) {
702 702
                             break;
703 703
                         }
704 704
 
705
-                        if ( empty( $this->pending[ $key ] ) ) {
705
+                        if (empty($this->pending[$key])) {
706 706
                             break;
707 707
                         }
708 708
 
709
-                        foreach ( $this->pending[ $key ] as $fee ) {
710
-                            switch( $fee['action'] ) {
709
+                        foreach ($this->pending[$key] as $fee) {
710
+                            switch ($fee['action']) {
711 711
                                 case 'add':
712 712
                                     $total_increase += $fee['amount'];
713 713
                                     break;
@@ -719,83 +719,83 @@  discard block
 block discarded – undo
719 719
                         }
720 720
                         break;
721 721
                     case 'status':
722
-                        $this->update_status( $this->status );
722
+                        $this->update_status($this->status);
723 723
                         break;
724 724
                     case 'gateway':
725
-                        $this->update_meta( '_wpinv_gateway', $this->gateway );
725
+                        $this->update_meta('_wpinv_gateway', $this->gateway);
726 726
                         break;
727 727
                     case 'mode':
728
-                        $this->update_meta( '_wpinv_mode', $this->mode );
728
+                        $this->update_meta('_wpinv_mode', $this->mode);
729 729
                         break;
730 730
                     case 'transaction_id':
731
-                        $this->update_meta( '_wpinv_transaction_id', $this->transaction_id );
731
+                        $this->update_meta('_wpinv_transaction_id', $this->transaction_id);
732 732
                         break;
733 733
                     case 'ip':
734
-                        $this->update_meta( '_wpinv_user_ip', $this->ip );
734
+                        $this->update_meta('_wpinv_user_ip', $this->ip);
735 735
                         break;
736 736
                     ///case 'user_id':
737 737
                         ///$this->update_meta( '_wpinv_user_id', $this->user_id );
738 738
                         ///$this->user_info['user_id'] = $this->user_id;
739 739
                         ///break;
740 740
                     case 'first_name':
741
-                        $this->update_meta( '_wpinv_first_name', $this->first_name );
741
+                        $this->update_meta('_wpinv_first_name', $this->first_name);
742 742
                         $this->user_info['first_name'] = $this->first_name;
743 743
                         break;
744 744
                     case 'last_name':
745
-                        $this->update_meta( '_wpinv_last_name', $this->last_name );
745
+                        $this->update_meta('_wpinv_last_name', $this->last_name);
746 746
                         $this->user_info['last_name'] = $this->last_name;
747 747
                         break;
748 748
                     case 'phone':
749
-                        $this->update_meta( '_wpinv_phone', $this->phone );
749
+                        $this->update_meta('_wpinv_phone', $this->phone);
750 750
                         $this->user_info['phone'] = $this->phone;
751 751
                         break;
752 752
                     case 'address':
753
-                        $this->update_meta( '_wpinv_address', $this->address );
753
+                        $this->update_meta('_wpinv_address', $this->address);
754 754
                         $this->user_info['address'] = $this->address;
755 755
                         break;
756 756
                     case 'city':
757
-                        $this->update_meta( '_wpinv_city', $this->city );
757
+                        $this->update_meta('_wpinv_city', $this->city);
758 758
                         $this->user_info['city'] = $this->city;
759 759
                         break;
760 760
                     case 'country':
761
-                        $this->update_meta( '_wpinv_country', $this->country );
761
+                        $this->update_meta('_wpinv_country', $this->country);
762 762
                         $this->user_info['country'] = $this->country;
763 763
                         break;
764 764
                     case 'state':
765
-                        $this->update_meta( '_wpinv_state', $this->state );
765
+                        $this->update_meta('_wpinv_state', $this->state);
766 766
                         $this->user_info['state'] = $this->state;
767 767
                         break;
768 768
                     case 'zip':
769
-                        $this->update_meta( '_wpinv_zip', $this->zip );
769
+                        $this->update_meta('_wpinv_zip', $this->zip);
770 770
                         $this->user_info['zip'] = $this->zip;
771 771
                         break;
772 772
                     case 'company':
773
-                        $this->update_meta( '_wpinv_company', $this->company );
773
+                        $this->update_meta('_wpinv_company', $this->company);
774 774
                         $this->user_info['company'] = $this->company;
775 775
                         break;
776 776
                     case 'vat_number':
777
-                        $this->update_meta( '_wpinv_vat_number', $this->vat_number );
777
+                        $this->update_meta('_wpinv_vat_number', $this->vat_number);
778 778
                         $this->user_info['vat_number'] = $this->vat_number;
779 779
                         
780
-                        $vat_info = $wpi_session->get( 'user_vat_data' );
781
-                        if ( $this->vat_number && !empty( $vat_info ) && isset( $vat_info['number'] ) && isset( $vat_info['valid'] ) && $vat_info['number'] == $this->vat_number ) {
782
-                            $adddress_confirmed = isset( $vat_info['adddress_confirmed'] ) ? $vat_info['adddress_confirmed'] : false;
783
-                            $this->update_meta( '_wpinv_adddress_confirmed', (bool)$adddress_confirmed );
784
-                            $this->user_info['adddress_confirmed'] = (bool)$adddress_confirmed;
780
+                        $vat_info = $wpi_session->get('user_vat_data');
781
+                        if ($this->vat_number && !empty($vat_info) && isset($vat_info['number']) && isset($vat_info['valid']) && $vat_info['number'] == $this->vat_number) {
782
+                            $adddress_confirmed = isset($vat_info['adddress_confirmed']) ? $vat_info['adddress_confirmed'] : false;
783
+                            $this->update_meta('_wpinv_adddress_confirmed', (bool) $adddress_confirmed);
784
+                            $this->user_info['adddress_confirmed'] = (bool) $adddress_confirmed;
785 785
                         }
786 786
     
787 787
                         break;
788 788
                     case 'vat_rate':
789
-                        $this->update_meta( '_wpinv_vat_rate', $this->vat_rate );
789
+                        $this->update_meta('_wpinv_vat_rate', $this->vat_rate);
790 790
                         $this->user_info['vat_rate'] = $this->vat_rate;
791 791
                         break;
792 792
                     case 'adddress_confirmed':
793
-                        $this->update_meta( '_wpinv_adddress_confirmed', $this->adddress_confirmed );
793
+                        $this->update_meta('_wpinv_adddress_confirmed', $this->adddress_confirmed);
794 794
                         $this->user_info['adddress_confirmed'] = $this->adddress_confirmed;
795 795
                         break;
796 796
                     
797 797
                     case 'key':
798
-                        $this->update_meta( '_wpinv_key', $this->key );
798
+                        $this->update_meta('_wpinv_key', $this->key);
799 799
                         break;
800 800
                     case 'date':
801 801
                         $args = array(
@@ -804,49 +804,49 @@  discard block
 block discarded – undo
804 804
                             'edit_date' => true,
805 805
                         );
806 806
 
807
-                        wp_update_post( $args );
807
+                        wp_update_post($args);
808 808
                         break;
809 809
                     case 'due_date':
810
-                        if ( empty( $this->due_date ) ) {
810
+                        if (empty($this->due_date)) {
811 811
                             $this->due_date = 'none';
812 812
                         }
813 813
                         
814
-                        $this->update_meta( '_wpinv_due_date', $this->due_date );
814
+                        $this->update_meta('_wpinv_due_date', $this->due_date);
815 815
                         break;
816 816
                     case 'completed_date':
817
-                        $this->update_meta( '_wpinv_completed_date', $this->completed_date );
817
+                        $this->update_meta('_wpinv_completed_date', $this->completed_date);
818 818
                         break;
819 819
                     case 'discounts':
820
-                        if ( ! is_array( $this->discounts ) ) {
821
-                            $this->discounts = explode( ',', $this->discounts );
820
+                        if (!is_array($this->discounts)) {
821
+                            $this->discounts = explode(',', $this->discounts);
822 822
                         }
823 823
 
824
-                        $this->user_info['discount'] = implode( ',', $this->discounts );
824
+                        $this->user_info['discount'] = implode(',', $this->discounts);
825 825
                         break;
826 826
                     case 'discount':
827
-                        $this->update_meta( '_wpinv_discount', wpinv_round_amount( $this->discount ) );
827
+                        $this->update_meta('_wpinv_discount', wpinv_round_amount($this->discount));
828 828
                         break;
829 829
                     case 'discount_code':
830
-                        $this->update_meta( '_wpinv_discount_code', $this->discount_code );
830
+                        $this->update_meta('_wpinv_discount_code', $this->discount_code);
831 831
                         break;
832 832
                     case 'parent_invoice':
833 833
                         $args = array(
834 834
                             'ID'          => $this->ID,
835 835
                             'post_parent' => $this->parent_invoice,
836 836
                         );
837
-                        wp_update_post( $args );
837
+                        wp_update_post($args);
838 838
                         break;
839 839
                     default:
840
-                        do_action( 'wpinv_save', $this, $key );
840
+                        do_action('wpinv_save', $this, $key);
841 841
                         break;
842 842
                 }
843 843
             }
844 844
 
845
-            $this->update_meta( '_wpinv_subtotal', wpinv_round_amount( $this->subtotal ) );
846
-            $this->update_meta( '_wpinv_total', wpinv_round_amount( $this->total ) );
847
-            $this->update_meta( '_wpinv_tax', wpinv_round_amount( $this->tax ) );
845
+            $this->update_meta('_wpinv_subtotal', wpinv_round_amount($this->subtotal));
846
+            $this->update_meta('_wpinv_total', wpinv_round_amount($this->total));
847
+            $this->update_meta('_wpinv_tax', wpinv_round_amount($this->tax));
848 848
             
849
-            $this->items    = array_values( $this->items );
849
+            $this->items = array_values($this->items);
850 850
             
851 851
             $new_meta = array(
852 852
                 'items'         => $this->items,
@@ -857,12 +857,12 @@  discard block
 block discarded – undo
857 857
             );
858 858
             
859 859
             $meta        = $this->get_meta();
860
-            $merged_meta = array_merge( $meta, $new_meta );
860
+            $merged_meta = array_merge($meta, $new_meta);
861 861
 
862 862
             // Only save the payment meta if it's changed
863
-            if ( md5( serialize( $meta ) ) !== md5( serialize( $merged_meta) ) ) {
864
-                $updated     = $this->update_meta( '_wpinv_payment_meta', $merged_meta );
865
-                if ( false !== $updated ) {
863
+            if (md5(serialize($meta)) !== md5(serialize($merged_meta))) {
864
+                $updated = $this->update_meta('_wpinv_payment_meta', $merged_meta);
865
+                if (false !== $updated) {
866 866
                     $saved = true;
867 867
                 }
868 868
             }
@@ -870,15 +870,15 @@  discard block
 block discarded – undo
870 870
             $this->pending = array();
871 871
             $saved         = true;
872 872
         } else {
873
-            $this->update_meta( '_wpinv_subtotal', wpinv_round_amount( $this->subtotal ) );
874
-            $this->update_meta( '_wpinv_total', wpinv_round_amount( $this->total ) );
875
-            $this->update_meta( '_wpinv_tax', wpinv_round_amount( $this->tax ) );
873
+            $this->update_meta('_wpinv_subtotal', wpinv_round_amount($this->subtotal));
874
+            $this->update_meta('_wpinv_total', wpinv_round_amount($this->total));
875
+            $this->update_meta('_wpinv_tax', wpinv_round_amount($this->tax));
876 876
         }
877 877
         
878
-        do_action( 'wpinv_invoice_save', $this, $saved );
878
+        do_action('wpinv_invoice_save', $this, $saved);
879 879
 
880
-        if ( true === $saved || $setup ) {
881
-            $this->setup_invoice( $this->ID );
880
+        if (true === $saved || $setup) {
881
+            $this->setup_invoice($this->ID);
882 882
         }
883 883
         
884 884
         $this->refresh_item_ids();
@@ -886,7 +886,7 @@  discard block
 block discarded – undo
886 886
         return $saved;
887 887
     }
888 888
     
889
-    public function add_fee( $args, $global = true ) {
889
+    public function add_fee($args, $global = true) {
890 890
         $default_args = array(
891 891
             'label'       => '',
892 892
             'amount'      => 0,
@@ -896,75 +896,75 @@  discard block
 block discarded – undo
896 896
             'item_id'     => 0,
897 897
         );
898 898
 
899
-        $fee = wp_parse_args( $args, $default_args );
899
+        $fee = wp_parse_args($args, $default_args);
900 900
         
901
-        if ( empty( $fee['label'] ) ) {
901
+        if (empty($fee['label'])) {
902 902
             return false;
903 903
         }
904 904
         
905
-        $fee['id']  = sanitize_title( $fee['label'] );
905
+        $fee['id'] = sanitize_title($fee['label']);
906 906
         
907
-        $this->fees[]               = $fee;
907
+        $this->fees[] = $fee;
908 908
         
909 909
         $added_fee               = $fee;
910 910
         $added_fee['action']     = 'add';
911 911
         $this->pending['fees'][] = $added_fee;
912
-        reset( $this->fees );
912
+        reset($this->fees);
913 913
 
914
-        $this->increase_fees( $fee['amount'] );
914
+        $this->increase_fees($fee['amount']);
915 915
         return true;
916 916
     }
917 917
 
918
-    public function remove_fee( $key ) {
918
+    public function remove_fee($key) {
919 919
         $removed = false;
920 920
 
921
-        if ( is_numeric( $key ) ) {
922
-            $removed = $this->remove_fee_by( 'index', $key );
921
+        if (is_numeric($key)) {
922
+            $removed = $this->remove_fee_by('index', $key);
923 923
         }
924 924
 
925 925
         return $removed;
926 926
     }
927 927
 
928
-    public function remove_fee_by( $key, $value, $global = false ) {
929
-        $allowed_fee_keys = apply_filters( 'wpinv_fee_keys', array(
928
+    public function remove_fee_by($key, $value, $global = false) {
929
+        $allowed_fee_keys = apply_filters('wpinv_fee_keys', array(
930 930
             'index', 'label', 'amount', 'type',
931
-        ) );
931
+        ));
932 932
 
933
-        if ( ! in_array( $key, $allowed_fee_keys ) ) {
933
+        if (!in_array($key, $allowed_fee_keys)) {
934 934
             return false;
935 935
         }
936 936
 
937 937
         $removed = false;
938
-        if ( 'index' === $key && array_key_exists( $value, $this->fees ) ) {
939
-            $removed_fee             = $this->fees[ $value ];
938
+        if ('index' === $key && array_key_exists($value, $this->fees)) {
939
+            $removed_fee             = $this->fees[$value];
940 940
             $removed_fee['action']   = 'remove';
941 941
             $this->pending['fees'][] = $removed_fee;
942 942
 
943
-            $this->decrease_fees( $removed_fee['amount'] );
943
+            $this->decrease_fees($removed_fee['amount']);
944 944
 
945
-            unset( $this->fees[ $value ] );
945
+            unset($this->fees[$value]);
946 946
             $removed = true;
947
-        } else if ( 'index' !== $key ) {
948
-            foreach ( $this->fees as $index => $fee ) {
949
-                if ( isset( $fee[ $key ] ) && $fee[ $key ] == $value ) {
947
+        } else if ('index' !== $key) {
948
+            foreach ($this->fees as $index => $fee) {
949
+                if (isset($fee[$key]) && $fee[$key] == $value) {
950 950
                     $removed_fee             = $fee;
951 951
                     $removed_fee['action']   = 'remove';
952 952
                     $this->pending['fees'][] = $removed_fee;
953 953
 
954
-                    $this->decrease_fees( $removed_fee['amount'] );
954
+                    $this->decrease_fees($removed_fee['amount']);
955 955
 
956
-                    unset( $this->fees[ $index ] );
956
+                    unset($this->fees[$index]);
957 957
                     $removed = true;
958 958
 
959
-                    if ( false === $global ) {
959
+                    if (false === $global) {
960 960
                         break;
961 961
                     }
962 962
                 }
963 963
             }
964 964
         }
965 965
 
966
-        if ( true === $removed ) {
967
-            $this->fees = array_values( $this->fees );
966
+        if (true === $removed) {
967
+            $this->fees = array_values($this->fees);
968 968
         }
969 969
 
970 970
         return $removed;
@@ -972,35 +972,35 @@  discard block
 block discarded – undo
972 972
 
973 973
     
974 974
 
975
-    public function add_note( $note = '', $customer_type = false, $added_by_user = false, $system = false ) {
975
+    public function add_note($note = '', $customer_type = false, $added_by_user = false, $system = false) {
976 976
         // Bail if no note specified
977
-        if( !$note ) {
977
+        if (!$note) {
978 978
             return false;
979 979
         }
980 980
 
981
-        if ( empty( $this->ID ) )
981
+        if (empty($this->ID))
982 982
             return false;
983 983
         
984
-        if ( ( ( is_user_logged_in() && wpinv_current_user_can_manage_invoicing() ) || $added_by_user ) && !$system ) {
985
-            $user                 = get_user_by( 'id', get_current_user_id() );
984
+        if (((is_user_logged_in() && wpinv_current_user_can_manage_invoicing()) || $added_by_user) && !$system) {
985
+            $user                 = get_user_by('id', get_current_user_id());
986 986
             $comment_author       = $user->display_name;
987 987
             $comment_author_email = $user->user_email;
988 988
         } else {
989 989
             $comment_author       = 'System';
990 990
             $comment_author_email = 'system@';
991
-            $comment_author_email .= isset( $_SERVER['HTTP_HOST'] ) ? str_replace( 'www.', '', $_SERVER['HTTP_HOST'] ) : 'noreply.com';
992
-            $comment_author_email = sanitize_email( $comment_author_email );
991
+            $comment_author_email .= isset($_SERVER['HTTP_HOST']) ? str_replace('www.', '', $_SERVER['HTTP_HOST']) : 'noreply.com';
992
+            $comment_author_email = sanitize_email($comment_author_email);
993 993
         }
994 994
 
995
-        do_action( 'wpinv_pre_insert_invoice_note', $this->ID, $note, $customer_type );
995
+        do_action('wpinv_pre_insert_invoice_note', $this->ID, $note, $customer_type);
996 996
 
997
-        $note_id = wp_insert_comment( wp_filter_comment( array(
997
+        $note_id = wp_insert_comment(wp_filter_comment(array(
998 998
             'comment_post_ID'      => $this->ID,
999 999
             'comment_content'      => $note,
1000 1000
             'comment_agent'        => 'WPInvoicing',
1001 1001
             'user_id'              => is_admin() ? get_current_user_id() : 0,
1002
-            'comment_date'         => current_time( 'mysql' ),
1003
-            'comment_date_gmt'     => current_time( 'mysql', 1 ),
1002
+            'comment_date'         => current_time('mysql'),
1003
+            'comment_date_gmt'     => current_time('mysql', 1),
1004 1004
             'comment_approved'     => 1,
1005 1005
             'comment_parent'       => 0,
1006 1006
             'comment_author'       => $comment_author,
@@ -1008,53 +1008,53 @@  discard block
 block discarded – undo
1008 1008
             'comment_author_url'   => '',
1009 1009
             'comment_author_email' => $comment_author_email,
1010 1010
             'comment_type'         => 'wpinv_note'
1011
-        ) ) );
1011
+        )));
1012 1012
 
1013
-        do_action( 'wpinv_insert_payment_note', $note_id, $this->ID, $note );
1013
+        do_action('wpinv_insert_payment_note', $note_id, $this->ID, $note);
1014 1014
         
1015
-        if ( $customer_type ) {
1016
-            add_comment_meta( $note_id, '_wpi_customer_note', 1 );
1015
+        if ($customer_type) {
1016
+            add_comment_meta($note_id, '_wpi_customer_note', 1);
1017 1017
 
1018
-            do_action( 'wpinv_new_customer_note', array( 'invoice_id' => $this->ID, 'user_note' => $note ) );
1018
+            do_action('wpinv_new_customer_note', array('invoice_id' => $this->ID, 'user_note' => $note));
1019 1019
         }
1020 1020
 
1021 1021
         return $note_id;
1022 1022
     }
1023 1023
 
1024
-    private function increase_subtotal( $amount = 0.00 ) {
1024
+    private function increase_subtotal($amount = 0.00) {
1025 1025
         $amount          = (float) $amount;
1026 1026
         $this->subtotal += $amount;
1027
-        $this->subtotal  = wpinv_round_amount( $this->subtotal );
1027
+        $this->subtotal  = wpinv_round_amount($this->subtotal);
1028 1028
 
1029 1029
         $this->recalculate_total();
1030 1030
     }
1031 1031
 
1032
-    private function decrease_subtotal( $amount = 0.00 ) {
1032
+    private function decrease_subtotal($amount = 0.00) {
1033 1033
         $amount          = (float) $amount;
1034 1034
         $this->subtotal -= $amount;
1035
-        $this->subtotal  = wpinv_round_amount( $this->subtotal );
1035
+        $this->subtotal  = wpinv_round_amount($this->subtotal);
1036 1036
 
1037
-        if ( $this->subtotal < 0 ) {
1037
+        if ($this->subtotal < 0) {
1038 1038
             $this->subtotal = 0;
1039 1039
         }
1040 1040
 
1041 1041
         $this->recalculate_total();
1042 1042
     }
1043 1043
 
1044
-    private function increase_fees( $amount = 0.00 ) {
1045
-        $amount            = (float)$amount;
1044
+    private function increase_fees($amount = 0.00) {
1045
+        $amount            = (float) $amount;
1046 1046
         $this->fees_total += $amount;
1047
-        $this->fees_total  = wpinv_round_amount( $this->fees_total );
1047
+        $this->fees_total  = wpinv_round_amount($this->fees_total);
1048 1048
 
1049 1049
         $this->recalculate_total();
1050 1050
     }
1051 1051
 
1052
-    private function decrease_fees( $amount = 0.00 ) {
1052
+    private function decrease_fees($amount = 0.00) {
1053 1053
         $amount            = (float) $amount;
1054 1054
         $this->fees_total -= $amount;
1055
-        $this->fees_total  = wpinv_round_amount( $this->fees_total );
1055
+        $this->fees_total  = wpinv_round_amount($this->fees_total);
1056 1056
 
1057
-        if ( $this->fees_total < 0 ) {
1057
+        if ($this->fees_total < 0) {
1058 1058
             $this->fees_total = 0;
1059 1059
         }
1060 1060
 
@@ -1065,54 +1065,54 @@  discard block
 block discarded – undo
1065 1065
         global $wpi_nosave;
1066 1066
         
1067 1067
         $this->total = $this->subtotal + $this->tax + $this->fees_total;
1068
-        $this->total = wpinv_round_amount( $this->total );
1068
+        $this->total = wpinv_round_amount($this->total);
1069 1069
         
1070
-        do_action( 'wpinv_invoice_recalculate_total', $this, $wpi_nosave );
1070
+        do_action('wpinv_invoice_recalculate_total', $this, $wpi_nosave);
1071 1071
     }
1072 1072
     
1073
-    public function increase_tax( $amount = 0.00 ) {
1073
+    public function increase_tax($amount = 0.00) {
1074 1074
         $amount       = (float) $amount;
1075 1075
         $this->tax   += $amount;
1076 1076
 
1077 1077
         $this->recalculate_total();
1078 1078
     }
1079 1079
 
1080
-    public function decrease_tax( $amount = 0.00 ) {
1080
+    public function decrease_tax($amount = 0.00) {
1081 1081
         $amount     = (float) $amount;
1082 1082
         $this->tax -= $amount;
1083 1083
 
1084
-        if ( $this->tax < 0 ) {
1084
+        if ($this->tax < 0) {
1085 1085
             $this->tax = 0;
1086 1086
         }
1087 1087
 
1088 1088
         $this->recalculate_total();
1089 1089
     }
1090 1090
 
1091
-    public function update_status( $new_status = false, $note = '', $manual = false ) {
1092
-        $old_status = ! empty( $this->old_status ) ? $this->old_status : get_post_status( $this->ID );
1091
+    public function update_status($new_status = false, $note = '', $manual = false) {
1092
+        $old_status = !empty($this->old_status) ? $this->old_status : get_post_status($this->ID);
1093 1093
 
1094
-        if ( $old_status === $new_status && in_array( $new_status, array_keys( wpinv_get_invoice_statuses( true ) ) ) ) {
1094
+        if ($old_status === $new_status && in_array($new_status, array_keys(wpinv_get_invoice_statuses(true)))) {
1095 1095
             return false; // Don't permit status changes that aren't changes
1096 1096
         }
1097 1097
 
1098
-        $do_change = apply_filters( 'wpinv_should_update_invoice_status', true, $this->ID, $new_status, $old_status );
1098
+        $do_change = apply_filters('wpinv_should_update_invoice_status', true, $this->ID, $new_status, $old_status);
1099 1099
         $updated = false;
1100 1100
 
1101
-        if ( $do_change ) {
1102
-            do_action( 'wpinv_before_invoice_status_change', $this->ID, $new_status, $old_status );
1101
+        if ($do_change) {
1102
+            do_action('wpinv_before_invoice_status_change', $this->ID, $new_status, $old_status);
1103 1103
 
1104 1104
             $update_post_data                   = array();
1105 1105
             $update_post_data['ID']             = $this->ID;
1106 1106
             $update_post_data['post_status']    = $new_status;
1107
-            $update_post_data['edit_date']      = current_time( 'mysql', 0 );
1108
-            $update_post_data['edit_date_gmt']  = current_time( 'mysql', 1 );
1107
+            $update_post_data['edit_date']      = current_time('mysql', 0);
1108
+            $update_post_data['edit_date_gmt']  = current_time('mysql', 1);
1109 1109
             
1110
-            $update_post_data = apply_filters( 'wpinv_update_invoice_status_fields', $update_post_data, $this->ID );
1110
+            $update_post_data = apply_filters('wpinv_update_invoice_status_fields', $update_post_data, $this->ID);
1111 1111
 
1112
-            $updated = wp_update_post( $update_post_data );     
1112
+            $updated = wp_update_post($update_post_data);     
1113 1113
            
1114 1114
             // Process any specific status functions
1115
-            switch( $new_status ) {
1115
+            switch ($new_status) {
1116 1116
                 case 'wpi-refunded':
1117 1117
                     $this->process_refund();
1118 1118
                     break;
@@ -1125,9 +1125,9 @@  discard block
 block discarded – undo
1125 1125
             }
1126 1126
             
1127 1127
             // Status was changed.
1128
-            do_action( 'wpinv_status_' . $new_status, $this->ID, $old_status );
1129
-            do_action( 'wpinv_status_' . $old_status . '_to_' . $new_status, $this->ID, $old_status );
1130
-            do_action( 'wpinv_update_status', $this->ID, $new_status, $old_status );
1128
+            do_action('wpinv_status_' . $new_status, $this->ID, $old_status);
1129
+            do_action('wpinv_status_' . $old_status . '_to_' . $new_status, $this->ID, $old_status);
1130
+            do_action('wpinv_update_status', $this->ID, $new_status, $old_status);
1131 1131
         }
1132 1132
 
1133 1133
         return $updated;
@@ -1141,20 +1141,20 @@  discard block
 block discarded – undo
1141 1141
         $this->save();
1142 1142
     }
1143 1143
 
1144
-    public function update_meta( $meta_key = '', $meta_value = '', $prev_value = '' ) {
1145
-        if ( empty( $meta_key ) ) {
1144
+    public function update_meta($meta_key = '', $meta_value = '', $prev_value = '') {
1145
+        if (empty($meta_key)) {
1146 1146
             return false;
1147 1147
         }
1148 1148
 
1149
-        if ( $meta_key == 'key' || $meta_key == 'date' ) {
1149
+        if ($meta_key == 'key' || $meta_key == 'date') {
1150 1150
             $current_meta = $this->get_meta();
1151
-            $current_meta[ $meta_key ] = $meta_value;
1151
+            $current_meta[$meta_key] = $meta_value;
1152 1152
 
1153 1153
             $meta_key     = '_wpinv_payment_meta';
1154 1154
             $meta_value   = $current_meta;
1155 1155
         }
1156 1156
 
1157
-        $meta_value = apply_filters( 'wpinv_update_payment_meta_' . $meta_key, $meta_value, $this->ID );
1157
+        $meta_value = apply_filters('wpinv_update_payment_meta_' . $meta_key, $meta_value, $this->ID);
1158 1158
         
1159 1159
         // Do not update created date on invoice marked as paid.
1160 1160
         /*if ( $meta_key == '_wpinv_completed_date' && !empty( $meta_value ) ) {
@@ -1169,45 +1169,45 @@  discard block
 block discarded – undo
1169 1169
             wp_update_post( $args );
1170 1170
         }*/
1171 1171
         
1172
-        return update_post_meta( $this->ID, $meta_key, $meta_value, $prev_value );
1172
+        return update_post_meta($this->ID, $meta_key, $meta_value, $prev_value);
1173 1173
     }
1174 1174
 
1175 1175
     private function process_refund() {
1176 1176
         $process_refund = true;
1177 1177
 
1178 1178
         // If the payment was not in publish, don't decrement stats as they were never incremented
1179
-        if ( 'publish' != $this->old_status || 'wpi-refunded' != $this->status ) {
1179
+        if ('publish' != $this->old_status || 'wpi-refunded' != $this->status) {
1180 1180
             $process_refund = false;
1181 1181
         }
1182 1182
 
1183 1183
         // Allow extensions to filter for their own payment types, Example: Recurring Payments
1184
-        $process_refund = apply_filters( 'wpinv_should_process_refund', $process_refund, $this );
1184
+        $process_refund = apply_filters('wpinv_should_process_refund', $process_refund, $this);
1185 1185
 
1186
-        if ( false === $process_refund ) {
1186
+        if (false === $process_refund) {
1187 1187
             return;
1188 1188
         }
1189 1189
 
1190
-        do_action( 'wpinv_pre_refund_invoice', $this );
1190
+        do_action('wpinv_pre_refund_invoice', $this);
1191 1191
         
1192
-        $decrease_store_earnings = apply_filters( 'wpinv_decrease_store_earnings_on_refund', true, $this );
1193
-        $decrease_customer_value = apply_filters( 'wpinv_decrease_customer_value_on_refund', true, $this );
1194
-        $decrease_purchase_count = apply_filters( 'wpinv_decrease_customer_purchase_count_on_refund', true, $this );
1192
+        $decrease_store_earnings = apply_filters('wpinv_decrease_store_earnings_on_refund', true, $this);
1193
+        $decrease_customer_value = apply_filters('wpinv_decrease_customer_value_on_refund', true, $this);
1194
+        $decrease_purchase_count = apply_filters('wpinv_decrease_customer_purchase_count_on_refund', true, $this);
1195 1195
         
1196
-        do_action( 'wpinv_post_refund_invoice', $this );
1196
+        do_action('wpinv_post_refund_invoice', $this);
1197 1197
     }
1198 1198
 
1199 1199
     private function process_failure() {
1200 1200
         $discounts = $this->discounts;
1201
-        if ( empty( $discounts ) ) {
1201
+        if (empty($discounts)) {
1202 1202
             return;
1203 1203
         }
1204 1204
 
1205
-        if ( ! is_array( $discounts ) ) {
1206
-            $discounts = array_map( 'trim', explode( ',', $discounts ) );
1205
+        if (!is_array($discounts)) {
1206
+            $discounts = array_map('trim', explode(',', $discounts));
1207 1207
         }
1208 1208
 
1209
-        foreach ( $discounts as $discount ) {
1210
-            wpinv_decrease_discount_usage( $discount );
1209
+        foreach ($discounts as $discount) {
1210
+            wpinv_decrease_discount_usage($discount);
1211 1211
         }
1212 1212
     }
1213 1213
     
@@ -1215,92 +1215,92 @@  discard block
 block discarded – undo
1215 1215
         $process_pending = true;
1216 1216
 
1217 1217
         // If the payment was not in publish or revoked status, don't decrement stats as they were never incremented
1218
-        if ( ( 'publish' != $this->old_status && 'revoked' != $this->old_status ) || 'wpi-pending' != $this->status ) {
1218
+        if (('publish' != $this->old_status && 'revoked' != $this->old_status) || 'wpi-pending' != $this->status) {
1219 1219
             $process_pending = false;
1220 1220
         }
1221 1221
 
1222 1222
         // Allow extensions to filter for their own payment types, Example: Recurring Payments
1223
-        $process_pending = apply_filters( 'wpinv_should_process_pending', $process_pending, $this );
1223
+        $process_pending = apply_filters('wpinv_should_process_pending', $process_pending, $this);
1224 1224
 
1225
-        if ( false === $process_pending ) {
1225
+        if (false === $process_pending) {
1226 1226
             return;
1227 1227
         }
1228 1228
 
1229
-        $decrease_store_earnings = apply_filters( 'wpinv_decrease_store_earnings_on_pending', true, $this );
1230
-        $decrease_customer_value = apply_filters( 'wpinv_decrease_customer_value_on_pending', true, $this );
1231
-        $decrease_purchase_count = apply_filters( 'wpinv_decrease_customer_purchase_count_on_pending', true, $this );
1229
+        $decrease_store_earnings = apply_filters('wpinv_decrease_store_earnings_on_pending', true, $this);
1230
+        $decrease_customer_value = apply_filters('wpinv_decrease_customer_value_on_pending', true, $this);
1231
+        $decrease_purchase_count = apply_filters('wpinv_decrease_customer_purchase_count_on_pending', true, $this);
1232 1232
 
1233 1233
         $this->completed_date = '';
1234
-        $this->update_meta( '_wpinv_completed_date', '' );
1234
+        $this->update_meta('_wpinv_completed_date', '');
1235 1235
     }
1236 1236
     
1237 1237
     // get data
1238
-    public function get_meta( $meta_key = '_wpinv_payment_meta', $single = true ) {
1239
-        $meta = get_post_meta( $this->ID, $meta_key, $single );
1238
+    public function get_meta($meta_key = '_wpinv_payment_meta', $single = true) {
1239
+        $meta = get_post_meta($this->ID, $meta_key, $single);
1240 1240
 
1241
-        if ( $meta_key === '_wpinv_payment_meta' ) {
1241
+        if ($meta_key === '_wpinv_payment_meta') {
1242 1242
 
1243
-            if(!is_array($meta)){$meta = array();} // we need this to be an array so make sure it is.
1243
+            if (!is_array($meta)) {$meta = array(); } // we need this to be an array so make sure it is.
1244 1244
 
1245
-            if ( empty( $meta['key'] ) ) {
1245
+            if (empty($meta['key'])) {
1246 1246
                 $meta['key'] = $this->setup_invoice_key();
1247 1247
             }
1248 1248
 
1249
-            if ( empty( $meta['date'] ) ) {
1250
-                $meta['date'] = get_post_field( 'post_date', $this->ID );
1249
+            if (empty($meta['date'])) {
1250
+                $meta['date'] = get_post_field('post_date', $this->ID);
1251 1251
             }
1252 1252
         }
1253 1253
 
1254
-        $meta = apply_filters( 'wpinv_get_invoice_meta_' . $meta_key, $meta, $this->ID );
1254
+        $meta = apply_filters('wpinv_get_invoice_meta_' . $meta_key, $meta, $this->ID);
1255 1255
 
1256
-        return apply_filters( 'wpinv_get_invoice_meta', $meta, $this->ID, $meta_key );
1256
+        return apply_filters('wpinv_get_invoice_meta', $meta, $this->ID, $meta_key);
1257 1257
     }
1258 1258
     
1259 1259
     public function get_description() {
1260
-        $post = get_post( $this->ID );
1260
+        $post = get_post($this->ID);
1261 1261
         
1262
-        $description = !empty( $post ) ? $post->post_content : '';
1263
-        return apply_filters( 'wpinv_get_description', $description, $this->ID, $this );
1262
+        $description = !empty($post) ? $post->post_content : '';
1263
+        return apply_filters('wpinv_get_description', $description, $this->ID, $this);
1264 1264
     }
1265 1265
     
1266
-    public function get_status( $nicename = false ) {
1267
-        if ( !$nicename ) {
1266
+    public function get_status($nicename = false) {
1267
+        if (!$nicename) {
1268 1268
             $status = $this->status;
1269 1269
         } else {
1270 1270
             $status = $this->status_nicename;
1271 1271
         }
1272 1272
         
1273
-        return apply_filters( 'wpinv_get_status', $status, $nicename, $this->ID, $this );
1273
+        return apply_filters('wpinv_get_status', $status, $nicename, $this->ID, $this);
1274 1274
     }
1275 1275
     
1276 1276
     public function get_cart_details() {
1277
-        return apply_filters( 'wpinv_cart_details', $this->cart_details, $this->ID, $this );
1277
+        return apply_filters('wpinv_cart_details', $this->cart_details, $this->ID, $this);
1278 1278
     }
1279 1279
     
1280
-    public function get_subtotal( $currency = false ) {
1281
-        $subtotal = wpinv_round_amount( $this->subtotal );
1280
+    public function get_subtotal($currency = false) {
1281
+        $subtotal = wpinv_round_amount($this->subtotal);
1282 1282
         
1283
-        if ( $currency ) {
1284
-            $subtotal = wpinv_price( wpinv_format_amount( $subtotal, NULL, !$currency ), $this->get_currency() );
1283
+        if ($currency) {
1284
+            $subtotal = wpinv_price(wpinv_format_amount($subtotal, NULL, !$currency), $this->get_currency());
1285 1285
         }
1286 1286
         
1287
-        return apply_filters( 'wpinv_get_invoice_subtotal', $subtotal, $this->ID, $this, $currency );
1287
+        return apply_filters('wpinv_get_invoice_subtotal', $subtotal, $this->ID, $this, $currency);
1288 1288
     }
1289 1289
     
1290
-    public function get_total( $currency = false ) {        
1291
-        if ( $this->is_free_trial() ) {
1292
-            $total = wpinv_round_amount( 0 );
1290
+    public function get_total($currency = false) {        
1291
+        if ($this->is_free_trial()) {
1292
+            $total = wpinv_round_amount(0);
1293 1293
         } else {
1294
-            $total = wpinv_round_amount( $this->total );
1294
+            $total = wpinv_round_amount($this->total);
1295 1295
         }
1296
-        if ( $currency ) {
1297
-            $total = wpinv_price( wpinv_format_amount( $total, NULL, !$currency ), $this->get_currency() );
1296
+        if ($currency) {
1297
+            $total = wpinv_price(wpinv_format_amount($total, NULL, !$currency), $this->get_currency());
1298 1298
         }
1299 1299
         
1300
-        return apply_filters( 'wpinv_get_invoice_total', $total, $this->ID, $this, $currency );
1300
+        return apply_filters('wpinv_get_invoice_total', $total, $this->ID, $this, $currency);
1301 1301
     }
1302 1302
     
1303
-    public function get_recurring_details( $field = '', $currency = false ) {        
1303
+    public function get_recurring_details($field = '', $currency = false) {        
1304 1304
         $data                 = array();
1305 1305
         $data['cart_details'] = $this->cart_details;
1306 1306
         $data['subtotal']     = $this->get_subtotal();
@@ -1308,164 +1308,164 @@  discard block
 block discarded – undo
1308 1308
         $data['tax']          = $this->get_tax();
1309 1309
         $data['total']        = $this->get_total();
1310 1310
     
1311
-        if ( !empty( $this->cart_details ) && ( $this->is_parent() || $this->is_renewal() ) ) {
1311
+        if (!empty($this->cart_details) && ($this->is_parent() || $this->is_renewal())) {
1312 1312
             $is_free_trial = $this->is_free_trial();
1313
-            $discounts = $this->get_discounts( true );
1313
+            $discounts = $this->get_discounts(true);
1314 1314
             
1315
-            if ( $is_free_trial || !empty( $discounts ) ) {
1315
+            if ($is_free_trial || !empty($discounts)) {
1316 1316
                 $first_use_only = false;
1317 1317
                 
1318
-                if ( !empty( $discounts ) ) {
1319
-                    foreach ( $discounts as $key => $code ) {
1320
-                        if ( wpinv_discount_is_recurring( $code, true ) && !$this->is_renewal() ) {
1318
+                if (!empty($discounts)) {
1319
+                    foreach ($discounts as $key => $code) {
1320
+                        if (wpinv_discount_is_recurring($code, true) && !$this->is_renewal()) {
1321 1321
                             $first_use_only = true;
1322 1322
                             break;
1323 1323
                         }
1324 1324
                     }
1325 1325
                 }
1326 1326
                     
1327
-                if ( !$first_use_only ) {
1328
-                    $data['subtotal'] = wpinv_round_amount( $this->subtotal );
1329
-                    $data['discount'] = wpinv_round_amount( $this->discount );
1330
-                    $data['tax']      = wpinv_round_amount( $this->tax );
1331
-                    $data['total']    = wpinv_round_amount( $this->total );
1327
+                if (!$first_use_only) {
1328
+                    $data['subtotal'] = wpinv_round_amount($this->subtotal);
1329
+                    $data['discount'] = wpinv_round_amount($this->discount);
1330
+                    $data['tax']      = wpinv_round_amount($this->tax);
1331
+                    $data['total']    = wpinv_round_amount($this->total);
1332 1332
                 } else {
1333 1333
                     $cart_subtotal   = 0;
1334 1334
                     $cart_discount   = $this->discount;
1335 1335
                     $cart_tax        = 0;
1336 1336
 
1337
-                    foreach ( $this->cart_details as $key => $item ) {
1338
-                        $item_quantity  = $item['quantity'] > 0 ? absint( $item['quantity'] ) : 1;
1339
-                        $item_subtotal  = !empty( $item['subtotal'] ) ? $item['subtotal'] : $item['item_price'] * $item_quantity;
1337
+                    foreach ($this->cart_details as $key => $item) {
1338
+                        $item_quantity  = $item['quantity'] > 0 ? absint($item['quantity']) : 1;
1339
+                        $item_subtotal  = !empty($item['subtotal']) ? $item['subtotal'] : $item['item_price'] * $item_quantity;
1340 1340
                         $item_discount  = 0;
1341
-                        $item_tax       = $item_subtotal > 0 && !empty( $item['vat_rate'] ) ? ( $item_subtotal * 0.01 * (float)$item['vat_rate'] ) : 0;
1341
+                        $item_tax       = $item_subtotal > 0 && !empty($item['vat_rate']) ? ($item_subtotal * 0.01 * (float) $item['vat_rate']) : 0;
1342 1342
                         
1343
-                        if ( wpinv_prices_include_tax() ) {
1344
-                            $item_subtotal -= wpinv_round_amount( $item_tax );
1343
+                        if (wpinv_prices_include_tax()) {
1344
+                            $item_subtotal -= wpinv_round_amount($item_tax);
1345 1345
                         }
1346 1346
                         
1347 1347
                         $item_total     = $item_subtotal - $item_discount + $item_tax;
1348 1348
                         // Do not allow totals to go negative
1349
-                        if ( $item_total < 0 ) {
1349
+                        if ($item_total < 0) {
1350 1350
                             $item_total = 0;
1351 1351
                         }
1352 1352
                         
1353
-                        $cart_subtotal  += (float)($item_subtotal);
1354
-                        $cart_discount  += (float)($item_discount);
1355
-                        $cart_tax       += (float)($item_tax);
1353
+                        $cart_subtotal  += (float) ($item_subtotal);
1354
+                        $cart_discount  += (float) ($item_discount);
1355
+                        $cart_tax       += (float) ($item_tax);
1356 1356
                         
1357
-                        $data['cart_details'][$key]['discount']   = wpinv_round_amount( $item_discount );
1358
-                        $data['cart_details'][$key]['tax']        = wpinv_round_amount( $item_tax );
1359
-                        $data['cart_details'][$key]['price']      = wpinv_round_amount( $item_total );
1357
+                        $data['cart_details'][$key]['discount']   = wpinv_round_amount($item_discount);
1358
+                        $data['cart_details'][$key]['tax']        = wpinv_round_amount($item_tax);
1359
+                        $data['cart_details'][$key]['price']      = wpinv_round_amount($item_total);
1360 1360
                     }
1361 1361
 
1362 1362
 	                $total = $data['subtotal'] - $data['discount'] + $data['tax'];
1363
-	                if ( $total < 0 ) {
1363
+	                if ($total < 0) {
1364 1364
 		                $total = 0;
1365 1365
 	                }
1366 1366
 
1367
-                    $data['subtotal'] = wpinv_round_amount( $cart_subtotal );
1368
-                    $data['discount'] = wpinv_round_amount( $cart_discount );
1369
-                    $data['tax']      = wpinv_round_amount( $cart_tax );
1370
-                    $data['total']    = wpinv_round_amount( $total );
1367
+                    $data['subtotal'] = wpinv_round_amount($cart_subtotal);
1368
+                    $data['discount'] = wpinv_round_amount($cart_discount);
1369
+                    $data['tax']      = wpinv_round_amount($cart_tax);
1370
+                    $data['total']    = wpinv_round_amount($total);
1371 1371
                 }
1372 1372
             }
1373 1373
         }
1374 1374
         
1375
-        $data = apply_filters( 'wpinv_get_invoice_recurring_details', $data, $this, $field, $currency );
1375
+        $data = apply_filters('wpinv_get_invoice_recurring_details', $data, $this, $field, $currency);
1376 1376
 
1377
-        if ( isset( $data[$field] ) ) {
1378
-            return ( $currency ? wpinv_price( $data[$field], $this->get_currency() ) : $data[$field] );
1377
+        if (isset($data[$field])) {
1378
+            return ($currency ? wpinv_price($data[$field], $this->get_currency()) : $data[$field]);
1379 1379
         }
1380 1380
         
1381 1381
         return $data;
1382 1382
     }
1383 1383
     
1384
-    public function get_final_tax( $currency = false ) {        
1385
-        $final_total = wpinv_round_amount( $this->tax );
1386
-        if ( $currency ) {
1387
-            $final_total = wpinv_price( wpinv_format_amount( $final_total, NULL, !$currency ), $this->get_currency() );
1384
+    public function get_final_tax($currency = false) {        
1385
+        $final_total = wpinv_round_amount($this->tax);
1386
+        if ($currency) {
1387
+            $final_total = wpinv_price(wpinv_format_amount($final_total, NULL, !$currency), $this->get_currency());
1388 1388
         }
1389 1389
         
1390
-        return apply_filters( 'wpinv_get_invoice_final_total', $final_total, $this, $currency );
1390
+        return apply_filters('wpinv_get_invoice_final_total', $final_total, $this, $currency);
1391 1391
     }
1392 1392
     
1393
-    public function get_discounts( $array = false ) {
1393
+    public function get_discounts($array = false) {
1394 1394
         $discounts = $this->discounts;
1395
-        if ( $array && $discounts ) {
1396
-            $discounts = explode( ',', $discounts );
1395
+        if ($array && $discounts) {
1396
+            $discounts = explode(',', $discounts);
1397 1397
         }
1398
-        return apply_filters( 'wpinv_payment_discounts', $discounts, $this->ID, $this, $array );
1398
+        return apply_filters('wpinv_payment_discounts', $discounts, $this->ID, $this, $array);
1399 1399
     }
1400 1400
     
1401
-    public function get_discount( $currency = false, $dash = false ) {
1402
-        if ( !empty( $this->discounts ) ) {
1401
+    public function get_discount($currency = false, $dash = false) {
1402
+        if (!empty($this->discounts)) {
1403 1403
             global $ajax_cart_details;
1404 1404
             $ajax_cart_details = $this->get_cart_details();
1405 1405
             
1406
-            if ( !empty( $ajax_cart_details ) && count( $ajax_cart_details ) == count( $this->items ) ) {
1406
+            if (!empty($ajax_cart_details) && count($ajax_cart_details) == count($this->items)) {
1407 1407
                 $cart_items = $ajax_cart_details;
1408 1408
             } else {
1409 1409
                 $cart_items = $this->items;
1410 1410
             }
1411 1411
 
1412
-            $this->discount = wpinv_get_cart_items_discount_amount( $cart_items , $this->discounts );
1412
+            $this->discount = wpinv_get_cart_items_discount_amount($cart_items, $this->discounts);
1413 1413
         }
1414
-        $discount   = wpinv_round_amount( $this->discount );
1414
+        $discount   = wpinv_round_amount($this->discount);
1415 1415
         $dash       = $dash && $discount > 0 ? '&ndash;' : '';
1416 1416
         
1417
-        if ( $currency ) {
1418
-            $discount = wpinv_price( wpinv_format_amount( $discount, NULL, !$currency ), $this->get_currency() );
1417
+        if ($currency) {
1418
+            $discount = wpinv_price(wpinv_format_amount($discount, NULL, !$currency), $this->get_currency());
1419 1419
         }
1420 1420
         
1421
-        $discount   = $dash . $discount;
1421
+        $discount = $dash . $discount;
1422 1422
         
1423
-        return apply_filters( 'wpinv_get_invoice_discount', $discount, $this->ID, $this, $currency, $dash );
1423
+        return apply_filters('wpinv_get_invoice_discount', $discount, $this->ID, $this, $currency, $dash);
1424 1424
     }
1425 1425
     
1426 1426
     public function get_discount_code() {
1427 1427
         return $this->discount_code;
1428 1428
     }
1429 1429
     
1430
-    public function get_tax( $currency = false ) {
1431
-        $tax = wpinv_round_amount( $this->tax );
1430
+    public function get_tax($currency = false) {
1431
+        $tax = wpinv_round_amount($this->tax);
1432 1432
         
1433
-        if ( $currency ) {
1434
-            $tax = wpinv_price( wpinv_format_amount( $tax, NULL, !$currency ), $this->get_currency() );
1433
+        if ($currency) {
1434
+            $tax = wpinv_price(wpinv_format_amount($tax, NULL, !$currency), $this->get_currency());
1435 1435
         }
1436 1436
         
1437
-        return apply_filters( 'wpinv_get_invoice_tax', $tax, $this->ID, $this, $currency );
1437
+        return apply_filters('wpinv_get_invoice_tax', $tax, $this->ID, $this, $currency);
1438 1438
     }
1439 1439
     
1440
-    public function get_fees( $type = 'all' ) {
1441
-        $fees    = array();
1440
+    public function get_fees($type = 'all') {
1441
+        $fees = array();
1442 1442
 
1443
-        if ( ! empty( $this->fees ) && is_array( $this->fees ) ) {
1444
-            foreach ( $this->fees as $fee ) {
1445
-                if( 'all' != $type && ! empty( $fee['type'] ) && $type != $fee['type'] ) {
1443
+        if (!empty($this->fees) && is_array($this->fees)) {
1444
+            foreach ($this->fees as $fee) {
1445
+                if ('all' != $type && !empty($fee['type']) && $type != $fee['type']) {
1446 1446
                     continue;
1447 1447
                 }
1448 1448
 
1449
-                $fee['label'] = stripslashes( $fee['label'] );
1450
-                $fee['amount_display'] = wpinv_price( $fee['amount'], $this->get_currency() );
1451
-                $fees[]    = $fee;
1449
+                $fee['label'] = stripslashes($fee['label']);
1450
+                $fee['amount_display'] = wpinv_price($fee['amount'], $this->get_currency());
1451
+                $fees[] = $fee;
1452 1452
             }
1453 1453
         }
1454 1454
 
1455
-        return apply_filters( 'wpinv_get_invoice_fees', $fees, $this->ID, $this );
1455
+        return apply_filters('wpinv_get_invoice_fees', $fees, $this->ID, $this);
1456 1456
     }
1457 1457
     
1458
-    public function get_fees_total( $type = 'all' ) {
1458
+    public function get_fees_total($type = 'all') {
1459 1459
         $fees_total = (float) 0.00;
1460 1460
 
1461
-        $payment_fees = isset( $this->payment_meta['fees'] ) ? $this->payment_meta['fees'] : array();
1462
-        if ( ! empty( $payment_fees ) ) {
1463
-            foreach ( $payment_fees as $fee ) {
1461
+        $payment_fees = isset($this->payment_meta['fees']) ? $this->payment_meta['fees'] : array();
1462
+        if (!empty($payment_fees)) {
1463
+            foreach ($payment_fees as $fee) {
1464 1464
                 $fees_total += (float) $fee['amount'];
1465 1465
             }
1466 1466
         }
1467 1467
 
1468
-        return apply_filters( 'wpinv_get_invoice_fees_total', $fees_total, $this->ID, $this );
1468
+        return apply_filters('wpinv_get_invoice_fees_total', $fees_total, $this->ID, $this);
1469 1469
         /*
1470 1470
         $fees = $this->get_fees( $type );
1471 1471
 
@@ -1485,116 +1485,116 @@  discard block
 block discarded – undo
1485 1485
     }
1486 1486
 
1487 1487
     public function get_user_id() {
1488
-        return apply_filters( 'wpinv_user_id', $this->user_id, $this->ID, $this );
1488
+        return apply_filters('wpinv_user_id', $this->user_id, $this->ID, $this);
1489 1489
     }
1490 1490
     
1491 1491
     public function get_first_name() {
1492
-        return apply_filters( 'wpinv_first_name', $this->first_name, $this->ID, $this );
1492
+        return apply_filters('wpinv_first_name', $this->first_name, $this->ID, $this);
1493 1493
     }
1494 1494
     
1495 1495
     public function get_last_name() {
1496
-        return apply_filters( 'wpinv_last_name', $this->last_name, $this->ID, $this );
1496
+        return apply_filters('wpinv_last_name', $this->last_name, $this->ID, $this);
1497 1497
     }
1498 1498
     
1499 1499
     public function get_user_full_name() {
1500
-        return apply_filters( 'wpinv_user_full_name', $this->full_name, $this->ID, $this );
1500
+        return apply_filters('wpinv_user_full_name', $this->full_name, $this->ID, $this);
1501 1501
     }
1502 1502
     
1503 1503
     public function get_user_info() {
1504
-        return apply_filters( 'wpinv_user_info', $this->user_info, $this->ID, $this );
1504
+        return apply_filters('wpinv_user_info', $this->user_info, $this->ID, $this);
1505 1505
     }
1506 1506
     
1507 1507
     public function get_email() {
1508
-        return apply_filters( 'wpinv_user_email', $this->email, $this->ID, $this );
1508
+        return apply_filters('wpinv_user_email', $this->email, $this->ID, $this);
1509 1509
     }
1510 1510
     
1511 1511
     public function get_address() {
1512
-        return apply_filters( 'wpinv_address', $this->address, $this->ID, $this );
1512
+        return apply_filters('wpinv_address', $this->address, $this->ID, $this);
1513 1513
     }
1514 1514
     
1515 1515
     public function get_phone() {
1516
-        return apply_filters( 'wpinv_phone', $this->phone, $this->ID, $this );
1516
+        return apply_filters('wpinv_phone', $this->phone, $this->ID, $this);
1517 1517
     }
1518 1518
     
1519 1519
     public function get_number() {
1520
-        return apply_filters( 'wpinv_number', $this->number, $this->ID, $this );
1520
+        return apply_filters('wpinv_number', $this->number, $this->ID, $this);
1521 1521
     }
1522 1522
     
1523 1523
     public function get_items() {
1524
-        return apply_filters( 'wpinv_payment_meta_items', $this->items, $this->ID, $this );
1524
+        return apply_filters('wpinv_payment_meta_items', $this->items, $this->ID, $this);
1525 1525
     }
1526 1526
     
1527 1527
     public function get_key() {
1528
-        return apply_filters( 'wpinv_key', $this->key, $this->ID, $this );
1528
+        return apply_filters('wpinv_key', $this->key, $this->ID, $this);
1529 1529
     }
1530 1530
     
1531 1531
     public function get_transaction_id() {
1532
-        return apply_filters( 'wpinv_get_invoice_transaction_id', $this->transaction_id, $this->ID, $this );
1532
+        return apply_filters('wpinv_get_invoice_transaction_id', $this->transaction_id, $this->ID, $this);
1533 1533
     }
1534 1534
     
1535 1535
     public function get_gateway() {
1536
-        return apply_filters( 'wpinv_gateway', $this->gateway, $this->ID, $this );
1536
+        return apply_filters('wpinv_gateway', $this->gateway, $this->ID, $this);
1537 1537
     }
1538 1538
     
1539 1539
     public function get_gateway_title() {
1540
-        $this->gateway_title = !empty( $this->gateway_title ) ? $this->gateway_title : wpinv_get_gateway_checkout_label( $this->gateway );
1540
+        $this->gateway_title = !empty($this->gateway_title) ? $this->gateway_title : wpinv_get_gateway_checkout_label($this->gateway);
1541 1541
         
1542
-        return apply_filters( 'wpinv_gateway_title', $this->gateway_title, $this->ID, $this );
1542
+        return apply_filters('wpinv_gateway_title', $this->gateway_title, $this->ID, $this);
1543 1543
     }
1544 1544
     
1545 1545
     public function get_currency() {
1546
-        return apply_filters( 'wpinv_currency_code', $this->currency, $this->ID, $this );
1546
+        return apply_filters('wpinv_currency_code', $this->currency, $this->ID, $this);
1547 1547
     }
1548 1548
     
1549 1549
     public function get_created_date() {
1550
-        return apply_filters( 'wpinv_created_date', $this->date, $this->ID, $this );
1550
+        return apply_filters('wpinv_created_date', $this->date, $this->ID, $this);
1551 1551
     }
1552 1552
     
1553
-    public function get_due_date( $display = false ) {
1554
-        $due_date = apply_filters( 'wpinv_due_date', $this->due_date, $this->ID, $this );
1553
+    public function get_due_date($display = false) {
1554
+        $due_date = apply_filters('wpinv_due_date', $this->due_date, $this->ID, $this);
1555 1555
         
1556
-        if ( !$display || empty( $due_date ) ) {
1556
+        if (!$display || empty($due_date)) {
1557 1557
             return $due_date;
1558 1558
         }
1559 1559
         
1560
-        return date_i18n( get_option( 'date_format' ), strtotime( $due_date ) );
1560
+        return date_i18n(get_option('date_format'), strtotime($due_date));
1561 1561
     }
1562 1562
     
1563 1563
     public function get_completed_date() {
1564
-        return apply_filters( 'wpinv_completed_date', $this->completed_date, $this->ID, $this );
1564
+        return apply_filters('wpinv_completed_date', $this->completed_date, $this->ID, $this);
1565 1565
     }
1566 1566
     
1567
-    public function get_invoice_date( $formatted = true ) {
1567
+    public function get_invoice_date($formatted = true) {
1568 1568
         $date_completed = $this->completed_date;
1569 1569
         $invoice_date   = $date_completed != '' && $date_completed != '0000-00-00 00:00:00' ? $date_completed : '';
1570 1570
         
1571
-        if ( $invoice_date == '' ) {
1571
+        if ($invoice_date == '') {
1572 1572
             $date_created   = $this->date;
1573 1573
             $invoice_date   = $date_created != '' && $date_created != '0000-00-00 00:00:00' ? $date_created : '';
1574 1574
         }
1575 1575
         
1576
-        if ( $formatted && $invoice_date ) {
1577
-            $invoice_date   = date_i18n( get_option( 'date_format' ), strtotime( $invoice_date ) );
1576
+        if ($formatted && $invoice_date) {
1577
+            $invoice_date = date_i18n(get_option('date_format'), strtotime($invoice_date));
1578 1578
         }
1579 1579
 
1580
-        return apply_filters( 'wpinv_get_invoice_date', $invoice_date, $formatted, $this->ID, $this );
1580
+        return apply_filters('wpinv_get_invoice_date', $invoice_date, $formatted, $this->ID, $this);
1581 1581
     }
1582 1582
     
1583 1583
     public function get_ip() {
1584
-        return apply_filters( 'wpinv_user_ip', $this->ip, $this->ID, $this );
1584
+        return apply_filters('wpinv_user_ip', $this->ip, $this->ID, $this);
1585 1585
     }
1586 1586
         
1587
-    public function has_status( $status ) {
1588
-        return apply_filters( 'wpinv_has_status', ( is_array( $status ) && in_array( $this->get_status(), $status ) ) || $this->get_status() === $status ? true : false, $this, $status );
1587
+    public function has_status($status) {
1588
+        return apply_filters('wpinv_has_status', (is_array($status) && in_array($this->get_status(), $status)) || $this->get_status() === $status ? true : false, $this, $status);
1589 1589
     }
1590 1590
     
1591
-    public function add_item( $item_id = 0, $args = array() ) {
1591
+    public function add_item($item_id = 0, $args = array()) {
1592 1592
         global $wpi_current_id, $wpi_item_id;
1593 1593
         
1594
-        $item = new WPInv_Item( $item_id );
1594
+        $item = new WPInv_Item($item_id);
1595 1595
 
1596 1596
         // Bail if this post isn't a item
1597
-        if( !$item || $item->post_type !== 'wpi_item' ) {
1597
+        if (!$item || $item->post_type !== 'wpi_item') {
1598 1598
             return false;
1599 1599
         }
1600 1600
         
@@ -1613,8 +1613,8 @@  discard block
 block discarded – undo
1613 1613
             'fees'          => array()
1614 1614
         );
1615 1615
 
1616
-        $args = wp_parse_args( apply_filters( 'wpinv_add_item_args', $args, $item->ID ), $defaults );
1617
-        $args['quantity']   = $has_quantities && $args['quantity'] > 0 ? absint( $args['quantity'] ) : 1;
1616
+        $args = wp_parse_args(apply_filters('wpinv_add_item_args', $args, $item->ID), $defaults);
1617
+        $args['quantity'] = $has_quantities && $args['quantity'] > 0 ? absint($args['quantity']) : 1;
1618 1618
 
1619 1619
         $wpi_current_id         = $this->ID;
1620 1620
         $wpi_item_id            = $item->ID;
@@ -1626,19 +1626,19 @@  discard block
 block discarded – undo
1626 1626
         $found_cart_key         = false;
1627 1627
         
1628 1628
         if ($has_quantities) {
1629
-            $this->cart_details = !empty( $this->cart_details ) ? array_values( $this->cart_details ) : $this->cart_details;
1629
+            $this->cart_details = !empty($this->cart_details) ? array_values($this->cart_details) : $this->cart_details;
1630 1630
             
1631
-            foreach ( $this->items as $key => $cart_item ) {
1632
-                if ( (int)$item_id !== (int)$cart_item['id'] ) {
1631
+            foreach ($this->items as $key => $cart_item) {
1632
+                if ((int) $item_id !== (int) $cart_item['id']) {
1633 1633
                     continue;
1634 1634
                 }
1635 1635
 
1636
-                $this->items[ $key ]['quantity'] += $args['quantity'];
1636
+                $this->items[$key]['quantity'] += $args['quantity'];
1637 1637
                 break;
1638 1638
             }
1639 1639
             
1640
-            foreach ( $this->cart_details as $cart_key => $cart_item ) {
1641
-                if ( $item_id != $cart_item['id'] ) {
1640
+            foreach ($this->cart_details as $cart_key => $cart_item) {
1641
+                if ($item_id != $cart_item['id']) {
1642 1642
                     continue;
1643 1643
                 }
1644 1644
 
@@ -1650,29 +1650,29 @@  discard block
 block discarded – undo
1650 1650
         if ($has_quantities && $found_cart_key !== false) {
1651 1651
             $cart_item          = $this->cart_details[$found_cart_key];
1652 1652
             $item_price         = $cart_item['item_price'];
1653
-            $quantity           = !empty( $cart_item['quantity'] ) ? $cart_item['quantity'] : 1;
1654
-            $tax_rate           = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : 0;
1653
+            $quantity           = !empty($cart_item['quantity']) ? $cart_item['quantity'] : 1;
1654
+            $tax_rate           = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : 0;
1655 1655
             
1656 1656
             $new_quantity       = $quantity + $args['quantity'];
1657 1657
             $subtotal           = $item_price * $new_quantity;
1658 1658
             
1659 1659
             $args['quantity']   = $new_quantity;
1660
-            $discount           = !empty( $args['discount'] ) ? $args['discount'] : 0;
1661
-            $tax                = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1660
+            $discount           = !empty($args['discount']) ? $args['discount'] : 0;
1661
+            $tax                = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float) $tax_rate) : 0;
1662 1662
             
1663
-            $discount_increased = $discount > 0 && $subtotal > 0 && $discount > (float)$cart_item['discount'] ? $discount - (float)$cart_item['discount'] : 0;
1664
-            $tax_increased      = $tax > 0 && $subtotal > 0 && $tax > (float)$cart_item['tax'] ? $tax - (float)$cart_item['tax'] : 0;
1663
+            $discount_increased = $discount > 0 && $subtotal > 0 && $discount > (float) $cart_item['discount'] ? $discount - (float) $cart_item['discount'] : 0;
1664
+            $tax_increased      = $tax > 0 && $subtotal > 0 && $tax > (float) $cart_item['tax'] ? $tax - (float) $cart_item['tax'] : 0;
1665 1665
             // The total increase equals the number removed * the item_price
1666
-            $total_increased    = wpinv_round_amount( $item_price );
1666
+            $total_increased    = wpinv_round_amount($item_price);
1667 1667
             
1668
-            if ( wpinv_prices_include_tax() ) {
1669
-                $subtotal -= wpinv_round_amount( $tax );
1668
+            if (wpinv_prices_include_tax()) {
1669
+                $subtotal -= wpinv_round_amount($tax);
1670 1670
             }
1671 1671
 
1672
-            $total              = $subtotal - $discount + $tax;
1672
+            $total = $subtotal - $discount + $tax;
1673 1673
 
1674 1674
             // Do not allow totals to go negative
1675
-            if( $total < 0 ) {
1675
+            if ($total < 0) {
1676 1676
                 $total = 0;
1677 1677
             }
1678 1678
             
@@ -1688,25 +1688,25 @@  discard block
 block discarded – undo
1688 1688
             $this->cart_details[$found_cart_key] = $cart_item;
1689 1689
         } else {
1690 1690
             // Set custom price.
1691
-            if ( $args['custom_price'] !== '' ) {
1691
+            if ($args['custom_price'] !== '') {
1692 1692
                 $item_price = $args['custom_price'];
1693 1693
             } else {
1694 1694
                 // Allow overriding the price
1695
-                if ( false !== $args['item_price'] ) {
1695
+                if (false !== $args['item_price']) {
1696 1696
                     $item_price = $args['item_price'];
1697 1697
                 } else {
1698
-                    $item_price = wpinv_get_item_price( $item->ID );
1698
+                    $item_price = wpinv_get_item_price($item->ID);
1699 1699
                 }
1700 1700
             }
1701 1701
 
1702 1702
             // Sanitizing the price here so we don't have a dozen calls later
1703
-            $item_price = wpinv_sanitize_amount( $item_price );
1704
-            $subtotal   = wpinv_round_amount( $item_price * $args['quantity'] );
1703
+            $item_price = wpinv_sanitize_amount($item_price);
1704
+            $subtotal   = wpinv_round_amount($item_price * $args['quantity']);
1705 1705
         
1706
-            $discount   = !empty( $args['discount'] ) ? $args['discount'] : 0;
1707
-            $tax_class  = !empty( $args['vat_class'] ) ? $args['vat_class'] : '';
1708
-            $tax_rate   = !empty( $args['vat_rate'] ) ? $args['vat_rate'] : 0;
1709
-            $tax        = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1706
+            $discount   = !empty($args['discount']) ? $args['discount'] : 0;
1707
+            $tax_class  = !empty($args['vat_class']) ? $args['vat_class'] : '';
1708
+            $tax_rate   = !empty($args['vat_rate']) ? $args['vat_rate'] : 0;
1709
+            $tax        = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float) $tax_rate) : 0;
1710 1710
 
1711 1711
             // Setup the items meta item
1712 1712
             $new_item = array(
@@ -1714,29 +1714,29 @@  discard block
 block discarded – undo
1714 1714
                 'quantity' => $args['quantity'],
1715 1715
             );
1716 1716
 
1717
-            $this->items[]  = $new_item;
1717
+            $this->items[] = $new_item;
1718 1718
 
1719
-            if ( wpinv_prices_include_tax() ) {
1720
-                $subtotal -= wpinv_round_amount( $tax );
1719
+            if (wpinv_prices_include_tax()) {
1720
+                $subtotal -= wpinv_round_amount($tax);
1721 1721
             }
1722 1722
 
1723
-            $total      = $subtotal - $discount + $tax;
1723
+            $total = $subtotal - $discount + $tax;
1724 1724
 
1725 1725
             // Do not allow totals to go negative
1726
-            if( $total < 0 ) {
1726
+            if ($total < 0) {
1727 1727
                 $total = 0;
1728 1728
             }
1729 1729
         
1730 1730
             $this->cart_details[] = array(
1731 1731
                 'name'          => !empty($args['name']) ? $args['name'] : $item->get_name(),
1732 1732
                 'id'            => $item->ID,
1733
-                'item_price'    => wpinv_round_amount( $item_price ),
1734
-                'custom_price'  => ( $args['custom_price'] !== '' ? wpinv_round_amount( $args['custom_price'] ) : '' ),
1733
+                'item_price'    => wpinv_round_amount($item_price),
1734
+                'custom_price'  => ($args['custom_price'] !== '' ? wpinv_round_amount($args['custom_price']) : ''),
1735 1735
                 'quantity'      => $args['quantity'],
1736 1736
                 'discount'      => $discount,
1737
-                'subtotal'      => wpinv_round_amount( $subtotal ),
1738
-                'tax'           => wpinv_round_amount( $tax ),
1739
-                'price'         => wpinv_round_amount( $total ),
1737
+                'subtotal'      => wpinv_round_amount($subtotal),
1738
+                'tax'           => wpinv_round_amount($tax),
1739
+                'price'         => wpinv_round_amount($total),
1740 1740
                 'vat_rate'      => $tax_rate,
1741 1741
                 'vat_class'     => $tax_class,
1742 1742
                 'meta'          => $args['meta'],
@@ -1746,18 +1746,18 @@  discard block
 block discarded – undo
1746 1746
             $subtotal = $subtotal - $discount;
1747 1747
         }
1748 1748
         
1749
-        $added_item = end( $this->cart_details );
1750
-        $added_item['action']  = 'add';
1749
+        $added_item = end($this->cart_details);
1750
+        $added_item['action'] = 'add';
1751 1751
         
1752 1752
         $this->pending['items'][] = $added_item;
1753 1753
         
1754
-        $this->increase_subtotal( $subtotal );
1755
-        $this->increase_tax( $tax );
1754
+        $this->increase_subtotal($subtotal);
1755
+        $this->increase_tax($tax);
1756 1756
 
1757 1757
         return true;
1758 1758
     }
1759 1759
     
1760
-    public function remove_item( $item_id, $args = array() ) {
1760
+    public function remove_item($item_id, $args = array()) {
1761 1761
         // Set some defaults
1762 1762
         $defaults = array(
1763 1763
             'quantity'      => 1,
@@ -1765,51 +1765,51 @@  discard block
 block discarded – undo
1765 1765
             'custom_price'  => '',
1766 1766
             'cart_index'    => false,
1767 1767
         );
1768
-        $args = wp_parse_args( $args, $defaults );
1768
+        $args = wp_parse_args($args, $defaults);
1769 1769
 
1770 1770
         // Bail if this post isn't a item
1771
-        if ( get_post_type( $item_id ) !== 'wpi_item' ) {
1771
+        if (get_post_type($item_id) !== 'wpi_item') {
1772 1772
             return false;
1773 1773
         }
1774 1774
         
1775
-        $this->cart_details = !empty( $this->cart_details ) ? array_values( $this->cart_details ) : $this->cart_details;
1775
+        $this->cart_details = !empty($this->cart_details) ? array_values($this->cart_details) : $this->cart_details;
1776 1776
 
1777
-        foreach ( $this->items as $key => $item ) {
1778
-            if ( !empty($item['id']) && (int)$item_id !== (int)$item['id'] ) {
1777
+        foreach ($this->items as $key => $item) {
1778
+            if (!empty($item['id']) && (int) $item_id !== (int) $item['id']) {
1779 1779
                 continue;
1780 1780
             }
1781 1781
 
1782
-            if ( false !== $args['cart_index'] ) {
1783
-                $cart_index = absint( $args['cart_index'] );
1784
-                $cart_item  = ! empty( $this->cart_details[ $cart_index ] ) ? $this->cart_details[ $cart_index ] : false;
1782
+            if (false !== $args['cart_index']) {
1783
+                $cart_index = absint($args['cart_index']);
1784
+                $cart_item  = !empty($this->cart_details[$cart_index]) ? $this->cart_details[$cart_index] : false;
1785 1785
 
1786
-                if ( ! empty( $cart_item ) ) {
1786
+                if (!empty($cart_item)) {
1787 1787
                     // If the cart index item isn't the same item ID, don't remove it
1788
-                    if ( !empty($cart_item['id']) && $cart_item['id'] != $item['id'] ) {
1788
+                    if (!empty($cart_item['id']) && $cart_item['id'] != $item['id']) {
1789 1789
                         continue;
1790 1790
                     }
1791 1791
                 }
1792 1792
             }
1793 1793
 
1794
-            $item_quantity = $this->items[ $key ]['quantity'];
1795
-            if ( $item_quantity > $args['quantity'] ) {
1796
-                $this->items[ $key ]['quantity'] -= $args['quantity'];
1794
+            $item_quantity = $this->items[$key]['quantity'];
1795
+            if ($item_quantity > $args['quantity']) {
1796
+                $this->items[$key]['quantity'] -= $args['quantity'];
1797 1797
                 break;
1798 1798
             } else {
1799
-                unset( $this->items[ $key ] );
1799
+                unset($this->items[$key]);
1800 1800
                 break;
1801 1801
             }
1802 1802
         }
1803 1803
 
1804 1804
         $found_cart_key = false;
1805
-        if ( false === $args['cart_index'] ) {
1806
-            foreach ( $this->cart_details as $cart_key => $item ) {
1807
-                if ( $item_id != $item['id'] ) {
1805
+        if (false === $args['cart_index']) {
1806
+            foreach ($this->cart_details as $cart_key => $item) {
1807
+                if ($item_id != $item['id']) {
1808 1808
                     continue;
1809 1809
                 }
1810 1810
 
1811
-                if ( false !== $args['item_price'] ) {
1812
-                    if ( isset( $item['item_price'] ) && (float) $args['item_price'] != (float) $item['item_price'] ) {
1811
+                if (false !== $args['item_price']) {
1812
+                    if (isset($item['item_price']) && (float) $args['item_price'] != (float) $item['item_price']) {
1813 1813
                         continue;
1814 1814
                     }
1815 1815
                 }
@@ -1818,13 +1818,13 @@  discard block
 block discarded – undo
1818 1818
                 break;
1819 1819
             }
1820 1820
         } else {
1821
-            $cart_index = absint( $args['cart_index'] );
1821
+            $cart_index = absint($args['cart_index']);
1822 1822
 
1823
-            if ( ! array_key_exists( $cart_index, $this->cart_details ) ) {
1823
+            if (!array_key_exists($cart_index, $this->cart_details)) {
1824 1824
                 return false; // Invalid cart index passed.
1825 1825
             }
1826 1826
 
1827
-            if ( (int) $this->cart_details[ $cart_index ]['id'] > 0 && (int) $this->cart_details[ $cart_index ]['id'] !== (int) $item_id ) {
1827
+            if ((int) $this->cart_details[$cart_index]['id'] > 0 && (int) $this->cart_details[$cart_index]['id'] !== (int) $item_id) {
1828 1828
                 return false; // We still need the proper Item ID to be sure.
1829 1829
             }
1830 1830
 
@@ -1832,41 +1832,41 @@  discard block
 block discarded – undo
1832 1832
         }
1833 1833
         
1834 1834
         $cart_item  = $this->cart_details[$found_cart_key];
1835
-        $quantity   = !empty( $cart_item['quantity'] ) ? $cart_item['quantity'] : 1;
1835
+        $quantity   = !empty($cart_item['quantity']) ? $cart_item['quantity'] : 1;
1836 1836
         
1837
-        if ( count( $this->cart_details ) == 1 && ( $quantity - $args['quantity'] ) < 1 ) {
1837
+        if (count($this->cart_details) == 1 && ($quantity - $args['quantity']) < 1) {
1838 1838
             return false; // Invoice must contain at least one item.
1839 1839
         }
1840 1840
         
1841
-        $discounts  = $this->get_discounts();
1841
+        $discounts = $this->get_discounts();
1842 1842
         
1843
-        if ( $quantity > $args['quantity'] ) {
1843
+        if ($quantity > $args['quantity']) {
1844 1844
             $item_price         = $cart_item['item_price'];
1845
-            $tax_rate           = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : 0;
1845
+            $tax_rate           = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : 0;
1846 1846
             
1847
-            $new_quantity       = max( $quantity - $args['quantity'], 1);
1847
+            $new_quantity       = max($quantity - $args['quantity'], 1);
1848 1848
             $subtotal           = $item_price * $new_quantity;
1849 1849
             
1850 1850
             $args['quantity']   = $new_quantity;
1851
-            $discount           = !empty( $cart_item['discount'] ) ? $cart_item['discount'] : 0;
1852
-            $tax                = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1851
+            $discount           = !empty($cart_item['discount']) ? $cart_item['discount'] : 0;
1852
+            $tax                = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float) $tax_rate) : 0;
1853 1853
             
1854
-            $discount_decrease  = (float)$cart_item['discount'] > 0 && $quantity > 0 ? wpinv_round_amount( ( (float)$cart_item['discount'] / $quantity ) ) : 0;
1855
-            $discount_decrease  = $discount > 0 && $subtotal > 0 && (float)$cart_item['discount'] > $discount ? (float)$cart_item['discount'] - $discount : $discount_decrease; 
1856
-            $tax_decrease       = (float)$cart_item['tax'] > 0 && $quantity > 0 ? wpinv_round_amount( ( (float)$cart_item['tax'] / $quantity ) ) : 0;
1857
-            $tax_decrease       = $tax > 0 && $subtotal > 0 && (float)$cart_item['tax'] > $tax ? (float)$cart_item['tax'] - $tax : $tax_decrease;
1854
+            $discount_decrease  = (float) $cart_item['discount'] > 0 && $quantity > 0 ? wpinv_round_amount(((float) $cart_item['discount'] / $quantity)) : 0;
1855
+            $discount_decrease  = $discount > 0 && $subtotal > 0 && (float) $cart_item['discount'] > $discount ? (float) $cart_item['discount'] - $discount : $discount_decrease; 
1856
+            $tax_decrease       = (float) $cart_item['tax'] > 0 && $quantity > 0 ? wpinv_round_amount(((float) $cart_item['tax'] / $quantity)) : 0;
1857
+            $tax_decrease       = $tax > 0 && $subtotal > 0 && (float) $cart_item['tax'] > $tax ? (float) $cart_item['tax'] - $tax : $tax_decrease;
1858 1858
             
1859 1859
             // The total increase equals the number removed * the item_price
1860
-            $total_decrease     = wpinv_round_amount( $item_price );
1860
+            $total_decrease     = wpinv_round_amount($item_price);
1861 1861
             
1862
-            if ( wpinv_prices_include_tax() ) {
1863
-                $subtotal -= wpinv_round_amount( $tax );
1862
+            if (wpinv_prices_include_tax()) {
1863
+                $subtotal -= wpinv_round_amount($tax);
1864 1864
             }
1865 1865
 
1866
-            $total              = $subtotal - $discount + $tax;
1866
+            $total = $subtotal - $discount + $tax;
1867 1867
 
1868 1868
             // Do not allow totals to go negative
1869
-            if( $total < 0 ) {
1869
+            if ($total < 0) {
1870 1870
                 $total = 0;
1871 1871
             }
1872 1872
             
@@ -1885,16 +1885,16 @@  discard block
 block discarded – undo
1885 1885
             
1886 1886
             $this->cart_details[$found_cart_key] = $cart_item;
1887 1887
             
1888
-            $remove_item = end( $this->cart_details );
1888
+            $remove_item = end($this->cart_details);
1889 1889
         } else {
1890 1890
             $item_price     = $cart_item['item_price'];
1891
-            $discount       = !empty( $cart_item['discount'] ) ? $cart_item['discount'] : 0;
1892
-            $tax            = !empty( $cart_item['tax'] ) ? $cart_item['tax'] : 0;
1891
+            $discount       = !empty($cart_item['discount']) ? $cart_item['discount'] : 0;
1892
+            $tax            = !empty($cart_item['tax']) ? $cart_item['tax'] : 0;
1893 1893
         
1894
-            $subtotal_decrease  = ( $item_price * $quantity ) - $discount;
1894
+            $subtotal_decrease  = ($item_price * $quantity) - $discount;
1895 1895
             $tax_decrease       = $tax;
1896 1896
 
1897
-            unset( $this->cart_details[$found_cart_key] );
1897
+            unset($this->cart_details[$found_cart_key]);
1898 1898
             
1899 1899
             $remove_item             = $args;
1900 1900
             $remove_item['id']       = $item_id;
@@ -1905,8 +1905,8 @@  discard block
 block discarded – undo
1905 1905
         $remove_item['action']      = 'remove';
1906 1906
         $this->pending['items'][]   = $remove_item;
1907 1907
                
1908
-        $this->decrease_subtotal( $subtotal_decrease );
1909
-        $this->decrease_tax( $tax_decrease );
1908
+        $this->decrease_subtotal($subtotal_decrease);
1909
+        $this->decrease_tax($tax_decrease);
1910 1910
         
1911 1911
         return true;
1912 1912
     }
@@ -1914,7 +1914,7 @@  discard block
 block discarded – undo
1914 1914
     public function update_items($temp = false) {
1915 1915
         global $wpinv_euvat, $wpi_current_id, $wpi_item_id, $wpi_nosave;
1916 1916
         
1917
-        if ( !empty( $this->cart_details ) ) {
1917
+        if (!empty($this->cart_details)) {
1918 1918
             $wpi_nosave             = $temp;
1919 1919
             $cart_subtotal          = 0;
1920 1920
             $cart_discount          = 0;
@@ -1924,61 +1924,61 @@  discard block
 block discarded – undo
1924 1924
             $_POST['wpinv_country'] = $this->country;
1925 1925
             $_POST['wpinv_state']   = $this->state;
1926 1926
             
1927
-            foreach ( $this->cart_details as $key => $item ) {
1927
+            foreach ($this->cart_details as $key => $item) {
1928 1928
                 $item_price = $item['item_price'];
1929
-                $quantity   = wpinv_item_quantities_enabled() && $item['quantity'] > 0 ? absint( $item['quantity'] ) : 1;
1930
-                $amount     = wpinv_round_amount( $item_price * $quantity );
1929
+                $quantity   = wpinv_item_quantities_enabled() && $item['quantity'] > 0 ? absint($item['quantity']) : 1;
1930
+                $amount     = wpinv_round_amount($item_price * $quantity);
1931 1931
                 $subtotal   = $item_price * $quantity;
1932 1932
                 
1933 1933
                 $wpi_current_id         = $this->ID;
1934 1934
                 $wpi_item_id            = $item['id'];
1935 1935
                 
1936
-                $discount   = wpinv_get_cart_item_discount_amount( $item, $this->get_discounts() );
1936
+                $discount   = wpinv_get_cart_item_discount_amount($item, $this->get_discounts());
1937 1937
                 
1938
-                $tax_rate   = wpinv_get_tax_rate( $this->country, $this->state, $wpi_item_id );
1939
-                $tax_class  = $wpinv_euvat->get_item_class( $wpi_item_id );
1940
-                $tax        = $item_price > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1938
+                $tax_rate   = wpinv_get_tax_rate($this->country, $this->state, $wpi_item_id);
1939
+                $tax_class  = $wpinv_euvat->get_item_class($wpi_item_id);
1940
+                $tax        = $item_price > 0 ? (($subtotal - $discount) * 0.01 * (float) $tax_rate) : 0;
1941 1941
 
1942
-                if ( wpinv_prices_include_tax() ) {
1943
-                    $subtotal -= wpinv_round_amount( $tax );
1942
+                if (wpinv_prices_include_tax()) {
1943
+                    $subtotal -= wpinv_round_amount($tax);
1944 1944
                 }
1945 1945
 
1946
-                $total      = $subtotal - $discount + $tax;
1946
+                $total = $subtotal - $discount + $tax;
1947 1947
 
1948 1948
                 // Do not allow totals to go negative
1949
-                if( $total < 0 ) {
1949
+                if ($total < 0) {
1950 1950
                     $total = 0;
1951 1951
                 }
1952 1952
 
1953 1953
                 $cart_details[] = array(
1954 1954
                     'id'          => $item['id'],
1955 1955
                     'name'        => $item['name'],
1956
-                    'item_price'  => wpinv_round_amount( $item_price ),
1957
-                    'custom_price'=> ( isset( $item['custom_price'] ) ? $item['custom_price'] : '' ),
1956
+                    'item_price'  => wpinv_round_amount($item_price),
1957
+                    'custom_price'=> (isset($item['custom_price']) ? $item['custom_price'] : ''),
1958 1958
                     'quantity'    => $quantity,
1959 1959
                     'discount'    => $discount,
1960
-                    'subtotal'    => wpinv_round_amount( $subtotal ),
1961
-                    'tax'         => wpinv_round_amount( $tax ),
1962
-                    'price'       => wpinv_round_amount( $total ),
1960
+                    'subtotal'    => wpinv_round_amount($subtotal),
1961
+                    'tax'         => wpinv_round_amount($tax),
1962
+                    'price'       => wpinv_round_amount($total),
1963 1963
                     'vat_rate'    => $tax_rate,
1964 1964
                     'vat_class'   => $tax_class,
1965 1965
                     'meta'        => isset($item['meta']) ? $item['meta'] : array(),
1966 1966
                     'fees'        => isset($item['fees']) ? $item['fees'] : array(),
1967 1967
                 );
1968 1968
                 
1969
-                $cart_subtotal  += (float)($subtotal - $discount); // TODO
1970
-                $cart_discount  += (float)($discount);
1971
-                $cart_tax       += (float)($tax);
1969
+                $cart_subtotal  += (float) ($subtotal - $discount); // TODO
1970
+                $cart_discount  += (float) ($discount);
1971
+                $cart_tax       += (float) ($tax);
1972 1972
             }
1973
-            if ( $cart_subtotal < 0 ) {
1973
+            if ($cart_subtotal < 0) {
1974 1974
                 $cart_subtotal = 0;
1975 1975
             }
1976
-            if ( $cart_tax < 0 ) {
1976
+            if ($cart_tax < 0) {
1977 1977
                 $cart_tax = 0;
1978 1978
             }
1979
-            $this->subtotal = wpinv_round_amount( $cart_subtotal );
1980
-            $this->tax      = wpinv_round_amount( $cart_tax );
1981
-            $this->discount = wpinv_round_amount( $cart_discount );
1979
+            $this->subtotal = wpinv_round_amount($cart_subtotal);
1980
+            $this->tax      = wpinv_round_amount($cart_tax);
1981
+            $this->discount = wpinv_round_amount($cart_discount);
1982 1982
             
1983 1983
             $this->recalculate_total();
1984 1984
             
@@ -1990,177 +1990,177 @@  discard block
 block discarded – undo
1990 1990
     
1991 1991
     public function recalculate_totals($temp = false) {        
1992 1992
         $this->update_items($temp);
1993
-        $this->save( true );
1993
+        $this->save(true);
1994 1994
         
1995 1995
         return $this;
1996 1996
     }
1997 1997
     
1998 1998
     public function needs_payment() {
1999
-        $valid_invoice_statuses = apply_filters( 'wpinv_valid_invoice_statuses_for_payment', array( 'wpi-pending' ), $this );
1999
+        $valid_invoice_statuses = apply_filters('wpinv_valid_invoice_statuses_for_payment', array('wpi-pending'), $this);
2000 2000
 
2001
-        if ( $this->has_status( $valid_invoice_statuses ) && ( $this->get_total() > 0 || $this->is_free_trial() || $this->is_free() || $this->is_initial_free() ) ) {
2001
+        if ($this->has_status($valid_invoice_statuses) && ($this->get_total() > 0 || $this->is_free_trial() || $this->is_free() || $this->is_initial_free())) {
2002 2002
             $needs_payment = true;
2003 2003
         } else {
2004 2004
             $needs_payment = false;
2005 2005
         }
2006 2006
 
2007
-        return apply_filters( 'wpinv_needs_payment', $needs_payment, $this, $valid_invoice_statuses );
2007
+        return apply_filters('wpinv_needs_payment', $needs_payment, $this, $valid_invoice_statuses);
2008 2008
     }
2009 2009
     
2010
-    public function get_checkout_payment_url( $with_key = false, $secret = false ) {
2010
+    public function get_checkout_payment_url($with_key = false, $secret = false) {
2011 2011
         $pay_url = wpinv_get_checkout_uri();
2012 2012
 
2013
-        if ( is_ssl() ) {
2014
-            $pay_url = str_replace( 'http:', 'https:', $pay_url );
2013
+        if (is_ssl()) {
2014
+            $pay_url = str_replace('http:', 'https:', $pay_url);
2015 2015
         }
2016 2016
         
2017 2017
         $key = $this->get_key();
2018 2018
 
2019
-        if ( $with_key ) {
2020
-            $pay_url = add_query_arg( 'invoice_key', $key, $pay_url );
2019
+        if ($with_key) {
2020
+            $pay_url = add_query_arg('invoice_key', $key, $pay_url);
2021 2021
         } else {
2022
-            $pay_url = add_query_arg( array( 'wpi_action' => 'pay_for_invoice', 'invoice_key' => $key ), $pay_url );
2022
+            $pay_url = add_query_arg(array('wpi_action' => 'pay_for_invoice', 'invoice_key' => $key), $pay_url);
2023 2023
         }
2024 2024
         
2025
-        if ( $secret ) {
2026
-            $pay_url = add_query_arg( array( '_wpipay' => md5( $this->get_user_id() . '::' . $this->get_email() . '::' . $key ) ), $pay_url );
2025
+        if ($secret) {
2026
+            $pay_url = add_query_arg(array('_wpipay' => md5($this->get_user_id() . '::' . $this->get_email() . '::' . $key)), $pay_url);
2027 2027
         }
2028 2028
 
2029
-        return apply_filters( 'wpinv_get_checkout_payment_url', $pay_url, $this, $with_key, $secret );
2029
+        return apply_filters('wpinv_get_checkout_payment_url', $pay_url, $this, $with_key, $secret);
2030 2030
     }
2031 2031
     
2032
-    public function get_view_url( $with_key = false ) {
2033
-        $invoice_url = get_permalink( $this->ID );
2032
+    public function get_view_url($with_key = false) {
2033
+        $invoice_url = get_permalink($this->ID);
2034 2034
 
2035
-        if ( $with_key ) {
2036
-            $invoice_url = add_query_arg( 'invoice_key', $this->get_key(), $invoice_url );
2035
+        if ($with_key) {
2036
+            $invoice_url = add_query_arg('invoice_key', $this->get_key(), $invoice_url);
2037 2037
         }
2038 2038
 
2039
-        return apply_filters( 'wpinv_get_view_url', $invoice_url, $this, $with_key );
2039
+        return apply_filters('wpinv_get_view_url', $invoice_url, $this, $with_key);
2040 2040
     }
2041 2041
     
2042
-    public function generate_key( $string = '' ) {
2043
-        $auth_key  = defined( 'AUTH_KEY' ) ? AUTH_KEY : '';
2044
-        return strtolower( md5( $string . date( 'Y-m-d H:i:s' ) . $auth_key . uniqid( 'wpinv', true ) ) );  // Unique key
2042
+    public function generate_key($string = '') {
2043
+        $auth_key = defined('AUTH_KEY') ? AUTH_KEY : '';
2044
+        return strtolower(md5($string . date('Y-m-d H:i:s') . $auth_key . uniqid('wpinv', true))); // Unique key
2045 2045
     }
2046 2046
     
2047 2047
     public function is_recurring() {
2048
-        if ( empty( $this->cart_details ) ) {
2048
+        if (empty($this->cart_details)) {
2049 2049
             return false;
2050 2050
         }
2051 2051
         
2052 2052
         $has_subscription = false;
2053
-        foreach( $this->cart_details as $cart_item ) {
2054
-            if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] )  ) {
2053
+        foreach ($this->cart_details as $cart_item) {
2054
+            if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) {
2055 2055
                 $has_subscription = true;
2056 2056
                 break;
2057 2057
             }
2058 2058
         }
2059 2059
         
2060
-        if ( count( $this->cart_details ) > 1 ) {
2060
+        if (count($this->cart_details) > 1) {
2061 2061
             $has_subscription = false;
2062 2062
         }
2063 2063
 
2064
-        return apply_filters( 'wpinv_invoice_has_recurring_item', $has_subscription, $this->cart_details );
2064
+        return apply_filters('wpinv_invoice_has_recurring_item', $has_subscription, $this->cart_details);
2065 2065
     }
2066 2066
     
2067 2067
     public function is_free_trial() {
2068 2068
         $is_free_trial = false;
2069 2069
         
2070
-        if ( $this->is_parent() && $item = $this->get_recurring( true ) ) {
2071
-            if ( !empty( $item ) && $item->has_free_trial() ) {
2070
+        if ($this->is_parent() && $item = $this->get_recurring(true)) {
2071
+            if (!empty($item) && $item->has_free_trial()) {
2072 2072
                 $is_free_trial = true;
2073 2073
             }
2074 2074
         }
2075 2075
 
2076
-        return apply_filters( 'wpinv_invoice_is_free_trial', $is_free_trial, $this->cart_details );
2076
+        return apply_filters('wpinv_invoice_is_free_trial', $is_free_trial, $this->cart_details);
2077 2077
     }
2078 2078
     
2079 2079
     public function is_initial_free() {
2080 2080
         $is_initial_free = false;
2081 2081
         
2082
-        if ( ! ( (float)wpinv_round_amount( $this->get_total() ) > 0 ) && $this->is_parent() && $this->is_recurring() && ! $this->is_free_trial() && ! $this->is_free() ) {
2082
+        if (!((float) wpinv_round_amount($this->get_total()) > 0) && $this->is_parent() && $this->is_recurring() && !$this->is_free_trial() && !$this->is_free()) {
2083 2083
             $is_initial_free = true;
2084 2084
         }
2085 2085
 
2086
-        return apply_filters( 'wpinv_invoice_is_initial_free', $is_initial_free, $this->cart_details );
2086
+        return apply_filters('wpinv_invoice_is_initial_free', $is_initial_free, $this->cart_details);
2087 2087
     }
2088 2088
     
2089
-    public function get_recurring( $object = false ) {
2089
+    public function get_recurring($object = false) {
2090 2090
         $item = NULL;
2091 2091
         
2092
-        if ( empty( $this->cart_details ) ) {
2092
+        if (empty($this->cart_details)) {
2093 2093
             return $item;
2094 2094
         }
2095 2095
         
2096
-        foreach( $this->cart_details as $cart_item ) {
2097
-            if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] )  ) {
2096
+        foreach ($this->cart_details as $cart_item) {
2097
+            if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) {
2098 2098
                 $item = $cart_item['id'];
2099 2099
                 break;
2100 2100
             }
2101 2101
         }
2102 2102
         
2103
-        if ( $object ) {
2104
-            $item = $item ? new WPInv_Item( $item ) : NULL;
2103
+        if ($object) {
2104
+            $item = $item ? new WPInv_Item($item) : NULL;
2105 2105
             
2106
-            apply_filters( 'wpinv_invoice_get_recurring_item', $item, $this );
2106
+            apply_filters('wpinv_invoice_get_recurring_item', $item, $this);
2107 2107
         }
2108 2108
 
2109
-        return apply_filters( 'wpinv_invoice_get_recurring_item_id', $item, $this );
2109
+        return apply_filters('wpinv_invoice_get_recurring_item_id', $item, $this);
2110 2110
     }
2111 2111
     
2112 2112
     public function get_subscription_name() {
2113
-        $item = $this->get_recurring( true );
2113
+        $item = $this->get_recurring(true);
2114 2114
         
2115
-        if ( empty( $item ) ) {
2115
+        if (empty($item)) {
2116 2116
             return NULL;
2117 2117
         }
2118 2118
         
2119
-        if ( !($name = $item->get_name()) ) {
2119
+        if (!($name = $item->get_name())) {
2120 2120
             $name = $item->post_name;
2121 2121
         }
2122 2122
 
2123
-        return apply_filters( 'wpinv_invoice_get_subscription_name', $name, $this );
2123
+        return apply_filters('wpinv_invoice_get_subscription_name', $name, $this);
2124 2124
     }
2125 2125
     
2126 2126
     public function get_subscription_id() {
2127
-        $subscription_id = $this->get_meta( '_wpinv_subscr_profile_id', true );
2127
+        $subscription_id = $this->get_meta('_wpinv_subscr_profile_id', true);
2128 2128
         
2129
-        if ( empty( $subscription_id ) && !empty( $this->parent_invoice ) ) {
2130
-            $parent_invoice = wpinv_get_invoice( $this->parent_invoice );
2129
+        if (empty($subscription_id) && !empty($this->parent_invoice)) {
2130
+            $parent_invoice = wpinv_get_invoice($this->parent_invoice);
2131 2131
             
2132
-            $subscription_id = $parent_invoice->get_meta( '_wpinv_subscr_profile_id', true );
2132
+            $subscription_id = $parent_invoice->get_meta('_wpinv_subscr_profile_id', true);
2133 2133
         }
2134 2134
         
2135 2135
         return $subscription_id;
2136 2136
     }
2137 2137
     
2138 2138
     public function is_parent() {
2139
-        $is_parent = empty( $this->parent_invoice ) ? true : false;
2139
+        $is_parent = empty($this->parent_invoice) ? true : false;
2140 2140
 
2141
-        return apply_filters( 'wpinv_invoice_is_parent', $is_parent, $this );
2141
+        return apply_filters('wpinv_invoice_is_parent', $is_parent, $this);
2142 2142
     }
2143 2143
     
2144 2144
     public function is_renewal() {
2145 2145
         $is_renewal = $this->parent_invoice && $this->parent_invoice != $this->ID ? true : false;
2146 2146
 
2147
-        return apply_filters( 'wpinv_invoice_is_renewal', $is_renewal, $this );
2147
+        return apply_filters('wpinv_invoice_is_renewal', $is_renewal, $this);
2148 2148
     }
2149 2149
     
2150 2150
     public function get_parent_payment() {
2151 2151
         $parent_payment = NULL;
2152 2152
         
2153
-        if ( $this->is_renewal() ) {
2154
-            $parent_payment = wpinv_get_invoice( $this->parent_invoice );
2153
+        if ($this->is_renewal()) {
2154
+            $parent_payment = wpinv_get_invoice($this->parent_invoice);
2155 2155
         }
2156 2156
         
2157 2157
         return $parent_payment;
2158 2158
     }
2159 2159
     
2160 2160
     public function is_paid() {
2161
-        $is_paid = $this->has_status( array( 'publish', 'wpi-processing', 'wpi-renewal' ) );
2161
+        $is_paid = $this->has_status(array('publish', 'wpi-processing', 'wpi-renewal'));
2162 2162
 
2163
-        return apply_filters( 'wpinv_invoice_is_paid', $is_paid, $this );
2163
+        return apply_filters('wpinv_invoice_is_paid', $is_paid, $this);
2164 2164
     }
2165 2165
 
2166 2166
     /**
@@ -2173,23 +2173,23 @@  discard block
 block discarded – undo
2173 2173
     }
2174 2174
     
2175 2175
     public function is_refunded() {
2176
-        $is_refunded = $this->has_status( array( 'wpi-refunded' ) );
2176
+        $is_refunded = $this->has_status(array('wpi-refunded'));
2177 2177
 
2178
-        return apply_filters( 'wpinv_invoice_is_refunded', $is_refunded, $this );
2178
+        return apply_filters('wpinv_invoice_is_refunded', $is_refunded, $this);
2179 2179
     }
2180 2180
     
2181 2181
     public function is_free() {
2182 2182
         $is_free = false;
2183 2183
         
2184
-        if ( !( (float)wpinv_round_amount( $this->get_total() ) > 0 ) ) {
2185
-            if ( $this->is_parent() && $this->is_recurring() ) {
2186
-                $is_free = (float)wpinv_round_amount( $this->get_recurring_details( 'total' ) ) > 0 ? false : true;
2184
+        if (!((float) wpinv_round_amount($this->get_total()) > 0)) {
2185
+            if ($this->is_parent() && $this->is_recurring()) {
2186
+                $is_free = (float) wpinv_round_amount($this->get_recurring_details('total')) > 0 ? false : true;
2187 2187
             } else {
2188 2188
                 $is_free = true;
2189 2189
             }
2190 2190
         }
2191 2191
         
2192
-        return apply_filters( 'wpinv_invoice_is_free', $is_free, $this );
2192
+        return apply_filters('wpinv_invoice_is_free', $is_free, $this);
2193 2193
     }
2194 2194
     
2195 2195
     public function has_vat() {
@@ -2197,41 +2197,41 @@  discard block
 block discarded – undo
2197 2197
         
2198 2198
         $requires_vat = false;
2199 2199
         
2200
-        if ( $this->country ) {
2200
+        if ($this->country) {
2201 2201
             $wpi_country        = $this->country;
2202 2202
             
2203
-            $requires_vat       = $wpinv_euvat->requires_vat( $requires_vat, $this->get_user_id(), $wpinv_euvat->invoice_has_digital_rule( $this ) );
2203
+            $requires_vat       = $wpinv_euvat->requires_vat($requires_vat, $this->get_user_id(), $wpinv_euvat->invoice_has_digital_rule($this));
2204 2204
         }
2205 2205
         
2206
-        return apply_filters( 'wpinv_invoice_has_vat', $requires_vat, $this );
2206
+        return apply_filters('wpinv_invoice_has_vat', $requires_vat, $this);
2207 2207
     }
2208 2208
     
2209 2209
     public function refresh_item_ids() {
2210 2210
         $item_ids = array();
2211 2211
         
2212
-        if ( !empty( $this->cart_details ) ) {
2213
-            foreach ( $this->cart_details as $key => $item ) {
2214
-                if ( !empty( $item['id'] ) ) {
2212
+        if (!empty($this->cart_details)) {
2213
+            foreach ($this->cart_details as $key => $item) {
2214
+                if (!empty($item['id'])) {
2215 2215
                     $item_ids[] = $item['id'];
2216 2216
                 }
2217 2217
             }
2218 2218
         }
2219 2219
         
2220
-        $item_ids = !empty( $item_ids ) ? implode( ',', array_unique( $item_ids ) ) : '';
2220
+        $item_ids = !empty($item_ids) ? implode(',', array_unique($item_ids)) : '';
2221 2221
         
2222
-        update_post_meta( $this->ID, '_wpinv_item_ids', $item_ids );
2222
+        update_post_meta($this->ID, '_wpinv_item_ids', $item_ids);
2223 2223
     }
2224 2224
     
2225
-    public function get_invoice_quote_type( $post_id ) {
2226
-        if ( empty( $post_id ) ) {
2225
+    public function get_invoice_quote_type($post_id) {
2226
+        if (empty($post_id)) {
2227 2227
             return '';
2228 2228
         }
2229 2229
 
2230
-        $type = get_post_type( $post_id );
2230
+        $type = get_post_type($post_id);
2231 2231
 
2232
-        if ( 'wpi_invoice' === $type ) {
2232
+        if ('wpi_invoice' === $type) {
2233 2233
             $post_type = __('Invoice', 'invoicing');
2234
-        } else{
2234
+        } else {
2235 2235
             $post_type = __('Quote', 'invoicing');
2236 2236
         }
2237 2237
 
Please login to merge, or discard this patch.