Passed
Pull Request — master (#270)
by Brian
08:38
created
includes/class-wpinv-discount.php 2 patches
Indentation   +668 added lines, -668 removed lines patch added patch discarded remove patch
@@ -33,173 +33,173 @@  discard block
 block discarded – undo
33 33
  */
34 34
 class WPInv_Discount {
35 35
 	
36
-	/**
37
-	 * Discount ID.
38
-	 *
39
-	 * @since 1.0.15
40
-	 * @var integer|null
41
-	 */
42
-	public $ID = null;
43
-
44
-	/**
45
-	 * Old discount status.
46
-	 *
47
-	 * @since 1.0.15
48
-	 * @var string
49
-	 */
50
-	public $old_status = 'draft';
36
+    /**
37
+     * Discount ID.
38
+     *
39
+     * @since 1.0.15
40
+     * @var integer|null
41
+     */
42
+    public $ID = null;
43
+
44
+    /**
45
+     * Old discount status.
46
+     *
47
+     * @since 1.0.15
48
+     * @var string
49
+     */
50
+    public $old_status = 'draft';
51 51
 	
52
-	/**
53
-	 * Data array.
54
-	 *
55
-	 * @since 1.0.15
56
-	 * @var array
57
-	 */
58
-	protected $data = array();
59
-
60
-	/**
61
-	 * Discount constructor.
62
-	 *
63
-	 * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.
64
-	 * @since 1.0.15
65
-	 */
66
-	public function __construct( $discount = array() ) {
52
+    /**
53
+     * Data array.
54
+     *
55
+     * @since 1.0.15
56
+     * @var array
57
+     */
58
+    protected $data = array();
59
+
60
+    /**
61
+     * Discount constructor.
62
+     *
63
+     * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.
64
+     * @since 1.0.15
65
+     */
66
+    public function __construct( $discount = array() ) {
67 67
         
68 68
         // If the discount is an instance of this class...
69
-		if ( $discount instanceof WPInv_Discount ) {
70
-			$this->init( $discount->data );
71
-			return;
69
+        if ( $discount instanceof WPInv_Discount ) {
70
+            $this->init( $discount->data );
71
+            return;
72 72
         }
73 73
         
74 74
         // If the discount is an array of discount details...
75 75
         if ( is_array( $discount ) ) {
76
-			$this->init( $discount );
77
-			return;
78
-		}
76
+            $this->init( $discount );
77
+            return;
78
+        }
79 79
 		
80
-		// Try fetching the discount by its post id.
81
-		$data = false;
80
+        // Try fetching the discount by its post id.
81
+        $data = false;
82 82
 		
83
-		if ( ! empty( $discount ) && is_numeric( $discount ) ) {
84
-			$discount = absint( $discount );
85
-			$data = self::get_data_by( 'id', $discount );
86
-		}
87
-
88
-		if ( is_array( $data ) ) {
89
-			$this->init( $data );
90
-			return;
91
-		}
83
+        if ( ! empty( $discount ) && is_numeric( $discount ) ) {
84
+            $discount = absint( $discount );
85
+            $data = self::get_data_by( 'id', $discount );
86
+        }
87
+
88
+        if ( is_array( $data ) ) {
89
+            $this->init( $data );
90
+            return;
91
+        }
92 92
 		
93
-		// Try fetching the discount by its discount code.
94
-		if ( ! empty( $discount ) && is_scalar( $discount ) ) {
95
-			$data = self::get_data_by( 'discount_code', $discount );
96
-		}
97
-
98
-		if ( is_array( $data ) ) {
99
-			$this->init( $data );
100
-			return;
101
-		} 
93
+        // Try fetching the discount by its discount code.
94
+        if ( ! empty( $discount ) && is_scalar( $discount ) ) {
95
+            $data = self::get_data_by( 'discount_code', $discount );
96
+        }
97
+
98
+        if ( is_array( $data ) ) {
99
+            $this->init( $data );
100
+            return;
101
+        } 
102 102
 		
103
-		// If we are here then the discount does not exist.
104
-		$this->init( array() );
105
-	}
103
+        // If we are here then the discount does not exist.
104
+        $this->init( array() );
105
+    }
106 106
 	
107
-	/**
108
-	 * Sets up object properties
109
-	 *
110
-	 * @since 1.0.15
111
-	 * @param array $data An array containing the discount's data
112
-	 */
113
-	public function init( $data ) {
114
-		$data       	  = self::sanitize_discount_data( $data );
115
-		$this->data 	  = $data;
116
-		$this->old_status = $data['status'];
117
-		$this->ID   	  = $data['ID'];
118
-	}
107
+    /**
108
+     * Sets up object properties
109
+     *
110
+     * @since 1.0.15
111
+     * @param array $data An array containing the discount's data
112
+     */
113
+    public function init( $data ) {
114
+        $data       	  = self::sanitize_discount_data( $data );
115
+        $this->data 	  = $data;
116
+        $this->old_status = $data['status'];
117
+        $this->ID   	  = $data['ID'];
118
+    }
119 119
 	
120
-	/**
121
-	 * Fetch a discount from the db/cache
122
-	 *
123
-	 *
124
-	 * @static
125
-	 * @param string $field The field to query against: 'ID', 'discount_code'
126
-	 * @param string|int $value The field value
127
-	 * @since 1.0.15
128
-	 * @return array|bool array of discount details on success. False otherwise.
129
-	 */
130
-	public static function get_data_by( $field, $value ) {
131
-
132
-		if ( 'id' == strtolower( $field ) ) {
133
-			// Make sure the value is numeric to avoid casting objects, for example,
134
-			// to int 1.
135
-			if ( ! is_numeric( $value ) )
136
-				return false;
137
-			$value = intval( $value );
138
-			if ( $value < 1 )
139
-				return false;
140
-		}
141
-
142
-		if ( ! $value || ! is_string( $field ) ) {
143
-			return false;
144
-		}
120
+    /**
121
+     * Fetch a discount from the db/cache
122
+     *
123
+     *
124
+     * @static
125
+     * @param string $field The field to query against: 'ID', 'discount_code'
126
+     * @param string|int $value The field value
127
+     * @since 1.0.15
128
+     * @return array|bool array of discount details on success. False otherwise.
129
+     */
130
+    public static function get_data_by( $field, $value ) {
131
+
132
+        if ( 'id' == strtolower( $field ) ) {
133
+            // Make sure the value is numeric to avoid casting objects, for example,
134
+            // to int 1.
135
+            if ( ! is_numeric( $value ) )
136
+                return false;
137
+            $value = intval( $value );
138
+            if ( $value < 1 )
139
+                return false;
140
+        }
141
+
142
+        if ( ! $value || ! is_string( $field ) ) {
143
+            return false;
144
+        }
145 145
 		
146
-		$field = trim( $field );
147
-
148
-		// prepare query args
149
-		switch ( strtolower( $field ) ) {
150
-			case 'id':
151
-				$discount_id = $value;
152
-				$args		 = array( 'include' => array( $value ) );
153
-				break;
154
-			case 'discount_code':
155
-			case 'code':
156
-				$value       = trim( $value );
157
-				$discount_id = wp_cache_get( $value, 'WPInv_Discount_Codes' );
158
-				$args		 = array( 'meta_key' => '_wpi_discount_code', 'meta_value' => $value );
159
-				break;
160
-			case 'name':
161
-				$discount_id = 0;
162
-				$args		 = array( 'name' => trim( $value ) );
163
-				break;
164
-			default:
165
-				$args		 = apply_filters( "wpinv_discount_get_data_by_{$field}_args", null, $value );
166
-				if ( ! is_array( $args ) ) {
167
-					return apply_filters( "wpinv_discount_get_data_by_$field", false, $value );
168
-				}
169
-
170
-		}
171
-
172
-		// Check if there is a cached value.
173
-		if ( ! empty( $discount_id ) && $discount = wp_cache_get( (int) $discount_id, 'WPInv_Discounts' ) ) {
174
-			return $discount;
175
-		}
176
-
177
-		$args = array_merge(
178
-			$args,
179
-			array(
180
-				'post_type'      => 'wpi_discount',
181
-				'posts_per_page' => 1,
182
-				'post_status'    => array( 'publish', 'pending', 'draft', 'expired' )
183
-			)
184
-		);
185
-
186
-		$discount = get_posts( $args );
146
+        $field = trim( $field );
147
+
148
+        // prepare query args
149
+        switch ( strtolower( $field ) ) {
150
+            case 'id':
151
+                $discount_id = $value;
152
+                $args		 = array( 'include' => array( $value ) );
153
+                break;
154
+            case 'discount_code':
155
+            case 'code':
156
+                $value       = trim( $value );
157
+                $discount_id = wp_cache_get( $value, 'WPInv_Discount_Codes' );
158
+                $args		 = array( 'meta_key' => '_wpi_discount_code', 'meta_value' => $value );
159
+                break;
160
+            case 'name':
161
+                $discount_id = 0;
162
+                $args		 = array( 'name' => trim( $value ) );
163
+                break;
164
+            default:
165
+                $args		 = apply_filters( "wpinv_discount_get_data_by_{$field}_args", null, $value );
166
+                if ( ! is_array( $args ) ) {
167
+                    return apply_filters( "wpinv_discount_get_data_by_$field", false, $value );
168
+                }
169
+
170
+        }
171
+
172
+        // Check if there is a cached value.
173
+        if ( ! empty( $discount_id ) && $discount = wp_cache_get( (int) $discount_id, 'WPInv_Discounts' ) ) {
174
+            return $discount;
175
+        }
176
+
177
+        $args = array_merge(
178
+            $args,
179
+            array(
180
+                'post_type'      => 'wpi_discount',
181
+                'posts_per_page' => 1,
182
+                'post_status'    => array( 'publish', 'pending', 'draft', 'expired' )
183
+            )
184
+        );
185
+
186
+        $discount = get_posts( $args );
187 187
 				
188
-		if( empty( $discount ) ) {
189
-			return false;
190
-		}
188
+        if( empty( $discount ) ) {
189
+            return false;
190
+        }
191 191
 
192
-		$discount = $discount[0];
192
+        $discount = $discount[0];
193 193
 		
194
-		// Prepare the return data.
195
-		$return = array(
194
+        // Prepare the return data.
195
+        $return = array(
196 196
             'ID'                          => $discount->ID,
197 197
             'code'                        => get_post_meta( $discount->ID, '_wpi_discount_code', true ),
198 198
             'amount'                      => get_post_meta( $discount->ID, '_wpi_discount_amount', true ),
199 199
             'date_created'                => $discount->post_date,
200
-			'date_modified'               => $discount->post_modified,
201
-			'status'               		  => $discount->post_status,
202
-			'start'                  	  => get_post_meta( $discount->ID, '_wpi_discount_start', true ),
200
+            'date_modified'               => $discount->post_modified,
201
+            'status'               		  => $discount->post_status,
202
+            'start'                  	  => get_post_meta( $discount->ID, '_wpi_discount_start', true ),
203 203
             'expiration'                  => get_post_meta( $discount->ID, '_wpi_discount_expiration', true ),
204 204
             'type'               		  => get_post_meta( $discount->ID, '_wpi_discount_type', true ),
205 205
             'description'                 => $discount->post_excerpt,
@@ -213,38 +213,38 @@  discard block
 block discarded – undo
213 213
             'max_total'                   => get_post_meta( $discount->ID, '_wpi_discount_max_total', true ),
214 214
         );
215 215
 		
216
-		$return = self::sanitize_discount_data( $return );
217
-		$return = apply_filters( 'wpinv_discount_properties', $return );
216
+        $return = self::sanitize_discount_data( $return );
217
+        $return = apply_filters( 'wpinv_discount_properties', $return );
218 218
 
219
-		// Update the cache with our data
220
-		wp_cache_add( $discount->ID, $return, 'WPInv_Discounts' );
221
-		wp_cache_add( $return['code'], $discount->ID, 'WPInv_Discount_Codes' );
219
+        // Update the cache with our data
220
+        wp_cache_add( $discount->ID, $return, 'WPInv_Discounts' );
221
+        wp_cache_add( $return['code'], $discount->ID, 'WPInv_Discount_Codes' );
222 222
 
223
-		return $return;
224
-	}
223
+        return $return;
224
+    }
225 225
 	
226
-	/**
227
-	 * Sanitizes discount data
228
-	 *
229
-	 * @static
230
-	 * @since 1.0.15
231
-	 * @access public
232
-	 *
233
-	 * @return array the sanitized data
234
-	 */
235
-	public static function sanitize_discount_data( $data ) {
226
+    /**
227
+     * Sanitizes discount data
228
+     *
229
+     * @static
230
+     * @since 1.0.15
231
+     * @access public
232
+     *
233
+     * @return array the sanitized data
234
+     */
235
+    public static function sanitize_discount_data( $data ) {
236 236
 		
237
-		$allowed_discount_types = array_keys( wpinv_get_discount_types() );
237
+        $allowed_discount_types = array_keys( wpinv_get_discount_types() );
238 238
 		
239
-		$return = array(
239
+        $return = array(
240 240
             'ID'                          => null,
241 241
             'code'                        => '',
242 242
             'amount'                      => 0,
243 243
             'date_created'                => current_time('mysql'),
244 244
             'date_modified'               => current_time('mysql'),
245
-			'expiration'                  => null,
246
-			'start'                  	  => current_time('mysql'),
247
-			'status'                  	  => 'draft',
245
+            'expiration'                  => null,
246
+            'start'                  	  => current_time('mysql'),
247
+            'status'                  	  => 'draft',
248 248
             'type'               		  => 'percent',
249 249
             'description'                 => '',
250 250
             'uses'                        => 0,
@@ -254,426 +254,426 @@  discard block
 block discarded – undo
254 254
             'max_uses'                    => 0,
255 255
             'is_recurring'                => false,
256 256
             'min_total'                   => '',
257
-			'max_total'              	  => '',
258
-		);
257
+            'max_total'              	  => '',
258
+        );
259 259
 		
260 260
 				
261
-		// Arrays only please.
262
-		if ( ! is_array( $data ) ) {
261
+        // Arrays only please.
262
+        if ( ! is_array( $data ) ) {
263 263
             return $return;
264 264
         }
265 265
 
266
-		// If an id is provided, ensure it is a valid discount.
266
+        // If an id is provided, ensure it is a valid discount.
267 267
         if ( ! empty( $data['ID'] ) && ( ! is_numeric( $data['ID'] ) || 'wpi_discount' !== get_post_type( $data['ID'] ) ) ) {
268 268
             return $return;
269
-		}
269
+        }
270 270
 
271 271
         $return = array_merge( $return, $data );
272 272
 
273 273
         // Sanitize some keys.
274 274
         $return['amount']         = wpinv_sanitize_amount( $return['amount'] );
275
-		$return['is_single_use']  = (bool) $return['is_single_use'];
276
-		$return['is_recurring']   = (bool) $return['is_recurring'];
277
-		$return['uses']	          = (int) $return['uses'];
278
-		$return['max_uses']	      = (int) $return['max_uses'];
279
-		$return['min_total'] 	  = wpinv_sanitize_amount( $return['min_total'] );
275
+        $return['is_single_use']  = (bool) $return['is_single_use'];
276
+        $return['is_recurring']   = (bool) $return['is_recurring'];
277
+        $return['uses']	          = (int) $return['uses'];
278
+        $return['max_uses']	      = (int) $return['max_uses'];
279
+        $return['min_total'] 	  = wpinv_sanitize_amount( $return['min_total'] );
280 280
         $return['max_total'] 	  = wpinv_sanitize_amount( $return['max_total'] );
281 281
 
282
-		// Trim all values.
283
-		$return = wpinv_clean( $return );
282
+        // Trim all values.
283
+        $return = wpinv_clean( $return );
284 284
 		
285
-		// Ensure the discount type is supported.
285
+        // Ensure the discount type is supported.
286 286
         if ( ! in_array( $return['type'], $allowed_discount_types, true ) ) {
287 287
             $return['type'] = 'percent';
288
-		}
289
-		$return['type_name'] = wpinv_get_discount_type_name( $return['type'] );
288
+        }
289
+        $return['type_name'] = wpinv_get_discount_type_name( $return['type'] );
290 290
 		
291
-		// Do not offer more than a 100% discount.
292
-		if ( $return['type'] == 'percent' && (float) $return['amount'] > 100 ) {
293
-			$return['amount'] = 100;
294
-		}
295
-
296
-		// Format dates.
297
-		foreach( wpinv_parse_list( 'date_created date_modified expiration start') as $prop ) {
298
-			if( ! empty( $return[$prop] ) ) {
299
-				$return[$prop]      = date_i18n( 'Y-m-d H:i:s', strtotime( $return[$prop] ) );
300
-			}
301
-		}
302
-
303
-		// Formart items.
304
-		foreach( array( 'excluded_items', 'items' ) as $prop ) {
305
-
306
-			if( ! empty( $return[$prop] ) ) {
307
-				// Ensure that the property is an array of non-empty integers.
308
-				$return[$prop]      = array_filter( array_map( 'intval', wpinv_parse_list( $return[$prop] ) ) );
309
-			} else {
310
-				$return[$prop]      = array();
311
-			}
312
-
313
-		}
291
+        // Do not offer more than a 100% discount.
292
+        if ( $return['type'] == 'percent' && (float) $return['amount'] > 100 ) {
293
+            $return['amount'] = 100;
294
+        }
295
+
296
+        // Format dates.
297
+        foreach( wpinv_parse_list( 'date_created date_modified expiration start') as $prop ) {
298
+            if( ! empty( $return[$prop] ) ) {
299
+                $return[$prop]      = date_i18n( 'Y-m-d H:i:s', strtotime( $return[$prop] ) );
300
+            }
301
+        }
302
+
303
+        // Formart items.
304
+        foreach( array( 'excluded_items', 'items' ) as $prop ) {
305
+
306
+            if( ! empty( $return[$prop] ) ) {
307
+                // Ensure that the property is an array of non-empty integers.
308
+                $return[$prop]      = array_filter( array_map( 'intval', wpinv_parse_list( $return[$prop] ) ) );
309
+            } else {
310
+                $return[$prop]      = array();
311
+            }
312
+
313
+        }
314 314
 		
315
-		return apply_filters( 'wpinv_sanitize_discount_data', $return, $data );
316
-	}
315
+        return apply_filters( 'wpinv_sanitize_discount_data', $return, $data );
316
+    }
317 317
 	
318
-	/**
319
-	 * Magic method for checking the existence of a certain custom field.
320
-	 *
321
-	 * @since 1.0.15
322
-	 * @access public
323
-	 *
324
-	 * @return bool Whether the given discount field is set.
325
-	 */
326
-	public function __isset( $key ){
327
-		return isset( $this->data[$key] ) || method_exists( $this, "get_$key");
328
-	}
318
+    /**
319
+     * Magic method for checking the existence of a certain custom field.
320
+     *
321
+     * @since 1.0.15
322
+     * @access public
323
+     *
324
+     * @return bool Whether the given discount field is set.
325
+     */
326
+    public function __isset( $key ){
327
+        return isset( $this->data[$key] ) || method_exists( $this, "get_$key");
328
+    }
329 329
 	
330
-	/**
331
-	 * Magic method for accessing discount properties.
332
-	 *
333
-	 * @since 1.0.15
334
-	 * @access public
335
-	 *
336
-	 * @param string $key Discount data to retrieve
337
-	 * @return mixed Value of the given discount property (if set).
338
-	 */
339
-	public function __get( $key ) {
340
-		return $this->get( $key );
341
-	}
342
-
343
-	/**
344
-	 * Magic method for accessing discount properties.
345
-	 *
346
-	 * @since 1.0.15
347
-	 * @access public
348
-	 *
349
-	 * @param string $key Discount data to retrieve
350
-	 * @return mixed Value of the given discount property (if set).
351
-	 */
352
-	public function get( $key ) {
330
+    /**
331
+     * Magic method for accessing discount properties.
332
+     *
333
+     * @since 1.0.15
334
+     * @access public
335
+     *
336
+     * @param string $key Discount data to retrieve
337
+     * @return mixed Value of the given discount property (if set).
338
+     */
339
+    public function __get( $key ) {
340
+        return $this->get( $key );
341
+    }
342
+
343
+    /**
344
+     * Magic method for accessing discount properties.
345
+     *
346
+     * @since 1.0.15
347
+     * @access public
348
+     *
349
+     * @param string $key Discount data to retrieve
350
+     * @return mixed Value of the given discount property (if set).
351
+     */
352
+    public function get( $key ) {
353 353
 		
354
-		if ( $key == 'id' ) {
355
-			$key = 'ID';
356
-		}
354
+        if ( $key == 'id' ) {
355
+            $key = 'ID';
356
+        }
357 357
 		
358
-		if( method_exists( $this, "get_$key") ) {
359
-			$value 	= call_user_func( array( $this, "get_$key" ) );
360
-		} else if( isset( $this->data[$key] ) ) {
361
-			$value 	= $this->data[$key];
362
-		} else {
363
-			$value = null;
364
-		}
358
+        if( method_exists( $this, "get_$key") ) {
359
+            $value 	= call_user_func( array( $this, "get_$key" ) );
360
+        } else if( isset( $this->data[$key] ) ) {
361
+            $value 	= $this->data[$key];
362
+        } else {
363
+            $value = null;
364
+        }
365 365
 		
366
-		/**
367
-		 * Filters a discount's property value.
368
-		 * 
369
-		 * The dynamic part ($key) can be any property name e.g items, code, type etc.
370
-		 * 
371
-		 * @param mixed          $value    The property's value.
372
-		 * @param int            $ID       The discount's ID.
373
-		 * @param WPInv_Discount $discount The discount object.
374
-		 * @param string         $code     The discount's discount code.
375
-		 * @param array          $data     The discount's data array.
376
-		 */
377
-		return apply_filters( "wpinv_get_discount_{$key}", $value, $this->ID, $this, $this->data['code'], $this->data );
378
-
379
-	}
366
+        /**
367
+         * Filters a discount's property value.
368
+         * 
369
+         * The dynamic part ($key) can be any property name e.g items, code, type etc.
370
+         * 
371
+         * @param mixed          $value    The property's value.
372
+         * @param int            $ID       The discount's ID.
373
+         * @param WPInv_Discount $discount The discount object.
374
+         * @param string         $code     The discount's discount code.
375
+         * @param array          $data     The discount's data array.
376
+         */
377
+        return apply_filters( "wpinv_get_discount_{$key}", $value, $this->ID, $this, $this->data['code'], $this->data );
378
+
379
+    }
380 380
 	
381
-	/**
382
-	 * Magic method for setting discount fields.
383
-	 *
384
-	 * This method does not update custom fields in the database.
385
-	 *
386
-	 * @since 1.0.15
387
-	 * @access public
388
-	 *
389
-	 */
390
-	public function __set( $key, $value ) {
381
+    /**
382
+     * Magic method for setting discount fields.
383
+     *
384
+     * This method does not update custom fields in the database.
385
+     *
386
+     * @since 1.0.15
387
+     * @access public
388
+     *
389
+     */
390
+    public function __set( $key, $value ) {
391 391
 		
392
-		if ( 'id' == strtolower( $key ) ) {
392
+        if ( 'id' == strtolower( $key ) ) {
393 393
 			
394
-			$this->ID = $value;
395
-			$this->data['ID'] = $value;
396
-			return;
394
+            $this->ID = $value;
395
+            $this->data['ID'] = $value;
396
+            return;
397 397
 			
398
-		}
398
+        }
399 399
 		
400
-		/**
401
-		 * Filters a discount's property value before it is saved.
402
-		 * 
403
-		 * 
404
-		 * 
405
-		 * The dynamic part ($key) can be any property name e.g items, code, type etc.
406
-		 * 
407
-		 * @param mixed          $value    The property's value.
408
-		 * @param int            $ID       The discount's ID.
409
-		 * @param WPInv_Discount $discount The discount object.
410
-		 * @param string         $code     The discount's discount code.
411
-		 * @param array          $data     The discount's data array.
412
-		 */
413
-		$value = apply_filters( "wpinv_set_discount_{$key}", $value, $this->ID, $this, $this->code, $this->data );
414
-
415
-		if( method_exists( $this, "set_$key") ) {
416
-			call_user_func( array( $this, "set_$key" ), $value );
417
-		} else {
418
-			$this->data[$key] = $value;
419
-		}
400
+        /**
401
+         * Filters a discount's property value before it is saved.
402
+         * 
403
+         * 
404
+         * 
405
+         * The dynamic part ($key) can be any property name e.g items, code, type etc.
406
+         * 
407
+         * @param mixed          $value    The property's value.
408
+         * @param int            $ID       The discount's ID.
409
+         * @param WPInv_Discount $discount The discount object.
410
+         * @param string         $code     The discount's discount code.
411
+         * @param array          $data     The discount's data array.
412
+         */
413
+        $value = apply_filters( "wpinv_set_discount_{$key}", $value, $this->ID, $this, $this->code, $this->data );
414
+
415
+        if( method_exists( $this, "set_$key") ) {
416
+            call_user_func( array( $this, "set_$key" ), $value );
417
+        } else {
418
+            $this->data[$key] = $value;
419
+        }
420 420
 		
421
-	}
421
+    }
422 422
 	
423
-	/**
424
-	 * Saves (or updates) a discount to the database
425
-	 *
426
-	 * @since 1.0.15
427
-	 * @access public
428
-	 * @return bool
429
-	 *
430
-	 */
431
-	public function save(){
423
+    /**
424
+     * Saves (or updates) a discount to the database
425
+     *
426
+     * @since 1.0.15
427
+     * @access public
428
+     * @return bool
429
+     *
430
+     */
431
+    public function save(){
432 432
 		
433
-		$data = self::sanitize_discount_data( $this->data );
433
+        $data = self::sanitize_discount_data( $this->data );
434 434
 
435
-		// Should we create a new post?
436
-		if( ! $data[ 'ID' ] ) {
435
+        // Should we create a new post?
436
+        if( ! $data[ 'ID' ] ) {
437 437
 
438
-			$id = wp_insert_post( array(
439
-				'post_status'           => $data['status'],
440
-				'post_type'             => 'wpi_discount',
441
-				'post_excerpt'          => $data['description'],
442
-			) );
438
+            $id = wp_insert_post( array(
439
+                'post_status'           => $data['status'],
440
+                'post_type'             => 'wpi_discount',
441
+                'post_excerpt'          => $data['description'],
442
+            ) );
443 443
 
444
-			if( empty( $id ) ) {
445
-				return false;
446
-			}
444
+            if( empty( $id ) ) {
445
+                return false;
446
+            }
447 447
 
448
-			$data[ 'ID' ] = (int) $id;
449
-			$this->ID = $data[ 'ID' ];
450
-			$this->data['ID'] = $data[ 'ID' ];
448
+            $data[ 'ID' ] = (int) $id;
449
+            $this->ID = $data[ 'ID' ];
450
+            $this->data['ID'] = $data[ 'ID' ];
451 451
 
452
-		} else {
453
-			$this->update_status( $data['status'] );
454
-		}
452
+        } else {
453
+            $this->update_status( $data['status'] );
454
+        }
455 455
 
456
-		$meta = apply_filters( 'wpinv_update_discount', $data, $this->ID, $this );
456
+        $meta = apply_filters( 'wpinv_update_discount', $data, $this->ID, $this );
457 457
 
458
-		do_action( 'wpinv_pre_update_discount', $meta, $this->ID, $this );
458
+        do_action( 'wpinv_pre_update_discount', $meta, $this->ID, $this );
459 459
 
460
-		foreach( wpinv_parse_list( 'ID date_created date_modified status description type_name' ) as $prop ) {
461
-			if ( isset( $meta[$prop] ) ) {
462
-				unset( $meta[$prop] );
463
-			}
464
-		}
460
+        foreach( wpinv_parse_list( 'ID date_created date_modified status description type_name' ) as $prop ) {
461
+            if ( isset( $meta[$prop] ) ) {
462
+                unset( $meta[$prop] );
463
+            }
464
+        }
465 465
 
466
-		if( isset( $meta['uses'] ) && empty( $meta['uses'] ) ) {
467
-			unset( $meta['uses'] );
468
-		}
466
+        if( isset( $meta['uses'] ) && empty( $meta['uses'] ) ) {
467
+            unset( $meta['uses'] );
468
+        }
469 469
 
470
-		// Save the metadata.
471
-		foreach( $meta as $key => $value ) {
472
-			update_post_meta( $this->ID, "_wpi_discount_$key", $value );
473
-		}
470
+        // Save the metadata.
471
+        foreach( $meta as $key => $value ) {
472
+            update_post_meta( $this->ID, "_wpi_discount_$key", $value );
473
+        }
474 474
 
475
-		$this->refresh();
475
+        $this->refresh();
476 476
 
477
-		do_action( 'wpinv_post_update_discount', $meta, $this->ID );
477
+        do_action( 'wpinv_post_update_discount', $meta, $this->ID );
478 478
 
479
-		return true;		
480
-	}
479
+        return true;		
480
+    }
481 481
 
482
-	/**
483
-	 * Refreshes the discount data.
484
-	 *
485
-	 * @since 1.0.15
486
-	 * @access public
487
-	 * @return bool
488
-	 *
489
-	 */
490
-	public function refresh(){
482
+    /**
483
+     * Refreshes the discount data.
484
+     *
485
+     * @since 1.0.15
486
+     * @access public
487
+     * @return bool
488
+     *
489
+     */
490
+    public function refresh(){
491 491
 
492
-		// Empty the cache for this discount.
493
-		wp_cache_delete( $this->ID, 'WPInv_Discounts' );
494
-		wp_cache_delete( $this->get( 'code' ), 'WPInv_Discount_Codes' );
492
+        // Empty the cache for this discount.
493
+        wp_cache_delete( $this->ID, 'WPInv_Discounts' );
494
+        wp_cache_delete( $this->get( 'code' ), 'WPInv_Discount_Codes' );
495 495
 
496
-		$data = self::get_data_by( 'id', $this->ID );
497
-		if( is_array( $data ) ) {
498
-			$this->init( $data );
499
-		} else {
500
-			$this->init( array() );
501
-		}
496
+        $data = self::get_data_by( 'id', $this->ID );
497
+        if( is_array( $data ) ) {
498
+            $this->init( $data );
499
+        } else {
500
+            $this->init( array() );
501
+        }
502 502
 
503
-	}
503
+    }
504 504
 
505
-	/**
506
-	 * Saves (or updates) a discount to the database
507
-	 *
508
-	 * @since 1.0.15
509
-	 * @access public
510
-	 * @return bool
511
-	 *
512
-	 */
513
-	public function update_status( $status = 'publish' ){
505
+    /**
506
+     * Saves (or updates) a discount to the database
507
+     *
508
+     * @since 1.0.15
509
+     * @access public
510
+     * @return bool
511
+     *
512
+     */
513
+    public function update_status( $status = 'publish' ){
514 514
 
515 515
 
516
-		if ( $this->exists() && $this->old_status != $status ) {
516
+        if ( $this->exists() && $this->old_status != $status ) {
517 517
 
518
-			do_action( 'wpinv_pre_update_discount_status', $this->ID, $this->old_status, $status );
519
-        	$updated = wp_update_post( array( 'ID' => $this->ID, 'post_status' => $status ) );
520
-			do_action( 'wpinv_post_update_discount_status', $this->ID, $this->old_status, $status );
518
+            do_action( 'wpinv_pre_update_discount_status', $this->ID, $this->old_status, $status );
519
+            $updated = wp_update_post( array( 'ID' => $this->ID, 'post_status' => $status ) );
520
+            do_action( 'wpinv_post_update_discount_status', $this->ID, $this->old_status, $status );
521 521
 
522
-			$this->refresh();
522
+            $this->refresh();
523 523
 
524
-			return $updated !== 0;
524
+            return $updated !== 0;
525 525
 			
526
-		}
526
+        }
527 527
 
528
-		return false;		
529
-	}
528
+        return false;		
529
+    }
530 530
 	
531 531
 	
532
-	/**
533
-	 * Checks whether a discount exists in the database or not
534
-	 * 
535
-	 * @since 1.0.15
536
-	 */
537
-	public function exists(){
538
-		return ! empty( $this->ID );
539
-	}
532
+    /**
533
+     * Checks whether a discount exists in the database or not
534
+     * 
535
+     * @since 1.0.15
536
+     */
537
+    public function exists(){
538
+        return ! empty( $this->ID );
539
+    }
540 540
 	
541
-	// Boolean methods
541
+    // Boolean methods
542 542
 	
543
-	/**
544
-	 * Checks the discount type.
545
-	 * 
546
-	 * 
547
-	 * @param  string $type the discount type to check against
548
-	 * @since 1.0.15
549
-	 * @return bool
550
-	 */
551
-	public function is_type( $type ) {
552
-		return $this->type == $type;
553
-	}
543
+    /**
544
+     * Checks the discount type.
545
+     * 
546
+     * 
547
+     * @param  string $type the discount type to check against
548
+     * @since 1.0.15
549
+     * @return bool
550
+     */
551
+    public function is_type( $type ) {
552
+        return $this->type == $type;
553
+    }
554 554
 	
555
-	/**
556
-	 * Checks whether the discount is published or not
557
-	 * 
558
-	 * @since 1.0.15
559
-	 * @return bool
560
-	 */
561
-	public function is_active() {
562
-		return $this->status == 'publish';
563
-	}
555
+    /**
556
+     * Checks whether the discount is published or not
557
+     * 
558
+     * @since 1.0.15
559
+     * @return bool
560
+     */
561
+    public function is_active() {
562
+        return $this->status == 'publish';
563
+    }
564 564
 	
565
-	/**
566
-	 * Checks whether the discount is has exided the usage limit or not
567
-	 * 
568
-	 * @since 1.0.15
569
-	 * @return bool
570
-	 */
571
-	public function has_exceeded_limit() {
572
-		if( empty( $this->max_uses ) || empty( $this->uses ) ) { 
573
-			return false ;
574
-		}
565
+    /**
566
+     * Checks whether the discount is has exided the usage limit or not
567
+     * 
568
+     * @since 1.0.15
569
+     * @return bool
570
+     */
571
+    public function has_exceeded_limit() {
572
+        if( empty( $this->max_uses ) || empty( $this->uses ) ) { 
573
+            return false ;
574
+        }
575 575
 		
576
-		$exceeded =  $this->uses >= $this->max_uses;
577
-		return apply_filters( 'wpinv_is_discount_maxed_out', $exceeded, $this->ID, $this, $this->code );
578
-	}
576
+        $exceeded =  $this->uses >= $this->max_uses;
577
+        return apply_filters( 'wpinv_is_discount_maxed_out', $exceeded, $this->ID, $this, $this->code );
578
+    }
579 579
 	
580
-	/**
581
-	 * Checks if the discount is expired
582
-	 * 
583
-	 * @since 1.0.15
584
-	 * @return bool
585
-	 */
586
-	public function is_expired() {
587
-		$expired = empty ( $this->expiration ) ? false : current_time( 'timestamp' ) > strtotime( $this->expiration );
588
-		return apply_filters( 'wpinv_is_discount_expired', $expired, $this->ID, $this, $this->code );
589
-	}
590
-
591
-	/**
592
-	 * Checks the discount start date.
593
-	 * 
594
-	 * @since 1.0.15
595
-	 * @return bool
596
-	 */
597
-	public function has_started() {
598
-		$started = empty ( $this->start ) ? true : current_time( 'timestamp' ) > strtotime( $this->start );
599
-		return apply_filters( 'wpinv_is_discount_started', $started, $this->ID, $this, $this->code );		
600
-	}
580
+    /**
581
+     * Checks if the discount is expired
582
+     * 
583
+     * @since 1.0.15
584
+     * @return bool
585
+     */
586
+    public function is_expired() {
587
+        $expired = empty ( $this->expiration ) ? false : current_time( 'timestamp' ) > strtotime( $this->expiration );
588
+        return apply_filters( 'wpinv_is_discount_expired', $expired, $this->ID, $this, $this->code );
589
+    }
590
+
591
+    /**
592
+     * Checks the discount start date.
593
+     * 
594
+     * @since 1.0.15
595
+     * @return bool
596
+     */
597
+    public function has_started() {
598
+        $started = empty ( $this->start ) ? true : current_time( 'timestamp' ) > strtotime( $this->start );
599
+        return apply_filters( 'wpinv_is_discount_started', $started, $this->ID, $this, $this->code );		
600
+    }
601 601
 	
602
-	/**
603
-	 * Check if a discount is valid for a given item id.
604
-	 *
605
-	 * @param  int|int[]  $item_ids
606
-	 * @since 1.0.15
607
-	 * @return boolean
608
-	 */
609
-	public function is_valid_for_items( $item_ids ) {
602
+    /**
603
+     * Check if a discount is valid for a given item id.
604
+     *
605
+     * @param  int|int[]  $item_ids
606
+     * @since 1.0.15
607
+     * @return boolean
608
+     */
609
+    public function is_valid_for_items( $item_ids ) {
610 610
 		 
611
-		$item_ids = array_map( 'intval',  wpinv_parse_list( $item_ids ) );
612
-		$included = array_intersect( $item_ids, $this->items );
613
-		$excluded = array_intersect( $item_ids, $this->excluded_items );
614
-
615
-		if( ! empty( $this->excluded_items ) && ! empty( $excluded ) ) {
616
-			return false;
617
-		}
618
-
619
-		if( ! empty( $this->items ) && empty( $included ) ) {
620
-			return false;
621
-		}
622
-		return true;
623
-	}
611
+        $item_ids = array_map( 'intval',  wpinv_parse_list( $item_ids ) );
612
+        $included = array_intersect( $item_ids, $this->items );
613
+        $excluded = array_intersect( $item_ids, $this->excluded_items );
614
+
615
+        if( ! empty( $this->excluded_items ) && ! empty( $excluded ) ) {
616
+            return false;
617
+        }
618
+
619
+        if( ! empty( $this->items ) && empty( $included ) ) {
620
+            return false;
621
+        }
622
+        return true;
623
+    }
624 624
 	
625
-	/**
626
-	 * Check if a discount is valid for the given amount
627
-	 *
628
-	 * @param  float  $amount The amount to check against
629
-	 * @since 1.0.15
630
-	 * @return boolean
631
-	 */
632
-	public function is_valid_for_amount( $amount ) {
633
-		return $this->is_minimum_amount_met( $amount ) && $this->is_maximum_amount_met( $amount );
634
-	}
635
-
636
-	/**
637
-	 * Checks if the minimum amount is met
638
-	 *
639
-	 * @param  float  $amount The amount to check against
640
-	 * @since 1.0.15
641
-	 * @return boolean
642
-	 */
643
-	public function is_minimum_amount_met( $amount ) {
644
-		$amount = floatval( $amount );
645
-		$min_met= ! ( $this->min_total > 0 && $amount < $this->min_total );
646
-		return apply_filters( 'wpinv_is_discount_min_met', $min_met, $this->ID, $this, $this->code, $amount );
647
-	}
648
-
649
-	/**
650
-	 * Checks if the maximum amount is met
651
-	 *
652
-	 * @param  float  $amount The amount to check against
653
-	 * @since 1.0.15
654
-	 * @return boolean
655
-	 */
656
-	public function is_maximum_amount_met( $amount ) {
657
-		$amount = floatval( $amount );
658
-		$max_met= ! ( $this->max_total > 0 && $amount > $this->max_total );
659
-		return apply_filters( 'wpinv_is_discount_max_met', $max_met, $this->ID, $this, $this->code, $amount );
660
-	}
661
-
662
-	/**
663
-	 * Check if a discount is valid for the given user
664
-	 *
665
-	 * @param  int|string  $user
666
-	 * @since 1.0.15
667
-	 * @return boolean
668
-	 */
669
-	public function is_valid_for_user( $user ) {
670
-		global $wpi_checkout_id;
671
-
672
-		if( empty( $user ) || empty( $this->is_single_use ) ) {
673
-			return true;
674
-		}
675
-
676
-		$user_id = 0;
625
+    /**
626
+     * Check if a discount is valid for the given amount
627
+     *
628
+     * @param  float  $amount The amount to check against
629
+     * @since 1.0.15
630
+     * @return boolean
631
+     */
632
+    public function is_valid_for_amount( $amount ) {
633
+        return $this->is_minimum_amount_met( $amount ) && $this->is_maximum_amount_met( $amount );
634
+    }
635
+
636
+    /**
637
+     * Checks if the minimum amount is met
638
+     *
639
+     * @param  float  $amount The amount to check against
640
+     * @since 1.0.15
641
+     * @return boolean
642
+     */
643
+    public function is_minimum_amount_met( $amount ) {
644
+        $amount = floatval( $amount );
645
+        $min_met= ! ( $this->min_total > 0 && $amount < $this->min_total );
646
+        return apply_filters( 'wpinv_is_discount_min_met', $min_met, $this->ID, $this, $this->code, $amount );
647
+    }
648
+
649
+    /**
650
+     * Checks if the maximum amount is met
651
+     *
652
+     * @param  float  $amount The amount to check against
653
+     * @since 1.0.15
654
+     * @return boolean
655
+     */
656
+    public function is_maximum_amount_met( $amount ) {
657
+        $amount = floatval( $amount );
658
+        $max_met= ! ( $this->max_total > 0 && $amount > $this->max_total );
659
+        return apply_filters( 'wpinv_is_discount_max_met', $max_met, $this->ID, $this, $this->code, $amount );
660
+    }
661
+
662
+    /**
663
+     * Check if a discount is valid for the given user
664
+     *
665
+     * @param  int|string  $user
666
+     * @since 1.0.15
667
+     * @return boolean
668
+     */
669
+    public function is_valid_for_user( $user ) {
670
+        global $wpi_checkout_id;
671
+
672
+        if( empty( $user ) || empty( $this->is_single_use ) ) {
673
+            return true;
674
+        }
675
+
676
+        $user_id = 0;
677 677
         if ( is_int( $user ) ) {
678 678
             $user_id = absint( $user );
679 679
         } else if ( is_email( $user ) && $user_data = get_user_by( 'email', $user ) ) {
@@ -682,164 +682,164 @@  discard block
 block discarded – undo
682 682
             $user_id = $user_data->ID;
683 683
         } else if ( absint( $user ) > 0 ) {
684 684
             $user_id = absint( $user );
685
-		}
685
+        }
686 686
 
687
-		if ( empty( $user_id ) ) {
688
-			return true;
689
-		}
687
+        if ( empty( $user_id ) ) {
688
+            return true;
689
+        }
690 690
 		
691
-		// Get all payments with matching user id
691
+        // Get all payments with matching user id
692 692
         $payments = wpinv_get_invoices( array( 'user' => $user_id, 'limit' => false ) ); 
693
-		$code     = strtolower( $this->code );
693
+        $code     = strtolower( $this->code );
694 694
 
695
-		foreach ( $payments as $payment ) {
695
+        foreach ( $payments as $payment ) {
696 696
 
697
-			// Don't count discount used for current invoice checkout.
698
-			if ( ! empty( $wpi_checkout_id ) && $wpi_checkout_id == $payment->ID ) {
699
-				continue;
700
-			}
697
+            // Don't count discount used for current invoice checkout.
698
+            if ( ! empty( $wpi_checkout_id ) && $wpi_checkout_id == $payment->ID ) {
699
+                continue;
700
+            }
701 701
 			
702
-			if ( $payment->has_status( array( 'wpi-cancelled', 'wpi-failed' ) ) ) {
703
-				continue;
704
-			}
705
-
706
-			$discounts = $payment->get_discounts( true );
707
-			if ( empty( $discounts ) ) {
708
-				continue;
709
-			}
710
-
711
-			$discounts = array_map( 'strtolower', wpinv_parse_list( $discounts ) );
712
-			if ( ! empty( $discounts ) && in_array( $code, $discounts ) ) {
713
-				return false;
714
-			}
715
-		}
716
-
717
-		return true;
718
-	}
719
-
720
-	/**
721
-	 * Deletes the discount from the database
722
-	 *
723
-	 * @since 1.0.15
724
-	 * @return boolean
725
-	 */
726
-	public function remove() {
727
-
728
-		if ( empty( $this->ID ) ) {
729
-			return true;
730
-		}
731
-
732
-		do_action( 'wpinv_pre_delete_discount', $this->ID, $this->data );
733
-		wp_cache_delete( $this->ID, 'WPInv_Discounts' );
734
-    	wp_delete_post( $this->ID, true );
735
-		wp_cache_delete( $this->code, 'WPInv_Discount_Codes' );
736
-    	do_action( 'wpinv_post_delete_discount', $this->ID, $this->data );
737
-
738
-		$this->ID = null;
739
-		$this->data['id'] = null;
740
-		return true;
741
-	}
742
-
743
-	/**
744
-	 * Increases a discount's usage.
745
-	 *
746
-	 * @since 1.0.15
747
-	 * @param int $by The number of usages to increas by.
748
-	 * @return int
749
-	 */
750
-	public function increase_usage( $by = 1 ) {
751
-
752
-		$this->uses = $this->uses + $by;
753
-
754
-		if( $this->uses  < 0 ) {
755
-			$this->uses = 0;
756
-			update_post_meta( $this->ID, "_wpi_discount_uses", 0 );
757
-		}
758
-
759
-		$this->save();
760
-
761
-		if( $by > 0 ) {
762
-			do_action( 'wpinv_discount_increase_use_count', $this->uses, $this->ID, $this->code, $by );
763
-		} else {
764
-			do_action( 'wpinv_discount_decrease_use_count', $this->uses, $this->ID, $this->code, absint( $by ) );
765
-		}
702
+            if ( $payment->has_status( array( 'wpi-cancelled', 'wpi-failed' ) ) ) {
703
+                continue;
704
+            }
705
+
706
+            $discounts = $payment->get_discounts( true );
707
+            if ( empty( $discounts ) ) {
708
+                continue;
709
+            }
710
+
711
+            $discounts = array_map( 'strtolower', wpinv_parse_list( $discounts ) );
712
+            if ( ! empty( $discounts ) && in_array( $code, $discounts ) ) {
713
+                return false;
714
+            }
715
+        }
716
+
717
+        return true;
718
+    }
719
+
720
+    /**
721
+     * Deletes the discount from the database
722
+     *
723
+     * @since 1.0.15
724
+     * @return boolean
725
+     */
726
+    public function remove() {
727
+
728
+        if ( empty( $this->ID ) ) {
729
+            return true;
730
+        }
731
+
732
+        do_action( 'wpinv_pre_delete_discount', $this->ID, $this->data );
733
+        wp_cache_delete( $this->ID, 'WPInv_Discounts' );
734
+        wp_delete_post( $this->ID, true );
735
+        wp_cache_delete( $this->code, 'WPInv_Discount_Codes' );
736
+        do_action( 'wpinv_post_delete_discount', $this->ID, $this->data );
737
+
738
+        $this->ID = null;
739
+        $this->data['id'] = null;
740
+        return true;
741
+    }
742
+
743
+    /**
744
+     * Increases a discount's usage.
745
+     *
746
+     * @since 1.0.15
747
+     * @param int $by The number of usages to increas by.
748
+     * @return int
749
+     */
750
+    public function increase_usage( $by = 1 ) {
751
+
752
+        $this->uses = $this->uses + $by;
753
+
754
+        if( $this->uses  < 0 ) {
755
+            $this->uses = 0;
756
+            update_post_meta( $this->ID, "_wpi_discount_uses", 0 );
757
+        }
758
+
759
+        $this->save();
760
+
761
+        if( $by > 0 ) {
762
+            do_action( 'wpinv_discount_increase_use_count', $this->uses, $this->ID, $this->code, $by );
763
+        } else {
764
+            do_action( 'wpinv_discount_decrease_use_count', $this->uses, $this->ID, $this->code, absint( $by ) );
765
+        }
766 766
 		
767
-		return $this->uses;
768
-	}
769
-
770
-	/**
771
-	 * Retrieves discount data
772
-	 *
773
-	 * @since 1.0.15
774
-	 * @return array
775
-	 */
776
-	public function get_data() {
777
-		$return = array();
778
-		foreach( array_keys( $this->data ) as $key ) {
779
-			$return[ $key ] = $this->get( $key );
780
-		}
781
-		return $return;
782
-	}
783
-
784
-	/**
785
-	 * Retrieves discount data as json
786
-	 *
787
-	 * @since 1.0.15
788
-	 * @return string|false
789
-	 */
790
-	public function get_data_as_json() {
791
-		return wp_json_encode( $this->get_data() );
792
-	}
793
-
794
-	/**
795
-	 * Checks if a discount can only be used once per user.
796
-	 *
797
-	 * @since 1.0.15
798
-	 * @return bool
799
-	 */
800
-	public function get_is_single_use() {
801
-		return (bool) apply_filters( 'wpinv_is_discount_single_use', $this->data['is_single_use'], $this->ID, $this, $this->code );
802
-	}
803
-
804
-	/**
805
-	 * Checks if a discount is recurring.
806
-	 *
807
-	 * @since 1.0.15
808
-	 * @return bool
809
-	 */
810
-	public function get_is_recurring() {
811
-		return (bool) apply_filters( 'wpinv_is_discount_recurring', $this->data['is_recurring'], $this->ID, $this->code, $this );
812
-	}
813
-
814
-	/**
815
-	 * Returns a discount's included items.
816
-	 *
817
-	 * @since 1.0.15
818
-	 * @return array
819
-	 */
820
-	public function get_items() {
821
-		return wpinv_parse_list( apply_filters( 'wpinv_get_discount_item_reqs', $this->data['items'], $this->ID, $this, $this->code ) );
822
-	}
823
-
824
-	/**
825
-	 * Returns a discount's discounted amount.
826
-	 *
827
-	 * @since 1.0.15
828
-	 * @return float
829
-	 */
830
-	public function get_discounted_amount( $amount ) {
831
-
832
-		if ( $this->type == 'flat' ) {
767
+        return $this->uses;
768
+    }
769
+
770
+    /**
771
+     * Retrieves discount data
772
+     *
773
+     * @since 1.0.15
774
+     * @return array
775
+     */
776
+    public function get_data() {
777
+        $return = array();
778
+        foreach( array_keys( $this->data ) as $key ) {
779
+            $return[ $key ] = $this->get( $key );
780
+        }
781
+        return $return;
782
+    }
783
+
784
+    /**
785
+     * Retrieves discount data as json
786
+     *
787
+     * @since 1.0.15
788
+     * @return string|false
789
+     */
790
+    public function get_data_as_json() {
791
+        return wp_json_encode( $this->get_data() );
792
+    }
793
+
794
+    /**
795
+     * Checks if a discount can only be used once per user.
796
+     *
797
+     * @since 1.0.15
798
+     * @return bool
799
+     */
800
+    public function get_is_single_use() {
801
+        return (bool) apply_filters( 'wpinv_is_discount_single_use', $this->data['is_single_use'], $this->ID, $this, $this->code );
802
+    }
803
+
804
+    /**
805
+     * Checks if a discount is recurring.
806
+     *
807
+     * @since 1.0.15
808
+     * @return bool
809
+     */
810
+    public function get_is_recurring() {
811
+        return (bool) apply_filters( 'wpinv_is_discount_recurring', $this->data['is_recurring'], $this->ID, $this->code, $this );
812
+    }
813
+
814
+    /**
815
+     * Returns a discount's included items.
816
+     *
817
+     * @since 1.0.15
818
+     * @return array
819
+     */
820
+    public function get_items() {
821
+        return wpinv_parse_list( apply_filters( 'wpinv_get_discount_item_reqs', $this->data['items'], $this->ID, $this, $this->code ) );
822
+    }
823
+
824
+    /**
825
+     * Returns a discount's discounted amount.
826
+     *
827
+     * @since 1.0.15
828
+     * @return float
829
+     */
830
+    public function get_discounted_amount( $amount ) {
831
+
832
+        if ( $this->type == 'flat' ) {
833 833
             $amount = $amount - $this->amount;
834
-		} else {
834
+        } else {
835 835
             $amount = $amount - ( $amount * ( $this->amount / 100 ) );
836
-		}
836
+        }
837 837
 
838
-		if ( $amount < 0 ) {
839
-			$amount = 0;
840
-		}
838
+        if ( $amount < 0 ) {
839
+            $amount = 0;
840
+        }
841 841
 
842
-		return apply_filters( 'wpinv_discounted_amount', $amount, $this->ID, $this, $this->code, $this->amount );
843
-	}
842
+        return apply_filters( 'wpinv_discounted_amount', $amount, $this->ID, $this, $this->code, $this->amount );
843
+    }
844 844
 	
845 845
 }
