Passed
Push — master ( 5c4f2a...9d88bf )
by Brian
13:27
created
includes/admin/class-getpaid-admin.php 2 patches
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.
@@ -405,564 +405,564 @@  discard block
 block discarded – undo
405 405
 
406 406
     }
407 407
 
408
-	/**
408
+    /**
409 409
      * Duplicate invoice.
410
-	 *
411
-	 * @param array $args
410
+     *
411
+     * @param array $args
412 412
      */
413 413
     public function duplicate_invoice( $args ) {
414 414
 
415
-		if ( empty( $args['invoice_id'] ) ) {
416
-			return;
417
-		}
415
+        if ( empty( $args['invoice_id'] ) ) {
416
+            return;
417
+        }
418 418
 
419
-		$invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
419
+        $invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
420 420
 
421
-		if ( ! $invoice->exists() ) {
422
-			return;
423
-		}
421
+        if ( ! $invoice->exists() ) {
422
+            return;
423
+        }
424 424
 
425
-		$new_invoice = getpaid_duplicate_invoice( $invoice );
426
-		$new_invoice->save();
425
+        $new_invoice = getpaid_duplicate_invoice( $invoice );
426
+        $new_invoice->save();
427 427
 
428
-		if ( $new_invoice->exists() ) {
428
+        if ( $new_invoice->exists() ) {
429 429
 
430
-			getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'invoicing' ) );
430
+            getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'invoicing' ) );
431 431
 
432
-			wp_safe_redirect(
433
-				add_query_arg(
434
-					array(
435
-						'action' => 'edit',
436
-						'post'   => $new_invoice->get_id(),
437
-					),
438
-					admin_url( 'post.php' )
439
-				)
440
-			);
441
-			exit;
432
+            wp_safe_redirect(
433
+                add_query_arg(
434
+                    array(
435
+                        'action' => 'edit',
436
+                        'post'   => $new_invoice->get_id(),
437
+                    ),
438
+                    admin_url( 'post.php' )
439
+                )
440
+            );
441
+            exit;
442 442
 
443
-		}
443
+        }
444 444
 
445
-		getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'invoicing' ) );
445
+        getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'invoicing' ) );
446 446
 
447
-	}
447
+    }
448 448
 
449
-	/**
449
+    /**
450 450
      * Sends a payment reminder to a customer.
451
-	 *
452
-	 * @param array $args
451
+     *
452
+     * @param array $args
453 453
      */
454 454
     public function duplicate_payment_form( $args ) {
455 455
 
456
-		if ( empty( $args['form_id'] ) ) {
457
-			return;
458
-		}
459
-
460
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
456
+        if ( empty( $args['form_id'] ) ) {
457
+            return;
458
+        }
461 459
 
462
-		if ( ! $form->exists() ) {
463
-			return;
464
-		}
460
+        $form = new GetPaid_Payment_Form( (int) $args['form_id'] );
465 461
 
466
-		$new_form = new GetPaid_Payment_Form();
467
-		$new_form->set_author( $form->get_author( 'edit' ) );
468
-		$new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
469
-		$new_form->set_elements( $form->get_elements( 'edit' ) );
470
-		$new_form->set_items( $form->get_items( 'edit' ) );
471
-		$new_form->save();
462
+        if ( ! $form->exists() ) {
463
+            return;
464
+        }
472 465
 
473
-		if ( $new_form->exists() ) {
474
-			$this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
475
-			$url = get_edit_post_link( $new_form->get_id(), 'edit' );
476
-		} else {
477
-			$this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
478
-			$url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
479
-		}
466
+        $new_form = new GetPaid_Payment_Form();
467
+        $new_form->set_author( $form->get_author( 'edit' ) );
468
+        $new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
469
+        $new_form->set_elements( $form->get_elements( 'edit' ) );
470
+        $new_form->set_items( $form->get_items( 'edit' ) );
471
+        $new_form->save();
472
+
473
+        if ( $new_form->exists() ) {
474
+            $this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
475
+            $url = get_edit_post_link( $new_form->get_id(), 'edit' );
476
+        } else {
477
+            $this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
478
+            $url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
479
+        }
480 480
 
481
-		wp_redirect( $url );
482
-		exit;
483
-	}
481
+        wp_redirect( $url );
482
+        exit;
483
+    }
484 484
 
485
-	/**
485
+    /**
486 486
      * Resets form stats.
487
-	 *
488
-	 * @param array $args
487
+     *
488
+     * @param array $args
489 489
      */
490 490
     public function reset_form_stats( $args ) {
491 491
 
492
-		if ( empty( $args['form_id'] ) ) {
493
-			return;
494
-		}
492
+        if ( empty( $args['form_id'] ) ) {
493
+            return;
494
+        }
495 495
 
496
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
496
+        $form = new GetPaid_Payment_Form( (int) $args['form_id'] );
497 497
 
498
-		if ( ! $form->exists() ) {
499
-			return;
500
-		}
498
+        if ( ! $form->exists() ) {
499
+            return;
500
+        }
501 501
 
502
-		$form->set_earned( 0 );
503
-		$form->set_refunded( 0 );
504
-		$form->set_cancelled( 0 );
505
-		$form->set_failed( 0 );
506
-		$form->save();
502
+        $form->set_earned( 0 );
503
+        $form->set_refunded( 0 );
504
+        $form->set_cancelled( 0 );
505
+        $form->set_failed( 0 );
506
+        $form->save();
507 507
 
508
-		$this->show_success( __( 'Form stats reset successfully', 'invoicing' ) );
508
+        $this->show_success( __( 'Form stats reset successfully', 'invoicing' ) );
509 509
 
510
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) ) );
511
-		exit;
512
-	}
510
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) ) );
511
+        exit;
512
+    }
513 513
 
514
-	/**
514
+    /**
515 515
      * Sends a payment reminder to a customer.
516
-	 *
517
-	 * @param array $args
516
+     *
517
+     * @param array $args
518 518
      */
519 519
     public function send_customer_invoice( $args ) {
520
-		getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
521
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
522
-		exit;
523
-	}
520
+        getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
521
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
522
+        exit;
523
+    }
524 524
 
525
-	/**
525
+    /**
526 526
      * Sends a payment reminder to a customer.
527
-	 *
528
-	 * @param array $args
527
+     *
528
+     * @param array $args
529 529
      */
530 530
     public function send_customer_payment_reminder( $args ) {
531
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
531
+        $sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
532 532
 
533
-		if ( $sent ) {
534
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
535
-		} else {
536
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
537
-		}
533
+        if ( $sent ) {
534
+            $this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
535
+        } else {
536
+            $this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
537
+        }
538 538
 
539
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
540
-		exit;
541
-	}
539
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
540
+        exit;
541
+    }
542 542
 
543
-	/**
543
+    /**
544 544
      * Resets tax rates.
545
-	 *
545
+     *
546 546
      */
547 547
     public function admin_reset_tax_rates() {
548 548
 
549
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
550
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
551
-		exit;
549
+        update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
550
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
551
+        exit;
552 552
 
553
-	}
553
+    }
554 554
 
555
-	/**
555
+    /**
556 556
      * Resets admin pages.
557
-	 *
557
+     *
558 558
      */
559 559
     public function admin_create_missing_pages() {
560
-		$installer = new GetPaid_Installer();
561
-		$installer->create_pages();
562
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
563
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
564
-		exit;
565
-	}
566
-
567
-	/**
568
-	 * Refreshes the permalinks.
569
-	 */
570
-	public function admin_refresh_permalinks() {
571
-		flush_rewrite_rules();
572
-		$this->show_success( __( 'Permalinks refreshed.', 'invoicing' ) );
573
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
574
-		exit;
575
-	}
576
-
577
-	/**
560
+        $installer = new GetPaid_Installer();
561
+        $installer->create_pages();
562
+        $this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
563
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
564
+        exit;
565
+    }
566
+
567
+    /**
568
+     * Refreshes the permalinks.
569
+     */
570
+    public function admin_refresh_permalinks() {
571
+        flush_rewrite_rules();
572
+        $this->show_success( __( 'Permalinks refreshed.', 'invoicing' ) );
573
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
574
+        exit;
575
+    }
576
+
577
+    /**
578 578
      * Creates an missing admin tables.
579
-	 *
579
+     *
580 580
      */
581 581
     public function admin_create_missing_tables() {
582
-		global $wpdb;
583
-		$installer = new GetPaid_Installer();
582
+        global $wpdb;
583
+        $installer = new GetPaid_Installer();
584 584
 
585
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
586
-			$installer->create_subscriptions_table();
585
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
586
+            $installer->create_subscriptions_table();
587 587
 
588
-			if ( $wpdb->last_error !== '' ) {
589
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
590
-			}
591
-		}
588
+            if ( $wpdb->last_error !== '' ) {
589
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
590
+            }
591
+        }
592 592
 
593
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
594
-			$installer->create_invoices_table();
593
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
594
+            $installer->create_invoices_table();
595 595
 
596
-			if ( '' !== $wpdb->last_error ) {
597
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
598
-			}
599
-		}
596
+            if ( '' !== $wpdb->last_error ) {
597
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
598
+            }
599
+        }
600 600
 
601
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
602
-			$installer->create_invoice_items_table();
601
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
602
+            $installer->create_invoice_items_table();
603 603
 
604
-			if ( '' !== $wpdb->last_error ) {
605
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
606
-			}
607
-		}
604
+            if ( '' !== $wpdb->last_error ) {
605
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
606
+            }
607
+        }
608 608
 
609
-		if ( ! $this->has_notices() ) {
610
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
611
-		}
609
+        if ( ! $this->has_notices() ) {
610
+            $this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
611
+        }
612 612
 
613
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
614
-		exit;
615
-	}
613
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
614
+        exit;
615
+    }
616 616
 
617
-	/**
617
+    /**
618 618
      * Migrates old invoices to the new database tables.
619
-	 *
619
+     *
620 620
      */
621 621
     public function admin_migrate_old_invoices() {
622 622
 
623
-		// Migrate the invoices.
624
-		$installer = new GetPaid_Installer();
625
-		$installer->migrate_old_invoices();
623
+        // Migrate the invoices.
624
+        $installer = new GetPaid_Installer();
625
+        $installer->migrate_old_invoices();
626 626
 
627
-		// Show an admin message.
628
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
627
+        // Show an admin message.
628
+        $this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
629 629
 
630
-		// Redirect the admin.
631
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
632
-		exit;
630
+        // Redirect the admin.
631
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
632
+        exit;
633 633
 
634
-	}
634
+    }
635 635
 
636
-	/**
636
+    /**
637 637
      * Download customers.
638
-	 *
638
+     *
639 639
      */
640 640
     public function admin_download_customers() {
641
-		global $wpdb;
642
-
643
-		$output = fopen( 'php://output', 'w' );
644
-
645
-		if ( false === $output ) {
646
-			wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
647
-		}
641
+        global $wpdb;
648 642
 
649
-		header( 'Content-Type:text/csv' );
650
-		header( 'Content-Disposition:attachment;filename=customers.csv' );
643
+        $output = fopen( 'php://output', 'w' );
651 644
 
652
-		$post_types = '';
645
+        if ( false === $output ) {
646
+            wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
647
+        }
653 648
 
654
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
655
-			$post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
656
-		}
649
+        header( 'Content-Type:text/csv' );
650
+        header( 'Content-Disposition:attachment;filename=customers.csv' );
657 651
 
658
-		$post_types = rtrim( $post_types, ' OR' );
652
+        $post_types = '';
659 653
 
660
-		$customers = $wpdb->get_col( "SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types" );
654
+        foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
655
+            $post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
656
+        }
661 657
 
662
-		$columns = array(
663
-			'name'       => __( 'Name', 'invoicing' ),
664
-			'email'      => __( 'Email', 'invoicing' ),
665
-			'country'    => __( 'Country', 'invoicing' ),
666
-			'state'      => __( 'State', 'invoicing' ),
667
-			'city'       => __( 'City', 'invoicing' ),
668
-			'zip'        => __( 'ZIP', 'invoicing' ),
669
-			'address'    => __( 'Address', 'invoicing' ),
670
-			'phone'      => __( 'Phone', 'invoicing' ),
671
-			'company'    => __( 'Company', 'invoicing' ),
672
-			'company_id' => __( 'Company ID', 'invoicing' ),
673
-			'invoices'   => __( 'Invoices', 'invoicing' ),
674
-			'total_raw'  => __( 'Total Spend', 'invoicing' ),
675
-			'signup'     => __( 'Date created', 'invoicing' ),
676
-		);
658
+        $post_types = rtrim( $post_types, ' OR' );
659
+
660
+        $customers = $wpdb->get_col( "SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types" );
661
+
662
+        $columns = array(
663
+            'name'       => __( 'Name', 'invoicing' ),
664
+            'email'      => __( 'Email', 'invoicing' ),
665
+            'country'    => __( 'Country', 'invoicing' ),
666
+            'state'      => __( 'State', 'invoicing' ),
667
+            'city'       => __( 'City', 'invoicing' ),
668
+            'zip'        => __( 'ZIP', 'invoicing' ),
669
+            'address'    => __( 'Address', 'invoicing' ),
670
+            'phone'      => __( 'Phone', 'invoicing' ),
671
+            'company'    => __( 'Company', 'invoicing' ),
672
+            'company_id' => __( 'Company ID', 'invoicing' ),
673
+            'invoices'   => __( 'Invoices', 'invoicing' ),
674
+            'total_raw'  => __( 'Total Spend', 'invoicing' ),
675
+            'signup'     => __( 'Date created', 'invoicing' ),
676
+        );
677 677
 
678
-		// Output the csv column headers.
679
-		fputcsv( $output, array_values( $columns ) );
678
+        // Output the csv column headers.
679
+        fputcsv( $output, array_values( $columns ) );
680 680
 
681
-		// Loop through
682
-		$table = new WPInv_Customers_Table();
683
-		foreach ( $customers as $customer_id ) {
681
+        // Loop through
682
+        $table = new WPInv_Customers_Table();
683
+        foreach ( $customers as $customer_id ) {
684 684
 
685
-			$user = get_user_by( 'id', $customer_id );
686
-			$row  = array();
687
-			if ( empty( $user ) ) {
688
-				continue;
689
-			}
685
+            $user = get_user_by( 'id', $customer_id );
686
+            $row  = array();
687
+            if ( empty( $user ) ) {
688
+                continue;
689
+            }
690 690
 
691
-			foreach ( array_keys( $columns ) as $column ) {
691
+            foreach ( array_keys( $columns ) as $column ) {
692 692
 
693
-				$method = 'column_' . $column;
693
+                $method = 'column_' . $column;
694 694
 
695
-				if ( 'name' == $column ) {
696
-					$value = esc_html( $user->display_name );
697
-				} elseif ( 'email' == $column ) {
698
-					$value = sanitize_email( $user->user_email );
699
-				} elseif ( is_callable( array( $table, $method ) ) ) {
700
-					$value = wp_strip_all_tags( $table->$method( $user ) );
701
-				}
695
+                if ( 'name' == $column ) {
696
+                    $value = esc_html( $user->display_name );
697
+                } elseif ( 'email' == $column ) {
698
+                    $value = sanitize_email( $user->user_email );
699
+                } elseif ( is_callable( array( $table, $method ) ) ) {
700
+                    $value = wp_strip_all_tags( $table->$method( $user ) );
701
+                }
702 702
 
703
-				if ( empty( $value ) ) {
704
-					$value = esc_html( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
705
-				}
703
+                if ( empty( $value ) ) {
704
+                    $value = esc_html( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
705
+                }
706 706
 
707
-				$row[] = $value;
707
+                $row[] = $value;
708 708
 
709
-			}
709
+            }
710 710
 
711
-			fputcsv( $output, $row );
712
-		}
711
+            fputcsv( $output, $row );
712
+        }
713 713
 
714
-		fclose( $output );
715
-		exit;
714
+        fclose( $output );
715
+        exit;
716 716
 
717
-	}
717
+    }
718 718
 
719
-	/**
719
+    /**
720 720
      * Installs a plugin.
721
-	 *
722
-	 * @param array $data
721
+     *
722
+     * @param array $data
723 723
      */
724 724
     public function admin_install_plugin( $data ) {
725 725
 
726
-		if ( ! empty( $data['plugins'] ) ) {
727
-			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
728
-			wp_cache_flush();
726
+        if ( ! empty( $data['plugins'] ) ) {
727
+            include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
728
+            wp_cache_flush();
729 729
 
730
-			foreach ( $data['plugins'] as $slug => $file ) {
731
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
732
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
733
-				$installed  = $upgrader->install( $plugin_zip );
730
+            foreach ( $data['plugins'] as $slug => $file ) {
731
+                $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
732
+                $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
733
+                $installed  = $upgrader->install( $plugin_zip );
734 734
 
735
-				if ( ! is_wp_error( $installed ) && $installed ) {
736
-					activate_plugin( $file, '', false, true );
737
-				} else {
738
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
739
-				}
735
+                if ( ! is_wp_error( $installed ) && $installed ) {
736
+                    activate_plugin( $file, '', false, true );
737
+                } else {
738
+                    wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
739
+                }
740 740
 }
741 741
 }
742 742
 
743
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
744
-		wp_safe_redirect( $redirect );
745
-		exit;
743
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
744
+        wp_safe_redirect( $redirect );
745
+        exit;
746 746
 
747
-	}
747
+    }
748 748
 
749
-	/**
749
+    /**
750 750
      * Connects a gateway.
751
-	 *
752
-	 * @param array $data
751
+     *
752
+     * @param array $data
753 753
      */
754 754
     public function admin_connect_gateway( $data ) {
755 755
 
756
-		if ( ! empty( $data['plugin'] ) ) {
756
+        if ( ! empty( $data['plugin'] ) ) {
757 757
 
758
-			$gateway     = sanitize_key( $data['plugin'] );
759
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
758
+            $gateway     = sanitize_key( $data['plugin'] );
759
+            $connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
760 760
 
761
-			if ( ! empty( $connect_url ) ) {
762
-				wp_redirect( $connect_url );
763
-				exit;
764
-			}
761
+            if ( ! empty( $connect_url ) ) {
762
+                wp_redirect( $connect_url );
763
+                exit;
764
+            }
765 765
 
766
-			if ( 'stripe' == $data['plugin'] ) {
767
-				require_once ABSPATH . 'wp-admin/includes/plugin.php';
768
-				include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
769
-				wp_cache_flush();
766
+            if ( 'stripe' == $data['plugin'] ) {
767
+                require_once ABSPATH . 'wp-admin/includes/plugin.php';
768
+                include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
769
+                wp_cache_flush();
770 770
 
771
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
772
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
773
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
774
-					$upgrader->install( $plugin_zip );
775
-				}
771
+                if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
772
+                    $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
773
+                    $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
774
+                    $upgrader->install( $plugin_zip );
775
+                }
776 776
 
777
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
778
-			}
777
+                activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
778
+            }
779 779
 
780
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
781
-			if ( ! empty( $connect_url ) ) {
782
-				wp_redirect( $connect_url );
783
-				exit;
784
-			}
780
+            $connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
781
+            if ( ! empty( $connect_url ) ) {
782
+                wp_redirect( $connect_url );
783
+                exit;
784
+            }
785 785
 }
786 786
 
787
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
788
-		wp_safe_redirect( $redirect );
789
-		exit;
787
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
788
+        wp_safe_redirect( $redirect );
789
+        exit;
790 790
 
791
-	}
791
+    }
792 792
 
793
-	/**
793
+    /**
794 794
      * Recalculates discounts.
795
-	 *
795
+     *
796 796
      */
797 797
     public function admin_recalculate_discounts() {
798
-		global $wpdb;
798
+        global $wpdb;
799 799
 
800
-		// Fetch all invoices that have discount codes.
801
-		$table    = $wpdb->prefix . 'getpaid_invoices';
802
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
800
+        // Fetch all invoices that have discount codes.
801
+        $table    = $wpdb->prefix . 'getpaid_invoices';
802
+        $invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
803 803
 
804
-		foreach ( $invoices as $invoice ) {
804
+        foreach ( $invoices as $invoice ) {
805 805
 
806
-			$invoice = new WPInv_Invoice( $invoice );
806
+            $invoice = new WPInv_Invoice( $invoice );
807 807
 
808
-			if ( ! $invoice->exists() ) {
809
-				continue;
810
-			}
808
+            if ( ! $invoice->exists() ) {
809
+                continue;
810
+            }
811 811
 
812
-			// Abort if the discount does not exist or does not apply here.
813
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
814
-			if ( ! $discount->exists() ) {
815
-				continue;
816
-			}
812
+            // Abort if the discount does not exist or does not apply here.
813
+            $discount = new WPInv_Discount( $invoice->get_discount_code() );
814
+            if ( ! $discount->exists() ) {
815
+                continue;
816
+            }
817 817
 
818
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
819
-			$invoice->recalculate_total();
818
+            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
819
+            $invoice->recalculate_total();
820 820
 
821
-			if ( $invoice->get_total_discount() > 0 ) {
822
-				$invoice->save();
823
-			}
821
+            if ( $invoice->get_total_discount() > 0 ) {
822
+                $invoice->save();
823
+            }
824 824
 }
825 825
 
826
-		// Show an admin message.
827
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
826
+        // Show an admin message.
827
+        $this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
828 828
 
829
-		// Redirect the admin.
830
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
831
-		exit;
829
+        // Redirect the admin.
830
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
831
+        exit;
832 832
 
833
-	}
833
+    }
834 834
 
835 835
     /**
836
-	 * Returns an array of admin notices.
837
-	 *
838
-	 * @since       1.0.19
836
+     * Returns an array of admin notices.
837
+     *
838
+     * @since       1.0.19
839 839
      * @return array
840
-	 */
841
-	public function get_notices() {
842
-		$notices = get_option( 'wpinv_admin_notices' );
840
+     */
841
+    public function get_notices() {
842
+        $notices = get_option( 'wpinv_admin_notices' );
843 843
         return is_array( $notices ) ? $notices : array();
844
-	}
844
+    }
845 845
 
846
-	/**
847
-	 * Checks if we have any admin notices.
848
-	 *
849
-	 * @since       2.0.4
846
+    /**
847
+     * Checks if we have any admin notices.
848
+     *
849
+     * @since       2.0.4
850 850
      * @return array
851
-	 */
852
-	public function has_notices() {
853
-		return count( $this->get_notices() ) > 0;
854
-	}
855
-
856
-	/**
857
-	 * Clears all admin notices
858
-	 *
859
-	 * @access      public
860
-	 * @since       1.0.19
861
-	 */
862
-	public function clear_notices() {
863
-		delete_option( 'wpinv_admin_notices' );
864
-	}
865
-
866
-	/**
867
-	 * Saves a new admin notice
868
-	 *
869
-	 * @access      public
870
-	 * @since       1.0.19
871
-	 */
872
-	public function save_notice( $type, $message ) {
873
-		$notices = $this->get_notices();
874
-
875
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
876
-			$notices[ $type ] = array();
877
-		}
878
-
879
-		$notices[ $type ][] = $message;
880
-
881
-		update_option( 'wpinv_admin_notices', $notices );
882
-	}
883
-
884
-	/**
885
-	 * Displays a success notice
886
-	 *
887
-	 * @param       string $msg The message to qeue.
888
-	 * @access      public
889
-	 * @since       1.0.19
890
-	 */
891
-	public function show_success( $msg ) {
892
-		$this->save_notice( 'success', $msg );
893
-	}
894
-
895
-	/**
896
-	 * Displays a error notice
897
-	 *
898
-	 * @access      public
899
-	 * @param       string $msg The message to qeue.
900
-	 * @since       1.0.19
901
-	 */
902
-	public function show_error( $msg ) {
903
-		$this->save_notice( 'error', $msg );
904
-	}
905
-
906
-	/**
907
-	 * Displays a warning notice
908
-	 *
909
-	 * @access      public
910
-	 * @param       string $msg The message to qeue.
911
-	 * @since       1.0.19
912
-	 */
913
-	public function show_warning( $msg ) {
914
-		$this->save_notice( 'warning', $msg );
915
-	}
916
-
917
-	/**
918
-	 * Displays a info notice
919
-	 *
920
-	 * @access      public
921
-	 * @param       string $msg The message to qeue.
922
-	 * @since       1.0.19
923
-	 */
924
-	public function show_info( $msg ) {
925
-		$this->save_notice( 'info', $msg );
926
-	}
927
-
928
-	/**
929
-	 * Show notices
930
-	 *
931
-	 * @access      public
932
-	 * @since       1.0.19
933
-	 */
934
-	public function show_notices() {
851
+     */
852
+    public function has_notices() {
853
+        return count( $this->get_notices() ) > 0;
854
+    }
855
+
856
+    /**
857
+     * Clears all admin notices
858
+     *
859
+     * @access      public
860
+     * @since       1.0.19
861
+     */
862
+    public function clear_notices() {
863
+        delete_option( 'wpinv_admin_notices' );
864
+    }
865
+
866
+    /**
867
+     * Saves a new admin notice
868
+     *
869
+     * @access      public
870
+     * @since       1.0.19
871
+     */
872
+    public function save_notice( $type, $message ) {
873
+        $notices = $this->get_notices();
874
+
875
+        if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
876
+            $notices[ $type ] = array();
877
+        }
878
+
879
+        $notices[ $type ][] = $message;
880
+
881
+        update_option( 'wpinv_admin_notices', $notices );
882
+    }
883
+
884
+    /**
885
+     * Displays a success notice
886
+     *
887
+     * @param       string $msg The message to qeue.
888
+     * @access      public
889
+     * @since       1.0.19
890
+     */
891
+    public function show_success( $msg ) {
892
+        $this->save_notice( 'success', $msg );
893
+    }
894
+
895
+    /**
896
+     * Displays a error notice
897
+     *
898
+     * @access      public
899
+     * @param       string $msg The message to qeue.
900
+     * @since       1.0.19
901
+     */
902
+    public function show_error( $msg ) {
903
+        $this->save_notice( 'error', $msg );
904
+    }
905
+
906
+    /**
907
+     * Displays a warning notice
908
+     *
909
+     * @access      public
910
+     * @param       string $msg The message to qeue.
911
+     * @since       1.0.19
912
+     */
913
+    public function show_warning( $msg ) {
914
+        $this->save_notice( 'warning', $msg );
915
+    }
916
+
917
+    /**
918
+     * Displays a info notice
919
+     *
920
+     * @access      public
921
+     * @param       string $msg The message to qeue.
922
+     * @since       1.0.19
923
+     */
924
+    public function show_info( $msg ) {
925
+        $this->save_notice( 'info', $msg );
926
+    }
927
+
928
+    /**
929
+     * Show notices
930
+     *
931
+     * @access      public
932
+     * @since       1.0.19
933
+     */
934
+    public function show_notices() {
935 935
 
936 936
         $notices = $this->get_notices();
937 937
         $this->clear_notices();
938 938
 
939
-		foreach ( $notices as $type => $messages ) {
939
+        foreach ( $notices as $type => $messages ) {
940 940
 
941
-			if ( ! is_array( $messages ) ) {
942
-				continue;
943
-			}
941
+            if ( ! is_array( $messages ) ) {
942
+                continue;
943
+            }
944 944
 
945 945
             $type  = esc_attr( $type );
946
-			foreach ( $messages as $message ) {
947
-				echo wp_kses_post( "<div class='notice notice-$type is-dismissible'><p>$message</p></div>" );
946
+            foreach ( $messages as $message ) {
947
+                echo wp_kses_post( "<div class='notice notice-$type is-dismissible'><p>$message</p></div>" );
948 948
             }
949 949
 }
950 950
 
951
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
952
-
953
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
954
-				$url     = wp_nonce_url(
955
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
956
-					'getpaid-nonce',
957
-					'getpaid-nonce'
958
-				);
959
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
960
-				$message2 = __( 'Generate Pages', 'invoicing' );
961
-				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>" );
962
-				break;
963
-			}
951
+        foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
952
+
953
+            if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
954
+                $url     = wp_nonce_url(
955
+                    add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
956
+                    'getpaid-nonce',
957
+                    'getpaid-nonce'
958
+                );
959
+                $message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
960
+                $message2 = __( 'Generate Pages', 'invoicing' );
961
+                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>" );
962
+                break;
963
+            }
964 964
 }
965 965
 
966
-	}
966
+    }
967 967
 
968 968
 }
Please login to merge, or discard this patch.
Spacing   +294 added lines, -294 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.
@@ -39,11 +39,11 @@  discard block
 block discarded – undo
39 39
 	 */
40 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,35 +54,35 @@  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' ), 9 );
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_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
-        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 );
57
+        add_action('admin_enqueue_scripts', array($this, 'enqeue_scripts'), 9);
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_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
+        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 80
 
81 81
 		// Setup/welcome
82
-		if ( ! empty( $_GET['page'] ) ) {
83
-			switch ( sanitize_text_field( $_GET['page'] ) ) {
82
+		if (!empty($_GET['page'])) {
83
+			switch (sanitize_text_field($_GET['page'])) {
84 84
 				case 'gp-setup':
85
-					include_once dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php';
85
+					include_once dirname(__FILE__) . '/class-getpaid-admin-setup-wizard.php';
86 86
 					break;
87 87
 			}
88 88
 		}
@@ -96,37 +96,37 @@  discard block
 block discarded – undo
96 96
 	public function enqeue_scripts() {
97 97
         global $current_screen, $pagenow;
98 98
 
99
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
99
+		$page    = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
100 100
 		$editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
101 101
 
102
-        if ( ! empty( $current_screen->post_type ) ) {
102
+        if (!empty($current_screen->post_type)) {
103 103
 			$page = $current_screen->post_type;
104 104
         }
105 105
 
106 106
         // General styles.
107
-        if ( false !== stripos( $page, 'wpi' ) || false !== stripos( $page, 'getpaid' ) || 'gp-setup' == $page || false !== stripos( $page, 'geodir-tickets' ) ) {
107
+        if (false !== stripos($page, 'wpi') || false !== stripos($page, 'getpaid') || 'gp-setup' == $page || false !== stripos($page, 'geodir-tickets')) {
108 108
 
109 109
             // Styles.
110
-            $version = filemtime( WPINV_PLUGIN_DIR . 'assets/css/admin.css' );
111
-            wp_enqueue_style( 'wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array( 'wp-color-picker' ), $version );
112
-            wp_enqueue_style( 'select2', WPINV_PLUGIN_URL . 'assets/css/select2/select2.min.css', array(), '4.0.13', 'all' );
110
+            $version = filemtime(WPINV_PLUGIN_DIR . 'assets/css/admin.css');
111
+            wp_enqueue_style('wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array('wp-color-picker'), $version);
112
+            wp_enqueue_style('select2', WPINV_PLUGIN_URL . 'assets/css/select2/select2.min.css', array(), '4.0.13', 'all');
113 113
 
114 114
             // Scripts.
115
-            wp_enqueue_script( 'select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full.min.js', array( 'jquery' ), WPINV_VERSION );
115
+            wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full.min.js', array('jquery'), WPINV_VERSION);
116 116
 
117
-            $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin.js' );
118
-            wp_enqueue_script( 'wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array( 'jquery', 'wp-color-picker', 'jquery-ui-tooltip' ), $version );
119
-            wp_localize_script( 'wpinv-admin-script', 'WPInv_Admin', apply_filters( 'wpinv_admin_js_localize', $this->get_admin_i18() ) );
117
+            $version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/admin.js');
118
+            wp_enqueue_script('wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array('jquery', 'wp-color-picker', 'jquery-ui-tooltip'), $version);
119
+            wp_localize_script('wpinv-admin-script', 'WPInv_Admin', apply_filters('wpinv_admin_js_localize', $this->get_admin_i18()));
120 120
 
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' );
128
+		if ($page == 'wpinv-subscriptions') {
129
+			wp_enqueue_script('postbox');
130 130
 		}
131 131
 
132 132
     }
@@ -139,31 +139,31 @@  discard block
 block discarded – undo
139 139
         global $post;
140 140
 
141 141
 		$date_range = array(
142
-			'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days',
142
+			'period' => isset($_GET['date_range']) ? sanitize_text_field($_GET['date_range']) : '7_days',
143 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 );
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 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 );
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 153
 			}
154 154
 }
155 155
 
156 156
         $i18n = array(
157
-            'ajax_url'                  => admin_url( 'admin-ajax.php' ),
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() ),
157
+            'ajax_url'                  => admin_url('admin-ajax.php'),
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 162
 			'date_range'                => $date_range,
163
-            'add_invoice_note_nonce'    => wp_create_nonce( 'add-invoice-note' ),
164
-            'delete_invoice_note_nonce' => wp_create_nonce( 'delete-invoice-note' ),
165
-            'invoice_item_nonce'        => wp_create_nonce( 'invoice-item' ),
166
-            'billing_details_nonce'     => wp_create_nonce( 'get-billing-details' ),
163
+            'add_invoice_note_nonce'    => wp_create_nonce('add-invoice-note'),
164
+            'delete_invoice_note_nonce' => wp_create_nonce('delete-invoice-note'),
165
+            'invoice_item_nonce'        => wp_create_nonce('invoice-item'),
166
+            'billing_details_nonce'     => wp_create_nonce('get-billing-details'),
167 167
             'tax'                       => wpinv_tax_amount(),
168 168
             'discount'                  => 0,
169 169
 			'currency_symbol'           => wpinv_currency_symbol(),
@@ -172,39 +172,39 @@  discard block
 block discarded – undo
172 172
             'thousand_sep'              => wpinv_thousands_separator(),
173 173
             'decimal_sep'               => wpinv_decimal_separator(),
174 174
             'decimals'                  => wpinv_decimals(),
175
-            'save_invoice'              => __( 'Save Invoice', 'invoicing' ),
176
-            'status_publish'            => wpinv_status_nicename( 'publish' ),
177
-            'status_pending'            => wpinv_status_nicename( 'wpi-pending' ),
178
-            'delete_tax_rate'           => __( 'Are you sure you wish to delete this tax rate?', 'invoicing' ),
179
-            'status_pending'            => wpinv_status_nicename( 'wpi-pending' ),
180
-            'FillBillingDetails'        => __( 'Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing' ),
181
-            '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' ),
182
-            'AreYouSure'                => __( 'Are you sure?', 'invoicing' ),
183
-            'errDeleteItem'             => __( 'This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing' ),
184
-            'delete_subscription'       => __( 'Are you sure you want to delete this subscription?', 'invoicing' ),
185
-            'action_edit'               => __( 'Edit', 'invoicing' ),
186
-            'action_cancel'             => __( 'Cancel', 'invoicing' ),
187
-            'item_description'          => __( 'Item Description', 'invoicing' ),
188
-            'invoice_description'       => __( 'Invoice Description', 'invoicing' ),
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() ) ),
175
+            'save_invoice'              => __('Save Invoice', 'invoicing'),
176
+            'status_publish'            => wpinv_status_nicename('publish'),
177
+            'status_pending'            => wpinv_status_nicename('wpi-pending'),
178
+            'delete_tax_rate'           => __('Are you sure you wish to delete this tax rate?', 'invoicing'),
179
+            'status_pending'            => wpinv_status_nicename('wpi-pending'),
180
+            'FillBillingDetails'        => __('Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing'),
181
+            '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'),
182
+            'AreYouSure'                => __('Are you sure?', 'invoicing'),
183
+            'errDeleteItem'             => __('This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing'),
184
+            'delete_subscription'       => __('Are you sure you want to delete this subscription?', 'invoicing'),
185
+            'action_edit'               => __('Edit', 'invoicing'),
186
+            'action_cancel'             => __('Cancel', 'invoicing'),
187
+            'item_description'          => __('Item Description', 'invoicing'),
188
+            'invoice_description'       => __('Invoice Description', 'invoicing'),
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())),
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 );
199
+			$invoice              = new WPInv_Invoice($post);
200 200
 			$i18n['save_invoice'] = sprintf(
201
-				__( 'Save %s', 'invoicing' ),
202
-				ucfirst( $invoice->get_invoice_quote_type() )
201
+				__('Save %s', 'invoicing'),
202
+				ucfirst($invoice->get_invoice_quote_type())
203 203
 			);
204 204
 
205 205
 			$i18n['invoice_description'] = sprintf(
206
-				__( '%s Description', 'invoicing' ),
207
-				ucfirst( $invoice->get_invoice_quote_type() )
206
+				__('%s Description', 'invoicing'),
207
+				ucfirst($invoice->get_invoice_quote_type())
208 208
 			);
209 209
 
210 210
 		}
@@ -218,24 +218,24 @@  discard block
 block discarded – undo
218 218
 	 * @param  string $footer_text
219 219
 	 * @return string
220 220
 	 */
221
-	public function admin_footer_text( $footer_text ) {
221
+	public function admin_footer_text($footer_text) {
222 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
-        if ( ! empty( $current_screen->post_type ) ) {
226
+        if (!empty($current_screen->post_type)) {
227 227
 			$page = $current_screen->post_type;
228 228
         }
229 229
 
230 230
         // General styles.
231
-        if ( apply_filters( 'getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing() ) && false !== stripos( $page, 'wpi' ) ) {
231
+        if (apply_filters('getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing()) && false !== stripos($page, 'wpi')) {
232 232
 
233 233
 			// Change the footer text
234
-			if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
234
+			if (!get_user_meta(get_current_user_id(), 'getpaid_admin_footer_text_rated', true)) {
235 235
 
236
-				$rating_url  = esc_url(
236
+				$rating_url = esc_url(
237 237
 					wp_nonce_url(
238
-						admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
238
+						admin_url('admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin'),
239 239
 						'getpaid-nonce',
240 240
 						'getpaid-nonce'
241 241
                     )
@@ -243,7 +243,7 @@  discard block
 block discarded – undo
243 243
 
244 244
 				$footer_text = sprintf(
245 245
 					/* translators: %s: five stars */
246
-					__( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
246
+					__('If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing'),
247 247
 					"<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
248 248
 				);
249 249
 
@@ -251,7 +251,7 @@  discard block
 block discarded – undo
251 251
 
252 252
 				$footer_text = sprintf(
253 253
 					/* translators: %s: GetPaid */
254
-					__( 'Thank you for using %s!', 'invoicing' ),
254
+					__('Thank you for using %s!', 'invoicing'),
255 255
 					"<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
256 256
 				);
257 257
 
@@ -267,8 +267,8 @@  discard block
 block discarded – undo
267 267
 	 * @since  2.0.0
268 268
 	 */
269 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' );
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 272
 		exit;
273 273
 	}
274 274
 
@@ -279,30 +279,30 @@  discard block
 block discarded – undo
279 279
 	protected function load_payment_form_scripts() {
280 280
         global $post;
281 281
 
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 );
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);
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 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 ),
293
+				'elements'      => wpinv_get_data('payment-form-elements'),
294
+				'form_elements' => getpaid_get_payment_form_elements($post->ID),
295 295
 				'currency'      => wpinv_currency_symbol(),
296 296
 				'position'      => wpinv_currency_position(),
297 297
 				'decimals'      => (int) wpinv_decimals(),
298 298
 				'thousands_sep' => wpinv_thousands_separator(),
299 299
 				'decimals_sep'  => wpinv_decimal_separator(),
300
-				'form_items'    => gepaid_get_form_items( $post->ID ),
300
+				'form_items'    => gepaid_get_form_items($post->ID),
301 301
 				'is_default'    => $post->ID == wpinv_get_default_payment_form(),
302 302
             )
303 303
         );
304 304
 
305
-        wp_enqueue_script( 'wpinv-admin-payment-form-script' );
305
+        wp_enqueue_script('wpinv-admin-payment-form-script');
306 306
 
307 307
     }
308 308
 
@@ -313,24 +313,24 @@  discard block
 block discarded – undo
313 313
      * @return string
314 314
 	 *
315 315
 	 */
316
-    public function admin_body_class( $classes ) {
316
+    public function admin_body_class($classes) {
317 317
 		global $pagenow, $post, $current_screen;
318 318
 
319
-        $page = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
319
+        $page = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
320 320
 
321
-        if ( ! empty( $current_screen->post_type ) ) {
321
+        if (!empty($current_screen->post_type)) {
322 322
 			$page = $current_screen->post_type;
323 323
         }
324 324
 
325
-        if ( false !== stripos( $page, 'wpi' ) ) {
326
-            $classes .= ' wpi-' . sanitize_key( $page );
325
+        if (false !== stripos($page, 'wpi')) {
326
+            $classes .= ' wpi-' . sanitize_key($page);
327 327
         }
328 328
 
329
-        if ( in_array( $page, wpinv_parse_list( 'wpi_invoice wpi_payment_form wpi_quote' ) ) ) {
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
 
@@ -349,21 +349,21 @@  discard block
 block discarded – undo
349 349
 				'version'           => WPINV_VERSION,
350 350
 				'support_url'       => 'https://wpgetpaid.com/support/',
351 351
 				'documentation_url' => 'https://docs.wpgetpaid.com/',
352
-				'activated'         => (int) get_option( 'gepaid_installed_on' ),
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
-            array( 'wpi-addons' )
366
+            array('wpi-addons')
367 367
         );
368 368
 
369 369
     }
@@ -375,20 +375,20 @@  discard block
 block discarded – undo
375 375
 	 */
376 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' ) ) {
380
+		if (!empty($redirected) || wp_doing_ajax() || !current_user_can('manage_options')) {
381 381
 			return;
382 382
 		}
383 383
 
384 384
 		// Bail if activating from network, or bulk
385
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
385
+		if (is_network_admin() || isset($_GET['activate-multi'])) {
386 386
 			return;
387 387
 		}
388 388
 
389
-	    update_option( 'wpinv_redirected_to_settings', 1 );
389
+	    update_option('wpinv_redirected_to_settings', 1);
390 390
 
391
-        wp_safe_redirect( admin_url( 'index.php?page=gp-setup' ) );
391
+        wp_safe_redirect(admin_url('index.php?page=gp-setup'));
392 392
         exit;
393 393
 
394 394
 	}
@@ -398,9 +398,9 @@  discard block
 block discarded – undo
398 398
      */
399 399
     public function maybe_do_admin_action() {
400 400
 
401
-        if ( wpinv_current_user_can_manage_invoicing() && isset( $_REQUEST['getpaid-admin-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
402
-            $key = sanitize_key( $_REQUEST['getpaid-admin-action'] );
403
-            do_action( "getpaid_authenticated_admin_action_$key", $_REQUEST );
401
+        if (wpinv_current_user_can_manage_invoicing() && isset($_REQUEST['getpaid-admin-action']) && isset($_REQUEST['getpaid-nonce']) && wp_verify_nonce($_REQUEST['getpaid-nonce'], 'getpaid-nonce')) {
402
+            $key = sanitize_key($_REQUEST['getpaid-admin-action']);
403
+            do_action("getpaid_authenticated_admin_action_$key", $_REQUEST);
404 404
         }
405 405
 
406 406
     }
@@ -410,24 +410,24 @@  discard block
 block discarded – undo
410 410
 	 *
411 411
 	 * @param array $args
412 412
      */
413
-    public function duplicate_invoice( $args ) {
413
+    public function duplicate_invoice($args) {
414 414
 
415
-		if ( empty( $args['invoice_id'] ) ) {
415
+		if (empty($args['invoice_id'])) {
416 416
 			return;
417 417
 		}
418 418
 
419
-		$invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
419
+		$invoice = new WPInv_Invoice((int) $args['invoice_id']);
420 420
 
421
-		if ( ! $invoice->exists() ) {
421
+		if (!$invoice->exists()) {
422 422
 			return;
423 423
 		}
424 424
 
425
-		$new_invoice = getpaid_duplicate_invoice( $invoice );
425
+		$new_invoice = getpaid_duplicate_invoice($invoice);
426 426
 		$new_invoice->save();
427 427
 
428
-		if ( $new_invoice->exists() ) {
428
+		if ($new_invoice->exists()) {
429 429
 
430
-			getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'invoicing' ) );
430
+			getpaid_admin()->show_success(__('Invoice duplicated successfully.', 'invoicing'));
431 431
 
432 432
 			wp_safe_redirect(
433 433
 				add_query_arg(
@@ -435,14 +435,14 @@  discard block
 block discarded – undo
435 435
 						'action' => 'edit',
436 436
 						'post'   => $new_invoice->get_id(),
437 437
 					),
438
-					admin_url( 'post.php' )
438
+					admin_url('post.php')
439 439
 				)
440 440
 			);
441 441
 			exit;
442 442
 
443 443
 		}
444 444
 
445
-		getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'invoicing' ) );
445
+		getpaid_admin()->show_error(__('There was an error duplicating this invoice. Please try again.', 'invoicing'));
446 446
 
447 447
 	}
448 448
 
@@ -451,34 +451,34 @@  discard block
 block discarded – undo
451 451
 	 *
452 452
 	 * @param array $args
453 453
      */
454
-    public function duplicate_payment_form( $args ) {
454
+    public function duplicate_payment_form($args) {
455 455
 
456
-		if ( empty( $args['form_id'] ) ) {
456
+		if (empty($args['form_id'])) {
457 457
 			return;
458 458
 		}
459 459
 
460
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
460
+		$form = new GetPaid_Payment_Form((int) $args['form_id']);
461 461
 
462
-		if ( ! $form->exists() ) {
462
+		if (!$form->exists()) {
463 463
 			return;
464 464
 		}
465 465
 
466 466
 		$new_form = new GetPaid_Payment_Form();
467
-		$new_form->set_author( $form->get_author( 'edit' ) );
468
-		$new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
469
-		$new_form->set_elements( $form->get_elements( 'edit' ) );
470
-		$new_form->set_items( $form->get_items( 'edit' ) );
467
+		$new_form->set_author($form->get_author('edit'));
468
+		$new_form->set_name($form->get_name('edit') . __('(copy)', 'invoicing'));
469
+		$new_form->set_elements($form->get_elements('edit'));
470
+		$new_form->set_items($form->get_items('edit'));
471 471
 		$new_form->save();
472 472
 
473
-		if ( $new_form->exists() ) {
474
-			$this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
475
-			$url = get_edit_post_link( $new_form->get_id(), 'edit' );
473
+		if ($new_form->exists()) {
474
+			$this->show_success(__('Form duplicated successfully', 'invoicing'));
475
+			$url = get_edit_post_link($new_form->get_id(), 'edit');
476 476
 		} else {
477
-			$this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
478
-			$url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
477
+			$this->show_error(__('Unable to duplicate form', 'invoicing'));
478
+			$url = remove_query_arg(array('getpaid-admin-action', 'form_id', 'getpaid-nonce'));
479 479
 		}
480 480
 
481
-		wp_redirect( $url );
481
+		wp_redirect($url);
482 482
 		exit;
483 483
 	}
484 484
 
@@ -487,27 +487,27 @@  discard block
 block discarded – undo
487 487
 	 *
488 488
 	 * @param array $args
489 489
      */
490
-    public function reset_form_stats( $args ) {
490
+    public function reset_form_stats($args) {
491 491
 
492
-		if ( empty( $args['form_id'] ) ) {
492
+		if (empty($args['form_id'])) {
493 493
 			return;
494 494
 		}
495 495
 
496
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
496
+		$form = new GetPaid_Payment_Form((int) $args['form_id']);
497 497
 
498
-		if ( ! $form->exists() ) {
498
+		if (!$form->exists()) {
499 499
 			return;
500 500
 		}
501 501
 
502
-		$form->set_earned( 0 );
503
-		$form->set_refunded( 0 );
504
-		$form->set_cancelled( 0 );
505
-		$form->set_failed( 0 );
502
+		$form->set_earned(0);
503
+		$form->set_refunded(0);
504
+		$form->set_cancelled(0);
505
+		$form->set_failed(0);
506 506
 		$form->save();
507 507
 
508
-		$this->show_success( __( 'Form stats reset successfully', 'invoicing' ) );
508
+		$this->show_success(__('Form stats reset successfully', 'invoicing'));
509 509
 
510
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) ) );
510
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'form_id', 'getpaid-nonce')));
511 511
 		exit;
512 512
 	}
513 513
 
@@ -516,9 +516,9 @@  discard block
 block discarded – undo
516 516
 	 *
517 517
 	 * @param array $args
518 518
      */
519
-    public function send_customer_invoice( $args ) {
520
-		getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
521
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
519
+    public function send_customer_invoice($args) {
520
+		getpaid()->get('invoice_emails')->user_invoice(new WPInv_Invoice($args['invoice_id']), true);
521
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
522 522
 		exit;
523 523
 	}
524 524
 
@@ -527,16 +527,16 @@  discard block
 block discarded – undo
527 527
 	 *
528 528
 	 * @param array $args
529 529
      */
530
-    public function send_customer_payment_reminder( $args ) {
531
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
530
+    public function send_customer_payment_reminder($args) {
531
+		$sent = getpaid()->get('invoice_emails')->force_send_overdue_notice(new WPInv_Invoice($args['invoice_id']));
532 532
 
533
-		if ( $sent ) {
534
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
533
+		if ($sent) {
534
+			$this->show_success(__('Payment reminder was successfully sent to the customer', 'invoicing'));
535 535
 		} else {
536
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
536
+			$this->show_error(__('Could not sent payment reminder to the customer', 'invoicing'));
537 537
 		}
538 538
 
539
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
539
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
540 540
 		exit;
541 541
 	}
542 542
 
@@ -546,8 +546,8 @@  discard block
 block discarded – undo
546 546
      */
547 547
     public function admin_reset_tax_rates() {
548 548
 
549
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
550
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
549
+		update_option('wpinv_tax_rates', wpinv_get_data('tax-rates'));
550
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
551 551
 		exit;
552 552
 
553 553
 	}
@@ -559,8 +559,8 @@  discard block
 block discarded – undo
559 559
     public function admin_create_missing_pages() {
560 560
 		$installer = new GetPaid_Installer();
561 561
 		$installer->create_pages();
562
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
563
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
562
+		$this->show_success(__('GetPaid pages updated.', 'invoicing'));
563
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
564 564
 		exit;
565 565
 	}
566 566
 
@@ -569,8 +569,8 @@  discard block
 block discarded – undo
569 569
 	 */
570 570
 	public function admin_refresh_permalinks() {
571 571
 		flush_rewrite_rules();
572
-		$this->show_success( __( 'Permalinks refreshed.', 'invoicing' ) );
573
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
572
+		$this->show_success(__('Permalinks refreshed.', 'invoicing'));
573
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
574 574
 		exit;
575 575
 	}
576 576
 
@@ -582,35 +582,35 @@  discard block
 block discarded – undo
582 582
 		global $wpdb;
583 583
 		$installer = new GetPaid_Installer();
584 584
 
585
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
585
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'") != $wpdb->prefix . 'wpinv_subscriptions') {
586 586
 			$installer->create_subscriptions_table();
587 587
 
588
-			if ( $wpdb->last_error !== '' ) {
589
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
588
+			if ($wpdb->last_error !== '') {
589
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
590 590
 			}
591 591
 		}
592 592
 
593
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
593
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'") != $wpdb->prefix . 'getpaid_invoices') {
594 594
 			$installer->create_invoices_table();
595 595
 
596
-			if ( '' !== $wpdb->last_error ) {
597
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
596
+			if ('' !== $wpdb->last_error) {
597
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
598 598
 			}
599 599
 		}
600 600
 
601
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
601
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'") != $wpdb->prefix . 'getpaid_invoice_items') {
602 602
 			$installer->create_invoice_items_table();
603 603
 
604
-			if ( '' !== $wpdb->last_error ) {
605
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
604
+			if ('' !== $wpdb->last_error) {
605
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
606 606
 			}
607 607
 		}
608 608
 
609
-		if ( ! $this->has_notices() ) {
610
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
609
+		if (!$this->has_notices()) {
610
+			$this->show_success(__('Your GetPaid tables have been updated.', 'invoicing'));
611 611
 		}
612 612
 
613
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
613
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
614 614
 		exit;
615 615
 	}
616 616
 
@@ -625,10 +625,10 @@  discard block
 block discarded – undo
625 625
 		$installer->migrate_old_invoices();
626 626
 
627 627
 		// Show an admin message.
628
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
628
+		$this->show_success(__('Your invoices have been migrated.', 'invoicing'));
629 629
 
630 630
 		// Redirect the admin.
631
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
631
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
632 632
 		exit;
633 633
 
634 634
 	}
@@ -640,78 +640,78 @@  discard block
 block discarded – undo
640 640
     public function admin_download_customers() {
641 641
 		global $wpdb;
642 642
 
643
-		$output = fopen( 'php://output', 'w' );
643
+		$output = fopen('php://output', 'w');
644 644
 
645
-		if ( false === $output ) {
646
-			wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
645
+		if (false === $output) {
646
+			wp_die(esc_html__('Unsupported server', 'invoicing'), 500);
647 647
 		}
648 648
 
649
-		header( 'Content-Type:text/csv' );
650
-		header( 'Content-Disposition:attachment;filename=customers.csv' );
649
+		header('Content-Type:text/csv');
650
+		header('Content-Disposition:attachment;filename=customers.csv');
651 651
 
652 652
 		$post_types = '';
653 653
 
654
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
655
-			$post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
654
+		foreach (array_keys(getpaid_get_invoice_post_types()) as $post_type) {
655
+			$post_types .= $wpdb->prepare('post_type=%s OR ', $post_type);
656 656
 		}
657 657
 
658
-		$post_types = rtrim( $post_types, ' OR' );
658
+		$post_types = rtrim($post_types, ' OR');
659 659
 
660
-		$customers = $wpdb->get_col( "SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types" );
660
+		$customers = $wpdb->get_col("SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types");
661 661
 
662 662
 		$columns = array(
663
-			'name'       => __( 'Name', 'invoicing' ),
664
-			'email'      => __( 'Email', 'invoicing' ),
665
-			'country'    => __( 'Country', 'invoicing' ),
666
-			'state'      => __( 'State', 'invoicing' ),
667
-			'city'       => __( 'City', 'invoicing' ),
668
-			'zip'        => __( 'ZIP', 'invoicing' ),
669
-			'address'    => __( 'Address', 'invoicing' ),
670
-			'phone'      => __( 'Phone', 'invoicing' ),
671
-			'company'    => __( 'Company', 'invoicing' ),
672
-			'company_id' => __( 'Company ID', 'invoicing' ),
673
-			'invoices'   => __( 'Invoices', 'invoicing' ),
674
-			'total_raw'  => __( 'Total Spend', 'invoicing' ),
675
-			'signup'     => __( 'Date created', 'invoicing' ),
663
+			'name'       => __('Name', 'invoicing'),
664
+			'email'      => __('Email', 'invoicing'),
665
+			'country'    => __('Country', 'invoicing'),
666
+			'state'      => __('State', 'invoicing'),
667
+			'city'       => __('City', 'invoicing'),
668
+			'zip'        => __('ZIP', 'invoicing'),
669
+			'address'    => __('Address', 'invoicing'),
670
+			'phone'      => __('Phone', 'invoicing'),
671
+			'company'    => __('Company', 'invoicing'),
672
+			'company_id' => __('Company ID', 'invoicing'),
673
+			'invoices'   => __('Invoices', 'invoicing'),
674
+			'total_raw'  => __('Total Spend', 'invoicing'),
675
+			'signup'     => __('Date created', 'invoicing'),
676 676
 		);
677 677
 
678 678
 		// Output the csv column headers.
679
-		fputcsv( $output, array_values( $columns ) );
679
+		fputcsv($output, array_values($columns));
680 680
 
681 681
 		// Loop through
682 682
 		$table = new WPInv_Customers_Table();
683
-		foreach ( $customers as $customer_id ) {
683
+		foreach ($customers as $customer_id) {
684 684
 
685
-			$user = get_user_by( 'id', $customer_id );
685
+			$user = get_user_by('id', $customer_id);
686 686
 			$row  = array();
687
-			if ( empty( $user ) ) {
687
+			if (empty($user)) {
688 688
 				continue;
689 689
 			}
690 690
 
691
-			foreach ( array_keys( $columns ) as $column ) {
691
+			foreach (array_keys($columns) as $column) {
692 692
 
693 693
 				$method = 'column_' . $column;
694 694
 
695
-				if ( 'name' == $column ) {
696
-					$value = esc_html( $user->display_name );
697
-				} elseif ( 'email' == $column ) {
698
-					$value = sanitize_email( $user->user_email );
699
-				} elseif ( is_callable( array( $table, $method ) ) ) {
700
-					$value = wp_strip_all_tags( $table->$method( $user ) );
695
+				if ('name' == $column) {
696
+					$value = esc_html($user->display_name);
697
+				} elseif ('email' == $column) {
698
+					$value = sanitize_email($user->user_email);
699
+				} elseif (is_callable(array($table, $method))) {
700
+					$value = wp_strip_all_tags($table->$method($user));
701 701
 				}
702 702
 
703
-				if ( empty( $value ) ) {
704
-					$value = esc_html( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
703
+				if (empty($value)) {
704
+					$value = esc_html(get_user_meta($user->ID, '_wpinv_' . $column, true));
705 705
 				}
706 706
 
707 707
 				$row[] = $value;
708 708
 
709 709
 			}
710 710
 
711
-			fputcsv( $output, $row );
711
+			fputcsv($output, $row);
712 712
 		}
713 713
 
714
-		fclose( $output );
714
+		fclose($output);
715 715
 		exit;
716 716
 
717 717
 	}
@@ -721,27 +721,27 @@  discard block
 block discarded – undo
721 721
 	 *
722 722
 	 * @param array $data
723 723
      */
724
-    public function admin_install_plugin( $data ) {
724
+    public function admin_install_plugin($data) {
725 725
 
726
-		if ( ! empty( $data['plugins'] ) ) {
726
+		if (!empty($data['plugins'])) {
727 727
 			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
728 728
 			wp_cache_flush();
729 729
 
730
-			foreach ( $data['plugins'] as $slug => $file ) {
731
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
732
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
733
-				$installed  = $upgrader->install( $plugin_zip );
730
+			foreach ($data['plugins'] as $slug => $file) {
731
+				$plugin_zip = esc_url('https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip');
732
+				$upgrader   = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
733
+				$installed  = $upgrader->install($plugin_zip);
734 734
 
735
-				if ( ! is_wp_error( $installed ) && $installed ) {
736
-					activate_plugin( $file, '', false, true );
735
+				if (!is_wp_error($installed) && $installed) {
736
+					activate_plugin($file, '', false, true);
737 737
 				} else {
738
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
738
+					wpinv_error_log($upgrader->skin->get_upgrade_messages(), false);
739 739
 				}
740 740
 }
741 741
 }
742 742
 
743
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
744
-		wp_safe_redirect( $redirect );
743
+		$redirect = isset($data['redirect']) ? esc_url_raw($data['redirect']) : admin_url('plugins.php');
744
+		wp_safe_redirect($redirect);
745 745
 		exit;
746 746
 
747 747
 	}
@@ -751,41 +751,41 @@  discard block
 block discarded – undo
751 751
 	 *
752 752
 	 * @param array $data
753 753
      */
754
-    public function admin_connect_gateway( $data ) {
754
+    public function admin_connect_gateway($data) {
755 755
 
756
-		if ( ! empty( $data['plugin'] ) ) {
756
+		if (!empty($data['plugin'])) {
757 757
 
758
-			$gateway     = sanitize_key( $data['plugin'] );
759
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
758
+			$gateway     = sanitize_key($data['plugin']);
759
+			$connect_url = apply_filters("getpaid_get_{$gateway}_connect_url", false, $data);
760 760
 
761
-			if ( ! empty( $connect_url ) ) {
762
-				wp_redirect( $connect_url );
761
+			if (!empty($connect_url)) {
762
+				wp_redirect($connect_url);
763 763
 				exit;
764 764
 			}
765 765
 
766
-			if ( 'stripe' == $data['plugin'] ) {
766
+			if ('stripe' == $data['plugin']) {
767 767
 				require_once ABSPATH . 'wp-admin/includes/plugin.php';
768 768
 				include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
769 769
 				wp_cache_flush();
770 770
 
771
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
772
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
773
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
774
-					$upgrader->install( $plugin_zip );
771
+				if (!array_key_exists('getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins())) {
772
+					$plugin_zip = esc_url('https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip');
773
+					$upgrader   = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
774
+					$upgrader->install($plugin_zip);
775 775
 				}
776 776
 
777
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
777
+				activate_plugin('getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true);
778 778
 			}
779 779
 
780
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
781
-			if ( ! empty( $connect_url ) ) {
782
-				wp_redirect( $connect_url );
780
+			$connect_url = apply_filters("getpaid_get_{$gateway}_connect_url", false, $data);
781
+			if (!empty($connect_url)) {
782
+				wp_redirect($connect_url);
783 783
 				exit;
784 784
 			}
785 785
 }
786 786
 
787
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
788
-		wp_safe_redirect( $redirect );
787
+		$redirect = isset($data['redirect']) ? esc_url_raw(urldecode($data['redirect'])) : admin_url('admin.php?page=wpinv-settings&tab=gateways');
788
+		wp_safe_redirect($redirect);
789 789
 		exit;
790 790
 
791 791
 	}
@@ -799,35 +799,35 @@  discard block
 block discarded – undo
799 799
 
800 800
 		// Fetch all invoices that have discount codes.
801 801
 		$table    = $wpdb->prefix . 'getpaid_invoices';
802
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
802
+		$invoices = $wpdb->get_col("SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''");
803 803
 
804
-		foreach ( $invoices as $invoice ) {
804
+		foreach ($invoices as $invoice) {
805 805
 
806
-			$invoice = new WPInv_Invoice( $invoice );
806
+			$invoice = new WPInv_Invoice($invoice);
807 807
 
808
-			if ( ! $invoice->exists() ) {
808
+			if (!$invoice->exists()) {
809 809
 				continue;
810 810
 			}
811 811
 
812 812
 			// Abort if the discount does not exist or does not apply here.
813
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
814
-			if ( ! $discount->exists() ) {
813
+			$discount = new WPInv_Discount($invoice->get_discount_code());
814
+			if (!$discount->exists()) {
815 815
 				continue;
816 816
 			}
817 817
 
818
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
818
+			$invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
819 819
 			$invoice->recalculate_total();
820 820
 
821
-			if ( $invoice->get_total_discount() > 0 ) {
821
+			if ($invoice->get_total_discount() > 0) {
822 822
 				$invoice->save();
823 823
 			}
824 824
 }
825 825
 
826 826
 		// Show an admin message.
827
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
827
+		$this->show_success(__('Discounts have been recalculated.', 'invoicing'));
828 828
 
829 829
 		// Redirect the admin.
830
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
830
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
831 831
 		exit;
832 832
 
833 833
 	}
@@ -839,8 +839,8 @@  discard block
 block discarded – undo
839 839
      * @return array
840 840
 	 */
841 841
 	public function get_notices() {
842
-		$notices = get_option( 'wpinv_admin_notices' );
843
-        return is_array( $notices ) ? $notices : array();
842
+		$notices = get_option('wpinv_admin_notices');
843
+        return is_array($notices) ? $notices : array();
844 844
 	}
845 845
 
846 846
 	/**
@@ -850,7 +850,7 @@  discard block
 block discarded – undo
850 850
      * @return array
851 851
 	 */
852 852
 	public function has_notices() {
853
-		return count( $this->get_notices() ) > 0;
853
+		return count($this->get_notices()) > 0;
854 854
 	}
855 855
 
856 856
 	/**
@@ -860,7 +860,7 @@  discard block
 block discarded – undo
860 860
 	 * @since       1.0.19
861 861
 	 */
862 862
 	public function clear_notices() {
863
-		delete_option( 'wpinv_admin_notices' );
863
+		delete_option('wpinv_admin_notices');
864 864
 	}
865 865
 
866 866
 	/**
@@ -869,16 +869,16 @@  discard block
 block discarded – undo
869 869
 	 * @access      public
870 870
 	 * @since       1.0.19
871 871
 	 */
872
-	public function save_notice( $type, $message ) {
872
+	public function save_notice($type, $message) {
873 873
 		$notices = $this->get_notices();
874 874
 
875
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
876
-			$notices[ $type ] = array();
875
+		if (empty($notices[$type]) || !is_array($notices[$type])) {
876
+			$notices[$type] = array();
877 877
 		}
878 878
 
879
-		$notices[ $type ][] = $message;
879
+		$notices[$type][] = $message;
880 880
 
881
-		update_option( 'wpinv_admin_notices', $notices );
881
+		update_option('wpinv_admin_notices', $notices);
882 882
 	}
883 883
 
884 884
 	/**
@@ -888,8 +888,8 @@  discard block
 block discarded – undo
888 888
 	 * @access      public
889 889
 	 * @since       1.0.19
890 890
 	 */
891
-	public function show_success( $msg ) {
892
-		$this->save_notice( 'success', $msg );
891
+	public function show_success($msg) {
892
+		$this->save_notice('success', $msg);
893 893
 	}
894 894
 
895 895
 	/**
@@ -899,8 +899,8 @@  discard block
 block discarded – undo
899 899
 	 * @param       string $msg The message to qeue.
900 900
 	 * @since       1.0.19
901 901
 	 */
902
-	public function show_error( $msg ) {
903
-		$this->save_notice( 'error', $msg );
902
+	public function show_error($msg) {
903
+		$this->save_notice('error', $msg);
904 904
 	}
905 905
 
906 906
 	/**
@@ -910,8 +910,8 @@  discard block
 block discarded – undo
910 910
 	 * @param       string $msg The message to qeue.
911 911
 	 * @since       1.0.19
912 912
 	 */
913
-	public function show_warning( $msg ) {
914
-		$this->save_notice( 'warning', $msg );
913
+	public function show_warning($msg) {
914
+		$this->save_notice('warning', $msg);
915 915
 	}
916 916
 
917 917
 	/**
@@ -921,8 +921,8 @@  discard block
 block discarded – undo
921 921
 	 * @param       string $msg The message to qeue.
922 922
 	 * @since       1.0.19
923 923
 	 */
924
-	public function show_info( $msg ) {
925
-		$this->save_notice( 'info', $msg );
924
+	public function show_info($msg) {
925
+		$this->save_notice('info', $msg);
926 926
 	}
927 927
 
928 928
 	/**
@@ -936,29 +936,29 @@  discard block
 block discarded – undo
936 936
         $notices = $this->get_notices();
937 937
         $this->clear_notices();
938 938
 
939
-		foreach ( $notices as $type => $messages ) {
939
+		foreach ($notices as $type => $messages) {
940 940
 
941
-			if ( ! is_array( $messages ) ) {
941
+			if (!is_array($messages)) {
942 942
 				continue;
943 943
 			}
944 944
 
945
-            $type  = esc_attr( $type );
946
-			foreach ( $messages as $message ) {
947
-				echo wp_kses_post( "<div class='notice notice-$type is-dismissible'><p>$message</p></div>" );
945
+            $type = esc_attr($type);
946
+			foreach ($messages as $message) {
947
+				echo wp_kses_post("<div class='notice notice-$type is-dismissible'><p>$message</p></div>");
948 948
             }
949 949
 }
950 950
 
951
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
951
+		foreach (array('checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page') as $page) {
952 952
 
953
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
954
-				$url     = wp_nonce_url(
955
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
953
+			if (!is_numeric(wpinv_get_option($page, false))) {
954
+				$url = wp_nonce_url(
955
+					add_query_arg('getpaid-admin-action', 'create_missing_pages'),
956 956
 					'getpaid-nonce',
957 957
 					'getpaid-nonce'
958 958
 				);
959
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
960
-				$message2 = __( 'Generate Pages', 'invoicing' );
961
-				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>" );
959
+				$message  = __('Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing');
960
+				$message2 = __('Generate Pages', 'invoicing');
961
+				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>");
962 962
 				break;
963 963
 			}
964 964
 }
Please login to merge, or discard this patch.
includes/admin/meta-boxes/class-getpaid-meta-box-invoice-address.php 2 patches
Indentation   +276 added lines, -276 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  */
9 9
 
10 10
 if ( ! defined( 'ABSPATH' ) ) {
11
-	exit; // Exit if accessed directly
11
+    exit; // Exit if accessed directly
12 12
 }
13 13
 
14 14
 /**
@@ -16,84 +16,84 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class GetPaid_Meta_Box_Invoice_Address {
18 18
 
19
-	/**
20
-	 * Output the metabox.
21
-	 *
22
-	 * @param WP_Post $post
23
-	 */
24
-	public static function output( $post ) {
25
-
26
-		// Prepare the invoice.
27
-		$invoice  = new WPInv_Invoice( $post );
28
-		$customer = $invoice->exists() ? $invoice->get_user_id( 'edit' ) : get_current_user_id();
29
-		$customer = new WP_User( $customer );
30
-		$display  = sprintf( _x( '%1$s (%2$s)', 'user dropdown', 'invoicing' ), $customer->display_name, $customer->user_email );
31
-		wp_nonce_field( 'getpaid_meta_nonce', 'getpaid_meta_nonce' );
32
-
33
-		// Address fields.
34
-		$address_fields = array(
35
-			'first_name' => array(
36
-				'label' => __( 'First Name', 'invoicing' ),
37
-				'type'  => 'text',
38
-			),
39
-			'last_name'  => array(
40
-				'label' => __( 'Last Name', 'invoicing' ),
41
-				'type'  => 'text',
42
-			),
43
-			'company'    => array(
44
-				'label' => __( 'Company', 'invoicing' ),
45
-				'type'  => 'text',
46
-				'class' => 'getpaid-recalculate-prices-on-change',
47
-			),
48
-			'vat_number' => array(
49
-				'label' => __( 'VAT Number', 'invoicing' ),
50
-				'type'  => 'text',
51
-			),
52
-			'address'    => array(
53
-				'label' => __( 'Address', 'invoicing' ),
54
-				'type'  => 'text',
55
-			),
56
-			'city'       => array(
57
-				'label' => __( 'City', 'invoicing' ),
58
-				'type'  => 'text',
59
-			),
60
-			'country'    => array(
61
-				'label'       => __( 'Country', 'invoicing' ),
62
-				'type'        => 'select',
63
-				'class'       => 'getpaid-recalculate-prices-on-change',
64
-				'options'     => wpinv_get_country_list(),
65
-				'placeholder' => __( 'Choose a country', 'invoicing' ),
66
-			),
67
-			'state'      => array(
68
-				'label' => __( 'State', 'invoicing' ),
69
-				'type'  => 'text',
70
-				'class' => 'getpaid-recalculate-prices-on-change',
71
-			),
72
-			'zip'        => array(
73
-				'label' => __( 'Zip', 'invoicing' ),
74
-				'type'  => 'text',
75
-			),
76
-			'phone'      => array(
77
-				'label' => __( 'Phone', 'invoicing' ),
78
-				'type'  => 'text',
79
-			),
80
-		);
81
-
82
-		$states = wpinv_get_country_states( $invoice->get_country( 'edit' ) );
83
-
84
-		if ( ! empty( $states ) ) {
85
-			$address_fields['state']['type']        = 'select';
86
-			$address_fields['state']['options']     = $states;
87
-			$address_fields['state']['placeholder'] = __( 'Choose a state', 'invoicing' );
88
-		}
89
-
90
-		// Maybe remove the VAT field.
91
-		if ( ! wpinv_use_taxes() ) {
92
-			unset( $address_fields['vat_number'] );
93
-		}
94
-
95
-		$address_fields = apply_filters( 'getpaid_admin_edit_invoice_address_fields', $address_fields, $invoice );
96
-		?>
19
+    /**
20
+     * Output the metabox.
21
+     *
22
+     * @param WP_Post $post
23
+     */
24
+    public static function output( $post ) {
25
+
26
+        // Prepare the invoice.
27
+        $invoice  = new WPInv_Invoice( $post );
28
+        $customer = $invoice->exists() ? $invoice->get_user_id( 'edit' ) : get_current_user_id();
29
+        $customer = new WP_User( $customer );
30
+        $display  = sprintf( _x( '%1$s (%2$s)', 'user dropdown', 'invoicing' ), $customer->display_name, $customer->user_email );
31
+        wp_nonce_field( 'getpaid_meta_nonce', 'getpaid_meta_nonce' );
32
+
33
+        // Address fields.
34
+        $address_fields = array(
35
+            'first_name' => array(
36
+                'label' => __( 'First Name', 'invoicing' ),
37
+                'type'  => 'text',
38
+            ),
39
+            'last_name'  => array(
40
+                'label' => __( 'Last Name', 'invoicing' ),
41
+                'type'  => 'text',
42
+            ),
43
+            'company'    => array(
44
+                'label' => __( 'Company', 'invoicing' ),
45
+                'type'  => 'text',
46
+                'class' => 'getpaid-recalculate-prices-on-change',
47
+            ),
48
+            'vat_number' => array(
49
+                'label' => __( 'VAT Number', 'invoicing' ),
50
+                'type'  => 'text',
51
+            ),
52
+            'address'    => array(
53
+                'label' => __( 'Address', 'invoicing' ),
54
+                'type'  => 'text',
55
+            ),
56
+            'city'       => array(
57
+                'label' => __( 'City', 'invoicing' ),
58
+                'type'  => 'text',
59
+            ),
60
+            'country'    => array(
61
+                'label'       => __( 'Country', 'invoicing' ),
62
+                'type'        => 'select',
63
+                'class'       => 'getpaid-recalculate-prices-on-change',
64
+                'options'     => wpinv_get_country_list(),
65
+                'placeholder' => __( 'Choose a country', 'invoicing' ),
66
+            ),
67
+            'state'      => array(
68
+                'label' => __( 'State', 'invoicing' ),
69
+                'type'  => 'text',
70
+                'class' => 'getpaid-recalculate-prices-on-change',
71
+            ),
72
+            'zip'        => array(
73
+                'label' => __( 'Zip', 'invoicing' ),
74
+                'type'  => 'text',
75
+            ),
76
+            'phone'      => array(
77
+                'label' => __( 'Phone', 'invoicing' ),
78
+                'type'  => 'text',
79
+            ),
80
+        );
81
+
82
+        $states = wpinv_get_country_states( $invoice->get_country( 'edit' ) );
83
+
84
+        if ( ! empty( $states ) ) {
85
+            $address_fields['state']['type']        = 'select';
86
+            $address_fields['state']['options']     = $states;
87
+            $address_fields['state']['placeholder'] = __( 'Choose a state', 'invoicing' );
88
+        }
89
+
90
+        // Maybe remove the VAT field.
91
+        if ( ! wpinv_use_taxes() ) {
92
+            unset( $address_fields['vat_number'] );
93
+        }
94
+
95
+        $address_fields = apply_filters( 'getpaid_admin_edit_invoice_address_fields', $address_fields, $invoice );
96
+        ?>
97 97
 
98 98
 		<style>
99 99
 			#wpinv-address label {
@@ -118,19 +118,19 @@  discard block
 block discarded – undo
118 118
 							<div id="getpaid-invoice-email-wrapper" class="d-none">
119 119
 								<input type="hidden" id="getpaid-invoice-create-new-user" name="wpinv_new_user" value="" />
120 120
 								<?php
121
-									aui()->input(
122
-										array(
123
-											'type'        => 'text',
124
-											'id'          => 'getpaid-invoice-new-user-email',
125
-											'name'        => 'wpinv_email',
126
-											'label'       => __( 'Email', 'invoicing' ) . '<span class="required">*</span>',
127
-											'label_type'  => 'vertical',
128
-											'placeholder' => '[email protected]',
129
-											'class'       => 'form-control-sm',
130
-										),
131
-										true
132
-									);
133
-								?>
121
+                                    aui()->input(
122
+                                        array(
123
+                                            'type'        => 'text',
124
+                                            'id'          => 'getpaid-invoice-new-user-email',
125
+                                            'name'        => 'wpinv_email',
126
+                                            'label'       => __( 'Email', 'invoicing' ) . '<span class="required">*</span>',
127
+                                            'label_type'  => 'vertical',
128
+                                            'placeholder' => '[email protected]',
129
+                                            'class'       => 'form-control-sm',
130
+                                        ),
131
+                                        true
132
+                                    );
133
+                                ?>
134 134
 							</div>
135 135
 						</div>
136 136
 						<div class="col-12 col-sm-6 form-group mb-3 mt-sm-4">
@@ -154,39 +154,39 @@  discard block
 block discarded – undo
154 154
 							<div class="col-12 col-sm-6 getpaid-invoice-address-field__<?php echo esc_attr( $key ); ?>--wrapper">
155 155
 								<?php
156 156
 
157
-									if ( 'select' === $field['type'] ) {
158
-										aui()->select(
159
-											array(
160
-												'id'               => 'wpinv_' . $key,
161
-												'name'             => 'wpinv_' . $key,
162
-												'label'            => $field['label'],
163
-												'label_type'       => 'vertical',
164
-												'placeholder'      => isset( $field['placeholder'] ) ? $field['placeholder'] : '',
165
-												'class'            => 'form-control-sm ' . ( isset( $field['class'] ) ? $field['class'] : '' ),
166
-												'value'            => $invoice->get( $key, 'edit' ),
167
-												'options'          => $field['options'],
168
-												'data-allow-clear' => 'false',
169
-												'select2'          => true,
170
-											),
171
-											true
172
-										);
173
-									} else {
174
-										aui()->input(
175
-											array(
176
-												'type'        => $field['type'],
177
-												'id'          => 'wpinv_' . $key,
178
-												'name'        => 'wpinv_' . $key,
179
-												'label'       => $field['label'],
180
-												'label_type'  => 'vertical',
181
-												'placeholder' => isset( $field['placeholder'] ) ? $field['placeholder'] : '',
182
-												'class'       => 'form-control-sm ' . ( isset( $field['class'] ) ? $field['class'] : '' ),
183
-												'value'       => $invoice->get( $key, 'edit' ),
184
-											),
185
-											true
186
-										);
187
-									}
188
-
189
-								?>
157
+                                    if ( 'select' === $field['type'] ) {
158
+                                        aui()->select(
159
+                                            array(
160
+                                                'id'               => 'wpinv_' . $key,
161
+                                                'name'             => 'wpinv_' . $key,
162
+                                                'label'            => $field['label'],
163
+                                                'label_type'       => 'vertical',
164
+                                                'placeholder'      => isset( $field['placeholder'] ) ? $field['placeholder'] : '',
165
+                                                'class'            => 'form-control-sm ' . ( isset( $field['class'] ) ? $field['class'] : '' ),
166
+                                                'value'            => $invoice->get( $key, 'edit' ),
167
+                                                'options'          => $field['options'],
168
+                                                'data-allow-clear' => 'false',
169
+                                                'select2'          => true,
170
+                                            ),
171
+                                            true
172
+                                        );
173
+                                    } else {
174
+                                        aui()->input(
175
+                                            array(
176
+                                                'type'        => $field['type'],
177
+                                                'id'          => 'wpinv_' . $key,
178
+                                                'name'        => 'wpinv_' . $key,
179
+                                                'label'       => $field['label'],
180
+                                                'label_type'  => 'vertical',
181
+                                                'placeholder' => isset( $field['placeholder'] ) ? $field['placeholder'] : '',
182
+                                                'class'       => 'form-control-sm ' . ( isset( $field['class'] ) ? $field['class'] : '' ),
183
+                                                'value'       => $invoice->get( $key, 'edit' ),
184
+                                            ),
185
+                                            true
186
+                                        );
187
+                                    }
188
+
189
+                                ?>
190 190
 							</div>
191 191
 						<?php endforeach; ?>
192 192
 					</div>
@@ -197,48 +197,48 @@  discard block
 block discarded – undo
197 197
 						<div class="row">
198 198
 							<div class="col-12 col-sm-6">
199 199
 								<?php
200
-									aui()->select(
201
-										array(
202
-											'id'          => 'wpinv_template',
203
-											'name'        => 'wpinv_template',
204
-											'label'       => __( 'Template', 'invoicing' ),
205
-											'label_type'  => 'vertical',
206
-											'placeholder' => __( 'Choose a template', 'invoicing' ),
207
-											'class'       => 'form-control-sm',
208
-											'value'       => $invoice->get_template( 'edit' ),
209
-											'options'     => array(
210
-												'quantity' => __( 'Quantity', 'invoicing' ),
211
-												'hours'    => __( 'Hours', 'invoicing' ),
212
-											),
213
-											'data-allow-clear' => 'false',
214
-											'select2'     => true,
215
-										),
216
-										true
217
-									);
218
-								?>
200
+                                    aui()->select(
201
+                                        array(
202
+                                            'id'          => 'wpinv_template',
203
+                                            'name'        => 'wpinv_template',
204
+                                            'label'       => __( 'Template', 'invoicing' ),
205
+                                            'label_type'  => 'vertical',
206
+                                            'placeholder' => __( 'Choose a template', 'invoicing' ),
207
+                                            'class'       => 'form-control-sm',
208
+                                            'value'       => $invoice->get_template( 'edit' ),
209
+                                            'options'     => array(
210
+                                                'quantity' => __( 'Quantity', 'invoicing' ),
211
+                                                'hours'    => __( 'Hours', 'invoicing' ),
212
+                                            ),
213
+                                            'data-allow-clear' => 'false',
214
+                                            'select2'     => true,
215
+                                        ),
216
+                                        true
217
+                                    );
218
+                                ?>
219 219
 							</div>
220 220
 							<div class="col-12 col-sm-6">
221 221
 								<?php
222 222
 
223
-									// Set currency.
224
-									aui()->select(
225
-										array(
226
-											'id'          => 'wpinv_currency',
227
-											'name'        => 'wpinv_currency',
228
-											'label'       => __( 'Currency', 'invoicing' ),
229
-											'label_type'  => 'vertical',
230
-											'placeholder' => __( 'Select Invoice Currency', 'invoicing' ),
231
-											'class'       => 'form-control-sm getpaid-recalculate-prices-on-change',
232
-											'value'       => $invoice->get_currency( 'edit' ),
233
-											'required'    => false,
234
-											'data-allow-clear' => 'false',
235
-											'select2'     => true,
236
-											'options'     => wpinv_get_currencies(),
237
-										),
238
-										true
239
-									);
240
-
241
-								?>
223
+                                    // Set currency.
224
+                                    aui()->select(
225
+                                        array(
226
+                                            'id'          => 'wpinv_currency',
227
+                                            'name'        => 'wpinv_currency',
228
+                                            'label'       => __( 'Currency', 'invoicing' ),
229
+                                            'label_type'  => 'vertical',
230
+                                            'placeholder' => __( 'Select Invoice Currency', 'invoicing' ),
231
+                                            'class'       => 'form-control-sm getpaid-recalculate-prices-on-change',
232
+                                            'value'       => $invoice->get_currency( 'edit' ),
233
+                                            'required'    => false,
234
+                                            'data-allow-clear' => 'false',
235
+                                            'select2'     => true,
236
+                                            'options'     => wpinv_get_currencies(),
237
+                                        ),
238
+                                        true
239
+                                    );
240
+
241
+                                ?>
242 242
 							</div>
243 243
 						</div>
244 244
 
@@ -248,123 +248,123 @@  discard block
 block discarded – undo
248 248
 					<div class="row">
249 249
 						<div class="col-12 col-sm-6">
250 250
 							<?php
251
-								aui()->input(
252
-									array(
253
-										'type'        => 'text',
254
-										'id'          => 'wpinv_company_id',
255
-										'name'        => 'wpinv_company_id',
256
-										'label'       => __( 'Company ID', 'invoicing' ),
257
-										'label_type'  => 'vertical',
258
-										'placeholder' => '',
259
-										'class'       => 'form-control-sm',
260
-										'value'       => $invoice->get_company_id( 'edit' ),
261
-									),
262
-									true
263
-								);
264
-							?>
251
+                                aui()->input(
252
+                                    array(
253
+                                        'type'        => 'text',
254
+                                        'id'          => 'wpinv_company_id',
255
+                                        'name'        => 'wpinv_company_id',
256
+                                        'label'       => __( 'Company ID', 'invoicing' ),
257
+                                        'label_type'  => 'vertical',
258
+                                        'placeholder' => '',
259
+                                        'class'       => 'form-control-sm',
260
+                                        'value'       => $invoice->get_company_id( 'edit' ),
261
+                                    ),
262
+                                    true
263
+                                );
264
+                            ?>
265 265
 						</div>
266 266
 					</div>
267 267
 
268 268
 					<?php do_action( 'getpaid_after_metabox_invoice_address', $invoice ); ?>
269 269
 			</div>
270 270
 		<?php
271
-	}
272
-
273
-	/**
274
-	 * Save meta box data.
275
-	 *
276
-	 * @param int $post_id
277
-	 * @param array $posted the posted data.
278
-	 */
279
-	public static function save( $post_id, $posted ) {
280
-
281
-		// Prepare the invoice.
282
-		$invoice = new WPInv_Invoice( $post_id );
283
-
284
-		// Load new data.
285
-		$invoice->set_props(
286
-			array(
287
-				'template'       => isset( $posted['wpinv_template'] ) ? wpinv_clean( $posted['wpinv_template'] ) : null,
288
-				'email_cc'       => isset( $posted['wpinv_cc'] ) ? wpinv_clean( $posted['wpinv_cc'] ) : null,
289
-				'disable_taxes'  => ! empty( $posted['disable_taxes'] ),
290
-				'currency'       => isset( $posted['wpinv_currency'] ) ? wpinv_clean( $posted['wpinv_currency'] ) : null,
291
-				'gateway'        => ( $invoice->needs_payment() && isset( $posted['wpinv_gateway'] ) ) ? wpinv_clean( $posted['wpinv_gateway'] ) : null,
292
-				'address'        => isset( $posted['wpinv_address'] ) ? wpinv_clean( $posted['wpinv_address'] ) : null,
293
-				'vat_number'     => isset( $posted['wpinv_vat_number'] ) ? wpinv_clean( $posted['wpinv_vat_number'] ) : null,
294
-				'company'        => isset( $posted['wpinv_company'] ) ? wpinv_clean( $posted['wpinv_company'] ) : null,
295
-				'company_id'     => isset( $posted['wpinv_company_id'] ) ? wpinv_clean( $posted['wpinv_company_id'] ) : null,
296
-				'zip'            => isset( $posted['wpinv_zip'] ) ? wpinv_clean( $posted['wpinv_zip'] ) : null,
297
-				'state'          => isset( $posted['wpinv_state'] ) ? wpinv_clean( $posted['wpinv_state'] ) : null,
298
-				'city'           => isset( $posted['wpinv_city'] ) ? wpinv_clean( $posted['wpinv_city'] ) : null,
299
-				'country'        => isset( $posted['wpinv_country'] ) ? wpinv_clean( $posted['wpinv_country'] ) : null,
300
-				'phone'          => isset( $posted['wpinv_phone'] ) ? wpinv_clean( $posted['wpinv_phone'] ) : null,
301
-				'first_name'     => isset( $posted['wpinv_first_name'] ) ? wpinv_clean( $posted['wpinv_first_name'] ) : null,
302
-				'last_name'      => isset( $posted['wpinv_last_name'] ) ? wpinv_clean( $posted['wpinv_last_name'] ) : null,
303
-				'author'         => isset( $posted['post_author_override'] ) ? wpinv_clean( $posted['post_author_override'] ) : null,
304
-				'date_created'   => isset( $posted['date_created'] ) ? wpinv_clean( $posted['date_created'] ) : null,
305
-				'date_completed' => isset( $posted['wpinv_date_completed'] ) ? wpinv_clean( $posted['wpinv_date_completed'] ) : null,
306
-				'due_date'       => isset( $posted['wpinv_due_date'] ) ? wpinv_clean( $posted['wpinv_due_date'] ) : null,
307
-				'number'         => isset( $posted['wpinv_number'] ) ? wpinv_clean( $posted['wpinv_number'] ) : null,
308
-				'status'         => isset( $posted['wpinv_status'] ) ? wpinv_clean( $posted['wpinv_status'] ) : null,
309
-			)
310
-		);
311
-
312
-		// Discount code.
313
-		if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
314
-
315
-			if ( isset( $posted['wpinv_discount_code'] ) ) {
316
-				$invoice->set_discount_code( wpinv_clean( $posted['wpinv_discount_code'] ) );
317
-			}
318
-
319
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
320
-			if ( $discount->exists() ) {
321
-				$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
322
-			} else {
323
-				$invoice->remove_discount( 'discount_code' );
324
-			}
325
-
326
-			// Recalculate totals.
327
-			$invoice->recalculate_total();
328
-
329
-		}
330
-
331
-		// If we're creating a new user...
332
-		if ( ! empty( $posted['wpinv_new_user'] ) && is_email( stripslashes( $posted['wpinv_email'] ) ) ) {
333
-
334
-			// Attempt to create the user.
335
-			$user = wpinv_create_user( sanitize_email( stripslashes( $posted['wpinv_email'] ) ), $invoice->get_first_name() . $invoice->get_last_name() );
336
-
337
-			// If successful, update the invoice author.
338
-			if ( is_numeric( $user ) ) {
339
-				$invoice->set_author( $user );
340
-			} else {
341
-				wpinv_error_log( $user->get_error_message(), __( 'Invoice add new user', 'invoicing' ), __FILE__, __LINE__ );
342
-			}
343
-		}
344
-
345
-		// Do not send new invoice notifications.
346
-		$GLOBALS['wpinv_skip_invoice_notification'] = true;
347
-
348
-		// Save the invoice.
349
-		$invoice->save();
350
-
351
-		// Save the user address.
352
-		getpaid_save_invoice_user_address( $invoice );
353
-
354
-		// Undo do not send new invoice notifications.
355
-		$GLOBALS['wpinv_skip_invoice_notification'] = false;
356
-
357
-		// (Maybe) send new user notification.
358
-		$should_send_notification = wpinv_get_option( 'disable_new_user_emails' );
359
-		if ( ! empty( $user ) && is_numeric( $user ) && apply_filters( 'getpaid_send_new_user_notification', empty( $should_send_notification ) ) ) {
360
-			wp_send_new_user_notifications( $user, 'user' );
361
-		}
362
-
363
-		if ( ! empty( $posted['send_to_customer'] ) && ! $invoice->is_draft() ) {
364
-			getpaid()->get( 'invoice_emails' )->user_invoice( $invoice, true );
365
-		}
366
-
367
-		// Fires after an invoice is saved.
368
-		do_action( 'wpinv_invoice_metabox_saved', $invoice );
369
-	}
271
+    }
272
+
273
+    /**
274
+     * Save meta box data.
275
+     *
276
+     * @param int $post_id
277
+     * @param array $posted the posted data.
278
+     */
279
+    public static function save( $post_id, $posted ) {
280
+
281
+        // Prepare the invoice.
282
+        $invoice = new WPInv_Invoice( $post_id );
283
+
284
+        // Load new data.
285
+        $invoice->set_props(
286
+            array(
287
+                'template'       => isset( $posted['wpinv_template'] ) ? wpinv_clean( $posted['wpinv_template'] ) : null,
288
+                'email_cc'       => isset( $posted['wpinv_cc'] ) ? wpinv_clean( $posted['wpinv_cc'] ) : null,
289
+                'disable_taxes'  => ! empty( $posted['disable_taxes'] ),
290
+                'currency'       => isset( $posted['wpinv_currency'] ) ? wpinv_clean( $posted['wpinv_currency'] ) : null,
291
+                'gateway'        => ( $invoice->needs_payment() && isset( $posted['wpinv_gateway'] ) ) ? wpinv_clean( $posted['wpinv_gateway'] ) : null,
292
+                'address'        => isset( $posted['wpinv_address'] ) ? wpinv_clean( $posted['wpinv_address'] ) : null,
293
+                'vat_number'     => isset( $posted['wpinv_vat_number'] ) ? wpinv_clean( $posted['wpinv_vat_number'] ) : null,
294
+                'company'        => isset( $posted['wpinv_company'] ) ? wpinv_clean( $posted['wpinv_company'] ) : null,
295
+                'company_id'     => isset( $posted['wpinv_company_id'] ) ? wpinv_clean( $posted['wpinv_company_id'] ) : null,
296
+                'zip'            => isset( $posted['wpinv_zip'] ) ? wpinv_clean( $posted['wpinv_zip'] ) : null,
297
+                'state'          => isset( $posted['wpinv_state'] ) ? wpinv_clean( $posted['wpinv_state'] ) : null,
298
+                'city'           => isset( $posted['wpinv_city'] ) ? wpinv_clean( $posted['wpinv_city'] ) : null,
299
+                'country'        => isset( $posted['wpinv_country'] ) ? wpinv_clean( $posted['wpinv_country'] ) : null,
300
+                'phone'          => isset( $posted['wpinv_phone'] ) ? wpinv_clean( $posted['wpinv_phone'] ) : null,
301
+                'first_name'     => isset( $posted['wpinv_first_name'] ) ? wpinv_clean( $posted['wpinv_first_name'] ) : null,
302
+                'last_name'      => isset( $posted['wpinv_last_name'] ) ? wpinv_clean( $posted['wpinv_last_name'] ) : null,
303
+                'author'         => isset( $posted['post_author_override'] ) ? wpinv_clean( $posted['post_author_override'] ) : null,
304
+                'date_created'   => isset( $posted['date_created'] ) ? wpinv_clean( $posted['date_created'] ) : null,
305
+                'date_completed' => isset( $posted['wpinv_date_completed'] ) ? wpinv_clean( $posted['wpinv_date_completed'] ) : null,
306
+                'due_date'       => isset( $posted['wpinv_due_date'] ) ? wpinv_clean( $posted['wpinv_due_date'] ) : null,
307
+                'number'         => isset( $posted['wpinv_number'] ) ? wpinv_clean( $posted['wpinv_number'] ) : null,
308
+                'status'         => isset( $posted['wpinv_status'] ) ? wpinv_clean( $posted['wpinv_status'] ) : null,
309
+            )
310
+        );
311
+
312
+        // Discount code.
313
+        if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
314
+
315
+            if ( isset( $posted['wpinv_discount_code'] ) ) {
316
+                $invoice->set_discount_code( wpinv_clean( $posted['wpinv_discount_code'] ) );
317
+            }
318
+
319
+            $discount = new WPInv_Discount( $invoice->get_discount_code() );
320
+            if ( $discount->exists() ) {
321
+                $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
322
+            } else {
323
+                $invoice->remove_discount( 'discount_code' );
324
+            }
325
+
326
+            // Recalculate totals.
327
+            $invoice->recalculate_total();
328
+
329
+        }
330
+
331
+        // If we're creating a new user...
332
+        if ( ! empty( $posted['wpinv_new_user'] ) && is_email( stripslashes( $posted['wpinv_email'] ) ) ) {
333
+
334
+            // Attempt to create the user.
335
+            $user = wpinv_create_user( sanitize_email( stripslashes( $posted['wpinv_email'] ) ), $invoice->get_first_name() . $invoice->get_last_name() );
336
+
337
+            // If successful, update the invoice author.
338
+            if ( is_numeric( $user ) ) {
339
+                $invoice->set_author( $user );
340
+            } else {
341
+                wpinv_error_log( $user->get_error_message(), __( 'Invoice add new user', 'invoicing' ), __FILE__, __LINE__ );
342
+            }
343
+        }
344
+
345
+        // Do not send new invoice notifications.
346
+        $GLOBALS['wpinv_skip_invoice_notification'] = true;
347
+
348
+        // Save the invoice.
349
+        $invoice->save();
350
+
351
+        // Save the user address.
352
+        getpaid_save_invoice_user_address( $invoice );
353
+
354
+        // Undo do not send new invoice notifications.
355
+        $GLOBALS['wpinv_skip_invoice_notification'] = false;
356
+
357
+        // (Maybe) send new user notification.
358
+        $should_send_notification = wpinv_get_option( 'disable_new_user_emails' );
359
+        if ( ! empty( $user ) && is_numeric( $user ) && apply_filters( 'getpaid_send_new_user_notification', empty( $should_send_notification ) ) ) {
360
+            wp_send_new_user_notifications( $user, 'user' );
361
+        }
362
+
363
+        if ( ! empty( $posted['send_to_customer'] ) && ! $invoice->is_draft() ) {
364
+            getpaid()->get( 'invoice_emails' )->user_invoice( $invoice, true );
365
+        }
366
+
367
+        // Fires after an invoice is saved.
368
+        do_action( 'wpinv_invoice_metabox_saved', $invoice );
369
+    }
370 370
 }
Please login to merge, or discard this patch.
Spacing   +98 added lines, -98 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  *
8 8
  */
9 9
 
10
-if ( ! defined( 'ABSPATH' ) ) {
10
+if (!defined('ABSPATH')) {
11 11
 	exit; // Exit if accessed directly
12 12
 }
13 13
 
@@ -21,78 +21,78 @@  discard block
 block discarded – undo
21 21
 	 *
22 22
 	 * @param WP_Post $post
23 23
 	 */
24
-	public static function output( $post ) {
24
+	public static function output($post) {
25 25
 
26 26
 		// Prepare the invoice.
27
-		$invoice  = new WPInv_Invoice( $post );
28
-		$customer = $invoice->exists() ? $invoice->get_user_id( 'edit' ) : get_current_user_id();
29
-		$customer = new WP_User( $customer );
30
-		$display  = sprintf( _x( '%1$s (%2$s)', 'user dropdown', 'invoicing' ), $customer->display_name, $customer->user_email );
31
-		wp_nonce_field( 'getpaid_meta_nonce', 'getpaid_meta_nonce' );
27
+		$invoice  = new WPInv_Invoice($post);
28
+		$customer = $invoice->exists() ? $invoice->get_user_id('edit') : get_current_user_id();
29
+		$customer = new WP_User($customer);
30
+		$display  = sprintf(_x('%1$s (%2$s)', 'user dropdown', 'invoicing'), $customer->display_name, $customer->user_email);
31
+		wp_nonce_field('getpaid_meta_nonce', 'getpaid_meta_nonce');
32 32
 
33 33
 		// Address fields.
34 34
 		$address_fields = array(
35 35
 			'first_name' => array(
36
-				'label' => __( 'First Name', 'invoicing' ),
36
+				'label' => __('First Name', 'invoicing'),
37 37
 				'type'  => 'text',
38 38
 			),
39 39
 			'last_name'  => array(
40
-				'label' => __( 'Last Name', 'invoicing' ),
40
+				'label' => __('Last Name', 'invoicing'),
41 41
 				'type'  => 'text',
42 42
 			),
43 43
 			'company'    => array(
44
-				'label' => __( 'Company', 'invoicing' ),
44
+				'label' => __('Company', 'invoicing'),
45 45
 				'type'  => 'text',
46 46
 				'class' => 'getpaid-recalculate-prices-on-change',
47 47
 			),
48 48
 			'vat_number' => array(
49
-				'label' => __( 'VAT Number', 'invoicing' ),
49
+				'label' => __('VAT Number', 'invoicing'),
50 50
 				'type'  => 'text',
51 51
 			),
52 52
 			'address'    => array(
53
-				'label' => __( 'Address', 'invoicing' ),
53
+				'label' => __('Address', 'invoicing'),
54 54
 				'type'  => 'text',
55 55
 			),
56 56
 			'city'       => array(
57
-				'label' => __( 'City', 'invoicing' ),
57
+				'label' => __('City', 'invoicing'),
58 58
 				'type'  => 'text',
59 59
 			),
60 60
 			'country'    => array(
61
-				'label'       => __( 'Country', 'invoicing' ),
61
+				'label'       => __('Country', 'invoicing'),
62 62
 				'type'        => 'select',
63 63
 				'class'       => 'getpaid-recalculate-prices-on-change',
64 64
 				'options'     => wpinv_get_country_list(),
65
-				'placeholder' => __( 'Choose a country', 'invoicing' ),
65
+				'placeholder' => __('Choose a country', 'invoicing'),
66 66
 			),
67 67
 			'state'      => array(
68
-				'label' => __( 'State', 'invoicing' ),
68
+				'label' => __('State', 'invoicing'),
69 69
 				'type'  => 'text',
70 70
 				'class' => 'getpaid-recalculate-prices-on-change',
71 71
 			),
72 72
 			'zip'        => array(
73
-				'label' => __( 'Zip', 'invoicing' ),
73
+				'label' => __('Zip', 'invoicing'),
74 74
 				'type'  => 'text',
75 75
 			),
76 76
 			'phone'      => array(
77
-				'label' => __( 'Phone', 'invoicing' ),
77
+				'label' => __('Phone', 'invoicing'),
78 78
 				'type'  => 'text',
79 79
 			),
80 80
 		);
81 81
 
82
-		$states = wpinv_get_country_states( $invoice->get_country( 'edit' ) );
82
+		$states = wpinv_get_country_states($invoice->get_country('edit'));
83 83
 
84
-		if ( ! empty( $states ) ) {
84
+		if (!empty($states)) {
85 85
 			$address_fields['state']['type']        = 'select';
86 86
 			$address_fields['state']['options']     = $states;
87
-			$address_fields['state']['placeholder'] = __( 'Choose a state', 'invoicing' );
87
+			$address_fields['state']['placeholder'] = __('Choose a state', 'invoicing');
88 88
 		}
89 89
 
90 90
 		// Maybe remove the VAT field.
91
-		if ( ! wpinv_use_taxes() ) {
92
-			unset( $address_fields['vat_number'] );
91
+		if (!wpinv_use_taxes()) {
92
+			unset($address_fields['vat_number']);
93 93
 		}
94 94
 
95
-		$address_fields = apply_filters( 'getpaid_admin_edit_invoice_address_fields', $address_fields, $invoice );
95
+		$address_fields = apply_filters('getpaid_admin_edit_invoice_address_fields', $address_fields, $invoice);
96 96
 		?>
97 97
 
98 98
 		<style>
@@ -106,11 +106,11 @@  discard block
 block discarded – undo
106 106
 						<div class="col-12 col-sm-6">
107 107
 							<div id="getpaid-invoice-user-id-wrapper" class="form-group mb-3">
108 108
 								<div>
109
-									<label for="post_author_override"><?php esc_html_e( 'Customer', 'invoicing' ); ?></label>
109
+									<label for="post_author_override"><?php esc_html_e('Customer', 'invoicing'); ?></label>
110 110
 								</div>
111 111
 								<div>
112
-									<select name="post_author_override" id="wpinv_post_author_override" class="getpaid-customer-search form-control regular-text" data-placeholder="<?php esc_attr_e( 'Search for a customer by email or name', 'invoicing' ); ?>">
113
-										<option selected="selected" value="<?php echo (int) $customer->ID; ?>"><?php echo esc_html( $display ); ?> </option>)
112
+									<select name="post_author_override" id="wpinv_post_author_override" class="getpaid-customer-search form-control regular-text" data-placeholder="<?php esc_attr_e('Search for a customer by email or name', 'invoicing'); ?>">
113
+										<option selected="selected" value="<?php echo (int) $customer->ID; ?>"><?php echo esc_html($display); ?> </option>)
114 114
 									</select>
115 115
 								</div>
116 116
 							</div>
@@ -123,7 +123,7 @@  discard block
 block discarded – undo
123 123
 											'type'        => 'text',
124 124
 											'id'          => 'getpaid-invoice-new-user-email',
125 125
 											'name'        => 'wpinv_email',
126
-											'label'       => __( 'Email', 'invoicing' ) . '<span class="required">*</span>',
126
+											'label'       => __('Email', 'invoicing') . '<span class="required">*</span>',
127 127
 											'label_type'  => 'vertical',
128 128
 											'placeholder' => '[email protected]',
129 129
 											'class'       => 'form-control-sm',
@@ -134,36 +134,36 @@  discard block
 block discarded – undo
134 134
 							</div>
135 135
 						</div>
136 136
 						<div class="col-12 col-sm-6 form-group mb-3 mt-sm-4">
137
-							<?php if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) : ?>
137
+							<?php if (!$invoice->is_paid() && !$invoice->is_refunded()) : ?>
138 138
 								<a id="getpaid-invoice-fill-user-details" class="button button-small button-secondary" href="javascript:void(0)">
139 139
 									<i aria-hidden="true" class="fa fa-refresh"></i>
140
-									<?php esc_html_e( 'Fill User Details', 'invoicing' ); ?>
140
+									<?php esc_html_e('Fill User Details', 'invoicing'); ?>
141 141
 								</a>
142 142
 								<a id="getpaid-invoice-create-new-user-button" class="button button-small button-secondary" href="javascript:void(0)">
143 143
 									<i aria-hidden="true" class="fa fa-plus"></i>
144
-									<?php esc_html_e( 'Add New User', 'invoicing' ); ?>
144
+									<?php esc_html_e('Add New User', 'invoicing'); ?>
145 145
 								</a>
146 146
 								<a id="getpaid-invoice-cancel-create-new-user" class="button button-small button-secondary d-none" href="javascript:void(0)">
147 147
 									<i aria-hidden="true" class="fa fa-close"></i>
148
-									<?php esc_html_e( 'Cancel', 'invoicing' ); ?>
148
+									<?php esc_html_e('Cancel', 'invoicing'); ?>
149 149
 								</a>
150 150
 							<?php endif; ?>
151 151
 						</div>
152 152
 
153
-						<?php foreach ( $address_fields as $key => $field ) : ?>
154
-							<div class="col-12 col-sm-6 getpaid-invoice-address-field__<?php echo esc_attr( $key ); ?>--wrapper">
153
+						<?php foreach ($address_fields as $key => $field) : ?>
154
+							<div class="col-12 col-sm-6 getpaid-invoice-address-field__<?php echo esc_attr($key); ?>--wrapper">
155 155
 								<?php
156 156
 
157
-									if ( 'select' === $field['type'] ) {
157
+									if ('select' === $field['type']) {
158 158
 										aui()->select(
159 159
 											array(
160 160
 												'id'               => 'wpinv_' . $key,
161 161
 												'name'             => 'wpinv_' . $key,
162 162
 												'label'            => $field['label'],
163 163
 												'label_type'       => 'vertical',
164
-												'placeholder'      => isset( $field['placeholder'] ) ? $field['placeholder'] : '',
165
-												'class'            => 'form-control-sm ' . ( isset( $field['class'] ) ? $field['class'] : '' ),
166
-												'value'            => $invoice->get( $key, 'edit' ),
164
+												'placeholder'      => isset($field['placeholder']) ? $field['placeholder'] : '',
165
+												'class'            => 'form-control-sm ' . (isset($field['class']) ? $field['class'] : ''),
166
+												'value'            => $invoice->get($key, 'edit'),
167 167
 												'options'          => $field['options'],
168 168
 												'data-allow-clear' => 'false',
169 169
 												'select2'          => true,
@@ -178,9 +178,9 @@  discard block
 block discarded – undo
178 178
 												'name'        => 'wpinv_' . $key,
179 179
 												'label'       => $field['label'],
180 180
 												'label_type'  => 'vertical',
181
-												'placeholder' => isset( $field['placeholder'] ) ? $field['placeholder'] : '',
182
-												'class'       => 'form-control-sm ' . ( isset( $field['class'] ) ? $field['class'] : '' ),
183
-												'value'       => $invoice->get( $key, 'edit' ),
181
+												'placeholder' => isset($field['placeholder']) ? $field['placeholder'] : '',
182
+												'class'       => 'form-control-sm ' . (isset($field['class']) ? $field['class'] : ''),
183
+												'value'       => $invoice->get($key, 'edit'),
184 184
 											),
185 185
 											true
186 186
 										);
@@ -191,8 +191,8 @@  discard block
 block discarded – undo
191 191
 						<?php endforeach; ?>
192 192
 					</div>
193 193
 
194
-					<?php if ( ! apply_filters( 'getpaid_use_new_invoice_items_metabox', false ) ) : ?>
195
-						<?php do_action( 'wpinv_meta_box_before_invoice_template_row', $invoice->get_id() ); ?>
194
+					<?php if (!apply_filters('getpaid_use_new_invoice_items_metabox', false)) : ?>
195
+						<?php do_action('wpinv_meta_box_before_invoice_template_row', $invoice->get_id()); ?>
196 196
 
197 197
 						<div class="row">
198 198
 							<div class="col-12 col-sm-6">
@@ -201,14 +201,14 @@  discard block
 block discarded – undo
201 201
 										array(
202 202
 											'id'          => 'wpinv_template',
203 203
 											'name'        => 'wpinv_template',
204
-											'label'       => __( 'Template', 'invoicing' ),
204
+											'label'       => __('Template', 'invoicing'),
205 205
 											'label_type'  => 'vertical',
206
-											'placeholder' => __( 'Choose a template', 'invoicing' ),
206
+											'placeholder' => __('Choose a template', 'invoicing'),
207 207
 											'class'       => 'form-control-sm',
208
-											'value'       => $invoice->get_template( 'edit' ),
208
+											'value'       => $invoice->get_template('edit'),
209 209
 											'options'     => array(
210
-												'quantity' => __( 'Quantity', 'invoicing' ),
211
-												'hours'    => __( 'Hours', 'invoicing' ),
210
+												'quantity' => __('Quantity', 'invoicing'),
211
+												'hours'    => __('Hours', 'invoicing'),
212 212
 											),
213 213
 											'data-allow-clear' => 'false',
214 214
 											'select2'     => true,
@@ -225,11 +225,11 @@  discard block
 block discarded – undo
225 225
 										array(
226 226
 											'id'          => 'wpinv_currency',
227 227
 											'name'        => 'wpinv_currency',
228
-											'label'       => __( 'Currency', 'invoicing' ),
228
+											'label'       => __('Currency', 'invoicing'),
229 229
 											'label_type'  => 'vertical',
230
-											'placeholder' => __( 'Select Invoice Currency', 'invoicing' ),
230
+											'placeholder' => __('Select Invoice Currency', 'invoicing'),
231 231
 											'class'       => 'form-control-sm getpaid-recalculate-prices-on-change',
232
-											'value'       => $invoice->get_currency( 'edit' ),
232
+											'value'       => $invoice->get_currency('edit'),
233 233
 											'required'    => false,
234 234
 											'data-allow-clear' => 'false',
235 235
 											'select2'     => true,
@@ -242,7 +242,7 @@  discard block
 block discarded – undo
242 242
 							</div>
243 243
 						</div>
244 244
 
245
-						<?php do_action( 'wpinv_meta_box_invoice_template_row', $invoice->get_id() ); ?>
245
+						<?php do_action('wpinv_meta_box_invoice_template_row', $invoice->get_id()); ?>
246 246
 					<?php endif; ?>
247 247
 
248 248
 					<div class="row">
@@ -253,11 +253,11 @@  discard block
 block discarded – undo
253 253
 										'type'        => 'text',
254 254
 										'id'          => 'wpinv_company_id',
255 255
 										'name'        => 'wpinv_company_id',
256
-										'label'       => __( 'Company ID', 'invoicing' ),
256
+										'label'       => __('Company ID', 'invoicing'),
257 257
 										'label_type'  => 'vertical',
258 258
 										'placeholder' => '',
259 259
 										'class'       => 'form-control-sm',
260
-										'value'       => $invoice->get_company_id( 'edit' ),
260
+										'value'       => $invoice->get_company_id('edit'),
261 261
 									),
262 262
 									true
263 263
 								);
@@ -265,7 +265,7 @@  discard block
 block discarded – undo
265 265
 						</div>
266 266
 					</div>
267 267
 
268
-					<?php do_action( 'getpaid_after_metabox_invoice_address', $invoice ); ?>
268
+					<?php do_action('getpaid_after_metabox_invoice_address', $invoice); ?>
269 269
 			</div>
270 270
 		<?php
271 271
 	}
@@ -276,51 +276,51 @@  discard block
 block discarded – undo
276 276
 	 * @param int $post_id
277 277
 	 * @param array $posted the posted data.
278 278
 	 */
279
-	public static function save( $post_id, $posted ) {
279
+	public static function save($post_id, $posted) {
280 280
 
281 281
 		// Prepare the invoice.
282
-		$invoice = new WPInv_Invoice( $post_id );
282
+		$invoice = new WPInv_Invoice($post_id);
283 283
 
284 284
 		// Load new data.
285 285
 		$invoice->set_props(
286 286
 			array(
287
-				'template'       => isset( $posted['wpinv_template'] ) ? wpinv_clean( $posted['wpinv_template'] ) : null,
288
-				'email_cc'       => isset( $posted['wpinv_cc'] ) ? wpinv_clean( $posted['wpinv_cc'] ) : null,
289
-				'disable_taxes'  => ! empty( $posted['disable_taxes'] ),
290
-				'currency'       => isset( $posted['wpinv_currency'] ) ? wpinv_clean( $posted['wpinv_currency'] ) : null,
291
-				'gateway'        => ( $invoice->needs_payment() && isset( $posted['wpinv_gateway'] ) ) ? wpinv_clean( $posted['wpinv_gateway'] ) : null,
292
-				'address'        => isset( $posted['wpinv_address'] ) ? wpinv_clean( $posted['wpinv_address'] ) : null,
293
-				'vat_number'     => isset( $posted['wpinv_vat_number'] ) ? wpinv_clean( $posted['wpinv_vat_number'] ) : null,
294
-				'company'        => isset( $posted['wpinv_company'] ) ? wpinv_clean( $posted['wpinv_company'] ) : null,
295
-				'company_id'     => isset( $posted['wpinv_company_id'] ) ? wpinv_clean( $posted['wpinv_company_id'] ) : null,
296
-				'zip'            => isset( $posted['wpinv_zip'] ) ? wpinv_clean( $posted['wpinv_zip'] ) : null,
297
-				'state'          => isset( $posted['wpinv_state'] ) ? wpinv_clean( $posted['wpinv_state'] ) : null,
298
-				'city'           => isset( $posted['wpinv_city'] ) ? wpinv_clean( $posted['wpinv_city'] ) : null,
299
-				'country'        => isset( $posted['wpinv_country'] ) ? wpinv_clean( $posted['wpinv_country'] ) : null,
300
-				'phone'          => isset( $posted['wpinv_phone'] ) ? wpinv_clean( $posted['wpinv_phone'] ) : null,
301
-				'first_name'     => isset( $posted['wpinv_first_name'] ) ? wpinv_clean( $posted['wpinv_first_name'] ) : null,
302
-				'last_name'      => isset( $posted['wpinv_last_name'] ) ? wpinv_clean( $posted['wpinv_last_name'] ) : null,
303
-				'author'         => isset( $posted['post_author_override'] ) ? wpinv_clean( $posted['post_author_override'] ) : null,
304
-				'date_created'   => isset( $posted['date_created'] ) ? wpinv_clean( $posted['date_created'] ) : null,
305
-				'date_completed' => isset( $posted['wpinv_date_completed'] ) ? wpinv_clean( $posted['wpinv_date_completed'] ) : null,
306
-				'due_date'       => isset( $posted['wpinv_due_date'] ) ? wpinv_clean( $posted['wpinv_due_date'] ) : null,
307
-				'number'         => isset( $posted['wpinv_number'] ) ? wpinv_clean( $posted['wpinv_number'] ) : null,
308
-				'status'         => isset( $posted['wpinv_status'] ) ? wpinv_clean( $posted['wpinv_status'] ) : null,
287
+				'template'       => isset($posted['wpinv_template']) ? wpinv_clean($posted['wpinv_template']) : null,
288
+				'email_cc'       => isset($posted['wpinv_cc']) ? wpinv_clean($posted['wpinv_cc']) : null,
289
+				'disable_taxes'  => !empty($posted['disable_taxes']),
290
+				'currency'       => isset($posted['wpinv_currency']) ? wpinv_clean($posted['wpinv_currency']) : null,
291
+				'gateway'        => ($invoice->needs_payment() && isset($posted['wpinv_gateway'])) ? wpinv_clean($posted['wpinv_gateway']) : null,
292
+				'address'        => isset($posted['wpinv_address']) ? wpinv_clean($posted['wpinv_address']) : null,
293
+				'vat_number'     => isset($posted['wpinv_vat_number']) ? wpinv_clean($posted['wpinv_vat_number']) : null,
294
+				'company'        => isset($posted['wpinv_company']) ? wpinv_clean($posted['wpinv_company']) : null,
295
+				'company_id'     => isset($posted['wpinv_company_id']) ? wpinv_clean($posted['wpinv_company_id']) : null,
296
+				'zip'            => isset($posted['wpinv_zip']) ? wpinv_clean($posted['wpinv_zip']) : null,
297
+				'state'          => isset($posted['wpinv_state']) ? wpinv_clean($posted['wpinv_state']) : null,
298
+				'city'           => isset($posted['wpinv_city']) ? wpinv_clean($posted['wpinv_city']) : null,
299
+				'country'        => isset($posted['wpinv_country']) ? wpinv_clean($posted['wpinv_country']) : null,
300
+				'phone'          => isset($posted['wpinv_phone']) ? wpinv_clean($posted['wpinv_phone']) : null,
301
+				'first_name'     => isset($posted['wpinv_first_name']) ? wpinv_clean($posted['wpinv_first_name']) : null,
302
+				'last_name'      => isset($posted['wpinv_last_name']) ? wpinv_clean($posted['wpinv_last_name']) : null,
303
+				'author'         => isset($posted['post_author_override']) ? wpinv_clean($posted['post_author_override']) : null,
304
+				'date_created'   => isset($posted['date_created']) ? wpinv_clean($posted['date_created']) : null,
305
+				'date_completed' => isset($posted['wpinv_date_completed']) ? wpinv_clean($posted['wpinv_date_completed']) : null,
306
+				'due_date'       => isset($posted['wpinv_due_date']) ? wpinv_clean($posted['wpinv_due_date']) : null,
307
+				'number'         => isset($posted['wpinv_number']) ? wpinv_clean($posted['wpinv_number']) : null,
308
+				'status'         => isset($posted['wpinv_status']) ? wpinv_clean($posted['wpinv_status']) : null,
309 309
 			)
310 310
 		);
311 311
 
312 312
 		// Discount code.
313
-		if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
313
+		if (!$invoice->is_paid() && !$invoice->is_refunded()) {
314 314
 
315
-			if ( isset( $posted['wpinv_discount_code'] ) ) {
316
-				$invoice->set_discount_code( wpinv_clean( $posted['wpinv_discount_code'] ) );
315
+			if (isset($posted['wpinv_discount_code'])) {
316
+				$invoice->set_discount_code(wpinv_clean($posted['wpinv_discount_code']));
317 317
 			}
318 318
 
319
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
320
-			if ( $discount->exists() ) {
321
-				$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
319
+			$discount = new WPInv_Discount($invoice->get_discount_code());
320
+			if ($discount->exists()) {
321
+				$invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
322 322
 			} else {
323
-				$invoice->remove_discount( 'discount_code' );
323
+				$invoice->remove_discount('discount_code');
324 324
 			}
325 325
 
326 326
 			// Recalculate totals.
@@ -329,16 +329,16 @@  discard block
 block discarded – undo
329 329
 		}
330 330
 
331 331
 		// If we're creating a new user...
332
-		if ( ! empty( $posted['wpinv_new_user'] ) && is_email( stripslashes( $posted['wpinv_email'] ) ) ) {
332
+		if (!empty($posted['wpinv_new_user']) && is_email(stripslashes($posted['wpinv_email']))) {
333 333
 
334 334
 			// Attempt to create the user.
335
-			$user = wpinv_create_user( sanitize_email( stripslashes( $posted['wpinv_email'] ) ), $invoice->get_first_name() . $invoice->get_last_name() );
335
+			$user = wpinv_create_user(sanitize_email(stripslashes($posted['wpinv_email'])), $invoice->get_first_name() . $invoice->get_last_name());
336 336
 
337 337
 			// If successful, update the invoice author.
338
-			if ( is_numeric( $user ) ) {
339
-				$invoice->set_author( $user );
338
+			if (is_numeric($user)) {
339
+				$invoice->set_author($user);
340 340
 			} else {
341
-				wpinv_error_log( $user->get_error_message(), __( 'Invoice add new user', 'invoicing' ), __FILE__, __LINE__ );
341
+				wpinv_error_log($user->get_error_message(), __('Invoice add new user', 'invoicing'), __FILE__, __LINE__);
342 342
 			}
343 343
 		}
344 344
 
@@ -349,22 +349,22 @@  discard block
 block discarded – undo
349 349
 		$invoice->save();
350 350
 
351 351
 		// Save the user address.
352
-		getpaid_save_invoice_user_address( $invoice );
352
+		getpaid_save_invoice_user_address($invoice);
353 353
 
354 354
 		// Undo do not send new invoice notifications.
355 355
 		$GLOBALS['wpinv_skip_invoice_notification'] = false;
356 356
 
357 357
 		// (Maybe) send new user notification.
358
-		$should_send_notification = wpinv_get_option( 'disable_new_user_emails' );
359
-		if ( ! empty( $user ) && is_numeric( $user ) && apply_filters( 'getpaid_send_new_user_notification', empty( $should_send_notification ) ) ) {
360
-			wp_send_new_user_notifications( $user, 'user' );
358
+		$should_send_notification = wpinv_get_option('disable_new_user_emails');
359
+		if (!empty($user) && is_numeric($user) && apply_filters('getpaid_send_new_user_notification', empty($should_send_notification))) {
360
+			wp_send_new_user_notifications($user, 'user');
361 361
 		}
362 362
 
363
-		if ( ! empty( $posted['send_to_customer'] ) && ! $invoice->is_draft() ) {
364
-			getpaid()->get( 'invoice_emails' )->user_invoice( $invoice, true );
363
+		if (!empty($posted['send_to_customer']) && !$invoice->is_draft()) {
364
+			getpaid()->get('invoice_emails')->user_invoice($invoice, true);
365 365
 		}
366 366
 
367 367
 		// Fires after an invoice is saved.
368
-		do_action( 'wpinv_invoice_metabox_saved', $invoice );
368
+		do_action('wpinv_invoice_metabox_saved', $invoice);
369 369
 	}
370 370
 }
Please login to merge, or discard this patch.
includes/payments/class-getpaid-checkout.php 2 patches
Indentation   +309 added lines, -309 removed lines patch added patch discarded remove patch
@@ -12,184 +12,184 @@  discard block
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Checkout {
14 14
 
15
-	/**
16
-	 * @var GetPaid_Payment_Form_Submission
17
-	 */
18
-	protected $payment_form_submission;
19
-
20
-	/**
21
-	 * Class constructor.
22
-	 *
23
-	 * @param GetPaid_Payment_Form_Submission $submission
24
-	 */
25
-	public function __construct( $submission ) {
26
-		$this->payment_form_submission = $submission;
27
-	}
28
-
29
-	/**
30
-	 * Processes the checkout.
31
-	 *
32
-	 */
33
-	public function process_checkout() {
34
-
35
-		// Validate the submission.
36
-		$this->validate_submission();
37
-
38
-		// Prepare the invoice.
39
-		$items      = $this->get_submission_items();
40
-		$invoice    = $this->get_submission_invoice();
41
-		$invoice    = $this->process_submission_invoice( $invoice, $items );
42
-		$prepared   = $this->prepare_submission_data_for_saving();
43
-
44
-		$this->prepare_billing_info( $invoice );
45
-
46
-		$shipping   = $this->prepare_shipping_info( $invoice );
47
-
48
-		// Save the invoice.
49
-		$invoice->set_is_viewed( true );
50
-		$invoice->recalculate_total();
15
+    /**
16
+     * @var GetPaid_Payment_Form_Submission
17
+     */
18
+    protected $payment_form_submission;
19
+
20
+    /**
21
+     * Class constructor.
22
+     *
23
+     * @param GetPaid_Payment_Form_Submission $submission
24
+     */
25
+    public function __construct( $submission ) {
26
+        $this->payment_form_submission = $submission;
27
+    }
28
+
29
+    /**
30
+     * Processes the checkout.
31
+     *
32
+     */
33
+    public function process_checkout() {
34
+
35
+        // Validate the submission.
36
+        $this->validate_submission();
37
+
38
+        // Prepare the invoice.
39
+        $items      = $this->get_submission_items();
40
+        $invoice    = $this->get_submission_invoice();
41
+        $invoice    = $this->process_submission_invoice( $invoice, $items );
42
+        $prepared   = $this->prepare_submission_data_for_saving();
43
+
44
+        $this->prepare_billing_info( $invoice );
45
+
46
+        $shipping   = $this->prepare_shipping_info( $invoice );
47
+
48
+        // Save the invoice.
49
+        $invoice->set_is_viewed( true );
50
+        $invoice->recalculate_total();
51 51
         $invoice->save();
52 52
 
53
-		do_action( 'getpaid_checkout_invoice_updated', $invoice );
53
+        do_action( 'getpaid_checkout_invoice_updated', $invoice );
54 54
 
55
-		// Send to the gateway.
56
-		$this->post_process_submission( $invoice, $prepared, $shipping );
57
-	}
55
+        // Send to the gateway.
56
+        $this->post_process_submission( $invoice, $prepared, $shipping );
57
+    }
58 58
 
59
-	/**
60
-	 * Validates the submission.
61
-	 *
62
-	 */
63
-	protected function validate_submission() {
59
+    /**
60
+     * Validates the submission.
61
+     *
62
+     */
63
+    protected function validate_submission() {
64 64
 
65
-		$submission = $this->payment_form_submission;
66
-		$data       = $submission->get_data();
65
+        $submission = $this->payment_form_submission;
66
+        $data       = $submission->get_data();
67 67
 
68
-		// Do we have an error?
68
+        // Do we have an error?
69 69
         if ( ! empty( $submission->last_error ) ) {
70
-			wp_send_json_error( $submission->last_error );
70
+            wp_send_json_error( $submission->last_error );
71 71
         }
72 72
 
73
-		// We need a billing email.
73
+        // We need a billing email.
74 74
         if ( ! $submission->has_billing_email() ) {
75 75
             wp_send_json_error( __( 'Provide a valid billing email.', 'invoicing' ) );
76
-		}
76
+        }
77 77
 
78
-		// Non-recurring gateways should not be allowed to process recurring invoices.
79
-		if ( $submission->should_collect_payment_details() && $submission->has_recurring && ! wpinv_gateway_support_subscription( $data['wpi-gateway'] ) ) {
80
-			wp_send_json_error( __( 'The selected payment gateway does not support subscription payments.', 'invoicing' ) );
81
-		}
78
+        // Non-recurring gateways should not be allowed to process recurring invoices.
79
+        if ( $submission->should_collect_payment_details() && $submission->has_recurring && ! wpinv_gateway_support_subscription( $data['wpi-gateway'] ) ) {
80
+            wp_send_json_error( __( 'The selected payment gateway does not support subscription payments.', 'invoicing' ) );
81
+        }
82 82
 
83
-		// Ensure the gateway is active.
84
-		if ( $submission->should_collect_payment_details() && ! wpinv_is_gateway_active( $data['wpi-gateway'] ) ) {
85
-			wp_send_json_error( __( 'The selected payment gateway is not active', 'invoicing' ) );
86
-		}
83
+        // Ensure the gateway is active.
84
+        if ( $submission->should_collect_payment_details() && ! wpinv_is_gateway_active( $data['wpi-gateway'] ) ) {
85
+            wp_send_json_error( __( 'The selected payment gateway is not active', 'invoicing' ) );
86
+        }
87 87
 
88
-		// Clear any existing errors.
89
-		wpinv_clear_errors();
88
+        // Clear any existing errors.
89
+        wpinv_clear_errors();
90 90
 
91
-		// Allow themes and plugins to hook to errors
92
-		do_action( 'getpaid_checkout_error_checks', $submission );
91
+        // Allow themes and plugins to hook to errors
92
+        do_action( 'getpaid_checkout_error_checks', $submission );
93 93
 
94
-		// Do we have any errors?
94
+        // Do we have any errors?
95 95
         if ( wpinv_get_errors() ) {
96 96
             wp_send_json_error( getpaid_get_errors_html() );
97
-		}
97
+        }
98 98
 
99
-	}
99
+    }
100 100
 
101
-	/**
102
-	 * Retrieves submission items.
103
-	 *
104
-	 * @return GetPaid_Form_Item[]
105
-	 */
106
-	protected function get_submission_items() {
101
+    /**
102
+     * Retrieves submission items.
103
+     *
104
+     * @return GetPaid_Form_Item[]
105
+     */
106
+    protected function get_submission_items() {
107 107
 
108
-		$items = $this->payment_form_submission->get_items();
108
+        $items = $this->payment_form_submission->get_items();
109 109
 
110 110
         // Ensure that we have items.
111 111
         if ( empty( $items ) && ! $this->payment_form_submission->has_fees() ) {
112 112
             wp_send_json_error( __( 'Please provide at least one item or amount.', 'invoicing' ) );
113
-		}
114
-
115
-		return $items;
116
-	}
117
-
118
-	/**
119
-	 * Retrieves submission invoice.
120
-	 *
121
-	 * @return WPInv_Invoice
122
-	 */
123
-	protected function get_submission_invoice() {
124
-		$submission = $this->payment_form_submission;
125
-
126
-		if ( ! $submission->has_invoice() ) {
127
-			$invoice = new WPInv_Invoice();
128
-			$invoice->set_created_via( 'payment_form' );
129
-			return $invoice;
130 113
         }
131 114
 
132
-		$invoice = $submission->get_invoice();
115
+        return $items;
116
+    }
117
+
118
+    /**
119
+     * Retrieves submission invoice.
120
+     *
121
+     * @return WPInv_Invoice
122
+     */
123
+    protected function get_submission_invoice() {
124
+        $submission = $this->payment_form_submission;
133 125
 
134
-		// Make sure that it is neither paid or refunded.
135
-		if ( $invoice->is_paid() || $invoice->is_refunded() ) {
136
-			wp_send_json_error( __( 'This invoice has already been paid for.', 'invoicing' ) );
137
-		}
126
+        if ( ! $submission->has_invoice() ) {
127
+            $invoice = new WPInv_Invoice();
128
+            $invoice->set_created_via( 'payment_form' );
129
+            return $invoice;
130
+        }
138 131
 
139
-		return $invoice;
140
-	}
132
+        $invoice = $submission->get_invoice();
141 133
 
142
-	/**
143
-	 * Processes the submission invoice.
144
-	 *
145
-	 * @param WPInv_Invoice $invoice
146
-	 * @param GetPaid_Form_Item[] $items
147
-	 * @return WPInv_Invoice
148
-	 */
149
-	protected function process_submission_invoice( $invoice, $items ) {
134
+        // Make sure that it is neither paid or refunded.
135
+        if ( $invoice->is_paid() || $invoice->is_refunded() ) {
136
+            wp_send_json_error( __( 'This invoice has already been paid for.', 'invoicing' ) );
137
+        }
150 138
 
151
-		$submission = $this->payment_form_submission;
139
+        return $invoice;
140
+    }
152 141
 
153
-		// Set-up the invoice details.
154
-		$invoice->set_email( sanitize_email( $submission->get_billing_email() ) );
155
-		$invoice->set_user_id( $this->get_submission_customer() );
156
-		$invoice->set_payment_form( absint( $submission->get_payment_form()->get_id() ) );
142
+    /**
143
+     * Processes the submission invoice.
144
+     *
145
+     * @param WPInv_Invoice $invoice
146
+     * @param GetPaid_Form_Item[] $items
147
+     * @return WPInv_Invoice
148
+     */
149
+    protected function process_submission_invoice( $invoice, $items ) {
150
+
151
+        $submission = $this->payment_form_submission;
152
+
153
+        // Set-up the invoice details.
154
+        $invoice->set_email( sanitize_email( $submission->get_billing_email() ) );
155
+        $invoice->set_user_id( $this->get_submission_customer() );
156
+        $invoice->set_payment_form( absint( $submission->get_payment_form()->get_id() ) );
157 157
         $invoice->set_items( $items );
158 158
         $invoice->set_fees( $submission->get_fees() );
159 159
         $invoice->set_taxes( $submission->get_taxes() );
160
-		$invoice->set_discounts( $submission->get_discounts() );
161
-		$invoice->set_gateway( $submission->get_field( 'wpi-gateway' ) );
162
-		$invoice->set_currency( $submission->get_currency() );
160
+        $invoice->set_discounts( $submission->get_discounts() );
161
+        $invoice->set_gateway( $submission->get_field( 'wpi-gateway' ) );
162
+        $invoice->set_currency( $submission->get_currency() );
163 163
 
164
-		if ( $submission->has_shipping() ) {
165
-			$invoice->set_shipping( $submission->get_shipping() );
166
-		}
164
+        if ( $submission->has_shipping() ) {
165
+            $invoice->set_shipping( $submission->get_shipping() );
166
+        }
167 167
 
168
-		$address_confirmed = $submission->get_field( 'confirm-address' );
169
-		$invoice->set_address_confirmed( ! empty( $address_confirmed ) );
168
+        $address_confirmed = $submission->get_field( 'confirm-address' );
169
+        $invoice->set_address_confirmed( ! empty( $address_confirmed ) );
170 170
 
171
-		if ( $submission->has_discount_code() ) {
171
+        if ( $submission->has_discount_code() ) {
172 172
             $invoice->set_discount_code( $submission->get_discount_code() );
173
-		}
174
-
175
-		getpaid_maybe_add_default_address( $invoice );
176
-		return $invoice;
177
-	}
178
-
179
-	/**
180
-	 * Retrieves the submission's customer.
181
-	 *
182
-	 * @return int The customer id.
183
-	 */
184
-	protected function get_submission_customer() {
185
-		$submission = $this->payment_form_submission;
186
-
187
-		// If this is an existing invoice...
188
-		if ( $submission->has_invoice() ) {
189
-			return $submission->get_invoice()->get_user_id();
190
-		}
191
-
192
-		// (Maybe) create the user.
173
+        }
174
+
175
+        getpaid_maybe_add_default_address( $invoice );
176
+        return $invoice;
177
+    }
178
+
179
+    /**
180
+     * Retrieves the submission's customer.
181
+     *
182
+     * @return int The customer id.
183
+     */
184
+    protected function get_submission_customer() {
185
+        $submission = $this->payment_form_submission;
186
+
187
+        // If this is an existing invoice...
188
+        if ( $submission->has_invoice() ) {
189
+            return $submission->get_invoice()->get_user_id();
190
+        }
191
+
192
+        // (Maybe) create the user.
193 193
         $user = get_current_user_id();
194 194
 
195 195
         if ( empty( $user ) ) {
@@ -197,16 +197,16 @@  discard block
 block discarded – undo
197 197
         }
198 198
 
199 199
         if ( empty( $user ) ) {
200
-			$name = array( $submission->get_field( 'wpinv_first_name', 'billing' ), $submission->get_field( 'wpinv_last_name', 'billing' ) );
201
-			$name = implode( '', array_filter( $name ) );
200
+            $name = array( $submission->get_field( 'wpinv_first_name', 'billing' ), $submission->get_field( 'wpinv_last_name', 'billing' ) );
201
+            $name = implode( '', array_filter( $name ) );
202 202
             $user = wpinv_create_user( $submission->get_billing_email(), $name );
203 203
 
204
-			// (Maybe) send new user notification.
205
-			$should_send_notification = wpinv_get_option( 'disable_new_user_emails' );
206
-			if ( ! empty( $user ) && is_numeric( $user ) && apply_filters( 'getpaid_send_new_user_notification', empty( $should_send_notification ), $user ) ) {
207
-				wp_send_new_user_notifications( $user, 'user' );
208
-			}
209
-		}
204
+            // (Maybe) send new user notification.
205
+            $should_send_notification = wpinv_get_option( 'disable_new_user_emails' );
206
+            if ( ! empty( $user ) && is_numeric( $user ) && apply_filters( 'getpaid_send_new_user_notification', empty( $should_send_notification ), $user ) ) {
207
+                wp_send_new_user_notifications( $user, 'user' );
208
+            }
209
+        }
210 210
 
211 211
         if ( is_wp_error( $user ) ) {
212 212
             wp_send_json_error( $user->get_error_message() );
@@ -214,49 +214,49 @@  discard block
 block discarded – undo
214 214
 
215 215
         if ( is_numeric( $user ) ) {
216 216
             return $user;
217
-		}
217
+        }
218 218
 
219
-		return $user->ID;
219
+        return $user->ID;
220 220
 
221
-	}
221
+    }
222 222
 
223
-	/**
223
+    /**
224 224
      * Prepares submission data for saving to the database.
225 225
      *
226
-	 * @return array
226
+     * @return array
227 227
      */
228 228
     public function prepare_submission_data_for_saving() {
229 229
 
230
-		$submission = $this->payment_form_submission;
230
+        $submission = $this->payment_form_submission;
231 231
 
232
-		// Prepared submission details.
232
+        // Prepared submission details.
233 233
         $prepared = array(
234
-			'all'  => array(),
235
-			'meta' => array(),
236
-		);
234
+            'all'  => array(),
235
+            'meta' => array(),
236
+        );
237 237
 
238 238
         // Raw submission details.
239
-		$data     = $submission->get_data();
239
+        $data     = $submission->get_data();
240 240
 
241
-		// Loop through the submitted details.
241
+        // Loop through the submitted details.
242 242
         foreach ( $submission->get_payment_form()->get_elements() as $field ) {
243 243
 
244
-			// Skip premade fields.
244
+            // Skip premade fields.
245 245
             if ( ! empty( $field['premade'] ) ) {
246 246
                 continue;
247 247
             }
248 248
 
249
-			// Ensure address is provided.
250
-			if ( 'address' === $field['type'] ) {
249
+            // Ensure address is provided.
250
+            if ( 'address' === $field['type'] ) {
251 251
                 $address_type = isset( $field['address_type'] ) && 'shipping' === $field['address_type'] ? 'shipping' : 'billing';
252 252
 
253
-				foreach ( $field['fields'] as $address_field ) {
253
+                foreach ( $field['fields'] as $address_field ) {
254 254
 
255
-					if ( ! empty( $address_field['visible'] ) && ! empty( $address_field['required'] ) && '' === trim( $_POST[ $address_type ][ $address_field['name'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
256
-						wp_send_json_error( __( 'Please fill all required fields.', 'invoicing' ) );
257
-					}
258
-			}
259
-		}
255
+                    if ( ! empty( $address_field['visible'] ) && ! empty( $address_field['required'] ) && '' === trim( $_POST[ $address_type ][ $address_field['name'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
256
+                        wp_send_json_error( __( 'Please fill all required fields.', 'invoicing' ) );
257
+                    }
258
+            }
259
+        }
260 260
 
261 261
             // If it is required and not set, abort.
262 262
             if ( ! $submission->is_required_field_set( $field ) ) {
@@ -266,31 +266,31 @@  discard block
 block discarded – undo
266 266
             // Handle misc fields.
267 267
             if ( isset( $data[ $field['id'] ] ) ) {
268 268
 
269
-				// Uploads.
270
-				if ( 'file_upload' === $field['type'] ) {
271
-					$max_file_num = empty( $field['max_file_num'] ) ? 1 : absint( $field['max_file_num'] );
269
+                // Uploads.
270
+                if ( 'file_upload' === $field['type'] ) {
271
+                    $max_file_num = empty( $field['max_file_num'] ) ? 1 : absint( $field['max_file_num'] );
272 272
 
273
-					if ( count( $data[ $field['id'] ] ) > $max_file_num ) {
274
-						wp_send_json_error( __( 'Maximum number of allowed files exceeded.', 'invoicing' ) );
275
-					}
273
+                    if ( count( $data[ $field['id'] ] ) > $max_file_num ) {
274
+                        wp_send_json_error( __( 'Maximum number of allowed files exceeded.', 'invoicing' ) );
275
+                    }
276 276
 
277
-					$value = array();
277
+                    $value = array();
278 278
 
279
-					foreach ( $data[ $field['id'] ] as $url => $name ) {
280
-						$value[] = sprintf(
281
-							'<a href="%s" target="_blank">%s</a>',
282
-							esc_url_raw( $url ),
283
-							esc_html( $name )
284
-						);
285
-					}
279
+                    foreach ( $data[ $field['id'] ] as $url => $name ) {
280
+                        $value[] = sprintf(
281
+                            '<a href="%s" target="_blank">%s</a>',
282
+                            esc_url_raw( $url ),
283
+                            esc_html( $name )
284
+                        );
285
+                    }
286 286
 
287
-					$value = implode( ' | ', $value );
287
+                    $value = implode( ' | ', $value );
288 288
 
289
-				} elseif ( 'checkbox' === $field['type'] ) {
290
-					$value = ! empty( $data[ $field['id'] ] ) ? __( 'Yes', 'invoicing' ) : __( 'No', 'invoicing' );
291
-				} else {
292
-					$value = wp_kses_post( $data[ $field['id'] ] );
293
-				}
289
+                } elseif ( 'checkbox' === $field['type'] ) {
290
+                    $value = ! empty( $data[ $field['id'] ] ) ? __( 'Yes', 'invoicing' ) : __( 'No', 'invoicing' );
291
+                } else {
292
+                    $value = wp_kses_post( $data[ $field['id'] ] );
293
+                }
294 294
 
295 295
                 $label = $field['id'];
296 296
 
@@ -298,192 +298,192 @@  discard block
 block discarded – undo
298 298
                     $label = $field['label'];
299 299
                 }
300 300
 
301
-				if ( ! empty( $field['add_meta'] ) ) {
302
-					$prepared['meta'][ wpinv_clean( $label ) ] = wp_kses_post_deep( $value );
303
-				}
304
-				$prepared['all'][ wpinv_clean( $label ) ] = wp_kses_post_deep( $value );
301
+                if ( ! empty( $field['add_meta'] ) ) {
302
+                    $prepared['meta'][ wpinv_clean( $label ) ] = wp_kses_post_deep( $value );
303
+                }
304
+                $prepared['all'][ wpinv_clean( $label ) ] = wp_kses_post_deep( $value );
305 305
 
306 306
             }
307
-		}
307
+        }
308 308
 
309
-		return $prepared;
309
+        return $prepared;
310 310
 
311
-	}
311
+    }
312 312
 
313
-	/**
313
+    /**
314 314
      * Retrieves address details.
315 315
      *
316
-	 * @return array
317
-	 * @param WPInv_Invoice $invoice
318
-	 * @param string $type
316
+     * @return array
317
+     * @param WPInv_Invoice $invoice
318
+     * @param string $type
319 319
      */
320 320
     public function prepare_address_details( $invoice, $type = 'billing' ) {
321 321
 
322
-		$data     = $this->payment_form_submission->get_data();
323
-		$type     = sanitize_key( $type );
324
-		$address  = array();
325
-		$prepared = array();
322
+        $data     = $this->payment_form_submission->get_data();
323
+        $type     = sanitize_key( $type );
324
+        $address  = array();
325
+        $prepared = array();
326 326
 
327
-		if ( ! empty( $data[ $type ] ) ) {
328
-			$address = $data[ $type ];
329
-		}
327
+        if ( ! empty( $data[ $type ] ) ) {
328
+            $address = $data[ $type ];
329
+        }
330 330
 
331
-		// Clean address details.
332
-		foreach ( $address as $key => $value ) {
333
-			$key             = sanitize_key( $key );
334
-			$key             = str_replace( 'wpinv_', '', $key );
335
-			$value           = wpinv_clean( $value );
336
-			$prepared[ $key ] = apply_filters( "getpaid_checkout_{$type}_address_$key", $value, $this->payment_form_submission, $invoice );
337
-		}
331
+        // Clean address details.
332
+        foreach ( $address as $key => $value ) {
333
+            $key             = sanitize_key( $key );
334
+            $key             = str_replace( 'wpinv_', '', $key );
335
+            $value           = wpinv_clean( $value );
336
+            $prepared[ $key ] = apply_filters( "getpaid_checkout_{$type}_address_$key", $value, $this->payment_form_submission, $invoice );
337
+        }
338 338
 
339
-		// Filter address details.
340
-		$prepared = apply_filters( "getpaid_checkout_{$type}_address", $prepared, $this->payment_form_submission, $invoice );
339
+        // Filter address details.
340
+        $prepared = apply_filters( "getpaid_checkout_{$type}_address", $prepared, $this->payment_form_submission, $invoice );
341 341
 
342
-		// Remove non-whitelisted values.
343
-		return array_filter( $prepared, 'getpaid_is_address_field_whitelisted', ARRAY_FILTER_USE_KEY );
342
+        // Remove non-whitelisted values.
343
+        return array_filter( $prepared, 'getpaid_is_address_field_whitelisted', ARRAY_FILTER_USE_KEY );
344 344
 
345
-	}
345
+    }
346 346
 
347
-	/**
347
+    /**
348 348
      * Prepares the billing details.
349 349
      *
350
-	 * @return array
351
-	 * @param WPInv_Invoice $invoice
350
+     * @return array
351
+     * @param WPInv_Invoice $invoice
352 352
      */
353 353
     protected function prepare_billing_info( &$invoice ) {
354 354
 
355
-		$billing_address = $this->prepare_address_details( $invoice, 'billing' );
355
+        $billing_address = $this->prepare_address_details( $invoice, 'billing' );
356 356
 
357
-		// Update the invoice with the billing details.
358
-		$invoice->set_props( $billing_address );
357
+        // Update the invoice with the billing details.
358
+        $invoice->set_props( $billing_address );
359 359
 
360
-	}
360
+    }
361 361
 
362
-	/**
362
+    /**
363 363
      * Prepares the shipping details.
364 364
      *
365
-	 * @return array
366
-	 * @param WPInv_Invoice $invoice
365
+     * @return array
366
+     * @param WPInv_Invoice $invoice
367 367
      */
368 368
     protected function prepare_shipping_info( $invoice ) {
369 369
 
370
-		$data = $this->payment_form_submission->get_data();
370
+        $data = $this->payment_form_submission->get_data();
371 371
 
372
-		if ( empty( $data['same-shipping-address'] ) ) {
373
-			return $this->prepare_address_details( $invoice, 'shipping' );
374
-		}
372
+        if ( empty( $data['same-shipping-address'] ) ) {
373
+            return $this->prepare_address_details( $invoice, 'shipping' );
374
+        }
375 375
 
376
-		return $this->prepare_address_details( $invoice, 'billing' );
376
+        return $this->prepare_address_details( $invoice, 'billing' );
377 377
 
378
-	}
378
+    }
379 379
 
380
-	/**
381
-	 * Confirms the submission is valid and send users to the gateway.
382
-	 *
383
-	 * @param WPInv_Invoice $invoice
384
-	 * @param array $prepared_payment_form_data
385
-	 * @param array $shipping
386
-	 */
387
-	protected function post_process_submission( $invoice, $prepared_payment_form_data, $shipping ) {
380
+    /**
381
+     * Confirms the submission is valid and send users to the gateway.
382
+     *
383
+     * @param WPInv_Invoice $invoice
384
+     * @param array $prepared_payment_form_data
385
+     * @param array $shipping
386
+     */
387
+    protected function post_process_submission( $invoice, $prepared_payment_form_data, $shipping ) {
388 388
 
389
-		// Ensure the invoice exists.
389
+        // Ensure the invoice exists.
390 390
         if ( ! $invoice->exists() ) {
391 391
             wp_send_json_error( __( 'An error occured while saving your invoice. Please try again.', 'invoicing' ) );
392 392
         }
393 393
 
394
-		// Save payment form data.
395
-		$prepared_payment_form_data = apply_filters( 'getpaid_prepared_payment_form_data', $prepared_payment_form_data, $invoice );
394
+        // Save payment form data.
395
+        $prepared_payment_form_data = apply_filters( 'getpaid_prepared_payment_form_data', $prepared_payment_form_data, $invoice );
396 396
         delete_post_meta( $invoice->get_id(), 'payment_form_data' );
397
-		delete_post_meta( $invoice->get_id(), 'additional_meta_data' );
398
-		if ( ! empty( $prepared_payment_form_data ) ) {
397
+        delete_post_meta( $invoice->get_id(), 'additional_meta_data' );
398
+        if ( ! empty( $prepared_payment_form_data ) ) {
399 399
 
400
-			if ( ! empty( $prepared_payment_form_data['all'] ) ) {
401
-				update_post_meta( $invoice->get_id(), 'payment_form_data', $prepared_payment_form_data['all'] );
402
-			}
400
+            if ( ! empty( $prepared_payment_form_data['all'] ) ) {
401
+                update_post_meta( $invoice->get_id(), 'payment_form_data', $prepared_payment_form_data['all'] );
402
+            }
403 403
 
404
-			if ( ! empty( $prepared_payment_form_data['meta'] ) ) {
405
-				update_post_meta( $invoice->get_id(), 'additional_meta_data', $prepared_payment_form_data['meta'] );
406
-			}
407
-		}
404
+            if ( ! empty( $prepared_payment_form_data['meta'] ) ) {
405
+                update_post_meta( $invoice->get_id(), 'additional_meta_data', $prepared_payment_form_data['meta'] );
406
+            }
407
+        }
408 408
 
409
-		// Save payment form data.
410
-		$shipping = apply_filters( 'getpaid_checkout_shipping_details', $shipping, $this->payment_form_submission );
409
+        // Save payment form data.
410
+        $shipping = apply_filters( 'getpaid_checkout_shipping_details', $shipping, $this->payment_form_submission );
411 411
         if ( ! empty( $shipping ) ) {
412 412
             update_post_meta( $invoice->get_id(), 'shipping_address', $shipping );
413
-		}
413
+        }
414 414
 
415
-		// Backwards compatibility.
415
+        // Backwards compatibility.
416 416
         add_filter( 'wp_redirect', array( $this, 'send_redirect_response' ) );
417 417
 
418
-		try {
419
-			$this->process_payment( $invoice );
420
-		} catch ( Exception $e ) {
421
-			wpinv_set_error( 'payment_error', $e->getMessage() );
422
-		}
418
+        try {
419
+            $this->process_payment( $invoice );
420
+        } catch ( Exception $e ) {
421
+            wpinv_set_error( 'payment_error', $e->getMessage() );
422
+        }
423 423
 
424 424
         // If we are here, there was an error.
425
-		wpinv_send_back_to_checkout( $invoice );
425
+        wpinv_send_back_to_checkout( $invoice );
426 426
 
427
-	}
427
+    }
428 428
 
429
-	/**
430
-	 * Processes the actual payment.
431
-	 *
432
-	 * @param WPInv_Invoice $invoice
433
-	 */
434
-	protected function process_payment( $invoice ) {
429
+    /**
430
+     * Processes the actual payment.
431
+     *
432
+     * @param WPInv_Invoice $invoice
433
+     */
434
+    protected function process_payment( $invoice ) {
435 435
 
436
-		// Clear any checkout errors.
437
-		wpinv_clear_errors();
436
+        // Clear any checkout errors.
437
+        wpinv_clear_errors();
438 438
 
439
-		// No need to send free invoices to the gateway.
440
-		if ( $invoice->is_free() ) {
441
-			$this->process_free_payment( $invoice );
442
-		}
439
+        // No need to send free invoices to the gateway.
440
+        if ( $invoice->is_free() ) {
441
+            $this->process_free_payment( $invoice );
442
+        }
443 443
 
444
-		$submission = $this->payment_form_submission;
444
+        $submission = $this->payment_form_submission;
445 445
 
446
-		// Fires before sending to the gateway.
447
-		do_action( 'getpaid_checkout_before_gateway', $invoice, $submission );
446
+        // Fires before sending to the gateway.
447
+        do_action( 'getpaid_checkout_before_gateway', $invoice, $submission );
448 448
 
449
-		// Allow the sumission data to be modified before it is sent to the gateway.
450
-		$submission_data    = $submission->get_data();
451
-		$submission_gateway = apply_filters( 'getpaid_gateway_submission_gateway', $invoice->get_gateway(), $submission, $invoice );
452
-		$submission_data    = apply_filters( 'getpaid_gateway_submission_data', $submission_data, $submission, $invoice );
449
+        // Allow the sumission data to be modified before it is sent to the gateway.
450
+        $submission_data    = $submission->get_data();
451
+        $submission_gateway = apply_filters( 'getpaid_gateway_submission_gateway', $invoice->get_gateway(), $submission, $invoice );
452
+        $submission_data    = apply_filters( 'getpaid_gateway_submission_data', $submission_data, $submission, $invoice );
453 453
 
454
-		// Validate the currency.
455
-		if ( ! apply_filters( "getpaid_gateway_{$submission_gateway}_is_valid_for_currency", true, $invoice->get_currency() ) ) {
456
-			wpinv_set_error( 'invalid_currency' );
457
-		}
454
+        // Validate the currency.
455
+        if ( ! apply_filters( "getpaid_gateway_{$submission_gateway}_is_valid_for_currency", true, $invoice->get_currency() ) ) {
456
+            wpinv_set_error( 'invalid_currency' );
457
+        }
458 458
 
459
-		// Check to see if we have any errors.
460
-		if ( wpinv_get_errors() ) {
461
-			wpinv_send_back_to_checkout( $invoice );
462
-		}
459
+        // Check to see if we have any errors.
460
+        if ( wpinv_get_errors() ) {
461
+            wpinv_send_back_to_checkout( $invoice );
462
+        }
463 463
 
464
-		// Send info to the gateway for payment processing
465
-		do_action( "getpaid_gateway_$submission_gateway", $invoice, $submission_data, $submission );
464
+        // Send info to the gateway for payment processing
465
+        do_action( "getpaid_gateway_$submission_gateway", $invoice, $submission_data, $submission );
466 466
 
467
-		// Backwards compatibility.
468
-		wpinv_send_to_gateway( $submission_gateway, $invoice );
467
+        // Backwards compatibility.
468
+        wpinv_send_to_gateway( $submission_gateway, $invoice );
469 469
 
470
-	}
470
+    }
471 471
 
472
-	/**
473
-	 * Marks the invoice as paid in case the checkout is free.
474
-	 *
475
-	 * @param WPInv_Invoice $invoice
476
-	 */
477
-	protected function process_free_payment( $invoice ) {
472
+    /**
473
+     * Marks the invoice as paid in case the checkout is free.
474
+     *
475
+     * @param WPInv_Invoice $invoice
476
+     */
477
+    protected function process_free_payment( $invoice ) {
478 478
 
479
-		$invoice->set_gateway( 'none' );
480
-		$invoice->add_note( __( "This is a free invoice and won't be sent to the payment gateway", 'invoicing' ), false, false, true );
481
-		$invoice->mark_paid();
482
-		wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
479
+        $invoice->set_gateway( 'none' );
480
+        $invoice->add_note( __( "This is a free invoice and won't be sent to the payment gateway", 'invoicing' ), false, false, true );
481
+        $invoice->mark_paid();
482
+        wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
483 483
 
484
-	}
484
+    }
485 485
 
486
-	/**
486
+    /**
487 487
      * Sends a redrect response to payment details.
488 488
      *
489 489
      */
Please login to merge, or discard this patch.
Spacing   +138 added lines, -138 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
  * Main Checkout Class.
@@ -22,7 +22,7 @@  discard block
 block discarded – undo
22 22
 	 *
23 23
 	 * @param GetPaid_Payment_Form_Submission $submission
24 24
 	 */
25
-	public function __construct( $submission ) {
25
+	public function __construct($submission) {
26 26
 		$this->payment_form_submission = $submission;
27 27
 	}
28 28
 
@@ -38,22 +38,22 @@  discard block
 block discarded – undo
38 38
 		// Prepare the invoice.
39 39
 		$items      = $this->get_submission_items();
40 40
 		$invoice    = $this->get_submission_invoice();
41
-		$invoice    = $this->process_submission_invoice( $invoice, $items );
41
+		$invoice    = $this->process_submission_invoice($invoice, $items);
42 42
 		$prepared   = $this->prepare_submission_data_for_saving();
43 43
 
44
-		$this->prepare_billing_info( $invoice );
44
+		$this->prepare_billing_info($invoice);
45 45
 
46
-		$shipping   = $this->prepare_shipping_info( $invoice );
46
+		$shipping = $this->prepare_shipping_info($invoice);
47 47
 
48 48
 		// Save the invoice.
49
-		$invoice->set_is_viewed( true );
49
+		$invoice->set_is_viewed(true);
50 50
 		$invoice->recalculate_total();
51 51
         $invoice->save();
52 52
 
53
-		do_action( 'getpaid_checkout_invoice_updated', $invoice );
53
+		do_action('getpaid_checkout_invoice_updated', $invoice);
54 54
 
55 55
 		// Send to the gateway.
56
-		$this->post_process_submission( $invoice, $prepared, $shipping );
56
+		$this->post_process_submission($invoice, $prepared, $shipping);
57 57
 	}
58 58
 
59 59
 	/**
@@ -66,34 +66,34 @@  discard block
 block discarded – undo
66 66
 		$data       = $submission->get_data();
67 67
 
68 68
 		// Do we have an error?
69
-        if ( ! empty( $submission->last_error ) ) {
70
-			wp_send_json_error( $submission->last_error );
69
+        if (!empty($submission->last_error)) {
70
+			wp_send_json_error($submission->last_error);
71 71
         }
72 72
 
73 73
 		// We need a billing email.
74
-        if ( ! $submission->has_billing_email() ) {
75
-            wp_send_json_error( __( 'Provide a valid billing email.', 'invoicing' ) );
74
+        if (!$submission->has_billing_email()) {
75
+            wp_send_json_error(__('Provide a valid billing email.', 'invoicing'));
76 76
 		}
77 77
 
78 78
 		// Non-recurring gateways should not be allowed to process recurring invoices.
79
-		if ( $submission->should_collect_payment_details() && $submission->has_recurring && ! wpinv_gateway_support_subscription( $data['wpi-gateway'] ) ) {
80
-			wp_send_json_error( __( 'The selected payment gateway does not support subscription payments.', 'invoicing' ) );
79
+		if ($submission->should_collect_payment_details() && $submission->has_recurring && !wpinv_gateway_support_subscription($data['wpi-gateway'])) {
80
+			wp_send_json_error(__('The selected payment gateway does not support subscription payments.', 'invoicing'));
81 81
 		}
82 82
 
83 83
 		// Ensure the gateway is active.
84
-		if ( $submission->should_collect_payment_details() && ! wpinv_is_gateway_active( $data['wpi-gateway'] ) ) {
85
-			wp_send_json_error( __( 'The selected payment gateway is not active', 'invoicing' ) );
84
+		if ($submission->should_collect_payment_details() && !wpinv_is_gateway_active($data['wpi-gateway'])) {
85
+			wp_send_json_error(__('The selected payment gateway is not active', 'invoicing'));
86 86
 		}
87 87
 
88 88
 		// Clear any existing errors.
89 89
 		wpinv_clear_errors();
90 90
 
91 91
 		// Allow themes and plugins to hook to errors
92
-		do_action( 'getpaid_checkout_error_checks', $submission );
92
+		do_action('getpaid_checkout_error_checks', $submission);
93 93
 
94 94
 		// Do we have any errors?
95
-        if ( wpinv_get_errors() ) {
96
-            wp_send_json_error( getpaid_get_errors_html() );
95
+        if (wpinv_get_errors()) {
96
+            wp_send_json_error(getpaid_get_errors_html());
97 97
 		}
98 98
 
99 99
 	}
@@ -108,8 +108,8 @@  discard block
 block discarded – undo
108 108
 		$items = $this->payment_form_submission->get_items();
109 109
 
110 110
         // Ensure that we have items.
111
-        if ( empty( $items ) && ! $this->payment_form_submission->has_fees() ) {
112
-            wp_send_json_error( __( 'Please provide at least one item or amount.', 'invoicing' ) );
111
+        if (empty($items) && !$this->payment_form_submission->has_fees()) {
112
+            wp_send_json_error(__('Please provide at least one item or amount.', 'invoicing'));
113 113
 		}
114 114
 
115 115
 		return $items;
@@ -123,17 +123,17 @@  discard block
 block discarded – undo
123 123
 	protected function get_submission_invoice() {
124 124
 		$submission = $this->payment_form_submission;
125 125
 
126
-		if ( ! $submission->has_invoice() ) {
126
+		if (!$submission->has_invoice()) {
127 127
 			$invoice = new WPInv_Invoice();
128
-			$invoice->set_created_via( 'payment_form' );
128
+			$invoice->set_created_via('payment_form');
129 129
 			return $invoice;
130 130
         }
131 131
 
132 132
 		$invoice = $submission->get_invoice();
133 133
 
134 134
 		// Make sure that it is neither paid or refunded.
135
-		if ( $invoice->is_paid() || $invoice->is_refunded() ) {
136
-			wp_send_json_error( __( 'This invoice has already been paid for.', 'invoicing' ) );
135
+		if ($invoice->is_paid() || $invoice->is_refunded()) {
136
+			wp_send_json_error(__('This invoice has already been paid for.', 'invoicing'));
137 137
 		}
138 138
 
139 139
 		return $invoice;
@@ -146,33 +146,33 @@  discard block
 block discarded – undo
146 146
 	 * @param GetPaid_Form_Item[] $items
147 147
 	 * @return WPInv_Invoice
148 148
 	 */
149
-	protected function process_submission_invoice( $invoice, $items ) {
149
+	protected function process_submission_invoice($invoice, $items) {
150 150
 
151 151
 		$submission = $this->payment_form_submission;
152 152
 
153 153
 		// Set-up the invoice details.
154
-		$invoice->set_email( sanitize_email( $submission->get_billing_email() ) );
155
-		$invoice->set_user_id( $this->get_submission_customer() );
156
-		$invoice->set_payment_form( absint( $submission->get_payment_form()->get_id() ) );
157
-        $invoice->set_items( $items );
158
-        $invoice->set_fees( $submission->get_fees() );
159
-        $invoice->set_taxes( $submission->get_taxes() );
160
-		$invoice->set_discounts( $submission->get_discounts() );
161
-		$invoice->set_gateway( $submission->get_field( 'wpi-gateway' ) );
162
-		$invoice->set_currency( $submission->get_currency() );
163
-
164
-		if ( $submission->has_shipping() ) {
165
-			$invoice->set_shipping( $submission->get_shipping() );
154
+		$invoice->set_email(sanitize_email($submission->get_billing_email()));
155
+		$invoice->set_user_id($this->get_submission_customer());
156
+		$invoice->set_payment_form(absint($submission->get_payment_form()->get_id()));
157
+        $invoice->set_items($items);
158
+        $invoice->set_fees($submission->get_fees());
159
+        $invoice->set_taxes($submission->get_taxes());
160
+		$invoice->set_discounts($submission->get_discounts());
161
+		$invoice->set_gateway($submission->get_field('wpi-gateway'));
162
+		$invoice->set_currency($submission->get_currency());
163
+
164
+		if ($submission->has_shipping()) {
165
+			$invoice->set_shipping($submission->get_shipping());
166 166
 		}
167 167
 
168
-		$address_confirmed = $submission->get_field( 'confirm-address' );
169
-		$invoice->set_address_confirmed( ! empty( $address_confirmed ) );
168
+		$address_confirmed = $submission->get_field('confirm-address');
169
+		$invoice->set_address_confirmed(!empty($address_confirmed));
170 170
 
171
-		if ( $submission->has_discount_code() ) {
172
-            $invoice->set_discount_code( $submission->get_discount_code() );
171
+		if ($submission->has_discount_code()) {
172
+            $invoice->set_discount_code($submission->get_discount_code());
173 173
 		}
174 174
 
175
-		getpaid_maybe_add_default_address( $invoice );
175
+		getpaid_maybe_add_default_address($invoice);
176 176
 		return $invoice;
177 177
 	}
178 178
 
@@ -185,34 +185,34 @@  discard block
 block discarded – undo
185 185
 		$submission = $this->payment_form_submission;
186 186
 
187 187
 		// If this is an existing invoice...
188
-		if ( $submission->has_invoice() ) {
188
+		if ($submission->has_invoice()) {
189 189
 			return $submission->get_invoice()->get_user_id();
190 190
 		}
191 191
 
192 192
 		// (Maybe) create the user.
193 193
         $user = get_current_user_id();
194 194
 
195
-        if ( empty( $user ) ) {
196
-            $user = get_user_by( 'email', $submission->get_billing_email() );
195
+        if (empty($user)) {
196
+            $user = get_user_by('email', $submission->get_billing_email());
197 197
         }
198 198
 
199
-        if ( empty( $user ) ) {
200
-			$name = array( $submission->get_field( 'wpinv_first_name', 'billing' ), $submission->get_field( 'wpinv_last_name', 'billing' ) );
201
-			$name = implode( '', array_filter( $name ) );
202
-            $user = wpinv_create_user( $submission->get_billing_email(), $name );
199
+        if (empty($user)) {
200
+			$name = array($submission->get_field('wpinv_first_name', 'billing'), $submission->get_field('wpinv_last_name', 'billing'));
201
+			$name = implode('', array_filter($name));
202
+            $user = wpinv_create_user($submission->get_billing_email(), $name);
203 203
 
204 204
 			// (Maybe) send new user notification.
205
-			$should_send_notification = wpinv_get_option( 'disable_new_user_emails' );
206
-			if ( ! empty( $user ) && is_numeric( $user ) && apply_filters( 'getpaid_send_new_user_notification', empty( $should_send_notification ), $user ) ) {
207
-				wp_send_new_user_notifications( $user, 'user' );
205
+			$should_send_notification = wpinv_get_option('disable_new_user_emails');
206
+			if (!empty($user) && is_numeric($user) && apply_filters('getpaid_send_new_user_notification', empty($should_send_notification), $user)) {
207
+				wp_send_new_user_notifications($user, 'user');
208 208
 			}
209 209
 		}
210 210
 
211
-        if ( is_wp_error( $user ) ) {
212
-            wp_send_json_error( $user->get_error_message() );
211
+        if (is_wp_error($user)) {
212
+            wp_send_json_error($user->get_error_message());
213 213
         }
214 214
 
215
-        if ( is_numeric( $user ) ) {
215
+        if (is_numeric($user)) {
216 216
             return $user;
217 217
 		}
218 218
 
@@ -236,72 +236,72 @@  discard block
 block discarded – undo
236 236
 		);
237 237
 
238 238
         // Raw submission details.
239
-		$data     = $submission->get_data();
239
+		$data = $submission->get_data();
240 240
 
241 241
 		// Loop through the submitted details.
242
-        foreach ( $submission->get_payment_form()->get_elements() as $field ) {
242
+        foreach ($submission->get_payment_form()->get_elements() as $field) {
243 243
 
244 244
 			// Skip premade fields.
245
-            if ( ! empty( $field['premade'] ) ) {
245
+            if (!empty($field['premade'])) {
246 246
                 continue;
247 247
             }
248 248
 
249 249
 			// Ensure address is provided.
250
-			if ( 'address' === $field['type'] ) {
251
-                $address_type = isset( $field['address_type'] ) && 'shipping' === $field['address_type'] ? 'shipping' : 'billing';
250
+			if ('address' === $field['type']) {
251
+                $address_type = isset($field['address_type']) && 'shipping' === $field['address_type'] ? 'shipping' : 'billing';
252 252
 
253
-				foreach ( $field['fields'] as $address_field ) {
253
+				foreach ($field['fields'] as $address_field) {
254 254
 
255
-					if ( ! empty( $address_field['visible'] ) && ! empty( $address_field['required'] ) && '' === trim( $_POST[ $address_type ][ $address_field['name'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
256
-						wp_send_json_error( __( 'Please fill all required fields.', 'invoicing' ) );
255
+					if (!empty($address_field['visible']) && !empty($address_field['required']) && '' === trim($_POST[$address_type][$address_field['name']])) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
256
+						wp_send_json_error(__('Please fill all required fields.', 'invoicing'));
257 257
 					}
258 258
 			}
259 259
 		}
260 260
 
261 261
             // If it is required and not set, abort.
262
-            if ( ! $submission->is_required_field_set( $field ) ) {
263
-                wp_send_json_error( __( 'Please fill all required fields.', 'invoicing' ) );
262
+            if (!$submission->is_required_field_set($field)) {
263
+                wp_send_json_error(__('Please fill all required fields.', 'invoicing'));
264 264
             }
265 265
 
266 266
             // Handle misc fields.
267
-            if ( isset( $data[ $field['id'] ] ) ) {
267
+            if (isset($data[$field['id']])) {
268 268
 
269 269
 				// Uploads.
270
-				if ( 'file_upload' === $field['type'] ) {
271
-					$max_file_num = empty( $field['max_file_num'] ) ? 1 : absint( $field['max_file_num'] );
270
+				if ('file_upload' === $field['type']) {
271
+					$max_file_num = empty($field['max_file_num']) ? 1 : absint($field['max_file_num']);
272 272
 
273
-					if ( count( $data[ $field['id'] ] ) > $max_file_num ) {
274
-						wp_send_json_error( __( 'Maximum number of allowed files exceeded.', 'invoicing' ) );
273
+					if (count($data[$field['id']]) > $max_file_num) {
274
+						wp_send_json_error(__('Maximum number of allowed files exceeded.', 'invoicing'));
275 275
 					}
276 276
 
277 277
 					$value = array();
278 278
 
279
-					foreach ( $data[ $field['id'] ] as $url => $name ) {
279
+					foreach ($data[$field['id']] as $url => $name) {
280 280
 						$value[] = sprintf(
281 281
 							'<a href="%s" target="_blank">%s</a>',
282
-							esc_url_raw( $url ),
283
-							esc_html( $name )
282
+							esc_url_raw($url),
283
+							esc_html($name)
284 284
 						);
285 285
 					}
286 286
 
287
-					$value = implode( ' | ', $value );
287
+					$value = implode(' | ', $value);
288 288
 
289
-				} elseif ( 'checkbox' === $field['type'] ) {
290
-					$value = ! empty( $data[ $field['id'] ] ) ? __( 'Yes', 'invoicing' ) : __( 'No', 'invoicing' );
289
+				} elseif ('checkbox' === $field['type']) {
290
+					$value = !empty($data[$field['id']]) ? __('Yes', 'invoicing') : __('No', 'invoicing');
291 291
 				} else {
292
-					$value = wp_kses_post( $data[ $field['id'] ] );
292
+					$value = wp_kses_post($data[$field['id']]);
293 293
 				}
294 294
 
295 295
                 $label = $field['id'];
296 296
 
297
-                if ( isset( $field['label'] ) ) {
297
+                if (isset($field['label'])) {
298 298
                     $label = $field['label'];
299 299
                 }
300 300
 
301
-				if ( ! empty( $field['add_meta'] ) ) {
302
-					$prepared['meta'][ wpinv_clean( $label ) ] = wp_kses_post_deep( $value );
301
+				if (!empty($field['add_meta'])) {
302
+					$prepared['meta'][wpinv_clean($label)] = wp_kses_post_deep($value);
303 303
 				}
304
-				$prepared['all'][ wpinv_clean( $label ) ] = wp_kses_post_deep( $value );
304
+				$prepared['all'][wpinv_clean($label)] = wp_kses_post_deep($value);
305 305
 
306 306
             }
307 307
 		}
@@ -317,30 +317,30 @@  discard block
 block discarded – undo
317 317
 	 * @param WPInv_Invoice $invoice
318 318
 	 * @param string $type
319 319
      */
320
-    public function prepare_address_details( $invoice, $type = 'billing' ) {
320
+    public function prepare_address_details($invoice, $type = 'billing') {
321 321
 
322 322
 		$data     = $this->payment_form_submission->get_data();
323
-		$type     = sanitize_key( $type );
323
+		$type     = sanitize_key($type);
324 324
 		$address  = array();
325 325
 		$prepared = array();
326 326
 
327
-		if ( ! empty( $data[ $type ] ) ) {
328
-			$address = $data[ $type ];
327
+		if (!empty($data[$type])) {
328
+			$address = $data[$type];
329 329
 		}
330 330
 
331 331
 		// Clean address details.
332
-		foreach ( $address as $key => $value ) {
333
-			$key             = sanitize_key( $key );
334
-			$key             = str_replace( 'wpinv_', '', $key );
335
-			$value           = wpinv_clean( $value );
336
-			$prepared[ $key ] = apply_filters( "getpaid_checkout_{$type}_address_$key", $value, $this->payment_form_submission, $invoice );
332
+		foreach ($address as $key => $value) {
333
+			$key             = sanitize_key($key);
334
+			$key             = str_replace('wpinv_', '', $key);
335
+			$value           = wpinv_clean($value);
336
+			$prepared[$key] = apply_filters("getpaid_checkout_{$type}_address_$key", $value, $this->payment_form_submission, $invoice);
337 337
 		}
338 338
 
339 339
 		// Filter address details.
340
-		$prepared = apply_filters( "getpaid_checkout_{$type}_address", $prepared, $this->payment_form_submission, $invoice );
340
+		$prepared = apply_filters("getpaid_checkout_{$type}_address", $prepared, $this->payment_form_submission, $invoice);
341 341
 
342 342
 		// Remove non-whitelisted values.
343
-		return array_filter( $prepared, 'getpaid_is_address_field_whitelisted', ARRAY_FILTER_USE_KEY );
343
+		return array_filter($prepared, 'getpaid_is_address_field_whitelisted', ARRAY_FILTER_USE_KEY);
344 344
 
345 345
 	}
346 346
 
@@ -350,12 +350,12 @@  discard block
 block discarded – undo
350 350
 	 * @return array
351 351
 	 * @param WPInv_Invoice $invoice
352 352
      */
353
-    protected function prepare_billing_info( &$invoice ) {
353
+    protected function prepare_billing_info(&$invoice) {
354 354
 
355
-		$billing_address = $this->prepare_address_details( $invoice, 'billing' );
355
+		$billing_address = $this->prepare_address_details($invoice, 'billing');
356 356
 
357 357
 		// Update the invoice with the billing details.
358
-		$invoice->set_props( $billing_address );
358
+		$invoice->set_props($billing_address);
359 359
 
360 360
 	}
361 361
 
@@ -365,15 +365,15 @@  discard block
 block discarded – undo
365 365
 	 * @return array
366 366
 	 * @param WPInv_Invoice $invoice
367 367
      */
368
-    protected function prepare_shipping_info( $invoice ) {
368
+    protected function prepare_shipping_info($invoice) {
369 369
 
370 370
 		$data = $this->payment_form_submission->get_data();
371 371
 
372
-		if ( empty( $data['same-shipping-address'] ) ) {
373
-			return $this->prepare_address_details( $invoice, 'shipping' );
372
+		if (empty($data['same-shipping-address'])) {
373
+			return $this->prepare_address_details($invoice, 'shipping');
374 374
 		}
375 375
 
376
-		return $this->prepare_address_details( $invoice, 'billing' );
376
+		return $this->prepare_address_details($invoice, 'billing');
377 377
 
378 378
 	}
379 379
 
@@ -384,45 +384,45 @@  discard block
 block discarded – undo
384 384
 	 * @param array $prepared_payment_form_data
385 385
 	 * @param array $shipping
386 386
 	 */
387
-	protected function post_process_submission( $invoice, $prepared_payment_form_data, $shipping ) {
387
+	protected function post_process_submission($invoice, $prepared_payment_form_data, $shipping) {
388 388
 
389 389
 		// Ensure the invoice exists.
390
-        if ( ! $invoice->exists() ) {
391
-            wp_send_json_error( __( 'An error occured while saving your invoice. Please try again.', 'invoicing' ) );
390
+        if (!$invoice->exists()) {
391
+            wp_send_json_error(__('An error occured while saving your invoice. Please try again.', 'invoicing'));
392 392
         }
393 393
 
394 394
 		// Save payment form data.
395
-		$prepared_payment_form_data = apply_filters( 'getpaid_prepared_payment_form_data', $prepared_payment_form_data, $invoice );
396
-        delete_post_meta( $invoice->get_id(), 'payment_form_data' );
397
-		delete_post_meta( $invoice->get_id(), 'additional_meta_data' );
398
-		if ( ! empty( $prepared_payment_form_data ) ) {
395
+		$prepared_payment_form_data = apply_filters('getpaid_prepared_payment_form_data', $prepared_payment_form_data, $invoice);
396
+        delete_post_meta($invoice->get_id(), 'payment_form_data');
397
+		delete_post_meta($invoice->get_id(), 'additional_meta_data');
398
+		if (!empty($prepared_payment_form_data)) {
399 399
 
400
-			if ( ! empty( $prepared_payment_form_data['all'] ) ) {
401
-				update_post_meta( $invoice->get_id(), 'payment_form_data', $prepared_payment_form_data['all'] );
400
+			if (!empty($prepared_payment_form_data['all'])) {
401
+				update_post_meta($invoice->get_id(), 'payment_form_data', $prepared_payment_form_data['all']);
402 402
 			}
403 403
 
404
-			if ( ! empty( $prepared_payment_form_data['meta'] ) ) {
405
-				update_post_meta( $invoice->get_id(), 'additional_meta_data', $prepared_payment_form_data['meta'] );
404
+			if (!empty($prepared_payment_form_data['meta'])) {
405
+				update_post_meta($invoice->get_id(), 'additional_meta_data', $prepared_payment_form_data['meta']);
406 406
 			}
407 407
 		}
408 408
 
409 409
 		// Save payment form data.
410
-		$shipping = apply_filters( 'getpaid_checkout_shipping_details', $shipping, $this->payment_form_submission );
411
-        if ( ! empty( $shipping ) ) {
412
-            update_post_meta( $invoice->get_id(), 'shipping_address', $shipping );
410
+		$shipping = apply_filters('getpaid_checkout_shipping_details', $shipping, $this->payment_form_submission);
411
+        if (!empty($shipping)) {
412
+            update_post_meta($invoice->get_id(), 'shipping_address', $shipping);
413 413
 		}
414 414
 
415 415
 		// Backwards compatibility.
416
-        add_filter( 'wp_redirect', array( $this, 'send_redirect_response' ) );
416
+        add_filter('wp_redirect', array($this, 'send_redirect_response'));
417 417
 
418 418
 		try {
419
-			$this->process_payment( $invoice );
420
-		} catch ( Exception $e ) {
421
-			wpinv_set_error( 'payment_error', $e->getMessage() );
419
+			$this->process_payment($invoice);
420
+		} catch (Exception $e) {
421
+			wpinv_set_error('payment_error', $e->getMessage());
422 422
 		}
423 423
 
424 424
         // If we are here, there was an error.
425
-		wpinv_send_back_to_checkout( $invoice );
425
+		wpinv_send_back_to_checkout($invoice);
426 426
 
427 427
 	}
428 428
 
@@ -431,41 +431,41 @@  discard block
 block discarded – undo
431 431
 	 *
432 432
 	 * @param WPInv_Invoice $invoice
433 433
 	 */
434
-	protected function process_payment( $invoice ) {
434
+	protected function process_payment($invoice) {
435 435
 
436 436
 		// Clear any checkout errors.
437 437
 		wpinv_clear_errors();
438 438
 
439 439
 		// No need to send free invoices to the gateway.
440
-		if ( $invoice->is_free() ) {
441
-			$this->process_free_payment( $invoice );
440
+		if ($invoice->is_free()) {
441
+			$this->process_free_payment($invoice);
442 442
 		}
443 443
 
444 444
 		$submission = $this->payment_form_submission;
445 445
 
446 446
 		// Fires before sending to the gateway.
447
-		do_action( 'getpaid_checkout_before_gateway', $invoice, $submission );
447
+		do_action('getpaid_checkout_before_gateway', $invoice, $submission);
448 448
 
449 449
 		// Allow the sumission data to be modified before it is sent to the gateway.
450 450
 		$submission_data    = $submission->get_data();
451
-		$submission_gateway = apply_filters( 'getpaid_gateway_submission_gateway', $invoice->get_gateway(), $submission, $invoice );
452
-		$submission_data    = apply_filters( 'getpaid_gateway_submission_data', $submission_data, $submission, $invoice );
451
+		$submission_gateway = apply_filters('getpaid_gateway_submission_gateway', $invoice->get_gateway(), $submission, $invoice);
452
+		$submission_data    = apply_filters('getpaid_gateway_submission_data', $submission_data, $submission, $invoice);
453 453
 
454 454
 		// Validate the currency.
455
-		if ( ! apply_filters( "getpaid_gateway_{$submission_gateway}_is_valid_for_currency", true, $invoice->get_currency() ) ) {
456
-			wpinv_set_error( 'invalid_currency' );
455
+		if (!apply_filters("getpaid_gateway_{$submission_gateway}_is_valid_for_currency", true, $invoice->get_currency())) {
456
+			wpinv_set_error('invalid_currency');
457 457
 		}
458 458
 
459 459
 		// Check to see if we have any errors.
460
-		if ( wpinv_get_errors() ) {
461
-			wpinv_send_back_to_checkout( $invoice );
460
+		if (wpinv_get_errors()) {
461
+			wpinv_send_back_to_checkout($invoice);
462 462
 		}
463 463
 
464 464
 		// Send info to the gateway for payment processing
465
-		do_action( "getpaid_gateway_$submission_gateway", $invoice, $submission_data, $submission );
465
+		do_action("getpaid_gateway_$submission_gateway", $invoice, $submission_data, $submission);
466 466
 
467 467
 		// Backwards compatibility.
468
-		wpinv_send_to_gateway( $submission_gateway, $invoice );
468
+		wpinv_send_to_gateway($submission_gateway, $invoice);
469 469
 
470 470
 	}
471 471
 
@@ -474,12 +474,12 @@  discard block
 block discarded – undo
474 474
 	 *
475 475
 	 * @param WPInv_Invoice $invoice
476 476
 	 */
477
-	protected function process_free_payment( $invoice ) {
477
+	protected function process_free_payment($invoice) {
478 478
 
479
-		$invoice->set_gateway( 'none' );
480
-		$invoice->add_note( __( "This is a free invoice and won't be sent to the payment gateway", 'invoicing' ), false, false, true );
479
+		$invoice->set_gateway('none');
480
+		$invoice->add_note(__("This is a free invoice and won't be sent to the payment gateway", 'invoicing'), false, false, true);
481 481
 		$invoice->mark_paid();
482
-		wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
482
+		wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key()));
483 483
 
484 484
 	}
485 485
 
@@ -487,9 +487,9 @@  discard block
 block discarded – undo
487 487
      * Sends a redrect response to payment details.
488 488
      *
489 489
      */
490
-    public function send_redirect_response( $url ) {
491
-        $url = rawurlencode( $url );
492
-        wp_send_json_success( $url );
490
+    public function send_redirect_response($url) {
491
+        $url = rawurlencode($url);
492
+        wp_send_json_success($url);
493 493
     }
494 494
 
495 495
 }
Please login to merge, or discard this patch.
includes/payments/class-getpaid-payment-form-submission-items.php 2 patches
Indentation   +90 added lines, -90 removed lines patch added patch discarded remove patch
@@ -12,51 +12,51 @@  discard block
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Payment_Form_Submission_Items {
14 14
 
15
-	/**
16
-	 * Submission items.
17
-	 * @var GetPaid_Form_Item[]
18
-	 */
19
-	public $items = array();
15
+    /**
16
+     * Submission items.
17
+     * @var GetPaid_Form_Item[]
18
+     */
19
+    public $items = array();
20 20
 
21 21
     /**
22
-	 * Class constructor
23
-	 *
24
-	 * @param GetPaid_Payment_Form_Submission $submission
25
-	 */
26
-	public function __construct( $submission ) {
27
-
28
-		$data         = $submission->get_data();
29
-		$payment_form = $submission->get_payment_form();
30
-		$invoice      = $submission->get_invoice();
31
-		$force_prices = array();
32
-
33
-		// Prepare the selected items.
34
-		$selected_items = array();
35
-		if ( ! empty( $data['getpaid-items'] ) ) {
36
-			$selected_items = wpinv_clean( $data['getpaid-items'] );
37
-
38
-			if ( ! empty( $invoice ) && $submission->is_initial_fetch() ) {
39
-				foreach ( $invoice->get_items() as $invoice_item ) {
40
-					if ( isset( $selected_items[ $invoice_item->get_id() ] ) ) {
41
-						$selected_items[ $invoice_item->get_id() ]['quantity'] = $invoice_item->get_quantity();
42
-						$selected_items[ $invoice_item->get_id() ]['price']    = $invoice_item->get_price();
43
-
44
-						$force_prices[ $invoice_item->get_id() ] = $invoice_item->get_price();
45
-					}
46
-				}
47
-			}
48
-		}
49
-
50
-		// (Maybe) set form items.
51
-		if ( isset( $data['getpaid-form-items'] ) ) {
52
-
53
-			// Confirm items key.
54
-			$form_items = wpinv_clean( $data['getpaid-form-items'] );
55
-			if ( ! isset( $data['getpaid-form-items-key'] ) || md5( NONCE_KEY . AUTH_KEY . $form_items ) !== $data['getpaid-form-items-key'] ) {
56
-				throw new Exception( __( 'We could not validate the form items. Please reload the page and try again.', 'invoicing' ) );
57
-			}
58
-
59
-			$items    = array();
22
+     * Class constructor
23
+     *
24
+     * @param GetPaid_Payment_Form_Submission $submission
25
+     */
26
+    public function __construct( $submission ) {
27
+
28
+        $data         = $submission->get_data();
29
+        $payment_form = $submission->get_payment_form();
30
+        $invoice      = $submission->get_invoice();
31
+        $force_prices = array();
32
+
33
+        // Prepare the selected items.
34
+        $selected_items = array();
35
+        if ( ! empty( $data['getpaid-items'] ) ) {
36
+            $selected_items = wpinv_clean( $data['getpaid-items'] );
37
+
38
+            if ( ! empty( $invoice ) && $submission->is_initial_fetch() ) {
39
+                foreach ( $invoice->get_items() as $invoice_item ) {
40
+                    if ( isset( $selected_items[ $invoice_item->get_id() ] ) ) {
41
+                        $selected_items[ $invoice_item->get_id() ]['quantity'] = $invoice_item->get_quantity();
42
+                        $selected_items[ $invoice_item->get_id() ]['price']    = $invoice_item->get_price();
43
+
44
+                        $force_prices[ $invoice_item->get_id() ] = $invoice_item->get_price();
45
+                    }
46
+                }
47
+            }
48
+        }
49
+
50
+        // (Maybe) set form items.
51
+        if ( isset( $data['getpaid-form-items'] ) ) {
52
+
53
+            // Confirm items key.
54
+            $form_items = wpinv_clean( $data['getpaid-form-items'] );
55
+            if ( ! isset( $data['getpaid-form-items-key'] ) || md5( NONCE_KEY . AUTH_KEY . $form_items ) !== $data['getpaid-form-items-key'] ) {
56
+                throw new Exception( __( 'We could not validate the form items. Please reload the page and try again.', 'invoicing' ) );
57
+            }
58
+
59
+            $items    = array();
60 60
             $item_ids = array();
61 61
 
62 62
             foreach ( getpaid_convert_items_to_array( $form_items ) as $item_id => $qty ) {
@@ -69,10 +69,10 @@  discard block
 block discarded – undo
69 69
                         $item->set_is_required( false );
70 70
                     }
71 71
 
72
-					if ( ! $item->user_can_set_their_price() && isset( $force_prices[ $item_id ] ) ) {
73
-						$item->set_is_dynamic_pricing( true );
74
-						$item->set_minimum_price( 0 );
75
-					}
72
+                    if ( ! $item->user_can_set_their_price() && isset( $force_prices[ $item_id ] ) ) {
73
+                        $item->set_is_dynamic_pricing( true );
74
+                        $item->set_minimum_price( 0 );
75
+                    }
76 76
 
77 77
                     $item_ids[] = $item->get_id();
78 78
                     $items[]    = $item;
@@ -87,61 +87,61 @@  discard block
 block discarded – undo
87 87
                         $items[]    = $item;
88 88
                     }
89 89
                 }
90
-			}
90
+            }
91 91
 
92 92
             $payment_form->set_items( $items );
93 93
 
94
-		}
95
-
96
-		// Process each individual item.
97
-		foreach ( $payment_form->get_items() as $item ) {
98
-			$this->process_item( $item, $selected_items, $submission );
99
-		}
100
-
101
-	}
102
-
103
-	/**
104
-	 * Process a single item.
105
-	 *
106
-	 * @param GetPaid_Form_Item $item
107
-	 * @param array $selected_items
108
-	 * @param GetPaid_Payment_Form_Submission $submission
109
-	 */
110
-	public function process_item( $item, $selected_items, $submission ) {
94
+        }
111 95
 
112
-		// Abort if this is an optional item and it has not been selected.
113
-		if ( ! $item->is_required() && ! isset( $selected_items[ $item->get_id() ] ) ) {
114
-			return;
115
-		}
96
+        // Process each individual item.
97
+        foreach ( $payment_form->get_items() as $item ) {
98
+            $this->process_item( $item, $selected_items, $submission );
99
+        }
116 100
 
117
-		// (maybe) let customers change the quantities and prices.
118
-		if ( isset( $selected_items[ $item->get_id() ] ) ) {
101
+    }
119 102
 
120
-			// Maybe change the quantities.
121
-			if ( $item->allows_quantities() ) {
122
-				$item->set_quantity( (float) $selected_items[ $item->get_id() ]['quantity'] );
123
-			}
103
+    /**
104
+     * Process a single item.
105
+     *
106
+     * @param GetPaid_Form_Item $item
107
+     * @param array $selected_items
108
+     * @param GetPaid_Payment_Form_Submission $submission
109
+     */
110
+    public function process_item( $item, $selected_items, $submission ) {
111
+
112
+        // Abort if this is an optional item and it has not been selected.
113
+        if ( ! $item->is_required() && ! isset( $selected_items[ $item->get_id() ] ) ) {
114
+            return;
115
+        }
116
+
117
+        // (maybe) let customers change the quantities and prices.
118
+        if ( isset( $selected_items[ $item->get_id() ] ) ) {
119
+
120
+            // Maybe change the quantities.
121
+            if ( $item->allows_quantities() ) {
122
+                $item->set_quantity( (float) $selected_items[ $item->get_id() ]['quantity'] );
123
+            }
124 124
 
125
-			// Maybe change the price.
126
-			if ( $item->user_can_set_their_price() ) {
127
-				$price = (float) wpinv_sanitize_amount( $selected_items[ $item->get_id() ]['price'] );
125
+            // Maybe change the price.
126
+            if ( $item->user_can_set_their_price() ) {
127
+                $price = (float) wpinv_sanitize_amount( $selected_items[ $item->get_id() ]['price'] );
128 128
 
129
-				if ( $item->get_minimum_price() > $price ) {
130
-					throw new Exception( sprintf( __( 'The minimum allowed amount is %s', 'invoicing' ), getpaid_unstandardize_amount( $item->get_minimum_price() ) ) );
131
-				}
129
+                if ( $item->get_minimum_price() > $price ) {
130
+                    throw new Exception( sprintf( __( 'The minimum allowed amount is %s', 'invoicing' ), getpaid_unstandardize_amount( $item->get_minimum_price() ) ) );
131
+                }
132 132
 
133
-				$item->set_price( $price );
133
+                $item->set_price( $price );
134 134
 
135
-			}
136
-		}
135
+            }
136
+        }
137 137
 
138
-		if ( 0 == $item->get_quantity() ) {
139
-			return;
140
-		}
138
+        if ( 0 == $item->get_quantity() ) {
139
+            return;
140
+        }
141 141
 
142
-		// Save the item.
143
-		$this->items[] = apply_filters( 'getpaid_payment_form_submission_processed_item', $item, $submission );
142
+        // Save the item.
143
+        $this->items[] = apply_filters( 'getpaid_payment_form_submission_processed_item', $item, $submission );
144 144
 
145
-	}
145
+    }
146 146
 
147 147
 }
Please login to merge, or discard this patch.
Spacing   +43 added lines, -43 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
  * Payment form submission itemss class
@@ -23,7 +23,7 @@  discard block
 block discarded – undo
23 23
 	 *
24 24
 	 * @param GetPaid_Payment_Form_Submission $submission
25 25
 	 */
26
-	public function __construct( $submission ) {
26
+	public function __construct($submission) {
27 27
 
28 28
 		$data         = $submission->get_data();
29 29
 		$payment_form = $submission->get_payment_form();
@@ -32,46 +32,46 @@  discard block
 block discarded – undo
32 32
 
33 33
 		// Prepare the selected items.
34 34
 		$selected_items = array();
35
-		if ( ! empty( $data['getpaid-items'] ) ) {
36
-			$selected_items = wpinv_clean( $data['getpaid-items'] );
35
+		if (!empty($data['getpaid-items'])) {
36
+			$selected_items = wpinv_clean($data['getpaid-items']);
37 37
 
38
-			if ( ! empty( $invoice ) && $submission->is_initial_fetch() ) {
39
-				foreach ( $invoice->get_items() as $invoice_item ) {
40
-					if ( isset( $selected_items[ $invoice_item->get_id() ] ) ) {
41
-						$selected_items[ $invoice_item->get_id() ]['quantity'] = $invoice_item->get_quantity();
42
-						$selected_items[ $invoice_item->get_id() ]['price']    = $invoice_item->get_price();
38
+			if (!empty($invoice) && $submission->is_initial_fetch()) {
39
+				foreach ($invoice->get_items() as $invoice_item) {
40
+					if (isset($selected_items[$invoice_item->get_id()])) {
41
+						$selected_items[$invoice_item->get_id()]['quantity'] = $invoice_item->get_quantity();
42
+						$selected_items[$invoice_item->get_id()]['price']    = $invoice_item->get_price();
43 43
 
44
-						$force_prices[ $invoice_item->get_id() ] = $invoice_item->get_price();
44
+						$force_prices[$invoice_item->get_id()] = $invoice_item->get_price();
45 45
 					}
46 46
 				}
47 47
 			}
48 48
 		}
49 49
 
50 50
 		// (Maybe) set form items.
51
-		if ( isset( $data['getpaid-form-items'] ) ) {
51
+		if (isset($data['getpaid-form-items'])) {
52 52
 
53 53
 			// Confirm items key.
54
-			$form_items = wpinv_clean( $data['getpaid-form-items'] );
55
-			if ( ! isset( $data['getpaid-form-items-key'] ) || md5( NONCE_KEY . AUTH_KEY . $form_items ) !== $data['getpaid-form-items-key'] ) {
56
-				throw new Exception( __( 'We could not validate the form items. Please reload the page and try again.', 'invoicing' ) );
54
+			$form_items = wpinv_clean($data['getpaid-form-items']);
55
+			if (!isset($data['getpaid-form-items-key']) || md5(NONCE_KEY . AUTH_KEY . $form_items) !== $data['getpaid-form-items-key']) {
56
+				throw new Exception(__('We could not validate the form items. Please reload the page and try again.', 'invoicing'));
57 57
 			}
58 58
 
59
-			$items    = array();
59
+			$items = array();
60 60
             $item_ids = array();
61 61
 
62
-            foreach ( getpaid_convert_items_to_array( $form_items ) as $item_id => $qty ) {
63
-                if ( ! in_array( $item_id, $item_ids ) ) {
64
-                    $item = new GetPaid_Form_Item( $item_id );
65
-                    $item->set_quantity( $qty );
62
+            foreach (getpaid_convert_items_to_array($form_items) as $item_id => $qty) {
63
+                if (!in_array($item_id, $item_ids)) {
64
+                    $item = new GetPaid_Form_Item($item_id);
65
+                    $item->set_quantity($qty);
66 66
 
67
-                    if ( empty( $qty ) ) {
68
-                        $item->set_allow_quantities( true );
69
-                        $item->set_is_required( false );
67
+                    if (empty($qty)) {
68
+                        $item->set_allow_quantities(true);
69
+                        $item->set_is_required(false);
70 70
                     }
71 71
 
72
-					if ( ! $item->user_can_set_their_price() && isset( $force_prices[ $item_id ] ) ) {
73
-						$item->set_is_dynamic_pricing( true );
74
-						$item->set_minimum_price( 0 );
72
+					if (!$item->user_can_set_their_price() && isset($force_prices[$item_id])) {
73
+						$item->set_is_dynamic_pricing(true);
74
+						$item->set_minimum_price(0);
75 75
 					}
76 76
 
77 77
                     $item_ids[] = $item->get_id();
@@ -79,23 +79,23 @@  discard block
 block discarded – undo
79 79
                 }
80 80
             }
81 81
 
82
-            if ( ! $payment_form->is_default() ) {
82
+            if (!$payment_form->is_default()) {
83 83
 
84
-                foreach ( $payment_form->get_items() as $item ) {
85
-                    if ( ! in_array( $item->get_id(), $item_ids ) ) {
84
+                foreach ($payment_form->get_items() as $item) {
85
+                    if (!in_array($item->get_id(), $item_ids)) {
86 86
                         $item_ids[] = $item->get_id();
87 87
                         $items[]    = $item;
88 88
                     }
89 89
                 }
90 90
 			}
91 91
 
92
-            $payment_form->set_items( $items );
92
+            $payment_form->set_items($items);
93 93
 
94 94
 		}
95 95
 
96 96
 		// Process each individual item.
97
-		foreach ( $payment_form->get_items() as $item ) {
98
-			$this->process_item( $item, $selected_items, $submission );
97
+		foreach ($payment_form->get_items() as $item) {
98
+			$this->process_item($item, $selected_items, $submission);
99 99
 		}
100 100
 
101 101
 	}
@@ -107,40 +107,40 @@  discard block
 block discarded – undo
107 107
 	 * @param array $selected_items
108 108
 	 * @param GetPaid_Payment_Form_Submission $submission
109 109
 	 */
110
-	public function process_item( $item, $selected_items, $submission ) {
110
+	public function process_item($item, $selected_items, $submission) {
111 111
 
112 112
 		// Abort if this is an optional item and it has not been selected.
113
-		if ( ! $item->is_required() && ! isset( $selected_items[ $item->get_id() ] ) ) {
113
+		if (!$item->is_required() && !isset($selected_items[$item->get_id()])) {
114 114
 			return;
115 115
 		}
116 116
 
117 117
 		// (maybe) let customers change the quantities and prices.
118
-		if ( isset( $selected_items[ $item->get_id() ] ) ) {
118
+		if (isset($selected_items[$item->get_id()])) {
119 119
 
120 120
 			// Maybe change the quantities.
121
-			if ( $item->allows_quantities() ) {
122
-				$item->set_quantity( (float) $selected_items[ $item->get_id() ]['quantity'] );
121
+			if ($item->allows_quantities()) {
122
+				$item->set_quantity((float) $selected_items[$item->get_id()]['quantity']);
123 123
 			}
124 124
 
125 125
 			// Maybe change the price.
126
-			if ( $item->user_can_set_their_price() ) {
127
-				$price = (float) wpinv_sanitize_amount( $selected_items[ $item->get_id() ]['price'] );
126
+			if ($item->user_can_set_their_price()) {
127
+				$price = (float) wpinv_sanitize_amount($selected_items[$item->get_id()]['price']);
128 128
 
129
-				if ( $item->get_minimum_price() > $price ) {
130
-					throw new Exception( sprintf( __( 'The minimum allowed amount is %s', 'invoicing' ), getpaid_unstandardize_amount( $item->get_minimum_price() ) ) );
129
+				if ($item->get_minimum_price() > $price) {
130
+					throw new Exception(sprintf(__('The minimum allowed amount is %s', 'invoicing'), getpaid_unstandardize_amount($item->get_minimum_price())));
131 131
 				}
132 132
 
133
-				$item->set_price( $price );
133
+				$item->set_price($price);
134 134
 
135 135
 			}
136 136
 		}
137 137
 
138
-		if ( 0 == $item->get_quantity() ) {
138
+		if (0 == $item->get_quantity()) {
139 139
 			return;
140 140
 		}
141 141
 
142 142
 		// Save the item.
143
-		$this->items[] = apply_filters( 'getpaid_payment_form_submission_processed_item', $item, $submission );
143
+		$this->items[] = apply_filters('getpaid_payment_form_submission_processed_item', $item, $submission);
144 144
 
145 145
 	}
146 146
 
Please login to merge, or discard this patch.
includes/payments/class-getpaid-payment-form-submission-refresh-prices.php 2 patches
Indentation   +271 added lines, -271 removed lines patch added patch discarded remove patch
@@ -12,305 +12,305 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Payment_Form_Submission_Refresh_Prices {
14 14
 
15
-	/**
16
-	 * Contains the response for refreshing prices.
17
-	 * @var array
18
-	 */
19
-	public $response = array();
15
+    /**
16
+     * Contains the response for refreshing prices.
17
+     * @var array
18
+     */
19
+    public $response = array();
20 20
 
21 21
     /**
22
-	 * Class constructor
23
-	 *
24
-	 * @param GetPaid_Payment_Form_Submission $submission
25
-	 */
26
-	public function __construct( $submission ) {
27
-
28
-		$this->response = array(
29
-			'submission_id'                    => $submission->id,
22
+     * Class constructor
23
+     *
24
+     * @param GetPaid_Payment_Form_Submission $submission
25
+     */
26
+    public function __construct( $submission ) {
27
+
28
+        $this->response = array(
29
+            'submission_id'                    => $submission->id,
30 30
             'has_recurring'                    => $submission->has_recurring,
31
-			'has_subscription_group'           => $submission->has_subscription_group(),
32
-			'has_multiple_subscription_groups' => $submission->has_multiple_subscription_groups(),
31
+            'has_subscription_group'           => $submission->has_subscription_group(),
32
+            'has_multiple_subscription_groups' => $submission->has_multiple_subscription_groups(),
33 33
             'is_free'                          => ! $submission->should_collect_payment_details(),
34
-		);
35
-
36
-		$payment_form = $submission->get_payment_form();
37
-		if ( ! empty( $payment_form->invoice ) ) {
38
-			$this->response['invoice'] = $payment_form->invoice->get_id();
39
-		}
40
-
41
-		$this->add_totals( $submission );
42
-		$this->add_texts( $submission );
43
-		$this->add_items( $submission );
44
-		$this->add_fees( $submission );
45
-		$this->add_discounts( $submission );
46
-		$this->add_taxes( $submission );
47
-		$this->add_gateways( $submission );
48
-		$this->add_data( $submission );
49
-
50
-	}
51
-
52
-	/**
53
-	 * Adds totals to a response for submission refresh prices.
54
-	 *
55
-	 * @param GetPaid_Payment_Form_Submission $submission
56
-	 */
57
-	public function add_totals( $submission ) {
58
-
59
-		$this->response = array_merge(
60
-			$this->response,
61
-			array(
62
-
63
-				'totals'      => array(
64
-					'subtotal'  => $submission->format_amount( $submission->get_subtotal() ),
65
-					'discount'  => $submission->format_amount( $submission->get_discount() ),
66
-					'fees'      => $submission->format_amount( $submission->get_fee() ),
67
-					'tax'       => $submission->format_amount( $submission->get_tax() ),
68
-					'total'     => $submission->format_amount( $submission->get_total() ),
69
-					'raw_total' => html_entity_decode( sanitize_text_field( $submission->format_amount( $submission->get_total() ) ), ENT_QUOTES ),
70
-				),
71
-
72
-				'recurring'   => array(
73
-					'subtotal' => $submission->format_amount( $submission->get_recurring_subtotal() ),
74
-					'discount' => $submission->format_amount( $submission->get_recurring_discount() ),
75
-					'fees'     => $submission->format_amount( $submission->get_recurring_fee() ),
76
-					'tax'      => $submission->format_amount( $submission->get_recurring_tax() ),
77
-					'total'    => $submission->format_amount( $submission->get_recurring_total() ),
78
-				),
79
-
80
-				'initial_amt' => wpinv_round_amount( $submission->get_total(), null, true ),
81
-				'currency'    => $submission->get_currency(),
82
-
83
-			)
84
-		);
85
-
86
-	}
87
-
88
-	/**
89
-	 * Adds texts to a response for submission refresh prices.
90
-	 *
91
-	 * @param GetPaid_Payment_Form_Submission $submission
92
-	 */
93
-	public function add_texts( $submission ) {
94
-
95
-		$payable = $submission->format_amount( $submission->get_total() );
96
-		$groups  = getpaid_get_subscription_groups( $submission );
97
-
98
-		if ( $submission->has_recurring && 2 > count( $groups ) ) {
99
-
100
-			$recurring = new WPInv_Item( $submission->has_recurring );
101
-			$period    = getpaid_get_subscription_period_label( $recurring->get_recurring_period( true ), $recurring->get_recurring_interval(), '' );
102
-			$main_item = reset( $groups );
103
-
104
-			if ( $submission->get_total() == $submission->get_recurring_total() ) {
105
-				$payable = "$payable / $period";
106
-			} elseif ( $main_item ) {
107
-
108
-				$main_item = reset( $main_item );
109
-
110
-				// Calculate the next renewal date.
111
-				$_period      = $main_item->get_recurring_period( true );
112
-				$_interval    = $main_item->get_recurring_interval();
113
-
114
-				// If the subscription item has a trial period...
115
-				if ( $main_item->has_free_trial() ) {
116
-					$_period   = $main_item->get_trial_period( true );
117
-					$_interval = $main_item->get_trial_interval();
118
-				}
119
-
120
-				$payable = sprintf(
121
-					__( '%1$s (renews at %2$s / %3$s)', 'invoicing' ),
122
-					$submission->format_amount( $submission->get_total() ),
123
-					$submission->format_amount( $submission->get_recurring_total() ),
124
-					$period
125
-				);
126
-
127
-				$payable .= sprintf(
128
-					'<small class="text-muted form-text">%s</small>',
129
-					sprintf(
130
-						__( 'First renewal on %s', 'invoicing' ),
131
-						getpaid_format_date( date( 'Y-m-d H:i:s', strtotime( "+$_interval $_period", current_time( 'timestamp' ) ) ) )
132
-					)
133
-				);
134
-
135
-			} else {
136
-				$payable = sprintf(
137
-					__( '%1$s (renews at %2$s / %3$s)', 'invoicing' ),
138
-					$submission->format_amount( $submission->get_total() ),
139
-					$submission->format_amount( $submission->get_recurring_total() ),
140
-					$period
141
-				);
142
-			}
143
-}
34
+        );
35
+
36
+        $payment_form = $submission->get_payment_form();
37
+        if ( ! empty( $payment_form->invoice ) ) {
38
+            $this->response['invoice'] = $payment_form->invoice->get_id();
39
+        }
40
+
41
+        $this->add_totals( $submission );
42
+        $this->add_texts( $submission );
43
+        $this->add_items( $submission );
44
+        $this->add_fees( $submission );
45
+        $this->add_discounts( $submission );
46
+        $this->add_taxes( $submission );
47
+        $this->add_gateways( $submission );
48
+        $this->add_data( $submission );
144 49
 
145
-		$texts = array(
146
-			'.getpaid-checkout-total-payable' => $payable,
147
-		);
50
+    }
148 51
 
149
-		foreach ( $submission->get_items() as $item ) {
150
-			$item_id                                               = $item->get_id();
151
-			$initial_price                                         = $submission->format_amount( $item->get_sub_total() - $item->item_discount );
152
-			$recurring_price                                       = $submission->format_amount( $item->get_recurring_sub_total() - $item->recurring_item_discount );
153
-			$texts[ ".item-$item_id .getpaid-form-item-price-desc" ] = getpaid_item_recurring_price_help_text( $item, $submission->get_currency(), $initial_price, $recurring_price );
154
-			$texts[ ".item-$item_id .getpaid-mobile-item-subtotal" ] = sprintf( __( 'Subtotal: %s', 'invoicing' ), $submission->format_amount( $item->get_sub_total() ) );
52
+    /**
53
+     * Adds totals to a response for submission refresh prices.
54
+     *
55
+     * @param GetPaid_Payment_Form_Submission $submission
56
+     */
57
+    public function add_totals( $submission ) {
58
+
59
+        $this->response = array_merge(
60
+            $this->response,
61
+            array(
62
+
63
+                'totals'      => array(
64
+                    'subtotal'  => $submission->format_amount( $submission->get_subtotal() ),
65
+                    'discount'  => $submission->format_amount( $submission->get_discount() ),
66
+                    'fees'      => $submission->format_amount( $submission->get_fee() ),
67
+                    'tax'       => $submission->format_amount( $submission->get_tax() ),
68
+                    'total'     => $submission->format_amount( $submission->get_total() ),
69
+                    'raw_total' => html_entity_decode( sanitize_text_field( $submission->format_amount( $submission->get_total() ) ), ENT_QUOTES ),
70
+                ),
71
+
72
+                'recurring'   => array(
73
+                    'subtotal' => $submission->format_amount( $submission->get_recurring_subtotal() ),
74
+                    'discount' => $submission->format_amount( $submission->get_recurring_discount() ),
75
+                    'fees'     => $submission->format_amount( $submission->get_recurring_fee() ),
76
+                    'tax'      => $submission->format_amount( $submission->get_recurring_tax() ),
77
+                    'total'    => $submission->format_amount( $submission->get_recurring_total() ),
78
+                ),
79
+
80
+                'initial_amt' => wpinv_round_amount( $submission->get_total(), null, true ),
81
+                'currency'    => $submission->get_currency(),
82
+
83
+            )
84
+        );
85
+
86
+    }
155 87
 
156
-			if ( $item->get_quantity() == 1 ) {
157
-				$texts[ ".item-$item_id .getpaid-mobile-item-subtotal" ] = '';
158
-			}
88
+    /**
89
+     * Adds texts to a response for submission refresh prices.
90
+     *
91
+     * @param GetPaid_Payment_Form_Submission $submission
92
+     */
93
+    public function add_texts( $submission ) {
94
+
95
+        $payable = $submission->format_amount( $submission->get_total() );
96
+        $groups  = getpaid_get_subscription_groups( $submission );
97
+
98
+        if ( $submission->has_recurring && 2 > count( $groups ) ) {
99
+
100
+            $recurring = new WPInv_Item( $submission->has_recurring );
101
+            $period    = getpaid_get_subscription_period_label( $recurring->get_recurring_period( true ), $recurring->get_recurring_interval(), '' );
102
+            $main_item = reset( $groups );
103
+
104
+            if ( $submission->get_total() == $submission->get_recurring_total() ) {
105
+                $payable = "$payable / $period";
106
+            } elseif ( $main_item ) {
107
+
108
+                $main_item = reset( $main_item );
109
+
110
+                // Calculate the next renewal date.
111
+                $_period      = $main_item->get_recurring_period( true );
112
+                $_interval    = $main_item->get_recurring_interval();
113
+
114
+                // If the subscription item has a trial period...
115
+                if ( $main_item->has_free_trial() ) {
116
+                    $_period   = $main_item->get_trial_period( true );
117
+                    $_interval = $main_item->get_trial_interval();
118
+                }
119
+
120
+                $payable = sprintf(
121
+                    __( '%1$s (renews at %2$s / %3$s)', 'invoicing' ),
122
+                    $submission->format_amount( $submission->get_total() ),
123
+                    $submission->format_amount( $submission->get_recurring_total() ),
124
+                    $period
125
+                );
126
+
127
+                $payable .= sprintf(
128
+                    '<small class="text-muted form-text">%s</small>',
129
+                    sprintf(
130
+                        __( 'First renewal on %s', 'invoicing' ),
131
+                        getpaid_format_date( date( 'Y-m-d H:i:s', strtotime( "+$_interval $_period", current_time( 'timestamp' ) ) ) )
132
+                    )
133
+                );
134
+
135
+            } else {
136
+                $payable = sprintf(
137
+                    __( '%1$s (renews at %2$s / %3$s)', 'invoicing' ),
138
+                    $submission->format_amount( $submission->get_total() ),
139
+                    $submission->format_amount( $submission->get_recurring_total() ),
140
+                    $period
141
+                );
142
+            }
159 143
 }
160 144
 
161
-		$this->response = array_merge( $this->response, array( 'texts' => $texts ) );
145
+        $texts = array(
146
+            '.getpaid-checkout-total-payable' => $payable,
147
+        );
162 148
 
163
-	}
149
+        foreach ( $submission->get_items() as $item ) {
150
+            $item_id                                               = $item->get_id();
151
+            $initial_price                                         = $submission->format_amount( $item->get_sub_total() - $item->item_discount );
152
+            $recurring_price                                       = $submission->format_amount( $item->get_recurring_sub_total() - $item->recurring_item_discount );
153
+            $texts[ ".item-$item_id .getpaid-form-item-price-desc" ] = getpaid_item_recurring_price_help_text( $item, $submission->get_currency(), $initial_price, $recurring_price );
154
+            $texts[ ".item-$item_id .getpaid-mobile-item-subtotal" ] = sprintf( __( 'Subtotal: %s', 'invoicing' ), $submission->format_amount( $item->get_sub_total() ) );
155
+
156
+            if ( $item->get_quantity() == 1 ) {
157
+                $texts[ ".item-$item_id .getpaid-mobile-item-subtotal" ] = '';
158
+            }
159
+}
164 160
 
165
-	/**
166
-	 * Adds items to a response for submission refresh prices.
167
-	 *
168
-	 * @param GetPaid_Payment_Form_Submission $submission
169
-	 */
170
-	public function add_items( $submission ) {
161
+        $this->response = array_merge( $this->response, array( 'texts' => $texts ) );
171 162
 
172
-		// Add items.
173
-		$items          = array();
174
-		$selected_items = array();
163
+    }
164
+
165
+    /**
166
+     * Adds items to a response for submission refresh prices.
167
+     *
168
+     * @param GetPaid_Payment_Form_Submission $submission
169
+     */
170
+    public function add_items( $submission ) {
171
+
172
+        // Add items.
173
+        $items          = array();
174
+        $selected_items = array();
175 175
 
176 176
         foreach ( $submission->get_items() as $item ) {
177
-			$item_id             = $item->get_id();
178
-			$items[ "$item_id" ] = $submission->format_amount( $item->get_sub_total() );
179
-
180
-			$selected_items[ "$item_id" ] = array(
181
-				'quantity'  => $item->get_quantity(),
182
-				'price'     => $item->get_price(),
183
-				'price_fmt' => $submission->format_amount( $item->get_price() ),
184
-			);
185
-		}
186
-
187
-		$this->response = array_merge(
188
-			$this->response,
189
-			array(
190
-				'items'          => $items,
191
-				'selected_items' => $selected_items,
192
-			)
193
-		);
194
-
195
-	}
196
-
197
-	/**
198
-	 * Adds fees to a response for submission refresh prices.
199
-	 *
200
-	 * @param GetPaid_Payment_Form_Submission $submission
201
-	 */
202
-	public function add_fees( $submission ) {
203
-
204
-		$fees = array();
177
+            $item_id             = $item->get_id();
178
+            $items[ "$item_id" ] = $submission->format_amount( $item->get_sub_total() );
179
+
180
+            $selected_items[ "$item_id" ] = array(
181
+                'quantity'  => $item->get_quantity(),
182
+                'price'     => $item->get_price(),
183
+                'price_fmt' => $submission->format_amount( $item->get_price() ),
184
+            );
185
+        }
186
+
187
+        $this->response = array_merge(
188
+            $this->response,
189
+            array(
190
+                'items'          => $items,
191
+                'selected_items' => $selected_items,
192
+            )
193
+        );
194
+
195
+    }
196
+
197
+    /**
198
+     * Adds fees to a response for submission refresh prices.
199
+     *
200
+     * @param GetPaid_Payment_Form_Submission $submission
201
+     */
202
+    public function add_fees( $submission ) {
203
+
204
+        $fees = array();
205 205
 
206 206
         foreach ( $submission->get_fees() as $name => $data ) {
207
-			$fees[ $name ] = $submission->format_amount( $data['initial_fee'] );
208
-		}
207
+            $fees[ $name ] = $submission->format_amount( $data['initial_fee'] );
208
+        }
209 209
 
210
-		$this->response = array_merge(
211
-			$this->response,
212
-			array( 'fees' => $fees )
213
-		);
210
+        $this->response = array_merge(
211
+            $this->response,
212
+            array( 'fees' => $fees )
213
+        );
214 214
 
215
-	}
215
+    }
216 216
 
217
-	/**
218
-	 * Adds discounts to a response for submission refresh prices.
219
-	 *
220
-	 * @param GetPaid_Payment_Form_Submission $submission
221
-	 */
222
-	public function add_discounts( $submission ) {
217
+    /**
218
+     * Adds discounts to a response for submission refresh prices.
219
+     *
220
+     * @param GetPaid_Payment_Form_Submission $submission
221
+     */
222
+    public function add_discounts( $submission ) {
223 223
 
224
-		$discounts = array();
224
+        $discounts = array();
225 225
 
226 226
         foreach ( $submission->get_discounts() as $name => $data ) {
227
-			$discounts[ $name ] = $submission->format_amount( $data['initial_discount'] );
228
-		}
227
+            $discounts[ $name ] = $submission->format_amount( $data['initial_discount'] );
228
+        }
229 229
 
230
-		$this->response = array_merge(
231
-			$this->response,
232
-			array( 'discounts' => $discounts )
233
-		);
230
+        $this->response = array_merge(
231
+            $this->response,
232
+            array( 'discounts' => $discounts )
233
+        );
234 234
 
235
-	}
235
+    }
236 236
 
237
-	/**
238
-	 * Adds taxes to a response for submission refresh prices.
239
-	 *
240
-	 * @param GetPaid_Payment_Form_Submission $submission
241
-	 */
242
-	public function add_taxes( $submission ) {
243
-
244
-		$taxes  = array();
245
-		$markup = '';
237
+    /**
238
+     * Adds taxes to a response for submission refresh prices.
239
+     *
240
+     * @param GetPaid_Payment_Form_Submission $submission
241
+     */
242
+    public function add_taxes( $submission ) {
243
+
244
+        $taxes  = array();
245
+        $markup = '';
246 246
         foreach ( $submission->get_taxes() as $name => $data ) {
247
-			$name          = sanitize_text_field( $name );
248
-			$amount        = $submission->format_amount( $data['initial_tax'] );
249
-			$taxes[ $name ]  = $amount;
250
-			$markup       .= "<small class='form-text'>$name : $amount</small>";
251
-		}
252
-
253
-		if ( wpinv_display_individual_tax_rates() && ! empty( $taxes ) ) {
254
-			$this->response['texts']['.getpaid-form-cart-totals-total-tax'] = $markup;
255
-		}
256
-
257
-		$this->response = array_merge(
258
-			$this->response,
259
-			array( 'taxes' => $taxes )
260
-		);
261
-
262
-	}
263
-
264
-	/**
265
-	 * Adds gateways to a response for submission refresh prices.
266
-	 *
267
-	 * @param GetPaid_Payment_Form_Submission $submission
268
-	 */
269
-	public function add_gateways( $submission ) {
270
-
271
-		$gateways = array_keys( wpinv_get_enabled_payment_gateways() );
272
-
273
-		if ( $this->response['has_recurring'] ) {
274
-
275
-			foreach ( $gateways as $i => $gateway ) {
276
-
277
-				if (
278
-					! getpaid_payment_gateway_supports( $gateway, 'subscription' )
279
-					|| ( $this->response['has_subscription_group'] && ! getpaid_payment_gateway_supports( $gateway, 'single_subscription_group' ) )
280
-					|| ( $this->response['has_multiple_subscription_groups'] && ! getpaid_payment_gateway_supports( $gateway, 'multiple_subscription_groups' ) ) ) {
281
-					unset( $gateways[ $i ] );
282
-				}
247
+            $name          = sanitize_text_field( $name );
248
+            $amount        = $submission->format_amount( $data['initial_tax'] );
249
+            $taxes[ $name ]  = $amount;
250
+            $markup       .= "<small class='form-text'>$name : $amount</small>";
251
+        }
252
+
253
+        if ( wpinv_display_individual_tax_rates() && ! empty( $taxes ) ) {
254
+            $this->response['texts']['.getpaid-form-cart-totals-total-tax'] = $markup;
255
+        }
256
+
257
+        $this->response = array_merge(
258
+            $this->response,
259
+            array( 'taxes' => $taxes )
260
+        );
261
+
262
+    }
263
+
264
+    /**
265
+     * Adds gateways to a response for submission refresh prices.
266
+     *
267
+     * @param GetPaid_Payment_Form_Submission $submission
268
+     */
269
+    public function add_gateways( $submission ) {
270
+
271
+        $gateways = array_keys( wpinv_get_enabled_payment_gateways() );
272
+
273
+        if ( $this->response['has_recurring'] ) {
274
+
275
+            foreach ( $gateways as $i => $gateway ) {
276
+
277
+                if (
278
+                    ! getpaid_payment_gateway_supports( $gateway, 'subscription' )
279
+                    || ( $this->response['has_subscription_group'] && ! getpaid_payment_gateway_supports( $gateway, 'single_subscription_group' ) )
280
+                    || ( $this->response['has_multiple_subscription_groups'] && ! getpaid_payment_gateway_supports( $gateway, 'multiple_subscription_groups' ) ) ) {
281
+                    unset( $gateways[ $i ] );
282
+                }
283 283
 }
284 284
 }
285 285
 
286
-		$gateways = apply_filters( 'getpaid_submission_gateways', $gateways, $submission );
287
-		$this->response = array_merge(
288
-			$this->response,
289
-			array( 'gateways' => $gateways )
290
-		);
291
-
292
-	}
293
-
294
-	/**
295
-	 * Adds data to a response for submission refresh prices.
296
-	 *
297
-	 * @param GetPaid_Payment_Form_Submission $submission
298
-	 */
299
-	public function add_data( $submission ) {
300
-
301
-		$this->response = array_merge(
302
-			$this->response,
303
-			array(
304
-				'js_data' => apply_filters(
305
-					'getpaid_submission_js_data',
306
-					array(
307
-						'is_recurring' => $this->response['has_recurring'],
308
-					),
309
-					$submission
310
-				),
311
-			)
312
-		);
313
-
314
-	}
286
+        $gateways = apply_filters( 'getpaid_submission_gateways', $gateways, $submission );
287
+        $this->response = array_merge(
288
+            $this->response,
289
+            array( 'gateways' => $gateways )
290
+        );
291
+
292
+    }
293
+
294
+    /**
295
+     * Adds data to a response for submission refresh prices.
296
+     *
297
+     * @param GetPaid_Payment_Form_Submission $submission
298
+     */
299
+    public function add_data( $submission ) {
300
+
301
+        $this->response = array_merge(
302
+            $this->response,
303
+            array(
304
+                'js_data' => apply_filters(
305
+                    'getpaid_submission_js_data',
306
+                    array(
307
+                        'is_recurring' => $this->response['has_recurring'],
308
+                    ),
309
+                    $submission
310
+                ),
311
+            )
312
+        );
313
+
314
+    }
315 315
 
316 316
 }
Please login to merge, or discard this patch.
Spacing   +85 added lines, -85 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
  * Payment form submission refresh prices class
@@ -23,29 +23,29 @@  discard block
 block discarded – undo
23 23
 	 *
24 24
 	 * @param GetPaid_Payment_Form_Submission $submission
25 25
 	 */
26
-	public function __construct( $submission ) {
26
+	public function __construct($submission) {
27 27
 
28 28
 		$this->response = array(
29 29
 			'submission_id'                    => $submission->id,
30 30
             'has_recurring'                    => $submission->has_recurring,
31 31
 			'has_subscription_group'           => $submission->has_subscription_group(),
32 32
 			'has_multiple_subscription_groups' => $submission->has_multiple_subscription_groups(),
33
-            'is_free'                          => ! $submission->should_collect_payment_details(),
33
+            'is_free'                          => !$submission->should_collect_payment_details(),
34 34
 		);
35 35
 
36 36
 		$payment_form = $submission->get_payment_form();
37
-		if ( ! empty( $payment_form->invoice ) ) {
37
+		if (!empty($payment_form->invoice)) {
38 38
 			$this->response['invoice'] = $payment_form->invoice->get_id();
39 39
 		}
40 40
 
41
-		$this->add_totals( $submission );
42
-		$this->add_texts( $submission );
43
-		$this->add_items( $submission );
44
-		$this->add_fees( $submission );
45
-		$this->add_discounts( $submission );
46
-		$this->add_taxes( $submission );
47
-		$this->add_gateways( $submission );
48
-		$this->add_data( $submission );
41
+		$this->add_totals($submission);
42
+		$this->add_texts($submission);
43
+		$this->add_items($submission);
44
+		$this->add_fees($submission);
45
+		$this->add_discounts($submission);
46
+		$this->add_taxes($submission);
47
+		$this->add_gateways($submission);
48
+		$this->add_data($submission);
49 49
 
50 50
 	}
51 51
 
@@ -54,30 +54,30 @@  discard block
 block discarded – undo
54 54
 	 *
55 55
 	 * @param GetPaid_Payment_Form_Submission $submission
56 56
 	 */
57
-	public function add_totals( $submission ) {
57
+	public function add_totals($submission) {
58 58
 
59 59
 		$this->response = array_merge(
60 60
 			$this->response,
61 61
 			array(
62 62
 
63 63
 				'totals'      => array(
64
-					'subtotal'  => $submission->format_amount( $submission->get_subtotal() ),
65
-					'discount'  => $submission->format_amount( $submission->get_discount() ),
66
-					'fees'      => $submission->format_amount( $submission->get_fee() ),
67
-					'tax'       => $submission->format_amount( $submission->get_tax() ),
68
-					'total'     => $submission->format_amount( $submission->get_total() ),
69
-					'raw_total' => html_entity_decode( sanitize_text_field( $submission->format_amount( $submission->get_total() ) ), ENT_QUOTES ),
64
+					'subtotal'  => $submission->format_amount($submission->get_subtotal()),
65
+					'discount'  => $submission->format_amount($submission->get_discount()),
66
+					'fees'      => $submission->format_amount($submission->get_fee()),
67
+					'tax'       => $submission->format_amount($submission->get_tax()),
68
+					'total'     => $submission->format_amount($submission->get_total()),
69
+					'raw_total' => html_entity_decode(sanitize_text_field($submission->format_amount($submission->get_total())), ENT_QUOTES),
70 70
 				),
71 71
 
72 72
 				'recurring'   => array(
73
-					'subtotal' => $submission->format_amount( $submission->get_recurring_subtotal() ),
74
-					'discount' => $submission->format_amount( $submission->get_recurring_discount() ),
75
-					'fees'     => $submission->format_amount( $submission->get_recurring_fee() ),
76
-					'tax'      => $submission->format_amount( $submission->get_recurring_tax() ),
77
-					'total'    => $submission->format_amount( $submission->get_recurring_total() ),
73
+					'subtotal' => $submission->format_amount($submission->get_recurring_subtotal()),
74
+					'discount' => $submission->format_amount($submission->get_recurring_discount()),
75
+					'fees'     => $submission->format_amount($submission->get_recurring_fee()),
76
+					'tax'      => $submission->format_amount($submission->get_recurring_tax()),
77
+					'total'    => $submission->format_amount($submission->get_recurring_total()),
78 78
 				),
79 79
 
80
-				'initial_amt' => wpinv_round_amount( $submission->get_total(), null, true ),
80
+				'initial_amt' => wpinv_round_amount($submission->get_total(), null, true),
81 81
 				'currency'    => $submission->get_currency(),
82 82
 
83 83
 			)
@@ -90,53 +90,53 @@  discard block
 block discarded – undo
90 90
 	 *
91 91
 	 * @param GetPaid_Payment_Form_Submission $submission
92 92
 	 */
93
-	public function add_texts( $submission ) {
93
+	public function add_texts($submission) {
94 94
 
95
-		$payable = $submission->format_amount( $submission->get_total() );
96
-		$groups  = getpaid_get_subscription_groups( $submission );
95
+		$payable = $submission->format_amount($submission->get_total());
96
+		$groups  = getpaid_get_subscription_groups($submission);
97 97
 
98
-		if ( $submission->has_recurring && 2 > count( $groups ) ) {
98
+		if ($submission->has_recurring && 2 > count($groups)) {
99 99
 
100
-			$recurring = new WPInv_Item( $submission->has_recurring );
101
-			$period    = getpaid_get_subscription_period_label( $recurring->get_recurring_period( true ), $recurring->get_recurring_interval(), '' );
102
-			$main_item = reset( $groups );
100
+			$recurring = new WPInv_Item($submission->has_recurring);
101
+			$period    = getpaid_get_subscription_period_label($recurring->get_recurring_period(true), $recurring->get_recurring_interval(), '');
102
+			$main_item = reset($groups);
103 103
 
104
-			if ( $submission->get_total() == $submission->get_recurring_total() ) {
104
+			if ($submission->get_total() == $submission->get_recurring_total()) {
105 105
 				$payable = "$payable / $period";
106
-			} elseif ( $main_item ) {
106
+			} elseif ($main_item) {
107 107
 
108
-				$main_item = reset( $main_item );
108
+				$main_item = reset($main_item);
109 109
 
110 110
 				// Calculate the next renewal date.
111
-				$_period      = $main_item->get_recurring_period( true );
111
+				$_period      = $main_item->get_recurring_period(true);
112 112
 				$_interval    = $main_item->get_recurring_interval();
113 113
 
114 114
 				// If the subscription item has a trial period...
115
-				if ( $main_item->has_free_trial() ) {
116
-					$_period   = $main_item->get_trial_period( true );
115
+				if ($main_item->has_free_trial()) {
116
+					$_period   = $main_item->get_trial_period(true);
117 117
 					$_interval = $main_item->get_trial_interval();
118 118
 				}
119 119
 
120 120
 				$payable = sprintf(
121
-					__( '%1$s (renews at %2$s / %3$s)', 'invoicing' ),
122
-					$submission->format_amount( $submission->get_total() ),
123
-					$submission->format_amount( $submission->get_recurring_total() ),
121
+					__('%1$s (renews at %2$s / %3$s)', 'invoicing'),
122
+					$submission->format_amount($submission->get_total()),
123
+					$submission->format_amount($submission->get_recurring_total()),
124 124
 					$period
125 125
 				);
126 126
 
127 127
 				$payable .= sprintf(
128 128
 					'<small class="text-muted form-text">%s</small>',
129 129
 					sprintf(
130
-						__( 'First renewal on %s', 'invoicing' ),
131
-						getpaid_format_date( date( 'Y-m-d H:i:s', strtotime( "+$_interval $_period", current_time( 'timestamp' ) ) ) )
130
+						__('First renewal on %s', 'invoicing'),
131
+						getpaid_format_date(date('Y-m-d H:i:s', strtotime("+$_interval $_period", current_time('timestamp'))))
132 132
 					)
133 133
 				);
134 134
 
135 135
 			} else {
136 136
 				$payable = sprintf(
137
-					__( '%1$s (renews at %2$s / %3$s)', 'invoicing' ),
138
-					$submission->format_amount( $submission->get_total() ),
139
-					$submission->format_amount( $submission->get_recurring_total() ),
137
+					__('%1$s (renews at %2$s / %3$s)', 'invoicing'),
138
+					$submission->format_amount($submission->get_total()),
139
+					$submission->format_amount($submission->get_recurring_total()),
140 140
 					$period
141 141
 				);
142 142
 			}
@@ -146,19 +146,19 @@  discard block
 block discarded – undo
146 146
 			'.getpaid-checkout-total-payable' => $payable,
147 147
 		);
148 148
 
149
-		foreach ( $submission->get_items() as $item ) {
149
+		foreach ($submission->get_items() as $item) {
150 150
 			$item_id                                               = $item->get_id();
151
-			$initial_price                                         = $submission->format_amount( $item->get_sub_total() - $item->item_discount );
152
-			$recurring_price                                       = $submission->format_amount( $item->get_recurring_sub_total() - $item->recurring_item_discount );
153
-			$texts[ ".item-$item_id .getpaid-form-item-price-desc" ] = getpaid_item_recurring_price_help_text( $item, $submission->get_currency(), $initial_price, $recurring_price );
154
-			$texts[ ".item-$item_id .getpaid-mobile-item-subtotal" ] = sprintf( __( 'Subtotal: %s', 'invoicing' ), $submission->format_amount( $item->get_sub_total() ) );
151
+			$initial_price                                         = $submission->format_amount($item->get_sub_total() - $item->item_discount);
152
+			$recurring_price                                       = $submission->format_amount($item->get_recurring_sub_total() - $item->recurring_item_discount);
153
+			$texts[".item-$item_id .getpaid-form-item-price-desc"] = getpaid_item_recurring_price_help_text($item, $submission->get_currency(), $initial_price, $recurring_price);
154
+			$texts[".item-$item_id .getpaid-mobile-item-subtotal"] = sprintf(__('Subtotal: %s', 'invoicing'), $submission->format_amount($item->get_sub_total()));
155 155
 
156
-			if ( $item->get_quantity() == 1 ) {
157
-				$texts[ ".item-$item_id .getpaid-mobile-item-subtotal" ] = '';
156
+			if ($item->get_quantity() == 1) {
157
+				$texts[".item-$item_id .getpaid-mobile-item-subtotal"] = '';
158 158
 			}
159 159
 }
160 160
 
161
-		$this->response = array_merge( $this->response, array( 'texts' => $texts ) );
161
+		$this->response = array_merge($this->response, array('texts' => $texts));
162 162
 
163 163
 	}
164 164
 
@@ -167,20 +167,20 @@  discard block
 block discarded – undo
167 167
 	 *
168 168
 	 * @param GetPaid_Payment_Form_Submission $submission
169 169
 	 */
170
-	public function add_items( $submission ) {
170
+	public function add_items($submission) {
171 171
 
172 172
 		// Add items.
173 173
 		$items          = array();
174 174
 		$selected_items = array();
175 175
 
176
-        foreach ( $submission->get_items() as $item ) {
176
+        foreach ($submission->get_items() as $item) {
177 177
 			$item_id             = $item->get_id();
178
-			$items[ "$item_id" ] = $submission->format_amount( $item->get_sub_total() );
178
+			$items["$item_id"] = $submission->format_amount($item->get_sub_total());
179 179
 
180
-			$selected_items[ "$item_id" ] = array(
180
+			$selected_items["$item_id"] = array(
181 181
 				'quantity'  => $item->get_quantity(),
182 182
 				'price'     => $item->get_price(),
183
-				'price_fmt' => $submission->format_amount( $item->get_price() ),
183
+				'price_fmt' => $submission->format_amount($item->get_price()),
184 184
 			);
185 185
 		}
186 186
 
@@ -199,17 +199,17 @@  discard block
 block discarded – undo
199 199
 	 *
200 200
 	 * @param GetPaid_Payment_Form_Submission $submission
201 201
 	 */
202
-	public function add_fees( $submission ) {
202
+	public function add_fees($submission) {
203 203
 
204 204
 		$fees = array();
205 205
 
206
-        foreach ( $submission->get_fees() as $name => $data ) {
207
-			$fees[ $name ] = $submission->format_amount( $data['initial_fee'] );
206
+        foreach ($submission->get_fees() as $name => $data) {
207
+			$fees[$name] = $submission->format_amount($data['initial_fee']);
208 208
 		}
209 209
 
210 210
 		$this->response = array_merge(
211 211
 			$this->response,
212
-			array( 'fees' => $fees )
212
+			array('fees' => $fees)
213 213
 		);
214 214
 
215 215
 	}
@@ -219,17 +219,17 @@  discard block
 block discarded – undo
219 219
 	 *
220 220
 	 * @param GetPaid_Payment_Form_Submission $submission
221 221
 	 */
222
-	public function add_discounts( $submission ) {
222
+	public function add_discounts($submission) {
223 223
 
224 224
 		$discounts = array();
225 225
 
226
-        foreach ( $submission->get_discounts() as $name => $data ) {
227
-			$discounts[ $name ] = $submission->format_amount( $data['initial_discount'] );
226
+        foreach ($submission->get_discounts() as $name => $data) {
227
+			$discounts[$name] = $submission->format_amount($data['initial_discount']);
228 228
 		}
229 229
 
230 230
 		$this->response = array_merge(
231 231
 			$this->response,
232
-			array( 'discounts' => $discounts )
232
+			array('discounts' => $discounts)
233 233
 		);
234 234
 
235 235
 	}
@@ -239,24 +239,24 @@  discard block
 block discarded – undo
239 239
 	 *
240 240
 	 * @param GetPaid_Payment_Form_Submission $submission
241 241
 	 */
242
-	public function add_taxes( $submission ) {
242
+	public function add_taxes($submission) {
243 243
 
244 244
 		$taxes  = array();
245 245
 		$markup = '';
246
-        foreach ( $submission->get_taxes() as $name => $data ) {
247
-			$name          = sanitize_text_field( $name );
248
-			$amount        = $submission->format_amount( $data['initial_tax'] );
249
-			$taxes[ $name ]  = $amount;
246
+        foreach ($submission->get_taxes() as $name => $data) {
247
+			$name          = sanitize_text_field($name);
248
+			$amount        = $submission->format_amount($data['initial_tax']);
249
+			$taxes[$name] = $amount;
250 250
 			$markup       .= "<small class='form-text'>$name : $amount</small>";
251 251
 		}
252 252
 
253
-		if ( wpinv_display_individual_tax_rates() && ! empty( $taxes ) ) {
253
+		if (wpinv_display_individual_tax_rates() && !empty($taxes)) {
254 254
 			$this->response['texts']['.getpaid-form-cart-totals-total-tax'] = $markup;
255 255
 		}
256 256
 
257 257
 		$this->response = array_merge(
258 258
 			$this->response,
259
-			array( 'taxes' => $taxes )
259
+			array('taxes' => $taxes)
260 260
 		);
261 261
 
262 262
 	}
@@ -266,27 +266,27 @@  discard block
 block discarded – undo
266 266
 	 *
267 267
 	 * @param GetPaid_Payment_Form_Submission $submission
268 268
 	 */
269
-	public function add_gateways( $submission ) {
269
+	public function add_gateways($submission) {
270 270
 
271
-		$gateways = array_keys( wpinv_get_enabled_payment_gateways() );
271
+		$gateways = array_keys(wpinv_get_enabled_payment_gateways());
272 272
 
273
-		if ( $this->response['has_recurring'] ) {
273
+		if ($this->response['has_recurring']) {
274 274
 
275
-			foreach ( $gateways as $i => $gateway ) {
275
+			foreach ($gateways as $i => $gateway) {
276 276
 
277 277
 				if (
278
-					! getpaid_payment_gateway_supports( $gateway, 'subscription' )
279
-					|| ( $this->response['has_subscription_group'] && ! getpaid_payment_gateway_supports( $gateway, 'single_subscription_group' ) )
280
-					|| ( $this->response['has_multiple_subscription_groups'] && ! getpaid_payment_gateway_supports( $gateway, 'multiple_subscription_groups' ) ) ) {
281
-					unset( $gateways[ $i ] );
278
+					!getpaid_payment_gateway_supports($gateway, 'subscription')
279
+					|| ($this->response['has_subscription_group'] && !getpaid_payment_gateway_supports($gateway, 'single_subscription_group'))
280
+					|| ($this->response['has_multiple_subscription_groups'] && !getpaid_payment_gateway_supports($gateway, 'multiple_subscription_groups')) ) {
281
+					unset($gateways[$i]);
282 282
 				}
283 283
 }
284 284
 }
285 285
 
286
-		$gateways = apply_filters( 'getpaid_submission_gateways', $gateways, $submission );
286
+		$gateways = apply_filters('getpaid_submission_gateways', $gateways, $submission);
287 287
 		$this->response = array_merge(
288 288
 			$this->response,
289
-			array( 'gateways' => $gateways )
289
+			array('gateways' => $gateways)
290 290
 		);
291 291
 
292 292
 	}
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
 	 *
297 297
 	 * @param GetPaid_Payment_Form_Submission $submission
298 298
 	 */
299
-	public function add_data( $submission ) {
299
+	public function add_data($submission) {
300 300
 
301 301
 		$this->response = array_merge(
302 302
 			$this->response,
Please login to merge, or discard this patch.
includes/payments/class-getpaid-form-item.php 2 patches
Indentation   +359 added lines, -359 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined( 'ABSPATH' ) ) {
3
-	exit;
3
+    exit;
4 4
 }
5 5
 
6 6
 /**
@@ -10,67 +10,67 @@  discard block
 block discarded – undo
10 10
 class GetPaid_Form_Item  extends WPInv_Item {
11 11
 
12 12
     /**
13
-	 * Stores a custom description for the item.
14
-	 *
15
-	 * @var string
16
-	 */
17
-	protected $custom_description = null;
18
-
19
-	/**
20
-	 * Stores the item quantity.
21
-	 *
22
-	 * @var float
23
-	 */
24
-	protected $quantity = 1;
25
-
26
-	/**
27
-	 * Stores the item meta.
28
-	 *
29
-	 * @var array
30
-	 */
31
-	protected $meta = array();
32
-
33
-	/**
34
-	 * Is this item required?
35
-	 *
36
-	 * @var int
37
-	 */
38
-	protected $is_required = true;
39
-
40
-	/**
41
-	 * Are quantities allowed?
42
-	 *
43
-	 * @var int
44
-	 */
45
-	protected $allow_quantities = false;
46
-
47
-	/**
48
-	 * Associated invoice.
49
-	 *
50
-	 * @var int
51
-	 */
52
-	public $invoice_id = 0;
53
-
54
-	/**
55
-	 * Item discount.
56
-	 *
57
-	 * @var float
58
-	 */
59
-	public $item_discount = 0;
60
-
61
-	/**
62
-	 * Recurring item discount.
63
-	 *
64
-	 * @var float
65
-	 */
66
-	public $recurring_item_discount = 0;
67
-
68
-	/**
69
-	 * Item tax.
70
-	 *
71
-	 * @var float
72
-	 */
73
-	public $item_tax = 0;
13
+     * Stores a custom description for the item.
14
+     *
15
+     * @var string
16
+     */
17
+    protected $custom_description = null;
18
+
19
+    /**
20
+     * Stores the item quantity.
21
+     *
22
+     * @var float
23
+     */
24
+    protected $quantity = 1;
25
+
26
+    /**
27
+     * Stores the item meta.
28
+     *
29
+     * @var array
30
+     */
31
+    protected $meta = array();
32
+
33
+    /**
34
+     * Is this item required?
35
+     *
36
+     * @var int
37
+     */
38
+    protected $is_required = true;
39
+
40
+    /**
41
+     * Are quantities allowed?
42
+     *
43
+     * @var int
44
+     */
45
+    protected $allow_quantities = false;
46
+
47
+    /**
48
+     * Associated invoice.
49
+     *
50
+     * @var int
51
+     */
52
+    public $invoice_id = 0;
53
+
54
+    /**
55
+     * Item discount.
56
+     *
57
+     * @var float
58
+     */
59
+    public $item_discount = 0;
60
+
61
+    /**
62
+     * Recurring item discount.
63
+     *
64
+     * @var float
65
+     */
66
+    public $recurring_item_discount = 0;
67
+
68
+    /**
69
+     * Item tax.
70
+     *
71
+     * @var float
72
+     */
73
+    public $item_tax = 0;
74 74
 
75 75
     /*
76 76
 	|--------------------------------------------------------------------------
@@ -88,230 +88,230 @@  discard block
 block discarded – undo
88 88
     */
89 89
 
90 90
     /**
91
-	 * Get the item name.
92
-	 *
93
-	 * @since 1.0.19
94
-	 * @param  string $context View or edit context.
95
-	 * @return string
96
-	 */
97
-	public function get_name( $context = 'view' ) {
98
-		$name = parent::get_name( $context );
99
-		return $name . wpinv_get_item_suffix( $this );
100
-	}
101
-
102
-	/**
103
-	 * Get the item name without a suffix.
104
-	 *
105
-	 * @since 1.0.19
106
-	 * @param  string $context View or edit context.
107
-	 * @return string
108
-	 */
109
-	public function get_raw_name( $context = 'view' ) {
110
-		return parent::get_name( $context );
111
-	}
112
-
113
-	/**
114
-	 * Get the item description.
115
-	 *
116
-	 * @since 1.0.19
117
-	 * @param  string $context View or edit context.
118
-	 * @return string
119
-	 */
120
-	public function get_description( $context = 'view' ) {
121
-
122
-		if ( isset( $this->custom_description ) ) {
123
-			return $this->custom_description;
124
-		}
125
-
126
-		return parent::get_description( $context );
127
-	}
128
-
129
-	/**
130
-	 * Returns the sub total.
131
-	 *
132
-	 * @since 1.0.19
133
-	 * @param  string $context View or edit context.
134
-	 * @return float
135
-	 */
136
-	public function get_sub_total( $context = 'view' ) {
137
-		return $this->get_quantity( $context ) * $this->get_initial_price( $context );
138
-	}
139
-
140
-	/**
141
-	 * Returns the recurring sub total.
142
-	 *
143
-	 * @since 1.0.19
144
-	 * @param  string $context View or edit context.
145
-	 * @return float
146
-	 */
147
-	public function get_recurring_sub_total( $context = 'view' ) {
148
-
149
-		if ( $this->is_recurring() ) {
150
-			return $this->get_quantity( $context ) * $this->get_price( $context );
151
-		}
152
-
153
-		return 0;
154
-	}
155
-
156
-	/**
157
-	 * @deprecated
158
-	 */
159
-	public function get_qantity( $context = 'view' ) {
160
-		return $this->get_quantity( $context );
161
-	}
162
-
163
-	/**
164
-	 * Get the item quantity.
165
-	 *
166
-	 * @since 1.0.19
167
-	 * @param  string $context View or edit context.
168
-	 * @return float
169
-	 */
170
-	public function get_quantity( $context = 'view' ) {
171
-		$quantity = (float) $this->quantity;
172
-
173
-		if ( 'view' === $context ) {
174
-			return apply_filters( 'getpaid_payment_form_item_quantity', $quantity, $this );
175
-		}
176
-
177
-		return $quantity;
178
-
179
-	}
180
-
181
-	/**
182
-	 * Get the item meta data.
183
-	 *
184
-	 * @since 1.0.19
185
-	 * @param  string $context View or edit context.
186
-	 * @return meta
187
-	 */
188
-	public function get_item_meta( $context = 'view' ) {
189
-		$meta = $this->meta;
190
-
191
-		if ( 'view' === $context ) {
192
-			return apply_filters( 'getpaid_payment_form_item_meta', $meta, $this );
193
-		}
194
-
195
-		return $meta;
196
-
197
-	}
198
-
199
-	/**
200
-	 * Returns whether or not customers can update the item quantity.
201
-	 *
202
-	 * @since 1.0.19
203
-	 * @param  string $context View or edit context.
204
-	 * @return bool
205
-	 */
206
-	public function get_allow_quantities( $context = 'view' ) {
207
-		$allow_quantities = (bool) $this->allow_quantities;
208
-
209
-		if ( 'view' === $context ) {
210
-			return apply_filters( 'getpaid_payment_form_item_allow_quantities', $allow_quantities, $this );
211
-		}
212
-
213
-		return $allow_quantities;
214
-
215
-	}
216
-
217
-	/**
218
-	 * Returns whether or not the item is required.
219
-	 *
220
-	 * @since 1.0.19
221
-	 * @param  string $context View or edit context.
222
-	 * @return bool
223
-	 */
224
-	public function get_is_required( $context = 'view' ) {
225
-		$is_required = (bool) $this->is_required;
226
-
227
-		if ( 'view' === $context ) {
228
-			return apply_filters( 'getpaid_payment_form_item_is_required', $is_required, $this );
229
-		}
230
-
231
-		return $is_required;
232
-
233
-	}
234
-
235
-	/**
236
-	 * Prepares form data for use.
237
-	 *
238
-	 * @since 1.0.19
239
-	 * @return array
240
-	 */
241
-	public function prepare_data_for_use( $required = null ) {
242
-
243
-		$required = is_null( $required ) ? $this->is_required() : $required;
244
-		return array(
245
-			'title'            => wp_strip_all_tags( $this->get_name() ),
246
-			'id'               => $this->get_id(),
247
-			'price'            => $this->get_price(),
248
-			'recurring'        => $this->is_recurring(),
249
-			'description'      => $this->get_description(),
250
-			'allow_quantities' => $this->allows_quantities(),
251
-			'required'         => $required,
252
-		);
253
-
254
-	}
255
-
256
-	/**
257
-	 * Prepares form data for ajax use.
258
-	 *
259
-	 * @since 1.0.19
260
-	 * @return array
261
-	 */
262
-	public function prepare_data_for_invoice_edit_ajax( $currency = '', $is_renewal = false ) {
263
-
264
-		$description = getpaid_item_recurring_price_help_text( $this, $currency );
265
-
266
-		if ( $description ) {
267
-			$description = "<div class='getpaid-subscription-help-text'>$description</div>";
268
-		}
269
-
270
-		$price    = ! $is_renewal ? $this->get_price() : $this->get_recurring_price();
271
-		$subtotal = ! $is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total();
272
-		return array(
273
-			'id'     => $this->get_id(),
274
-			'texts'  => array(
275
-				'item-name'        => sanitize_text_field( $this->get_name() ),
276
-				'item-description' => wp_kses_post( $this->get_description() ) . $description,
277
-				'item-quantity'    => floatval( $this->get_quantity() ),
278
-				'item-price'       => wpinv_price( $price, $currency ),
279
-				'item-total'       => wpinv_price( $subtotal, $currency ),
280
-			),
281
-			'inputs' => array(
282
-				'item-id'          => $this->get_id(),
283
-				'item-name'        => sanitize_text_field( $this->get_name() ),
284
-				'item-description' => wp_kses_post( $this->get_description() ),
285
-				'item-quantity'    => floatval( $this->get_quantity() ),
286
-				'item-price'       => $price,
287
-			),
288
-		);
289
-
290
-	}
291
-
292
-	/**
293
-	 * Prepares form data for saving (cart_details).
294
-	 *
295
-	 * @since 1.0.19
296
-	 * @return array
297
-	 */
298
-	public function prepare_data_for_saving() {
299
-
300
-		return array(
301
-			'post_id'          => $this->invoice_id,
302
-			'item_id'          => $this->get_id(),
303
-			'item_name'        => sanitize_text_field( $this->get_raw_name( 'edit' ) ),
304
-			'item_description' => $this->get_description( 'edit' ),
305
-			'tax'              => $this->item_tax,
306
-			'item_price'       => $this->get_price( 'edit' ),
307
-			'quantity'         => (float) $this->get_quantity( 'edit' ),
308
-			'discount'         => $this->item_discount,
309
-			'subtotal'         => $this->get_sub_total( 'edit' ),
310
-			'price'            => $this->get_sub_total( 'edit' ) + $this->item_tax - $this->item_discount,
311
-			'meta'             => $this->get_item_meta( 'edit' ),
312
-		);
313
-
314
-	}
91
+     * Get the item name.
92
+     *
93
+     * @since 1.0.19
94
+     * @param  string $context View or edit context.
95
+     * @return string
96
+     */
97
+    public function get_name( $context = 'view' ) {
98
+        $name = parent::get_name( $context );
99
+        return $name . wpinv_get_item_suffix( $this );
100
+    }
101
+
102
+    /**
103
+     * Get the item name without a suffix.
104
+     *
105
+     * @since 1.0.19
106
+     * @param  string $context View or edit context.
107
+     * @return string
108
+     */
109
+    public function get_raw_name( $context = 'view' ) {
110
+        return parent::get_name( $context );
111
+    }
112
+
113
+    /**
114
+     * Get the item description.
115
+     *
116
+     * @since 1.0.19
117
+     * @param  string $context View or edit context.
118
+     * @return string
119
+     */
120
+    public function get_description( $context = 'view' ) {
121
+
122
+        if ( isset( $this->custom_description ) ) {
123
+            return $this->custom_description;
124
+        }
125
+
126
+        return parent::get_description( $context );
127
+    }
128
+
129
+    /**
130
+     * Returns the sub total.
131
+     *
132
+     * @since 1.0.19
133
+     * @param  string $context View or edit context.
134
+     * @return float
135
+     */
136
+    public function get_sub_total( $context = 'view' ) {
137
+        return $this->get_quantity( $context ) * $this->get_initial_price( $context );
138
+    }
139
+
140
+    /**
141
+     * Returns the recurring sub total.
142
+     *
143
+     * @since 1.0.19
144
+     * @param  string $context View or edit context.
145
+     * @return float
146
+     */
147
+    public function get_recurring_sub_total( $context = 'view' ) {
148
+
149
+        if ( $this->is_recurring() ) {
150
+            return $this->get_quantity( $context ) * $this->get_price( $context );
151
+        }
152
+
153
+        return 0;
154
+    }
155
+
156
+    /**
157
+     * @deprecated
158
+     */
159
+    public function get_qantity( $context = 'view' ) {
160
+        return $this->get_quantity( $context );
161
+    }
162
+
163
+    /**
164
+     * Get the item quantity.
165
+     *
166
+     * @since 1.0.19
167
+     * @param  string $context View or edit context.
168
+     * @return float
169
+     */
170
+    public function get_quantity( $context = 'view' ) {
171
+        $quantity = (float) $this->quantity;
172
+
173
+        if ( 'view' === $context ) {
174
+            return apply_filters( 'getpaid_payment_form_item_quantity', $quantity, $this );
175
+        }
176
+
177
+        return $quantity;
178
+
179
+    }
180
+
181
+    /**
182
+     * Get the item meta data.
183
+     *
184
+     * @since 1.0.19
185
+     * @param  string $context View or edit context.
186
+     * @return meta
187
+     */
188
+    public function get_item_meta( $context = 'view' ) {
189
+        $meta = $this->meta;
190
+
191
+        if ( 'view' === $context ) {
192
+            return apply_filters( 'getpaid_payment_form_item_meta', $meta, $this );
193
+        }
194
+
195
+        return $meta;
196
+
197
+    }
198
+
199
+    /**
200
+     * Returns whether or not customers can update the item quantity.
201
+     *
202
+     * @since 1.0.19
203
+     * @param  string $context View or edit context.
204
+     * @return bool
205
+     */
206
+    public function get_allow_quantities( $context = 'view' ) {
207
+        $allow_quantities = (bool) $this->allow_quantities;
208
+
209
+        if ( 'view' === $context ) {
210
+            return apply_filters( 'getpaid_payment_form_item_allow_quantities', $allow_quantities, $this );
211
+        }
212
+
213
+        return $allow_quantities;
214
+
215
+    }
216
+
217
+    /**
218
+     * Returns whether or not the item is required.
219
+     *
220
+     * @since 1.0.19
221
+     * @param  string $context View or edit context.
222
+     * @return bool
223
+     */
224
+    public function get_is_required( $context = 'view' ) {
225
+        $is_required = (bool) $this->is_required;
226
+
227
+        if ( 'view' === $context ) {
228
+            return apply_filters( 'getpaid_payment_form_item_is_required', $is_required, $this );
229
+        }
230
+
231
+        return $is_required;
232
+
233
+    }
234
+
235
+    /**
236
+     * Prepares form data for use.
237
+     *
238
+     * @since 1.0.19
239
+     * @return array
240
+     */
241
+    public function prepare_data_for_use( $required = null ) {
242
+
243
+        $required = is_null( $required ) ? $this->is_required() : $required;
244
+        return array(
245
+            'title'            => wp_strip_all_tags( $this->get_name() ),
246
+            'id'               => $this->get_id(),
247
+            'price'            => $this->get_price(),
248
+            'recurring'        => $this->is_recurring(),
249
+            'description'      => $this->get_description(),
250
+            'allow_quantities' => $this->allows_quantities(),
251
+            'required'         => $required,
252
+        );
253
+
254
+    }
255
+
256
+    /**
257
+     * Prepares form data for ajax use.
258
+     *
259
+     * @since 1.0.19
260
+     * @return array
261
+     */
262
+    public function prepare_data_for_invoice_edit_ajax( $currency = '', $is_renewal = false ) {
263
+
264
+        $description = getpaid_item_recurring_price_help_text( $this, $currency );
265
+
266
+        if ( $description ) {
267
+            $description = "<div class='getpaid-subscription-help-text'>$description</div>";
268
+        }
269
+
270
+        $price    = ! $is_renewal ? $this->get_price() : $this->get_recurring_price();
271
+        $subtotal = ! $is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total();
272
+        return array(
273
+            'id'     => $this->get_id(),
274
+            'texts'  => array(
275
+                'item-name'        => sanitize_text_field( $this->get_name() ),
276
+                'item-description' => wp_kses_post( $this->get_description() ) . $description,
277
+                'item-quantity'    => floatval( $this->get_quantity() ),
278
+                'item-price'       => wpinv_price( $price, $currency ),
279
+                'item-total'       => wpinv_price( $subtotal, $currency ),
280
+            ),
281
+            'inputs' => array(
282
+                'item-id'          => $this->get_id(),
283
+                'item-name'        => sanitize_text_field( $this->get_name() ),
284
+                'item-description' => wp_kses_post( $this->get_description() ),
285
+                'item-quantity'    => floatval( $this->get_quantity() ),
286
+                'item-price'       => $price,
287
+            ),
288
+        );
289
+
290
+    }
291
+
292
+    /**
293
+     * Prepares form data for saving (cart_details).
294
+     *
295
+     * @since 1.0.19
296
+     * @return array
297
+     */
298
+    public function prepare_data_for_saving() {
299
+
300
+        return array(
301
+            'post_id'          => $this->invoice_id,
302
+            'item_id'          => $this->get_id(),
303
+            'item_name'        => sanitize_text_field( $this->get_raw_name( 'edit' ) ),
304
+            'item_description' => $this->get_description( 'edit' ),
305
+            'tax'              => $this->item_tax,
306
+            'item_price'       => $this->get_price( 'edit' ),
307
+            'quantity'         => (float) $this->get_quantity( 'edit' ),
308
+            'discount'         => $this->item_discount,
309
+            'subtotal'         => $this->get_sub_total( 'edit' ),
310
+            'price'            => $this->get_sub_total( 'edit' ) + $this->item_tax - $this->item_discount,
311
+            'meta'             => $this->get_item_meta( 'edit' ),
312
+        );
313
+
314
+    }
315 315
 
316 316
     /*
317 317
 	|--------------------------------------------------------------------------
@@ -323,70 +323,70 @@  discard block
 block discarded – undo
323 323
 	| object.
324 324
     */
325 325
 
326
-	/**
327
-	 * Set the item qantity.
328
-	 *
329
-	 * @since 1.0.19
330
-	 * @param  float $quantity The item quantity.
331
-	 */
332
-	public function set_quantity( $quantity ) {
333
-
334
-		if ( ! is_numeric( $quantity ) ) {
335
-			$quantity = 1;
336
-		}
337
-
338
-		$this->quantity = (float) $quantity;
339
-
340
-	}
341
-
342
-	/**
343
-	 * Set the item meta data.
344
-	 *
345
-	 * @since 1.0.19
346
-	 * @param  array $meta The item meta data.
347
-	 */
348
-	public function set_item_meta( $meta ) {
349
-		$this->meta = maybe_unserialize( $meta );
350
-	}
351
-
352
-	/**
353
-	 * Set whether or not the quantities are allowed.
354
-	 *
355
-	 * @since 1.0.19
356
-	 * @param  bool $allow_quantities
357
-	 */
358
-	public function set_allow_quantities( $allow_quantities ) {
359
-		$this->allow_quantities = (bool) $allow_quantities;
360
-	}
361
-
362
-	/**
363
-	 * Set whether or not the item is required.
364
-	 *
365
-	 * @since 1.0.19
366
-	 * @param  bool $is_required
367
-	 */
368
-	public function set_is_required( $is_required ) {
369
-		$this->is_required = (bool) $is_required;
370
-	}
371
-
372
-	/**
373
-	 * Sets the custom item description.
374
-	 *
375
-	 * @since 1.0.19
376
-	 * @param  string $description
377
-	 */
378
-	public function set_custom_description( $description ) {
379
-		$this->custom_description = $description;
380
-	}
326
+    /**
327
+     * Set the item qantity.
328
+     *
329
+     * @since 1.0.19
330
+     * @param  float $quantity The item quantity.
331
+     */
332
+    public function set_quantity( $quantity ) {
333
+
334
+        if ( ! is_numeric( $quantity ) ) {
335
+            $quantity = 1;
336
+        }
337
+
338
+        $this->quantity = (float) $quantity;
339
+
340
+    }
341
+
342
+    /**
343
+     * Set the item meta data.
344
+     *
345
+     * @since 1.0.19
346
+     * @param  array $meta The item meta data.
347
+     */
348
+    public function set_item_meta( $meta ) {
349
+        $this->meta = maybe_unserialize( $meta );
350
+    }
351
+
352
+    /**
353
+     * Set whether or not the quantities are allowed.
354
+     *
355
+     * @since 1.0.19
356
+     * @param  bool $allow_quantities
357
+     */
358
+    public function set_allow_quantities( $allow_quantities ) {
359
+        $this->allow_quantities = (bool) $allow_quantities;
360
+    }
361
+
362
+    /**
363
+     * Set whether or not the item is required.
364
+     *
365
+     * @since 1.0.19
366
+     * @param  bool $is_required
367
+     */
368
+    public function set_is_required( $is_required ) {
369
+        $this->is_required = (bool) $is_required;
370
+    }
371
+
372
+    /**
373
+     * Sets the custom item description.
374
+     *
375
+     * @since 1.0.19
376
+     * @param  string $description
377
+     */
378
+    public function set_custom_description( $description ) {
379
+        $this->custom_description = $description;
380
+    }
381 381
 
382 382
     /**
383 383
      * We do not want to save items to the database.
384 384
      *
385
-	 * @return int item id
385
+     * @return int item id
386 386
      */
387 387
     public function save( $data = array() ) {
388 388
         return $this->get_id();
389
-	}
389
+    }
390 390
 
391 391
     /*
392 392
 	|--------------------------------------------------------------------------
@@ -398,23 +398,23 @@  discard block
 block discarded – undo
398 398
 	*/
399 399
 
400 400
     /**
401
-	 * Checks whether the item has enabled dynamic pricing.
402
-	 *
403
-	 * @since 1.0.19
404
-	 * @return bool
405
-	 */
406
-	public function is_required() {
401
+     * Checks whether the item has enabled dynamic pricing.
402
+     *
403
+     * @since 1.0.19
404
+     * @return bool
405
+     */
406
+    public function is_required() {
407 407
         return (bool) $this->get_is_required();
408
-	}
409
-
410
-	/**
411
-	 * Checks whether users can edit the quantities.
412
-	 *
413
-	 * @since 1.0.19
414
-	 * @return bool
415
-	 */
416
-	public function allows_quantities() {
408
+    }
409
+
410
+    /**
411
+     * Checks whether users can edit the quantities.
412
+     *
413
+     * @since 1.0.19
414
+     * @return bool
415
+     */
416
+    public function allows_quantities() {
417 417
         return (bool) $this->get_allow_quantities();
418
-	}
418
+    }
419 419
 
420 420
 }
Please login to merge, or discard this patch.
Spacing   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) {
2
+if (!defined('ABSPATH')) {
3 3
 	exit;
4 4
 }
5 5
 
@@ -94,9 +94,9 @@  discard block
 block discarded – undo
94 94
 	 * @param  string $context View or edit context.
95 95
 	 * @return string
96 96
 	 */
97
-	public function get_name( $context = 'view' ) {
98
-		$name = parent::get_name( $context );
99
-		return $name . wpinv_get_item_suffix( $this );
97
+	public function get_name($context = 'view') {
98
+		$name = parent::get_name($context);
99
+		return $name . wpinv_get_item_suffix($this);
100 100
 	}
101 101
 
102 102
 	/**
@@ -106,8 +106,8 @@  discard block
 block discarded – undo
106 106
 	 * @param  string $context View or edit context.
107 107
 	 * @return string
108 108
 	 */
109
-	public function get_raw_name( $context = 'view' ) {
110
-		return parent::get_name( $context );
109
+	public function get_raw_name($context = 'view') {
110
+		return parent::get_name($context);
111 111
 	}
112 112
 
113 113
 	/**
@@ -117,13 +117,13 @@  discard block
 block discarded – undo
117 117
 	 * @param  string $context View or edit context.
118 118
 	 * @return string
119 119
 	 */
120
-	public function get_description( $context = 'view' ) {
120
+	public function get_description($context = 'view') {
121 121
 
122
-		if ( isset( $this->custom_description ) ) {
122
+		if (isset($this->custom_description)) {
123 123
 			return $this->custom_description;
124 124
 		}
125 125
 
126
-		return parent::get_description( $context );
126
+		return parent::get_description($context);
127 127
 	}
128 128
 
129 129
 	/**
@@ -133,8 +133,8 @@  discard block
 block discarded – undo
133 133
 	 * @param  string $context View or edit context.
134 134
 	 * @return float
135 135
 	 */
136
-	public function get_sub_total( $context = 'view' ) {
137
-		return $this->get_quantity( $context ) * $this->get_initial_price( $context );
136
+	public function get_sub_total($context = 'view') {
137
+		return $this->get_quantity($context) * $this->get_initial_price($context);
138 138
 	}
139 139
 
140 140
 	/**
@@ -144,10 +144,10 @@  discard block
 block discarded – undo
144 144
 	 * @param  string $context View or edit context.
145 145
 	 * @return float
146 146
 	 */
147
-	public function get_recurring_sub_total( $context = 'view' ) {
147
+	public function get_recurring_sub_total($context = 'view') {
148 148
 
149
-		if ( $this->is_recurring() ) {
150
-			return $this->get_quantity( $context ) * $this->get_price( $context );
149
+		if ($this->is_recurring()) {
150
+			return $this->get_quantity($context) * $this->get_price($context);
151 151
 		}
152 152
 
153 153
 		return 0;
@@ -156,8 +156,8 @@  discard block
 block discarded – undo
156 156
 	/**
157 157
 	 * @deprecated
158 158
 	 */
159
-	public function get_qantity( $context = 'view' ) {
160
-		return $this->get_quantity( $context );
159
+	public function get_qantity($context = 'view') {
160
+		return $this->get_quantity($context);
161 161
 	}
162 162
 
163 163
 	/**
@@ -167,11 +167,11 @@  discard block
 block discarded – undo
167 167
 	 * @param  string $context View or edit context.
168 168
 	 * @return float
169 169
 	 */
170
-	public function get_quantity( $context = 'view' ) {
170
+	public function get_quantity($context = 'view') {
171 171
 		$quantity = (float) $this->quantity;
172 172
 
173
-		if ( 'view' === $context ) {
174
-			return apply_filters( 'getpaid_payment_form_item_quantity', $quantity, $this );
173
+		if ('view' === $context) {
174
+			return apply_filters('getpaid_payment_form_item_quantity', $quantity, $this);
175 175
 		}
176 176
 
177 177
 		return $quantity;
@@ -185,11 +185,11 @@  discard block
 block discarded – undo
185 185
 	 * @param  string $context View or edit context.
186 186
 	 * @return meta
187 187
 	 */
188
-	public function get_item_meta( $context = 'view' ) {
188
+	public function get_item_meta($context = 'view') {
189 189
 		$meta = $this->meta;
190 190
 
191
-		if ( 'view' === $context ) {
192
-			return apply_filters( 'getpaid_payment_form_item_meta', $meta, $this );
191
+		if ('view' === $context) {
192
+			return apply_filters('getpaid_payment_form_item_meta', $meta, $this);
193 193
 		}
194 194
 
195 195
 		return $meta;
@@ -203,11 +203,11 @@  discard block
 block discarded – undo
203 203
 	 * @param  string $context View or edit context.
204 204
 	 * @return bool
205 205
 	 */
206
-	public function get_allow_quantities( $context = 'view' ) {
206
+	public function get_allow_quantities($context = 'view') {
207 207
 		$allow_quantities = (bool) $this->allow_quantities;
208 208
 
209
-		if ( 'view' === $context ) {
210
-			return apply_filters( 'getpaid_payment_form_item_allow_quantities', $allow_quantities, $this );
209
+		if ('view' === $context) {
210
+			return apply_filters('getpaid_payment_form_item_allow_quantities', $allow_quantities, $this);
211 211
 		}
212 212
 
213 213
 		return $allow_quantities;
@@ -221,11 +221,11 @@  discard block
 block discarded – undo
221 221
 	 * @param  string $context View or edit context.
222 222
 	 * @return bool
223 223
 	 */
224
-	public function get_is_required( $context = 'view' ) {
224
+	public function get_is_required($context = 'view') {
225 225
 		$is_required = (bool) $this->is_required;
226 226
 
227
-		if ( 'view' === $context ) {
228
-			return apply_filters( 'getpaid_payment_form_item_is_required', $is_required, $this );
227
+		if ('view' === $context) {
228
+			return apply_filters('getpaid_payment_form_item_is_required', $is_required, $this);
229 229
 		}
230 230
 
231 231
 		return $is_required;
@@ -238,11 +238,11 @@  discard block
 block discarded – undo
238 238
 	 * @since 1.0.19
239 239
 	 * @return array
240 240
 	 */
241
-	public function prepare_data_for_use( $required = null ) {
241
+	public function prepare_data_for_use($required = null) {
242 242
 
243
-		$required = is_null( $required ) ? $this->is_required() : $required;
243
+		$required = is_null($required) ? $this->is_required() : $required;
244 244
 		return array(
245
-			'title'            => wp_strip_all_tags( $this->get_name() ),
245
+			'title'            => wp_strip_all_tags($this->get_name()),
246 246
 			'id'               => $this->get_id(),
247 247
 			'price'            => $this->get_price(),
248 248
 			'recurring'        => $this->is_recurring(),
@@ -259,30 +259,30 @@  discard block
 block discarded – undo
259 259
 	 * @since 1.0.19
260 260
 	 * @return array
261 261
 	 */
262
-	public function prepare_data_for_invoice_edit_ajax( $currency = '', $is_renewal = false ) {
262
+	public function prepare_data_for_invoice_edit_ajax($currency = '', $is_renewal = false) {
263 263
 
264
-		$description = getpaid_item_recurring_price_help_text( $this, $currency );
264
+		$description = getpaid_item_recurring_price_help_text($this, $currency);
265 265
 
266
-		if ( $description ) {
266
+		if ($description) {
267 267
 			$description = "<div class='getpaid-subscription-help-text'>$description</div>";
268 268
 		}
269 269
 
270
-		$price    = ! $is_renewal ? $this->get_price() : $this->get_recurring_price();
271
-		$subtotal = ! $is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total();
270
+		$price    = !$is_renewal ? $this->get_price() : $this->get_recurring_price();
271
+		$subtotal = !$is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total();
272 272
 		return array(
273 273
 			'id'     => $this->get_id(),
274 274
 			'texts'  => array(
275
-				'item-name'        => sanitize_text_field( $this->get_name() ),
276
-				'item-description' => wp_kses_post( $this->get_description() ) . $description,
277
-				'item-quantity'    => floatval( $this->get_quantity() ),
278
-				'item-price'       => wpinv_price( $price, $currency ),
279
-				'item-total'       => wpinv_price( $subtotal, $currency ),
275
+				'item-name'        => sanitize_text_field($this->get_name()),
276
+				'item-description' => wp_kses_post($this->get_description()) . $description,
277
+				'item-quantity'    => floatval($this->get_quantity()),
278
+				'item-price'       => wpinv_price($price, $currency),
279
+				'item-total'       => wpinv_price($subtotal, $currency),
280 280
 			),
281 281
 			'inputs' => array(
282 282
 				'item-id'          => $this->get_id(),
283
-				'item-name'        => sanitize_text_field( $this->get_name() ),
284
-				'item-description' => wp_kses_post( $this->get_description() ),
285
-				'item-quantity'    => floatval( $this->get_quantity() ),
283
+				'item-name'        => sanitize_text_field($this->get_name()),
284
+				'item-description' => wp_kses_post($this->get_description()),
285
+				'item-quantity'    => floatval($this->get_quantity()),
286 286
 				'item-price'       => $price,
287 287
 			),
288 288
 		);
@@ -300,15 +300,15 @@  discard block
 block discarded – undo
300 300
 		return array(
301 301
 			'post_id'          => $this->invoice_id,
302 302
 			'item_id'          => $this->get_id(),
303
-			'item_name'        => sanitize_text_field( $this->get_raw_name( 'edit' ) ),
304
-			'item_description' => $this->get_description( 'edit' ),
303
+			'item_name'        => sanitize_text_field($this->get_raw_name('edit')),
304
+			'item_description' => $this->get_description('edit'),
305 305
 			'tax'              => $this->item_tax,
306
-			'item_price'       => $this->get_price( 'edit' ),
307
-			'quantity'         => (float) $this->get_quantity( 'edit' ),
306
+			'item_price'       => $this->get_price('edit'),
307
+			'quantity'         => (float) $this->get_quantity('edit'),
308 308
 			'discount'         => $this->item_discount,
309
-			'subtotal'         => $this->get_sub_total( 'edit' ),
310
-			'price'            => $this->get_sub_total( 'edit' ) + $this->item_tax - $this->item_discount,
311
-			'meta'             => $this->get_item_meta( 'edit' ),
309
+			'subtotal'         => $this->get_sub_total('edit'),
310
+			'price'            => $this->get_sub_total('edit') + $this->item_tax - $this->item_discount,
311
+			'meta'             => $this->get_item_meta('edit'),
312 312
 		);
313 313
 
314 314
 	}
@@ -329,9 +329,9 @@  discard block
 block discarded – undo
329 329
 	 * @since 1.0.19
330 330
 	 * @param  float $quantity The item quantity.
331 331
 	 */
332
-	public function set_quantity( $quantity ) {
332
+	public function set_quantity($quantity) {
333 333
 
334
-		if ( ! is_numeric( $quantity ) ) {
334
+		if (!is_numeric($quantity)) {
335 335
 			$quantity = 1;
336 336
 		}
337 337
 
@@ -345,8 +345,8 @@  discard block
 block discarded – undo
345 345
 	 * @since 1.0.19
346 346
 	 * @param  array $meta The item meta data.
347 347
 	 */
348
-	public function set_item_meta( $meta ) {
349
-		$this->meta = maybe_unserialize( $meta );
348
+	public function set_item_meta($meta) {
349
+		$this->meta = maybe_unserialize($meta);
350 350
 	}
351 351
 
352 352
 	/**
@@ -355,7 +355,7 @@  discard block
 block discarded – undo
355 355
 	 * @since 1.0.19
356 356
 	 * @param  bool $allow_quantities
357 357
 	 */
358
-	public function set_allow_quantities( $allow_quantities ) {
358
+	public function set_allow_quantities($allow_quantities) {
359 359
 		$this->allow_quantities = (bool) $allow_quantities;
360 360
 	}
361 361
 
@@ -365,7 +365,7 @@  discard block
 block discarded – undo
365 365
 	 * @since 1.0.19
366 366
 	 * @param  bool $is_required
367 367
 	 */
368
-	public function set_is_required( $is_required ) {
368
+	public function set_is_required($is_required) {
369 369
 		$this->is_required = (bool) $is_required;
370 370
 	}
371 371
 
@@ -375,7 +375,7 @@  discard block
 block discarded – undo
375 375
 	 * @since 1.0.19
376 376
 	 * @param  string $description
377 377
 	 */
378
-	public function set_custom_description( $description ) {
378
+	public function set_custom_description($description) {
379 379
 		$this->custom_description = $description;
380 380
 	}
381 381
 
@@ -384,7 +384,7 @@  discard block
 block discarded – undo
384 384
      *
385 385
 	 * @return int item id
386 386
      */
387
-    public function save( $data = array() ) {
387
+    public function save($data = array()) {
388 388
         return $this->get_id();
389 389
 	}
390 390
 
Please login to merge, or discard this patch.
includes/gateways/class-getpaid-paypal-gateway-ipn-handler.php 2 patches
Indentation   +391 added lines, -391 removed lines patch added patch discarded remove patch
@@ -12,473 +12,473 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Paypal_Gateway_IPN_Handler {
14 14
 
15
-	/**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
20
-	protected $id = 'paypal';
21
-
22
-	/**
23
-	 * Payment method object.
24
-	 *
25
-	 * @var GetPaid_Paypal_Gateway
26
-	 */
27
-	protected $gateway;
28
-
29
-	/**
30
-	 * Class constructor.
31
-	 *
32
-	 * @param GetPaid_Paypal_Gateway $gateway
33
-	 */
34
-	public function __construct( $gateway ) {
35
-		$this->gateway = $gateway;
36
-		$this->verify_ipn();
37
-	}
38
-
39
-	/**
40
-	 * Processes ipns and marks payments as complete.
41
-	 *
42
-	 * @return void
43
-	 */
44
-	public function verify_ipn() {
45
-
46
-		wpinv_error_log( 'GetPaid PayPal IPN Handler', false );
47
-
48
-		// Validate the IPN.
49
-		if ( empty( $_POST ) || ! $this->validate_ipn() ) {
50
-			wp_die( 'PayPal IPN Request Failure', 500 );
51
-		}
52
-
53
-		// Process the IPN.
54
-		$posted  = wp_unslash( $_POST );
55
-		$invoice = $this->get_ipn_invoice( $posted );
56
-
57
-		// Abort if it was not paid by our gateway.
58
-		if ( $this->id != $invoice->get_gateway() ) {
59
-			wpinv_error_log( 'Aborting, Invoice was not paid via PayPal', false );
60
-			wp_die( 'Invoice not paid via PayPal', 200 );
61
-		}
62
-
63
-		$posted['payment_status'] = isset( $posted['payment_status'] ) ? sanitize_key( strtolower( $posted['payment_status'] ) ) : '';
64
-		$posted['txn_type']       = sanitize_key( strtolower( $posted['txn_type'] ) );
65
-
66
-		wpinv_error_log( 'Payment status:' . $posted['payment_status'], false );
67
-		wpinv_error_log( 'IPN Type:' . $posted['txn_type'], false );
68
-
69
-		if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) {
70
-			call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted );
71
-			wpinv_error_log( 'Done processing IPN', false );
72
-			wp_die( 'Processed', 200 );
73
-		}
74
-
75
-		wpinv_error_log( 'Aborting, Unsupported IPN type:' . $posted['txn_type'], false );
76
-		wp_die( 'Unsupported IPN type', 200 );
77
-
78
-	}
79
-
80
-	/**
81
-	 * Retrieves IPN Invoice.
82
-	 *
83
-	 * @param array $posted
84
-	 * @return WPInv_Invoice
85
-	 */
86
-	protected function get_ipn_invoice( $posted ) {
87
-
88
-		wpinv_error_log( 'Retrieving PayPal IPN Response Invoice', false );
89
-
90
-		if ( ! empty( $posted['custom'] ) ) {
91
-			$invoice = new WPInv_Invoice( $posted['custom'] );
92
-
93
-			if ( $invoice->exists() ) {
94
-				wpinv_error_log( 'Found invoice #' . $invoice->get_number(), false );
95
-				return $invoice;
96
-			}
97
-		}
98
-
99
-		wpinv_error_log( 'Could not retrieve the associated invoice.', false );
100
-		wp_die( 'Could not retrieve the associated invoice.', 200 );
101
-	}
102
-
103
-	/**
104
-	 * Check PayPal IPN validity.
105
-	 */
106
-	protected function validate_ipn() {
107
-
108
-		wpinv_error_log( 'Validating PayPal IPN response', false );
109
-
110
-		// Retrieve the associated invoice.
111
-		$posted  = wp_unslash( $_POST );
112
-		$invoice = $this->get_ipn_invoice( $posted );
113
-
114
-		if ( $this->gateway->is_sandbox( $invoice ) ) {
115
-			wpinv_error_log( $posted, 'Invoice was processed in sandbox hence logging the posted data', false );
116
-		}
117
-
118
-		// Validate the IPN.
119
-		$posted['cmd'] = '_notify-validate';
120
-
121
-		// Send back post vars to paypal.
122
-		$params = array(
123
-			'body'        => $posted,
124
-			'timeout'     => 60,
125
-			'httpversion' => '1.1',
126
-			'compress'    => false,
127
-			'decompress'  => false,
128
-			'user-agent'  => 'GetPaid/' . WPINV_VERSION,
129
-		);
130
-
131
-		// Post back to get a response.
132
-		$response = wp_safe_remote_post( $this->gateway->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params );
133
-
134
-		// Check to see if the request was valid.
135
-		if ( ! is_wp_error( $response ) && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) {
136
-			wpinv_error_log( 'Received valid response from PayPal IPN: ' . $response['body'], false );
137
-			return true;
138
-		}
139
-
140
-		if ( is_wp_error( $response ) ) {
141
-			wpinv_error_log( $response->get_error_message(), 'Received invalid response from PayPal IPN' );
142
-			return false;
143
-		}
144
-
145
-		wpinv_error_log( $response['body'], 'Received invalid response from PayPal IPN' );
146
-		return false;
147
-
148
-	}
149
-
150
-	/**
151
-	 * Check currency from IPN matches the invoice.
152
-	 *
153
-	 * @param WPInv_Invoice $invoice          Invoice object.
154
-	 * @param string   $currency currency to validate.
155
-	 */
156
-	protected function validate_ipn_currency( $invoice, $currency ) {
15
+    /**
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20
+    protected $id = 'paypal';
21
+
22
+    /**
23
+     * Payment method object.
24
+     *
25
+     * @var GetPaid_Paypal_Gateway
26
+     */
27
+    protected $gateway;
28
+
29
+    /**
30
+     * Class constructor.
31
+     *
32
+     * @param GetPaid_Paypal_Gateway $gateway
33
+     */
34
+    public function __construct( $gateway ) {
35
+        $this->gateway = $gateway;
36
+        $this->verify_ipn();
37
+    }
38
+
39
+    /**
40
+     * Processes ipns and marks payments as complete.
41
+     *
42
+     * @return void
43
+     */
44
+    public function verify_ipn() {
45
+
46
+        wpinv_error_log( 'GetPaid PayPal IPN Handler', false );
47
+
48
+        // Validate the IPN.
49
+        if ( empty( $_POST ) || ! $this->validate_ipn() ) {
50
+            wp_die( 'PayPal IPN Request Failure', 500 );
51
+        }
52
+
53
+        // Process the IPN.
54
+        $posted  = wp_unslash( $_POST );
55
+        $invoice = $this->get_ipn_invoice( $posted );
56
+
57
+        // Abort if it was not paid by our gateway.
58
+        if ( $this->id != $invoice->get_gateway() ) {
59
+            wpinv_error_log( 'Aborting, Invoice was not paid via PayPal', false );
60
+            wp_die( 'Invoice not paid via PayPal', 200 );
61
+        }
62
+
63
+        $posted['payment_status'] = isset( $posted['payment_status'] ) ? sanitize_key( strtolower( $posted['payment_status'] ) ) : '';
64
+        $posted['txn_type']       = sanitize_key( strtolower( $posted['txn_type'] ) );
65
+
66
+        wpinv_error_log( 'Payment status:' . $posted['payment_status'], false );
67
+        wpinv_error_log( 'IPN Type:' . $posted['txn_type'], false );
68
+
69
+        if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) {
70
+            call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted );
71
+            wpinv_error_log( 'Done processing IPN', false );
72
+            wp_die( 'Processed', 200 );
73
+        }
74
+
75
+        wpinv_error_log( 'Aborting, Unsupported IPN type:' . $posted['txn_type'], false );
76
+        wp_die( 'Unsupported IPN type', 200 );
77
+
78
+    }
79
+
80
+    /**
81
+     * Retrieves IPN Invoice.
82
+     *
83
+     * @param array $posted
84
+     * @return WPInv_Invoice
85
+     */
86
+    protected function get_ipn_invoice( $posted ) {
87
+
88
+        wpinv_error_log( 'Retrieving PayPal IPN Response Invoice', false );
89
+
90
+        if ( ! empty( $posted['custom'] ) ) {
91
+            $invoice = new WPInv_Invoice( $posted['custom'] );
92
+
93
+            if ( $invoice->exists() ) {
94
+                wpinv_error_log( 'Found invoice #' . $invoice->get_number(), false );
95
+                return $invoice;
96
+            }
97
+        }
98
+
99
+        wpinv_error_log( 'Could not retrieve the associated invoice.', false );
100
+        wp_die( 'Could not retrieve the associated invoice.', 200 );
101
+    }
102
+
103
+    /**
104
+     * Check PayPal IPN validity.
105
+     */
106
+    protected function validate_ipn() {
107
+
108
+        wpinv_error_log( 'Validating PayPal IPN response', false );
109
+
110
+        // Retrieve the associated invoice.
111
+        $posted  = wp_unslash( $_POST );
112
+        $invoice = $this->get_ipn_invoice( $posted );
113
+
114
+        if ( $this->gateway->is_sandbox( $invoice ) ) {
115
+            wpinv_error_log( $posted, 'Invoice was processed in sandbox hence logging the posted data', false );
116
+        }
117
+
118
+        // Validate the IPN.
119
+        $posted['cmd'] = '_notify-validate';
120
+
121
+        // Send back post vars to paypal.
122
+        $params = array(
123
+            'body'        => $posted,
124
+            'timeout'     => 60,
125
+            'httpversion' => '1.1',
126
+            'compress'    => false,
127
+            'decompress'  => false,
128
+            'user-agent'  => 'GetPaid/' . WPINV_VERSION,
129
+        );
130
+
131
+        // Post back to get a response.
132
+        $response = wp_safe_remote_post( $this->gateway->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params );
133
+
134
+        // Check to see if the request was valid.
135
+        if ( ! is_wp_error( $response ) && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) {
136
+            wpinv_error_log( 'Received valid response from PayPal IPN: ' . $response['body'], false );
137
+            return true;
138
+        }
139
+
140
+        if ( is_wp_error( $response ) ) {
141
+            wpinv_error_log( $response->get_error_message(), 'Received invalid response from PayPal IPN' );
142
+            return false;
143
+        }
144
+
145
+        wpinv_error_log( $response['body'], 'Received invalid response from PayPal IPN' );
146
+        return false;
147
+
148
+    }
149
+
150
+    /**
151
+     * Check currency from IPN matches the invoice.
152
+     *
153
+     * @param WPInv_Invoice $invoice          Invoice object.
154
+     * @param string   $currency currency to validate.
155
+     */
156
+    protected function validate_ipn_currency( $invoice, $currency ) {
157 157
 
158
-		if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) {
158
+        if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) {
159 159
 
160
-			/* translators: %s: currency code. */
161
-			$invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) );
160
+            /* translators: %s: currency code. */
161
+            $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) );
162 162
 
163
-			wpinv_error_log( "Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true );
164
-		}
163
+            wpinv_error_log( "Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true );
164
+        }
165 165
 
166
-		wpinv_error_log( $currency, 'Validated IPN Currency', false );
167
-	}
166
+        wpinv_error_log( $currency, 'Validated IPN Currency', false );
167
+    }
168 168
 
169
-	/**
170
-	 * Check payment amount from IPN matches the invoice.
171
-	 *
172
-	 * @param WPInv_Invoice $invoice          Invoice object.
173
-	 * @param float   $amount amount to validate.
174
-	 */
175
-	protected function validate_ipn_amount( $invoice, $amount ) {
176
-		if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) {
169
+    /**
170
+     * Check payment amount from IPN matches the invoice.
171
+     *
172
+     * @param WPInv_Invoice $invoice          Invoice object.
173
+     * @param float   $amount amount to validate.
174
+     */
175
+    protected function validate_ipn_amount( $invoice, $amount ) {
176
+        if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) {
177 177
 
178
-			/* translators: %s: Amount. */
179
-			$invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) );
178
+            /* translators: %s: Amount. */
179
+            $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) );
180 180
 
181
-			wpinv_error_log( "Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true );
182
-		}
181
+            wpinv_error_log( "Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true );
182
+        }
183 183
 
184
-		wpinv_error_log( $amount, 'Validated IPN Amount', false );
185
-	}
184
+        wpinv_error_log( $amount, 'Validated IPN Amount', false );
185
+    }
186 186
 
187
-	/**
188
-	 * Verify receiver email from PayPal.
189
-	 *
190
-	 * @param WPInv_Invoice $invoice          Invoice object.
191
-	 * @param string   $receiver_email Email to validate.
192
-	 */
193
-	protected function validate_ipn_receiver_email( $invoice, $receiver_email ) {
194
-		$paypal_email = wpinv_get_option( 'paypal_email' );
187
+    /**
188
+     * Verify receiver email from PayPal.
189
+     *
190
+     * @param WPInv_Invoice $invoice          Invoice object.
191
+     * @param string   $receiver_email Email to validate.
192
+     */
193
+    protected function validate_ipn_receiver_email( $invoice, $receiver_email ) {
194
+        $paypal_email = wpinv_get_option( 'paypal_email' );
195 195
 
196
-		if ( $receiver_email && strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) {
197
-			wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}" );
196
+        if ( $receiver_email && strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) {
197
+            wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}" );
198 198
 
199
-			/* translators: %s: email address . */
200
-			$invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s).', 'invoicing' ), $receiver_email ) );
199
+            /* translators: %s: email address . */
200
+            $invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s).', 'invoicing' ), $receiver_email ) );
201 201
 
202
-			return wpinv_error_log( "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}", 'IPN Error', __FILE__, __LINE__, true );
203
-		}
202
+            return wpinv_error_log( "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}", 'IPN Error', __FILE__, __LINE__, true );
203
+        }
204 204
 
205
-		wpinv_error_log( 'Validated PayPal Email', false );
206
-	}
205
+        wpinv_error_log( 'Validated PayPal Email', false );
206
+    }
207 207
 
208
-	/**
209
-	 * Handles one time payments.
210
-	 *
211
-	 * @param WPInv_Invoice $invoice  Invoice object.
212
-	 * @param array    $posted Posted data.
213
-	 */
214
-	protected function ipn_txn_web_accept( $invoice, $posted ) {
208
+    /**
209
+     * Handles one time payments.
210
+     *
211
+     * @param WPInv_Invoice $invoice  Invoice object.
212
+     * @param array    $posted Posted data.
213
+     */
214
+    protected function ipn_txn_web_accept( $invoice, $posted ) {
215 215
 
216
-		// Collect payment details
217
-		$payment_status = strtolower( $posted['payment_status'] );
218
-		$business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
216
+        // Collect payment details
217
+        $payment_status = strtolower( $posted['payment_status'] );
218
+        $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
219 219
 
220
-		$this->validate_ipn_receiver_email( $invoice, $business_email );
221
-		$this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
220
+        $this->validate_ipn_receiver_email( $invoice, $business_email );
221
+        $this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
222 222
 
223
-		// Update the transaction id.
224
-		if ( ! empty( $posted['txn_id'] ) ) {
225
-			$invoice->set_transaction_id( wpinv_clean( $posted['txn_id'] ) );
226
-			$invoice->save();
227
-		}
223
+        // Update the transaction id.
224
+        if ( ! empty( $posted['txn_id'] ) ) {
225
+            $invoice->set_transaction_id( wpinv_clean( $posted['txn_id'] ) );
226
+            $invoice->save();
227
+        }
228 228
 
229
-		$invoice->add_system_note( __( 'Processing invoice IPN', 'invoicing' ) );
229
+        $invoice->add_system_note( __( 'Processing invoice IPN', 'invoicing' ) );
230 230
 
231
-		// Process a refund.
232
-		if ( 'refunded' === $payment_status || 'reversed' === $payment_status ) {
231
+        // Process a refund.
232
+        if ( 'refunded' === $payment_status || 'reversed' === $payment_status ) {
233 233
 
234
-			update_post_meta( $invoice->get_id(), 'refunded_remotely', 1 );
234
+            update_post_meta( $invoice->get_id(), 'refunded_remotely', 1 );
235 235
 
236
-			if ( ! $invoice->is_refunded() ) {
237
-				$invoice->update_status( 'wpi-refunded', $posted['reason_code'] );
238
-			}
236
+            if ( ! $invoice->is_refunded() ) {
237
+                $invoice->update_status( 'wpi-refunded', $posted['reason_code'] );
238
+            }
239 239
 
240
-			return wpinv_error_log( $posted['reason_code'], false );
241
-		}
240
+            return wpinv_error_log( $posted['reason_code'], false );
241
+        }
242 242
 
243
-		// Process payments.
244
-		if ( 'completed' === $payment_status ) {
243
+        // Process payments.
244
+        if ( 'completed' === $payment_status ) {
245 245
 
246
-			if ( $invoice->is_paid() && 'wpi_processing' != $invoice->get_status() ) {
247
-				return wpinv_error_log( 'Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false );
248
-			}
246
+            if ( $invoice->is_paid() && 'wpi_processing' != $invoice->get_status() ) {
247
+                return wpinv_error_log( 'Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false );
248
+            }
249 249
 
250
-			$this->validate_ipn_amount( $invoice, $posted['mc_gross'] );
250
+            $this->validate_ipn_amount( $invoice, $posted['mc_gross'] );
251 251
 
252
-			$note = '';
252
+            $note = '';
253 253
 
254
-			if ( ! empty( $posted['mc_fee'] ) ) {
255
-				$note = sprintf( __( 'PayPal Transaction Fee %s.', 'invoicing' ), sanitize_text_field( $posted['mc_fee'] ) );
256
-			}
254
+            if ( ! empty( $posted['mc_fee'] ) ) {
255
+                $note = sprintf( __( 'PayPal Transaction Fee %s.', 'invoicing' ), sanitize_text_field( $posted['mc_fee'] ) );
256
+            }
257 257
 
258
-			if ( ! empty( $posted['payer_status'] ) ) {
259
-				$note = ' ' . sprintf( __( 'Buyer status %s.', 'invoicing' ), sanitize_text_field( $posted['payer_status'] ) );
260
-			}
258
+            if ( ! empty( $posted['payer_status'] ) ) {
259
+                $note = ' ' . sprintf( __( 'Buyer status %s.', 'invoicing' ), sanitize_text_field( $posted['payer_status'] ) );
260
+            }
261 261
 
262
-			$invoice->mark_paid( ( ! empty( $posted['txn_id'] ) ? sanitize_text_field( $posted['txn_id'] ) : '' ), trim( $note ) );
263
-			return wpinv_error_log( 'Invoice marked as paid.', false );
262
+            $invoice->mark_paid( ( ! empty( $posted['txn_id'] ) ? sanitize_text_field( $posted['txn_id'] ) : '' ), trim( $note ) );
263
+            return wpinv_error_log( 'Invoice marked as paid.', false );
264 264
 
265
-		}
265
+        }
266 266
 
267
-		// Pending payments.
268
-		if ( 'pending' === $payment_status ) {
267
+        // Pending payments.
268
+        if ( 'pending' === $payment_status ) {
269 269
 
270
-			/* translators: %s: pending reason. */
271
-			$invoice->update_status( 'wpi-onhold', sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ) );
270
+            /* translators: %s: pending reason. */
271
+            $invoice->update_status( 'wpi-onhold', sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ) );
272 272
 
273
-			return wpinv_error_log( 'Invoice marked as "payment held".', false );
274
-		}
273
+            return wpinv_error_log( 'Invoice marked as "payment held".', false );
274
+        }
275 275
 
276
-		/* translators: %s: payment status. */
277
-		$invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), sanitize_text_field( $posted['payment_status'] ) ) );
276
+        /* translators: %s: payment status. */
277
+        $invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), sanitize_text_field( $posted['payment_status'] ) ) );
278 278
 
279
-	}
279
+    }
280 280
 
281
-	/**
282
-	 * Handles one time payments.
283
-	 *
284
-	 * @param WPInv_Invoice $invoice  Invoice object.
285
-	 * @param array    $posted Posted data.
286
-	 */
287
-	protected function ipn_txn_cart( $invoice, $posted ) {
288
-		$this->ipn_txn_web_accept( $invoice, $posted );
289
-	}
281
+    /**
282
+     * Handles one time payments.
283
+     *
284
+     * @param WPInv_Invoice $invoice  Invoice object.
285
+     * @param array    $posted Posted data.
286
+     */
287
+    protected function ipn_txn_cart( $invoice, $posted ) {
288
+        $this->ipn_txn_web_accept( $invoice, $posted );
289
+    }
290 290
 
291
-	/**
292
-	 * Handles subscription sign ups.
293
-	 *
294
-	 * @param WPInv_Invoice $invoice  Invoice object.
295
-	 * @param array    $posted Posted data.
296
-	 */
297
-	protected function ipn_txn_subscr_signup( $invoice, $posted ) {
291
+    /**
292
+     * Handles subscription sign ups.
293
+     *
294
+     * @param WPInv_Invoice $invoice  Invoice object.
295
+     * @param array    $posted Posted data.
296
+     */
297
+    protected function ipn_txn_subscr_signup( $invoice, $posted ) {
298 298
 
299
-		wpinv_error_log( 'Processing subscription signup', false );
299
+        wpinv_error_log( 'Processing subscription signup', false );
300 300
 
301
-		// Make sure the invoice has a subscription.
302
-		$subscription = getpaid_get_invoice_subscription( $invoice );
301
+        // Make sure the invoice has a subscription.
302
+        $subscription = getpaid_get_invoice_subscription( $invoice );
303 303
 
304
-		if ( empty( $subscription ) ) {
305
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
306
-		}
304
+        if ( empty( $subscription ) ) {
305
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
306
+        }
307 307
 
308
-		wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
308
+        wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
309 309
 
310
-		// Validate the IPN.
311
-		$business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
312
-		$this->validate_ipn_receiver_email( $invoice, $business_email );
313
-		$this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
310
+        // Validate the IPN.
311
+        $business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
312
+        $this->validate_ipn_receiver_email( $invoice, $business_email );
313
+        $this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
314 314
 
315
-		// Activate the subscription.
316
-		$duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
317
-		$subscription->set_date_created( current_time( 'mysql' ) );
318
-		$subscription->set_expiration( date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ) );
319
-		$subscription->set_profile_id( sanitize_text_field( $posted['subscr_id'] ) );
320
-		$subscription->activate();
315
+        // Activate the subscription.
316
+        $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
317
+        $subscription->set_date_created( current_time( 'mysql' ) );
318
+        $subscription->set_expiration( date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ) );
319
+        $subscription->set_profile_id( sanitize_text_field( $posted['subscr_id'] ) );
320
+        $subscription->activate();
321 321
 
322
-		// Set the transaction id.
323
-		if ( ! empty( $posted['txn_id'] ) ) {
324
-			$invoice->add_note( sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
325
-			$invoice->set_transaction_id( $posted['txn_id'] );
326
-		}
322
+        // Set the transaction id.
323
+        if ( ! empty( $posted['txn_id'] ) ) {
324
+            $invoice->add_note( sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
325
+            $invoice->set_transaction_id( $posted['txn_id'] );
326
+        }
327 327
 
328
-		// Update the payment status.
329
-		$invoice->mark_paid();
328
+        // Update the payment status.
329
+        $invoice->mark_paid();
330 330
 
331
-		$invoice->add_note( sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
331
+        $invoice->add_note( sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
332 332
 
333
-		wpinv_error_log( 'Subscription started.', false );
334
-	}
333
+        wpinv_error_log( 'Subscription started.', false );
334
+    }
335 335
 
336
-	/**
337
-	 * Handles subscription renewals.
338
-	 *
339
-	 * @param WPInv_Invoice $invoice  Invoice object.
340
-	 * @param array    $posted Posted data.
341
-	 */
342
-	protected function ipn_txn_subscr_payment( $invoice, $posted ) {
336
+    /**
337
+     * Handles subscription renewals.
338
+     *
339
+     * @param WPInv_Invoice $invoice  Invoice object.
340
+     * @param array    $posted Posted data.
341
+     */
342
+    protected function ipn_txn_subscr_payment( $invoice, $posted ) {
343 343
 
344
-		// Make sure the invoice has a subscription.
345
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
344
+        // Make sure the invoice has a subscription.
345
+        $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
346 346
 
347
-		if ( empty( $subscription ) ) {
348
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
349
-		}
347
+        if ( empty( $subscription ) ) {
348
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
349
+        }
350 350
 
351
-		wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
351
+        wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
352 352
 
353
-		// PayPal sends a subscr_payment for the first payment too.
354
-		$date_completed = getpaid_format_date( $invoice->get_date_completed() );
355
-		$date_created   = getpaid_format_date( $invoice->get_date_created() );
356
-		$today_date     = getpaid_format_date( current_time( 'mysql' ) );
357
-		$payment_date   = getpaid_format_date( $posted['payment_date'] );
358
-		$subscribe_date = getpaid_format_date( $subscription->get_date_created() );
359
-		$dates          = array_filter( compact( 'date_completed', 'date_created', 'subscribe_date' ) );
353
+        // PayPal sends a subscr_payment for the first payment too.
354
+        $date_completed = getpaid_format_date( $invoice->get_date_completed() );
355
+        $date_created   = getpaid_format_date( $invoice->get_date_created() );
356
+        $today_date     = getpaid_format_date( current_time( 'mysql' ) );
357
+        $payment_date   = getpaid_format_date( $posted['payment_date'] );
358
+        $subscribe_date = getpaid_format_date( $subscription->get_date_created() );
359
+        $dates          = array_filter( compact( 'date_completed', 'date_created', 'subscribe_date' ) );
360 360
 
361
-		foreach ( $dates as $date ) {
361
+        foreach ( $dates as $date ) {
362 362
 
363
-			if ( $date !== $today_date && $date !== $payment_date ) {
364
-				continue;
365
-			}
363
+            if ( $date !== $today_date && $date !== $payment_date ) {
364
+                continue;
365
+            }
366 366
 
367
-			if ( ! empty( $posted['txn_id'] ) ) {
368
-				$invoice->set_transaction_id( sanitize_text_field( $posted['txn_id'] ) );
369
-				$invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), sanitize_text_field( $posted['txn_id'] ) ), false, false, true );
370
-			}
367
+            if ( ! empty( $posted['txn_id'] ) ) {
368
+                $invoice->set_transaction_id( sanitize_text_field( $posted['txn_id'] ) );
369
+                $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), sanitize_text_field( $posted['txn_id'] ) ), false, false, true );
370
+            }
371 371
 
372
-			return $invoice->mark_paid();
373
-
374
-		}
372
+            return $invoice->mark_paid();
373
+
374
+        }
375 375
 
376
-		wpinv_error_log( 'Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false );
377
-
378
-		// Abort if the payment is already recorded.
379
-		if ( wpinv_get_id_by_transaction_id( $posted['txn_id'] ) ) {
380
-			return wpinv_error_log( 'Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false );
381
-		}
382
-
383
-		$args = array(
384
-			'transaction_id' => $posted['txn_id'],
385
-			'gateway'        => $this->id,
386
-		);
387
-
388
-		$invoice = wpinv_get_invoice( $subscription->add_payment( $args ) );
376
+        wpinv_error_log( 'Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false );
377
+
378
+        // Abort if the payment is already recorded.
379
+        if ( wpinv_get_id_by_transaction_id( $posted['txn_id'] ) ) {
380
+            return wpinv_error_log( 'Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false );
381
+        }
382
+
383
+        $args = array(
384
+            'transaction_id' => $posted['txn_id'],
385
+            'gateway'        => $this->id,
386
+        );
387
+
388
+        $invoice = wpinv_get_invoice( $subscription->add_payment( $args ) );
389 389
 
390
-		if ( empty( $invoice ) ) {
391
-			return;
392
-		}
390
+        if ( empty( $invoice ) ) {
391
+            return;
392
+        }
393 393
 
394
-		$invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
395
-		$invoice->add_note( wp_sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
394
+        $invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
395
+        $invoice->add_note( wp_sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
396 396
 
397
-		$subscription->renew();
398
-		wpinv_error_log( 'Subscription renewed.', false );
397
+        $subscription->renew();
398
+        wpinv_error_log( 'Subscription renewed.', false );
399 399
 
400
-	}
400
+    }
401 401
 
402
-	/**
403
-	 * Handles subscription cancelations.
404
-	 *
405
-	 * @param WPInv_Invoice $invoice  Invoice object.
406
-	 */
407
-	protected function ipn_txn_subscr_cancel( $invoice ) {
402
+    /**
403
+     * Handles subscription cancelations.
404
+     *
405
+     * @param WPInv_Invoice $invoice  Invoice object.
406
+     */
407
+    protected function ipn_txn_subscr_cancel( $invoice ) {
408 408
 
409
-		// Make sure the invoice has a subscription.
410
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
411
-
412
-		if ( empty( $subscription ) ) {
413
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
414
-		}
415
-
416
-		wpinv_error_log( 'Processing subscription cancellation for the invoice ' . $invoice->get_id(), false );
417
-		$subscription->cancel();
418
-		wpinv_error_log( 'Subscription cancelled.', false );
409
+        // Make sure the invoice has a subscription.
410
+        $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
411
+
412
+        if ( empty( $subscription ) ) {
413
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
414
+        }
415
+
416
+        wpinv_error_log( 'Processing subscription cancellation for the invoice ' . $invoice->get_id(), false );
417
+        $subscription->cancel();
418
+        wpinv_error_log( 'Subscription cancelled.', false );
419 419
 
420
-	}
420
+    }
421 421
 
422
-	/**
423
-	 * Handles subscription completions.
424
-	 *
425
-	 * @param WPInv_Invoice $invoice  Invoice object.
426
-	 * @param array    $posted Posted data.
427
-	 */
428
-	protected function ipn_txn_subscr_eot( $invoice ) {
422
+    /**
423
+     * Handles subscription completions.
424
+     *
425
+     * @param WPInv_Invoice $invoice  Invoice object.
426
+     * @param array    $posted Posted data.
427
+     */
428
+    protected function ipn_txn_subscr_eot( $invoice ) {
429 429
 
430
-		// Make sure the invoice has a subscription.
431
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
430
+        // Make sure the invoice has a subscription.
431
+        $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
432 432
 
433
-		if ( empty( $subscription ) ) {
434
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
435
-		}
433
+        if ( empty( $subscription ) ) {
434
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
435
+        }
436 436
 
437
-		wpinv_error_log( 'Processing subscription end of life for the invoice ' . $invoice->get_id(), false );
438
-		$subscription->complete();
439
-		wpinv_error_log( 'Subscription completed.', false );
437
+        wpinv_error_log( 'Processing subscription end of life for the invoice ' . $invoice->get_id(), false );
438
+        $subscription->complete();
439
+        wpinv_error_log( 'Subscription completed.', false );
440 440
 
441
-	}
441
+    }
442 442
 
443
-	/**
444
-	 * Handles subscription fails.
445
-	 *
446
-	 * @param WPInv_Invoice $invoice  Invoice object.
447
-	 * @param array    $posted Posted data.
448
-	 */
449
-	protected function ipn_txn_subscr_failed( $invoice ) {
443
+    /**
444
+     * Handles subscription fails.
445
+     *
446
+     * @param WPInv_Invoice $invoice  Invoice object.
447
+     * @param array    $posted Posted data.
448
+     */
449
+    protected function ipn_txn_subscr_failed( $invoice ) {
450 450
 
451
-		// Make sure the invoice has a subscription.
452
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
451
+        // Make sure the invoice has a subscription.
452
+        $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
453 453
 
454
-		if ( empty( $subscription ) ) {
455
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
456
-		}
454
+        if ( empty( $subscription ) ) {
455
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
456
+        }
457 457
 
458
-		wpinv_error_log( 'Processing subscription payment failure for the invoice ' . $invoice->get_id(), false );
459
-		$subscription->failing();
460
-		wpinv_error_log( 'Subscription marked as failing.', false );
458
+        wpinv_error_log( 'Processing subscription payment failure for the invoice ' . $invoice->get_id(), false );
459
+        $subscription->failing();
460
+        wpinv_error_log( 'Subscription marked as failing.', false );
461 461
 
462
-	}
462
+    }
463 463
 
464
-	/**
465
-	 * Handles subscription suspensions.
466
-	 *
467
-	 * @param WPInv_Invoice $invoice  Invoice object.
468
-	 * @param array    $posted Posted data.
469
-	 */
470
-	protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment( $invoice ) {
464
+    /**
465
+     * Handles subscription suspensions.
466
+     *
467
+     * @param WPInv_Invoice $invoice  Invoice object.
468
+     * @param array    $posted Posted data.
469
+     */
470
+    protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment( $invoice ) {
471 471
 
472
-		// Make sure the invoice has a subscription.
473
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
472
+        // Make sure the invoice has a subscription.
473
+        $subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
474 474
 
475
-		if ( empty( $subscription ) ) {
476
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
477
-		}
478
-
479
-		wpinv_error_log( 'Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false );
480
-		$subscription->cancel();
481
-		wpinv_error_log( 'Subscription cancelled.', false );
482
-	}
475
+        if ( empty( $subscription ) ) {
476
+            return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
477
+        }
478
+
479
+        wpinv_error_log( 'Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false );
480
+        $subscription->cancel();
481
+        wpinv_error_log( 'Subscription cancelled.', false );
482
+    }
483 483
 
484 484
 }
Please login to merge, or discard this patch.
Spacing   +151 added lines, -151 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 IPN handler class.
@@ -31,7 +31,7 @@  discard block
 block discarded – undo
31 31
 	 *
32 32
 	 * @param GetPaid_Paypal_Gateway $gateway
33 33
 	 */
34
-	public function __construct( $gateway ) {
34
+	public function __construct($gateway) {
35 35
 		$this->gateway = $gateway;
36 36
 		$this->verify_ipn();
37 37
 	}
@@ -43,37 +43,37 @@  discard block
 block discarded – undo
43 43
 	 */
44 44
 	public function verify_ipn() {
45 45
 
46
-		wpinv_error_log( 'GetPaid PayPal IPN Handler', false );
46
+		wpinv_error_log('GetPaid PayPal IPN Handler', false);
47 47
 
48 48
 		// Validate the IPN.
49
-		if ( empty( $_POST ) || ! $this->validate_ipn() ) {
50
-			wp_die( 'PayPal IPN Request Failure', 500 );
49
+		if (empty($_POST) || !$this->validate_ipn()) {
50
+			wp_die('PayPal IPN Request Failure', 500);
51 51
 		}
52 52
 
53 53
 		// Process the IPN.
54
-		$posted  = wp_unslash( $_POST );
55
-		$invoice = $this->get_ipn_invoice( $posted );
54
+		$posted  = wp_unslash($_POST);
55
+		$invoice = $this->get_ipn_invoice($posted);
56 56
 
57 57
 		// Abort if it was not paid by our gateway.
58
-		if ( $this->id != $invoice->get_gateway() ) {
59
-			wpinv_error_log( 'Aborting, Invoice was not paid via PayPal', false );
60
-			wp_die( 'Invoice not paid via PayPal', 200 );
58
+		if ($this->id != $invoice->get_gateway()) {
59
+			wpinv_error_log('Aborting, Invoice was not paid via PayPal', false);
60
+			wp_die('Invoice not paid via PayPal', 200);
61 61
 		}
62 62
 
63
-		$posted['payment_status'] = isset( $posted['payment_status'] ) ? sanitize_key( strtolower( $posted['payment_status'] ) ) : '';
64
-		$posted['txn_type']       = sanitize_key( strtolower( $posted['txn_type'] ) );
63
+		$posted['payment_status'] = isset($posted['payment_status']) ? sanitize_key(strtolower($posted['payment_status'])) : '';
64
+		$posted['txn_type']       = sanitize_key(strtolower($posted['txn_type']));
65 65
 
66
-		wpinv_error_log( 'Payment status:' . $posted['payment_status'], false );
67
-		wpinv_error_log( 'IPN Type:' . $posted['txn_type'], false );
66
+		wpinv_error_log('Payment status:' . $posted['payment_status'], false);
67
+		wpinv_error_log('IPN Type:' . $posted['txn_type'], false);
68 68
 
69
-		if ( method_exists( $this, 'ipn_txn_' . $posted['txn_type'] ) ) {
70
-			call_user_func( array( $this, 'ipn_txn_' . $posted['txn_type'] ), $invoice, $posted );
71
-			wpinv_error_log( 'Done processing IPN', false );
72
-			wp_die( 'Processed', 200 );
69
+		if (method_exists($this, 'ipn_txn_' . $posted['txn_type'])) {
70
+			call_user_func(array($this, 'ipn_txn_' . $posted['txn_type']), $invoice, $posted);
71
+			wpinv_error_log('Done processing IPN', false);
72
+			wp_die('Processed', 200);
73 73
 		}
74 74
 
75
-		wpinv_error_log( 'Aborting, Unsupported IPN type:' . $posted['txn_type'], false );
76
-		wp_die( 'Unsupported IPN type', 200 );
75
+		wpinv_error_log('Aborting, Unsupported IPN type:' . $posted['txn_type'], false);
76
+		wp_die('Unsupported IPN type', 200);
77 77
 
78 78
 	}
79 79
 
@@ -83,21 +83,21 @@  discard block
 block discarded – undo
83 83
 	 * @param array $posted
84 84
 	 * @return WPInv_Invoice
85 85
 	 */
86
-	protected function get_ipn_invoice( $posted ) {
86
+	protected function get_ipn_invoice($posted) {
87 87
 
88
-		wpinv_error_log( 'Retrieving PayPal IPN Response Invoice', false );
88
+		wpinv_error_log('Retrieving PayPal IPN Response Invoice', false);
89 89
 
90
-		if ( ! empty( $posted['custom'] ) ) {
91
-			$invoice = new WPInv_Invoice( $posted['custom'] );
90
+		if (!empty($posted['custom'])) {
91
+			$invoice = new WPInv_Invoice($posted['custom']);
92 92
 
93
-			if ( $invoice->exists() ) {
94
-				wpinv_error_log( 'Found invoice #' . $invoice->get_number(), false );
93
+			if ($invoice->exists()) {
94
+				wpinv_error_log('Found invoice #' . $invoice->get_number(), false);
95 95
 				return $invoice;
96 96
 			}
97 97
 		}
98 98
 
99
-		wpinv_error_log( 'Could not retrieve the associated invoice.', false );
100
-		wp_die( 'Could not retrieve the associated invoice.', 200 );
99
+		wpinv_error_log('Could not retrieve the associated invoice.', false);
100
+		wp_die('Could not retrieve the associated invoice.', 200);
101 101
 	}
102 102
 
103 103
 	/**
@@ -105,14 +105,14 @@  discard block
 block discarded – undo
105 105
 	 */
106 106
 	protected function validate_ipn() {
107 107
 
108
-		wpinv_error_log( 'Validating PayPal IPN response', false );
108
+		wpinv_error_log('Validating PayPal IPN response', false);
109 109
 
110 110
 		// Retrieve the associated invoice.
111
-		$posted  = wp_unslash( $_POST );
112
-		$invoice = $this->get_ipn_invoice( $posted );
111
+		$posted  = wp_unslash($_POST);
112
+		$invoice = $this->get_ipn_invoice($posted);
113 113
 
114
-		if ( $this->gateway->is_sandbox( $invoice ) ) {
115
-			wpinv_error_log( $posted, 'Invoice was processed in sandbox hence logging the posted data', false );
114
+		if ($this->gateway->is_sandbox($invoice)) {
115
+			wpinv_error_log($posted, 'Invoice was processed in sandbox hence logging the posted data', false);
116 116
 		}
117 117
 
118 118
 		// Validate the IPN.
@@ -129,20 +129,20 @@  discard block
 block discarded – undo
129 129
 		);
130 130
 
131 131
 		// Post back to get a response.
132
-		$response = wp_safe_remote_post( $this->gateway->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params );
132
+		$response = wp_safe_remote_post($this->gateway->is_sandbox($invoice) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr' : 'https://www.paypal.com/cgi-bin/webscr', $params);
133 133
 
134 134
 		// Check to see if the request was valid.
135
-		if ( ! is_wp_error( $response ) && $response['response']['code'] < 300 && strstr( $response['body'], 'VERIFIED' ) ) {
136
-			wpinv_error_log( 'Received valid response from PayPal IPN: ' . $response['body'], false );
135
+		if (!is_wp_error($response) && $response['response']['code'] < 300 && strstr($response['body'], 'VERIFIED')) {
136
+			wpinv_error_log('Received valid response from PayPal IPN: ' . $response['body'], false);
137 137
 			return true;
138 138
 		}
139 139
 
140
-		if ( is_wp_error( $response ) ) {
141
-			wpinv_error_log( $response->get_error_message(), 'Received invalid response from PayPal IPN' );
140
+		if (is_wp_error($response)) {
141
+			wpinv_error_log($response->get_error_message(), 'Received invalid response from PayPal IPN');
142 142
 			return false;
143 143
 		}
144 144
 
145
-		wpinv_error_log( $response['body'], 'Received invalid response from PayPal IPN' );
145
+		wpinv_error_log($response['body'], 'Received invalid response from PayPal IPN');
146 146
 		return false;
147 147
 
148 148
 	}
@@ -153,17 +153,17 @@  discard block
 block discarded – undo
153 153
 	 * @param WPInv_Invoice $invoice          Invoice object.
154 154
 	 * @param string   $currency currency to validate.
155 155
 	 */
156
-	protected function validate_ipn_currency( $invoice, $currency ) {
156
+	protected function validate_ipn_currency($invoice, $currency) {
157 157
 
158
-		if ( strtolower( $invoice->get_currency() ) !== strtolower( $currency ) ) {
158
+		if (strtolower($invoice->get_currency()) !== strtolower($currency)) {
159 159
 
160 160
 			/* translators: %s: currency code. */
161
-			$invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal currencies do not match (code %s).', 'invoicing' ), $currency ) );
161
+			$invoice->update_status('wpi-processing', sprintf(__('Validation error: PayPal currencies do not match (code %s).', 'invoicing'), $currency));
162 162
 
163
-			wpinv_error_log( "Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true );
163
+			wpinv_error_log("Currencies do not match: {$currency} instead of {$invoice->get_currency()}", 'IPN Error', __FILE__, __LINE__, true);
164 164
 		}
165 165
 
166
-		wpinv_error_log( $currency, 'Validated IPN Currency', false );
166
+		wpinv_error_log($currency, 'Validated IPN Currency', false);
167 167
 	}
168 168
 
169 169
 	/**
@@ -172,16 +172,16 @@  discard block
 block discarded – undo
172 172
 	 * @param WPInv_Invoice $invoice          Invoice object.
173 173
 	 * @param float   $amount amount to validate.
174 174
 	 */
175
-	protected function validate_ipn_amount( $invoice, $amount ) {
176
-		if ( number_format( $invoice->get_total(), 2, '.', '' ) !== number_format( $amount, 2, '.', '' ) ) {
175
+	protected function validate_ipn_amount($invoice, $amount) {
176
+		if (number_format($invoice->get_total(), 2, '.', '') !== number_format($amount, 2, '.', '')) {
177 177
 
178 178
 			/* translators: %s: Amount. */
179
-			$invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal amounts do not match (gross %s).', 'invoicing' ), $amount ) );
179
+			$invoice->update_status('wpi-processing', sprintf(__('Validation error: PayPal amounts do not match (gross %s).', 'invoicing'), $amount));
180 180
 
181
-			wpinv_error_log( "Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true );
181
+			wpinv_error_log("Amounts do not match: {$amount} instead of {$invoice->get_total()}", 'IPN Error', __FILE__, __LINE__, true);
182 182
 		}
183 183
 
184
-		wpinv_error_log( $amount, 'Validated IPN Amount', false );
184
+		wpinv_error_log($amount, 'Validated IPN Amount', false);
185 185
 	}
186 186
 
187 187
 	/**
@@ -190,19 +190,19 @@  discard block
 block discarded – undo
190 190
 	 * @param WPInv_Invoice $invoice          Invoice object.
191 191
 	 * @param string   $receiver_email Email to validate.
192 192
 	 */
193
-	protected function validate_ipn_receiver_email( $invoice, $receiver_email ) {
194
-		$paypal_email = wpinv_get_option( 'paypal_email' );
193
+	protected function validate_ipn_receiver_email($invoice, $receiver_email) {
194
+		$paypal_email = wpinv_get_option('paypal_email');
195 195
 
196
-		if ( $receiver_email && strcasecmp( trim( $receiver_email ), trim( $paypal_email ) ) !== 0 ) {
197
-			wpinv_record_gateway_error( 'IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}" );
196
+		if ($receiver_email && strcasecmp(trim($receiver_email), trim($paypal_email)) !== 0) {
197
+			wpinv_record_gateway_error('IPN Error', "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}");
198 198
 
199 199
 			/* translators: %s: email address . */
200
-			$invoice->update_status( 'wpi-processing', sprintf( __( 'Validation error: PayPal IPN response from a different email address (%s).', 'invoicing' ), $receiver_email ) );
200
+			$invoice->update_status('wpi-processing', sprintf(__('Validation error: PayPal IPN response from a different email address (%s).', 'invoicing'), $receiver_email));
201 201
 
202
-			return wpinv_error_log( "IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}", 'IPN Error', __FILE__, __LINE__, true );
202
+			return wpinv_error_log("IPN Response is for another account: {$receiver_email}. Your email is {$paypal_email}", 'IPN Error', __FILE__, __LINE__, true);
203 203
 		}
204 204
 
205
-		wpinv_error_log( 'Validated PayPal Email', false );
205
+		wpinv_error_log('Validated PayPal Email', false);
206 206
 	}
207 207
 
208 208
 	/**
@@ -211,70 +211,70 @@  discard block
 block discarded – undo
211 211
 	 * @param WPInv_Invoice $invoice  Invoice object.
212 212
 	 * @param array    $posted Posted data.
213 213
 	 */
214
-	protected function ipn_txn_web_accept( $invoice, $posted ) {
214
+	protected function ipn_txn_web_accept($invoice, $posted) {
215 215
 
216 216
 		// Collect payment details
217
-		$payment_status = strtolower( $posted['payment_status'] );
218
-		$business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
217
+		$payment_status = strtolower($posted['payment_status']);
218
+		$business_email = isset($posted['business']) && is_email($posted['business']) ? trim($posted['business']) : trim($posted['receiver_email']);
219 219
 
220
-		$this->validate_ipn_receiver_email( $invoice, $business_email );
221
-		$this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
220
+		$this->validate_ipn_receiver_email($invoice, $business_email);
221
+		$this->validate_ipn_currency($invoice, $posted['mc_currency']);
222 222
 
223 223
 		// Update the transaction id.
224
-		if ( ! empty( $posted['txn_id'] ) ) {
225
-			$invoice->set_transaction_id( wpinv_clean( $posted['txn_id'] ) );
224
+		if (!empty($posted['txn_id'])) {
225
+			$invoice->set_transaction_id(wpinv_clean($posted['txn_id']));
226 226
 			$invoice->save();
227 227
 		}
228 228
 
229
-		$invoice->add_system_note( __( 'Processing invoice IPN', 'invoicing' ) );
229
+		$invoice->add_system_note(__('Processing invoice IPN', 'invoicing'));
230 230
 
231 231
 		// Process a refund.
232
-		if ( 'refunded' === $payment_status || 'reversed' === $payment_status ) {
232
+		if ('refunded' === $payment_status || 'reversed' === $payment_status) {
233 233
 
234
-			update_post_meta( $invoice->get_id(), 'refunded_remotely', 1 );
234
+			update_post_meta($invoice->get_id(), 'refunded_remotely', 1);
235 235
 
236
-			if ( ! $invoice->is_refunded() ) {
237
-				$invoice->update_status( 'wpi-refunded', $posted['reason_code'] );
236
+			if (!$invoice->is_refunded()) {
237
+				$invoice->update_status('wpi-refunded', $posted['reason_code']);
238 238
 			}
239 239
 
240
-			return wpinv_error_log( $posted['reason_code'], false );
240
+			return wpinv_error_log($posted['reason_code'], false);
241 241
 		}
242 242
 
243 243
 		// Process payments.
244
-		if ( 'completed' === $payment_status ) {
244
+		if ('completed' === $payment_status) {
245 245
 
246
-			if ( $invoice->is_paid() && 'wpi_processing' != $invoice->get_status() ) {
247
-				return wpinv_error_log( 'Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false );
246
+			if ($invoice->is_paid() && 'wpi_processing' != $invoice->get_status()) {
247
+				return wpinv_error_log('Aborting, Invoice #' . $invoice->get_number() . ' is already paid.', false);
248 248
 			}
249 249
 
250
-			$this->validate_ipn_amount( $invoice, $posted['mc_gross'] );
250
+			$this->validate_ipn_amount($invoice, $posted['mc_gross']);
251 251
 
252 252
 			$note = '';
253 253
 
254
-			if ( ! empty( $posted['mc_fee'] ) ) {
255
-				$note = sprintf( __( 'PayPal Transaction Fee %s.', 'invoicing' ), sanitize_text_field( $posted['mc_fee'] ) );
254
+			if (!empty($posted['mc_fee'])) {
255
+				$note = sprintf(__('PayPal Transaction Fee %s.', 'invoicing'), sanitize_text_field($posted['mc_fee']));
256 256
 			}
257 257
 
258
-			if ( ! empty( $posted['payer_status'] ) ) {
259
-				$note = ' ' . sprintf( __( 'Buyer status %s.', 'invoicing' ), sanitize_text_field( $posted['payer_status'] ) );
258
+			if (!empty($posted['payer_status'])) {
259
+				$note = ' ' . sprintf(__('Buyer status %s.', 'invoicing'), sanitize_text_field($posted['payer_status']));
260 260
 			}
261 261
 
262
-			$invoice->mark_paid( ( ! empty( $posted['txn_id'] ) ? sanitize_text_field( $posted['txn_id'] ) : '' ), trim( $note ) );
263
-			return wpinv_error_log( 'Invoice marked as paid.', false );
262
+			$invoice->mark_paid((!empty($posted['txn_id']) ? sanitize_text_field($posted['txn_id']) : ''), trim($note));
263
+			return wpinv_error_log('Invoice marked as paid.', false);
264 264
 
265 265
 		}
266 266
 
267 267
 		// Pending payments.
268
-		if ( 'pending' === $payment_status ) {
268
+		if ('pending' === $payment_status) {
269 269
 
270 270
 			/* translators: %s: pending reason. */
271
-			$invoice->update_status( 'wpi-onhold', sprintf( __( 'Payment pending (%s).', 'invoicing' ), $posted['pending_reason'] ) );
271
+			$invoice->update_status('wpi-onhold', sprintf(__('Payment pending (%s).', 'invoicing'), $posted['pending_reason']));
272 272
 
273
-			return wpinv_error_log( 'Invoice marked as "payment held".', false );
273
+			return wpinv_error_log('Invoice marked as "payment held".', false);
274 274
 		}
275 275
 
276 276
 		/* translators: %s: payment status. */
277
-		$invoice->update_status( 'wpi-failed', sprintf( __( 'Payment %s via IPN.', 'invoicing' ), sanitize_text_field( $posted['payment_status'] ) ) );
277
+		$invoice->update_status('wpi-failed', sprintf(__('Payment %s via IPN.', 'invoicing'), sanitize_text_field($posted['payment_status'])));
278 278
 
279 279
 	}
280 280
 
@@ -284,8 +284,8 @@  discard block
 block discarded – undo
284 284
 	 * @param WPInv_Invoice $invoice  Invoice object.
285 285
 	 * @param array    $posted Posted data.
286 286
 	 */
287
-	protected function ipn_txn_cart( $invoice, $posted ) {
288
-		$this->ipn_txn_web_accept( $invoice, $posted );
287
+	protected function ipn_txn_cart($invoice, $posted) {
288
+		$this->ipn_txn_web_accept($invoice, $posted);
289 289
 	}
290 290
 
291 291
 	/**
@@ -294,43 +294,43 @@  discard block
 block discarded – undo
294 294
 	 * @param WPInv_Invoice $invoice  Invoice object.
295 295
 	 * @param array    $posted Posted data.
296 296
 	 */
297
-	protected function ipn_txn_subscr_signup( $invoice, $posted ) {
297
+	protected function ipn_txn_subscr_signup($invoice, $posted) {
298 298
 
299
-		wpinv_error_log( 'Processing subscription signup', false );
299
+		wpinv_error_log('Processing subscription signup', false);
300 300
 
301 301
 		// Make sure the invoice has a subscription.
302
-		$subscription = getpaid_get_invoice_subscription( $invoice );
302
+		$subscription = getpaid_get_invoice_subscription($invoice);
303 303
 
304
-		if ( empty( $subscription ) ) {
305
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
304
+		if (empty($subscription)) {
305
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
306 306
 		}
307 307
 
308
-		wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
308
+		wpinv_error_log('Found subscription #' . $subscription->get_id(), false);
309 309
 
310 310
 		// Validate the IPN.
311
-		$business_email = isset( $posted['business'] ) && is_email( $posted['business'] ) ? trim( $posted['business'] ) : trim( $posted['receiver_email'] );
312
-		$this->validate_ipn_receiver_email( $invoice, $business_email );
313
-		$this->validate_ipn_currency( $invoice, $posted['mc_currency'] );
311
+		$business_email = isset($posted['business']) && is_email($posted['business']) ? trim($posted['business']) : trim($posted['receiver_email']);
312
+		$this->validate_ipn_receiver_email($invoice, $business_email);
313
+		$this->validate_ipn_currency($invoice, $posted['mc_currency']);
314 314
 
315 315
 		// Activate the subscription.
316
-		$duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
317
-		$subscription->set_date_created( current_time( 'mysql' ) );
318
-		$subscription->set_expiration( date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ) );
319
-		$subscription->set_profile_id( sanitize_text_field( $posted['subscr_id'] ) );
316
+		$duration = strtotime($subscription->get_expiration()) - strtotime($subscription->get_date_created());
317
+		$subscription->set_date_created(current_time('mysql'));
318
+		$subscription->set_expiration(date('Y-m-d H:i:s', (current_time('timestamp') + $duration)));
319
+		$subscription->set_profile_id(sanitize_text_field($posted['subscr_id']));
320 320
 		$subscription->activate();
321 321
 
322 322
 		// Set the transaction id.
323
-		if ( ! empty( $posted['txn_id'] ) ) {
324
-			$invoice->add_note( sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
325
-			$invoice->set_transaction_id( $posted['txn_id'] );
323
+		if (!empty($posted['txn_id'])) {
324
+			$invoice->add_note(sprintf(__('PayPal Transaction ID: %s', 'invoicing'), $posted['txn_id']), false, false, true);
325
+			$invoice->set_transaction_id($posted['txn_id']);
326 326
 		}
327 327
 
328 328
 		// Update the payment status.
329 329
 		$invoice->mark_paid();
330 330
 
331
-		$invoice->add_note( sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
331
+		$invoice->add_note(sprintf(__('PayPal Subscription ID: %s', 'invoicing'), $posted['subscr_id']), false, false, true);
332 332
 
333
-		wpinv_error_log( 'Subscription started.', false );
333
+		wpinv_error_log('Subscription started.', false);
334 334
 	}
335 335
 
336 336
 	/**
@@ -339,45 +339,45 @@  discard block
 block discarded – undo
339 339
 	 * @param WPInv_Invoice $invoice  Invoice object.
340 340
 	 * @param array    $posted Posted data.
341 341
 	 */
342
-	protected function ipn_txn_subscr_payment( $invoice, $posted ) {
342
+	protected function ipn_txn_subscr_payment($invoice, $posted) {
343 343
 
344 344
 		// Make sure the invoice has a subscription.
345
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
345
+		$subscription = getpaid_subscriptions()->get_invoice_subscription($invoice);
346 346
 
347
-		if ( empty( $subscription ) ) {
348
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
347
+		if (empty($subscription)) {
348
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
349 349
 		}
350 350
 
351
-		wpinv_error_log( 'Found subscription #' . $subscription->get_id(), false );
351
+		wpinv_error_log('Found subscription #' . $subscription->get_id(), false);
352 352
 
353 353
 		// PayPal sends a subscr_payment for the first payment too.
354
-		$date_completed = getpaid_format_date( $invoice->get_date_completed() );
355
-		$date_created   = getpaid_format_date( $invoice->get_date_created() );
356
-		$today_date     = getpaid_format_date( current_time( 'mysql' ) );
357
-		$payment_date   = getpaid_format_date( $posted['payment_date'] );
358
-		$subscribe_date = getpaid_format_date( $subscription->get_date_created() );
359
-		$dates          = array_filter( compact( 'date_completed', 'date_created', 'subscribe_date' ) );
354
+		$date_completed = getpaid_format_date($invoice->get_date_completed());
355
+		$date_created   = getpaid_format_date($invoice->get_date_created());
356
+		$today_date     = getpaid_format_date(current_time('mysql'));
357
+		$payment_date   = getpaid_format_date($posted['payment_date']);
358
+		$subscribe_date = getpaid_format_date($subscription->get_date_created());
359
+		$dates          = array_filter(compact('date_completed', 'date_created', 'subscribe_date'));
360 360
 
361
-		foreach ( $dates as $date ) {
361
+		foreach ($dates as $date) {
362 362
 
363
-			if ( $date !== $today_date && $date !== $payment_date ) {
363
+			if ($date !== $today_date && $date !== $payment_date) {
364 364
 				continue;
365 365
 			}
366 366
 
367
-			if ( ! empty( $posted['txn_id'] ) ) {
368
-				$invoice->set_transaction_id( sanitize_text_field( $posted['txn_id'] ) );
369
-				$invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), sanitize_text_field( $posted['txn_id'] ) ), false, false, true );
367
+			if (!empty($posted['txn_id'])) {
368
+				$invoice->set_transaction_id(sanitize_text_field($posted['txn_id']));
369
+				$invoice->add_note(wp_sprintf(__('PayPal Transaction ID: %s', 'invoicing'), sanitize_text_field($posted['txn_id'])), false, false, true);
370 370
 			}
371 371
 
372 372
 			return $invoice->mark_paid();
373 373
 
374 374
 		}
375 375
 
376
-		wpinv_error_log( 'Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false );
376
+		wpinv_error_log('Processing subscription renewal payment for the invoice ' . $invoice->get_id(), false);
377 377
 
378 378
 		// Abort if the payment is already recorded.
379
-		if ( wpinv_get_id_by_transaction_id( $posted['txn_id'] ) ) {
380
-			return wpinv_error_log( 'Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false );
379
+		if (wpinv_get_id_by_transaction_id($posted['txn_id'])) {
380
+			return wpinv_error_log('Aborting, Transaction ' . $posted['txn_id'] . ' has already been processed', false);
381 381
 		}
382 382
 
383 383
 		$args = array(
@@ -385,17 +385,17 @@  discard block
 block discarded – undo
385 385
 			'gateway'        => $this->id,
386 386
 		);
387 387
 
388
-		$invoice = wpinv_get_invoice( $subscription->add_payment( $args ) );
388
+		$invoice = wpinv_get_invoice($subscription->add_payment($args));
389 389
 
390
-		if ( empty( $invoice ) ) {
390
+		if (empty($invoice)) {
391 391
 			return;
392 392
 		}
393 393
 
394
-		$invoice->add_note( wp_sprintf( __( 'PayPal Transaction ID: %s', 'invoicing' ), $posted['txn_id'] ), false, false, true );
395
-		$invoice->add_note( wp_sprintf( __( 'PayPal Subscription ID: %s', 'invoicing' ), $posted['subscr_id'] ), false, false, true );
394
+		$invoice->add_note(wp_sprintf(__('PayPal Transaction ID: %s', 'invoicing'), $posted['txn_id']), false, false, true);
395
+		$invoice->add_note(wp_sprintf(__('PayPal Subscription ID: %s', 'invoicing'), $posted['subscr_id']), false, false, true);
396 396
 
397 397
 		$subscription->renew();
398
-		wpinv_error_log( 'Subscription renewed.', false );
398
+		wpinv_error_log('Subscription renewed.', false);
399 399
 
400 400
 	}
401 401
 
@@ -404,18 +404,18 @@  discard block
 block discarded – undo
404 404
 	 *
405 405
 	 * @param WPInv_Invoice $invoice  Invoice object.
406 406
 	 */
407
-	protected function ipn_txn_subscr_cancel( $invoice ) {
407
+	protected function ipn_txn_subscr_cancel($invoice) {
408 408
 
409 409
 		// Make sure the invoice has a subscription.
410
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
410
+		$subscription = getpaid_subscriptions()->get_invoice_subscription($invoice);
411 411
 
412
-		if ( empty( $subscription ) ) {
413
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
412
+		if (empty($subscription)) {
413
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
414 414
 		}
415 415
 
416
-		wpinv_error_log( 'Processing subscription cancellation for the invoice ' . $invoice->get_id(), false );
416
+		wpinv_error_log('Processing subscription cancellation for the invoice ' . $invoice->get_id(), false);
417 417
 		$subscription->cancel();
418
-		wpinv_error_log( 'Subscription cancelled.', false );
418
+		wpinv_error_log('Subscription cancelled.', false);
419 419
 
420 420
 	}
421 421
 
@@ -425,18 +425,18 @@  discard block
 block discarded – undo
425 425
 	 * @param WPInv_Invoice $invoice  Invoice object.
426 426
 	 * @param array    $posted Posted data.
427 427
 	 */
428
-	protected function ipn_txn_subscr_eot( $invoice ) {
428
+	protected function ipn_txn_subscr_eot($invoice) {
429 429
 
430 430
 		// Make sure the invoice has a subscription.
431
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
431
+		$subscription = getpaid_subscriptions()->get_invoice_subscription($invoice);
432 432
 
433
-		if ( empty( $subscription ) ) {
434
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
433
+		if (empty($subscription)) {
434
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
435 435
 		}
436 436
 
437
-		wpinv_error_log( 'Processing subscription end of life for the invoice ' . $invoice->get_id(), false );
437
+		wpinv_error_log('Processing subscription end of life for the invoice ' . $invoice->get_id(), false);
438 438
 		$subscription->complete();
439
-		wpinv_error_log( 'Subscription completed.', false );
439
+		wpinv_error_log('Subscription completed.', false);
440 440
 
441 441
 	}
442 442
 
@@ -446,18 +446,18 @@  discard block
 block discarded – undo
446 446
 	 * @param WPInv_Invoice $invoice  Invoice object.
447 447
 	 * @param array    $posted Posted data.
448 448
 	 */
449
-	protected function ipn_txn_subscr_failed( $invoice ) {
449
+	protected function ipn_txn_subscr_failed($invoice) {
450 450
 
451 451
 		// Make sure the invoice has a subscription.
452
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
452
+		$subscription = getpaid_subscriptions()->get_invoice_subscription($invoice);
453 453
 
454
-		if ( empty( $subscription ) ) {
455
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
454
+		if (empty($subscription)) {
455
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
456 456
 		}
457 457
 
458
-		wpinv_error_log( 'Processing subscription payment failure for the invoice ' . $invoice->get_id(), false );
458
+		wpinv_error_log('Processing subscription payment failure for the invoice ' . $invoice->get_id(), false);
459 459
 		$subscription->failing();
460
-		wpinv_error_log( 'Subscription marked as failing.', false );
460
+		wpinv_error_log('Subscription marked as failing.', false);
461 461
 
462 462
 	}
463 463
 
@@ -467,18 +467,18 @@  discard block
 block discarded – undo
467 467
 	 * @param WPInv_Invoice $invoice  Invoice object.
468 468
 	 * @param array    $posted Posted data.
469 469
 	 */
470
-	protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment( $invoice ) {
470
+	protected function ipn_txn_recurring_payment_suspended_due_to_max_failed_payment($invoice) {
471 471
 
472 472
 		// Make sure the invoice has a subscription.
473
-		$subscription = getpaid_subscriptions()->get_invoice_subscription( $invoice );
473
+		$subscription = getpaid_subscriptions()->get_invoice_subscription($invoice);
474 474
 
475
-		if ( empty( $subscription ) ) {
476
-			return wpinv_error_log( 'Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false );
475
+		if (empty($subscription)) {
476
+			return wpinv_error_log('Aborting, Subscription for the invoice ' . $invoice->get_id() . ' not found', false);
477 477
 		}
478 478
 
479
-		wpinv_error_log( 'Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false );
479
+		wpinv_error_log('Processing subscription cancellation due to max failed payment for the invoice ' . $invoice->get_id(), false);
480 480
 		$subscription->cancel();
481
-		wpinv_error_log( 'Subscription cancelled.', false );
481
+		wpinv_error_log('Subscription cancelled.', false);
482 482
 	}
483 483
 
484 484
 }
Please login to merge, or discard this patch.
includes/wpinv-subscription.php 2 patches
Indentation   +1049 added lines, -1049 removed lines patch added patch discarded remove patch
@@ -15,125 +15,125 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class WPInv_Subscription extends GetPaid_Data {
17 17
 
18
-	/**
19
-	 * Which data store to load.
20
-	 *
21
-	 * @var string
22
-	 */
23
-	protected $data_store_name = 'subscription';
24
-
25
-	/**
26
-	 * This is the name of this object type.
27
-	 *
28
-	 * @var string
29
-	 */
30
-	protected $object_type = 'subscription';
31
-
32
-	/**
33
-	 * Item Data array. This is the core item data exposed in APIs.
34
-	 *
35
-	 * @since 1.0.19
36
-	 * @var array
37
-	 */
38
-	protected $data = array(
39
-		'customer_id'       => 0,
40
-		'frequency'         => 1,
41
-		'period'            => 'D',
42
-		'initial_amount'    => null,
43
-		'recurring_amount'  => null,
44
-		'bill_times'        => 0,
45
-		'transaction_id'    => '',
46
-		'parent_payment_id' => null,
47
-		'product_id'        => 0,
48
-		'created'           => '0000-00-00 00:00:00',
49
-		'expiration'        => '0000-00-00 00:00:00',
50
-		'trial_period'      => '',
51
-		'status'            => 'pending',
52
-		'profile_id'        => '',
53
-		'gateway'           => '',
54
-		'customer'          => '',
55
-	);
56
-
57
-	/**
58
-	 * Stores the status transition information.
59
-	 *
60
-	 * @since 1.0.19
61
-	 * @var bool
62
-	 */
63
-	protected $status_transition = false;
64
-
65
-	/**
66
-	 * Get the subscription if ID is passed, otherwise the subscription is new and empty.
67
-	 *
68
-	 * @param  int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read.
69
-	 * @param  bool $deprecated
70
-	 */
71
-	function __construct( $subscription = 0, $deprecated = false ) {
72
-
73
-		parent::__construct( $subscription );
74
-
75
-		if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) {
76
-			$this->set_id( $subscription );
77
-		} elseif ( $subscription instanceof self ) {
78
-			$this->set_id( $subscription->get_id() );
79
-		} elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) {
80
-			$this->set_id( $subscription_id );
81
-		} elseif ( ! empty( $subscription->id ) ) {
82
-			$this->set_id( $subscription->id );
83
-		} else {
84
-			$this->set_object_read( true );
85
-		}
86
-
87
-		// Load the datastore.
88
-		$this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
89
-
90
-		if ( $this->get_id() > 0 ) {
91
-			$this->data_store->read( $this );
92
-		}
93
-
94
-	}
95
-
96
-	/**
97
-	 * Given an invoice id, profile id, transaction id, it returns the subscription's id.
98
-	 *
99
-	 *
100
-	 * @static
101
-	 * @param string $value
102
-	 * @param string $field Either invoice_id, transaction_id or profile_id.
103
-	 * @since 1.0.19
104
-	 * @return int
105
-	 */
106
-	public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) {
18
+    /**
19
+     * Which data store to load.
20
+     *
21
+     * @var string
22
+     */
23
+    protected $data_store_name = 'subscription';
24
+
25
+    /**
26
+     * This is the name of this object type.
27
+     *
28
+     * @var string
29
+     */
30
+    protected $object_type = 'subscription';
31
+
32
+    /**
33
+     * Item Data array. This is the core item data exposed in APIs.
34
+     *
35
+     * @since 1.0.19
36
+     * @var array
37
+     */
38
+    protected $data = array(
39
+        'customer_id'       => 0,
40
+        'frequency'         => 1,
41
+        'period'            => 'D',
42
+        'initial_amount'    => null,
43
+        'recurring_amount'  => null,
44
+        'bill_times'        => 0,
45
+        'transaction_id'    => '',
46
+        'parent_payment_id' => null,
47
+        'product_id'        => 0,
48
+        'created'           => '0000-00-00 00:00:00',
49
+        'expiration'        => '0000-00-00 00:00:00',
50
+        'trial_period'      => '',
51
+        'status'            => 'pending',
52
+        'profile_id'        => '',
53
+        'gateway'           => '',
54
+        'customer'          => '',
55
+    );
56
+
57
+    /**
58
+     * Stores the status transition information.
59
+     *
60
+     * @since 1.0.19
61
+     * @var bool
62
+     */
63
+    protected $status_transition = false;
64
+
65
+    /**
66
+     * Get the subscription if ID is passed, otherwise the subscription is new and empty.
67
+     *
68
+     * @param  int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read.
69
+     * @param  bool $deprecated
70
+     */
71
+    function __construct( $subscription = 0, $deprecated = false ) {
72
+
73
+        parent::__construct( $subscription );
74
+
75
+        if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) {
76
+            $this->set_id( $subscription );
77
+        } elseif ( $subscription instanceof self ) {
78
+            $this->set_id( $subscription->get_id() );
79
+        } elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) {
80
+            $this->set_id( $subscription_id );
81
+        } elseif ( ! empty( $subscription->id ) ) {
82
+            $this->set_id( $subscription->id );
83
+        } else {
84
+            $this->set_object_read( true );
85
+        }
86
+
87
+        // Load the datastore.
88
+        $this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
89
+
90
+        if ( $this->get_id() > 0 ) {
91
+            $this->data_store->read( $this );
92
+        }
93
+
94
+    }
95
+
96
+    /**
97
+     * Given an invoice id, profile id, transaction id, it returns the subscription's id.
98
+     *
99
+     *
100
+     * @static
101
+     * @param string $value
102
+     * @param string $field Either invoice_id, transaction_id or profile_id.
103
+     * @since 1.0.19
104
+     * @return int
105
+     */
106
+    public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) {
107 107
         global $wpdb;
108 108
 
109
-		// Trim the value.
110
-		$value = trim( $value );
109
+        // Trim the value.
110
+        $value = trim( $value );
111 111
 
112
-		if ( empty( $value ) ) {
113
-			return 0;
114
-		}
112
+        if ( empty( $value ) ) {
113
+            return 0;
114
+        }
115 115
 
116
-		if ( 'invoice_id' == $field ) {
117
-			$field = 'parent_payment_id';
118
-		}
116
+        if ( 'invoice_id' == $field ) {
117
+            $field = 'parent_payment_id';
118
+        }
119 119
 
120 120
         // Valid fields.
121 121
         $fields = array(
122
-			'parent_payment_id',
123
-			'transaction_id',
124
-			'profile_id',
125
-		);
126
-
127
-		// Ensure a field has been passed.
128
-		if ( empty( $field ) || ! in_array( $field, $fields ) ) {
129
-			return 0;
130
-		}
131
-
132
-		// Maybe retrieve from the cache.
133
-		$subscription_id   = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" );
134
-		if ( ! empty( $subscription_id ) ) {
135
-			return $subscription_id;
136
-		}
122
+            'parent_payment_id',
123
+            'transaction_id',
124
+            'profile_id',
125
+        );
126
+
127
+        // Ensure a field has been passed.
128
+        if ( empty( $field ) || ! in_array( $field, $fields ) ) {
129
+            return 0;
130
+        }
131
+
132
+        // Maybe retrieve from the cache.
133
+        $subscription_id   = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" );
134
+        if ( ! empty( $subscription_id ) ) {
135
+            return $subscription_id;
136
+        }
137 137
 
138 138
         // Fetch from the db.
139 139
         $table            = $wpdb->prefix . 'wpinv_subscriptions';
@@ -141,42 +141,42 @@  discard block
 block discarded – undo
141 141
             $wpdb->prepare( "SELECT `id` FROM $table WHERE `$field`=%s LIMIT 1", $value )
142 142
         );
143 143
 
144
-		if ( empty( $subscription_id ) ) {
145
-			return 0;
146
-		}
144
+        if ( empty( $subscription_id ) ) {
145
+            return 0;
146
+        }
147 147
 
148
-		// Update the cache with our data.
149
-		wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" );
148
+        // Update the cache with our data.
149
+        wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" );
150 150
 
151
-		return $subscription_id;
152
-	}
151
+        return $subscription_id;
152
+    }
153 153
 
154
-	/**
154
+    /**
155 155
      * Clears the subscription's cache.
156 156
      */
157 157
     public function clear_cache() {
158
-		$caches = array(
159
-			'getpaid_subscription_parent_payment_ids_to_subscription_ids' => $this->get_parent_payment_id(),
160
-			'getpaid_subscription_transaction_ids_to_subscription_ids'    => $this->get_transaction_id(),
161
-			'getpaid_subscription_profile_ids_to_subscription_ids'        => $this->get_profile_id(),
162
-			'getpaid_subscriptions'                                       => $this->get_id(),
163
-		);
164
-
165
-		foreach ( $caches as $cache => $value ) {
166
-			if ( '' !== $value && false !== $value ) {
167
-				wp_cache_delete( $value, $cache );
168
-			}
169
-		}
170
-	}
171
-
172
-	/**
158
+        $caches = array(
159
+            'getpaid_subscription_parent_payment_ids_to_subscription_ids' => $this->get_parent_payment_id(),
160
+            'getpaid_subscription_transaction_ids_to_subscription_ids'    => $this->get_transaction_id(),
161
+            'getpaid_subscription_profile_ids_to_subscription_ids'        => $this->get_profile_id(),
162
+            'getpaid_subscriptions'                                       => $this->get_id(),
163
+        );
164
+
165
+        foreach ( $caches as $cache => $value ) {
166
+            if ( '' !== $value && false !== $value ) {
167
+                wp_cache_delete( $value, $cache );
168
+            }
169
+        }
170
+    }
171
+
172
+    /**
173 173
      * Checks if a subscription key is set.
174 174
      */
175 175
     public function _isset( $key ) {
176 176
         return isset( $this->data[ $key ] ) || method_exists( $this, "get_$key" );
177
-	}
177
+    }
178 178
 
179
-	/*
179
+    /*
180 180
 	|--------------------------------------------------------------------------
181 181
 	| CRUD methods
182 182
 	|--------------------------------------------------------------------------
@@ -185,544 +185,544 @@  discard block
 block discarded – undo
185 185
 	|
186 186
     */
187 187
 
188
-	/*
188
+    /*
189 189
 	|--------------------------------------------------------------------------
190 190
 	| Getters
191 191
 	|--------------------------------------------------------------------------
192 192
 	*/
193 193
 
194
-	/**
195
-	 * Get customer id.
196
-	 *
197
-	 * @since 1.0.19
198
-	 * @param  string $context View or edit context.
199
-	 * @return int
200
-	 */
201
-	public function get_customer_id( $context = 'view' ) {
202
-		return (int) $this->get_prop( 'customer_id', $context );
203
-	}
204
-
205
-	/**
206
-	 * Get customer information.
207
-	 *
208
-	 * @since 1.0.19
209
-	 * @param  string $context View or edit context.
210
-	 * @return WP_User|false WP_User object on success, false on failure.
211
-	 */
212
-	public function get_customer( $context = 'view' ) {
213
-		return get_userdata( $this->get_customer_id( $context ) );
214
-	}
215
-
216
-	/**
217
-	 * Get parent invoice id.
218
-	 *
219
-	 * @since 1.0.19
220
-	 * @param  string $context View or edit context.
221
-	 * @return int
222
-	 */
223
-	public function get_parent_invoice_id( $context = 'view' ) {
224
-		return (int) $this->get_prop( 'parent_payment_id', $context );
225
-	}
226
-
227
-	/**
228
-	 * Alias for self::get_parent_invoice_id().
229
-	 *
230
-	 * @since 1.0.19
231
-	 * @param  string $context View or edit context.
232
-	 * @return int
233
-	 */
194
+    /**
195
+     * Get customer id.
196
+     *
197
+     * @since 1.0.19
198
+     * @param  string $context View or edit context.
199
+     * @return int
200
+     */
201
+    public function get_customer_id( $context = 'view' ) {
202
+        return (int) $this->get_prop( 'customer_id', $context );
203
+    }
204
+
205
+    /**
206
+     * Get customer information.
207
+     *
208
+     * @since 1.0.19
209
+     * @param  string $context View or edit context.
210
+     * @return WP_User|false WP_User object on success, false on failure.
211
+     */
212
+    public function get_customer( $context = 'view' ) {
213
+        return get_userdata( $this->get_customer_id( $context ) );
214
+    }
215
+
216
+    /**
217
+     * Get parent invoice id.
218
+     *
219
+     * @since 1.0.19
220
+     * @param  string $context View or edit context.
221
+     * @return int
222
+     */
223
+    public function get_parent_invoice_id( $context = 'view' ) {
224
+        return (int) $this->get_prop( 'parent_payment_id', $context );
225
+    }
226
+
227
+    /**
228
+     * Alias for self::get_parent_invoice_id().
229
+     *
230
+     * @since 1.0.19
231
+     * @param  string $context View or edit context.
232
+     * @return int
233
+     */
234 234
     public function get_parent_payment_id( $context = 'view' ) {
235 235
         return $this->get_parent_invoice_id( $context );
236
-	}
236
+    }
237
+
238
+    /**
239
+     * Alias for self::get_parent_invoice_id().
240
+     *
241
+     * @since  1.0.0
242
+     * @return int
243
+     */
244
+    public function get_original_payment_id( $context = 'view' ) {
245
+        return $this->get_parent_invoice_id( $context );
246
+    }
247
+
248
+    /**
249
+     * Get parent invoice.
250
+     *
251
+     * @since 1.0.19
252
+     * @param  string $context View or edit context.
253
+     * @return WPInv_Invoice
254
+     */
255
+    public function get_parent_invoice( $context = 'view' ) {
256
+        return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) );
257
+    }
258
+
259
+    /**
260
+     * Alias for self::get_parent_invoice().
261
+     *
262
+     * @since 1.0.19
263
+     * @param  string $context View or edit context.
264
+     * @return WPInv_Invoice
265
+     */
266
+    public function get_parent_payment( $context = 'view' ) {
267
+        return $this->get_parent_invoice( $context );
268
+    }
269
+
270
+    /**
271
+     * Get subscription's product id.
272
+     *
273
+     * @since 1.0.19
274
+     * @param  string $context View or edit context.
275
+     * @return int
276
+     */
277
+    public function get_product_id( $context = 'view' ) {
278
+        return (int) $this->get_prop( 'product_id', $context );
279
+    }
280
+
281
+    /**
282
+     * Get the subscription product.
283
+     *
284
+     * @since 1.0.19
285
+     * @param  string $context View or edit context.
286
+     * @return WPInv_Item
287
+     */
288
+    public function get_product( $context = 'view' ) {
289
+        return new WPInv_Item( $this->get_product_id( $context ) );
290
+    }
291
+
292
+    /**
293
+     * Get parent invoice's gateway.
294
+     *
295
+     * Here for backwards compatibility.
296
+     *
297
+     * @since 1.0.19
298
+     * @param  string $context View or edit context.
299
+     * @return string
300
+     */
301
+    public function get_gateway( $context = 'view' ) {
302
+        return $this->get_parent_invoice( $context )->get_gateway();
303
+    }
304
+
305
+    /**
306
+     * Get the period of a renewal.
307
+     *
308
+     * @since 1.0.19
309
+     * @param  string $context View or edit context.
310
+     * @return string
311
+     */
312
+    public function get_period( $context = 'view' ) {
313
+        return $this->get_prop( 'period', $context );
314
+    }
315
+
316
+    /**
317
+     * Get number of periods each renewal is valid for.
318
+     *
319
+     * @since 1.0.19
320
+     * @param  string $context View or edit context.
321
+     * @return int
322
+     */
323
+    public function get_frequency( $context = 'view' ) {
324
+        return (int) $this->get_prop( 'frequency', $context );
325
+    }
326
+
327
+    /**
328
+     * Get the initial amount for the subscription.
329
+     *
330
+     * @since 1.0.19
331
+     * @param  string $context View or edit context.
332
+     * @return float
333
+     */
334
+    public function get_initial_amount( $context = 'view' ) {
335
+        return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) );
336
+    }
337
+
338
+    /**
339
+     * Get the recurring amount for the subscription.
340
+     *
341
+     * @since 1.0.19
342
+     * @param  string $context View or edit context.
343
+     * @return float
344
+     */
345
+    public function get_recurring_amount( $context = 'view' ) {
346
+        return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) );
347
+    }
348
+
349
+    /**
350
+     * Get number of times that this subscription can be renewed.
351
+     *
352
+     * @since 1.0.19
353
+     * @param  string $context View or edit context.
354
+     * @return int
355
+     */
356
+    public function get_bill_times( $context = 'view' ) {
357
+        return (int) $this->get_prop( 'bill_times', $context );
358
+    }
359
+
360
+    /**
361
+     * Get transaction id of this subscription's parent invoice.
362
+     *
363
+     * @since 1.0.19
364
+     * @param  string $context View or edit context.
365
+     * @return string
366
+     */
367
+    public function get_transaction_id( $context = 'view' ) {
368
+        return $this->get_prop( 'transaction_id', $context );
369
+    }
370
+
371
+    /**
372
+     * Get the date that the subscription was created.
373
+     *
374
+     * @since 1.0.19
375
+     * @param  string $context View or edit context.
376
+     * @return string
377
+     */
378
+    public function get_created( $context = 'view' ) {
379
+        return $this->get_prop( 'created', $context );
380
+    }
381
+
382
+    /**
383
+     * Alias for self::get_created().
384
+     *
385
+     * @since 1.0.19
386
+     * @param  string $context View or edit context.
387
+     * @return string
388
+     */
389
+    public function get_date_created( $context = 'view' ) {
390
+        return $this->get_created( $context );
391
+    }
392
+
393
+    /**
394
+     * Retrieves the creation date in a timestamp
395
+     *
396
+     * @since  1.0.0
397
+     * @return int
398
+     */
399
+    public function get_time_created() {
400
+        $created = $this->get_date_created();
401
+        return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) );
402
+    }
403
+
404
+    /**
405
+     * Get GMT date when the subscription was created.
406
+     *
407
+     * @since 1.0.19
408
+     * @param  string $context View or edit context.
409
+     * @return string
410
+     */
411
+    public function get_date_created_gmt( $context = 'view' ) {
412
+        $date = $this->get_date_created( $context );
413
+
414
+        if ( $date ) {
415
+            $date = get_gmt_from_date( $date );
416
+        }
417
+        return $date;
418
+    }
419
+
420
+    /**
421
+     * Get the date that the subscription will renew.
422
+     *
423
+     * @since 1.0.19
424
+     * @param  string $context View or edit context.
425
+     * @return string
426
+     */
427
+    public function get_next_renewal_date( $context = 'view' ) {
428
+        return $this->get_prop( 'expiration', $context );
429
+    }
430
+
431
+    /**
432
+     * Alias for self::get_next_renewal_date().
433
+     *
434
+     * @since 1.0.19
435
+     * @param  string $context View or edit context.
436
+     * @return string
437
+     */
438
+    public function get_expiration( $context = 'view' ) {
439
+        return $this->get_next_renewal_date( $context );
440
+    }
441
+
442
+    /**
443
+     * Retrieves the expiration date in a timestamp
444
+     *
445
+     * @since  1.0.0
446
+     * @return int
447
+     */
448
+    public function get_expiration_time() {
449
+        $expiration = $this->get_expiration();
450
+
451
+        if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) {
452
+            return current_time( 'timestamp' );
453
+        }
454
+
455
+        $expiration = strtotime( $expiration, current_time( 'timestamp' ) );
456
+        return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration;
457
+    }
458
+
459
+    /**
460
+     * Get GMT date when the subscription will renew.
461
+     *
462
+     * @since 1.0.19
463
+     * @param  string $context View or edit context.
464
+     * @return string
465
+     */
466
+    public function get_next_renewal_date_gmt( $context = 'view' ) {
467
+        $date = $this->get_next_renewal_date( $context );
468
+
469
+        if ( $date ) {
470
+            $date = get_gmt_from_date( $date );
471
+        }
472
+        return $date;
473
+    }
474
+
475
+    /**
476
+     * Get the subscription's trial period.
477
+     *
478
+     * @since 1.0.19
479
+     * @param  string $context View or edit context.
480
+     * @return string
481
+     */
482
+    public function get_trial_period( $context = 'view' ) {
483
+        return $this->get_prop( 'trial_period', $context );
484
+    }
485
+
486
+    /**
487
+     * Get the subscription's status.
488
+     *
489
+     * @since 1.0.19
490
+     * @param  string $context View or edit context.
491
+     * @return string
492
+     */
493
+    public function get_status( $context = 'view' ) {
494
+        return $this->get_prop( 'status', $context );
495
+    }
496
+
497
+    /**
498
+     * Get the subscription's profile id.
499
+     *
500
+     * @since 1.0.19
501
+     * @param  string $context View or edit context.
502
+     * @return string
503
+     */
504
+    public function get_profile_id( $context = 'view' ) {
505
+        return $this->get_prop( 'profile_id', $context );
506
+    }
507
+
508
+    /*
509
+	|--------------------------------------------------------------------------
510
+	| Setters
511
+	|--------------------------------------------------------------------------
512
+	*/
513
+
514
+    /**
515
+     * Set customer id.
516
+     *
517
+     * @since 1.0.19
518
+     * @param  int $value The customer's id.
519
+     */
520
+    public function set_customer_id( $value ) {
521
+        $this->set_prop( 'customer_id', (int) $value );
522
+    }
523
+
524
+    /**
525
+     * Set parent invoice id.
526
+     *
527
+     * @since 1.0.19
528
+     * @param  int $value The parent invoice id.
529
+     */
530
+    public function set_parent_invoice_id( $value ) {
531
+        $this->set_prop( 'parent_payment_id', (int) $value );
532
+    }
533
+
534
+    /**
535
+     * Alias for self::set_parent_invoice_id().
536
+     *
537
+     * @since 1.0.19
538
+     * @param  int $value The parent invoice id.
539
+     */
540
+    public function set_parent_payment_id( $value ) {
541
+        $this->set_parent_invoice_id( $value );
542
+    }
543
+
544
+    /**
545
+     * Alias for self::set_parent_invoice_id().
546
+     *
547
+     * @since 1.0.19
548
+     * @param  int $value The parent invoice id.
549
+     */
550
+    public function set_original_payment_id( $value ) {
551
+        $this->set_parent_invoice_id( $value );
552
+    }
553
+
554
+    /**
555
+     * Set subscription's product id.
556
+     *
557
+     * @since 1.0.19
558
+     * @param  int $value The subscription product id.
559
+     */
560
+    public function set_product_id( $value ) {
561
+        $this->set_prop( 'product_id', (int) $value );
562
+    }
563
+
564
+    /**
565
+     * Set the period of a renewal.
566
+     *
567
+     * @since 1.0.19
568
+     * @param  string $value The renewal period.
569
+     */
570
+    public function set_period( $value ) {
571
+        $this->set_prop( 'period', $value );
572
+    }
573
+
574
+    /**
575
+     * Set number of periods each renewal is valid for.
576
+     *
577
+     * @since 1.0.19
578
+     * @param  int $value The subscription frequency.
579
+     */
580
+    public function set_frequency( $value ) {
581
+        $value = empty( $value ) ? 1 : (int) $value;
582
+        $this->set_prop( 'frequency', absint( $value ) );
583
+    }
584
+
585
+    /**
586
+     * Set the initial amount for the subscription.
587
+     *
588
+     * @since 1.0.19
589
+     * @param  float $value The initial subcription amount.
590
+     */
591
+    public function set_initial_amount( $value ) {
592
+        $this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) );
593
+    }
594
+
595
+    /**
596
+     * Set the recurring amount for the subscription.
597
+     *
598
+     * @since 1.0.19
599
+     * @param  float $value The recurring subcription amount.
600
+     */
601
+    public function set_recurring_amount( $value ) {
602
+        $this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) );
603
+    }
604
+
605
+    /**
606
+     * Set number of times that this subscription can be renewed.
607
+     *
608
+     * @since 1.0.19
609
+     * @param  int $value Bill times.
610
+     */
611
+    public function set_bill_times( $value ) {
612
+        $this->set_prop( 'bill_times', (int) $value );
613
+    }
614
+
615
+    /**
616
+     * Get transaction id of this subscription's parent invoice.
617
+     *
618
+     * @since 1.0.19
619
+     * @param string $value Bill times.
620
+     */
621
+    public function set_transaction_id( $value ) {
622
+        $this->set_prop( 'transaction_id', sanitize_text_field( $value ) );
623
+    }
624
+
625
+    /**
626
+     * Set date when this subscription started.
627
+     *
628
+     * @since 1.0.19
629
+     * @param string $value strtotime compliant date.
630
+     */
631
+    public function set_created( $value ) {
632
+        $date = strtotime( $value );
633
+
634
+        if ( $date && $value !== '0000-00-00 00:00:00' ) {
635
+            $this->set_prop( 'created', date( 'Y-m-d H:i:s', $date ) );
636
+            return;
637
+        }
638
+
639
+        $this->set_prop( 'created', '' );
237 640
 
238
-	/**
239
-     * Alias for self::get_parent_invoice_id().
641
+    }
642
+
643
+    /**
644
+     * Alias for self::set_created().
240 645
      *
241
-     * @since  1.0.0
242
-     * @return int
646
+     * @since 1.0.19
647
+     * @param string $value strtotime compliant date.
243 648
      */
244
-    public function get_original_payment_id( $context = 'view' ) {
245
-        return $this->get_parent_invoice_id( $context );
649
+    public function set_date_created( $value ) {
650
+        $this->set_created( $value );
246 651
     }
247 652
 
248
-	/**
249
-	 * Get parent invoice.
250
-	 *
251
-	 * @since 1.0.19
252
-	 * @param  string $context View or edit context.
253
-	 * @return WPInv_Invoice
254
-	 */
255
-	public function get_parent_invoice( $context = 'view' ) {
256
-		return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) );
257
-	}
258
-
259
-	/**
260
-	 * Alias for self::get_parent_invoice().
261
-	 *
262
-	 * @since 1.0.19
263
-	 * @param  string $context View or edit context.
264
-	 * @return WPInv_Invoice
265
-	 */
266
-    public function get_parent_payment( $context = 'view' ) {
267
-        return $this->get_parent_invoice( $context );
268
-	}
269
-
270
-	/**
271
-	 * Get subscription's product id.
272
-	 *
273
-	 * @since 1.0.19
274
-	 * @param  string $context View or edit context.
275
-	 * @return int
276
-	 */
277
-	public function get_product_id( $context = 'view' ) {
278
-		return (int) $this->get_prop( 'product_id', $context );
279
-	}
280
-
281
-	/**
282
-	 * Get the subscription product.
283
-	 *
284
-	 * @since 1.0.19
285
-	 * @param  string $context View or edit context.
286
-	 * @return WPInv_Item
287
-	 */
288
-	public function get_product( $context = 'view' ) {
289
-		return new WPInv_Item( $this->get_product_id( $context ) );
290
-	}
291
-
292
-	/**
293
-	 * Get parent invoice's gateway.
294
-	 *
295
-	 * Here for backwards compatibility.
296
-	 *
297
-	 * @since 1.0.19
298
-	 * @param  string $context View or edit context.
299
-	 * @return string
300
-	 */
301
-	public function get_gateway( $context = 'view' ) {
302
-		return $this->get_parent_invoice( $context )->get_gateway();
303
-	}
304
-
305
-	/**
306
-	 * Get the period of a renewal.
307
-	 *
308
-	 * @since 1.0.19
309
-	 * @param  string $context View or edit context.
310
-	 * @return string
311
-	 */
312
-	public function get_period( $context = 'view' ) {
313
-		return $this->get_prop( 'period', $context );
314
-	}
315
-
316
-	/**
317
-	 * Get number of periods each renewal is valid for.
318
-	 *
319
-	 * @since 1.0.19
320
-	 * @param  string $context View or edit context.
321
-	 * @return int
322
-	 */
323
-	public function get_frequency( $context = 'view' ) {
324
-		return (int) $this->get_prop( 'frequency', $context );
325
-	}
326
-
327
-	/**
328
-	 * Get the initial amount for the subscription.
329
-	 *
330
-	 * @since 1.0.19
331
-	 * @param  string $context View or edit context.
332
-	 * @return float
333
-	 */
334
-	public function get_initial_amount( $context = 'view' ) {
335
-		return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) );
336
-	}
337
-
338
-	/**
339
-	 * Get the recurring amount for the subscription.
340
-	 *
341
-	 * @since 1.0.19
342
-	 * @param  string $context View or edit context.
343
-	 * @return float
344
-	 */
345
-	public function get_recurring_amount( $context = 'view' ) {
346
-		return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) );
347
-	}
348
-
349
-	/**
350
-	 * Get number of times that this subscription can be renewed.
351
-	 *
352
-	 * @since 1.0.19
353
-	 * @param  string $context View or edit context.
354
-	 * @return int
355
-	 */
356
-	public function get_bill_times( $context = 'view' ) {
357
-		return (int) $this->get_prop( 'bill_times', $context );
358
-	}
359
-
360
-	/**
361
-	 * Get transaction id of this subscription's parent invoice.
362
-	 *
363
-	 * @since 1.0.19
364
-	 * @param  string $context View or edit context.
365
-	 * @return string
366
-	 */
367
-	public function get_transaction_id( $context = 'view' ) {
368
-		return $this->get_prop( 'transaction_id', $context );
369
-	}
370
-
371
-	/**
372
-	 * Get the date that the subscription was created.
373
-	 *
374
-	 * @since 1.0.19
375
-	 * @param  string $context View or edit context.
376
-	 * @return string
377
-	 */
378
-	public function get_created( $context = 'view' ) {
379
-		return $this->get_prop( 'created', $context );
380
-	}
381
-
382
-	/**
383
-	 * Alias for self::get_created().
384
-	 *
385
-	 * @since 1.0.19
386
-	 * @param  string $context View or edit context.
387
-	 * @return string
388
-	 */
389
-	public function get_date_created( $context = 'view' ) {
390
-		return $this->get_created( $context );
391
-	}
392
-
393
-	/**
394
-	 * Retrieves the creation date in a timestamp
395
-	 *
396
-	 * @since  1.0.0
397
-	 * @return int
398
-	 */
399
-	public function get_time_created() {
400
-		$created = $this->get_date_created();
401
-		return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) );
402
-	}
403
-
404
-	/**
405
-	 * Get GMT date when the subscription was created.
406
-	 *
407
-	 * @since 1.0.19
408
-	 * @param  string $context View or edit context.
409
-	 * @return string
410
-	 */
411
-	public function get_date_created_gmt( $context = 'view' ) {
412
-        $date = $this->get_date_created( $context );
653
+    /**
654
+     * Set the date that the subscription will renew.
655
+     *
656
+     * @since 1.0.19
657
+     * @param string $value strtotime compliant date.
658
+     */
659
+    public function set_next_renewal_date( $value ) {
660
+        $date = strtotime( $value );
413 661
 
414
-        if ( $date ) {
415
-            $date = get_gmt_from_date( $date );
662
+        if ( $date && $value !== '0000-00-00 00:00:00' ) {
663
+            $this->set_prop( 'expiration', date( 'Y-m-d H:i:s', $date ) );
664
+            return;
416 665
         }
417
-		return $date;
418
-	}
419
-
420
-	/**
421
-	 * Get the date that the subscription will renew.
422
-	 *
423
-	 * @since 1.0.19
424
-	 * @param  string $context View or edit context.
425
-	 * @return string
426
-	 */
427
-	public function get_next_renewal_date( $context = 'view' ) {
428
-		return $this->get_prop( 'expiration', $context );
429
-	}
430
-
431
-	/**
432
-	 * Alias for self::get_next_renewal_date().
433
-	 *
434
-	 * @since 1.0.19
435
-	 * @param  string $context View or edit context.
436
-	 * @return string
437
-	 */
438
-	public function get_expiration( $context = 'view' ) {
439
-		return $this->get_next_renewal_date( $context );
440
-	}
441
-
442
-	/**
443
-	 * Retrieves the expiration date in a timestamp
444
-	 *
445
-	 * @since  1.0.0
446
-	 * @return int
447
-	 */
448
-	public function get_expiration_time() {
449
-		$expiration = $this->get_expiration();
450
-
451
-		if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) {
452
-			return current_time( 'timestamp' );
453
-		}
454
-
455
-		$expiration = strtotime( $expiration, current_time( 'timestamp' ) );
456
-		return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration;
457
-	}
458
-
459
-	/**
460
-	 * Get GMT date when the subscription will renew.
461
-	 *
462
-	 * @since 1.0.19
463
-	 * @param  string $context View or edit context.
464
-	 * @return string
465
-	 */
466
-	public function get_next_renewal_date_gmt( $context = 'view' ) {
467
-        $date = $this->get_next_renewal_date( $context );
468 666
 
469
-        if ( $date ) {
470
-            $date = get_gmt_from_date( $date );
471
-        }
472
-		return $date;
473
-	}
474
-
475
-	/**
476
-	 * Get the subscription's trial period.
477
-	 *
478
-	 * @since 1.0.19
479
-	 * @param  string $context View or edit context.
480
-	 * @return string
481
-	 */
482
-	public function get_trial_period( $context = 'view' ) {
483
-		return $this->get_prop( 'trial_period', $context );
484
-	}
485
-
486
-	/**
487
-	 * Get the subscription's status.
488
-	 *
489
-	 * @since 1.0.19
490
-	 * @param  string $context View or edit context.
491
-	 * @return string
492
-	 */
493
-	public function get_status( $context = 'view' ) {
494
-		return $this->get_prop( 'status', $context );
495
-	}
496
-
497
-	/**
498
-	 * Get the subscription's profile id.
499
-	 *
500
-	 * @since 1.0.19
501
-	 * @param  string $context View or edit context.
502
-	 * @return string
503
-	 */
504
-	public function get_profile_id( $context = 'view' ) {
505
-		return $this->get_prop( 'profile_id', $context );
506
-	}
507
-
508
-	/*
509
-	|--------------------------------------------------------------------------
510
-	| Setters
511
-	|--------------------------------------------------------------------------
512
-	*/
667
+        $this->set_prop( 'expiration', '' );
513 668
 
514
-	/**
515
-	 * Set customer id.
516
-	 *
517
-	 * @since 1.0.19
518
-	 * @param  int $value The customer's id.
519
-	 */
520
-	public function set_customer_id( $value ) {
521
-		$this->set_prop( 'customer_id', (int) $value );
522
-	}
523
-
524
-	/**
525
-	 * Set parent invoice id.
526
-	 *
527
-	 * @since 1.0.19
528
-	 * @param  int $value The parent invoice id.
529
-	 */
530
-	public function set_parent_invoice_id( $value ) {
531
-		$this->set_prop( 'parent_payment_id', (int) $value );
532
-	}
533
-
534
-	/**
535
-	 * Alias for self::set_parent_invoice_id().
536
-	 *
537
-	 * @since 1.0.19
538
-	 * @param  int $value The parent invoice id.
539
-	 */
540
-    public function set_parent_payment_id( $value ) {
541
-        $this->set_parent_invoice_id( $value );
542
-	}
669
+    }
543 670
 
544
-	/**
545
-     * Alias for self::set_parent_invoice_id().
671
+    /**
672
+     * Alias for self::set_next_renewal_date().
546 673
      *
547 674
      * @since 1.0.19
548
-	 * @param  int $value The parent invoice id.
675
+     * @param string $value strtotime compliant date.
549 676
      */
550
-    public function set_original_payment_id( $value ) {
551
-        $this->set_parent_invoice_id( $value );
552
-	}
553
-
554
-	/**
555
-	 * Set subscription's product id.
556
-	 *
557
-	 * @since 1.0.19
558
-	 * @param  int $value The subscription product id.
559
-	 */
560
-	public function set_product_id( $value ) {
561
-		$this->set_prop( 'product_id', (int) $value );
562
-	}
563
-
564
-	/**
565
-	 * Set the period of a renewal.
566
-	 *
567
-	 * @since 1.0.19
568
-	 * @param  string $value The renewal period.
569
-	 */
570
-	public function set_period( $value ) {
571
-		$this->set_prop( 'period', $value );
572
-	}
573
-
574
-	/**
575
-	 * Set number of periods each renewal is valid for.
576
-	 *
577
-	 * @since 1.0.19
578
-	 * @param  int $value The subscription frequency.
579
-	 */
580
-	public function set_frequency( $value ) {
581
-		$value = empty( $value ) ? 1 : (int) $value;
582
-		$this->set_prop( 'frequency', absint( $value ) );
583
-	}
584
-
585
-	/**
586
-	 * Set the initial amount for the subscription.
587
-	 *
588
-	 * @since 1.0.19
589
-	 * @param  float $value The initial subcription amount.
590
-	 */
591
-	public function set_initial_amount( $value ) {
592
-		$this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) );
593
-	}
594
-
595
-	/**
596
-	 * Set the recurring amount for the subscription.
597
-	 *
598
-	 * @since 1.0.19
599
-	 * @param  float $value The recurring subcription amount.
600
-	 */
601
-	public function set_recurring_amount( $value ) {
602
-		$this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) );
603
-	}
604
-
605
-	/**
606
-	 * Set number of times that this subscription can be renewed.
607
-	 *
608
-	 * @since 1.0.19
609
-	 * @param  int $value Bill times.
610
-	 */
611
-	public function set_bill_times( $value ) {
612
-		$this->set_prop( 'bill_times', (int) $value );
613
-	}
614
-
615
-	/**
616
-	 * Get transaction id of this subscription's parent invoice.
617
-	 *
618
-	 * @since 1.0.19
619
-	 * @param string $value Bill times.
620
-	 */
621
-	public function set_transaction_id( $value ) {
622
-		$this->set_prop( 'transaction_id', sanitize_text_field( $value ) );
623
-	}
624
-
625
-	/**
626
-	 * Set date when this subscription started.
627
-	 *
628
-	 * @since 1.0.19
629
-	 * @param string $value strtotime compliant date.
630
-	 */
631
-	public function set_created( $value ) {
632
-        $date = strtotime( $value );
677
+    public function set_expiration( $value ) {
678
+        $this->set_next_renewal_date( $value );
679
+    }
633 680
 
634
-        if ( $date && $value !== '0000-00-00 00:00:00' ) {
635
-            $this->set_prop( 'created', date( 'Y-m-d H:i:s', $date ) );
681
+    /**
682
+     * Set the subscription's trial period.
683
+     *
684
+     * @since 1.0.19
685
+     * @param string $value trial period e.g 1 year.
686
+     */
687
+    public function set_trial_period( $value ) {
688
+        $this->set_prop( 'trial_period', $value );
689
+    }
690
+
691
+    /**
692
+     * Set the subscription's status.
693
+     *
694
+     * @since 1.0.19
695
+     * @param string $new_status    New subscription status.
696
+     */
697
+    public function set_status( $new_status ) {
698
+
699
+        // Abort if this is not a valid status;
700
+        if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) {
636 701
             return;
637 702
         }
638 703
 
639
-		$this->set_prop( 'created', '' );
640
-
641
-	}
704
+        $old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status();
705
+        if ( true === $this->object_read && $old_status !== $new_status ) {
706
+            $this->status_transition = array(
707
+                'from' => $old_status,
708
+                'to'   => $new_status,
709
+            );
710
+        }
642 711
 
643
-	/**
644
-	 * Alias for self::set_created().
645
-	 *
646
-	 * @since 1.0.19
647
-	 * @param string $value strtotime compliant date.
648
-	 */
649
-	public function set_date_created( $value ) {
650
-		$this->set_created( $value );
712
+        $this->set_prop( 'status', $new_status );
651 713
     }
652 714
 
653
-	/**
654
-	 * Set the date that the subscription will renew.
655
-	 *
656
-	 * @since 1.0.19
657
-	 * @param string $value strtotime compliant date.
658
-	 */
659
-	public function set_next_renewal_date( $value ) {
660
-		$date = strtotime( $value );
715
+    /**
716
+     * Set the subscription's (remote) profile id.
717
+     *
718
+     * @since 1.0.19
719
+     * @param  string $value the remote profile id.
720
+     */
721
+    public function set_profile_id( $value ) {
722
+        $this->set_prop( 'profile_id', sanitize_text_field( $value ) );
723
+    }
661 724
 
662
-        if ( $date && $value !== '0000-00-00 00:00:00' ) {
663
-            $this->set_prop( 'expiration', date( 'Y-m-d H:i:s', $date ) );
664
-            return;
665
-		}
666
-
667
-		$this->set_prop( 'expiration', '' );
668
-
669
-	}
670
-
671
-	/**
672
-	 * Alias for self::set_next_renewal_date().
673
-	 *
674
-	 * @since 1.0.19
675
-	 * @param string $value strtotime compliant date.
676
-	 */
677
-	public function set_expiration( $value ) {
678
-		$this->set_next_renewal_date( $value );
679
-    }
680
-
681
-	/**
682
-	 * Set the subscription's trial period.
683
-	 *
684
-	 * @since 1.0.19
685
-	 * @param string $value trial period e.g 1 year.
686
-	 */
687
-	public function set_trial_period( $value ) {
688
-		$this->set_prop( 'trial_period', $value );
689
-	}
690
-
691
-	/**
692
-	 * Set the subscription's status.
693
-	 *
694
-	 * @since 1.0.19
695
-	 * @param string $new_status    New subscription status.
696
-	 */
697
-	public function set_status( $new_status ) {
698
-
699
-		// Abort if this is not a valid status;
700
-		if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) {
701
-			return;
702
-		}
703
-
704
-		$old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status();
705
-		if ( true === $this->object_read && $old_status !== $new_status ) {
706
-			$this->status_transition = array(
707
-				'from' => $old_status,
708
-				'to'   => $new_status,
709
-			);
710
-		}
711
-
712
-		$this->set_prop( 'status', $new_status );
713
-	}
714
-
715
-	/**
716
-	 * Set the subscription's (remote) profile id.
717
-	 *
718
-	 * @since 1.0.19
719
-	 * @param  string $value the remote profile id.
720
-	 */
721
-	public function set_profile_id( $value ) {
722
-		$this->set_prop( 'profile_id', sanitize_text_field( $value ) );
723
-	}
724
-
725
-	/*
725
+    /*
726 726
 	|--------------------------------------------------------------------------
727 727
 	| Boolean methods
728 728
 	|--------------------------------------------------------------------------
@@ -731,55 +731,55 @@  discard block
 block discarded – undo
731 731
 	|
732 732
 	*/
733 733
 
734
-	/**
734
+    /**
735 735
      * Checks if the subscription has a given status.
736
-	 *
737
-	 * @param string|array String or array of strings to check for.
738
-	 * @return bool
736
+     *
737
+     * @param string|array String or array of strings to check for.
738
+     * @return bool
739 739
      */
740 740
     public function has_status( $status ) {
741 741
         return in_array( $this->get_status(), wpinv_clean( wpinv_parse_list( $status ) ) );
742
-	}
742
+    }
743 743
 
744
-	/**
744
+    /**
745 745
      * Checks if the subscription has a trial period.
746
-	 *
747
-	 * @return bool
746
+     *
747
+     * @return bool
748 748
      */
749 749
     public function has_trial_period() {
750
-		$period = $this->get_trial_period();
750
+        $period = $this->get_trial_period();
751 751
         return ! empty( $period );
752
-	}
753
-
754
-	/**
755
-	 * Is the subscription active?
756
-	 *
757
-	 * @return bool
758
-	 */
759
-	public function is_active() {
760
-		return $this->has_status( 'active trialling' ) && ! $this->is_expired();
761
-	}
762
-
763
-	/**
764
-	 * Is the subscription expired?
765
-	 *
766
-	 * @return bool
767
-	 */
768
-	public function is_expired() {
769
-		return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) );
770
-	}
771
-
772
-	/**
773
-	 * Is this the last renewals?
774
-	 *
775
-	 * @return bool
776
-	 */
777
-	public function is_last_renewal() {
778
-		$max_bills = $this->get_bill_times();
779
-		return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed();
780
-	}
781
-
782
-	/*
752
+    }
753
+
754
+    /**
755
+     * Is the subscription active?
756
+     *
757
+     * @return bool
758
+     */
759
+    public function is_active() {
760
+        return $this->has_status( 'active trialling' ) && ! $this->is_expired();
761
+    }
762
+
763
+    /**
764
+     * Is the subscription expired?
765
+     *
766
+     * @return bool
767
+     */
768
+    public function is_expired() {
769
+        return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) );
770
+    }
771
+
772
+    /**
773
+     * Is this the last renewals?
774
+     *
775
+     * @return bool
776
+     */
777
+    public function is_last_renewal() {
778
+        $max_bills = $this->get_bill_times();
779
+        return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed();
780
+    }
781
+
782
+    /*
783 783
 	|--------------------------------------------------------------------------
784 784
 	| Additional methods
785 785
 	|--------------------------------------------------------------------------
@@ -788,27 +788,27 @@  discard block
 block discarded – undo
788 788
 	|
789 789
 	*/
790 790
 
791
-	/**
792
-	 * Backwards compatibilty.
793
-	 */
794
-	public function create( $data = array() ) {
791
+    /**
792
+     * Backwards compatibilty.
793
+     */
794
+    public function create( $data = array() ) {
795 795
 
796
-		// Set the properties.
797
-		if ( is_array( $data ) ) {
798
-			$this->set_props( $data );
799
-		}
796
+        // Set the properties.
797
+        if ( is_array( $data ) ) {
798
+            $this->set_props( $data );
799
+        }
800 800
 
801
-		// Save the item.
802
-		return $this->save();
801
+        // Save the item.
802
+        return $this->save();
803 803
 
804
-	}
804
+    }
805 805
 
806
-	/**
807
-	 * Backwards compatibilty.
808
-	 */
809
-	public function update( $args = array() ) {
810
-		return $this->create( $args );
811
-	}
806
+    /**
807
+     * Backwards compatibilty.
808
+     */
809
+    public function update( $args = array() ) {
810
+        return $this->create( $args );
811
+    }
812 812
 
813 813
     /**
814 814
      * Retrieve renewal payments for a subscription
@@ -818,22 +818,22 @@  discard block
 block discarded – undo
818 818
      */
819 819
     public function get_child_payments( $hide_pending = true ) {
820 820
 
821
-		$statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' );
821
+        $statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' );
822 822
 
823
-		if ( ! $hide_pending ) {
824
-			$statuses = array_keys( wpinv_get_invoice_statuses() );
825
-		}
823
+        if ( ! $hide_pending ) {
824
+            $statuses = array_keys( wpinv_get_invoice_statuses() );
825
+        }
826 826
 
827 827
         return get_posts(
828
-			array(
829
-            	'post_parent' => $this->get_parent_payment_id(),
830
-            	'numberposts' => -1,
831
-            	'post_status' => $statuses,
832
-            	'orderby'     => 'ID',
833
-            	'order'       => 'ASC',
834
-            	'post_type'   => 'wpi_invoice',
835
-			)
836
-		);
828
+            array(
829
+                'post_parent' => $this->get_parent_payment_id(),
830
+                'numberposts' => -1,
831
+                'post_status' => $statuses,
832
+                'orderby'     => 'ID',
833
+                'order'       => 'ASC',
834
+                'post_type'   => 'wpi_invoice',
835
+            )
836
+        );
837 837
     }
838 838
 
839 839
     /**
@@ -843,7 +843,7 @@  discard block
 block discarded – undo
843 843
      * @return int
844 844
      */
845 845
     public function get_total_payments() {
846
-		return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() );
846
+        return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() );
847 847
     }
848 848
 
849 849
     /**
@@ -867,187 +867,187 @@  discard block
 block discarded – undo
867 867
      *
868 868
      * @since  2.4
869 869
      * @param  array $args Array of values for the payment, including amount and transaction ID
870
-	 * @param  WPInv_Invoice $invoice If adding an existing invoice.
870
+     * @param  WPInv_Invoice $invoice If adding an existing invoice.
871 871
      * @return bool
872 872
      */
873 873
     public function add_payment( $args = array(), $invoice = false ) {
874 874
 
875
-		// Process each payment once.
875
+        // Process each payment once.
876 876
         if ( ! empty( $args['transaction_id'] ) && $this->payment_exists( $args['transaction_id'] ) ) {
877 877
             return false;
878 878
         }
879 879
 
880
-		// Are we creating a new invoice?
881
-		if ( empty( $invoice ) ) {
882
-			$invoice = $this->create_payment( false );
880
+        // Are we creating a new invoice?
881
+        if ( empty( $invoice ) ) {
882
+            $invoice = $this->create_payment( false );
883 883
 
884
-			if ( empty( $invoice ) ) {
885
-				return false;
886
-			}
887
-		}
884
+            if ( empty( $invoice ) ) {
885
+                return false;
886
+            }
887
+        }
888 888
 
889
-		// Maybe set a transaction id.
890
-		if ( ! empty( $args['transaction_id'] ) ) {
891
-			$invoice->set_transaction_id( $args['transaction_id'] );
892
-		}
889
+        // Maybe set a transaction id.
890
+        if ( ! empty( $args['transaction_id'] ) ) {
891
+            $invoice->set_transaction_id( $args['transaction_id'] );
892
+        }
893 893
 
894
-		// Set the completed date.
895
-		$invoice->set_completed_date( current_time( 'mysql' ) );
894
+        // Set the completed date.
895
+        $invoice->set_completed_date( current_time( 'mysql' ) );
896 896
 
897
-		// And the gateway.
898
-		if ( ! empty( $args['gateway'] ) ) {
899
-			$invoice->set_gateway( $args['gateway'] );
900
-		}
897
+        // And the gateway.
898
+        if ( ! empty( $args['gateway'] ) ) {
899
+            $invoice->set_gateway( $args['gateway'] );
900
+        }
901 901
 
902
-		$invoice->set_status( 'wpi-renewal' );
903
-		$invoice->save();
902
+        $invoice->set_status( 'wpi-renewal' );
903
+        $invoice->save();
904 904
 
905
-		if ( ! $invoice->exists() ) {
906
-			return false;
907
-		}
905
+        if ( ! $invoice->exists() ) {
906
+            return false;
907
+        }
908 908
 
909
-		do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this );
910
-		do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this );
909
+        do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this );
910
+        do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this );
911 911
         do_action( 'wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id() );
912 912
 
913 913
         update_post_meta( $invoice->get_id(), '_wpinv_subscription_id', $this->id );
914 914
 
915 915
         return $invoice->get_id();
916
-	}
916
+    }
917 917
 
918
-	/**
918
+    /**
919 919
      * Creates a new invoice and returns it.
920 920
      *
921 921
      * @since  1.0.19
922
-	 * @param bool $save Whether we should save the invoice.
922
+     * @param bool $save Whether we should save the invoice.
923 923
      * @return WPInv_Invoice|bool
924 924
      */
925 925
     public function create_payment( $save = true ) {
926 926
 
927
-		$parent_invoice = $this->get_parent_payment();
928
-
929
-		if ( ! $parent_invoice->exists() ) {
930
-			return false;
931
-		}
932
-
933
-		// Duplicate the parent invoice.
934
-		$invoice = getpaid_duplicate_invoice( $parent_invoice );
935
-		$invoice->set_parent_id( $parent_invoice->get_id() );
936
-		$invoice->set_subscription_id( $this->get_id() );
937
-		$invoice->set_remote_subscription_id( $this->get_profile_id() );
938
-
939
-		// Set invoice items.
940
-		$subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() );
941
-		$allowed_items      = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] );
942
-		$invoice_items      = array();
943
-
944
-		foreach ( $invoice->get_items() as $item ) {
945
-			if ( in_array( $item->get_id(), $allowed_items ) ) {
946
-				$invoice_items[] = $item;
947
-			}
948
-		}
949
-
950
-		$invoice->set_items( $invoice_items );
951
-
952
-		if ( ! empty( $subscription_group['fees'] ) ) {
953
-			$invoice->set_fees( $subscription_group['fees'] );
954
-		}
955
-
956
-		// Maybe recalculate discount (Pre-GetPaid Fix).
957
-		$discount = new WPInv_Discount( $invoice->get_discount_code() );
958
-		if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) {
959
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
960
-		}
961
-
962
-		$invoice->recalculate_total();
963
-		$invoice->set_status( 'wpi-pending' );
964
-
965
-		if ( ! $save ) {
966
-			return $invoice;
967
-		}
968
-
969
-		$invoice->save();
970
-
971
-		return $invoice->exists() ? $invoice : false;
972
-    }
973
-
974
-	/**
975
-	 * Renews or completes a subscription
976
-	 *
977
-	 * @since  1.0.0
978
-	 * @return int The subscription's id
979
-	 */
980
-	public function renew( $calculate_from = null ) {
981
-
982
-		// Complete subscription if applicable
983
-		if ( $this->is_last_renewal() ) {
984
-			return $this->complete();
985
-		}
986
-
987
-		// Calculate new expiration
988
-		$frequency      = $this->get_frequency();
989
-		$period         = $this->get_period();
990
-		$calculate_from = empty( $calculate_from ) ? $this->get_expiration_time() : $calculate_from;
991
-		$new_expiration = strtotime( "+ $frequency $period", $calculate_from );
992
-
993
-		$this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) );
994
-		$this->set_status( 'active' );
995
-		$this->save();
996
-
997
-		do_action( 'getpaid_subscription_renewed', $this );
998
-
999
-		return $this->get_id();
1000
-	}
1001
-
1002
-	/**
1003
-	 * Marks a subscription as completed
1004
-	 *
1005
-	 * Subscription is completed when the number of payments matches the billing_times field
1006
-	 *
1007
-	 * @since  1.0.0
1008
-	 * @return int|bool Subscription id or false if the subscription is cancelled.
1009
-	 */
1010
-	public function complete() {
1011
-
1012
-		// Only mark a subscription as complete if it's not already cancelled.
1013
-		if ( $this->has_status( 'cancelled' ) ) {
1014
-			return false;
1015
-		}
1016
-
1017
-		$this->set_status( 'completed' );
1018
-		return $this->save();
1019
-
1020
-	}
1021
-
1022
-	/**
1023
-	 * Marks a subscription as expired
1024
-	 *
1025
-	 * @since  1.0.0
1026
-	 * @param  bool $check_expiration
1027
-	 * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future.
1028
-	 */
1029
-	public function expire( $check_expiration = false ) {
1030
-
1031
-		if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) {
1032
-			// Do not mark as expired since real expiration date is in the future
1033
-			return false;
1034
-		}
1035
-
1036
-		$this->set_status( 'expired' );
1037
-		return $this->save();
1038
-
1039
-	}
1040
-
1041
-	/**
1042
-	 * Marks a subscription as failing
1043
-	 *
1044
-	 * @since  2.4.2
1045
-	 * @return int Subscription id.
1046
-	 */
1047
-	public function failing() {
1048
-		$this->set_status( 'failing' );
1049
-		return $this->save();
1050
-	}
927
+        $parent_invoice = $this->get_parent_payment();
928
+
929
+        if ( ! $parent_invoice->exists() ) {
930
+            return false;
931
+        }
932
+
933
+        // Duplicate the parent invoice.
934
+        $invoice = getpaid_duplicate_invoice( $parent_invoice );
935
+        $invoice->set_parent_id( $parent_invoice->get_id() );
936
+        $invoice->set_subscription_id( $this->get_id() );
937
+        $invoice->set_remote_subscription_id( $this->get_profile_id() );
938
+
939
+        // Set invoice items.
940
+        $subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() );
941
+        $allowed_items      = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] );
942
+        $invoice_items      = array();
943
+
944
+        foreach ( $invoice->get_items() as $item ) {
945
+            if ( in_array( $item->get_id(), $allowed_items ) ) {
946
+                $invoice_items[] = $item;
947
+            }
948
+        }
949
+
950
+        $invoice->set_items( $invoice_items );
951
+
952
+        if ( ! empty( $subscription_group['fees'] ) ) {
953
+            $invoice->set_fees( $subscription_group['fees'] );
954
+        }
955
+
956
+        // Maybe recalculate discount (Pre-GetPaid Fix).
957
+        $discount = new WPInv_Discount( $invoice->get_discount_code() );
958
+        if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) {
959
+            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
960
+        }
961
+
962
+        $invoice->recalculate_total();
963
+        $invoice->set_status( 'wpi-pending' );
964
+
965
+        if ( ! $save ) {
966
+            return $invoice;
967
+        }
968
+
969
+        $invoice->save();
970
+
971
+        return $invoice->exists() ? $invoice : false;
972
+    }
973
+
974
+    /**
975
+     * Renews or completes a subscription
976
+     *
977
+     * @since  1.0.0
978
+     * @return int The subscription's id
979
+     */
980
+    public function renew( $calculate_from = null ) {
981
+
982
+        // Complete subscription if applicable
983
+        if ( $this->is_last_renewal() ) {
984
+            return $this->complete();
985
+        }
986
+
987
+        // Calculate new expiration
988
+        $frequency      = $this->get_frequency();
989
+        $period         = $this->get_period();
990
+        $calculate_from = empty( $calculate_from ) ? $this->get_expiration_time() : $calculate_from;
991
+        $new_expiration = strtotime( "+ $frequency $period", $calculate_from );
992
+
993
+        $this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) );
994
+        $this->set_status( 'active' );
995
+        $this->save();
996
+
997
+        do_action( 'getpaid_subscription_renewed', $this );
998
+
999
+        return $this->get_id();
1000
+    }
1001
+
1002
+    /**
1003
+     * Marks a subscription as completed
1004
+     *
1005
+     * Subscription is completed when the number of payments matches the billing_times field
1006
+     *
1007
+     * @since  1.0.0
1008
+     * @return int|bool Subscription id or false if the subscription is cancelled.
1009
+     */
1010
+    public function complete() {
1011
+
1012
+        // Only mark a subscription as complete if it's not already cancelled.
1013
+        if ( $this->has_status( 'cancelled' ) ) {
1014
+            return false;
1015
+        }
1016
+
1017
+        $this->set_status( 'completed' );
1018
+        return $this->save();
1019
+
1020
+    }
1021
+
1022
+    /**
1023
+     * Marks a subscription as expired
1024
+     *
1025
+     * @since  1.0.0
1026
+     * @param  bool $check_expiration
1027
+     * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future.
1028
+     */
1029
+    public function expire( $check_expiration = false ) {
1030
+
1031
+        if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) {
1032
+            // Do not mark as expired since real expiration date is in the future
1033
+            return false;
1034
+        }
1035
+
1036
+        $this->set_status( 'expired' );
1037
+        return $this->save();
1038
+
1039
+    }
1040
+
1041
+    /**
1042
+     * Marks a subscription as failing
1043
+     *
1044
+     * @since  2.4.2
1045
+     * @return int Subscription id.
1046
+     */
1047
+    public function failing() {
1048
+        $this->set_status( 'failing' );
1049
+        return $this->save();
1050
+    }
1051 1051
 
1052 1052
     /**
1053 1053
      * Marks a subscription as cancelled
@@ -1056,19 +1056,19 @@  discard block
 block discarded – undo
1056 1056
      * @return int Subscription id.
1057 1057
      */
1058 1058
     public function cancel() {
1059
-		$this->set_status( 'cancelled' );
1060
-		return $this->save();
1059
+        $this->set_status( 'cancelled' );
1060
+        return $this->save();
1061 1061
     }
1062 1062
 
1063
-	/**
1064
-	 * Determines if a subscription can be cancelled both locally and with a payment processor.
1065
-	 *
1066
-	 * @since  1.0.0
1067
-	 * @return bool
1068
-	 */
1069
-	public function can_cancel() {
1070
-		return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this );
1071
-	}
1063
+    /**
1064
+     * Determines if a subscription can be cancelled both locally and with a payment processor.
1065
+     *
1066
+     * @since  1.0.0
1067
+     * @return bool
1068
+     */
1069
+    public function can_cancel() {
1070
+        return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this );
1071
+    }
1072 1072
 
1073 1073
     /**
1074 1074
      * Returns an array of subscription statuses that can be cancelled
@@ -1081,109 +1081,109 @@  discard block
 block discarded – undo
1081 1081
         return apply_filters( 'wpinv_recurring_cancellable_statuses', array( 'active', 'trialling', 'failing' ) );
1082 1082
     }
1083 1083
 
1084
-	/**
1085
-	 * Retrieves the URL to cancel subscription
1086
-	 *
1087
-	 * @since  1.0.0
1088
-	 * @return string
1089
-	 */
1090
-	public function get_cancel_url() {
1091
-		$url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() );
1092
-		return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
1093
-	}
1094
-
1095
-	/**
1096
-	 * Retrieves the URL to view a subscription
1097
-	 *
1098
-	 * @since  1.0.19
1099
-	 * @return string
1100
-	 */
1101
-	public function get_view_url() {
1102
-
1103
-		$url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
1104
-		$url = add_query_arg( 'subscription', $this->get_id(), $url );
1105
-
1106
-		return apply_filters( 'getpaid_get_subscription_view_url', $url, $this );
1107
-	}
1108
-
1109
-	/**
1110
-	 * Determines if subscription can be manually renewed
1111
-	 *
1112
-	 * This method is filtered by payment gateways in order to return true on subscriptions
1113
-	 * that can be renewed manually
1114
-	 *
1115
-	 * @since  2.5
1116
-	 * @return bool
1117
-	 */
1118
-	public function can_renew() {
1119
-		return apply_filters( 'wpinv_subscription_can_renew', true, $this );
1120
-	}
1121
-
1122
-	/**
1123
-	 * Retrieves the URL to renew a subscription
1124
-	 *
1125
-	 * @since  2.5
1126
-	 * @return string
1127
-	 */
1128
-	public function get_renew_url() {
1129
-		$url = wp_nonce_url(
1084
+    /**
1085
+     * Retrieves the URL to cancel subscription
1086
+     *
1087
+     * @since  1.0.0
1088
+     * @return string
1089
+     */
1090
+    public function get_cancel_url() {
1091
+        $url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() );
1092
+        return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
1093
+    }
1094
+
1095
+    /**
1096
+     * Retrieves the URL to view a subscription
1097
+     *
1098
+     * @since  1.0.19
1099
+     * @return string
1100
+     */
1101
+    public function get_view_url() {
1102
+
1103
+        $url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
1104
+        $url = add_query_arg( 'subscription', $this->get_id(), $url );
1105
+
1106
+        return apply_filters( 'getpaid_get_subscription_view_url', $url, $this );
1107
+    }
1108
+
1109
+    /**
1110
+     * Determines if subscription can be manually renewed
1111
+     *
1112
+     * This method is filtered by payment gateways in order to return true on subscriptions
1113
+     * that can be renewed manually
1114
+     *
1115
+     * @since  2.5
1116
+     * @return bool
1117
+     */
1118
+    public function can_renew() {
1119
+        return apply_filters( 'wpinv_subscription_can_renew', true, $this );
1120
+    }
1121
+
1122
+    /**
1123
+     * Retrieves the URL to renew a subscription
1124
+     *
1125
+     * @since  2.5
1126
+     * @return string
1127
+     */
1128
+    public function get_renew_url() {
1129
+        $url = wp_nonce_url(
1130 1130
             add_query_arg(
1131 1131
                 array(
1132
-					'getpaid-action' => 'renew_subscription',
1133
-					'sub_id'         => $this->get_id,
1132
+                    'getpaid-action' => 'renew_subscription',
1133
+                    'sub_id'         => $this->get_id,
1134 1134
                 )
1135 1135
             ),
1136 1136
             'getpaid-nonce'
1137 1137
         );
1138
-		return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
1139
-	}
1140
-
1141
-	/**
1142
-	 * Determines if subscription can have their payment method updated
1143
-	 *
1144
-	 * @since  1.0.0
1145
-	 * @return bool
1146
-	 */
1147
-	public function can_update() {
1148
-		return apply_filters( 'wpinv_subscription_can_update', false, $this );
1149
-	}
1150
-
1151
-	/**
1152
-	 * Retrieves the URL to update subscription
1153
-	 *
1154
-	 * @since  1.0.0
1155
-	 * @return string
1156
-	 */
1157
-	public function get_update_url() {
1158
-		$url = add_query_arg(
1138
+        return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
1139
+    }
1140
+
1141
+    /**
1142
+     * Determines if subscription can have their payment method updated
1143
+     *
1144
+     * @since  1.0.0
1145
+     * @return bool
1146
+     */
1147
+    public function can_update() {
1148
+        return apply_filters( 'wpinv_subscription_can_update', false, $this );
1149
+    }
1150
+
1151
+    /**
1152
+     * Retrieves the URL to update subscription
1153
+     *
1154
+     * @since  1.0.0
1155
+     * @return string
1156
+     */
1157
+    public function get_update_url() {
1158
+        $url = add_query_arg(
1159 1159
             array(
1160
-				'action'          => 'update',
1161
-				'subscription_id' => $this->get_id(),
1160
+                'action'          => 'update',
1161
+                'subscription_id' => $this->get_id(),
1162 1162
             )
1163 1163
         );
1164
-		return apply_filters( 'wpinv_subscription_update_url', $url, $this );
1165
-	}
1166
-
1167
-	/**
1168
-	 * Retrieves the subscription status label
1169
-	 *
1170
-	 * @since  1.0.0
1171
-	 * @return string
1172
-	 */
1173
-	public function get_status_label() {
1174
-		return getpaid_get_subscription_status_label( $this->get_status() );
1175
-	}
1176
-
1177
-	/**
1178
-	 * Retrieves the subscription status class
1179
-	 *
1180
-	 * @since  1.0.19
1181
-	 * @return string
1182
-	 */
1183
-	public function get_status_class() {
1184
-		$statuses = getpaid_get_subscription_status_classes();
1185
-		return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'badge-dark';
1186
-	}
1164
+        return apply_filters( 'wpinv_subscription_update_url', $url, $this );
1165
+    }
1166
+
1167
+    /**
1168
+     * Retrieves the subscription status label
1169
+     *
1170
+     * @since  1.0.0
1171
+     * @return string
1172
+     */
1173
+    public function get_status_label() {
1174
+        return getpaid_get_subscription_status_label( $this->get_status() );
1175
+    }
1176
+
1177
+    /**
1178
+     * Retrieves the subscription status class
1179
+     *
1180
+     * @since  1.0.19
1181
+     * @return string
1182
+     */
1183
+    public function get_status_class() {
1184
+        $statuses = getpaid_get_subscription_status_classes();
1185
+        return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'badge-dark';
1186
+    }
1187 1187
 
1188 1188
     /**
1189 1189
      * Retrieves the subscription status label
@@ -1193,11 +1193,11 @@  discard block
 block discarded – undo
1193 1193
      */
1194 1194
     public function get_status_label_html() {
1195 1195
 
1196
-		$status_label = sanitize_text_field( $this->get_status_label() );
1197
-		$class        = esc_attr( $this->get_status_class() );
1198
-		$status       = sanitize_html_class( $this->get_status() );
1196
+        $status_label = sanitize_text_field( $this->get_status_label() );
1197
+        $class        = esc_attr( $this->get_status_class() );
1198
+        $status       = sanitize_html_class( $this->get_status() );
1199 1199
 
1200
-		return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>";
1200
+        return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>";
1201 1201
     }
1202 1202
 
1203 1203
     /**
@@ -1208,75 +1208,75 @@  discard block
 block discarded – undo
1208 1208
      * @return bool
1209 1209
      */
1210 1210
     public function payment_exists( $txn_id = '' ) {
1211
-		$invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' );
1211
+        $invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' );
1212 1212
         return ! empty( $invoice_id );
1213
-	}
1214
-
1215
-	/**
1216
-	 * Handle the status transition.
1217
-	 */
1218
-	protected function status_transition() {
1219
-		$status_transition = $this->status_transition;
1220
-
1221
-		// Reset status transition variable.
1222
-		$this->status_transition = false;
1223
-
1224
-		if ( $status_transition ) {
1225
-			try {
1226
-
1227
-				// Fire a hook for the status change.
1228
-				do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition );
1229
-				do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition );
1230
-
1231
-				if ( ! empty( $status_transition['from'] ) ) {
1232
-
1233
-					/* translators: 1: old subscription status 2: new subscription status */
1234
-					$transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1235
-
1236
-					// Note the transition occurred.
1237
-					$this->get_parent_payment()->add_note( $transition_note, false, false, true );
1238
-
1239
-					// Fire another hook.
1240
-					do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this );
1241
-					do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] );
1242
-
1243
-				} else {
1244
-					/* translators: %s: new invoice status */
1245
-					$transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1246
-
1247
-					// Note the transition occurred.
1248
-					$this->get_parent_payment()->add_note( $transition_note, false, false, true );
1249
-
1250
-				}
1251
-			} catch ( Exception $e ) {
1252
-				$this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() );
1253
-			}
1254
-		}
1255
-
1256
-	}
1257
-
1258
-	/**
1259
-	 * Save data to the database.
1260
-	 *
1261
-	 * @since 1.0.19
1262
-	 * @return int subscription ID
1263
-	 */
1264
-	public function save() {
1265
-		parent::save();
1266
-		$this->status_transition();
1267
-		return $this->get_id();
1268
-	}
1269
-
1270
-	/**
1271
-	 * Activates a subscription.
1272
-	 *
1273
-	 * @since 1.0.19
1274
-	 * @return int subscription ID
1275
-	 */
1276
-	public function activate() {
1277
-		$status = $this->has_trial_period() && 'trialling' === $this->get_status() ? 'trialling' : 'active';
1278
-		$this->set_status( $status );
1279
-		return $this->save();
1280
-	}
1213
+    }
1214
+
1215
+    /**
1216
+     * Handle the status transition.
1217
+     */
1218
+    protected function status_transition() {
1219
+        $status_transition = $this->status_transition;
1220
+
1221
+        // Reset status transition variable.
1222
+        $this->status_transition = false;
1223
+
1224
+        if ( $status_transition ) {
1225
+            try {
1226
+
1227
+                // Fire a hook for the status change.
1228
+                do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition );
1229
+                do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition );
1230
+
1231
+                if ( ! empty( $status_transition['from'] ) ) {
1232
+
1233
+                    /* translators: 1: old subscription status 2: new subscription status */
1234
+                    $transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1235
+
1236
+                    // Note the transition occurred.
1237
+                    $this->get_parent_payment()->add_note( $transition_note, false, false, true );
1238
+
1239
+                    // Fire another hook.
1240
+                    do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this );
1241
+                    do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] );
1242
+
1243
+                } else {
1244
+                    /* translators: %s: new invoice status */
1245
+                    $transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1246
+
1247
+                    // Note the transition occurred.
1248
+                    $this->get_parent_payment()->add_note( $transition_note, false, false, true );
1249
+
1250
+                }
1251
+            } catch ( Exception $e ) {
1252
+                $this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() );
1253
+            }
1254
+        }
1255
+
1256
+    }
1257
+
1258
+    /**
1259
+     * Save data to the database.
1260
+     *
1261
+     * @since 1.0.19
1262
+     * @return int subscription ID
1263
+     */
1264
+    public function save() {
1265
+        parent::save();
1266
+        $this->status_transition();
1267
+        return $this->get_id();
1268
+    }
1269
+
1270
+    /**
1271
+     * Activates a subscription.
1272
+     *
1273
+     * @since 1.0.19
1274
+     * @return int subscription ID
1275
+     */
1276
+    public function activate() {
1277
+        $status = $this->has_trial_period() && 'trialling' === $this->get_status() ? 'trialling' : 'active';
1278
+        $this->set_status( $status );
1279
+        return $this->save();
1280
+    }
1281 1281
 
1282 1282
 }
Please login to merge, or discard this patch.
Spacing   +232 added lines, -232 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @package Invoicing
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * The Subscription Class
@@ -68,27 +68,27 @@  discard block
 block discarded – undo
68 68
 	 * @param  int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read.
69 69
 	 * @param  bool $deprecated
70 70
 	 */
71
-	function __construct( $subscription = 0, $deprecated = false ) {
71
+	function __construct($subscription = 0, $deprecated = false) {
72 72
 
73
-		parent::__construct( $subscription );
73
+		parent::__construct($subscription);
74 74
 
75
-		if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) {
76
-			$this->set_id( $subscription );
77
-		} elseif ( $subscription instanceof self ) {
78
-			$this->set_id( $subscription->get_id() );
79
-		} elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) {
80
-			$this->set_id( $subscription_id );
81
-		} elseif ( ! empty( $subscription->id ) ) {
82
-			$this->set_id( $subscription->id );
75
+		if (!$deprecated && !empty($subscription) && is_numeric($subscription)) {
76
+			$this->set_id($subscription);
77
+		} elseif ($subscription instanceof self) {
78
+			$this->set_id($subscription->get_id());
79
+		} elseif ($deprecated && $subscription_id = self::get_subscription_id_by_field($subscription, 'profile_id')) {
80
+			$this->set_id($subscription_id);
81
+		} elseif (!empty($subscription->id)) {
82
+			$this->set_id($subscription->id);
83 83
 		} else {
84
-			$this->set_object_read( true );
84
+			$this->set_object_read(true);
85 85
 		}
86 86
 
87 87
 		// Load the datastore.
88
-		$this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
88
+		$this->data_store = GetPaid_Data_Store::load($this->data_store_name);
89 89
 
90
-		if ( $this->get_id() > 0 ) {
91
-			$this->data_store->read( $this );
90
+		if ($this->get_id() > 0) {
91
+			$this->data_store->read($this);
92 92
 		}
93 93
 
94 94
 	}
@@ -103,17 +103,17 @@  discard block
 block discarded – undo
103 103
 	 * @since 1.0.19
104 104
 	 * @return int
105 105
 	 */
106
-	public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) {
106
+	public static function get_subscription_id_by_field($value, $field = 'profile_id') {
107 107
         global $wpdb;
108 108
 
109 109
 		// Trim the value.
110
-		$value = trim( $value );
110
+		$value = trim($value);
111 111
 
112
-		if ( empty( $value ) ) {
112
+		if (empty($value)) {
113 113
 			return 0;
114 114
 		}
115 115
 
116
-		if ( 'invoice_id' == $field ) {
116
+		if ('invoice_id' == $field) {
117 117
 			$field = 'parent_payment_id';
118 118
 		}
119 119
 
@@ -125,28 +125,28 @@  discard block
 block discarded – undo
125 125
 		);
126 126
 
127 127
 		// Ensure a field has been passed.
128
-		if ( empty( $field ) || ! in_array( $field, $fields ) ) {
128
+		if (empty($field) || !in_array($field, $fields)) {
129 129
 			return 0;
130 130
 		}
131 131
 
132 132
 		// Maybe retrieve from the cache.
133
-		$subscription_id   = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" );
134
-		if ( ! empty( $subscription_id ) ) {
133
+		$subscription_id = wp_cache_get($value, "getpaid_subscription_{$field}s_to_subscription_ids");
134
+		if (!empty($subscription_id)) {
135 135
 			return $subscription_id;
136 136
 		}
137 137
 
138 138
         // Fetch from the db.
139 139
         $table            = $wpdb->prefix . 'wpinv_subscriptions';
140 140
         $subscription_id  = (int) $wpdb->get_var(
141
-            $wpdb->prepare( "SELECT `id` FROM $table WHERE `$field`=%s LIMIT 1", $value )
141
+            $wpdb->prepare("SELECT `id` FROM $table WHERE `$field`=%s LIMIT 1", $value)
142 142
         );
143 143
 
144
-		if ( empty( $subscription_id ) ) {
144
+		if (empty($subscription_id)) {
145 145
 			return 0;
146 146
 		}
147 147
 
148 148
 		// Update the cache with our data.
149
-		wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" );
149
+		wp_cache_set($value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids");
150 150
 
151 151
 		return $subscription_id;
152 152
 	}
@@ -162,9 +162,9 @@  discard block
 block discarded – undo
162 162
 			'getpaid_subscriptions'                                       => $this->get_id(),
163 163
 		);
164 164
 
165
-		foreach ( $caches as $cache => $value ) {
166
-			if ( '' !== $value && false !== $value ) {
167
-				wp_cache_delete( $value, $cache );
165
+		foreach ($caches as $cache => $value) {
166
+			if ('' !== $value && false !== $value) {
167
+				wp_cache_delete($value, $cache);
168 168
 			}
169 169
 		}
170 170
 	}
@@ -172,8 +172,8 @@  discard block
 block discarded – undo
172 172
 	/**
173 173
      * Checks if a subscription key is set.
174 174
      */
175
-    public function _isset( $key ) {
176
-        return isset( $this->data[ $key ] ) || method_exists( $this, "get_$key" );
175
+    public function _isset($key) {
176
+        return isset($this->data[$key]) || method_exists($this, "get_$key");
177 177
 	}
178 178
 
179 179
 	/*
@@ -198,8 +198,8 @@  discard block
 block discarded – undo
198 198
 	 * @param  string $context View or edit context.
199 199
 	 * @return int
200 200
 	 */
201
-	public function get_customer_id( $context = 'view' ) {
202
-		return (int) $this->get_prop( 'customer_id', $context );
201
+	public function get_customer_id($context = 'view') {
202
+		return (int) $this->get_prop('customer_id', $context);
203 203
 	}
204 204
 
205 205
 	/**
@@ -209,8 +209,8 @@  discard block
 block discarded – undo
209 209
 	 * @param  string $context View or edit context.
210 210
 	 * @return WP_User|false WP_User object on success, false on failure.
211 211
 	 */
212
-	public function get_customer( $context = 'view' ) {
213
-		return get_userdata( $this->get_customer_id( $context ) );
212
+	public function get_customer($context = 'view') {
213
+		return get_userdata($this->get_customer_id($context));
214 214
 	}
215 215
 
216 216
 	/**
@@ -220,8 +220,8 @@  discard block
 block discarded – undo
220 220
 	 * @param  string $context View or edit context.
221 221
 	 * @return int
222 222
 	 */
223
-	public function get_parent_invoice_id( $context = 'view' ) {
224
-		return (int) $this->get_prop( 'parent_payment_id', $context );
223
+	public function get_parent_invoice_id($context = 'view') {
224
+		return (int) $this->get_prop('parent_payment_id', $context);
225 225
 	}
226 226
 
227 227
 	/**
@@ -231,8 +231,8 @@  discard block
 block discarded – undo
231 231
 	 * @param  string $context View or edit context.
232 232
 	 * @return int
233 233
 	 */
234
-    public function get_parent_payment_id( $context = 'view' ) {
235
-        return $this->get_parent_invoice_id( $context );
234
+    public function get_parent_payment_id($context = 'view') {
235
+        return $this->get_parent_invoice_id($context);
236 236
 	}
237 237
 
238 238
 	/**
@@ -241,8 +241,8 @@  discard block
 block discarded – undo
241 241
      * @since  1.0.0
242 242
      * @return int
243 243
      */
244
-    public function get_original_payment_id( $context = 'view' ) {
245
-        return $this->get_parent_invoice_id( $context );
244
+    public function get_original_payment_id($context = 'view') {
245
+        return $this->get_parent_invoice_id($context);
246 246
     }
247 247
 
248 248
 	/**
@@ -252,8 +252,8 @@  discard block
 block discarded – undo
252 252
 	 * @param  string $context View or edit context.
253 253
 	 * @return WPInv_Invoice
254 254
 	 */
255
-	public function get_parent_invoice( $context = 'view' ) {
256
-		return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) );
255
+	public function get_parent_invoice($context = 'view') {
256
+		return new WPInv_Invoice($this->get_parent_invoice_id($context));
257 257
 	}
258 258
 
259 259
 	/**
@@ -263,8 +263,8 @@  discard block
 block discarded – undo
263 263
 	 * @param  string $context View or edit context.
264 264
 	 * @return WPInv_Invoice
265 265
 	 */
266
-    public function get_parent_payment( $context = 'view' ) {
267
-        return $this->get_parent_invoice( $context );
266
+    public function get_parent_payment($context = 'view') {
267
+        return $this->get_parent_invoice($context);
268 268
 	}
269 269
 
270 270
 	/**
@@ -274,8 +274,8 @@  discard block
 block discarded – undo
274 274
 	 * @param  string $context View or edit context.
275 275
 	 * @return int
276 276
 	 */
277
-	public function get_product_id( $context = 'view' ) {
278
-		return (int) $this->get_prop( 'product_id', $context );
277
+	public function get_product_id($context = 'view') {
278
+		return (int) $this->get_prop('product_id', $context);
279 279
 	}
280 280
 
281 281
 	/**
@@ -285,8 +285,8 @@  discard block
 block discarded – undo
285 285
 	 * @param  string $context View or edit context.
286 286
 	 * @return WPInv_Item
287 287
 	 */
288
-	public function get_product( $context = 'view' ) {
289
-		return new WPInv_Item( $this->get_product_id( $context ) );
288
+	public function get_product($context = 'view') {
289
+		return new WPInv_Item($this->get_product_id($context));
290 290
 	}
291 291
 
292 292
 	/**
@@ -298,8 +298,8 @@  discard block
 block discarded – undo
298 298
 	 * @param  string $context View or edit context.
299 299
 	 * @return string
300 300
 	 */
301
-	public function get_gateway( $context = 'view' ) {
302
-		return $this->get_parent_invoice( $context )->get_gateway();
301
+	public function get_gateway($context = 'view') {
302
+		return $this->get_parent_invoice($context)->get_gateway();
303 303
 	}
304 304
 
305 305
 	/**
@@ -309,8 +309,8 @@  discard block
 block discarded – undo
309 309
 	 * @param  string $context View or edit context.
310 310
 	 * @return string
311 311
 	 */
312
-	public function get_period( $context = 'view' ) {
313
-		return $this->get_prop( 'period', $context );
312
+	public function get_period($context = 'view') {
313
+		return $this->get_prop('period', $context);
314 314
 	}
315 315
 
316 316
 	/**
@@ -320,8 +320,8 @@  discard block
 block discarded – undo
320 320
 	 * @param  string $context View or edit context.
321 321
 	 * @return int
322 322
 	 */
323
-	public function get_frequency( $context = 'view' ) {
324
-		return (int) $this->get_prop( 'frequency', $context );
323
+	public function get_frequency($context = 'view') {
324
+		return (int) $this->get_prop('frequency', $context);
325 325
 	}
326 326
 
327 327
 	/**
@@ -331,8 +331,8 @@  discard block
 block discarded – undo
331 331
 	 * @param  string $context View or edit context.
332 332
 	 * @return float
333 333
 	 */
334
-	public function get_initial_amount( $context = 'view' ) {
335
-		return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) );
334
+	public function get_initial_amount($context = 'view') {
335
+		return (float) wpinv_sanitize_amount($this->get_prop('initial_amount', $context));
336 336
 	}
337 337
 
338 338
 	/**
@@ -342,8 +342,8 @@  discard block
 block discarded – undo
342 342
 	 * @param  string $context View or edit context.
343 343
 	 * @return float
344 344
 	 */
345
-	public function get_recurring_amount( $context = 'view' ) {
346
-		return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) );
345
+	public function get_recurring_amount($context = 'view') {
346
+		return (float) wpinv_sanitize_amount($this->get_prop('recurring_amount', $context));
347 347
 	}
348 348
 
349 349
 	/**
@@ -353,8 +353,8 @@  discard block
 block discarded – undo
353 353
 	 * @param  string $context View or edit context.
354 354
 	 * @return int
355 355
 	 */
356
-	public function get_bill_times( $context = 'view' ) {
357
-		return (int) $this->get_prop( 'bill_times', $context );
356
+	public function get_bill_times($context = 'view') {
357
+		return (int) $this->get_prop('bill_times', $context);
358 358
 	}
359 359
 
360 360
 	/**
@@ -364,8 +364,8 @@  discard block
 block discarded – undo
364 364
 	 * @param  string $context View or edit context.
365 365
 	 * @return string
366 366
 	 */
367
-	public function get_transaction_id( $context = 'view' ) {
368
-		return $this->get_prop( 'transaction_id', $context );
367
+	public function get_transaction_id($context = 'view') {
368
+		return $this->get_prop('transaction_id', $context);
369 369
 	}
370 370
 
371 371
 	/**
@@ -375,8 +375,8 @@  discard block
 block discarded – undo
375 375
 	 * @param  string $context View or edit context.
376 376
 	 * @return string
377 377
 	 */
378
-	public function get_created( $context = 'view' ) {
379
-		return $this->get_prop( 'created', $context );
378
+	public function get_created($context = 'view') {
379
+		return $this->get_prop('created', $context);
380 380
 	}
381 381
 
382 382
 	/**
@@ -386,8 +386,8 @@  discard block
 block discarded – undo
386 386
 	 * @param  string $context View or edit context.
387 387
 	 * @return string
388 388
 	 */
389
-	public function get_date_created( $context = 'view' ) {
390
-		return $this->get_created( $context );
389
+	public function get_date_created($context = 'view') {
390
+		return $this->get_created($context);
391 391
 	}
392 392
 
393 393
 	/**
@@ -398,7 +398,7 @@  discard block
 block discarded – undo
398 398
 	 */
399 399
 	public function get_time_created() {
400 400
 		$created = $this->get_date_created();
401
-		return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) );
401
+		return empty($created) ? current_time('timestamp') : strtotime($created, current_time('timestamp'));
402 402
 	}
403 403
 
404 404
 	/**
@@ -408,11 +408,11 @@  discard block
 block discarded – undo
408 408
 	 * @param  string $context View or edit context.
409 409
 	 * @return string
410 410
 	 */
411
-	public function get_date_created_gmt( $context = 'view' ) {
412
-        $date = $this->get_date_created( $context );
411
+	public function get_date_created_gmt($context = 'view') {
412
+        $date = $this->get_date_created($context);
413 413
 
414
-        if ( $date ) {
415
-            $date = get_gmt_from_date( $date );
414
+        if ($date) {
415
+            $date = get_gmt_from_date($date);
416 416
         }
417 417
 		return $date;
418 418
 	}
@@ -424,8 +424,8 @@  discard block
 block discarded – undo
424 424
 	 * @param  string $context View or edit context.
425 425
 	 * @return string
426 426
 	 */
427
-	public function get_next_renewal_date( $context = 'view' ) {
428
-		return $this->get_prop( 'expiration', $context );
427
+	public function get_next_renewal_date($context = 'view') {
428
+		return $this->get_prop('expiration', $context);
429 429
 	}
430 430
 
431 431
 	/**
@@ -435,8 +435,8 @@  discard block
 block discarded – undo
435 435
 	 * @param  string $context View or edit context.
436 436
 	 * @return string
437 437
 	 */
438
-	public function get_expiration( $context = 'view' ) {
439
-		return $this->get_next_renewal_date( $context );
438
+	public function get_expiration($context = 'view') {
439
+		return $this->get_next_renewal_date($context);
440 440
 	}
441 441
 
442 442
 	/**
@@ -448,12 +448,12 @@  discard block
 block discarded – undo
448 448
 	public function get_expiration_time() {
449 449
 		$expiration = $this->get_expiration();
450 450
 
451
-		if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) {
452
-			return current_time( 'timestamp' );
451
+		if (empty($expiration) || '0000-00-00 00:00:00' == $expiration) {
452
+			return current_time('timestamp');
453 453
 		}
454 454
 
455
-		$expiration = strtotime( $expiration, current_time( 'timestamp' ) );
456
-		return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration;
455
+		$expiration = strtotime($expiration, current_time('timestamp'));
456
+		return $expiration < current_time('timestamp') ? current_time('timestamp') : $expiration;
457 457
 	}
458 458
 
459 459
 	/**
@@ -463,11 +463,11 @@  discard block
 block discarded – undo
463 463
 	 * @param  string $context View or edit context.
464 464
 	 * @return string
465 465
 	 */
466
-	public function get_next_renewal_date_gmt( $context = 'view' ) {
467
-        $date = $this->get_next_renewal_date( $context );
466
+	public function get_next_renewal_date_gmt($context = 'view') {
467
+        $date = $this->get_next_renewal_date($context);
468 468
 
469
-        if ( $date ) {
470
-            $date = get_gmt_from_date( $date );
469
+        if ($date) {
470
+            $date = get_gmt_from_date($date);
471 471
         }
472 472
 		return $date;
473 473
 	}
@@ -479,8 +479,8 @@  discard block
 block discarded – undo
479 479
 	 * @param  string $context View or edit context.
480 480
 	 * @return string
481 481
 	 */
482
-	public function get_trial_period( $context = 'view' ) {
483
-		return $this->get_prop( 'trial_period', $context );
482
+	public function get_trial_period($context = 'view') {
483
+		return $this->get_prop('trial_period', $context);
484 484
 	}
485 485
 
486 486
 	/**
@@ -490,8 +490,8 @@  discard block
 block discarded – undo
490 490
 	 * @param  string $context View or edit context.
491 491
 	 * @return string
492 492
 	 */
493
-	public function get_status( $context = 'view' ) {
494
-		return $this->get_prop( 'status', $context );
493
+	public function get_status($context = 'view') {
494
+		return $this->get_prop('status', $context);
495 495
 	}
496 496
 
497 497
 	/**
@@ -501,8 +501,8 @@  discard block
 block discarded – undo
501 501
 	 * @param  string $context View or edit context.
502 502
 	 * @return string
503 503
 	 */
504
-	public function get_profile_id( $context = 'view' ) {
505
-		return $this->get_prop( 'profile_id', $context );
504
+	public function get_profile_id($context = 'view') {
505
+		return $this->get_prop('profile_id', $context);
506 506
 	}
507 507
 
508 508
 	/*
@@ -517,8 +517,8 @@  discard block
 block discarded – undo
517 517
 	 * @since 1.0.19
518 518
 	 * @param  int $value The customer's id.
519 519
 	 */
520
-	public function set_customer_id( $value ) {
521
-		$this->set_prop( 'customer_id', (int) $value );
520
+	public function set_customer_id($value) {
521
+		$this->set_prop('customer_id', (int) $value);
522 522
 	}
523 523
 
524 524
 	/**
@@ -527,8 +527,8 @@  discard block
 block discarded – undo
527 527
 	 * @since 1.0.19
528 528
 	 * @param  int $value The parent invoice id.
529 529
 	 */
530
-	public function set_parent_invoice_id( $value ) {
531
-		$this->set_prop( 'parent_payment_id', (int) $value );
530
+	public function set_parent_invoice_id($value) {
531
+		$this->set_prop('parent_payment_id', (int) $value);
532 532
 	}
533 533
 
534 534
 	/**
@@ -537,8 +537,8 @@  discard block
 block discarded – undo
537 537
 	 * @since 1.0.19
538 538
 	 * @param  int $value The parent invoice id.
539 539
 	 */
540
-    public function set_parent_payment_id( $value ) {
541
-        $this->set_parent_invoice_id( $value );
540
+    public function set_parent_payment_id($value) {
541
+        $this->set_parent_invoice_id($value);
542 542
 	}
543 543
 
544 544
 	/**
@@ -547,8 +547,8 @@  discard block
 block discarded – undo
547 547
      * @since 1.0.19
548 548
 	 * @param  int $value The parent invoice id.
549 549
      */
550
-    public function set_original_payment_id( $value ) {
551
-        $this->set_parent_invoice_id( $value );
550
+    public function set_original_payment_id($value) {
551
+        $this->set_parent_invoice_id($value);
552 552
 	}
553 553
 
554 554
 	/**
@@ -557,8 +557,8 @@  discard block
 block discarded – undo
557 557
 	 * @since 1.0.19
558 558
 	 * @param  int $value The subscription product id.
559 559
 	 */
560
-	public function set_product_id( $value ) {
561
-		$this->set_prop( 'product_id', (int) $value );
560
+	public function set_product_id($value) {
561
+		$this->set_prop('product_id', (int) $value);
562 562
 	}
563 563
 
564 564
 	/**
@@ -567,8 +567,8 @@  discard block
 block discarded – undo
567 567
 	 * @since 1.0.19
568 568
 	 * @param  string $value The renewal period.
569 569
 	 */
570
-	public function set_period( $value ) {
571
-		$this->set_prop( 'period', $value );
570
+	public function set_period($value) {
571
+		$this->set_prop('period', $value);
572 572
 	}
573 573
 
574 574
 	/**
@@ -577,9 +577,9 @@  discard block
 block discarded – undo
577 577
 	 * @since 1.0.19
578 578
 	 * @param  int $value The subscription frequency.
579 579
 	 */
580
-	public function set_frequency( $value ) {
581
-		$value = empty( $value ) ? 1 : (int) $value;
582
-		$this->set_prop( 'frequency', absint( $value ) );
580
+	public function set_frequency($value) {
581
+		$value = empty($value) ? 1 : (int) $value;
582
+		$this->set_prop('frequency', absint($value));
583 583
 	}
584 584
 
585 585
 	/**
@@ -588,8 +588,8 @@  discard block
 block discarded – undo
588 588
 	 * @since 1.0.19
589 589
 	 * @param  float $value The initial subcription amount.
590 590
 	 */
591
-	public function set_initial_amount( $value ) {
592
-		$this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) );
591
+	public function set_initial_amount($value) {
592
+		$this->set_prop('initial_amount', wpinv_sanitize_amount($value));
593 593
 	}
594 594
 
595 595
 	/**
@@ -598,8 +598,8 @@  discard block
 block discarded – undo
598 598
 	 * @since 1.0.19
599 599
 	 * @param  float $value The recurring subcription amount.
600 600
 	 */
601
-	public function set_recurring_amount( $value ) {
602
-		$this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) );
601
+	public function set_recurring_amount($value) {
602
+		$this->set_prop('recurring_amount', wpinv_sanitize_amount($value));
603 603
 	}
604 604
 
605 605
 	/**
@@ -608,8 +608,8 @@  discard block
 block discarded – undo
608 608
 	 * @since 1.0.19
609 609
 	 * @param  int $value Bill times.
610 610
 	 */
611
-	public function set_bill_times( $value ) {
612
-		$this->set_prop( 'bill_times', (int) $value );
611
+	public function set_bill_times($value) {
612
+		$this->set_prop('bill_times', (int) $value);
613 613
 	}
614 614
 
615 615
 	/**
@@ -618,8 +618,8 @@  discard block
 block discarded – undo
618 618
 	 * @since 1.0.19
619 619
 	 * @param string $value Bill times.
620 620
 	 */
621
-	public function set_transaction_id( $value ) {
622
-		$this->set_prop( 'transaction_id', sanitize_text_field( $value ) );
621
+	public function set_transaction_id($value) {
622
+		$this->set_prop('transaction_id', sanitize_text_field($value));
623 623
 	}
624 624
 
625 625
 	/**
@@ -628,15 +628,15 @@  discard block
 block discarded – undo
628 628
 	 * @since 1.0.19
629 629
 	 * @param string $value strtotime compliant date.
630 630
 	 */
631
-	public function set_created( $value ) {
632
-        $date = strtotime( $value );
631
+	public function set_created($value) {
632
+        $date = strtotime($value);
633 633
 
634
-        if ( $date && $value !== '0000-00-00 00:00:00' ) {
635
-            $this->set_prop( 'created', date( 'Y-m-d H:i:s', $date ) );
634
+        if ($date && $value !== '0000-00-00 00:00:00') {
635
+            $this->set_prop('created', date('Y-m-d H:i:s', $date));
636 636
             return;
637 637
         }
638 638
 
639
-		$this->set_prop( 'created', '' );
639
+		$this->set_prop('created', '');
640 640
 
641 641
 	}
642 642
 
@@ -646,8 +646,8 @@  discard block
 block discarded – undo
646 646
 	 * @since 1.0.19
647 647
 	 * @param string $value strtotime compliant date.
648 648
 	 */
649
-	public function set_date_created( $value ) {
650
-		$this->set_created( $value );
649
+	public function set_date_created($value) {
650
+		$this->set_created($value);
651 651
     }
652 652
 
653 653
 	/**
@@ -656,15 +656,15 @@  discard block
 block discarded – undo
656 656
 	 * @since 1.0.19
657 657
 	 * @param string $value strtotime compliant date.
658 658
 	 */
659
-	public function set_next_renewal_date( $value ) {
660
-		$date = strtotime( $value );
659
+	public function set_next_renewal_date($value) {
660
+		$date = strtotime($value);
661 661
 
662
-        if ( $date && $value !== '0000-00-00 00:00:00' ) {
663
-            $this->set_prop( 'expiration', date( 'Y-m-d H:i:s', $date ) );
662
+        if ($date && $value !== '0000-00-00 00:00:00') {
663
+            $this->set_prop('expiration', date('Y-m-d H:i:s', $date));
664 664
             return;
665 665
 		}
666 666
 
667
-		$this->set_prop( 'expiration', '' );
667
+		$this->set_prop('expiration', '');
668 668
 
669 669
 	}
670 670
 
@@ -674,8 +674,8 @@  discard block
 block discarded – undo
674 674
 	 * @since 1.0.19
675 675
 	 * @param string $value strtotime compliant date.
676 676
 	 */
677
-	public function set_expiration( $value ) {
678
-		$this->set_next_renewal_date( $value );
677
+	public function set_expiration($value) {
678
+		$this->set_next_renewal_date($value);
679 679
     }
680 680
 
681 681
 	/**
@@ -684,8 +684,8 @@  discard block
 block discarded – undo
684 684
 	 * @since 1.0.19
685 685
 	 * @param string $value trial period e.g 1 year.
686 686
 	 */
687
-	public function set_trial_period( $value ) {
688
-		$this->set_prop( 'trial_period', $value );
687
+	public function set_trial_period($value) {
688
+		$this->set_prop('trial_period', $value);
689 689
 	}
690 690
 
691 691
 	/**
@@ -694,22 +694,22 @@  discard block
 block discarded – undo
694 694
 	 * @since 1.0.19
695 695
 	 * @param string $new_status    New subscription status.
696 696
 	 */
697
-	public function set_status( $new_status ) {
697
+	public function set_status($new_status) {
698 698
 
699 699
 		// Abort if this is not a valid status;
700
-		if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) {
700
+		if (!array_key_exists($new_status, getpaid_get_subscription_statuses())) {
701 701
 			return;
702 702
 		}
703 703
 
704
-		$old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status();
705
-		if ( true === $this->object_read && $old_status !== $new_status ) {
704
+		$old_status = !empty($this->status_transition['from']) ? $this->status_transition['from'] : $this->get_status();
705
+		if (true === $this->object_read && $old_status !== $new_status) {
706 706
 			$this->status_transition = array(
707 707
 				'from' => $old_status,
708 708
 				'to'   => $new_status,
709 709
 			);
710 710
 		}
711 711
 
712
-		$this->set_prop( 'status', $new_status );
712
+		$this->set_prop('status', $new_status);
713 713
 	}
714 714
 
715 715
 	/**
@@ -718,8 +718,8 @@  discard block
 block discarded – undo
718 718
 	 * @since 1.0.19
719 719
 	 * @param  string $value the remote profile id.
720 720
 	 */
721
-	public function set_profile_id( $value ) {
722
-		$this->set_prop( 'profile_id', sanitize_text_field( $value ) );
721
+	public function set_profile_id($value) {
722
+		$this->set_prop('profile_id', sanitize_text_field($value));
723 723
 	}
724 724
 
725 725
 	/*
@@ -737,8 +737,8 @@  discard block
 block discarded – undo
737 737
 	 * @param string|array String or array of strings to check for.
738 738
 	 * @return bool
739 739
      */
740
-    public function has_status( $status ) {
741
-        return in_array( $this->get_status(), wpinv_clean( wpinv_parse_list( $status ) ) );
740
+    public function has_status($status) {
741
+        return in_array($this->get_status(), wpinv_clean(wpinv_parse_list($status)));
742 742
 	}
743 743
 
744 744
 	/**
@@ -748,7 +748,7 @@  discard block
 block discarded – undo
748 748
      */
749 749
     public function has_trial_period() {
750 750
 		$period = $this->get_trial_period();
751
-        return ! empty( $period );
751
+        return !empty($period);
752 752
 	}
753 753
 
754 754
 	/**
@@ -757,7 +757,7 @@  discard block
 block discarded – undo
757 757
 	 * @return bool
758 758
 	 */
759 759
 	public function is_active() {
760
-		return $this->has_status( 'active trialling' ) && ! $this->is_expired();
760
+		return $this->has_status('active trialling') && !$this->is_expired();
761 761
 	}
762 762
 
763 763
 	/**
@@ -766,7 +766,7 @@  discard block
 block discarded – undo
766 766
 	 * @return bool
767 767
 	 */
768 768
 	public function is_expired() {
769
-		return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) );
769
+		return $this->has_status('expired') || ($this->has_status('active cancelled trialling') && $this->get_expiration_time() < current_time('timestamp'));
770 770
 	}
771 771
 
772 772
 	/**
@@ -776,7 +776,7 @@  discard block
 block discarded – undo
776 776
 	 */
777 777
 	public function is_last_renewal() {
778 778
 		$max_bills = $this->get_bill_times();
779
-		return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed();
779
+		return !empty($max_bills) && $max_bills <= $this->get_times_billed();
780 780
 	}
781 781
 
782 782
 	/*
@@ -791,11 +791,11 @@  discard block
 block discarded – undo
791 791
 	/**
792 792
 	 * Backwards compatibilty.
793 793
 	 */
794
-	public function create( $data = array() ) {
794
+	public function create($data = array()) {
795 795
 
796 796
 		// Set the properties.
797
-		if ( is_array( $data ) ) {
798
-			$this->set_props( $data );
797
+		if (is_array($data)) {
798
+			$this->set_props($data);
799 799
 		}
800 800
 
801 801
 		// Save the item.
@@ -806,8 +806,8 @@  discard block
 block discarded – undo
806 806
 	/**
807 807
 	 * Backwards compatibilty.
808 808
 	 */
809
-	public function update( $args = array() ) {
810
-		return $this->create( $args );
809
+	public function update($args = array()) {
810
+		return $this->create($args);
811 811
 	}
812 812
 
813 813
     /**
@@ -816,12 +816,12 @@  discard block
 block discarded – undo
816 816
      * @since  1.0.0
817 817
      * @return WP_Post[]
818 818
      */
819
-    public function get_child_payments( $hide_pending = true ) {
819
+    public function get_child_payments($hide_pending = true) {
820 820
 
821
-		$statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' );
821
+		$statuses = array('publish', 'wpi-processing', 'wpi-renewal');
822 822
 
823
-		if ( ! $hide_pending ) {
824
-			$statuses = array_keys( wpinv_get_invoice_statuses() );
823
+		if (!$hide_pending) {
824
+			$statuses = array_keys(wpinv_get_invoice_statuses());
825 825
 		}
826 826
 
827 827
         return get_posts(
@@ -843,7 +843,7 @@  discard block
 block discarded – undo
843 843
      * @return int
844 844
      */
845 845
     public function get_total_payments() {
846
-		return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() );
846
+		return getpaid_count_subscription_invoices($this->get_parent_invoice_id(), $this->get_id());
847 847
     }
848 848
 
849 849
     /**
@@ -855,7 +855,7 @@  discard block
 block discarded – undo
855 855
     public function get_times_billed() {
856 856
         $times_billed = $this->get_total_payments();
857 857
 
858
-        if ( (float) $this->get_initial_amount() == 0 && $times_billed > 0 ) {
858
+        if ((float) $this->get_initial_amount() == 0 && $times_billed > 0) {
859 859
             $times_billed--;
860 860
         }
861 861
 
@@ -870,47 +870,47 @@  discard block
 block discarded – undo
870 870
 	 * @param  WPInv_Invoice $invoice If adding an existing invoice.
871 871
      * @return bool
872 872
      */
873
-    public function add_payment( $args = array(), $invoice = false ) {
873
+    public function add_payment($args = array(), $invoice = false) {
874 874
 
875 875
 		// Process each payment once.
876
-        if ( ! empty( $args['transaction_id'] ) && $this->payment_exists( $args['transaction_id'] ) ) {
876
+        if (!empty($args['transaction_id']) && $this->payment_exists($args['transaction_id'])) {
877 877
             return false;
878 878
         }
879 879
 
880 880
 		// Are we creating a new invoice?
881
-		if ( empty( $invoice ) ) {
882
-			$invoice = $this->create_payment( false );
881
+		if (empty($invoice)) {
882
+			$invoice = $this->create_payment(false);
883 883
 
884
-			if ( empty( $invoice ) ) {
884
+			if (empty($invoice)) {
885 885
 				return false;
886 886
 			}
887 887
 		}
888 888
 
889 889
 		// Maybe set a transaction id.
890
-		if ( ! empty( $args['transaction_id'] ) ) {
891
-			$invoice->set_transaction_id( $args['transaction_id'] );
890
+		if (!empty($args['transaction_id'])) {
891
+			$invoice->set_transaction_id($args['transaction_id']);
892 892
 		}
893 893
 
894 894
 		// Set the completed date.
895
-		$invoice->set_completed_date( current_time( 'mysql' ) );
895
+		$invoice->set_completed_date(current_time('mysql'));
896 896
 
897 897
 		// And the gateway.
898
-		if ( ! empty( $args['gateway'] ) ) {
899
-			$invoice->set_gateway( $args['gateway'] );
898
+		if (!empty($args['gateway'])) {
899
+			$invoice->set_gateway($args['gateway']);
900 900
 		}
901 901
 
902
-		$invoice->set_status( 'wpi-renewal' );
902
+		$invoice->set_status('wpi-renewal');
903 903
 		$invoice->save();
904 904
 
905
-		if ( ! $invoice->exists() ) {
905
+		if (!$invoice->exists()) {
906 906
 			return false;
907 907
 		}
908 908
 
909
-		do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this );
910
-		do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this );
911
-        do_action( 'wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id() );
909
+		do_action('getpaid_after_create_subscription_renewal_invoice', $invoice, $this);
910
+		do_action('wpinv_recurring_add_subscription_payment', $invoice, $this);
911
+        do_action('wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id());
912 912
 
913
-        update_post_meta( $invoice->get_id(), '_wpinv_subscription_id', $this->id );
913
+        update_post_meta($invoice->get_id(), '_wpinv_subscription_id', $this->id);
914 914
 
915 915
         return $invoice->get_id();
916 916
 	}
@@ -922,47 +922,47 @@  discard block
 block discarded – undo
922 922
 	 * @param bool $save Whether we should save the invoice.
923 923
      * @return WPInv_Invoice|bool
924 924
      */
925
-    public function create_payment( $save = true ) {
925
+    public function create_payment($save = true) {
926 926
 
927 927
 		$parent_invoice = $this->get_parent_payment();
928 928
 
929
-		if ( ! $parent_invoice->exists() ) {
929
+		if (!$parent_invoice->exists()) {
930 930
 			return false;
931 931
 		}
932 932
 
933 933
 		// Duplicate the parent invoice.
934
-		$invoice = getpaid_duplicate_invoice( $parent_invoice );
935
-		$invoice->set_parent_id( $parent_invoice->get_id() );
936
-		$invoice->set_subscription_id( $this->get_id() );
937
-		$invoice->set_remote_subscription_id( $this->get_profile_id() );
934
+		$invoice = getpaid_duplicate_invoice($parent_invoice);
935
+		$invoice->set_parent_id($parent_invoice->get_id());
936
+		$invoice->set_subscription_id($this->get_id());
937
+		$invoice->set_remote_subscription_id($this->get_profile_id());
938 938
 
939 939
 		// Set invoice items.
940
-		$subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() );
941
-		$allowed_items      = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] );
940
+		$subscription_group = getpaid_get_invoice_subscription_group($parent_invoice->get_id(), $this->get_id());
941
+		$allowed_items      = empty($subscription_group) ? array($this->get_product_id()) : array_keys($subscription_group['items']);
942 942
 		$invoice_items      = array();
943 943
 
944
-		foreach ( $invoice->get_items() as $item ) {
945
-			if ( in_array( $item->get_id(), $allowed_items ) ) {
944
+		foreach ($invoice->get_items() as $item) {
945
+			if (in_array($item->get_id(), $allowed_items)) {
946 946
 				$invoice_items[] = $item;
947 947
 			}
948 948
 		}
949 949
 
950
-		$invoice->set_items( $invoice_items );
950
+		$invoice->set_items($invoice_items);
951 951
 
952
-		if ( ! empty( $subscription_group['fees'] ) ) {
953
-			$invoice->set_fees( $subscription_group['fees'] );
952
+		if (!empty($subscription_group['fees'])) {
953
+			$invoice->set_fees($subscription_group['fees']);
954 954
 		}
955 955
 
956 956
 		// Maybe recalculate discount (Pre-GetPaid Fix).
957
-		$discount = new WPInv_Discount( $invoice->get_discount_code() );
958
-		if ( $discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount() ) {
959
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
957
+		$discount = new WPInv_Discount($invoice->get_discount_code());
958
+		if ($discount->exists() && $discount->is_recurring() && 0 == $invoice->get_total_discount()) {
959
+			$invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
960 960
 		}
961 961
 
962 962
 		$invoice->recalculate_total();
963
-		$invoice->set_status( 'wpi-pending' );
963
+		$invoice->set_status('wpi-pending');
964 964
 
965
-		if ( ! $save ) {
965
+		if (!$save) {
966 966
 			return $invoice;
967 967
 		}
968 968
 
@@ -977,24 +977,24 @@  discard block
 block discarded – undo
977 977
 	 * @since  1.0.0
978 978
 	 * @return int The subscription's id
979 979
 	 */
980
-	public function renew( $calculate_from = null ) {
980
+	public function renew($calculate_from = null) {
981 981
 
982 982
 		// Complete subscription if applicable
983
-		if ( $this->is_last_renewal() ) {
983
+		if ($this->is_last_renewal()) {
984 984
 			return $this->complete();
985 985
 		}
986 986
 
987 987
 		// Calculate new expiration
988 988
 		$frequency      = $this->get_frequency();
989 989
 		$period         = $this->get_period();
990
-		$calculate_from = empty( $calculate_from ) ? $this->get_expiration_time() : $calculate_from;
991
-		$new_expiration = strtotime( "+ $frequency $period", $calculate_from );
990
+		$calculate_from = empty($calculate_from) ? $this->get_expiration_time() : $calculate_from;
991
+		$new_expiration = strtotime("+ $frequency $period", $calculate_from);
992 992
 
993
-		$this->set_expiration( date( 'Y-m-d H:i:s', $new_expiration ) );
994
-		$this->set_status( 'active' );
993
+		$this->set_expiration(date('Y-m-d H:i:s', $new_expiration));
994
+		$this->set_status('active');
995 995
 		$this->save();
996 996
 
997
-		do_action( 'getpaid_subscription_renewed', $this );
997
+		do_action('getpaid_subscription_renewed', $this);
998 998
 
999 999
 		return $this->get_id();
1000 1000
 	}
@@ -1010,11 +1010,11 @@  discard block
 block discarded – undo
1010 1010
 	public function complete() {
1011 1011
 
1012 1012
 		// Only mark a subscription as complete if it's not already cancelled.
1013
-		if ( $this->has_status( 'cancelled' ) ) {
1013
+		if ($this->has_status('cancelled')) {
1014 1014
 			return false;
1015 1015
 		}
1016 1016
 
1017
-		$this->set_status( 'completed' );
1017
+		$this->set_status('completed');
1018 1018
 		return $this->save();
1019 1019
 
1020 1020
 	}
@@ -1026,14 +1026,14 @@  discard block
 block discarded – undo
1026 1026
 	 * @param  bool $check_expiration
1027 1027
 	 * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future.
1028 1028
 	 */
1029
-	public function expire( $check_expiration = false ) {
1029
+	public function expire($check_expiration = false) {
1030 1030
 
1031
-		if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) {
1031
+		if ($check_expiration && $this->get_expiration_time() > current_time('timestamp')) {
1032 1032
 			// Do not mark as expired since real expiration date is in the future
1033 1033
 			return false;
1034 1034
 		}
1035 1035
 
1036
-		$this->set_status( 'expired' );
1036
+		$this->set_status('expired');
1037 1037
 		return $this->save();
1038 1038
 
1039 1039
 	}
@@ -1045,7 +1045,7 @@  discard block
 block discarded – undo
1045 1045
 	 * @return int Subscription id.
1046 1046
 	 */
1047 1047
 	public function failing() {
1048
-		$this->set_status( 'failing' );
1048
+		$this->set_status('failing');
1049 1049
 		return $this->save();
1050 1050
 	}
1051 1051
 
@@ -1056,7 +1056,7 @@  discard block
 block discarded – undo
1056 1056
      * @return int Subscription id.
1057 1057
      */
1058 1058
     public function cancel() {
1059
-		$this->set_status( 'cancelled' );
1059
+		$this->set_status('cancelled');
1060 1060
 		return $this->save();
1061 1061
     }
1062 1062
 
@@ -1067,7 +1067,7 @@  discard block
 block discarded – undo
1067 1067
 	 * @return bool
1068 1068
 	 */
1069 1069
 	public function can_cancel() {
1070
-		return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this );
1070
+		return apply_filters('wpinv_subscription_can_cancel', $this->has_status($this->get_cancellable_statuses()), $this);
1071 1071
 	}
1072 1072
 
1073 1073
     /**
@@ -1078,7 +1078,7 @@  discard block
 block discarded – undo
1078 1078
      * @return      array
1079 1079
      */
1080 1080
     public function get_cancellable_statuses() {
1081
-        return apply_filters( 'wpinv_recurring_cancellable_statuses', array( 'active', 'trialling', 'failing' ) );
1081
+        return apply_filters('wpinv_recurring_cancellable_statuses', array('active', 'trialling', 'failing'));
1082 1082
     }
1083 1083
 
1084 1084
 	/**
@@ -1088,8 +1088,8 @@  discard block
 block discarded – undo
1088 1088
 	 * @return string
1089 1089
 	 */
1090 1090
 	public function get_cancel_url() {
1091
-		$url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() );
1092
-		return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
1091
+		$url = getpaid_get_authenticated_action_url('subscription_cancel', $this->get_view_url());
1092
+		return apply_filters('wpinv_subscription_cancel_url', $url, $this);
1093 1093
 	}
1094 1094
 
1095 1095
 	/**
@@ -1100,10 +1100,10 @@  discard block
 block discarded – undo
1100 1100
 	 */
1101 1101
 	public function get_view_url() {
1102 1102
 
1103
-		$url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
1104
-		$url = add_query_arg( 'subscription', $this->get_id(), $url );
1103
+		$url = getpaid_get_tab_url('gp-subscriptions', get_permalink((int) wpinv_get_option('invoice_subscription_page')));
1104
+		$url = add_query_arg('subscription', $this->get_id(), $url);
1105 1105
 
1106
-		return apply_filters( 'getpaid_get_subscription_view_url', $url, $this );
1106
+		return apply_filters('getpaid_get_subscription_view_url', $url, $this);
1107 1107
 	}
1108 1108
 
1109 1109
 	/**
@@ -1116,7 +1116,7 @@  discard block
 block discarded – undo
1116 1116
 	 * @return bool
1117 1117
 	 */
1118 1118
 	public function can_renew() {
1119
-		return apply_filters( 'wpinv_subscription_can_renew', true, $this );
1119
+		return apply_filters('wpinv_subscription_can_renew', true, $this);
1120 1120
 	}
1121 1121
 
1122 1122
 	/**
@@ -1135,7 +1135,7 @@  discard block
 block discarded – undo
1135 1135
             ),
1136 1136
             'getpaid-nonce'
1137 1137
         );
1138
-		return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
1138
+		return apply_filters('wpinv_subscription_renew_url', $url, $this);
1139 1139
 	}
1140 1140
 
1141 1141
 	/**
@@ -1145,7 +1145,7 @@  discard block
 block discarded – undo
1145 1145
 	 * @return bool
1146 1146
 	 */
1147 1147
 	public function can_update() {
1148
-		return apply_filters( 'wpinv_subscription_can_update', false, $this );
1148
+		return apply_filters('wpinv_subscription_can_update', false, $this);
1149 1149
 	}
1150 1150
 
1151 1151
 	/**
@@ -1161,7 +1161,7 @@  discard block
 block discarded – undo
1161 1161
 				'subscription_id' => $this->get_id(),
1162 1162
             )
1163 1163
         );
1164
-		return apply_filters( 'wpinv_subscription_update_url', $url, $this );
1164
+		return apply_filters('wpinv_subscription_update_url', $url, $this);
1165 1165
 	}
1166 1166
 
1167 1167
 	/**
@@ -1171,7 +1171,7 @@  discard block
 block discarded – undo
1171 1171
 	 * @return string
1172 1172
 	 */
1173 1173
 	public function get_status_label() {
1174
-		return getpaid_get_subscription_status_label( $this->get_status() );
1174
+		return getpaid_get_subscription_status_label($this->get_status());
1175 1175
 	}
1176 1176
 
1177 1177
 	/**
@@ -1182,7 +1182,7 @@  discard block
 block discarded – undo
1182 1182
 	 */
1183 1183
 	public function get_status_class() {
1184 1184
 		$statuses = getpaid_get_subscription_status_classes();
1185
-		return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'badge-dark';
1185
+		return isset($statuses[$this->get_status()]) ? $statuses[$this->get_status()] : 'badge-dark';
1186 1186
 	}
1187 1187
 
1188 1188
     /**
@@ -1193,9 +1193,9 @@  discard block
 block discarded – undo
1193 1193
      */
1194 1194
     public function get_status_label_html() {
1195 1195
 
1196
-		$status_label = sanitize_text_field( $this->get_status_label() );
1197
-		$class        = esc_attr( $this->get_status_class() );
1198
-		$status       = sanitize_html_class( $this->get_status() );
1196
+		$status_label = sanitize_text_field($this->get_status_label());
1197
+		$class        = esc_attr($this->get_status_class());
1198
+		$status       = sanitize_html_class($this->get_status());
1199 1199
 
1200 1200
 		return "<span class='bsui'><span class='badge $class $status'>$status_label</span></span>";
1201 1201
     }
@@ -1207,9 +1207,9 @@  discard block
 block discarded – undo
1207 1207
      * @param  string $txn_id The transaction ID from the merchant processor
1208 1208
      * @return bool
1209 1209
      */
1210
-    public function payment_exists( $txn_id = '' ) {
1211
-		$invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' );
1212
-        return ! empty( $invoice_id );
1210
+    public function payment_exists($txn_id = '') {
1211
+		$invoice_id = WPInv_Invoice::get_invoice_id_by_field($txn_id, 'transaction_id');
1212
+        return !empty($invoice_id);
1213 1213
 	}
1214 1214
 
1215 1215
 	/**
@@ -1221,35 +1221,35 @@  discard block
 block discarded – undo
1221 1221
 		// Reset status transition variable.
1222 1222
 		$this->status_transition = false;
1223 1223
 
1224
-		if ( $status_transition ) {
1224
+		if ($status_transition) {
1225 1225
 			try {
1226 1226
 
1227 1227
 				// Fire a hook for the status change.
1228
-				do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition );
1229
-				do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition );
1228
+				do_action('wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition);
1229
+				do_action('getpaid_subscription_' . $status_transition['to'], $this, $status_transition);
1230 1230
 
1231
-				if ( ! empty( $status_transition['from'] ) ) {
1231
+				if (!empty($status_transition['from'])) {
1232 1232
 
1233 1233
 					/* translators: 1: old subscription status 2: new subscription status */
1234
-					$transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1234
+					$transition_note = sprintf(__('Subscription status changed from %1$s to %2$s.', 'invoicing'), getpaid_get_subscription_status_label($status_transition['from']), getpaid_get_subscription_status_label($status_transition['to']));
1235 1235
 
1236 1236
 					// Note the transition occurred.
1237
-					$this->get_parent_payment()->add_note( $transition_note, false, false, true );
1237
+					$this->get_parent_payment()->add_note($transition_note, false, false, true);
1238 1238
 
1239 1239
 					// Fire another hook.
1240
-					do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this );
1241
-					do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] );
1240
+					do_action('getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this);
1241
+					do_action('getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to']);
1242 1242
 
1243 1243
 				} else {
1244 1244
 					/* translators: %s: new invoice status */
1245
-					$transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1245
+					$transition_note = sprintf(__('Subscription status set to %s.', 'invoicing'), getpaid_get_subscription_status_label($status_transition['to']));
1246 1246
 
1247 1247
 					// Note the transition occurred.
1248
-					$this->get_parent_payment()->add_note( $transition_note, false, false, true );
1248
+					$this->get_parent_payment()->add_note($transition_note, false, false, true);
1249 1249
 
1250 1250
 				}
1251
-			} catch ( Exception $e ) {
1252
-				$this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() );
1251
+			} catch (Exception $e) {
1252
+				$this->get_parent_payment()->add_note(__('Error during subscription status transition.', 'invoicing') . ' ' . $e->getMessage());
1253 1253
 			}
1254 1254
 		}
1255 1255
 
@@ -1275,7 +1275,7 @@  discard block
 block discarded – undo
1275 1275
 	 */
1276 1276
 	public function activate() {
1277 1277
 		$status = $this->has_trial_period() && 'trialling' === $this->get_status() ? 'trialling' : 'active';
1278
-		$this->set_status( $status );
1278
+		$this->set_status($status);
1279 1279
 		return $this->save();
1280 1280
 	}
1281 1281
 
Please login to merge, or discard this patch.
includes/admin/register-settings.php 2 patches
Indentation   +320 added lines, -320 removed lines patch added patch discarded remove patch
@@ -25,8 +25,8 @@  discard block
 block discarded – undo
25 25
                     $defaults[ $key ] = $setting['std'];
26 26
                 }
27 27
             }
28
-		}
29
-	}
28
+        }
29
+    }
30 30
 
31 31
     return $defaults;
32 32
 
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
  *
145 145
  */
146 146
 function wpinv_register_settings() {
147
-	do_action( 'getpaid_before_register_settings' );
147
+    do_action( 'getpaid_before_register_settings' );
148 148
 
149 149
     // Loop through all tabs.
150 150
     foreach ( wpinv_get_registered_settings() as $tab => $sections ) {
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
                 $settings = $sections;
160 160
             }
161 161
 
162
-			do_action( "getpaid_register_{$tab}_{$section}" );
162
+            do_action( "getpaid_register_{$tab}_{$section}" );
163 163
 
164 164
             // Register the setting section.
165 165
             add_settings_section(
@@ -180,7 +180,7 @@  discard block
 block discarded – undo
180 180
     // Creates our settings in the options table.
181 181
     register_setting( 'wpinv_settings', 'wpinv_settings', 'wpinv_settings_sanitize' );
182 182
 
183
-	do_action( 'getpaid_after_register_settings' );
183
+    do_action( 'getpaid_after_register_settings' );
184 184
 }
185 185
 add_action( 'admin_init', 'wpinv_register_settings' );
186 186
 
@@ -197,13 +197,13 @@  discard block
 block discarded – undo
197 197
     $name       = isset( $option['name'] ) ? $option['name'] : '';
198 198
     $cb         = "wpinv_{$option['type']}_callback";
199 199
     $section    = "wpinv_settings_{$tab}_$section";
200
-	$is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
200
+    $is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
201 201
 
202
-	if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
203
-		$tip   = wpinv_clean( $option['desc'] );
204
-		$name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
205
-		unset( $option['desc'] );
206
-	}
202
+    if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
203
+        $tip   = wpinv_clean( $option['desc'] );
204
+        $name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
205
+        unset( $option['desc'] );
206
+    }
207 207
 
208 208
     // Loop through all tabs.
209 209
     add_settings_field(
@@ -230,9 +230,9 @@  discard block
 block discarded – undo
230 230
             'faux'            => isset( $option['faux'] ) ? $option['faux'] : false,
231 231
             'onchange'        => isset( $option['onchange'] ) ? $option['onchange'] : '',
232 232
             'custom'          => isset( $option['custom'] ) ? $option['custom'] : '',
233
-			'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
234
-			'class'           => isset( $option['class'] ) ? $option['class'] : '',
235
-			'style'           => isset( $option['style'] ) ? $option['style'] : '',
233
+            'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
234
+            'class'           => isset( $option['class'] ) ? $option['class'] : '',
235
+            'style'           => isset( $option['style'] ) ? $option['style'] : '',
236 236
             'cols'            => isset( $option['cols'] ) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
237 237
             'rows'            => isset( $option['rows'] ) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
238 238
         )
@@ -246,7 +246,7 @@  discard block
 block discarded – undo
246 246
  * @return array
247 247
  */
248 248
 function wpinv_get_registered_settings() {
249
-	return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
249
+    return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
250 250
 }
251 251
 
252 252
 /**
@@ -265,18 +265,18 @@  discard block
 block discarded – undo
265 265
  */
266 266
 function wpinv_settings_sanitize( $input = array() ) {
267 267
 
268
-	$wpinv_options = wpinv_get_options();
269
-	$raw_referrer  = wp_get_raw_referer();
268
+    $wpinv_options = wpinv_get_options();
269
+    $raw_referrer  = wp_get_raw_referer();
270 270
 
271 271
     if ( empty( $raw_referrer ) ) {
272
-		return array_merge( $wpinv_options, $input );
272
+        return array_merge( $wpinv_options, $input );
273 273
     }
274 274
 
275 275
     wp_parse_str( $raw_referrer, $referrer );
276 276
 
277
-	if ( in_array( 'gp-setup', $referrer ) ) {
278
-		return array_merge( $wpinv_options, $input );
279
-	}
277
+    if ( in_array( 'gp-setup', $referrer ) ) {
278
+        return array_merge( $wpinv_options, $input );
279
+    }
280 280
 
281 281
     $settings = wpinv_get_registered_settings();
282 282
     $tab      = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
@@ -298,10 +298,10 @@  discard block
 block discarded – undo
298 298
         }
299 299
 
300 300
         // General filter
301
-		$input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
301
+        $input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
302 302
 
303
-		// Key specific filter.
304
-		$input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
303
+        // Key specific filter.
304
+        $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
305 305
     }
306 306
 
307 307
     // Loop through the whitelist and unset any that are empty for the tab being saved
@@ -344,14 +344,14 @@  discard block
 block discarded – undo
344 344
 
345 345
     foreach ( $new_rates as $rate ) {
346 346
 
347
-		$rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
348
-		$rate['name']    = sanitize_text_field( $rate['name'] );
349
-		$rate['state']   = sanitize_text_field( $rate['state'] );
350
-		$rate['country'] = sanitize_text_field( $rate['country'] );
351
-		$rate['global']  = empty( $rate['state'] );
352
-		$tax_rates[]     = $rate;
347
+        $rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
348
+        $rate['name']    = sanitize_text_field( $rate['name'] );
349
+        $rate['state']   = sanitize_text_field( $rate['state'] );
350
+        $rate['country'] = sanitize_text_field( $rate['country'] );
351
+        $rate['global']  = empty( $rate['state'] );
352
+        $tax_rates[]     = $rate;
353 353
 
354
-	}
354
+    }
355 355
 
356 356
     update_option( 'wpinv_tax_rates', $tax_rates );
357 357
 
@@ -364,21 +364,21 @@  discard block
 block discarded – undo
364 364
         return $input;
365 365
     }
366 366
 
367
-	if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
368
-		return $input;
369
-	}
367
+    if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
368
+        return $input;
369
+    }
370 370
 
371 371
     $new_rules = ! empty( $_POST['tax_rules'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rules'] ) ) : array();
372 372
     $tax_rules = array();
373 373
 
374 374
     foreach ( $new_rules as $rule ) {
375 375
 
376
-		$rule['key']      = sanitize_title_with_dashes( $rule['key'] );
377
-		$rule['label']    = sanitize_text_field( $rule['label'] );
378
-		$rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
379
-		$tax_rules[]      = $rule;
376
+        $rule['key']      = sanitize_title_with_dashes( $rule['key'] );
377
+        $rule['label']    = sanitize_text_field( $rule['label'] );
378
+        $rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
379
+        $tax_rules[]      = $rule;
380 380
 
381
-	}
381
+    }
382 382
 
383 383
     update_option( 'wpinv_tax_rules', $tax_rules );
384 384
 
@@ -391,11 +391,11 @@  discard block
 block discarded – undo
391 391
     $tabs['general']  = __( 'General', 'invoicing' );
392 392
     $tabs['gateways'] = __( 'Payment Gateways', 'invoicing' );
393 393
     $tabs['taxes']    = __( 'Taxes', 'invoicing' );
394
-	$tabs['emails']   = __( 'Emails', 'invoicing' );
394
+    $tabs['emails']   = __( 'Emails', 'invoicing' );
395 395
 
396
-	if ( count( getpaid_get_integration_settings() ) > 0 ) {
397
-		$tabs['integrations'] = __( 'Integrations', 'invoicing' );
398
-	}
396
+    if ( count( getpaid_get_integration_settings() ) > 0 ) {
397
+        $tabs['integrations'] = __( 'Integrations', 'invoicing' );
398
+    }
399 399
 
400 400
     $tabs['privacy']  = __( 'Privacy', 'invoicing' );
401 401
     $tabs['misc']     = __( 'Misc', 'invoicing' );
@@ -426,53 +426,53 @@  discard block
 block discarded – undo
426 426
         'general'      => apply_filters(
427 427
             'wpinv_settings_sections_general',
428 428
             array(
429
-				'main'             => __( 'General Settings', 'invoicing' ),
430
-				'page_section'     => __( 'Page Settings', 'invoicing' ),
431
-				'currency_section' => __( 'Currency Settings', 'invoicing' ),
432
-				'labels'           => __( 'Label Texts', 'invoicing' ),
429
+                'main'             => __( 'General Settings', 'invoicing' ),
430
+                'page_section'     => __( 'Page Settings', 'invoicing' ),
431
+                'currency_section' => __( 'Currency Settings', 'invoicing' ),
432
+                'labels'           => __( 'Label Texts', 'invoicing' ),
433 433
             )
434 434
         ),
435 435
         'gateways'     => apply_filters(
436 436
             'wpinv_settings_sections_gateways',
437 437
             array(
438
-				'main' => __( 'Gateway Settings', 'invoicing' ),
438
+                'main' => __( 'Gateway Settings', 'invoicing' ),
439 439
             )
440 440
         ),
441 441
         'taxes'        => apply_filters(
442 442
             'wpinv_settings_sections_taxes',
443 443
             array(
444
-				'main'  => __( 'Tax Settings', 'invoicing' ),
445
-				'rules' => __( 'Tax Rules', 'invoicing' ),
446
-				'rates' => __( 'Tax Rates', 'invoicing' ),
447
-				'vat'   => __( 'EU VAT Settings', 'invoicing' ),
444
+                'main'  => __( 'Tax Settings', 'invoicing' ),
445
+                'rules' => __( 'Tax Rules', 'invoicing' ),
446
+                'rates' => __( 'Tax Rates', 'invoicing' ),
447
+                'vat'   => __( 'EU VAT Settings', 'invoicing' ),
448 448
             )
449 449
         ),
450 450
         'emails'       => apply_filters(
451 451
             'wpinv_settings_sections_emails',
452 452
             array(
453
-				'main' => __( 'Email Settings', 'invoicing' ),
453
+                'main' => __( 'Email Settings', 'invoicing' ),
454 454
             )
455 455
         ),
456 456
 
457
-		'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
457
+        'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
458 458
 
459 459
         'privacy'      => apply_filters(
460 460
             'wpinv_settings_sections_privacy',
461 461
             array(
462
-				'main' => __( 'Privacy policy', 'invoicing' ),
462
+                'main' => __( 'Privacy policy', 'invoicing' ),
463 463
             )
464 464
         ),
465 465
         'misc'         => apply_filters(
466 466
             'wpinv_settings_sections_misc',
467 467
             array(
468
-				'main'       => __( 'Miscellaneous', 'invoicing' ),
469
-				'custom-css' => __( 'Custom CSS', 'invoicing' ),
468
+                'main'       => __( 'Miscellaneous', 'invoicing' ),
469
+                'custom-css' => __( 'Custom CSS', 'invoicing' ),
470 470
             )
471 471
         ),
472 472
         'tools'        => apply_filters(
473 473
             'wpinv_settings_sections_tools',
474 474
             array(
475
-				'main' => __( 'Diagnostic Tools', 'invoicing' ),
475
+                'main' => __( 'Diagnostic Tools', 'invoicing' ),
476 476
             )
477 477
         ),
478 478
     );
@@ -483,46 +483,46 @@  discard block
 block discarded – undo
483 483
 }
484 484
 
485 485
 function wpinv_get_pages( $with_slug = false, $default_label = null ) {
486
-	$pages_options = array();
486
+    $pages_options = array();
487 487
 
488
-	if ( $default_label !== null && $default_label !== false ) {
489
-		$pages_options = array( '' => $default_label ); // Blank option
490
-	}
488
+    if ( $default_label !== null && $default_label !== false ) {
489
+        $pages_options = array( '' => $default_label ); // Blank option
490
+    }
491 491
 
492
-	$pages = get_pages();
493
-	if ( $pages ) {
494
-		foreach ( $pages as $page ) {
495
-			$title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
492
+    $pages = get_pages();
493
+    if ( $pages ) {
494
+        foreach ( $pages as $page ) {
495
+            $title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
496 496
             $pages_options[ $page->ID ] = $title;
497
-		}
498
-	}
497
+        }
498
+    }
499 499
 
500
-	return $pages_options;
500
+    return $pages_options;
501 501
 }
502 502
 
503 503
 function wpinv_header_callback( $args ) {
504
-	if ( ! empty( $args['desc'] ) ) {
504
+    if ( ! empty( $args['desc'] ) ) {
505 505
         echo wp_kses_post( $args['desc'] );
506 506
     }
507 507
 }
508 508
 
509 509
 function wpinv_hidden_callback( $args ) {
510 510
 
511
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
512
-	$value   = wpinv_get_option( $args['id'], $std );
511
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
512
+    $value   = wpinv_get_option( $args['id'], $std );
513 513
 
514
-	if ( isset( $args['set_value'] ) ) {
515
-		$value = $args['set_value'];
516
-	}
514
+    if ( isset( $args['set_value'] ) ) {
515
+        $value = $args['set_value'];
516
+    }
517 517
 
518
-	if ( isset( $args['faux'] ) && true === $args['faux'] ) {
519
-		$args['readonly'] = true;
520
-		$name  = '';
521
-	} else {
522
-		$name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
523
-	}
518
+    if ( isset( $args['faux'] ) && true === $args['faux'] ) {
519
+        $args['readonly'] = true;
520
+        $name  = '';
521
+    } else {
522
+        $name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
523
+    }
524 524
 
525
-	echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
525
+    echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
526 526
 
527 527
 }
528 528
 
@@ -531,12 +531,12 @@  discard block
 block discarded – undo
531 531
  */
532 532
 function wpinv_checkbox_callback( $args ) {
533 533
 
534
-	$std = isset( $args['std'] ) ? $args['std'] : '';
535
-	$std = wpinv_get_option( $args['id'], $std );
536
-	$id  = esc_attr( $args['id'] );
534
+    $std = isset( $args['std'] ) ? $args['std'] : '';
535
+    $std = wpinv_get_option( $args['id'], $std );
536
+    $id  = esc_attr( $args['id'] );
537 537
 
538
-	getpaid_hidden_field( "wpinv_settings[$id]", '0' );
539
-	?>
538
+    getpaid_hidden_field( "wpinv_settings[$id]", '0' );
539
+    ?>
540 540
 		<label>
541 541
 			<input id="wpinv-settings-<?php echo esc_attr( $id ); ?>" name="wpinv_settings[<?php echo esc_attr( $id ); ?>]" <?php checked( empty( $std ), false ); ?> value="1" type="checkbox" />
542 542
 			<?php echo wp_kses_post( $args['desc'] ); ?>
@@ -546,75 +546,75 @@  discard block
 block discarded – undo
546 546
 
547 547
 function wpinv_multicheck_callback( $args ) {
548 548
 
549
-	$sanitize_id = wpinv_sanitize_key( $args['id'] );
550
-	$class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
549
+    $sanitize_id = wpinv_sanitize_key( $args['id'] );
550
+    $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
551 551
 
552
-	if ( ! empty( $args['options'] ) ) {
552
+    if ( ! empty( $args['options'] ) ) {
553 553
 
554
-		$std     = isset( $args['std'] ) ? $args['std'] : array();
555
-		$value   = wpinv_get_option( $args['id'], $std );
554
+        $std     = isset( $args['std'] ) ? $args['std'] : array();
555
+        $value   = wpinv_get_option( $args['id'], $std );
556 556
 
557
-		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
557
+        echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
558 558
         foreach ( $args['options'] as $key => $option ) :
559
-			$sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
560
-			if ( in_array( $sanitize_key, $value ) ) {
561
-				$enabled = $sanitize_key;
562
-			} else {
563
-				$enabled = null;
564
-			}
565
-			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
566
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
567
-		endforeach;
568
-		echo '</div>';
569
-		echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
570
-	}
559
+            $sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
560
+            if ( in_array( $sanitize_key, $value ) ) {
561
+                $enabled = $sanitize_key;
562
+            } else {
563
+                $enabled = null;
564
+            }
565
+            echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
566
+            echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
567
+        endforeach;
568
+        echo '</div>';
569
+        echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
570
+    }
571 571
 }
572 572
 
573 573
 function wpinv_payment_icons_callback( $args ) {
574 574
 
575 575
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
576
-	$value   = wpinv_get_option( $args['id'], false );
576
+    $value   = wpinv_get_option( $args['id'], false );
577 577
 
578
-	if ( ! empty( $args['options'] ) ) {
579
-		foreach ( $args['options'] as $key => $option ) {
578
+    if ( ! empty( $args['options'] ) ) {
579
+        foreach ( $args['options'] as $key => $option ) {
580 580
             $sanitize_key = wpinv_sanitize_key( $key );
581 581
 
582
-			if ( empty( $value ) ) {
583
-				$enabled = $option;
584
-			} else {
585
-				$enabled = null;
586
-			}
587
-
588
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
589
-
590
-				echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
591
-
592
-				if ( wpinv_string_is_image_url( $key ) ) {
593
-				echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
594
-				} else {
595
-				$card = strtolower( str_replace( ' ', '', $option ) );
596
-
597
-				if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
598
-					$image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
599
-					} else {
600
-					$image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
601
-					$content_dir = WP_CONTENT_DIR;
602
-
603
-					if ( function_exists( 'wp_normalize_path' ) ) {
604
-						// Replaces backslashes with forward slashes for Windows systems
605
-						$image = wp_normalize_path( $image );
606
-						$content_dir = wp_normalize_path( $content_dir );
607
-						}
608
-
609
-					$image = str_replace( $content_dir, content_url(), $image );
610
-					}
611
-
612
-				echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
613
-				}
614
-			echo wp_kses_post( $option ) . '</label>';
615
-		}
616
-		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
617
-	}
582
+            if ( empty( $value ) ) {
583
+                $enabled = $option;
584
+            } else {
585
+                $enabled = null;
586
+            }
587
+
588
+            echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
589
+
590
+                echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
591
+
592
+                if ( wpinv_string_is_image_url( $key ) ) {
593
+                echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
594
+                } else {
595
+                $card = strtolower( str_replace( ' ', '', $option ) );
596
+
597
+                if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
598
+                    $image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
599
+                    } else {
600
+                    $image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
601
+                    $content_dir = WP_CONTENT_DIR;
602
+
603
+                    if ( function_exists( 'wp_normalize_path' ) ) {
604
+                        // Replaces backslashes with forward slashes for Windows systems
605
+                        $image = wp_normalize_path( $image );
606
+                        $content_dir = wp_normalize_path( $content_dir );
607
+                        }
608
+
609
+                    $image = str_replace( $content_dir, content_url(), $image );
610
+                    }
611
+
612
+                echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
613
+                }
614
+            echo wp_kses_post( $option ) . '</label>';
615
+        }
616
+        echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
617
+    }
618 618
 }
619 619
 
620 620
 /**
@@ -622,9 +622,9 @@  discard block
 block discarded – undo
622 622
  */
623 623
 function wpinv_radio_callback( $args ) {
624 624
 
625
-	$std = isset( $args['std'] ) ? $args['std'] : '';
626
-	$std = wpinv_get_option( $args['id'], $std );
627
-	?>
625
+    $std = isset( $args['std'] ) ? $args['std'] : '';
626
+    $std = wpinv_get_option( $args['id'], $std );
627
+    ?>
628 628
 		<fieldset>
629 629
 			<ul id="wpinv-settings-<?php echo esc_attr( $args['id'] ); ?>" style="margin-top: 0;">
630 630
 				<?php foreach ( $args['options'] as $key => $option ) : ?>
@@ -638,7 +638,7 @@  discard block
 block discarded – undo
638 638
 			</ul>
639 639
 		</fieldset>
640 640
 	<?php
641
-	getpaid_settings_description_callback( $args );
641
+    getpaid_settings_description_callback( $args );
642 642
 }
643 643
 
644 644
 /**
@@ -646,10 +646,10 @@  discard block
 block discarded – undo
646 646
  */
647 647
 function getpaid_settings_description_callback( $args ) {
648 648
 
649
-	if ( ! empty( $args['desc'] ) ) {
650
-		$description = $args['desc'];
651
-		echo wp_kses_post( "<p class='description'>$description</p>" );
652
-	}
649
+    if ( ! empty( $args['desc'] ) ) {
650
+        $description = $args['desc'];
651
+        echo wp_kses_post( "<p class='description'>$description</p>" );
652
+    }
653 653
 
654 654
 }
655 655
 
@@ -658,7 +658,7 @@  discard block
 block discarded – undo
658 658
  */
659 659
 function wpinv_gateways_callback() {
660 660
 
661
-	?>
661
+    ?>
662 662
 		</td>
663 663
 	</tr>
664 664
 	<tr class="bsui">
@@ -672,26 +672,26 @@  discard block
 block discarded – undo
672 672
 
673 673
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
674 674
     $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
675
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
676
-	$value   = wpinv_get_option( $args['id'], $std );
675
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
676
+    $value   = wpinv_get_option( $args['id'], $std );
677 677
 
678
-	echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
678
+    echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
679 679
 
680
-	foreach ( $args['options'] as $key => $option ) :
680
+    foreach ( $args['options'] as $key => $option ) :
681 681
 
682
-		echo '<option value="' . esc_attr( $key ) . '" ';
682
+        echo '<option value="' . esc_attr( $key ) . '" ';
683 683
 
684
-		if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
684
+        if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
685 685
             selected( $key, $args['selected'] );
686 686
         } else {
687 687
             selected( $key, $value );
688 688
         }
689 689
 
690
-		echo '>' . esc_html( $option['admin_label'] ) . '</option>';
691
-	endforeach;
690
+        echo '>' . esc_html( $option['admin_label'] ) . '</option>';
691
+    endforeach;
692 692
 
693
-	echo '</select>';
694
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
693
+    echo '</select>';
694
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
695 695
 }
696 696
 
697 697
 /**
@@ -702,38 +702,38 @@  discard block
 block discarded – undo
702 702
  */
703 703
 function wpinv_settings_attrs_helper( $args ) {
704 704
 
705
-	$value = isset( $args['std'] ) ? $args['std'] : '';
706
-	$id    = esc_attr( $args['id'] );
707
-	$value = is_scalar( $value ) ? $value : '';
708
-
709
-	$attrs = array(
710
-		'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
711
-		'readonly' => ! empty( $args['faux'] ),
712
-		'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
713
-		'id'       => 'wpinv-settings-' . $args['id'],
714
-		'style'    => $args['style'],
715
-		'class'    => $args['class'],
716
-		'placeholder' => $args['placeholder'],
717
-		'data-placeholder' => $args['placeholder'],
718
-	);
705
+    $value = isset( $args['std'] ) ? $args['std'] : '';
706
+    $id    = esc_attr( $args['id'] );
707
+    $value = is_scalar( $value ) ? $value : '';
708
+
709
+    $attrs = array(
710
+        'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
711
+        'readonly' => ! empty( $args['faux'] ),
712
+        'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
713
+        'id'       => 'wpinv-settings-' . $args['id'],
714
+        'style'    => $args['style'],
715
+        'class'    => $args['class'],
716
+        'placeholder' => $args['placeholder'],
717
+        'data-placeholder' => $args['placeholder'],
718
+    );
719 719
 
720
-	if ( ! empty( $args['onchange'] ) ) {
721
-		$attrs['onchange'] = $args['onchange'];
722
-	}
720
+    if ( ! empty( $args['onchange'] ) ) {
721
+        $attrs['onchange'] = $args['onchange'];
722
+    }
723 723
 
724
-	foreach ( $attrs as $key => $value ) {
724
+    foreach ( $attrs as $key => $value ) {
725 725
 
726
-		if ( false === $value ) {
727
-			continue;
728
-		}
726
+        if ( false === $value ) {
727
+            continue;
728
+        }
729 729
 
730
-		if ( true === $value ) {
731
-			echo ' ' . esc_attr( $key );
732
-		} else {
733
-			echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
734
-		}
730
+        if ( true === $value ) {
731
+            echo ' ' . esc_attr( $key );
732
+        } else {
733
+            echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
734
+        }
735 735
 
736
-	}
736
+    }
737 737
 
738 738
 }
739 739
 
@@ -742,7 +742,7 @@  discard block
 block discarded – undo
742 742
  */
743 743
 function wpinv_text_callback( $args ) {
744 744
 
745
-	?>
745
+    ?>
746 746
 		<label style="width: 100%;">
747 747
 			<input type="text" <?php wpinv_settings_attrs_helper( $args ); ?>>
748 748
 			<?php getpaid_settings_description_callback( $args ); ?>
@@ -756,7 +756,7 @@  discard block
 block discarded – undo
756 756
  */
757 757
 function wpinv_number_callback( $args ) {
758 758
 
759
-	?>
759
+    ?>
760 760
 		<label style="width: 100%;">
761 761
 			<input type="number" step="<?php echo esc_attr( $args['step'] ); ?>" max="<?php echo intval( $args['max'] ); ?>" min="<?php echo intval( $args['min'] ); ?>" <?php wpinv_settings_attrs_helper( $args ); ?>>
762 762
 			<?php getpaid_settings_description_callback( $args ); ?>
@@ -768,34 +768,34 @@  discard block
 block discarded – undo
768 768
 function wpinv_textarea_callback( $args ) {
769 769
 
770 770
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
771
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
772
-	$value   = wpinv_get_option( $args['id'], $std );
771
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
772
+    $value   = wpinv_get_option( $args['id'], $std );
773 773
 
774 774
     $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
775 775
     $class = ( isset( $args['class'] ) && ! is_null( $args['class'] ) ) ? $args['class'] : 'large-text';
776 776
 
777
-	echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
778
-	echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
777
+    echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
778
+    echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
779 779
 
780 780
 }
781 781
 
782 782
 function wpinv_password_callback( $args ) {
783 783
 
784 784
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
785
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
786
-	$value   = wpinv_get_option( $args['id'], $std );
785
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
786
+    $value   = wpinv_get_option( $args['id'], $std );
787 787
 
788
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
789
-	echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
790
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
788
+    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
789
+    echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
790
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
791 791
 
792 792
 }
793 793
 
794 794
 function wpinv_missing_callback( $args ) {
795
-	printf(
796
-		esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
797
-		'<strong>' . esc_html( $args['id'] ) . '</strong>'
798
-	);
795
+    printf(
796
+        esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
797
+        '<strong>' . esc_html( $args['id'] ) . '</strong>'
798
+    );
799 799
 }
800 800
 
801 801
 /**
@@ -803,13 +803,13 @@  discard block
 block discarded – undo
803 803
  */
804 804
 function wpinv_select_callback( $args ) {
805 805
 
806
-	$desc   = wp_kses_post( $args['desc'] );
807
-	$desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
808
-	$value  = isset( $args['std'] ) ? $args['std'] : '';
809
-	$value  = wpinv_get_option( $args['id'], $value );
810
-	$rand   = uniqid( 'random_id' );
806
+    $desc   = wp_kses_post( $args['desc'] );
807
+    $desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
808
+    $value  = isset( $args['std'] ) ? $args['std'] : '';
809
+    $value  = wpinv_get_option( $args['id'], $value );
810
+    $rand   = uniqid( 'random_id' );
811 811
 
812
-	?>
812
+    ?>
813 813
 		<label style="width: 100%;">
814 814
 			<select <?php wpinv_settings_attrs_helper( $args ); ?> data-allow-clear="true">
815 815
 				<?php foreach ( $args['options'] as $option => $name ) : ?>
@@ -842,50 +842,50 @@  discard block
 block discarded – undo
842 842
 function wpinv_color_select_callback( $args ) {
843 843
 
844 844
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
845
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
846
-	$value   = wpinv_get_option( $args['id'], $std );
845
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
846
+    $value   = wpinv_get_option( $args['id'], $std );
847 847
 
848
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
848
+    echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
849 849
 
850
-	foreach ( $args['options'] as $option => $color ) {
851
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
852
-	}
850
+    foreach ( $args['options'] as $option => $color ) {
851
+        echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
852
+    }
853 853
 
854
-	echo '</select>';
855
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
854
+    echo '</select>';
855
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
856 856
 
857 857
 }
858 858
 
859 859
 function wpinv_rich_editor_callback( $args ) {
860
-	global $wp_version;
860
+    global $wp_version;
861 861
 
862 862
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
863 863
 
864
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
865
-	$value   = wpinv_get_option( $args['id'], $std );
864
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
865
+    $value   = wpinv_get_option( $args['id'], $std );
866 866
 
867
-	if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
868
-		$value = $std;
869
-	}
867
+    if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
868
+        $value = $std;
869
+    }
870 870
 
871
-	$rows = isset( $args['size'] ) ? $args['size'] : 20;
871
+    $rows = isset( $args['size'] ) ? $args['size'] : 20;
872 872
 
873
-	echo '<div class="getpaid-settings-editor-input">';
874
-	if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
875
-		wp_editor(
873
+    echo '<div class="getpaid-settings-editor-input">';
874
+    if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
875
+        wp_editor(
876 876
             stripslashes( $value ),
877 877
             'wpinv_settings_' . esc_attr( $args['id'] ),
878 878
             array(
879
-				'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
880
-				'textarea_rows' => absint( $rows ),
881
-				'media_buttons' => false,
879
+                'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
880
+                'textarea_rows' => absint( $rows ),
881
+                'media_buttons' => false,
882 882
             )
883 883
         );
884
-	} else {
885
-		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
886
-	}
884
+    } else {
885
+        echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
886
+    }
887 887
 
888
-	echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
888
+    echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
889 889
 
890 890
 }
891 891
 
@@ -893,51 +893,51 @@  discard block
 block discarded – undo
893 893
 
894 894
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
895 895
 
896
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
897
-	$value   = wpinv_get_option( $args['id'], $std );
896
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
897
+    $value   = wpinv_get_option( $args['id'], $std );
898 898
 
899
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
900
-	echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
901
-	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
902
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
899
+    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
900
+    echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
901
+    echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
902
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
903 903
 
904 904
 }
905 905
 
906 906
 function wpinv_color_callback( $args ) {
907 907
 
908
-	$std         = isset( $args['std'] ) ? $args['std'] : '';
909
-	$value       = wpinv_get_option( $args['id'], $std );
908
+    $std         = isset( $args['std'] ) ? $args['std'] : '';
909
+    $value       = wpinv_get_option( $args['id'], $std );
910 910
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
911 911
 
912
-	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
913
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
912
+    echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
913
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
914 914
 
915 915
 }
916 916
 
917 917
 function wpinv_country_states_callback( $args ) {
918 918
 
919
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
920
-	$value   = wpinv_get_option( $args['id'], $std );
919
+    $std     = isset( $args['std'] ) ? $args['std'] : '';
920
+    $value   = wpinv_get_option( $args['id'], $std );
921 921
 
922 922
     $sanitize_id = wpinv_sanitize_key( $args['id'] );
923 923
 
924
-	if ( isset( $args['placeholder'] ) ) {
925
-		$placeholder = $args['placeholder'];
926
-	} else {
927
-		$placeholder = '';
928
-	}
924
+    if ( isset( $args['placeholder'] ) ) {
925
+        $placeholder = $args['placeholder'];
926
+    } else {
927
+        $placeholder = '';
928
+    }
929 929
 
930
-	$states = wpinv_get_country_states();
930
+    $states = wpinv_get_country_states();
931 931
 
932
-	$class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
933
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
932
+    $class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
933
+    echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
934 934
 
935
-	foreach ( $states as $option => $name ) {
936
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
937
-	}
935
+    foreach ( $states as $option => $name ) {
936
+        echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
937
+    }
938 938
 
939
-	echo '</select>';
940
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
939
+    echo '</select>';
940
+    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
941 941
 
942 942
 }
943 943
 
@@ -946,7 +946,7 @@  discard block
 block discarded – undo
946 946
  */
947 947
 function wpinv_tax_rates_callback() {
948 948
 
949
-	?>
949
+    ?>
950 950
 		</td>
951 951
 	</tr>
952 952
 	<tr class="bsui">
@@ -962,9 +962,9 @@  discard block
 block discarded – undo
962 962
  */
963 963
 function wpinv_tax_rate_callback( $tax_rate, $key ) {
964 964
 
965
-	$key                      = sanitize_key( $key );
966
-	$tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
967
-	include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
965
+    $key                      = sanitize_key( $key );
966
+    $tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
967
+    include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
968 968
 
969 969
 }
970 970
 
@@ -973,7 +973,7 @@  discard block
 block discarded – undo
973 973
  */
974 974
 function wpinv_tax_rules_callback() {
975 975
 
976
-	?>
976
+    ?>
977 977
 		</td>
978 978
 	</tr>
979 979
 	<tr class="bsui">
@@ -1011,14 +1011,14 @@  discard block
 block discarded – undo
1011 1011
                 <td>
1012 1012
 					<a href="
1013 1013
                     <?php
1014
-						echo esc_url(
1015
-							wp_nonce_url(
1016
-								add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1017
-								'getpaid-nonce',
1018
-								'getpaid-nonce'
1019
-							)
1020
-						);
1021
-					?>
1014
+                        echo esc_url(
1015
+                            wp_nonce_url(
1016
+                                add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1017
+                                'getpaid-nonce',
1018
+                                'getpaid-nonce'
1019
+                            )
1020
+                        );
1021
+                    ?>
1022 1022
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1023 1023
                 </td>
1024 1024
             </tr>
@@ -1030,14 +1030,14 @@  discard block
 block discarded – undo
1030 1030
                 <td>
1031 1031
 					<a href="
1032 1032
                     <?php
1033
-						echo esc_url(
1034
-							wp_nonce_url(
1035
-								add_query_arg( 'getpaid-admin-action', 'refresh_permalinks' ),
1036
-								'getpaid-nonce',
1037
-								'getpaid-nonce'
1038
-							)
1039
-						);
1040
-					?>
1033
+                        echo esc_url(
1034
+                            wp_nonce_url(
1035
+                                add_query_arg( 'getpaid-admin-action', 'refresh_permalinks' ),
1036
+                                'getpaid-nonce',
1037
+                                'getpaid-nonce'
1038
+                            )
1039
+                        );
1040
+                    ?>
1041 1041
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1042 1042
                 </td>
1043 1043
             </tr>
@@ -1049,14 +1049,14 @@  discard block
 block discarded – undo
1049 1049
                 <td>
1050 1050
 					<a href="
1051 1051
                     <?php
1052
-						echo esc_url(
1053
-							wp_nonce_url(
1054
-								add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1055
-								'getpaid-nonce',
1056
-								'getpaid-nonce'
1057
-							)
1058
-						);
1059
-					?>
1052
+                        echo esc_url(
1053
+                            wp_nonce_url(
1054
+                                add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1055
+                                'getpaid-nonce',
1056
+                                'getpaid-nonce'
1057
+                            )
1058
+                        );
1059
+                    ?>
1060 1060
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1061 1061
                 </td>
1062 1062
             </tr>
@@ -1068,14 +1068,14 @@  discard block
 block discarded – undo
1068 1068
                 <td>
1069 1069
 					<a href="
1070 1070
                     <?php
1071
-						echo esc_url(
1072
-							wp_nonce_url(
1073
-								add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1074
-								'getpaid-nonce',
1075
-								'getpaid-nonce'
1076
-							)
1077
-						);
1078
-					?>
1071
+                        echo esc_url(
1072
+                            wp_nonce_url(
1073
+                                add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1074
+                                'getpaid-nonce',
1075
+                                'getpaid-nonce'
1076
+                            )
1077
+                        );
1078
+                    ?>
1079 1079
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1080 1080
                 </td>
1081 1081
             </tr>
@@ -1088,14 +1088,14 @@  discard block
 block discarded – undo
1088 1088
                 <td>
1089 1089
 					<a href="
1090 1090
                     <?php
1091
-						echo esc_url(
1092
-							wp_nonce_url(
1093
-								add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1094
-								'getpaid-nonce',
1095
-								'getpaid-nonce'
1096
-							)
1097
-						);
1098
-					?>
1091
+                        echo esc_url(
1092
+                            wp_nonce_url(
1093
+                                add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1094
+                                'getpaid-nonce',
1095
+                                'getpaid-nonce'
1096
+                            )
1097
+                        );
1098
+                    ?>
1099 1099
                     " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1100 1100
                 </td>
1101 1101
             </tr>
@@ -1108,8 +1108,8 @@  discard block
 block discarded – undo
1108 1108
                 <td>
1109 1109
 					<a href="
1110 1110
                     <?php
1111
-						echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1112
-					?>
1111
+                        echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1112
+                    ?>
1113 1113
                     " class="button button-primary"><?php esc_html_e( 'Launch', 'invoicing' ); ?></a>
1114 1114
                 </td>
1115 1115
             </tr>
@@ -1123,19 +1123,19 @@  discard block
 block discarded – undo
1123 1123
 
1124 1124
 
1125 1125
 function wpinv_descriptive_text_callback( $args ) {
1126
-	echo wp_kses_post( $args['desc'] );
1126
+    echo wp_kses_post( $args['desc'] );
1127 1127
 }
1128 1128
 
1129 1129
 function wpinv_raw_html_callback( $args ) {
1130
-	echo wp_kses( $args['desc'], getpaid_allowed_html() );
1130
+    echo wp_kses( $args['desc'], getpaid_allowed_html() );
1131 1131
 }
1132 1132
 
1133 1133
 function wpinv_hook_callback( $args ) {
1134
-	do_action( 'wpinv_' . $args['id'], $args );
1134
+    do_action( 'wpinv_' . $args['id'], $args );
1135 1135
 }
1136 1136
 
1137 1137
 function wpinv_set_settings_cap() {
1138
-	return wpinv_get_capability();
1138
+    return wpinv_get_capability();
1139 1139
 }
1140 1140
 add_filter( 'option_page_capability_wpinv_settings', 'wpinv_set_settings_cap' );
1141 1141
 
@@ -1159,15 +1159,15 @@  discard block
 block discarded – undo
1159 1159
  */
1160 1160
 function wpinv_get_merge_tags_help_text( $subscription = false ) {
1161 1161
 
1162
-	$url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1163
-	$link = sprintf(
1164
-		'<strong><a href="%s" target="_blank">%s</a></strong>',
1165
-		$url,
1166
-		esc_html__( 'View available merge tags.', 'invoicing' )
1167
-	);
1162
+    $url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1163
+    $link = sprintf(
1164
+        '<strong><a href="%s" target="_blank">%s</a></strong>',
1165
+        $url,
1166
+        esc_html__( 'View available merge tags.', 'invoicing' )
1167
+    );
1168 1168
 
1169
-	$description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1169
+    $description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1170 1170
 
1171
-	return "$description $link";
1171
+    return "$description $link";
1172 1172
 
1173 1173
 }
Please login to merge, or discard this patch.
Spacing   +386 added lines, -386 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @since   1.0.0
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Retrieves all default settings.
@@ -16,13 +16,13 @@  discard block
 block discarded – undo
16 16
 function wpinv_get_settings() {
17 17
     $defaults = array();
18 18
 
19
-    foreach ( array_values( wpinv_get_registered_settings() ) as $tab_settings ) {
19
+    foreach (array_values(wpinv_get_registered_settings()) as $tab_settings) {
20 20
 
21
-        foreach ( array_values( $tab_settings ) as $section_settings ) {
21
+        foreach (array_values($tab_settings) as $section_settings) {
22 22
 
23
-            foreach ( $section_settings as $key => $setting ) {
24
-                if ( isset( $setting['std'] ) ) {
25
-                    $defaults[ $key ] = $setting['std'];
23
+            foreach ($section_settings as $key => $setting) {
24
+                if (isset($setting['std'])) {
25
+                    $defaults[$key] = $setting['std'];
26 26
                 }
27 27
             }
28 28
 		}
@@ -41,12 +41,12 @@  discard block
 block discarded – undo
41 41
     global $wpinv_options;
42 42
 
43 43
     // Try fetching the saved options.
44
-    if ( empty( $wpinv_options ) ) {
45
-        $wpinv_options = get_option( 'wpinv_settings' );
44
+    if (empty($wpinv_options)) {
45
+        $wpinv_options = get_option('wpinv_settings');
46 46
     }
47 47
 
48 48
     // If that fails, don't fetch the default settings to prevent a loop.
49
-    if ( ! is_array( $wpinv_options ) ) {
49
+    if (!is_array($wpinv_options)) {
50 50
         $wpinv_options = array();
51 51
     }
52 52
 
@@ -60,13 +60,13 @@  discard block
 block discarded – undo
60 60
  * @param mixed $default The default value to use if the setting has not been set.
61 61
  * @return mixed
62 62
  */
63
-function wpinv_get_option( $key = '', $default = false ) {
63
+function wpinv_get_option($key = '', $default = false) {
64 64
 
65 65
     $options = wpinv_get_options();
66
-    $value   = isset( $options[ $key ] ) ? $options[ $key ] : $default;
67
-    $value   = apply_filters( 'wpinv_get_option', $value, $key, $default );
66
+    $value   = isset($options[$key]) ? $options[$key] : $default;
67
+    $value   = apply_filters('wpinv_get_option', $value, $key, $default);
68 68
 
69
-    return apply_filters( 'wpinv_get_option_' . $key, $value, $key, $default );
69
+    return apply_filters('wpinv_get_option_' . $key, $value, $key, $default);
70 70
 }
71 71
 
72 72
 /**
@@ -75,11 +75,11 @@  discard block
 block discarded – undo
75 75
  * @param array $options the new options.
76 76
  * @return bool
77 77
  */
78
-function wpinv_update_options( $options ) {
78
+function wpinv_update_options($options) {
79 79
     global $wpinv_options;
80 80
 
81 81
     // update the option.
82
-    if ( is_array( $options ) && update_option( 'wpinv_settings', $options ) ) {
82
+    if (is_array($options) && update_option('wpinv_settings', $options)) {
83 83
         $wpinv_options = $options;
84 84
         return true;
85 85
     }
@@ -94,24 +94,24 @@  discard block
 block discarded – undo
94 94
  * @param mixed $value The setting value.
95 95
  * @return bool
96 96
  */
97
-function wpinv_update_option( $key = '', $value = false ) {
97
+function wpinv_update_option($key = '', $value = false) {
98 98
 
99 99
     // If no key, exit.
100
-    if ( empty( $key ) ) {
100
+    if (empty($key)) {
101 101
         return false;
102 102
     }
103 103
 
104 104
     // Maybe delete the option instead.
105
-    if ( is_null( $value ) ) {
106
-        return wpinv_delete_option( $key );
105
+    if (is_null($value)) {
106
+        return wpinv_delete_option($key);
107 107
     }
108 108
 
109 109
     // Prepare the new options.
110 110
     $options         = wpinv_get_options();
111
-    $options[ $key ] = apply_filters( 'wpinv_update_option', $value, $key );
111
+    $options[$key] = apply_filters('wpinv_update_option', $value, $key);
112 112
 
113 113
     // Save the new options.
114
-    return wpinv_update_options( $options );
114
+    return wpinv_update_options($options);
115 115
 
116 116
 }
117 117
 
@@ -121,18 +121,18 @@  discard block
 block discarded – undo
121 121
  * @param string $key the setting key.
122 122
  * @return bool
123 123
  */
124
-function wpinv_delete_option( $key = '' ) {
124
+function wpinv_delete_option($key = '') {
125 125
 
126 126
     // If no key, exit
127
-    if ( empty( $key ) ) {
127
+    if (empty($key)) {
128 128
         return false;
129 129
     }
130 130
 
131 131
     $options = wpinv_get_options();
132 132
 
133
-    if ( isset( $options[ $key ] ) ) {
134
-        unset( $options[ $key ] );
135
-        return wpinv_update_options( $options );
133
+    if (isset($options[$key])) {
134
+        unset($options[$key]);
135
+        return wpinv_update_options($options);
136 136
     }
137 137
 
138 138
     return true;
@@ -144,22 +144,22 @@  discard block
 block discarded – undo
144 144
  *
145 145
  */
146 146
 function wpinv_register_settings() {
147
-	do_action( 'getpaid_before_register_settings' );
147
+	do_action('getpaid_before_register_settings');
148 148
 
149 149
     // Loop through all tabs.
150
-    foreach ( wpinv_get_registered_settings() as $tab => $sections ) {
150
+    foreach (wpinv_get_registered_settings() as $tab => $sections) {
151 151
 
152 152
         // In each tab, loop through sections.
153
-        foreach ( $sections as $section => $settings ) {
153
+        foreach ($sections as $section => $settings) {
154 154
 
155 155
             // Check for backwards compatibility
156
-            $section_tabs = wpinv_get_settings_tab_sections( $tab );
157
-            if ( ! is_array( $section_tabs ) || ! array_key_exists( $section, $section_tabs ) ) {
156
+            $section_tabs = wpinv_get_settings_tab_sections($tab);
157
+            if (!is_array($section_tabs) || !array_key_exists($section, $section_tabs)) {
158 158
                 $section = 'main';
159 159
                 $settings = $sections;
160 160
             }
161 161
 
162
-			do_action( "getpaid_register_{$tab}_{$section}" );
162
+			do_action("getpaid_register_{$tab}_{$section}");
163 163
 
164 164
             // Register the setting section.
165 165
             add_settings_section(
@@ -169,20 +169,20 @@  discard block
 block discarded – undo
169 169
                 'wpinv_settings_' . $tab . '_' . $section
170 170
             );
171 171
 
172
-            foreach ( $settings as $option ) {
173
-                if ( ! empty( $option['id'] ) ) {
174
-                    wpinv_register_settings_option( $tab, $section, $option );
172
+            foreach ($settings as $option) {
173
+                if (!empty($option['id'])) {
174
+                    wpinv_register_settings_option($tab, $section, $option);
175 175
                 }
176 176
             }
177 177
 }
178 178
     }
179 179
 
180 180
     // Creates our settings in the options table.
181
-    register_setting( 'wpinv_settings', 'wpinv_settings', 'wpinv_settings_sanitize' );
181
+    register_setting('wpinv_settings', 'wpinv_settings', 'wpinv_settings_sanitize');
182 182
 
183
-	do_action( 'getpaid_after_register_settings' );
183
+	do_action('getpaid_after_register_settings');
184 184
 }
185
-add_action( 'admin_init', 'wpinv_register_settings' );
185
+add_action('admin_init', 'wpinv_register_settings');
186 186
 
187 187
 /**
188 188
  * Register a single settings option.
@@ -192,49 +192,49 @@  discard block
 block discarded – undo
192 192
  * @param string $option
193 193
  *
194 194
  */
195
-function wpinv_register_settings_option( $tab, $section, $option ) {
195
+function wpinv_register_settings_option($tab, $section, $option) {
196 196
 
197
-    $name       = isset( $option['name'] ) ? $option['name'] : '';
197
+    $name       = isset($option['name']) ? $option['name'] : '';
198 198
     $cb         = "wpinv_{$option['type']}_callback";
199 199
     $section    = "wpinv_settings_{$tab}_$section";
200
-	$is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page'];
200
+	$is_wizzard = is_admin() && isset($_GET['page']) && 'gp-setup' == $_GET['page'];
201 201
 
202
-	if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) {
203
-		$tip   = wpinv_clean( $option['desc'] );
202
+	if (isset($option['desc']) && (!$is_wizzard && !empty($option['help-tip']))) {
203
+		$tip   = wpinv_clean($option['desc']);
204 204
 		$name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>";
205
-		unset( $option['desc'] );
205
+		unset($option['desc']);
206 206
 	}
207 207
 
208 208
     // Loop through all tabs.
209 209
     add_settings_field(
210 210
         'wpinv_settings[' . $option['id'] . ']',
211 211
         $name,
212
-        function_exists( $cb ) ? $cb : 'wpinv_missing_callback',
212
+        function_exists($cb) ? $cb : 'wpinv_missing_callback',
213 213
         $section,
214 214
         $section,
215 215
         array(
216 216
             'section'         => $section,
217
-            'id'              => isset( $option['id'] ) ? $option['id'] : uniqid( 'wpinv-' ),
218
-            'desc'            => isset( $option['desc'] ) ? $option['desc'] : '',
217
+            'id'              => isset($option['id']) ? $option['id'] : uniqid('wpinv-'),
218
+            'desc'            => isset($option['desc']) ? $option['desc'] : '',
219 219
             'name'            => $name,
220
-            'size'            => isset( $option['size'] ) ? $option['size'] : null,
221
-            'options'         => isset( $option['options'] ) ? $option['options'] : '',
222
-            'selected'        => isset( $option['selected'] ) ? $option['selected'] : null,
223
-            'std'             => isset( $option['std'] ) ? $option['std'] : '',
224
-            'min'             => isset( $option['min'] ) ? $option['min'] : 0,
225
-            'max'             => isset( $option['max'] ) ? $option['max'] : 999999,
226
-            'step'            => isset( $option['step'] ) ? $option['step'] : 1,
227
-            'placeholder'     => isset( $option['placeholder'] ) ? $option['placeholder'] : null,
228
-            'allow_blank'     => isset( $option['allow_blank'] ) ? $option['allow_blank'] : true,
229
-            'readonly'        => isset( $option['readonly'] ) ? $option['readonly'] : false,
230
-            'faux'            => isset( $option['faux'] ) ? $option['faux'] : false,
231
-            'onchange'        => isset( $option['onchange'] ) ? $option['onchange'] : '',
232
-            'custom'          => isset( $option['custom'] ) ? $option['custom'] : '',
233
-			'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '',
234
-			'class'           => isset( $option['class'] ) ? $option['class'] : '',
235
-			'style'           => isset( $option['style'] ) ? $option['style'] : '',
236
-            'cols'            => isset( $option['cols'] ) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
237
-            'rows'            => isset( $option['rows'] ) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
220
+            'size'            => isset($option['size']) ? $option['size'] : null,
221
+            'options'         => isset($option['options']) ? $option['options'] : '',
222
+            'selected'        => isset($option['selected']) ? $option['selected'] : null,
223
+            'std'             => isset($option['std']) ? $option['std'] : '',
224
+            'min'             => isset($option['min']) ? $option['min'] : 0,
225
+            'max'             => isset($option['max']) ? $option['max'] : 999999,
226
+            'step'            => isset($option['step']) ? $option['step'] : 1,
227
+            'placeholder'     => isset($option['placeholder']) ? $option['placeholder'] : null,
228
+            'allow_blank'     => isset($option['allow_blank']) ? $option['allow_blank'] : true,
229
+            'readonly'        => isset($option['readonly']) ? $option['readonly'] : false,
230
+            'faux'            => isset($option['faux']) ? $option['faux'] : false,
231
+            'onchange'        => isset($option['onchange']) ? $option['onchange'] : '',
232
+            'custom'          => isset($option['custom']) ? $option['custom'] : '',
233
+			'default_content' => isset($option['default_content']) ? $option['default_content'] : '',
234
+			'class'           => isset($option['class']) ? $option['class'] : '',
235
+			'style'           => isset($option['style']) ? $option['style'] : '',
236
+            'cols'            => isset($option['cols']) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50,
237
+            'rows'            => isset($option['rows']) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5,
238 238
         )
239 239
     );
240 240
 
@@ -246,7 +246,7 @@  discard block
 block discarded – undo
246 246
  * @return array
247 247
  */
248 248
 function wpinv_get_registered_settings() {
249
-	return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) );
249
+	return array_filter(apply_filters('wpinv_registered_settings', wpinv_get_data('admin-settings')));
250 250
 }
251 251
 
252 252
 /**
@@ -255,7 +255,7 @@  discard block
 block discarded – undo
255 255
  * @return array
256 256
  */
257 257
 function getpaid_get_integration_settings() {
258
-    return apply_filters( 'getpaid_integration_settings', array() );
258
+    return apply_filters('getpaid_integration_settings', array());
259 259
 }
260 260
 
261 261
 /**
@@ -263,153 +263,153 @@  discard block
 block discarded – undo
263 263
  *
264 264
  * @return array
265 265
  */
266
-function wpinv_settings_sanitize( $input = array() ) {
266
+function wpinv_settings_sanitize($input = array()) {
267 267
 
268 268
 	$wpinv_options = wpinv_get_options();
269 269
 	$raw_referrer  = wp_get_raw_referer();
270 270
 
271
-    if ( empty( $raw_referrer ) ) {
272
-		return array_merge( $wpinv_options, $input );
271
+    if (empty($raw_referrer)) {
272
+		return array_merge($wpinv_options, $input);
273 273
     }
274 274
 
275
-    wp_parse_str( $raw_referrer, $referrer );
275
+    wp_parse_str($raw_referrer, $referrer);
276 276
 
277
-	if ( in_array( 'gp-setup', $referrer ) ) {
278
-		return array_merge( $wpinv_options, $input );
277
+	if (in_array('gp-setup', $referrer)) {
278
+		return array_merge($wpinv_options, $input);
279 279
 	}
280 280
 
281 281
     $settings = wpinv_get_registered_settings();
282
-    $tab      = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general';
283
-    $section  = isset( $referrer['section'] ) ? $referrer['section'] : 'main';
282
+    $tab      = isset($referrer['tab']) ? $referrer['tab'] : 'general';
283
+    $section  = isset($referrer['section']) ? $referrer['section'] : 'main';
284 284
 
285 285
     $input = $input ? $input : array();
286
-    $input = apply_filters( 'wpinv_settings_tab_' . $tab . '_sanitize', $input );
287
-    $input = apply_filters( 'wpinv_settings_' . $tab . '-' . $section . '_sanitize', $input );
286
+    $input = apply_filters('wpinv_settings_tab_' . $tab . '_sanitize', $input);
287
+    $input = apply_filters('wpinv_settings_' . $tab . '-' . $section . '_sanitize', $input);
288 288
 
289 289
     // Loop through each setting being saved and pass it through a sanitization filter
290
-    foreach ( $input as $key => $value ) {
290
+    foreach ($input as $key => $value) {
291 291
 
292 292
         // Get the setting type (checkbox, select, etc)
293
-        $type = isset( $settings[ $tab ][ $section ][ $key ]['type'] ) ? $settings[ $tab ][ $section ][ $key ]['type'] : false;
293
+        $type = isset($settings[$tab][$section][$key]['type']) ? $settings[$tab][$section][$key]['type'] : false;
294 294
 
295
-        if ( $type ) {
295
+        if ($type) {
296 296
             // Field type specific filter
297
-            $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$type", $value, $key );
297
+            $input[$key] = apply_filters("wpinv_settings_sanitize_$type", $value, $key);
298 298
         }
299 299
 
300 300
         // General filter
301
-		$input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key );
301
+		$input[$key] = apply_filters('wpinv_settings_sanitize', $input[$key], $key);
302 302
 
303 303
 		// Key specific filter.
304
-		$input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] );
304
+		$input[$key] = apply_filters("wpinv_settings_sanitize_$key", $input[$key]);
305 305
     }
306 306
 
307 307
     // Loop through the whitelist and unset any that are empty for the tab being saved
308
-    $main_settings    = isset( $settings[ $tab ] ) ? $settings[ $tab ] : array(); // Check for extensions that aren't using new sections
309
-    $section_settings = ! empty( $settings[ $tab ][ $section ] ) ? $settings[ $tab ][ $section ] : array();
308
+    $main_settings    = isset($settings[$tab]) ? $settings[$tab] : array(); // Check for extensions that aren't using new sections
309
+    $section_settings = !empty($settings[$tab][$section]) ? $settings[$tab][$section] : array();
310 310
 
311
-    $found_settings   = array_merge( $main_settings, $section_settings );
311
+    $found_settings   = array_merge($main_settings, $section_settings);
312 312
 
313
-    if ( ! empty( $found_settings ) ) {
314
-        foreach ( $found_settings as $key => $value ) {
313
+    if (!empty($found_settings)) {
314
+        foreach ($found_settings as $key => $value) {
315 315
 
316 316
             // settings used to have numeric keys, now they have keys that match the option ID. This ensures both methods work
317
-            if ( is_numeric( $key ) ) {
317
+            if (is_numeric($key)) {
318 318
                 $key = $value['id'];
319 319
             }
320 320
 
321
-            if ( ! isset( $input[ $key ] ) && isset( $wpinv_options[ $key ] ) ) {
322
-                unset( $wpinv_options[ $key ] );
321
+            if (!isset($input[$key]) && isset($wpinv_options[$key])) {
322
+                unset($wpinv_options[$key]);
323 323
             }
324 324
         }
325 325
     }
326 326
 
327 327
     // Merge our new settings with the existing
328
-    $output = array_merge( $wpinv_options, $input );
328
+    $output = array_merge($wpinv_options, $input);
329 329
 
330
-    add_settings_error( 'wpinv-notices', '', __( 'Settings updated.', 'invoicing' ), 'updated' );
330
+    add_settings_error('wpinv-notices', '', __('Settings updated.', 'invoicing'), 'updated');
331 331
 
332 332
     return $output;
333 333
 }
334
-add_filter( 'wpinv_settings_sanitize_text', 'trim', 10, 1 );
335
-add_filter( 'wpinv_settings_sanitize_tax_rate', 'wpinv_sanitize_amount' );
334
+add_filter('wpinv_settings_sanitize_text', 'trim', 10, 1);
335
+add_filter('wpinv_settings_sanitize_tax_rate', 'wpinv_sanitize_amount');
336 336
 
337
-function wpinv_settings_sanitize_tax_rates( $input ) {
338
-    if ( ! wpinv_current_user_can_manage_invoicing() ) {
337
+function wpinv_settings_sanitize_tax_rates($input) {
338
+    if (!wpinv_current_user_can_manage_invoicing()) {
339 339
         return $input;
340 340
     }
341 341
 
342
-    $new_rates = ! empty( $_POST['tax_rates'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rates'] ) ) : array();
342
+    $new_rates = !empty($_POST['tax_rates']) ? wp_kses_post_deep(array_values($_POST['tax_rates'])) : array();
343 343
     $tax_rates = array();
344 344
 
345
-    foreach ( $new_rates as $rate ) {
345
+    foreach ($new_rates as $rate) {
346 346
 
347
-		$rate['rate']    = wpinv_sanitize_amount( $rate['rate'] );
348
-		$rate['name']    = sanitize_text_field( $rate['name'] );
349
-		$rate['state']   = sanitize_text_field( $rate['state'] );
350
-		$rate['country'] = sanitize_text_field( $rate['country'] );
351
-		$rate['global']  = empty( $rate['state'] );
347
+		$rate['rate']    = wpinv_sanitize_amount($rate['rate']);
348
+		$rate['name']    = sanitize_text_field($rate['name']);
349
+		$rate['state']   = sanitize_text_field($rate['state']);
350
+		$rate['country'] = sanitize_text_field($rate['country']);
351
+		$rate['global']  = empty($rate['state']);
352 352
 		$tax_rates[]     = $rate;
353 353
 
354 354
 	}
355 355
 
356
-    update_option( 'wpinv_tax_rates', $tax_rates );
356
+    update_option('wpinv_tax_rates', $tax_rates);
357 357
 
358 358
     return $input;
359 359
 }
360
-add_filter( 'wpinv_settings_taxes-rates_sanitize', 'wpinv_settings_sanitize_tax_rates' );
360
+add_filter('wpinv_settings_taxes-rates_sanitize', 'wpinv_settings_sanitize_tax_rates');
361 361
 
362
-function wpinv_settings_sanitize_tax_rules( $input ) {
363
-    if ( ! wpinv_current_user_can_manage_invoicing() ) {
362
+function wpinv_settings_sanitize_tax_rules($input) {
363
+    if (!wpinv_current_user_can_manage_invoicing()) {
364 364
         return $input;
365 365
     }
366 366
 
367
-	if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) {
367
+	if (empty($_POST['wpinv_tax_rules_nonce']) || !wp_verify_nonce($_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules')) {
368 368
 		return $input;
369 369
 	}
370 370
 
371
-    $new_rules = ! empty( $_POST['tax_rules'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rules'] ) ) : array();
371
+    $new_rules = !empty($_POST['tax_rules']) ? wp_kses_post_deep(array_values($_POST['tax_rules'])) : array();
372 372
     $tax_rules = array();
373 373
 
374
-    foreach ( $new_rules as $rule ) {
374
+    foreach ($new_rules as $rule) {
375 375
 
376
-		$rule['key']      = sanitize_title_with_dashes( $rule['key'] );
377
-		$rule['label']    = sanitize_text_field( $rule['label'] );
378
-		$rule['tax_base'] = sanitize_text_field( $rule['tax_base'] );
376
+		$rule['key']      = sanitize_title_with_dashes($rule['key']);
377
+		$rule['label']    = sanitize_text_field($rule['label']);
378
+		$rule['tax_base'] = sanitize_text_field($rule['tax_base']);
379 379
 		$tax_rules[]      = $rule;
380 380
 
381 381
 	}
382 382
 
383
-    update_option( 'wpinv_tax_rules', $tax_rules );
383
+    update_option('wpinv_tax_rules', $tax_rules);
384 384
 
385 385
     return $input;
386 386
 }
387
-add_filter( 'wpinv_settings_taxes-rules_sanitize', 'wpinv_settings_sanitize_tax_rules' );
387
+add_filter('wpinv_settings_taxes-rules_sanitize', 'wpinv_settings_sanitize_tax_rules');
388 388
 
389 389
 function wpinv_get_settings_tabs() {
390 390
     $tabs             = array();
391
-    $tabs['general']  = __( 'General', 'invoicing' );
392
-    $tabs['gateways'] = __( 'Payment Gateways', 'invoicing' );
393
-    $tabs['taxes']    = __( 'Taxes', 'invoicing' );
394
-	$tabs['emails']   = __( 'Emails', 'invoicing' );
391
+    $tabs['general']  = __('General', 'invoicing');
392
+    $tabs['gateways'] = __('Payment Gateways', 'invoicing');
393
+    $tabs['taxes']    = __('Taxes', 'invoicing');
394
+	$tabs['emails'] = __('Emails', 'invoicing');
395 395
 
396
-	if ( count( getpaid_get_integration_settings() ) > 0 ) {
397
-		$tabs['integrations'] = __( 'Integrations', 'invoicing' );
396
+	if (count(getpaid_get_integration_settings()) > 0) {
397
+		$tabs['integrations'] = __('Integrations', 'invoicing');
398 398
 	}
399 399
 
400
-    $tabs['privacy']  = __( 'Privacy', 'invoicing' );
401
-    $tabs['misc']     = __( 'Misc', 'invoicing' );
402
-    $tabs['tools']    = __( 'Tools', 'invoicing' );
400
+    $tabs['privacy']  = __('Privacy', 'invoicing');
401
+    $tabs['misc']     = __('Misc', 'invoicing');
402
+    $tabs['tools']    = __('Tools', 'invoicing');
403 403
 
404
-    return apply_filters( 'wpinv_settings_tabs', $tabs );
404
+    return apply_filters('wpinv_settings_tabs', $tabs);
405 405
 }
406 406
 
407
-function wpinv_get_settings_tab_sections( $tab = false ) {
407
+function wpinv_get_settings_tab_sections($tab = false) {
408 408
     $tabs     = false;
409 409
     $sections = wpinv_get_registered_settings_sections();
410 410
 
411
-    if ( $tab && ! empty( $sections[ $tab ] ) ) {
412
-        $tabs = $sections[ $tab ];
411
+    if ($tab && !empty($sections[$tab])) {
412
+        $tabs = $sections[$tab];
413 413
     }
414 414
 
415 415
     return $tabs;
@@ -418,7 +418,7 @@  discard block
 block discarded – undo
418 418
 function wpinv_get_registered_settings_sections() {
419 419
     static $sections = false;
420 420
 
421
-    if ( false !== $sections ) {
421
+    if (false !== $sections) {
422 422
         return $sections;
423 423
     }
424 424
 
@@ -426,229 +426,229 @@  discard block
 block discarded – undo
426 426
         'general'      => apply_filters(
427 427
             'wpinv_settings_sections_general',
428 428
             array(
429
-				'main'             => __( 'General Settings', 'invoicing' ),
430
-				'page_section'     => __( 'Page Settings', 'invoicing' ),
431
-				'currency_section' => __( 'Currency Settings', 'invoicing' ),
432
-				'labels'           => __( 'Label Texts', 'invoicing' ),
429
+				'main'             => __('General Settings', 'invoicing'),
430
+				'page_section'     => __('Page Settings', 'invoicing'),
431
+				'currency_section' => __('Currency Settings', 'invoicing'),
432
+				'labels'           => __('Label Texts', 'invoicing'),
433 433
             )
434 434
         ),
435 435
         'gateways'     => apply_filters(
436 436
             'wpinv_settings_sections_gateways',
437 437
             array(
438
-				'main' => __( 'Gateway Settings', 'invoicing' ),
438
+				'main' => __('Gateway Settings', 'invoicing'),
439 439
             )
440 440
         ),
441 441
         'taxes'        => apply_filters(
442 442
             'wpinv_settings_sections_taxes',
443 443
             array(
444
-				'main'  => __( 'Tax Settings', 'invoicing' ),
445
-				'rules' => __( 'Tax Rules', 'invoicing' ),
446
-				'rates' => __( 'Tax Rates', 'invoicing' ),
447
-				'vat'   => __( 'EU VAT Settings', 'invoicing' ),
444
+				'main'  => __('Tax Settings', 'invoicing'),
445
+				'rules' => __('Tax Rules', 'invoicing'),
446
+				'rates' => __('Tax Rates', 'invoicing'),
447
+				'vat'   => __('EU VAT Settings', 'invoicing'),
448 448
             )
449 449
         ),
450 450
         'emails'       => apply_filters(
451 451
             'wpinv_settings_sections_emails',
452 452
             array(
453
-				'main' => __( 'Email Settings', 'invoicing' ),
453
+				'main' => __('Email Settings', 'invoicing'),
454 454
             )
455 455
         ),
456 456
 
457
-		'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ),
457
+		'integrations' => wp_list_pluck(getpaid_get_integration_settings(), 'label', 'id'),
458 458
 
459 459
         'privacy'      => apply_filters(
460 460
             'wpinv_settings_sections_privacy',
461 461
             array(
462
-				'main' => __( 'Privacy policy', 'invoicing' ),
462
+				'main' => __('Privacy policy', 'invoicing'),
463 463
             )
464 464
         ),
465 465
         'misc'         => apply_filters(
466 466
             'wpinv_settings_sections_misc',
467 467
             array(
468
-				'main'       => __( 'Miscellaneous', 'invoicing' ),
469
-				'custom-css' => __( 'Custom CSS', 'invoicing' ),
468
+				'main'       => __('Miscellaneous', 'invoicing'),
469
+				'custom-css' => __('Custom CSS', 'invoicing'),
470 470
             )
471 471
         ),
472 472
         'tools'        => apply_filters(
473 473
             'wpinv_settings_sections_tools',
474 474
             array(
475
-				'main' => __( 'Diagnostic Tools', 'invoicing' ),
475
+				'main' => __('Diagnostic Tools', 'invoicing'),
476 476
             )
477 477
         ),
478 478
     );
479 479
 
480
-    $sections = apply_filters( 'wpinv_settings_sections', $sections );
480
+    $sections = apply_filters('wpinv_settings_sections', $sections);
481 481
 
482 482
     return $sections;
483 483
 }
484 484
 
485
-function wpinv_get_pages( $with_slug = false, $default_label = null ) {
485
+function wpinv_get_pages($with_slug = false, $default_label = null) {
486 486
 	$pages_options = array();
487 487
 
488
-	if ( $default_label !== null && $default_label !== false ) {
489
-		$pages_options = array( '' => $default_label ); // Blank option
488
+	if ($default_label !== null && $default_label !== false) {
489
+		$pages_options = array('' => $default_label); // Blank option
490 490
 	}
491 491
 
492 492
 	$pages = get_pages();
493
-	if ( $pages ) {
494
-		foreach ( $pages as $page ) {
493
+	if ($pages) {
494
+		foreach ($pages as $page) {
495 495
 			$title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title;
496
-            $pages_options[ $page->ID ] = $title;
496
+            $pages_options[$page->ID] = $title;
497 497
 		}
498 498
 	}
499 499
 
500 500
 	return $pages_options;
501 501
 }
502 502
 
503
-function wpinv_header_callback( $args ) {
504
-	if ( ! empty( $args['desc'] ) ) {
505
-        echo wp_kses_post( $args['desc'] );
503
+function wpinv_header_callback($args) {
504
+	if (!empty($args['desc'])) {
505
+        echo wp_kses_post($args['desc']);
506 506
     }
507 507
 }
508 508
 
509
-function wpinv_hidden_callback( $args ) {
509
+function wpinv_hidden_callback($args) {
510 510
 
511
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
512
-	$value   = wpinv_get_option( $args['id'], $std );
511
+	$std     = isset($args['std']) ? $args['std'] : '';
512
+	$value   = wpinv_get_option($args['id'], $std);
513 513
 
514
-	if ( isset( $args['set_value'] ) ) {
514
+	if (isset($args['set_value'])) {
515 515
 		$value = $args['set_value'];
516 516
 	}
517 517
 
518
-	if ( isset( $args['faux'] ) && true === $args['faux'] ) {
518
+	if (isset($args['faux']) && true === $args['faux']) {
519 519
 		$args['readonly'] = true;
520
-		$name  = '';
520
+		$name = '';
521 521
 	} else {
522
-		$name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']';
522
+		$name = 'wpinv_settings[' . esc_attr($args['id']) . ']';
523 523
 	}
524 524
 
525
-	echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />';
525
+	echo '<input type="hidden" id="wpinv_settings[' . esc_attr($args['id']) . ']" name="' . esc_attr($name) . '" value="' . esc_attr(stripslashes($value)) . '" />';
526 526
 
527 527
 }
528 528
 
529 529
 /**
530 530
  * Displays a checkbox settings callback.
531 531
  */
532
-function wpinv_checkbox_callback( $args ) {
532
+function wpinv_checkbox_callback($args) {
533 533
 
534
-	$std = isset( $args['std'] ) ? $args['std'] : '';
535
-	$std = wpinv_get_option( $args['id'], $std );
536
-	$id  = esc_attr( $args['id'] );
534
+	$std = isset($args['std']) ? $args['std'] : '';
535
+	$std = wpinv_get_option($args['id'], $std);
536
+	$id  = esc_attr($args['id']);
537 537
 
538
-	getpaid_hidden_field( "wpinv_settings[$id]", '0' );
538
+	getpaid_hidden_field("wpinv_settings[$id]", '0');
539 539
 	?>
540 540
 		<label>
541
-			<input id="wpinv-settings-<?php echo esc_attr( $id ); ?>" name="wpinv_settings[<?php echo esc_attr( $id ); ?>]" <?php checked( empty( $std ), false ); ?> value="1" type="checkbox" />
542
-			<?php echo wp_kses_post( $args['desc'] ); ?>
541
+			<input id="wpinv-settings-<?php echo esc_attr($id); ?>" name="wpinv_settings[<?php echo esc_attr($id); ?>]" <?php checked(empty($std), false); ?> value="1" type="checkbox" />
542
+			<?php echo wp_kses_post($args['desc']); ?>
543 543
 		</label>
544 544
 	<?php
545 545
 }
546 546
 
547
-function wpinv_multicheck_callback( $args ) {
547
+function wpinv_multicheck_callback($args) {
548 548
 
549
-	$sanitize_id = wpinv_sanitize_key( $args['id'] );
550
-	$class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
549
+	$sanitize_id = wpinv_sanitize_key($args['id']);
550
+	$class = !empty($args['class']) ? ' ' . esc_attr($args['class']) : '';
551 551
 
552
-	if ( ! empty( $args['options'] ) ) {
552
+	if (!empty($args['options'])) {
553 553
 
554
-		$std     = isset( $args['std'] ) ? $args['std'] : array();
555
-		$value   = wpinv_get_option( $args['id'], $std );
554
+		$std     = isset($args['std']) ? $args['std'] : array();
555
+		$value   = wpinv_get_option($args['id'], $std);
556 556
 
557
-		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">';
558
-        foreach ( $args['options'] as $key => $option ) :
559
-			$sanitize_key = esc_attr( wpinv_sanitize_key( $key ) );
560
-			if ( in_array( $sanitize_key, $value ) ) {
557
+		echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr($sanitize_id . $class) . '">';
558
+        foreach ($args['options'] as $key => $option) :
559
+			$sanitize_key = esc_attr(wpinv_sanitize_key($key));
560
+			if (in_array($sanitize_key, $value)) {
561 561
 				$enabled = $sanitize_key;
562 562
 			} else {
563 563
 				$enabled = null;
564 564
 			}
565
-			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/>&nbsp;';
566
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>';
565
+			echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" type="checkbox" value="' . esc_attr($sanitize_key) . '" ' . checked($sanitize_key, $enabled, false) . '/>&nbsp;';
566
+			echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']">' . wp_kses_post($option) . '</label></div>';
567 567
 		endforeach;
568 568
 		echo '</div>';
569
-		echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>';
569
+		echo '<p class="description">' . wp_kses_post($args['desc']) . '</p>';
570 570
 	}
571 571
 }
572 572
 
573
-function wpinv_payment_icons_callback( $args ) {
573
+function wpinv_payment_icons_callback($args) {
574 574
 
575
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
576
-	$value   = wpinv_get_option( $args['id'], false );
575
+    $sanitize_id = wpinv_sanitize_key($args['id']);
576
+	$value = wpinv_get_option($args['id'], false);
577 577
 
578
-	if ( ! empty( $args['options'] ) ) {
579
-		foreach ( $args['options'] as $key => $option ) {
580
-            $sanitize_key = wpinv_sanitize_key( $key );
578
+	if (!empty($args['options'])) {
579
+		foreach ($args['options'] as $key => $option) {
580
+            $sanitize_key = wpinv_sanitize_key($key);
581 581
 
582
-			if ( empty( $value ) ) {
582
+			if (empty($value)) {
583 583
 				$enabled = $option;
584 584
 			} else {
585 585
 				$enabled = null;
586 586
 			}
587 587
 
588
-			echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
588
+			echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">';
589 589
 
590
-				echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/>&nbsp;';
590
+				echo '<input name="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . '][' . esc_attr($sanitize_key) . ']" type="checkbox" value="' . esc_attr($option) . '" ' . checked($option, $enabled, false) . '/>&nbsp;';
591 591
 
592
-				if ( wpinv_string_is_image_url( $key ) ) {
593
-				echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
592
+				if (wpinv_string_is_image_url($key)) {
593
+				echo '<img class="payment-icon" src="' . esc_url($key) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
594 594
 				} else {
595
-				$card = strtolower( str_replace( ' ', '', $option ) );
595
+				$card = strtolower(str_replace(' ', '', $option));
596 596
 
597
-				if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) {
598
-					$image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' );
597
+				if (has_filter('wpinv_accepted_payment_' . $card . '_image')) {
598
+					$image = apply_filters('wpinv_accepted_payment_' . $card . '_image', '');
599 599
 					} else {
600
-					$image       = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false );
600
+					$image       = wpinv_locate_template('images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false);
601 601
 					$content_dir = WP_CONTENT_DIR;
602 602
 
603
-					if ( function_exists( 'wp_normalize_path' ) ) {
603
+					if (function_exists('wp_normalize_path')) {
604 604
 						// Replaces backslashes with forward slashes for Windows systems
605
-						$image = wp_normalize_path( $image );
606
-						$content_dir = wp_normalize_path( $content_dir );
605
+						$image = wp_normalize_path($image);
606
+						$content_dir = wp_normalize_path($content_dir);
607 607
 						}
608 608
 
609
-					$image = str_replace( $content_dir, content_url(), $image );
609
+					$image = str_replace($content_dir, content_url(), $image);
610 610
 					}
611 611
 
612
-				echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
612
+				echo '<img class="payment-icon" src="' . esc_url($image) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>';
613 613
 				}
614
-			echo wp_kses_post( $option ) . '</label>';
614
+			echo wp_kses_post($option) . '</label>';
615 615
 		}
616
-		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>';
616
+		echo '<p class="description" style="margin-top:16px;">' . wp_kses_post($args['desc']) . '</p>';
617 617
 	}
618 618
 }
619 619
 
620 620
 /**
621 621
  * Displays a radio settings field.
622 622
  */
623
-function wpinv_radio_callback( $args ) {
623
+function wpinv_radio_callback($args) {
624 624
 
625
-	$std = isset( $args['std'] ) ? $args['std'] : '';
626
-	$std = wpinv_get_option( $args['id'], $std );
625
+	$std = isset($args['std']) ? $args['std'] : '';
626
+	$std = wpinv_get_option($args['id'], $std);
627 627
 	?>
628 628
 		<fieldset>
629
-			<ul id="wpinv-settings-<?php echo esc_attr( $args['id'] ); ?>" style="margin-top: 0;">
630
-				<?php foreach ( $args['options'] as $key => $option ) : ?>
629
+			<ul id="wpinv-settings-<?php echo esc_attr($args['id']); ?>" style="margin-top: 0;">
630
+				<?php foreach ($args['options'] as $key => $option) : ?>
631 631
 					<li>
632 632
 						<label>
633
-							<input name="wpinv_settings[<?php echo esc_attr( $args['id'] ); ?>]" <?php checked( $std, $key ); ?> value="<?php echo esc_attr( $key ); ?>" type="radio">
634
-							<?php echo wp_kses_post( $option ); ?>
633
+							<input name="wpinv_settings[<?php echo esc_attr($args['id']); ?>]" <?php checked($std, $key); ?> value="<?php echo esc_attr($key); ?>" type="radio">
634
+							<?php echo wp_kses_post($option); ?>
635 635
 						</label>
636 636
 					</li>
637 637
 				<?php endforeach; ?>
638 638
 			</ul>
639 639
 		</fieldset>
640 640
 	<?php
641
-	getpaid_settings_description_callback( $args );
641
+	getpaid_settings_description_callback($args);
642 642
 }
643 643
 
644 644
 /**
645 645
  * Displays a description if available.
646 646
  */
647
-function getpaid_settings_description_callback( $args ) {
647
+function getpaid_settings_description_callback($args) {
648 648
 
649
-	if ( ! empty( $args['desc'] ) ) {
649
+	if (!empty($args['desc'])) {
650 650
 		$description = $args['desc'];
651
-		echo wp_kses_post( "<p class='description'>$description</p>" );
651
+		echo wp_kses_post("<p class='description'>$description</p>");
652 652
 	}
653 653
 
654 654
 }
@@ -663,35 +663,35 @@  discard block
 block discarded – undo
663 663
 	</tr>
664 664
 	<tr class="bsui">
665 665
     	<td colspan="2" class="p-0">
666
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-gateways-edit.php'; ?>
666
+			<?php include plugin_dir_path(__FILE__) . 'views/html-gateways-edit.php'; ?>
667 667
 
668 668
 	<?php
669 669
 }
670 670
 
671
-function wpinv_gateway_select_callback( $args ) {
671
+function wpinv_gateway_select_callback($args) {
672 672
 
673
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
674
-    $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : '';
675
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
676
-	$value   = wpinv_get_option( $args['id'], $std );
673
+    $sanitize_id = wpinv_sanitize_key($args['id']);
674
+    $class = !empty($args['class']) ? ' ' . esc_attr($args['class']) : '';
675
+	$std     = isset($args['std']) ? $args['std'] : '';
676
+	$value   = wpinv_get_option($args['id'], $std);
677 677
 
678
-	echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >';
678
+	echo '<select name="wpinv_settings[' . esc_attr($sanitize_id) . ']"" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" class="' . esc_attr($class) . '" >';
679 679
 
680
-	foreach ( $args['options'] as $key => $option ) :
680
+	foreach ($args['options'] as $key => $option) :
681 681
 
682
-		echo '<option value="' . esc_attr( $key ) . '" ';
682
+		echo '<option value="' . esc_attr($key) . '" ';
683 683
 
684
-		if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) {
685
-            selected( $key, $args['selected'] );
684
+		if (isset($args['selected']) && $args['selected'] !== null && $args['selected'] !== false) {
685
+            selected($key, $args['selected']);
686 686
         } else {
687
-            selected( $key, $value );
687
+            selected($key, $value);
688 688
         }
689 689
 
690
-		echo '>' . esc_html( $option['admin_label'] ) . '</option>';
690
+		echo '>' . esc_html($option['admin_label']) . '</option>';
691 691
 	endforeach;
692 692
 
693 693
 	echo '</select>';
694
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
694
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
695 695
 }
696 696
 
697 697
 /**
@@ -700,16 +700,16 @@  discard block
 block discarded – undo
700 700
  * @param array $args
701 701
  * @return string
702 702
  */
703
-function wpinv_settings_attrs_helper( $args ) {
703
+function wpinv_settings_attrs_helper($args) {
704 704
 
705
-	$value = isset( $args['std'] ) ? $args['std'] : '';
706
-	$id    = esc_attr( $args['id'] );
707
-	$value = is_scalar( $value ) ? $value : '';
705
+	$value = isset($args['std']) ? $args['std'] : '';
706
+	$id    = esc_attr($args['id']);
707
+	$value = is_scalar($value) ? $value : '';
708 708
 
709 709
 	$attrs = array(
710
-		'name'     => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]",
711
-		'readonly' => ! empty( $args['faux'] ),
712
-		'value'    => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ),
710
+		'name'     => !empty($args['faux']) ? false : "wpinv_settings[$id]",
711
+		'readonly' => !empty($args['faux']),
712
+		'value'    => !empty($args['faux']) ? $value : wpinv_get_option($args['id'], $value),
713 713
 		'id'       => 'wpinv-settings-' . $args['id'],
714 714
 		'style'    => $args['style'],
715 715
 		'class'    => $args['class'],
@@ -717,20 +717,20 @@  discard block
 block discarded – undo
717 717
 		'data-placeholder' => $args['placeholder'],
718 718
 	);
719 719
 
720
-	if ( ! empty( $args['onchange'] ) ) {
720
+	if (!empty($args['onchange'])) {
721 721
 		$attrs['onchange'] = $args['onchange'];
722 722
 	}
723 723
 
724
-	foreach ( $attrs as $key => $value ) {
724
+	foreach ($attrs as $key => $value) {
725 725
 
726
-		if ( false === $value ) {
726
+		if (false === $value) {
727 727
 			continue;
728 728
 		}
729 729
 
730
-		if ( true === $value ) {
731
-			echo ' ' . esc_attr( $key );
730
+		if (true === $value) {
731
+			echo ' ' . esc_attr($key);
732 732
 		} else {
733
-			echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';
733
+			echo ' ' . esc_attr($key) . '="' . esc_attr($value) . '"';
734 734
 		}
735 735
 
736 736
 	}
@@ -740,12 +740,12 @@  discard block
 block discarded – undo
740 740
 /**
741 741
  * Displays a text input settings callback.
742 742
  */
743
-function wpinv_text_callback( $args ) {
743
+function wpinv_text_callback($args) {
744 744
 
745 745
 	?>
746 746
 		<label style="width: 100%;">
747
-			<input type="text" <?php wpinv_settings_attrs_helper( $args ); ?>>
748
-			<?php getpaid_settings_description_callback( $args ); ?>
747
+			<input type="text" <?php wpinv_settings_attrs_helper($args); ?>>
748
+			<?php getpaid_settings_description_callback($args); ?>
749 749
 		</label>
750 750
 	<?php
751 751
 
@@ -754,174 +754,174 @@  discard block
 block discarded – undo
754 754
 /**
755 755
  * Displays a number input settings callback.
756 756
  */
757
-function wpinv_number_callback( $args ) {
757
+function wpinv_number_callback($args) {
758 758
 
759 759
 	?>
760 760
 		<label style="width: 100%;">
761
-			<input type="number" step="<?php echo esc_attr( $args['step'] ); ?>" max="<?php echo intval( $args['max'] ); ?>" min="<?php echo intval( $args['min'] ); ?>" <?php wpinv_settings_attrs_helper( $args ); ?>>
762
-			<?php getpaid_settings_description_callback( $args ); ?>
761
+			<input type="number" step="<?php echo esc_attr($args['step']); ?>" max="<?php echo intval($args['max']); ?>" min="<?php echo intval($args['min']); ?>" <?php wpinv_settings_attrs_helper($args); ?>>
762
+			<?php getpaid_settings_description_callback($args); ?>
763 763
 		</label>
764 764
 	<?php
765 765
 
766 766
 }
767 767
 
768
-function wpinv_textarea_callback( $args ) {
768
+function wpinv_textarea_callback($args) {
769 769
 
770
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
771
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
772
-	$value   = wpinv_get_option( $args['id'], $std );
770
+    $sanitize_id = wpinv_sanitize_key($args['id']);
771
+	$std     = isset($args['std']) ? $args['std'] : '';
772
+	$value   = wpinv_get_option($args['id'], $std);
773 773
 
774
-    $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
775
-    $class = ( isset( $args['class'] ) && ! is_null( $args['class'] ) ) ? $args['class'] : 'large-text';
774
+    $size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
775
+    $class = (isset($args['class']) && !is_null($args['class'])) ? $args['class'] : 'large-text';
776 776
 
777
-	echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
778
-	echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
777
+	echo '<textarea class="' . esc_attr($class) . ' txtarea-' . esc_attr($size) . ' wpi-' . esc_attr(sanitize_html_class($sanitize_id)) . ' " cols="' . esc_attr($args['cols']) . '" rows="' . esc_attr($args['rows']) . '" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']">' . esc_textarea(stripslashes($value)) . '</textarea>';
778
+	echo '<br /><label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
779 779
 
780 780
 }
781 781
 
782
-function wpinv_password_callback( $args ) {
782
+function wpinv_password_callback($args) {
783 783
 
784
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
785
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
786
-	$value   = wpinv_get_option( $args['id'], $std );
784
+    $sanitize_id = wpinv_sanitize_key($args['id']);
785
+	$std     = isset($args['std']) ? $args['std'] : '';
786
+	$value   = wpinv_get_option($args['id'], $std);
787 787
 
788
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
789
-	echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>';
790
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
788
+	$size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
789
+	echo '<input type="password" class="' . esc_attr($size) . '-text" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr($value) . '"/>';
790
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
791 791
 
792 792
 }
793 793
 
794
-function wpinv_missing_callback( $args ) {
794
+function wpinv_missing_callback($args) {
795 795
 	printf(
796
-		esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ),
797
-		'<strong>' . esc_html( $args['id'] ) . '</strong>'
796
+		esc_html__('The callback function used for the %s setting is missing.', 'invoicing'),
797
+		'<strong>' . esc_html($args['id']) . '</strong>'
798 798
 	);
799 799
 }
800 800
 
801 801
 /**
802 802
  * Displays a number input settings callback.
803 803
  */
804
-function wpinv_select_callback( $args ) {
804
+function wpinv_select_callback($args) {
805 805
 
806
-	$desc   = wp_kses_post( $args['desc'] );
807
-	$desc   = empty( $desc ) ? '' : "<p class='description'>$desc</p>";
808
-	$value  = isset( $args['std'] ) ? $args['std'] : '';
809
-	$value  = wpinv_get_option( $args['id'], $value );
810
-	$rand   = uniqid( 'random_id' );
806
+	$desc   = wp_kses_post($args['desc']);
807
+	$desc   = empty($desc) ? '' : "<p class='description'>$desc</p>";
808
+	$value  = isset($args['std']) ? $args['std'] : '';
809
+	$value  = wpinv_get_option($args['id'], $value);
810
+	$rand   = uniqid('random_id');
811 811
 
812 812
 	?>
813 813
 		<label style="width: 100%;">
814
-			<select <?php wpinv_settings_attrs_helper( $args ); ?> data-allow-clear="true">
815
-				<?php foreach ( $args['options'] as $option => $name ) : ?>
816
-					<option value="<?php echo esc_attr( $option ); ?>" <?php echo selected( $option, $value ); ?>><?php echo esc_html( $name ); ?></option>
814
+			<select <?php wpinv_settings_attrs_helper($args); ?> data-allow-clear="true">
815
+				<?php foreach ($args['options'] as $option => $name) : ?>
816
+					<option value="<?php echo esc_attr($option); ?>" <?php echo selected($option, $value); ?>><?php echo esc_html($name); ?></option>
817 817
 				<?php endforeach; ?>
818 818
 			</select>
819 819
 
820
-			<?php if ( substr( $args['id'], -5 ) === '_page' && is_numeric( $value ) ) : ?>
821
-				<a href="<?php echo esc_url( get_edit_post_link( $value ) ); ?>" target="_blank" class="button getpaid-page-setting-edit"><?php esc_html_e( 'Edit Page', 'invoicing' ); ?></a>
820
+			<?php if (substr($args['id'], -5) === '_page' && is_numeric($value)) : ?>
821
+				<a href="<?php echo esc_url(get_edit_post_link($value)); ?>" target="_blank" class="button getpaid-page-setting-edit"><?php esc_html_e('Edit Page', 'invoicing'); ?></a>
822 822
 			<?php endif; ?>
823 823
 
824
-			<?php if ( substr( $args['id'], -5 ) === '_page' && ! empty( $args['default_content'] ) ) : ?>
825
-				&nbsp;<a href="#TB_inline?&width=400&height=550&inlineId=<?php echo esc_attr( $rand ); ?>" class="button thickbox getpaid-page-setting-view-default"><?php esc_html_e( 'View Default Content', 'invoicing' ); ?></a>
826
-				<div id='<?php echo esc_attr( $rand ); ?>' style='display:none;'>
824
+			<?php if (substr($args['id'], -5) === '_page' && !empty($args['default_content'])) : ?>
825
+				&nbsp;<a href="#TB_inline?&width=400&height=550&inlineId=<?php echo esc_attr($rand); ?>" class="button thickbox getpaid-page-setting-view-default"><?php esc_html_e('View Default Content', 'invoicing'); ?></a>
826
+				<div id='<?php echo esc_attr($rand); ?>' style='display:none;'>
827 827
 					<div>
828
-						<h3><?php esc_html_e( 'Original Content', 'invoicing' ); ?></h3>
829
-						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php echo wp_kses_post( gepaid_trim_lines( $args['default_content'] ) ); ?></textarea>
830
-						<h3><?php esc_html_e( 'Current Content', 'invoicing' ); ?></h3>
831
-						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php $_post = get_post( $value ); echo empty( $_post ) ? '' : wp_kses_post( gepaid_trim_lines( $_post->post_content ) ); ?></textarea>
828
+						<h3><?php esc_html_e('Original Content', 'invoicing'); ?></h3>
829
+						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php echo wp_kses_post(gepaid_trim_lines($args['default_content'])); ?></textarea>
830
+						<h3><?php esc_html_e('Current Content', 'invoicing'); ?></h3>
831
+						<textarea readonly onclick="this.select()" rows="8" style="width: 100%;"><?php $_post = get_post($value); echo empty($_post) ? '' : wp_kses_post(gepaid_trim_lines($_post->post_content)); ?></textarea>
832 832
 					</div>
833 833
 				</div>
834 834
 			<?php endif; ?>
835 835
 
836
-			<?php echo wp_kses_post( $desc ); ?>
836
+			<?php echo wp_kses_post($desc); ?>
837 837
 		</label>
838 838
 	<?php
839 839
 
840 840
 }
841 841
 
842
-function wpinv_color_select_callback( $args ) {
842
+function wpinv_color_select_callback($args) {
843 843
 
844
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
845
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
846
-	$value   = wpinv_get_option( $args['id'], $std );
844
+    $sanitize_id = wpinv_sanitize_key($args['id']);
845
+	$std     = isset($args['std']) ? $args['std'] : '';
846
+	$value   = wpinv_get_option($args['id'], $std);
847 847
 
848
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>';
848
+	echo '<select id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']"/>';
849 849
 
850
-	foreach ( $args['options'] as $option => $color ) {
851
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>';
850
+	foreach ($args['options'] as $option => $color) {
851
+		echo '<option value="' . esc_attr($option) . '" ' . selected($option, $value) . '>' . esc_html($color['label']) . '</option>';
852 852
 	}
853 853
 
854 854
 	echo '</select>';
855
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
855
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
856 856
 
857 857
 }
858 858
 
859
-function wpinv_rich_editor_callback( $args ) {
859
+function wpinv_rich_editor_callback($args) {
860 860
 	global $wp_version;
861 861
 
862
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
862
+    $sanitize_id = wpinv_sanitize_key($args['id']);
863 863
 
864
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
865
-	$value   = wpinv_get_option( $args['id'], $std );
864
+	$std     = isset($args['std']) ? $args['std'] : '';
865
+	$value   = wpinv_get_option($args['id'], $std);
866 866
 
867
-	if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) {
867
+	if (!empty($args['allow_blank']) && empty($value)) {
868 868
 		$value = $std;
869 869
 	}
870 870
 
871
-	$rows = isset( $args['size'] ) ? $args['size'] : 20;
871
+	$rows = isset($args['size']) ? $args['size'] : 20;
872 872
 
873 873
 	echo '<div class="getpaid-settings-editor-input">';
874
-	if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) {
874
+	if ($wp_version >= 3.3 && function_exists('wp_editor')) {
875 875
 		wp_editor(
876
-            stripslashes( $value ),
877
-            'wpinv_settings_' . esc_attr( $args['id'] ),
876
+            stripslashes($value),
877
+            'wpinv_settings_' . esc_attr($args['id']),
878 878
             array(
879
-				'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']',
880
-				'textarea_rows' => absint( $rows ),
879
+				'textarea_name' => 'wpinv_settings[' . esc_attr($args['id']) . ']',
880
+				'textarea_rows' => absint($rows),
881 881
 				'media_buttons' => false,
882 882
             )
883 883
         );
884 884
 	} else {
885
-		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>';
885
+		echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" class="wpi-' . esc_attr(sanitize_html_class($args['id'])) . '">' . esc_textarea(stripslashes($value)) . '</textarea>';
886 886
 	}
887 887
 
888
-	echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
888
+	echo '</div><br/><label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
889 889
 
890 890
 }
891 891
 
892
-function wpinv_upload_callback( $args ) {
892
+function wpinv_upload_callback($args) {
893 893
 
894
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
894
+    $sanitize_id = wpinv_sanitize_key($args['id']);
895 895
 
896
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
897
-	$value   = wpinv_get_option( $args['id'], $std );
896
+	$std     = isset($args['std']) ? $args['std'] : '';
897
+	$value   = wpinv_get_option($args['id'], $std);
898 898
 
899
-	$size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular';
900
-	echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>';
901
-	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>';
902
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
899
+	$size = (isset($args['size']) && !is_null($args['size'])) ? $args['size'] : 'regular';
900
+	echo '<input type="text" class="' . sanitize_html_class($size) . '-text" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr(stripslashes($value)) . '"/>';
901
+	echo '<span>&nbsp;<input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__('Upload File', 'invoicing') . '"/></span>';
902
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
903 903
 
904 904
 }
905 905
 
906
-function wpinv_color_callback( $args ) {
906
+function wpinv_color_callback($args) {
907 907
 
908
-	$std         = isset( $args['std'] ) ? $args['std'] : '';
909
-	$value       = wpinv_get_option( $args['id'], $std );
910
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
908
+	$std         = isset($args['std']) ? $args['std'] : '';
909
+	$value       = wpinv_get_option($args['id'], $std);
910
+    $sanitize_id = wpinv_sanitize_key($args['id']);
911 911
 
912
-	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />';
913
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
912
+	echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" value="' . esc_attr($value) . '" data-default-color="' . esc_attr($std) . '" />';
913
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
914 914
 
915 915
 }
916 916
 
917
-function wpinv_country_states_callback( $args ) {
917
+function wpinv_country_states_callback($args) {
918 918
 
919
-	$std     = isset( $args['std'] ) ? $args['std'] : '';
920
-	$value   = wpinv_get_option( $args['id'], $std );
919
+	$std     = isset($args['std']) ? $args['std'] : '';
920
+	$value   = wpinv_get_option($args['id'], $std);
921 921
 
922
-    $sanitize_id = wpinv_sanitize_key( $args['id'] );
922
+    $sanitize_id = wpinv_sanitize_key($args['id']);
923 923
 
924
-	if ( isset( $args['placeholder'] ) ) {
924
+	if (isset($args['placeholder'])) {
925 925
 		$placeholder = $args['placeholder'];
926 926
 	} else {
927 927
 		$placeholder = '';
@@ -929,15 +929,15 @@  discard block
 block discarded – undo
929 929
 
930 930
 	$states = wpinv_get_country_states();
931 931
 
932
-	$class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2';
933
-	echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>';
932
+	$class = empty($states) ? 'wpinv-no-states' : 'wpi_select2';
933
+	echo '<select id="wpinv_settings[' . esc_attr($sanitize_id) . ']" name="wpinv_settings[' . esc_attr($args['id']) . ']" class="' . esc_attr($class) . '" data-placeholder="' . esc_html($placeholder) . '"/>';
934 934
 
935
-	foreach ( $states as $option => $name ) {
936
-		echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>';
935
+	foreach ($states as $option => $name) {
936
+		echo '<option value="' . esc_attr($option) . '" ' . selected($option, $value) . '>' . esc_html($name) . '</option>';
937 937
 	}
938 938
 
939 939
 	echo '</select>';
940
-	echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>';
940
+	echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']"> ' . wp_kses_post($args['desc']) . '</label>';
941 941
 
942 942
 }
943 943
 
@@ -951,7 +951,7 @@  discard block
 block discarded – undo
951 951
 	</tr>
952 952
 	<tr class="bsui">
953 953
     	<td colspan="2" class="p-0">
954
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-tax-rates-edit.php'; ?>
954
+			<?php include plugin_dir_path(__FILE__) . 'views/html-tax-rates-edit.php'; ?>
955 955
 
956 956
 	<?php
957 957
 
@@ -960,11 +960,11 @@  discard block
 block discarded – undo
960 960
 /**
961 961
  * Displays a tax rate' edit row.
962 962
  */
963
-function wpinv_tax_rate_callback( $tax_rate, $key ) {
963
+function wpinv_tax_rate_callback($tax_rate, $key) {
964 964
 
965
-	$key                      = sanitize_key( $key );
966
-	$tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate'];
967
-	include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php';
965
+	$key                      = sanitize_key($key);
966
+	$tax_rate['reduced_rate'] = empty($tax_rate['reduced_rate']) ? 0 : $tax_rate['reduced_rate'];
967
+	include plugin_dir_path(__FILE__) . 'views/html-tax-rate-edit.php';
968 968
 
969 969
 }
970 970
 
@@ -978,177 +978,177 @@  discard block
 block discarded – undo
978 978
 	</tr>
979 979
 	<tr class="bsui">
980 980
     	<td colspan="2" class="p-0">
981
-			<?php include plugin_dir_path( __FILE__ ) . 'views/html-tax-rules-edit.php'; ?>
981
+			<?php include plugin_dir_path(__FILE__) . 'views/html-tax-rules-edit.php'; ?>
982 982
 
983 983
 	<?php
984 984
 
985 985
 }
986 986
 
987
-function wpinv_tools_callback( $args ) {
987
+function wpinv_tools_callback($args) {
988 988
     ?>
989 989
     </td><tr>
990 990
     <td colspan="2" class="wpinv_tools_tdbox">
991 991
     <?php
992
-    if ( $args['desc'] ) {
992
+    if ($args['desc']) {
993 993
 ?>
994
-<p><?php echo wp_kses_post( $args['desc'] ); ?></p><?php } ?>
995
-    <?php do_action( 'wpinv_tools_before' ); ?>
994
+<p><?php echo wp_kses_post($args['desc']); ?></p><?php } ?>
995
+    <?php do_action('wpinv_tools_before'); ?>
996 996
     <table id="wpinv_tools_table" class="wp-list-table widefat fixed posts">
997 997
         <thead>
998 998
             <tr>
999
-                <th scope="col" class="wpinv-th-tool"><?php esc_html_e( 'Tool', 'invoicing' ); ?></th>
1000
-                <th scope="col" class="wpinv-th-desc"><?php esc_html_e( 'Description', 'invoicing' ); ?></th>
1001
-                <th scope="col" class="wpinv-th-action"><?php esc_html_e( 'Action', 'invoicing' ); ?></th>
999
+                <th scope="col" class="wpinv-th-tool"><?php esc_html_e('Tool', 'invoicing'); ?></th>
1000
+                <th scope="col" class="wpinv-th-desc"><?php esc_html_e('Description', 'invoicing'); ?></th>
1001
+                <th scope="col" class="wpinv-th-action"><?php esc_html_e('Action', 'invoicing'); ?></th>
1002 1002
             </tr>
1003 1003
         </thead>
1004 1004
 
1005 1005
         <tbody>
1006 1006
 			<tr>
1007
-                <td><?php esc_html_e( 'Check Pages', 'invoicing' ); ?></td>
1007
+                <td><?php esc_html_e('Check Pages', 'invoicing'); ?></td>
1008 1008
                 <td>
1009
-                    <small><?php esc_html_e( 'Creates any missing GetPaid pages.', 'invoicing' ); ?></small>
1009
+                    <small><?php esc_html_e('Creates any missing GetPaid pages.', 'invoicing'); ?></small>
1010 1010
                 </td>
1011 1011
                 <td>
1012 1012
 					<a href="
1013 1013
                     <?php
1014 1014
 						echo esc_url(
1015 1015
 							wp_nonce_url(
1016
-								add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
1016
+								add_query_arg('getpaid-admin-action', 'create_missing_pages'),
1017 1017
 								'getpaid-nonce',
1018 1018
 								'getpaid-nonce'
1019 1019
 							)
1020 1020
 						);
1021 1021
 					?>
1022
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1022
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1023 1023
                 </td>
1024 1024
             </tr>
1025 1025
 			<tr>
1026
-                <td><?php esc_html_e( 'Refresh Permalinks', 'invoicing' ); ?></td>
1026
+                <td><?php esc_html_e('Refresh Permalinks', 'invoicing'); ?></td>
1027 1027
                 <td>
1028
-                    <small><?php esc_html_e( 'Might fix the page not found error when viewing an invoice.', 'invoicing' ); ?></small>
1028
+                    <small><?php esc_html_e('Might fix the page not found error when viewing an invoice.', 'invoicing'); ?></small>
1029 1029
                 </td>
1030 1030
                 <td>
1031 1031
 					<a href="
1032 1032
                     <?php
1033 1033
 						echo esc_url(
1034 1034
 							wp_nonce_url(
1035
-								add_query_arg( 'getpaid-admin-action', 'refresh_permalinks' ),
1035
+								add_query_arg('getpaid-admin-action', 'refresh_permalinks'),
1036 1036
 								'getpaid-nonce',
1037 1037
 								'getpaid-nonce'
1038 1038
 							)
1039 1039
 						);
1040 1040
 					?>
1041
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1041
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1042 1042
                 </td>
1043 1043
             </tr>
1044 1044
 			<tr>
1045
-                <td><?php esc_html_e( 'Create Database Tables', 'invoicing' ); ?></td>
1045
+                <td><?php esc_html_e('Create Database Tables', 'invoicing'); ?></td>
1046 1046
                 <td>
1047
-                    <small><?php esc_html_e( 'Run this tool to create any missing database tables.', 'invoicing' ); ?></small>
1047
+                    <small><?php esc_html_e('Run this tool to create any missing database tables.', 'invoicing'); ?></small>
1048 1048
                 </td>
1049 1049
                 <td>
1050 1050
 					<a href="
1051 1051
                     <?php
1052 1052
 						echo esc_url(
1053 1053
 							wp_nonce_url(
1054
-								add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ),
1054
+								add_query_arg('getpaid-admin-action', 'create_missing_tables'),
1055 1055
 								'getpaid-nonce',
1056 1056
 								'getpaid-nonce'
1057 1057
 							)
1058 1058
 						);
1059 1059
 					?>
1060
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1060
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1061 1061
                 </td>
1062 1062
             </tr>
1063 1063
 			<tr>
1064
-                <td><?php esc_html_e( 'Migrate old invoices', 'invoicing' ); ?></td>
1064
+                <td><?php esc_html_e('Migrate old invoices', 'invoicing'); ?></td>
1065 1065
                 <td>
1066
-                    <small><?php esc_html_e( 'If your old invoices were not migrated after updating from Invoicing to GetPaid, you can use this tool to migrate them.', 'invoicing' ); ?></small>
1066
+                    <small><?php esc_html_e('If your old invoices were not migrated after updating from Invoicing to GetPaid, you can use this tool to migrate them.', 'invoicing'); ?></small>
1067 1067
                 </td>
1068 1068
                 <td>
1069 1069
 					<a href="
1070 1070
                     <?php
1071 1071
 						echo esc_url(
1072 1072
 							wp_nonce_url(
1073
-								add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ),
1073
+								add_query_arg('getpaid-admin-action', 'migrate_old_invoices'),
1074 1074
 								'getpaid-nonce',
1075 1075
 								'getpaid-nonce'
1076 1076
 							)
1077 1077
 						);
1078 1078
 					?>
1079
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1079
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1080 1080
                 </td>
1081 1081
             </tr>
1082 1082
 
1083 1083
 			<tr>
1084
-                <td><?php esc_html_e( 'Recalculate Discounts', 'invoicing' ); ?></td>
1084
+                <td><?php esc_html_e('Recalculate Discounts', 'invoicing'); ?></td>
1085 1085
                 <td>
1086
-                    <small><?php esc_html_e( 'Recalculate discounts for existing invoices that have discount codes but are not discounted.', 'invoicing' ); ?></small>
1086
+                    <small><?php esc_html_e('Recalculate discounts for existing invoices that have discount codes but are not discounted.', 'invoicing'); ?></small>
1087 1087
                 </td>
1088 1088
                 <td>
1089 1089
 					<a href="
1090 1090
                     <?php
1091 1091
 						echo esc_url(
1092 1092
 							wp_nonce_url(
1093
-								add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ),
1093
+								add_query_arg('getpaid-admin-action', 'recalculate_discounts'),
1094 1094
 								'getpaid-nonce',
1095 1095
 								'getpaid-nonce'
1096 1096
 							)
1097 1097
 						);
1098 1098
 					?>
1099
-                    " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a>
1099
+                    " class="button button-primary"><?php esc_html_e('Run', 'invoicing'); ?></a>
1100 1100
                 </td>
1101 1101
             </tr>
1102 1102
 
1103 1103
 			<tr>
1104
-                <td><?php esc_html_e( 'Set-up Wizard', 'invoicing' ); ?></td>
1104
+                <td><?php esc_html_e('Set-up Wizard', 'invoicing'); ?></td>
1105 1105
                 <td>
1106
-                    <small><?php esc_html_e( 'Launch the quick set-up wizard.', 'invoicing' ); ?></small>
1106
+                    <small><?php esc_html_e('Launch the quick set-up wizard.', 'invoicing'); ?></small>
1107 1107
                 </td>
1108 1108
                 <td>
1109 1109
 					<a href="
1110 1110
                     <?php
1111
-						echo esc_url( admin_url( 'index.php?page=gp-setup' ) );
1111
+						echo esc_url(admin_url('index.php?page=gp-setup'));
1112 1112
 					?>
1113
-                    " class="button button-primary"><?php esc_html_e( 'Launch', 'invoicing' ); ?></a>
1113
+                    " class="button button-primary"><?php esc_html_e('Launch', 'invoicing'); ?></a>
1114 1114
                 </td>
1115 1115
             </tr>
1116 1116
 
1117
-			<?php do_action( 'wpinv_tools_row' ); ?>
1117
+			<?php do_action('wpinv_tools_row'); ?>
1118 1118
         </tbody>
1119 1119
     </table>
1120
-    <?php do_action( 'wpinv_tools_after' ); ?>
1120
+    <?php do_action('wpinv_tools_after'); ?>
1121 1121
     <?php
1122 1122
 }
1123 1123
 
1124 1124
 
1125
-function wpinv_descriptive_text_callback( $args ) {
1126
-	echo wp_kses_post( $args['desc'] );
1125
+function wpinv_descriptive_text_callback($args) {
1126
+	echo wp_kses_post($args['desc']);
1127 1127
 }
1128 1128
 
1129
-function wpinv_raw_html_callback( $args ) {
1130
-	echo wp_kses( $args['desc'], getpaid_allowed_html() );
1129
+function wpinv_raw_html_callback($args) {
1130
+	echo wp_kses($args['desc'], getpaid_allowed_html());
1131 1131
 }
1132 1132
 
1133
-function wpinv_hook_callback( $args ) {
1134
-	do_action( 'wpinv_' . $args['id'], $args );
1133
+function wpinv_hook_callback($args) {
1134
+	do_action('wpinv_' . $args['id'], $args);
1135 1135
 }
1136 1136
 
1137 1137
 function wpinv_set_settings_cap() {
1138 1138
 	return wpinv_get_capability();
1139 1139
 }
1140
-add_filter( 'option_page_capability_wpinv_settings', 'wpinv_set_settings_cap' );
1140
+add_filter('option_page_capability_wpinv_settings', 'wpinv_set_settings_cap');
1141 1141
 
1142 1142
 
1143
-function wpinv_on_update_settings( $old_value, $value, $option ) {
1144
-    $old = ! empty( $old_value['remove_data_on_unistall'] ) ? 1 : '';
1145
-    $new = ! empty( $value['remove_data_on_unistall'] ) ? 1 : '';
1143
+function wpinv_on_update_settings($old_value, $value, $option) {
1144
+    $old = !empty($old_value['remove_data_on_unistall']) ? 1 : '';
1145
+    $new = !empty($value['remove_data_on_unistall']) ? 1 : '';
1146 1146
 
1147
-    if ( $old != $new ) {
1148
-        update_option( 'wpinv_remove_data_on_invoice_unistall', $new );
1147
+    if ($old != $new) {
1148
+        update_option('wpinv_remove_data_on_invoice_unistall', $new);
1149 1149
     }
1150 1150
 }
1151
-add_action( 'update_option_wpinv_settings', 'wpinv_on_update_settings', 10, 3 );
1151
+add_action('update_option_wpinv_settings', 'wpinv_on_update_settings', 10, 3);
1152 1152
 
1153 1153
 /**
1154 1154
  * Returns the merge tags help text.
@@ -1157,16 +1157,16 @@  discard block
 block discarded – undo
1157 1157
  *
1158 1158
  * @return string
1159 1159
  */
1160
-function wpinv_get_merge_tags_help_text( $subscription = false ) {
1160
+function wpinv_get_merge_tags_help_text($subscription = false) {
1161 1161
 
1162 1162
 	$url  = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f';
1163 1163
 	$link = sprintf(
1164 1164
 		'<strong><a href="%s" target="_blank">%s</a></strong>',
1165 1165
 		$url,
1166
-		esc_html__( 'View available merge tags.', 'invoicing' )
1166
+		esc_html__('View available merge tags.', 'invoicing')
1167 1167
 	);
1168 1168
 
1169
-	$description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' );
1169
+	$description = esc_html__('The content of the email (Merge Tags and HTML are allowed).', 'invoicing');
1170 1170
 
1171 1171
 	return "$description $link";
1172 1172
 
Please login to merge, or discard this patch.