Passed
Push — master ( bc47b8...bbb493 )
by Brian
07:35
created
includes/admin/class-wpinv-customers-table.php 2 patches
Indentation   +364 added lines, -364 removed lines patch added patch discarded remove patch
@@ -9,7 +9,7 @@  discard block
 block discarded – undo
9 9
 
10 10
 // Load WP_List_Table if not loaded
11 11
 if ( ! class_exists( 'WP_List_Table' ) ) {
12
-	require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
12
+    require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
13 13
 }
14 14
 
15 15
 /**
@@ -21,367 +21,367 @@  discard block
 block discarded – undo
21 21
  */
22 22
 class WPInv_Customers_Table extends WP_List_Table {
23 23
 
24
-	/**
25
-	 * @var int Number of items per page
26
-	 * @since 1.0.19
27
-	 */
28
-	public $per_page = 10;
29
-
30
-	/**
31
-	 * @var int Number of items
32
-	 * @since 1.0.19
33
-	 */
34
-	public $total = 0;
35
-
36
-	/**
37
-	 * Get things started
38
-	 *
39
-	 * @since 1.0.19
40
-	 * @see WP_List_Table::__construct()
41
-	 */
42
-	public function __construct() {
43
-
44
-		// Set parent defaults
45
-		parent::__construct( array(
46
-			'singular' => 'id',
47
-			'plural'   => 'ids',
48
-			'ajax'     => false,
49
-		) );
50
-
51
-	}
52
-
53
-	/**
54
-	 * Gets the name of the primary column.
55
-	 *
56
-	 * @since 1.0.19
57
-	 * @access protected
58
-	 *
59
-	 * @return string Name of the primary column.
60
-	 */
61
-	protected function get_primary_column_name() {
62
-		return 'name';
63
-	}
64
-
65
-	/**
66
-	 * This function renders most of the columns in the list table.
67
-	 *
68
-	 * @since 1.0.19
69
-	 *
70
-	 * @param WP_User $item
71
-	 * @param string $column_name The name of the column
72
-	 *
73
-	 * @return string Column Name
74
-	 */
75
-	public function column_default( $item, $column_name ) {
76
-		$value = sanitize_text_field( get_user_meta( $item->ID, '_wpinv_' . $column_name, true ) );
77
-		return apply_filters( 'wpinv_customers_table_column' . $column_name, $value, $item );
78
-	}
79
-
80
-	/**
81
-	 * Displays the country column.
82
-	 *
83
-	 * @since 1.0.19
84
-	 *
85
-	 * @param WP_User $user
86
-	 *
87
-	 * @return string Column Name
88
-	 */
89
-	public function column_country( $user ) {
90
-		$country = wpinv_sanitize_country( $user->_wpinv_country );
91
-		if ( $country ) {
92
-			$country = wpinv_country_name( $country );
93
-		}
94
-		return sanitize_text_field( $country );
95
-	}
96
-
97
-	/**
98
-	 * Displays the state column.
99
-	 *
100
-	 * @since 1.0.19
101
-	 *
102
-	 * @param WP_User $user
103
-	 *
104
-	 * @return string Column Name
105
-	 */
106
-	public function column_state( $user ) {
107
-		$country = wpinv_sanitize_country( $user->_wpinv_country );
108
-		$state   = $user->_wpinv_state;
109
-		if ( $state ) {
110
-			$state = wpinv_state_name( $state, $country );
111
-		}
112
-
113
-		return sanitize_text_field( $state );
114
-	}
115
-
116
-	/**
117
-	 * Displays the signup column.
118
-	 *
119
-	 * @since 1.0.19
120
-	 *
121
-	 * @param WP_User $user
122
-	 *
123
-	 * @return string Column Name
124
-	 */
125
-	public function column_signup( $user ) {
126
-		return getpaid_format_date_value( $user->user_registered );
127
-	}
128
-
129
-	/**
130
-	 * Displays the total spent column.
131
-	 *
132
-	 * @since 1.0.19
133
-	 *
134
-	 * @param WP_User $user
135
-	 *
136
-	 * @return string Column Name
137
-	 */
138
-	public function column_total( $user ) {
139
-		return wpinv_price( $this->column_total_raw( $user ) );
140
-	}
141
-
142
-	/**
143
-	 * Displays the total spent column.
144
-	 *
145
-	 * @since 1.0.19
146
-	 *
147
-	 * @param WP_User $user
148
-	 *
149
-	 * @return float
150
-	 */
151
-	public function column_total_raw( $user ) {
152
-
153
-		$args = array(
154
-			'data'             => array(
155
-
156
-				'total'        => array(
157
-					'type'     => 'invoice_data',
158
-					'function' => 'SUM',
159
-					'name'     => 'total_sales',
160
-				)
161
-
162
-			),
163
-			'where'            => array(
164
-
165
-				'author'       => array(
166
-					'type'     => 'post_data',
167
-					'value'    => absint( $user->ID ),
168
-					'key'      => 'posts.post_author',
169
-					'operator' => '=',
170
-				),
171
-
172
-			),
173
-			'query_type'     => 'get_var',
174
-			'invoice_status' => array( 'wpi-renewal', 'wpi-processing', 'publish' ),
175
-		);
176
-
177
-		return wpinv_round_amount( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
178
-
179
-	}
180
-
181
-	/**
182
-	 * Displays the total spent column.
183
-	 *
184
-	 * @since 1.0.19
185
-	 *
186
-	 * @param WP_User $user
187
-	 *
188
-	 * @return string Column Name
189
-	 */
190
-	public function column_invoices( $user ) {
191
-
192
-		$args = array(
193
-			'data'             => array(
194
-
195
-				'ID'           => array(
196
-					'type'     => 'post_data',
197
-					'function' => 'COUNT',
198
-					'name'     => 'count',
199
-					'distinct' => true,
200
-				),
201
-
202
-			),
203
-			'where'            => array(
204
-
205
-				'author'       => array(
206
-					'type'     => 'post_data',
207
-					'value'    => absint( $user->ID ),
208
-					'key'      => 'posts.post_author',
209
-					'operator' => '=',
210
-				),
211
-
212
-			),
213
-			'query_type'     => 'get_var',
214
-			'invoice_status' => array_keys( wpinv_get_invoice_statuses() ),
215
-		);
216
-
217
-		return absint( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
218
-
219
-	}
220
-
221
-	/**
222
-	 * Generates content for a single row of the table
223
-	 * @since 1.0.19
224
-	 *
225
-	 * @param int $item The user id.
226
-	 */
227
-	public function single_row( $item ) {
228
-		$item = get_user_by( 'id', $item );
229
-
230
-		if ( empty( $item ) ) {
231
-			return;
232
-		}
233
-
234
-		echo '<tr>';
235
-		$this->single_row_columns( $item );
236
-		echo '</tr>';
237
-	}
238
-
239
-	/**
240
-	 * Displays the customers name
241
-	 *
242
-	 * @param  WP_User $customer customer.
243
-	 * @return string
244
-	 */
245
-	public function column_name( $customer ) {
246
-
247
-		// Customer view URL.
248
-		$view_url    = esc_url( add_query_arg( 'user_id', $customer->ID, admin_url( 'user-edit.php' ) ) );
249
-		$row_actions = $this->row_actions(
250
-			array(
251
-				'view' => '<a href="' . $view_url . '#getpaid-fieldset-billing">' . __( 'Edit Details', 'invoicing' ) . '</a>',
252
-			)
253
-		);
254
-
255
-		// Get user's address.
256
-		$address = wpinv_get_user_address( $customer->ID );
257
-
258
-		// Customer email address.
259
-		$email       = sanitize_email( $customer->user_email );
260
-
261
-		// Customer's avatar.
262
-		$avatar = esc_url( get_avatar_url( $email ) );
263
-		$avatar = "<img src='$avatar' height='32' width='32'/>";
264
-
265
-		// Customer's name.
266
-		$name   = sanitize_text_field( "{$address['first_name']} {$address['last_name']}" );
267
-
268
-		if ( ! empty( $name ) ) {
269
-			$name = "<div style='overflow: hidden;height: 18px;'>$name</div>";
270
-		}
271
-
272
-		$email = "<div class='row-title'><a href='$view_url'>$email</a></div>";
273
-
274
-		return "<div style='display: flex;'><div>$avatar</div><div style='margin-left: 10px;'>$name<strong>$email</strong>$row_actions</div></div>";
275
-
276
-	}
277
-
278
-	/**
279
-	 * Retrieve the table columns
280
-	 *
281
-	 * @since 1.0.19
282
-	 * @return array $columns Array of all the list table columns
283
-	 */
284
-	public function get_columns() {
285
-
286
-		$columns = array(
287
-			'name'     => __( 'Name', 'invoicing' ),
288
-			'country'  => __( 'Country', 'invoicing' ),
289
-			'state'    => __( 'State', 'invoicing' ),
290
-			'city'     => __( 'City', 'invoicing' ),
291
-			'zip'      => __( 'ZIP', 'invoicing' ),
292
-			'address'  => __( 'Address', 'invoicing' ),
293
-			'phone'    => __( 'Phone', 'invoicing' ),
294
-			'company'  => __( 'Company', 'invoicing' ),
295
-			'invoices' => __( 'Invoices', 'invoicing' ),
296
-			'total'    => __( 'Total Spend', 'invoicing' ),
297
-			'signup'   => __( 'Date created', 'invoicing' ),
298
-		);
299
-		return apply_filters( 'wpinv_customers_table_columns', $columns );
300
-
301
-	}
302
-
303
-	/**
304
-	 * Retrieve the current page number
305
-	 *
306
-	 * @since 1.0.19
307
-	 * @return int Current page number
308
-	 */
309
-	public function get_paged() {
310
-		return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
311
-	}
312
-
313
-	/**
314
-	 * Returns bulk actions.
315
-	 *
316
-	 * @since 1.0.19
317
-	 * @return void
318
-	 */
319
-	public function bulk_actions( $which = '' ) {
320
-		return array();
321
-	}
322
-
323
-	/**
324
-	 *  Prepares the display query
325
-	 */
326
-	public function prepare_query() {
327
-		global $wpdb;
328
-
329
-		$post_types = '';
330
-
331
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
332
-			$post_types .= $wpdb->prepare( "post_type=%s OR ", $post_type );
333
-		}
334
-
335
-		$post_types = rtrim( $post_types, ' OR' );
336
-
337
-		// Maybe search.
338
-		if ( ! empty( $_POST['s'] ) ) {
339
-			$users = get_users(
340
-				array(
341
-					'search'         => '*' . sanitize_text_field( urldecode( $_POST['s'] ) ) . '*',
342
-					'search_columns' => array( 'user_login', 'user_email', 'display_name' ),
343
-					'fields'         => 'ID',
344
-				)
345
-			);
346
-
347
-			$users      = implode( ', ', $users );
348
-			$post_types = "($post_types) AND ( post_author IN ( $users ) )";
349
-		}
350
-
351
-		// Users with invoices.
352
-    	$customers = $wpdb->get_col(
353
-			$wpdb->prepare(
354
-				"SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types LIMIT %d,%d",
355
-				$this->get_paged() * 10 - 10,
356
-				$this->per_page
357
-			)
358
-		);
359
-
360
-		$this->items = $customers;
361
-		$this->total = (int) $wpdb->get_var( "SELECT COUNT( DISTINCT( post_author ) ) FROM $wpdb->posts WHERE $post_types" );
362
-
363
-	}
364
-
365
-	/**
366
-	 * Setup the final data for the table
367
-	 *
368
-	 * @since 1.0.19
369
-	 * @return void
370
-	 */
371
-	public function prepare_items() {
372
-		$columns               = $this->get_columns();
373
-		$hidden                = array(); // No hidden columns
374
-		$sortable              = $this->get_sortable_columns();
375
-		$this->_column_headers = array( $columns, $hidden, $sortable );
376
-		$this->prepare_query();
377
-
378
-		$this->set_pagination_args(
379
-			array(
380
-			'total_items' => $this->total,
381
-			'per_page'    => $this->per_page,
382
-			'total_pages' => ceil( $this->total / $this->per_page )
383
-			)
384
-		);
385
-
386
-	}
24
+    /**
25
+     * @var int Number of items per page
26
+     * @since 1.0.19
27
+     */
28
+    public $per_page = 10;
29
+
30
+    /**
31
+     * @var int Number of items
32
+     * @since 1.0.19
33
+     */
34
+    public $total = 0;
35
+
36
+    /**
37
+     * Get things started
38
+     *
39
+     * @since 1.0.19
40
+     * @see WP_List_Table::__construct()
41
+     */
42
+    public function __construct() {
43
+
44
+        // Set parent defaults
45
+        parent::__construct( array(
46
+            'singular' => 'id',
47
+            'plural'   => 'ids',
48
+            'ajax'     => false,
49
+        ) );
50
+
51
+    }
52
+
53
+    /**
54
+     * Gets the name of the primary column.
55
+     *
56
+     * @since 1.0.19
57
+     * @access protected
58
+     *
59
+     * @return string Name of the primary column.
60
+     */
61
+    protected function get_primary_column_name() {
62
+        return 'name';
63
+    }
64
+
65
+    /**
66
+     * This function renders most of the columns in the list table.
67
+     *
68
+     * @since 1.0.19
69
+     *
70
+     * @param WP_User $item
71
+     * @param string $column_name The name of the column
72
+     *
73
+     * @return string Column Name
74
+     */
75
+    public function column_default( $item, $column_name ) {
76
+        $value = sanitize_text_field( get_user_meta( $item->ID, '_wpinv_' . $column_name, true ) );
77
+        return apply_filters( 'wpinv_customers_table_column' . $column_name, $value, $item );
78
+    }
79
+
80
+    /**
81
+     * Displays the country column.
82
+     *
83
+     * @since 1.0.19
84
+     *
85
+     * @param WP_User $user
86
+     *
87
+     * @return string Column Name
88
+     */
89
+    public function column_country( $user ) {
90
+        $country = wpinv_sanitize_country( $user->_wpinv_country );
91
+        if ( $country ) {
92
+            $country = wpinv_country_name( $country );
93
+        }
94
+        return sanitize_text_field( $country );
95
+    }
96
+
97
+    /**
98
+     * Displays the state column.
99
+     *
100
+     * @since 1.0.19
101
+     *
102
+     * @param WP_User $user
103
+     *
104
+     * @return string Column Name
105
+     */
106
+    public function column_state( $user ) {
107
+        $country = wpinv_sanitize_country( $user->_wpinv_country );
108
+        $state   = $user->_wpinv_state;
109
+        if ( $state ) {
110
+            $state = wpinv_state_name( $state, $country );
111
+        }
112
+
113
+        return sanitize_text_field( $state );
114
+    }
115
+
116
+    /**
117
+     * Displays the signup column.
118
+     *
119
+     * @since 1.0.19
120
+     *
121
+     * @param WP_User $user
122
+     *
123
+     * @return string Column Name
124
+     */
125
+    public function column_signup( $user ) {
126
+        return getpaid_format_date_value( $user->user_registered );
127
+    }
128
+
129
+    /**
130
+     * Displays the total spent column.
131
+     *
132
+     * @since 1.0.19
133
+     *
134
+     * @param WP_User $user
135
+     *
136
+     * @return string Column Name
137
+     */
138
+    public function column_total( $user ) {
139
+        return wpinv_price( $this->column_total_raw( $user ) );
140
+    }
141
+
142
+    /**
143
+     * Displays the total spent column.
144
+     *
145
+     * @since 1.0.19
146
+     *
147
+     * @param WP_User $user
148
+     *
149
+     * @return float
150
+     */
151
+    public function column_total_raw( $user ) {
152
+
153
+        $args = array(
154
+            'data'             => array(
155
+
156
+                'total'        => array(
157
+                    'type'     => 'invoice_data',
158
+                    'function' => 'SUM',
159
+                    'name'     => 'total_sales',
160
+                )
161
+
162
+            ),
163
+            'where'            => array(
164
+
165
+                'author'       => array(
166
+                    'type'     => 'post_data',
167
+                    'value'    => absint( $user->ID ),
168
+                    'key'      => 'posts.post_author',
169
+                    'operator' => '=',
170
+                ),
171
+
172
+            ),
173
+            'query_type'     => 'get_var',
174
+            'invoice_status' => array( 'wpi-renewal', 'wpi-processing', 'publish' ),
175
+        );
176
+
177
+        return wpinv_round_amount( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
178
+
179
+    }
180
+
181
+    /**
182
+     * Displays the total spent column.
183
+     *
184
+     * @since 1.0.19
185
+     *
186
+     * @param WP_User $user
187
+     *
188
+     * @return string Column Name
189
+     */
190
+    public function column_invoices( $user ) {
191
+
192
+        $args = array(
193
+            'data'             => array(
194
+
195
+                'ID'           => array(
196
+                    'type'     => 'post_data',
197
+                    'function' => 'COUNT',
198
+                    'name'     => 'count',
199
+                    'distinct' => true,
200
+                ),
201
+
202
+            ),
203
+            'where'            => array(
204
+
205
+                'author'       => array(
206
+                    'type'     => 'post_data',
207
+                    'value'    => absint( $user->ID ),
208
+                    'key'      => 'posts.post_author',
209
+                    'operator' => '=',
210
+                ),
211
+
212
+            ),
213
+            'query_type'     => 'get_var',
214
+            'invoice_status' => array_keys( wpinv_get_invoice_statuses() ),
215
+        );
216
+
217
+        return absint( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
218
+
219
+    }
220
+
221
+    /**
222
+     * Generates content for a single row of the table
223
+     * @since 1.0.19
224
+     *
225
+     * @param int $item The user id.
226
+     */
227
+    public function single_row( $item ) {
228
+        $item = get_user_by( 'id', $item );
229
+
230
+        if ( empty( $item ) ) {
231
+            return;
232
+        }
233
+
234
+        echo '<tr>';
235
+        $this->single_row_columns( $item );
236
+        echo '</tr>';
237
+    }
238
+
239
+    /**
240
+     * Displays the customers name
241
+     *
242
+     * @param  WP_User $customer customer.
243
+     * @return string
244
+     */
245
+    public function column_name( $customer ) {
246
+
247
+        // Customer view URL.
248
+        $view_url    = esc_url( add_query_arg( 'user_id', $customer->ID, admin_url( 'user-edit.php' ) ) );
249
+        $row_actions = $this->row_actions(
250
+            array(
251
+                'view' => '<a href="' . $view_url . '#getpaid-fieldset-billing">' . __( 'Edit Details', 'invoicing' ) . '</a>',
252
+            )
253
+        );
254
+
255
+        // Get user's address.
256
+        $address = wpinv_get_user_address( $customer->ID );
257
+
258
+        // Customer email address.
259
+        $email       = sanitize_email( $customer->user_email );
260
+
261
+        // Customer's avatar.
262
+        $avatar = esc_url( get_avatar_url( $email ) );
263
+        $avatar = "<img src='$avatar' height='32' width='32'/>";
264
+
265
+        // Customer's name.
266
+        $name   = sanitize_text_field( "{$address['first_name']} {$address['last_name']}" );
267
+
268
+        if ( ! empty( $name ) ) {
269
+            $name = "<div style='overflow: hidden;height: 18px;'>$name</div>";
270
+        }
271
+
272
+        $email = "<div class='row-title'><a href='$view_url'>$email</a></div>";
273
+
274
+        return "<div style='display: flex;'><div>$avatar</div><div style='margin-left: 10px;'>$name<strong>$email</strong>$row_actions</div></div>";
275
+
276
+    }
277
+
278
+    /**
279
+     * Retrieve the table columns
280
+     *
281
+     * @since 1.0.19
282
+     * @return array $columns Array of all the list table columns
283
+     */
284
+    public function get_columns() {
285
+
286
+        $columns = array(
287
+            'name'     => __( 'Name', 'invoicing' ),
288
+            'country'  => __( 'Country', 'invoicing' ),
289
+            'state'    => __( 'State', 'invoicing' ),
290
+            'city'     => __( 'City', 'invoicing' ),
291
+            'zip'      => __( 'ZIP', 'invoicing' ),
292
+            'address'  => __( 'Address', 'invoicing' ),
293
+            'phone'    => __( 'Phone', 'invoicing' ),
294
+            'company'  => __( 'Company', 'invoicing' ),
295
+            'invoices' => __( 'Invoices', 'invoicing' ),
296
+            'total'    => __( 'Total Spend', 'invoicing' ),
297
+            'signup'   => __( 'Date created', 'invoicing' ),
298
+        );
299
+        return apply_filters( 'wpinv_customers_table_columns', $columns );
300
+
301
+    }
302
+
303
+    /**
304
+     * Retrieve the current page number
305
+     *
306
+     * @since 1.0.19
307
+     * @return int Current page number
308
+     */
309
+    public function get_paged() {
310
+        return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
311
+    }
312
+
313
+    /**
314
+     * Returns bulk actions.
315
+     *
316
+     * @since 1.0.19
317
+     * @return void
318
+     */
319
+    public function bulk_actions( $which = '' ) {
320
+        return array();
321
+    }
322
+
323
+    /**
324
+     *  Prepares the display query
325
+     */
326
+    public function prepare_query() {
327
+        global $wpdb;
328
+
329
+        $post_types = '';
330
+
331
+        foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
332
+            $post_types .= $wpdb->prepare( "post_type=%s OR ", $post_type );
333
+        }
334
+
335
+        $post_types = rtrim( $post_types, ' OR' );
336
+
337
+        // Maybe search.
338
+        if ( ! empty( $_POST['s'] ) ) {
339
+            $users = get_users(
340
+                array(
341
+                    'search'         => '*' . sanitize_text_field( urldecode( $_POST['s'] ) ) . '*',
342
+                    'search_columns' => array( 'user_login', 'user_email', 'display_name' ),
343
+                    'fields'         => 'ID',
344
+                )
345
+            );
346
+
347
+            $users      = implode( ', ', $users );
348
+            $post_types = "($post_types) AND ( post_author IN ( $users ) )";
349
+        }
350
+
351
+        // Users with invoices.
352
+        $customers = $wpdb->get_col(
353
+            $wpdb->prepare(
354
+                "SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types LIMIT %d,%d",
355
+                $this->get_paged() * 10 - 10,
356
+                $this->per_page
357
+            )
358
+        );
359
+
360
+        $this->items = $customers;
361
+        $this->total = (int) $wpdb->get_var( "SELECT COUNT( DISTINCT( post_author ) ) FROM $wpdb->posts WHERE $post_types" );
362
+
363
+    }
364
+
365
+    /**
366
+     * Setup the final data for the table
367
+     *
368
+     * @since 1.0.19
369
+     * @return void
370
+     */
371
+    public function prepare_items() {
372
+        $columns               = $this->get_columns();
373
+        $hidden                = array(); // No hidden columns
374
+        $sortable              = $this->get_sortable_columns();
375
+        $this->_column_headers = array( $columns, $hidden, $sortable );
376
+        $this->prepare_query();
377
+
378
+        $this->set_pagination_args(
379
+            array(
380
+            'total_items' => $this->total,
381
+            'per_page'    => $this->per_page,
382
+            'total_pages' => ceil( $this->total / $this->per_page )
383
+            )
384
+        );
385
+
386
+    }
387 387
 }
Please login to merge, or discard this patch.
Spacing   +65 added lines, -65 removed lines patch added patch discarded remove patch
@@ -5,10 +5,10 @@  discard block
 block discarded – undo
5 5
  */
6 6
 
7 7
 // Exit if accessed directly
8
-if ( ! defined( 'ABSPATH' ) ) exit;
8
+if (!defined('ABSPATH')) exit;
9 9
 
10 10
 // Load WP_List_Table if not loaded
11
-if ( ! class_exists( 'WP_List_Table' ) ) {
11
+if (!class_exists('WP_List_Table')) {
12 12
 	require_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
13 13
 }
14 14
 
@@ -42,11 +42,11 @@  discard block
 block discarded – undo
42 42
 	public function __construct() {
43 43
 
44 44
 		// Set parent defaults
45
-		parent::__construct( array(
45
+		parent::__construct(array(
46 46
 			'singular' => 'id',
47 47
 			'plural'   => 'ids',
48 48
 			'ajax'     => false,
49
-		) );
49
+		));
50 50
 
51 51
 	}
52 52
 
@@ -72,9 +72,9 @@  discard block
 block discarded – undo
72 72
 	 *
73 73
 	 * @return string Column Name
74 74
 	 */
75
-	public function column_default( $item, $column_name ) {
76
-		$value = sanitize_text_field( get_user_meta( $item->ID, '_wpinv_' . $column_name, true ) );
77
-		return apply_filters( 'wpinv_customers_table_column' . $column_name, $value, $item );
75
+	public function column_default($item, $column_name) {
76
+		$value = sanitize_text_field(get_user_meta($item->ID, '_wpinv_' . $column_name, true));
77
+		return apply_filters('wpinv_customers_table_column' . $column_name, $value, $item);
78 78
 	}
79 79
 
80 80
 	/**
@@ -86,12 +86,12 @@  discard block
 block discarded – undo
86 86
 	 *
87 87
 	 * @return string Column Name
88 88
 	 */
89
-	public function column_country( $user ) {
90
-		$country = wpinv_sanitize_country( $user->_wpinv_country );
91
-		if ( $country ) {
92
-			$country = wpinv_country_name( $country );
89
+	public function column_country($user) {
90
+		$country = wpinv_sanitize_country($user->_wpinv_country);
91
+		if ($country) {
92
+			$country = wpinv_country_name($country);
93 93
 		}
94
-		return sanitize_text_field( $country );
94
+		return sanitize_text_field($country);
95 95
 	}
96 96
 
97 97
 	/**
@@ -103,14 +103,14 @@  discard block
 block discarded – undo
103 103
 	 *
104 104
 	 * @return string Column Name
105 105
 	 */
106
-	public function column_state( $user ) {
107
-		$country = wpinv_sanitize_country( $user->_wpinv_country );
106
+	public function column_state($user) {
107
+		$country = wpinv_sanitize_country($user->_wpinv_country);
108 108
 		$state   = $user->_wpinv_state;
109
-		if ( $state ) {
110
-			$state = wpinv_state_name( $state, $country );
109
+		if ($state) {
110
+			$state = wpinv_state_name($state, $country);
111 111
 		}
112 112
 
113
-		return sanitize_text_field( $state );
113
+		return sanitize_text_field($state);
114 114
 	}
115 115
 
116 116
 	/**
@@ -122,8 +122,8 @@  discard block
 block discarded – undo
122 122
 	 *
123 123
 	 * @return string Column Name
124 124
 	 */
125
-	public function column_signup( $user ) {
126
-		return getpaid_format_date_value( $user->user_registered );
125
+	public function column_signup($user) {
126
+		return getpaid_format_date_value($user->user_registered);
127 127
 	}
128 128
 
129 129
 	/**
@@ -135,8 +135,8 @@  discard block
 block discarded – undo
135 135
 	 *
136 136
 	 * @return string Column Name
137 137
 	 */
138
-	public function column_total( $user ) {
139
-		return wpinv_price( $this->column_total_raw( $user ) );
138
+	public function column_total($user) {
139
+		return wpinv_price($this->column_total_raw($user));
140 140
 	}
141 141
 
142 142
 	/**
@@ -148,7 +148,7 @@  discard block
 block discarded – undo
148 148
 	 *
149 149
 	 * @return float
150 150
 	 */
151
-	public function column_total_raw( $user ) {
151
+	public function column_total_raw($user) {
152 152
 
153 153
 		$args = array(
154 154
 			'data'             => array(
@@ -164,17 +164,17 @@  discard block
 block discarded – undo
164 164
 
165 165
 				'author'       => array(
166 166
 					'type'     => 'post_data',
167
-					'value'    => absint( $user->ID ),
167
+					'value'    => absint($user->ID),
168 168
 					'key'      => 'posts.post_author',
169 169
 					'operator' => '=',
170 170
 				),
171 171
 
172 172
 			),
173 173
 			'query_type'     => 'get_var',
174
-			'invoice_status' => array( 'wpi-renewal', 'wpi-processing', 'publish' ),
174
+			'invoice_status' => array('wpi-renewal', 'wpi-processing', 'publish'),
175 175
 		);
176 176
 
177
-		return wpinv_round_amount( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
177
+		return wpinv_round_amount(GetPaid_Reports_Helper::get_invoice_report_data($args));
178 178
 
179 179
 	}
180 180
 
@@ -187,7 +187,7 @@  discard block
 block discarded – undo
187 187
 	 *
188 188
 	 * @return string Column Name
189 189
 	 */
190
-	public function column_invoices( $user ) {
190
+	public function column_invoices($user) {
191 191
 
192 192
 		$args = array(
193 193
 			'data'             => array(
@@ -204,17 +204,17 @@  discard block
 block discarded – undo
204 204
 
205 205
 				'author'       => array(
206 206
 					'type'     => 'post_data',
207
-					'value'    => absint( $user->ID ),
207
+					'value'    => absint($user->ID),
208 208
 					'key'      => 'posts.post_author',
209 209
 					'operator' => '=',
210 210
 				),
211 211
 
212 212
 			),
213 213
 			'query_type'     => 'get_var',
214
-			'invoice_status' => array_keys( wpinv_get_invoice_statuses() ),
214
+			'invoice_status' => array_keys(wpinv_get_invoice_statuses()),
215 215
 		);
216 216
 
217
-		return absint( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
217
+		return absint(GetPaid_Reports_Helper::get_invoice_report_data($args));
218 218
 
219 219
 	}
220 220
 
@@ -224,15 +224,15 @@  discard block
 block discarded – undo
224 224
 	 *
225 225
 	 * @param int $item The user id.
226 226
 	 */
227
-	public function single_row( $item ) {
228
-		$item = get_user_by( 'id', $item );
227
+	public function single_row($item) {
228
+		$item = get_user_by('id', $item);
229 229
 
230
-		if ( empty( $item ) ) {
230
+		if (empty($item)) {
231 231
 			return;
232 232
 		}
233 233
 
234 234
 		echo '<tr>';
235
-		$this->single_row_columns( $item );
235
+		$this->single_row_columns($item);
236 236
 		echo '</tr>';
237 237
 	}
238 238
 
@@ -242,30 +242,30 @@  discard block
 block discarded – undo
242 242
 	 * @param  WP_User $customer customer.
243 243
 	 * @return string
244 244
 	 */
245
-	public function column_name( $customer ) {
245
+	public function column_name($customer) {
246 246
 
247 247
 		// Customer view URL.
248
-		$view_url    = esc_url( add_query_arg( 'user_id', $customer->ID, admin_url( 'user-edit.php' ) ) );
248
+		$view_url    = esc_url(add_query_arg('user_id', $customer->ID, admin_url('user-edit.php')));
249 249
 		$row_actions = $this->row_actions(
250 250
 			array(
251
-				'view' => '<a href="' . $view_url . '#getpaid-fieldset-billing">' . __( 'Edit Details', 'invoicing' ) . '</a>',
251
+				'view' => '<a href="' . $view_url . '#getpaid-fieldset-billing">' . __('Edit Details', 'invoicing') . '</a>',
252 252
 			)
253 253
 		);
254 254
 
255 255
 		// Get user's address.
256
-		$address = wpinv_get_user_address( $customer->ID );
256
+		$address = wpinv_get_user_address($customer->ID);
257 257
 
258 258
 		// Customer email address.
259
-		$email       = sanitize_email( $customer->user_email );
259
+		$email = sanitize_email($customer->user_email);
260 260
 
261 261
 		// Customer's avatar.
262
-		$avatar = esc_url( get_avatar_url( $email ) );
262
+		$avatar = esc_url(get_avatar_url($email));
263 263
 		$avatar = "<img src='$avatar' height='32' width='32'/>";
264 264
 
265 265
 		// Customer's name.
266
-		$name   = sanitize_text_field( "{$address['first_name']} {$address['last_name']}" );
266
+		$name   = sanitize_text_field("{$address['first_name']} {$address['last_name']}");
267 267
 
268
-		if ( ! empty( $name ) ) {
268
+		if (!empty($name)) {
269 269
 			$name = "<div style='overflow: hidden;height: 18px;'>$name</div>";
270 270
 		}
271 271
 
@@ -284,19 +284,19 @@  discard block
 block discarded – undo
284 284
 	public function get_columns() {
285 285
 
286 286
 		$columns = array(
287
-			'name'     => __( 'Name', 'invoicing' ),
288
-			'country'  => __( 'Country', 'invoicing' ),
289
-			'state'    => __( 'State', 'invoicing' ),
290
-			'city'     => __( 'City', 'invoicing' ),
291
-			'zip'      => __( 'ZIP', 'invoicing' ),
292
-			'address'  => __( 'Address', 'invoicing' ),
293
-			'phone'    => __( 'Phone', 'invoicing' ),
294
-			'company'  => __( 'Company', 'invoicing' ),
295
-			'invoices' => __( 'Invoices', 'invoicing' ),
296
-			'total'    => __( 'Total Spend', 'invoicing' ),
297
-			'signup'   => __( 'Date created', 'invoicing' ),
287
+			'name'     => __('Name', 'invoicing'),
288
+			'country'  => __('Country', 'invoicing'),
289
+			'state'    => __('State', 'invoicing'),
290
+			'city'     => __('City', 'invoicing'),
291
+			'zip'      => __('ZIP', 'invoicing'),
292
+			'address'  => __('Address', 'invoicing'),
293
+			'phone'    => __('Phone', 'invoicing'),
294
+			'company'  => __('Company', 'invoicing'),
295
+			'invoices' => __('Invoices', 'invoicing'),
296
+			'total'    => __('Total Spend', 'invoicing'),
297
+			'signup'   => __('Date created', 'invoicing'),
298 298
 		);
299
-		return apply_filters( 'wpinv_customers_table_columns', $columns );
299
+		return apply_filters('wpinv_customers_table_columns', $columns);
300 300
 
301 301
 	}
302 302
 
@@ -307,7 +307,7 @@  discard block
 block discarded – undo
307 307
 	 * @return int Current page number
308 308
 	 */
309 309
 	public function get_paged() {
310
-		return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
310
+		return isset($_GET['paged']) ? absint($_GET['paged']) : 1;
311 311
 	}
312 312
 
313 313
 	/**
@@ -316,7 +316,7 @@  discard block
 block discarded – undo
316 316
 	 * @since 1.0.19
317 317
 	 * @return void
318 318
 	 */
319
-	public function bulk_actions( $which = '' ) {
319
+	public function bulk_actions($which = '') {
320 320
 		return array();
321 321
 	}
322 322
 
@@ -328,23 +328,23 @@  discard block
 block discarded – undo
328 328
 
329 329
 		$post_types = '';
330 330
 
331
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
332
-			$post_types .= $wpdb->prepare( "post_type=%s OR ", $post_type );
331
+		foreach (array_keys(getpaid_get_invoice_post_types()) as $post_type) {
332
+			$post_types .= $wpdb->prepare("post_type=%s OR ", $post_type);
333 333
 		}
334 334
 
335
-		$post_types = rtrim( $post_types, ' OR' );
335
+		$post_types = rtrim($post_types, ' OR');
336 336
 
337 337
 		// Maybe search.
338
-		if ( ! empty( $_POST['s'] ) ) {
338
+		if (!empty($_POST['s'])) {
339 339
 			$users = get_users(
340 340
 				array(
341
-					'search'         => '*' . sanitize_text_field( urldecode( $_POST['s'] ) ) . '*',
342
-					'search_columns' => array( 'user_login', 'user_email', 'display_name' ),
341
+					'search'         => '*' . sanitize_text_field(urldecode($_POST['s'])) . '*',
342
+					'search_columns' => array('user_login', 'user_email', 'display_name'),
343 343
 					'fields'         => 'ID',
344 344
 				)
345 345
 			);
346 346
 
347
-			$users      = implode( ', ', $users );
347
+			$users      = implode(', ', $users);
348 348
 			$post_types = "($post_types) AND ( post_author IN ( $users ) )";
349 349
 		}
350 350
 
@@ -358,7 +358,7 @@  discard block
 block discarded – undo
358 358
 		);
359 359
 
360 360
 		$this->items = $customers;
361
-		$this->total = (int) $wpdb->get_var( "SELECT COUNT( DISTINCT( post_author ) ) FROM $wpdb->posts WHERE $post_types" );
361
+		$this->total = (int) $wpdb->get_var("SELECT COUNT( DISTINCT( post_author ) ) FROM $wpdb->posts WHERE $post_types");
362 362
 
363 363
 	}
364 364
 
@@ -372,14 +372,14 @@  discard block
 block discarded – undo
372 372
 		$columns               = $this->get_columns();
373 373
 		$hidden                = array(); // No hidden columns
374 374
 		$sortable              = $this->get_sortable_columns();
375
-		$this->_column_headers = array( $columns, $hidden, $sortable );
375
+		$this->_column_headers = array($columns, $hidden, $sortable);
376 376
 		$this->prepare_query();
377 377
 
378 378
 		$this->set_pagination_args(
379 379
 			array(
380 380
 			'total_items' => $this->total,
381 381
 			'per_page'    => $this->per_page,
382
-			'total_pages' => ceil( $this->total / $this->per_page )
382
+			'total_pages' => ceil($this->total / $this->per_page)
383 383
 			)
384 384
 		);
385 385
 
Please login to merge, or discard this patch.
includes/admin/class-getpaid-admin.php 2 patches
Indentation   +543 added lines, -543 removed lines patch added patch discarded remove patch
@@ -14,89 +14,89 @@  discard block
 block discarded – undo
14 14
 class GetPaid_Admin {
15 15
 
16 16
     /**
17
-	 * Local path to this plugins admin directory
18
-	 *
19
-	 * @var         string
20
-	 */
21
-	public $admin_path;
22
-
23
-	/**
24
-	 * Web path to this plugins admin directory
25
-	 *
26
-	 * @var         string
27
-	 */
28
-	public $admin_url;
17
+     * Local path to this plugins admin directory
18
+     *
19
+     * @var         string
20
+     */
21
+    public $admin_path;
22
+
23
+    /**
24
+     * Web path to this plugins admin directory
25
+     *
26
+     * @var         string
27
+     */
28
+    public $admin_url;
29 29
 	
30
-	/**
31
-	 * Reports components.
32
-	 *
33
-	 * @var GetPaid_Reports
34
-	 */
30
+    /**
31
+     * Reports components.
32
+     *
33
+     * @var GetPaid_Reports
34
+     */
35 35
     public $reports;
36 36
 
37 37
     /**
38
-	 * Class constructor.
39
-	 */
40
-	public function __construct(){
38
+     * Class constructor.
39
+     */
40
+    public function __construct(){
41 41
 
42 42
         $this->admin_path  = plugin_dir_path( __FILE__ );
43
-		$this->admin_url   = plugins_url( '/', __FILE__ );
44
-		$this->reports     = new GetPaid_Reports();
43
+        $this->admin_url   = plugins_url( '/', __FILE__ );
44
+        $this->reports     = new GetPaid_Reports();
45 45
 
46 46
         if ( is_admin() ) {
47
-			$this->init_admin_hooks();
47
+            $this->init_admin_hooks();
48 48
         }
49 49
 
50 50
     }
51 51
 
52 52
     /**
53
-	 * Init action and filter hooks
54
-	 *
55
-	 */
56
-	private function init_admin_hooks() {
53
+     * Init action and filter hooks
54
+     *
55
+     */
56
+    private function init_admin_hooks() {
57 57
         add_action( 'admin_enqueue_scripts', array( $this, 'enqeue_scripts' ) );
58 58
         add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) );
59 59
         add_action( 'admin_init', array( $this, 'init_ayecode_connect_helper' ) );
60 60
         add_action( 'admin_init', array( $this, 'activation_redirect') );
61 61
         add_action( 'admin_init', array( $this, 'maybe_do_admin_action') );
62
-		add_action( 'admin_notices', array( $this, 'show_notices' ) );
63
-		add_action( 'getpaid_authenticated_admin_action_rate_plugin', array( $this, 'redirect_to_wordpress_rating_page' ) );
64
-		add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
65
-		add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
62
+        add_action( 'admin_notices', array( $this, 'show_notices' ) );
63
+        add_action( 'getpaid_authenticated_admin_action_rate_plugin', array( $this, 'redirect_to_wordpress_rating_page' ) );
64
+        add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
65
+        add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
66 66
         add_action( 'getpaid_authenticated_admin_action_reset_tax_rates', array( $this, 'admin_reset_tax_rates' ) );
67
-		add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
68
-		add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
69
-		add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
70
-		add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
71
-		add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
72
-		add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
73
-		add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
74
-		add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
75
-		do_action( 'getpaid_init_admin_hooks', $this );
76
-
77
-		// Setup/welcome
78
-		if ( ! empty( $_GET['page'] ) ) {
79
-			switch ( $_GET['page'] ) {
80
-				case 'gp-setup' :
81
-					include_once( dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php' );
82
-					break;
83
-			}
84
-		}
67
+        add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
68
+        add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
69
+        add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
70
+        add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
71
+        add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
72
+        add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
73
+        add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
74
+        add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
75
+        do_action( 'getpaid_init_admin_hooks', $this );
76
+
77
+        // Setup/welcome
78
+        if ( ! empty( $_GET['page'] ) ) {
79
+            switch ( $_GET['page'] ) {
80
+                case 'gp-setup' :
81
+                    include_once( dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php' );
82
+                    break;
83
+            }
84
+        }
85 85
 
86 86
     }
87 87
 
88 88
     /**
89
-	 * Register admin scripts
90
-	 *
91
-	 */
92
-	public function enqeue_scripts() {
89
+     * Register admin scripts
90
+     *
91
+     */
92
+    public function enqeue_scripts() {
93 93
         global $current_screen, $pagenow;
94 94
 
95
-		$page    = isset( $_GET['page'] ) ? $_GET['page'] : '';
96
-		$editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
95
+        $page    = isset( $_GET['page'] ) ? $_GET['page'] : '';
96
+        $editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
97 97
 
98 98
         if ( ! empty( $current_screen->post_type ) ) {
99
-			$page = $current_screen->post_type;
99
+            $page = $current_screen->post_type;
100 100
         }
101 101
 
102 102
         // General styles.
@@ -117,54 +117,54 @@  discard block
 block discarded – undo
117 117
         }
118 118
 
119 119
         // Payment form scripts.
120
-		if ( 'wpi_payment_form' == $page && $editing ) {
120
+        if ( 'wpi_payment_form' == $page && $editing ) {
121 121
             $this->load_payment_form_scripts();
122 122
         }
123 123
 
124
-		if ( $page == 'wpinv-subscriptions' ) {
125
-			wp_enqueue_script( 'postbox' );
126
-		}
124
+        if ( $page == 'wpinv-subscriptions' ) {
125
+            wp_enqueue_script( 'postbox' );
126
+        }
127 127
 
128 128
     }
129 129
 
130 130
     /**
131
-	 * Returns admin js translations.
132
-	 *
133
-	 */
134
-	protected function get_admin_i18() {
131
+     * Returns admin js translations.
132
+     *
133
+     */
134
+    protected function get_admin_i18() {
135 135
         global $post;
136 136
 
137
-		$date_range = array(
138
-			'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days'
139
-		);
137
+        $date_range = array(
138
+            'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days'
139
+        );
140 140
 
141
-		if ( $date_range['period'] == 'custom' ) {
141
+        if ( $date_range['period'] == 'custom' ) {
142 142
 			
143
-			if ( isset( $_GET['from'] ) ) {
144
-				$date_range[ 'after' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
145
-			}
143
+            if ( isset( $_GET['from'] ) ) {
144
+                $date_range[ 'after' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
145
+            }
146 146
 
147
-			if ( isset( $_GET['to'] ) ) {
148
-				$date_range[ 'before' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
149
-			}
147
+            if ( isset( $_GET['to'] ) ) {
148
+                $date_range[ 'before' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
149
+            }
150 150
 
151
-		}
151
+        }
152 152
 
153 153
         $i18n = array(
154 154
             'ajax_url'                  => admin_url( 'admin-ajax.php' ),
155 155
             'post_ID'                   => isset( $post->ID ) ? $post->ID : '',
156
-			'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
157
-			'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
158
-			'rest_root'                 => esc_url_raw( rest_url() ),
159
-			'date_range'                => $date_range,
156
+            'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
157
+            'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
158
+            'rest_root'                 => esc_url_raw( rest_url() ),
159
+            'date_range'                => $date_range,
160 160
             'add_invoice_note_nonce'    => wp_create_nonce( 'add-invoice-note' ),
161 161
             'delete_invoice_note_nonce' => wp_create_nonce( 'delete-invoice-note' ),
162 162
             'invoice_item_nonce'        => wp_create_nonce( 'invoice-item' ),
163 163
             'billing_details_nonce'     => wp_create_nonce( 'get-billing-details' ),
164 164
             'tax'                       => wpinv_tax_amount(),
165 165
             'discount'                  => 0,
166
-			'currency_symbol'           => wpinv_currency_symbol(),
167
-			'currency'                  => wpinv_get_currency(),
166
+            'currency_symbol'           => wpinv_currency_symbol(),
167
+            'currency'                  => wpinv_get_currency(),
168 168
             'currency_pos'              => wpinv_currency_position(),
169 169
             'thousand_sep'              => wpinv_thousands_separator(),
170 170
             'decimal_sep'               => wpinv_decimal_separator(),
@@ -184,118 +184,118 @@  discard block
 block discarded – undo
184 184
             'item_description'          => __( 'Item Description', 'invoicing' ),
185 185
             'invoice_description'       => __( 'Invoice Description', 'invoicing' ),
186 186
             'discount_description'      => __( 'Discount Description', 'invoicing' ),
187
-			'searching'                 => __( 'Searching', 'invoicing' ),
188
-			'loading'                   => __( 'Loading...', 'invoicing' ),
189
-			'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
190
-			'search_items'              => __( 'Enter item name', 'invoicing' ),
187
+            'searching'                 => __( 'Searching', 'invoicing' ),
188
+            'loading'                   => __( 'Loading...', 'invoicing' ),
189
+            'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
190
+            'search_items'              => __( 'Enter item name', 'invoicing' ),
191 191
         );
192 192
 
193
-		if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
193
+        if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
194 194
 
195
-			$invoice              = new WPInv_Invoice( $post );
196
-			$i18n['save_invoice'] = sprintf(
197
-				__( 'Save %s', 'invoicing' ),
198
-				ucfirst( $invoice->get_invoice_quote_type() )
199
-			);
195
+            $invoice              = new WPInv_Invoice( $post );
196
+            $i18n['save_invoice'] = sprintf(
197
+                __( 'Save %s', 'invoicing' ),
198
+                ucfirst( $invoice->get_invoice_quote_type() )
199
+            );
200 200
 
201
-			$i18n['invoice_description'] = sprintf(
202
-				__( '%s Description', 'invoicing' ),
203
-				ucfirst( $invoice->get_invoice_quote_type() )
204
-			);
201
+            $i18n['invoice_description'] = sprintf(
202
+                __( '%s Description', 'invoicing' ),
203
+                ucfirst( $invoice->get_invoice_quote_type() )
204
+            );
205 205
 
206
-		}
207
-		return $i18n;
208
-	}
206
+        }
207
+        return $i18n;
208
+    }
209 209
 
210
-	/**
211
-	 * Change the admin footer text on GetPaid admin pages.
212
-	 *
213
-	 * @since  2.0.0
214
-	 * @param  string $footer_text
215
-	 * @return string
216
-	 */
217
-	public function admin_footer_text( $footer_text ) {
218
-		global $current_screen;
210
+    /**
211
+     * Change the admin footer text on GetPaid admin pages.
212
+     *
213
+     * @since  2.0.0
214
+     * @param  string $footer_text
215
+     * @return string
216
+     */
217
+    public function admin_footer_text( $footer_text ) {
218
+        global $current_screen;
219 219
 
220
-		$page    = isset( $_GET['page'] ) ? $_GET['page'] : '';
220
+        $page    = isset( $_GET['page'] ) ? $_GET['page'] : '';
221 221
 
222 222
         if ( ! empty( $current_screen->post_type ) ) {
223
-			$page = $current_screen->post_type;
223
+            $page = $current_screen->post_type;
224 224
         }
225 225
 
226 226
         // General styles.
227 227
         if ( apply_filters( 'getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing() ) && false !== stripos( $page, 'wpi' ) ) {
228 228
 
229
-			// Change the footer text
230
-			if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
231
-
232
-				$rating_url  = esc_url(
233
-					wp_nonce_url(
234
-						admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
235
-						'getpaid-nonce',
236
-						'getpaid-nonce'
237
-						)
238
-				);
239
-
240
-				$footer_text = sprintf(
241
-					/* translators: %s: five stars */
242
-					__( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
243
-					"<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
244
-				);
245
-
246
-			} else {
247
-
248
-				$footer_text = sprintf(
249
-					/* translators: %s: GetPaid */
250
-					__( 'Thank you for using %s!', 'invoicing' ),
251
-					"<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
252
-				);
253
-
254
-			}
255
-
256
-		}
257
-
258
-		return $footer_text;
259
-	}
260
-
261
-	/**
262
-	 * Redirects to wp.org to rate the plugin.
263
-	 *
264
-	 * @since  2.0.0
265
-	 */
266
-	public function redirect_to_wordpress_rating_page() {
267
-		update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
268
-		wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
269
-		exit;
270
-	}
271
-
272
-    /**
273
-	 * Loads payment form js.
274
-	 *
275
-	 */
276
-	protected function load_payment_form_scripts() {
229
+            // Change the footer text
230
+            if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
231
+
232
+                $rating_url  = esc_url(
233
+                    wp_nonce_url(
234
+                        admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
235
+                        'getpaid-nonce',
236
+                        'getpaid-nonce'
237
+                        )
238
+                );
239
+
240
+                $footer_text = sprintf(
241
+                    /* translators: %s: five stars */
242
+                    __( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
243
+                    "<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
244
+                );
245
+
246
+            } else {
247
+
248
+                $footer_text = sprintf(
249
+                    /* translators: %s: GetPaid */
250
+                    __( 'Thank you for using %s!', 'invoicing' ),
251
+                    "<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
252
+                );
253
+
254
+            }
255
+
256
+        }
257
+
258
+        return $footer_text;
259
+    }
260
+
261
+    /**
262
+     * Redirects to wp.org to rate the plugin.
263
+     *
264
+     * @since  2.0.0
265
+     */
266
+    public function redirect_to_wordpress_rating_page() {
267
+        update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
268
+        wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
269
+        exit;
270
+    }
271
+
272
+    /**
273
+     * Loads payment form js.
274
+     *
275
+     */
276
+    protected function load_payment_form_scripts() {
277 277
         global $post;
278 278
 
279 279
         wp_enqueue_script( 'vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.js', array(), WPINV_VERSION );
280
-		wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
281
-		wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
280
+        wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
281
+        wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
282 282
 
283
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
284
-		wp_register_script( 'wpinv-admin-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/admin-payment-forms.js', array( 'wpinv-admin-script', 'vue_draggable' ),  $version );
283
+        $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
284
+        wp_register_script( 'wpinv-admin-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/admin-payment-forms.js', array( 'wpinv-admin-script', 'vue_draggable' ),  $version );
285 285
 
286
-		wp_localize_script(
286
+        wp_localize_script(
287 287
             'wpinv-admin-payment-form-script',
288 288
             'wpinvPaymentFormAdmin',
289 289
             array(
290
-				'elements'      => wpinv_get_data( 'payment-form-elements' ),
291
-				'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
292
-				'currency'      => wpinv_currency_symbol(),
293
-				'position'      => wpinv_currency_position(),
294
-				'decimals'      => (int) wpinv_decimals(),
295
-				'thousands_sep' => wpinv_thousands_separator(),
296
-				'decimals_sep'  => wpinv_decimal_separator(),
297
-				'form_items'    => gepaid_get_form_items( $post->ID ),
298
-				'is_default'    => $post->ID == wpinv_get_default_payment_form(),
290
+                'elements'      => wpinv_get_data( 'payment-form-elements' ),
291
+                'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
292
+                'currency'      => wpinv_currency_symbol(),
293
+                'position'      => wpinv_currency_position(),
294
+                'decimals'      => (int) wpinv_decimals(),
295
+                'thousands_sep' => wpinv_thousands_separator(),
296
+                'decimals_sep'  => wpinv_decimal_separator(),
297
+                'form_items'    => gepaid_get_form_items( $post->ID ),
298
+                'is_default'    => $post->ID == wpinv_get_default_payment_form(),
299 299
             )
300 300
         );
301 301
 
@@ -304,20 +304,20 @@  discard block
 block discarded – undo
304 304
     }
305 305
 
306 306
     /**
307
-	 * Add our classes to admin pages.
307
+     * Add our classes to admin pages.
308 308
      *
309 309
      * @param string $classes
310 310
      * @return string
311
-	 *
312
-	 */
311
+     *
312
+     */
313 313
     public function admin_body_class( $classes ) {
314
-		global $pagenow, $post, $current_screen;
314
+        global $pagenow, $post, $current_screen;
315 315
 
316 316
 
317 317
         $page = isset( $_GET['page'] ) ? $_GET['page'] : '';
318 318
 
319 319
         if ( ! empty( $current_screen->post_type ) ) {
320
-			$page = $current_screen->post_type;
320
+            $page = $current_screen->post_type;
321 321
         }
322 322
 
323 323
         if ( false !== stripos( $page, 'wpi' ) ) {
@@ -326,68 +326,68 @@  discard block
 block discarded – undo
326 326
 
327 327
         if ( in_array( $page, wpinv_parse_list( 'wpi_invoice wpi_payment_form wpi_quote' ) ) ) {
328 328
             $classes .= ' wpinv-cpt wpinv';
329
-		}
329
+        }
330 330
 		
331
-		if ( getpaid_is_invoice_post_type( $page ) ) {
331
+        if ( getpaid_is_invoice_post_type( $page ) ) {
332 332
             $classes .= ' getpaid-is-invoice-cpt';
333 333
         }
334 334
 
335
-		return $classes;
335
+        return $classes;
336 336
     }
337 337
 
338 338
     /**
339
-	 * Maybe show the AyeCode Connect Notice.
340
-	 */
341
-	public function init_ayecode_connect_helper(){
339
+     * Maybe show the AyeCode Connect Notice.
340
+     */
341
+    public function init_ayecode_connect_helper(){
342 342
 
343
-		// Register with the deactivation survey class.
344
-		AyeCode_Deactivation_Survey::instance(array(
345
-			'slug'		        => 'invoicing',
346
-			'version'	        => WPINV_VERSION,
347
-			'support_url'       => 'https://wpgetpaid.com/support/',
348
-			'documentation_url' => 'https://docs.wpgetpaid.com/',
349
-			'activated'         => (int) get_option( 'gepaid_installed_on' ),
350
-		));
343
+        // Register with the deactivation survey class.
344
+        AyeCode_Deactivation_Survey::instance(array(
345
+            'slug'		        => 'invoicing',
346
+            'version'	        => WPINV_VERSION,
347
+            'support_url'       => 'https://wpgetpaid.com/support/',
348
+            'documentation_url' => 'https://docs.wpgetpaid.com/',
349
+            'activated'         => (int) get_option( 'gepaid_installed_on' ),
350
+        ));
351 351
 
352 352
         new AyeCode_Connect_Helper(
353 353
             array(
354
-				'connect_title' => __("WP Invoicing - an AyeCode product!","invoicing"),
355
-				'connect_external'  => __( "Please confirm you wish to connect your site?","invoicing" ),
356
-				'connect'           => sprintf( __( "<strong>Have a license?</strong> Forget about entering license keys or downloading zip files, connect your site for instant access. %slearn more%s","invoicing" ),"<a href='https://ayecode.io/introducing-ayecode-connect/' target='_blank'>","</a>" ),
357
-				'connect_button'    => __("Connect Site","invoicing"),
358
-				'connecting_button'    => __("Connecting...","invoicing"),
359
-				'error_localhost'   => __( "This service will only work with a live domain, not a localhost.","invoicing" ),
360
-				'error'             => __( "Something went wrong, please refresh and try again.","invoicing" ),
354
+                'connect_title' => __("WP Invoicing - an AyeCode product!","invoicing"),
355
+                'connect_external'  => __( "Please confirm you wish to connect your site?","invoicing" ),
356
+                'connect'           => sprintf( __( "<strong>Have a license?</strong> Forget about entering license keys or downloading zip files, connect your site for instant access. %slearn more%s","invoicing" ),"<a href='https://ayecode.io/introducing-ayecode-connect/' target='_blank'>","</a>" ),
357
+                'connect_button'    => __("Connect Site","invoicing"),
358
+                'connecting_button'    => __("Connecting...","invoicing"),
359
+                'error_localhost'   => __( "This service will only work with a live domain, not a localhost.","invoicing" ),
360
+                'error'             => __( "Something went wrong, please refresh and try again.","invoicing" ),
361 361
             ),
362 362
             array( 'wpi-addons' )
363 363
         );
364 364
 
365 365
     }
366 366
 
367
-	/**
368
-	 * Redirect users to settings on activation.
369
-	 *
370
-	 * @return void
371
-	 */
372
-	public function activation_redirect() {
367
+    /**
368
+     * Redirect users to settings on activation.
369
+     *
370
+     * @return void
371
+     */
372
+    public function activation_redirect() {
373 373
 
374
-		$redirected = get_option( 'wpinv_redirected_to_settings' );
374
+        $redirected = get_option( 'wpinv_redirected_to_settings' );
375 375
 
376
-		if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
377
-			return;
378
-		}
376
+        if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
377
+            return;
378
+        }
379 379
 
380
-		// Bail if activating from network, or bulk
381
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
382
-			return;
383
-		}
380
+        // Bail if activating from network, or bulk
381
+        if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
382
+            return;
383
+        }
384 384
 
385
-	    update_option( 'wpinv_redirected_to_settings', 1 );
385
+        update_option( 'wpinv_redirected_to_settings', 1 );
386 386
 
387 387
         wp_safe_redirect( admin_url( 'index.php?page=gp-setup' ) );
388 388
         exit;
389 389
 
390
-	}
390
+    }
391 391
 
392 392
     /**
393 393
      * Fires an admin action after verifying that a user can fire them.
@@ -401,458 +401,458 @@  discard block
 block discarded – undo
401 401
 
402 402
     }
403 403
 
404
-	/**
404
+    /**
405 405
      * Sends a payment reminder to a customer.
406
-	 * 
407
-	 * @param array $args
406
+     * 
407
+     * @param array $args
408 408
      */
409 409
     public function send_customer_invoice( $args ) {
410
-		$sent = getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
410
+        $sent = getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
411 411
 
412
-		if ( $sent ) {
413
-			$this->show_success( __( 'Invoice was successfully sent to the customer', 'invoicing' ) );
414
-		} else {
415
-			$this->show_error( __( 'Could not send the invoice to the customer', 'invoicing' ) );
416
-		}
412
+        if ( $sent ) {
413
+            $this->show_success( __( 'Invoice was successfully sent to the customer', 'invoicing' ) );
414
+        } else {
415
+            $this->show_error( __( 'Could not send the invoice to the customer', 'invoicing' ) );
416
+        }
417 417
 
418
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
419
-		exit;
420
-	}
418
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
419
+        exit;
420
+    }
421 421
 
422
-	/**
422
+    /**
423 423
      * Sends a payment reminder to a customer.
424
-	 * 
425
-	 * @param array $args
424
+     * 
425
+     * @param array $args
426 426
      */
427 427
     public function send_customer_payment_reminder( $args ) {
428
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
428
+        $sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
429 429
 
430
-		if ( $sent ) {
431
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
432
-		} else {
433
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
434
-		}
430
+        if ( $sent ) {
431
+            $this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
432
+        } else {
433
+            $this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
434
+        }
435 435
 
436
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
437
-		exit;
438
-	}
436
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
437
+        exit;
438
+    }
439 439
 
440
-	/**
440
+    /**
441 441
      * Resets tax rates.
442
-	 * 
442
+     * 
443 443
      */
444 444
     public function admin_reset_tax_rates() {
445 445
 
446
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
447
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
448
-		exit;
446
+        update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
447
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
448
+        exit;
449 449
 
450
-	}
450
+    }
451 451
 
452
-	/**
452
+    /**
453 453
      * Resets admin pages.
454
-	 * 
454
+     * 
455 455
      */
456 456
     public function admin_create_missing_pages() {
457
-		$installer = new GetPaid_Installer();
458
-		$installer->create_pages();
459
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
460
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
461
-		exit;
462
-	}
463
-
464
-	/**
457
+        $installer = new GetPaid_Installer();
458
+        $installer->create_pages();
459
+        $this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
460
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
461
+        exit;
462
+    }
463
+
464
+    /**
465 465
      * Creates an missing admin tables.
466
-	 * 
466
+     * 
467 467
      */
468 468
     public function admin_create_missing_tables() {
469
-		global $wpdb;
470
-		$installer = new GetPaid_Installer();
469
+        global $wpdb;
470
+        $installer = new GetPaid_Installer();
471 471
 
472
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
473
-			$installer->create_subscriptions_table();
472
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
473
+            $installer->create_subscriptions_table();
474 474
 
475
-			if ( $wpdb->last_error !== '' ) {
476
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
477
-			}
478
-		}
475
+            if ( $wpdb->last_error !== '' ) {
476
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
477
+            }
478
+        }
479 479
 
480
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
481
-			$installer->create_invoices_table();
480
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
481
+            $installer->create_invoices_table();
482 482
 
483
-			if ( $wpdb->last_error !== '' ) {
484
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
485
-			}
486
-		}
483
+            if ( $wpdb->last_error !== '' ) {
484
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
485
+            }
486
+        }
487 487
 
488
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
489
-			$installer->create_invoice_items_table();
488
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
489
+            $installer->create_invoice_items_table();
490 490
 
491
-			if ( $wpdb->last_error !== '' ) {
492
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
493
-			}
494
-		}
491
+            if ( $wpdb->last_error !== '' ) {
492
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
493
+            }
494
+        }
495 495
 
496
-		if ( ! $this->has_notices() ) {
497
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
498
-		}
496
+        if ( ! $this->has_notices() ) {
497
+            $this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
498
+        }
499 499
 
500
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
501
-		exit;
502
-	}
500
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
501
+        exit;
502
+    }
503 503
 
504
-	/**
504
+    /**
505 505
      * Migrates old invoices to the new database tables.
506
-	 * 
506
+     * 
507 507
      */
508 508
     public function admin_migrate_old_invoices() {
509 509
 
510
-		// Migrate the invoices.
511
-		$installer = new GetPaid_Installer();
512
-		$installer->migrate_old_invoices();
510
+        // Migrate the invoices.
511
+        $installer = new GetPaid_Installer();
512
+        $installer->migrate_old_invoices();
513 513
 
514
-		// Show an admin message.
515
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
514
+        // Show an admin message.
515
+        $this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
516 516
 
517
-		// Redirect the admin.
518
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
519
-		exit;
517
+        // Redirect the admin.
518
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
519
+        exit;
520 520
 
521
-	}
521
+    }
522 522
 
523
-	/**
523
+    /**
524 524
      * Download customers.
525
-	 * 
525
+     * 
526 526
      */
527 527
     public function admin_download_customers() {
528
-		global $wpdb;
528
+        global $wpdb;
529 529
 
530
-		$output = fopen( 'php://output', 'w' ) or die( __( 'Unsupported server', 'invoicing' ) );
530
+        $output = fopen( 'php://output', 'w' ) or die( __( 'Unsupported server', 'invoicing' ) );
531 531
 
532
-		header( "Content-Type:text/csv" );
533
-		header( "Content-Disposition:attachment;filename=customers.csv" );
532
+        header( "Content-Type:text/csv" );
533
+        header( "Content-Disposition:attachment;filename=customers.csv" );
534 534
 
535
-		$post_types = '';
535
+        $post_types = '';
536 536
 
537
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
538
-			$post_types .= $wpdb->prepare( "post_type=%s OR ", $post_type );
539
-		}
537
+        foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
538
+            $post_types .= $wpdb->prepare( "post_type=%s OR ", $post_type );
539
+        }
540 540
 
541
-		$post_types = rtrim( $post_types, ' OR' );
541
+        $post_types = rtrim( $post_types, ' OR' );
542 542
 
543
-		$customers = $wpdb->get_col(
544
-			$wpdb->prepare(
545
-				"SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types"
546
-			)
547
-		);
543
+        $customers = $wpdb->get_col(
544
+            $wpdb->prepare(
545
+                "SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types"
546
+            )
547
+        );
548 548
 
549
-		$columns = array(
550
-			'name'     => __( 'Name', 'invoicing' ),
551
-			'email'    => __( 'Email', 'invoicing' ),
552
-			'country'  => __( 'Country', 'invoicing' ),
553
-			'state'    => __( 'State', 'invoicing' ),
554
-			'city'     => __( 'City', 'invoicing' ),
555
-			'zip'      => __( 'ZIP', 'invoicing' ),
556
-			'address'  => __( 'Address', 'invoicing' ),
557
-			'phone'    => __( 'Phone', 'invoicing' ),
558
-			'company'  => __( 'Company', 'invoicing' ),
559
-			'invoices' => __( 'Invoices', 'invoicing' ),
560
-			'total_raw' => __( 'Total Spend', 'invoicing' ),
561
-			'signup'   => __( 'Date created', 'invoicing' ),
562
-		);
549
+        $columns = array(
550
+            'name'     => __( 'Name', 'invoicing' ),
551
+            'email'    => __( 'Email', 'invoicing' ),
552
+            'country'  => __( 'Country', 'invoicing' ),
553
+            'state'    => __( 'State', 'invoicing' ),
554
+            'city'     => __( 'City', 'invoicing' ),
555
+            'zip'      => __( 'ZIP', 'invoicing' ),
556
+            'address'  => __( 'Address', 'invoicing' ),
557
+            'phone'    => __( 'Phone', 'invoicing' ),
558
+            'company'  => __( 'Company', 'invoicing' ),
559
+            'invoices' => __( 'Invoices', 'invoicing' ),
560
+            'total_raw' => __( 'Total Spend', 'invoicing' ),
561
+            'signup'   => __( 'Date created', 'invoicing' ),
562
+        );
563 563
 
564
-		// Output the csv column headers.
565
-		fputcsv( $output, array_values( $columns ) );
564
+        // Output the csv column headers.
565
+        fputcsv( $output, array_values( $columns ) );
566 566
 
567
-		// Loop through
568
-		$table = new WPInv_Customers_Table();
569
-		foreach ( $customers as $customer_id ) {
567
+        // Loop through
568
+        $table = new WPInv_Customers_Table();
569
+        foreach ( $customers as $customer_id ) {
570 570
 
571
-			$user = get_user_by( 'id', $customer_id );
572
-			$row  = array();
573
-			if ( empty( $user ) ) {
574
-				continue;
575
-			}
571
+            $user = get_user_by( 'id', $customer_id );
572
+            $row  = array();
573
+            if ( empty( $user ) ) {
574
+                continue;
575
+            }
576 576
 
577
-			foreach ( array_keys( $columns ) as $column ) {
577
+            foreach ( array_keys( $columns ) as $column ) {
578 578
 
579
-				$method = 'column_' . $column;
579
+                $method = 'column_' . $column;
580 580
 
581
-				if ( 'name' == $column ) {
582
-					$value = sanitize_text_field( $user->display_name );
583
-				} else if( 'email' == $column ) {
584
-					$value = sanitize_email( $user->user_email );
585
-				} else if ( is_callable( array( $table, $method ) ) ) {
586
-					$value = strip_tags( $table->$method( $user ) );
587
-				}
581
+                if ( 'name' == $column ) {
582
+                    $value = sanitize_text_field( $user->display_name );
583
+                } else if( 'email' == $column ) {
584
+                    $value = sanitize_email( $user->user_email );
585
+                } else if ( is_callable( array( $table, $method ) ) ) {
586
+                    $value = strip_tags( $table->$method( $user ) );
587
+                }
588 588
 
589
-				if ( empty( $value ) ) {
590
-					$value = sanitize_text_field( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
591
-				}
589
+                if ( empty( $value ) ) {
590
+                    $value = sanitize_text_field( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
591
+                }
592 592
 
593
-				$row[] = $value;
593
+                $row[] = $value;
594 594
 
595
-			}
595
+            }
596 596
 
597
-			fputcsv( $output, $row );
598
-		}
597
+            fputcsv( $output, $row );
598
+        }
599 599
 
600
-		fclose( $output );
601
-		exit;
600
+        fclose( $output );
601
+        exit;
602 602
 
603
-	}
603
+    }
604 604
 
605
-	/**
605
+    /**
606 606
      * Installs a plugin.
607
-	 *
608
-	 * @param array $data
607
+     *
608
+     * @param array $data
609 609
      */
610 610
     public function admin_install_plugin( $data ) {
611 611
 
612
-		if ( ! empty( $data['plugins'] ) ) {
613
-			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
614
-			wp_cache_flush();
612
+        if ( ! empty( $data['plugins'] ) ) {
613
+            include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
614
+            wp_cache_flush();
615 615
 
616
-			foreach ( $data['plugins'] as $slug => $file ) {
617
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
618
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
619
-				$installed  = $upgrader->install( $plugin_zip );
616
+            foreach ( $data['plugins'] as $slug => $file ) {
617
+                $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
618
+                $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
619
+                $installed  = $upgrader->install( $plugin_zip );
620 620
 
621
-				if ( ! is_wp_error( $installed ) && $installed ) {
622
-					activate_plugin( $file, '', false, true );
623
-				} else {
624
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
625
-				}
621
+                if ( ! is_wp_error( $installed ) && $installed ) {
622
+                    activate_plugin( $file, '', false, true );
623
+                } else {
624
+                    wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
625
+                }
626 626
 
627
-			}
627
+            }
628 628
 
629
-		}
629
+        }
630 630
 
631
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
632
-		wp_safe_redirect( $redirect );
633
-		exit;
631
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
632
+        wp_safe_redirect( $redirect );
633
+        exit;
634 634
 
635
-	}
635
+    }
636 636
 
637
-	/**
637
+    /**
638 638
      * Connects a gateway.
639
-	 *
640
-	 * @param array $data
639
+     *
640
+     * @param array $data
641 641
      */
642 642
     public function admin_connect_gateway( $data ) {
643 643
 
644
-		if ( ! empty( $data['plugin'] ) ) {
644
+        if ( ! empty( $data['plugin'] ) ) {
645 645
 
646
-			$gateway     = sanitize_key( $data['plugin'] );
647
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
646
+            $gateway     = sanitize_key( $data['plugin'] );
647
+            $connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
648 648
 
649
-			if ( ! empty( $connect_url ) ) {
650
-				wp_redirect( $connect_url );
651
-				exit;
652
-			}
649
+            if ( ! empty( $connect_url ) ) {
650
+                wp_redirect( $connect_url );
651
+                exit;
652
+            }
653 653
 
654
-			if ( 'stripe' == $data['plugin'] ) {
655
-				require_once ABSPATH . 'wp-admin/includes/plugin.php';
654
+            if ( 'stripe' == $data['plugin'] ) {
655
+                require_once ABSPATH . 'wp-admin/includes/plugin.php';
656 656
 
657
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
658
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
659
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
660
-					$upgrader->install( $plugin_zip );
661
-				}
657
+                if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
658
+                    $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
659
+                    $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
660
+                    $upgrader->install( $plugin_zip );
661
+                }
662 662
 
663
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
664
-			}
663
+                activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
664
+            }
665 665
 
666
-			if ( ! empty( $connect_url ) ) {
667
-				wp_redirect( $connect_url );
668
-				exit;
669
-			}
666
+            if ( ! empty( $connect_url ) ) {
667
+                wp_redirect( $connect_url );
668
+                exit;
669
+            }
670 670
 
671
-		}
671
+        }
672 672
 
673
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
674
-		wp_safe_redirect( $redirect );
675
-		exit;
673
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
674
+        wp_safe_redirect( $redirect );
675
+        exit;
676 676
 
677
-	}
677
+    }
678 678
 
679
-	/**
679
+    /**
680 680
      * Recalculates discounts.
681
-	 * 
681
+     * 
682 682
      */
683 683
     public function admin_recalculate_discounts() {
684
-		global $wpdb;
684
+        global $wpdb;
685 685
 
686
-		// Fetch all invoices that have discount codes.
687
-		$table    = $wpdb->prefix . 'getpaid_invoices';
688
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
686
+        // Fetch all invoices that have discount codes.
687
+        $table    = $wpdb->prefix . 'getpaid_invoices';
688
+        $invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
689 689
 
690
-		foreach ( $invoices as $invoice ) {
690
+        foreach ( $invoices as $invoice ) {
691 691
 
692
-			$invoice = new WPInv_Invoice( $invoice );
692
+            $invoice = new WPInv_Invoice( $invoice );
693 693
 
694
-			if ( ! $invoice->exists() ) {
695
-				continue;
696
-			}
694
+            if ( ! $invoice->exists() ) {
695
+                continue;
696
+            }
697 697
 
698
-			// Abort if the discount does not exist or does not apply here.
699
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
700
-			if ( ! $discount->exists() ) {
701
-				continue;
702
-			}
698
+            // Abort if the discount does not exist or does not apply here.
699
+            $discount = new WPInv_Discount( $invoice->get_discount_code() );
700
+            if ( ! $discount->exists() ) {
701
+                continue;
702
+            }
703 703
 
704
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
705
-			$invoice->recalculate_total();
704
+            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
705
+            $invoice->recalculate_total();
706 706
 
707
-			if ( $invoice->get_total_discount() > 0 ) {
708
-				$invoice->save();
709
-			}
707
+            if ( $invoice->get_total_discount() > 0 ) {
708
+                $invoice->save();
709
+            }
710 710
 
711
-		}
711
+        }
712 712
 
713
-		// Show an admin message.
714
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
713
+        // Show an admin message.
714
+        $this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
715 715
 
716
-		// Redirect the admin.
717
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
718
-		exit;
716
+        // Redirect the admin.
717
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
718
+        exit;
719 719
 
720
-	}
720
+    }
721 721
 
722 722
     /**
723
-	 * Returns an array of admin notices.
724
-	 *
725
-	 * @since       1.0.19
723
+     * Returns an array of admin notices.
724
+     *
725
+     * @since       1.0.19
726 726
      * @return array
727
-	 */
728
-	public function get_notices() {
729
-		$notices = get_option( 'wpinv_admin_notices' );
727
+     */
728
+    public function get_notices() {
729
+        $notices = get_option( 'wpinv_admin_notices' );
730 730
         return is_array( $notices ) ? $notices : array();
731
-	}
731
+    }
732 732
 
733
-	/**
734
-	 * Checks if we have any admin notices.
735
-	 *
736
-	 * @since       2.0.4
733
+    /**
734
+     * Checks if we have any admin notices.
735
+     *
736
+     * @since       2.0.4
737 737
      * @return array
738
-	 */
739
-	public function has_notices() {
740
-		return count( $this->get_notices() ) > 0;
741
-	}
742
-
743
-	/**
744
-	 * Clears all admin notices
745
-	 *
746
-	 * @access      public
747
-	 * @since       1.0.19
748
-	 */
749
-	public function clear_notices() {
750
-		delete_option( 'wpinv_admin_notices' );
751
-	}
752
-
753
-	/**
754
-	 * Saves a new admin notice
755
-	 *
756
-	 * @access      public
757
-	 * @since       1.0.19
758
-	 */
759
-	public function save_notice( $type, $message ) {
760
-		$notices = $this->get_notices();
761
-
762
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ]) ) {
763
-			$notices[ $type ] = array();
764
-		}
765
-
766
-		$notices[ $type ][] = $message;
767
-
768
-		update_option( 'wpinv_admin_notices', $notices );
769
-	}
770
-
771
-	/**
772
-	 * Displays a success notice
773
-	 *
774
-	 * @param       string $msg The message to qeue.
775
-	 * @access      public
776
-	 * @since       1.0.19
777
-	 */
778
-	public function show_success( $msg ) {
779
-		$this->save_notice( 'success', $msg );
780
-	}
781
-
782
-	/**
783
-	 * Displays a error notice
784
-	 *
785
-	 * @access      public
786
-	 * @param       string $msg The message to qeue.
787
-	 * @since       1.0.19
788
-	 */
789
-	public function show_error( $msg ) {
790
-		$this->save_notice( 'error', $msg );
791
-	}
792
-
793
-	/**
794
-	 * Displays a warning notice
795
-	 *
796
-	 * @access      public
797
-	 * @param       string $msg The message to qeue.
798
-	 * @since       1.0.19
799
-	 */
800
-	public function show_warning( $msg ) {
801
-		$this->save_notice( 'warning', $msg );
802
-	}
803
-
804
-	/**
805
-	 * Displays a info notice
806
-	 *
807
-	 * @access      public
808
-	 * @param       string $msg The message to qeue.
809
-	 * @since       1.0.19
810
-	 */
811
-	public function show_info( $msg ) {
812
-		$this->save_notice( 'info', $msg );
813
-	}
814
-
815
-	/**
816
-	 * Show notices
817
-	 *
818
-	 * @access      public
819
-	 * @since       1.0.19
820
-	 */
821
-	public function show_notices() {
738
+     */
739
+    public function has_notices() {
740
+        return count( $this->get_notices() ) > 0;
741
+    }
742
+
743
+    /**
744
+     * Clears all admin notices
745
+     *
746
+     * @access      public
747
+     * @since       1.0.19
748
+     */
749
+    public function clear_notices() {
750
+        delete_option( 'wpinv_admin_notices' );
751
+    }
752
+
753
+    /**
754
+     * Saves a new admin notice
755
+     *
756
+     * @access      public
757
+     * @since       1.0.19
758
+     */
759
+    public function save_notice( $type, $message ) {
760
+        $notices = $this->get_notices();
761
+
762
+        if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ]) ) {
763
+            $notices[ $type ] = array();
764
+        }
765
+
766
+        $notices[ $type ][] = $message;
767
+
768
+        update_option( 'wpinv_admin_notices', $notices );
769
+    }
770
+
771
+    /**
772
+     * Displays a success notice
773
+     *
774
+     * @param       string $msg The message to qeue.
775
+     * @access      public
776
+     * @since       1.0.19
777
+     */
778
+    public function show_success( $msg ) {
779
+        $this->save_notice( 'success', $msg );
780
+    }
781
+
782
+    /**
783
+     * Displays a error notice
784
+     *
785
+     * @access      public
786
+     * @param       string $msg The message to qeue.
787
+     * @since       1.0.19
788
+     */
789
+    public function show_error( $msg ) {
790
+        $this->save_notice( 'error', $msg );
791
+    }
792
+
793
+    /**
794
+     * Displays a warning notice
795
+     *
796
+     * @access      public
797
+     * @param       string $msg The message to qeue.
798
+     * @since       1.0.19
799
+     */
800
+    public function show_warning( $msg ) {
801
+        $this->save_notice( 'warning', $msg );
802
+    }
803
+
804
+    /**
805
+     * Displays a info notice
806
+     *
807
+     * @access      public
808
+     * @param       string $msg The message to qeue.
809
+     * @since       1.0.19
810
+     */
811
+    public function show_info( $msg ) {
812
+        $this->save_notice( 'info', $msg );
813
+    }
814
+
815
+    /**
816
+     * Show notices
817
+     *
818
+     * @access      public
819
+     * @since       1.0.19
820
+     */
821
+    public function show_notices() {
822 822
 
823 823
         $notices = $this->get_notices();
824 824
         $this->clear_notices();
825 825
 
826
-		foreach ( $notices as $type => $messages ) {
826
+        foreach ( $notices as $type => $messages ) {
827 827
 
828
-			if ( ! is_array( $messages ) ) {
829
-				continue;
830
-			}
828
+            if ( ! is_array( $messages ) ) {
829
+                continue;
830
+            }
831 831
 
832 832
             $type  = sanitize_key( $type );
833
-			foreach ( $messages as $message ) {
833
+            foreach ( $messages as $message ) {
834 834
                 $message = wp_kses_post( $message );
835
-				echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
835
+                echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
836 836
             }
837 837
 
838 838
         }
839 839
 
840
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
841
-
842
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
843
-				$url     = wp_nonce_url(
844
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
845
-					'getpaid-nonce',
846
-					'getpaid-nonce'
847
-				);
848
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
849
-				$message2 = __( 'Generate Pages', 'invoicing' );
850
-				echo "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>";
851
-				break;
852
-			}
840
+        foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
841
+
842
+            if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
843
+                $url     = wp_nonce_url(
844
+                    add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
845
+                    'getpaid-nonce',
846
+                    'getpaid-nonce'
847
+                );
848
+                $message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
849
+                $message2 = __( 'Generate Pages', 'invoicing' );
850
+                echo "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>";
851
+                break;
852
+            }
853 853
 
854
-		}
854
+        }
855 855
 
856
-	}
856
+    }
857 857
 
