Passed
Pull Request — master (#762)
by Kiran
14:44
created
includes/admin/class-getpaid-admin.php 1 patch
Indentation   +620 added lines, -620 removed lines patch added patch discarded remove patch
@@ -14,93 +14,93 @@  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;
29
-
30
-	/**
31
-	 * Reports components.
32
-	 *
33
-	 * @var GetPaid_Reports
34
-	 */
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
+
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' ), 9 );
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_duplicate_form', array( $this, 'duplicate_payment_form' ) );
65
-		add_action( 'getpaid_authenticated_admin_action_reset_form_stats', array( $this, 'reset_form_stats' ) );
66
-		add_action( 'getpaid_authenticated_admin_action_duplicate_invoice', array( $this, 'duplicate_invoice' ) );
67
-		add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
68
-		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_duplicate_form', array( $this, 'duplicate_payment_form' ) );
65
+        add_action( 'getpaid_authenticated_admin_action_reset_form_stats', array( $this, 'reset_form_stats' ) );
66
+        add_action( 'getpaid_authenticated_admin_action_duplicate_invoice', array( $this, 'duplicate_invoice' ) );
67
+        add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
68
+        add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
69 69
         add_action( 'getpaid_authenticated_admin_action_reset_tax_rates', array( $this, 'admin_reset_tax_rates' ) );
70
-		add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
71
-		add_action( 'getpaid_authenticated_admin_action_refresh_permalinks', array( $this, 'admin_refresh_permalinks' ) );
72
-		add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
73
-		add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
74
-		add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
75
-		add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
76
-		add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
77
-		add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
78
-		add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
79
-		do_action( 'getpaid_init_admin_hooks', $this );
80
-
81
-		// Setup/welcome
82
-		if ( ! empty( $_GET['page'] ) ) {
83
-			switch ( sanitize_text_field( $_GET['page'] ) ) {
84
-				case 'gp-setup':
85
-					include_once dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php';
86
-					break;
87
-			}
88
-		}
89
-
90
-    }
91
-
92
-    /**
93
-	 * Register admin scripts
94
-	 *
95
-	 */
96
-	public function enqeue_scripts() {
70
+        add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
71
+        add_action( 'getpaid_authenticated_admin_action_refresh_permalinks', array( $this, 'admin_refresh_permalinks' ) );
72
+        add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
73
+        add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
74
+        add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
75
+        add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
76
+        add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
77
+        add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
78
+        add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
79
+        do_action( 'getpaid_init_admin_hooks', $this );
80
+
81
+        // Setup/welcome
82
+        if ( ! empty( $_GET['page'] ) ) {
83
+            switch ( sanitize_text_field( $_GET['page'] ) ) {
84
+                case 'gp-setup':
85
+                    include_once dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php';
86
+                    break;
87
+            }
88
+        }
89
+
90
+    }
91
+
92
+    /**
93
+     * Register admin scripts
94
+     *
95
+     */
96
+    public function enqeue_scripts() {
97 97
         global $current_screen, $pagenow;
98 98
 
99
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
100
-		$editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
99
+        $page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
100
+        $editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
101 101
 
102 102
         if ( ! empty( $current_screen->post_type ) ) {
103
-			$page = $current_screen->post_type;
103
+            $page = $current_screen->post_type;
104 104
         }
105 105
 
106 106
         // General styles.
@@ -121,53 +121,53 @@  discard block
 block discarded – undo
121 121
         }
122 122
 
123 123
         // Payment form scripts.
124
-		if ( 'wpi_payment_form' == $page && $editing ) {
124
+        if ( 'wpi_payment_form' == $page && $editing ) {
125 125
             $this->load_payment_form_scripts();
126 126
         }
127 127
 
128
-		if ( $page == 'wpinv-subscriptions' ) {
129
-			wp_enqueue_script( 'postbox' );
130
-		}
128
+        if ( $page == 'wpinv-subscriptions' ) {
129
+            wp_enqueue_script( 'postbox' );
130
+        }
131 131
 
132 132
     }
133 133
 
