Passed
Push — master ( 793157...3faf4a )
by Brian
05:26
created
includes/admin/class-getpaid-admin-setup-wizard.php 2 patches
Indentation   +370 added lines, -370 removed lines patch added patch discarded remove patch
@@ -17,382 +17,382 @@
 block discarded – undo
17 17
  */
18 18
 class GetPaid_Admin_Setup_Wizard {
19 19
 
20
-	/**
21
-	 * @var string Current Step
22
-	 */
23
-	protected $step = '';
24
-
25
-	/**
26
-	 * @var string|false Previous Step
27
-	 */
28
-	protected $previous_step = '';
29
-
30
-	/**
31
-	 * @var string|false Next Step
32
-	 */
33
-	protected $next_step = '';
34
-
35
-	/**
36
-	 * @var array All available steps for the setup wizard 
37
-	 */
38
-	protected $steps = array();
39
-
40
-	/**
41
-	 * Class constructor.
42
-	 *
43
-	 * @since 2.4.0
44
-	 */
45
-	public function __construct() {
46
-
47
-		if ( apply_filters( 'getpaid_enable_setup_wizard', true ) && wpinv_current_user_can_manage_invoicing() ) {
48
-			add_action( 'admin_menu', array( $this, 'add_menu' ) );
49
-			add_action( 'current_screen', array( $this, 'setup_wizard' ) );
50
-		}
51
-
52
-	}
53
-
54
-	/**
55
-	 * Add admin menus/screens.
56
-	 *
57
-	 * @since 2.4.0
58
-	 */
59
-	public function add_menu() {
60
-		add_dashboard_page( '', '', wpinv_get_capability(), 'gp-setup', '' );
61
-	}
62
-
63
-	/**
64
-	 * Sets up the setup wizard.
65
-	 *
66
-	 * @since 2.4.0
67
-	 */
68
-	public function setup_wizard() {
69
-
70
-		if ( isset( $_GET['page'] ) && 'gp-setup' === $_GET['page'] ) {
71
-			$this->setup_globals();
72
-			$this->maybe_save_current_step();
73
-			$this->display_wizard();
74
-			exit;
75
-		}
76
-
77
-	}
78
-
79
-	/**
80
-	 * Sets up class variables.
81
-	 *
82
-	 * @since 2.4.0
83
-	 */
84
-	protected function setup_globals() {
85
-		$this->steps         = $this->get_setup_steps();
86
-		$this->step          = $this->get_current_step();
87
-		$this->previous_step = $this->get_previous_step();
88
-		$this->next_step     = $this->get_next_step();
89
-	}
90
-
91
-	/**
92
-	 * Saves the current step.
93
-	 *
94
-	 * @since 2.4.0
95
-	 */
96
-	protected function maybe_save_current_step() {
97
-		if ( ! empty( $_POST['save_step'] ) && is_callable( $this->steps[ $this->step ]['handler'] ) ) {
98
-			call_user_func( $this->steps[ $this->step ]['handler'], $this );
99
-		}
100
-	}
101
-
102
-	/**
103
-	 * Returns the setup steps.
104
-	 *
105
-	 * @since 2.4.0
106
-	 * @return array
107
-	 */
108
-	protected function get_setup_steps() {
109
-
110
-		$steps = array(
111
-
112
-			'introduction'     => array(
113
-				'name'    => __( 'Introduction', 'invoicing' ),
114
-				'view'    => array( $this, 'setup_introduction' ),
115
-				'handler' => '',
116
-			),
117
-
118
-			'business_details'             => array(
119
-				'name'    => __( "Business Details", 'invoicing' ),
120
-				'view'    => array( $this, 'setup_business' ),
121
-				'handler' => '',
122
-			),
123
-
124
-			'currency' => array(
125
-				'name'    => __( 'Currency', 'invoicing' ),
126
-				'view'    => array( $this, 'setup_currency' ),
127
-				'handler' => '',
128
-			),
129
-
130
-			'payments'        => array(
131
-				'name'    => __( 'Payment Gateways', 'invoicing' ),
132
-				'view'    => array( $this, 'setup_payments' ),
133
-				'handler' => array( $this, 'setup_payments_save' ),
134
-			),
135
-
136
-			'recommend'          => array(
137
-				'name'    => __( 'Recommend', 'invoicing' ),
138
-				'view'    => array( $this, 'setup_recommend' ),
139
-				'handler' => '',
140
-			),
141
-
142
-			'next_steps'       => array(
143
-				'name'    => __( 'Get Paid', 'invoicing' ),
144
-				'view'    => array( $this, 'setup_ready' ),
145
-				'handler' => '',
146
-			),
147
-
148
-		);
149
-
150
-		return apply_filters( 'getpaid_setup_wizard_steps', $steps );
151
-
152
-	}
153
-
154
-	/**
155
-	 * Returns the current step.
156
-	 *
157
-	 * @since 2.4.0
158
-	 * @return string
159
-	 */
160
-	protected function get_current_step() {
161
-		$step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : '';
162
-		return ! empty( $step ) && in_array( $step, array_keys( $this->steps ) ) ? $step : current( array_keys( $this->steps ) );
163
-	}
164
-
165
-	/**
166
-	 * Returns the previous step.
167
-	 *
168
-	 * @since 2.4.0
169
-	 * @return string|false
170
-	 */
171
-	protected function get_previous_step() {
172
-
173
-		$previous = false;
174
-		$current  = $this->step;
175
-		foreach ( array_keys( $this->steps ) as $step ) {
176
-			if ( $current === $step ) {
177
-				return $previous;
178
-			}
179
-
180
-			$previous = $step;
181
-		}
182
-
183
-		return false;
184
-	}
185
-
186
-	/**
187
-	 * Returns the next step.
188
-	 *
189
-	 * @since 2.4.0
190
-	 * @return string|false
191
-	 */
192
-	protected function get_next_step() {
193
-
194
-		$on_current = false;
195
-		$current    = $this->step;
196
-		foreach ( array_keys( $this->steps ) as $step ) {
197
-
198
-			if ( $on_current ) {
199
-				return $step;
200
-			}
201
-
202
-			if ( $current === $step ) {
203
-				return $on_current = true;
204
-			}
205
-
206
-		}
207
-
208
-		return false;
209
-	}
210
-
211
-	/**
212
-	 * Displays the setup wizard.
213
-	 *
214
-	 * @since 2.4.0
215
-	 */
216
-	public function display_wizard() {
217
-		$this->display_header();
218
-		$this->display_current_step();
219
-		$this->display_footer();
220
-	}
221
-
222
-	/**
223
-	 * Displays the Wizard Header.
224
-	 *
225
-	 * @since 2.0.0
226
-	 */
227
-	public function display_header() {
228
-		$steps     = $this->steps;
229
-		$current   = $this->step;
230
-		$next_step = $this->next_step;
231
-		array_shift( $steps );
232
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-header.php';
233
-	}
234
-
235
-	/**
236
-	 * Displays the content for the current step.
237
-	 *
238
-	 * @since 2.4.0
239
-	 */
240
-	public function display_current_step() {
241
-		?>
20
+    /**
21
+     * @var string Current Step
22
+     */
23
+    protected $step = '';
24
+
25
+    /**
26
+     * @var string|false Previous Step
27
+     */
28
+    protected $previous_step = '';
29
+
30
+    /**
31
+     * @var string|false Next Step
32
+     */
33
+    protected $next_step = '';
34
+
35
+    /**
36
+     * @var array All available steps for the setup wizard 
37
+     */
38
+    protected $steps = array();
39
+
40
+    /**
41
+     * Class constructor.
42
+     *
43
+     * @since 2.4.0
44
+     */
45
+    public function __construct() {
46
+
47
+        if ( apply_filters( 'getpaid_enable_setup_wizard', true ) && wpinv_current_user_can_manage_invoicing() ) {
48
+            add_action( 'admin_menu', array( $this, 'add_menu' ) );
49
+            add_action( 'current_screen', array( $this, 'setup_wizard' ) );
50
+        }
51
+
52
+    }
53
+
54
+    /**
55
+     * Add admin menus/screens.
56
+     *
57
+     * @since 2.4.0
58
+     */
59
+    public function add_menu() {
60
+        add_dashboard_page( '', '', wpinv_get_capability(), 'gp-setup', '' );
61
+    }
62
+
63
+    /**
64
+     * Sets up the setup wizard.
65
+     *
66
+     * @since 2.4.0
67
+     */
68
+    public function setup_wizard() {
69
+
70
+        if ( isset( $_GET['page'] ) && 'gp-setup' === $_GET['page'] ) {
71
+            $this->setup_globals();
72
+            $this->maybe_save_current_step();
73
+            $this->display_wizard();
74
+            exit;
75
+        }
76
+
77
+    }
78
+
79
+    /**
80
+     * Sets up class variables.
81
+     *
82
+     * @since 2.4.0
83
+     */
84
+    protected function setup_globals() {
85
+        $this->steps         = $this->get_setup_steps();
86
+        $this->step          = $this->get_current_step();
87
+        $this->previous_step = $this->get_previous_step();
88
+        $this->next_step     = $this->get_next_step();
89
+    }
90
+
91
+    /**
92
+     * Saves the current step.
93
+     *
94
+     * @since 2.4.0
95
+     */
96
+    protected function maybe_save_current_step() {
97
+        if ( ! empty( $_POST['save_step'] ) && is_callable( $this->steps[ $this->step ]['handler'] ) ) {
98
+            call_user_func( $this->steps[ $this->step ]['handler'], $this );
99
+        }
100
+    }
101
+
102
+    /**
103
+     * Returns the setup steps.
104
+     *
105
+     * @since 2.4.0
106
+     * @return array
107
+     */
108
+    protected function get_setup_steps() {
109
+
110
+        $steps = array(
111
+
112
+            'introduction'     => array(
113
+                'name'    => __( 'Introduction', 'invoicing' ),
114
+                'view'    => array( $this, 'setup_introduction' ),
115
+                'handler' => '',
116
+            ),
117
+
118
+            'business_details'             => array(
119
+                'name'    => __( "Business Details", 'invoicing' ),
120
+                'view'    => array( $this, 'setup_business' ),
121
+                'handler' => '',
122
+            ),
123
+
124
+            'currency' => array(
125
+                'name'    => __( 'Currency', 'invoicing' ),
126
+                'view'    => array( $this, 'setup_currency' ),
127
+                'handler' => '',
128
+            ),
129
+
130
+            'payments'        => array(
131
+                'name'    => __( 'Payment Gateways', 'invoicing' ),
132
+                'view'    => array( $this, 'setup_payments' ),
133
+                'handler' => array( $this, 'setup_payments_save' ),
134
+            ),
135
+
136
+            'recommend'          => array(
137
+                'name'    => __( 'Recommend', 'invoicing' ),
138
+                'view'    => array( $this, 'setup_recommend' ),
139
+                'handler' => '',
140
+            ),
141
+
142
+            'next_steps'       => array(
143
+                'name'    => __( 'Get Paid', 'invoicing' ),
144
+                'view'    => array( $this, 'setup_ready' ),
145
+                'handler' => '',
146
+            ),
147
+
148
+        );
149
+
150
+        return apply_filters( 'getpaid_setup_wizard_steps', $steps );
151
+
152
+    }
153
+
154
+    /**
155
+     * Returns the current step.
156
+     *
157
+     * @since 2.4.0
158
+     * @return string
159
+     */
160
+    protected function get_current_step() {
161
+        $step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : '';
162
+        return ! empty( $step ) && in_array( $step, array_keys( $this->steps ) ) ? $step : current( array_keys( $this->steps ) );
163
+    }
164
+
165
+    /**
166
+     * Returns the previous step.
167
+     *
168
+     * @since 2.4.0
169
+     * @return string|false
170
+     */
171
+    protected function get_previous_step() {
172
+
173
+        $previous = false;
174
+        $current  = $this->step;
175
+        foreach ( array_keys( $this->steps ) as $step ) {
176
+            if ( $current === $step ) {
177
+                return $previous;
178
+            }
179
+
180
+            $previous = $step;
181
+        }
182
+
183
+        return false;
184
+    }
185
+
186
+    /**
187
+     * Returns the next step.
188
+     *
189
+     * @since 2.4.0
190
+     * @return string|false
191
+     */
192
+    protected function get_next_step() {
193
+
194
+        $on_current = false;
195
+        $current    = $this->step;
196
+        foreach ( array_keys( $this->steps ) as $step ) {
197
+
198
+            if ( $on_current ) {
199
+                return $step;
200
+            }
201
+
202
+            if ( $current === $step ) {
203
+                return $on_current = true;
204
+            }
205
+
206
+        }
207
+
208
+        return false;
209
+    }
210
+
211
+    /**
212
+     * Displays the setup wizard.
213
+     *
214
+     * @since 2.4.0
215
+     */
216
+    public function display_wizard() {
217
+        $this->display_header();
218
+        $this->display_current_step();
219
+        $this->display_footer();
220
+    }
221
+
222
+    /**
223
+     * Displays the Wizard Header.
224
+     *
225
+     * @since 2.0.0
226
+     */
227
+    public function display_header() {
228
+        $steps     = $this->steps;
229
+        $current   = $this->step;
230
+        $next_step = $this->next_step;
231
+        array_shift( $steps );
232
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-header.php';
233
+    }
234
+
235
+    /**
236
+     * Displays the content for the current step.
237
+     *
238
+     * @since 2.4.0
239
+     */
240
+    public function display_current_step() {
241
+        ?>
242 242
 			<div class="gp-setup-content rowx mw-100 text-center mb-3">
243 243
 				<div class="col-12 col-md-5 m-auto">
244 244
 					<?php call_user_func( $this->steps[ $this->step ]['view'], $this ); ?>
245 245
 				</div>
246 246
 			</div>
247 247
 		<?php
248
-	}
249
-
250
-	/**
251
-	 * Setup Wizard Footer.
252
-	 *
253
-	 * @since 2.4.0
254
-	 */
255
-	public function display_footer() {
256
-		echo '</body></html>';
257
-	}
258
-
259
-	/**
260
-	 * Introduction step.
261
-	 *
262
-	 * @since 2.0.0
263
-	 */
264
-	public function setup_introduction() {
265
-		$next_url = $this->get_next_step_link();
266
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-introduction.php';
267
-	}
268
-
269
-	/**
270
-	 * Get the URL for the next step's screen.
271
-	 *
272
-	 * @param string step   slug (default: current step)
273
-	 *
274
-	 * @return string       URL for next step if a next step exists.
275
-	 *                      Admin URL if it's the last step.
276
-	 *                      Empty string on failure.
277
-	 * @since 3.0.0
278
-	 */
279
-	public function get_next_step_link( $step = '' ) {
280
-		if ( ! $step ) {
281
-			$step = $this->step;
282
-		}
283
-
284
-		$keys = array_keys( $this->steps );
285
-		if ( end( $keys ) === $step ) {
286
-			return admin_url();
287
-		}
288
-
289
-		$step_index = array_search( $step, $keys );
290
-		if ( false === $step_index ) {
291
-			return '';
292
-		}
293
-
294
-		return remove_query_arg('settings-updated', add_query_arg( 'step', $keys[ $step_index + 1 ] ));
295
-	}
296
-
297
-	/**
298
-	 * Setup maps api.
299
-	 *
300
-	 * @since 2.0.0
301
-	 */
302
-	public function setup_business() {
303
-		$next_url = $this->get_next_step_link();
304
-		$wizard   = $this;
305
-		$page     = 'wpinv_settings_general_main';
306
-		$section  = 'wpinv_settings_general_main';
307
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
308
-	}
309
-
310
-	/**
311
-	 * Default Location settings.
312
-	 *
313
-	 * @since 2.0.0
314
-	 */
315
-	public function setup_currency() {
316
-		$next_url = $this->get_next_step_link();
317
-		$wizard   = $this;
318
-		$page     = 'wpinv_settings_general_currency_section';
319
-		$section  = 'wpinv_settings_general_currency_section';
320
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
321
-	}
322
-
323
-	/**
324
-	 * Installation of recommended plugins.
325
-	 *
326
-	 * @since 1.0.0
327
-	 */
328
-	public function setup_recommend() {
329
-		$next_url            = $this->get_next_step_link();
330
-		$recommended_plugins = self::get_recommend_wp_plugins();
331
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-plugins.php';
332
-	}
333
-
334
-	/**
335
-	 * A list of recommended wp.org plugins.
336
-	 * @return array
337
-	 */
338
-	public static function get_recommend_wp_plugins(){
339
-		return array(
340
-			'ayecode-connect' => array(
341
-				'file'   => 'ayecode-connect/ayecode-connect.php',
342
-				'url'    => 'https://wordpress.org/plugins/ayecode-connect/',
343
-				'slug'   => 'ayecode-connect',
344
-				'name'   => 'AyeCode Connect',
345
-				'desc'   => __( 'Documentation and Support from within your WordPress admin.', 'geodirectory' ),
346
-			),
347
-			'invoicing-quotes' => array(
348
-				'file'   => 'invoicing-quotes/wpinv-quote.php',
349
-				'url'    => 'https://wordpress.org/plugins/invoicing-quotes/',
350
-				'slug'   => 'invoicing-quotes',
351
-				'name'   => 'Customer Quotes',
352
-				'desc'   => __('Create & Send Quotes to Customers and have them accept and pay.','geodirectory'),
353
-			),
354
-			'userswp'    => array(
355
-				'file'   => 'userswp/userswp.php',
356
-				'url'    => 'https://wordpress.org/plugins/userswp/',
357
-				'slug'   => 'userswp',
358
-				'name'   => 'UsersWP',
359
-				'desc'   => __('Frontend user login and registration as well as slick profile pages.','geodirectory'),
360
-			),
361
-		);
362
-	}
363
-
364
-	/**
365
-	 * Dummy Data setup.
366
-	 *
367
-	 * @since 2.4.0
368
-	 */
369
-	public function setup_payments() {
370
-		$next_url = $this->get_next_step_link();
371
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-gateways.php';
372
-	}
373
-
374
-	/**
375
-	 * Dummy data save.
376
-	 *
377
-	 * This is done via ajax so we just pass onto the next step.
378
-	 *
379
-	 * @since 2.0.0
380
-	 */
381
-	public function setup_payments_save() {
382
-		check_admin_referer( 'getpaid-setup-wizard', 'getpaid-setup-wizard' );
383
-		wpinv_update_option( 'manual_active', ! empty( $_POST['enable-manual-gateway'] ) );
384
-		wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
385
-		exit;
386
-	}
387
-
388
-	/**
389
-	 * Final step.
390
-	 *
391
-	 * @since 2.0.0
392
-	 */
393
-	public function setup_ready() {
394
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-thank-you.php';
395
-	}
248
+    }
249
+
250
+    /**
251
+     * Setup Wizard Footer.
252
+     *
253
+     * @since 2.4.0
254
+     */
255
+    public function display_footer() {
256
+        echo '</body></html>';
257
+    }
258
+
259
+    /**
260
+     * Introduction step.
261
+     *
262
+     * @since 2.0.0
263
+     */
264
+    public function setup_introduction() {
265
+        $next_url = $this->get_next_step_link();
266
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-introduction.php';
267
+    }
268
+
269
+    /**
270
+     * Get the URL for the next step's screen.
271
+     *
272
+     * @param string step   slug (default: current step)
273
+     *
274
+     * @return string       URL for next step if a next step exists.
275
+     *                      Admin URL if it's the last step.
276
+     *                      Empty string on failure.
277
+     * @since 3.0.0
278
+     */
279
+    public function get_next_step_link( $step = '' ) {
280
+        if ( ! $step ) {
281
+            $step = $this->step;
282
+        }
283
+
284
+        $keys = array_keys( $this->steps );
285
+        if ( end( $keys ) === $step ) {
286
+            return admin_url();
287
+        }
288
+
289
+        $step_index = array_search( $step, $keys );
290
+        if ( false === $step_index ) {
291
+            return '';
292
+        }
293
+
294
+        return remove_query_arg('settings-updated', add_query_arg( 'step', $keys[ $step_index + 1 ] ));
295
+    }
296
+
297
+    /**
298
+     * Setup maps api.
299
+     *
300
+     * @since 2.0.0
301
+     */
302
+    public function setup_business() {
303
+        $next_url = $this->get_next_step_link();
304
+        $wizard   = $this;
305
+        $page     = 'wpinv_settings_general_main';
306
+        $section  = 'wpinv_settings_general_main';
307
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
308
+    }
309
+
310
+    /**
311
+     * Default Location settings.
312
+     *
313
+     * @since 2.0.0
314
+     */
315
+    public function setup_currency() {
316
+        $next_url = $this->get_next_step_link();
317
+        $wizard   = $this;
318
+        $page     = 'wpinv_settings_general_currency_section';
319
+        $section  = 'wpinv_settings_general_currency_section';
320
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
321
+    }
322
+
323
+    /**
324
+     * Installation of recommended plugins.
325
+     *
326
+     * @since 1.0.0
327
+     */
328
+    public function setup_recommend() {
329
+        $next_url            = $this->get_next_step_link();
330
+        $recommended_plugins = self::get_recommend_wp_plugins();
331
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-plugins.php';
332
+    }
333
+
334
+    /**
335
+     * A list of recommended wp.org plugins.
336
+     * @return array
337
+     */
338
+    public static function get_recommend_wp_plugins(){
339
+        return array(
340
+            'ayecode-connect' => array(
341
+                'file'   => 'ayecode-connect/ayecode-connect.php',
342
+                'url'    => 'https://wordpress.org/plugins/ayecode-connect/',
343
+                'slug'   => 'ayecode-connect',
344
+                'name'   => 'AyeCode Connect',
345
+                'desc'   => __( 'Documentation and Support from within your WordPress admin.', 'geodirectory' ),
346
+            ),
347
+            'invoicing-quotes' => array(
348
+                'file'   => 'invoicing-quotes/wpinv-quote.php',
349
+                'url'    => 'https://wordpress.org/plugins/invoicing-quotes/',
350
+                'slug'   => 'invoicing-quotes',
351
+                'name'   => 'Customer Quotes',
352
+                'desc'   => __('Create & Send Quotes to Customers and have them accept and pay.','geodirectory'),
353
+            ),
354
+            'userswp'    => array(
355
+                'file'   => 'userswp/userswp.php',
356
+                'url'    => 'https://wordpress.org/plugins/userswp/',
357
+                'slug'   => 'userswp',
358
+                'name'   => 'UsersWP',
359
+                'desc'   => __('Frontend user login and registration as well as slick profile pages.','geodirectory'),
360
+            ),
361
+        );
362
+    }
363
+
364
+    /**
365
+     * Dummy Data setup.
366
+     *
367
+     * @since 2.4.0
368
+     */
369
+    public function setup_payments() {
370
+        $next_url = $this->get_next_step_link();
371
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-gateways.php';
372
+    }
373
+
374
+    /**
375
+     * Dummy data save.
376
+     *
377
+     * This is done via ajax so we just pass onto the next step.
378
+     *
379
+     * @since 2.0.0
380
+     */
381
+    public function setup_payments_save() {
382
+        check_admin_referer( 'getpaid-setup-wizard', 'getpaid-setup-wizard' );
383
+        wpinv_update_option( 'manual_active', ! empty( $_POST['enable-manual-gateway'] ) );
384
+        wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
385
+        exit;
386
+    }
387
+
388
+    /**
389
+     * Final step.
390
+     *
391
+     * @since 2.0.0
392
+     */
393
+    public function setup_ready() {
394
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-thank-you.php';
395
+    }
396 396
 
397 397
 }