858 858
 }
Please login to merge, or discard this patch.
Spacing   +253 added lines, -253 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 
9 9
 /**
10 10
  * The main admin class.
@@ -37,13 +37,13 @@  discard block
 block discarded – undo
37 37
     /**
38 38
 	 * Class constructor.
39 39
 	 */
40
-	public function __construct(){
40
+	public function __construct() {
41 41
 
42
-        $this->admin_path  = plugin_dir_path( __FILE__ );
43
-		$this->admin_url   = plugins_url( '/', __FILE__ );
42
+        $this->admin_path = plugin_dir_path(__FILE__);
43
+		$this->admin_url   = plugins_url('/', __FILE__);
44 44
 		$this->reports     = new GetPaid_Reports();
45 45
 
46
-        if ( is_admin() ) {
46
+        if (is_admin()) {
47 47
 			$this->init_admin_hooks();
48 48
         }
49 49
 
@@ -54,31 +54,31 @@  discard block
 block discarded – undo
54 54
 	 *
55 55
 	 */
56 56
 	private function init_admin_hooks() {
57
-        add_action( 'admin_enqueue_scripts', array( $this, 'enqeue_scripts' ) );
58
-        add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) );
59
-        add_action( 'admin_init', array( $this, 'init_ayecode_connect_helper' ) );
60
-        add_action( 'admin_init', array( $this, 'activation_redirect') );
61
-        add_action( 'admin_init', array( $this, 'maybe_do_admin_action') );
62
-		add_action( 'admin_notices', array( $this, 'show_notices' ) );
63
-		add_action( 'getpaid_authenticated_admin_action_rate_plugin', array( $this, 'redirect_to_wordpress_rating_page' ) );
64
-		add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
65
-		add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
66
-        add_action( 'getpaid_authenticated_admin_action_reset_tax_rates', array( $this, 'admin_reset_tax_rates' ) );
67
-		add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
68
-		add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
69
-		add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
70
-		add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
71
-		add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
72
-		add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
73
-		add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
74
-		add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
75
-		do_action( 'getpaid_init_admin_hooks', $this );
57
+        add_action('admin_enqueue_scripts', array($this, 'enqeue_scripts'));
58
+        add_filter('admin_body_class', array($this, 'admin_body_class'));
59
+        add_action('admin_init', array($this, 'init_ayecode_connect_helper'));
60
+        add_action('admin_init', array($this, 'activation_redirect'));
61
+        add_action('admin_init', array($this, 'maybe_do_admin_action'));
62
+		add_action('admin_notices', array($this, 'show_notices'));
63
+		add_action('getpaid_authenticated_admin_action_rate_plugin', array($this, 'redirect_to_wordpress_rating_page'));
64
+		add_action('getpaid_authenticated_admin_action_send_invoice', array($this, 'send_customer_invoice'));
65
+		add_action('getpaid_authenticated_admin_action_send_invoice_reminder', array($this, 'send_customer_payment_reminder'));
66
+        add_action('getpaid_authenticated_admin_action_reset_tax_rates', array($this, 'admin_reset_tax_rates'));
67
+		add_action('getpaid_authenticated_admin_action_create_missing_pages', array($this, 'admin_create_missing_pages'));
68
+		add_action('getpaid_authenticated_admin_action_create_missing_tables', array($this, 'admin_create_missing_tables'));
69
+		add_action('getpaid_authenticated_admin_action_migrate_old_invoices', array($this, 'admin_migrate_old_invoices'));
70
+		add_action('getpaid_authenticated_admin_action_download_customers', array($this, 'admin_download_customers'));
71
+		add_action('getpaid_authenticated_admin_action_recalculate_discounts', array($this, 'admin_recalculate_discounts'));
72
+		add_action('getpaid_authenticated_admin_action_install_plugin', array($this, 'admin_install_plugin'));
73
+		add_action('getpaid_authenticated_admin_action_connect_gateway', array($this, 'admin_connect_gateway'));
74
+		add_filter('admin_footer_text', array($this, 'admin_footer_text'));
75
+		do_action('getpaid_init_admin_hooks', $this);
76 76
 
77 77
 		// Setup/welcome
78
-		if ( ! empty( $_GET['page'] ) ) {
79
-			switch ( $_GET['page'] ) {
78
+		if (!empty($_GET['page'])) {
79
+			switch ($_GET['page']) {
80 80
 				case 'gp-setup' :
81
-					include_once( dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php' );
81
+					include_once(dirname(__FILE__) . '/class-getpaid-admin-setup-wizard.php');
82 82
 					break;
83 83
 			}
84 84
 		}
@@ -92,37 +92,37 @@  discard block
 block discarded – undo
92 92
 	public function enqeue_scripts() {
93 93
         global $current_screen, $pagenow;
94 94
 
95
-		$page    = isset( $_GET['page'] ) ? $_GET['page'] : '';
95
+		$page    = isset($_GET['page']) ? $_GET['page'] : '';
96 96
 		$editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
97 97
 
98
-        if ( ! empty( $current_screen->post_type ) ) {
98
+        if (!empty($current_screen->post_type)) {
99 99
 			$page = $current_screen->post_type;
100 100
         }
101 101
 
102 102
         // General styles.
103
-        if ( false !== stripos( $page, 'wpi' ) || 'gp-setup' == $page ) {
103
+        if (false !== stripos($page, 'wpi') || 'gp-setup' == $page) {
104 104
 
105 105
             // Styles.
106
-            $version = filemtime( WPINV_PLUGIN_DIR . 'assets/css/admin.css' );
107
-            wp_enqueue_style( 'wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array( 'wp-color-picker' ), $version );
108
-            wp_enqueue_style( 'select2', WPINV_PLUGIN_URL . 'assets/css/select2/select2.min.css', array(), '4.0.13', 'all' );
106
+            $version = filemtime(WPINV_PLUGIN_DIR . 'assets/css/admin.css');
107
+            wp_enqueue_style('wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array('wp-color-picker'), $version);
108
+            wp_enqueue_style('select2', WPINV_PLUGIN_URL . 'assets/css/select2/select2.min.css', array(), '4.0.13', 'all');
109 109
 
110 110
             // Scripts.
111
-            wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full.min.js', array( 'jquery' ), WPINV_VERSION );
111
+            wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full.min.js', array('jquery'), WPINV_VERSION);
112 112
 
113
-            $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin.js' );
114
-            wp_enqueue_script( 'wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array( 'jquery', 'wp-color-picker', 'jquery-ui-tooltip' ),  $version );
115
-            wp_localize_script( 'wpinv-admin-script', 'WPInv_Admin', apply_filters( 'wpinv_admin_js_localize', $this->get_admin_i18() ) );
113
+            $version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/admin.js');
114
+            wp_enqueue_script('wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array('jquery', 'wp-color-picker', 'jquery-ui-tooltip'), $version);
115
+            wp_localize_script('wpinv-admin-script', 'WPInv_Admin', apply_filters('wpinv_admin_js_localize', $this->get_admin_i18()));
116 116
 
117 117
         }
118 118
 
119 119
         // Payment form scripts.
120
-		if ( 'wpi_payment_form' == $page && $editing ) {
120
+		if ('wpi_payment_form' == $page && $editing) {
121 121
             $this->load_payment_form_scripts();
122 122
         }
123 123
 
124
-		if ( $page == 'wpinv-subscriptions' ) {
125
-			wp_enqueue_script( 'postbox' );
124
+		if ($page == 'wpinv-subscriptions') {
125
+			wp_enqueue_script('postbox');
126 126
 		}
127 127
 
128 128
     }
@@ -135,32 +135,32 @@  discard block
 block discarded – undo
135 135
         global $post;
136 136
 
137 137
 		$date_range = array(
138
-			'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days'
138
+			'period' => isset($_GET['date_range']) ? sanitize_text_field($_GET['date_range']) : '7_days'
139 139
 		);
140 140
 
141
-		if ( $date_range['period'] == 'custom' ) {
141
+		if ($date_range['period'] == 'custom') {
142 142
 			
143
-			if ( isset( $_GET['from'] ) ) {
144
-				$date_range[ 'after' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
143
+			if (isset($_GET['from'])) {
144
+				$date_range['after'] = date('Y-m-d', strtotime(sanitize_text_field($_GET['from']), current_time('timestamp')) - DAY_IN_SECONDS);
145 145
 			}
146 146
 
147
-			if ( isset( $_GET['to'] ) ) {
148
-				$date_range[ 'before' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
147
+			if (isset($_GET['to'])) {
148
+				$date_range['before'] = date('Y-m-d', strtotime(sanitize_text_field($_GET['to']), current_time('timestamp')) + DAY_IN_SECONDS);
149 149
 			}
150 150
 
151 151
 		}
152 152
 
153 153
         $i18n = array(
154
-            'ajax_url'                  => admin_url( 'admin-ajax.php' ),
155
-            'post_ID'                   => isset( $post->ID ) ? $post->ID : '',
156
-			'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
157
-			'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
158
-			'rest_root'                 => esc_url_raw( rest_url() ),
154
+            'ajax_url'                  => admin_url('admin-ajax.php'),
155
+            'post_ID'                   => isset($post->ID) ? $post->ID : '',
156
+			'wpinv_nonce'               => wp_create_nonce('wpinv-nonce'),
157
+			'rest_nonce'                => wp_create_nonce('wp_rest'),
158
+			'rest_root'                 => esc_url_raw(rest_url()),
159 159
 			'date_range'                => $date_range,
160
-            'add_invoice_note_nonce'    => wp_create_nonce( 'add-invoice-note' ),
161
-            'delete_invoice_note_nonce' => wp_create_nonce( 'delete-invoice-note' ),
162
-            'invoice_item_nonce'        => wp_create_nonce( 'invoice-item' ),
163
-            'billing_details_nonce'     => wp_create_nonce( 'get-billing-details' ),
160
+            'add_invoice_note_nonce'    => wp_create_nonce('add-invoice-note'),
161
+            'delete_invoice_note_nonce' => wp_create_nonce('delete-invoice-note'),
162
+            'invoice_item_nonce'        => wp_create_nonce('invoice-item'),
163
+            'billing_details_nonce'     => wp_create_nonce('get-billing-details'),
164 164
             'tax'                       => wpinv_tax_amount(),
165 165
             'discount'                  => 0,
166 166
 			'currency_symbol'           => wpinv_currency_symbol(),
@@ -169,38 +169,38 @@  discard block
 block discarded – undo
169 169
             'thousand_sep'              => wpinv_thousands_separator(),
170 170
             'decimal_sep'               => wpinv_decimal_separator(),
171 171
             'decimals'                  => wpinv_decimals(),
172
-            'save_invoice'              => __( 'Save Invoice', 'invoicing' ),
173
-            'status_publish'            => wpinv_status_nicename( 'publish' ),
174
-            'status_pending'            => wpinv_status_nicename( 'wpi-pending' ),
175
-            'delete_tax_rate'           => __( 'Are you sure you wish to delete this tax rate?', 'invoicing' ),
176
-            'status_pending'            => wpinv_status_nicename( 'wpi-pending' ),
177
-            'FillBillingDetails'        => __( 'Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing' ),
178
-            'confirmCalcTotals'         => __( 'Recalculate totals? This will recalculate totals based on the user billing country. If no billing country is set it will use the base country.', 'invoicing' ),
179
-            'AreYouSure'                => __( 'Are you sure?', 'invoicing' ),
180
-            'errDeleteItem'             => __( 'This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing' ),
181
-            'delete_subscription'       => __( 'Are you sure you want to delete this subscription?', 'invoicing' ),
182
-            'action_edit'               => __( 'Edit', 'invoicing' ),
183
-            'action_cancel'             => __( 'Cancel', 'invoicing' ),
184
-            'item_description'          => __( 'Item Description', 'invoicing' ),
185
-            'invoice_description'       => __( 'Invoice Description', 'invoicing' ),
186
-            'discount_description'      => __( 'Discount Description', 'invoicing' ),
187
-			'searching'                 => __( 'Searching', 'invoicing' ),
188
-			'loading'                   => __( 'Loading...', 'invoicing' ),
189
-			'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
190
-			'search_items'              => __( 'Enter item name', 'invoicing' ),
172
+            'save_invoice'              => __('Save Invoice', 'invoicing'),
173
+            'status_publish'            => wpinv_status_nicename('publish'),
174
+            'status_pending'            => wpinv_status_nicename('wpi-pending'),
175
+            'delete_tax_rate'           => __('Are you sure you wish to delete this tax rate?', 'invoicing'),
176
+            'status_pending'            => wpinv_status_nicename('wpi-pending'),
177
+            'FillBillingDetails'        => __('Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing'),
178
+            'confirmCalcTotals'         => __('Recalculate totals? This will recalculate totals based on the user billing country. If no billing country is set it will use the base country.', 'invoicing'),
179
+            'AreYouSure'                => __('Are you sure?', 'invoicing'),
180
+            'errDeleteItem'             => __('This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing'),
181
+            'delete_subscription'       => __('Are you sure you want to delete this subscription?', 'invoicing'),
182
+            'action_edit'               => __('Edit', 'invoicing'),
183
+            'action_cancel'             => __('Cancel', 'invoicing'),
184
+            'item_description'          => __('Item Description', 'invoicing'),
185
+            'invoice_description'       => __('Invoice Description', 'invoicing'),
186
+            'discount_description'      => __('Discount Description', 'invoicing'),
187
+			'searching'                 => __('Searching', 'invoicing'),
188
+			'loading'                   => __('Loading...', 'invoicing'),
189
+			'search_customers'          => __('Enter customer name or email', 'invoicing'),
190
+			'search_items'              => __('Enter item name', 'invoicing'),
191 191
         );
192 192
 
193
-		if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
193
+		if (!empty($post) && getpaid_is_invoice_post_type($post->post_type)) {
194 194
 
195
-			$invoice              = new WPInv_Invoice( $post );
195
+			$invoice              = new WPInv_Invoice($post);
196 196
 			$i18n['save_invoice'] = sprintf(
197
-				__( 'Save %s', 'invoicing' ),
198
-				ucfirst( $invoice->get_invoice_quote_type() )
197
+				__('Save %s', 'invoicing'),
198
+				ucfirst($invoice->get_invoice_quote_type())
199 199
 			);
200 200
 
201 201
 			$i18n['invoice_description'] = sprintf(
202
-				__( '%s Description', 'invoicing' ),
203
-				ucfirst( $invoice->get_invoice_quote_type() )
202
+				__('%s Description', 'invoicing'),
203
+				ucfirst($invoice->get_invoice_quote_type())
204 204
 			);
205 205
 
206 206
 		}
@@ -214,24 +214,24 @@  discard block
 block discarded – undo
214 214
 	 * @param  string $footer_text
215 215
 	 * @return string
216 216
 	 */
217
-	public function admin_footer_text( $footer_text ) {
217
+	public function admin_footer_text($footer_text) {
218 218
 		global $current_screen;
219 219
 
220
-		$page    = isset( $_GET['page'] ) ? $_GET['page'] : '';
220
+		$page = isset($_GET['page']) ? $_GET['page'] : '';
221 221
 
222
-        if ( ! empty( $current_screen->post_type ) ) {
222
+        if (!empty($current_screen->post_type)) {
223 223
 			$page = $current_screen->post_type;
224 224
         }
225 225
 
226 226
         // General styles.
227
-        if ( apply_filters( 'getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing() ) && false !== stripos( $page, 'wpi' ) ) {
227
+        if (apply_filters('getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing()) && false !== stripos($page, 'wpi')) {
228 228
 
229 229
 			// Change the footer text
230
-			if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
230
+			if (!get_user_meta(get_current_user_id(), 'getpaid_admin_footer_text_rated', true)) {
231 231
 
232
-				$rating_url  = esc_url(
232
+				$rating_url = esc_url(
233 233
 					wp_nonce_url(
234
-						admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
234
+						admin_url('admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin'),
235 235
 						'getpaid-nonce',
236 236
 						'getpaid-nonce'
237 237
 						)
@@ -239,7 +239,7 @@  discard block
 block discarded – undo
239 239
 
240 240
 				$footer_text = sprintf(
241 241
 					/* translators: %s: five stars */
242
-					__( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
242
+					__('If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing'),
243 243
 					"<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
244 244
 				);
245 245
 
@@ -247,7 +247,7 @@  discard block
 block discarded – undo
247 247
 
248 248
 				$footer_text = sprintf(
249 249
 					/* translators: %s: GetPaid */
250
-					__( 'Thank you for using %s!', 'invoicing' ),
250
+					__('Thank you for using %s!', 'invoicing'),
251 251
 					"<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
252 252
 				);
253 253
 
@@ -264,8 +264,8 @@  discard block
 block discarded – undo
264 264
 	 * @since  2.0.0
265 265
 	 */
266 266
 	public function redirect_to_wordpress_rating_page() {
267
-		update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
268
-		wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
267
+		update_user_meta(get_current_user_id(), 'getpaid_admin_footer_text_rated', 1);
268
+		wp_redirect('https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post');
269 269
 		exit;
270 270
 	}
271 271
 
@@ -276,30 +276,30 @@  discard block
 block discarded – undo
276 276
 	protected function load_payment_form_scripts() {
277 277
         global $post;
278 278
 
279
-        wp_enqueue_script( 'vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.js', array(), WPINV_VERSION );
280
-		wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
281
-		wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
279
+        wp_enqueue_script('vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.js', array(), WPINV_VERSION);
280
+		wp_enqueue_script('sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION);
281
+		wp_enqueue_script('vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array('sortable', 'vue'), WPINV_VERSION);
282 282
 
283
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
284
-		wp_register_script( 'wpinv-admin-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/admin-payment-forms.js', array( 'wpinv-admin-script', 'vue_draggable' ),  $version );
283
+		$version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js');
284
+		wp_register_script('wpinv-admin-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/admin-payment-forms.js', array('wpinv-admin-script', 'vue_draggable'), $version);
285 285
 
286 286
 		wp_localize_script(
287 287
             'wpinv-admin-payment-form-script',
288 288
             'wpinvPaymentFormAdmin',
289 289
             array(
290
-				'elements'      => wpinv_get_data( 'payment-form-elements' ),
291
-				'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
290
+				'elements'      => wpinv_get_data('payment-form-elements'),
291
+				'form_elements' => getpaid_get_payment_form_elements($post->ID),
292 292
 				'currency'      => wpinv_currency_symbol(),
293 293
 				'position'      => wpinv_currency_position(),
294 294
 				'decimals'      => (int) wpinv_decimals(),
295 295
 				'thousands_sep' => wpinv_thousands_separator(),
296 296
 				'decimals_sep'  => wpinv_decimal_separator(),
297
-				'form_items'    => gepaid_get_form_items( $post->ID ),
297
+				'form_items'    => gepaid_get_form_items($post->ID),
298 298
 				'is_default'    => $post->ID == wpinv_get_default_payment_form(),
299 299
             )
300 300
         );
301 301
 
302
-        wp_enqueue_script( 'wpinv-admin-payment-form-script' );
302
+        wp_enqueue_script('wpinv-admin-payment-form-script');
303 303
 
304 304
     }
305 305
 
@@ -310,25 +310,25 @@  discard block
 block discarded – undo
310 310
      * @return string
311 311
 	 *
312 312
 	 */
313
-    public function admin_body_class( $classes ) {
313
+    public function admin_body_class($classes) {
314 314
 		global $pagenow, $post, $current_screen;
315 315
 
316 316
 
317
-        $page = isset( $_GET['page'] ) ? $_GET['page'] : '';
317
+        $page = isset($_GET['page']) ? $_GET['page'] : '';
318 318
 
319
-        if ( ! empty( $current_screen->post_type ) ) {
319
+        if (!empty($current_screen->post_type)) {
320 320
 			$page = $current_screen->post_type;
321 321
         }
322 322
 
323
-        if ( false !== stripos( $page, 'wpi' ) ) {
324
-            $classes .= ' wpi-' . sanitize_key( $page );
323
+        if (false !== stripos($page, 'wpi')) {
324
+            $classes .= ' wpi-' . sanitize_key($page);
325 325
         }
326 326
 
327
-        if ( in_array( $page, wpinv_parse_list( 'wpi_invoice wpi_payment_form wpi_quote' ) ) ) {
327
+        if (in_array($page, wpinv_parse_list('wpi_invoice wpi_payment_form wpi_quote'))) {
328 328
             $classes .= ' wpinv-cpt wpinv';
329 329
 		}
330 330
 		
331
-		if ( getpaid_is_invoice_post_type( $page ) ) {
331
+		if (getpaid_is_invoice_post_type($page)) {
332 332
             $classes .= ' getpaid-is-invoice-cpt';
333 333
         }
334 334
 
@@ -338,7 +338,7 @@  discard block
 block discarded – undo
338 338
     /**
339 339
 	 * Maybe show the AyeCode Connect Notice.
340 340
 	 */
341
-	public function init_ayecode_connect_helper(){
341
+	public function init_ayecode_connect_helper() {
342 342
 
343 343
 		// Register with the deactivation survey class.
344 344
 		AyeCode_Deactivation_Survey::instance(array(
@@ -346,20 +346,20 @@  discard block
 block discarded – undo
346 346
 			'version'	        => WPINV_VERSION,
347 347
 			'support_url'       => 'https://wpgetpaid.com/support/',
348 348
 			'documentation_url' => 'https://docs.wpgetpaid.com/',
349
-			'activated'         => (int) get_option( 'gepaid_installed_on' ),
349
+			'activated'         => (int) get_option('gepaid_installed_on'),
350 350
 		));
351 351
 
352 352
         new AyeCode_Connect_Helper(
353 353
             array(
354
-				'connect_title' => __("WP Invoicing - an AyeCode product!","invoicing"),
355
-				'connect_external'  => __( "Please confirm you wish to connect your site?","invoicing" ),
356
-				'connect'           => sprintf( __( "<strong>Have a license?</strong> Forget about entering license keys or downloading zip files, connect your site for instant access. %slearn more%s","invoicing" ),"<a href='https://ayecode.io/introducing-ayecode-connect/' target='_blank'>","</a>" ),
357
-				'connect_button'    => __("Connect Site","invoicing"),
358
-				'connecting_button'    => __("Connecting...","invoicing"),
359
-				'error_localhost'   => __( "This service will only work with a live domain, not a localhost.","invoicing" ),
360
-				'error'             => __( "Something went wrong, please refresh and try again.","invoicing" ),
354
+				'connect_title' => __("WP Invoicing - an AyeCode product!", "invoicing"),
355
+				'connect_external'  => __("Please confirm you wish to connect your site?", "invoicing"),
356
+				'connect'           => sprintf(__("<strong>Have a license?</strong> Forget about entering license keys or downloading zip files, connect your site for instant access. %slearn more%s", "invoicing"), "<a href='https://ayecode.io/introducing-ayecode-connect/' target='_blank'>", "</a>"),
357
+				'connect_button'    => __("Connect Site", "invoicing"),
358
+				'connecting_button'    => __("Connecting...", "invoicing"),
359
+				'error_localhost'   => __("This service will only work with a live domain, not a localhost.", "invoicing"),
360
+				'error'             => __("Something went wrong, please refresh and try again.", "invoicing"),
361 361
             ),
362
-            array( 'wpi-addons' )
362
+            array('wpi-addons')
363 363
         );
364 364
 
365 365
     }
@@ -371,20 +371,20 @@  discard block
 block discarded – undo
371 371
 	 */
372 372
 	public function activation_redirect() {
373 373
 
374
-		$redirected = get_option( 'wpinv_redirected_to_settings' );
374
+		$redirected = get_option('wpinv_redirected_to_settings');
375 375
 
376
-		if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
376
+		if (!empty($redirected) || wp_doing_ajax() || !current_user_can('manage_options')) {
377 377
 			return;
378 378
 		}
379 379
 
380 380
 		// Bail if activating from network, or bulk
381
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
381
+		if (is_network_admin() || isset($_GET['activate-multi'])) {
382 382
 			return;
383 383
 		}
384 384
 
385
-	    update_option( 'wpinv_redirected_to_settings', 1 );
385
+	    update_option('wpinv_redirected_to_settings', 1);
386 386
 
387
-        wp_safe_redirect( admin_url( 'index.php?page=gp-setup' ) );
387
+        wp_safe_redirect(admin_url('index.php?page=gp-setup'));
388 388
         exit;
389 389
 
390 390
 	}
@@ -394,9 +394,9 @@  discard block
 block discarded – undo
394 394
      */
395 395
     public function maybe_do_admin_action() {
396 396
 
397
-        if ( wpinv_current_user_can_manage_invoicing() && isset( $_REQUEST['getpaid-admin-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
398
-            $key = sanitize_key( $_REQUEST['getpaid-admin-action'] );
399
-            do_action( "getpaid_authenticated_admin_action_$key", $_REQUEST );
397
+        if (wpinv_current_user_can_manage_invoicing() && isset($_REQUEST['getpaid-admin-action']) && isset($_REQUEST['getpaid-nonce']) && wp_verify_nonce($_REQUEST['getpaid-nonce'], 'getpaid-nonce')) {
398
+            $key = sanitize_key($_REQUEST['getpaid-admin-action']);
399
+            do_action("getpaid_authenticated_admin_action_$key", $_REQUEST);
400 400
         }
401 401
 
402 402
     }
@@ -406,16 +406,16 @@  discard block
 block discarded – undo
406 406
 	 * 
407 407
 	 * @param array $args
408 408
      */
409
-    public function send_customer_invoice( $args ) {
410
-		$sent = getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
409
+    public function send_customer_invoice($args) {
410
+		$sent = getpaid()->get('invoice_emails')->user_invoice(new WPInv_Invoice($args['invoice_id']), true);
411 411
 
412
-		if ( $sent ) {
413
-			$this->show_success( __( 'Invoice was successfully sent to the customer', 'invoicing' ) );
412
+		if ($sent) {
413
+			$this->show_success(__('Invoice was successfully sent to the customer', 'invoicing'));
414 414
 		} else {
415
-			$this->show_error( __( 'Could not send the invoice to the customer', 'invoicing' ) );
415
+			$this->show_error(__('Could not send the invoice to the customer', 'invoicing'));
416 416
 		}
417 417
 
418
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
418
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
419 419
 		exit;
420 420
 	}
421 421
 
@@ -424,16 +424,16 @@  discard block
 block discarded – undo
424 424
 	 * 
425 425
 	 * @param array $args
426 426
      */
427
-    public function send_customer_payment_reminder( $args ) {
428
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
427
+    public function send_customer_payment_reminder($args) {
428
+		$sent = getpaid()->get('invoice_emails')->force_send_overdue_notice(new WPInv_Invoice($args['invoice_id']));
429 429
 
430
-		if ( $sent ) {
431
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
430
+		if ($sent) {
431
+			$this->show_success(__('Payment reminder was successfully sent to the customer', 'invoicing'));
432 432
 		} else {
433
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
433
+			$this->show_error(__('Could not sent payment reminder to the customer', 'invoicing'));
434 434
 		}
435 435
 
436
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
436
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
437 437
 		exit;
438 438
 	}
439 439
 
@@ -443,8 +443,8 @@  discard block
 block discarded – undo
443 443
      */
444 444
     public function admin_reset_tax_rates() {
445 445
 
446
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
447
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
446
+		update_option('wpinv_tax_rates', wpinv_get_data('tax-rates'));
447
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
448 448
 		exit;
449 449
 
450 450
 	}
@@ -456,8 +456,8 @@  discard block
 block discarded – undo
456 456
     public function admin_create_missing_pages() {
457 457
 		$installer = new GetPaid_Installer();
458 458
 		$installer->create_pages();
459
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
460
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
459
+		$this->show_success(__('GetPaid pages updated.', 'invoicing'));
460
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
461 461
 		exit;
462 462
 	}
463 463
 
@@ -469,35 +469,35 @@  discard block
 block discarded – undo
469 469
 		global $wpdb;
470 470
 		$installer = new GetPaid_Installer();
471 471
 
472
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
472
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'") != $wpdb->prefix . 'wpinv_subscriptions') {
473 473
 			$installer->create_subscriptions_table();
474 474
 
475
-			if ( $wpdb->last_error !== '' ) {
476
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
475
+			if ($wpdb->last_error !== '') {
476
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
477 477
 			}
478 478
 		}
479 479
 
480
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
480
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'") != $wpdb->prefix . 'getpaid_invoices') {
481 481
 			$installer->create_invoices_table();
482 482
 
483
-			if ( $wpdb->last_error !== '' ) {
484
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
483
+			if ($wpdb->last_error !== '') {
484
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
485 485
 			}
486 486
 		}
487 487
 
488
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
488
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'") != $wpdb->prefix . 'getpaid_invoice_items') {
489 489
 			$installer->create_invoice_items_table();
490 490
 
491
-			if ( $wpdb->last_error !== '' ) {
492
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
491
+			if ($wpdb->last_error !== '') {
492
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
493 493
 			}
494 494
 		}
495 495
 
496
-		if ( ! $this->has_notices() ) {
497
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
496
+		if (!$this->has_notices()) {
497
+			$this->show_success(__('Your GetPaid tables have been updated.', 'invoicing'));
498 498
 		}
499 499
 
500
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
500
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
501 501
 		exit;
502 502
 	}
503 503
 
@@ -512,10 +512,10 @@  discard block
 block discarded – undo
512 512
 		$installer->migrate_old_invoices();
513 513
 
514 514
 		// Show an admin message.
515
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
515
+		$this->show_success(__('Your invoices have been migrated.', 'invoicing'));
516 516
 
517 517
 		// Redirect the admin.
518
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
518
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
519 519
 		exit;
520 520
 
521 521
 	}
@@ -527,18 +527,18 @@  discard block
 block discarded – undo
527 527
     public function admin_download_customers() {
528 528
 		global $wpdb;
529 529
 
530
-		$output = fopen( 'php://output', 'w' ) or die( __( 'Unsupported server', 'invoicing' ) );
530
+		$output = fopen('php://output', 'w') or die(__('Unsupported server', 'invoicing'));
531 531
 
532
-		header( "Content-Type:text/csv" );
533
-		header( "Content-Disposition:attachment;filename=customers.csv" );
532
+		header("Content-Type:text/csv");
533
+		header("Content-Disposition:attachment;filename=customers.csv");
534 534
 
535 535
 		$post_types = '';
536 536
 
537
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
538
-			$post_types .= $wpdb->prepare( "post_type=%s OR ", $post_type );
537
+		foreach (array_keys(getpaid_get_invoice_post_types()) as $post_type) {
538
+			$post_types .= $wpdb->prepare("post_type=%s OR ", $post_type);
539 539
 		}
540 540
 
541
-		$post_types = rtrim( $post_types, ' OR' );
541
+		$post_types = rtrim($post_types, ' OR');
542 542
 
543 543
 		$customers = $wpdb->get_col(
544 544
 			$wpdb->prepare(
@@ -547,57 +547,57 @@  discard block
 block discarded – undo
547 547
 		);
548 548
 
549 549
 		$columns = array(
550
-			'name'     => __( 'Name', 'invoicing' ),
551
-			'email'    => __( 'Email', 'invoicing' ),
552
-			'country'  => __( 'Country', 'invoicing' ),
553
-			'state'    => __( 'State', 'invoicing' ),
554
-			'city'     => __( 'City', 'invoicing' ),
555
-			'zip'      => __( 'ZIP', 'invoicing' ),
556
-			'address'  => __( 'Address', 'invoicing' ),
557
-			'phone'    => __( 'Phone', 'invoicing' ),
558
-			'company'  => __( 'Company', 'invoicing' ),
559
-			'invoices' => __( 'Invoices', 'invoicing' ),
560
-			'total_raw' => __( 'Total Spend', 'invoicing' ),
561
-			'signup'   => __( 'Date created', 'invoicing' ),
550
+			'name'     => __('Name', 'invoicing'),
551
+			'email'    => __('Email', 'invoicing'),
552
+			'country'  => __('Country', 'invoicing'),
553
+			'state'    => __('State', 'invoicing'),
554
+			'city'     => __('City', 'invoicing'),
555
+			'zip'      => __('ZIP', 'invoicing'),
556
+			'address'  => __('Address', 'invoicing'),
557
+			'phone'    => __('Phone', 'invoicing'),
558
+			'company'  => __('Company', 'invoicing'),
559
+			'invoices' => __('Invoices', 'invoicing'),
560
+			'total_raw' => __('Total Spend', 'invoicing'),
561
+			'signup'   => __('Date created', 'invoicing'),
562 562
 		);
563 563
 
564 564
 		// Output the csv column headers.
565
-		fputcsv( $output, array_values( $columns ) );
565
+		fputcsv($output, array_values($columns));
566 566
 
567 567
 		// Loop through
568 568
 		$table = new WPInv_Customers_Table();
569
-		foreach ( $customers as $customer_id ) {
569
+		foreach ($customers as $customer_id) {
570 570
 
571
-			$user = get_user_by( 'id', $customer_id );
571
+			$user = get_user_by('id', $customer_id);
572 572
 			$row  = array();
573
-			if ( empty( $user ) ) {
573
+			if (empty($user)) {
574 574
 				continue;
575 575
 			}
576 576
 
577
-			foreach ( array_keys( $columns ) as $column ) {
577
+			foreach (array_keys($columns) as $column) {
578 578
 
579 579
 				$method = 'column_' . $column;
580 580
 
581
-				if ( 'name' == $column ) {
582
-					$value = sanitize_text_field( $user->display_name );
583
-				} else if( 'email' == $column ) {
584
-					$value = sanitize_email( $user->user_email );
585
-				} else if ( is_callable( array( $table, $method ) ) ) {
586
-					$value = strip_tags( $table->$method( $user ) );
581
+				if ('name' == $column) {
582
+					$value = sanitize_text_field($user->display_name);
583
+				} else if ('email' == $column) {
584
+					$value = sanitize_email($user->user_email);
585
+				} else if (is_callable(array($table, $method))) {
586
+					$value = strip_tags($table->$method($user));
587 587
 				}
588 588
 
589
-				if ( empty( $value ) ) {
590
-					$value = sanitize_text_field( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
589
+				if (empty($value)) {
590
+					$value = sanitize_text_field(get_user_meta($user->ID, '_wpinv_' . $column, true));
591 591
 				}
592 592
 
593 593
 				$row[] = $value;
594 594
 
595 595
 			}
596 596
 
597
-			fputcsv( $output, $row );
597
+			fputcsv($output, $row);
598 598
 		}
599 599
 
600
-		fclose( $output );
600
+		fclose($output);
601 601
 		exit;
602 602
 
603 603
 	}
@@ -607,29 +607,29 @@  discard block
 block discarded – undo
607 607
 	 *
608 608
 	 * @param array $data
609 609
      */
610
-    public function admin_install_plugin( $data ) {
610
+    public function admin_install_plugin($data) {
611 611
 
612
-		if ( ! empty( $data['plugins'] ) ) {
612
+		if (!empty($data['plugins'])) {
613 613
 			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
614 614
 			wp_cache_flush();
615 615
 
616
-			foreach ( $data['plugins'] as $slug => $file ) {
617
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
618
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
619
-				$installed  = $upgrader->install( $plugin_zip );
616
+			foreach ($data['plugins'] as $slug => $file) {
617
+				$plugin_zip = esc_url('https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip');
618
+				$upgrader   = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
619
+				$installed  = $upgrader->install($plugin_zip);
620 620
 
621
-				if ( ! is_wp_error( $installed ) && $installed ) {
622
-					activate_plugin( $file, '', false, true );
621
+				if (!is_wp_error($installed) && $installed) {
622
+					activate_plugin($file, '', false, true);
623 623
 				} else {
624
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
624
+					wpinv_error_log($upgrader->skin->get_upgrade_messages(), false);
625 625
 				}
626 626
 
627 627
 			}
628 628
 
629 629
 		}
630 630
 
631
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
632
-		wp_safe_redirect( $redirect );
631
+		$redirect = isset($data['redirect']) ? esc_url_raw($data['redirect']) : admin_url('plugins.php');
632
+		wp_safe_redirect($redirect);
633 633
 		exit;
634 634
 
635 635
 	}
@@ -639,39 +639,39 @@  discard block
 block discarded – undo
639 639
 	 *
640 640
 	 * @param array $data
641 641
      */
642
-    public function admin_connect_gateway( $data ) {
642
+    public function admin_connect_gateway($data) {
643 643
 
644
-		if ( ! empty( $data['plugin'] ) ) {
644
+		if (!empty($data['plugin'])) {
645 645
 
646
-			$gateway     = sanitize_key( $data['plugin'] );
647
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
646
+			$gateway     = sanitize_key($data['plugin']);
647
+			$connect_url = apply_filters("getpaid_get_{$gateway}_connect_url", false, $data);
648 648
 
649
-			if ( ! empty( $connect_url ) ) {
650
-				wp_redirect( $connect_url );
649
+			if (!empty($connect_url)) {
650
+				wp_redirect($connect_url);
651 651
 				exit;
652 652
 			}
653 653
 
654
-			if ( 'stripe' == $data['plugin'] ) {
654
+			if ('stripe' == $data['plugin']) {
655 655
 				require_once ABSPATH . 'wp-admin/includes/plugin.php';
656 656
 
657
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
658
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
659
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
660
-					$upgrader->install( $plugin_zip );
657
+				if (!array_key_exists('getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins())) {
658
+					$plugin_zip = esc_url('https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip');
659
+					$upgrader   = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
660
+					$upgrader->install($plugin_zip);
661 661
 				}
662 662
 
663
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
663
+				activate_plugin('getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true);
664 664
 			}
665 665
 
666
-			if ( ! empty( $connect_url ) ) {
667
-				wp_redirect( $connect_url );
666
+			if (!empty($connect_url)) {
667
+				wp_redirect($connect_url);
668 668
 				exit;
669 669
 			}
670 670
 
671 671
 		}
672 672
 
673
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
674
-		wp_safe_redirect( $redirect );
673
+		$redirect = isset($data['redirect']) ? esc_url_raw(urldecode($data['redirect'])) : admin_url('admin.php?page=wpinv-settings&tab=gateways');
674
+		wp_safe_redirect($redirect);
675 675
 		exit;
676 676
 
677 677
 	}
@@ -685,36 +685,36 @@  discard block
 block discarded – undo
685 685
 
686 686
 		// Fetch all invoices that have discount codes.
687 687
 		$table    = $wpdb->prefix . 'getpaid_invoices';
688
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
688
+		$invoices = $wpdb->get_col("SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''");
689 689
 
690
-		foreach ( $invoices as $invoice ) {
690
+		foreach ($invoices as $invoice) {
691 691
 
692
-			$invoice = new WPInv_Invoice( $invoice );
692
+			$invoice = new WPInv_Invoice($invoice);
693 693
 
694
-			if ( ! $invoice->exists() ) {
694
+			if (!$invoice->exists()) {
695 695
 				continue;
696 696
 			}
697 697
 
698 698
 			// Abort if the discount does not exist or does not apply here.
699
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
700
-			if ( ! $discount->exists() ) {
699
+			$discount = new WPInv_Discount($invoice->get_discount_code());
700
+			if (!$discount->exists()) {
701 701
 				continue;
702 702
 			}
703 703
 
704
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
704
+			$invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
705 705
 			$invoice->recalculate_total();
706 706
 
707
-			if ( $invoice->get_total_discount() > 0 ) {
707
+			if ($invoice->get_total_discount() > 0) {
708 708
 				$invoice->save();
709 709
 			}
710 710
 
711 711
 		}
712 712
 
713 713
 		// Show an admin message.
714
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
714
+		$this->show_success(__('Discounts have been recalculated.', 'invoicing'));
715 715
 
716 716
 		// Redirect the admin.
717
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
717
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
718 718
 		exit;
719 719
 
720 720
 	}
@@ -726,8 +726,8 @@  discard block
 block discarded – undo
726 726
      * @return array
727 727
 	 */
728 728
 	public function get_notices() {
729
-		$notices = get_option( 'wpinv_admin_notices' );
730
-        return is_array( $notices ) ? $notices : array();
729
+		$notices = get_option('wpinv_admin_notices');
730
+        return is_array($notices) ? $notices : array();
731 731
 	}
732 732
 
733 733
 	/**
@@ -737,7 +737,7 @@  discard block
 block discarded – undo
737 737
      * @return array
738 738
 	 */
739 739
 	public function has_notices() {
740
-		return count( $this->get_notices() ) > 0;
740
+		return count($this->get_notices()) > 0;
741 741
 	}
742 742
 
743 743
 	/**
@@ -747,7 +747,7 @@  discard block
 block discarded – undo
747 747
 	 * @since       1.0.19
748 748
 	 */
749 749
 	public function clear_notices() {
750
-		delete_option( 'wpinv_admin_notices' );
750
+		delete_option('wpinv_admin_notices');
751 751
 	}
752 752
 
753 753
 	/**
@@ -756,16 +756,16 @@  discard block
 block discarded – undo
756 756
 	 * @access      public
757 757
 	 * @since       1.0.19
758 758
 	 */
759
-	public function save_notice( $type, $message ) {
759
+	public function save_notice($type, $message) {
760 760
 		$notices = $this->get_notices();
761 761
 
762
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ]) ) {
763
-			$notices[ $type ] = array();
762
+		if (empty($notices[$type]) || !is_array($notices[$type])) {
763
+			$notices[$type] = array();
764 764
 		}
765 765
 
766
-		$notices[ $type ][] = $message;
766
+		$notices[$type][] = $message;
767 767
 
768
-		update_option( 'wpinv_admin_notices', $notices );
768
+		update_option('wpinv_admin_notices', $notices);
769 769
 	}
770 770
 
771 771
 	/**
@@ -775,8 +775,8 @@  discard block
 block discarded – undo
775 775
 	 * @access      public
776 776
 	 * @since       1.0.19
777 777
 	 */
778
-	public function show_success( $msg ) {
779
-		$this->save_notice( 'success', $msg );
778
+	public function show_success($msg) {
779
+		$this->save_notice('success', $msg);
780 780
 	}
781 781
 
782 782
 	/**
@@ -786,8 +786,8 @@  discard block
 block discarded – undo
786 786
 	 * @param       string $msg The message to qeue.
787 787
 	 * @since       1.0.19
788 788
 	 */
789
-	public function show_error( $msg ) {
790
-		$this->save_notice( 'error', $msg );
789
+	public function show_error($msg) {
790
+		$this->save_notice('error', $msg);
791 791
 	}
792 792
 
793 793
 	/**
@@ -797,8 +797,8 @@  discard block
 block discarded – undo
797 797
 	 * @param       string $msg The message to qeue.
798 798
 	 * @since       1.0.19
799 799
 	 */
800
-	public function show_warning( $msg ) {
801
-		$this->save_notice( 'warning', $msg );
800
+	public function show_warning($msg) {
801
+		$this->save_notice('warning', $msg);
802 802
 	}
803 803
 
804 804
 	/**
@@ -808,8 +808,8 @@  discard block
 block discarded – undo
808 808
 	 * @param       string $msg The message to qeue.
809 809
 	 * @since       1.0.19
810 810
 	 */
811
-	public function show_info( $msg ) {
812
-		$this->save_notice( 'info', $msg );
811
+	public function show_info($msg) {
812
+		$this->save_notice('info', $msg);
813 813
 	}
814 814
 
815 815
 	/**
@@ -823,30 +823,30 @@  discard block
 block discarded – undo
823 823
         $notices = $this->get_notices();
824 824
         $this->clear_notices();
825 825
 
826
-		foreach ( $notices as $type => $messages ) {
826
+		foreach ($notices as $type => $messages) {
827 827
 
828
-			if ( ! is_array( $messages ) ) {
828
+			if (!is_array($messages)) {
829 829
 				continue;
830 830
 			}
831 831
 
832
-            $type  = sanitize_key( $type );
833
-			foreach ( $messages as $message ) {
834
-                $message = wp_kses_post( $message );
832
+            $type = sanitize_key($type);
833
+			foreach ($messages as $message) {
834
+                $message = wp_kses_post($message);
835 835
 				echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
836 836
             }
837 837
 
838 838
         }
839 839
 
840
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
840
+		foreach (array('checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page') as $page) {
841 841
 
842
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
843
-				$url     = wp_nonce_url(
844
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
842
+			if (!is_numeric(wpinv_get_option($page, false))) {
843
+				$url = wp_nonce_url(
844
+					add_query_arg('getpaid-admin-action', 'create_missing_pages'),
845 845
 					'getpaid-nonce',
846 846
 					'getpaid-nonce'
847 847
 				);
848
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
849
-				$message2 = __( 'Generate Pages', 'invoicing' );
848
+				$message  = __('Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing');
849
+				$message2 = __('Generate Pages', 'invoicing');
850 850
 				echo "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>";
851 851
 				break;
852 852
 			}
Please login to merge, or discard this patch.