134 134
     /**
135
-	 * Returns admin js translations.
136
-	 *
137
-	 */
138
-	protected function get_admin_i18() {
135
+     * Returns admin js translations.
136
+     *
137
+     */
138
+    protected function get_admin_i18() {
139 139
         global $post;
140 140
 
141
-		$date_range = array(
142
-			'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days',
143
-		);
141
+        $date_range = array(
142
+            'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days',
143
+        );
144 144
 
145
-		if ( $date_range['period'] == 'custom' ) {
145
+        if ( $date_range['period'] == 'custom' ) {
146 146
 
147
-			if ( isset( $_GET['from'] ) ) {
148
-				$date_range['after'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
149
-			}
147
+            if ( isset( $_GET['from'] ) ) {
148
+                $date_range['after'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
149
+            }
150 150
 
151
-			if ( isset( $_GET['to'] ) ) {
152
-				$date_range['before'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
153
-			}
151
+            if ( isset( $_GET['to'] ) ) {
152
+                $date_range['before'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
153
+            }
154 154
 }
155 155
 
156 156
         $i18n = array(
157 157
             'ajax_url'                  => admin_url( 'admin-ajax.php' ),
158 158
             'post_ID'                   => isset( $post->ID ) ? $post->ID : '',
159
-			'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
160
-			'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
161
-			'rest_root'                 => esc_url_raw( rest_url() ),
162
-			'date_range'                => $date_range,
159
+            'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
160
+            'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
161
+            'rest_root'                 => esc_url_raw( rest_url() ),
162
+            'date_range'                => $date_range,
163 163
             'add_invoice_note_nonce'    => wp_create_nonce( 'add-invoice-note' ),
164 164
             'delete_invoice_note_nonce' => wp_create_nonce( 'delete-invoice-note' ),
165 165
             'invoice_item_nonce'        => wp_create_nonce( 'invoice-item' ),
166 166
             'billing_details_nonce'     => wp_create_nonce( 'get-billing-details' ),
167 167
             'tax'                       => wpinv_tax_amount(),
168 168
             'discount'                  => 0,
169
-			'currency_symbol'           => wpinv_currency_symbol(),
170
-			'currency'                  => wpinv_get_currency(),
169
+            'currency_symbol'           => wpinv_currency_symbol(),
170
+            'currency'                  => wpinv_get_currency(),
171 171
             'currency_pos'              => wpinv_currency_position(),
172 172
             'thousand_sep'              => wpinv_thousands_separator(),
173 173
             'decimal_sep'               => wpinv_decimal_separator(),
@@ -187,118 +187,118 @@  discard block
 block discarded – undo
187 187
             'item_description'          => __( 'Item Description', 'invoicing' ),
188 188
             'invoice_description'       => __( 'Invoice Description', 'invoicing' ),
189 189
             'discount_description'      => __( 'Discount Description', 'invoicing' ),
190
-			'searching'                 => __( 'Searching', 'invoicing' ),
191
-			'loading'                   => __( 'Loading...', 'invoicing' ),
192
-			'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
193
-			'search_items'              => __( 'Enter item name', 'invoicing' ),
194
-			'graphs'                    => array_merge( array( 'refunded_fees', 'refunded_items', 'refunded_subtotal', 'refunded_tax' ), array_keys( wpinv_get_report_graphs() ) ),
190
+            'searching'                 => __( 'Searching', 'invoicing' ),
191
+            'loading'                   => __( 'Loading...', 'invoicing' ),
192
+            'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
193
+            'search_items'              => __( 'Enter item name', 'invoicing' ),
194
+            'graphs'                    => array_merge( array( 'refunded_fees', 'refunded_items', 'refunded_subtotal', 'refunded_tax' ), array_keys( wpinv_get_report_graphs() ) ),
195 195
         );
196 196
 
197
-		if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
197
+        if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
198 198
 
199
-			$invoice              = new WPInv_Invoice( $post );
200
-			$i18n['save_invoice'] = sprintf(
201
-				__( 'Save %s', 'invoicing' ),
202
-				ucfirst( $invoice->get_invoice_quote_type() )
203
-			);
199
+            $invoice              = new WPInv_Invoice( $post );
200
+            $i18n['save_invoice'] = sprintf(
201
+                __( 'Save %s', 'invoicing' ),
202
+                ucfirst( $invoice->get_invoice_quote_type() )
203
+            );
204 204
 
205
-			$i18n['invoice_description'] = sprintf(
206
-				__( '%s Description', 'invoicing' ),
207
-				ucfirst( $invoice->get_invoice_quote_type() )
208
-			);
205
+            $i18n['invoice_description'] = sprintf(
206
+                __( '%s Description', 'invoicing' ),
207
+                ucfirst( $invoice->get_invoice_quote_type() )
208
+            );
209 209
 
210
-		}
211
-		return $i18n;
212
-	}
210
+        }
211
+        return $i18n;
212
+    }
213 213
 
214
-	/**
215
-	 * Change the admin footer text on GetPaid admin pages.
216
-	 *
217
-	 * @since  2.0.0
218
-	 * @param  string $footer_text
219
-	 * @return string
220
-	 */
221
-	public function admin_footer_text( $footer_text ) {
222
-		global $current_screen;
214
+    /**
215
+     * Change the admin footer text on GetPaid admin pages.
216
+     *
217
+     * @since  2.0.0
218
+     * @param  string $footer_text
219
+     * @return string
220
+     */
221
+    public function admin_footer_text( $footer_text ) {
222
+        global $current_screen;
223 223
 
224
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
224
+        $page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
225 225
 
226 226
         if ( ! empty( $current_screen->post_type ) ) {
227
-			$page = $current_screen->post_type;
227
+            $page = $current_screen->post_type;
228 228
         }
229 229
 
230 230
         // General styles.
231 231
         if ( apply_filters( 'getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing() ) && false !== stripos( $page, 'wpi' ) ) {
232 232
 
233
-			// Change the footer text
234
-			if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
233
+            // Change the footer text
234
+            if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
235 235
 
236
-				$rating_url  = esc_url(
237
-					wp_nonce_url(
238
-						admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
239
-						'getpaid-nonce',
240
-						'getpaid-nonce'
236
+                $rating_url  = esc_url(
237
+                    wp_nonce_url(
238
+                        admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
239
+                        'getpaid-nonce',
240
+                        'getpaid-nonce'
241 241
                     )
242
-				);
242
+                );
243 243
 
244
-				$footer_text = sprintf(
245
-					/* translators: %s: five stars */
246
-					__( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
247
-					"<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
248
-				);
244
+                $footer_text = sprintf(
245
+                    /* translators: %s: five stars */
246
+                    __( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
247
+                    "<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
248
+                );
249 249
 
250
-			} else {
250
+            } else {
251 251
 
252
-				$footer_text = sprintf(
253
-					/* translators: %s: GetPaid */
254
-					__( 'Thank you for using %s!', 'invoicing' ),
255
-					"<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
256
-				);
252
+                $footer_text = sprintf(
253
+                    /* translators: %s: GetPaid */
254
+                    __( 'Thank you for using %s!', 'invoicing' ),
255
+                    "<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
256
+                );
257 257
 
258
-			}
258
+            }
259 259
 }
260 260
 
261
-		return $footer_text;
262
-	}
263
-
264
-	/**
265
-	 * Redirects to wp.org to rate the plugin.
266
-	 *
267
-	 * @since  2.0.0
268
-	 */
269
-	public function redirect_to_wordpress_rating_page() {
270
-		update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
271
-		wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
272
-		exit;
273
-	}
274
-
275
-    /**
276
-	 * Loads payment form js.
277
-	 *
278
-	 */
279
-	protected function load_payment_form_scripts() {
261
+        return $footer_text;
262
+    }
263
+
264
+    /**
265
+     * Redirects to wp.org to rate the plugin.
266
+     *
267
+     * @since  2.0.0
268
+     */
269
+    public function redirect_to_wordpress_rating_page() {
270
+        update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
271
+        wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
272
+        exit;
273
+    }
274
+
275
+    /**
276
+     * Loads payment form js.
277
+     *
278
+     */
279
+    protected function load_payment_form_scripts() {
280 280
         global $post;
281 281
 
282 282
         wp_enqueue_script( 'vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.min.js', array(), WPINV_VERSION );
283
-		wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
284
-		wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
283
+        wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
284
+        wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
285 285
 
286
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
287
-		wp_register_script( 'wpinv-admin-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/admin-payment-forms.js', array( 'wpinv-admin-script', 'vue_draggable', 'wp-hooks' ), $version );
286
+        $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
287
+        wp_register_script( 'wpinv-admin-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/admin-payment-forms.js', array( 'wpinv-admin-script', 'vue_draggable', 'wp-hooks' ), $version );
288 288
 
289
-		wp_localize_script(
289
+        wp_localize_script(
290 290
             'wpinv-admin-payment-form-script',
291 291
             'wpinvPaymentFormAdmin',
292 292
             array(
293
-				'elements'      => wpinv_get_data( 'payment-form-elements' ),
294
-				'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
295
-				'currency'      => wpinv_currency_symbol(),
296
-				'position'      => wpinv_currency_position(),
297
-				'decimals'      => (int) wpinv_decimals(),
298
-				'thousands_sep' => wpinv_thousands_separator(),
299
-				'decimals_sep'  => wpinv_decimal_separator(),
300
-				'form_items'    => gepaid_get_form_items( $post->ID ),
301
-				'is_default'    => $post->ID == wpinv_get_default_payment_form(),
293
+                'elements'      => wpinv_get_data( 'payment-form-elements' ),
294
+                'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
295
+                'currency'      => wpinv_currency_symbol(),
296
+                'position'      => wpinv_currency_position(),
297
+                'decimals'      => (int) wpinv_decimals(),
298
+                'thousands_sep' => wpinv_thousands_separator(),
299
+                'decimals_sep'  => wpinv_decimal_separator(),
300
+                'form_items'    => gepaid_get_form_items( $post->ID ),
301
+                'is_default'    => $post->ID == wpinv_get_default_payment_form(),
302 302
             )
303 303
         );
304 304
 
@@ -307,19 +307,19 @@  discard block
 block discarded – undo
307 307
     }
308 308
 
309 309
     /**
310
-	 * Add our classes to admin pages.
310
+     * Add our classes to admin pages.
311 311
      *
312 312
      * @param string $classes
313 313
      * @return string
314
-	 *
315
-	 */
314
+     *
315
+     */
316 316
     public function admin_body_class( $classes ) {
317
-		global $pagenow, $post, $current_screen;
317
+        global $pagenow, $post, $current_screen;
318 318
 
319 319
         $page = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
320 320
 
321 321
         if ( ! empty( $current_screen->post_type ) ) {
322
-			$page = $current_screen->post_type;
322
+            $page = $current_screen->post_type;
323 323
         }
324 324
 
325 325
         if ( false !== stripos( $page, 'wpi' ) ) {
@@ -328,70 +328,70 @@  discard block
 block discarded – undo
328 328
 
329 329
         if ( in_array( $page, wpinv_parse_list( 'wpi_invoice wpi_payment_form wpi_quote' ) ) ) {
330 330
             $classes .= ' wpinv-cpt wpinv';
331
-		}
331
+        }
332 332
 
333
-		if ( getpaid_is_invoice_post_type( $page ) ) {
333
+        if ( getpaid_is_invoice_post_type( $page ) ) {
334 334
             $classes .= ' getpaid-is-invoice-cpt';
335 335
         }
336 336
 
337
-		return $classes;
337
+        return $classes;
338 338
     }
339 339
 
340 340
     /**
341
-	 * Maybe show the AyeCode Connect Notice.
342
-	 */
343
-	public function init_ayecode_connect_helper() {
341
+     * Maybe show the AyeCode Connect Notice.
342
+     */
343
+    public function init_ayecode_connect_helper() {
344 344
 
345
-		// Register with the deactivation survey class.
346
-		AyeCode_Deactivation_Survey::instance(
345
+        // Register with the deactivation survey class.
346
+        AyeCode_Deactivation_Survey::instance(
347 347
             array(
348
-				'slug'              => 'invoicing',
349
-				'version'           => WPINV_VERSION,
350
-				'support_url'       => 'https://wpgetpaid.com/support/',
351
-				'documentation_url' => 'https://docs.wpgetpaid.com/',
352
-				'activated'         => (int) get_option( 'gepaid_installed_on' ),
348
+                'slug'              => 'invoicing',
349
+                'version'           => WPINV_VERSION,
350
+                'support_url'       => 'https://wpgetpaid.com/support/',
351
+                'documentation_url' => 'https://docs.wpgetpaid.com/',
352
+                'activated'         => (int) get_option( 'gepaid_installed_on' ),
353 353
             )
354 354
         );
355 355
 
356 356
         new AyeCode_Connect_Helper(
357 357
             array(
358
-				'connect_title'     => __( 'WP Invoicing - an AyeCode product!', 'invoicing' ),
359
-				'connect_external'  => __( 'Please confirm you wish to connect your site?', 'invoicing' ),
360
-				'connect'           => sprintf( __( '<strong>Have a license?</strong> Forget about entering license keys or downloading zip files, connect your site for instant access. %1$slearn more%2$s', 'invoicing' ), "<a href='https://ayecode.io/introducing-ayecode-connect/' target='_blank'>", '</a>' ),
361
-				'connect_button'    => __( 'Connect Site', 'invoicing' ),
362
-				'connecting_button' => __( 'Connecting...', 'invoicing' ),
363
-				'error_localhost'   => __( 'This service will only work with a live domain, not a localhost.', 'invoicing' ),
364
-				'error'             => __( 'Something went wrong, please refresh and try again.', 'invoicing' ),
358
+                'connect_title'     => __( 'WP Invoicing - an AyeCode product!', 'invoicing' ),
359
+                'connect_external'  => __( 'Please confirm you wish to connect your site?', 'invoicing' ),
360
+                'connect'           => sprintf( __( '<strong>Have a license?</strong> Forget about entering license keys or downloading zip files, connect your site for instant access. %1$slearn more%2$s', 'invoicing' ), "<a href='https://ayecode.io/introducing-ayecode-connect/' target='_blank'>", '</a>' ),
361
+                'connect_button'    => __( 'Connect Site', 'invoicing' ),
362
+                'connecting_button' => __( 'Connecting...', 'invoicing' ),
363
+                'error_localhost'   => __( 'This service will only work with a live domain, not a localhost.', 'invoicing' ),
364
+                'error'             => __( 'Something went wrong, please refresh and try again.', 'invoicing' ),
365 365
             ),
366 366
             array( 'wpi-addons' )
367 367
         );
368 368
 
369 369
     }
370 370
 
371
-	/**
372
-	 * Redirect users to settings on activation.
373
-	 *
374
-	 * @return void
375
-	 */
376
-	public function activation_redirect() {
371
+    /**
372
+     * Redirect users to settings on activation.
373
+     *
374
+     * @return void
375
+     */
376
+    public function activation_redirect() {
377 377
 
378
-		$redirected = get_option( 'wpinv_redirected_to_settings' );
378
+        $redirected = get_option( 'wpinv_redirected_to_settings' );
379 379
 
380
-		if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
381
-			return;
382
-		}
380
+        if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
381
+            return;
382
+        }
383 383
 
384
-		// Bail if activating from network, or bulk
385
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
386
-			return;
387
-		}
384
+        // Bail if activating from network, or bulk
385
+        if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
386
+            return;
387
+        }
388 388
 
389
-	    update_option( 'wpinv_redirected_to_settings', 1 );
389
+        update_option( 'wpinv_redirected_to_settings', 1 );
390 390
 
391 391
         wp_safe_redirect( admin_url( 'index.php?page=gp-setup' ) );
392 392
         exit;
393 393
 
394
-	}
394
+    }
395 395
 
396 396
     /**
397 397
      * Fires an admin action after verifying that a user can fire them.
@@ -404,564 +404,564 @@  discard block
 block discarded – undo
404 404
         }
405 405
     }
406 406
 
407
-	/**
407
+    /**
408 408
      * Duplicate invoice.
409
-	 *
410
-	 * @param array $args
409
+     *
410
+     * @param array $args
411 411
      */
412 412
     public function duplicate_invoice( $args ) {
413 413
 
414
-		if ( empty( $args['invoice_id'] ) ) {
415
-			return;
416
-		}
414
+        if ( empty( $args['invoice_id'] ) ) {
415
+            return;
416
+        }
417 417
 
418
-		$invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
418
+        $invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
419 419
 
420
-		if ( ! $invoice->exists() ) {
421
-			return;
422
-		}
420
+        if ( ! $invoice->exists() ) {
421
+            return;
422
+        }
423 423
 
424
-		$new_invoice = getpaid_duplicate_invoice( $invoice );
425
-		$new_invoice->save();
424
+        $new_invoice = getpaid_duplicate_invoice( $invoice );
425
+        $new_invoice->save();
426 426
 
427
-		if ( $new_invoice->exists() ) {
427
+        if ( $new_invoice->exists() ) {
428 428
 
429
-			getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'invoicing' ) );
429
+            getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'invoicing' ) );
430 430
 
431
-			wp_safe_redirect(
432
-				add_query_arg(
433
-					array(
434
-						'action' => 'edit',
435
-						'post'   => $new_invoice->get_id(),
436
-					),
437
-					admin_url( 'post.php' )
438
-				)
439
-			);
440
-			exit;
431
+            wp_safe_redirect(
432
+                add_query_arg(
433
+                    array(
434
+                        'action' => 'edit',
435
+                        'post'   => $new_invoice->get_id(),
436
+                    ),
437
+                    admin_url( 'post.php' )
438
+                )
439
+            );
440
+            exit;
441 441
 
442
-		}
442
+        }
443 443
 
444
-		getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'invoicing' ) );
444
+        getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'invoicing' ) );
445 445
 