398 398
 
Please login to merge, or discard this patch.
Spacing   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -10,7 +10,7 @@  discard block
 block discarded – undo
10 10
  * @version     2.4.0
11 11
  * @info        GetPaid Setup Wizard.
12 12
  */
13
-defined( 'ABSPATH' ) || exit;
13
+defined('ABSPATH') || exit;
14 14
 
15 15
 /**
16 16
  * GetPaid_Admin_Setup_Wizard class.
@@ -44,9 +44,9 @@  discard block
 block discarded – undo
44 44
 	 */
45 45
 	public function __construct() {
46 46
 
47
-		if ( apply_filters( 'getpaid_enable_setup_wizard', true ) && wpinv_current_user_can_manage_invoicing() ) {
48
-			add_action( 'admin_menu', array( $this, 'add_menu' ) );
49
-			add_action( 'current_screen', array( $this, 'setup_wizard' ) );
47
+		if (apply_filters('getpaid_enable_setup_wizard', true) && wpinv_current_user_can_manage_invoicing()) {
48
+			add_action('admin_menu', array($this, 'add_menu'));
49
+			add_action('current_screen', array($this, 'setup_wizard'));
50 50
 		}
51 51
 
52 52
 	}
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
 	 * @since 2.4.0
58 58
 	 */
59 59
 	public function add_menu() {
60
-		add_dashboard_page( '', '', wpinv_get_capability(), 'gp-setup', '' );
60
+		add_dashboard_page('', '', wpinv_get_capability(), 'gp-setup', '');
61 61
 	}
62 62
 
63 63
 	/**
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
 	 */
68 68
 	public function setup_wizard() {
69 69
 
70
-		if ( isset( $_GET['page'] ) && 'gp-setup' === $_GET['page'] ) {
70
+		if (isset($_GET['page']) && 'gp-setup' === $_GET['page']) {
71 71
 			$this->setup_globals();
72 72
 			$this->maybe_save_current_step();
73 73
 			$this->display_wizard();
@@ -94,8 +94,8 @@  discard block
 block discarded – undo
94 94
 	 * @since 2.4.0
95 95
 	 */
96 96
 	protected function maybe_save_current_step() {
97
-		if ( ! empty( $_POST['save_step'] ) && is_callable( $this->steps[ $this->step ]['handler'] ) ) {
98
-			call_user_func( $this->steps[ $this->step ]['handler'], $this );
97
+		if (!empty($_POST['save_step']) && is_callable($this->steps[$this->step]['handler'])) {
98
+			call_user_func($this->steps[$this->step]['handler'], $this);
99 99
 		}
100 100
 	}
101 101
 
@@ -110,44 +110,44 @@  discard block
 block discarded – undo
110 110
 		$steps = array(
111 111
 
112 112
 			'introduction'     => array(
113
-				'name'    => __( 'Introduction', 'invoicing' ),
114
-				'view'    => array( $this, 'setup_introduction' ),
113
+				'name'    => __('Introduction', 'invoicing'),
114
+				'view'    => array($this, 'setup_introduction'),
115 115
 				'handler' => '',
116 116
 			),
117 117
 
118 118
 			'business_details'             => array(
119
-				'name'    => __( "Business Details", 'invoicing' ),
120
-				'view'    => array( $this, 'setup_business' ),
119
+				'name'    => __("Business Details", 'invoicing'),
120
+				'view'    => array($this, 'setup_business'),
121 121
 				'handler' => '',
122 122
 			),
123 123
 
124 124
 			'currency' => array(
125
-				'name'    => __( 'Currency', 'invoicing' ),
126
-				'view'    => array( $this, 'setup_currency' ),
125
+				'name'    => __('Currency', 'invoicing'),
126
+				'view'    => array($this, 'setup_currency'),
127 127
 				'handler' => '',
128 128
 			),
129 129
 
130 130
 			'payments'        => array(
131
-				'name'    => __( 'Payment Gateways', 'invoicing' ),
132
-				'view'    => array( $this, 'setup_payments' ),
133
-				'handler' => array( $this, 'setup_payments_save' ),
131
+				'name'    => __('Payment Gateways', 'invoicing'),
132
+				'view'    => array($this, 'setup_payments'),
133
+				'handler' => array($this, 'setup_payments_save'),
134 134
 			),
135 135
 
136 136
 			'recommend'          => array(
137
-				'name'    => __( 'Recommend', 'invoicing' ),
138
-				'view'    => array( $this, 'setup_recommend' ),
137
+				'name'    => __('Recommend', 'invoicing'),
138
+				'view'    => array($this, 'setup_recommend'),
139 139
 				'handler' => '',
140 140
 			),
141 141
 
142 142
 			'next_steps'       => array(
143
-				'name'    => __( 'Get Paid', 'invoicing' ),
144
-				'view'    => array( $this, 'setup_ready' ),
143
+				'name'    => __('Get Paid', 'invoicing'),
144
+				'view'    => array($this, 'setup_ready'),
145 145
 				'handler' => '',
146 146
 			),
147 147
 
148 148
 		);
149 149
 
150
-		return apply_filters( 'getpaid_setup_wizard_steps', $steps );
150
+		return apply_filters('getpaid_setup_wizard_steps', $steps);
151 151
 
152 152
 	}
153 153
 
@@ -158,8 +158,8 @@  discard block
 block discarded – undo
158 158
 	 * @return string
159 159
 	 */
160 160
 	protected function get_current_step() {
161
-		$step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : '';
162
-		return ! empty( $step ) && in_array( $step, array_keys( $this->steps ) ) ? $step : current( array_keys( $this->steps ) );
161
+		$step = isset($_GET['step']) ? sanitize_key($_GET['step']) : '';
162
+		return !empty($step) && in_array($step, array_keys($this->steps)) ? $step : current(array_keys($this->steps));
163 163
 	}
164 164
 
165 165
 	/**
@@ -172,8 +172,8 @@  discard block
 block discarded – undo
172 172
 
173 173
 		$previous = false;
174 174
 		$current  = $this->step;
175
-		foreach ( array_keys( $this->steps ) as $step ) {
176
-			if ( $current === $step ) {
175
+		foreach (array_keys($this->steps) as $step) {
176
+			if ($current === $step) {
177 177
 				return $previous;
178 178
 			}
179 179
 
@@ -193,13 +193,13 @@  discard block
 block discarded – undo
193 193
 
194 194
 		$on_current = false;
195 195
 		$current    = $this->step;
196
-		foreach ( array_keys( $this->steps ) as $step ) {
196
+		foreach (array_keys($this->steps) as $step) {
197 197
 
198
-			if ( $on_current ) {
198
+			if ($on_current) {
199 199
 				return $step;
200 200
 			}
201 201
 
202
-			if ( $current === $step ) {
202
+			if ($current === $step) {
203 203
 				return $on_current = true;
204 204
 			}
205 205
 
@@ -228,8 +228,8 @@  discard block
 block discarded – undo
228 228
 		$steps     = $this->steps;
229 229
 		$current   = $this->step;
230 230
 		$next_step = $this->next_step;
231
-		array_shift( $steps );
232
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-header.php';
231
+		array_shift($steps);
232
+		include plugin_dir_path(__FILE__) . 'views/wizard-header.php';
233 233
 	}
234 234
 
235 235
 	/**
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
 		?>
242 242
 			<div class="gp-setup-content rowx mw-100 text-center mb-3">
243 243
 				<div class="col-12 col-md-5 m-auto">
244
-					<?php call_user_func( $this->steps[ $this->step ]['view'], $this ); ?>
244
+					<?php call_user_func($this->steps[$this->step]['view'], $this); ?>
245 245
 				</div>
246 246
 			</div>
247 247
 		<?php
@@ -263,7 +263,7 @@  discard block
 block discarded – undo
263 263
 	 */
264 264
 	public function setup_introduction() {
265 265
 		$next_url = $this->get_next_step_link();
266
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-introduction.php';
266
+		include plugin_dir_path(__FILE__) . 'views/wizard-introduction.php';
267 267
 	}
268 268
 
269 269
 	/**
@@ -276,22 +276,22 @@  discard block
 block discarded – undo
276 276
 	 *                      Empty string on failure.
277 277
 	 * @since 3.0.0
278 278
 	 */
279
-	public function get_next_step_link( $step = '' ) {
280
-		if ( ! $step ) {
279
+	public function get_next_step_link($step = '') {
280
+		if (!$step) {
281 281
 			$step = $this->step;
282 282
 		}
283 283
 
284
-		$keys = array_keys( $this->steps );
285
-		if ( end( $keys ) === $step ) {
284
+		$keys = array_keys($this->steps);
285
+		if (end($keys) === $step) {
286 286
 			return admin_url();
287 287
 		}
288 288
 
289
-		$step_index = array_search( $step, $keys );
290
-		if ( false === $step_index ) {
289
+		$step_index = array_search($step, $keys);
290
+		if (false === $step_index) {
291 291
 			return '';
292 292
 		}
293 293
 
294
-		return remove_query_arg('settings-updated', add_query_arg( 'step', $keys[ $step_index + 1 ] ));
294
+		return remove_query_arg('settings-updated', add_query_arg('step', $keys[$step_index + 1]));
295 295
 	}
296 296
 
297 297
 	/**
@@ -304,7 +304,7 @@  discard block
 block discarded – undo
304 304
 		$wizard   = $this;
305 305
 		$page     = 'wpinv_settings_general_main';
306 306
 		$section  = 'wpinv_settings_general_main';
307
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
307
+		include plugin_dir_path(__FILE__) . 'views/wizard-settings.php';
308 308
 	}
309 309
 
310 310
 	/**
@@ -317,7 +317,7 @@  discard block
 block discarded – undo
317 317
 		$wizard   = $this;
318 318
 		$page     = 'wpinv_settings_general_currency_section';
319 319
 		$section  = 'wpinv_settings_general_currency_section';
320
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
320
+		include plugin_dir_path(__FILE__) . 'views/wizard-settings.php';
321 321
 	}
322 322
 
323 323
 	/**
@@ -328,35 +328,35 @@  discard block
 block discarded – undo
328 328
 	public function setup_recommend() {
329 329
 		$next_url            = $this->get_next_step_link();
330 330
 		$recommended_plugins = self::get_recommend_wp_plugins();
331
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-plugins.php';
331
+		include plugin_dir_path(__FILE__) . 'views/wizard-plugins.php';
332 332
 	}
333 333
 
334 334
 	/**
335 335
 	 * A list of recommended wp.org plugins.
336 336
 	 * @return array
337 337
 	 */
338
-	public static function get_recommend_wp_plugins(){
338
+	public static function get_recommend_wp_plugins() {
339 339
 		return array(
340 340
 			'ayecode-connect' => array(
341 341
 				'file'   => 'ayecode-connect/ayecode-connect.php',
342 342
 				'url'    => 'https://wordpress.org/plugins/ayecode-connect/',
343 343
 				'slug'   => 'ayecode-connect',
344 344
 				'name'   => 'AyeCode Connect',
345
-				'desc'   => __( 'Documentation and Support from within your WordPress admin.', 'geodirectory' ),
345
+				'desc'   => __('Documentation and Support from within your WordPress admin.', 'geodirectory'),
346 346
 			),
347 347
 			'invoicing-quotes' => array(
348 348
 				'file'   => 'invoicing-quotes/wpinv-quote.php',
349 349
 				'url'    => 'https://wordpress.org/plugins/invoicing-quotes/',
350 350
 				'slug'   => 'invoicing-quotes',
351 351
 				'name'   => 'Customer Quotes',
352
-				'desc'   => __('Create & Send Quotes to Customers and have them accept and pay.','geodirectory'),
352
+				'desc'   => __('Create & Send Quotes to Customers and have them accept and pay.', 'geodirectory'),
353 353
 			),
354 354
 			'userswp'    => array(
355 355
 				'file'   => 'userswp/userswp.php',
356 356
 				'url'    => 'https://wordpress.org/plugins/userswp/',
357 357
 				'slug'   => 'userswp',
358 358
 				'name'   => 'UsersWP',
359
-				'desc'   => __('Frontend user login and registration as well as slick profile pages.','geodirectory'),
359
+				'desc'   => __('Frontend user login and registration as well as slick profile pages.', 'geodirectory'),
360 360
 			),
361 361
 		);
362 362
 	}
@@ -368,7 +368,7 @@  discard block
 block discarded – undo
368 368
 	 */
369 369
 	public function setup_payments() {
370 370
 		$next_url = $this->get_next_step_link();
371
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-gateways.php';
371
+		include plugin_dir_path(__FILE__) . 'views/wizard-gateways.php';
372 372
 	}
373 373
 
374 374
 	/**
@@ -379,9 +379,9 @@  discard block
 block discarded – undo
379 379
 	 * @since 2.0.0
380 380
 	 */
381 381
 	public function setup_payments_save() {
382
-		check_admin_referer( 'getpaid-setup-wizard', 'getpaid-setup-wizard' );
383
-		wpinv_update_option( 'manual_active', ! empty( $_POST['enable-manual-gateway'] ) );
384
-		wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
382
+		check_admin_referer('getpaid-setup-wizard', 'getpaid-setup-wizard');
383
+		wpinv_update_option('manual_active', !empty($_POST['enable-manual-gateway']));
384
+		wp_redirect(esc_url_raw($this->get_next_step_link()));
385 385
 		exit;
386 386
 	}
387 387
 
@@ -391,7 +391,7 @@  discard block
 block discarded – undo
391 391
 	 * @since 2.0.0
392 392
 	 */
393 393
 	public function setup_ready() {
394
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-thank-you.php';
394
+		include plugin_dir_path(__FILE__) . 'views/wizard-thank-you.php';
395 395
 	}
396 396
 
397 397
 }
Please login to merge, or discard this patch.
includes/admin/class-getpaid-admin.php 2 patches
Indentation   +535 added lines, -535 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,59 +326,59 @@  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 343
         new AyeCode_Connect_Helper(
344 344
             array(
345
-				'connect_title' => __("WP Invoicing - an AyeCode product!","invoicing"),
346
-				'connect_external'  => __( "Please confirm you wish to connect your site?","invoicing" ),
347
-				'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>" ),
348
-				'connect_button'    => __("Connect Site","invoicing"),
349
-				'connecting_button'    => __("Connecting...","invoicing"),
350
-				'error_localhost'   => __( "This service will only work with a live domain, not a localhost.","invoicing" ),
351
-				'error'             => __( "Something went wrong, please refresh and try again.","invoicing" ),
345
+                'connect_title' => __("WP Invoicing - an AyeCode product!","invoicing"),
346
+                'connect_external'  => __( "Please confirm you wish to connect your site?","invoicing" ),
347
+                '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>" ),
348
+                'connect_button'    => __("Connect Site","invoicing"),
349
+                'connecting_button'    => __("Connecting...","invoicing"),
350
+                'error_localhost'   => __( "This service will only work with a live domain, not a localhost.","invoicing" ),
351
+                'error'             => __( "Something went wrong, please refresh and try again.","invoicing" ),
352 352
             ),
353 353
             array( 'wpi-addons' )
354 354
         );
355 355
 
356 356
     }
357 357
 
358
-	/**
359
-	 * Redirect users to settings on activation.
360
-	 *
361
-	 * @return void
362
-	 */
363
-	public function activation_redirect() {
358
+    /**
359
+     * Redirect users to settings on activation.
360
+     *
361
+     * @return void
362
+     */
363
+    public function activation_redirect() {
364 364
 
365
-		$redirected = get_option( 'wpinv_redirected_to_settings' );
365
+        $redirected = get_option( 'wpinv_redirected_to_settings' );
366 366
 
367
-		if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
368
-			return;
369
-		}
367
+        if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
368
+            return;
369
+        }
370 370
 
371
-		// Bail if activating from network, or bulk
372
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
373
-			return;
374
-		}
371
+        // Bail if activating from network, or bulk
372
+        if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
373
+            return;
374
+        }
375 375
 
376
-	    update_option( 'wpinv_redirected_to_settings', 1 );
376
+        update_option( 'wpinv_redirected_to_settings', 1 );
377 377
 
378 378
         wp_safe_redirect( admin_url( 'admin.php?page=wpinv-settings&tab=general' ) );
379 379
         exit;
380 380
 
381
-	}
381
+    }
382 382
 
383 383
     /**
384 384
      * Fires an admin action after verifying that a user can fire them.
@@ -392,458 +392,458 @@  discard block
 block discarded – undo
392 392
 
393 393
     }
394 394
 
395
-	/**
395
+    /**
396 396
      * Sends a payment reminder to a customer.
397
-	 * 
398
-	 * @param array $args
397
+     * 
398
+     * @param array $args
399 399
      */
400 400
     public function send_customer_invoice( $args ) {
401
-		$sent = getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
401
+        $sent = getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
402 402
 
403
-		if ( $sent ) {
404
-			$this->show_success( __( 'Invoice was successfully sent to the customer', 'invoicing' ) );
405
-		} else {
406
-			$this->show_error( __( 'Could not send the invoice to the customer', 'invoicing' ) );
407
-		}
403
+        if ( $sent ) {
404
+            $this->show_success( __( 'Invoice was successfully sent to the customer', 'invoicing' ) );
405
+        } else {
406
+            $this->show_error( __( 'Could not send the invoice to the customer', 'invoicing' ) );
407
+        }
408 408
 
409
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
410
-		exit;
411
-	}
409
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
410
+        exit;
411
+    }
412 412
 
413
-	/**
413
+    /**
414 414
      * Sends a payment reminder to a customer.
415
-	 * 
416
-	 * @param array $args
415
+     * 
416
+     * @param array $args
417 417
      */
418 418
     public function send_customer_payment_reminder( $args ) {
419
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
419
+        $sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
420 420
 
421
-		if ( $sent ) {
422
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
423
-		} else {
424
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
425
-		}
421
+        if ( $sent ) {
422
+            $this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
423
+        } else {
424
+            $this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
425
+        }
426 426
 
427
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
428
-		exit;
429
-	}
427
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
428
+        exit;
429
+    }
430 430
 
431
-	/**
431
+    /**
432 432
      * Resets tax rates.
433
-	 * 
433
+     * 
434 434
      */
435 435
     public function admin_reset_tax_rates() {
436 436
 
437
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
438
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
439
-		exit;
437
+        update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
438
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
439
+        exit;
440 440
 
441
-	}
441
+    }
442 442
 
443
-	/**
443
+    /**
444 444
      * Resets admin pages.
445
-	 * 
445
+     * 
446 446
      */
447 447
     public function admin_create_missing_pages() {
448
-		$installer = new GetPaid_Installer();
449
-		$installer->create_pages();
450
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
451
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
452
-		exit;
453
-	}
454
-
455
-	/**
448
+        $installer = new GetPaid_Installer();
449
+        $installer->create_pages();
450
+        $this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
451
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
452
+        exit;
453
+    }
454
+
455
+    /**
456 456
      * Creates an missing admin tables.
457
-	 * 
457
+     * 
458 458
      */
459 459
     public function admin_create_missing_tables() {
460
-		global $wpdb;
461
-		$installer = new GetPaid_Installer();
460
+        global $wpdb;
461
+        $installer = new GetPaid_Installer();
462 462
 
463
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
464
-			$installer->create_subscriptions_table();
463
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
464
+            $installer->create_subscriptions_table();
465 465
 
466
-			if ( $wpdb->last_error !== '' ) {
467
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
468
-			}
469
-		}
466
+            if ( $wpdb->last_error !== '' ) {
467
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
468
+            }
469
+        }
470 470
 
471
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
472
-			$installer->create_invoices_table();
471
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
472
+            $installer->create_invoices_table();
473 473
 
474
-			if ( $wpdb->last_error !== '' ) {
475
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
476
-			}
477
-		}
474
+            if ( $wpdb->last_error !== '' ) {
475
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
476
+            }
477
+        }
478 478
 