Please login to merge, or discard this patch.
Spacing   +189 added lines, -189 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  * @since   1.0.15
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * Discount class.
@@ -63,45 +63,45 @@  discard block
 block discarded – undo
63 63
 	 * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.
64 64
 	 * @since 1.0.15
65 65
 	 */
66
-	public function __construct( $discount = array() ) {
66
+	public function __construct($discount = array()) {
67 67
         
68 68
         // If the discount is an instance of this class...
69
-		if ( $discount instanceof WPInv_Discount ) {
70
-			$this->init( $discount->data );
69
+		if ($discount instanceof WPInv_Discount) {
70
+			$this->init($discount->data);
71 71
 			return;
72 72
         }
73 73
         
74 74
         // If the discount is an array of discount details...
75
-        if ( is_array( $discount ) ) {
76
-			$this->init( $discount );
75
+        if (is_array($discount)) {
76
+			$this->init($discount);
77 77
 			return;
78 78
 		}
79 79
 		
80 80
 		// Try fetching the discount by its post id.
81 81
 		$data = false;
82 82
 		
83
-		if ( ! empty( $discount ) && is_numeric( $discount ) ) {
84
-			$discount = absint( $discount );
85
-			$data = self::get_data_by( 'id', $discount );
83
+		if (!empty($discount) && is_numeric($discount)) {
84
+			$discount = absint($discount);
85
+			$data = self::get_data_by('id', $discount);
86 86
 		}
87 87
 
88
-		if ( is_array( $data ) ) {
89
-			$this->init( $data );
88
+		if (is_array($data)) {
89
+			$this->init($data);
90 90
 			return;
91 91
 		}
92 92
 		
93 93
 		// Try fetching the discount by its discount code.
94
-		if ( ! empty( $discount ) && is_scalar( $discount ) ) {
95
-			$data = self::get_data_by( 'discount_code', $discount );
94
+		if (!empty($discount) && is_scalar($discount)) {
95
+			$data = self::get_data_by('discount_code', $discount);
96 96
 		}
97 97
 
98
-		if ( is_array( $data ) ) {
99
-			$this->init( $data );
98
+		if (is_array($data)) {
99
+			$this->init($data);
100 100
 			return;
101 101
 		} 
102 102
 		
103 103
 		// If we are here then the discount does not exist.
104
-		$this->init( array() );
104
+		$this->init(array());
105 105
 	}
106 106
 	
107 107
 	/**
@@ -110,8 +110,8 @@  discard block
 block discarded – undo
110 110
 	 * @since 1.0.15
111 111
 	 * @param array $data An array containing the discount's data
112 112
 	 */
113
-	public function init( $data ) {
114
-		$data       	  = self::sanitize_discount_data( $data );
113
+	public function init($data) {
114
+		$data       	  = self::sanitize_discount_data($data);
115 115
 		$this->data 	  = $data;
116 116
 		$this->old_status = $data['status'];
117 117
 		$this->ID   	  = $data['ID'];
@@ -127,50 +127,50 @@  discard block
 block discarded – undo
127 127
 	 * @since 1.0.15
128 128
 	 * @return array|bool array of discount details on success. False otherwise.
129 129
 	 */
130
-	public static function get_data_by( $field, $value ) {
130
+	public static function get_data_by($field, $value) {
131 131
 
132
-		if ( 'id' == strtolower( $field ) ) {
132
+		if ('id' == strtolower($field)) {
133 133
 			// Make sure the value is numeric to avoid casting objects, for example,
134 134
 			// to int 1.
135
-			if ( ! is_numeric( $value ) )
135
+			if (!is_numeric($value))
136 136
 				return false;
137
-			$value = intval( $value );
138
-			if ( $value < 1 )
137
+			$value = intval($value);
138
+			if ($value < 1)
139 139
 				return false;
140 140
 		}
141 141
 
142
-		if ( ! $value || ! is_string( $field ) ) {
142
+		if (!$value || !is_string($field)) {
143 143
 			return false;
144 144
 		}
145 145
 		
146
-		$field = trim( $field );
146
+		$field = trim($field);
147 147
 
148 148
 		// prepare query args
149
-		switch ( strtolower( $field ) ) {
149
+		switch (strtolower($field)) {
150 150
 			case 'id':
151 151
 				$discount_id = $value;
152
-				$args		 = array( 'include' => array( $value ) );
152
+				$args = array('include' => array($value));
153 153
 				break;
154 154
 			case 'discount_code':
155 155
 			case 'code':
156
-				$value       = trim( $value );
157
-				$discount_id = wp_cache_get( $value, 'WPInv_Discount_Codes' );
158
-				$args		 = array( 'meta_key' => '_wpi_discount_code', 'meta_value' => $value );
156
+				$value       = trim($value);
157
+				$discount_id = wp_cache_get($value, 'WPInv_Discount_Codes');
158
+				$args = array('meta_key' => '_wpi_discount_code', 'meta_value' => $value);
159 159
 				break;
160 160
 			case 'name':
161 161
 				$discount_id = 0;
162
-				$args		 = array( 'name' => trim( $value ) );
162
+				$args		 = array('name' => trim($value));
163 163
 				break;
164 164
 			default:
165
-				$args		 = apply_filters( "wpinv_discount_get_data_by_{$field}_args", null, $value );
166
-				if ( ! is_array( $args ) ) {
167
-					return apply_filters( "wpinv_discount_get_data_by_$field", false, $value );
165
+				$args		 = apply_filters("wpinv_discount_get_data_by_{$field}_args", null, $value);
166
+				if (!is_array($args)) {
167
+					return apply_filters("wpinv_discount_get_data_by_$field", false, $value);
168 168
 				}
169 169
 
170 170
 		}
171 171
 
172 172
 		// Check if there is a cached value.
173
-		if ( ! empty( $discount_id ) && $discount = wp_cache_get( (int) $discount_id, 'WPInv_Discounts' ) ) {
173
+		if (!empty($discount_id) && $discount = wp_cache_get((int) $discount_id, 'WPInv_Discounts')) {
174 174
 			return $discount;
175 175
 		}
176 176
 
@@ -179,13 +179,13 @@  discard block
 block discarded – undo
179 179
 			array(
180 180
 				'post_type'      => 'wpi_discount',
181 181
 				'posts_per_page' => 1,
182
-				'post_status'    => array( 'publish', 'pending', 'draft', 'expired' )
182
+				'post_status'    => array('publish', 'pending', 'draft', 'expired')
183 183
 			)
184 184
 		);
185 185
 
186
-		$discount = get_posts( $args );
186
+		$discount = get_posts($args);
187 187
 				
188
-		if( empty( $discount ) ) {
188
+		if (empty($discount)) {
189 189
 			return false;
190 190
 		}
191 191
 
@@ -194,31 +194,31 @@  discard block
 block discarded – undo
194 194
 		// Prepare the return data.
195 195
 		$return = array(
196 196
             'ID'                          => $discount->ID,
197
-            'code'                        => get_post_meta( $discount->ID, '_wpi_discount_code', true ),
198
-            'amount'                      => get_post_meta( $discount->ID, '_wpi_discount_amount', true ),
197
+            'code'                        => get_post_meta($discount->ID, '_wpi_discount_code', true),
198
+            'amount'                      => get_post_meta($discount->ID, '_wpi_discount_amount', true),
199 199
             'date_created'                => $discount->post_date,
200 200
 			'date_modified'               => $discount->post_modified,
201 201
 			'status'               		  => $discount->post_status,
202
-			'start'                  	  => get_post_meta( $discount->ID, '_wpi_discount_start', true ),
203
-            'expiration'                  => get_post_meta( $discount->ID, '_wpi_discount_expiration', true ),
204
-            'type'               		  => get_post_meta( $discount->ID, '_wpi_discount_type', true ),
202
+			'start'                  	  => get_post_meta($discount->ID, '_wpi_discount_start', true),
203
+            'expiration'                  => get_post_meta($discount->ID, '_wpi_discount_expiration', true),
204
+            'type'               		  => get_post_meta($discount->ID, '_wpi_discount_type', true),
205 205
             'description'                 => $discount->post_excerpt,
206
-            'uses'                 		  => get_post_meta( $discount->ID, '_wpi_discount_uses', true ),
207
-            'is_single_use'               => get_post_meta( $discount->ID, '_wpi_discount_is_single_use', true ),
208
-            'items'              	      => get_post_meta( $discount->ID, '_wpi_discount_items', true ),
209
-            'excluded_items'              => get_post_meta( $discount->ID, '_wpi_discount_excluded_items', true ),
210
-            'max_uses'                    => get_post_meta( $discount->ID, '_wpi_discount_max_uses', true ),
211
-            'is_recurring'                => get_post_meta( $discount->ID, '_wpi_discount_is_recurring', true ),
212
-            'min_total'                   => get_post_meta( $discount->ID, '_wpi_discount_min_total', true ),
213
-            'max_total'                   => get_post_meta( $discount->ID, '_wpi_discount_max_total', true ),
206
+            'uses'                 		  => get_post_meta($discount->ID, '_wpi_discount_uses', true),
207
+            'is_single_use'               => get_post_meta($discount->ID, '_wpi_discount_is_single_use', true),
208
+            'items'              	      => get_post_meta($discount->ID, '_wpi_discount_items', true),
209
+            'excluded_items'              => get_post_meta($discount->ID, '_wpi_discount_excluded_items', true),
210
+            'max_uses'                    => get_post_meta($discount->ID, '_wpi_discount_max_uses', true),
211
+            'is_recurring'                => get_post_meta($discount->ID, '_wpi_discount_is_recurring', true),
212
+            'min_total'                   => get_post_meta($discount->ID, '_wpi_discount_min_total', true),
213
+            'max_total'                   => get_post_meta($discount->ID, '_wpi_discount_max_total', true),
214 214
         );
215 215
 		
216
-		$return = self::sanitize_discount_data( $return );
217
-		$return = apply_filters( 'wpinv_discount_properties', $return );
216
+		$return = self::sanitize_discount_data($return);
217
+		$return = apply_filters('wpinv_discount_properties', $return);
218 218
 
219 219
 		// Update the cache with our data
220
-		wp_cache_add( $discount->ID, $return, 'WPInv_Discounts' );
221
-		wp_cache_add( $return['code'], $discount->ID, 'WPInv_Discount_Codes' );
220
+		wp_cache_add($discount->ID, $return, 'WPInv_Discounts');
221
+		wp_cache_add($return['code'], $discount->ID, 'WPInv_Discount_Codes');
222 222
 
223 223
 		return $return;
224 224
 	}
@@ -232,9 +232,9 @@  discard block
 block discarded – undo
232 232
 	 *
233 233
 	 * @return array the sanitized data
234 234
 	 */
235
-	public static function sanitize_discount_data( $data ) {
235
+	public static function sanitize_discount_data($data) {
236 236
 		
237
-		$allowed_discount_types = array_keys( wpinv_get_discount_types() );
237
+		$allowed_discount_types = array_keys(wpinv_get_discount_types());
238 238
 		
239 239
 		$return = array(
240 240
             'ID'                          => null,
@@ -259,60 +259,60 @@  discard block
 block discarded – undo
259 259
 		
260 260
 				
261 261
 		// Arrays only please.
262
-		if ( ! is_array( $data ) ) {
262
+		if (!is_array($data)) {
263 263
             return $return;
264 264
         }
265 265
 
266 266
 		// If an id is provided, ensure it is a valid discount.
267
-        if ( ! empty( $data['ID'] ) && ( ! is_numeric( $data['ID'] ) || 'wpi_discount' !== get_post_type( $data['ID'] ) ) ) {
267
+        if (!empty($data['ID']) && (!is_numeric($data['ID']) || 'wpi_discount' !== get_post_type($data['ID']))) {
268 268
             return $return;
269 269
 		}
270 270
 
271
-        $return = array_merge( $return, $data );
271
+        $return = array_merge($return, $data);
272 272
 
273 273
         // Sanitize some keys.
274
-        $return['amount']         = wpinv_sanitize_amount( $return['amount'] );
274
+        $return['amount'] = wpinv_sanitize_amount($return['amount']);
275 275
 		$return['is_single_use']  = (bool) $return['is_single_use'];
276 276
 		$return['is_recurring']   = (bool) $return['is_recurring'];
277 277
 		$return['uses']	          = (int) $return['uses'];
278 278
 		$return['max_uses']	      = (int) $return['max_uses'];
279
-		$return['min_total'] 	  = wpinv_sanitize_amount( $return['min_total'] );
280
-        $return['max_total'] 	  = wpinv_sanitize_amount( $return['max_total'] );
279
+		$return['min_total'] = wpinv_sanitize_amount($return['min_total']);
280
+        $return['max_total'] = wpinv_sanitize_amount($return['max_total']);
281 281
 
282 282
 		// Trim all values.
283
-		$return = wpinv_clean( $return );
283
+		$return = wpinv_clean($return);
284 284
 		
285 285
 		// Ensure the discount type is supported.
286
-        if ( ! in_array( $return['type'], $allowed_discount_types, true ) ) {
286
+        if (!in_array($return['type'], $allowed_discount_types, true)) {
287 287
             $return['type'] = 'percent';
288 288
 		}
289
-		$return['type_name'] = wpinv_get_discount_type_name( $return['type'] );
289
+		$return['type_name'] = wpinv_get_discount_type_name($return['type']);
290 290
 		
291 291
 		// Do not offer more than a 100% discount.
292
-		if ( $return['type'] == 'percent' && (float) $return['amount'] > 100 ) {
292
+		if ($return['type'] == 'percent' && (float) $return['amount'] > 100) {
293 293
 			$return['amount'] = 100;
294 294
 		}
295 295
 
296 296
 		// Format dates.
297
-		foreach( wpinv_parse_list( 'date_created date_modified expiration start') as $prop ) {
298
-			if( ! empty( $return[$prop] ) ) {
299
-				$return[$prop]      = date_i18n( 'Y-m-d H:i:s', strtotime( $return[$prop] ) );
297
+		foreach (wpinv_parse_list('date_created date_modified expiration start') as $prop) {
298
+			if (!empty($return[$prop])) {
299
+				$return[$prop] = date_i18n('Y-m-d H:i:s', strtotime($return[$prop]));
300 300
 			}
301 301
 		}
302 302
 
303 303
 		// Formart items.
304
-		foreach( array( 'excluded_items', 'items' ) as $prop ) {
304
+		foreach (array('excluded_items', 'items') as $prop) {
305 305
 
306
-			if( ! empty( $return[$prop] ) ) {
306
+			if (!empty($return[$prop])) {
307 307
 				// Ensure that the property is an array of non-empty integers.
308
-				$return[$prop]      = array_filter( array_map( 'intval', wpinv_parse_list( $return[$prop] ) ) );
308
+				$return[$prop]      = array_filter(array_map('intval', wpinv_parse_list($return[$prop])));
309 309
 			} else {
310 310
 				$return[$prop]      = array();
311 311
 			}
312 312
 
313 313
 		}
314 314
 		
315
-		return apply_filters( 'wpinv_sanitize_discount_data', $return, $data );
315
+		return apply_filters('wpinv_sanitize_discount_data', $return, $data);
316 316
 	}
317 317
 	
318 318
 	/**
@@ -323,8 +323,8 @@  discard block
 block discarded – undo
323 323
 	 *
324 324
 	 * @return bool Whether the given discount field is set.
325 325
 	 */
326
-	public function __isset( $key ){
327
-		return isset( $this->data[$key] ) || method_exists( $this, "get_$key");
326
+	public function __isset($key) {
327
+		return isset($this->data[$key]) || method_exists($this, "get_$key");
328 328
 	}
329 329
 	
330 330
 	/**
@@ -336,8 +336,8 @@  discard block
 block discarded – undo
336 336
 	 * @param string $key Discount data to retrieve
337 337
 	 * @return mixed Value of the given discount property (if set).
338 338
 	 */
339
-	public function __get( $key ) {
340
-		return $this->get( $key );
339
+	public function __get($key) {
340
+		return $this->get($key);
341 341
 	}
342 342
 
343 343
 	/**
@@ -349,15 +349,15 @@  discard block
 block discarded – undo
349 349
 	 * @param string $key Discount data to retrieve
350 350
 	 * @return mixed Value of the given discount property (if set).
351 351
 	 */
352
-	public function get( $key ) {
352
+	public function get($key) {
353 353
 		
354
-		if ( $key == 'id' ) {
354
+		if ($key == 'id') {
355 355
 			$key = 'ID';
356 356
 		}
357 357
 		
358
-		if( method_exists( $this, "get_$key") ) {
359
-			$value 	= call_user_func( array( $this, "get_$key" ) );
360
-		} else if( isset( $this->data[$key] ) ) {
358
+		if (method_exists($this, "get_$key")) {
359
+			$value 	= call_user_func(array($this, "get_$key"));
360
+		} else if (isset($this->data[$key])) {
361 361
 			$value 	= $this->data[$key];
362 362
 		} else {
363 363
 			$value = null;
@@ -374,7 +374,7 @@  discard block
 block discarded – undo
374 374
 		 * @param string         $code     The discount's discount code.
375 375
 		 * @param array          $data     The discount's data array.
376 376
 		 */
377
-		return apply_filters( "wpinv_get_discount_{$key}", $value, $this->ID, $this, $this->data['code'], $this->data );
377
+		return apply_filters("wpinv_get_discount_{$key}", $value, $this->ID, $this, $this->data['code'], $this->data);
378 378
 
379 379
 	}
380 380
 	
@@ -387,9 +387,9 @@  discard block
 block discarded – undo
387 387
 	 * @access public
388 388
 	 *
389 389
 	 */
390
-	public function __set( $key, $value ) {
390
+	public function __set($key, $value) {
391 391
 		
392
-		if ( 'id' == strtolower( $key ) ) {
392
+		if ('id' == strtolower($key)) {
393 393
 			
394 394
 			$this->ID = $value;
395 395
 			$this->data['ID'] = $value;
@@ -410,10 +410,10 @@  discard block
 block discarded – undo
410 410
 		 * @param string         $code     The discount's discount code.
411 411
 		 * @param array          $data     The discount's data array.
412 412
 		 */
413
-		$value = apply_filters( "wpinv_set_discount_{$key}", $value, $this->ID, $this, $this->code, $this->data );
413
+		$value = apply_filters("wpinv_set_discount_{$key}", $value, $this->ID, $this, $this->code, $this->data);
414 414
 
415
-		if( method_exists( $this, "set_$key") ) {
416
-			call_user_func( array( $this, "set_$key" ), $value );
415
+		if (method_exists($this, "set_$key")) {
416
+			call_user_func(array($this, "set_$key"), $value);
417 417
 		} else {
418 418
 			$this->data[$key] = $value;
419 419
 		}
@@ -428,53 +428,53 @@  discard block
 block discarded – undo
428 428
 	 * @return bool
429 429
 	 *
430 430
 	 */
431
-	public function save(){
431
+	public function save() {
432 432
 		
433
-		$data = self::sanitize_discount_data( $this->data );
433
+		$data = self::sanitize_discount_data($this->data);
434 434
 
435 435
 		// Should we create a new post?
436
-		if( ! $data[ 'ID' ] ) {
436
+		if (!$data['ID']) {
437 437
 
438
-			$id = wp_insert_post( array(
438
+			$id = wp_insert_post(array(
439 439
 				'post_status'           => $data['status'],
440 440
 				'post_type'             => 'wpi_discount',
441 441
 				'post_excerpt'          => $data['description'],
442
-			) );
442
+			));
443 443
 
444
-			if( empty( $id ) ) {
444
+			if (empty($id)) {
445 445
 				return false;
446 446
 			}
447 447
 
448
-			$data[ 'ID' ] = (int) $id;
449
-			$this->ID = $data[ 'ID' ];
450
-			$this->data['ID'] = $data[ 'ID' ];
448
+			$data['ID'] = (int) $id;
449
+			$this->ID = $data['ID'];
450
+			$this->data['ID'] = $data['ID'];
451 451
 
452 452
 		} else {
453
-			$this->update_status( $data['status'] );
453
+			$this->update_status($data['status']);
454 454
 		}
455 455
 
456
-		$meta = apply_filters( 'wpinv_update_discount', $data, $this->ID, $this );
456
+		$meta = apply_filters('wpinv_update_discount', $data, $this->ID, $this);
457 457
 
458
-		do_action( 'wpinv_pre_update_discount', $meta, $this->ID, $this );
458
+		do_action('wpinv_pre_update_discount', $meta, $this->ID, $this);
459 459
 
460
-		foreach( wpinv_parse_list( 'ID date_created date_modified status description type_name' ) as $prop ) {
461
-			if ( isset( $meta[$prop] ) ) {
462
-				unset( $meta[$prop] );
460
+		foreach (wpinv_parse_list('ID date_created date_modified status description type_name') as $prop) {
461
+			if (isset($meta[$prop])) {
462
+				unset($meta[$prop]);
463 463
 			}
464 464
 		}
465 465
 
466
-		if( isset( $meta['uses'] ) && empty( $meta['uses'] ) ) {
467
-			unset( $meta['uses'] );
466
+		if (isset($meta['uses']) && empty($meta['uses'])) {
467
+			unset($meta['uses']);
468 468
 		}
469 469
 
470 470
 		// Save the metadata.
471
-		foreach( $meta as $key => $value ) {
472
-			update_post_meta( $this->ID, "_wpi_discount_$key", $value );
471
+		foreach ($meta as $key => $value) {
472
+			update_post_meta($this->ID, "_wpi_discount_$key", $value);
473 473
 		}
474 474
 
475 475
 		$this->refresh();
476 476
 
477
-		do_action( 'wpinv_post_update_discount', $meta, $this->ID );
477
+		do_action('wpinv_post_update_discount', $meta, $this->ID);
478 478
 
479 479
 		return true;		
480 480
 	}
@@ -487,17 +487,17 @@  discard block
 block discarded – undo
487 487
 	 * @return bool
488 488
 	 *
489 489
 	 */
490
-	public function refresh(){
490
+	public function refresh() {
491 491
 
492 492
 		// Empty the cache for this discount.
493
-		wp_cache_delete( $this->ID, 'WPInv_Discounts' );
494
-		wp_cache_delete( $this->get( 'code' ), 'WPInv_Discount_Codes' );
493
+		wp_cache_delete($this->ID, 'WPInv_Discounts');
494
+		wp_cache_delete($this->get('code'), 'WPInv_Discount_Codes');
495 495
 
496
-		$data = self::get_data_by( 'id', $this->ID );
497
-		if( is_array( $data ) ) {
498
-			$this->init( $data );
496
+		$data = self::get_data_by('id', $this->ID);
497
+		if (is_array($data)) {
498
+			$this->init($data);
499 499
 		} else {
500
-			$this->init( array() );
500
+			$this->init(array());
501 501
 		}
502 502
 
503 503
 	}
@@ -510,14 +510,14 @@  discard block
 block discarded – undo
510 510
 	 * @return bool
511 511
 	 *
512 512
 	 */
513
-	public function update_status( $status = 'publish' ){
513
+	public function update_status($status = 'publish') {
514 514
 
515 515
 
516
-		if ( $this->exists() && $this->old_status != $status ) {
516
+		if ($this->exists() && $this->old_status != $status) {
517 517
 
518
-			do_action( 'wpinv_pre_update_discount_status', $this->ID, $this->old_status, $status );
519
-        	$updated = wp_update_post( array( 'ID' => $this->ID, 'post_status' => $status ) );
520
-			do_action( 'wpinv_post_update_discount_status', $this->ID, $this->old_status, $status );
518
+			do_action('wpinv_pre_update_discount_status', $this->ID, $this->old_status, $status);
519
+        	$updated = wp_update_post(array('ID' => $this->ID, 'post_status' => $status));
520
+			do_action('wpinv_post_update_discount_status', $this->ID, $this->old_status, $status);
521 521
 
522 522
 			$this->refresh();
523 523
 
@@ -534,8 +534,8 @@  discard block
 block discarded – undo
534 534
 	 * 
535 535
 	 * @since 1.0.15
536 536
 	 */
537
-	public function exists(){
538
-		return ! empty( $this->ID );
537
+	public function exists() {
538
+		return !empty($this->ID);
539 539
 	}
540 540
 	
541 541
 	// Boolean methods
@@ -548,7 +548,7 @@  discard block
 block discarded – undo
548 548
 	 * @since 1.0.15
549 549
 	 * @return bool
550 550
 	 */
551
-	public function is_type( $type ) {
551
+	public function is_type($type) {
552 552
 		return $this->type == $type;
553 553
 	}
554 554
 	
@@ -569,12 +569,12 @@  discard block
 block discarded – undo
569 569
 	 * @return bool
570 570
 	 */
571 571
 	public function has_exceeded_limit() {
572
-		if( empty( $this->max_uses ) || empty( $this->uses ) ) { 
573
-			return false ;
572
+		if (empty($this->max_uses) || empty($this->uses)) { 
573
+			return false;
574 574
 		}
575 575
 		
576
-		$exceeded =  $this->uses >= $this->max_uses;
577
-		return apply_filters( 'wpinv_is_discount_maxed_out', $exceeded, $this->ID, $this, $this->code );
576
+		$exceeded = $this->uses >= $this->max_uses;
577
+		return apply_filters('wpinv_is_discount_maxed_out', $exceeded, $this->ID, $this, $this->code);
578 578
 	}
579 579
 	
580 580
 	/**
@@ -584,8 +584,8 @@  discard block
 block discarded – undo
584 584
 	 * @return bool
585 585
 	 */
586 586
 	public function is_expired() {
587
-		$expired = empty ( $this->expiration ) ? false : current_time( 'timestamp' ) > strtotime( $this->expiration );
588
-		return apply_filters( 'wpinv_is_discount_expired', $expired, $this->ID, $this, $this->code );
587
+		$expired = empty ($this->expiration) ? false : current_time('timestamp') > strtotime($this->expiration);
588
+		return apply_filters('wpinv_is_discount_expired', $expired, $this->ID, $this, $this->code);
589 589
 	}
590 590
 
591 591
 	/**
@@ -595,8 +595,8 @@  discard block
 block discarded – undo
595 595
 	 * @return bool
596 596
 	 */
597 597
 	public function has_started() {
598
-		$started = empty ( $this->start ) ? true : current_time( 'timestamp' ) > strtotime( $this->start );
599
-		return apply_filters( 'wpinv_is_discount_started', $started, $this->ID, $this, $this->code );		
598
+		$started = empty ($this->start) ? true : current_time('timestamp') > strtotime($this->start);
599
+		return apply_filters('wpinv_is_discount_started', $started, $this->ID, $this, $this->code);		
600 600
 	}
601 601
 	
602 602
 	/**
@@ -606,17 +606,17 @@  discard block
 block discarded – undo
606 606
 	 * @since 1.0.15
607 607
 	 * @return boolean
608 608
 	 */
609
-	public function is_valid_for_items( $item_ids ) {
609
+	public function is_valid_for_items($item_ids) {
610 610
 		 
611
-		$item_ids = array_map( 'intval',  wpinv_parse_list( $item_ids ) );
612
-		$included = array_intersect( $item_ids, $this->items );
613
-		$excluded = array_intersect( $item_ids, $this->excluded_items );
611
+		$item_ids = array_map('intval', wpinv_parse_list($item_ids));
612
+		$included = array_intersect($item_ids, $this->items);
613
+		$excluded = array_intersect($item_ids, $this->excluded_items);
614 614
 
615
-		if( ! empty( $this->excluded_items ) && ! empty( $excluded ) ) {
615
+		if (!empty($this->excluded_items) && !empty($excluded)) {
616 616
 			return false;
617 617
 		}
618 618
 
619
-		if( ! empty( $this->items ) && empty( $included ) ) {
619
+		if (!empty($this->items) && empty($included)) {
620 620
 			return false;
621 621
 		}
622 622
 		return true;
@@ -629,8 +629,8 @@  discard block
 block discarded – undo
629 629
 	 * @since 1.0.15
630 630
 	 * @return boolean
631 631
 	 */
632
-	public function is_valid_for_amount( $amount ) {
633
-		return $this->is_minimum_amount_met( $amount ) && $this->is_maximum_amount_met( $amount );
632
+	public function is_valid_for_amount($amount) {
633
+		return $this->is_minimum_amount_met($amount) && $this->is_maximum_amount_met($amount);
634 634
 	}
635 635
 
636 636
 	/**
@@ -640,10 +640,10 @@  discard block
 block discarded – undo
640 640
 	 * @since 1.0.15
641 641
 	 * @return boolean
642 642
 	 */
643
-	public function is_minimum_amount_met( $amount ) {
644
-		$amount = floatval( $amount );
645
-		$min_met= ! ( $this->min_total > 0 && $amount < $this->min_total );
646
-		return apply_filters( 'wpinv_is_discount_min_met', $min_met, $this->ID, $this, $this->code, $amount );
643
+	public function is_minimum_amount_met($amount) {
644
+		$amount = floatval($amount);
645
+		$min_met = !($this->min_total > 0 && $amount < $this->min_total);
646
+		return apply_filters('wpinv_is_discount_min_met', $min_met, $this->ID, $this, $this->code, $amount);
647 647
 	}
648 648
 
649 649
 	/**
@@ -653,10 +653,10 @@  discard block
 block discarded – undo
653 653
 	 * @since 1.0.15
654 654
 	 * @return boolean
655 655
 	 */
656
-	public function is_maximum_amount_met( $amount ) {
657
-		$amount = floatval( $amount );
658
-		$max_met= ! ( $this->max_total > 0 && $amount > $this->max_total );
659
-		return apply_filters( 'wpinv_is_discount_max_met', $max_met, $this->ID, $this, $this->code, $amount );
656
+	public function is_maximum_amount_met($amount) {
657
+		$amount = floatval($amount);
658
+		$max_met = !($this->max_total > 0 && $amount > $this->max_total);
659
+		return apply_filters('wpinv_is_discount_max_met', $max_met, $this->ID, $this, $this->code, $amount);
660 660
 	}
661 661
 
662 662
 	/**
@@ -666,50 +666,50 @@  discard block
 block discarded – undo
666 666
 	 * @since 1.0.15
667 667
 	 * @return boolean
668 668
 	 */
669
-	public function is_valid_for_user( $user ) {
669
+	public function is_valid_for_user($user) {
670 670
 		global $wpi_checkout_id;
671 671
 
672
-		if( empty( $user ) || empty( $this->is_single_use ) ) {
672
+		if (empty($user) || empty($this->is_single_use)) {
673 673
 			return true;
674 674
 		}
675 675
 
676 676
 		$user_id = 0;
677
-        if ( is_int( $user ) ) {
678
-            $user_id = absint( $user );
679
-        } else if ( is_email( $user ) && $user_data = get_user_by( 'email', $user ) ) {
677
+        if (is_int($user)) {
678
+            $user_id = absint($user);
679
+        } else if (is_email($user) && $user_data = get_user_by('email', $user)) {
680 680
             $user_id = $user_data->ID;
681
-        } else if ( $user_data = get_user_by( 'login', $user ) ) {
681
+        } else if ($user_data = get_user_by('login', $user)) {
682 682
             $user_id = $user_data->ID;
683
-        } else if ( absint( $user ) > 0 ) {
684
-            $user_id = absint( $user );
683
+        } else if (absint($user) > 0) {
684
+            $user_id = absint($user);
685 685
 		}
686 686
 
687
-		if ( empty( $user_id ) ) {
687
+		if (empty($user_id)) {
688 688
 			return true;
689 689
 		}
690 690
 		
691 691
 		// Get all payments with matching user id
692
-        $payments = wpinv_get_invoices( array( 'user' => $user_id, 'limit' => false ) ); 
693
-		$code     = strtolower( $this->code );
692
+        $payments = wpinv_get_invoices(array('user' => $user_id, 'limit' => false)); 
693
+		$code = strtolower($this->code);
694 694
 
695
-		foreach ( $payments as $payment ) {
695
+		foreach ($payments as $payment) {
696 696
 
697 697
 			// Don't count discount used for current invoice checkout.
698
-			if ( ! empty( $wpi_checkout_id ) && $wpi_checkout_id == $payment->ID ) {
698
+			if (!empty($wpi_checkout_id) && $wpi_checkout_id == $payment->ID) {
699 699
 				continue;
700 700
 			}
701 701
 			
702
-			if ( $payment->has_status( array( 'wpi-cancelled', 'wpi-failed' ) ) ) {
702
+			if ($payment->has_status(array('wpi-cancelled', 'wpi-failed'))) {
703 703
 				continue;
704 704
 			}
705 705
 
706
-			$discounts = $payment->get_discounts( true );
707
-			if ( empty( $discounts ) ) {
706
+			$discounts = $payment->get_discounts(true);
707
+			if (empty($discounts)) {
708 708
 				continue;
709 709
 			}
710 710
 
711
-			$discounts = array_map( 'strtolower', wpinv_parse_list( $discounts ) );
712
-			if ( ! empty( $discounts ) && in_array( $code, $discounts ) ) {
711
+			$discounts = array_map('strtolower', wpinv_parse_list($discounts));
712
+			if (!empty($discounts) && in_array($code, $discounts)) {
713 713
 				return false;
714 714
 			}
715 715
 		}
@@ -725,15 +725,15 @@  discard block
 block discarded – undo
725 725
 	 */
726 726
 	public function remove() {
727 727
 
728
-		if ( empty( $this->ID ) ) {
728
+		if (empty($this->ID)) {
729 729
 			return true;
730 730
 		}
731 731
 
732
-		do_action( 'wpinv_pre_delete_discount', $this->ID, $this->data );
733
-		wp_cache_delete( $this->ID, 'WPInv_Discounts' );
734
-    	wp_delete_post( $this->ID, true );
735
-		wp_cache_delete( $this->code, 'WPInv_Discount_Codes' );
736
-    	do_action( 'wpinv_post_delete_discount', $this->ID, $this->data );
732
+		do_action('wpinv_pre_delete_discount', $this->ID, $this->data);
733
+		wp_cache_delete($this->ID, 'WPInv_Discounts');
734
+    	wp_delete_post($this->ID, true);
735
+		wp_cache_delete($this->code, 'WPInv_Discount_Codes');
736
+    	do_action('wpinv_post_delete_discount', $this->ID, $this->data);
737 737
 
738 738
 		$this->ID = null;
739 739
 		$this->data['id'] = null;
@@ -747,21 +747,21 @@  discard block
 block discarded – undo
747 747
 	 * @param int $by The number of usages to increas by.
748 748
 	 * @return int
749 749
 	 */
750
-	public function increase_usage( $by = 1 ) {
750
+	public function increase_usage($by = 1) {
751 751
 
752 752
 		$this->uses = $this->uses + $by;
753 753
 
754
-		if( $this->uses  < 0 ) {
754
+		if ($this->uses < 0) {
755 755
 			$this->uses = 0;
756
-			update_post_meta( $this->ID, "_wpi_discount_uses", 0 );
756
+			update_post_meta($this->ID, "_wpi_discount_uses", 0);
757 757
 		}
758 758
 
759 759
 		$this->save();
760 760
 
761
-		if( $by > 0 ) {
762
-			do_action( 'wpinv_discount_increase_use_count', $this->uses, $this->ID, $this->code, $by );
761
+		if ($by > 0) {
762
+			do_action('wpinv_discount_increase_use_count', $this->uses, $this->ID, $this->code, $by);
763 763
 		} else {
764
-			do_action( 'wpinv_discount_decrease_use_count', $this->uses, $this->ID, $this->code, absint( $by ) );
764
+			do_action('wpinv_discount_decrease_use_count', $this->uses, $this->ID, $this->code, absint($by));
765 765
 		}
766 766
 		
767 767
 		return $this->uses;
@@ -775,8 +775,8 @@  discard block
 block discarded – undo
775 775
 	 */
776 776
 	public function get_data() {
777 777
 		$return = array();
778
-		foreach( array_keys( $this->data ) as $key ) {
779
-			$return[ $key ] = $this->get( $key );
778
+		foreach (array_keys($this->data) as $key) {
779
+			$return[$key] = $this->get($key);
780 780
 		}
781 781
 		return $return;
782 782
 	}
@@ -788,7 +788,7 @@  discard block
 block discarded – undo
788 788
 	 * @return string|false
789 789
 	 */
790 790
 	public function get_data_as_json() {
791
-		return wp_json_encode( $this->get_data() );
791
+		return wp_json_encode($this->get_data());
792 792
 	}
793 793
 
794 794
 	/**
@@ -798,7 +798,7 @@  discard block
 block discarded – undo
798 798
 	 * @return bool
799 799
 	 */
800 800
 	public function get_is_single_use() {
801
-		return (bool) apply_filters( 'wpinv_is_discount_single_use', $this->data['is_single_use'], $this->ID, $this, $this->code );
801
+		return (bool) apply_filters('wpinv_is_discount_single_use', $this->data['is_single_use'], $this->ID, $this, $this->code);
802 802
 	}
803 803
 
804 804
 	/**
@@ -808,7 +808,7 @@  discard block
 block discarded – undo
808 808
 	 * @return bool
809 809
 	 */
810 810
 	public function get_is_recurring() {
811
-		return (bool) apply_filters( 'wpinv_is_discount_recurring', $this->data['is_recurring'], $this->ID, $this->code, $this );
811
+		return (bool) apply_filters('wpinv_is_discount_recurring', $this->data['is_recurring'], $this->ID, $this->code, $this);
812 812
 	}
813 813
 
814 814
 	/**
@@ -818,7 +818,7 @@  discard block
 block discarded – undo
818 818
 	 * @return array
819 819
 	 */
820 820
 	public function get_items() {
821
-		return wpinv_parse_list( apply_filters( 'wpinv_get_discount_item_reqs', $this->data['items'], $this->ID, $this, $this->code ) );
821
+		return wpinv_parse_list(apply_filters('wpinv_get_discount_item_reqs', $this->data['items'], $this->ID, $this, $this->code));
822 822
 	}
823 823
 
824 824
 	/**
@@ -827,19 +827,19 @@  discard block
 block discarded – undo
827 827
 	 * @since 1.0.15
828 828
 	 * @return float
829 829
 	 */
830
-	public function get_discounted_amount( $amount ) {
830
+	public function get_discounted_amount($amount) {
831 831
 
832
-		if ( $this->type == 'flat' ) {
832
+		if ($this->type == 'flat') {
833 833
             $amount = $amount - $this->amount;
834 834
 		} else {
835
-            $amount = $amount - ( $amount * ( $this->amount / 100 ) );
835
+            $amount = $amount - ($amount * ($this->amount / 100));
836 836
 		}
837 837
 
838
-		if ( $amount < 0 ) {
838
+		if ($amount < 0) {
839 839
 			$amount = 0;
840 840
 		}
841 841
 
842
-		return apply_filters( 'wpinv_discounted_amount', $amount, $this->ID, $this, $this->code, $this->amount );
842
+		return apply_filters('wpinv_discounted_amount', $amount, $this->ID, $this, $this->code, $this->amount);
843 843
 	}
844 844
 	
845 845
 }
Please login to merge, or discard this patch.
includes/class-wpinv-invoice.php 1 patch
Spacing   +624 added lines, -624 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,74 +1308,74 @@  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;
@@ -1390,18 +1390,18 @@  discard block
 block discarded – undo
1390 1390
     public function has_non_recurring_discount() {
1391 1391
 
1392 1392
         // If the invoice is made up of free items, abort
1393
-        if ( ! $this->get_subtotal() > 0 ) {
1393
+        if (!$this->get_subtotal() > 0) {
1394 1394
             return false;
1395 1395
         }
1396 1396
 
1397 1397
         // Ensure there are discounts
1398
-        $discounts = $this->get_discounts( true );
1399
-        if ( empty( $discounts ) ) {
1398
+        $discounts = $this->get_discounts(true);
1399
+        if (empty($discounts)) {
1400 1400
             return false;
1401 1401
         }
1402 1402
 
1403
-        foreach ( array_values( $discounts ) as $discount_code ) {
1404
-            if ( ! wpinv_discount_is_recurring( null, $discount_code ) && wpinv_get_discount_amount( $discount_code ) > 0 ) {
1403
+        foreach (array_values($discounts) as $discount_code) {
1404
+            if (!wpinv_discount_is_recurring(null, $discount_code) && wpinv_get_discount_amount($discount_code) > 0) {
1405 1405
                 return true;
1406 1406
             }
1407 1407
         }
@@ -1409,91 +1409,91 @@  discard block
 block discarded – undo
1409 1409
         return false;
1410 1410
     }
1411 1411
     
1412
-    public function get_final_tax( $currency = false ) {        
1413
-        $final_total = wpinv_round_amount( $this->tax );
1414
-        if ( $currency ) {
1415
-            $final_total = wpinv_price( wpinv_format_amount( $final_total, NULL, !$currency ), $this->get_currency() );
1412
+    public function get_final_tax($currency = false) {        
1413
+        $final_total = wpinv_round_amount($this->tax);
1414
+        if ($currency) {
1415
+            $final_total = wpinv_price(wpinv_format_amount($final_total, NULL, !$currency), $this->get_currency());
1416 1416
         }
1417 1417
         
1418
-        return apply_filters( 'wpinv_get_invoice_final_total', $final_total, $this, $currency );
1418
+        return apply_filters('wpinv_get_invoice_final_total', $final_total, $this, $currency);
1419 1419
     }
1420 1420
     
1421
-    public function get_discounts( $array = false ) {
1421
+    public function get_discounts($array = false) {
1422 1422
         $discounts = $this->discounts;
1423
-        if ( $array && $discounts ) {
1424
-            $discounts = explode( ',', $discounts );
1423
+        if ($array && $discounts) {
1424
+            $discounts = explode(',', $discounts);
1425 1425
         }
1426
-        return apply_filters( 'wpinv_payment_discounts', $discounts, $this->ID, $this, $array );
1426
+        return apply_filters('wpinv_payment_discounts', $discounts, $this->ID, $this, $array);
1427 1427
     }
1428 1428
     
1429
-    public function get_discount( $currency = false, $dash = false ) {
1430
-        if ( !empty( $this->discounts ) ) {
1429
+    public function get_discount($currency = false, $dash = false) {
1430
+        if (!empty($this->discounts)) {
1431 1431
             global $ajax_cart_details;
1432 1432
             $ajax_cart_details = $this->get_cart_details();
1433 1433
             
1434
-            if ( !empty( $ajax_cart_details ) && count( $ajax_cart_details ) == count( $this->items ) ) {
1434
+            if (!empty($ajax_cart_details) && count($ajax_cart_details) == count($this->items)) {
1435 1435
                 $cart_items = $ajax_cart_details;
1436 1436
             } else {
1437 1437
                 $cart_items = $this->items;
1438 1438
             }
1439 1439
 
1440
-            $this->discount = wpinv_get_cart_items_discount_amount( $cart_items , $this->discounts );
1440
+            $this->discount = wpinv_get_cart_items_discount_amount($cart_items, $this->discounts);
1441 1441
         }
1442
-        $discount   = wpinv_round_amount( $this->discount );
1442
+        $discount   = wpinv_round_amount($this->discount);
1443 1443
         $dash       = $dash && $discount > 0 ? '&ndash;' : '';
1444 1444
         
1445
-        if ( $currency ) {
1446
-            $discount = wpinv_price( wpinv_format_amount( $discount, NULL, !$currency ), $this->get_currency() );
1445
+        if ($currency) {
1446
+            $discount = wpinv_price(wpinv_format_amount($discount, NULL, !$currency), $this->get_currency());
1447 1447
         }
1448 1448
         
1449
-        $discount   = $dash . $discount;
1449
+        $discount = $dash . $discount;
1450 1450
         
1451
-        return apply_filters( 'wpinv_get_invoice_discount', $discount, $this->ID, $this, $currency, $dash );
1451
+        return apply_filters('wpinv_get_invoice_discount', $discount, $this->ID, $this, $currency, $dash);
1452 1452
     }
1453 1453
     
1454 1454
     public function get_discount_code() {
1455 1455
         return $this->discount_code;
1456 1456
     }
1457 1457
     
1458
-    public function get_tax( $currency = false ) {
1459
-        $tax = wpinv_round_amount( $this->tax );
1458
+    public function get_tax($currency = false) {
1459
+        $tax = wpinv_round_amount($this->tax);
1460 1460
         
1461
-        if ( $currency ) {
1462
-            $tax = wpinv_price( wpinv_format_amount( $tax, NULL, !$currency ), $this->get_currency() );
1461
+        if ($currency) {
1462
+            $tax = wpinv_price(wpinv_format_amount($tax, NULL, !$currency), $this->get_currency());
1463 1463
         }
1464 1464
         
1465
-        return apply_filters( 'wpinv_get_invoice_tax', $tax, $this->ID, $this, $currency );
1465
+        return apply_filters('wpinv_get_invoice_tax', $tax, $this->ID, $this, $currency);
1466 1466
     }
1467 1467
     
1468
-    public function get_fees( $type = 'all' ) {
1469
-        $fees    = array();
1468
+    public function get_fees($type = 'all') {
1469
+        $fees = array();
1470 1470
 
1471
-        if ( ! empty( $this->fees ) && is_array( $this->fees ) ) {
1472
-            foreach ( $this->fees as $fee ) {
1473
-                if( 'all' != $type && ! empty( $fee['type'] ) && $type != $fee['type'] ) {
1471
+        if (!empty($this->fees) && is_array($this->fees)) {
1472
+            foreach ($this->fees as $fee) {
1473
+                if ('all' != $type && !empty($fee['type']) && $type != $fee['type']) {
1474 1474
                     continue;
1475 1475
                 }
1476 1476
 
1477
-                $fee['label'] = stripslashes( $fee['label'] );
1478
-                $fee['amount_display'] = wpinv_price( $fee['amount'], $this->get_currency() );
1479
-                $fees[]    = $fee;
1477
+                $fee['label'] = stripslashes($fee['label']);
1478
+                $fee['amount_display'] = wpinv_price($fee['amount'], $this->get_currency());
1479
+                $fees[] = $fee;
1480 1480
             }
1481 1481
         }
1482 1482
 
1483
-        return apply_filters( 'wpinv_get_invoice_fees', $fees, $this->ID, $this );
1483
+        return apply_filters('wpinv_get_invoice_fees', $fees, $this->ID, $this);
1484 1484
     }
1485 1485
     
1486
-    public function get_fees_total( $type = 'all' ) {
1486
+    public function get_fees_total($type = 'all') {
1487 1487
         $fees_total = (float) 0.00;
1488 1488
 
1489
-        $payment_fees = isset( $this->payment_meta['fees'] ) ? $this->payment_meta['fees'] : array();
1490
-        if ( ! empty( $payment_fees ) ) {
1491
-            foreach ( $payment_fees as $fee ) {
1489
+        $payment_fees = isset($this->payment_meta['fees']) ? $this->payment_meta['fees'] : array();
1490
+        if (!empty($payment_fees)) {
1491
+            foreach ($payment_fees as $fee) {
1492 1492
                 $fees_total += (float) $fee['amount'];
1493 1493
             }
1494 1494
         }
1495 1495
 
1496
-        return apply_filters( 'wpinv_get_invoice_fees_total', $fees_total, $this->ID, $this );
1496
+        return apply_filters('wpinv_get_invoice_fees_total', $fees_total, $this->ID, $this);
1497 1497
         /*
1498 1498
         $fees = $this->get_fees( $type );
1499 1499
 
@@ -1513,116 +1513,116 @@  discard block
 block discarded – undo
1513 1513
     }
1514 1514
 
1515 1515
     public function get_user_id() {
1516
-        return apply_filters( 'wpinv_user_id', $this->user_id, $this->ID, $this );
1516
+        return apply_filters('wpinv_user_id', $this->user_id, $this->ID, $this);
1517 1517
     }
1518 1518
     
1519 1519
     public function get_first_name() {
1520
-        return apply_filters( 'wpinv_first_name', $this->first_name, $this->ID, $this );
1520
+        return apply_filters('wpinv_first_name', $this->first_name, $this->ID, $this);
1521 1521
     }
1522 1522
     
1523 1523
     public function get_last_name() {
1524
-        return apply_filters( 'wpinv_last_name', $this->last_name, $this->ID, $this );
1524
+        return apply_filters('wpinv_last_name', $this->last_name, $this->ID, $this);
1525 1525
     }
1526 1526
     
1527 1527
     public function get_user_full_name() {
1528
-        return apply_filters( 'wpinv_user_full_name', $this->full_name, $this->ID, $this );
1528
+        return apply_filters('wpinv_user_full_name', $this->full_name, $this->ID, $this);
1529 1529
     }
1530 1530
     
1531 1531
     public function get_user_info() {
1532
-        return apply_filters( 'wpinv_user_info', $this->user_info, $this->ID, $this );
1532
+        return apply_filters('wpinv_user_info', $this->user_info, $this->ID, $this);
1533 1533
     }
1534 1534
     
1535 1535
     public function get_email() {
1536
-        return apply_filters( 'wpinv_user_email', $this->email, $this->ID, $this );
1536
+        return apply_filters('wpinv_user_email', $this->email, $this->ID, $this);
1537 1537
     }
1538 1538
     
1539 1539
     public function get_address() {
1540
-        return apply_filters( 'wpinv_address', $this->address, $this->ID, $this );
1540
+        return apply_filters('wpinv_address', $this->address, $this->ID, $this);
1541 1541
     }
1542 1542
     
1543 1543
     public function get_phone() {
1544
-        return apply_filters( 'wpinv_phone', $this->phone, $this->ID, $this );
1544
+        return apply_filters('wpinv_phone', $this->phone, $this->ID, $this);
1545 1545
     }
1546 1546
     
1547 1547
     public function get_number() {
1548
-        return apply_filters( 'wpinv_number', $this->number, $this->ID, $this );
1548
+        return apply_filters('wpinv_number', $this->number, $this->ID, $this);
1549 1549
     }
1550 1550
     
1551 1551
     public function get_items() {
1552
-        return apply_filters( 'wpinv_payment_meta_items', $this->items, $this->ID, $this );
1552
+        return apply_filters('wpinv_payment_meta_items', $this->items, $this->ID, $this);
1553 1553
     }
1554 1554
     
1555 1555
     public function get_key() {
1556
-        return apply_filters( 'wpinv_key', $this->key, $this->ID, $this );
1556
+        return apply_filters('wpinv_key', $this->key, $this->ID, $this);
1557 1557
     }
1558 1558
     
1559 1559
     public function get_transaction_id() {
1560
-        return apply_filters( 'wpinv_get_invoice_transaction_id', $this->transaction_id, $this->ID, $this );
1560
+        return apply_filters('wpinv_get_invoice_transaction_id', $this->transaction_id, $this->ID, $this);
1561 1561
     }
1562 1562
     
1563 1563
     public function get_gateway() {
1564
-        return apply_filters( 'wpinv_gateway', $this->gateway, $this->ID, $this );
1564
+        return apply_filters('wpinv_gateway', $this->gateway, $this->ID, $this);
1565 1565
     }
1566 1566
     
1567 1567
     public function get_gateway_title() {
1568
-        $this->gateway_title = !empty( $this->gateway_title ) ? $this->gateway_title : wpinv_get_gateway_checkout_label( $this->gateway );
1568
+        $this->gateway_title = !empty($this->gateway_title) ? $this->gateway_title : wpinv_get_gateway_checkout_label($this->gateway);
1569 1569
         
1570
-        return apply_filters( 'wpinv_gateway_title', $this->gateway_title, $this->ID, $this );
1570
+        return apply_filters('wpinv_gateway_title', $this->gateway_title, $this->ID, $this);
1571 1571
     }
1572 1572
     
1573 1573
     public function get_currency() {
1574
-        return apply_filters( 'wpinv_currency_code', $this->currency, $this->ID, $this );
1574
+        return apply_filters('wpinv_currency_code', $this->currency, $this->ID, $this);
1575 1575
     }
1576 1576
     
1577 1577
     public function get_created_date() {
1578
-        return apply_filters( 'wpinv_created_date', $this->date, $this->ID, $this );
1578
+        return apply_filters('wpinv_created_date', $this->date, $this->ID, $this);
1579 1579
     }
1580 1580
     
1581
-    public function get_due_date( $display = false ) {
1582
-        $due_date = apply_filters( 'wpinv_due_date', $this->due_date, $this->ID, $this );
1581
+    public function get_due_date($display = false) {
1582
+        $due_date = apply_filters('wpinv_due_date', $this->due_date, $this->ID, $this);
1583 1583
         
1584
-        if ( !$display || empty( $due_date ) ) {
1584
+        if (!$display || empty($due_date)) {
1585 1585
             return $due_date;
1586 1586
         }
1587 1587
         
1588
-        return date_i18n( get_option( 'date_format' ), strtotime( $due_date ) );
1588
+        return date_i18n(get_option('date_format'), strtotime($due_date));
1589 1589
     }
1590 1590
     
1591 1591
     public function get_completed_date() {
1592
-        return apply_filters( 'wpinv_completed_date', $this->completed_date, $this->ID, $this );
1592
+        return apply_filters('wpinv_completed_date', $this->completed_date, $this->ID, $this);
1593 1593
     }
1594 1594
     
1595
-    public function get_invoice_date( $formatted = true ) {
1595
+    public function get_invoice_date($formatted = true) {
1596 1596
         $date_completed = $this->completed_date;
1597 1597
         $invoice_date   = $date_completed != '' && $date_completed != '0000-00-00 00:00:00' ? $date_completed : '';
1598 1598
         
1599
-        if ( $invoice_date == '' ) {
1599
+        if ($invoice_date == '') {
1600 1600
             $date_created   = $this->date;
1601 1601
             $invoice_date   = $date_created != '' && $date_created != '0000-00-00 00:00:00' ? $date_created : '';
1602 1602
         }
1603 1603
         
1604
-        if ( $formatted && $invoice_date ) {
1605
-            $invoice_date   = date_i18n( get_option( 'date_format' ), strtotime( $invoice_date ) );
1604
+        if ($formatted && $invoice_date) {
1605
+            $invoice_date = date_i18n(get_option('date_format'), strtotime($invoice_date));
1606 1606
         }
1607 1607
 
1608
-        return apply_filters( 'wpinv_get_invoice_date', $invoice_date, $formatted, $this->ID, $this );
1608
+        return apply_filters('wpinv_get_invoice_date', $invoice_date, $formatted, $this->ID, $this);
1609 1609
     }
1610 1610
     
1611 1611
     public function get_ip() {
1612
-        return apply_filters( 'wpinv_user_ip', $this->ip, $this->ID, $this );
1612
+        return apply_filters('wpinv_user_ip', $this->ip, $this->ID, $this);
1613 1613
     }
1614 1614
         
1615
-    public function has_status( $status ) {
1616
-        return apply_filters( 'wpinv_has_status', ( is_array( $status ) && in_array( $this->get_status(), $status ) ) || $this->get_status() === $status ? true : false, $this, $status );
1615
+    public function has_status($status) {
1616
+        return apply_filters('wpinv_has_status', (is_array($status) && in_array($this->get_status(), $status)) || $this->get_status() === $status ? true : false, $this, $status);
1617 1617
     }
1618 1618
     
1619
-    public function add_item( $item_id = 0, $args = array() ) {
1619
+    public function add_item($item_id = 0, $args = array()) {
1620 1620
         global $wpi_current_id, $wpi_item_id;
1621 1621
         
1622
-        $item = new WPInv_Item( $item_id );
1622
+        $item = new WPInv_Item($item_id);
1623 1623
 
1624 1624
         // Bail if this post isn't a item
1625
-        if( !$item || $item->post_type !== 'wpi_item' ) {
1625
+        if (!$item || $item->post_type !== 'wpi_item') {
1626 1626
             return false;
1627 1627
         }
1628 1628
         
@@ -1641,8 +1641,8 @@  discard block
 block discarded – undo
1641 1641
             'fees'          => array()
1642 1642
         );
1643 1643
 
1644
-        $args = wp_parse_args( apply_filters( 'wpinv_add_item_args', $args, $item->ID ), $defaults );
1645
-        $args['quantity']   = $has_quantities && $args['quantity'] > 0 ? absint( $args['quantity'] ) : 1;
1644
+        $args = wp_parse_args(apply_filters('wpinv_add_item_args', $args, $item->ID), $defaults);
1645
+        $args['quantity'] = $has_quantities && $args['quantity'] > 0 ? absint($args['quantity']) : 1;
1646 1646
 
1647 1647
         $wpi_current_id         = $this->ID;
1648 1648
         $wpi_item_id            = $item->ID;
@@ -1654,19 +1654,19 @@  discard block
 block discarded – undo
1654 1654
         $found_cart_key         = false;
1655 1655
         
1656 1656
         if ($has_quantities) {
1657
-            $this->cart_details = !empty( $this->cart_details ) ? array_values( $this->cart_details ) : $this->cart_details;
1657
+            $this->cart_details = !empty($this->cart_details) ? array_values($this->cart_details) : $this->cart_details;
1658 1658
             
1659
-            foreach ( $this->items as $key => $cart_item ) {
1660
-                if ( (int)$item_id !== (int)$cart_item['id'] ) {
1659
+            foreach ($this->items as $key => $cart_item) {
1660
+                if ((int) $item_id !== (int) $cart_item['id']) {
1661 1661
                     continue;
1662 1662
                 }
1663 1663
 
1664
-                $this->items[ $key ]['quantity'] += $args['quantity'];
1664
+                $this->items[$key]['quantity'] += $args['quantity'];
1665 1665
                 break;
1666 1666
             }
1667 1667
             
1668
-            foreach ( $this->cart_details as $cart_key => $cart_item ) {
1669
-                if ( $item_id != $cart_item['id'] ) {
1668
+            foreach ($this->cart_details as $cart_key => $cart_item) {
1669
+                if ($item_id != $cart_item['id']) {
1670 1670
                     continue;
1671 1671
                 }
1672 1672
 
@@ -1678,29 +1678,29 @@  discard block
 block discarded – undo
1678 1678
         if ($has_quantities && $found_cart_key !== false) {
1679 1679
             $cart_item          = $this->cart_details[$found_cart_key];
1680 1680
             $item_price         = $cart_item['item_price'];
1681
-            $quantity           = !empty( $cart_item['quantity'] ) ? $cart_item['quantity'] : 1;
1682
-            $tax_rate           = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : 0;
1681
+            $quantity           = !empty($cart_item['quantity']) ? $cart_item['quantity'] : 1;
1682
+            $tax_rate           = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : 0;
1683 1683
             
1684 1684
             $new_quantity       = $quantity + $args['quantity'];
1685 1685
             $subtotal           = $item_price * $new_quantity;
1686 1686
             
1687 1687
             $args['quantity']   = $new_quantity;
1688
-            $discount           = !empty( $args['discount'] ) ? $args['discount'] : 0;
1689
-            $tax                = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1688
+            $discount           = !empty($args['discount']) ? $args['discount'] : 0;
1689
+            $tax                = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float) $tax_rate) : 0;
1690 1690
             
1691
-            $discount_increased = $discount > 0 && $subtotal > 0 && $discount > (float)$cart_item['discount'] ? $discount - (float)$cart_item['discount'] : 0;
1692
-            $tax_increased      = $tax > 0 && $subtotal > 0 && $tax > (float)$cart_item['tax'] ? $tax - (float)$cart_item['tax'] : 0;
1691
+            $discount_increased = $discount > 0 && $subtotal > 0 && $discount > (float) $cart_item['discount'] ? $discount - (float) $cart_item['discount'] : 0;
1692
+            $tax_increased      = $tax > 0 && $subtotal > 0 && $tax > (float) $cart_item['tax'] ? $tax - (float) $cart_item['tax'] : 0;
1693 1693
             // The total increase equals the number removed * the item_price
1694
-            $total_increased    = wpinv_round_amount( $item_price );
1694
+            $total_increased    = wpinv_round_amount($item_price);
1695 1695
             
1696
-            if ( wpinv_prices_include_tax() ) {
1697
-                $subtotal -= wpinv_round_amount( $tax );
1696
+            if (wpinv_prices_include_tax()) {
1697
+                $subtotal -= wpinv_round_amount($tax);
1698 1698
             }
1699 1699
 
1700
-            $total              = $subtotal - $discount + $tax;
1700
+            $total = $subtotal - $discount + $tax;
1701 1701
 
1702 1702
             // Do not allow totals to go negative
1703
-            if( $total < 0 ) {
1703
+            if ($total < 0) {
1704 1704
                 $total = 0;
1705 1705
             }
1706 1706
             
@@ -1716,25 +1716,25 @@  discard block
 block discarded – undo
1716 1716
             $this->cart_details[$found_cart_key] = $cart_item;
1717 1717
         } else {
1718 1718
             // Set custom price.
1719
-            if ( $args['custom_price'] !== '' ) {
1719
+            if ($args['custom_price'] !== '') {
1720 1720
                 $item_price = $args['custom_price'];
1721 1721
             } else {
1722 1722
                 // Allow overriding the price
1723
-                if ( false !== $args['item_price'] ) {
1723
+                if (false !== $args['item_price']) {
1724 1724
                     $item_price = $args['item_price'];
1725 1725
                 } else {
1726
-                    $item_price = wpinv_get_item_price( $item->ID );
1726
+                    $item_price = wpinv_get_item_price($item->ID);
1727 1727
                 }
1728 1728
             }
1729 1729
 
1730 1730
             // Sanitizing the price here so we don't have a dozen calls later
1731
-            $item_price = wpinv_sanitize_amount( $item_price );
1732
-            $subtotal   = wpinv_round_amount( $item_price * $args['quantity'] );
1731
+            $item_price = wpinv_sanitize_amount($item_price);
1732
+            $subtotal   = wpinv_round_amount($item_price * $args['quantity']);
1733 1733
         
1734
-            $discount   = !empty( $args['discount'] ) ? $args['discount'] : 0;
1735
-            $tax_class  = !empty( $args['vat_class'] ) ? $args['vat_class'] : '';
1736
-            $tax_rate   = !empty( $args['vat_rate'] ) ? $args['vat_rate'] : 0;
1737
-            $tax        = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1734
+            $discount   = !empty($args['discount']) ? $args['discount'] : 0;
1735
+            $tax_class  = !empty($args['vat_class']) ? $args['vat_class'] : '';
1736
+            $tax_rate   = !empty($args['vat_rate']) ? $args['vat_rate'] : 0;
1737
+            $tax        = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float) $tax_rate) : 0;
1738 1738
 
1739 1739
             // Setup the items meta item
1740 1740
             $new_item = array(
@@ -1742,29 +1742,29 @@  discard block
 block discarded – undo
1742 1742
                 'quantity' => $args['quantity'],
1743 1743
             );
1744 1744
 
1745
-            $this->items[]  = $new_item;
1745
+            $this->items[] = $new_item;
1746 1746
 
1747
-            if ( wpinv_prices_include_tax() ) {
1748
-                $subtotal -= wpinv_round_amount( $tax );
1747
+            if (wpinv_prices_include_tax()) {
1748
+                $subtotal -= wpinv_round_amount($tax);
1749 1749
             }
1750 1750
 
1751
-            $total      = $subtotal - $discount + $tax;
1751
+            $total = $subtotal - $discount + $tax;
1752 1752
 
1753 1753
             // Do not allow totals to go negative
1754
-            if( $total < 0 ) {
1754
+            if ($total < 0) {
1755 1755
                 $total = 0;
1756 1756
             }
1757 1757
         
1758 1758
             $this->cart_details[] = array(
1759 1759
                 'name'          => !empty($args['name']) ? $args['name'] : $item->get_name(),
1760 1760
                 'id'            => $item->ID,
1761
-                'item_price'    => wpinv_round_amount( $item_price ),
1762
-                'custom_price'  => ( $args['custom_price'] !== '' ? wpinv_round_amount( $args['custom_price'] ) : '' ),
1761
+                'item_price'    => wpinv_round_amount($item_price),
1762
+                'custom_price'  => ($args['custom_price'] !== '' ? wpinv_round_amount($args['custom_price']) : ''),
1763 1763
                 'quantity'      => $args['quantity'],
1764 1764
                 'discount'      => $discount,
1765
-                'subtotal'      => wpinv_round_amount( $subtotal ),
1766
-                'tax'           => wpinv_round_amount( $tax ),
1767
-                'price'         => wpinv_round_amount( $total ),
1765
+                'subtotal'      => wpinv_round_amount($subtotal),
1766
+                'tax'           => wpinv_round_amount($tax),
1767
+                'price'         => wpinv_round_amount($total),
1768 1768
                 'vat_rate'      => $tax_rate,
1769 1769
                 'vat_class'     => $tax_class,
1770 1770
                 'meta'          => $args['meta'],
@@ -1774,18 +1774,18 @@  discard block
 block discarded – undo
1774 1774
             $subtotal = $subtotal - $discount;
1775 1775
         }
1776 1776
         
1777
-        $added_item = end( $this->cart_details );
1778
-        $added_item['action']  = 'add';
1777
+        $added_item = end($this->cart_details);
1778
+        $added_item['action'] = 'add';
1779 1779
         
1780 1780
         $this->pending['items'][] = $added_item;
1781 1781
         
1782
-        $this->increase_subtotal( $subtotal );
1783
-        $this->increase_tax( $tax );
1782
+        $this->increase_subtotal($subtotal);
1783
+        $this->increase_tax($tax);
1784 1784
 
1785 1785
         return true;
1786 1786
     }
1787 1787
     
1788
-    public function remove_item( $item_id, $args = array() ) {
1788
+    public function remove_item($item_id, $args = array()) {
1789 1789
         // Set some defaults
1790 1790
         $defaults = array(
1791 1791
             'quantity'      => 1,
@@ -1793,51 +1793,51 @@  discard block
 block discarded – undo
1793 1793
             'custom_price'  => '',
1794 1794
             'cart_index'    => false,
1795 1795
         );
1796
-        $args = wp_parse_args( $args, $defaults );
1796
+        $args = wp_parse_args($args, $defaults);
1797 1797
 
1798 1798
         // Bail if this post isn't a item
1799
-        if ( get_post_type( $item_id ) !== 'wpi_item' ) {
1799
+        if (get_post_type($item_id) !== 'wpi_item') {
1800 1800
             return false;
1801 1801
         }
1802 1802
         
1803
-        $this->cart_details = !empty( $this->cart_details ) ? array_values( $this->cart_details ) : $this->cart_details;
1803
+        $this->cart_details = !empty($this->cart_details) ? array_values($this->cart_details) : $this->cart_details;
1804 1804
 
1805
-        foreach ( $this->items as $key => $item ) {
1806
-            if ( !empty($item['id']) && (int)$item_id !== (int)$item['id'] ) {
1805
+        foreach ($this->items as $key => $item) {
1806
+            if (!empty($item['id']) && (int) $item_id !== (int) $item['id']) {
1807 1807
                 continue;
1808 1808
             }
1809 1809
 
1810
-            if ( false !== $args['cart_index'] ) {
1811
-                $cart_index = absint( $args['cart_index'] );
1812
-                $cart_item  = ! empty( $this->cart_details[ $cart_index ] ) ? $this->cart_details[ $cart_index ] : false;
1810
+            if (false !== $args['cart_index']) {
1811
+                $cart_index = absint($args['cart_index']);
1812
+                $cart_item  = !empty($this->cart_details[$cart_index]) ? $this->cart_details[$cart_index] : false;
1813 1813
 
1814
-                if ( ! empty( $cart_item ) ) {
1814
+                if (!empty($cart_item)) {
1815 1815
                     // If the cart index item isn't the same item ID, don't remove it
1816
-                    if ( !empty($cart_item['id']) && $cart_item['id'] != $item['id'] ) {
1816
+                    if (!empty($cart_item['id']) && $cart_item['id'] != $item['id']) {
1817 1817
                         continue;
1818 1818
                     }
1819 1819
                 }
1820 1820
             }
1821 1821
 
1822
-            $item_quantity = $this->items[ $key ]['quantity'];
1823
-            if ( $item_quantity > $args['quantity'] ) {
1824
-                $this->items[ $key ]['quantity'] -= $args['quantity'];
1822
+            $item_quantity = $this->items[$key]['quantity'];
1823
+            if ($item_quantity > $args['quantity']) {
1824
+                $this->items[$key]['quantity'] -= $args['quantity'];
1825 1825
                 break;
1826 1826
             } else {
1827
-                unset( $this->items[ $key ] );
1827
+                unset($this->items[$key]);
1828 1828
                 break;
1829 1829
             }
1830 1830
         }
1831 1831
 
1832 1832
         $found_cart_key = false;
1833
-        if ( false === $args['cart_index'] ) {
1834
-            foreach ( $this->cart_details as $cart_key => $item ) {
1835
-                if ( $item_id != $item['id'] ) {
1833
+        if (false === $args['cart_index']) {
1834
+            foreach ($this->cart_details as $cart_key => $item) {
1835
+                if ($item_id != $item['id']) {
1836 1836
                     continue;
1837 1837
                 }
1838 1838
 
1839
-                if ( false !== $args['item_price'] ) {
1840
-                    if ( isset( $item['item_price'] ) && (float) $args['item_price'] != (float) $item['item_price'] ) {
1839
+                if (false !== $args['item_price']) {
1840
+                    if (isset($item['item_price']) && (float) $args['item_price'] != (float) $item['item_price']) {
1841 1841
                         continue;
1842 1842
                     }
1843 1843
                 }
@@ -1846,13 +1846,13 @@  discard block
 block discarded – undo
1846 1846
                 break;
1847 1847
             }
1848 1848
         } else {
1849
-            $cart_index = absint( $args['cart_index'] );
1849
+            $cart_index = absint($args['cart_index']);
1850 1850
 
1851
-            if ( ! array_key_exists( $cart_index, $this->cart_details ) ) {
1851
+            if (!array_key_exists($cart_index, $this->cart_details)) {
1852 1852
                 return false; // Invalid cart index passed.
1853 1853
             }
1854 1854
 
1855
-            if ( (int) $this->cart_details[ $cart_index ]['id'] > 0 && (int) $this->cart_details[ $cart_index ]['id'] !== (int) $item_id ) {
1855
+            if ((int) $this->cart_details[$cart_index]['id'] > 0 && (int) $this->cart_details[$cart_index]['id'] !== (int) $item_id) {
1856 1856
                 return false; // We still need the proper Item ID to be sure.
1857 1857
             }
1858 1858
 
@@ -1860,41 +1860,41 @@  discard block
 block discarded – undo
1860 1860
         }
1861 1861
         
1862 1862
         $cart_item  = $this->cart_details[$found_cart_key];
1863
-        $quantity   = !empty( $cart_item['quantity'] ) ? $cart_item['quantity'] : 1;
1863
+        $quantity   = !empty($cart_item['quantity']) ? $cart_item['quantity'] : 1;
1864 1864
         
1865
-        if ( count( $this->cart_details ) == 1 && ( $quantity - $args['quantity'] ) < 1 ) {
1865
+        if (count($this->cart_details) == 1 && ($quantity - $args['quantity']) < 1) {
1866 1866
             //return false; // Invoice must contain at least one item.
1867 1867
         }
1868 1868
         
1869
-        $discounts  = $this->get_discounts();
1869
+        $discounts = $this->get_discounts();
1870 1870
         
1871
-        if ( $quantity > $args['quantity'] ) {
1871
+        if ($quantity > $args['quantity']) {
1872 1872
             $item_price         = $cart_item['item_price'];
1873
-            $tax_rate           = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : 0;
1873
+            $tax_rate           = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : 0;
1874 1874
             
1875
-            $new_quantity       = max( $quantity - $args['quantity'], 1);
1875
+            $new_quantity       = max($quantity - $args['quantity'], 1);
1876 1876
             $subtotal           = $item_price * $new_quantity;
1877 1877
             
1878 1878
             $args['quantity']   = $new_quantity;
1879
-            $discount           = !empty( $cart_item['discount'] ) ? $cart_item['discount'] : 0;
1880
-            $tax                = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1879
+            $discount           = !empty($cart_item['discount']) ? $cart_item['discount'] : 0;
1880
+            $tax                = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float) $tax_rate) : 0;
1881 1881
             
1882
-            $discount_decrease  = (float)$cart_item['discount'] > 0 && $quantity > 0 ? wpinv_round_amount( ( (float)$cart_item['discount'] / $quantity ) ) : 0;
1883
-            $discount_decrease  = $discount > 0 && $subtotal > 0 && (float)$cart_item['discount'] > $discount ? (float)$cart_item['discount'] - $discount : $discount_decrease; 
1884
-            $tax_decrease       = (float)$cart_item['tax'] > 0 && $quantity > 0 ? wpinv_round_amount( ( (float)$cart_item['tax'] / $quantity ) ) : 0;
1885
-            $tax_decrease       = $tax > 0 && $subtotal > 0 && (float)$cart_item['tax'] > $tax ? (float)$cart_item['tax'] - $tax : $tax_decrease;
1882
+            $discount_decrease  = (float) $cart_item['discount'] > 0 && $quantity > 0 ? wpinv_round_amount(((float) $cart_item['discount'] / $quantity)) : 0;
1883
+            $discount_decrease  = $discount > 0 && $subtotal > 0 && (float) $cart_item['discount'] > $discount ? (float) $cart_item['discount'] - $discount : $discount_decrease; 
1884
+            $tax_decrease       = (float) $cart_item['tax'] > 0 && $quantity > 0 ? wpinv_round_amount(((float) $cart_item['tax'] / $quantity)) : 0;
1885
+            $tax_decrease       = $tax > 0 && $subtotal > 0 && (float) $cart_item['tax'] > $tax ? (float) $cart_item['tax'] - $tax : $tax_decrease;
1886 1886
             
1887 1887
             // The total increase equals the number removed * the item_price
1888
-            $total_decrease     = wpinv_round_amount( $item_price );
1888
+            $total_decrease     = wpinv_round_amount($item_price);
1889 1889
             
1890
-            if ( wpinv_prices_include_tax() ) {
1891
-                $subtotal -= wpinv_round_amount( $tax );
1890
+            if (wpinv_prices_include_tax()) {
1891
+                $subtotal -= wpinv_round_amount($tax);
1892 1892
             }
1893 1893
 
1894
-            $total              = $subtotal - $discount + $tax;
1894
+            $total = $subtotal - $discount + $tax;
1895 1895
 
1896 1896
             // Do not allow totals to go negative
1897
-            if( $total < 0 ) {
1897
+            if ($total < 0) {
1898 1898
                 $total = 0;
1899 1899
             }
1900 1900
             
@@ -1913,16 +1913,16 @@  discard block
 block discarded – undo
1913 1913
             
1914 1914
             $this->cart_details[$found_cart_key] = $cart_item;
1915 1915
             
1916
-            $remove_item = end( $this->cart_details );
1916
+            $remove_item = end($this->cart_details);
1917 1917
         } else {
1918 1918
             $item_price     = $cart_item['item_price'];
1919
-            $discount       = !empty( $cart_item['discount'] ) ? $cart_item['discount'] : 0;
1920
-            $tax            = !empty( $cart_item['tax'] ) ? $cart_item['tax'] : 0;
1919
+            $discount       = !empty($cart_item['discount']) ? $cart_item['discount'] : 0;
1920
+            $tax            = !empty($cart_item['tax']) ? $cart_item['tax'] : 0;
1921 1921
         
1922
-            $subtotal_decrease  = ( $item_price * $quantity ) - $discount;
1922
+            $subtotal_decrease  = ($item_price * $quantity) - $discount;
1923 1923
             $tax_decrease       = $tax;
1924 1924
 
1925
-            unset( $this->cart_details[$found_cart_key] );
1925
+            unset($this->cart_details[$found_cart_key]);
1926 1926
             
1927 1927
             $remove_item             = $args;
1928 1928
             $remove_item['id']       = $item_id;
@@ -1933,8 +1933,8 @@  discard block
 block discarded – undo
1933 1933
         $remove_item['action']      = 'remove';
1934 1934
         $this->pending['items'][]   = $remove_item;
1935 1935
                
1936
-        $this->decrease_subtotal( $subtotal_decrease );
1937
-        $this->decrease_tax( $tax_decrease );
1936
+        $this->decrease_subtotal($subtotal_decrease);
1937
+        $this->decrease_tax($tax_decrease);
1938 1938
         
1939 1939
         return true;
1940 1940
     }
@@ -1942,7 +1942,7 @@  discard block
 block discarded – undo
1942 1942
     public function update_items($temp = false) {
1943 1943
         global $wpinv_euvat, $wpi_current_id, $wpi_item_id, $wpi_nosave;
1944 1944
         
1945
-        if ( !empty( $this->cart_details ) ) {
1945
+        if (!empty($this->cart_details)) {
1946 1946
             $wpi_nosave             = $temp;
1947 1947
             $cart_subtotal          = 0;
1948 1948
             $cart_discount          = 0;
@@ -1952,61 +1952,61 @@  discard block
 block discarded – undo
1952 1952
             $_POST['wpinv_country'] = $this->country;
1953 1953
             $_POST['wpinv_state']   = $this->state;
1954 1954
             
1955
-            foreach ( $this->cart_details as $key => $item ) {
1955
+            foreach ($this->cart_details as $key => $item) {
1956 1956
                 $item_price = $item['item_price'];
1957
-                $quantity   = wpinv_item_quantities_enabled() && $item['quantity'] > 0 ? absint( $item['quantity'] ) : 1;
1958
-                $amount     = wpinv_round_amount( $item_price * $quantity );
1957
+                $quantity   = wpinv_item_quantities_enabled() && $item['quantity'] > 0 ? absint($item['quantity']) : 1;
1958
+                $amount     = wpinv_round_amount($item_price * $quantity);
1959 1959
                 $subtotal   = $item_price * $quantity;
1960 1960
                 
1961 1961
                 $wpi_current_id         = $this->ID;
1962 1962
                 $wpi_item_id            = $item['id'];
1963 1963
                 
1964
-                $discount   = wpinv_get_cart_item_discount_amount( $item, $this->get_discounts() );
1964
+                $discount   = wpinv_get_cart_item_discount_amount($item, $this->get_discounts());
1965 1965
                 
1966
-                $tax_rate   = wpinv_get_tax_rate( $this->country, $this->state, $wpi_item_id );
1967
-                $tax_class  = $wpinv_euvat->get_item_class( $wpi_item_id );
1968
-                $tax        = $item_price > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0;
1966
+                $tax_rate   = wpinv_get_tax_rate($this->country, $this->state, $wpi_item_id);
1967
+                $tax_class  = $wpinv_euvat->get_item_class($wpi_item_id);
1968
+                $tax        = $item_price > 0 ? (($subtotal - $discount) * 0.01 * (float) $tax_rate) : 0;
1969 1969
 
1970
-                if ( wpinv_prices_include_tax() ) {
1971
-                    $subtotal -= wpinv_round_amount( $tax );
1970
+                if (wpinv_prices_include_tax()) {
1971
+                    $subtotal -= wpinv_round_amount($tax);
1972 1972
                 }
1973 1973
 
1974
-                $total      = $subtotal - $discount + $tax;
1974
+                $total = $subtotal - $discount + $tax;
1975 1975
 
1976 1976
                 // Do not allow totals to go negative
1977
-                if( $total < 0 ) {
1977
+                if ($total < 0) {
1978 1978
                     $total = 0;
1979 1979
                 }
1980 1980
 
1981 1981
                 $cart_details[] = array(
1982 1982
                     'id'          => $item['id'],
1983 1983
                     'name'        => $item['name'],
1984
-                    'item_price'  => wpinv_round_amount( $item_price ),
1985
-                    'custom_price'=> ( isset( $item['custom_price'] ) ? $item['custom_price'] : '' ),
1984
+                    'item_price'  => wpinv_round_amount($item_price),
1985
+                    'custom_price'=> (isset($item['custom_price']) ? $item['custom_price'] : ''),
1986 1986
                     'quantity'    => $quantity,
1987 1987
                     'discount'    => $discount,
1988
-                    'subtotal'    => wpinv_round_amount( $subtotal ),
1989
-                    'tax'         => wpinv_round_amount( $tax ),
1990
-                    'price'       => wpinv_round_amount( $total ),
1988
+                    'subtotal'    => wpinv_round_amount($subtotal),
1989
+                    'tax'         => wpinv_round_amount($tax),
1990
+                    'price'       => wpinv_round_amount($total),
1991 1991
                     'vat_rate'    => $tax_rate,
1992 1992
                     'vat_class'   => $tax_class,
1993 1993
                     'meta'        => isset($item['meta']) ? $item['meta'] : array(),
1994 1994
                     'fees'        => isset($item['fees']) ? $item['fees'] : array(),
1995 1995
                 );
1996 1996
                 
1997
-                $cart_subtotal  += (float)($subtotal - $discount); // TODO
1998
-                $cart_discount  += (float)($discount);
1999
-                $cart_tax       += (float)($tax);
1997
+                $cart_subtotal  += (float) ($subtotal - $discount); // TODO
1998
+                $cart_discount  += (float) ($discount);
1999
+                $cart_tax       += (float) ($tax);
2000 2000
             }
2001
-            if ( $cart_subtotal < 0 ) {
2001
+            if ($cart_subtotal < 0) {
2002 2002
                 $cart_subtotal = 0;
2003 2003
             }
2004
-            if ( $cart_tax < 0 ) {
2004
+            if ($cart_tax < 0) {
2005 2005
                 $cart_tax = 0;
2006 2006
             }
2007
-            $this->subtotal = wpinv_round_amount( $cart_subtotal );
2008
-            $this->tax      = wpinv_round_amount( $cart_tax );
2009
-            $this->discount = wpinv_round_amount( $cart_discount );
2007
+            $this->subtotal = wpinv_round_amount($cart_subtotal);
2008
+            $this->tax      = wpinv_round_amount($cart_tax);
2009
+            $this->discount = wpinv_round_amount($cart_discount);
2010 2010
             
2011 2011
             $this->recalculate_total();
2012 2012
             
@@ -2018,177 +2018,177 @@  discard block
 block discarded – undo
2018 2018
     
2019 2019
     public function recalculate_totals($temp = false) {        
2020 2020
         $this->update_items($temp);
2021
-        $this->save( true );
2021
+        $this->save(true);
2022 2022
         
2023 2023
         return $this;
2024 2024
     }
2025 2025
     
2026 2026
     public function needs_payment() {
2027
-        $valid_invoice_statuses = apply_filters( 'wpinv_valid_invoice_statuses_for_payment', array( 'wpi-pending' ), $this );
2027
+        $valid_invoice_statuses = apply_filters('wpinv_valid_invoice_statuses_for_payment', array('wpi-pending'), $this);
2028 2028
 
2029
-        if ( $this->has_status( $valid_invoice_statuses ) && ( $this->get_total() > 0 || $this->is_free_trial() || $this->is_free() || $this->is_initial_free() ) ) {
2029
+        if ($this->has_status($valid_invoice_statuses) && ($this->get_total() > 0 || $this->is_free_trial() || $this->is_free() || $this->is_initial_free())) {
2030 2030
             $needs_payment = true;
2031 2031
         } else {
2032 2032
             $needs_payment = false;
2033 2033
         }
2034 2034
 
2035
-        return apply_filters( 'wpinv_needs_payment', $needs_payment, $this, $valid_invoice_statuses );
2035
+        return apply_filters('wpinv_needs_payment', $needs_payment, $this, $valid_invoice_statuses);
2036 2036
     }
2037 2037
     
2038
-    public function get_checkout_payment_url( $with_key = false, $secret = false ) {
2038
+    public function get_checkout_payment_url($with_key = false, $secret = false) {
2039 2039
         $pay_url = wpinv_get_checkout_uri();
2040 2040
 
2041
-        if ( is_ssl() ) {
2042
-            $pay_url = str_replace( 'http:', 'https:', $pay_url );
2041
+        if (is_ssl()) {
2042
+            $pay_url = str_replace('http:', 'https:', $pay_url);
2043 2043
         }
2044 2044
         
2045 2045
         $key = $this->get_key();
2046 2046
 
2047
-        if ( $with_key ) {
2048
-            $pay_url = add_query_arg( 'invoice_key', $key, $pay_url );
2047
+        if ($with_key) {
2048
+            $pay_url = add_query_arg('invoice_key', $key, $pay_url);
2049 2049
         } else {
2050
-            $pay_url = add_query_arg( array( 'wpi_action' => 'pay_for_invoice', 'invoice_key' => $key ), $pay_url );
2050
+            $pay_url = add_query_arg(array('wpi_action' => 'pay_for_invoice', 'invoice_key' => $key), $pay_url);
2051 2051
         }
2052 2052
         
2053
-        if ( $secret ) {
2054
-            $pay_url = add_query_arg( array( '_wpipay' => md5( $this->get_user_id() . '::' . $this->get_email() . '::' . $key ) ), $pay_url );
2053
+        if ($secret) {
2054
+            $pay_url = add_query_arg(array('_wpipay' => md5($this->get_user_id() . '::' . $this->get_email() . '::' . $key)), $pay_url);
2055 2055
         }
2056 2056
 
2057
-        return apply_filters( 'wpinv_get_checkout_payment_url', $pay_url, $this, $with_key, $secret );
2057
+        return apply_filters('wpinv_get_checkout_payment_url', $pay_url, $this, $with_key, $secret);
2058 2058
     }
2059 2059
     
2060
-    public function get_view_url( $with_key = false ) {
2061
-        $invoice_url = get_permalink( $this->ID );
2060
+    public function get_view_url($with_key = false) {
2061
+        $invoice_url = get_permalink($this->ID);
2062 2062
 
2063
-        if ( $with_key ) {
2064
-            $invoice_url = add_query_arg( 'invoice_key', $this->get_key(), $invoice_url );
2063
+        if ($with_key) {
2064
+            $invoice_url = add_query_arg('invoice_key', $this->get_key(), $invoice_url);
2065 2065
         }
2066 2066
 
2067
-        return apply_filters( 'wpinv_get_view_url', $invoice_url, $this, $with_key );
2067
+        return apply_filters('wpinv_get_view_url', $invoice_url, $this, $with_key);
2068 2068
     }
2069 2069
     
2070
-    public function generate_key( $string = '' ) {
2071
-        $auth_key  = defined( 'AUTH_KEY' ) ? AUTH_KEY : '';
2072
-        return strtolower( md5( $string . date( 'Y-m-d H:i:s' ) . $auth_key . uniqid( 'wpinv', true ) ) );  // Unique key
2070
+    public function generate_key($string = '') {
2071
+        $auth_key = defined('AUTH_KEY') ? AUTH_KEY : '';
2072
+        return strtolower(md5($string . date('Y-m-d H:i:s') . $auth_key . uniqid('wpinv', true))); // Unique key
2073 2073
     }
2074 2074
     
2075 2075
     public function is_recurring() {
2076
-        if ( empty( $this->cart_details ) ) {
2076
+        if (empty($this->cart_details)) {
2077 2077
             return false;
2078 2078
         }
2079 2079
         
2080 2080
         $has_subscription = false;
2081
-        foreach( $this->cart_details as $cart_item ) {
2082
-            if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] )  ) {
2081
+        foreach ($this->cart_details as $cart_item) {
2082
+            if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) {
2083 2083
                 $has_subscription = true;
2084 2084
                 break;
2085 2085
             }
2086 2086
         }
2087 2087
         
2088
-        if ( count( $this->cart_details ) > 1 ) {
2088
+        if (count($this->cart_details) > 1) {
2089 2089
             $has_subscription = false;
2090 2090
         }
2091 2091
 
2092
-        return apply_filters( 'wpinv_invoice_has_recurring_item', $has_subscription, $this->cart_details );
2092
+        return apply_filters('wpinv_invoice_has_recurring_item', $has_subscription, $this->cart_details);
2093 2093
     }
2094 2094
     
2095 2095
     public function is_free_trial() {
2096 2096
         $is_free_trial = false;
2097 2097
         
2098
-        if ( $this->is_parent() && $item = $this->get_recurring( true ) ) {
2099
-            if ( !empty( $item ) && $item->has_free_trial() ) {
2098
+        if ($this->is_parent() && $item = $this->get_recurring(true)) {
2099
+            if (!empty($item) && $item->has_free_trial()) {
2100 2100
                 $is_free_trial = true;
2101 2101
             }
2102 2102
         }
2103 2103
 
2104
-        return apply_filters( 'wpinv_invoice_is_free_trial', $is_free_trial, $this->cart_details );
2104
+        return apply_filters('wpinv_invoice_is_free_trial', $is_free_trial, $this->cart_details);
2105 2105
     }
2106 2106
     
2107 2107
     public function is_initial_free() {
2108 2108
         $is_initial_free = false;
2109 2109
         
2110
-        if ( ! ( (float)wpinv_round_amount( $this->get_total() ) > 0 ) && $this->is_parent() && $this->is_recurring() && ! $this->is_free_trial() && ! $this->is_free() ) {
2110
+        if (!((float) wpinv_round_amount($this->get_total()) > 0) && $this->is_parent() && $this->is_recurring() && !$this->is_free_trial() && !$this->is_free()) {
2111 2111
             $is_initial_free = true;
2112 2112
         }
2113 2113
 
2114
-        return apply_filters( 'wpinv_invoice_is_initial_free', $is_initial_free, $this->cart_details );
2114
+        return apply_filters('wpinv_invoice_is_initial_free', $is_initial_free, $this->cart_details);
2115 2115
     }
2116 2116
     
2117
-    public function get_recurring( $object = false ) {
2117
+    public function get_recurring($object = false) {
2118 2118
         $item = NULL;
2119 2119
         
2120
-        if ( empty( $this->cart_details ) ) {
2120
+        if (empty($this->cart_details)) {
2121 2121
             return $item;
2122 2122
         }
2123 2123
         
2124
-        foreach( $this->cart_details as $cart_item ) {
2125
-            if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] )  ) {
2124
+        foreach ($this->cart_details as $cart_item) {
2125
+            if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) {
2126 2126
                 $item = $cart_item['id'];
2127 2127
                 break;
2128 2128
             }
2129 2129
         }
2130 2130
         
2131
-        if ( $object ) {
2132
-            $item = $item ? new WPInv_Item( $item ) : NULL;
2131
+        if ($object) {
2132
+            $item = $item ? new WPInv_Item($item) : NULL;
2133 2133
             
2134
-            apply_filters( 'wpinv_invoice_get_recurring_item', $item, $this );
2134
+            apply_filters('wpinv_invoice_get_recurring_item', $item, $this);
2135 2135
         }
2136 2136
 
2137
-        return apply_filters( 'wpinv_invoice_get_recurring_item_id', $item, $this );
2137
+        return apply_filters('wpinv_invoice_get_recurring_item_id', $item, $this);
2138 2138
     }
2139 2139
     
2140 2140
     public function get_subscription_name() {
2141
-        $item = $this->get_recurring( true );
2141
+        $item = $this->get_recurring(true);
2142 2142
         
2143
-        if ( empty( $item ) ) {
2143
+        if (empty($item)) {
2144 2144
             return NULL;
2145 2145
         }
2146 2146
         
2147
-        if ( !($name = $item->get_name()) ) {
2147
+        if (!($name = $item->get_name())) {
2148 2148
             $name = $item->post_name;
2149 2149
         }
2150 2150
 
2151
-        return apply_filters( 'wpinv_invoice_get_subscription_name', $name, $this );
2151
+        return apply_filters('wpinv_invoice_get_subscription_name', $name, $this);
2152 2152
     }
2153 2153
     
2154 2154
     public function get_subscription_id() {
2155
-        $subscription_id = $this->get_meta( '_wpinv_subscr_profile_id', true );
2155
+        $subscription_id = $this->get_meta('_wpinv_subscr_profile_id', true);
2156 2156
         
2157
-        if ( empty( $subscription_id ) && !empty( $this->parent_invoice ) ) {
2158
-            $parent_invoice = wpinv_get_invoice( $this->parent_invoice );
2157
+        if (empty($subscription_id) && !empty($this->parent_invoice)) {
2158
+            $parent_invoice = wpinv_get_invoice($this->parent_invoice);
2159 2159
             
2160
-            $subscription_id = $parent_invoice->get_meta( '_wpinv_subscr_profile_id', true );
2160
+            $subscription_id = $parent_invoice->get_meta('_wpinv_subscr_profile_id', true);
2161 2161
         }
2162 2162
         
2163 2163
         return $subscription_id;
2164 2164
     }
2165 2165
     
2166 2166
     public function is_parent() {
2167
-        $is_parent = empty( $this->parent_invoice ) ? true : false;
2167
+        $is_parent = empty($this->parent_invoice) ? true : false;
2168 2168
 
2169
-        return apply_filters( 'wpinv_invoice_is_parent', $is_parent, $this );
2169
+        return apply_filters('wpinv_invoice_is_parent', $is_parent, $this);
2170 2170
     }
2171 2171
     
2172 2172
     public function is_renewal() {
2173 2173
         $is_renewal = $this->parent_invoice && $this->parent_invoice != $this->ID ? true : false;
2174 2174
 
2175
-        return apply_filters( 'wpinv_invoice_is_renewal', $is_renewal, $this );
2175
+        return apply_filters('wpinv_invoice_is_renewal', $is_renewal, $this);
2176 2176
     }
2177 2177
     
2178 2178
     public function get_parent_payment() {
2179 2179
         $parent_payment = NULL;
2180 2180
         
2181
-        if ( $this->is_renewal() ) {
2182
-            $parent_payment = wpinv_get_invoice( $this->parent_invoice );
2181
+        if ($this->is_renewal()) {
2182
+            $parent_payment = wpinv_get_invoice($this->parent_invoice);
2183 2183
         }
2184 2184
         
2185 2185
         return $parent_payment;
2186 2186
     }
2187 2187
     
2188 2188
     public function is_paid() {
2189
-        $is_paid = $this->has_status( array( 'publish', 'wpi-processing', 'wpi-renewal' ) );
2189
+        $is_paid = $this->has_status(array('publish', 'wpi-processing', 'wpi-renewal'));
2190 2190
 
2191
-        return apply_filters( 'wpinv_invoice_is_paid', $is_paid, $this );
2191
+        return apply_filters('wpinv_invoice_is_paid', $is_paid, $this);
2192 2192
     }
2193 2193
 
2194 2194
     /**
@@ -2201,23 +2201,23 @@  discard block
 block discarded – undo
2201 2201
     }
2202 2202
     
2203 2203
     public function is_refunded() {
2204
-        $is_refunded = $this->has_status( array( 'wpi-refunded' ) );
2204
+        $is_refunded = $this->has_status(array('wpi-refunded'));
2205 2205
 
2206
-        return apply_filters( 'wpinv_invoice_is_refunded', $is_refunded, $this );
2206
+        return apply_filters('wpinv_invoice_is_refunded', $is_refunded, $this);
2207 2207
     }
2208 2208
     
2209 2209
     public function is_free() {
2210 2210
         $is_free = false;
2211 2211
         
2212
-        if ( !( (float)wpinv_round_amount( $this->get_total() ) > 0 ) ) {
2213
-            if ( $this->is_parent() && $this->is_recurring() ) {
2214
-                $is_free = ( $this->has_non_recurring_discount() || (float)wpinv_round_amount( $this->get_recurring_details( 'total' ) ) ) > 0 ? false : true;
2212
+        if (!((float) wpinv_round_amount($this->get_total()) > 0)) {
2213
+            if ($this->is_parent() && $this->is_recurring()) {
2214
+                $is_free = ($this->has_non_recurring_discount() || (float) wpinv_round_amount($this->get_recurring_details('total'))) > 0 ? false : true;
2215 2215
             } else {
2216 2216
                 $is_free = true;
2217 2217
             }
2218 2218
         }
2219 2219
         
2220
-        return apply_filters( 'wpinv_invoice_is_free', $is_free, $this );
2220
+        return apply_filters('wpinv_invoice_is_free', $is_free, $this);
2221 2221
     }
2222 2222
     
2223 2223
     public function has_vat() {
@@ -2225,41 +2225,41 @@  discard block
 block discarded – undo
2225 2225
         
2226 2226
         $requires_vat = false;
2227 2227
         
2228
-        if ( $this->country ) {
2228
+        if ($this->country) {
2229 2229
             $wpi_country        = $this->country;
2230 2230
             
2231
-            $requires_vat       = $wpinv_euvat->requires_vat( $requires_vat, $this->get_user_id(), $wpinv_euvat->invoice_has_digital_rule( $this ) );
2231
+            $requires_vat       = $wpinv_euvat->requires_vat($requires_vat, $this->get_user_id(), $wpinv_euvat->invoice_has_digital_rule($this));
2232 2232
         }
2233 2233
         
2234
-        return apply_filters( 'wpinv_invoice_has_vat', $requires_vat, $this );
2234
+        return apply_filters('wpinv_invoice_has_vat', $requires_vat, $this);
2235 2235
     }
2236 2236
     
2237 2237
     public function refresh_item_ids() {
2238 2238
         $item_ids = array();
2239 2239
         
2240
-        if ( !empty( $this->cart_details ) ) {
2241
-            foreach ( $this->cart_details as $key => $item ) {
2242
-                if ( !empty( $item['id'] ) ) {
2240
+        if (!empty($this->cart_details)) {
2241
+            foreach ($this->cart_details as $key => $item) {
2242
+                if (!empty($item['id'])) {
2243 2243
                     $item_ids[] = $item['id'];
2244 2244
                 }
2245 2245
             }
2246 2246
         }
2247 2247
         
2248
-        $item_ids = !empty( $item_ids ) ? implode( ',', array_unique( $item_ids ) ) : '';
2248
+        $item_ids = !empty($item_ids) ? implode(',', array_unique($item_ids)) : '';
2249 2249
         
2250
-        update_post_meta( $this->ID, '_wpinv_item_ids', $item_ids );
2250
+        update_post_meta($this->ID, '_wpinv_item_ids', $item_ids);
2251 2251
     }
2252 2252
     
2253
-    public function get_invoice_quote_type( $post_id ) {
2254
-        if ( empty( $post_id ) ) {
2253
+    public function get_invoice_quote_type($post_id) {
2254
+        if (empty($post_id)) {
2255 2255
             return '';
2256 2256
         }
2257 2257
 
2258
-        $type = get_post_type( $post_id );
2258
+        $type = get_post_type($post_id);
2259 2259
 
2260
-        if ( 'wpi_invoice' === $type ) {
2260
+        if ('wpi_invoice' === $type) {
2261 2261
             $post_type = __('Invoice', 'invoicing');
2262
-        } else{
2262
+        } else {
2263 2263
             $post_type = __('Quote', 'invoicing');
2264 2264
         }
2265 2265
 
Please login to merge, or discard this patch.