446
-	}
446
+    }
447 447
 
448
-	/**
448
+    /**
449 449
      * Sends a payment reminder to a customer.
450
-	 *
451
-	 * @param array $args
450
+     *
451
+     * @param array $args
452 452
      */
453 453
     public function duplicate_payment_form( $args ) {
454 454
 
455
-		if ( empty( $args['form_id'] ) ) {
456
-			return;
457
-		}
458
-
459
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
455
+        if ( empty( $args['form_id'] ) ) {
456
+            return;
457
+        }
460 458
 
461
-		if ( ! $form->exists() ) {
462
-			return;
463
-		}
459
+        $form = new GetPaid_Payment_Form( (int) $args['form_id'] );
464 460
 
465
-		$new_form = new GetPaid_Payment_Form();
466
-		$new_form->set_author( $form->get_author( 'edit' ) );
467
-		$new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
468
-		$new_form->set_elements( $form->get_elements( 'edit' ) );
469
-		$new_form->set_items( $form->get_items( 'edit' ) );
470
-		$new_form->save();
461
+        if ( ! $form->exists() ) {
462
+            return;
463
+        }
471 464
 
472
-		if ( $new_form->exists() ) {
473
-			$this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
474
-			$url = get_edit_post_link( $new_form->get_id(), 'edit' );
475
-		} else {
476
-			$this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
477
-			$url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
478
-		}
465
+        $new_form = new GetPaid_Payment_Form();
466
+        $new_form->set_author( $form->get_author( 'edit' ) );
467
+        $new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
468
+        $new_form->set_elements( $form->get_elements( 'edit' ) );
469
+        $new_form->set_items( $form->get_items( 'edit' ) );
470
+        $new_form->save();
471
+
472
+        if ( $new_form->exists() ) {
473
+            $this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
474
+            $url = get_edit_post_link( $new_form->get_id(), 'edit' );
475
+        } else {
476
+            $this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
477
+            $url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
478
+        }
479 479
 
480
-		wp_redirect( $url );
481
-		exit;
482
-	}
480
+        wp_redirect( $url );
481
+        exit;
482
+    }
483 483
 