479
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
480
-			$installer->create_invoice_items_table();
479
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
480
+            $installer->create_invoice_items_table();
481 481
 
482
-			if ( $wpdb->last_error !== '' ) {
483
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
484
-			}
485
-		}
482
+            if ( $wpdb->last_error !== '' ) {
483
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
484
+            }
485
+        }
486 486
 
487
-		if ( ! $this->has_notices() ) {
488
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
489
-		}
487
+        if ( ! $this->has_notices() ) {
488
+            $this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
489
+        }
490 490
 
491
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
492
-		exit;
493
-	}
491
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
492
+        exit;
493
+    }
494 494
 
495
-	/**
495
+    /**
496 496
      * Migrates old invoices to the new database tables.
497
-	 * 
497
+     * 
498 498
      */
499 499
     public function admin_migrate_old_invoices() {
500 500
 
501
-		// Migrate the invoices.
502
-		$installer = new GetPaid_Installer();
503
-		$installer->migrate_old_invoices();
501
+        // Migrate the invoices.
502
+        $installer = new GetPaid_Installer();
503
+        $installer->migrate_old_invoices();
504 504
 
505
-		// Show an admin message.
506
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
505
+        // Show an admin message.
506
+        $this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
507 507
 
508
-		// Redirect the admin.
509
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
510
-		exit;
508
+        // Redirect the admin.
509
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
510
+        exit;
511 511
 
512
-	}
512
+    }
513 513
 
514
-	/**
514
+    /**
515 515
      * Download customers.
516
-	 * 
516
+     * 
517 517
      */
518 518
     public function admin_download_customers() {
519
-		global $wpdb;
519
+        global $wpdb;
520 520
 
521
-		$output = fopen( 'php://output', 'w' ) or die( __( 'Unsupported server', 'invoicing' ) );
521
+        $output = fopen( 'php://output', 'w' ) or die( __( 'Unsupported server', 'invoicing' ) );
522 522
 
523
-		header( "Content-Type:text/csv" );
524
-		header( "Content-Disposition:attachment;filename=customers.csv" );
523
+        header( "Content-Type:text/csv" );
524
+        header( "Content-Disposition:attachment;filename=customers.csv" );
525 525
 
526
-		$post_types = '';
526
+        $post_types = '';
527 527
 
528
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
529
-			$post_types .= $wpdb->prepare( "post_type=%s OR ", $post_type );
530
-		}
528
+        foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
529
+            $post_types .= $wpdb->prepare( "post_type=%s OR ", $post_type );
530
+        }
531 531
 
532
-		$post_types = rtrim( $post_types, ' OR' );
532
+        $post_types = rtrim( $post_types, ' OR' );
533 533
 
534
-		$customers = $wpdb->get_col(
535
-			$wpdb->prepare(
536
-				"SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types"
537
-			)
538
-		);
534
+        $customers = $wpdb->get_col(
535
+            $wpdb->prepare(
536
+                "SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types"
537
+            )
538
+        );
539 539
 
540
-		$columns = array(
541
-			'name'     => __( 'Name', 'invoicing' ),
542
-			'email'    => __( 'Email', 'invoicing' ),
543
-			'country'  => __( 'Country', 'invoicing' ),
544
-			'state'    => __( 'State', 'invoicing' ),
545
-			'city'     => __( 'City', 'invoicing' ),
546
-			'zip'      => __( 'ZIP', 'invoicing' ),
547
-			'address'  => __( 'Address', 'invoicing' ),
548
-			'phone'    => __( 'Phone', 'invoicing' ),
549
-			'company'  => __( 'Company', 'invoicing' ),
550
-			'invoices' => __( 'Invoices', 'invoicing' ),
551
-			'total'    => __( 'Total Spend', 'invoicing' ),
552
-			'signup'   => __( 'Date created', 'invoicing' ),
553
-		);
540
+        $columns = array(
541
+            'name'     => __( 'Name', 'invoicing' ),
542
+            'email'    => __( 'Email', 'invoicing' ),
543
+            'country'  => __( 'Country', 'invoicing' ),
544
+            'state'    => __( 'State', 'invoicing' ),
545
+            'city'     => __( 'City', 'invoicing' ),
546
+            'zip'      => __( 'ZIP', 'invoicing' ),
547
+            'address'  => __( 'Address', 'invoicing' ),
548
+            'phone'    => __( 'Phone', 'invoicing' ),
549
+            'company'  => __( 'Company', 'invoicing' ),
550
+            'invoices' => __( 'Invoices', 'invoicing' ),
551
+            'total'    => __( 'Total Spend', 'invoicing' ),
552
+            'signup'   => __( 'Date created', 'invoicing' ),
553
+        );
554 554
 
555
-		// Output the csv column headers.
556
-		fputcsv( $output, array_values( $columns ) );
555
+        // Output the csv column headers.
556
+        fputcsv( $output, array_values( $columns ) );
557 557
 
558
-		// Loop through
559
-		$table = new WPInv_Customers_Table();
560
-		foreach ( $customers as $customer_id ) {
558
+        // Loop through
559
+        $table = new WPInv_Customers_Table();
560
+        foreach ( $customers as $customer_id ) {
561 561
 
562
-			$user = get_user_by( 'id', $customer_id );
563
-			$row  = array();
564
-			if ( empty( $user ) ) {
565
-				continue;
566
-			}
562
+            $user = get_user_by( 'id', $customer_id );
563
+            $row  = array();
564
+            if ( empty( $user ) ) {
565
+                continue;
566
+            }
567 567
 
568
-			foreach ( array_keys( $columns ) as $column ) {
568
+            foreach ( array_keys( $columns ) as $column ) {
569 569
 
570
-				$method = 'column_' . $column;
570
+                $method = 'column_' . $column;
571 571
 
572
-				if ( 'name' == $column ) {
573
-					$value = sanitize_text_field( $user->display_name );
574
-				} else if( 'email' == $column ) {
575
-					$value = sanitize_email( $user->user_email );
576
-				} else if ( is_callable( array( $table, $method ) ) ) {
577
-					$value = strip_tags( $table->$method( $user ) );
578
-				}
572
+                if ( 'name' == $column ) {
573
+                    $value = sanitize_text_field( $user->display_name );
574
+                } else if( 'email' == $column ) {
575
+                    $value = sanitize_email( $user->user_email );
576
+                } else if ( is_callable( array( $table, $method ) ) ) {
577
+                    $value = strip_tags( $table->$method( $user ) );
578
+                }
579 579
 
580
-				if ( empty( $value ) ) {
581
-					$value = sanitize_text_field( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
582
-				}
580
+                if ( empty( $value ) ) {
581
+                    $value = sanitize_text_field( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
582
+                }
583 583
 
584
-				$row[] = $value;
584
+                $row[] = $value;
585 585
 
586
-			}
586
+            }
587 587
 
588
-			fputcsv( $output, $row );
589
-		}
588
+            fputcsv( $output, $row );
589
+        }
590 590
 
591
-		fclose( $output );
592
-		exit;
591
+        fclose( $output );
592
+        exit;
593 593
 
594
-	}
594
+    }
595 595
 
596
-	/**
596
+    /**
597 597
      * Installs a plugin.
598
-	 *
599
-	 * @param array $data
598
+     *
599
+     * @param array $data
600 600
      */
601 601
     public function admin_install_plugin( $data ) {
602 602
 
603
-		if ( ! empty( $data['plugins'] ) ) {
604
-			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
605
-			wp_cache_flush();
603
+        if ( ! empty( $data['plugins'] ) ) {
604
+            include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
605
+            wp_cache_flush();
606 606
 
607
-			foreach ( $data['plugins'] as $slug => $file ) {
608
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
609
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
610
-				$installed  = $upgrader->install( $plugin_zip );
607
+            foreach ( $data['plugins'] as $slug => $file ) {
608
+                $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
609
+                $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
610
+                $installed  = $upgrader->install( $plugin_zip );
611 611
 
612
-				if ( ! is_wp_error( $installed ) && $installed ) {
613
-					activate_plugin( $file, '', false, true );
614
-				} else {
615
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
616
-				}
612
+                if ( ! is_wp_error( $installed ) && $installed ) {
613
+                    activate_plugin( $file, '', false, true );
614
+                } else {
615
+                    wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
616
+                }
617 617
 
618
-			}
618
+            }
619 619
 
620
-		}
620
+        }
621 621
 
622
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
623
-		wp_safe_redirect( $redirect );
624
-		exit;
622
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
623
+        wp_safe_redirect( $redirect );
624
+        exit;
625 625
 
626
-	}
626
+    }
627 627
 
628
-	/**
628
+    /**
629 629
      * Connects a gateway.
630
-	 *
631
-	 * @param array $data
630
+     *
631
+     * @param array $data
632 632
      */
633 633
     public function admin_connect_gateway( $data ) {
634 634
 
635
-		if ( ! empty( $data['plugin'] ) ) {
635
+        if ( ! empty( $data['plugin'] ) ) {
636 636
 
637
-			$gateway     = sanitize_key( $data['plugin'] );
638
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
637
+            $gateway     = sanitize_key( $data['plugin'] );
638
+            $connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
639 639
 
640
-			if ( ! empty( $connect_url ) ) {
641
-				wp_redirect( $connect_url );
642
-				exit;
643
-			}
640
+            if ( ! empty( $connect_url ) ) {
641
+                wp_redirect( $connect_url );
642
+                exit;
643
+            }
644 644
 
645
-			if ( 'stripe' == $data['plugin'] ) {
646
-				require_once ABSPATH . 'wp-admin/includes/plugin.php';
645
+            if ( 'stripe' == $data['plugin'] ) {
646
+                require_once ABSPATH . 'wp-admin/includes/plugin.php';
647 647
 
648
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
649
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
650
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
651
-					$upgrader->install( $plugin_zip );
652
-				}
648
+                if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
649
+                    $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
650
+                    $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
651
+                    $upgrader->install( $plugin_zip );
652
+                }
653 653
 
654
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
655
-			}
654
+                activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
655
+            }
656 656
 
657
-			if ( ! empty( $connect_url ) ) {
658
-				wp_redirect( $connect_url );
659
-				exit;
660
-			}
657
+            if ( ! empty( $connect_url ) ) {
658
+                wp_redirect( $connect_url );
659
+                exit;
660
+            }
661 661
 
662
-		}
662
+        }
663 663
 
664
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
665
-		wp_safe_redirect( $redirect );
666
-		exit;
664
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
665
+        wp_safe_redirect( $redirect );
666
+        exit;
667 667
 
668
-	}
668
+    }
669 669
 
670
-	/**
670
+    /**
671 671
      * Recalculates discounts.
672
-	 * 
672
+     * 
673 673
      */
674 674
     public function admin_recalculate_discounts() {
675
-		global $wpdb;
675
+        global $wpdb;
676 676
 
677
-		// Fetch all invoices that have discount codes.
678
-		$table    = $wpdb->prefix . 'getpaid_invoices';
679
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
677
+        // Fetch all invoices that have discount codes.
678
+        $table    = $wpdb->prefix . 'getpaid_invoices';
679
+        $invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
680 680
 
681
-		foreach ( $invoices as $invoice ) {
681
+        foreach ( $invoices as $invoice ) {
682 682
 
683
-			$invoice = new WPInv_Invoice( $invoice );
683
+            $invoice = new WPInv_Invoice( $invoice );
684 684
 
685
-			if ( ! $invoice->exists() ) {
686
-				continue;
687
-			}
685
+            if ( ! $invoice->exists() ) {
686
+                continue;
687
+            }
688 688
 
689
-			// Abort if the discount does not exist or does not apply here.
690
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
691
-			if ( ! $discount->exists() ) {
692
-				continue;
693
-			}
689
+            // Abort if the discount does not exist or does not apply here.
690
+            $discount = new WPInv_Discount( $invoice->get_discount_code() );
691
+            if ( ! $discount->exists() ) {
692
+                continue;
693
+            }
694 694
 
695
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
696
-			$invoice->recalculate_total();
695
+            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
696
+            $invoice->recalculate_total();
697 697
 
698
-			if ( $invoice->get_total_discount() > 0 ) {
699
-				$invoice->save();
700
-			}
698
+            if ( $invoice->get_total_discount() > 0 ) {
699
+                $invoice->save();
700
+            }
701 701
 
702
-		}
702
+        }
703 703
 
704
-		// Show an admin message.
705
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
704
+        // Show an admin message.
705
+        $this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
706 706
 
707
-		// Redirect the admin.
708
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
709
-		exit;
707
+        // Redirect the admin.
708
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
709
+        exit;
710 710
 
711
-	}
711
+    }
712 712
 
713 713
     /**
714
-	 * Returns an array of admin notices.
715
-	 *
716
-	 * @since       1.0.19
714
+     * Returns an array of admin notices.
715
+     *
716
+     * @since       1.0.19
717 717
      * @return array
718
-	 */
719
-	public function get_notices() {
720
-		$notices = get_option( 'wpinv_admin_notices' );
718
+     */
719
+    public function get_notices() {
720
+        $notices = get_option( 'wpinv_admin_notices' );
721 721
         return is_array( $notices ) ? $notices : array();
722
-	}
722
+    }
723 723
 
724
-	/**
725
-	 * Checks if we have any admin notices.
726
-	 *
727
-	 * @since       2.0.4
724
+    /**
725
+     * Checks if we have any admin notices.
726
+     *
727
+     * @since       2.0.4
728 728
      * @return array
729
-	 */
730
-	public function has_notices() {
731
-		return count( $this->get_notices() ) > 0;
732
-	}
733
-
734
-	/**
735
-	 * Clears all admin notices
736
-	 *
737
-	 * @access      public
738
-	 * @since       1.0.19
739
-	 */
740
-	public function clear_notices() {
741
-		delete_option( 'wpinv_admin_notices' );
742
-	}
743
-
744
-	/**
745
-	 * Saves a new admin notice
746
-	 *
747
-	 * @access      public
748
-	 * @since       1.0.19
749
-	 */
750
-	public function save_notice( $type, $message ) {
751
-		$notices = $this->get_notices();
752
-
753
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ]) ) {
754
-			$notices[ $type ] = array();
755
-		}
756
-
757
-		$notices[ $type ][] = $message;
758
-
759
-		update_option( 'wpinv_admin_notices', $notices );
760
-	}
761
-
762
-	/**
763
-	 * Displays a success notice
764
-	 *
765
-	 * @param       string $msg The message to qeue.
766
-	 * @access      public
767
-	 * @since       1.0.19
768
-	 */
769
-	public function show_success( $msg ) {
770
-		$this->save_notice( 'success', $msg );
771
-	}
772
-
773
-	/**
774
-	 * Displays a error notice
775
-	 *
776
-	 * @access      public
777
-	 * @param       string $msg The message to qeue.
778
-	 * @since       1.0.19
779
-	 */
780
-	public function show_error( $msg ) {
781
-		$this->save_notice( 'error', $msg );
782
-	}
783
-
784
-	/**
785
-	 * Displays a warning notice
786
-	 *
787
-	 * @access      public
788
-	 * @param       string $msg The message to qeue.
789
-	 * @since       1.0.19
790
-	 */
791
-	public function show_warning( $msg ) {
792
-		$this->save_notice( 'warning', $msg );
793
-	}
794
-
795
-	/**
796
-	 * Displays a info notice
797
-	 *
798
-	 * @access      public
799
-	 * @param       string $msg The message to qeue.
800
-	 * @since       1.0.19
801
-	 */
802
-	public function show_info( $msg ) {
803
-		$this->save_notice( 'info', $msg );
804
-	}
805
-
806
-	/**
807
-	 * Show notices
808
-	 *
809
-	 * @access      public
810
-	 * @since       1.0.19
811
-	 */
812
-	public function show_notices() {
729
+     */
730
+    public function has_notices() {
731
+        return count( $this->get_notices() ) > 0;
732
+    }
733
+
734
+    /**
735
+     * Clears all admin notices
736
+     *
737
+     * @access      public
738
+     * @since       1.0.19
739
+     */
740
+    public function clear_notices() {
741
+        delete_option( 'wpinv_admin_notices' );
742
+    }
743
+
744
+    /**
745
+     * Saves a new admin notice
746
+     *
747
+     * @access      public
748
+     * @since       1.0.19
749
+     */
750
+    public function save_notice( $type, $message ) {
751
+        $notices = $this->get_notices();
752
+
753
+        if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ]) ) {
754
+            $notices[ $type ] = array();
755
+        }
756
+
757
+        $notices[ $type ][] = $message;
758
+
759
+        update_option( 'wpinv_admin_notices', $notices );
760
+    }
761
+
762
+    /**
763
+     * Displays a success notice
764
+     *
765
+     * @param       string $msg The message to qeue.
766
+     * @access      public
767
+     * @since       1.0.19
768
+     */
769
+    public function show_success( $msg ) {
770
+        $this->save_notice( 'success', $msg );
771
+    }
772
+
773
+    /**
774
+     * Displays a error notice
775
+     *
776
+     * @access      public
777
+     * @param       string $msg The message to qeue.
778
+     * @since       1.0.19
779
+     */
780
+    public function show_error( $msg ) {
781
+        $this->save_notice( 'error', $msg );
782
+    }
783
+
784
+    /**
785
+     * Displays a warning notice
786
+     *
787
+     * @access      public
788
+     * @param       string $msg The message to qeue.
789
+     * @since       1.0.19
790
+     */
791
+    public function show_warning( $msg ) {
792
+        $this->save_notice( 'warning', $msg );
793
+    }
794
+
795
+    /**
796
+     * Displays a info notice
797
+     *
798
+     * @access      public
799
+     * @param       string $msg The message to qeue.
800
+     * @since       1.0.19
801
+     */
802
+    public function show_info( $msg ) {
803
+        $this->save_notice( 'info', $msg );
804
+    }
805
+
806
+    /**
807
+     * Show notices
808
+     *
809
+     * @access      public
810
+     * @since       1.0.19
811
+     */
812
+    public function show_notices() {
813 813
 
814 814
         $notices = $this->get_notices();
815 815
         $this->clear_notices();
816 816
 
817
-		foreach ( $notices as $type => $messages ) {
817
+        foreach ( $notices as $type => $messages ) {
818 818
 
819
-			if ( ! is_array( $messages ) ) {
820
-				continue;
821
-			}
819
+            if ( ! is_array( $messages ) ) {
820
+                continue;
821
+            }
822 822
 
823 823
             $type  = sanitize_key( $type );
824
-			foreach ( $messages as $message ) {
824
+            foreach ( $messages as $message ) {
825 825
                 $message = wp_kses_post( $message );
826
-				echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
826
+                echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
827 827
             }
828 828
 
829 829
         }
830 830
 
831
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
832
-
833
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
834
-				$url     = wp_nonce_url(
835
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
836
-					'getpaid-nonce',
837
-					'getpaid-nonce'
838
-				);
839
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
840
-				$message2 = __( 'Generate Pages', 'invoicing' );
841
-				echo "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>";
842
-				break;
843
-			}
831
+        foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
832
+
833
+            if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
834
+                $url     = wp_nonce_url(
835
+                    add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
836
+                    'getpaid-nonce',
837
+                    'getpaid-nonce'
838
+                );
839
+                $message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
840
+                $message2 = __( 'Generate Pages', 'invoicing' );
841
+                echo "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>";
842
+                break;
843
+            }
844 844
 
845
-		}
845
+        }
846 846
 
847
-	}
847
+    }
848 848
 
849 849
 }
Please login to merge, or discard this patch.
Spacing   +252 added lines, -252 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,19 +338,19 @@  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
         new AyeCode_Connect_Helper(
344 344
             array(
345
-				'connect_title' => __("WP Invoicing - an AyeCode product!","invoicing"),
346
-				'connect_external'  => __( "Please confirm you wish to connect your site?","invoicing" ),
347
-				'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>" ),
348
-				'connect_button'    => __("Connect Site","invoicing"),
349
-				'connecting_button'    => __("Connecting...","invoicing"),
350
-				'error_localhost'   => __( "This service will only work with a live domain, not a localhost.","invoicing" ),
351
-				'error'             => __( "Something went wrong, please refresh and try again.","invoicing" ),
345
+				'connect_title' => __("WP Invoicing - an AyeCode product!", "invoicing"),
346
+				'connect_external'  => __("Please confirm you wish to connect your site?", "invoicing"),
347
+				'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>"),
348
+				'connect_button'    => __("Connect Site", "invoicing"),
349
+				'connecting_button'    => __("Connecting...", "invoicing"),
350
+				'error_localhost'   => __("This service will only work with a live domain, not a localhost.", "invoicing"),
351
+				'error'             => __("Something went wrong, please refresh and try again.", "invoicing"),
352 352
             ),
353
-            array( 'wpi-addons' )
353
+            array('wpi-addons')
354 354
         );
355 355
 
356 356
     }
@@ -362,20 +362,20 @@  discard block
 block discarded – undo
362 362
 	 */
363 363
 	public function activation_redirect() {
364 364
 
365
-		$redirected = get_option( 'wpinv_redirected_to_settings' );
365
+		$redirected = get_option('wpinv_redirected_to_settings');
366 366
 
367
-		if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
367
+		if (!empty($redirected) || wp_doing_ajax() || !current_user_can('manage_options')) {
368 368
 			return;
369 369
 		}
370 370
 
371 371
 		// Bail if activating from network, or bulk
372
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
372
+		if (is_network_admin() || isset($_GET['activate-multi'])) {
373 373
 			return;
374 374
 		}
375 375
 
376
-	    update_option( 'wpinv_redirected_to_settings', 1 );
376
+	    update_option('wpinv_redirected_to_settings', 1);
377 377
 
378
-        wp_safe_redirect( admin_url( 'admin.php?page=wpinv-settings&tab=general' ) );
378
+        wp_safe_redirect(admin_url('admin.php?page=wpinv-settings&tab=general'));
379 379
         exit;
380 380
 
381 381
 	}