484
-	/**
484
+    /**
485 485
      * Resets form stats.
486
-	 *
487
-	 * @param array $args
486
+     *
487
+     * @param array $args
488 488
      */
489 489
     public function reset_form_stats( $args ) {
490 490
 
491
-		if ( empty( $args['form_id'] ) ) {
492
-			return;
493
-		}
491
+        if ( empty( $args['form_id'] ) ) {
492
+            return;
493
+        }
494 494
 
495
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
495
+        $form = new GetPaid_Payment_Form( (int) $args['form_id'] );
496 496
 
497
-		if ( ! $form->exists() ) {
498
-			return;
499
-		}
497
+        if ( ! $form->exists() ) {
498
+            return;
499
+        }
500 500
 
501
-		$form->set_earned( 0 );
502
-		$form->set_refunded( 0 );
503
-		$form->set_cancelled( 0 );
504
-		$form->set_failed( 0 );
505
-		$form->save();
501
+        $form->set_earned( 0 );
502
+        $form->set_refunded( 0 );
503
+        $form->set_cancelled( 0 );
504
+        $form->set_failed( 0 );
505
+        $form->save();
506 506
 
507
-		$this->show_success( __( 'Form stats reset successfully', 'invoicing' ) );
507
+        $this->show_success( __( 'Form stats reset successfully', 'invoicing' ) );
508 508
 
509
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) ) );
510
-		exit;
511
-	}
509
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) ) );
510
+        exit;
511
+    }
512 512
 
513
-	/**
513
+    /**
514 514
      * Sends a payment reminder to a customer.
515
-	 *
516
-	 * @param array $args
515
+     *
516
+     * @param array $args
517 517
      */
518 518
     public function send_customer_invoice( $args ) {
519
-		getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
520
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
521
-		exit;
522
-	}
519
+        getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
520
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
521
+        exit;
522
+    }
523 523
 
524
-	/**
524
+    /**
525 525
      * Sends a payment reminder to a customer.
526
-	 *
527
-	 * @param array $args
526
+     *
527
+     * @param array $args
528 528
      */
529 529
     public function send_customer_payment_reminder( $args ) {
530
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
530
+        $sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
531 531
 
532
-		if ( $sent ) {
533
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
534
-		} else {
535
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
536
-		}
532
+        if ( $sent ) {
533
+            $this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
534
+        } else {
535
+            $this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
536
+        }
537 537
 
538
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
539
-		exit;
540
-	}
538
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
539
+        exit;
540
+    }
541 541
 
542
-	/**
542
+    /**
543 543
      * Resets tax rates.
544
-	 *
544
+     *
545 545
      */
546 546
     public function admin_reset_tax_rates() {
547 547
 
548
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
549
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
550
-		exit;
548
+        update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
549
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
550
+        exit;
551 551
 
552
-	}
552
+    }
553 553
 
554
-	/**
554
+    /**
555 555
      * Resets admin pages.
556
-	 *
556
+     *
557 557
      */
558 558
     public function admin_create_missing_pages() {
559
-		$installer = new GetPaid_Installer();
560
-		$installer->create_pages();
561
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
562
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
563
-		exit;
564
-	}
565
-
566
-	/**
567
-	 * Refreshes the permalinks.
568
-	 */
569
-	public function admin_refresh_permalinks() {
570
-		flush_rewrite_rules();
571
-		$this->show_success( __( 'Permalinks refreshed.', 'invoicing' ) );
572
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
573
-		exit;
574
-	}
575
-
576
-	/**
559
+        $installer = new GetPaid_Installer();
560
+        $installer->create_pages();
561
+        $this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
562
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
563
+        exit;
564
+    }
565
+
566
+    /**
567
+     * Refreshes the permalinks.
568
+     */
569
+    public function admin_refresh_permalinks() {
570
+        flush_rewrite_rules();
571
+        $this->show_success( __( 'Permalinks refreshed.', 'invoicing' ) );
572
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
573
+        exit;
574
+    }
575
+
576
+    /**
577 577
      * Creates an missing admin tables.
578
-	 *
578
+     *
579 579
      */
580 580
     public function admin_create_missing_tables() {
581
-		global $wpdb;
582
-		$installer = new GetPaid_Installer();
581
+        global $wpdb;
582
+        $installer = new GetPaid_Installer();
583 583
 
584
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
585
-			$installer->create_subscriptions_table();
584
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
585
+            $installer->create_subscriptions_table();
586 586
 
587
-			if ( $wpdb->last_error !== '' ) {
588
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
589
-			}
590
-		}
587
+            if ( $wpdb->last_error !== '' ) {
588
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
589
+            }
590
+        }
591 591
 
592
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
593
-			$installer->create_invoices_table();
592
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
593
+            $installer->create_invoices_table();
594 594
 
595
-			if ( '' !== $wpdb->last_error ) {
596
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
597
-			}
598
-		}
595
+            if ( '' !== $wpdb->last_error ) {
596
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
597
+            }
598
+        }
599 599
 
600
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
601
-			$installer->create_invoice_items_table();
600
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
601
+            $installer->create_invoice_items_table();
602 602
 
603
-			if ( '' !== $wpdb->last_error ) {
604
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
605
-			}
606
-		}
603
+            if ( '' !== $wpdb->last_error ) {
604
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
605
+            }
606
+        }
607 607
 
608
-		if ( ! $this->has_notices() ) {
609
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
610
-		}
608
+        if ( ! $this->has_notices() ) {
609
+            $this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
610
+        }
611 611
 
612
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
613
-		exit;
614
-	}
612
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
613
+        exit;
614
+    }
615 615
 
616
-	/**
616
+    /**
617 617
      * Migrates old invoices to the new database tables.
618
-	 *
618
+     *
619 619
      */
620 620
     public function admin_migrate_old_invoices() {
621 621
 
622
-		// Migrate the invoices.
623
-		$installer = new GetPaid_Installer();
624
-		$installer->migrate_old_invoices();
622
+        // Migrate the invoices.
623
+        $installer = new GetPaid_Installer();
624
+        $installer->migrate_old_invoices();
625 625
 
626
-		// Show an admin message.
627
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
626
+        // Show an admin message.
627
+        $this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
628 628
 
629
-		// Redirect the admin.
630
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
631
-		exit;
629
+        // Redirect the admin.
630
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
631
+        exit;
632 632
 
633
-	}
633
+    }
634 634
 
635
-	/**
635
+    /**
636 636
      * Download customers.
637
-	 *
637
+     *
638 638
      */
639 639
     public function admin_download_customers() {
640
-		global $wpdb;
641
-
642
-		$output = fopen( 'php://output', 'w' );
643
-
644
-		if ( false === $output ) {
645
-			wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
646
-		}
640
+        global $wpdb;
647 641
 
648
-		header( 'Content-Type:text/csv' );
649
-		header( 'Content-Disposition:attachment;filename=customers.csv' );
642
+        $output = fopen( 'php://output', 'w' );
650 643
 
651
-		$post_types = '';
644
+        if ( false === $output ) {
645
+            wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
646
+        }
652 647
 
653
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
654
-			$post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
655
-		}
648
+        header( 'Content-Type:text/csv' );
649
+        header( 'Content-Disposition:attachment;filename=customers.csv' );
656 650
 
657
-		$post_types = rtrim( $post_types, ' OR' );
651
+        $post_types = '';
658 652
 
659
-		$customers = $wpdb->get_col( "SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types" );
653
+        foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
654
+            $post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
655
+        }
660 656
 
661
-		$columns = array(
662
-			'name'       => __( 'Name', 'invoicing' ),
663
-			'email'      => __( 'Email', 'invoicing' ),
664
-			'country'    => __( 'Country', 'invoicing' ),
665
-			'state'      => __( 'State', 'invoicing' ),
666
-			'city'       => __( 'City', 'invoicing' ),
667
-			'zip'        => __( 'ZIP', 'invoicing' ),
668
-			'address'    => __( 'Address', 'invoicing' ),
669
-			'phone'      => __( 'Phone', 'invoicing' ),
670
-			'company'    => __( 'Company', 'invoicing' ),
671
-			'company_id' => __( 'Company ID', 'invoicing' ),
672
-			'invoices'   => __( 'Invoices', 'invoicing' ),
673
-			'total_raw'  => __( 'Total Spend', 'invoicing' ),
674
-			'signup'     => __( 'Date created', 'invoicing' ),
675
-		);
657
+        $post_types = rtrim( $post_types, ' OR' );
658
+
659
+        $customers = $wpdb->get_col( "SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types" );
660
+
661
+        $columns = array(
662
+            'name'       => __( 'Name', 'invoicing' ),
663
+            'email'      => __( 'Email', 'invoicing' ),
664
+            'country'    => __( 'Country', 'invoicing' ),
665
+            'state'      => __( 'State', 'invoicing' ),
666
+            'city'       => __( 'City', 'invoicing' ),
667
+            'zip'        => __( 'ZIP', 'invoicing' ),
668
+            'address'    => __( 'Address', 'invoicing' ),
669
+            'phone'      => __( 'Phone', 'invoicing' ),
670
+            'company'    => __( 'Company', 'invoicing' ),
671
+            'company_id' => __( 'Company ID', 'invoicing' ),
672
+            'invoices'   => __( 'Invoices', 'invoicing' ),
673
+            'total_raw'  => __( 'Total Spend', 'invoicing' ),
674
+            'signup'     => __( 'Date created', 'invoicing' ),
675
+        );
676 676
 