@@ -385,9 +385,9 @@  discard block
 block discarded – undo
385 385
      */
386 386
     public function maybe_do_admin_action() {
387 387
 
388
-        if ( wpinv_current_user_can_manage_invoicing() && isset( $_REQUEST['getpaid-admin-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
389
-            $key = sanitize_key( $_REQUEST['getpaid-admin-action'] );
390
-            do_action( "getpaid_authenticated_admin_action_$key", $_REQUEST );
388
+        if (wpinv_current_user_can_manage_invoicing() && isset($_REQUEST['getpaid-admin-action']) && isset($_REQUEST['getpaid-nonce']) && wp_verify_nonce($_REQUEST['getpaid-nonce'], 'getpaid-nonce')) {
389
+            $key = sanitize_key($_REQUEST['getpaid-admin-action']);
390
+            do_action("getpaid_authenticated_admin_action_$key", $_REQUEST);
391 391
         }
392 392
 
393 393
     }
@@ -397,16 +397,16 @@  discard block
 block discarded – undo
397 397
 	 * 
398 398
 	 * @param array $args
399 399
      */
400
-    public function send_customer_invoice( $args ) {
401
-		$sent = getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
400
+    public function send_customer_invoice($args) {
401
+		$sent = getpaid()->get('invoice_emails')->user_invoice(new WPInv_Invoice($args['invoice_id']), true);
402 402
 
403
-		if ( $sent ) {
404
-			$this->show_success( __( 'Invoice was successfully sent to the customer', 'invoicing' ) );
403
+		if ($sent) {
404
+			$this->show_success(__('Invoice was successfully sent to the customer', 'invoicing'));
405 405
 		} else {
406
-			$this->show_error( __( 'Could not send the invoice to the customer', 'invoicing' ) );
406
+			$this->show_error(__('Could not send the invoice to the customer', 'invoicing'));
407 407
 		}
408 408
 
409
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
409
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
410 410
 		exit;
411 411
 	}
412 412
 
@@ -415,16 +415,16 @@  discard block
 block discarded – undo
415 415
 	 * 
416 416
 	 * @param array $args
417 417
      */
418
-    public function send_customer_payment_reminder( $args ) {
419
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
418
+    public function send_customer_payment_reminder($args) {
419
+		$sent = getpaid()->get('invoice_emails')->force_send_overdue_notice(new WPInv_Invoice($args['invoice_id']));
420 420
 
421
-		if ( $sent ) {
422
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
421
+		if ($sent) {
422
+			$this->show_success(__('Payment reminder was successfully sent to the customer', 'invoicing'));
423 423
 		} else {
424
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
424
+			$this->show_error(__('Could not sent payment reminder to the customer', 'invoicing'));
425 425
 		}
426 426
 
427
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
427
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
428 428
 		exit;
429 429
 	}
430 430
 
@@ -434,8 +434,8 @@  discard block
 block discarded – undo
434 434
      */
435 435
     public function admin_reset_tax_rates() {
436 436
 
437
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
438
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
437
+		update_option('wpinv_tax_rates', wpinv_get_data('tax-rates'));
438
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
439 439
 		exit;
440 440
 
441 441
 	}
@@ -447,8 +447,8 @@  discard block
 block discarded – undo
447 447
     public function admin_create_missing_pages() {
448 448
 		$installer = new GetPaid_Installer();
449 449
 		$installer->create_pages();
450
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
451
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
450
+		$this->show_success(__('GetPaid pages updated.', 'invoicing'));
451
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
452 452
 		exit;
453 453
 	}
454 454
 
@@ -460,35 +460,35 @@  discard block
 block discarded – undo
460 460
 		global $wpdb;
461 461
 		$installer = new GetPaid_Installer();
462 462
 
463
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
463
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'") != $wpdb->prefix . 'wpinv_subscriptions') {
464 464
 			$installer->create_subscriptions_table();
465 465
 
466
-			if ( $wpdb->last_error !== '' ) {
467
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
466
+			if ($wpdb->last_error !== '') {
467
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
468 468
 			}
469 469
 		}
470 470
 
471
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
471
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'") != $wpdb->prefix . 'getpaid_invoices') {
472 472
 			$installer->create_invoices_table();
473 473
 
474
-			if ( $wpdb->last_error !== '' ) {
475
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
474
+			if ($wpdb->last_error !== '') {
475
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
476 476
 			}
477 477
 		}
478 478
 
479
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
479
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'") != $wpdb->prefix . 'getpaid_invoice_items') {
480 480
 			$installer->create_invoice_items_table();
481 481
 
482
-			if ( $wpdb->last_error !== '' ) {
483
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
482
+			if ($wpdb->last_error !== '') {
483
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
484 484
 			}
485 485
 		}
486 486
 
487
-		if ( ! $this->has_notices() ) {
488
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
487
+		if (!$this->has_notices()) {
488
+			$this->show_success(__('Your GetPaid tables have been updated.', 'invoicing'));
489 489
 		}
490 490
 
491
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
491
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
492 492
 		exit;
493 493
 	}
494 494
 
@@ -503,10 +503,10 @@  discard block
 block discarded – undo
503 503
 		$installer->migrate_old_invoices();
504 504
 
505 505
 		// Show an admin message.
506
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
506
+		$this->show_success(__('Your invoices have been migrated.', 'invoicing'));
507 507
 
508 508
 		// Redirect the admin.
509
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
509
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
510 510
 		exit;
511 511
 
512 512
 	}
@@ -518,18 +518,18 @@  discard block
 block discarded – undo
518 518
     public function admin_download_customers() {
519 519
 		global $wpdb;
520 520
 
521
-		$output = fopen( 'php://output', 'w' ) or die( __( 'Unsupported server', 'invoicing' ) );
521
+		$output = fopen('php://output', 'w') or die(__('Unsupported server', 'invoicing'));
522 522
 
523
-		header( "Content-Type:text/csv" );
524
-		header( "Content-Disposition:attachment;filename=customers.csv" );
523
+		header("Content-Type:text/csv");
524
+		header("Content-Disposition:attachment;filename=customers.csv");
525 525
 
526 526
 		$post_types = '';
527 527
 
528
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
529
-			$post_types .= $wpdb->prepare( "post_type=%s OR ", $post_type );
528
+		foreach (array_keys(getpaid_get_invoice_post_types()) as $post_type) {
529
+			$post_types .= $wpdb->prepare("post_type=%s OR ", $post_type);
530 530
 		}
531 531
 
532
-		$post_types = rtrim( $post_types, ' OR' );
532
+		$post_types = rtrim($post_types, ' OR');
533 533
 
534 534
 		$customers = $wpdb->get_col(
535 535
 			$wpdb->prepare(
@@ -538,57 +538,57 @@  discard block
 block discarded – undo
538 538
 		);
539 539
 
540 540
 		$columns = array(
541
-			'name'     => __( 'Name', 'invoicing' ),
542
-			'email'    => __( 'Email', 'invoicing' ),
543
-			'country'  => __( 'Country', 'invoicing' ),
544
-			'state'    => __( 'State', 'invoicing' ),
545
-			'city'     => __( 'City', 'invoicing' ),
546
-			'zip'      => __( 'ZIP', 'invoicing' ),
547
-			'address'  => __( 'Address', 'invoicing' ),
548
-			'phone'    => __( 'Phone', 'invoicing' ),
549
-			'company'  => __( 'Company', 'invoicing' ),
550
-			'invoices' => __( 'Invoices', 'invoicing' ),
551
-			'total'    => __( 'Total Spend', 'invoicing' ),
552
-			'signup'   => __( 'Date created', 'invoicing' ),
541
+			'name'     => __('Name', 'invoicing'),
542
+			'email'    => __('Email', 'invoicing'),
543
+			'country'  => __('Country', 'invoicing'),
544
+			'state'    => __('State', 'invoicing'),
545
+			'city'     => __('City', 'invoicing'),
546
+			'zip'      => __('ZIP', 'invoicing'),
547
+			'address'  => __('Address', 'invoicing'),
548
+			'phone'    => __('Phone', 'invoicing'),
549
+			'company'  => __('Company', 'invoicing'),
550
+			'invoices' => __('Invoices', 'invoicing'),
551
+			'total'    => __('Total Spend', 'invoicing'),
552
+			'signup'   => __('Date created', 'invoicing'),
553 553
 		);
554 554
 
555 555
 		// Output the csv column headers.
556
-		fputcsv( $output, array_values( $columns ) );
556
+		fputcsv($output, array_values($columns));
557 557
 
558 558
 		// Loop through
559 559
 		$table = new WPInv_Customers_Table();
560
-		foreach ( $customers as $customer_id ) {
560
+		foreach ($customers as $customer_id) {
561 561
 
562
-			$user = get_user_by( 'id', $customer_id );
562
+			$user = get_user_by('id', $customer_id);
563 563
 			$row  = array();
564
-			if ( empty( $user ) ) {
564
+			if (empty($user)) {
565 565
 				continue;
566 566
 			}
567 567
 
568
-			foreach ( array_keys( $columns ) as $column ) {
568
+			foreach (array_keys($columns) as $column) {
569 569
 
570 570
 				$method = 'column_' . $column;
571 571
 
572
-				if ( 'name' == $column ) {
573
-					$value = sanitize_text_field( $user->display_name );
574
-				} else if( 'email' == $column ) {
575
-					$value = sanitize_email( $user->user_email );
576
-				} else if ( is_callable( array( $table, $method ) ) ) {
577
-					$value = strip_tags( $table->$method( $user ) );
572
+				if ('name' == $column) {
573
+					$value = sanitize_text_field($user->display_name);
574
+				} else if ('email' == $column) {
575
+					$value = sanitize_email($user->user_email);
576
+				} else if (is_callable(array($table, $method))) {
577
+					$value = strip_tags($table->$method($user));
578 578
 				}
579 579
 
580
-				if ( empty( $value ) ) {
581
-					$value = sanitize_text_field( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
580
+				if (empty($value)) {
581
+					$value = sanitize_text_field(get_user_meta($user->ID, '_wpinv_' . $column, true));
582 582
 				}
583 583
 
584 584
 				$row[] = $value;
585 585
 
586 586
 			}
587 587
 
588
-			fputcsv( $output, $row );
588
+			fputcsv($output, $row);
589 589
 		}
590 590
 
591
-		fclose( $output );
591
+		fclose($output);
592 592
 		exit;
593 593
 
594 594
 	}
@@ -598,29 +598,29 @@  discard block
 block discarded – undo
598 598
 	 *
599 599
 	 * @param array $data
600 600
      */
601
-    public function admin_install_plugin( $data ) {
601
+    public function admin_install_plugin($data) {
602 602
 
603
-		if ( ! empty( $data['plugins'] ) ) {
603
+		if (!empty($data['plugins'])) {
604 604
 			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
605 605
 			wp_cache_flush();
606 606
 
607
-			foreach ( $data['plugins'] as $slug => $file ) {
608
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
609
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
610
-				$installed  = $upgrader->install( $plugin_zip );
607
+			foreach ($data['plugins'] as $slug => $file) {
608
+				$plugin_zip = esc_url('https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip');
609
+				$upgrader   = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
610
+				$installed  = $upgrader->install($plugin_zip);
611 611
 
612
-				if ( ! is_wp_error( $installed ) && $installed ) {
613
-					activate_plugin( $file, '', false, true );
612
+				if (!is_wp_error($installed) && $installed) {
613
+					activate_plugin($file, '', false, true);
614 614
 				} else {
615
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
615
+					wpinv_error_log($upgrader->skin->get_upgrade_messages(), false);
616 616
 				}
617 617
 
618 618
 			}
619 619
 
620 620
 		}
621 621
 
622
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
623
-		wp_safe_redirect( $redirect );
622
+		$redirect = isset($data['redirect']) ? esc_url_raw($data['redirect']) : admin_url('plugins.php');
623
+		wp_safe_redirect($redirect);
624 624
 		exit;
625 625
 
626 626
 	}
@@ -630,39 +630,39 @@  discard block
 block discarded – undo
630 630
 	 *
631 631
 	 * @param array $data
632 632
      */
633
-    public function admin_connect_gateway( $data ) {
633
+    public function admin_connect_gateway($data) {
634 634
 
635
-		if ( ! empty( $data['plugin'] ) ) {
635
+		if (!empty($data['plugin'])) {
636 636
 
637
-			$gateway     = sanitize_key( $data['plugin'] );
638
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
637
+			$gateway     = sanitize_key($data['plugin']);
638
+			$connect_url = apply_filters("getpaid_get_{$gateway}_connect_url", false, $data);
639 639
 
640
-			if ( ! empty( $connect_url ) ) {
641
-				wp_redirect( $connect_url );
640
+			if (!empty($connect_url)) {
641
+				wp_redirect($connect_url);
642 642
 				exit;
643 643
 			}
644 644
 
645
-			if ( 'stripe' == $data['plugin'] ) {
645
+			if ('stripe' == $data['plugin']) {
646 646
 				require_once ABSPATH . 'wp-admin/includes/plugin.php';
647 647
 
648
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
649
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
650
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
651
-					$upgrader->install( $plugin_zip );
648
+				if (!array_key_exists('getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins())) {
649
+					$plugin_zip = esc_url('https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip');
650
+					$upgrader   = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
651
+					$upgrader->install($plugin_zip);
652 652
 				}
653 653
 
654
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
654
+				activate_plugin('getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true);
655 655
 			}
656 656
 
657
-			if ( ! empty( $connect_url ) ) {
658
-				wp_redirect( $connect_url );
657
+			if (!empty($connect_url)) {
658
+				wp_redirect($connect_url);
659 659
 				exit;
660 660
 			}
661 661
 
662 662
 		}
663 663
 
664
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
665
-		wp_safe_redirect( $redirect );
664
+		$redirect = isset($data['redirect']) ? esc_url_raw(urldecode($data['redirect'])) : admin_url('admin.php?page=wpinv-settings&tab=gateways');
665
+		wp_safe_redirect($redirect);
666 666
 		exit;
667 667
 
668 668
 	}
@@ -676,36 +676,36 @@  discard block
 block discarded – undo
676 676
 
677 677
 		// Fetch all invoices that have discount codes.
678 678
 		$table    = $wpdb->prefix . 'getpaid_invoices';
679
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
679
+		$invoices = $wpdb->get_col("SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''");
680 680
 
681
-		foreach ( $invoices as $invoice ) {
681
+		foreach ($invoices as $invoice) {
682 682
 
683
-			$invoice = new WPInv_Invoice( $invoice );
683
+			$invoice = new WPInv_Invoice($invoice);
684 684
 
685
-			if ( ! $invoice->exists() ) {
685
+			if (!$invoice->exists()) {
686 686
 				continue;
687 687
 			}
688 688
 
689 689
 			// Abort if the discount does not exist or does not apply here.
690
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
691
-			if ( ! $discount->exists() ) {
690
+			$discount = new WPInv_Discount($invoice->get_discount_code());
691
+			if (!$discount->exists()) {
692 692
 				continue;
693 693
 			}
694 694
 
695
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
695
+			$invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
696 696
 			$invoice->recalculate_total();
697 697
 
698
-			if ( $invoice->get_total_discount() > 0 ) {
698
+			if ($invoice->get_total_discount() > 0) {
699 699
 				$invoice->save();
700 700
 			}
701 701
 
702 702
 		}
703 703
 
704 704
 		// Show an admin message.
705
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
705
+		$this->show_success(__('Discounts have been recalculated.', 'invoicing'));
706 706
 
707 707
 		// Redirect the admin.
708
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
708
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
709 709
 		exit;
710 710
 
711 711
 	}
@@ -717,8 +717,8 @@  discard block
 block discarded – undo
717 717
      * @return array
718 718
 	 */
719 719
 	public function get_notices() {
720
-		$notices = get_option( 'wpinv_admin_notices' );
721
-        return is_array( $notices ) ? $notices : array();
720
+		$notices = get_option('wpinv_admin_notices');
721
+        return is_array($notices) ? $notices : array();
722 722
 	}
723 723
 
724 724
 	/**
@@ -728,7 +728,7 @@  discard block
 block discarded – undo
728 728
      * @return array
729 729
 	 */
730 730
 	public function has_notices() {
731
-		return count( $this->get_notices() ) > 0;
731
+		return count($this->get_notices()) > 0;
732 732
 	}
733 733
 
734 734
 	/**
@@ -738,7 +738,7 @@  discard block
 block discarded – undo
738 738
 	 * @since       1.0.19
739 739
 	 */
740 740
 	public function clear_notices() {
741
-		delete_option( 'wpinv_admin_notices' );
741
+		delete_option('wpinv_admin_notices');
742 742
 	}
743 743
 
744 744
 	/**
@@ -747,16 +747,16 @@  discard block
 block discarded – undo
747 747
 	 * @access      public
748 748
 	 * @since       1.0.19
749 749
 	 */
750
-	public function save_notice( $type, $message ) {
750
+	public function save_notice($type, $message) {
751 751
 		$notices = $this->get_notices();
752 752
 
753
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ]) ) {
754
-			$notices[ $type ] = array();
753
+		if (empty($notices[$type]) || !is_array($notices[$type])) {
754
+			$notices[$type] = array();
755 755
 		}
756 756
 
757
-		$notices[ $type ][] = $message;
757
+		$notices[$type][] = $message;
758 758
 
759
-		update_option( 'wpinv_admin_notices', $notices );
759
+		update_option('wpinv_admin_notices', $notices);
760 760
 	}
761 761
 
762 762
 	/**
@@ -766,8 +766,8 @@  discard block
 block discarded – undo
766 766
 	 * @access      public
767 767
 	 * @since       1.0.19
768 768
 	 */
769
-	public function show_success( $msg ) {
770
-		$this->save_notice( 'success', $msg );
769
+	public function show_success($msg) {
770
+		$this->save_notice('success', $msg);
771 771
 	}
772 772
 
773 773
 	/**
@@ -777,8 +777,8 @@  discard block
 block discarded – undo
777 777
 	 * @param       string $msg The message to qeue.
778 778
 	 * @since       1.0.19
779 779
 	 */
780
-	public function show_error( $msg ) {
781
-		$this->save_notice( 'error', $msg );
780
+	public function show_error($msg) {
781
+		$this->save_notice('error', $msg);
782 782
 	}
783 783
 
784 784
 	/**
@@ -788,8 +788,8 @@  discard block
 block discarded – undo
788 788
 	 * @param       string $msg The message to qeue.
789 789
 	 * @since       1.0.19
790 790
 	 */
791
-	public function show_warning( $msg ) {
792
-		$this->save_notice( 'warning', $msg );
791
+	public function show_warning($msg) {
792
+		$this->save_notice('warning', $msg);
793 793
 	}
794 794
 
795 795
 	/**
@@ -799,8 +799,8 @@  discard block
 block discarded – undo
799 799
 	 * @param       string $msg The message to qeue.
800 800
 	 * @since       1.0.19
801 801
 	 */
802
-	public function show_info( $msg ) {
803
-		$this->save_notice( 'info', $msg );
802
+	public function show_info($msg) {
803
+		$this->save_notice('info', $msg);
804 804
 	}
805 805
 
806 806
 	/**
@@ -814,30 +814,30 @@  discard block
 block discarded – undo
814 814
         $notices = $this->get_notices();
815 815
         $this->clear_notices();
816 816
 
817
-		foreach ( $notices as $type => $messages ) {
817
+		foreach ($notices as $type => $messages) {
818 818
 
819
-			if ( ! is_array( $messages ) ) {
819
+			if (!is_array($messages)) {
820 820
 				continue;
821 821
 			}
822 822
 
823
-            $type  = sanitize_key( $type );
824
-			foreach ( $messages as $message ) {
825
-                $message = wp_kses_post( $message );
823
+            $type = sanitize_key($type);
824
+			foreach ($messages as $message) {
825
+                $message = wp_kses_post($message);
826 826
 				echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
827 827
             }
828 828
 
829 829
         }
830 830
 
831
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
831
+		foreach (array('checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page') as $page) {
832 832
 
833
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
834
-				$url     = wp_nonce_url(
835
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
833
+			if (!is_numeric(wpinv_get_option($page, false))) {
834
+				$url = wp_nonce_url(
835
+					add_query_arg('getpaid-admin-action', 'create_missing_pages'),
836 836
 					'getpaid-nonce',
837 837
 					'getpaid-nonce'
838 838
 				);
839
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
840
-				$message2 = __( 'Generate Pages', 'invoicing' );
839
+				$message  = __('Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing');
840
+				$message2 = __('Generate Pages', 'invoicing');
841 841
 				echo "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>";
842 842
 				break;
843 843
 			}
Please login to merge, or discard this patch.
includes/admin/views/wizard-gateways.php 1 patch
Spacing   +14 added lines, -14 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
 
@@ -12,39 +12,39 @@  discard block
 block discarded – undo
12 12
 
13 13
     <form method="post" class="text-center card-body">
14 14
         <div class="gp-wizard-payments">
15
-            <h2 class="gd-settings-title h3 "><?php _e( 'Gateway Setup', 'invoicing' ); ?></h2>
16
-            <p><?php _e( 'Below are a few gateways that can be setup in a few seconds.', 'invoicing' ); ?>
15
+            <h2 class="gd-settings-title h3 "><?php _e('Gateway Setup', 'invoicing'); ?></h2>
16
+            <p><?php _e('Below are a few gateways that can be setup in a few seconds.', 'invoicing'); ?>
17 17
                 <br>
18
-                <?php _e( 'We have 20+ Gateways that can be setup later.', 'invoicing' ); ?>
18
+                <?php _e('We have 20+ Gateways that can be setup later.', 'invoicing'); ?>
19 19
             </p>
20 20
 
21 21
             <ul class="list-group">
22 22
 
23 23
 				<li class="list-group-item d-flex justify-content-between align-items-center">
24
-				    <span class="mr-auto"><img src="<?php echo esc_url( WPINV_PLUGIN_URL . 'assets/images/stripe-verified.svg' );?>" class="ml-n2" alt="Stripe"></span>
24
+				    <span class="mr-auto"><img src="<?php echo esc_url(WPINV_PLUGIN_URL . 'assets/images/stripe-verified.svg'); ?>" class="ml-n2" alt="Stripe"></span>
25 25
 				    <a href="<?php echo wp_nonce_url(
26 26
                             add_query_arg(
27 27
                                 array(
28 28
                                     'getpaid-admin-action' => 'connect_gateway',
29 29
                                     'plugin'               => 'stripe',
30
-                                    'redirect'             => urlencode( $next_url ),
30
+                                    'redirect'             => urlencode($next_url),
31 31
                                 ),
32 32
                                 admin_url()
33 33
                             ),
34 34
                             'getpaid-nonce',
35 35
                             'getpaid-nonce'
36 36
                         ); ?>"
37
-                        class="btn btn-sm btn-outline-primary"><?php _e( 'Connect', 'invoicing' ); ?></a>
37
+                        class="btn btn-sm btn-outline-primary"><?php _e('Connect', 'invoicing'); ?></a>
38 38
 				</li>
39 39
 
40 40
 				<li class="list-group-item d-flex justify-content-between align-items-center">
41
-				    <span class="mr-auto"><img src="<?php echo esc_url( WPINV_PLUGIN_URL . 'assets/images/pp-logo-150px.webp' );?>" class="" alt="PayPal" height="25"></span>
41
+				    <span class="mr-auto"><img src="<?php echo esc_url(WPINV_PLUGIN_URL . 'assets/images/pp-logo-150px.webp'); ?>" class="" alt="PayPal" height="25"></span>
42 42
 				    <a href="<?php echo wp_nonce_url(
43 43
                             add_query_arg(
44 44
                                 array(
45 45
                                     'getpaid-admin-action' => 'connect_gateway',
46 46
                                     'plugin'               => 'paypal',
47
-                                    'redirect'             => urlencode( $next_url ),
47
+                                    'redirect'             => urlencode($next_url),
48 48
                                 ),
49 49
                                 admin_url()
50 50
                             ),
@@ -55,9 +55,9 @@  discard block
 block discarded – undo
55 55
 				</li>
56 56
 
57 57
 				<li class="list-group-item d-flex justify-content-between align-items-center">
58
-				    <span class="mr-auto"><?php _e( 'Test Getway', 'invoicing' ); ?></span>
58
+				    <span class="mr-auto"><?php _e('Test Getway', 'invoicing'); ?></span>
59 59
 					<div class="custom-control custom-switch">
60
-						<input type="checkbox" name="enable-manual-gateway" class="custom-control-input" id="enable-manual-gateway" <?php checked( wpinv_is_gateway_active( 'manual' ) ); ?>>
60
+						<input type="checkbox" name="enable-manual-gateway" class="custom-control-input" id="enable-manual-gateway" <?php checked(wpinv_is_gateway_active('manual')); ?>>
61 61
 						<label class="custom-control-label" for="enable-manual-gateway"></label>
62 62
 					</div>
63 63
 				</li>
@@ -66,12 +66,12 @@  discard block
 block discarded – undo
66 66
         </div>
67 67
 
68 68
         <p class="gp-setup-actions step text-center mt-4">
69
-			<a href="<?php echo esc_url( $next_url ); ?>" class="btn btn-primary"><?php esc_attr_e( 'Continue', 'invoicing' ); ?></a>
69
+			<a href="<?php echo esc_url($next_url); ?>" class="btn btn-primary"><?php esc_attr_e('Continue', 'invoicing'); ?></a>
70 70
 		</p>
71 71
 
72
-        <?php wp_nonce_field( 'getpaid-setup-wizard', 'getpaid-setup-wizard' ); ?>
72
+        <?php wp_nonce_field('getpaid-setup-wizard', 'getpaid-setup-wizard'); ?>
73 73
     </form>
74 74
     <p class="gd-return-to-dashboard-wrap">
75
-		<a href="<?php echo esc_url( $next_url ); ?>" class="gd-return-to-dashboard btn btn-link d-block text-muted"><?php _e( 'Skip this step', 'invoicing' ); ?></a>
75
+		<a href="<?php echo esc_url($next_url); ?>" class="gd-return-to-dashboard btn btn-link d-block text-muted"><?php _e('Skip this step', 'invoicing'); ?></a>
76 76
 	</p>
77 77
 </div>
Please login to merge, or discard this patch.
includes/gateways/class-getpaid-paypal-gateway.php 2 patches
Indentation   +390 added lines, -390 removed lines patch added patch discarded remove patch
@@ -13,96 +13,96 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Paypal_Gateway extends GetPaid_Payment_Gateway {
14 14
 
15 15
     /**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20 20
     public $id = 'paypal';
21 21
 
22 22
     /**
23
-	 * An array of features that this gateway supports.
24
-	 *
25
-	 * @var array
26
-	 */
23
+     * An array of features that this gateway supports.
24
+     *
25
+     * @var array
26
+     */
27 27
     protected $supports = array( 'subscription', 'sandbox', 'single_subscription_group' );
28 28
 
29 29
     /**
30
-	 * Payment method order.
31
-	 *
32
-	 * @var int
33
-	 */
30
+     * Payment method order.
31
+     *
32
+     * @var int
33
+     */
34 34
     public $order = 1;
35 35
 
36 36
     /**
37
-	 * Stores line items to send to PayPal.
38
-	 *
39
-	 * @var array
40
-	 */
37
+     * Stores line items to send to PayPal.
38
+     *
39
+     * @var array
40
+     */
41 41
     protected $line_items = array();
42 42
 
43 43
     /**
44
-	 * Endpoint for requests from PayPal.
45
-	 *
46
-	 * @var string
47
-	 */
48
-	protected $notify_url;
49
-
50
-	/**
51
-	 * Endpoint for requests to PayPal.
52
-	 *
53
-	 * @var string
54
-	 */
44
+     * Endpoint for requests from PayPal.
45
+     *
46
+     * @var string
47
+     */
48
+    protected $notify_url;
49
+
50
+    /**
51
+     * Endpoint for requests to PayPal.
52
+     *
53
+     * @var string
54
+     */
55 55
     protected $endpoint;
56 56
 
57 57
     /**
58
-	 * Currencies this gateway is allowed for.
59
-	 *
60
-	 * @var array
61
-	 */
62
-	public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' );
58
+     * Currencies this gateway is allowed for.
59
+     *
60
+     * @var array
61
+     */
62
+    public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' );
63 63
 
64 64
     /**
65
-	 * URL to view a transaction.
66
-	 *
67
-	 * @var string
68
-	 */
65
+     * URL to view a transaction.
66
+     *
67
+     * @var string
68
+     */
69 69
     public $view_transaction_url = 'https://www.{sandbox}paypal.com/activity/payment/%s';
70 70
 
71 71
     /**
72
-	 * URL to view a subscription.
73
-	 *
74
-	 * @var string
75
-	 */
76
-	public $view_subscription_url = 'https://www.{sandbox}paypal.com/cgi-bin/webscr?cmd=_profile-recurring-payments&encrypted_profile_id=%s';
72
+     * URL to view a subscription.
73
+     *
74
+     * @var string
75
+     */
76
+    public $view_subscription_url = 'https://www.{sandbox}paypal.com/cgi-bin/webscr?cmd=_profile-recurring-payments&encrypted_profile_id=%s';
77 77
 
78 78
     /**
79
-	 * Class constructor.
80
-	 */
81
-	public function __construct() {
79
+     * Class constructor.
80
+     */
81
+    public function __construct() {
82 82
 
83 83
         $this->title                = __( 'PayPal Standard', 'invoicing' );
84 84
         $this->method_title         = __( 'PayPal Standard', 'invoicing' );
85 85
         $this->checkout_button_text = __( 'Proceed to PayPal', 'invoicing' );
86 86
         $this->notify_url           = wpinv_get_ipn_url( $this->id );
87 87
 
88
-		add_filter( 'getpaid_paypal_args', array( $this, 'process_subscription' ), 10, 2 );
88
+        add_filter( 'getpaid_paypal_args', array( $this, 'process_subscription' ), 10, 2 );
89 89
         add_filter( 'getpaid_paypal_sandbox_notice', array( $this, 'sandbox_notice' ) );
90
-		add_filter( 'getpaid_get_paypal_connect_url', array( $this, 'maybe_get_connect_url' ), 10, 2 );
91
-		add_action( 'getpaid_authenticated_admin_action_connect_paypal', array( $this, 'connect_paypal' ) );
90
+        add_filter( 'getpaid_get_paypal_connect_url', array( $this, 'maybe_get_connect_url' ), 10, 2 );
91
+        add_action( 'getpaid_authenticated_admin_action_connect_paypal', array( $this, 'connect_paypal' ) );
92 92
 
93 93
         parent::__construct();
94 94
     }
95 95
 
96 96
     /**
97
-	 * Process Payment.
98
-	 *
99
-	 *
100
-	 * @param WPInv_Invoice $invoice Invoice.
101
-	 * @param array $submission_data Posted checkout fields.
102
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
103
-	 * @return array
104
-	 */
105
-	public function process_payment( $invoice, $submission_data, $submission ) {
97
+     * Process Payment.
98
+     *
99
+     *
100
+     * @param WPInv_Invoice $invoice Invoice.
101
+     * @param array $submission_data Posted checkout fields.
102
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
103
+     * @return array
104
+     */
105
+    public function process_payment( $invoice, $submission_data, $submission ) {
106 106
 
107 107
         // Get redirect url.
108 108
         $paypal_redirect = $this->get_request_url( $invoice );
@@ -125,15 +125,15 @@  discard block
 block discarded – undo
125 125
     }
126 126
 
127 127
     /**
128
-	 * Get the PayPal request URL for an invoice.
129
-	 *
130
-	 * @param  WPInv_Invoice $invoice Invoice object.
131
-	 * @return string
132
-	 */
133
-	public function get_request_url( $invoice ) {
128
+     * Get the PayPal request URL for an invoice.
129
+     *
130
+     * @param  WPInv_Invoice $invoice Invoice object.
131
+     * @return string
132
+     */
133
+    public function get_request_url( $invoice ) {
134 134
 
135 135
         // Endpoint for this request
136
-		$this->endpoint    = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
136
+        $this->endpoint    = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
137 137
 
138 138
         // Retrieve paypal args.
139 139
         $paypal_args       = map_deep( $this->get_paypal_args( $invoice ), 'urlencode' );
@@ -146,44 +146,44 @@  discard block
 block discarded – undo
146 146
 
147 147
         return add_query_arg( $paypal_args, $this->endpoint );
148 148
 
149
-	}
149
+    }
150 150
 
151 151
     /**
152
-	 * Get PayPal Args for passing to PP.
153
-	 *
154
-	 * @param  WPInv_Invoice $invoice Invoice object.
155
-	 * @return array
156
-	 */
157
-	protected function get_paypal_args( $invoice ) {
152
+     * Get PayPal Args for passing to PP.
153
+     *
154
+     * @param  WPInv_Invoice $invoice Invoice object.
155
+     * @return array
156
+     */
157
+    protected function get_paypal_args( $invoice ) {
158 158
 
159 159
         // Whether or not to send the line items as one item.
160
-		$force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', true, $invoice );
161
-
162
-		if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) {
163
-			$force_one_line_item = true;
164
-		}
165
-
166
-		$paypal_args = apply_filters(
167
-			'getpaid_paypal_args',
168
-			array_merge(
169
-				$this->get_transaction_args( $invoice ),
170
-				$this->get_line_item_args( $invoice, $force_one_line_item )
171
-			),
172
-			$invoice
173
-		);
174
-
175
-		return $this->fix_request_length( $invoice, $paypal_args );
160
+        $force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', true, $invoice );
161
+
162
+        if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) {
163
+            $force_one_line_item = true;
164
+        }
165
+
166
+        $paypal_args = apply_filters(
167
+            'getpaid_paypal_args',
168
+            array_merge(
169
+                $this->get_transaction_args( $invoice ),
170
+                $this->get_line_item_args( $invoice, $force_one_line_item )
171
+            ),
172
+            $invoice
173
+        );
174
+
175
+        return $this->fix_request_length( $invoice, $paypal_args );
176 176
     }
177 177
 
178 178
     /**
179
-	 * Get transaction args for paypal request.
180
-	 *
181
-	 * @param WPInv_Invoice $invoice Invoice object.
182
-	 * @return array
183
-	 */
184
-	protected function get_transaction_args( $invoice ) {
185
-
186
-		return array(
179
+     * Get transaction args for paypal request.
180
+     *
181
+     * @param WPInv_Invoice $invoice Invoice object.
182
+     * @return array
183
+     */
184
+    protected function get_transaction_args( $invoice ) {
185
+
186
+        return array(
187 187
             'cmd'           => '_cart',
188 188
             'business'      => wpinv_get_option( 'paypal_email', false ),
189 189
             'no_shipping'   => '1',
@@ -208,16 +208,16 @@  discard block
 block discarded – undo
208 208
     }
209 209
 
210 210
     /**
211
-	 * Get line item args for paypal request.
212
-	 *
213
-	 * @param  WPInv_Invoice $invoice Invoice object.
214
-	 * @param  bool     $force_one_line_item Create only one item for this invoice.
215
-	 * @return array
216
-	 */
217
-	protected function get_line_item_args( $invoice, $force_one_line_item = false ) {
211
+     * Get line item args for paypal request.
212
+     *
213
+     * @param  WPInv_Invoice $invoice Invoice object.
214
+     * @param  bool     $force_one_line_item Create only one item for this invoice.
215
+     * @return array
216
+     */
217
+    protected function get_line_item_args( $invoice, $force_one_line_item = false ) {
218 218
 
219 219
         // Maybe send invoice as a single item.
220
-		if ( $force_one_line_item ) {
220
+        if ( $force_one_line_item ) {
221 221
             return $this->get_line_item_args_single_item( $invoice );
222 222
         }
223 223
 
@@ -237,129 +237,129 @@  discard block
 block discarded – undo
237 237
             $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_discount(), 2 );
238 238
         }
239 239
 
240
-		return array_merge( $line_item_args, $this->get_line_items() );
240
+        return array_merge( $line_item_args, $this->get_line_items() );
241 241
 
242 242
     }
243 243
 
244 244
     /**
245
-	 * Get line item args for paypal request as a single line item.
246
-	 *
247
-	 * @param  WPInv_Invoice $invoice Invoice object.
248
-	 * @return array
249
-	 */
250
-	protected function get_line_item_args_single_item( $invoice ) {
251
-		$this->delete_line_items();
245
+     * Get line item args for paypal request as a single line item.
246
+     *
247
+     * @param  WPInv_Invoice $invoice Invoice object.
248
+     * @return array
249
+     */
250
+    protected function get_line_item_args_single_item( $invoice ) {
251
+        $this->delete_line_items();
252 252
 
253 253
         $item_name = sprintf( __( 'Invoice #%s', 'invoicing' ), $invoice->get_number() );
254
-		$this->add_line_item( $item_name, 1, wpinv_round_amount( (float) $invoice->get_total(), 2, true ), $invoice->get_id() );
254
+        $this->add_line_item( $item_name, 1, wpinv_round_amount( (float) $invoice->get_total(), 2, true ), $invoice->get_id() );
255 255
 
256
-		return $this->get_line_items();
256
+        return $this->get_line_items();
257 257
     }
258 258
 
259 259
     /**
260
-	 * Return all line items.
261
-	 */
262
-	protected function get_line_items() {
263
-		return $this->line_items;
264
-	}
260
+     * Return all line items.
261
+     */
262
+    protected function get_line_items() {
263
+        return $this->line_items;
264
+    }
265 265
 
266 266
     /**
267
-	 * Remove all line items.
268
-	 */
269
-	protected function delete_line_items() {
270
-		$this->line_items = array();
267
+     * Remove all line items.
268
+     */
269
+    protected function delete_line_items() {
270
+        $this->line_items = array();
271 271
     }
272 272
 
273 273
     /**
274
-	 * Prepare line items to send to paypal.
275
-	 *
276
-	 * @param  WPInv_Invoice $invoice Invoice object.
277
-	 */
278
-	protected function prepare_line_items( $invoice ) {
279
-		$this->delete_line_items();
280
-
281
-		// Items.
282
-		foreach ( $invoice->get_items() as $item ) {
283
-			$amount   = $item->get_price();
284
-			$quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity();
285
-			$this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() );
274
+     * Prepare line items to send to paypal.
275
+     *
276
+     * @param  WPInv_Invoice $invoice Invoice object.
277
+     */
278
+    protected function prepare_line_items( $invoice ) {
279
+        $this->delete_line_items();
280
+
281
+        // Items.
282
+        foreach ( $invoice->get_items() as $item ) {
283
+            $amount   = $item->get_price();
284
+            $quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity();
285
+            $this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() );
286 286
         }
287 287
 
288 288
         // Fees.
289
-		foreach ( $invoice->get_fees() as $fee => $data ) {
289
+        foreach ( $invoice->get_fees() as $fee => $data ) {
290 290
             $this->add_line_item( $fee, 1, wpinv_sanitize_amount( $data['initial_fee'] ) );
291 291
         }
292 292
 
293 293
     }
294 294
 
295 295
     /**
296
-	 * Add PayPal Line Item.
297
-	 *
298
-	 * @param  string $item_name Item name.
299
-	 * @param  float    $quantity Item quantity.
300
-	 * @param  float  $amount Amount.
301
-	 * @param  string $item_number Item number.
302
-	 */
303
-	protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) {
304
-		$index = ( count( $this->line_items ) / 4 ) + 1;
305
-
306
-		$item = apply_filters(
307
-			'getpaid_paypal_line_item',
308
-			array(
309
-				'item_name'   => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ),
310
-				'quantity'    => (float) $quantity,
311
-				'amount'      => wpinv_sanitize_amount( (float) $amount, 2 ),
312
-				'item_number' => $item_number,
313
-			),
314
-			$item_name,
315
-			$quantity,
316
-			$amount,
317
-			$item_number
318
-		);
319
-
320
-		$this->line_items[ 'item_name_' . $index ]   = getpaid_limit_length( $item['item_name'], 127 );
296
+     * Add PayPal Line Item.
297
+     *
298
+     * @param  string $item_name Item name.
299
+     * @param  float    $quantity Item quantity.
300
+     * @param  float  $amount Amount.
301
+     * @param  string $item_number Item number.
302
+     */
303
+    protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) {
304
+        $index = ( count( $this->line_items ) / 4 ) + 1;
305
+
306
+        $item = apply_filters(
307
+            'getpaid_paypal_line_item',
308
+            array(
309
+                'item_name'   => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ),
310
+                'quantity'    => (float) $quantity,
311
+                'amount'      => wpinv_sanitize_amount( (float) $amount, 2 ),
312
+                'item_number' => $item_number,
313
+            ),
314
+            $item_name,
315
+            $quantity,
316
+            $amount,
317
+            $item_number
318
+        );
319
+
320
+        $this->line_items[ 'item_name_' . $index ]   = getpaid_limit_length( $item['item_name'], 127 );
321 321
         $this->line_items[ 'quantity_' . $index ]    = $item['quantity'];
322 322
 
323 323
         // The price or amount of the product, service, or contribution, not including shipping, handling, or tax.
324
-		$this->line_items[ 'amount_' . $index ]      = $item['amount'] * $item['quantity'];
325
-		$this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 );
324
+        $this->line_items[ 'amount_' . $index ]      = $item['amount'] * $item['quantity'];
325
+        $this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 );
326 326
     }
327 327
 
328 328
     /**
329
-	 * If the default request with line items is too long, generate a new one with only one line item.
330
-	 *
331
-	 * https://support.microsoft.com/en-us/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer.
332
-	 *
333
-	 * @param WPInv_Invoice $invoice Invoice to be sent to Paypal.
334
-	 * @param array    $paypal_args Arguments sent to Paypal in the request.
335
-	 * @return array
336
-	 */
337
-	protected function fix_request_length( $invoice, $paypal_args ) {
338
-		$max_paypal_length = 2083;
339
-		$query_candidate   = http_build_query( $paypal_args, '', '&' );
340
-
341
-		if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) {
342
-			return $paypal_args;
343
-		}
344
-
345
-		return apply_filters(
346
-			'getpaid_paypal_args',
347
-			array_merge(
348
-				$this->get_transaction_args( $invoice ),
349
-				$this->get_line_item_args( $invoice, true )
350
-			),
351
-			$invoice
352
-		);
329
+     * If the default request with line items is too long, generate a new one with only one line item.
330
+     *
331
+     * https://support.microsoft.com/en-us/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer.
332
+     *
333
+     * @param WPInv_Invoice $invoice Invoice to be sent to Paypal.
334
+     * @param array    $paypal_args Arguments sent to Paypal in the request.
335
+     * @return array
336
+     */
337
+    protected function fix_request_length( $invoice, $paypal_args ) {
338
+        $max_paypal_length = 2083;
339
+        $query_candidate   = http_build_query( $paypal_args, '', '&' );
340
+
341
+        if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) {
342
+            return $paypal_args;
343
+        }
344
+
345
+        return apply_filters(
346
+            'getpaid_paypal_args',
347
+            array_merge(
348
+                $this->get_transaction_args( $invoice ),
349
+                $this->get_line_item_args( $invoice, true )
350
+            ),
351
+            $invoice
352
+        );
353 353
 
354 354
     }
355 355
 
356 356
     /**
357
-	 * Processes recurring invoices.
358
-	 *
359
-	 * @param  array $paypal_args PayPal args.
360
-	 * @param  WPInv_Invoice    $invoice Invoice object.
361
-	 */
362
-	public function process_subscription( $paypal_args, $invoice ) {
357
+     * Processes recurring invoices.
358
+     *
359
+     * @param  array $paypal_args PayPal args.
360
+     * @param  WPInv_Invoice    $invoice Invoice object.
361
+     */
362
+    public function process_subscription( $paypal_args, $invoice ) {
363 363
 
364 364
         // Make sure this is a subscription.
365 365
         if ( ! $invoice->is_recurring() || ! $subscription = getpaid_get_invoice_subscription( $invoice ) ) {
@@ -384,11 +384,11 @@  discard block
 block discarded – undo
384 384
 
385 385
             $paypal_args['a1'] = 0 == $initial_amount ? 0 : $initial_amount;
386 386
 
387
-			// Trial period length.
388
-			$paypal_args['p1'] = $subscription_item->get_trial_interval();
387
+            // Trial period length.
388
+            $paypal_args['p1'] = $subscription_item->get_trial_interval();
389 389
 
390
-			// Trial period.
391
-			$paypal_args['t1'] = $subscription_item->get_trial_period();
390
+            // Trial period.
391
+            $paypal_args['t1'] = $subscription_item->get_trial_period();
392 392
 
393 393
         } else if ( $initial_amount != $recurring_amount ) {
394 394
 
@@ -411,40 +411,40 @@  discard block
 block discarded – undo
411 411
         }
412 412
 
413 413
         // We have a recurring payment
414
-		if ( ! isset( $param_number ) || 1 == $param_number ) {
414
+        if ( ! isset( $param_number ) || 1 == $param_number ) {
415 415
 
416
-			// Subscription price
417
-			$paypal_args['a3'] = $recurring_amount;
416
+            // Subscription price
417
+            $paypal_args['a3'] = $recurring_amount;
418 418
 
419
-			// Subscription duration
420
-			$paypal_args['p3'] = $interval;
419
+            // Subscription duration
420
+            $paypal_args['p3'] = $interval;
421 421
 
422
-			// Subscription period
423
-			$paypal_args['t3'] = $period;
422
+            // Subscription period
423
+            $paypal_args['t3'] = $period;
424 424
 
425 425
         }
426 426
 
427 427
         // Recurring payments
428
-		if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) {
428
+        if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) {
429 429
 
430
-			// Non-recurring payments
431
-			$paypal_args['src'] = 0;
430
+            // Non-recurring payments
431
+            $paypal_args['src'] = 0;
432 432
 
433
-		} else {
433
+        } else {
434 434
 
435
-			$paypal_args['src'] = 1;
435
+            $paypal_args['src'] = 1;
436 436
 
437
-			if ( $bill_times > 0 ) {
437
+            if ( $bill_times > 0 ) {
438 438
 
439
-				// An initial period is being used to charge a sign-up fee
440
-				if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) {
441
-					$bill_times--;
442
-				}
439
+                // An initial period is being used to charge a sign-up fee
440
+                if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) {
441
+                    $bill_times--;
442
+                }
443 443
 
444 444
                 // Make sure it's not over the max of 52
445 445
                 $paypal_args['srt'] = ( $bill_times <= 52 ? absint( $bill_times ) : 52 );
446 446
 
447
-			}
447
+            }
448 448
         }
449 449
 
450 450
         // Force return URL so that order description & instructions display
@@ -460,19 +460,19 @@  discard block
 block discarded – undo
460 460
         }
461 461
 
462 462
         return apply_filters(
463
-			'getpaid_paypal_subscription_args',
464
-			$paypal_args,
465
-			$invoice
463
+            'getpaid_paypal_subscription_args',
464
+            $paypal_args,
465
+            $invoice
466 466
         );
467 467
 
468 468
     }
469 469
 
470 470
     /**
471
-	 * Processes ipns and marks payments as complete.
472
-	 *
473
-	 * @return void
474
-	 */
475
-	public function verify_ipn() {
471
+     * Processes ipns and marks payments as complete.
472
+     *
473
+     * @return void
474
+     */
475
+    public function verify_ipn() {
476 476
         new GetPaid_Paypal_Gateway_IPN_Handler( $this );
477 477
     }
478 478
 
@@ -482,19 +482,19 @@  discard block
 block discarded – undo
482 482
     public function sandbox_notice() {
483 483
 
484 484
         return sprintf(
485
-			__( 'SANDBOX ENABLED. You can use sandbox testing accounts only. See the %sPayPal Sandbox Testing Guide%s for more details.', 'invoicing' ),
486
-			'<a href="https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/">',
487
-			'</a>'
488
-		);
485
+            __( 'SANDBOX ENABLED. You can use sandbox testing accounts only. See the %sPayPal Sandbox Testing Guide%s for more details.', 'invoicing' ),
486
+            '<a href="https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/">',
487
+            '</a>'
488
+        );
489 489
 
490 490
     }
491 491
 
492
-	/**
493
-	 * Filters the gateway settings.
494
-	 *
495
-	 * @param array $admin_settings
496
-	 */
497
-	public function admin_settings( $admin_settings ) {
492
+    /**
493
+     * Filters the gateway settings.
494
+     *
495
+     * @param array $admin_settings
496
+     */
497
+    public function admin_settings( $admin_settings ) {
498 498
 
499 499
         $currencies = sprintf(
500 500
             __( 'Supported Currencies: %s', 'invoicing' ),
@@ -504,89 +504,89 @@  discard block
 block discarded – undo
504 504
         $admin_settings['paypal_active']['desc'] .= " ($currencies)";
505 505
         $admin_settings['paypal_desc']['std']     = __( 'Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing' );
506 506
 
507
-		// Access tokens.
507
+        // Access tokens.
508 508
         $live_account    = wpinv_get_option( 'paypal_live_access_token' );
509 509
         $sandbox_account = wpinv_get_option( 'paypal_test_access_token' );
510 510
 
511
-		$admin_settings['paypal_connect'] = array(
512
-			'type'       => 'raw_html',
513
-			'id'         => 'paypal_connect',
514
-			'name'       => __( 'Connect to PayPal', 'invoicing' ),
515
-			'desc'       => sprintf(
516
-				'<div class="wpinv-paypal-connect-live"><a class="button button-primary" href="%s">%s</a><br><strong style="color: green">%s</strong></div><div class="wpinv-paypal-connect-sandbox"><a class="button button-primary" href="%s">%s</a><br><strong style="color: green">%s</strong></div>%s',
517
-				esc_url( self::get_connect_url( false ) ),
518
-				__( 'Connect to PayPal', 'invoicing' ),
519
-				__( 'Connected', 'invoicing' ),
520
-				esc_url( self::get_connect_url( true ) ),
521
-				__( 'Connect to PayPal Sandox', 'invoicing' ),
522
-				__( 'Connected', 'invoicing' ),
523
-				$this->get_js()
524
-			),
525
-		);
526
-
527
-		$admin_settings['disable_paypal_connect'] = array(
528
-			'type'       => 'checkbox',
529
-			'id'         => 'disable_paypal_connect',
530
-			'name'       => __( 'Manual Mode', 'invoicing' ),
531
-			'desc'       => __( 'Manually enter your credentials', 'invoicing' ),
532
-			'std'        => false,
533
-		);
511
+        $admin_settings['paypal_connect'] = array(
512
+            'type'       => 'raw_html',
513
+            'id'         => 'paypal_connect',
514
+            'name'       => __( 'Connect to PayPal', 'invoicing' ),
515
+            'desc'       => sprintf(
516
+                '<div class="wpinv-paypal-connect-live"><a class="button button-primary" href="%s">%s</a><br><strong style="color: green">%s</strong></div><div class="wpinv-paypal-connect-sandbox"><a class="button button-primary" href="%s">%s</a><br><strong style="color: green">%s</strong></div>%s',
517
+                esc_url( self::get_connect_url( false ) ),
518
+                __( 'Connect to PayPal', 'invoicing' ),
519
+                __( 'Connected', 'invoicing' ),
520
+                esc_url( self::get_connect_url( true ) ),
521
+                __( 'Connect to PayPal Sandox', 'invoicing' ),
522
+                __( 'Connected', 'invoicing' ),
523
+                $this->get_js()
524
+            ),
525
+        );
526
+
527
+        $admin_settings['disable_paypal_connect'] = array(
528
+            'type'       => 'checkbox',
529
+            'id'         => 'disable_paypal_connect',
530
+            'name'       => __( 'Manual Mode', 'invoicing' ),
531
+            'desc'       => __( 'Manually enter your credentials', 'invoicing' ),
532
+            'std'        => false,
533
+        );
534 534
 
535 535
         $admin_settings['paypal_email'] = array(
536 536
             'type'  => 'text',
537
-			'class' => 'live-auth-data',
537
+            'class' => 'live-auth-data',
538 538
             'id'    => 'paypal_email',
539 539
             'name'  => __( 'Live Email Address', 'invoicing' ),
540 540
             'desc'  => __( 'The email address of your PayPal account.', 'invoicing' ),
541 541
         );
542 542
 
543
-		$admin_settings['paypal_merchant_id'] = array(
543
+        $admin_settings['paypal_merchant_id'] = array(
544 544
             'type'  => 'text',
545
-			'class' => 'live-auth-data',
545
+            'class' => 'live-auth-data',
546 546
             'id'    => 'paypal_merchant_id',
547 547
             'name'  => __( 'Live Merchant ID', 'invoicing' ),
548 548
         );
549 549
 
550
-		$admin_settings['paypal_client_id'] = array(
550
+        $admin_settings['paypal_client_id'] = array(
551 551
             'type'  => 'text',
552
-			'class' => 'live-auth-data',
552
+            'class' => 'live-auth-data',
553 553
             'id'    => 'paypal_client_id',
554 554
             'name'  => __( 'Live Client ID', 'invoicing' ),
555 555
         );
556 556
 
557
-		$admin_settings['paypal_client_secret'] = array(
557
+        $admin_settings['paypal_client_secret'] = array(
558 558
             'type'  => 'text',
559
-			'class' => 'live-auth-data',
559
+            'class' => 'live-auth-data',
560 560
             'id'    => 'paypal_client_secret',
561 561
             'name'  => __( 'Live Client Secret', 'invoicing' ),
562 562
         );
563 563
 
564
-		$admin_settings['paypal_sandbox_email'] = array(
564
+        $admin_settings['paypal_sandbox_email'] = array(
565 565
             'type'  => 'text',
566
-			'class' => 'sandbox-auth-data',
566
+            'class' => 'sandbox-auth-data',
567 567
             'id'    => 'paypal_sandbox_email',
568 568
             'name'  => __( 'Sandbox Email Address', 'invoicing' ),
569 569
             'desc'  => __( 'The email address of your sandbox PayPal account.', 'invoicing' ),
570
-			'std'   => wpinv_get_option( 'paypal_email', '' ),
570
+            'std'   => wpinv_get_option( 'paypal_email', '' ),
571 571
         );
572 572
 
573
-		$admin_settings['paypal_sandbox_merchant_id'] = array(
573
+        $admin_settings['paypal_sandbox_merchant_id'] = array(
574 574
             'type'  => 'text',
575
-			'class' => 'sandbox-auth-data',
575
+            'class' => 'sandbox-auth-data',
576 576
             'id'    => 'paypal_sandbox_merchant_id',
577 577
             'name'  => __( 'Sandbox Merchant ID', 'invoicing' ),
578 578
         );
579 579
 
580
-		$admin_settings['paypal_sandbox_client_id'] = array(
580
+        $admin_settings['paypal_sandbox_client_id'] = array(
581 581
             'type'  => 'text',
582
-			'class' => 'sandbox-auth-data',
582
+            'class' => 'sandbox-auth-data',
583 583
             'id'    => 'paypal_sandbox_client_id',
584 584
             'name'  => __( 'Sandbox Client ID', 'invoicing' ),
585 585
         );
586 586
 
587
-		$admin_settings['paypal_sandbox_client_secret'] = array(
587
+        $admin_settings['paypal_sandbox_client_secret'] = array(
588 588
             'type'  => 'text',
589
-			'class' => 'sandbox-auth-data',
589
+            'class' => 'sandbox-auth-data',
590 590
             'id'    => 'paypal_sandbox_client_secret',
591 591
             'name'  => __( 'Sandbox Client Secret', 'invoicing' ),
592 592
         );
@@ -600,29 +600,29 @@  discard block
 block discarded – undo
600 600
             'readonly' => true,
601 601
         );
602 602
 
603
-		return $admin_settings;
604
-	}
603
+        return $admin_settings;
604
+    }
605 605
 
606
-	/**
607
-	 * Retrieves the PayPal connect URL when using the setup wizzard.
608
-	 *
609
-	 *
606
+    /**
607
+     * Retrieves the PayPal connect URL when using the setup wizzard.
608
+     *
609
+     *
610 610
      * @param array $data
611 611
      * @return string
612
-	 */
613
-	public static function maybe_get_connect_url( $data ) {
614
-		return self::get_connect_url( false, urldecode( $data['redirect'] ) );
615
-	}
616
-
617
-	/**
618
-	 * Retrieves the PayPal connect URL.
619
-	 *
620
-	 *
612
+     */
613
+    public static function maybe_get_connect_url( $data ) {
614
+        return self::get_connect_url( false, urldecode( $data['redirect'] ) );
615
+    }
616
+
617
+    /**
618
+     * Retrieves the PayPal connect URL.
619
+     *
620
+     *
621 621
      * @param bool $is_sandbox
622
-	 * @param string $redirect
622
+     * @param string $redirect
623 623
      * @return string
624
-	 */
625
-	public static function get_connect_url( $is_sandbox, $redirect = '' ) {
624
+     */
625
+    public static function get_connect_url( $is_sandbox, $redirect = '' ) {
626 626
 
627 627
         $redirect_url = add_query_arg(
628 628
             array(
@@ -632,7 +632,7 @@  discard block
 block discarded – undo
632 632
                 'tab'                  => 'gateways',
633 633
                 'section'              => 'paypal',
634 634
                 'getpaid-nonce'        => wp_create_nonce( 'getpaid-nonce' ),
635
-				'redirect'             => urlencode( $redirect ),
635
+                'redirect'             => urlencode( $redirect ),
636 636
             ),
637 637
             admin_url( 'admin.php' )
638 638
         );
@@ -647,12 +647,12 @@  discard block
 block discarded – undo
647 647
 
648 648
     }
649 649
 
650
-	/**
651
-	 * Generates settings page js.
652
-	 *
650
+    /**
651
+     * Generates settings page js.
652
+     *
653 653
      * @return void
654
-	 */
655
-	public static function get_js() {
654
+     */
655
+    public static function get_js() {
656 656
         ob_start();
657 657
         ?>
658 658
             <script>
@@ -698,104 +698,104 @@  discard block
 block discarded – undo
698 698
         return ob_get_clean();
699 699
     }
700 700
 
701
-	/**
702
-	 * Connects to PayPal.
703
-	 *
704
-	 * @param array $data Connection data.
705
-	 * @return void
706
-	 */
707
-	public function connect_paypal( $data ) {
708
-
709
-		$sandbox      = $this->is_sandbox();
710
-		$data         = wp_unslash( $data );
711
-		$access_token = empty( $data['access_token'] ) ? '' : sanitize_text_field( $data['access_token'] );
712
-
713
-		if ( isset( $data['live_mode'] ) ) {
714
-			$sandbox = empty( $data['live_mode'] );
715
-		}
716
-
717
-		wpinv_update_option( 'stripe_sandbox', (int) $sandbox );
718
-		wpinv_update_option( 'stripe_active', 1 );
719
-
720
-		if ( ! empty( $data['error_description'] ) ) {
721
-			getpaid_admin()->show_error( wp_kses_post( urldecode( $data['error_description'] ) ) );
722
-		} else {
723
-
724
-			// Retrieve the user info.
725
-			$user_info = wp_remote_get(
726
-				! $sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
727
-				array(
728
-
729
-					'headers' => array(
730
-						'Authorization' => 'Bearer ' . $access_token,
731
-						'Content-type'  => 'application/json',
732
-					)
733
-
734
-				)
735
-			);
736
-
737
-			if ( is_wp_error( $user_info ) ) {
738
-				getpaid_admin()->show_error( wp_kses_post( $user_info->get_error_message() ) );
739
-			} else {
740
-
741
-				// Create application.
742
-				$user_info = json_decode( wp_remote_retrieve_body( $user_info ) );
743
-				$app       = wp_remote_post(
744
-					! $sandbox ? 'https://api-m.paypal.com/v1/identity/applications' : 'https://api-m.sandbox.paypal.com/v1/identity/applications',
745
-					array(
746
-
747
-						'body'    => array(
748
-							'application_type' => 'web',
749
-							'redirect_uris'    => array(
750
-								add_query_arg( 'getpaid_oauth', 'paypal', home_url() ),
751
-							),
752
-							'client_name'      => 'GetPaid',
753
-							'contacts'         => array( $user_info->emails[0]->value ),
754
-							'payer_id'         => $user_info->payer_id,
755
-							'migrated_app'     => '',
756
-						),
757
-						'headers' => array(
758
-							'Authorization' => 'Bearer ' . $access_token,
759
-							'Content-type'  => 'application/json',
760
-						)
761
-
762
-					)
763
-				);
764
-
765
-				if ( is_wp_error( $app ) ) {
766
-					getpaid_admin()->show_error( wp_kses_post( $app->get_error_message() ) );
767
-				} else {
768
-
769
-					$app = json_decode( $app );
770
-					if ( $sandbox ) {
771
-						wpinv_update_option( 'paypal_sandbox_email', sanitize_email( $user_info->emails[0]->value ) );
772
-						wpinv_update_option( 'paypal_sandbox_merchant_id', '' );
773
-						wpinv_update_option( 'paypal_sandbox_client_id', sanitize_text_field( '' ) );
774
-						wpinv_update_option( 'paypal_sandbox_client_secret', sanitize_text_field( '' ) );
775
-						wpinv_update_option( 'paypal_sandbox_client_secret_expires_at', sanitize_text_field( '' ) );
776
-						wpinv_update_option( 'paypal_sandbox_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
777
-						set_transient( 'getpaid_paypal_sandbox_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
778
-						getpaid_admin()->show_success( __( 'Successfully connected your PayPal sandbox account', 'wpinv-stripe' ) );
779
-					} else {
780
-						wpinv_update_option( 'paypal_email', sanitize_email( $user_info->emails[0]->value ) );
781
-						wpinv_update_option( 'paypal_merchant_id', '' );
782
-						wpinv_update_option( 'paypal_client_id', sanitize_text_field( '' ) );
783
-						wpinv_update_option( 'paypal_client_secret', sanitize_text_field( '' ) );
784
-						wpinv_update_option( 'paypal_client_secret_expires_at', sanitize_text_field( '' ) );
785
-						wpinv_update_option( 'paypal_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
786
-						set_transient( 'getpaid_paypal_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
787
-						getpaid_admin()->show_success( __( 'Successfully connected your PayPal account', 'wpinv-stripe' ) );
788
-					}
701
+    /**
702
+     * Connects to PayPal.
703
+     *
704
+     * @param array $data Connection data.
705
+     * @return void
706
+     */
707
+    public function connect_paypal( $data ) {
789 708
 
790
-				}
709
+        $sandbox      = $this->is_sandbox();
710
+        $data         = wp_unslash( $data );
711
+        $access_token = empty( $data['access_token'] ) ? '' : sanitize_text_field( $data['access_token'] );
712
+
713
+        if ( isset( $data['live_mode'] ) ) {
714
+            $sandbox = empty( $data['live_mode'] );
715
+        }
716
+
717
+        wpinv_update_option( 'stripe_sandbox', (int) $sandbox );
718
+        wpinv_update_option( 'stripe_active', 1 );
719
+
720
+        if ( ! empty( $data['error_description'] ) ) {
721
+            getpaid_admin()->show_error( wp_kses_post( urldecode( $data['error_description'] ) ) );
722
+        } else {
791 723
 
792
-			}
724
+            // Retrieve the user info.
725
+            $user_info = wp_remote_get(
726
+                ! $sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
727
+                array(
793 728
 
794
-		}
729
+                    'headers' => array(
730
+                        'Authorization' => 'Bearer ' . $access_token,
731
+                        'Content-type'  => 'application/json',
732
+                    )
795 733
 
796
-		$redirect = empty( $data['redirect'] ) ? admin_url( 'admin.php?page=wpinv-settings&tab=gateways&section=paypal' ) : urldecode( $data['redirect'] );
797
-		wp_redirect( $redirect );
798
-		exit;
799
-	}
734
+                )
735
+            );
736
+
737
+            if ( is_wp_error( $user_info ) ) {
738
+                getpaid_admin()->show_error( wp_kses_post( $user_info->get_error_message() ) );
739
+            } else {
740
+
741
+                // Create application.
742
+                $user_info = json_decode( wp_remote_retrieve_body( $user_info ) );
743
+                $app       = wp_remote_post(
744
+                    ! $sandbox ? 'https://api-m.paypal.com/v1/identity/applications' : 'https://api-m.sandbox.paypal.com/v1/identity/applications',
745
+                    array(
746
+
747
+                        'body'    => array(
748
+                            'application_type' => 'web',
749
+                            'redirect_uris'    => array(
750
+                                add_query_arg( 'getpaid_oauth', 'paypal', home_url() ),
751
+                            ),
752
+                            'client_name'      => 'GetPaid',
753
+                            'contacts'         => array( $user_info->emails[0]->value ),
754
+                            'payer_id'         => $user_info->payer_id,
755
+                            'migrated_app'     => '',
756
+                        ),
757
+                        'headers' => array(
758
+                            'Authorization' => 'Bearer ' . $access_token,
759
+                            'Content-type'  => 'application/json',
760
+                        )
761
+
762
+                    )
763
+                );
764
+
765
+                if ( is_wp_error( $app ) ) {
766
+                    getpaid_admin()->show_error( wp_kses_post( $app->get_error_message() ) );
767
+                } else {
768
+
769
+                    $app = json_decode( $app );
770
+                    if ( $sandbox ) {
771
+                        wpinv_update_option( 'paypal_sandbox_email', sanitize_email( $user_info->emails[0]->value ) );
772
+                        wpinv_update_option( 'paypal_sandbox_merchant_id', '' );
773
+                        wpinv_update_option( 'paypal_sandbox_client_id', sanitize_text_field( '' ) );
774
+                        wpinv_update_option( 'paypal_sandbox_client_secret', sanitize_text_field( '' ) );
775
+                        wpinv_update_option( 'paypal_sandbox_client_secret_expires_at', sanitize_text_field( '' ) );
776
+                        wpinv_update_option( 'paypal_sandbox_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
777
+                        set_transient( 'getpaid_paypal_sandbox_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
778
+                        getpaid_admin()->show_success( __( 'Successfully connected your PayPal sandbox account', 'wpinv-stripe' ) );
779
+                    } else {
780
+                        wpinv_update_option( 'paypal_email', sanitize_email( $user_info->emails[0]->value ) );
781
+                        wpinv_update_option( 'paypal_merchant_id', '' );
782
+                        wpinv_update_option( 'paypal_client_id', sanitize_text_field( '' ) );
783
+                        wpinv_update_option( 'paypal_client_secret', sanitize_text_field( '' ) );
784
+                        wpinv_update_option( 'paypal_client_secret_expires_at', sanitize_text_field( '' ) );
785
+                        wpinv_update_option( 'paypal_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
786
+                        set_transient( 'getpaid_paypal_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
787
+                        getpaid_admin()->show_success( __( 'Successfully connected your PayPal account', 'wpinv-stripe' ) );
788
+                    }
789
+
790
+                }
791
+
792
+            }
793
+
794
+        }
795
+
796
+        $redirect = empty( $data['redirect'] ) ? admin_url( 'admin.php?page=wpinv-settings&tab=gateways&section=paypal' ) : urldecode( $data['redirect'] );
797
+        wp_redirect( $redirect );
798
+        exit;
799
+    }
800 800
 
801 801
 }
Please login to merge, or discard this patch.
Spacing   +166 added lines, -166 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
  * Paypal Payment Gateway class.
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
 	 *
25 25
 	 * @var array
26 26
 	 */
27
-    protected $supports = array( 'subscription', 'sandbox', 'single_subscription_group' );
27
+    protected $supports = array('subscription', 'sandbox', 'single_subscription_group');
28 28
 
29 29
     /**
30 30
 	 * Payment method order.
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
 	 *
60 60
 	 * @var array
61 61
 	 */
62
-	public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' );
62
+	public $currencies = array('AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR');
63 63
 
64 64
     /**
65 65
 	 * URL to view a transaction.
@@ -80,15 +80,15 @@  discard block
 block discarded – undo
80 80
 	 */
81 81
 	public function __construct() {
82 82
 
83
-        $this->title                = __( 'PayPal Standard', 'invoicing' );
84
-        $this->method_title         = __( 'PayPal Standard', 'invoicing' );
85
-        $this->checkout_button_text = __( 'Proceed to PayPal', 'invoicing' );
86
-        $this->notify_url           = wpinv_get_ipn_url( $this->id );
83
+        $this->title                = __('PayPal Standard', 'invoicing');
84
+        $this->method_title         = __('PayPal Standard', 'invoicing');
85
+        $this->checkout_button_text = __('Proceed to PayPal', 'invoicing');
86
+        $this->notify_url           = wpinv_get_ipn_url($this->id);
87 87
 
88
-		add_filter( 'getpaid_paypal_args', array( $this, 'process_subscription' ), 10, 2 );
89
-        add_filter( 'getpaid_paypal_sandbox_notice', array( $this, 'sandbox_notice' ) );
90
-		add_filter( 'getpaid_get_paypal_connect_url', array( $this, 'maybe_get_connect_url' ), 10, 2 );
91
-		add_action( 'getpaid_authenticated_admin_action_connect_paypal', array( $this, 'connect_paypal' ) );
88
+		add_filter('getpaid_paypal_args', array($this, 'process_subscription'), 10, 2);
89
+        add_filter('getpaid_paypal_sandbox_notice', array($this, 'sandbox_notice'));
90
+		add_filter('getpaid_get_paypal_connect_url', array($this, 'maybe_get_connect_url'), 10, 2);
91
+		add_action('getpaid_authenticated_admin_action_connect_paypal', array($this, 'connect_paypal'));
92 92
 
93 93
         parent::__construct();
94 94
     }
@@ -102,16 +102,16 @@  discard block
 block discarded – undo
102 102
 	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
103 103
 	 * @return array
104 104
 	 */
105
-	public function process_payment( $invoice, $submission_data, $submission ) {
105
+	public function process_payment($invoice, $submission_data, $submission) {
106 106
 
107 107
         // Get redirect url.
108
-        $paypal_redirect = $this->get_request_url( $invoice );
108
+        $paypal_redirect = $this->get_request_url($invoice);
109 109
 
110 110
         // Add a note about the request url.
111 111
         $invoice->add_note(
112 112
             sprintf(
113
-                __( 'Redirecting to PayPal: %s', 'invoicing' ),
114
-                esc_url( $paypal_redirect )
113
+                __('Redirecting to PayPal: %s', 'invoicing'),
114
+                esc_url($paypal_redirect)
115 115
             ),
116 116
             false,
117 117
             false,
@@ -119,7 +119,7 @@  discard block
 block discarded – undo
119 119
         );
120 120
 
121 121
         // Redirect to PayPal
122
-        wp_redirect( $paypal_redirect );
122
+        wp_redirect($paypal_redirect);
123 123
         exit;
124 124
 
125 125
     }
@@ -130,21 +130,21 @@  discard block
 block discarded – undo
130 130
 	 * @param  WPInv_Invoice $invoice Invoice object.
131 131
 	 * @return string
132 132
 	 */
133
-	public function get_request_url( $invoice ) {
133
+	public function get_request_url($invoice) {
134 134
 
135 135
         // Endpoint for this request
136
-		$this->endpoint    = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
136
+		$this->endpoint = $this->is_sandbox($invoice) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
137 137
 
138 138
         // Retrieve paypal args.
139
-        $paypal_args       = map_deep( $this->get_paypal_args( $invoice ), 'urlencode' );
139
+        $paypal_args = map_deep($this->get_paypal_args($invoice), 'urlencode');
140 140
 
141
-        if ( $invoice->is_recurring() ) {
141
+        if ($invoice->is_recurring()) {
142 142
             $paypal_args['bn'] = 'GetPaid_Subscribe_WPS_US';
143 143
         } else {
144 144
             $paypal_args['bn'] = 'GetPaid_ShoppingCart_WPS_US';
145 145
         }
146 146
 
147
-        return add_query_arg( $paypal_args, $this->endpoint );
147
+        return add_query_arg($paypal_args, $this->endpoint);
148 148
 
149 149
 	}
150 150
 
@@ -154,25 +154,25 @@  discard block
 block discarded – undo
154 154
 	 * @param  WPInv_Invoice $invoice Invoice object.
155 155
 	 * @return array
156 156
 	 */
157
-	protected function get_paypal_args( $invoice ) {
157
+	protected function get_paypal_args($invoice) {
158 158
 
159 159
         // Whether or not to send the line items as one item.
160
-		$force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', true, $invoice );
160
+		$force_one_line_item = apply_filters('getpaid_paypal_force_one_line_item', true, $invoice);
161 161
 
162
-		if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) {
162
+		if ($invoice->is_recurring() || (wpinv_use_taxes() && wpinv_prices_include_tax())) {
163 163
 			$force_one_line_item = true;
164 164
 		}
165 165
 
166 166
 		$paypal_args = apply_filters(
167 167
 			'getpaid_paypal_args',
168 168
 			array_merge(
169
-				$this->get_transaction_args( $invoice ),
170
-				$this->get_line_item_args( $invoice, $force_one_line_item )
169
+				$this->get_transaction_args($invoice),
170
+				$this->get_line_item_args($invoice, $force_one_line_item)
171 171
 			),
172 172
 			$invoice
173 173
 		);
174 174
 
175
-		return $this->fix_request_length( $invoice, $paypal_args );
175
+		return $this->fix_request_length($invoice, $paypal_args);
176 176
     }
177 177
 
178 178
     /**
@@ -181,11 +181,11 @@  discard block
 block discarded – undo
181 181
 	 * @param WPInv_Invoice $invoice Invoice object.
182 182
 	 * @return array
183 183
 	 */
184
-	protected function get_transaction_args( $invoice ) {
184
+	protected function get_transaction_args($invoice) {
185 185
 
186 186
 		return array(
187 187
             'cmd'           => '_cart',
188
-            'business'      => wpinv_get_option( 'paypal_email', false ),
188
+            'business'      => wpinv_get_option('paypal_email', false),
189 189
             'no_shipping'   => '1',
190 190
             'shipping'      => '0',
191 191
             'no_note'       => '1',
@@ -193,16 +193,16 @@  discard block
 block discarded – undo
193 193
             'rm'            => is_ssl() ? 2 : 1,
194 194
             'upload'        => 1,
195 195
             'currency_code' => $invoice->get_currency(), // https://developer.paypal.com/docs/nvp-soap-api/currency-codes/#paypal
196
-            'return'        => esc_url_raw( $this->get_return_url( $invoice ) ),
197
-            'cancel_return' => esc_url_raw( $invoice->get_checkout_payment_url() ),
198
-            'notify_url'    => getpaid_limit_length( $this->notify_url, 255 ),
199
-            'invoice'       => getpaid_limit_length( $invoice->get_number(), 127 ),
196
+            'return'        => esc_url_raw($this->get_return_url($invoice)),
197
+            'cancel_return' => esc_url_raw($invoice->get_checkout_payment_url()),
198
+            'notify_url'    => getpaid_limit_length($this->notify_url, 255),
199
+            'invoice'       => getpaid_limit_length($invoice->get_number(), 127),
200 200
             'custom'        => $invoice->get_id(),
201
-            'first_name'    => getpaid_limit_length( $invoice->get_first_name(), 32 ),
202
-            'last_name'     => getpaid_limit_length( $invoice->get_last_name(), 64 ),
203
-            'country'       => getpaid_limit_length( $invoice->get_country(), 2 ),
204
-            'email'         => getpaid_limit_length( $invoice->get_email(), 127 ),
205
-            'cbt'           => get_bloginfo( 'name' )
201
+            'first_name'    => getpaid_limit_length($invoice->get_first_name(), 32),
202
+            'last_name'     => getpaid_limit_length($invoice->get_last_name(), 64),
203
+            'country'       => getpaid_limit_length($invoice->get_country(), 2),
204
+            'email'         => getpaid_limit_length($invoice->get_email(), 127),
205
+            'cbt'           => get_bloginfo('name')
206 206
         );
207 207
 
208 208
     }
@@ -214,30 +214,30 @@  discard block
 block discarded – undo
214 214
 	 * @param  bool     $force_one_line_item Create only one item for this invoice.
215 215
 	 * @return array
216 216
 	 */
217
-	protected function get_line_item_args( $invoice, $force_one_line_item = false ) {
217
+	protected function get_line_item_args($invoice, $force_one_line_item = false) {
218 218
 
219 219
         // Maybe send invoice as a single item.
220
-		if ( $force_one_line_item ) {
221
-            return $this->get_line_item_args_single_item( $invoice );
220
+		if ($force_one_line_item) {
221
+            return $this->get_line_item_args_single_item($invoice);
222 222
         }
223 223
 
224 224
         // Send each line item individually.
225 225
         $line_item_args = array();
226 226
 
227 227
         // Prepare line items.
228
-        $this->prepare_line_items( $invoice );
228
+        $this->prepare_line_items($invoice);
229 229
 
230 230
         // Add taxes to the cart
231
-        if ( wpinv_use_taxes() && $invoice->is_taxable() ) {
232
-            $line_item_args['tax_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_tax(), 2 );
231
+        if (wpinv_use_taxes() && $invoice->is_taxable()) {
232
+            $line_item_args['tax_cart'] = wpinv_sanitize_amount((float) $invoice->get_total_tax(), 2);
233 233
         }
234 234
 
235 235
         // Add discount.
236
-        if ( $invoice->get_total_discount() > 0 ) {
237
-            $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_discount(), 2 );
236
+        if ($invoice->get_total_discount() > 0) {
237
+            $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount((float) $invoice->get_total_discount(), 2);
238 238
         }
239 239
 
240
-		return array_merge( $line_item_args, $this->get_line_items() );
240
+		return array_merge($line_item_args, $this->get_line_items());
241 241
 
242 242
     }
243 243
 
@@ -247,11 +247,11 @@  discard block
 block discarded – undo
247 247
 	 * @param  WPInv_Invoice $invoice Invoice object.
248 248
 	 * @return array
249 249
 	 */
250
-	protected function get_line_item_args_single_item( $invoice ) {
250
+	protected function get_line_item_args_single_item($invoice) {
251 251
 		$this->delete_line_items();
252 252
 
253
-        $item_name = sprintf( __( 'Invoice #%s', 'invoicing' ), $invoice->get_number() );
254
-		$this->add_line_item( $item_name, 1, wpinv_round_amount( (float) $invoice->get_total(), 2, true ), $invoice->get_id() );
253
+        $item_name = sprintf(__('Invoice #%s', 'invoicing'), $invoice->get_number());
254
+		$this->add_line_item($item_name, 1, wpinv_round_amount((float) $invoice->get_total(), 2, true), $invoice->get_id());
255 255
 
256 256
 		return $this->get_line_items();
257 257
     }
@@ -275,19 +275,19 @@  discard block
 block discarded – undo
275 275
 	 *
276 276
 	 * @param  WPInv_Invoice $invoice Invoice object.
277 277
 	 */
278
-	protected function prepare_line_items( $invoice ) {
278
+	protected function prepare_line_items($invoice) {
279 279
 		$this->delete_line_items();
280 280
 
281 281
 		// Items.
282
-		foreach ( $invoice->get_items() as $item ) {
282
+		foreach ($invoice->get_items() as $item) {
283 283
 			$amount   = $item->get_price();
284 284
 			$quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity();
285
-			$this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() );
285
+			$this->add_line_item($item->get_raw_name(), $quantity, $amount, $item->get_id());
286 286
         }
287 287
 
288 288
         // Fees.
289
-		foreach ( $invoice->get_fees() as $fee => $data ) {
290
-            $this->add_line_item( $fee, 1, wpinv_sanitize_amount( $data['initial_fee'] ) );
289
+		foreach ($invoice->get_fees() as $fee => $data) {
290
+            $this->add_line_item($fee, 1, wpinv_sanitize_amount($data['initial_fee']));
291 291
         }
292 292
 
293 293
     }
@@ -300,15 +300,15 @@  discard block
 block discarded – undo
300 300
 	 * @param  float  $amount Amount.
301 301
 	 * @param  string $item_number Item number.
302 302
 	 */
303
-	protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) {
304
-		$index = ( count( $this->line_items ) / 4 ) + 1;
303
+	protected function add_line_item($item_name, $quantity = 1, $amount = 0.0, $item_number = '') {
304
+		$index = (count($this->line_items) / 4) + 1;
305 305
 
306 306
 		$item = apply_filters(
307 307
 			'getpaid_paypal_line_item',
308 308
 			array(
309
-				'item_name'   => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ),
309
+				'item_name'   => html_entity_decode(getpaid_limit_length($item_name ? wp_strip_all_tags($item_name) : __('Item', 'invoicing'), 127), ENT_NOQUOTES, 'UTF-8'),
310 310
 				'quantity'    => (float) $quantity,
311
-				'amount'      => wpinv_sanitize_amount( (float) $amount, 2 ),
311
+				'amount'      => wpinv_sanitize_amount((float) $amount, 2),
312 312
 				'item_number' => $item_number,
313 313
 			),
314 314
 			$item_name,
@@ -317,12 +317,12 @@  discard block
 block discarded – undo
317 317
 			$item_number
318 318
 		);
319 319
 
320
-		$this->line_items[ 'item_name_' . $index ]   = getpaid_limit_length( $item['item_name'], 127 );
321
-        $this->line_items[ 'quantity_' . $index ]    = $item['quantity'];
320
+		$this->line_items['item_name_' . $index] = getpaid_limit_length($item['item_name'], 127);
321
+        $this->line_items['quantity_' . $index] = $item['quantity'];
322 322
 
323 323
         // The price or amount of the product, service, or contribution, not including shipping, handling, or tax.
324
-		$this->line_items[ 'amount_' . $index ]      = $item['amount'] * $item['quantity'];
325
-		$this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 );
324
+		$this->line_items['amount_' . $index]      = $item['amount'] * $item['quantity'];
325
+		$this->line_items['item_number_' . $index] = getpaid_limit_length($item['item_number'], 127);
326 326
     }
327 327
 
328 328
     /**
@@ -334,19 +334,19 @@  discard block
 block discarded – undo
334 334
 	 * @param array    $paypal_args Arguments sent to Paypal in the request.
335 335
 	 * @return array
336 336
 	 */
337
-	protected function fix_request_length( $invoice, $paypal_args ) {
337
+	protected function fix_request_length($invoice, $paypal_args) {
338 338
 		$max_paypal_length = 2083;
339
-		$query_candidate   = http_build_query( $paypal_args, '', '&' );
339
+		$query_candidate   = http_build_query($paypal_args, '', '&');
340 340
 
341
-		if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) {
341
+		if (strlen($this->endpoint . $query_candidate) <= $max_paypal_length) {
342 342
 			return $paypal_args;
343 343
 		}
344 344
 
345 345
 		return apply_filters(
346 346
 			'getpaid_paypal_args',
347 347
 			array_merge(
348
-				$this->get_transaction_args( $invoice ),
349
-				$this->get_line_item_args( $invoice, true )
348
+				$this->get_transaction_args($invoice),
349
+				$this->get_line_item_args($invoice, true)
350 350
 			),
351 351
 			$invoice
352 352
 		);
@@ -359,10 +359,10 @@  discard block
 block discarded – undo
359 359
 	 * @param  array $paypal_args PayPal args.
360 360
 	 * @param  WPInv_Invoice    $invoice Invoice object.
361 361
 	 */
362
-	public function process_subscription( $paypal_args, $invoice ) {
362
+	public function process_subscription($paypal_args, $invoice) {
363 363
 
364 364
         // Make sure this is a subscription.
365
-        if ( ! $invoice->is_recurring() || ! $subscription = getpaid_get_invoice_subscription( $invoice ) ) {
365
+        if (!$invoice->is_recurring() || !$subscription = getpaid_get_invoice_subscription($invoice)) {
366 366
             return $paypal_args;
367 367
         }
368 368
 
@@ -370,17 +370,17 @@  discard block
 block discarded – undo
370 370
         $paypal_args['cmd'] = '_xclick-subscriptions';
371 371
 
372 372
         // Subscription name.
373
-        $paypal_args['item_name'] = sprintf( __( 'Invoice #%s', 'invoicing' ), $invoice->get_number() );
373
+        $paypal_args['item_name'] = sprintf(__('Invoice #%s', 'invoicing'), $invoice->get_number());
374 374
 
375 375
         // Get subscription args.
376
-        $period                 = strtoupper( substr( $subscription->get_period(), 0, 1) );
376
+        $period                 = strtoupper(substr($subscription->get_period(), 0, 1));
377 377
         $interval               = (int) $subscription->get_frequency();
378 378
         $bill_times             = (int) $subscription->get_bill_times();
379
-        $initial_amount         = (float) wpinv_sanitize_amount( $invoice->get_initial_total(), 2 );
380
-        $recurring_amount       = (float) wpinv_sanitize_amount( $invoice->get_recurring_total(), 2 );
381
-        $subscription_item      = $invoice->get_recurring( true );
379
+        $initial_amount         = (float) wpinv_sanitize_amount($invoice->get_initial_total(), 2);
380
+        $recurring_amount       = (float) wpinv_sanitize_amount($invoice->get_recurring_total(), 2);
381
+        $subscription_item      = $invoice->get_recurring(true);
382 382
 
383
-        if ( $subscription_item->has_free_trial() ) {
383
+        if ($subscription_item->has_free_trial()) {
384 384
 
385 385
             $paypal_args['a1'] = 0 == $initial_amount ? 0 : $initial_amount;
386 386
 
@@ -390,28 +390,28 @@  discard block
 block discarded – undo
390 390
 			// Trial period.
391 391
 			$paypal_args['t1'] = $subscription_item->get_trial_period();
392 392
 
393
-        } else if ( $initial_amount != $recurring_amount ) {
393
+        } else if ($initial_amount != $recurring_amount) {
394 394
 
395 395
             // No trial period, but initial amount includes a sign-up fee and/or other items, so charge it as a separate period.
396 396
 
397
-            if ( 1 == $bill_times ) {
397
+            if (1 == $bill_times) {
398 398
                 $param_number = 3;
399 399
             } else {
400 400
                 $param_number = 1;
401 401
             }
402 402
 
403
-            $paypal_args[ 'a' . $param_number ] = $initial_amount ? $initial_amount : 0;
403
+            $paypal_args['a' . $param_number] = $initial_amount ? $initial_amount : 0;
404 404
 
405 405
             // Sign Up interval
406
-            $paypal_args[ 'p' . $param_number ] = $interval;
406
+            $paypal_args['p' . $param_number] = $interval;
407 407
 
408 408
             // Sign Up unit of duration
409
-            $paypal_args[ 't' . $param_number ] = $period;
409
+            $paypal_args['t' . $param_number] = $period;
410 410
 
411 411
         }
412 412
 
413 413
         // We have a recurring payment
414
-		if ( ! isset( $param_number ) || 1 == $param_number ) {
414
+		if (!isset($param_number) || 1 == $param_number) {
415 415
 
416 416
 			// Subscription price
417 417
 			$paypal_args['a3'] = $recurring_amount;
@@ -425,7 +425,7 @@  discard block
 block discarded – undo
425 425
         }
426 426
 
427 427
         // Recurring payments
428
-		if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) {
428
+		if (1 == $bill_times || ($initial_amount != $recurring_amount && !$subscription_item->has_free_trial() && 2 == $bill_times)) {
429 429
 
430 430
 			// Non-recurring payments
431 431
 			$paypal_args['src'] = 0;
@@ -434,15 +434,15 @@  discard block
 block discarded – undo
434 434
 
435 435
 			$paypal_args['src'] = 1;
436 436
 
437
-			if ( $bill_times > 0 ) {
437
+			if ($bill_times > 0) {
438 438
 
439 439
 				// An initial period is being used to charge a sign-up fee
440
-				if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) {
440
+				if ($initial_amount != $recurring_amount && !$subscription_item->has_free_trial()) {
441 441
 					$bill_times--;
442 442
 				}
443 443
 
444 444
                 // Make sure it's not over the max of 52
445
-                $paypal_args['srt'] = ( $bill_times <= 52 ? absint( $bill_times ) : 52 );
445
+                $paypal_args['srt'] = ($bill_times <= 52 ? absint($bill_times) : 52);
446 446
 
447 447
 			}
448 448
         }
@@ -451,10 +451,10 @@  discard block
 block discarded – undo
451 451
         $paypal_args['rm'] = 2;
452 452
 
453 453
         // Get rid of redudant items.
454
-        foreach ( array( 'item_name_1', 'quantity_1', 'amount_1', 'item_number_1' ) as $arg ) {
454
+        foreach (array('item_name_1', 'quantity_1', 'amount_1', 'item_number_1') as $arg) {
455 455
 
456
-            if ( isset( $paypal_args[ $arg ] ) ) {
457
-                unset( $paypal_args[ $arg ] );
456
+            if (isset($paypal_args[$arg])) {
457
+                unset($paypal_args[$arg]);
458 458
             }
459 459
 
460 460
         }
@@ -473,7 +473,7 @@  discard block
 block discarded – undo
473 473
 	 * @return void
474 474
 	 */
475 475
 	public function verify_ipn() {
476
-        new GetPaid_Paypal_Gateway_IPN_Handler( $this );
476
+        new GetPaid_Paypal_Gateway_IPN_Handler($this);
477 477
     }
478 478
 
479 479
     /**
@@ -482,7 +482,7 @@  discard block
 block discarded – undo
482 482
     public function sandbox_notice() {
483 483
 
484 484
         return sprintf(
485
-			__( 'SANDBOX ENABLED. You can use sandbox testing accounts only. See the %sPayPal Sandbox Testing Guide%s for more details.', 'invoicing' ),
485
+			__('SANDBOX ENABLED. You can use sandbox testing accounts only. See the %sPayPal Sandbox Testing Guide%s for more details.', 'invoicing'),
486 486
 			'<a href="https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/">',
487 487
 			'</a>'
488 488
 		);
@@ -494,32 +494,32 @@  discard block
 block discarded – undo
494 494
 	 *
495 495
 	 * @param array $admin_settings
496 496
 	 */
497
-	public function admin_settings( $admin_settings ) {
497
+	public function admin_settings($admin_settings) {
498 498
 
499 499
         $currencies = sprintf(
500
-            __( 'Supported Currencies: %s', 'invoicing' ),
501
-            implode( ', ', $this->currencies )
500
+            __('Supported Currencies: %s', 'invoicing'),
501
+            implode(', ', $this->currencies)
502 502
         );
503 503
 
504 504
         $admin_settings['paypal_active']['desc'] .= " ($currencies)";
505
-        $admin_settings['paypal_desc']['std']     = __( 'Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing' );
505
+        $admin_settings['paypal_desc']['std']     = __('Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing');
506 506
 
507 507
 		// Access tokens.
508
-        $live_account    = wpinv_get_option( 'paypal_live_access_token' );
509
-        $sandbox_account = wpinv_get_option( 'paypal_test_access_token' );
508
+        $live_account    = wpinv_get_option('paypal_live_access_token');
509
+        $sandbox_account = wpinv_get_option('paypal_test_access_token');
510 510
 
511 511
 		$admin_settings['paypal_connect'] = array(
512 512
 			'type'       => 'raw_html',
513 513
 			'id'         => 'paypal_connect',
514
-			'name'       => __( 'Connect to PayPal', 'invoicing' ),
514
+			'name'       => __('Connect to PayPal', 'invoicing'),
515 515
 			'desc'       => sprintf(
516 516
 				'<div class="wpinv-paypal-connect-live"><a class="button button-primary" href="%s">%s</a><br><strong style="color: green">%s</strong></div><div class="wpinv-paypal-connect-sandbox"><a class="button button-primary" href="%s">%s</a><br><strong style="color: green">%s</strong></div>%s',
517
-				esc_url( self::get_connect_url( false ) ),
518
-				__( 'Connect to PayPal', 'invoicing' ),
519
-				__( 'Connected', 'invoicing' ),
520
-				esc_url( self::get_connect_url( true ) ),
521
-				__( 'Connect to PayPal Sandox', 'invoicing' ),
522
-				__( 'Connected', 'invoicing' ),
517
+				esc_url(self::get_connect_url(false)),
518
+				__('Connect to PayPal', 'invoicing'),
519
+				__('Connected', 'invoicing'),
520
+				esc_url(self::get_connect_url(true)),
521
+				__('Connect to PayPal Sandox', 'invoicing'),
522
+				__('Connected', 'invoicing'),
523 523
 				$this->get_js()
524 524
 			),
525 525
 		);
@@ -527,8 +527,8 @@  discard block
 block discarded – undo
527 527
 		$admin_settings['disable_paypal_connect'] = array(
528 528
 			'type'       => 'checkbox',
529 529
 			'id'         => 'disable_paypal_connect',
530
-			'name'       => __( 'Manual Mode', 'invoicing' ),
531
-			'desc'       => __( 'Manually enter your credentials', 'invoicing' ),
530
+			'name'       => __('Manual Mode', 'invoicing'),
531
+			'desc'       => __('Manually enter your credentials', 'invoicing'),
532 532
 			'std'        => false,
533 533
 		);
534 534
 
@@ -536,67 +536,67 @@  discard block
 block discarded – undo
536 536
             'type'  => 'text',
537 537
 			'class' => 'live-auth-data',
538 538
             'id'    => 'paypal_email',
539
-            'name'  => __( 'Live Email Address', 'invoicing' ),
540
-            'desc'  => __( 'The email address of your PayPal account.', 'invoicing' ),
539
+            'name'  => __('Live Email Address', 'invoicing'),
540
+            'desc'  => __('The email address of your PayPal account.', 'invoicing'),
541 541
         );
542 542
 
543 543
 		$admin_settings['paypal_merchant_id'] = array(
544 544
             'type'  => 'text',
545 545
 			'class' => 'live-auth-data',
546 546
             'id'    => 'paypal_merchant_id',
547
-            'name'  => __( 'Live Merchant ID', 'invoicing' ),
547
+            'name'  => __('Live Merchant ID', 'invoicing'),
548 548
         );
549 549
 
550 550
 		$admin_settings['paypal_client_id'] = array(
551 551
             'type'  => 'text',
552 552
 			'class' => 'live-auth-data',
553 553
             'id'    => 'paypal_client_id',
554
-            'name'  => __( 'Live Client ID', 'invoicing' ),
554
+            'name'  => __('Live Client ID', 'invoicing'),
555 555
         );
556 556
 
557 557
 		$admin_settings['paypal_client_secret'] = array(
558 558
             'type'  => 'text',
559 559
 			'class' => 'live-auth-data',
560 560
             'id'    => 'paypal_client_secret',
561
-            'name'  => __( 'Live Client Secret', 'invoicing' ),
561
+            'name'  => __('Live Client Secret', 'invoicing'),
562 562
         );
563 563
 
564 564
 		$admin_settings['paypal_sandbox_email'] = array(
565 565
             'type'  => 'text',
566 566
 			'class' => 'sandbox-auth-data',
567 567
             'id'    => 'paypal_sandbox_email',
568
-            'name'  => __( 'Sandbox Email Address', 'invoicing' ),
569
-            'desc'  => __( 'The email address of your sandbox PayPal account.', 'invoicing' ),
570
-			'std'   => wpinv_get_option( 'paypal_email', '' ),
568
+            'name'  => __('Sandbox Email Address', 'invoicing'),
569
+            'desc'  => __('The email address of your sandbox PayPal account.', 'invoicing'),
570
+			'std'   => wpinv_get_option('paypal_email', ''),
571 571
         );
572 572
 
573 573
 		$admin_settings['paypal_sandbox_merchant_id'] = array(
574 574
             'type'  => 'text',
575 575
 			'class' => 'sandbox-auth-data',
576 576
             'id'    => 'paypal_sandbox_merchant_id',
577
-            'name'  => __( 'Sandbox Merchant ID', 'invoicing' ),
577
+            'name'  => __('Sandbox Merchant ID', 'invoicing'),
578 578
         );
579 579
 
580 580
 		$admin_settings['paypal_sandbox_client_id'] = array(
581 581
             'type'  => 'text',
582 582
 			'class' => 'sandbox-auth-data',
583 583
             'id'    => 'paypal_sandbox_client_id',
584
-            'name'  => __( 'Sandbox Client ID', 'invoicing' ),
584
+            'name'  => __('Sandbox Client ID', 'invoicing'),
585 585
         );
586 586
 
587 587
 		$admin_settings['paypal_sandbox_client_secret'] = array(
588 588
             'type'  => 'text',
589 589
 			'class' => 'sandbox-auth-data',
590 590
             'id'    => 'paypal_sandbox_client_secret',
591
-            'name'  => __( 'Sandbox Client Secret', 'invoicing' ),
591
+            'name'  => __('Sandbox Client Secret', 'invoicing'),
592 592
         );
593 593
 
594 594
         $admin_settings['paypal_ipn_url'] = array(
595 595
             'type'     => 'ipn_url',
596 596
             'id'       => 'paypal_ipn_url',
597
-            'name'     => __( 'IPN Url', 'invoicing' ),
597
+            'name'     => __('IPN Url', 'invoicing'),
598 598
             'std'      => $this->notify_url,
599
-            'desc'     => __( "If you've not enabled IPNs in your paypal account, use the above URL to enable them.", 'invoicing' ) . ' <a href="https://developer.paypal.com/docs/api-basics/notifications/ipn/"><em>' . __( 'Learn more.', 'invoicing' ) . '</em></a>',
599
+            'desc'     => __("If you've not enabled IPNs in your paypal account, use the above URL to enable them.", 'invoicing') . ' <a href="https://developer.paypal.com/docs/api-basics/notifications/ipn/"><em>' . __('Learn more.', 'invoicing') . '</em></a>',
600 600
             'readonly' => true,
601 601
         );
602 602
 
@@ -610,8 +610,8 @@  discard block
 block discarded – undo
610 610
      * @param array $data
611 611
      * @return string
612 612
 	 */
613
-	public static function maybe_get_connect_url( $data ) {
614
-		return self::get_connect_url( false, urldecode( $data['redirect'] ) );
613
+	public static function maybe_get_connect_url($data) {
614
+		return self::get_connect_url(false, urldecode($data['redirect']));
615 615
 	}
616 616
 
617 617
 	/**
@@ -622,25 +622,25 @@  discard block
 block discarded – undo
622 622
 	 * @param string $redirect
623 623
      * @return string
624 624
 	 */
625
-	public static function get_connect_url( $is_sandbox, $redirect = '' ) {
625
+	public static function get_connect_url($is_sandbox, $redirect = '') {
626 626
 
627 627
         $redirect_url = add_query_arg(
628 628
             array(
629 629
                 'getpaid-admin-action' => 'connect_paypal',
630 630
                 'page'                 => 'wpinv-settings',
631
-                'live_mode'            => (int) empty( $is_sandbox ),
631
+                'live_mode'            => (int) empty($is_sandbox),
632 632
                 'tab'                  => 'gateways',
633 633
                 'section'              => 'paypal',
634
-                'getpaid-nonce'        => wp_create_nonce( 'getpaid-nonce' ),
635
-				'redirect'             => urlencode( $redirect ),
634
+                'getpaid-nonce'        => wp_create_nonce('getpaid-nonce'),
635
+				'redirect'             => urlencode($redirect),
636 636
             ),
637
-            admin_url( 'admin.php' )
637
+            admin_url('admin.php')
638 638
         );
639 639
 
640 640
         return add_query_arg(
641 641
             array(
642
-                'live_mode'    => (int) empty( $is_sandbox ),
643
-                'redirect_url' => urlencode( str_replace( '&amp;', '&', $redirect_url ) )
642
+                'live_mode'    => (int) empty($is_sandbox),
643
+                'redirect_url' => urlencode(str_replace('&amp;', '&', $redirect_url))
644 644
             ),
645 645
             'https://ayecode.io/oauth/paypal'
646 646
         );
@@ -704,26 +704,26 @@  discard block
 block discarded – undo
704 704
 	 * @param array $data Connection data.
705 705
 	 * @return void
706 706
 	 */
707
-	public function connect_paypal( $data ) {
707
+	public function connect_paypal($data) {
708 708
 
709 709
 		$sandbox      = $this->is_sandbox();
710
-		$data         = wp_unslash( $data );
711
-		$access_token = empty( $data['access_token'] ) ? '' : sanitize_text_field( $data['access_token'] );
710
+		$data         = wp_unslash($data);
711
+		$access_token = empty($data['access_token']) ? '' : sanitize_text_field($data['access_token']);
712 712
 
713
-		if ( isset( $data['live_mode'] ) ) {
714
-			$sandbox = empty( $data['live_mode'] );
713
+		if (isset($data['live_mode'])) {
714
+			$sandbox = empty($data['live_mode']);
715 715
 		}
716 716
 
717
-		wpinv_update_option( 'stripe_sandbox', (int) $sandbox );
718
-		wpinv_update_option( 'stripe_active', 1 );
717
+		wpinv_update_option('stripe_sandbox', (int) $sandbox);
718
+		wpinv_update_option('stripe_active', 1);
719 719
 
720
-		if ( ! empty( $data['error_description'] ) ) {
721
-			getpaid_admin()->show_error( wp_kses_post( urldecode( $data['error_description'] ) ) );
720
+		if (!empty($data['error_description'])) {
721
+			getpaid_admin()->show_error(wp_kses_post(urldecode($data['error_description'])));
722 722
 		} else {
723 723
 
724 724
 			// Retrieve the user info.
725 725
 			$user_info = wp_remote_get(
726
-				! $sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
726
+				!$sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
727 727
 				array(
728 728
 
729 729
 					'headers' => array(
@@ -734,23 +734,23 @@  discard block
 block discarded – undo
734 734
 				)
735 735
 			);
736 736
 
737
-			if ( is_wp_error( $user_info ) ) {
738
-				getpaid_admin()->show_error( wp_kses_post( $user_info->get_error_message() ) );
737
+			if (is_wp_error($user_info)) {
738
+				getpaid_admin()->show_error(wp_kses_post($user_info->get_error_message()));
739 739
 			} else {
740 740
 
741 741
 				// Create application.
742
-				$user_info = json_decode( wp_remote_retrieve_body( $user_info ) );
742
+				$user_info = json_decode(wp_remote_retrieve_body($user_info));
743 743
 				$app       = wp_remote_post(
744
-					! $sandbox ? 'https://api-m.paypal.com/v1/identity/applications' : 'https://api-m.sandbox.paypal.com/v1/identity/applications',
744
+					!$sandbox ? 'https://api-m.paypal.com/v1/identity/applications' : 'https://api-m.sandbox.paypal.com/v1/identity/applications',
745 745
 					array(
746 746
 
747 747
 						'body'    => array(
748 748
 							'application_type' => 'web',
749 749
 							'redirect_uris'    => array(
750
-								add_query_arg( 'getpaid_oauth', 'paypal', home_url() ),
750
+								add_query_arg('getpaid_oauth', 'paypal', home_url()),
751 751
 							),
752 752
 							'client_name'      => 'GetPaid',
753
-							'contacts'         => array( $user_info->emails[0]->value ),
753
+							'contacts'         => array($user_info->emails[0]->value),
754 754
 							'payer_id'         => $user_info->payer_id,
755 755
 							'migrated_app'     => '',
756 756
 						),
@@ -762,29 +762,29 @@  discard block
 block discarded – undo
762 762
 					)
763 763
 				);
764 764
 
765
-				if ( is_wp_error( $app ) ) {
766
-					getpaid_admin()->show_error( wp_kses_post( $app->get_error_message() ) );
765
+				if (is_wp_error($app)) {
766
+					getpaid_admin()->show_error(wp_kses_post($app->get_error_message()));
767 767
 				} else {
768 768
 
769
-					$app = json_decode( $app );
770
-					if ( $sandbox ) {
771
-						wpinv_update_option( 'paypal_sandbox_email', sanitize_email( $user_info->emails[0]->value ) );
772
-						wpinv_update_option( 'paypal_sandbox_merchant_id', '' );
773
-						wpinv_update_option( 'paypal_sandbox_client_id', sanitize_text_field( '' ) );
774
-						wpinv_update_option( 'paypal_sandbox_client_secret', sanitize_text_field( '' ) );
775
-						wpinv_update_option( 'paypal_sandbox_client_secret_expires_at', sanitize_text_field( '' ) );
776
-						wpinv_update_option( 'paypal_sandbox_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
777
-						set_transient( 'getpaid_paypal_sandbox_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
778
-						getpaid_admin()->show_success( __( 'Successfully connected your PayPal sandbox account', 'wpinv-stripe' ) );
769
+					$app = json_decode($app);
770
+					if ($sandbox) {
771
+						wpinv_update_option('paypal_sandbox_email', sanitize_email($user_info->emails[0]->value));
772
+						wpinv_update_option('paypal_sandbox_merchant_id', '');
773
+						wpinv_update_option('paypal_sandbox_client_id', sanitize_text_field(''));
774
+						wpinv_update_option('paypal_sandbox_client_secret', sanitize_text_field(''));
775
+						wpinv_update_option('paypal_sandbox_client_secret_expires_at', sanitize_text_field(''));
776
+						wpinv_update_option('paypal_sandbox_refresh_token', sanitize_text_field(urldecode($data['refresh_token'])));
777
+						set_transient('getpaid_paypal_sandbox_access_token', sanitize_text_field(urldecode($data['access_token'])), (int) $data['expires_in']);
778
+						getpaid_admin()->show_success(__('Successfully connected your PayPal sandbox account', 'wpinv-stripe'));
779 779
 					} else {
780
-						wpinv_update_option( 'paypal_email', sanitize_email( $user_info->emails[0]->value ) );
781
-						wpinv_update_option( 'paypal_merchant_id', '' );
782
-						wpinv_update_option( 'paypal_client_id', sanitize_text_field( '' ) );
783
-						wpinv_update_option( 'paypal_client_secret', sanitize_text_field( '' ) );
784
-						wpinv_update_option( 'paypal_client_secret_expires_at', sanitize_text_field( '' ) );
785
-						wpinv_update_option( 'paypal_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
786
-						set_transient( 'getpaid_paypal_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
787
-						getpaid_admin()->show_success( __( 'Successfully connected your PayPal account', 'wpinv-stripe' ) );
780
+						wpinv_update_option('paypal_email', sanitize_email($user_info->emails[0]->value));
781
+						wpinv_update_option('paypal_merchant_id', '');
782
+						wpinv_update_option('paypal_client_id', sanitize_text_field(''));
783
+						wpinv_update_option('paypal_client_secret', sanitize_text_field(''));
784
+						wpinv_update_option('paypal_client_secret_expires_at', sanitize_text_field(''));
785
+						wpinv_update_option('paypal_refresh_token', sanitize_text_field(urldecode($data['refresh_token'])));
786
+						set_transient('getpaid_paypal_access_token', sanitize_text_field(urldecode($data['access_token'])), (int) $data['expires_in']);
787
+						getpaid_admin()->show_success(__('Successfully connected your PayPal account', 'wpinv-stripe'));
788 788
 					}
789 789
 
790 790
 				}
@@ -793,8 +793,8 @@  discard block
 block discarded – undo
793 793
 
794 794
 		}
795 795
 
796
-		$redirect = empty( $data['redirect'] ) ? admin_url( 'admin.php?page=wpinv-settings&tab=gateways&section=paypal' ) : urldecode( $data['redirect'] );
797
-		wp_redirect( $redirect );
796
+		$redirect = empty($data['redirect']) ? admin_url('admin.php?page=wpinv-settings&tab=gateways&section=paypal') : urldecode($data['redirect']);
797
+		wp_redirect($redirect);
798 798
 		exit;
799 799
 	}
800 800
 
Please login to merge, or discard this patch.