677
-		// Output the csv column headers.
678
-		fputcsv( $output, array_values( $columns ) );
677
+        // Output the csv column headers.
678
+        fputcsv( $output, array_values( $columns ) );
679 679
 
680
-		// Loop through
681
-		$table = new WPInv_Customers_Table();
682
-		foreach ( $customers as $customer_id ) {
680
+        // Loop through
681
+        $table = new WPInv_Customers_Table();
682
+        foreach ( $customers as $customer_id ) {
683 683
 
684
-			$user = get_user_by( 'id', $customer_id );
685
-			$row  = array();
686
-			if ( empty( $user ) ) {
687
-				continue;
688
-			}
684
+            $user = get_user_by( 'id', $customer_id );
685
+            $row  = array();
686
+            if ( empty( $user ) ) {
687
+                continue;
688
+            }
689 689
 
690
-			foreach ( array_keys( $columns ) as $column ) {
690
+            foreach ( array_keys( $columns ) as $column ) {
691 691
 
692
-				$method = 'column_' . $column;
692
+                $method = 'column_' . $column;
693 693
 
694
-				if ( 'name' == $column ) {
695
-					$value = esc_html( $user->display_name );
696
-				} elseif ( 'email' == $column ) {
697
-					$value = sanitize_email( $user->user_email );
698
-				} elseif ( is_callable( array( $table, $method ) ) ) {
699
-					$value = wp_strip_all_tags( $table->$method( $user ) );
700
-				}
694
+                if ( 'name' == $column ) {
695
+                    $value = esc_html( $user->display_name );
696
+                } elseif ( 'email' == $column ) {
697
+                    $value = sanitize_email( $user->user_email );
698
+                } elseif ( is_callable( array( $table, $method ) ) ) {
699
+                    $value = wp_strip_all_tags( $table->$method( $user ) );
700
+                }
701 701
 
702
-				if ( empty( $value ) ) {
703
-					$value = esc_html( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
704
-				}
702
+                if ( empty( $value ) ) {
703
+                    $value = esc_html( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
704
+                }
705 705
 
706
-				$row[] = $value;
706
+                $row[] = $value;
707 707
 
708
-			}
708
+            }
709 709
 
710
-			fputcsv( $output, $row );
711
-		}
710
+            fputcsv( $output, $row );
711
+        }
712 712
 
713
-		fclose( $output );
714
-		exit;
713
+        fclose( $output );
714
+        exit;
715 715
 
716
-	}
716
+    }
717 717
 
718
-	/**
718
+    /**
719 719
      * Installs a plugin.
720
-	 *
721
-	 * @param array $data
720
+     *
721
+     * @param array $data
722 722
      */
723 723
     public function admin_install_plugin( $data ) {
724 724
 
725
-		if ( ! empty( $data['plugins'] ) ) {
726
-			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
727
-			wp_cache_flush();
725
+        if ( ! empty( $data['plugins'] ) ) {
726
+            include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
727
+            wp_cache_flush();
728 728
 
729
-			foreach ( $data['plugins'] as $slug => $file ) {
730
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
731
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
732
-				$installed  = $upgrader->install( $plugin_zip );
729
+            foreach ( $data['plugins'] as $slug => $file ) {
730
+                $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
731
+                $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
732
+                $installed  = $upgrader->install( $plugin_zip );
733 733
 
734
-				if ( ! is_wp_error( $installed ) && $installed ) {
735
-					activate_plugin( $file, '', false, true );
736
-				} else {
737
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
738
-				}
734
+                if ( ! is_wp_error( $installed ) && $installed ) {
735
+                    activate_plugin( $file, '', false, true );
736
+                } else {
737
+                    wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
738
+                }
739 739
 }
740 740
 }
741 741
 
742
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
743
-		wp_safe_redirect( $redirect );
744
-		exit;
742
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
743
+        wp_safe_redirect( $redirect );
744
+        exit;
745 745
 
746
-	}
746
+    }
747 747
 
748
-	/**
748
+    /**
749 749
      * Connects a gateway.
750
-	 *
751
-	 * @param array $data
750
+     *
751
+     * @param array $data
752 752
      */
753 753
     public function admin_connect_gateway( $data ) {
754 754
 
755
-		if ( ! empty( $data['plugin'] ) ) {
755
+        if ( ! empty( $data['plugin'] ) ) {
756 756
 
757
-			$gateway     = sanitize_key( $data['plugin'] );
758
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
757
+            $gateway     = sanitize_key( $data['plugin'] );
758
+            $connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
759 759
 
760
-			if ( ! empty( $connect_url ) ) {
761
-				wp_redirect( $connect_url );
762
-				exit;
763
-			}
760
+            if ( ! empty( $connect_url ) ) {
761
+                wp_redirect( $connect_url );
762
+                exit;
763
+            }
764 764
 
765
-			if ( 'stripe' == $data['plugin'] ) {
766
-				require_once ABSPATH . 'wp-admin/includes/plugin.php';
767
-				include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
768
-				wp_cache_flush();
765
+            if ( 'stripe' == $data['plugin'] ) {
766
+                require_once ABSPATH . 'wp-admin/includes/plugin.php';
767
+                include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
768
+                wp_cache_flush();
769 769
 
770
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
771
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
772
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
773
-					$upgrader->install( $plugin_zip );
774
-				}
770
+                if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
771
+                    $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
772
+                    $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
773
+                    $upgrader->install( $plugin_zip );
774
+                }
775 775
 
776
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
777
-			}
776
+                activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
777
+            }
778 778
 
779
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
780
-			if ( ! empty( $connect_url ) ) {
781
-				wp_redirect( $connect_url );
782
-				exit;
783
-			}
779
+            $connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
780
+            if ( ! empty( $connect_url ) ) {
781
+                wp_redirect( $connect_url );
782
+                exit;
783
+            }
784 784
 }
785 785
 
786
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
787
-		wp_safe_redirect( $redirect );
788
-		exit;
786
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
787
+        wp_safe_redirect( $redirect );
788
+        exit;
789 789
 
790
-	}
790
+    }
791 791
 
792
-	/**
792
+    /**
793 793
      * Recalculates discounts.
794
-	 *
794
+     *
795 795
      */
796 796
     public function admin_recalculate_discounts() {
797
-		global $wpdb;
797
+        global $wpdb;
798 798
 
799
-		// Fetch all invoices that have discount codes.
800
-		$table    = $wpdb->prefix . 'getpaid_invoices';
801
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
799
+        // Fetch all invoices that have discount codes.
800
+        $table    = $wpdb->prefix . 'getpaid_invoices';
801
+        $invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
802 802
 
803
-		foreach ( $invoices as $invoice ) {
803
+        foreach ( $invoices as $invoice ) {
804 804
 
805
-			$invoice = new WPInv_Invoice( $invoice );
805
+            $invoice = new WPInv_Invoice( $invoice );
806 806
 
807
-			if ( ! $invoice->exists() ) {
808
-				continue;
809
-			}
807
+            if ( ! $invoice->exists() ) {
808
+                continue;
809
+            }
810 810
 
811
-			// Abort if the discount does not exist or does not apply here.
812
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
813
-			if ( ! $discount->exists() ) {
814
-				continue;
815
-			}
811
+            // Abort if the discount does not exist or does not apply here.
812
+            $discount = new WPInv_Discount( $invoice->get_discount_code() );
813
+            if ( ! $discount->exists() ) {
814
+                continue;
815
+            }
816 816
 
817
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
818
-			$invoice->recalculate_total();
817
+            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
818
+            $invoice->recalculate_total();
819 819
 
820
-			if ( $invoice->get_total_discount() > 0 ) {
821
-				$invoice->save();
822
-			}
820
+            if ( $invoice->get_total_discount() > 0 ) {
821
+                $invoice->save();
822
+            }
823 823
 }
824 824
 
825
-		// Show an admin message.
826
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
825
+        // Show an admin message.
826
+        $this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
827 827
 
828
-		// Redirect the admin.
829
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
830
-		exit;
828
+        // Redirect the admin.
829
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
830
+        exit;
831 831
 
832
-	}
832
+    }
833 833
 
834 834
     /**
835
-	 * Returns an array of admin notices.
836
-	 *
837
-	 * @since       1.0.19
835
+     * Returns an array of admin notices.
836
+     *
837
+     * @since       1.0.19
838 838
      * @return array
839
-	 */
840
-	public function get_notices() {
841
-		$notices = get_option( 'wpinv_admin_notices' );
839
+     */
840
+    public function get_notices() {
841
+        $notices = get_option( 'wpinv_admin_notices' );
842 842
         return is_array( $notices ) ? $notices : array();
843
-	}
843
+    }
844 844
 
845
-	/**
846
-	 * Checks if we have any admin notices.
847
-	 *
848
-	 * @since       2.0.4
845
+    /**
846
+     * Checks if we have any admin notices.
847
+     *
848
+     * @since       2.0.4
849 849
      * @return array
850
-	 */
851
-	public function has_notices() {
852
-		return count( $this->get_notices() ) > 0;
853
-	}
854
-
855
-	/**
856
-	 * Clears all admin notices
857
-	 *
858
-	 * @access      public
859
-	 * @since       1.0.19
860
-	 */
861
-	public function clear_notices() {
862
-		delete_option( 'wpinv_admin_notices' );
863
-	}
864
-
865
-	/**
866
-	 * Saves a new admin notice
867
-	 *
868
-	 * @access      public
869
-	 * @since       1.0.19
870
-	 */
871
-	public function save_notice( $type, $message ) {
872
-		$notices = $this->get_notices();
873
-
874
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
875
-			$notices[ $type ] = array();
876
-		}
877
-
878
-		$notices[ $type ][] = $message;
879
-
880
-		update_option( 'wpinv_admin_notices', $notices );
881
-	}
882
-
883
-	/**
884
-	 * Displays a success notice
885
-	 *
886
-	 * @param       string $msg The message to qeue.
887
-	 * @access      public
888
-	 * @since       1.0.19
889
-	 */
890
-	public function show_success( $msg ) {
891
-		$this->save_notice( 'success', $msg );
892
-	}
893
-
894
-	/**
895
-	 * Displays a error notice
896
-	 *
897
-	 * @access      public
898
-	 * @param       string $msg The message to qeue.
899
-	 * @since       1.0.19
900
-	 */
901
-	public function show_error( $msg ) {
902
-		$this->save_notice( 'error', $msg );
903
-	}
904
-
905
-	/**
906
-	 * Displays a warning notice
907
-	 *
908
-	 * @access      public
909
-	 * @param       string $msg The message to qeue.
910
-	 * @since       1.0.19
911
-	 */
912
-	public function show_warning( $msg ) {
913
-		$this->save_notice( 'warning', $msg );
914
-	}
915
-
916
-	/**
917
-	 * Displays a info notice
918
-	 *
919
-	 * @access      public
920
-	 * @param       string $msg The message to qeue.
921
-	 * @since       1.0.19
922
-	 */
923
-	public function show_info( $msg ) {
924
-		$this->save_notice( 'info', $msg );
925
-	}
926
-
927
-	/**
928
-	 * Show notices
929
-	 *
930
-	 * @access      public
931
-	 * @since       1.0.19
932
-	 */
933
-	public function show_notices() {
850
+     */
851
+    public function has_notices() {
852
+        return count( $this->get_notices() ) > 0;
853
+    }
854
+
855
+    /**
856
+     * Clears all admin notices
857
+     *
858
+     * @access      public
859
+     * @since       1.0.19
860
+     */
861
+    public function clear_notices() {
862
+        delete_option( 'wpinv_admin_notices' );
863
+    }
864
+
865
+    /**
866
+     * Saves a new admin notice
867
+     *
868
+     * @access      public
869
+     * @since       1.0.19
870
+     */
871
+    public function save_notice( $type, $message ) {
872
+        $notices = $this->get_notices();
873
+
874
+        if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
875
+            $notices[ $type ] = array();
876
+        }
877
+
878
+        $notices[ $type ][] = $message;
879
+
880
+        update_option( 'wpinv_admin_notices', $notices );
881
+    }
882
+
883
+    /**
884
+     * Displays a success notice
885
+     *
886
+     * @param       string $msg The message to qeue.
887
+     * @access      public
888
+     * @since       1.0.19
889
+     */
890
+    public function show_success( $msg ) {
891
+        $this->save_notice( 'success', $msg );
892
+    }
893
+
894
+    /**
895
+     * Displays a error notice
896
+     *
897
+     * @access      public
898
+     * @param       string $msg The message to qeue.
899
+     * @since       1.0.19
900
+     */
901
+    public function show_error( $msg ) {
902
+        $this->save_notice( 'error', $msg );
903
+    }
904
+
905
+    /**
906
+     * Displays a warning notice
907
+     *
908
+     * @access      public
909
+     * @param       string $msg The message to qeue.
910
+     * @since       1.0.19
911
+     */
912
+    public function show_warning( $msg ) {
913
+        $this->save_notice( 'warning', $msg );
914
+    }
915
+
916
+    /**
917
+     * Displays a info notice
918
+     *
919
+     * @access      public
920
+     * @param       string $msg The message to qeue.
921
+     * @since       1.0.19
922
+     */
923
+    public function show_info( $msg ) {
924
+        $this->save_notice( 'info', $msg );
925
+    }
926
+
927
+    /**
928
+     * Show notices
929
+     *
930
+     * @access      public
931
+     * @since       1.0.19
932
+     */
933
+    public function show_notices() {
934 934
 
935 935
         $notices = $this->get_notices();
936 936
         $this->clear_notices();
937 937
 
938
-		foreach ( $notices as $type => $messages ) {
938
+        foreach ( $notices as $type => $messages ) {
939 939
 
940
-			if ( ! is_array( $messages ) ) {
941
-				continue;
942
-			}
940
+            if ( ! is_array( $messages ) ) {
941
+                continue;
942
+            }
943 943
 
944 944
             $type  = esc_attr( $type );
945
-			foreach ( $messages as $message ) {
946
-				echo wp_kses_post( "<div class='notice notice-$type is-dismissible'><p>$message</p></div>" );
945
+            foreach ( $messages as $message ) {
946
+                echo wp_kses_post( "<div class='notice notice-$type is-dismissible'><p>$message</p></div>" );
947 947
             }
948 948
 }
949 949
 
950
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
951
-
952
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
953
-				$url     = wp_nonce_url(
954
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
955
-					'getpaid-nonce',
956
-					'getpaid-nonce'
957
-				);
958
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
959
-				$message2 = __( 'Generate Pages', 'invoicing' );
960
-				echo wp_kses_post( "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>" );
961
-				break;
962
-			}
950
+        foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
951
+
952
+            if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
953
+                $url     = wp_nonce_url(
954
+                    add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
955
+                    'getpaid-nonce',
956
+                    'getpaid-nonce'
957
+                );
958
+                $message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
959
+                $message2 = __( 'Generate Pages', 'invoicing' );
960
+                echo wp_kses_post( "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>" );
961
+                break;
962
+            }
963 963
 }
964 964
 
965
-	}
965
+    }
966 966
 
967 967
 }
Please login to merge, or discard this patch.
includes/admin/admin-pages.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -57,8 +57,8 @@  discard block
 block discarded – undo
57 57
             'getpaid-nonce',
58 58
             'getpaid-nonce'
59 59
         );
60
-		$anchor = __( 'Deactivate', 'invoicing' );
61
-		$title  = esc_attr__( 'Are you sure you want to deactivate this discount?', 'invoicing' );
60
+        $anchor = __( 'Deactivate', 'invoicing' );
61
+        $title  = esc_attr__( 'Are you sure you want to deactivate this discount?', 'invoicing' );
62 62
         $row_actions['deactivate'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>";
63 63
 
64 64
     } elseif ( in_array( strtolower( $discount->post_status ), array( 'pending', 'draft' ) ) && wpinv_current_user_can( 'activate_discount', array( 'discount' => (int) $discount->ID ) ) ) {
@@ -73,8 +73,8 @@  discard block
 block discarded – undo
73 73
             'getpaid-nonce',
74 74
             'getpaid-nonce'
75 75
         );
76
-		$anchor = __( 'Activate', 'invoicing' );
77
-		$title  = esc_attr__( 'Are you sure you want to activate this discount?', 'invoicing' );
76
+        $anchor = __( 'Activate', 'invoicing' );
77
+        $title  = esc_attr__( 'Are you sure you want to activate this discount?', 'invoicing' );
78 78
         $row_actions['activate'] = "<a href='$url' onclick='return confirm(\"$title\")'>$anchor</a>";
79 79
 
80 80
     }
@@ -121,13 +121,13 @@  discard block
 block discarded – undo
121 121
             $types = wpinv_get_discount_types();
122 122
 
123 123
             foreach ( $types as $name => $type ) {
124
-			echo '<option value="' . esc_attr( $name ) . '"';
124
+            echo '<option value="' . esc_attr( $name ) . '"';
125 125
 
126
-			if ( isset( $_GET['discount_type'] ) ) {
127
-				selected( $name, sanitize_text_field( $_GET['discount_type'] ) );
126
+            if ( isset( $_GET['discount_type'] ) ) {
127
+                selected( $name, sanitize_text_field( $_GET['discount_type'] ) );
128 128
                 }
129 129
 
130
-			echo '>' . esc_html__( $type, 'invoicing' ) . '</option>';
130
+            echo '>' . esc_html__( $type, 'invoicing' ) . '</option>';
131 131
             }
132 132
         ?>
133 133
     </select>
@@ -154,15 +154,15 @@  discard block
 block discarded – undo
154 154
         // Filter vat rule type
155 155
         if ( isset( $_GET['discount_type'] ) && $_GET['discount_type'] !== '' ) {
156 156
             $meta_query[] = array(
157
-				'key'     => '_wpi_discount_type',
158
-				'value'   => sanitize_key( urldecode( $_GET['discount_type'] ) ),
159
-				'compare' => '=',
160
-			);
161
-			}
157
+                'key'     => '_wpi_discount_type',
158
+                'value'   => sanitize_key( urldecode( $_GET['discount_type'] ) ),
159
+                'compare' => '=',
160
+            );
161
+            }
162 162
 
163 163
         if ( ! empty( $meta_query ) ) {
164 164
             $vars['meta_query'] = $meta_query;
165
-			}
165
+            }
166 166
     }
167 167
 
168 168
     return $vars;
Please login to merge, or discard this patch.