Passed
Push — master ( 0a2cdb...97ebee )
by Brian
04:41
created
includes/class-getpaid-tax.php 2 patches
Indentation   +160 added lines, -160 removed lines patch added patch discarded remove patch
@@ -13,167 +13,167 @@
 block discarded – undo
13 13
  */
14 14
 class GetPaid_Tax {
15 15
 
16
-	/**
17
-	 * Calculates tax for a line item.
18
-	 *
19
-	 * @param  float   $price              The price to calc tax on.
20
-	 * @param  array   $rates              The rates to apply.
21
-	 * @param  boolean $price_includes_tax Whether the passed price has taxes included.
22
-	 * @return array                       Array of tax name => tax amount.
23
-	 */
24
-	public static function calc_tax( $price, $rates, $price_includes_tax = false ) {
25
-
26
-		if ( $price_includes_tax ) {
27
-			$taxes = self::calc_inclusive_tax( $price, $rates );
28
-		} else {
29
-			$taxes = self::calc_exclusive_tax( $price, $rates );
30
-		}
31
-
32
-		return apply_filters( 'getpaid_calc_tax', $taxes, $price, $rates, $price_includes_tax );
33
-
34
-	}
35
-
36
-	/**
37
-	 * Calc tax from inclusive price.
38
-	 *
39
-	 * @param  float $price Price to calculate tax for.
40
-	 * @param  array $rates Array of tax rates.
41
-	 * @return array
42
-	 */
43
-	public static function calc_inclusive_tax( $price, $rates ) {
44
-		$taxes     = array();
45
-		$tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
46
-
47
-		// Add tax rates.
48
-		$tax_rate  = 1 + ( array_sum( $tax_rates ) / 100 );
49
-
50
-		foreach ( $tax_rates as $name => $rate ) {
51
-			$the_rate       = ( $rate / 100 ) / $tax_rate;
52
-			$net_price      = $price - ( $the_rate * $price );
53
-			$tax_amount     = apply_filters( 'getpaid_price_inc_tax_amount', $price - $net_price, $name, $rate, $price );
54
-			$taxes[ $name ] = $tax_amount;
55
-		}
56
-
57
-		// Round all taxes to precision (4DP) before passing them back.
58
-		$taxes = array_map( array( __CLASS__, 'round' ), $taxes );
59
-
60
-		return $taxes;
61
-	}
62
-
63
-	/**
64
-	 * Calc tax from exclusive price.
65
-	 *
66
-	 * @param  float $price Price to calculate tax for.
67
-	 * @param  array $rates Array of tax rates.
68
-	 * @return array
69
-	 */
70
-	public static function calc_exclusive_tax( $price, $rates ) {
71
-		$taxes     = array();
72
-		$tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
73
-
74
-		foreach ( $tax_rates as $name => $rate ) {
75
-
76
-			$tax_amount     = $price * ( $rate / 100 );
77
-			$taxes[ $name ] = apply_filters( 'getpaid_price_ex_tax_amount', $tax_amount, $name, $rate, $price );
78
-
79
-		}
80
-
81
-		// Round all taxes to precision (4DP) before passing them back.
82
-		$taxes = array_map( array( __CLASS__, 'round' ), $taxes );
83
-
84
-		return $taxes;
85
-	}
86
-
87
-	/**
88
-	 * Get's an array of all tax rates.
89
-	 *
90
-	 * @return array
91
-	 */
92
-	public static function get_all_tax_rates() {
93
-
94
-		$rates = get_option( 'wpinv_tax_rates', array() );
95
-
96
-		return apply_filters(
97
-			'getpaid_get_all_tax_rates',
98
-			array_filter( wpinv_parse_list( $rates ) )
99
-		);
100
-
101
-	}
102
-
103
-	/**
104
-	 * Get's an array of default tax rates.
105
-	 *
106
-	 * @return array
107
-	 */
108
-	public static function get_default_tax_rates() {
109
-
110
-		return apply_filters(
111
-			'getpaid_get_default_tax_rates',
112
-			array(
113
-				array(
114
-					'country' => wpinv_get_default_country(),
115
-					'state'   => wpinv_get_default_state(),
116
-					'global'  => true,
117
-					'rate'    => wpinv_get_default_tax_rate(),
118
-					'name'    => __( 'Base Tax', 'invoicing' ),
119
-				),
120
-			)
121
-		);
122
-
123
-	}
124
-
125
-	/**
126
-	 * Get's an array of tax rates for a given address.
127
-	 *
128
-	 * @param string $country
129
-	 * @param string $state
130
-	 * @return array
131
-	 */
132
-	public static function get_address_tax_rates( $country, $state ) {
133
-
134
-		$all_tax_rates  = self::get_all_tax_rates();
135
-		$matching_rates = array_merge(
136
-			wp_list_filter( $all_tax_rates, array( 'country' => $country ) ),
137
-			wp_list_filter( $all_tax_rates, array( 'country' => '' ) )
138
-		);
139
-
140
-		foreach ( $matching_rates as $i => $rate ) {
141
-
142
-			$states = array_filter( wpinv_clean( explode( ',', strtolower( $rate['state'] ) ) ) );
143
-			if ( empty( $rate['global'] ) && ! in_array( strtolower( $state ), $states ) ) {
144
-				unset( $matching_rates[ $i ] );
145
-			}
16
+    /**
17
+     * Calculates tax for a line item.
18
+     *
19
+     * @param  float   $price              The price to calc tax on.
20
+     * @param  array   $rates              The rates to apply.
21
+     * @param  boolean $price_includes_tax Whether the passed price has taxes included.
22
+     * @return array                       Array of tax name => tax amount.
23
+     */
24
+    public static function calc_tax( $price, $rates, $price_includes_tax = false ) {
25
+
26
+        if ( $price_includes_tax ) {
27
+            $taxes = self::calc_inclusive_tax( $price, $rates );
28
+        } else {
29
+            $taxes = self::calc_exclusive_tax( $price, $rates );
30
+        }
31
+
32
+        return apply_filters( 'getpaid_calc_tax', $taxes, $price, $rates, $price_includes_tax );
33
+
34
+    }
35
+
36
+    /**
37
+     * Calc tax from inclusive price.
38
+     *
39
+     * @param  float $price Price to calculate tax for.
40
+     * @param  array $rates Array of tax rates.
41
+     * @return array
42
+     */
43
+    public static function calc_inclusive_tax( $price, $rates ) {
44
+        $taxes     = array();
45
+        $tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
46
+
47
+        // Add tax rates.
48
+        $tax_rate  = 1 + ( array_sum( $tax_rates ) / 100 );
49
+
50
+        foreach ( $tax_rates as $name => $rate ) {
51
+            $the_rate       = ( $rate / 100 ) / $tax_rate;
52
+            $net_price      = $price - ( $the_rate * $price );
53
+            $tax_amount     = apply_filters( 'getpaid_price_inc_tax_amount', $price - $net_price, $name, $rate, $price );
54
+            $taxes[ $name ] = $tax_amount;
55
+        }
56
+
57
+        // Round all taxes to precision (4DP) before passing them back.
58
+        $taxes = array_map( array( __CLASS__, 'round' ), $taxes );
59
+
60
+        return $taxes;
61
+    }
62
+
63
+    /**
64
+     * Calc tax from exclusive price.
65
+     *
66
+     * @param  float $price Price to calculate tax for.
67
+     * @param  array $rates Array of tax rates.
68
+     * @return array
69
+     */
70
+    public static function calc_exclusive_tax( $price, $rates ) {
71
+        $taxes     = array();
72
+        $tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
73
+
74
+        foreach ( $tax_rates as $name => $rate ) {
75
+
76
+            $tax_amount     = $price * ( $rate / 100 );
77
+            $taxes[ $name ] = apply_filters( 'getpaid_price_ex_tax_amount', $tax_amount, $name, $rate, $price );
78
+
79
+        }
80
+
81
+        // Round all taxes to precision (4DP) before passing them back.
82
+        $taxes = array_map( array( __CLASS__, 'round' ), $taxes );
83
+
84
+        return $taxes;
85
+    }
86
+
87
+    /**
88
+     * Get's an array of all tax rates.
89
+     *
90
+     * @return array
91
+     */
92
+    public static function get_all_tax_rates() {
93
+
94
+        $rates = get_option( 'wpinv_tax_rates', array() );
95
+
96
+        return apply_filters(
97
+            'getpaid_get_all_tax_rates',
98
+            array_filter( wpinv_parse_list( $rates ) )
99
+        );
100
+
101
+    }
102
+
103
+    /**
104
+     * Get's an array of default tax rates.
105
+     *
106
+     * @return array
107
+     */
108
+    public static function get_default_tax_rates() {
109
+
110
+        return apply_filters(
111
+            'getpaid_get_default_tax_rates',
112
+            array(
113
+                array(
114
+                    'country' => wpinv_get_default_country(),
115
+                    'state'   => wpinv_get_default_state(),
116
+                    'global'  => true,
117
+                    'rate'    => wpinv_get_default_tax_rate(),
118
+                    'name'    => __( 'Base Tax', 'invoicing' ),
119
+                ),
120
+            )
121
+        );
122
+
123
+    }
124
+
125
+    /**
126
+     * Get's an array of tax rates for a given address.
127
+     *
128
+     * @param string $country
129
+     * @param string $state
130
+     * @return array
131
+     */
132
+    public static function get_address_tax_rates( $country, $state ) {
133
+
134
+        $all_tax_rates  = self::get_all_tax_rates();
135
+        $matching_rates = array_merge(
136
+            wp_list_filter( $all_tax_rates, array( 'country' => $country ) ),
137
+            wp_list_filter( $all_tax_rates, array( 'country' => '' ) )
138
+        );
139
+
140
+        foreach ( $matching_rates as $i => $rate ) {
141
+
142
+            $states = array_filter( wpinv_clean( explode( ',', strtolower( $rate['state'] ) ) ) );
143
+            if ( empty( $rate['global'] ) && ! in_array( strtolower( $state ), $states ) ) {
144
+                unset( $matching_rates[ $i ] );
145
+            }
146 146
 }
147 147
 
148
-		return apply_filters( 'getpaid_get_address_tax_rates', $matching_rates, $country, $state );
149
-
150
-	}
151
-
152
-	/**
153
-	 * Sums a set of taxes to form a single total. Result is rounded to precision.
154
-	 *
155
-	 * @param  array $taxes Array of taxes.
156
-	 * @return float
157
-	 */
158
-	public static function get_tax_total( $taxes ) {
159
-		return self::round( array_sum( $taxes ) );
160
-	}
161
-
162
-	/**
163
-	 * Round to precision.
164
-	 *
165
-	 * Filter example: to return rounding to .5 cents you'd use:
166
-	 *
167
-	 * function euro_5cent_rounding( $in ) {
168
-	 *      return round( $in / 5, 2 ) * 5;
169
-	 * }
170
-	 * add_filter( 'getpaid_tax_round', 'euro_5cent_rounding' );
171
-	 *
172
-	 * @param float|int $in Value to round.
173
-	 * @return float
174
-	 */
175
-	public static function round( $in ) {
176
-		return apply_filters( 'getpaid_tax_round', round( $in, 4 ), $in );
177
-	}
148
+        return apply_filters( 'getpaid_get_address_tax_rates', $matching_rates, $country, $state );
149
+
150
+    }
151
+
152
+    /**
153
+     * Sums a set of taxes to form a single total. Result is rounded to precision.
154
+     *
155
+     * @param  array $taxes Array of taxes.
156
+     * @return float
157
+     */
158
+    public static function get_tax_total( $taxes ) {
159
+        return self::round( array_sum( $taxes ) );
160
+    }
161
+
162
+    /**
163
+     * Round to precision.
164
+     *
165
+     * Filter example: to return rounding to .5 cents you'd use:
166
+     *
167
+     * function euro_5cent_rounding( $in ) {
168
+     *      return round( $in / 5, 2 ) * 5;
169
+     * }
170
+     * add_filter( 'getpaid_tax_round', 'euro_5cent_rounding' );
171
+     *
172
+     * @param float|int $in Value to round.
173
+     * @return float
174
+     */
175
+    public static function round( $in ) {
176
+        return apply_filters( 'getpaid_tax_round', round( $in, 4 ), $in );
177
+    }
178 178
 
179 179
 }
Please login to merge, or discard this patch.
Spacing   +36 added lines, -36 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * Class GetPaid_Tax
@@ -21,15 +21,15 @@  discard block
 block discarded – undo
21 21
 	 * @param  boolean $price_includes_tax Whether the passed price has taxes included.
22 22
 	 * @return array                       Array of tax name => tax amount.
23 23
 	 */
24
-	public static function calc_tax( $price, $rates, $price_includes_tax = false ) {
24
+	public static function calc_tax($price, $rates, $price_includes_tax = false) {
25 25
 
26
-		if ( $price_includes_tax ) {
27
-			$taxes = self::calc_inclusive_tax( $price, $rates );
26
+		if ($price_includes_tax) {
27
+			$taxes = self::calc_inclusive_tax($price, $rates);
28 28
 		} else {
29
-			$taxes = self::calc_exclusive_tax( $price, $rates );
29
+			$taxes = self::calc_exclusive_tax($price, $rates);
30 30
 		}
31 31
 
32
-		return apply_filters( 'getpaid_calc_tax', $taxes, $price, $rates, $price_includes_tax );
32
+		return apply_filters('getpaid_calc_tax', $taxes, $price, $rates, $price_includes_tax);
33 33
 
34 34
 	}
35 35
 
@@ -40,22 +40,22 @@  discard block
 block discarded – undo
40 40
 	 * @param  array $rates Array of tax rates.
41 41
 	 * @return array
42 42
 	 */
43
-	public static function calc_inclusive_tax( $price, $rates ) {
43
+	public static function calc_inclusive_tax($price, $rates) {
44 44
 		$taxes     = array();
45
-		$tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
45
+		$tax_rates = wp_list_pluck($rates, 'rate', 'name');
46 46
 
47 47
 		// Add tax rates.
48
-		$tax_rate  = 1 + ( array_sum( $tax_rates ) / 100 );
48
+		$tax_rate  = 1 + (array_sum($tax_rates) / 100);
49 49
 
50
-		foreach ( $tax_rates as $name => $rate ) {
51
-			$the_rate       = ( $rate / 100 ) / $tax_rate;
52
-			$net_price      = $price - ( $the_rate * $price );
53
-			$tax_amount     = apply_filters( 'getpaid_price_inc_tax_amount', $price - $net_price, $name, $rate, $price );
54
-			$taxes[ $name ] = $tax_amount;
50
+		foreach ($tax_rates as $name => $rate) {
51
+			$the_rate       = ($rate / 100) / $tax_rate;
52
+			$net_price      = $price - ($the_rate * $price);
53
+			$tax_amount     = apply_filters('getpaid_price_inc_tax_amount', $price - $net_price, $name, $rate, $price);
54
+			$taxes[$name] = $tax_amount;
55 55
 		}
56 56
 
57 57
 		// Round all taxes to precision (4DP) before passing them back.
58
-		$taxes = array_map( array( __CLASS__, 'round' ), $taxes );
58
+		$taxes = array_map(array(__CLASS__, 'round'), $taxes);
59 59
 
60 60
 		return $taxes;
61 61
 	}
@@ -67,19 +67,19 @@  discard block
 block discarded – undo
67 67
 	 * @param  array $rates Array of tax rates.
68 68
 	 * @return array
69 69
 	 */
70
-	public static function calc_exclusive_tax( $price, $rates ) {
70
+	public static function calc_exclusive_tax($price, $rates) {
71 71
 		$taxes     = array();
72
-		$tax_rates = wp_list_pluck( $rates, 'rate', 'name' );
72
+		$tax_rates = wp_list_pluck($rates, 'rate', 'name');
73 73
 
74
-		foreach ( $tax_rates as $name => $rate ) {
74
+		foreach ($tax_rates as $name => $rate) {
75 75
 
76
-			$tax_amount     = $price * ( $rate / 100 );
77
-			$taxes[ $name ] = apply_filters( 'getpaid_price_ex_tax_amount', $tax_amount, $name, $rate, $price );
76
+			$tax_amount     = $price * ($rate / 100);
77
+			$taxes[$name] = apply_filters('getpaid_price_ex_tax_amount', $tax_amount, $name, $rate, $price);
78 78
 
79 79
 		}
80 80
 
81 81
 		// Round all taxes to precision (4DP) before passing them back.
82
-		$taxes = array_map( array( __CLASS__, 'round' ), $taxes );
82
+		$taxes = array_map(array(__CLASS__, 'round'), $taxes);
83 83
 
84 84
 		return $taxes;
85 85
 	}
@@ -91,11 +91,11 @@  discard block
 block discarded – undo
91 91
 	 */
92 92
 	public static function get_all_tax_rates() {
93 93
 
94
-		$rates = get_option( 'wpinv_tax_rates', array() );
94
+		$rates = get_option('wpinv_tax_rates', array());
95 95
 
96 96
 		return apply_filters(
97 97
 			'getpaid_get_all_tax_rates',
98
-			array_filter( wpinv_parse_list( $rates ) )
98
+			array_filter(wpinv_parse_list($rates))
99 99
 		);
100 100
 
101 101
 	}
@@ -115,7 +115,7 @@  discard block
 block discarded – undo
115 115
 					'state'   => wpinv_get_default_state(),
116 116
 					'global'  => true,
117 117
 					'rate'    => wpinv_get_default_tax_rate(),
118
-					'name'    => __( 'Base Tax', 'invoicing' ),
118
+					'name'    => __('Base Tax', 'invoicing'),
119 119
 				),
120 120
 			)
121 121
 		);
@@ -129,23 +129,23 @@  discard block
 block discarded – undo
129 129
 	 * @param string $state
130 130
 	 * @return array
131 131
 	 */
132
-	public static function get_address_tax_rates( $country, $state ) {
132
+	public static function get_address_tax_rates($country, $state) {
133 133
 
134 134
 		$all_tax_rates  = self::get_all_tax_rates();
135 135
 		$matching_rates = array_merge(
136
-			wp_list_filter( $all_tax_rates, array( 'country' => $country ) ),
137
-			wp_list_filter( $all_tax_rates, array( 'country' => '' ) )
136
+			wp_list_filter($all_tax_rates, array('country' => $country)),
137
+			wp_list_filter($all_tax_rates, array('country' => ''))
138 138
 		);
139 139
 
140
-		foreach ( $matching_rates as $i => $rate ) {
140
+		foreach ($matching_rates as $i => $rate) {
141 141
 
142
-			$states = array_filter( wpinv_clean( explode( ',', strtolower( $rate['state'] ) ) ) );
143
-			if ( empty( $rate['global'] ) && ! in_array( strtolower( $state ), $states ) ) {
144
-				unset( $matching_rates[ $i ] );
142
+			$states = array_filter(wpinv_clean(explode(',', strtolower($rate['state']))));
143
+			if (empty($rate['global']) && !in_array(strtolower($state), $states)) {
144
+				unset($matching_rates[$i]);
145 145
 			}
146 146
 }
147 147
 
148
-		return apply_filters( 'getpaid_get_address_tax_rates', $matching_rates, $country, $state );
148
+		return apply_filters('getpaid_get_address_tax_rates', $matching_rates, $country, $state);
149 149
 
150 150
 	}
151 151
 
@@ -155,8 +155,8 @@  discard block
 block discarded – undo
155 155
 	 * @param  array $taxes Array of taxes.
156 156
 	 * @return float
157 157
 	 */
158
-	public static function get_tax_total( $taxes ) {
159
-		return self::round( array_sum( $taxes ) );
158
+	public static function get_tax_total($taxes) {
159
+		return self::round(array_sum($taxes));
160 160
 	}
161 161
 
162 162
 	/**
@@ -172,8 +172,8 @@  discard block
 block discarded – undo
172 172
 	 * @param float|int $in Value to round.
173 173
 	 * @return float
174 174
 	 */
175
-	public static function round( $in ) {
176
-		return apply_filters( 'getpaid_tax_round', round( $in, 4 ), $in );
175
+	public static function round($in) {
176
+		return apply_filters('getpaid_tax_round', round($in, 4), $in);
177 177
 	}
178 178
 
179 179
 }
Please login to merge, or discard this patch.
includes/admin/subscriptions.php 3 patches
Indentation   +422 added lines, -422 removed lines patch added patch discarded remove patch
@@ -14,7 +14,7 @@  discard block
 block discarded – undo
14 14
  */
15 15
 function wpinv_subscriptions_page() {
16 16
 
17
-	?>
17
+    ?>
18 18
 
19 19
 	<div class="wrap">
20 20
 		<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
@@ -22,27 +22,27 @@  discard block
 block discarded – undo
22 22
 
23 23
 			<?php
24 24
 
25
-				// Verify user permissions.
26
-				if ( ! wpinv_current_user_can_manage_invoicing() ) {
25
+                // Verify user permissions.
26
+                if ( ! wpinv_current_user_can_manage_invoicing() ) {
27 27
 
28
-				echo aui()->alert(
29
-				array(
28
+                echo aui()->alert(
29
+                array(
30 30
                     'type'    => 'danger',
31 31
                     'content' => __( 'You are not permitted to view this page.', 'invoicing' ),
32
-				)
33
-			);
32
+                )
33
+            );
34 34
 
35
-				} elseif ( ! empty( $_GET['id'] ) && is_numeric( $_GET['id'] ) ) {
35
+                } elseif ( ! empty( $_GET['id'] ) && is_numeric( $_GET['id'] ) ) {
36 36
 
37
-				// Display a single subscription.
38
-				wpinv_recurring_subscription_details();
39
-				} else {
37
+                // Display a single subscription.
38
+                wpinv_recurring_subscription_details();
39
+                } else {
40 40
 
41
-				// Display a list of available subscriptions.
42
-				getpaid_print_subscriptions_list();
43
-				}
41
+                // Display a list of available subscriptions.
42
+                getpaid_print_subscriptions_list();
43
+                }
44 44
 
45
-			?>
45
+            ?>
46 46
 
47 47
 		</div>
48 48
 	</div>
@@ -59,10 +59,10 @@  discard block
 block discarded – undo
59 59
  */
60 60
 function getpaid_print_subscriptions_list() {
61 61
 
62
-	$subscribers_table = new WPInv_Subscriptions_List_Table();
63
-	$subscribers_table->prepare_items();
62
+    $subscribers_table = new WPInv_Subscriptions_List_Table();
63
+    $subscribers_table->prepare_items();
64 64
 
65
-	?>
65
+    ?>
66 66
 	<?php $subscribers_table->views(); ?>
67 67
 	<form id="subscribers-filter" class="bsui" method="get">
68 68
 		<input type="hidden" name="page" value="wpinv-subscriptions" />
@@ -81,41 +81,41 @@  discard block
 block discarded – undo
81 81
  */
82 82
 function wpinv_recurring_subscription_details() {
83 83
 
84
-	// Fetch the subscription.
85
-	$sub = new WPInv_Subscription( (int) $_GET['id'] );
86
-	if ( ! $sub->exists() ) {
84
+    // Fetch the subscription.
85
+    $sub = new WPInv_Subscription( (int) $_GET['id'] );
86
+    if ( ! $sub->exists() ) {
87 87
 
88
-		echo aui()->alert(
89
-			array(
90
-				'type'    => 'danger',
91
-				'content' => __( 'Subscription not found.', 'invoicing' ),
92
-			)
93
-		);
88
+        echo aui()->alert(
89
+            array(
90
+                'type'    => 'danger',
91
+                'content' => __( 'Subscription not found.', 'invoicing' ),
92
+            )
93
+        );
94 94
 
95
-		return;
96
-	}
95
+        return;
96
+    }
97 97
 
98
-	// Use metaboxes to display the subscription details.
99
-	add_meta_box( 'getpaid_admin_subscription_details_metabox', __( 'Subscription Details', 'invoicing' ), 'getpaid_admin_subscription_details_metabox', get_current_screen(), 'normal', 'high' );
100
-	add_meta_box( 'getpaid_admin_subscription_update_metabox', __( 'Change Status', 'invoicing' ), 'getpaid_admin_subscription_update_metabox', get_current_screen(), 'side' );
98
+    // Use metaboxes to display the subscription details.
99
+    add_meta_box( 'getpaid_admin_subscription_details_metabox', __( 'Subscription Details', 'invoicing' ), 'getpaid_admin_subscription_details_metabox', get_current_screen(), 'normal', 'high' );
100
+    add_meta_box( 'getpaid_admin_subscription_update_metabox', __( 'Change Status', 'invoicing' ), 'getpaid_admin_subscription_update_metabox', get_current_screen(), 'side' );
101 101
 
102
-	$subscription_id     = $sub->get_id();
103
-	$subscription_groups = getpaid_get_invoice_subscription_groups( $sub->get_parent_invoice_id() );
104
-	$subscription_group  = wp_list_filter( $subscription_groups, compact( 'subscription_id' ) );
102
+    $subscription_id     = $sub->get_id();
103
+    $subscription_groups = getpaid_get_invoice_subscription_groups( $sub->get_parent_invoice_id() );
104
+    $subscription_group  = wp_list_filter( $subscription_groups, compact( 'subscription_id' ) );
105 105
 
106
-	if ( 1 < count( $subscription_groups ) ) {
107
-		add_meta_box( 'getpaid_admin_subscription_related_subscriptions_metabox', __( 'Related Subscriptions', 'invoicing' ), 'getpaid_admin_subscription_related_subscriptions_metabox', get_current_screen(), 'advanced' );
108
-	}
106
+    if ( 1 < count( $subscription_groups ) ) {
107
+        add_meta_box( 'getpaid_admin_subscription_related_subscriptions_metabox', __( 'Related Subscriptions', 'invoicing' ), 'getpaid_admin_subscription_related_subscriptions_metabox', get_current_screen(), 'advanced' );
108
+    }
109 109
 
110
-	if ( ! empty( $subscription_group ) ) {
111
-		add_meta_box( 'getpaid_admin_subscription_item_details_metabox', __( 'Subscription Items', 'invoicing' ), 'getpaid_admin_subscription_item_details_metabox', get_current_screen(), 'normal', 'low' );
112
-	}
110
+    if ( ! empty( $subscription_group ) ) {
111
+        add_meta_box( 'getpaid_admin_subscription_item_details_metabox', __( 'Subscription Items', 'invoicing' ), 'getpaid_admin_subscription_item_details_metabox', get_current_screen(), 'normal', 'low' );
112
+    }
113 113
 
114
-	add_meta_box( 'getpaid_admin_subscription_invoice_details_metabox', __( 'Related Invoices', 'invoicing' ), 'getpaid_admin_subscription_invoice_details_metabox', get_current_screen(), 'advanced' );
114
+    add_meta_box( 'getpaid_admin_subscription_invoice_details_metabox', __( 'Related Invoices', 'invoicing' ), 'getpaid_admin_subscription_invoice_details_metabox', get_current_screen(), 'advanced' );
115 115
 
116
-	do_action( 'getpaid_admin_single_subscription_register_metabox', $sub );
116
+    do_action( 'getpaid_admin_single_subscription_register_metabox', $sub );
117 117
 
118
-	?>
118
+    ?>
119 119
 
120 120
 		<form method="post" action="<?php echo admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $sub->get_id() ) ); ?>">
121 121
 
@@ -155,44 +155,44 @@  discard block
 block discarded – undo
155 155
  */
156 156
 function getpaid_admin_subscription_details_metabox( $sub ) {
157 157
 
158
-	// Subscription items.
159
-	$subscription_group = getpaid_get_invoice_subscription_group( $sub->get_parent_invoice_id(), $sub->get_id() );
160
-	$items_count        = empty( $subscription_group ) ? 1 : count( $subscription_group['items'] );
161
-
162
-	// Prepare subscription detail columns.
163
-	$fields = apply_filters(
164
-		'getpaid_subscription_admin_page_fields',
165
-		array(
166
-			'subscription' => __( 'Subscription', 'invoicing' ),
167
-			'customer'     => __( 'Customer', 'invoicing' ),
168
-			'amount'       => __( 'Amount', 'invoicing' ),
169
-			'start_date'   => __( 'Start Date', 'invoicing' ),
170
-			'renews_on'    => __( 'Next Payment', 'invoicing' ),
171
-			'renewals'     => __( 'Payments', 'invoicing' ),
172
-			'item'         => _n( 'Item', 'Items', $items_count, 'invoicing' ),
173
-			'gateway'      => __( 'Payment Method', 'invoicing' ),
174
-			'profile_id'   => __( 'Profile ID', 'invoicing' ),
175
-			'status'       => __( 'Status', 'invoicing' ),
176
-		)
177
-	);
178
-
179
-	if ( ! $sub->is_active() ) {
180
-
181
-		if ( isset( $fields['renews_on'] ) ) {
182
-			unset( $fields['renews_on'] );
183
-		}
184
-
185
-		if ( isset( $fields['gateway'] ) ) {
186
-			unset( $fields['gateway'] );
187
-		}
158
+    // Subscription items.
159
+    $subscription_group = getpaid_get_invoice_subscription_group( $sub->get_parent_invoice_id(), $sub->get_id() );
160
+    $items_count        = empty( $subscription_group ) ? 1 : count( $subscription_group['items'] );
161
+
162
+    // Prepare subscription detail columns.
163
+    $fields = apply_filters(
164
+        'getpaid_subscription_admin_page_fields',
165
+        array(
166
+            'subscription' => __( 'Subscription', 'invoicing' ),
167
+            'customer'     => __( 'Customer', 'invoicing' ),
168
+            'amount'       => __( 'Amount', 'invoicing' ),
169
+            'start_date'   => __( 'Start Date', 'invoicing' ),
170
+            'renews_on'    => __( 'Next Payment', 'invoicing' ),
171
+            'renewals'     => __( 'Payments', 'invoicing' ),
172
+            'item'         => _n( 'Item', 'Items', $items_count, 'invoicing' ),
173
+            'gateway'      => __( 'Payment Method', 'invoicing' ),
174
+            'profile_id'   => __( 'Profile ID', 'invoicing' ),
175
+            'status'       => __( 'Status', 'invoicing' ),
176
+        )
177
+    );
178
+
179
+    if ( ! $sub->is_active() ) {
180
+
181
+        if ( isset( $fields['renews_on'] ) ) {
182
+            unset( $fields['renews_on'] );
183
+        }
184
+
185
+        if ( isset( $fields['gateway'] ) ) {
186
+            unset( $fields['gateway'] );
187
+        }
188 188
 }
189 189
 
190
-	$profile_id = $sub->get_profile_id();
191
-	if ( empty( $profile_id ) && isset( $fields['profile_id'] ) ) {
192
-		unset( $fields['profile_id'] );
193
-	}
190
+    $profile_id = $sub->get_profile_id();
191
+    if ( empty( $profile_id ) && isset( $fields['profile_id'] ) ) {
192
+        unset( $fields['profile_id'] );
193
+    }
194 194
 
195
-	?>
195
+    ?>
196 196
 
197 197
 		<table class="table table-borderless" style="font-size: 14px;">
198 198
 			<tbody>
@@ -226,20 +226,20 @@  discard block
 block discarded – undo
226 226
  */
227 227
 function getpaid_admin_subscription_metabox_display_customer( $subscription ) {
228 228
 
229
-	$username = __( '(Missing User)', 'invoicing' );
229
+    $username = __( '(Missing User)', 'invoicing' );
230 230
 
231
-	$user = get_userdata( $subscription->get_customer_id() );
232
-	if ( $user ) {
231
+    $user = get_userdata( $subscription->get_customer_id() );
232
+    if ( $user ) {
233 233
 
234
-		$username = sprintf(
235
-			'<a href="user-edit.php?user_id=%s">%s</a>',
236
-			absint( $user->ID ),
237
-			! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
238
-		);
234
+        $username = sprintf(
235
+            '<a href="user-edit.php?user_id=%s">%s</a>',
236
+            absint( $user->ID ),
237
+            ! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
238
+        );
239 239
 
240
-	}
240
+    }
241 241
 
242
-	echo wp_kses_post( $username );
242
+    echo wp_kses_post( $username );
243 243
 }
244 244
 add_action( 'getpaid_subscription_admin_display_customer', 'getpaid_admin_subscription_metabox_display_customer' );
245 245
 
@@ -249,8 +249,8 @@  discard block
 block discarded – undo
249 249
  * @param WPInv_Subscription $subscription
250 250
  */
251 251
 function getpaid_admin_subscription_metabox_display_amount( $subscription ) {
252
-	$amount    = wp_kses_post( getpaid_get_formatted_subscription_amount( $subscription ) );
253
-	echo "<span>$amount</span>";
252
+    $amount    = wp_kses_post( getpaid_get_formatted_subscription_amount( $subscription ) );
253
+    echo "<span>$amount</span>";
254 254
 }
255 255
 add_action( 'getpaid_subscription_admin_display_amount', 'getpaid_admin_subscription_metabox_display_amount' );
256 256
 
@@ -261,11 +261,11 @@  discard block
 block discarded – undo
261 261
  */
262 262
 function getpaid_admin_subscription_metabox_display_id( $subscription ) {
263 263
 
264
-	printf(
265
-		'<a href="%s">#%s</a>',
266
-		esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $subscription->get_id() ) ) ),
267
-		absint( $subscription->get_id() )
268
-	);
264
+    printf(
265
+        '<a href="%s">#%s</a>',
266
+        esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $subscription->get_id() ) ) ),
267
+        absint( $subscription->get_id() )
268
+    );
269 269
 
270 270
 }
271 271
 add_action( 'getpaid_subscription_admin_display_subscription', 'getpaid_admin_subscription_metabox_display_id' );
@@ -276,7 +276,7 @@  discard block
 block discarded – undo
276 276
  * @param WPInv_Subscription $subscription
277 277
  */
278 278
 function getpaid_admin_subscription_metabox_display_start_date( $subscription ) {
279
-	echo getpaid_format_date_value( $subscription->get_date_created() );
279
+    echo getpaid_format_date_value( $subscription->get_date_created() );
280 280
 }
281 281
 add_action( 'getpaid_subscription_admin_display_start_date', 'getpaid_admin_subscription_metabox_display_start_date' );
282 282
 
@@ -286,7 +286,7 @@  discard block
 block discarded – undo
286 286
  * @param WPInv_Subscription $subscription
287 287
  */
288 288
 function getpaid_admin_subscription_metabox_display_renews_on( $subscription ) {
289
-	echo getpaid_format_date_value( $subscription->get_expiration() );
289
+    echo getpaid_format_date_value( $subscription->get_expiration() );
290 290
 }
291 291
 add_action( 'getpaid_subscription_admin_display_renews_on', 'getpaid_admin_subscription_metabox_display_renews_on' );
292 292
 
@@ -296,8 +296,8 @@  discard block
 block discarded – undo
296 296
  * @param WPInv_Subscription $subscription
297 297
  */
298 298
 function getpaid_admin_subscription_metabox_display_renewals( $subscription ) {
299
-	$max_bills = $subscription->get_bill_times();
300
-	echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '&infin;' : (int) $max_bills );
299
+    $max_bills = $subscription->get_bill_times();
300
+    echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '&infin;' : (int) $max_bills );
301 301
 }
302 302
 add_action( 'getpaid_subscription_admin_display_renewals', 'getpaid_admin_subscription_metabox_display_renewals' );
303 303
 /**
@@ -308,13 +308,13 @@  discard block
 block discarded – undo
308 308
  */
309 309
 function getpaid_admin_subscription_metabox_display_item( $subscription, $subscription_group = false ) {
310 310
 
311
-	if ( empty( $subscription_group ) ) {
312
-		echo WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() );
313
-		return;
314
-	}
311
+    if ( empty( $subscription_group ) ) {
312
+        echo WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() );
313
+        return;
314
+    }
315 315
 
316
-	$markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
317
-	echo wp_kses_post( implode( ' | ', $markup ) );
316
+    $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
317
+    echo wp_kses_post( implode( ' | ', $markup ) );
318 318
 
319 319
 }
320 320
 add_action( 'getpaid_subscription_admin_display_item', 'getpaid_admin_subscription_metabox_display_item', 10, 2 );
@@ -326,13 +326,13 @@  discard block
 block discarded – undo
326 326
  */
327 327
 function getpaid_admin_subscription_metabox_display_gateway( $subscription ) {
328 328
 
329
-	$gateway = $subscription->get_gateway();
329
+    $gateway = $subscription->get_gateway();
330 330
 
331
-	if ( ! empty( $gateway ) ) {
332
-		echo esc_html( wpinv_get_gateway_admin_label( $gateway ) );
333
-	} else {
334
-		echo '&mdash;';
335
-	}
331
+    if ( ! empty( $gateway ) ) {
332
+        echo esc_html( wpinv_get_gateway_admin_label( $gateway ) );
333
+    } else {
334
+        echo '&mdash;';
335
+    }
336 336
 
337 337
 }
338 338
 add_action( 'getpaid_subscription_admin_display_gateway', 'getpaid_admin_subscription_metabox_display_gateway' );
@@ -343,7 +343,7 @@  discard block
 block discarded – undo
343 343
  * @param WPInv_Subscription $subscription
344 344
  */
345 345
 function getpaid_admin_subscription_metabox_display_status( $subscription ) {
346
-	echo wp_kses_post( $subscription->get_status_label_html() );
346
+    echo wp_kses_post( $subscription->get_status_label_html() );
347 347
 }
348 348
 add_action( 'getpaid_subscription_admin_display_status', 'getpaid_admin_subscription_metabox_display_status' );
349 349
 
@@ -354,28 +354,28 @@  discard block
 block discarded – undo
354 354
  */
355 355
 function getpaid_admin_subscription_metabox_display_profile_id( $subscription ) {
356 356
 
357
-	$profile_id = $subscription->get_profile_id();
358
-
359
-	$input = aui()->input(
360
-		array(
361
-			'type'              => 'text',
362
-			'id'                => 'wpinv_subscription_profile_id',
363
-			'name'              => 'wpinv_subscription_profile_id',
364
-			'label'             => __( 'Profile Id', 'invoicing' ),
365
-			'label_type'        => 'hidden',
366
-			'placeholder'       => __( 'Profile Id', 'invoicing' ),
367
-			'value'             => esc_attr( $profile_id ),
368
-			'input_group_right' => '',
369
-			'no_wrap'           => true,
370
-		)
371
-	);
372
-
373
-	echo str_ireplace( 'form-control', 'regular-text', $input );
374
-
375
-	$url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $subscription );
376
-	if ( ! empty( $url ) ) {
377
-		echo '&nbsp;<a href="' . esc_url_raw( $url ) . '" title="' . __( 'View in Gateway', 'invoicing' ) . '" target="_blank"><i class="fas fa-external-link-alt fa-xs fa-fw align-top"></i></a>';
378
-	}
357
+    $profile_id = $subscription->get_profile_id();
358
+
359
+    $input = aui()->input(
360
+        array(
361
+            'type'              => 'text',
362
+            'id'                => 'wpinv_subscription_profile_id',
363
+            'name'              => 'wpinv_subscription_profile_id',
364
+            'label'             => __( 'Profile Id', 'invoicing' ),
365
+            'label_type'        => 'hidden',
366
+            'placeholder'       => __( 'Profile Id', 'invoicing' ),
367
+            'value'             => esc_attr( $profile_id ),
368
+            'input_group_right' => '',
369
+            'no_wrap'           => true,
370
+        )
371
+    );
372
+
373
+    echo str_ireplace( 'form-control', 'regular-text', $input );
374
+
375
+    $url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $subscription );
376
+    if ( ! empty( $url ) ) {
377
+        echo '&nbsp;<a href="' . esc_url_raw( $url ) . '" title="' . __( 'View in Gateway', 'invoicing' ) . '" target="_blank"><i class="fas fa-external-link-alt fa-xs fa-fw align-top"></i></a>';
378
+    }
379 379
 
380 380
 }
381 381
 add_action( 'getpaid_subscription_admin_display_profile_id', 'getpaid_admin_subscription_metabox_display_profile_id' );
@@ -387,39 +387,39 @@  discard block
 block discarded – undo
387 387
  */
388 388
 function getpaid_admin_subscription_update_metabox( $subscription ) {
389 389
 
390
-	?>
390
+    ?>
391 391
 	<div class="mt-3">
392 392
 
393 393
 		<?php
394
-			echo aui()->select(
395
-				array(
396
-					'options'   => getpaid_get_subscription_statuses(),
397
-					'name'      => 'subscription_status',
398
-					'id'        => 'subscription_status_update_select',
399
-					'required'  => true,
400
-					'no_wrap'   => false,
401
-					'label'     => __( 'Subscription Status', 'invoicing' ),
402
-					'help_text' => __( 'Updating the status will trigger related actions and hooks', 'invoicing' ),
403
-					'select2'   => true,
404
-					'value'     => $subscription->get_status( 'edit' ),
405
-				)
406
-			);
407
-		?>
394
+            echo aui()->select(
395
+                array(
396
+                    'options'   => getpaid_get_subscription_statuses(),
397
+                    'name'      => 'subscription_status',
398
+                    'id'        => 'subscription_status_update_select',
399
+                    'required'  => true,
400
+                    'no_wrap'   => false,
401
+                    'label'     => __( 'Subscription Status', 'invoicing' ),
402
+                    'help_text' => __( 'Updating the status will trigger related actions and hooks', 'invoicing' ),
403
+                    'select2'   => true,
404
+                    'value'     => $subscription->get_status( 'edit' ),
405
+                )
406
+            );
407
+        ?>
408 408
 
409 409
 		<div class="mt-2 px-3 py-2 bg-light border-top" style="margin: -12px;">
410 410
 
411 411
 		<?php
412
-			submit_button( __( 'Update', 'invoicing' ), 'primary', 'submit', false );
412
+            submit_button( __( 'Update', 'invoicing' ), 'primary', 'submit', false );
413 413
 
414
-			$url    = wp_nonce_url( add_query_arg( 'getpaid-admin-action', 'subscription_manual_renew' ), 'getpaid-nonce', 'getpaid-nonce' );
415
-			$anchor = __( 'Renew Subscription', 'invoicing' );
416
-			$title  = esc_attr__( 'Are you sure you want to extend the subscription and generate a new invoice that will be automatically marked as paid?', 'invoicing' );
414
+            $url    = wp_nonce_url( add_query_arg( 'getpaid-admin-action', 'subscription_manual_renew' ), 'getpaid-nonce', 'getpaid-nonce' );
415
+            $anchor = __( 'Renew Subscription', 'invoicing' );
416
+            $title  = esc_attr__( 'Are you sure you want to extend the subscription and generate a new invoice that will be automatically marked as paid?', 'invoicing' );
417 417
 
418
-			if ( $subscription->is_active() ) {
419
-			echo "<a href='$url' class='float-right text-muted' onclick='return confirm(\"$title\")'>$anchor</a>";
420
-			}
418
+            if ( $subscription->is_active() ) {
419
+            echo "<a href='$url' class='float-right text-muted' onclick='return confirm(\"$title\")'>$anchor</a>";
420
+            }
421 421
 
422
-	echo '</div></div>';
422
+    echo '</div></div>';
423 423
 }
424 424
 
425 425
 /**
@@ -430,33 +430,33 @@  discard block
 block discarded – undo
430 430
  */
431 431
 function getpaid_admin_subscription_invoice_details_metabox( $subscription, $strict = true ) {
432 432
 
433
-	$columns = apply_filters(
434
-		'getpaid_subscription_related_invoices_columns',
435
-		array(
436
-			'invoice'      => __( 'Invoice', 'invoicing' ),
437
-			'relationship' => __( 'Relationship', 'invoicing' ),
438
-			'date'         => __( 'Date', 'invoicing' ),
439
-			'status'       => __( 'Status', 'invoicing' ),
440
-			'total'        => __( 'Total', 'invoicing' ),
441
-		),
442
-		$subscription
443
-	);
444
-
445
-	// Prepare the invoices.
446
-	$payments = $subscription->get_child_payments( ! is_admin() );
447
-	$parent   = $subscription->get_parent_invoice();
448
-
449
-	if ( $parent->exists() ) {
450
-		$payments = array_merge( array( $parent ), $payments );
451
-	}
452
-
453
-	$table_class = 'w-100 bg-white';
454
-
455
-	if ( ! is_admin() ) {
456
-		$table_class = 'table table-bordered';
457
-	}
458
-
459
-	?>
433
+    $columns = apply_filters(
434
+        'getpaid_subscription_related_invoices_columns',
435
+        array(
436
+            'invoice'      => __( 'Invoice', 'invoicing' ),
437
+            'relationship' => __( 'Relationship', 'invoicing' ),
438
+            'date'         => __( 'Date', 'invoicing' ),
439
+            'status'       => __( 'Status', 'invoicing' ),
440
+            'total'        => __( 'Total', 'invoicing' ),
441
+        ),
442
+        $subscription
443
+    );
444
+
445
+    // Prepare the invoices.
446
+    $payments = $subscription->get_child_payments( ! is_admin() );
447
+    $parent   = $subscription->get_parent_invoice();
448
+
449
+    if ( $parent->exists() ) {
450
+        $payments = array_merge( array( $parent ), $payments );
451
+    }
452
+
453
+    $table_class = 'w-100 bg-white';
454
+
455
+    if ( ! is_admin() ) {
456
+        $table_class = 'table table-bordered';
457
+    }
458
+
459
+    ?>
460 460
 		<div class="m-0" style="overflow: auto;">
461 461
 
462 462
 			<table class="<?php echo esc_attr( $table_class ); ?>">
@@ -464,14 +464,14 @@  discard block
 block discarded – undo
464 464
 				<thead>
465 465
 					<tr>
466 466
 						<?php
467
-							foreach ( $columns as $key => $label ) {
468
-							$key   = esc_attr( $key );
469
-							$label = esc_html( $label );
470
-							$class = 'text-left';
471
-
472
-							echo "<th class='subscription-invoice-field-$key bg-light p-2 $class color-dark font-weight-bold'>$label</th>";
473
-							}
474
-						?>
467
+                            foreach ( $columns as $key => $label ) {
468
+                            $key   = esc_attr( $key );
469
+                            $label = esc_html( $label );
470
+                            $class = 'text-left';
471
+
472
+                            echo "<th class='subscription-invoice-field-$key bg-light p-2 $class color-dark font-weight-bold'>$label</th>";
473
+                            }
474
+                        ?>
475 475
 					</tr>
476 476
 				</thead>
477 477
 
@@ -487,72 +487,72 @@  discard block
 block discarded – undo
487 487
 
488 488
 					<?php
489 489
 
490
-						foreach ( $payments as $payment ) :
490
+                        foreach ( $payments as $payment ) :
491 491
 
492
-						// Ensure that we have an invoice.
493
-						$payment = new WPInv_Invoice( $payment );
492
+                        // Ensure that we have an invoice.
493
+                        $payment = new WPInv_Invoice( $payment );
494 494
 
495
-						// Abort if the invoice is invalid...
496
-						if ( ! $payment->exists() ) {
497
-							continue;
498
-							}
495
+                        // Abort if the invoice is invalid...
496
+                        if ( ! $payment->exists() ) {
497
+                            continue;
498
+                            }
499 499
 
500
-						// ... or belongs to a different subscription.
501
-						if ( $strict && $payment->is_renewal() && $payment->get_subscription_id() && $payment->get_subscription_id() != $subscription->get_id() ) {
502
-							continue;
503
-							}
500
+                        // ... or belongs to a different subscription.
501
+                        if ( $strict && $payment->is_renewal() && $payment->get_subscription_id() && $payment->get_subscription_id() != $subscription->get_id() ) {
502
+                            continue;
503
+                            }
504 504
 
505
-						echo '<tr>';
505
+                        echo '<tr>';
506 506
 
507
-						foreach ( array_keys( $columns ) as $key ) {
507
+                        foreach ( array_keys( $columns ) as $key ) {
508 508
 
509
-							$class = 'text-left';
509
+                            $class = 'text-left';
510 510
 
511
-							echo "<td class='p-2 text-left'>";
511
+                            echo "<td class='p-2 text-left'>";
512 512
 
513
-								switch ( $key ) {
513
+                                switch ( $key ) {
514 514
 
515
-								case 'total':
516
-										echo '<strong>' . wpinv_price( $payment->get_total(), $payment->get_currency() ) . '</strong>';
517
-									break;
515
+                                case 'total':
516
+                                        echo '<strong>' . wpinv_price( $payment->get_total(), $payment->get_currency() ) . '</strong>';
517
+                                    break;
518 518
 
519
-								case 'relationship':
520
-											echo $payment->is_renewal() ? __( 'Renewal Invoice', 'invoicing' ) : __( 'Initial Invoice', 'invoicing' );
521
-									break;
519
+                                case 'relationship':
520
+                                            echo $payment->is_renewal() ? __( 'Renewal Invoice', 'invoicing' ) : __( 'Initial Invoice', 'invoicing' );
521
+                                    break;
522 522
 
523
-								case 'date':
524
-									echo getpaid_format_date_value( $payment->get_date_created() );
525
-									break;
523
+                                case 'date':
524
+                                    echo getpaid_format_date_value( $payment->get_date_created() );
525
+                                    break;
526 526
 
527
-								case 'status':
528
-										$status = $payment->get_status_nicename();
529
-										if ( is_admin() ) {
530
-										$status = $payment->get_status_label_html();
531
-										}
527
+                                case 'status':
528
+                                        $status = $payment->get_status_nicename();
529
+                                        if ( is_admin() ) {
530
+                                        $status = $payment->get_status_label_html();
531
+                                        }
532 532
 
533
-										echo wp_kses_post( $status );
534
-									break;
533
+                                        echo wp_kses_post( $status );
534
+                                    break;
535 535
 
536
-								case 'invoice':
537
-										$link    = esc_url( get_edit_post_link( $payment->get_id() ) );
536
+                                case 'invoice':
537
+                                        $link    = esc_url( get_edit_post_link( $payment->get_id() ) );
538 538
 
539
-										if ( ! is_admin() ) {
540
-										$link = esc_url( $payment->get_view_url() );
541
-										}
539
+                                        if ( ! is_admin() ) {
540
+                                        $link = esc_url( $payment->get_view_url() );
541
+                                        }
542 542
 
543
-										$invoice = esc_html( $payment->get_number() );
544
-										echo "<a href='$link'>$invoice</a>";
545
-									break;
546
-										}
543
+                                        $invoice = esc_html( $payment->get_number() );
544
+                                        echo "<a href='$link'>$invoice</a>";
545
+                                    break;
546
+                                        }
547 547
 
548
-								echo '</td>';
548
+                                echo '</td>';
549 549
 
550
-							}
550
+                            }
551 551
 
552
-						echo '</tr>';
552
+                        echo '</tr>';
553 553
 
554
-						endforeach;
555
-					?>
554
+                        endforeach;
555
+                    ?>
556 556
 
557 557
 				</tbody>
558 558
 
@@ -570,42 +570,42 @@  discard block
 block discarded – undo
570 570
  */
571 571
 function getpaid_admin_subscription_item_details_metabox( $subscription ) {
572 572
 
573
-	// Fetch the subscription group.
574
-	$subscription_group = getpaid_get_invoice_subscription_group( $subscription->get_parent_payment_id(), $subscription->get_id() );
573
+    // Fetch the subscription group.
574
+    $subscription_group = getpaid_get_invoice_subscription_group( $subscription->get_parent_payment_id(), $subscription->get_id() );
575 575
 
576
-	if ( empty( $subscription_group ) || empty( $subscription_group['items'] ) ) {
577
-		return;
578
-	}
576
+    if ( empty( $subscription_group ) || empty( $subscription_group['items'] ) ) {
577
+        return;
578
+    }
579 579
 
580
-	// Prepare table columns.
581
-	$columns = apply_filters(
582
-		'getpaid_subscription_item_details_columns',
583
-		array(
584
-			'item_name' => __( 'Item', 'invoicing' ),
585
-			'price'     => __( 'Price', 'invoicing' ),
586
-			'tax'       => __( 'Tax', 'invoicing' ),
587
-			'discount'  => __( 'Discount', 'invoicing' ),
588
-			//'initial'      => __( 'Initial Amount', 'invoicing' ),
589
-			'recurring' => __( 'Subtotal', 'invoicing' ),
590
-		),
591
-		$subscription
592
-	);
580
+    // Prepare table columns.
581
+    $columns = apply_filters(
582
+        'getpaid_subscription_item_details_columns',
583
+        array(
584
+            'item_name' => __( 'Item', 'invoicing' ),
585
+            'price'     => __( 'Price', 'invoicing' ),
586
+            'tax'       => __( 'Tax', 'invoicing' ),
587
+            'discount'  => __( 'Discount', 'invoicing' ),
588
+            //'initial'      => __( 'Initial Amount', 'invoicing' ),
589
+            'recurring' => __( 'Subtotal', 'invoicing' ),
590
+        ),
591
+        $subscription
592
+    );
593 593
 
594
-	// Prepare the invoices.
594
+    // Prepare the invoices.
595 595
 
596
-	$invoice = $subscription->get_parent_invoice();
596
+    $invoice = $subscription->get_parent_invoice();
597 597
 
598
-	if ( ( ! wpinv_use_taxes() || ! $invoice->is_taxable() ) && isset( $columns['tax'] ) ) {
599
-		unset( $columns['tax'] );
600
-	}
598
+    if ( ( ! wpinv_use_taxes() || ! $invoice->is_taxable() ) && isset( $columns['tax'] ) ) {
599
+        unset( $columns['tax'] );
600
+    }
601 601
 
602
-	$table_class = 'w-100 bg-white';
602
+    $table_class = 'w-100 bg-white';
603 603
 
604
-	if ( ! is_admin() ) {
605
-		$table_class = 'table table-bordered';
606
-	}
604
+    if ( ! is_admin() ) {
605
+        $table_class = 'table table-bordered';
606
+    }
607 607
 
608
-	?>
608
+    ?>
609 609
 		<div class="m-0" style="overflow: auto;">
610 610
 
611 611
 			<table class="<?php echo esc_attr( $table_class ); ?>">
@@ -614,14 +614,14 @@  discard block
 block discarded – undo
614 614
 					<tr>
615 615
 						<?php
616 616
 
617
-							foreach ( $columns as $key => $label ) {
618
-							$key   = esc_attr( $key );
619
-							$label = esc_html( $label );
620
-							$class = 'text-left';
617
+                            foreach ( $columns as $key => $label ) {
618
+                            $key   = esc_attr( $key );
619
+                            $label = esc_html( $label );
620
+                            $class = 'text-left';
621 621
 
622
-							echo "<th class='subscription-item-field-$key bg-light p-2 text-left color-dark font-weight-bold'>$label</th>";
623
-							}
624
-						?>
622
+                            echo "<th class='subscription-item-field-$key bg-light p-2 text-left color-dark font-weight-bold'>$label</th>";
623
+                            }
624
+                        ?>
625 625
 					</tr>
626 626
 				</thead>
627 627
 
@@ -629,106 +629,106 @@  discard block
 block discarded – undo
629 629
 
630 630
 					<?php
631 631
 
632
-						foreach ( $subscription_group['items'] as $subscription_group_item ) :
632
+                        foreach ( $subscription_group['items'] as $subscription_group_item ) :
633 633
 
634
-						echo '<tr>';
634
+                        echo '<tr>';
635 635
 
636
-						foreach ( array_keys( $columns ) as $key ) {
636
+                        foreach ( array_keys( $columns ) as $key ) {
637 637
 
638
-							$class = 'text-left';
638
+                            $class = 'text-left';
639 639
 
640
-							echo "<td class='p-2 text-left'>";
640
+                            echo "<td class='p-2 text-left'>";
641 641
 
642
-								switch ( $key ) {
642
+                                switch ( $key ) {
643 643
 
644
-								case 'item_name':
645
-										$item_name = get_the_title( $subscription_group_item['item_id'] );
646
-										$item_name = empty( $item_name ) ? $subscription_group_item['item_name'] : $item_name;
644
+                                case 'item_name':
645
+                                        $item_name = get_the_title( $subscription_group_item['item_id'] );
646
+                                        $item_name = empty( $item_name ) ? $subscription_group_item['item_name'] : $item_name;
647 647
 
648
-										if ( $invoice->get_template() == 'amount' || 1 == (float) $subscription_group_item['quantity'] ) {
649
-										echo esc_html( $item_name );
650
-										} else {
651
-										printf( '%1$s x %2$d', esc_html( $item_name ), (float) $subscription_group_item['quantity'] );
652
-											}
648
+                                        if ( $invoice->get_template() == 'amount' || 1 == (float) $subscription_group_item['quantity'] ) {
649
+                                        echo esc_html( $item_name );
650
+                                        } else {
651
+                                        printf( '%1$s x %2$d', esc_html( $item_name ), (float) $subscription_group_item['quantity'] );
652
+                                            }
653 653
 
654
-									break;
654
+                                    break;
655 655
 
656
-								case 'price':
657
-											echo wpinv_price( $subscription_group_item['item_price'], $invoice->get_currency() );
658
-									break;
656
+                                case 'price':
657
+                                            echo wpinv_price( $subscription_group_item['item_price'], $invoice->get_currency() );
658
+                                    break;
659 659
 
660
-								case 'tax':
661
-									echo wpinv_price( $subscription_group_item['tax'], $invoice->get_currency() );
662
-									break;
660
+                                case 'tax':
661
+                                    echo wpinv_price( $subscription_group_item['tax'], $invoice->get_currency() );
662
+                                    break;
663 663
 
664
-								case 'discount':
665
-										echo wpinv_price( $subscription_group_item['discount'], $invoice->get_currency() );
666
-									break;
664
+                                case 'discount':
665
+                                        echo wpinv_price( $subscription_group_item['discount'], $invoice->get_currency() );
666
+                                    break;
667 667
 
668
-								case 'initial':
669
-										echo wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() );
670
-									break;
668
+                                case 'initial':
669
+                                        echo wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() );
670
+                                    break;
671 671
 
672
-								case 'recurring':
673
-										echo '<strong>' . wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() ) . '</strong>';
674
-									break;
672
+                                case 'recurring':
673
+                                        echo '<strong>' . wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() ) . '</strong>';
674
+                                    break;
675 675
 
676
-										}
676
+                                        }
677 677
 
678
-								echo '</td>';
678
+                                echo '</td>';
679 679
 
680
-							}
680
+                            }
681 681
 
682
-						echo '</tr>';
682
+                        echo '</tr>';
683 683
 
684
-						endforeach;
684
+                        endforeach;
685 685
 
686
-						foreach ( $subscription_group['fees'] as $subscription_group_fee ) :
686
+                        foreach ( $subscription_group['fees'] as $subscription_group_fee ) :
687 687
 
688
-						echo '<tr>';
688
+                        echo '<tr>';
689 689
 
690
-						foreach ( array_keys( $columns ) as $key ) {
690
+                        foreach ( array_keys( $columns ) as $key ) {
691 691
 
692
-							$class = 'text-left';
692
+                            $class = 'text-left';
693 693
 
694
-							echo "<td class='p-2 text-left'>";
694
+                            echo "<td class='p-2 text-left'>";
695 695
 
696
-								switch ( $key ) {
696
+                                switch ( $key ) {
697 697
 
698
-								case 'item_name':
699
-										echo esc_html( $subscription_group_fee['name'] );
700
-									break;
698
+                                case 'item_name':
699
+                                        echo esc_html( $subscription_group_fee['name'] );
700
+                                    break;
701 701
 
702
-								case 'price':
703
-											echo wpinv_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() );
704
-									break;
702
+                                case 'price':
703
+                                            echo wpinv_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() );
704
+                                    break;
705 705
 
706
-								case 'tax':
707
-									echo '&mdash;';
708
-									break;
706
+                                case 'tax':
707
+                                    echo '&mdash;';
708
+                                    break;
709 709
 
710
-								case 'discount':
711
-										echo '&mdash;';
712
-									break;
710
+                                case 'discount':
711
+                                        echo '&mdash;';
712
+                                    break;
713 713
 
714
-								case 'initial':
715
-										echo wpinv_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() );
716
-									break;
714
+                                case 'initial':
715
+                                        echo wpinv_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() );
716
+                                    break;
717 717
 
718
-								case 'recurring':
719
-										echo '<strong>' . wpinv_price( $subscription_group_fee['recurring_fee'], $invoice->get_currency() ) . '</strong>';
720
-									break;
718
+                                case 'recurring':
719
+                                        echo '<strong>' . wpinv_price( $subscription_group_fee['recurring_fee'], $invoice->get_currency() ) . '</strong>';
720
+                                    break;
721 721
 
722
-										}
722
+                                        }
723 723
 
724
-								echo '</td>';
724
+                                echo '</td>';
725 725
 
726
-							}
726
+                            }
727 727
 
728
-						echo '</tr>';
728
+                        echo '</tr>';
729 729
 
730
-						endforeach;
731
-					?>
730
+                        endforeach;
731
+                    ?>
732 732
 
733 733
 				</tbody>
734 734
 
@@ -747,38 +747,38 @@  discard block
 block discarded – undo
747 747
  */
748 748
 function getpaid_admin_subscription_related_subscriptions_metabox( $subscription, $skip_current = true ) {
749 749
 
750
-	// Fetch the subscription groups.
751
-	$subscription_groups = getpaid_get_invoice_subscription_groups( $subscription->get_parent_payment_id() );
752
-
753
-	if ( empty( $subscription_groups ) ) {
754
-		return;
755
-	}
756
-
757
-	// Prepare table columns.
758
-	$columns = apply_filters(
759
-		'getpaid_subscription_related_subscriptions_columns',
760
-		array(
761
-			'subscription' => __( 'Subscription', 'invoicing' ),
762
-			'start_date'   => __( 'Start Date', 'invoicing' ),
763
-			'renewal_date' => __( 'Next Payment', 'invoicing' ),
764
-			'renewals'     => __( 'Payments', 'invoicing' ),
765
-			'item'         => __( 'Items', 'invoicing' ),
766
-			'status'       => __( 'Status', 'invoicing' ),
767
-		),
768
-		$subscription
769
-	);
770
-
771
-	if ( $subscription->get_status() == 'pending' ) {
772
-		unset( $columns['start_date'], $columns['renewal_date'] );
773
-	}
774
-
775
-	$table_class = 'w-100 bg-white';
776
-
777
-	if ( ! is_admin() ) {
778
-		$table_class = 'table table-bordered';
779
-	}
780
-
781
-	?>
750
+    // Fetch the subscription groups.
751
+    $subscription_groups = getpaid_get_invoice_subscription_groups( $subscription->get_parent_payment_id() );
752
+
753
+    if ( empty( $subscription_groups ) ) {
754
+        return;
755
+    }
756
+
757
+    // Prepare table columns.
758
+    $columns = apply_filters(
759
+        'getpaid_subscription_related_subscriptions_columns',
760
+        array(
761
+            'subscription' => __( 'Subscription', 'invoicing' ),
762
+            'start_date'   => __( 'Start Date', 'invoicing' ),
763
+            'renewal_date' => __( 'Next Payment', 'invoicing' ),
764
+            'renewals'     => __( 'Payments', 'invoicing' ),
765
+            'item'         => __( 'Items', 'invoicing' ),
766
+            'status'       => __( 'Status', 'invoicing' ),
767
+        ),
768
+        $subscription
769
+    );
770
+
771
+    if ( $subscription->get_status() == 'pending' ) {
772
+        unset( $columns['start_date'], $columns['renewal_date'] );
773
+    }
774
+
775
+    $table_class = 'w-100 bg-white';
776
+
777
+    if ( ! is_admin() ) {
778
+        $table_class = 'table table-bordered';
779
+    }
780
+
781
+    ?>
782 782
 		<div class="m-0" style="overflow: auto;">
783 783
 
784 784
 			<table class="<?php echo esc_attr( $table_class ); ?>">
@@ -787,14 +787,14 @@  discard block
 block discarded – undo
787 787
 					<tr>
788 788
 						<?php
789 789
 
790
-							foreach ( $columns as $key => $label ) {
791
-							$key   = esc_attr( $key );
792
-							$label = esc_html( $label );
793
-							$class = 'text-left';
790
+                            foreach ( $columns as $key => $label ) {
791
+                            $key   = esc_attr( $key );
792
+                            $label = esc_html( $label );
793
+                            $class = 'text-left';
794 794
 
795
-							echo "<th class='related-subscription-field-$key bg-light p-2 text-left color-dark font-weight-bold'>$label</th>";
796
-							}
797
-						?>
795
+                            echo "<th class='related-subscription-field-$key bg-light p-2 text-left color-dark font-weight-bold'>$label</th>";
796
+                            }
797
+                        ?>
798 798
 					</tr>
799 799
 				</thead>
800 800
 
@@ -802,74 +802,74 @@  discard block
 block discarded – undo
802 802
 
803 803
 					<?php
804 804
 
805
-						foreach ( $subscription_groups as $subscription_group ) :
805
+                        foreach ( $subscription_groups as $subscription_group ) :
806 806
 
807
-						// Do not list current subscription.
808
-						if ( $skip_current && (int) $subscription_group['subscription_id'] === $subscription->get_id() ) {
809
-							continue;
810
-							}
807
+                        // Do not list current subscription.
808
+                        if ( $skip_current && (int) $subscription_group['subscription_id'] === $subscription->get_id() ) {
809
+                            continue;
810
+                            }
811 811
 
812
-						// Ensure the subscription exists.
813
-						$_suscription = new WPInv_Subscription( $subscription_group['subscription_id'] );
812
+                        // Ensure the subscription exists.
813
+                        $_suscription = new WPInv_Subscription( $subscription_group['subscription_id'] );
814 814
 
815
-						if ( ! $_suscription->exists() ) {
816
-							continue;
817
-							}
815
+                        if ( ! $_suscription->exists() ) {
816
+                            continue;
817
+                            }
818 818
 
819
-						echo '<tr>';
819
+                        echo '<tr>';
820 820
 
821
-						foreach ( array_keys( $columns ) as $key ) {
821
+                        foreach ( array_keys( $columns ) as $key ) {
822 822
 
823
-							$class = 'text-left';
823
+                            $class = 'text-left';
824 824
 
825
-							echo "<td class='p-2 text-left'>";
825
+                            echo "<td class='p-2 text-left'>";
826 826
 
827
-								switch ( $key ) {
827
+                                switch ( $key ) {
828 828
 
829
-								case 'status':
830
-										echo wp_kses_post( $_suscription->get_status_label_html() );
831
-									break;
829
+                                case 'status':
830
+                                        echo wp_kses_post( $_suscription->get_status_label_html() );
831
+                                    break;
832 832
 
833
-								case 'item':
834
-											$markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
835
-											echo implode( ' | ', $markup );
836
-									break;
833
+                                case 'item':
834
+                                            $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
835
+                                            echo implode( ' | ', $markup );
836
+                                    break;
837 837
 
838
-								case 'renewals':
839
-									$max_bills = $_suscription->get_bill_times();
840
-									echo ( (int) $_suscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '&infin;' : (int) $max_bills );
841
-									break;
838
+                                case 'renewals':
839
+                                    $max_bills = $_suscription->get_bill_times();
840
+                                    echo ( (int) $_suscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '&infin;' : (int) $max_bills );
841
+                                    break;
842 842
 
843
-								case 'renewal_date':
844
-										echo $_suscription->is_active() ? getpaid_format_date_value( $_suscription->get_expiration() ) : '&mdash;';
845
-									break;
843
+                                case 'renewal_date':
844
+                                        echo $_suscription->is_active() ? getpaid_format_date_value( $_suscription->get_expiration() ) : '&mdash;';
845
+                                    break;
846 846
 
847
-								case 'start_date':
848
-										echo 'pending' == $_suscription->get_status() ? '&mdash;' : getpaid_format_date_value( $_suscription->get_date_created() );
849
-									break;
847
+                                case 'start_date':
848
+                                        echo 'pending' == $_suscription->get_status() ? '&mdash;' : getpaid_format_date_value( $_suscription->get_date_created() );
849
+                                    break;
850 850
 
851
-								case 'subscription':
852
-										$url = is_admin() ? admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $_suscription->get_id() ) ) : $_suscription->get_view_url();
853
-										printf(
851
+                                case 'subscription':
852
+                                        $url = is_admin() ? admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $_suscription->get_id() ) ) : $_suscription->get_view_url();
853
+                                        printf(
854 854
                                             '%1$s#%2$s%3$s',
855 855
                                             '<a href="' . esc_url( $url ) . '">',
856 856
                                             '<strong>' . intval( $_suscription->get_id() ) . '</strong>',
857
-											'</a>'
857
+                                            '</a>'
858 858
                                         );
859 859
 
860
-											echo WPInv_Subscriptions_List_Table::column_amount( $_suscription );
861
-									break;
860
+                                            echo WPInv_Subscriptions_List_Table::column_amount( $_suscription );
861
+                                    break;
862 862
 
863
-										}
863
+                                        }
864 864
 
865
-								echo '</td>';
865
+                                echo '</td>';
866 866
 
867
-							}
867
+                            }
868 868
 
869
-						echo '</tr>';
869
+                        echo '</tr>';
870 870
 
871
-						endforeach;
872
-					?>
871
+                        endforeach;
872
+                    ?>
873 873
 
874 874
 				</tbody>
875 875
 
Please login to merge, or discard this patch.
Switch Indentation   +102 added lines, -102 removed lines patch added patch discarded remove patch
@@ -512,37 +512,37 @@  discard block
 block discarded – undo
512 512
 
513 513
 								switch ( $key ) {
514 514
 
515
-								case 'total':
516
-										echo '<strong>' . wpinv_price( $payment->get_total(), $payment->get_currency() ) . '</strong>';
517
-									break;
518
-
519
-								case 'relationship':
520
-											echo $payment->is_renewal() ? __( 'Renewal Invoice', 'invoicing' ) : __( 'Initial Invoice', 'invoicing' );
521
-									break;
522
-
523
-								case 'date':
524
-									echo getpaid_format_date_value( $payment->get_date_created() );
525
-									break;
526
-
527
-								case 'status':
528
-										$status = $payment->get_status_nicename();
529
-										if ( is_admin() ) {
530
-										$status = $payment->get_status_label_html();
531
-										}
515
+								    case 'total':
516
+										    echo '<strong>' . wpinv_price( $payment->get_total(), $payment->get_currency() ) . '</strong>';
517
+									    break;
532 518
 
533
-										echo wp_kses_post( $status );
534
-									break;
519
+								    case 'relationship':
520
+											    echo $payment->is_renewal() ? __( 'Renewal Invoice', 'invoicing' ) : __( 'Initial Invoice', 'invoicing' );
521
+									    break;
535 522
 
536
-								case 'invoice':
537
-										$link    = esc_url( get_edit_post_link( $payment->get_id() ) );
523
+								    case 'date':
524
+									    echo getpaid_format_date_value( $payment->get_date_created() );
525
+									    break;
538 526
 
539
-										if ( ! is_admin() ) {
540
-										$link = esc_url( $payment->get_view_url() );
541
-										}
527
+								    case 'status':
528
+										    $status = $payment->get_status_nicename();
529
+										    if ( is_admin() ) {
530
+										    $status = $payment->get_status_label_html();
531
+										    }
532
+
533
+										    echo wp_kses_post( $status );
534
+									    break;
535
+
536
+								    case 'invoice':
537
+										    $link    = esc_url( get_edit_post_link( $payment->get_id() ) );
538
+
539
+										    if ( ! is_admin() ) {
540
+										    $link = esc_url( $payment->get_view_url() );
541
+										    }
542 542
 
543
-										$invoice = esc_html( $payment->get_number() );
544
-										echo "<a href='$link'>$invoice</a>";
545
-									break;
543
+										    $invoice = esc_html( $payment->get_number() );
544
+										    echo "<a href='$link'>$invoice</a>";
545
+									    break;
546 546
 										}
547 547
 
548 548
 								echo '</td>';
@@ -641,37 +641,37 @@  discard block
 block discarded – undo
641 641
 
642 642
 								switch ( $key ) {
643 643
 
644
-								case 'item_name':
645
-										$item_name = get_the_title( $subscription_group_item['item_id'] );
646
-										$item_name = empty( $item_name ) ? $subscription_group_item['item_name'] : $item_name;
644
+								    case 'item_name':
645
+										    $item_name = get_the_title( $subscription_group_item['item_id'] );
646
+										    $item_name = empty( $item_name ) ? $subscription_group_item['item_name'] : $item_name;
647 647
 
648
-										if ( $invoice->get_template() == 'amount' || 1 == (float) $subscription_group_item['quantity'] ) {
649
-										echo esc_html( $item_name );
650
-										} else {
651
-										printf( '%1$s x %2$d', esc_html( $item_name ), (float) $subscription_group_item['quantity'] );
652
-											}
648
+										    if ( $invoice->get_template() == 'amount' || 1 == (float) $subscription_group_item['quantity'] ) {
649
+										    echo esc_html( $item_name );
650
+										    } else {
651
+										    printf( '%1$s x %2$d', esc_html( $item_name ), (float) $subscription_group_item['quantity'] );
652
+											    }
653 653
 
654
-									break;
654
+									    break;
655 655
 
656
-								case 'price':
657
-											echo wpinv_price( $subscription_group_item['item_price'], $invoice->get_currency() );
658
-									break;
656
+								    case 'price':
657
+											    echo wpinv_price( $subscription_group_item['item_price'], $invoice->get_currency() );
658
+									    break;
659 659
 
660
-								case 'tax':
661
-									echo wpinv_price( $subscription_group_item['tax'], $invoice->get_currency() );
662
-									break;
660
+								    case 'tax':
661
+									    echo wpinv_price( $subscription_group_item['tax'], $invoice->get_currency() );
662
+									    break;
663 663
 
664
-								case 'discount':
665
-										echo wpinv_price( $subscription_group_item['discount'], $invoice->get_currency() );
666
-									break;
664
+								    case 'discount':
665
+										    echo wpinv_price( $subscription_group_item['discount'], $invoice->get_currency() );
666
+									    break;
667 667
 
668
-								case 'initial':
669
-										echo wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() );
670
-									break;
668
+								    case 'initial':
669
+										    echo wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() );
670
+									    break;
671 671
 
672
-								case 'recurring':
673
-										echo '<strong>' . wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() ) . '</strong>';
674
-									break;
672
+								    case 'recurring':
673
+										    echo '<strong>' . wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() ) . '</strong>';
674
+									    break;
675 675
 
676 676
 										}
677 677
 
@@ -695,29 +695,29 @@  discard block
 block discarded – undo
695 695
 
696 696
 								switch ( $key ) {
697 697
 
698
-								case 'item_name':
699
-										echo esc_html( $subscription_group_fee['name'] );
700
-									break;
698
+								    case 'item_name':
699
+										    echo esc_html( $subscription_group_fee['name'] );
700
+									    break;
701 701
 
702
-								case 'price':
703
-											echo wpinv_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() );
704
-									break;
702
+								    case 'price':
703
+											    echo wpinv_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() );
704
+									    break;
705 705
 
706
-								case 'tax':
707
-									echo '&mdash;';
708
-									break;
706
+								    case 'tax':
707
+									    echo '&mdash;';
708
+									    break;
709 709
 
710
-								case 'discount':
711
-										echo '&mdash;';
712
-									break;
710
+								    case 'discount':
711
+										    echo '&mdash;';
712
+									    break;
713 713
 
714
-								case 'initial':
715
-										echo wpinv_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() );
716
-									break;
714
+								    case 'initial':
715
+										    echo wpinv_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() );
716
+									    break;
717 717
 
718
-								case 'recurring':
719
-										echo '<strong>' . wpinv_price( $subscription_group_fee['recurring_fee'], $invoice->get_currency() ) . '</strong>';
720
-									break;
718
+								    case 'recurring':
719
+										    echo '<strong>' . wpinv_price( $subscription_group_fee['recurring_fee'], $invoice->get_currency() ) . '</strong>';
720
+									    break;
721 721
 
722 722
 										}
723 723
 
@@ -826,39 +826,39 @@  discard block
 block discarded – undo
826 826
 
827 827
 								switch ( $key ) {
828 828
 
829
-								case 'status':
830
-										echo wp_kses_post( $_suscription->get_status_label_html() );
831
-									break;
832
-
833
-								case 'item':
834
-											$markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
835
-											echo implode( ' | ', $markup );
836
-									break;
837
-
838
-								case 'renewals':
839
-									$max_bills = $_suscription->get_bill_times();
840
-									echo ( (int) $_suscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '&infin;' : (int) $max_bills );
841
-									break;
842
-
843
-								case 'renewal_date':
844
-										echo $_suscription->is_active() ? getpaid_format_date_value( $_suscription->get_expiration() ) : '&mdash;';
845
-									break;
846
-
847
-								case 'start_date':
848
-										echo 'pending' == $_suscription->get_status() ? '&mdash;' : getpaid_format_date_value( $_suscription->get_date_created() );
849
-									break;
850
-
851
-								case 'subscription':
852
-										$url = is_admin() ? admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $_suscription->get_id() ) ) : $_suscription->get_view_url();
853
-										printf(
854
-                                            '%1$s#%2$s%3$s',
855
-                                            '<a href="' . esc_url( $url ) . '">',
856
-                                            '<strong>' . intval( $_suscription->get_id() ) . '</strong>',
857
-											'</a>'
858
-                                        );
859
-
860
-											echo WPInv_Subscriptions_List_Table::column_amount( $_suscription );
861
-									break;
829
+								    case 'status':
830
+										    echo wp_kses_post( $_suscription->get_status_label_html() );
831
+									    break;
832
+
833
+								    case 'item':
834
+											    $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
835
+											    echo implode( ' | ', $markup );
836
+									    break;
837
+
838
+								    case 'renewals':
839
+									    $max_bills = $_suscription->get_bill_times();
840
+									    echo ( (int) $_suscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '&infin;' : (int) $max_bills );
841
+									    break;
842
+
843
+								    case 'renewal_date':
844
+										    echo $_suscription->is_active() ? getpaid_format_date_value( $_suscription->get_expiration() ) : '&mdash;';
845
+									    break;
846
+
847
+								    case 'start_date':
848
+										    echo 'pending' == $_suscription->get_status() ? '&mdash;' : getpaid_format_date_value( $_suscription->get_date_created() );
849
+									    break;
850
+
851
+								    case 'subscription':
852
+										    $url = is_admin() ? admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $_suscription->get_id() ) ) : $_suscription->get_view_url();
853
+										    printf(
854
+                                                '%1$s#%2$s%3$s',
855
+                                                '<a href="' . esc_url( $url ) . '">',
856
+                                                '<strong>' . intval( $_suscription->get_id() ) . '</strong>',
857
+											    '</a>'
858
+                                            );
859
+
860
+											    echo WPInv_Subscriptions_List_Table::column_amount( $_suscription );
861
+									    break;
862 862
 
863 863
 										}
864 864
 
Please login to merge, or discard this patch.
Spacing   +204 added lines, -204 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Contains functions that display the subscriptions admin page.
4 4
  */
5 5
 
6
-defined( 'ABSPATH' ) || exit;
6
+defined('ABSPATH') || exit;
7 7
 
8 8
 /**
9 9
  * Render the Subscriptions page
@@ -17,22 +17,22 @@  discard block
 block discarded – undo
17 17
 	?>
18 18
 
19 19
 	<div class="wrap">
20
-		<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
20
+		<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
21 21
 		<div class="bsui">
22 22
 
23 23
 			<?php
24 24
 
25 25
 				// Verify user permissions.
26
-				if ( ! wpinv_current_user_can_manage_invoicing() ) {
26
+				if (!wpinv_current_user_can_manage_invoicing()) {
27 27
 
28 28
 				echo aui()->alert(
29 29
 				array(
30 30
                     'type'    => 'danger',
31
-                    'content' => __( 'You are not permitted to view this page.', 'invoicing' ),
31
+                    'content' => __('You are not permitted to view this page.', 'invoicing'),
32 32
 				)
33 33
 			);
34 34
 
35
-				} elseif ( ! empty( $_GET['id'] ) && is_numeric( $_GET['id'] ) ) {
35
+				} elseif (!empty($_GET['id']) && is_numeric($_GET['id'])) {
36 36
 
37 37
 				// Display a single subscription.
38 38
 				wpinv_recurring_subscription_details();
@@ -66,7 +66,7 @@  discard block
 block discarded – undo
66 66
 	<?php $subscribers_table->views(); ?>
67 67
 	<form id="subscribers-filter" class="bsui" method="get">
68 68
 		<input type="hidden" name="page" value="wpinv-subscriptions" />
69
-		<?php $subscribers_table->search_box( __( 'Search Subscriptions', 'invoicing' ), 'getpaid-search-subscriptions' ); ?>
69
+		<?php $subscribers_table->search_box(__('Search Subscriptions', 'invoicing'), 'getpaid-search-subscriptions'); ?>
70 70
 		<?php $subscribers_table->display(); ?>
71 71
 	</form>
72 72
 	<?php
@@ -82,13 +82,13 @@  discard block
 block discarded – undo
82 82
 function wpinv_recurring_subscription_details() {
83 83
 
84 84
 	// Fetch the subscription.
85
-	$sub = new WPInv_Subscription( (int) $_GET['id'] );
86
-	if ( ! $sub->exists() ) {
85
+	$sub = new WPInv_Subscription((int) $_GET['id']);
86
+	if (!$sub->exists()) {
87 87
 
88 88
 		echo aui()->alert(
89 89
 			array(
90 90
 				'type'    => 'danger',
91
-				'content' => __( 'Subscription not found.', 'invoicing' ),
91
+				'content' => __('Subscription not found.', 'invoicing'),
92 92
 			)
93 93
 		);
94 94
 
@@ -96,32 +96,32 @@  discard block
 block discarded – undo
96 96
 	}
97 97
 
98 98
 	// Use metaboxes to display the subscription details.
99
-	add_meta_box( 'getpaid_admin_subscription_details_metabox', __( 'Subscription Details', 'invoicing' ), 'getpaid_admin_subscription_details_metabox', get_current_screen(), 'normal', 'high' );
100
-	add_meta_box( 'getpaid_admin_subscription_update_metabox', __( 'Change Status', 'invoicing' ), 'getpaid_admin_subscription_update_metabox', get_current_screen(), 'side' );
99
+	add_meta_box('getpaid_admin_subscription_details_metabox', __('Subscription Details', 'invoicing'), 'getpaid_admin_subscription_details_metabox', get_current_screen(), 'normal', 'high');
100
+	add_meta_box('getpaid_admin_subscription_update_metabox', __('Change Status', 'invoicing'), 'getpaid_admin_subscription_update_metabox', get_current_screen(), 'side');
101 101
 
102 102
 	$subscription_id     = $sub->get_id();
103
-	$subscription_groups = getpaid_get_invoice_subscription_groups( $sub->get_parent_invoice_id() );
104
-	$subscription_group  = wp_list_filter( $subscription_groups, compact( 'subscription_id' ) );
103
+	$subscription_groups = getpaid_get_invoice_subscription_groups($sub->get_parent_invoice_id());
104
+	$subscription_group  = wp_list_filter($subscription_groups, compact('subscription_id'));
105 105
 
106
-	if ( 1 < count( $subscription_groups ) ) {
107
-		add_meta_box( 'getpaid_admin_subscription_related_subscriptions_metabox', __( 'Related Subscriptions', 'invoicing' ), 'getpaid_admin_subscription_related_subscriptions_metabox', get_current_screen(), 'advanced' );
106
+	if (1 < count($subscription_groups)) {
107
+		add_meta_box('getpaid_admin_subscription_related_subscriptions_metabox', __('Related Subscriptions', 'invoicing'), 'getpaid_admin_subscription_related_subscriptions_metabox', get_current_screen(), 'advanced');
108 108
 	}
109 109
 
110
-	if ( ! empty( $subscription_group ) ) {
111
-		add_meta_box( 'getpaid_admin_subscription_item_details_metabox', __( 'Subscription Items', 'invoicing' ), 'getpaid_admin_subscription_item_details_metabox', get_current_screen(), 'normal', 'low' );
110
+	if (!empty($subscription_group)) {
111
+		add_meta_box('getpaid_admin_subscription_item_details_metabox', __('Subscription Items', 'invoicing'), 'getpaid_admin_subscription_item_details_metabox', get_current_screen(), 'normal', 'low');
112 112
 	}
113 113
 
114
-	add_meta_box( 'getpaid_admin_subscription_invoice_details_metabox', __( 'Related Invoices', 'invoicing' ), 'getpaid_admin_subscription_invoice_details_metabox', get_current_screen(), 'advanced' );
114
+	add_meta_box('getpaid_admin_subscription_invoice_details_metabox', __('Related Invoices', 'invoicing'), 'getpaid_admin_subscription_invoice_details_metabox', get_current_screen(), 'advanced');
115 115
 
116
-	do_action( 'getpaid_admin_single_subscription_register_metabox', $sub );
116
+	do_action('getpaid_admin_single_subscription_register_metabox', $sub);
117 117
 
118 118
 	?>
119 119
 
120
-		<form method="post" action="<?php echo admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $sub->get_id() ) ); ?>">
120
+		<form method="post" action="<?php echo admin_url('admin.php?page=wpinv-subscriptions&id=' . absint($sub->get_id())); ?>">
121 121
 
122
-			<?php wp_nonce_field( 'getpaid-nonce', 'getpaid-nonce' ); ?>
123
-			<?php wp_nonce_field( 'meta-box-order', 'meta-box-order-nonce', false ); ?>
124
-			<?php wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); ?>
122
+			<?php wp_nonce_field('getpaid-nonce', 'getpaid-nonce'); ?>
123
+			<?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false); ?>
124
+			<?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false); ?>
125 125
 			<input type="hidden" name="getpaid-admin-action" value="update_single_subscription" />
126 126
 			<input type="hidden" name="subscription_id" value="<?php echo (int) $sub->get_id(); ?>" />
127 127
 
@@ -129,12 +129,12 @@  discard block
 block discarded – undo
129 129
 				<div id="post-body" class="metabox-holder columns-<?php echo 1 == get_current_screen()->get_columns() ? '1' : '2'; ?>">
130 130
 
131 131
 					<div id="postbox-container-1" class="postbox-container">
132
-						<?php do_meta_boxes( get_current_screen(), 'side', $sub ); ?>
132
+						<?php do_meta_boxes(get_current_screen(), 'side', $sub); ?>
133 133
 					</div>
134 134
 
135 135
 					<div id="postbox-container-2" class="postbox-container">
136
-						<?php do_meta_boxes( get_current_screen(), 'normal', $sub ); ?>
137
-						<?php do_meta_boxes( get_current_screen(), 'advanced', $sub ); ?>
136
+						<?php do_meta_boxes(get_current_screen(), 'normal', $sub); ?>
137
+						<?php do_meta_boxes(get_current_screen(), 'advanced', $sub); ?>
138 138
 					</div>
139 139
 
140 140
 				</div>
@@ -153,43 +153,43 @@  discard block
 block discarded – undo
153 153
  *
154 154
  * @param WPInv_Subscription $sub
155 155
  */
156
-function getpaid_admin_subscription_details_metabox( $sub ) {
156
+function getpaid_admin_subscription_details_metabox($sub) {
157 157
 
158 158
 	// Subscription items.
159
-	$subscription_group = getpaid_get_invoice_subscription_group( $sub->get_parent_invoice_id(), $sub->get_id() );
160
-	$items_count        = empty( $subscription_group ) ? 1 : count( $subscription_group['items'] );
159
+	$subscription_group = getpaid_get_invoice_subscription_group($sub->get_parent_invoice_id(), $sub->get_id());
160
+	$items_count        = empty($subscription_group) ? 1 : count($subscription_group['items']);
161 161
 
162 162
 	// Prepare subscription detail columns.
163 163
 	$fields = apply_filters(
164 164
 		'getpaid_subscription_admin_page_fields',
165 165
 		array(
166
-			'subscription' => __( 'Subscription', 'invoicing' ),
167
-			'customer'     => __( 'Customer', 'invoicing' ),
168
-			'amount'       => __( 'Amount', 'invoicing' ),
169
-			'start_date'   => __( 'Start Date', 'invoicing' ),
170
-			'renews_on'    => __( 'Next Payment', 'invoicing' ),
171
-			'renewals'     => __( 'Payments', 'invoicing' ),
172
-			'item'         => _n( 'Item', 'Items', $items_count, 'invoicing' ),
173
-			'gateway'      => __( 'Payment Method', 'invoicing' ),
174
-			'profile_id'   => __( 'Profile ID', 'invoicing' ),
175
-			'status'       => __( 'Status', 'invoicing' ),
166
+			'subscription' => __('Subscription', 'invoicing'),
167
+			'customer'     => __('Customer', 'invoicing'),
168
+			'amount'       => __('Amount', 'invoicing'),
169
+			'start_date'   => __('Start Date', 'invoicing'),
170
+			'renews_on'    => __('Next Payment', 'invoicing'),
171
+			'renewals'     => __('Payments', 'invoicing'),
172
+			'item'         => _n('Item', 'Items', $items_count, 'invoicing'),
173
+			'gateway'      => __('Payment Method', 'invoicing'),
174
+			'profile_id'   => __('Profile ID', 'invoicing'),
175
+			'status'       => __('Status', 'invoicing'),
176 176
 		)
177 177
 	);
178 178
 
179
-	if ( ! $sub->is_active() ) {
179
+	if (!$sub->is_active()) {
180 180
 
181
-		if ( isset( $fields['renews_on'] ) ) {
182
-			unset( $fields['renews_on'] );
181
+		if (isset($fields['renews_on'])) {
182
+			unset($fields['renews_on']);
183 183
 		}
184 184
 
185
-		if ( isset( $fields['gateway'] ) ) {
186
-			unset( $fields['gateway'] );
185
+		if (isset($fields['gateway'])) {
186
+			unset($fields['gateway']);
187 187
 		}
188 188
 }
189 189
 
190 190
 	$profile_id = $sub->get_profile_id();
191
-	if ( empty( $profile_id ) && isset( $fields['profile_id'] ) ) {
192
-		unset( $fields['profile_id'] );
191
+	if (empty($profile_id) && isset($fields['profile_id'])) {
192
+		unset($fields['profile_id']);
193 193
 	}
194 194
 
195 195
 	?>
@@ -197,16 +197,16 @@  discard block
 block discarded – undo
197 197
 		<table class="table table-borderless" style="font-size: 14px;">
198 198
 			<tbody>
199 199
 
200
-				<?php foreach ( $fields as $key => $label ) : ?>
200
+				<?php foreach ($fields as $key => $label) : ?>
201 201
 
202
-					<tr class="getpaid-subscription-meta-<?php echo sanitize_html_class( $key ); ?>">
202
+					<tr class="getpaid-subscription-meta-<?php echo sanitize_html_class($key); ?>">
203 203
 
204 204
 						<th class="w-25" style="font-weight: 500;">
205
-							<?php echo esc_html( $label ); ?>
205
+							<?php echo esc_html($label); ?>
206 206
 						</th>
207 207
 
208 208
 						<td class="w-75 text-muted">
209
-							<?php do_action( 'getpaid_subscription_admin_display_' . sanitize_key( $key ), $sub, $subscription_group ); ?>
209
+							<?php do_action('getpaid_subscription_admin_display_' . sanitize_key($key), $sub, $subscription_group); ?>
210 210
 						</td>
211 211
 
212 212
 					</tr>
@@ -224,135 +224,135 @@  discard block
 block discarded – undo
224 224
  *
225 225
  * @param WPInv_Subscription $subscription
226 226
  */
227
-function getpaid_admin_subscription_metabox_display_customer( $subscription ) {
227
+function getpaid_admin_subscription_metabox_display_customer($subscription) {
228 228
 
229
-	$username = __( '(Missing User)', 'invoicing' );
229
+	$username = __('(Missing User)', 'invoicing');
230 230
 
231
-	$user = get_userdata( $subscription->get_customer_id() );
232
-	if ( $user ) {
231
+	$user = get_userdata($subscription->get_customer_id());
232
+	if ($user) {
233 233
 
234 234
 		$username = sprintf(
235 235
 			'<a href="user-edit.php?user_id=%s">%s</a>',
236
-			absint( $user->ID ),
237
-			! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
236
+			absint($user->ID),
237
+			!empty($user->display_name) ? esc_html($user->display_name) : sanitize_email($user->user_email)
238 238
 		);
239 239
 
240 240
 	}
241 241
 
242
-	echo wp_kses_post( $username );
242
+	echo wp_kses_post($username);
243 243
 }
244
-add_action( 'getpaid_subscription_admin_display_customer', 'getpaid_admin_subscription_metabox_display_customer' );
244
+add_action('getpaid_subscription_admin_display_customer', 'getpaid_admin_subscription_metabox_display_customer');
245 245
 
246 246
 /**
247 247
  * Displays the subscription amount.
248 248
  *
249 249
  * @param WPInv_Subscription $subscription
250 250
  */
251
-function getpaid_admin_subscription_metabox_display_amount( $subscription ) {
252
-	$amount    = wp_kses_post( getpaid_get_formatted_subscription_amount( $subscription ) );
251
+function getpaid_admin_subscription_metabox_display_amount($subscription) {
252
+	$amount = wp_kses_post(getpaid_get_formatted_subscription_amount($subscription));
253 253
 	echo "<span>$amount</span>";
254 254
 }
255
-add_action( 'getpaid_subscription_admin_display_amount', 'getpaid_admin_subscription_metabox_display_amount' );
255
+add_action('getpaid_subscription_admin_display_amount', 'getpaid_admin_subscription_metabox_display_amount');
256 256
 
257 257
 /**
258 258
  * Displays the subscription id.
259 259
  *
260 260
  * @param WPInv_Subscription $subscription
261 261
  */
262
-function getpaid_admin_subscription_metabox_display_id( $subscription ) {
262
+function getpaid_admin_subscription_metabox_display_id($subscription) {
263 263
 
264 264
 	printf(
265 265
 		'<a href="%s">#%s</a>',
266
-		esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $subscription->get_id() ) ) ),
267
-		absint( $subscription->get_id() )
266
+		esc_url(admin_url('admin.php?page=wpinv-subscriptions&id=' . absint($subscription->get_id()))),
267
+		absint($subscription->get_id())
268 268
 	);
269 269
 
270 270
 }
271
-add_action( 'getpaid_subscription_admin_display_subscription', 'getpaid_admin_subscription_metabox_display_id' );
271
+add_action('getpaid_subscription_admin_display_subscription', 'getpaid_admin_subscription_metabox_display_id');
272 272
 
273 273
 /**
274 274
  * Displays the subscription renewal date.
275 275
  *
276 276
  * @param WPInv_Subscription $subscription
277 277
  */
278
-function getpaid_admin_subscription_metabox_display_start_date( $subscription ) {
279
-	echo getpaid_format_date_value( $subscription->get_date_created() );
278
+function getpaid_admin_subscription_metabox_display_start_date($subscription) {
279
+	echo getpaid_format_date_value($subscription->get_date_created());
280 280
 }
281
-add_action( 'getpaid_subscription_admin_display_start_date', 'getpaid_admin_subscription_metabox_display_start_date' );
281
+add_action('getpaid_subscription_admin_display_start_date', 'getpaid_admin_subscription_metabox_display_start_date');
282 282
 
283 283
 /**
284 284
  * Displays the subscription renewal date.
285 285
  *
286 286
  * @param WPInv_Subscription $subscription
287 287
  */
288
-function getpaid_admin_subscription_metabox_display_renews_on( $subscription ) {
289
-	echo getpaid_format_date_value( $subscription->get_expiration() );
288
+function getpaid_admin_subscription_metabox_display_renews_on($subscription) {
289
+	echo getpaid_format_date_value($subscription->get_expiration());
290 290
 }
291
-add_action( 'getpaid_subscription_admin_display_renews_on', 'getpaid_admin_subscription_metabox_display_renews_on' );
291
+add_action('getpaid_subscription_admin_display_renews_on', 'getpaid_admin_subscription_metabox_display_renews_on');
292 292
 
293 293
 /**
294 294
  * Displays the subscription renewal count.
295 295
  *
296 296
  * @param WPInv_Subscription $subscription
297 297
  */
298
-function getpaid_admin_subscription_metabox_display_renewals( $subscription ) {
298
+function getpaid_admin_subscription_metabox_display_renewals($subscription) {
299 299
 	$max_bills = $subscription->get_bill_times();
300
-	echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '&infin;' : (int) $max_bills );
300
+	echo ((int) $subscription->get_times_billed()) . ' / ' . (empty($max_bills) ? '&infin;' : (int) $max_bills);
301 301
 }
302
-add_action( 'getpaid_subscription_admin_display_renewals', 'getpaid_admin_subscription_metabox_display_renewals' );
302
+add_action('getpaid_subscription_admin_display_renewals', 'getpaid_admin_subscription_metabox_display_renewals');
303 303
 /**
304 304
  * Displays the subscription item.
305 305
  *
306 306
  * @param WPInv_Subscription $subscription
307 307
  * @param false|array $subscription_group
308 308
  */
309
-function getpaid_admin_subscription_metabox_display_item( $subscription, $subscription_group = false ) {
309
+function getpaid_admin_subscription_metabox_display_item($subscription, $subscription_group = false) {
310 310
 
311
-	if ( empty( $subscription_group ) ) {
312
-		echo WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() );
311
+	if (empty($subscription_group)) {
312
+		echo WPInv_Subscriptions_List_Table::generate_item_markup($subscription->get_product_id());
313 313
 		return;
314 314
 	}
315 315
 
316
-	$markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
317
-	echo wp_kses_post( implode( ' | ', $markup ) );
316
+	$markup = array_map(array('WPInv_Subscriptions_List_Table', 'generate_item_markup'), array_keys($subscription_group['items']));
317
+	echo wp_kses_post(implode(' | ', $markup));
318 318
 
319 319
 }
320
-add_action( 'getpaid_subscription_admin_display_item', 'getpaid_admin_subscription_metabox_display_item', 10, 2 );
320
+add_action('getpaid_subscription_admin_display_item', 'getpaid_admin_subscription_metabox_display_item', 10, 2);
321 321
 
322 322
 /**
323 323
  * Displays the subscription gateway.
324 324
  *
325 325
  * @param WPInv_Subscription $subscription
326 326
  */
327
-function getpaid_admin_subscription_metabox_display_gateway( $subscription ) {
327
+function getpaid_admin_subscription_metabox_display_gateway($subscription) {
328 328
 
329 329
 	$gateway = $subscription->get_gateway();
330 330
 
331
-	if ( ! empty( $gateway ) ) {
332
-		echo esc_html( wpinv_get_gateway_admin_label( $gateway ) );
331
+	if (!empty($gateway)) {
332
+		echo esc_html(wpinv_get_gateway_admin_label($gateway));
333 333
 	} else {
334 334
 		echo '&mdash;';
335 335
 	}
336 336
 
337 337
 }
338
-add_action( 'getpaid_subscription_admin_display_gateway', 'getpaid_admin_subscription_metabox_display_gateway' );
338
+add_action('getpaid_subscription_admin_display_gateway', 'getpaid_admin_subscription_metabox_display_gateway');
339 339
 
340 340
 /**
341 341
  * Displays the subscription status.
342 342
  *
343 343
  * @param WPInv_Subscription $subscription
344 344
  */
345
-function getpaid_admin_subscription_metabox_display_status( $subscription ) {
346
-	echo wp_kses_post( $subscription->get_status_label_html() );
345
+function getpaid_admin_subscription_metabox_display_status($subscription) {
346
+	echo wp_kses_post($subscription->get_status_label_html());
347 347
 }
348
-add_action( 'getpaid_subscription_admin_display_status', 'getpaid_admin_subscription_metabox_display_status' );
348
+add_action('getpaid_subscription_admin_display_status', 'getpaid_admin_subscription_metabox_display_status');
349 349
 
350 350
 /**
351 351
  * Displays the subscription profile id.
352 352
  *
353 353
  * @param WPInv_Subscription $subscription
354 354
  */
355
-function getpaid_admin_subscription_metabox_display_profile_id( $subscription ) {
355
+function getpaid_admin_subscription_metabox_display_profile_id($subscription) {
356 356
 
357 357
 	$profile_id = $subscription->get_profile_id();
358 358
 
@@ -361,31 +361,31 @@  discard block
 block discarded – undo
361 361
 			'type'              => 'text',
362 362
 			'id'                => 'wpinv_subscription_profile_id',
363 363
 			'name'              => 'wpinv_subscription_profile_id',
364
-			'label'             => __( 'Profile Id', 'invoicing' ),
364
+			'label'             => __('Profile Id', 'invoicing'),
365 365
 			'label_type'        => 'hidden',
366
-			'placeholder'       => __( 'Profile Id', 'invoicing' ),
367
-			'value'             => esc_attr( $profile_id ),
366
+			'placeholder'       => __('Profile Id', 'invoicing'),
367
+			'value'             => esc_attr($profile_id),
368 368
 			'input_group_right' => '',
369 369
 			'no_wrap'           => true,
370 370
 		)
371 371
 	);
372 372
 
373
-	echo str_ireplace( 'form-control', 'regular-text', $input );
373
+	echo str_ireplace('form-control', 'regular-text', $input);
374 374
 
375
-	$url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $subscription );
376
-	if ( ! empty( $url ) ) {
377
-		echo '&nbsp;<a href="' . esc_url_raw( $url ) . '" title="' . __( 'View in Gateway', 'invoicing' ) . '" target="_blank"><i class="fas fa-external-link-alt fa-xs fa-fw align-top"></i></a>';
375
+	$url = apply_filters('getpaid_remote_subscription_profile_url', '', $subscription);
376
+	if (!empty($url)) {
377
+		echo '&nbsp;<a href="' . esc_url_raw($url) . '" title="' . __('View in Gateway', 'invoicing') . '" target="_blank"><i class="fas fa-external-link-alt fa-xs fa-fw align-top"></i></a>';
378 378
 	}
379 379
 
380 380
 }
381
-add_action( 'getpaid_subscription_admin_display_profile_id', 'getpaid_admin_subscription_metabox_display_profile_id' );
381
+add_action('getpaid_subscription_admin_display_profile_id', 'getpaid_admin_subscription_metabox_display_profile_id');
382 382
 
383 383
 /**
384 384
  * Displays the subscriptions update metabox.
385 385
  *
386 386
  * @param WPInv_Subscription $subscription
387 387
  */
388
-function getpaid_admin_subscription_update_metabox( $subscription ) {
388
+function getpaid_admin_subscription_update_metabox($subscription) {
389 389
 
390 390
 	?>
391 391
 	<div class="mt-3">
@@ -398,10 +398,10 @@  discard block
 block discarded – undo
398 398
 					'id'        => 'subscription_status_update_select',
399 399
 					'required'  => true,
400 400
 					'no_wrap'   => false,
401
-					'label'     => __( 'Subscription Status', 'invoicing' ),
402
-					'help_text' => __( 'Updating the status will trigger related actions and hooks', 'invoicing' ),
401
+					'label'     => __('Subscription Status', 'invoicing'),
402
+					'help_text' => __('Updating the status will trigger related actions and hooks', 'invoicing'),
403 403
 					'select2'   => true,
404
-					'value'     => $subscription->get_status( 'edit' ),
404
+					'value'     => $subscription->get_status('edit'),
405 405
 				)
406 406
 			);
407 407
 		?>
@@ -409,13 +409,13 @@  discard block
 block discarded – undo
409 409
 		<div class="mt-2 px-3 py-2 bg-light border-top" style="margin: -12px;">
410 410
 
411 411
 		<?php
412
-			submit_button( __( 'Update', 'invoicing' ), 'primary', 'submit', false );
412
+			submit_button(__('Update', 'invoicing'), 'primary', 'submit', false);
413 413
 
414
-			$url    = wp_nonce_url( add_query_arg( 'getpaid-admin-action', 'subscription_manual_renew' ), 'getpaid-nonce', 'getpaid-nonce' );
415
-			$anchor = __( 'Renew Subscription', 'invoicing' );
416
-			$title  = esc_attr__( 'Are you sure you want to extend the subscription and generate a new invoice that will be automatically marked as paid?', 'invoicing' );
414
+			$url    = wp_nonce_url(add_query_arg('getpaid-admin-action', 'subscription_manual_renew'), 'getpaid-nonce', 'getpaid-nonce');
415
+			$anchor = __('Renew Subscription', 'invoicing');
416
+			$title  = esc_attr__('Are you sure you want to extend the subscription and generate a new invoice that will be automatically marked as paid?', 'invoicing');
417 417
 
418
-			if ( $subscription->is_active() ) {
418
+			if ($subscription->is_active()) {
419 419
 			echo "<a href='$url' class='float-right text-muted' onclick='return confirm(\"$title\")'>$anchor</a>";
420 420
 			}
421 421
 
@@ -428,45 +428,45 @@  discard block
 block discarded – undo
428 428
  * @param WPInv_Subscription $subscription
429 429
  * @param bool $strict Whether or not to skip invoices of sibling subscriptions
430 430
  */
431
-function getpaid_admin_subscription_invoice_details_metabox( $subscription, $strict = true ) {
431
+function getpaid_admin_subscription_invoice_details_metabox($subscription, $strict = true) {
432 432
 
433 433
 	$columns = apply_filters(
434 434
 		'getpaid_subscription_related_invoices_columns',
435 435
 		array(
436
-			'invoice'      => __( 'Invoice', 'invoicing' ),
437
-			'relationship' => __( 'Relationship', 'invoicing' ),
438
-			'date'         => __( 'Date', 'invoicing' ),
439
-			'status'       => __( 'Status', 'invoicing' ),
440
-			'total'        => __( 'Total', 'invoicing' ),
436
+			'invoice'      => __('Invoice', 'invoicing'),
437
+			'relationship' => __('Relationship', 'invoicing'),
438
+			'date'         => __('Date', 'invoicing'),
439
+			'status'       => __('Status', 'invoicing'),
440
+			'total'        => __('Total', 'invoicing'),
441 441
 		),
442 442
 		$subscription
443 443
 	);
444 444
 
445 445
 	// Prepare the invoices.
446
-	$payments = $subscription->get_child_payments( ! is_admin() );
446
+	$payments = $subscription->get_child_payments(!is_admin());
447 447
 	$parent   = $subscription->get_parent_invoice();
448 448
 
449
-	if ( $parent->exists() ) {
450
-		$payments = array_merge( array( $parent ), $payments );
449
+	if ($parent->exists()) {
450
+		$payments = array_merge(array($parent), $payments);
451 451
 	}
452 452
 
453 453
 	$table_class = 'w-100 bg-white';
454 454
 
455
-	if ( ! is_admin() ) {
455
+	if (!is_admin()) {
456 456
 		$table_class = 'table table-bordered';
457 457
 	}
458 458
 
459 459
 	?>
460 460
 		<div class="m-0" style="overflow: auto;">
461 461
 
462
-			<table class="<?php echo esc_attr( $table_class ); ?>">
462
+			<table class="<?php echo esc_attr($table_class); ?>">
463 463
 
464 464
 				<thead>
465 465
 					<tr>
466 466
 						<?php
467
-							foreach ( $columns as $key => $label ) {
468
-							$key   = esc_attr( $key );
469
-							$label = esc_html( $label );
467
+							foreach ($columns as $key => $label) {
468
+							$key   = esc_attr($key);
469
+							$label = esc_html($label);
470 470
 							$class = 'text-left';
471 471
 
472 472
 							echo "<th class='subscription-invoice-field-$key bg-light p-2 $class color-dark font-weight-bold'>$label</th>";
@@ -477,70 +477,70 @@  discard block
 block discarded – undo
477 477
 
478 478
 				<tbody>
479 479
 
480
-					<?php if ( empty( $payments ) ) : ?>
480
+					<?php if (empty($payments)) : ?>
481 481
 						<tr>
482
-							<td colspan="<?php echo count( $columns ); ?>" class="p-2 text-left text-muted">
483
-								<?php _e( 'This subscription has no invoices.', 'invoicing' ); ?>
482
+							<td colspan="<?php echo count($columns); ?>" class="p-2 text-left text-muted">
483
+								<?php _e('This subscription has no invoices.', 'invoicing'); ?>
484 484
 							</td>
485 485
 						</tr>
486 486
 					<?php endif; ?>
487 487
 
488 488
 					<?php
489 489
 
490
-						foreach ( $payments as $payment ) :
490
+						foreach ($payments as $payment) :
491 491
 
492 492
 						// Ensure that we have an invoice.
493
-						$payment = new WPInv_Invoice( $payment );
493
+						$payment = new WPInv_Invoice($payment);
494 494
 
495 495
 						// Abort if the invoice is invalid...
496
-						if ( ! $payment->exists() ) {
496
+						if (!$payment->exists()) {
497 497
 							continue;
498 498
 							}
499 499
 
500 500
 						// ... or belongs to a different subscription.
501
-						if ( $strict && $payment->is_renewal() && $payment->get_subscription_id() && $payment->get_subscription_id() != $subscription->get_id() ) {
501
+						if ($strict && $payment->is_renewal() && $payment->get_subscription_id() && $payment->get_subscription_id() != $subscription->get_id()) {
502 502
 							continue;
503 503
 							}
504 504
 
505 505
 						echo '<tr>';
506 506
 
507
-						foreach ( array_keys( $columns ) as $key ) {
507
+						foreach (array_keys($columns) as $key) {
508 508
 
509 509
 							$class = 'text-left';
510 510
 
511 511
 							echo "<td class='p-2 text-left'>";
512 512
 
513
-								switch ( $key ) {
513
+								switch ($key) {
514 514
 
515 515
 								case 'total':
516
-										echo '<strong>' . wpinv_price( $payment->get_total(), $payment->get_currency() ) . '</strong>';
516
+										echo '<strong>' . wpinv_price($payment->get_total(), $payment->get_currency()) . '</strong>';
517 517
 									break;
518 518
 
519 519
 								case 'relationship':
520
-											echo $payment->is_renewal() ? __( 'Renewal Invoice', 'invoicing' ) : __( 'Initial Invoice', 'invoicing' );
520
+											echo $payment->is_renewal() ? __('Renewal Invoice', 'invoicing') : __('Initial Invoice', 'invoicing');
521 521
 									break;
522 522
 
523 523
 								case 'date':
524
-									echo getpaid_format_date_value( $payment->get_date_created() );
524
+									echo getpaid_format_date_value($payment->get_date_created());
525 525
 									break;
526 526
 
527 527
 								case 'status':
528 528
 										$status = $payment->get_status_nicename();
529
-										if ( is_admin() ) {
529
+										if (is_admin()) {
530 530
 										$status = $payment->get_status_label_html();
531 531
 										}
532 532
 
533
-										echo wp_kses_post( $status );
533
+										echo wp_kses_post($status);
534 534
 									break;
535 535
 
536 536
 								case 'invoice':
537
-										$link    = esc_url( get_edit_post_link( $payment->get_id() ) );
537
+										$link = esc_url(get_edit_post_link($payment->get_id()));
538 538
 
539
-										if ( ! is_admin() ) {
540
-										$link = esc_url( $payment->get_view_url() );
539
+										if (!is_admin()) {
540
+										$link = esc_url($payment->get_view_url());
541 541
 										}
542 542
 
543
-										$invoice = esc_html( $payment->get_number() );
543
+										$invoice = esc_html($payment->get_number());
544 544
 										echo "<a href='$link'>$invoice</a>";
545 545
 									break;
546 546
 										}
@@ -568,12 +568,12 @@  discard block
 block discarded – undo
568 568
  *
569 569
  * @param WPInv_Subscription $subscription
570 570
  */
571
-function getpaid_admin_subscription_item_details_metabox( $subscription ) {
571
+function getpaid_admin_subscription_item_details_metabox($subscription) {
572 572
 
573 573
 	// Fetch the subscription group.
574
-	$subscription_group = getpaid_get_invoice_subscription_group( $subscription->get_parent_payment_id(), $subscription->get_id() );
574
+	$subscription_group = getpaid_get_invoice_subscription_group($subscription->get_parent_payment_id(), $subscription->get_id());
575 575
 
576
-	if ( empty( $subscription_group ) || empty( $subscription_group['items'] ) ) {
576
+	if (empty($subscription_group) || empty($subscription_group['items'])) {
577 577
 		return;
578 578
 	}
579 579
 
@@ -581,12 +581,12 @@  discard block
 block discarded – undo
581 581
 	$columns = apply_filters(
582 582
 		'getpaid_subscription_item_details_columns',
583 583
 		array(
584
-			'item_name' => __( 'Item', 'invoicing' ),
585
-			'price'     => __( 'Price', 'invoicing' ),
586
-			'tax'       => __( 'Tax', 'invoicing' ),
587
-			'discount'  => __( 'Discount', 'invoicing' ),
584
+			'item_name' => __('Item', 'invoicing'),
585
+			'price'     => __('Price', 'invoicing'),
586
+			'tax'       => __('Tax', 'invoicing'),
587
+			'discount'  => __('Discount', 'invoicing'),
588 588
 			//'initial'      => __( 'Initial Amount', 'invoicing' ),
589
-			'recurring' => __( 'Subtotal', 'invoicing' ),
589
+			'recurring' => __('Subtotal', 'invoicing'),
590 590
 		),
591 591
 		$subscription
592 592
 	);
@@ -595,28 +595,28 @@  discard block
 block discarded – undo
595 595
 
596 596
 	$invoice = $subscription->get_parent_invoice();
597 597
 
598
-	if ( ( ! wpinv_use_taxes() || ! $invoice->is_taxable() ) && isset( $columns['tax'] ) ) {
599
-		unset( $columns['tax'] );
598
+	if ((!wpinv_use_taxes() || !$invoice->is_taxable()) && isset($columns['tax'])) {
599
+		unset($columns['tax']);
600 600
 	}
601 601
 
602 602
 	$table_class = 'w-100 bg-white';
603 603
 
604
-	if ( ! is_admin() ) {
604
+	if (!is_admin()) {
605 605
 		$table_class = 'table table-bordered';
606 606
 	}
607 607
 
608 608
 	?>
609 609
 		<div class="m-0" style="overflow: auto;">
610 610
 
611
-			<table class="<?php echo esc_attr( $table_class ); ?>">
611
+			<table class="<?php echo esc_attr($table_class); ?>">
612 612
 
613 613
 				<thead>
614 614
 					<tr>
615 615
 						<?php
616 616
 
617
-							foreach ( $columns as $key => $label ) {
618
-							$key   = esc_attr( $key );
619
-							$label = esc_html( $label );
617
+							foreach ($columns as $key => $label) {
618
+							$key   = esc_attr($key);
619
+							$label = esc_html($label);
620 620
 							$class = 'text-left';
621 621
 
622 622
 							echo "<th class='subscription-item-field-$key bg-light p-2 text-left color-dark font-weight-bold'>$label</th>";
@@ -629,48 +629,48 @@  discard block
 block discarded – undo
629 629
 
630 630
 					<?php
631 631
 
632
-						foreach ( $subscription_group['items'] as $subscription_group_item ) :
632
+						foreach ($subscription_group['items'] as $subscription_group_item) :
633 633
 
634 634
 						echo '<tr>';
635 635
 
636
-						foreach ( array_keys( $columns ) as $key ) {
636
+						foreach (array_keys($columns) as $key) {
637 637
 
638 638
 							$class = 'text-left';
639 639
 
640 640
 							echo "<td class='p-2 text-left'>";
641 641
 
642
-								switch ( $key ) {
642
+								switch ($key) {
643 643
 
644 644
 								case 'item_name':
645
-										$item_name = get_the_title( $subscription_group_item['item_id'] );
646
-										$item_name = empty( $item_name ) ? $subscription_group_item['item_name'] : $item_name;
645
+										$item_name = get_the_title($subscription_group_item['item_id']);
646
+										$item_name = empty($item_name) ? $subscription_group_item['item_name'] : $item_name;
647 647
 
648
-										if ( $invoice->get_template() == 'amount' || 1 == (float) $subscription_group_item['quantity'] ) {
649
-										echo esc_html( $item_name );
648
+										if ($invoice->get_template() == 'amount' || 1 == (float) $subscription_group_item['quantity']) {
649
+										echo esc_html($item_name);
650 650
 										} else {
651
-										printf( '%1$s x %2$d', esc_html( $item_name ), (float) $subscription_group_item['quantity'] );
651
+										printf('%1$s x %2$d', esc_html($item_name), (float) $subscription_group_item['quantity']);
652 652
 											}
653 653
 
654 654
 									break;
655 655
 
656 656
 								case 'price':
657
-											echo wpinv_price( $subscription_group_item['item_price'], $invoice->get_currency() );
657
+											echo wpinv_price($subscription_group_item['item_price'], $invoice->get_currency());
658 658
 									break;
659 659
 
660 660
 								case 'tax':
661
-									echo wpinv_price( $subscription_group_item['tax'], $invoice->get_currency() );
661
+									echo wpinv_price($subscription_group_item['tax'], $invoice->get_currency());
662 662
 									break;
663 663
 
664 664
 								case 'discount':
665
-										echo wpinv_price( $subscription_group_item['discount'], $invoice->get_currency() );
665
+										echo wpinv_price($subscription_group_item['discount'], $invoice->get_currency());
666 666
 									break;
667 667
 
668 668
 								case 'initial':
669
-										echo wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() );
669
+										echo wpinv_price($subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency());
670 670
 									break;
671 671
 
672 672
 								case 'recurring':
673
-										echo '<strong>' . wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() ) . '</strong>';
673
+										echo '<strong>' . wpinv_price($subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency()) . '</strong>';
674 674
 									break;
675 675
 
676 676
 										}
@@ -683,24 +683,24 @@  discard block
 block discarded – undo
683 683
 
684 684
 						endforeach;
685 685
 
686
-						foreach ( $subscription_group['fees'] as $subscription_group_fee ) :
686
+						foreach ($subscription_group['fees'] as $subscription_group_fee) :
687 687
 
688 688
 						echo '<tr>';
689 689
 
690
-						foreach ( array_keys( $columns ) as $key ) {
690
+						foreach (array_keys($columns) as $key) {
691 691
 
692 692
 							$class = 'text-left';
693 693
 
694 694
 							echo "<td class='p-2 text-left'>";
695 695
 
696
-								switch ( $key ) {
696
+								switch ($key) {
697 697
 
698 698
 								case 'item_name':
699
-										echo esc_html( $subscription_group_fee['name'] );
699
+										echo esc_html($subscription_group_fee['name']);
700 700
 									break;
701 701
 
702 702
 								case 'price':
703
-											echo wpinv_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() );
703
+											echo wpinv_price($subscription_group_fee['initial_fee'], $invoice->get_currency());
704 704
 									break;
705 705
 
706 706
 								case 'tax':
@@ -712,11 +712,11 @@  discard block
 block discarded – undo
712 712
 									break;
713 713
 
714 714
 								case 'initial':
715
-										echo wpinv_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() );
715
+										echo wpinv_price($subscription_group_fee['initial_fee'], $invoice->get_currency());
716 716
 									break;
717 717
 
718 718
 								case 'recurring':
719
-										echo '<strong>' . wpinv_price( $subscription_group_fee['recurring_fee'], $invoice->get_currency() ) . '</strong>';
719
+										echo '<strong>' . wpinv_price($subscription_group_fee['recurring_fee'], $invoice->get_currency()) . '</strong>';
720 720
 									break;
721 721
 
722 722
 										}
@@ -745,12 +745,12 @@  discard block
 block discarded – undo
745 745
  * @param WPInv_Subscription $subscription
746 746
  * @param bool $skip_current
747 747
  */
748
-function getpaid_admin_subscription_related_subscriptions_metabox( $subscription, $skip_current = true ) {
748
+function getpaid_admin_subscription_related_subscriptions_metabox($subscription, $skip_current = true) {
749 749
 
750 750
 	// Fetch the subscription groups.
751
-	$subscription_groups = getpaid_get_invoice_subscription_groups( $subscription->get_parent_payment_id() );
751
+	$subscription_groups = getpaid_get_invoice_subscription_groups($subscription->get_parent_payment_id());
752 752
 
753
-	if ( empty( $subscription_groups ) ) {
753
+	if (empty($subscription_groups)) {
754 754
 		return;
755 755
 	}
756 756
 
@@ -758,38 +758,38 @@  discard block
 block discarded – undo
758 758
 	$columns = apply_filters(
759 759
 		'getpaid_subscription_related_subscriptions_columns',
760 760
 		array(
761
-			'subscription' => __( 'Subscription', 'invoicing' ),
762
-			'start_date'   => __( 'Start Date', 'invoicing' ),
763
-			'renewal_date' => __( 'Next Payment', 'invoicing' ),
764
-			'renewals'     => __( 'Payments', 'invoicing' ),
765
-			'item'         => __( 'Items', 'invoicing' ),
766
-			'status'       => __( 'Status', 'invoicing' ),
761
+			'subscription' => __('Subscription', 'invoicing'),
762
+			'start_date'   => __('Start Date', 'invoicing'),
763
+			'renewal_date' => __('Next Payment', 'invoicing'),
764
+			'renewals'     => __('Payments', 'invoicing'),
765
+			'item'         => __('Items', 'invoicing'),
766
+			'status'       => __('Status', 'invoicing'),
767 767
 		),
768 768
 		$subscription
769 769
 	);
770 770
 
771
-	if ( $subscription->get_status() == 'pending' ) {
772
-		unset( $columns['start_date'], $columns['renewal_date'] );
771
+	if ($subscription->get_status() == 'pending') {
772
+		unset($columns['start_date'], $columns['renewal_date']);
773 773
 	}
774 774
 
775 775
 	$table_class = 'w-100 bg-white';
776 776
 
777
-	if ( ! is_admin() ) {
777
+	if (!is_admin()) {
778 778
 		$table_class = 'table table-bordered';
779 779
 	}
780 780
 
781 781
 	?>
782 782
 		<div class="m-0" style="overflow: auto;">
783 783
 
784
-			<table class="<?php echo esc_attr( $table_class ); ?>">
784
+			<table class="<?php echo esc_attr($table_class); ?>">
785 785
 
786 786
 				<thead>
787 787
 					<tr>
788 788
 						<?php
789 789
 
790
-							foreach ( $columns as $key => $label ) {
791
-							$key   = esc_attr( $key );
792
-							$label = esc_html( $label );
790
+							foreach ($columns as $key => $label) {
791
+							$key   = esc_attr($key);
792
+							$label = esc_html($label);
793 793
 							$class = 'text-left';
794 794
 
795 795
 							echo "<th class='related-subscription-field-$key bg-light p-2 text-left color-dark font-weight-bold'>$label</th>";
@@ -802,62 +802,62 @@  discard block
 block discarded – undo
802 802
 
803 803
 					<?php
804 804
 
805
-						foreach ( $subscription_groups as $subscription_group ) :
805
+						foreach ($subscription_groups as $subscription_group) :
806 806
 
807 807
 						// Do not list current subscription.
808
-						if ( $skip_current && (int) $subscription_group['subscription_id'] === $subscription->get_id() ) {
808
+						if ($skip_current && (int) $subscription_group['subscription_id'] === $subscription->get_id()) {
809 809
 							continue;
810 810
 							}
811 811
 
812 812
 						// Ensure the subscription exists.
813
-						$_suscription = new WPInv_Subscription( $subscription_group['subscription_id'] );
813
+						$_suscription = new WPInv_Subscription($subscription_group['subscription_id']);
814 814
 
815
-						if ( ! $_suscription->exists() ) {
815
+						if (!$_suscription->exists()) {
816 816
 							continue;
817 817
 							}
818 818
 
819 819
 						echo '<tr>';
820 820
 
821
-						foreach ( array_keys( $columns ) as $key ) {
821
+						foreach (array_keys($columns) as $key) {
822 822
 
823 823
 							$class = 'text-left';
824 824
 
825 825
 							echo "<td class='p-2 text-left'>";
826 826
 
827
-								switch ( $key ) {
827
+								switch ($key) {
828 828
 
829 829
 								case 'status':
830
-										echo wp_kses_post( $_suscription->get_status_label_html() );
830
+										echo wp_kses_post($_suscription->get_status_label_html());
831 831
 									break;
832 832
 
833 833
 								case 'item':
834
-											$markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
835
-											echo implode( ' | ', $markup );
834
+											$markup = array_map(array('WPInv_Subscriptions_List_Table', 'generate_item_markup'), array_keys($subscription_group['items']));
835
+											echo implode(' | ', $markup);
836 836
 									break;
837 837
 
838 838
 								case 'renewals':
839 839
 									$max_bills = $_suscription->get_bill_times();
840
-									echo ( (int) $_suscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '&infin;' : (int) $max_bills );
840
+									echo ((int) $_suscription->get_times_billed()) . ' / ' . (empty($max_bills) ? '&infin;' : (int) $max_bills);
841 841
 									break;
842 842
 
843 843
 								case 'renewal_date':
844
-										echo $_suscription->is_active() ? getpaid_format_date_value( $_suscription->get_expiration() ) : '&mdash;';
844
+										echo $_suscription->is_active() ? getpaid_format_date_value($_suscription->get_expiration()) : '&mdash;';
845 845
 									break;
846 846
 
847 847
 								case 'start_date':
848
-										echo 'pending' == $_suscription->get_status() ? '&mdash;' : getpaid_format_date_value( $_suscription->get_date_created() );
848
+										echo 'pending' == $_suscription->get_status() ? '&mdash;' : getpaid_format_date_value($_suscription->get_date_created());
849 849
 									break;
850 850
 
851 851
 								case 'subscription':
852
-										$url = is_admin() ? admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $_suscription->get_id() ) ) : $_suscription->get_view_url();
852
+										$url = is_admin() ? admin_url('admin.php?page=wpinv-subscriptions&id=' . absint($_suscription->get_id())) : $_suscription->get_view_url();
853 853
 										printf(
854 854
                                             '%1$s#%2$s%3$s',
855
-                                            '<a href="' . esc_url( $url ) . '">',
856
-                                            '<strong>' . intval( $_suscription->get_id() ) . '</strong>',
855
+                                            '<a href="' . esc_url($url) . '">',
856
+                                            '<strong>' . intval($_suscription->get_id()) . '</strong>',
857 857
 											'</a>'
858 858
                                         );
859 859
 
860
-											echo WPInv_Subscriptions_List_Table::column_amount( $_suscription );
860
+											echo WPInv_Subscriptions_List_Table::column_amount($_suscription);
861 861
 									break;
862 862
 
863 863
 										}
Please login to merge, or discard this patch.
includes/admin/class-getpaid-installer.php 2 patches
Indentation   +367 added lines, -367 removed lines patch added patch discarded remove patch
@@ -20,226 +20,226 @@  discard block
 block discarded – undo
20 20
  */
21 21
 class GetPaid_Installer {
22 22
 
23
-	/**
24
-	 * Upgrades the install.
25
-	 *
26
-	 * @param string $upgrade_from The current invoicing version.
27
-	 */
28
-	public function upgrade_db( $upgrade_from ) {
29
-
30
-		// Save the current invoicing version.
31
-		update_option( 'wpinv_version', WPINV_VERSION );
32
-
33
-		// Setup the invoice Custom Post Type.
34
-		GetPaid_Post_Types::register_post_types();
35
-
36
-		// Clear the permalinks
37
-		flush_rewrite_rules();
38
-
39
-		// Maybe create new/missing pages.
40
-		$this->create_pages();
41
-
42
-		// Maybe re(add) admin capabilities.
43
-		$this->add_capabilities();
44
-
45
-		// Maybe create the default payment form.
46
-		wpinv_get_default_payment_form();
47
-
48
-		// Create any missing database tables.
49
-		$method = "upgrade_from_$upgrade_from";
50
-
51
-		$installed = get_option( 'gepaid_installed_on' );
52
-
53
-		if ( empty( $installed ) ) {
54
-			update_option( 'gepaid_installed_on', time() );
55
-		}
56
-
57
-		if ( method_exists( $this, $method ) ) {
58
-			$this->$method();
59
-		}
60
-
61
-	}
62
-
63
-	/**
64
-	 * Do a fresh install.
65
-	 *
66
-	 */
67
-	public function upgrade_from_0() {
68
-		$this->create_subscriptions_table();
69
-		$this->create_invoices_table();
70
-		$this->create_invoice_items_table();
71
-
72
-		// Save default tax rates.
73
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
74
-	}
75
-
76
-	/**
77
-	 * Upgrade to 0.0.5
78
-	 *
79
-	 */
80
-	public function upgrade_from_004() {
81
-		global $wpdb;
82
-
83
-		// Invoices.
84
-		$results = $wpdb->get_results( "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" );
85
-		if ( ! empty( $results ) ) {
86
-			$wpdb->query( "UPDATE {$wpdb->posts} SET post_status = CONCAT( 'wpi-', post_status ) WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" );
87
-
88
-			// Clean post cache
89
-			foreach ( $results as $row ) {
90
-				clean_post_cache( $row->ID );
91
-			}
23
+    /**
24
+     * Upgrades the install.
25
+     *
26
+     * @param string $upgrade_from The current invoicing version.
27
+     */
28
+    public function upgrade_db( $upgrade_from ) {
29
+
30
+        // Save the current invoicing version.
31
+        update_option( 'wpinv_version', WPINV_VERSION );
32
+
33
+        // Setup the invoice Custom Post Type.
34
+        GetPaid_Post_Types::register_post_types();
35
+
36
+        // Clear the permalinks
37
+        flush_rewrite_rules();
38
+
39
+        // Maybe create new/missing pages.
40
+        $this->create_pages();
41
+
42
+        // Maybe re(add) admin capabilities.
43
+        $this->add_capabilities();
44
+
45
+        // Maybe create the default payment form.
46
+        wpinv_get_default_payment_form();
47
+
48
+        // Create any missing database tables.
49
+        $method = "upgrade_from_$upgrade_from";
50
+
51
+        $installed = get_option( 'gepaid_installed_on' );
52
+
53
+        if ( empty( $installed ) ) {
54
+            update_option( 'gepaid_installed_on', time() );
55
+        }
56
+
57
+        if ( method_exists( $this, $method ) ) {
58
+            $this->$method();
59
+        }
60
+
61
+    }
62
+
63
+    /**
64
+     * Do a fresh install.
65
+     *
66
+     */
67
+    public function upgrade_from_0() {
68
+        $this->create_subscriptions_table();
69
+        $this->create_invoices_table();
70
+        $this->create_invoice_items_table();
71
+
72
+        // Save default tax rates.
73
+        update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
74
+    }
75
+
76
+    /**
77
+     * Upgrade to 0.0.5
78
+     *
79
+     */
80
+    public function upgrade_from_004() {
81
+        global $wpdb;
82
+
83
+        // Invoices.
84
+        $results = $wpdb->get_results( "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" );
85
+        if ( ! empty( $results ) ) {
86
+            $wpdb->query( "UPDATE {$wpdb->posts} SET post_status = CONCAT( 'wpi-', post_status ) WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" );
87
+
88
+            // Clean post cache
89
+            foreach ( $results as $row ) {
90
+                clean_post_cache( $row->ID );
91
+            }
92 92
 }
93 93
 
94
-		// Item meta key changes
95
-		$query = 'SELECT DISTINCT post_id FROM ' . $wpdb->postmeta . " WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id', '_wpinv_cpt_name', '_wpinv_cpt_singular_name' )";
96
-		$results = $wpdb->get_results( $query );
94
+        // Item meta key changes
95
+        $query = 'SELECT DISTINCT post_id FROM ' . $wpdb->postmeta . " WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id', '_wpinv_cpt_name', '_wpinv_cpt_singular_name' )";
96
+        $results = $wpdb->get_results( $query );
97 97
 
98
-		if ( ! empty( $results ) ) {
99
-			$wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_id' WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id' )" );
100
-			$wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_name' WHERE meta_key = '_wpinv_cpt_name'" );
101
-			$wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_singular_name' WHERE meta_key = '_wpinv_cpt_singular_name'" );
98
+        if ( ! empty( $results ) ) {
99
+            $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_id' WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id' )" );
100
+            $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_name' WHERE meta_key = '_wpinv_cpt_name'" );
101
+            $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_singular_name' WHERE meta_key = '_wpinv_cpt_singular_name'" );
102 102
 
103
-			foreach ( $results as $row ) {
104
-				clean_post_cache( $row->post_id );
105
-			}
103
+            foreach ( $results as $row ) {
104
+                clean_post_cache( $row->post_id );
105
+            }
106 106
 }
107 107
 
108
-		$this->upgrade_from_102();
109
-	}
110
-
111
-	/**
112
-	 * Upgrade to 1.0.3
113
-	 *
114
-	 */
115
-	public function upgrade_from_102() {
116
-		$this->create_subscriptions_table();
117
-		$this->upgrade_from_118();
118
-	}
119
-
120
-	/**
121
-	 * Upgrade to version 2.0.0.
122
-	 *
123
-	 */
124
-	public function upgrade_from_118() {
125
-		$this->create_invoices_table();
126
-		$this->create_invoice_items_table();
127
-		$this->migrate_old_invoices();
128
-	}
129
-
130
-	/**
131
-	 * Upgrade to version 2.0.8.
132
-	 *
133
-	 */
134
-	public function upgrade_from_207() {
135
-		global $wpdb;
136
-		$wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN quantity FLOAT(20);" );
137
-	}
138
-
139
-	/**
140
-	 * Give administrators the capability to manage GetPaid.
141
-	 *
142
-	 */
143
-	public function add_capabilities() {
144
-		$GLOBALS['wp_roles']->add_cap( 'administrator', 'manage_invoicing' );
145
-	}
146
-
147
-	/**
148
-	 * Retreives GetPaid pages.
149
-	 *
150
-	 */
151
-	public static function get_pages() {
152
-
153
-		return apply_filters(
154
-			'wpinv_create_pages',
155
-			array(
156
-
157
-				// Checkout page.
158
-				'checkout_page'             => array(
159
-					'name'    => _x( 'gp-checkout', 'Page slug', 'invoicing' ),
160
-					'title'   => _x( 'Checkout', 'Page title', 'invoicing' ),
161
-					'content' => '
108
+        $this->upgrade_from_102();
109
+    }
110
+
111
+    /**
112
+     * Upgrade to 1.0.3
113
+     *
114
+     */
115
+    public function upgrade_from_102() {
116
+        $this->create_subscriptions_table();
117
+        $this->upgrade_from_118();
118
+    }
119
+
120
+    /**
121
+     * Upgrade to version 2.0.0.
122
+     *
123
+     */
124
+    public function upgrade_from_118() {
125
+        $this->create_invoices_table();
126
+        $this->create_invoice_items_table();
127
+        $this->migrate_old_invoices();
128
+    }
129
+
130
+    /**
131
+     * Upgrade to version 2.0.8.
132
+     *
133
+     */
134
+    public function upgrade_from_207() {
135
+        global $wpdb;
136
+        $wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN quantity FLOAT(20);" );
137
+    }
138
+
139
+    /**
140
+     * Give administrators the capability to manage GetPaid.
141
+     *
142
+     */
143
+    public function add_capabilities() {
144
+        $GLOBALS['wp_roles']->add_cap( 'administrator', 'manage_invoicing' );
145
+    }
146
+
147
+    /**
148
+     * Retreives GetPaid pages.
149
+     *
150
+     */
151
+    public static function get_pages() {
152
+
153
+        return apply_filters(
154
+            'wpinv_create_pages',
155
+            array(
156
+
157
+                // Checkout page.
158
+                'checkout_page'             => array(
159
+                    'name'    => _x( 'gp-checkout', 'Page slug', 'invoicing' ),
160
+                    'title'   => _x( 'Checkout', 'Page title', 'invoicing' ),
161
+                    'content' => '
162 162
 						<!-- wp:shortcode -->
163 163
 						[wpinv_checkout]
164 164
 						<!-- /wp:shortcode -->
165 165
 					',
166
-					'parent'  => '',
167
-				),
168
-
169
-				// Invoice history page.
170
-				'invoice_history_page'      => array(
171
-					'name'    => _x( 'gp-invoices', 'Page slug', 'invoicing' ),
172
-					'title'   => _x( 'My Invoices', 'Page title', 'invoicing' ),
173
-					'content' => '
166
+                    'parent'  => '',
167
+                ),
168
+
169
+                // Invoice history page.
170
+                'invoice_history_page'      => array(
171
+                    'name'    => _x( 'gp-invoices', 'Page slug', 'invoicing' ),
172
+                    'title'   => _x( 'My Invoices', 'Page title', 'invoicing' ),
173
+                    'content' => '
174 174
 					<!-- wp:shortcode -->
175 175
 					[wpinv_history]
176 176
 					<!-- /wp:shortcode -->
177 177
 				',
178
-					'parent'  => '',
179
-				),
180
-
181
-				// Success page content.
182
-				'success_page'              => array(
183
-					'name'    => _x( 'gp-receipt', 'Page slug', 'invoicing' ),
184
-					'title'   => _x( 'Payment Confirmation', 'Page title', 'invoicing' ),
185
-					'content' => '
178
+                    'parent'  => '',
179
+                ),
180
+
181
+                // Success page content.
182
+                'success_page'              => array(
183
+                    'name'    => _x( 'gp-receipt', 'Page slug', 'invoicing' ),
184
+                    'title'   => _x( 'Payment Confirmation', 'Page title', 'invoicing' ),
185
+                    'content' => '
186 186
 					<!-- wp:shortcode -->
187 187
 					[wpinv_receipt]
188 188
 					<!-- /wp:shortcode -->
189 189
 				',
190
-					'parent'  => 'gp-checkout',
191
-				),
192
-
193
-				// Failure page content.
194
-				'failure_page'              => array(
195
-					'name'    => _x( 'gp-transaction-failed', 'Page slug', 'invoicing' ),
196
-					'title'   => _x( 'Transaction Failed', 'Page title', 'invoicing' ),
197
-					'content' => __( 'Your transaction failed, please try again or contact site support.', 'invoicing' ),
198
-					'parent'  => 'gp-checkout',
199
-				),
200
-
201
-				// Subscriptions history page.
202
-				'invoice_subscription_page' => array(
203
-					'name'    => _x( 'gp-subscriptions', 'Page slug', 'invoicing' ),
204
-					'title'   => _x( 'My Subscriptions', 'Page title', 'invoicing' ),
205
-					'content' => '
190
+                    'parent'  => 'gp-checkout',
191
+                ),
192
+
193
+                // Failure page content.
194
+                'failure_page'              => array(
195
+                    'name'    => _x( 'gp-transaction-failed', 'Page slug', 'invoicing' ),
196
+                    'title'   => _x( 'Transaction Failed', 'Page title', 'invoicing' ),
197
+                    'content' => __( 'Your transaction failed, please try again or contact site support.', 'invoicing' ),
198
+                    'parent'  => 'gp-checkout',
199
+                ),
200
+
201
+                // Subscriptions history page.
202
+                'invoice_subscription_page' => array(
203
+                    'name'    => _x( 'gp-subscriptions', 'Page slug', 'invoicing' ),
204
+                    'title'   => _x( 'My Subscriptions', 'Page title', 'invoicing' ),
205
+                    'content' => '
206 206
 					<!-- wp:shortcode -->
207 207
 					[wpinv_subscriptions]
208 208
 					<!-- /wp:shortcode -->
209 209
 				',
210
-					'parent'  => '',
211
-				),
210
+                    'parent'  => '',
211
+                ),
212 212
 
213
-			)
214
-		);
213
+            )
214
+        );
215 215
 
216
-	}
216
+    }
217 217
 
218
-	/**
219
-	 * Re-create GetPaid pages.
220
-	 *
221
-	 */
222
-	public function create_pages() {
218
+    /**
219
+     * Re-create GetPaid pages.
220
+     *
221
+     */
222
+    public function create_pages() {
223 223
 
224
-		foreach ( self::get_pages() as $key => $page ) {
225
-			wpinv_create_page( esc_sql( $page['name'] ), $key, $page['title'], $page['content'], $page['parent'] );
226
-		}
224
+        foreach ( self::get_pages() as $key => $page ) {
225
+            wpinv_create_page( esc_sql( $page['name'] ), $key, $page['title'], $page['content'], $page['parent'] );
226
+        }
227 227
 
228
-	}
228
+    }
229 229
 
230
-	/**
231
-	 * Create subscriptions table.
232
-	 *
233
-	 */
234
-	public function create_subscriptions_table() {
230
+    /**
231
+     * Create subscriptions table.
232
+     *
233
+     */
234
+    public function create_subscriptions_table() {
235 235
 
236
-		global $wpdb;
236
+        global $wpdb;
237 237
 
238
-		require_once ABSPATH . 'wp-admin/includes/upgrade.php';
238
+        require_once ABSPATH . 'wp-admin/includes/upgrade.php';
239 239
 
240
-		// Create tables.
241
-		$charset_collate = $wpdb->get_charset_collate();
242
-		$sql             = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wpinv_subscriptions (
240
+        // Create tables.
241
+        $charset_collate = $wpdb->get_charset_collate();
242
+        $sql             = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wpinv_subscriptions (
243 243
 			id bigint(20) unsigned NOT NULL auto_increment,
244 244
 			customer_id bigint(20) NOT NULL,
245 245
 			frequency int(11) NOT NULL DEFAULT '1',
@@ -262,22 +262,22 @@  discard block
 block discarded – undo
262 262
 			KEY customer_and_status (customer_id, status)
263 263
 		  ) $charset_collate;";
264 264
 
265
-		dbDelta( $sql );
265
+        dbDelta( $sql );
266 266
 
267
-	}
267
+    }
268 268
 
269
-	/**
270
-	 * Create invoices table.
271
-	 *
272
-	 */
273
-	public function create_invoices_table() {
274
-		global $wpdb;
269
+    /**
270
+     * Create invoices table.
271
+     *
272
+     */
273
+    public function create_invoices_table() {
274
+        global $wpdb;
275 275
 
276
-		require_once ABSPATH . 'wp-admin/includes/upgrade.php';
276
+        require_once ABSPATH . 'wp-admin/includes/upgrade.php';
277 277
 
278
-		// Create tables.
279
-		$charset_collate = $wpdb->get_charset_collate();
280
-		$sql             = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}getpaid_invoices (
278
+        // Create tables.
279
+        $charset_collate = $wpdb->get_charset_collate();
280
+        $sql             = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}getpaid_invoices (
281 281
 			post_id BIGINT(20) NOT NULL,
282 282
             `number` VARCHAR(100),
283 283
             `key` VARCHAR(100),
@@ -313,22 +313,22 @@  discard block
 block discarded – undo
313 313
 			KEY `key` (`key`)
314 314
 		  ) $charset_collate;";
315 315
 
316
-		dbDelta( $sql );
316
+        dbDelta( $sql );
317 317
 
318
-	}
318
+    }
319 319
 
320
-	/**
321
-	 * Create invoice items table.
322
-	 *
323
-	 */
324
-	public function create_invoice_items_table() {
325
-		global $wpdb;
320
+    /**
321
+     * Create invoice items table.
322
+     *
323
+     */
324
+    public function create_invoice_items_table() {
325
+        global $wpdb;
326 326
 
327
-		require_once ABSPATH . 'wp-admin/includes/upgrade.php';
327
+        require_once ABSPATH . 'wp-admin/includes/upgrade.php';
328 328
 
329
-		// Create tables.
330
-		$charset_collate = $wpdb->get_charset_collate();
331
-		$sql             = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}getpaid_invoice_items (
329
+        // Create tables.
330
+        $charset_collate = $wpdb->get_charset_collate();
331
+        $sql             = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}getpaid_invoice_items (
332 332
 			ID BIGINT(20) NOT NULL AUTO_INCREMENT,
333 333
             post_id BIGINT(20) NOT NULL,
334 334
             item_id BIGINT(20) NOT NULL,
@@ -350,159 +350,159 @@  discard block
 block discarded – undo
350 350
 			KEY post_id (post_id)
351 351
 		  ) $charset_collate;";
352 352
 
353
-		dbDelta( $sql );
354
-
355
-	}
356
-
357
-	/**
358
-	 * Migrates old invoices to new invoices.
359
-	 *
360
-	 */
361
-	public function migrate_old_invoices() {
362
-		global $wpdb;
363
-
364
-		$invoices_table      = $wpdb->prefix . 'getpaid_invoices';
365
-		$invoice_items_table = $wpdb->prefix . 'getpaid_invoice_items';
366
-		$migrated            = $wpdb->get_col( "SELECT post_id FROM $invoices_table" );
367
-		$invoices            = array_unique(
368
-			get_posts(
369
-				array(
370
-					'post_type'      => array( 'wpi_invoice', 'wpi_quote' ),
371
-					'posts_per_page' => -1,
372
-					'fields'         => 'ids',
373
-					'post_status'    => array_keys( get_post_stati() ),
374
-					'exclude'        => (array) $migrated,
375
-				)
376
-			)
377
-		);
378
-
379
-		// Abort if we do not have any invoices.
380
-		if ( empty( $invoices ) ) {
381
-			return;
382
-		}
383
-
384
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-legacy-invoice.php';
385
-
386
-		$invoice_rows = array();
387
-		foreach ( $invoices as $invoice ) {
388
-
389
-			$invoice = new WPInv_Legacy_Invoice( $invoice );
390
-
391
-			if ( empty( $invoice->ID ) ) {
392
-				return;
393
-			}
394
-
395
-			$fields = array(
396
-				'post_id'            => $invoice->ID,
397
-				'number'             => $invoice->get_number(),
398
-				'key'                => $invoice->get_key(),
399
-				'type'               => str_replace( 'wpi_', '', $invoice->post_type ),
400
-				'mode'               => $invoice->mode,
401
-				'user_ip'            => $invoice->get_ip(),
402
-				'first_name'         => $invoice->get_first_name(),
403
-				'last_name'          => $invoice->get_last_name(),
404
-				'address'            => $invoice->get_address(),
405
-				'city'               => $invoice->city,
406
-				'state'              => $invoice->state,
407
-				'country'            => $invoice->country,
408
-				'zip'                => $invoice->zip,
409
-				'adddress_confirmed' => (int) $invoice->adddress_confirmed,
410
-				'gateway'            => $invoice->get_gateway(),
411
-				'transaction_id'     => $invoice->get_transaction_id(),
412
-				'currency'           => $invoice->get_currency(),
413
-				'subtotal'           => $invoice->get_subtotal(),
414
-				'tax'                => $invoice->get_tax(),
415
-				'fees_total'         => $invoice->get_fees_total(),
416
-				'total'              => $invoice->get_total(),
417
-				'discount'           => $invoice->get_discount(),
418
-				'discount_code'      => $invoice->get_discount_code(),
419
-				'disable_taxes'      => $invoice->disable_taxes,
420
-				'due_date'           => $invoice->get_due_date(),
421
-				'completed_date'     => $invoice->get_completed_date(),
422
-				'company'            => $invoice->company,
423
-				'vat_number'         => $invoice->vat_number,
424
-				'vat_rate'           => $invoice->vat_rate,
425
-				'custom_meta'        => $invoice->payment_meta,
426
-			);
427
-
428
-			foreach ( $fields as $key => $val ) {
429
-				if ( is_null( $val ) ) {
430
-					$val = '';
431
-				}
432
-				$val = maybe_serialize( $val );
433
-				$fields[ $key ] = $wpdb->prepare( '%s', $val );
434
-			}
435
-
436
-			$fields = implode( ', ', $fields );
437
-			$invoice_rows[] = "($fields)";
438
-
439
-			$item_rows    = array();
440
-			$item_columns = array();
441
-			foreach ( $invoice->get_cart_details() as $details ) {
442
-				$fields = array(
443
-					'post_id'          => $invoice->ID,
444
-					'item_id'          => $details['id'],
445
-					'item_name'        => $details['name'],
446
-					'item_description' => empty( $details['meta']['description'] ) ? '' : $details['meta']['description'],
447
-					'vat_rate'         => $details['vat_rate'],
448
-					'vat_class'        => empty( $details['vat_class'] ) ? '_standard' : $details['vat_class'],
449
-					'tax'              => $details['tax'],
450
-					'item_price'       => $details['item_price'],
451
-					'custom_price'     => $details['custom_price'],
452
-					'quantity'         => $details['quantity'],
453
-					'discount'         => $details['discount'],
454
-					'subtotal'         => $details['subtotal'],
455
-					'price'            => $details['price'],
456
-					'meta'             => $details['meta'],
457
-					'fees'             => $details['fees'],
458
-				);
459
-
460
-				$item_columns = array_keys( $fields );
461
-
462
-				foreach ( $fields as $key => $val ) {
463
-					if ( is_null( $val ) ) {
464
-						$val = '';
465
-					}
466
-					$val = maybe_serialize( $val );
467
-					$fields[ $key ] = $wpdb->prepare( '%s', $val );
468
-				}
469
-
470
-				$fields = implode( ', ', $fields );
471
-				$item_rows[] = "($fields)";
472
-			}
473
-
474
-			$item_rows    = implode( ', ', $item_rows );
475
-			$item_columns = implode( ', ', $item_columns );
476
-			$wpdb->query( "INSERT INTO $invoice_items_table ($item_columns) VALUES $item_rows" );
477
-		}
478
-
479
-		if ( empty( $invoice_rows ) ) {
480
-			return;
481
-		}
482
-
483
-		$invoice_rows = implode( ', ', $invoice_rows );
484
-		$wpdb->query( "INSERT INTO $invoices_table VALUES $invoice_rows" );
485
-
486
-	}
487
-
488
-	/**
489
-	 * Migrates old invoices to new invoices.
490
-	 *
491
-	 */
492
-	public static function rename_gateways_label() {
493
-		global $wpdb;
494
-
495
-		foreach ( array_keys( wpinv_get_payment_gateways() ) as $gateway ) {
496
-
497
-			$wpdb->update(
498
-				$wpdb->prefix . 'getpaid_invoices',
499
-				array( 'gateway' => $gateway ),
500
-				array( 'gateway' => wpinv_get_gateway_admin_label( $gateway ) ),
501
-				'%s',
502
-				'%s'
503
-			);
504
-
505
-		}
506
-	}
353
+        dbDelta( $sql );
354
+
355
+    }
356
+
357
+    /**
358
+     * Migrates old invoices to new invoices.
359
+     *
360
+     */
361
+    public function migrate_old_invoices() {
362
+        global $wpdb;
363
+
364
+        $invoices_table      = $wpdb->prefix . 'getpaid_invoices';
365
+        $invoice_items_table = $wpdb->prefix . 'getpaid_invoice_items';
366
+        $migrated            = $wpdb->get_col( "SELECT post_id FROM $invoices_table" );
367
+        $invoices            = array_unique(
368
+            get_posts(
369
+                array(
370
+                    'post_type'      => array( 'wpi_invoice', 'wpi_quote' ),
371
+                    'posts_per_page' => -1,
372
+                    'fields'         => 'ids',
373
+                    'post_status'    => array_keys( get_post_stati() ),
374
+                    'exclude'        => (array) $migrated,
375
+                )
376
+            )
377
+        );
378
+
379
+        // Abort if we do not have any invoices.
380
+        if ( empty( $invoices ) ) {
381
+            return;
382
+        }
383
+
384
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-legacy-invoice.php';
385
+
386
+        $invoice_rows = array();
387
+        foreach ( $invoices as $invoice ) {
388
+
389
+            $invoice = new WPInv_Legacy_Invoice( $invoice );
390
+
391
+            if ( empty( $invoice->ID ) ) {
392
+                return;
393
+            }
394
+
395
+            $fields = array(
396
+                'post_id'            => $invoice->ID,
397
+                'number'             => $invoice->get_number(),
398
+                'key'                => $invoice->get_key(),
399
+                'type'               => str_replace( 'wpi_', '', $invoice->post_type ),
400
+                'mode'               => $invoice->mode,
401
+                'user_ip'            => $invoice->get_ip(),
402
+                'first_name'         => $invoice->get_first_name(),
403
+                'last_name'          => $invoice->get_last_name(),
404
+                'address'            => $invoice->get_address(),
405
+                'city'               => $invoice->city,
406
+                'state'              => $invoice->state,
407
+                'country'            => $invoice->country,
408
+                'zip'                => $invoice->zip,
409
+                'adddress_confirmed' => (int) $invoice->adddress_confirmed,
410
+                'gateway'            => $invoice->get_gateway(),
411
+                'transaction_id'     => $invoice->get_transaction_id(),
412
+                'currency'           => $invoice->get_currency(),
413
+                'subtotal'           => $invoice->get_subtotal(),
414
+                'tax'                => $invoice->get_tax(),
415
+                'fees_total'         => $invoice->get_fees_total(),
416
+                'total'              => $invoice->get_total(),
417
+                'discount'           => $invoice->get_discount(),
418
+                'discount_code'      => $invoice->get_discount_code(),
419
+                'disable_taxes'      => $invoice->disable_taxes,
420
+                'due_date'           => $invoice->get_due_date(),
421
+                'completed_date'     => $invoice->get_completed_date(),
422
+                'company'            => $invoice->company,
423
+                'vat_number'         => $invoice->vat_number,
424
+                'vat_rate'           => $invoice->vat_rate,
425
+                'custom_meta'        => $invoice->payment_meta,
426
+            );
427
+
428
+            foreach ( $fields as $key => $val ) {
429
+                if ( is_null( $val ) ) {
430
+                    $val = '';
431
+                }
432
+                $val = maybe_serialize( $val );
433
+                $fields[ $key ] = $wpdb->prepare( '%s', $val );
434
+            }
435
+
436
+            $fields = implode( ', ', $fields );
437
+            $invoice_rows[] = "($fields)";
438
+
439
+            $item_rows    = array();
440
+            $item_columns = array();
441
+            foreach ( $invoice->get_cart_details() as $details ) {
442
+                $fields = array(
443
+                    'post_id'          => $invoice->ID,
444
+                    'item_id'          => $details['id'],
445
+                    'item_name'        => $details['name'],
446
+                    'item_description' => empty( $details['meta']['description'] ) ? '' : $details['meta']['description'],
447
+                    'vat_rate'         => $details['vat_rate'],
448
+                    'vat_class'        => empty( $details['vat_class'] ) ? '_standard' : $details['vat_class'],
449
+                    'tax'              => $details['tax'],
450
+                    'item_price'       => $details['item_price'],
451
+                    'custom_price'     => $details['custom_price'],
452
+                    'quantity'         => $details['quantity'],
453
+                    'discount'         => $details['discount'],
454
+                    'subtotal'         => $details['subtotal'],
455
+                    'price'            => $details['price'],
456
+                    'meta'             => $details['meta'],
457
+                    'fees'             => $details['fees'],
458
+                );
459
+
460
+                $item_columns = array_keys( $fields );
461
+
462
+                foreach ( $fields as $key => $val ) {
463
+                    if ( is_null( $val ) ) {
464
+                        $val = '';
465
+                    }
466
+                    $val = maybe_serialize( $val );
467
+                    $fields[ $key ] = $wpdb->prepare( '%s', $val );
468
+                }
469
+
470
+                $fields = implode( ', ', $fields );
471
+                $item_rows[] = "($fields)";
472
+            }
473
+
474
+            $item_rows    = implode( ', ', $item_rows );
475
+            $item_columns = implode( ', ', $item_columns );
476
+            $wpdb->query( "INSERT INTO $invoice_items_table ($item_columns) VALUES $item_rows" );
477
+        }
478
+
479
+        if ( empty( $invoice_rows ) ) {
480
+            return;
481
+        }
482
+
483
+        $invoice_rows = implode( ', ', $invoice_rows );
484
+        $wpdb->query( "INSERT INTO $invoices_table VALUES $invoice_rows" );
485
+
486
+    }
487
+
488
+    /**
489
+     * Migrates old invoices to new invoices.
490
+     *
491
+     */
492
+    public static function rename_gateways_label() {
493
+        global $wpdb;
494
+
495
+        foreach ( array_keys( wpinv_get_payment_gateways() ) as $gateway ) {
496
+
497
+            $wpdb->update(
498
+                $wpdb->prefix . 'getpaid_invoices',
499
+                array( 'gateway' => $gateway ),
500
+                array( 'gateway' => wpinv_get_gateway_admin_label( $gateway ) ),
501
+                '%s',
502
+                '%s'
503
+            );
504
+
505
+        }
506
+    }
507 507
 
508 508
 }
Please login to merge, or discard this patch.
Spacing   +69 added lines, -69 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  * @since   2.0.2
9 9
  */
10 10
 
11
-defined( 'ABSPATH' ) || exit;
11
+defined('ABSPATH') || exit;
12 12
 
13 13
 /**
14 14
  * The main installer/updater class.
@@ -25,10 +25,10 @@  discard block
 block discarded – undo
25 25
 	 *
26 26
 	 * @param string $upgrade_from The current invoicing version.
27 27
 	 */
28
-	public function upgrade_db( $upgrade_from ) {
28
+	public function upgrade_db($upgrade_from) {
29 29
 
30 30
 		// Save the current invoicing version.
31
-		update_option( 'wpinv_version', WPINV_VERSION );
31
+		update_option('wpinv_version', WPINV_VERSION);
32 32
 
33 33
 		// Setup the invoice Custom Post Type.
34 34
 		GetPaid_Post_Types::register_post_types();
@@ -48,13 +48,13 @@  discard block
 block discarded – undo
48 48
 		// Create any missing database tables.
49 49
 		$method = "upgrade_from_$upgrade_from";
50 50
 
51
-		$installed = get_option( 'gepaid_installed_on' );
51
+		$installed = get_option('gepaid_installed_on');
52 52
 
53
-		if ( empty( $installed ) ) {
54
-			update_option( 'gepaid_installed_on', time() );
53
+		if (empty($installed)) {
54
+			update_option('gepaid_installed_on', time());
55 55
 		}
56 56
 
57
-		if ( method_exists( $this, $method ) ) {
57
+		if (method_exists($this, $method)) {
58 58
 			$this->$method();
59 59
 		}
60 60
 
@@ -70,7 +70,7 @@  discard block
 block discarded – undo
70 70
 		$this->create_invoice_items_table();
71 71
 
72 72
 		// Save default tax rates.
73
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
73
+		update_option('wpinv_tax_rates', wpinv_get_data('tax-rates'));
74 74
 	}
75 75
 
76 76
 	/**
@@ -81,27 +81,27 @@  discard block
 block discarded – undo
81 81
 		global $wpdb;
82 82
 
83 83
 		// Invoices.
84
-		$results = $wpdb->get_results( "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" );
85
-		if ( ! empty( $results ) ) {
86
-			$wpdb->query( "UPDATE {$wpdb->posts} SET post_status = CONCAT( 'wpi-', post_status ) WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" );
84
+		$results = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )");
85
+		if (!empty($results)) {
86
+			$wpdb->query("UPDATE {$wpdb->posts} SET post_status = CONCAT( 'wpi-', post_status ) WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )");
87 87
 
88 88
 			// Clean post cache
89
-			foreach ( $results as $row ) {
90
-				clean_post_cache( $row->ID );
89
+			foreach ($results as $row) {
90
+				clean_post_cache($row->ID);
91 91
 			}
92 92
 }
93 93
 
94 94
 		// Item meta key changes
95 95
 		$query = 'SELECT DISTINCT post_id FROM ' . $wpdb->postmeta . " WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id', '_wpinv_cpt_name', '_wpinv_cpt_singular_name' )";
96
-		$results = $wpdb->get_results( $query );
96
+		$results = $wpdb->get_results($query);
97 97
 
98
-		if ( ! empty( $results ) ) {
99
-			$wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_id' WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id' )" );
100
-			$wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_name' WHERE meta_key = '_wpinv_cpt_name'" );
101
-			$wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_singular_name' WHERE meta_key = '_wpinv_cpt_singular_name'" );
98
+		if (!empty($results)) {
99
+			$wpdb->query('UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_id' WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id' )");
100
+			$wpdb->query('UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_name' WHERE meta_key = '_wpinv_cpt_name'");
101
+			$wpdb->query('UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_singular_name' WHERE meta_key = '_wpinv_cpt_singular_name'");
102 102
 
103
-			foreach ( $results as $row ) {
104
-				clean_post_cache( $row->post_id );
103
+			foreach ($results as $row) {
104
+				clean_post_cache($row->post_id);
105 105
 			}
106 106
 }
107 107
 
@@ -133,7 +133,7 @@  discard block
 block discarded – undo
133 133
 	 */
134 134
 	public function upgrade_from_207() {
135 135
 		global $wpdb;
136
-		$wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN quantity FLOAT(20);" );
136
+		$wpdb->query("ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN quantity FLOAT(20);");
137 137
 	}
138 138
 
139 139
 	/**
@@ -141,7 +141,7 @@  discard block
 block discarded – undo
141 141
 	 *
142 142
 	 */
143 143
 	public function add_capabilities() {
144
-		$GLOBALS['wp_roles']->add_cap( 'administrator', 'manage_invoicing' );
144
+		$GLOBALS['wp_roles']->add_cap('administrator', 'manage_invoicing');
145 145
 	}
146 146
 
147 147
 	/**
@@ -156,8 +156,8 @@  discard block
 block discarded – undo
156 156
 
157 157
 				// Checkout page.
158 158
 				'checkout_page'             => array(
159
-					'name'    => _x( 'gp-checkout', 'Page slug', 'invoicing' ),
160
-					'title'   => _x( 'Checkout', 'Page title', 'invoicing' ),
159
+					'name'    => _x('gp-checkout', 'Page slug', 'invoicing'),
160
+					'title'   => _x('Checkout', 'Page title', 'invoicing'),
161 161
 					'content' => '
162 162
 						<!-- wp:shortcode -->
163 163
 						[wpinv_checkout]
@@ -168,8 +168,8 @@  discard block
 block discarded – undo
168 168
 
169 169
 				// Invoice history page.
170 170
 				'invoice_history_page'      => array(
171
-					'name'    => _x( 'gp-invoices', 'Page slug', 'invoicing' ),
172
-					'title'   => _x( 'My Invoices', 'Page title', 'invoicing' ),
171
+					'name'    => _x('gp-invoices', 'Page slug', 'invoicing'),
172
+					'title'   => _x('My Invoices', 'Page title', 'invoicing'),
173 173
 					'content' => '
174 174
 					<!-- wp:shortcode -->
175 175
 					[wpinv_history]
@@ -180,8 +180,8 @@  discard block
 block discarded – undo
180 180
 
181 181
 				// Success page content.
182 182
 				'success_page'              => array(
183
-					'name'    => _x( 'gp-receipt', 'Page slug', 'invoicing' ),
184
-					'title'   => _x( 'Payment Confirmation', 'Page title', 'invoicing' ),
183
+					'name'    => _x('gp-receipt', 'Page slug', 'invoicing'),
184
+					'title'   => _x('Payment Confirmation', 'Page title', 'invoicing'),
185 185
 					'content' => '
186 186
 					<!-- wp:shortcode -->
187 187
 					[wpinv_receipt]
@@ -192,16 +192,16 @@  discard block
 block discarded – undo
192 192
 
193 193
 				// Failure page content.
194 194
 				'failure_page'              => array(
195
-					'name'    => _x( 'gp-transaction-failed', 'Page slug', 'invoicing' ),
196
-					'title'   => _x( 'Transaction Failed', 'Page title', 'invoicing' ),
197
-					'content' => __( 'Your transaction failed, please try again or contact site support.', 'invoicing' ),
195
+					'name'    => _x('gp-transaction-failed', 'Page slug', 'invoicing'),
196
+					'title'   => _x('Transaction Failed', 'Page title', 'invoicing'),
197
+					'content' => __('Your transaction failed, please try again or contact site support.', 'invoicing'),
198 198
 					'parent'  => 'gp-checkout',
199 199
 				),
200 200
 
201 201
 				// Subscriptions history page.
202 202
 				'invoice_subscription_page' => array(
203
-					'name'    => _x( 'gp-subscriptions', 'Page slug', 'invoicing' ),
204
-					'title'   => _x( 'My Subscriptions', 'Page title', 'invoicing' ),
203
+					'name'    => _x('gp-subscriptions', 'Page slug', 'invoicing'),
204
+					'title'   => _x('My Subscriptions', 'Page title', 'invoicing'),
205 205
 					'content' => '
206 206
 					<!-- wp:shortcode -->
207 207
 					[wpinv_subscriptions]
@@ -221,8 +221,8 @@  discard block
 block discarded – undo
221 221
 	 */
222 222
 	public function create_pages() {
223 223
 
224
-		foreach ( self::get_pages() as $key => $page ) {
225
-			wpinv_create_page( esc_sql( $page['name'] ), $key, $page['title'], $page['content'], $page['parent'] );
224
+		foreach (self::get_pages() as $key => $page) {
225
+			wpinv_create_page(esc_sql($page['name']), $key, $page['title'], $page['content'], $page['parent']);
226 226
 		}
227 227
 
228 228
 	}
@@ -262,7 +262,7 @@  discard block
 block discarded – undo
262 262
 			KEY customer_and_status (customer_id, status)
263 263
 		  ) $charset_collate;";
264 264
 
265
-		dbDelta( $sql );
265
+		dbDelta($sql);
266 266
 
267 267
 	}
268 268
 
@@ -313,7 +313,7 @@  discard block
 block discarded – undo
313 313
 			KEY `key` (`key`)
314 314
 		  ) $charset_collate;";
315 315
 
316
-		dbDelta( $sql );
316
+		dbDelta($sql);
317 317
 
318 318
 	}
319 319
 
@@ -350,7 +350,7 @@  discard block
 block discarded – undo
350 350
 			KEY post_id (post_id)
351 351
 		  ) $charset_collate;";
352 352
 
353
-		dbDelta( $sql );
353
+		dbDelta($sql);
354 354
 
355 355
 	}
356 356
 
@@ -363,32 +363,32 @@  discard block
 block discarded – undo
363 363
 
364 364
 		$invoices_table      = $wpdb->prefix . 'getpaid_invoices';
365 365
 		$invoice_items_table = $wpdb->prefix . 'getpaid_invoice_items';
366
-		$migrated            = $wpdb->get_col( "SELECT post_id FROM $invoices_table" );
366
+		$migrated            = $wpdb->get_col("SELECT post_id FROM $invoices_table");
367 367
 		$invoices            = array_unique(
368 368
 			get_posts(
369 369
 				array(
370
-					'post_type'      => array( 'wpi_invoice', 'wpi_quote' ),
370
+					'post_type'      => array('wpi_invoice', 'wpi_quote'),
371 371
 					'posts_per_page' => -1,
372 372
 					'fields'         => 'ids',
373
-					'post_status'    => array_keys( get_post_stati() ),
373
+					'post_status'    => array_keys(get_post_stati()),
374 374
 					'exclude'        => (array) $migrated,
375 375
 				)
376 376
 			)
377 377
 		);
378 378
 
379 379
 		// Abort if we do not have any invoices.
380
-		if ( empty( $invoices ) ) {
380
+		if (empty($invoices)) {
381 381
 			return;
382 382
 		}
383 383
 
384 384
 		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-legacy-invoice.php';
385 385
 
386 386
 		$invoice_rows = array();
387
-		foreach ( $invoices as $invoice ) {
387
+		foreach ($invoices as $invoice) {
388 388
 
389
-			$invoice = new WPInv_Legacy_Invoice( $invoice );
389
+			$invoice = new WPInv_Legacy_Invoice($invoice);
390 390
 
391
-			if ( empty( $invoice->ID ) ) {
391
+			if (empty($invoice->ID)) {
392 392
 				return;
393 393
 			}
394 394
 
@@ -396,7 +396,7 @@  discard block
 block discarded – undo
396 396
 				'post_id'            => $invoice->ID,
397 397
 				'number'             => $invoice->get_number(),
398 398
 				'key'                => $invoice->get_key(),
399
-				'type'               => str_replace( 'wpi_', '', $invoice->post_type ),
399
+				'type'               => str_replace('wpi_', '', $invoice->post_type),
400 400
 				'mode'               => $invoice->mode,
401 401
 				'user_ip'            => $invoice->get_ip(),
402 402
 				'first_name'         => $invoice->get_first_name(),
@@ -425,27 +425,27 @@  discard block
 block discarded – undo
425 425
 				'custom_meta'        => $invoice->payment_meta,
426 426
 			);
427 427
 
428
-			foreach ( $fields as $key => $val ) {
429
-				if ( is_null( $val ) ) {
428
+			foreach ($fields as $key => $val) {
429
+				if (is_null($val)) {
430 430
 					$val = '';
431 431
 				}
432
-				$val = maybe_serialize( $val );
433
-				$fields[ $key ] = $wpdb->prepare( '%s', $val );
432
+				$val = maybe_serialize($val);
433
+				$fields[$key] = $wpdb->prepare('%s', $val);
434 434
 			}
435 435
 
436
-			$fields = implode( ', ', $fields );
436
+			$fields = implode(', ', $fields);
437 437
 			$invoice_rows[] = "($fields)";
438 438
 
439 439
 			$item_rows    = array();
440 440
 			$item_columns = array();
441
-			foreach ( $invoice->get_cart_details() as $details ) {
441
+			foreach ($invoice->get_cart_details() as $details) {
442 442
 				$fields = array(
443 443
 					'post_id'          => $invoice->ID,
444 444
 					'item_id'          => $details['id'],
445 445
 					'item_name'        => $details['name'],
446
-					'item_description' => empty( $details['meta']['description'] ) ? '' : $details['meta']['description'],
446
+					'item_description' => empty($details['meta']['description']) ? '' : $details['meta']['description'],
447 447
 					'vat_rate'         => $details['vat_rate'],
448
-					'vat_class'        => empty( $details['vat_class'] ) ? '_standard' : $details['vat_class'],
448
+					'vat_class'        => empty($details['vat_class']) ? '_standard' : $details['vat_class'],
449 449
 					'tax'              => $details['tax'],
450 450
 					'item_price'       => $details['item_price'],
451 451
 					'custom_price'     => $details['custom_price'],
@@ -457,31 +457,31 @@  discard block
 block discarded – undo
457 457
 					'fees'             => $details['fees'],
458 458
 				);
459 459
 
460
-				$item_columns = array_keys( $fields );
460
+				$item_columns = array_keys($fields);
461 461
 
462
-				foreach ( $fields as $key => $val ) {
463
-					if ( is_null( $val ) ) {
462
+				foreach ($fields as $key => $val) {
463
+					if (is_null($val)) {
464 464
 						$val = '';
465 465
 					}
466
-					$val = maybe_serialize( $val );
467
-					$fields[ $key ] = $wpdb->prepare( '%s', $val );
466
+					$val = maybe_serialize($val);
467
+					$fields[$key] = $wpdb->prepare('%s', $val);
468 468
 				}
469 469
 
470
-				$fields = implode( ', ', $fields );
470
+				$fields = implode(', ', $fields);
471 471
 				$item_rows[] = "($fields)";
472 472
 			}
473 473
 
474
-			$item_rows    = implode( ', ', $item_rows );
475
-			$item_columns = implode( ', ', $item_columns );
476
-			$wpdb->query( "INSERT INTO $invoice_items_table ($item_columns) VALUES $item_rows" );
474
+			$item_rows    = implode(', ', $item_rows);
475
+			$item_columns = implode(', ', $item_columns);
476
+			$wpdb->query("INSERT INTO $invoice_items_table ($item_columns) VALUES $item_rows");
477 477
 		}
478 478
 
479
-		if ( empty( $invoice_rows ) ) {
479
+		if (empty($invoice_rows)) {
480 480
 			return;
481 481
 		}
482 482
 
483
-		$invoice_rows = implode( ', ', $invoice_rows );
484
-		$wpdb->query( "INSERT INTO $invoices_table VALUES $invoice_rows" );
483
+		$invoice_rows = implode(', ', $invoice_rows);
484
+		$wpdb->query("INSERT INTO $invoices_table VALUES $invoice_rows");
485 485
 
486 486
 	}
487 487
 
@@ -492,12 +492,12 @@  discard block
 block discarded – undo
492 492
 	public static function rename_gateways_label() {
493 493
 		global $wpdb;
494 494
 
495
-		foreach ( array_keys( wpinv_get_payment_gateways() ) as $gateway ) {
495
+		foreach (array_keys(wpinv_get_payment_gateways()) as $gateway) {
496 496
 
497 497
 			$wpdb->update(
498 498
 				$wpdb->prefix . 'getpaid_invoices',
499
-				array( 'gateway' => $gateway ),
500
-				array( 'gateway' => wpinv_get_gateway_admin_label( $gateway ) ),
499
+				array('gateway' => $gateway),
500
+				array('gateway' => wpinv_get_gateway_admin_label($gateway)),
501 501
 				'%s',
502 502
 				'%s'
503 503
 			);
Please login to merge, or discard this patch.
includes/admin/class-wpinv-users.php 1 patch
Spacing   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -7,15 +7,15 @@  discard block
 block discarded – undo
7 7
  */
8 8
 
9 9
 // MUST have WordPress.
10
-if ( ! defined( 'WPINC' ) ) {
11
-    exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) );
10
+if (!defined('WPINC')) {
11
+    exit('Do NOT access this file directly: ' . basename(__FILE__));
12 12
 }
13 13
 
14 14
 class WPInv_Admin_Users {
15 15
     private static $instance;
16 16
 
17 17
     public static function run() {
18
-        if ( ! isset( self::$instance ) && ! ( self::$instance instanceof WPInv_Admin_Users ) ) {
18
+        if (!isset(self::$instance) && !(self::$instance instanceof WPInv_Admin_Users)) {
19 19
             self::$instance = new WPInv_Admin_Users();
20 20
         }
21 21
 
@@ -23,8 +23,8 @@  discard block
 block discarded – undo
23 23
     }
24 24
 
25 25
     public function __construct() {
26
-        add_filter( 'manage_users_columns', array( $this, 'wpinv_add_user_column' ) );
27
-        add_filter( 'manage_users_custom_column', array( $this, 'wpinv_user_column_content' ), 10, 3 );
26
+        add_filter('manage_users_columns', array($this, 'wpinv_add_user_column'));
27
+        add_filter('manage_users_custom_column', array($this, 'wpinv_user_column_content'), 10, 3);
28 28
     }
29 29
 
30 30
     /**
@@ -34,8 +34,8 @@  discard block
 block discarded – undo
34 34
      *
35 35
      * @return mixed
36 36
      */
37
-    public function wpinv_add_user_column( $column ) {
38
-        $column['wpinvoicing'] = __( 'Invoicing', 'invoicing' );
37
+    public function wpinv_add_user_column($column) {
38
+        $column['wpinvoicing'] = __('Invoicing', 'invoicing');
39 39
         return $column;
40 40
     }
41 41
 
@@ -48,10 +48,10 @@  discard block
 block discarded – undo
48 48
      *
49 49
      * @return string
50 50
      */
51
-    function wpinv_user_column_content( $val, $column_name, $user_id ) {
52
-        switch ( $column_name ) {
51
+    function wpinv_user_column_content($val, $column_name, $user_id) {
52
+        switch ($column_name) {
53 53
             case 'wpinvoicing':
54
-                return $this->get_user_invoices( $user_id );
54
+                return $this->get_user_invoices($user_id);
55 55
                 break;
56 56
             default:
57 57
         }
@@ -65,30 +65,30 @@  discard block
 block discarded – undo
65 65
      *
66 66
      * @return string
67 67
      */
68
-    public function get_user_invoices( $user_id ) {
68
+    public function get_user_invoices($user_id) {
69 69
         $output = '';
70 70
         $wp_query_args = array(
71 71
             'post_type'      => 'wpi_invoice',
72
-            'post_status'    => array( 'wpi-pending', 'publish', 'wpi-processing', 'wpi-onhold', 'wpi-refunded', 'wpi-cancelled', 'wpi-failed', 'wpi-renewal' ),
72
+            'post_status'    => array('wpi-pending', 'publish', 'wpi-processing', 'wpi-onhold', 'wpi-refunded', 'wpi-cancelled', 'wpi-failed', 'wpi-renewal'),
73 73
             'posts_per_page' => -1,
74 74
             'fields'         => 'ids',
75 75
             'author'         => $user_id,
76 76
         );
77 77
 
78
-        $wp_query_args = apply_filters( 'wpinv_get_user_invoices_args', $wp_query_args, $user_id );
78
+        $wp_query_args = apply_filters('wpinv_get_user_invoices_args', $wp_query_args, $user_id);
79 79
 
80
-        $invoices = new WP_Query( $wp_query_args );
81
-        $count = absint( $invoices->found_posts );
80
+        $invoices = new WP_Query($wp_query_args);
81
+        $count = absint($invoices->found_posts);
82 82
 
83
-        if ( empty( $count ) ) {
84
-            $output .= __( 'No Invoice(s)', 'invoicing' );
83
+        if (empty($count)) {
84
+            $output .= __('No Invoice(s)', 'invoicing');
85 85
         } else {
86
-            $link_url = admin_url( 'edit.php?post_type=wpi_invoice&author=' . absint( $user_id ) );
87
-            $link_text = sprintf( __( 'Invoices ( %d )', 'invoicing' ), $count );
86
+            $link_url = admin_url('edit.php?post_type=wpi_invoice&author=' . absint($user_id));
87
+            $link_text = sprintf(__('Invoices ( %d )', 'invoicing'), $count);
88 88
             $output .= "<a href='$link_url' >$link_text</a>";
89 89
         }
90 90
 
91
-        return apply_filters( 'wpinv_user_invoice_content', $output, $user_id );
91
+        return apply_filters('wpinv_user_invoice_content', $output, $user_id);
92 92
     }
93 93
 
94 94
 }
Please login to merge, or discard this patch.
includes/admin/class-wpinv-subscriptions-list-table.php 2 patches
Indentation   +463 added lines, -463 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
 }
9 9
 
10 10
 if ( ! class_exists( 'WP_List_Table' ) ) {
11
-	include_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
11
+    include_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
12 12
 }
13 13
 
14 14
 /**
@@ -16,468 +16,468 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class WPInv_Subscriptions_List_Table extends WP_List_Table {
18 18
 
19
-	/**
20
-	 * URL of this page
21
-	 *
22
-	 * @var   string
23
-	 * @since 1.0.19
24
-	 */
25
-	public $base_url;
26
-
27
-	/**
28
-	 * Query
29
-	 *
30
-	 * @var   GetPaid_Subscriptions_Query
31
-	 * @since 1.0.19
32
-	 */
33
-	public $query;
34
-
35
-	/**
36
-	 * Total subscriptions
37
-	 *
38
-	 * @var   string
39
-	 * @since 1.0.0
40
-	 */
41
-	public $total_count;
42
-
43
-	/**
44
-	 * Current status subscriptions
45
-	 *
46
-	 * @var   string
47
-	 * @since 1.0.0
48
-	 */
49
-	public $current_total_count;
50
-
51
-	/**
52
-	 * Status counts
53
-	 *
54
-	 * @var   array
55
-	 * @since 1.0.19
56
-	 */
57
-	public $status_counts;
58
-
59
-	/**
60
-	 * Number of results to show per page
61
-	 *
62
-	 * @var   int
63
-	 * @since 1.0.0
64
-	 */
65
-	public $per_page = 10;
66
-
67
-	/**
68
-	 *  Constructor function.
69
-	 */
70
-	public function __construct() {
71
-
72
-		parent::__construct(
73
-			array(
74
-				'singular' => 'subscription',
75
-				'plural'   => 'subscriptions',
76
-			)
77
-		);
78
-
79
-		$this->process_bulk_action();
80
-
81
-		$this->prepare_query();
82
-
83
-		$this->base_url = remove_query_arg( 'status' );
84
-
85
-	}
86
-
87
-	/**
88
-	 *  Prepares the display query
89
-	 */
90
-	public function prepare_query() {
91
-
92
-		// Prepare query args.
93
-		$query = array(
94
-			'number'      => $this->per_page,
95
-			'paged'       => $this->get_paged(),
96
-			'status'      => ( isset( $_GET['status'] ) && array_key_exists( $_GET['status'], getpaid_get_subscription_statuses() ) ) ? sanitize_text_field( $_GET['status'] ) : 'all',
97
-			'orderby'     => ( isset( $_GET['orderby'] ) ) ? sanitize_text_field( $_GET['orderby'] ) : 'id',
98
-			'order'       => ( isset( $_GET['order'] ) ) ? sanitize_text_field( $_GET['order'] ) : 'DESC',
99
-			'customer_in' => $this->get_user_in(),
100
-		);
101
-
102
-		if ( is_array( $query['customer_in'] ) && empty( $query['customer_in'] ) ) {
103
-			$this->total_count         = 0;
104
-			$this->current_total_count = 0;
105
-			$this->items               = array();
106
-			$this->status_counts       = array();
107
-			return;
108
-		}
109
-
110
-		// Prepare class properties.
111
-		$this->query               = new GetPaid_Subscriptions_Query( $query );
112
-		$this->total_count         = $this->query->get_total();
113
-		$this->current_total_count = $this->query->get_total();
114
-		$this->items               = $this->query->get_results();
115
-		$this->status_counts       = getpaid_get_subscription_status_counts( $query );
116
-
117
-		if ( 'all' != $query['status'] ) {
118
-			unset( $query['status'] );
119
-			$this->total_count   = getpaid_get_subscriptions( $query, 'count' );
120
-		}
121
-
122
-	}
123
-
124
-	/**
125
-	 * Get user in.
126
-	 *
127
-	 */
128
-	public function get_user_in() {
129
-
130
-		// Abort if no user.
131
-		if ( empty( $_GET['s'] ) ) {
132
-			return null;
133
-		}
134
-
135
-		// Or invalid user.
136
-		$user = wp_unslash( sanitize_text_field( $_REQUEST['s'] ) );
137
-
138
-		if ( empty( $user ) ) {
139
-			return null;
140
-		}
141
-
142
-		// Search matching users.
143
-		$user  = '*' . $user . '*';
144
-		$users = new WP_User_Query(
145
-			array(
146
-				'fields'      => 'ID',
147
-				'search'      => $user,
148
-				'count_total' => false,
149
-			)
150
-		);
151
-
152
-		return $users->get_results();
153
-	}
154
-
155
-	/**
156
-	 * Gets the list of views available on this table.
157
-	 *
158
-	 * The format is an associative array:
159
-	 * - `'id' => 'link'`
160
-	 *
161
-	 * @since 1.0.0
162
-	 *
163
-	 * @return array
164
-	 */
165
-	public function get_views() {
166
-
167
-		$current  = isset( $_GET['status'] ) ? sanitize_text_field( $_GET['status'] ) : 'all';
168
-		$views    = array(
169
-
170
-			'all' => sprintf(
171
-				'<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
172
-				esc_url( add_query_arg( 'status', false, $this->base_url ) ),
173
-				$current === 'all' ? ' class="current"' : '',
174
-				__( 'All', 'invoicing' ),
175
-				$this->total_count
176
-			),
177
-
178
-		);
179
-
180
-		foreach ( array_filter( $this->status_counts ) as $status => $count ) {
181
-
182
-			$views[ $status ] = sprintf(
183
-				'<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
184
-				esc_url( add_query_arg( 'status', urlencode( $status ), $this->base_url ) ),
185
-				$current === $status ? ' class="current"' : '',
186
-				esc_html( getpaid_get_subscription_status_label( $status ) ),
187
-				$count
188
-			);
189
-
190
-		}
191
-
192
-		return $views;
193
-
194
-	}
195
-
196
-	/**
197
-	 * Render most columns
198
-	 *
199
-	 * @access      private
200
-	 * @since       1.0.0
201
-	 * @return      string
202
-	 */
203
-	public function column_default( $item, $column_name ) {
204
-		return apply_filters( "getpaid_subscriptions_table_column_$column_name", $item->$column_name );
205
-	}
206
-
207
-	/**
208
-	 * This is how checkbox column renders.
209
-	 *
210
-	 * @param WPInv_Subscription $item
211
-	 * @return string
212
-	 */
213
-	public function column_cb( $item ) {
214
-		return sprintf( '<input type="checkbox" name="id[]" value="%s" />', esc_html( $item->get_id() ) );
215
-	}
216
-
217
-	/**
218
-	 * Status column
219
-	 *
220
-	 * @param WPInv_Subscription $item
221
-	 * @since       1.0.0
222
-	 * @return      string
223
-	 */
224
-	public function column_status( $item ) {
225
-		return $item->get_status_label_html();
226
-	}
227
-
228
-	/**
229
-	 * Subscription column
230
-	 *
231
-	 * @param WPInv_Subscription $item
232
-	 * @since       1.0.0
233
-	 * @return      string
234
-	 */
235
-	public function column_subscription( $item ) {
236
-
237
-		$username = __( '(Missing User)', 'invoicing' );
238
-
239
-		$user = get_userdata( $item->get_customer_id() );
240
-		if ( $user ) {
241
-
242
-			$username = sprintf(
243
-				'<a href="user-edit.php?user_id=%s">%s</a>',
244
-				absint( $user->ID ),
245
-				! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
246
-			);
247
-
248
-		}
249
-
250
-		// translators: $1: is opening link, $2: is subscription id number, $3: is closing link tag, $4: is user's name
251
-		$column_content = sprintf(
252
-			_x( '%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'invoicing' ),
253
-			'<a href="' . esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $item->get_id() ) ) ) . '">',
254
-			'<strong>' . esc_attr( $item->get_id() ) . '</strong>',
19
+    /**
20
+     * URL of this page
21
+     *
22
+     * @var   string
23
+     * @since 1.0.19
24
+     */
25
+    public $base_url;
26
+
27
+    /**
28
+     * Query
29
+     *
30
+     * @var   GetPaid_Subscriptions_Query
31
+     * @since 1.0.19
32
+     */
33
+    public $query;
34
+
35
+    /**
36
+     * Total subscriptions
37
+     *
38
+     * @var   string
39
+     * @since 1.0.0
40
+     */
41
+    public $total_count;
42
+
43
+    /**
44
+     * Current status subscriptions
45
+     *
46
+     * @var   string
47
+     * @since 1.0.0
48
+     */
49
+    public $current_total_count;
50
+
51
+    /**
52
+     * Status counts
53
+     *
54
+     * @var   array
55
+     * @since 1.0.19
56
+     */
57
+    public $status_counts;
58
+
59
+    /**
60
+     * Number of results to show per page
61
+     *
62
+     * @var   int
63
+     * @since 1.0.0
64
+     */
65
+    public $per_page = 10;
66
+
67
+    /**
68
+     *  Constructor function.
69
+     */
70
+    public function __construct() {
71
+
72
+        parent::__construct(
73
+            array(
74
+                'singular' => 'subscription',
75
+                'plural'   => 'subscriptions',
76
+            )
77
+        );
78
+
79
+        $this->process_bulk_action();
80
+
81
+        $this->prepare_query();
82
+
83
+        $this->base_url = remove_query_arg( 'status' );
84
+
85
+    }
86
+
87
+    /**
88
+     *  Prepares the display query
89
+     */
90
+    public function prepare_query() {
91
+
92
+        // Prepare query args.
93
+        $query = array(
94
+            'number'      => $this->per_page,
95
+            'paged'       => $this->get_paged(),
96
+            'status'      => ( isset( $_GET['status'] ) && array_key_exists( $_GET['status'], getpaid_get_subscription_statuses() ) ) ? sanitize_text_field( $_GET['status'] ) : 'all',
97
+            'orderby'     => ( isset( $_GET['orderby'] ) ) ? sanitize_text_field( $_GET['orderby'] ) : 'id',
98
+            'order'       => ( isset( $_GET['order'] ) ) ? sanitize_text_field( $_GET['order'] ) : 'DESC',
99
+            'customer_in' => $this->get_user_in(),
100
+        );
101
+
102
+        if ( is_array( $query['customer_in'] ) && empty( $query['customer_in'] ) ) {
103
+            $this->total_count         = 0;
104
+            $this->current_total_count = 0;
105
+            $this->items               = array();
106
+            $this->status_counts       = array();
107
+            return;
108
+        }
109
+
110
+        // Prepare class properties.
111
+        $this->query               = new GetPaid_Subscriptions_Query( $query );
112
+        $this->total_count         = $this->query->get_total();
113
+        $this->current_total_count = $this->query->get_total();
114
+        $this->items               = $this->query->get_results();
115
+        $this->status_counts       = getpaid_get_subscription_status_counts( $query );
116
+
117
+        if ( 'all' != $query['status'] ) {
118
+            unset( $query['status'] );
119
+            $this->total_count   = getpaid_get_subscriptions( $query, 'count' );
120
+        }
121
+
122
+    }
123
+
124
+    /**
125
+     * Get user in.
126
+     *
127
+     */
128
+    public function get_user_in() {
129
+
130
+        // Abort if no user.
131
+        if ( empty( $_GET['s'] ) ) {
132
+            return null;
133
+        }
134
+
135
+        // Or invalid user.
136
+        $user = wp_unslash( sanitize_text_field( $_REQUEST['s'] ) );
137
+
138
+        if ( empty( $user ) ) {
139
+            return null;
140
+        }
141
+
142
+        // Search matching users.
143
+        $user  = '*' . $user . '*';
144
+        $users = new WP_User_Query(
145
+            array(
146
+                'fields'      => 'ID',
147
+                'search'      => $user,
148
+                'count_total' => false,
149
+            )
150
+        );
151
+
152
+        return $users->get_results();
153
+    }
154
+
155
+    /**
156
+     * Gets the list of views available on this table.
157
+     *
158
+     * The format is an associative array:
159
+     * - `'id' => 'link'`
160
+     *
161
+     * @since 1.0.0
162
+     *
163
+     * @return array
164
+     */
165
+    public function get_views() {
166
+
167
+        $current  = isset( $_GET['status'] ) ? sanitize_text_field( $_GET['status'] ) : 'all';
168
+        $views    = array(
169
+
170
+            'all' => sprintf(
171
+                '<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
172
+                esc_url( add_query_arg( 'status', false, $this->base_url ) ),
173
+                $current === 'all' ? ' class="current"' : '',
174
+                __( 'All', 'invoicing' ),
175
+                $this->total_count
176
+            ),
177
+
178
+        );
179
+
180
+        foreach ( array_filter( $this->status_counts ) as $status => $count ) {
181
+
182
+            $views[ $status ] = sprintf(
183
+                '<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
184
+                esc_url( add_query_arg( 'status', urlencode( $status ), $this->base_url ) ),
185
+                $current === $status ? ' class="current"' : '',
186
+                esc_html( getpaid_get_subscription_status_label( $status ) ),
187
+                $count
188
+            );
189
+
190
+        }
191
+
192
+        return $views;
193
+
194
+    }
195
+
196
+    /**
197
+     * Render most columns
198
+     *
199
+     * @access      private
200
+     * @since       1.0.0
201
+     * @return      string
202
+     */
203
+    public function column_default( $item, $column_name ) {
204
+        return apply_filters( "getpaid_subscriptions_table_column_$column_name", $item->$column_name );
205
+    }
206
+
207
+    /**
208
+     * This is how checkbox column renders.
209
+     *
210
+     * @param WPInv_Subscription $item
211
+     * @return string
212
+     */
213
+    public function column_cb( $item ) {
214
+        return sprintf( '<input type="checkbox" name="id[]" value="%s" />', esc_html( $item->get_id() ) );
215
+    }
216
+
217
+    /**
218
+     * Status column
219
+     *
220
+     * @param WPInv_Subscription $item
221
+     * @since       1.0.0
222
+     * @return      string
223
+     */
224
+    public function column_status( $item ) {
225
+        return $item->get_status_label_html();
226
+    }
227
+
228
+    /**
229
+     * Subscription column
230
+     *
231
+     * @param WPInv_Subscription $item
232
+     * @since       1.0.0
233
+     * @return      string
234
+     */
235
+    public function column_subscription( $item ) {
236
+
237
+        $username = __( '(Missing User)', 'invoicing' );
238
+
239
+        $user = get_userdata( $item->get_customer_id() );
240
+        if ( $user ) {
241
+
242
+            $username = sprintf(
243
+                '<a href="user-edit.php?user_id=%s">%s</a>',
244
+                absint( $user->ID ),
245
+                ! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
246
+            );
247
+
248
+        }
249
+
250
+        // translators: $1: is opening link, $2: is subscription id number, $3: is closing link tag, $4: is user's name
251
+        $column_content = sprintf(
252
+            _x( '%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'invoicing' ),
253
+            '<a href="' . esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $item->get_id() ) ) ) . '">',
254
+            '<strong>' . esc_attr( $item->get_id() ) . '</strong>',
255 255
             '</a>',
256
-			$username
257
-		);
258
-
259
-		$row_actions = array();
260
-
261
-		// View subscription.
262
-		$view_url    = esc_url( add_query_arg( 'id', $item->get_id(), admin_url( 'admin.php?page=wpinv-subscriptions' ) ) );
263
-		$row_actions['view'] = '<a href="' . $view_url . '">' . __( 'View Subscription', 'invoicing' ) . '</a>';
264
-
265
-		// View invoice.
266
-		$invoice = get_post( $item->get_parent_invoice_id() );
267
-
268
-		if ( ! empty( $invoice ) ) {
269
-			$invoice_url            = get_edit_post_link( $invoice );
270
-			$row_actions['invoice'] = '<a href="' . $invoice_url . '">' . __( 'View Invoice', 'invoicing' ) . '</a>';
271
-		}
272
-
273
-		$delete_url            = esc_url(
274
-			wp_nonce_url(
275
-				add_query_arg(
276
-					array(
277
-						'getpaid-admin-action' => 'subscription_manual_delete',
278
-						'id'                   => $item->get_id(),
279
-					)
280
-				),
281
-				'getpaid-nonce',
282
-				'getpaid-nonce'
283
-			)
284
-		);
285
-		$row_actions['delete'] = '<a class="text-danger" href="' . $delete_url . '">' . __( 'Delete Subscription', 'invoicing' ) . '</a>';
286
-
287
-		$row_actions = $this->row_actions( apply_filters( 'getpaid_subscription_table_row_actions', $row_actions, $item ) );
288
-
289
-		return "<strong>$column_content</strong>" . $this->column_amount( $item ) . $row_actions;
290
-	}
291
-
292
-	/**
293
-	 * Renewal date column
294
-	 *
295
-	 * @param WPInv_Subscription $item
296
-	 * @since       1.0.0
297
-	 * @return      string
298
-	 */
299
-	public function column_renewal_date( $item ) {
300
-		return getpaid_format_date_value( $item->get_expiration() );
301
-	}
302
-
303
-	/**
304
-	 * Start date column
305
-	 *
306
-	 * @param WPInv_Subscription $item
307
-	 * @since       1.0.0
308
-	 * @return      string
309
-	 */
310
-	public function column_start_date( $item ) {
311
-
312
-		$gateway = $item->get_parent_invoice()->get_gateway_title();
313
-
314
-		if ( empty( $gateway ) ) {
315
-			return getpaid_format_date_value( $item->get_date_created() );
316
-		}
317
-
318
-		$url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $item );
319
-		if ( ! empty( $url ) ) {
320
-
321
-			return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
322
-				__( 'Via %s', 'invoicing' ),
323
-				'<strong><a href="' . esc_url( $url ) . '" target="_blank">' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</a></strong>'
324
-			);
325
-
326
-		}
327
-
328
-		return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
329
-			__( 'Via %s', 'invoicing' ),
330
-			'<strong>' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</strong>'
331
-		);
332
-
333
-	}
334
-
335
-	/**
336
-	 * Amount column
337
-	 *
338
-	 * @param WPInv_Subscription $item
339
-	 * @since       1.0.19
340
-	 * @return      string
341
-	 */
342
-	public static function column_amount( $item ) {
343
-		$amount = getpaid_get_formatted_subscription_amount( $item );
344
-		return "<span class='text-muted form-text mt-2 mb-2'>$amount</span>";
345
-	}
346
-
347
-	/**
348
-	 * Billing Times column
349
-	 *
350
-	 * @param WPInv_Subscription $item
351
-	 * @since       1.0.0
352
-	 * @return      string
353
-	 */
354
-	public function column_renewals( $item ) {
355
-		$max_bills = $item->get_bill_times();
356
-		return $item->get_times_billed() . ' / ' . ( empty( $max_bills ) ? '&infin;' : $max_bills );
357
-	}
358
-
359
-	/**
360
-	 * Product ID column
361
-	 *
362
-	 * @param WPInv_Subscription $item
363
-	 * @since       1.0.0
364
-	 * @return      string
365
-	 */
366
-	public function column_item( $item ) {
367
-		$subscription_group = getpaid_get_invoice_subscription_group( $item->get_parent_invoice_id(), $item->get_id() );
368
-
369
-		if ( empty( $subscription_group ) ) {
370
-			return $this->generate_item_markup( $item->get_product_id() );
371
-		}
372
-
373
-		$markup = array_map( array( $this, 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
374
-		return implode( ' | ', $markup );
375
-
376
-	}
377
-
378
-	/**
379
-	 * Generates the items markup.
380
-	 *
381
-	 * @param int $item_id
382
-	 * @since       1.0.0
383
-	 * @return      string
384
-	 */
385
-	public static function generate_item_markup( $item_id ) {
386
-		$item = get_post( $item_id );
387
-
388
-		if ( ! empty( $item ) ) {
389
-			$link = get_edit_post_link( $item );
390
-			$link = esc_url( $link );
391
-			$name = esc_html( get_the_title( $item ) );
392
-			return wpinv_current_user_can_manage_invoicing() ? "<a href='$link'>$name</a>" : $name;
393
-		} else {
394
-			return sprintf( __( 'Item #%s', 'invoicing' ), $item_id );
395
-		}
396
-
397
-	}
398
-
399
-	/**
400
-	 * Retrieve the current page number
401
-	 *
402
-	 * @return      int
403
-	 */
404
-	public function get_paged() {
405
-		return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
406
-	}
407
-
408
-	/**
409
-	 * Setup the final data for the table
410
-	 *
411
-	 */
412
-	public function prepare_items() {
413
-
414
-		$columns  = $this->get_columns();
415
-		$hidden   = array();
416
-		$sortable = $this->get_sortable_columns();
417
-
418
-		$this->_column_headers = array( $columns, $hidden, $sortable );
419
-
420
-		$this->set_pagination_args(
421
-			array(
422
-				'total_items' => $this->current_total_count,
423
-				'per_page'    => $this->per_page,
424
-				'total_pages' => ceil( $this->current_total_count / $this->per_page ),
425
-			)
426
-		);
427
-	}
428
-
429
-	/**
430
-	 * Table columns
431
-	 *
432
-	 * @return array
433
-	 */
434
-	public function get_columns() {
435
-		$columns = array(
436
-			'cb'           => '<input type="checkbox" />',
437
-			'subscription' => __( 'Subscription', 'invoicing' ),
438
-			'start_date'   => __( 'Start Date', 'invoicing' ),
439
-			'renewal_date' => __( 'Next Payment', 'invoicing' ),
440
-			'renewals'     => __( 'Payments', 'invoicing' ),
441
-			'item'         => __( 'Items', 'invoicing' ),
442
-			'status'       => __( 'Status', 'invoicing' ),
443
-		);
444
-
445
-		return apply_filters( 'manage_getpaid_subscriptions_table_columns', $columns );
446
-	}
447
-
448
-	/**
449
-	 * Sortable table columns.
450
-	 *
451
-	 * @return array
452
-	 */
453
-	public function get_sortable_columns() {
454
-		$sortable = array(
455
-			'subscription' => array( 'id', true ),
456
-			'start_date'   => array( 'created', true ),
457
-			'renewal_date' => array( 'expiration', true ),
458
-			'renewals'     => array( 'bill_times', true ),
459
-			'item'         => array( 'product_id', true ),
460
-			'status'       => array( 'status', true ),
461
-		);
462
-
463
-		return apply_filters( 'manage_getpaid_subscriptions_sortable_table_columns', $sortable );
464
-	}
465
-
466
-	/**
467
-	 * Whether the table has items to display or not
468
-	 *
469
-	 * @return bool
470
-	 */
471
-	public function has_items() {
472
-		return ! empty( $this->current_total_count );
473
-	}
474
-
475
-	/**
476
-	 * Processes bulk actions.
477
-	 *
478
-	 */
479
-	public function process_bulk_action() {
480
-
481
-	}
256
+            $username
257
+        );
258
+
259
+        $row_actions = array();
260
+
261
+        // View subscription.
262
+        $view_url    = esc_url( add_query_arg( 'id', $item->get_id(), admin_url( 'admin.php?page=wpinv-subscriptions' ) ) );
263
+        $row_actions['view'] = '<a href="' . $view_url . '">' . __( 'View Subscription', 'invoicing' ) . '</a>';
264
+
265
+        // View invoice.
266
+        $invoice = get_post( $item->get_parent_invoice_id() );
267
+
268
+        if ( ! empty( $invoice ) ) {
269
+            $invoice_url            = get_edit_post_link( $invoice );
270
+            $row_actions['invoice'] = '<a href="' . $invoice_url . '">' . __( 'View Invoice', 'invoicing' ) . '</a>';
271
+        }
272
+
273
+        $delete_url            = esc_url(
274
+            wp_nonce_url(
275
+                add_query_arg(
276
+                    array(
277
+                        'getpaid-admin-action' => 'subscription_manual_delete',
278
+                        'id'                   => $item->get_id(),
279
+                    )
280
+                ),
281
+                'getpaid-nonce',
282
+                'getpaid-nonce'
283
+            )
284
+        );
285
+        $row_actions['delete'] = '<a class="text-danger" href="' . $delete_url . '">' . __( 'Delete Subscription', 'invoicing' ) . '</a>';
286
+
287
+        $row_actions = $this->row_actions( apply_filters( 'getpaid_subscription_table_row_actions', $row_actions, $item ) );
288
+
289
+        return "<strong>$column_content</strong>" . $this->column_amount( $item ) . $row_actions;
290
+    }
291
+
292
+    /**
293
+     * Renewal date column
294
+     *
295
+     * @param WPInv_Subscription $item
296
+     * @since       1.0.0
297
+     * @return      string
298
+     */
299
+    public function column_renewal_date( $item ) {
300
+        return getpaid_format_date_value( $item->get_expiration() );
301
+    }
302
+
303
+    /**
304
+     * Start date column
305
+     *
306
+     * @param WPInv_Subscription $item
307
+     * @since       1.0.0
308
+     * @return      string
309
+     */
310
+    public function column_start_date( $item ) {
311
+
312
+        $gateway = $item->get_parent_invoice()->get_gateway_title();
313
+
314
+        if ( empty( $gateway ) ) {
315
+            return getpaid_format_date_value( $item->get_date_created() );
316
+        }
317
+
318
+        $url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $item );
319
+        if ( ! empty( $url ) ) {
320
+
321
+            return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
322
+                __( 'Via %s', 'invoicing' ),
323
+                '<strong><a href="' . esc_url( $url ) . '" target="_blank">' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</a></strong>'
324
+            );
325
+
326
+        }
327
+
328
+        return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
329
+            __( 'Via %s', 'invoicing' ),
330
+            '<strong>' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</strong>'
331
+        );
332
+
333
+    }
334
+
335
+    /**
336
+     * Amount column
337
+     *
338
+     * @param WPInv_Subscription $item
339
+     * @since       1.0.19
340
+     * @return      string
341
+     */
342
+    public static function column_amount( $item ) {
343
+        $amount = getpaid_get_formatted_subscription_amount( $item );
344
+        return "<span class='text-muted form-text mt-2 mb-2'>$amount</span>";
345
+    }
346
+
347
+    /**
348
+     * Billing Times column
349
+     *
350
+     * @param WPInv_Subscription $item
351
+     * @since       1.0.0
352
+     * @return      string
353
+     */
354
+    public function column_renewals( $item ) {
355
+        $max_bills = $item->get_bill_times();
356
+        return $item->get_times_billed() . ' / ' . ( empty( $max_bills ) ? '&infin;' : $max_bills );
357
+    }
358
+
359
+    /**
360
+     * Product ID column
361
+     *
362
+     * @param WPInv_Subscription $item
363
+     * @since       1.0.0
364
+     * @return      string
365
+     */
366
+    public function column_item( $item ) {
367
+        $subscription_group = getpaid_get_invoice_subscription_group( $item->get_parent_invoice_id(), $item->get_id() );
368
+
369
+        if ( empty( $subscription_group ) ) {
370
+            return $this->generate_item_markup( $item->get_product_id() );
371
+        }
372
+
373
+        $markup = array_map( array( $this, 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
374
+        return implode( ' | ', $markup );
375
+
376
+    }
377
+
378
+    /**
379
+     * Generates the items markup.
380
+     *
381
+     * @param int $item_id
382
+     * @since       1.0.0
383
+     * @return      string
384
+     */
385
+    public static function generate_item_markup( $item_id ) {
386
+        $item = get_post( $item_id );
387
+
388
+        if ( ! empty( $item ) ) {
389
+            $link = get_edit_post_link( $item );
390
+            $link = esc_url( $link );
391
+            $name = esc_html( get_the_title( $item ) );
392
+            return wpinv_current_user_can_manage_invoicing() ? "<a href='$link'>$name</a>" : $name;
393
+        } else {
394
+            return sprintf( __( 'Item #%s', 'invoicing' ), $item_id );
395
+        }
396
+
397
+    }
398
+
399
+    /**
400
+     * Retrieve the current page number
401
+     *
402
+     * @return      int
403
+     */
404
+    public function get_paged() {
405
+        return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
406
+    }
407
+
408
+    /**
409
+     * Setup the final data for the table
410
+     *
411
+     */
412
+    public function prepare_items() {
413
+
414
+        $columns  = $this->get_columns();
415
+        $hidden   = array();
416
+        $sortable = $this->get_sortable_columns();
417
+
418
+        $this->_column_headers = array( $columns, $hidden, $sortable );
419
+
420
+        $this->set_pagination_args(
421
+            array(
422
+                'total_items' => $this->current_total_count,
423
+                'per_page'    => $this->per_page,
424
+                'total_pages' => ceil( $this->current_total_count / $this->per_page ),
425
+            )
426
+        );
427
+    }
428
+
429
+    /**
430
+     * Table columns
431
+     *
432
+     * @return array
433
+     */
434
+    public function get_columns() {
435
+        $columns = array(
436
+            'cb'           => '<input type="checkbox" />',
437
+            'subscription' => __( 'Subscription', 'invoicing' ),
438
+            'start_date'   => __( 'Start Date', 'invoicing' ),
439
+            'renewal_date' => __( 'Next Payment', 'invoicing' ),
440
+            'renewals'     => __( 'Payments', 'invoicing' ),
441
+            'item'         => __( 'Items', 'invoicing' ),
442
+            'status'       => __( 'Status', 'invoicing' ),
443
+        );
444
+
445
+        return apply_filters( 'manage_getpaid_subscriptions_table_columns', $columns );
446
+    }
447
+
448
+    /**
449
+     * Sortable table columns.
450
+     *
451
+     * @return array
452
+     */
453
+    public function get_sortable_columns() {
454
+        $sortable = array(
455
+            'subscription' => array( 'id', true ),
456
+            'start_date'   => array( 'created', true ),
457
+            'renewal_date' => array( 'expiration', true ),
458
+            'renewals'     => array( 'bill_times', true ),
459
+            'item'         => array( 'product_id', true ),
460
+            'status'       => array( 'status', true ),
461
+        );
462
+
463
+        return apply_filters( 'manage_getpaid_subscriptions_sortable_table_columns', $sortable );
464
+    }
465
+
466
+    /**
467
+     * Whether the table has items to display or not
468
+     *
469
+     * @return bool
470
+     */
471
+    public function has_items() {
472
+        return ! empty( $this->current_total_count );
473
+    }
474
+
475
+    /**
476
+     * Processes bulk actions.
477
+     *
478
+     */
479
+    public function process_bulk_action() {
480
+
481
+    }
482 482
 
483 483
 }
Please login to merge, or discard this patch.
Spacing   +94 added lines, -94 removed lines patch added patch discarded remove patch
@@ -3,11 +3,11 @@  discard block
 block discarded – undo
3 3
  * Displays a list of all subscriptions rules
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
 exit;
8 8
 }
9 9
 
10
-if ( ! class_exists( 'WP_List_Table' ) ) {
10
+if (!class_exists('WP_List_Table')) {
11 11
 	include_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
12 12
 }
13 13
 
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
 
81 81
 		$this->prepare_query();
82 82
 
83
-		$this->base_url = remove_query_arg( 'status' );
83
+		$this->base_url = remove_query_arg('status');
84 84
 
85 85
 	}
86 86
 
@@ -93,13 +93,13 @@  discard block
 block discarded – undo
93 93
 		$query = array(
94 94
 			'number'      => $this->per_page,
95 95
 			'paged'       => $this->get_paged(),
96
-			'status'      => ( isset( $_GET['status'] ) && array_key_exists( $_GET['status'], getpaid_get_subscription_statuses() ) ) ? sanitize_text_field( $_GET['status'] ) : 'all',
97
-			'orderby'     => ( isset( $_GET['orderby'] ) ) ? sanitize_text_field( $_GET['orderby'] ) : 'id',
98
-			'order'       => ( isset( $_GET['order'] ) ) ? sanitize_text_field( $_GET['order'] ) : 'DESC',
96
+			'status'      => (isset($_GET['status']) && array_key_exists($_GET['status'], getpaid_get_subscription_statuses())) ? sanitize_text_field($_GET['status']) : 'all',
97
+			'orderby'     => (isset($_GET['orderby'])) ? sanitize_text_field($_GET['orderby']) : 'id',
98
+			'order'       => (isset($_GET['order'])) ? sanitize_text_field($_GET['order']) : 'DESC',
99 99
 			'customer_in' => $this->get_user_in(),
100 100
 		);
101 101
 
102
-		if ( is_array( $query['customer_in'] ) && empty( $query['customer_in'] ) ) {
102
+		if (is_array($query['customer_in']) && empty($query['customer_in'])) {
103 103
 			$this->total_count         = 0;
104 104
 			$this->current_total_count = 0;
105 105
 			$this->items               = array();
@@ -108,15 +108,15 @@  discard block
 block discarded – undo
108 108
 		}
109 109
 
110 110
 		// Prepare class properties.
111
-		$this->query               = new GetPaid_Subscriptions_Query( $query );
111
+		$this->query               = new GetPaid_Subscriptions_Query($query);
112 112
 		$this->total_count         = $this->query->get_total();
113 113
 		$this->current_total_count = $this->query->get_total();
114 114
 		$this->items               = $this->query->get_results();
115
-		$this->status_counts       = getpaid_get_subscription_status_counts( $query );
115
+		$this->status_counts       = getpaid_get_subscription_status_counts($query);
116 116
 
117
-		if ( 'all' != $query['status'] ) {
118
-			unset( $query['status'] );
119
-			$this->total_count   = getpaid_get_subscriptions( $query, 'count' );
117
+		if ('all' != $query['status']) {
118
+			unset($query['status']);
119
+			$this->total_count = getpaid_get_subscriptions($query, 'count');
120 120
 		}
121 121
 
122 122
 	}
@@ -128,14 +128,14 @@  discard block
 block discarded – undo
128 128
 	public function get_user_in() {
129 129
 
130 130
 		// Abort if no user.
131
-		if ( empty( $_GET['s'] ) ) {
131
+		if (empty($_GET['s'])) {
132 132
 			return null;
133 133
 		}
134 134
 
135 135
 		// Or invalid user.
136
-		$user = wp_unslash( sanitize_text_field( $_REQUEST['s'] ) );
136
+		$user = wp_unslash(sanitize_text_field($_REQUEST['s']));
137 137
 
138
-		if ( empty( $user ) ) {
138
+		if (empty($user)) {
139 139
 			return null;
140 140
 		}
141 141
 
@@ -164,26 +164,26 @@  discard block
 block discarded – undo
164 164
 	 */
165 165
 	public function get_views() {
166 166
 
167
-		$current  = isset( $_GET['status'] ) ? sanitize_text_field( $_GET['status'] ) : 'all';
167
+		$current  = isset($_GET['status']) ? sanitize_text_field($_GET['status']) : 'all';
168 168
 		$views    = array(
169 169
 
170 170
 			'all' => sprintf(
171 171
 				'<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
172
-				esc_url( add_query_arg( 'status', false, $this->base_url ) ),
172
+				esc_url(add_query_arg('status', false, $this->base_url)),
173 173
 				$current === 'all' ? ' class="current"' : '',
174
-				__( 'All', 'invoicing' ),
174
+				__('All', 'invoicing'),
175 175
 				$this->total_count
176 176
 			),
177 177
 
178 178
 		);
179 179
 
180
-		foreach ( array_filter( $this->status_counts ) as $status => $count ) {
180
+		foreach (array_filter($this->status_counts) as $status => $count) {
181 181
 
182
-			$views[ $status ] = sprintf(
182
+			$views[$status] = sprintf(
183 183
 				'<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
184
-				esc_url( add_query_arg( 'status', urlencode( $status ), $this->base_url ) ),
184
+				esc_url(add_query_arg('status', urlencode($status), $this->base_url)),
185 185
 				$current === $status ? ' class="current"' : '',
186
-				esc_html( getpaid_get_subscription_status_label( $status ) ),
186
+				esc_html(getpaid_get_subscription_status_label($status)),
187 187
 				$count
188 188
 			);
189 189
 
@@ -200,8 +200,8 @@  discard block
 block discarded – undo
200 200
 	 * @since       1.0.0
201 201
 	 * @return      string
202 202
 	 */
203
-	public function column_default( $item, $column_name ) {
204
-		return apply_filters( "getpaid_subscriptions_table_column_$column_name", $item->$column_name );
203
+	public function column_default($item, $column_name) {
204
+		return apply_filters("getpaid_subscriptions_table_column_$column_name", $item->$column_name);
205 205
 	}
206 206
 
207 207
 	/**
@@ -210,8 +210,8 @@  discard block
 block discarded – undo
210 210
 	 * @param WPInv_Subscription $item
211 211
 	 * @return string
212 212
 	 */
213
-	public function column_cb( $item ) {
214
-		return sprintf( '<input type="checkbox" name="id[]" value="%s" />', esc_html( $item->get_id() ) );
213
+	public function column_cb($item) {
214
+		return sprintf('<input type="checkbox" name="id[]" value="%s" />', esc_html($item->get_id()));
215 215
 	}
216 216
 
217 217
 	/**
@@ -221,7 +221,7 @@  discard block
 block discarded – undo
221 221
 	 * @since       1.0.0
222 222
 	 * @return      string
223 223
 	 */
224
-	public function column_status( $item ) {
224
+	public function column_status($item) {
225 225
 		return $item->get_status_label_html();
226 226
 	}
227 227
 
@@ -232,26 +232,26 @@  discard block
 block discarded – undo
232 232
 	 * @since       1.0.0
233 233
 	 * @return      string
234 234
 	 */
235
-	public function column_subscription( $item ) {
235
+	public function column_subscription($item) {
236 236
 
237
-		$username = __( '(Missing User)', 'invoicing' );
237
+		$username = __('(Missing User)', 'invoicing');
238 238
 
239
-		$user = get_userdata( $item->get_customer_id() );
240
-		if ( $user ) {
239
+		$user = get_userdata($item->get_customer_id());
240
+		if ($user) {
241 241
 
242 242
 			$username = sprintf(
243 243
 				'<a href="user-edit.php?user_id=%s">%s</a>',
244
-				absint( $user->ID ),
245
-				! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
244
+				absint($user->ID),
245
+				!empty($user->display_name) ? esc_html($user->display_name) : sanitize_email($user->user_email)
246 246
 			);
247 247
 
248 248
 		}
249 249
 
250 250
 		// translators: $1: is opening link, $2: is subscription id number, $3: is closing link tag, $4: is user's name
251 251
 		$column_content = sprintf(
252
-			_x( '%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'invoicing' ),
253
-			'<a href="' . esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $item->get_id() ) ) ) . '">',
254
-			'<strong>' . esc_attr( $item->get_id() ) . '</strong>',
252
+			_x('%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'invoicing'),
253
+			'<a href="' . esc_url(admin_url('admin.php?page=wpinv-subscriptions&id=' . absint($item->get_id()))) . '">',
254
+			'<strong>' . esc_attr($item->get_id()) . '</strong>',
255 255
             '</a>',
256 256
 			$username
257 257
 		);
@@ -259,18 +259,18 @@  discard block
 block discarded – undo
259 259
 		$row_actions = array();
260 260
 
261 261
 		// View subscription.
262
-		$view_url    = esc_url( add_query_arg( 'id', $item->get_id(), admin_url( 'admin.php?page=wpinv-subscriptions' ) ) );
263
-		$row_actions['view'] = '<a href="' . $view_url . '">' . __( 'View Subscription', 'invoicing' ) . '</a>';
262
+		$view_url    = esc_url(add_query_arg('id', $item->get_id(), admin_url('admin.php?page=wpinv-subscriptions')));
263
+		$row_actions['view'] = '<a href="' . $view_url . '">' . __('View Subscription', 'invoicing') . '</a>';
264 264
 
265 265
 		// View invoice.
266
-		$invoice = get_post( $item->get_parent_invoice_id() );
266
+		$invoice = get_post($item->get_parent_invoice_id());
267 267
 
268
-		if ( ! empty( $invoice ) ) {
269
-			$invoice_url            = get_edit_post_link( $invoice );
270
-			$row_actions['invoice'] = '<a href="' . $invoice_url . '">' . __( 'View Invoice', 'invoicing' ) . '</a>';
268
+		if (!empty($invoice)) {
269
+			$invoice_url            = get_edit_post_link($invoice);
270
+			$row_actions['invoice'] = '<a href="' . $invoice_url . '">' . __('View Invoice', 'invoicing') . '</a>';
271 271
 		}
272 272
 
273
-		$delete_url            = esc_url(
273
+		$delete_url = esc_url(
274 274
 			wp_nonce_url(
275 275
 				add_query_arg(
276 276
 					array(
@@ -282,11 +282,11 @@  discard block
 block discarded – undo
282 282
 				'getpaid-nonce'
283 283
 			)
284 284
 		);
285
-		$row_actions['delete'] = '<a class="text-danger" href="' . $delete_url . '">' . __( 'Delete Subscription', 'invoicing' ) . '</a>';
285
+		$row_actions['delete'] = '<a class="text-danger" href="' . $delete_url . '">' . __('Delete Subscription', 'invoicing') . '</a>';
286 286
 
287
-		$row_actions = $this->row_actions( apply_filters( 'getpaid_subscription_table_row_actions', $row_actions, $item ) );
287
+		$row_actions = $this->row_actions(apply_filters('getpaid_subscription_table_row_actions', $row_actions, $item));
288 288
 
289
-		return "<strong>$column_content</strong>" . $this->column_amount( $item ) . $row_actions;
289
+		return "<strong>$column_content</strong>" . $this->column_amount($item) . $row_actions;
290 290
 	}
291 291
 
292 292
 	/**
@@ -296,8 +296,8 @@  discard block
 block discarded – undo
296 296
 	 * @since       1.0.0
297 297
 	 * @return      string
298 298
 	 */
299
-	public function column_renewal_date( $item ) {
300
-		return getpaid_format_date_value( $item->get_expiration() );
299
+	public function column_renewal_date($item) {
300
+		return getpaid_format_date_value($item->get_expiration());
301 301
 	}
302 302
 
303 303
 	/**
@@ -307,27 +307,27 @@  discard block
 block discarded – undo
307 307
 	 * @since       1.0.0
308 308
 	 * @return      string
309 309
 	 */
310
-	public function column_start_date( $item ) {
310
+	public function column_start_date($item) {
311 311
 
312 312
 		$gateway = $item->get_parent_invoice()->get_gateway_title();
313 313
 
314
-		if ( empty( $gateway ) ) {
315
-			return getpaid_format_date_value( $item->get_date_created() );
314
+		if (empty($gateway)) {
315
+			return getpaid_format_date_value($item->get_date_created());
316 316
 		}
317 317
 
318
-		$url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $item );
319
-		if ( ! empty( $url ) ) {
318
+		$url = apply_filters('getpaid_remote_subscription_profile_url', '', $item);
319
+		if (!empty($url)) {
320 320
 
321
-			return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
322
-				__( 'Via %s', 'invoicing' ),
323
-				'<strong><a href="' . esc_url( $url ) . '" target="_blank">' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</a></strong>'
321
+			return getpaid_format_date_value($item->get_date_created()) . '<br>' . sprintf(
322
+				__('Via %s', 'invoicing'),
323
+				'<strong><a href="' . esc_url($url) . '" target="_blank">' . esc_html($item->get_parent_invoice()->get_gateway_title()) . '</a></strong>'
324 324
 			);
325 325
 
326 326
 		}
327 327
 
328
-		return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
329
-			__( 'Via %s', 'invoicing' ),
330
-			'<strong>' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</strong>'
328
+		return getpaid_format_date_value($item->get_date_created()) . '<br>' . sprintf(
329
+			__('Via %s', 'invoicing'),
330
+			'<strong>' . esc_html($item->get_parent_invoice()->get_gateway_title()) . '</strong>'
331 331
 		);
332 332
 
333 333
 	}
@@ -339,8 +339,8 @@  discard block
 block discarded – undo
339 339
 	 * @since       1.0.19
340 340
 	 * @return      string
341 341
 	 */
342
-	public static function column_amount( $item ) {
343
-		$amount = getpaid_get_formatted_subscription_amount( $item );
342
+	public static function column_amount($item) {
343
+		$amount = getpaid_get_formatted_subscription_amount($item);
344 344
 		return "<span class='text-muted form-text mt-2 mb-2'>$amount</span>";
345 345
 	}
346 346
 
@@ -351,9 +351,9 @@  discard block
 block discarded – undo
351 351
 	 * @since       1.0.0
352 352
 	 * @return      string
353 353
 	 */
354
-	public function column_renewals( $item ) {
354
+	public function column_renewals($item) {
355 355
 		$max_bills = $item->get_bill_times();
356
-		return $item->get_times_billed() . ' / ' . ( empty( $max_bills ) ? '&infin;' : $max_bills );
356
+		return $item->get_times_billed() . ' / ' . (empty($max_bills) ? '&infin;' : $max_bills);
357 357
 	}
358 358
 
359 359
 	/**
@@ -363,15 +363,15 @@  discard block
 block discarded – undo
363 363
 	 * @since       1.0.0
364 364
 	 * @return      string
365 365
 	 */
366
-	public function column_item( $item ) {
367
-		$subscription_group = getpaid_get_invoice_subscription_group( $item->get_parent_invoice_id(), $item->get_id() );
366
+	public function column_item($item) {
367
+		$subscription_group = getpaid_get_invoice_subscription_group($item->get_parent_invoice_id(), $item->get_id());
368 368
 
369
-		if ( empty( $subscription_group ) ) {
370
-			return $this->generate_item_markup( $item->get_product_id() );
369
+		if (empty($subscription_group)) {
370
+			return $this->generate_item_markup($item->get_product_id());
371 371
 		}
372 372
 
373
-		$markup = array_map( array( $this, 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
374
-		return implode( ' | ', $markup );
373
+		$markup = array_map(array($this, 'generate_item_markup'), array_keys($subscription_group['items']));
374
+		return implode(' | ', $markup);
375 375
 
376 376
 	}
377 377
 
@@ -382,16 +382,16 @@  discard block
 block discarded – undo
382 382
 	 * @since       1.0.0
383 383
 	 * @return      string
384 384
 	 */
385
-	public static function generate_item_markup( $item_id ) {
386
-		$item = get_post( $item_id );
385
+	public static function generate_item_markup($item_id) {
386
+		$item = get_post($item_id);
387 387
 
388
-		if ( ! empty( $item ) ) {
389
-			$link = get_edit_post_link( $item );
390
-			$link = esc_url( $link );
391
-			$name = esc_html( get_the_title( $item ) );
388
+		if (!empty($item)) {
389
+			$link = get_edit_post_link($item);
390
+			$link = esc_url($link);
391
+			$name = esc_html(get_the_title($item));
392 392
 			return wpinv_current_user_can_manage_invoicing() ? "<a href='$link'>$name</a>" : $name;
393 393
 		} else {
394
-			return sprintf( __( 'Item #%s', 'invoicing' ), $item_id );
394
+			return sprintf(__('Item #%s', 'invoicing'), $item_id);
395 395
 		}
396 396
 
397 397
 	}
@@ -402,7 +402,7 @@  discard block
 block discarded – undo
402 402
 	 * @return      int
403 403
 	 */
404 404
 	public function get_paged() {
405
-		return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
405
+		return isset($_GET['paged']) ? absint($_GET['paged']) : 1;
406 406
 	}
407 407
 
408 408
 	/**
@@ -415,13 +415,13 @@  discard block
 block discarded – undo
415 415
 		$hidden   = array();
416 416
 		$sortable = $this->get_sortable_columns();
417 417
 
418
-		$this->_column_headers = array( $columns, $hidden, $sortable );
418
+		$this->_column_headers = array($columns, $hidden, $sortable);
419 419
 
420 420
 		$this->set_pagination_args(
421 421
 			array(
422 422
 				'total_items' => $this->current_total_count,
423 423
 				'per_page'    => $this->per_page,
424
-				'total_pages' => ceil( $this->current_total_count / $this->per_page ),
424
+				'total_pages' => ceil($this->current_total_count / $this->per_page),
425 425
 			)
426 426
 		);
427 427
 	}
@@ -434,15 +434,15 @@  discard block
 block discarded – undo
434 434
 	public function get_columns() {
435 435
 		$columns = array(
436 436
 			'cb'           => '<input type="checkbox" />',
437
-			'subscription' => __( 'Subscription', 'invoicing' ),
438
-			'start_date'   => __( 'Start Date', 'invoicing' ),
439
-			'renewal_date' => __( 'Next Payment', 'invoicing' ),
440
-			'renewals'     => __( 'Payments', 'invoicing' ),
441
-			'item'         => __( 'Items', 'invoicing' ),
442
-			'status'       => __( 'Status', 'invoicing' ),
437
+			'subscription' => __('Subscription', 'invoicing'),
438
+			'start_date'   => __('Start Date', 'invoicing'),
439
+			'renewal_date' => __('Next Payment', 'invoicing'),
440
+			'renewals'     => __('Payments', 'invoicing'),
441
+			'item'         => __('Items', 'invoicing'),
442
+			'status'       => __('Status', 'invoicing'),
443 443
 		);
444 444
 
445
-		return apply_filters( 'manage_getpaid_subscriptions_table_columns', $columns );
445
+		return apply_filters('manage_getpaid_subscriptions_table_columns', $columns);
446 446
 	}
447 447
 
448 448
 	/**
@@ -452,15 +452,15 @@  discard block
 block discarded – undo
452 452
 	 */
453 453
 	public function get_sortable_columns() {
454 454
 		$sortable = array(
455
-			'subscription' => array( 'id', true ),
456
-			'start_date'   => array( 'created', true ),
457
-			'renewal_date' => array( 'expiration', true ),
458
-			'renewals'     => array( 'bill_times', true ),
459
-			'item'         => array( 'product_id', true ),
460
-			'status'       => array( 'status', true ),
455
+			'subscription' => array('id', true),
456
+			'start_date'   => array('created', true),
457
+			'renewal_date' => array('expiration', true),
458
+			'renewals'     => array('bill_times', true),
459
+			'item'         => array('product_id', true),
460
+			'status'       => array('status', true),
461 461
 		);
462 462
 
463
-		return apply_filters( 'manage_getpaid_subscriptions_sortable_table_columns', $sortable );
463
+		return apply_filters('manage_getpaid_subscriptions_sortable_table_columns', $sortable);
464 464
 	}
465 465
 
466 466
 	/**
@@ -469,7 +469,7 @@  discard block
 block discarded – undo
469 469
 	 * @return bool
470 470
 	 */
471 471
 	public function has_items() {
472
-		return ! empty( $this->current_total_count );
472
+		return !empty($this->current_total_count);
473 473
 	}
474 474
 
475 475
 	/**
Please login to merge, or discard this patch.
includes/admin/class-getpaid-admin.php 2 patches
Indentation   +588 added lines, -588 removed lines patch added patch discarded remove patch
@@ -14,91 +14,91 @@  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_duplicate_invoice', array( $this, 'duplicate_invoice' ) );
66
-		add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
67
-		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_duplicate_invoice', array( $this, 'duplicate_invoice' ) );
66
+        add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
67
+        add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
68 68
         add_action( 'getpaid_authenticated_admin_action_reset_tax_rates', array( $this, 'admin_reset_tax_rates' ) );
69
-		add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
70
-		add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
71
-		add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
72
-		add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
73
-		add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
74
-		add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
75
-		add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
76
-		add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
77
-		do_action( 'getpaid_init_admin_hooks', $this );
78
-
79
-		// Setup/welcome
80
-		if ( ! empty( $_GET['page'] ) ) {
81
-			switch ( sanitize_text_field( $_GET['page'] ) ) {
82
-				case 'gp-setup':
83
-					include_once dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php';
84
-					break;
85
-			}
86
-		}
87
-
88
-    }
89
-
90
-    /**
91
-	 * Register admin scripts
92
-	 *
93
-	 */
94
-	public function enqeue_scripts() {
69
+        add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
70
+        add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
71
+        add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
72
+        add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
73
+        add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
74
+        add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
75
+        add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
76
+        add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
77
+        do_action( 'getpaid_init_admin_hooks', $this );
78
+
79
+        // Setup/welcome
80
+        if ( ! empty( $_GET['page'] ) ) {
81
+            switch ( sanitize_text_field( $_GET['page'] ) ) {
82
+                case 'gp-setup':
83
+                    include_once dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php';
84
+                    break;
85
+            }
86
+        }
87
+
88
+    }
89
+
90
+    /**
91
+     * Register admin scripts
92
+     *
93
+     */
94
+    public function enqeue_scripts() {
95 95
         global $current_screen, $pagenow;
96 96
 
97
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
98
-		$editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
97
+        $page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
98
+        $editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
99 99
 
100 100
         if ( ! empty( $current_screen->post_type ) ) {
101
-			$page = $current_screen->post_type;
101
+            $page = $current_screen->post_type;
102 102
         }
103 103
 
104 104
         // General styles.
@@ -119,53 +119,53 @@  discard block
 block discarded – undo
119 119
         }
120 120
 
121 121
         // Payment form scripts.
122
-		if ( 'wpi_payment_form' == $page && $editing ) {
122
+        if ( 'wpi_payment_form' == $page && $editing ) {
123 123
             $this->load_payment_form_scripts();
124 124
         }
125 125
 
126
-		if ( $page == 'wpinv-subscriptions' ) {
127
-			wp_enqueue_script( 'postbox' );
128
-		}
126
+        if ( $page == 'wpinv-subscriptions' ) {
127
+            wp_enqueue_script( 'postbox' );
128
+        }
129 129
 
130 130
     }
131 131
 
132 132
     /**
133
-	 * Returns admin js translations.
134
-	 *
135
-	 */
136
-	protected function get_admin_i18() {
133
+     * Returns admin js translations.
134
+     *
135
+     */
136
+    protected function get_admin_i18() {
137 137
         global $post;
138 138
 
139
-		$date_range = array(
140
-			'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days',
141
-		);
139
+        $date_range = array(
140
+            'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days',
141
+        );
142 142
 
143
-		if ( $date_range['period'] == 'custom' ) {
143
+        if ( $date_range['period'] == 'custom' ) {
144 144
 
145
-			if ( isset( $_GET['from'] ) ) {
146
-				$date_range['after'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
147
-			}
145
+            if ( isset( $_GET['from'] ) ) {
146
+                $date_range['after'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
147
+            }
148 148
 
149
-			if ( isset( $_GET['to'] ) ) {
150
-				$date_range['before'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
151
-			}
149
+            if ( isset( $_GET['to'] ) ) {
150
+                $date_range['before'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
151
+            }
152 152
 }
153 153
 
154 154
         $i18n = array(
155 155
             'ajax_url'                  => admin_url( 'admin-ajax.php' ),
156 156
             'post_ID'                   => isset( $post->ID ) ? $post->ID : '',
157
-			'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
158
-			'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
159
-			'rest_root'                 => esc_url_raw( rest_url() ),
160
-			'date_range'                => $date_range,
157
+            'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
158
+            'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
159
+            'rest_root'                 => esc_url_raw( rest_url() ),
160
+            'date_range'                => $date_range,
161 161
             'add_invoice_note_nonce'    => wp_create_nonce( 'add-invoice-note' ),
162 162
             'delete_invoice_note_nonce' => wp_create_nonce( 'delete-invoice-note' ),
163 163
             'invoice_item_nonce'        => wp_create_nonce( 'invoice-item' ),
164 164
             'billing_details_nonce'     => wp_create_nonce( 'get-billing-details' ),
165 165
             'tax'                       => wpinv_tax_amount(),
166 166
             'discount'                  => 0,
167
-			'currency_symbol'           => wpinv_currency_symbol(),
168
-			'currency'                  => wpinv_get_currency(),
167
+            'currency_symbol'           => wpinv_currency_symbol(),
168
+            'currency'                  => wpinv_get_currency(),
169 169
             'currency_pos'              => wpinv_currency_position(),
170 170
             'thousand_sep'              => wpinv_thousands_separator(),
171 171
             'decimal_sep'               => wpinv_decimal_separator(),
@@ -185,118 +185,118 @@  discard block
 block discarded – undo
185 185
             'item_description'          => __( 'Item Description', 'invoicing' ),
186 186
             'invoice_description'       => __( 'Invoice Description', 'invoicing' ),
187 187
             'discount_description'      => __( 'Discount Description', 'invoicing' ),
188
-			'searching'                 => __( 'Searching', 'invoicing' ),
189
-			'loading'                   => __( 'Loading...', 'invoicing' ),
190
-			'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
191
-			'search_items'              => __( 'Enter item name', 'invoicing' ),
192
-			'graphs'                    => array_merge( array( 'refunded_fees', 'refunded_items', 'refunded_subtotal', 'refunded_tax' ), array_keys( wpinv_get_report_graphs() ) ),
188
+            'searching'                 => __( 'Searching', 'invoicing' ),
189
+            'loading'                   => __( 'Loading...', 'invoicing' ),
190
+            'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
191
+            'search_items'              => __( 'Enter item name', 'invoicing' ),
192
+            'graphs'                    => array_merge( array( 'refunded_fees', 'refunded_items', 'refunded_subtotal', 'refunded_tax' ), array_keys( wpinv_get_report_graphs() ) ),
193 193
         );
194 194
 
195
-		if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
195
+        if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
196 196
 
197
-			$invoice              = new WPInv_Invoice( $post );
198
-			$i18n['save_invoice'] = sprintf(
199
-				__( 'Save %s', 'invoicing' ),
200
-				ucfirst( $invoice->get_invoice_quote_type() )
201
-			);
197
+            $invoice              = new WPInv_Invoice( $post );
198
+            $i18n['save_invoice'] = sprintf(
199
+                __( 'Save %s', 'invoicing' ),
200
+                ucfirst( $invoice->get_invoice_quote_type() )
201
+            );
202 202
 
203
-			$i18n['invoice_description'] = sprintf(
204
-				__( '%s Description', 'invoicing' ),
205
-				ucfirst( $invoice->get_invoice_quote_type() )
206
-			);
203
+            $i18n['invoice_description'] = sprintf(
204
+                __( '%s Description', 'invoicing' ),
205
+                ucfirst( $invoice->get_invoice_quote_type() )
206
+            );
207 207
 
208
-		}
209
-		return $i18n;
210
-	}
208
+        }
209
+        return $i18n;
210
+    }
211 211
 
212
-	/**
213
-	 * Change the admin footer text on GetPaid admin pages.
214
-	 *
215
-	 * @since  2.0.0
216
-	 * @param  string $footer_text
217
-	 * @return string
218
-	 */
219
-	public function admin_footer_text( $footer_text ) {
220
-		global $current_screen;
212
+    /**
213
+     * Change the admin footer text on GetPaid admin pages.
214
+     *
215
+     * @since  2.0.0
216
+     * @param  string $footer_text
217
+     * @return string
218
+     */
219
+    public function admin_footer_text( $footer_text ) {
220
+        global $current_screen;
221 221
 
222
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
222
+        $page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
223 223
 
224 224
         if ( ! empty( $current_screen->post_type ) ) {
225
-			$page = $current_screen->post_type;
225
+            $page = $current_screen->post_type;
226 226
         }
227 227
 
228 228
         // General styles.
229 229
         if ( apply_filters( 'getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing() ) && false !== stripos( $page, 'wpi' ) ) {
230 230
 
231
-			// Change the footer text
232
-			if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
231
+            // Change the footer text
232
+            if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
233 233
 
234
-				$rating_url  = esc_url(
235
-					wp_nonce_url(
236
-						admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
237
-						'getpaid-nonce',
238
-						'getpaid-nonce'
234
+                $rating_url  = esc_url(
235
+                    wp_nonce_url(
236
+                        admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
237
+                        'getpaid-nonce',
238
+                        'getpaid-nonce'
239 239
                     )
240
-				);
240
+                );
241 241
 
242
-				$footer_text = sprintf(
243
-					/* translators: %s: five stars */
244
-					__( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
245
-					"<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
246
-				);
242
+                $footer_text = sprintf(
243
+                    /* translators: %s: five stars */
244
+                    __( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
245
+                    "<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
246
+                );
247 247
 
248
-			} else {
248
+            } else {
249 249
 
250
-				$footer_text = sprintf(
251
-					/* translators: %s: GetPaid */
252
-					__( 'Thank you for using %s!', 'invoicing' ),
253
-					"<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
254
-				);
250
+                $footer_text = sprintf(
251
+                    /* translators: %s: GetPaid */
252
+                    __( 'Thank you for using %s!', 'invoicing' ),
253
+                    "<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
254
+                );
255 255
 
256
-			}
256
+            }
257 257
 }
258 258
 
259
-		return $footer_text;
260
-	}
261
-
262
-	/**
263
-	 * Redirects to wp.org to rate the plugin.
264
-	 *
265
-	 * @since  2.0.0
266
-	 */
267
-	public function redirect_to_wordpress_rating_page() {
268
-		update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
269
-		wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
270
-		exit;
271
-	}
272
-
273
-    /**
274
-	 * Loads payment form js.
275
-	 *
276
-	 */
277
-	protected function load_payment_form_scripts() {
259
+        return $footer_text;
260
+    }
261
+
262
+    /**
263
+     * Redirects to wp.org to rate the plugin.
264
+     *
265
+     * @since  2.0.0
266
+     */
267
+    public function redirect_to_wordpress_rating_page() {
268
+        update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
269
+        wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
270
+        exit;
271
+    }
272
+
273
+    /**
274
+     * Loads payment form js.
275
+     *
276
+     */
277
+    protected function load_payment_form_scripts() {
278 278
         global $post;
279 279
 
280 280
         wp_enqueue_script( 'vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.min.js', array(), WPINV_VERSION );
281
-		wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
282
-		wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
281
+        wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
282
+        wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
283 283
 
284
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
285
-		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 );
284
+        $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
285
+        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 286
 
287
-		wp_localize_script(
287
+        wp_localize_script(
288 288
             'wpinv-admin-payment-form-script',
289 289
             'wpinvPaymentFormAdmin',
290 290
             array(
291
-				'elements'      => wpinv_get_data( 'payment-form-elements' ),
292
-				'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
293
-				'currency'      => wpinv_currency_symbol(),
294
-				'position'      => wpinv_currency_position(),
295
-				'decimals'      => (int) wpinv_decimals(),
296
-				'thousands_sep' => wpinv_thousands_separator(),
297
-				'decimals_sep'  => wpinv_decimal_separator(),
298
-				'form_items'    => gepaid_get_form_items( $post->ID ),
299
-				'is_default'    => $post->ID == wpinv_get_default_payment_form(),
291
+                'elements'      => wpinv_get_data( 'payment-form-elements' ),
292
+                'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
293
+                'currency'      => wpinv_currency_symbol(),
294
+                'position'      => wpinv_currency_position(),
295
+                'decimals'      => (int) wpinv_decimals(),
296
+                'thousands_sep' => wpinv_thousands_separator(),
297
+                'decimals_sep'  => wpinv_decimal_separator(),
298
+                'form_items'    => gepaid_get_form_items( $post->ID ),
299
+                'is_default'    => $post->ID == wpinv_get_default_payment_form(),
300 300
             )
301 301
         );
302 302
 
@@ -305,19 +305,19 @@  discard block
 block discarded – undo
305 305
     }
306 306
 
307 307
     /**
308
-	 * Add our classes to admin pages.
308
+     * Add our classes to admin pages.
309 309
      *
310 310
      * @param string $classes
311 311
      * @return string
312
-	 *
313
-	 */
312
+     *
313
+     */
314 314
     public function admin_body_class( $classes ) {
315
-		global $pagenow, $post, $current_screen;
315
+        global $pagenow, $post, $current_screen;
316 316
 
317 317
         $page = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
318 318
 
319 319
         if ( ! empty( $current_screen->post_type ) ) {
320
-			$page = $current_screen->post_type;
320
+            $page = $current_screen->post_type;
321 321
         }
322 322
 
323 323
         if ( false !== stripos( $page, 'wpi' ) ) {
@@ -326,70 +326,70 @@  discard block
 block discarded – undo
326 326
 
327 327
         if ( in_array( $page, wpinv_parse_list( 'wpi_invoice wpi_payment_form wpi_quote' ) ) ) {
328 328
             $classes .= ' wpinv-cpt wpinv';
329
-		}
329
+        }
330 330
 
331
-		if ( getpaid_is_invoice_post_type( $page ) ) {
331
+        if ( getpaid_is_invoice_post_type( $page ) ) {
332 332
             $classes .= ' getpaid-is-invoice-cpt';
333 333
         }
334 334
 
335
-		return $classes;
335
+        return $classes;
336 336
     }
337 337
 
338 338
     /**
339
-	 * Maybe show the AyeCode Connect Notice.
340
-	 */
341
-	public function init_ayecode_connect_helper() {
339
+     * Maybe show the AyeCode Connect Notice.
340
+     */
341
+    public function init_ayecode_connect_helper() {
342 342
 
343
-		// Register with the deactivation survey class.
344
-		AyeCode_Deactivation_Survey::instance(
343
+        // Register with the deactivation survey class.
344
+        AyeCode_Deactivation_Survey::instance(
345 345
             array(
346
-				'slug'              => 'invoicing',
347
-				'version'           => WPINV_VERSION,
348
-				'support_url'       => 'https://wpgetpaid.com/support/',
349
-				'documentation_url' => 'https://docs.wpgetpaid.com/',
350
-				'activated'         => (int) get_option( 'gepaid_installed_on' ),
346
+                'slug'              => 'invoicing',
347
+                'version'           => WPINV_VERSION,
348
+                'support_url'       => 'https://wpgetpaid.com/support/',
349
+                'documentation_url' => 'https://docs.wpgetpaid.com/',
350
+                'activated'         => (int) get_option( 'gepaid_installed_on' ),
351 351
             )
352 352
         );
353 353
 
354 354
         new AyeCode_Connect_Helper(
355 355
             array(
356
-				'connect_title'     => __( 'WP Invoicing - an AyeCode product!', 'invoicing' ),
357
-				'connect_external'  => __( 'Please confirm you wish to connect your site?', 'invoicing' ),
358
-				'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>' ),
359
-				'connect_button'    => __( 'Connect Site', 'invoicing' ),
360
-				'connecting_button' => __( 'Connecting...', 'invoicing' ),
361
-				'error_localhost'   => __( 'This service will only work with a live domain, not a localhost.', 'invoicing' ),
362
-				'error'             => __( 'Something went wrong, please refresh and try again.', 'invoicing' ),
356
+                'connect_title'     => __( 'WP Invoicing - an AyeCode product!', 'invoicing' ),
357
+                'connect_external'  => __( 'Please confirm you wish to connect your site?', 'invoicing' ),
358
+                '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>' ),
359
+                'connect_button'    => __( 'Connect Site', 'invoicing' ),
360
+                'connecting_button' => __( 'Connecting...', 'invoicing' ),
361
+                'error_localhost'   => __( 'This service will only work with a live domain, not a localhost.', 'invoicing' ),
362
+                'error'             => __( 'Something went wrong, please refresh and try again.', 'invoicing' ),
363 363
             ),
364 364
             array( 'wpi-addons' )
365 365
         );
366 366
 
367 367
     }
368 368
 
369
-	/**
370
-	 * Redirect users to settings on activation.
371
-	 *
372
-	 * @return void
373
-	 */
374
-	public function activation_redirect() {
369
+    /**
370
+     * Redirect users to settings on activation.
371
+     *
372
+     * @return void
373
+     */
374
+    public function activation_redirect() {
375 375
 
376
-		$redirected = get_option( 'wpinv_redirected_to_settings' );
376
+        $redirected = get_option( 'wpinv_redirected_to_settings' );
377 377
 
378
-		if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
379
-			return;
380
-		}
378
+        if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
379
+            return;
380
+        }
381 381
 
382
-		// Bail if activating from network, or bulk
383
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
384
-			return;
385
-		}
382
+        // Bail if activating from network, or bulk
383
+        if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
384
+            return;
385
+        }
386 386
 
387
-	    update_option( 'wpinv_redirected_to_settings', 1 );
387
+        update_option( 'wpinv_redirected_to_settings', 1 );
388 388
 
389 389
         wp_safe_redirect( admin_url( 'index.php?page=gp-setup' ) );
390 390
         exit;
391 391
 
392
-	}
392
+    }
393 393
 
394 394
     /**
395 395
      * Fires an admin action after verifying that a user can fire them.
@@ -403,526 +403,526 @@  discard block
 block discarded – undo
403 403
 
404 404
     }
405 405
 
406
-	/**
406
+    /**
407 407
      * Duplicate invoice.
408
-	 *
409
-	 * @param array $args
408
+     *
409
+     * @param array $args
410 410
      */
411 411
     public function duplicate_invoice( $args ) {
412 412
 
413
-		if ( empty( $args['invoice_id'] ) ) {
414
-			return;
415
-		}
413
+        if ( empty( $args['invoice_id'] ) ) {
414
+            return;
415
+        }
416 416
 
417
-		$invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
417
+        $invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
418 418
 
419
-		if ( ! $invoice->exists() ) {
420
-			return;
421
-		}
419
+        if ( ! $invoice->exists() ) {
420
+            return;
421
+        }
422 422
 
423
-		$new_invoice = getpaid_duplicate_invoice( $invoice );
424
-		$new_invoice->save();
423
+        $new_invoice = getpaid_duplicate_invoice( $invoice );
424
+        $new_invoice->save();
425 425
 
426
-		if ( $new_invoice->exists() ) {
426
+        if ( $new_invoice->exists() ) {
427 427
 
428
-			getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'newsletter-optin-box' ) );
428
+            getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'newsletter-optin-box' ) );
429 429
 
430
-			wp_safe_redirect(
431
-				add_query_arg(
432
-					array(
433
-						'action' => 'edit',
434
-						'post'   => $new_invoice->get_id(),
435
-					),
436
-					admin_url( 'post.php' )
437
-				)
438
-			);
439
-			exit;
430
+            wp_safe_redirect(
431
+                add_query_arg(
432
+                    array(
433
+                        'action' => 'edit',
434
+                        'post'   => $new_invoice->get_id(),
435
+                    ),
436
+                    admin_url( 'post.php' )
437
+                )
438
+            );
439
+            exit;
440 440
 
441
-		}
441
+        }
442 442
 
443
-		getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'newsletter-optin-box' ) );
443
+        getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'newsletter-optin-box' ) );
444 444
 
445
-	}
445
+    }
446 446
 
447
-	/**
447
+    /**
448 448
      * Sends a payment reminder to a customer.
449
-	 *
450
-	 * @param array $args
449
+     *
450
+     * @param array $args
451 451
      */
452 452
     public function duplicate_payment_form( $args ) {
453 453
 
454
-		if ( empty( $args['form_id'] ) ) {
455
-			return;
456
-		}
457
-
458
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
454
+        if ( empty( $args['form_id'] ) ) {
455
+            return;
456
+        }
459 457
 
460
-		if ( ! $form->exists() ) {
461
-			return;
462
-		}
458
+        $form = new GetPaid_Payment_Form( (int) $args['form_id'] );
463 459
 
464
-		$new_form = new GetPaid_Payment_Form();
465
-		$new_form->set_author( $form->get_author( 'edit' ) );
466
-		$new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
467
-		$new_form->set_elements( $form->get_elements( 'edit' ) );
468
-		$new_form->set_items( $form->get_items( 'edit' ) );
469
-		$new_form->save();
460
+        if ( ! $form->exists() ) {
461
+            return;
462
+        }
470 463
 
471
-		if ( $new_form->exists() ) {
472
-			$this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
473
-			$url = get_edit_post_link( $new_form->get_id(), 'edit' );
474
-		} else {
475
-			$this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
476
-			$url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
477
-		}
464
+        $new_form = new GetPaid_Payment_Form();
465
+        $new_form->set_author( $form->get_author( 'edit' ) );
466
+        $new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
467
+        $new_form->set_elements( $form->get_elements( 'edit' ) );
468
+        $new_form->set_items( $form->get_items( 'edit' ) );
469
+        $new_form->save();
470
+
471
+        if ( $new_form->exists() ) {
472
+            $this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
473
+            $url = get_edit_post_link( $new_form->get_id(), 'edit' );
474
+        } else {
475
+            $this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
476
+            $url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
477
+        }
478 478
 
479
-		wp_redirect( $url );
480
-		exit;
481
-	}
479
+        wp_redirect( $url );
480
+        exit;
481
+    }
482 482
 
483
-	/**
483
+    /**
484 484
      * Sends a payment reminder to a customer.
485
-	 *
486
-	 * @param array $args
485
+     *
486
+     * @param array $args
487 487
      */
488 488
     public function send_customer_invoice( $args ) {
489
-		getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
490
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
491
-		exit;
492
-	}
489
+        getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
490
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
491
+        exit;
492
+    }
493 493
 
494
-	/**
494
+    /**
495 495
      * Sends a payment reminder to a customer.
496
-	 *
497
-	 * @param array $args
496
+     *
497
+     * @param array $args
498 498
      */
499 499
     public function send_customer_payment_reminder( $args ) {
500
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
500
+        $sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
501 501
 
502
-		if ( $sent ) {
503
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
504
-		} else {
505
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
506
-		}
502
+        if ( $sent ) {
503
+            $this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
504
+        } else {
505
+            $this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
506
+        }
507 507
 
508
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
509
-		exit;
510
-	}
508
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
509
+        exit;
510
+    }
511 511
 
512
-	/**
512
+    /**
513 513
      * Resets tax rates.
514
-	 *
514
+     *
515 515
      */
516 516
     public function admin_reset_tax_rates() {
517 517
 
518
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
519
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
520
-		exit;
518
+        update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
519
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
520
+        exit;
521 521
 
522
-	}
522
+    }
523 523
 
524
-	/**
524
+    /**
525 525
      * Resets admin pages.
526
-	 *
526
+     *
527 527
      */
528 528
     public function admin_create_missing_pages() {
529
-		$installer = new GetPaid_Installer();
530
-		$installer->create_pages();
531
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
532
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
533
-		exit;
534
-	}
535
-
536
-	/**
529
+        $installer = new GetPaid_Installer();
530
+        $installer->create_pages();
531
+        $this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
532
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
533
+        exit;
534
+    }
535
+
536
+    /**
537 537
      * Creates an missing admin tables.
538
-	 *
538
+     *
539 539
      */
540 540
     public function admin_create_missing_tables() {
541
-		global $wpdb;
542
-		$installer = new GetPaid_Installer();
541
+        global $wpdb;
542
+        $installer = new GetPaid_Installer();
543 543
 
544
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
545
-			$installer->create_subscriptions_table();
544
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
545
+            $installer->create_subscriptions_table();
546 546
 
547
-			if ( $wpdb->last_error !== '' ) {
548
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
549
-			}
550
-		}
547
+            if ( $wpdb->last_error !== '' ) {
548
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
549
+            }
550
+        }
551 551
 
552
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
553
-			$installer->create_invoices_table();
552
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
553
+            $installer->create_invoices_table();
554 554
 
555
-			if ( $wpdb->last_error !== '' ) {
556
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
557
-			}
558
-		}
555
+            if ( $wpdb->last_error !== '' ) {
556
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
557
+            }
558
+        }
559 559
 
560
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
561
-			$installer->create_invoice_items_table();
560
+        if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
561
+            $installer->create_invoice_items_table();
562 562
 
563
-			if ( $wpdb->last_error !== '' ) {
564
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
565
-			}
566
-		}
563
+            if ( $wpdb->last_error !== '' ) {
564
+                $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
565
+            }
566
+        }
567 567
 
568
-		if ( ! $this->has_notices() ) {
569
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
570
-		}
568
+        if ( ! $this->has_notices() ) {
569
+            $this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
570
+        }
571 571
 
572
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
573
-		exit;
574
-	}
572
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
573
+        exit;
574
+    }
575 575
 
576
-	/**
576
+    /**
577 577
      * Migrates old invoices to the new database tables.
578
-	 *
578
+     *
579 579
      */
580 580
     public function admin_migrate_old_invoices() {
581 581
 
582
-		// Migrate the invoices.
583
-		$installer = new GetPaid_Installer();
584
-		$installer->migrate_old_invoices();
582
+        // Migrate the invoices.
583
+        $installer = new GetPaid_Installer();
584
+        $installer->migrate_old_invoices();
585 585
 
586
-		// Show an admin message.
587
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
586
+        // Show an admin message.
587
+        $this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
588 588
 
589
-		// Redirect the admin.
590
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
591
-		exit;
589
+        // Redirect the admin.
590
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
591
+        exit;
592 592
 
593
-	}
593
+    }
594 594
 
595
-	/**
595
+    /**
596 596
      * Download customers.
597
-	 *
597
+     *
598 598
      */
599 599
     public function admin_download_customers() {
600
-		global $wpdb;
600
+        global $wpdb;
601 601
 
602
-		$output = fopen( 'php://output', 'w' ) or die( __( 'Unsupported server', 'invoicing' ) );
602
+        $output = fopen( 'php://output', 'w' ) or die( __( 'Unsupported server', 'invoicing' ) );
603 603
 
604
-		header( 'Content-Type:text/csv' );
605
-		header( 'Content-Disposition:attachment;filename=customers.csv' );
604
+        header( 'Content-Type:text/csv' );
605
+        header( 'Content-Disposition:attachment;filename=customers.csv' );
606 606
 
607
-		$post_types = '';
607
+        $post_types = '';
608 608
 
609
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
610
-			$post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
611
-		}
609
+        foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
610
+            $post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
611
+        }
612 612
 
613
-		$post_types = rtrim( $post_types, ' OR' );
613
+        $post_types = rtrim( $post_types, ' OR' );
614 614
 
615
-		$customers = $wpdb->get_col(
616
-			$wpdb->prepare(
617
-				"SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types"
618
-			)
619
-		);
615
+        $customers = $wpdb->get_col(
616
+            $wpdb->prepare(
617
+                "SELECT DISTINCT( post_author ) FROM $wpdb->posts WHERE $post_types"
618
+            )
619
+        );
620 620
 
621
-		$columns = array(
622
-			'name'       => __( 'Name', 'invoicing' ),
623
-			'email'      => __( 'Email', 'invoicing' ),
624
-			'country'    => __( 'Country', 'invoicing' ),
625
-			'state'      => __( 'State', 'invoicing' ),
626
-			'city'       => __( 'City', 'invoicing' ),
627
-			'zip'        => __( 'ZIP', 'invoicing' ),
628
-			'address'    => __( 'Address', 'invoicing' ),
629
-			'phone'      => __( 'Phone', 'invoicing' ),
630
-			'company'    => __( 'Company', 'invoicing' ),
631
-			'company_id' => __( 'Company ID', 'invoicing' ),
632
-			'invoices'   => __( 'Invoices', 'invoicing' ),
633
-			'total_raw'  => __( 'Total Spend', 'invoicing' ),
634
-			'signup'     => __( 'Date created', 'invoicing' ),
635
-		);
621
+        $columns = array(
622
+            'name'       => __( 'Name', 'invoicing' ),
623
+            'email'      => __( 'Email', 'invoicing' ),
624
+            'country'    => __( 'Country', 'invoicing' ),
625
+            'state'      => __( 'State', 'invoicing' ),
626
+            'city'       => __( 'City', 'invoicing' ),
627
+            'zip'        => __( 'ZIP', 'invoicing' ),
628
+            'address'    => __( 'Address', 'invoicing' ),
629
+            'phone'      => __( 'Phone', 'invoicing' ),
630
+            'company'    => __( 'Company', 'invoicing' ),
631
+            'company_id' => __( 'Company ID', 'invoicing' ),
632
+            'invoices'   => __( 'Invoices', 'invoicing' ),
633
+            'total_raw'  => __( 'Total Spend', 'invoicing' ),
634
+            'signup'     => __( 'Date created', 'invoicing' ),
635
+        );
636 636
 
637
-		// Output the csv column headers.
638
-		fputcsv( $output, array_values( $columns ) );
637
+        // Output the csv column headers.
638
+        fputcsv( $output, array_values( $columns ) );
639 639
 
640
-		// Loop through
641
-		$table = new WPInv_Customers_Table();
642
-		foreach ( $customers as $customer_id ) {
640
+        // Loop through
641
+        $table = new WPInv_Customers_Table();
642
+        foreach ( $customers as $customer_id ) {
643 643
 
644
-			$user = get_user_by( 'id', $customer_id );
645
-			$row  = array();
646
-			if ( empty( $user ) ) {
647
-				continue;
648
-			}
644
+            $user = get_user_by( 'id', $customer_id );
645
+            $row  = array();
646
+            if ( empty( $user ) ) {
647
+                continue;
648
+            }
649 649
 
650
-			foreach ( array_keys( $columns ) as $column ) {
650
+            foreach ( array_keys( $columns ) as $column ) {
651 651
 
652
-				$method = 'column_' . $column;
652
+                $method = 'column_' . $column;
653 653
 
654
-				if ( 'name' == $column ) {
655
-					$value = esc_html( $user->display_name );
656
-				} elseif ( 'email' == $column ) {
657
-					$value = sanitize_email( $user->user_email );
658
-				} elseif ( is_callable( array( $table, $method ) ) ) {
659
-					$value = strip_tags( $table->$method( $user ) );
660
-				}
654
+                if ( 'name' == $column ) {
655
+                    $value = esc_html( $user->display_name );
656
+                } elseif ( 'email' == $column ) {
657
+                    $value = sanitize_email( $user->user_email );
658
+                } elseif ( is_callable( array( $table, $method ) ) ) {
659
+                    $value = strip_tags( $table->$method( $user ) );
660
+                }
661 661
 
662
-				if ( empty( $value ) ) {
663
-					$value = esc_html( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
664
-				}
662
+                if ( empty( $value ) ) {
663
+                    $value = esc_html( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
664
+                }
665 665
 
666
-				$row[] = $value;
666
+                $row[] = $value;
667 667
 
668
-			}
668
+            }
669 669
 
670
-			fputcsv( $output, $row );
671
-		}
670
+            fputcsv( $output, $row );
671
+        }
672 672
 
673
-		fclose( $output );
674
-		exit;
673
+        fclose( $output );
674
+        exit;
675 675
 
676
-	}
676
+    }
677 677
 
678
-	/**
678
+    /**
679 679
      * Installs a plugin.
680
-	 *
681
-	 * @param array $data
680
+     *
681
+     * @param array $data
682 682
      */
683 683
     public function admin_install_plugin( $data ) {
684 684
 
685
-		if ( ! empty( $data['plugins'] ) ) {
686
-			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
687
-			wp_cache_flush();
685
+        if ( ! empty( $data['plugins'] ) ) {
686
+            include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
687
+            wp_cache_flush();
688 688
 
689
-			foreach ( $data['plugins'] as $slug => $file ) {
690
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
691
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
692
-				$installed  = $upgrader->install( $plugin_zip );
689
+            foreach ( $data['plugins'] as $slug => $file ) {
690
+                $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
691
+                $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
692
+                $installed  = $upgrader->install( $plugin_zip );
693 693
 
694
-				if ( ! is_wp_error( $installed ) && $installed ) {
695
-					activate_plugin( $file, '', false, true );
696
-				} else {
697
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
698
-				}
694
+                if ( ! is_wp_error( $installed ) && $installed ) {
695
+                    activate_plugin( $file, '', false, true );
696
+                } else {
697
+                    wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
698
+                }
699 699
 }
700 700
 }
701 701
 
702
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
703
-		wp_safe_redirect( $redirect );
704
-		exit;
702
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
703
+        wp_safe_redirect( $redirect );
704
+        exit;
705 705
 
706
-	}
706
+    }
707 707
 
708
-	/**
708
+    /**
709 709
      * Connects a gateway.
710
-	 *
711
-	 * @param array $data
710
+     *
711
+     * @param array $data
712 712
      */
713 713
     public function admin_connect_gateway( $data ) {
714 714
 
715
-		if ( ! empty( $data['plugin'] ) ) {
715
+        if ( ! empty( $data['plugin'] ) ) {
716 716
 
717
-			$gateway     = sanitize_key( $data['plugin'] );
718
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
717
+            $gateway     = sanitize_key( $data['plugin'] );
718
+            $connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
719 719
 
720
-			if ( ! empty( $connect_url ) ) {
721
-				wp_redirect( $connect_url );
722
-				exit;
723
-			}
720
+            if ( ! empty( $connect_url ) ) {
721
+                wp_redirect( $connect_url );
722
+                exit;
723
+            }
724 724
 
725
-			if ( 'stripe' == $data['plugin'] ) {
726
-				require_once ABSPATH . 'wp-admin/includes/plugin.php';
727
-				include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
728
-				wp_cache_flush();
725
+            if ( 'stripe' == $data['plugin'] ) {
726
+                require_once ABSPATH . 'wp-admin/includes/plugin.php';
727
+                include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
728
+                wp_cache_flush();
729 729
 
730
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
731
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
732
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
733
-					$upgrader->install( $plugin_zip );
734
-				}
730
+                if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
731
+                    $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
732
+                    $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
733
+                    $upgrader->install( $plugin_zip );
734
+                }
735 735
 
736
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
737
-			}
736
+                activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
737
+            }
738 738
 
739
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
740
-			if ( ! empty( $connect_url ) ) {
741
-				wp_redirect( $connect_url );
742
-				exit;
743
-			}
739
+            $connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
740
+            if ( ! empty( $connect_url ) ) {
741
+                wp_redirect( $connect_url );
742
+                exit;
743
+            }
744 744
 }
745 745
 
746
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
747
-		wp_safe_redirect( $redirect );
748
-		exit;
746
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
747
+        wp_safe_redirect( $redirect );
748
+        exit;
749 749
 
750
-	}
750
+    }
751 751
 
752
-	/**
752
+    /**
753 753
      * Recalculates discounts.
754
-	 *
754
+     *
755 755
      */
756 756
     public function admin_recalculate_discounts() {
757
-		global $wpdb;
757
+        global $wpdb;
758 758
 
759
-		// Fetch all invoices that have discount codes.
760
-		$table    = $wpdb->prefix . 'getpaid_invoices';
761
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
759
+        // Fetch all invoices that have discount codes.
760
+        $table    = $wpdb->prefix . 'getpaid_invoices';
761
+        $invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
762 762
 
763
-		foreach ( $invoices as $invoice ) {
763
+        foreach ( $invoices as $invoice ) {
764 764
 
765
-			$invoice = new WPInv_Invoice( $invoice );
765
+            $invoice = new WPInv_Invoice( $invoice );
766 766
 
767
-			if ( ! $invoice->exists() ) {
768
-				continue;
769
-			}
767
+            if ( ! $invoice->exists() ) {
768
+                continue;
769
+            }
770 770
 
771
-			// Abort if the discount does not exist or does not apply here.
772
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
773
-			if ( ! $discount->exists() ) {
774
-				continue;
775
-			}
771
+            // Abort if the discount does not exist or does not apply here.
772
+            $discount = new WPInv_Discount( $invoice->get_discount_code() );
773
+            if ( ! $discount->exists() ) {
774
+                continue;
775
+            }
776 776
 
777
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
778
-			$invoice->recalculate_total();
777
+            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
778
+            $invoice->recalculate_total();
779 779
 
780
-			if ( $invoice->get_total_discount() > 0 ) {
781
-				$invoice->save();
782
-			}
780
+            if ( $invoice->get_total_discount() > 0 ) {
781
+                $invoice->save();
782
+            }
783 783
 }
784 784
 
785
-		// Show an admin message.
786
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
785
+        // Show an admin message.
786
+        $this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
787 787
 
788
-		// Redirect the admin.
789
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
790
-		exit;
788
+        // Redirect the admin.
789
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
790
+        exit;
791 791
 
792
-	}
792
+    }
793 793
 
794 794
     /**
795
-	 * Returns an array of admin notices.
796
-	 *
797
-	 * @since       1.0.19
795
+     * Returns an array of admin notices.
796
+     *
797
+     * @since       1.0.19
798 798
      * @return array
799
-	 */
800
-	public function get_notices() {
801
-		$notices = get_option( 'wpinv_admin_notices' );
799
+     */
800
+    public function get_notices() {
801
+        $notices = get_option( 'wpinv_admin_notices' );
802 802
         return is_array( $notices ) ? $notices : array();
803
-	}
803
+    }
804 804
 
805
-	/**
806
-	 * Checks if we have any admin notices.
807
-	 *
808
-	 * @since       2.0.4
805
+    /**
806
+     * Checks if we have any admin notices.
807
+     *
808
+     * @since       2.0.4
809 809
      * @return array
810
-	 */
811
-	public function has_notices() {
812
-		return count( $this->get_notices() ) > 0;
813
-	}
814
-
815
-	/**
816
-	 * Clears all admin notices
817
-	 *
818
-	 * @access      public
819
-	 * @since       1.0.19
820
-	 */
821
-	public function clear_notices() {
822
-		delete_option( 'wpinv_admin_notices' );
823
-	}
824
-
825
-	/**
826
-	 * Saves a new admin notice
827
-	 *
828
-	 * @access      public
829
-	 * @since       1.0.19
830
-	 */
831
-	public function save_notice( $type, $message ) {
832
-		$notices = $this->get_notices();
833
-
834
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
835
-			$notices[ $type ] = array();
836
-		}
837
-
838
-		$notices[ $type ][] = $message;
839
-
840
-		update_option( 'wpinv_admin_notices', $notices );
841
-	}
842
-
843
-	/**
844
-	 * Displays a success notice
845
-	 *
846
-	 * @param       string $msg The message to qeue.
847
-	 * @access      public
848
-	 * @since       1.0.19
849
-	 */
850
-	public function show_success( $msg ) {
851
-		$this->save_notice( 'success', $msg );
852
-	}
853
-
854
-	/**
855
-	 * Displays a error notice
856
-	 *
857
-	 * @access      public
858
-	 * @param       string $msg The message to qeue.
859
-	 * @since       1.0.19
860
-	 */
861
-	public function show_error( $msg ) {
862
-		$this->save_notice( 'error', $msg );
863
-	}
864
-
865
-	/**
866
-	 * Displays a warning notice
867
-	 *
868
-	 * @access      public
869
-	 * @param       string $msg The message to qeue.
870
-	 * @since       1.0.19
871
-	 */
872
-	public function show_warning( $msg ) {
873
-		$this->save_notice( 'warning', $msg );
874
-	}
875
-
876
-	/**
877
-	 * Displays a info notice
878
-	 *
879
-	 * @access      public
880
-	 * @param       string $msg The message to qeue.
881
-	 * @since       1.0.19
882
-	 */
883
-	public function show_info( $msg ) {
884
-		$this->save_notice( 'info', $msg );
885
-	}
886
-
887
-	/**
888
-	 * Show notices
889
-	 *
890
-	 * @access      public
891
-	 * @since       1.0.19
892
-	 */
893
-	public function show_notices() {
810
+     */
811
+    public function has_notices() {
812
+        return count( $this->get_notices() ) > 0;
813
+    }
814
+
815
+    /**
816
+     * Clears all admin notices
817
+     *
818
+     * @access      public
819
+     * @since       1.0.19
820
+     */
821
+    public function clear_notices() {
822
+        delete_option( 'wpinv_admin_notices' );
823
+    }
824
+
825
+    /**
826
+     * Saves a new admin notice
827
+     *
828
+     * @access      public
829
+     * @since       1.0.19
830
+     */
831
+    public function save_notice( $type, $message ) {
832
+        $notices = $this->get_notices();
833
+
834
+        if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
835
+            $notices[ $type ] = array();
836
+        }
837
+
838
+        $notices[ $type ][] = $message;
839
+
840
+        update_option( 'wpinv_admin_notices', $notices );
841
+    }
842
+
843
+    /**
844
+     * Displays a success notice
845
+     *
846
+     * @param       string $msg The message to qeue.
847
+     * @access      public
848
+     * @since       1.0.19
849
+     */
850
+    public function show_success( $msg ) {
851
+        $this->save_notice( 'success', $msg );
852
+    }
853
+
854
+    /**
855
+     * Displays a error notice
856
+     *
857
+     * @access      public
858
+     * @param       string $msg The message to qeue.
859
+     * @since       1.0.19
860
+     */
861
+    public function show_error( $msg ) {
862
+        $this->save_notice( 'error', $msg );
863
+    }
864
+
865
+    /**
866
+     * Displays a warning notice
867
+     *
868
+     * @access      public
869
+     * @param       string $msg The message to qeue.
870
+     * @since       1.0.19
871
+     */
872
+    public function show_warning( $msg ) {
873
+        $this->save_notice( 'warning', $msg );
874
+    }
875
+
876
+    /**
877
+     * Displays a info notice
878
+     *
879
+     * @access      public
880
+     * @param       string $msg The message to qeue.
881
+     * @since       1.0.19
882
+     */
883
+    public function show_info( $msg ) {
884
+        $this->save_notice( 'info', $msg );
885
+    }
886
+
887
+    /**
888
+     * Show notices
889
+     *
890
+     * @access      public
891
+     * @since       1.0.19
892
+     */
893
+    public function show_notices() {
894 894
 
895 895
         $notices = $this->get_notices();
896 896
         $this->clear_notices();
897 897
 
898
-		foreach ( $notices as $type => $messages ) {
898
+        foreach ( $notices as $type => $messages ) {
899 899
 
900
-			if ( ! is_array( $messages ) ) {
901
-				continue;
902
-			}
900
+            if ( ! is_array( $messages ) ) {
901
+                continue;
902
+            }
903 903
 
904 904
             $type  = esc_attr( $type );
905
-			foreach ( $messages as $message ) {
905
+            foreach ( $messages as $message ) {
906 906
                 $message = wp_kses_post( $message );
907
-				echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
907
+                echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
908 908
             }
909 909
 }
910 910
 
911
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
912
-
913
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
914
-				$url     = wp_nonce_url(
915
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
916
-					'getpaid-nonce',
917
-					'getpaid-nonce'
918
-				);
919
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
920
-				$message2 = __( 'Generate Pages', 'invoicing' );
921
-				echo "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>";
922
-				break;
923
-			}
911
+        foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
912
+
913
+            if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
914
+                $url     = wp_nonce_url(
915
+                    add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
916
+                    'getpaid-nonce',
917
+                    'getpaid-nonce'
918
+                );
919
+                $message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
920
+                $message2 = __( 'Generate Pages', 'invoicing' );
921
+                echo "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>";
922
+                break;
923
+            }
924 924
 }
925 925
 
926
-	}
926
+    }
927 927
 
928 928
 }
Please login to merge, or discard this patch.
Spacing   +276 added lines, -276 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,33 +54,33 @@  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_duplicate_invoice', array( $this, 'duplicate_invoice' ) );
66
-		add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
67
-		add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
68
-        add_action( 'getpaid_authenticated_admin_action_reset_tax_rates', array( $this, 'admin_reset_tax_rates' ) );
69
-		add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
70
-		add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
71
-		add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
72
-		add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
73
-		add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
74
-		add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
75
-		add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
76
-		add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
77
-		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_duplicate_invoice', array($this, 'duplicate_invoice'));
66
+		add_action('getpaid_authenticated_admin_action_send_invoice', array($this, 'send_customer_invoice'));
67
+		add_action('getpaid_authenticated_admin_action_send_invoice_reminder', array($this, 'send_customer_payment_reminder'));
68
+        add_action('getpaid_authenticated_admin_action_reset_tax_rates', array($this, 'admin_reset_tax_rates'));
69
+		add_action('getpaid_authenticated_admin_action_create_missing_pages', array($this, 'admin_create_missing_pages'));
70
+		add_action('getpaid_authenticated_admin_action_create_missing_tables', array($this, 'admin_create_missing_tables'));
71
+		add_action('getpaid_authenticated_admin_action_migrate_old_invoices', array($this, 'admin_migrate_old_invoices'));
72
+		add_action('getpaid_authenticated_admin_action_download_customers', array($this, 'admin_download_customers'));
73
+		add_action('getpaid_authenticated_admin_action_recalculate_discounts', array($this, 'admin_recalculate_discounts'));
74
+		add_action('getpaid_authenticated_admin_action_install_plugin', array($this, 'admin_install_plugin'));
75
+		add_action('getpaid_authenticated_admin_action_connect_gateway', array($this, 'admin_connect_gateway'));
76
+		add_filter('admin_footer_text', array($this, 'admin_footer_text'));
77
+		do_action('getpaid_init_admin_hooks', $this);
78 78
 
79 79
 		// Setup/welcome
80
-		if ( ! empty( $_GET['page'] ) ) {
81
-			switch ( sanitize_text_field( $_GET['page'] ) ) {
80
+		if (!empty($_GET['page'])) {
81
+			switch (sanitize_text_field($_GET['page'])) {
82 82
 				case 'gp-setup':
83
-					include_once dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php';
83
+					include_once dirname(__FILE__) . '/class-getpaid-admin-setup-wizard.php';
84 84
 					break;
85 85
 			}
86 86
 		}
@@ -94,37 +94,37 @@  discard block
 block discarded – undo
94 94
 	public function enqeue_scripts() {
95 95
         global $current_screen, $pagenow;
96 96
 
97
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
97
+		$page    = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
98 98
 		$editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
99 99
 
100
-        if ( ! empty( $current_screen->post_type ) ) {
100
+        if (!empty($current_screen->post_type)) {
101 101
 			$page = $current_screen->post_type;
102 102
         }
103 103
 
104 104
         // General styles.
105
-        if ( false !== stripos( $page, 'wpi' ) || false !== stripos( $page, 'getpaid' ) || 'gp-setup' == $page || false !== stripos( $page, 'geodir-tickets' ) ) {
105
+        if (false !== stripos($page, 'wpi') || false !== stripos($page, 'getpaid') || 'gp-setup' == $page || false !== stripos($page, 'geodir-tickets')) {
106 106
 
107 107
             // Styles.
108
-            $version = filemtime( WPINV_PLUGIN_DIR . 'assets/css/admin.css' );
109
-            wp_enqueue_style( 'wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array( 'wp-color-picker' ), $version );
110
-            wp_enqueue_style( 'select2', WPINV_PLUGIN_URL . 'assets/css/select2/select2.min.css', array(), '4.0.13', 'all' );
108
+            $version = filemtime(WPINV_PLUGIN_DIR . 'assets/css/admin.css');
109
+            wp_enqueue_style('wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array('wp-color-picker'), $version);
110
+            wp_enqueue_style('select2', WPINV_PLUGIN_URL . 'assets/css/select2/select2.min.css', array(), '4.0.13', 'all');
111 111
 
112 112
             // Scripts.
113
-            wp_enqueue_script( 'select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full.min.js', array( 'jquery' ), WPINV_VERSION );
113
+            wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full.min.js', array('jquery'), WPINV_VERSION);
114 114
 
115
-            $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin.js' );
116
-            wp_enqueue_script( 'wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array( 'jquery', 'wp-color-picker', 'jquery-ui-tooltip' ), $version );
117
-            wp_localize_script( 'wpinv-admin-script', 'WPInv_Admin', apply_filters( 'wpinv_admin_js_localize', $this->get_admin_i18() ) );
115
+            $version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/admin.js');
116
+            wp_enqueue_script('wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array('jquery', 'wp-color-picker', 'jquery-ui-tooltip'), $version);
117
+            wp_localize_script('wpinv-admin-script', 'WPInv_Admin', apply_filters('wpinv_admin_js_localize', $this->get_admin_i18()));
118 118
 
119 119
         }
120 120
 
121 121
         // Payment form scripts.
122
-		if ( 'wpi_payment_form' == $page && $editing ) {
122
+		if ('wpi_payment_form' == $page && $editing) {
123 123
             $this->load_payment_form_scripts();
124 124
         }
125 125
 
126
-		if ( $page == 'wpinv-subscriptions' ) {
127
-			wp_enqueue_script( 'postbox' );
126
+		if ($page == 'wpinv-subscriptions') {
127
+			wp_enqueue_script('postbox');
128 128
 		}
129 129
 
130 130
     }
@@ -137,31 +137,31 @@  discard block
 block discarded – undo
137 137
         global $post;
138 138
 
139 139
 		$date_range = array(
140
-			'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days',
140
+			'period' => isset($_GET['date_range']) ? sanitize_text_field($_GET['date_range']) : '7_days',
141 141
 		);
142 142
 
143
-		if ( $date_range['period'] == 'custom' ) {
143
+		if ($date_range['period'] == 'custom') {
144 144
 
145
-			if ( isset( $_GET['from'] ) ) {
146
-				$date_range['after'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
145
+			if (isset($_GET['from'])) {
146
+				$date_range['after'] = date('Y-m-d', strtotime(sanitize_text_field($_GET['from']), current_time('timestamp')) - DAY_IN_SECONDS);
147 147
 			}
148 148
 
149
-			if ( isset( $_GET['to'] ) ) {
150
-				$date_range['before'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
149
+			if (isset($_GET['to'])) {
150
+				$date_range['before'] = date('Y-m-d', strtotime(sanitize_text_field($_GET['to']), current_time('timestamp')) + DAY_IN_SECONDS);
151 151
 			}
152 152
 }
153 153
 
154 154
         $i18n = array(
155
-            'ajax_url'                  => admin_url( 'admin-ajax.php' ),
156
-            'post_ID'                   => isset( $post->ID ) ? $post->ID : '',
157
-			'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
158
-			'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
159
-			'rest_root'                 => esc_url_raw( rest_url() ),
155
+            'ajax_url'                  => admin_url('admin-ajax.php'),
156
+            'post_ID'                   => isset($post->ID) ? $post->ID : '',
157
+			'wpinv_nonce'               => wp_create_nonce('wpinv-nonce'),
158
+			'rest_nonce'                => wp_create_nonce('wp_rest'),
159
+			'rest_root'                 => esc_url_raw(rest_url()),
160 160
 			'date_range'                => $date_range,
161
-            'add_invoice_note_nonce'    => wp_create_nonce( 'add-invoice-note' ),
162
-            'delete_invoice_note_nonce' => wp_create_nonce( 'delete-invoice-note' ),
163
-            'invoice_item_nonce'        => wp_create_nonce( 'invoice-item' ),
164
-            'billing_details_nonce'     => wp_create_nonce( 'get-billing-details' ),
161
+            'add_invoice_note_nonce'    => wp_create_nonce('add-invoice-note'),
162
+            'delete_invoice_note_nonce' => wp_create_nonce('delete-invoice-note'),
163
+            'invoice_item_nonce'        => wp_create_nonce('invoice-item'),
164
+            'billing_details_nonce'     => wp_create_nonce('get-billing-details'),
165 165
             'tax'                       => wpinv_tax_amount(),
166 166
             'discount'                  => 0,
167 167
 			'currency_symbol'           => wpinv_currency_symbol(),
@@ -170,39 +170,39 @@  discard block
 block discarded – undo
170 170
             'thousand_sep'              => wpinv_thousands_separator(),
171 171
             'decimal_sep'               => wpinv_decimal_separator(),
172 172
             'decimals'                  => wpinv_decimals(),
173
-            'save_invoice'              => __( 'Save Invoice', 'invoicing' ),
174
-            'status_publish'            => wpinv_status_nicename( 'publish' ),
175
-            'status_pending'            => wpinv_status_nicename( 'wpi-pending' ),
176
-            'delete_tax_rate'           => __( 'Are you sure you wish to delete this tax rate?', 'invoicing' ),
177
-            'status_pending'            => wpinv_status_nicename( 'wpi-pending' ),
178
-            'FillBillingDetails'        => __( 'Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing' ),
179
-            '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' ),
180
-            'AreYouSure'                => __( 'Are you sure?', 'invoicing' ),
181
-            'errDeleteItem'             => __( 'This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing' ),
182
-            'delete_subscription'       => __( 'Are you sure you want to delete this subscription?', 'invoicing' ),
183
-            'action_edit'               => __( 'Edit', 'invoicing' ),
184
-            'action_cancel'             => __( 'Cancel', 'invoicing' ),
185
-            'item_description'          => __( 'Item Description', 'invoicing' ),
186
-            'invoice_description'       => __( 'Invoice Description', 'invoicing' ),
187
-            'discount_description'      => __( 'Discount Description', 'invoicing' ),
188
-			'searching'                 => __( 'Searching', 'invoicing' ),
189
-			'loading'                   => __( 'Loading...', 'invoicing' ),
190
-			'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
191
-			'search_items'              => __( 'Enter item name', 'invoicing' ),
192
-			'graphs'                    => array_merge( array( 'refunded_fees', 'refunded_items', 'refunded_subtotal', 'refunded_tax' ), array_keys( wpinv_get_report_graphs() ) ),
173
+            'save_invoice'              => __('Save Invoice', 'invoicing'),
174
+            'status_publish'            => wpinv_status_nicename('publish'),
175
+            'status_pending'            => wpinv_status_nicename('wpi-pending'),
176
+            'delete_tax_rate'           => __('Are you sure you wish to delete this tax rate?', 'invoicing'),
177
+            'status_pending'            => wpinv_status_nicename('wpi-pending'),
178
+            'FillBillingDetails'        => __('Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing'),
179
+            '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'),
180
+            'AreYouSure'                => __('Are you sure?', 'invoicing'),
181
+            'errDeleteItem'             => __('This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing'),
182
+            'delete_subscription'       => __('Are you sure you want to delete this subscription?', 'invoicing'),
183
+            'action_edit'               => __('Edit', 'invoicing'),
184
+            'action_cancel'             => __('Cancel', 'invoicing'),
185
+            'item_description'          => __('Item Description', 'invoicing'),
186
+            'invoice_description'       => __('Invoice Description', 'invoicing'),
187
+            'discount_description'      => __('Discount Description', 'invoicing'),
188
+			'searching'                 => __('Searching', 'invoicing'),
189
+			'loading'                   => __('Loading...', 'invoicing'),
190
+			'search_customers'          => __('Enter customer name or email', 'invoicing'),
191
+			'search_items'              => __('Enter item name', 'invoicing'),
192
+			'graphs'                    => array_merge(array('refunded_fees', 'refunded_items', 'refunded_subtotal', 'refunded_tax'), array_keys(wpinv_get_report_graphs())),
193 193
         );
194 194
 
195
-		if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
195
+		if (!empty($post) && getpaid_is_invoice_post_type($post->post_type)) {
196 196
 
197
-			$invoice              = new WPInv_Invoice( $post );
197
+			$invoice              = new WPInv_Invoice($post);
198 198
 			$i18n['save_invoice'] = sprintf(
199
-				__( 'Save %s', 'invoicing' ),
200
-				ucfirst( $invoice->get_invoice_quote_type() )
199
+				__('Save %s', 'invoicing'),
200
+				ucfirst($invoice->get_invoice_quote_type())
201 201
 			);
202 202
 
203 203
 			$i18n['invoice_description'] = sprintf(
204
-				__( '%s Description', 'invoicing' ),
205
-				ucfirst( $invoice->get_invoice_quote_type() )
204
+				__('%s Description', 'invoicing'),
205
+				ucfirst($invoice->get_invoice_quote_type())
206 206
 			);
207 207
 
208 208
 		}
@@ -216,24 +216,24 @@  discard block
 block discarded – undo
216 216
 	 * @param  string $footer_text
217 217
 	 * @return string
218 218
 	 */
219
-	public function admin_footer_text( $footer_text ) {
219
+	public function admin_footer_text($footer_text) {
220 220
 		global $current_screen;
221 221
 
222
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
222
+		$page = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
223 223
 
224
-        if ( ! empty( $current_screen->post_type ) ) {
224
+        if (!empty($current_screen->post_type)) {
225 225
 			$page = $current_screen->post_type;
226 226
         }
227 227
 
228 228
         // General styles.
229
-        if ( apply_filters( 'getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing() ) && false !== stripos( $page, 'wpi' ) ) {
229
+        if (apply_filters('getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing()) && false !== stripos($page, 'wpi')) {
230 230
 
231 231
 			// Change the footer text
232
-			if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
232
+			if (!get_user_meta(get_current_user_id(), 'getpaid_admin_footer_text_rated', true)) {
233 233
 
234
-				$rating_url  = esc_url(
234
+				$rating_url = esc_url(
235 235
 					wp_nonce_url(
236
-						admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
236
+						admin_url('admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin'),
237 237
 						'getpaid-nonce',
238 238
 						'getpaid-nonce'
239 239
                     )
@@ -241,7 +241,7 @@  discard block
 block discarded – undo
241 241
 
242 242
 				$footer_text = sprintf(
243 243
 					/* translators: %s: five stars */
244
-					__( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
244
+					__('If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing'),
245 245
 					"<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
246 246
 				);
247 247
 
@@ -249,7 +249,7 @@  discard block
 block discarded – undo
249 249
 
250 250
 				$footer_text = sprintf(
251 251
 					/* translators: %s: GetPaid */
252
-					__( 'Thank you for using %s!', 'invoicing' ),
252
+					__('Thank you for using %s!', 'invoicing'),
253 253
 					"<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
254 254
 				);
255 255
 
@@ -265,8 +265,8 @@  discard block
 block discarded – undo
265 265
 	 * @since  2.0.0
266 266
 	 */
267 267
 	public function redirect_to_wordpress_rating_page() {
268
-		update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
269
-		wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
268
+		update_user_meta(get_current_user_id(), 'getpaid_admin_footer_text_rated', 1);
269
+		wp_redirect('https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post');
270 270
 		exit;
271 271
 	}
272 272
 
@@ -277,30 +277,30 @@  discard block
 block discarded – undo
277 277
 	protected function load_payment_form_scripts() {
278 278
         global $post;
279 279
 
280
-        wp_enqueue_script( 'vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.min.js', array(), WPINV_VERSION );
281
-		wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
282
-		wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
280
+        wp_enqueue_script('vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.min.js', array(), WPINV_VERSION);
281
+		wp_enqueue_script('sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION);
282
+		wp_enqueue_script('vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array('sortable', 'vue'), WPINV_VERSION);
283 283
 
284
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
285
-		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 );
284
+		$version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js');
285
+		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 286
 
287 287
 		wp_localize_script(
288 288
             'wpinv-admin-payment-form-script',
289 289
             'wpinvPaymentFormAdmin',
290 290
             array(
291
-				'elements'      => wpinv_get_data( 'payment-form-elements' ),
292
-				'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
291
+				'elements'      => wpinv_get_data('payment-form-elements'),
292
+				'form_elements' => getpaid_get_payment_form_elements($post->ID),
293 293
 				'currency'      => wpinv_currency_symbol(),
294 294
 				'position'      => wpinv_currency_position(),
295 295
 				'decimals'      => (int) wpinv_decimals(),
296 296
 				'thousands_sep' => wpinv_thousands_separator(),
297 297
 				'decimals_sep'  => wpinv_decimal_separator(),
298
-				'form_items'    => gepaid_get_form_items( $post->ID ),
298
+				'form_items'    => gepaid_get_form_items($post->ID),
299 299
 				'is_default'    => $post->ID == wpinv_get_default_payment_form(),
300 300
             )
301 301
         );
302 302
 
303
-        wp_enqueue_script( 'wpinv-admin-payment-form-script' );
303
+        wp_enqueue_script('wpinv-admin-payment-form-script');
304 304
 
305 305
     }
306 306
 
@@ -311,24 +311,24 @@  discard block
 block discarded – undo
311 311
      * @return string
312 312
 	 *
313 313
 	 */
314
-    public function admin_body_class( $classes ) {
314
+    public function admin_body_class($classes) {
315 315
 		global $pagenow, $post, $current_screen;
316 316
 
317
-        $page = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
317
+        $page = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
318 318
 
319
-        if ( ! empty( $current_screen->post_type ) ) {
319
+        if (!empty($current_screen->post_type)) {
320 320
 			$page = $current_screen->post_type;
321 321
         }
322 322
 
323
-        if ( false !== stripos( $page, 'wpi' ) ) {
324
-            $classes .= ' wpi-' . sanitize_key( $page );
323
+        if (false !== stripos($page, 'wpi')) {
324
+            $classes .= ' wpi-' . sanitize_key($page);
325 325
         }
326 326
 
327
-        if ( in_array( $page, wpinv_parse_list( 'wpi_invoice wpi_payment_form wpi_quote' ) ) ) {
327
+        if (in_array($page, wpinv_parse_list('wpi_invoice wpi_payment_form wpi_quote'))) {
328 328
             $classes .= ' wpinv-cpt wpinv';
329 329
 		}
330 330
 
331
-		if ( getpaid_is_invoice_post_type( $page ) ) {
331
+		if (getpaid_is_invoice_post_type($page)) {
332 332
             $classes .= ' getpaid-is-invoice-cpt';
333 333
         }
334 334
 
@@ -347,21 +347,21 @@  discard block
 block discarded – undo
347 347
 				'version'           => WPINV_VERSION,
348 348
 				'support_url'       => 'https://wpgetpaid.com/support/',
349 349
 				'documentation_url' => 'https://docs.wpgetpaid.com/',
350
-				'activated'         => (int) get_option( 'gepaid_installed_on' ),
350
+				'activated'         => (int) get_option('gepaid_installed_on'),
351 351
             )
352 352
         );
353 353
 
354 354
         new AyeCode_Connect_Helper(
355 355
             array(
356
-				'connect_title'     => __( 'WP Invoicing - an AyeCode product!', 'invoicing' ),
357
-				'connect_external'  => __( 'Please confirm you wish to connect your site?', 'invoicing' ),
358
-				'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>' ),
359
-				'connect_button'    => __( 'Connect Site', 'invoicing' ),
360
-				'connecting_button' => __( 'Connecting...', 'invoicing' ),
361
-				'error_localhost'   => __( 'This service will only work with a live domain, not a localhost.', 'invoicing' ),
362
-				'error'             => __( 'Something went wrong, please refresh and try again.', 'invoicing' ),
356
+				'connect_title'     => __('WP Invoicing - an AyeCode product!', 'invoicing'),
357
+				'connect_external'  => __('Please confirm you wish to connect your site?', 'invoicing'),
358
+				'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>'),
359
+				'connect_button'    => __('Connect Site', 'invoicing'),
360
+				'connecting_button' => __('Connecting...', 'invoicing'),
361
+				'error_localhost'   => __('This service will only work with a live domain, not a localhost.', 'invoicing'),
362
+				'error'             => __('Something went wrong, please refresh and try again.', 'invoicing'),
363 363
             ),
364
-            array( 'wpi-addons' )
364
+            array('wpi-addons')
365 365
         );
366 366
 
367 367
     }
@@ -373,20 +373,20 @@  discard block
 block discarded – undo
373 373
 	 */
374 374
 	public function activation_redirect() {
375 375
 
376
-		$redirected = get_option( 'wpinv_redirected_to_settings' );
376
+		$redirected = get_option('wpinv_redirected_to_settings');
377 377
 
378
-		if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
378
+		if (!empty($redirected) || wp_doing_ajax() || !current_user_can('manage_options')) {
379 379
 			return;
380 380
 		}
381 381
 
382 382
 		// Bail if activating from network, or bulk
383
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
383
+		if (is_network_admin() || isset($_GET['activate-multi'])) {
384 384
 			return;
385 385
 		}
386 386
 
387
-	    update_option( 'wpinv_redirected_to_settings', 1 );
387
+	    update_option('wpinv_redirected_to_settings', 1);
388 388
 
389
-        wp_safe_redirect( admin_url( 'index.php?page=gp-setup' ) );
389
+        wp_safe_redirect(admin_url('index.php?page=gp-setup'));
390 390
         exit;
391 391
 
392 392
 	}
@@ -396,9 +396,9 @@  discard block
 block discarded – undo
396 396
      */
397 397
     public function maybe_do_admin_action() {
398 398
 
399
-        if ( wpinv_current_user_can_manage_invoicing() && isset( $_REQUEST['getpaid-admin-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
400
-            $key = sanitize_key( $_REQUEST['getpaid-admin-action'] );
401
-            do_action( "getpaid_authenticated_admin_action_$key", $_REQUEST );
399
+        if (wpinv_current_user_can_manage_invoicing() && isset($_REQUEST['getpaid-admin-action']) && isset($_REQUEST['getpaid-nonce']) && wp_verify_nonce($_REQUEST['getpaid-nonce'], 'getpaid-nonce')) {
400
+            $key = sanitize_key($_REQUEST['getpaid-admin-action']);
401
+            do_action("getpaid_authenticated_admin_action_$key", $_REQUEST);
402 402
         }
403 403
 
404 404
     }
@@ -408,24 +408,24 @@  discard block
 block discarded – undo
408 408
 	 *
409 409
 	 * @param array $args
410 410
      */
411
-    public function duplicate_invoice( $args ) {
411
+    public function duplicate_invoice($args) {
412 412
 
413
-		if ( empty( $args['invoice_id'] ) ) {
413
+		if (empty($args['invoice_id'])) {
414 414
 			return;
415 415
 		}
416 416
 
417
-		$invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
417
+		$invoice = new WPInv_Invoice((int) $args['invoice_id']);
418 418
 
419
-		if ( ! $invoice->exists() ) {
419
+		if (!$invoice->exists()) {
420 420
 			return;
421 421
 		}
422 422
 
423
-		$new_invoice = getpaid_duplicate_invoice( $invoice );
423
+		$new_invoice = getpaid_duplicate_invoice($invoice);
424 424
 		$new_invoice->save();
425 425
 
426
-		if ( $new_invoice->exists() ) {
426
+		if ($new_invoice->exists()) {
427 427
 
428
-			getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'newsletter-optin-box' ) );
428
+			getpaid_admin()->show_success(__('Invoice duplicated successfully.', 'newsletter-optin-box'));
429 429
 
430 430
 			wp_safe_redirect(
431 431
 				add_query_arg(
@@ -433,14 +433,14 @@  discard block
 block discarded – undo
433 433
 						'action' => 'edit',
434 434
 						'post'   => $new_invoice->get_id(),
435 435
 					),
436
-					admin_url( 'post.php' )
436
+					admin_url('post.php')
437 437
 				)
438 438
 			);
439 439
 			exit;
440 440
 
441 441
 		}
442 442
 
443
-		getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'newsletter-optin-box' ) );
443
+		getpaid_admin()->show_error(__('There was an error duplicating this invoice. Please try again.', 'newsletter-optin-box'));
444 444
 
445 445
 	}
446 446
 
@@ -449,34 +449,34 @@  discard block
 block discarded – undo
449 449
 	 *
450 450
 	 * @param array $args
451 451
      */
452
-    public function duplicate_payment_form( $args ) {
452
+    public function duplicate_payment_form($args) {
453 453
 
454
-		if ( empty( $args['form_id'] ) ) {
454
+		if (empty($args['form_id'])) {
455 455
 			return;
456 456
 		}
457 457
 
458
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
458
+		$form = new GetPaid_Payment_Form((int) $args['form_id']);
459 459
 
460
-		if ( ! $form->exists() ) {
460
+		if (!$form->exists()) {
461 461
 			return;
462 462
 		}
463 463
 
464 464
 		$new_form = new GetPaid_Payment_Form();
465
-		$new_form->set_author( $form->get_author( 'edit' ) );
466
-		$new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
467
-		$new_form->set_elements( $form->get_elements( 'edit' ) );
468
-		$new_form->set_items( $form->get_items( 'edit' ) );
465
+		$new_form->set_author($form->get_author('edit'));
466
+		$new_form->set_name($form->get_name('edit') . __('(copy)', 'invoicing'));
467
+		$new_form->set_elements($form->get_elements('edit'));
468
+		$new_form->set_items($form->get_items('edit'));
469 469
 		$new_form->save();
470 470
 
471
-		if ( $new_form->exists() ) {
472
-			$this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
473
-			$url = get_edit_post_link( $new_form->get_id(), 'edit' );
471
+		if ($new_form->exists()) {
472
+			$this->show_success(__('Form duplicated successfully', 'invoicing'));
473
+			$url = get_edit_post_link($new_form->get_id(), 'edit');
474 474
 		} else {
475
-			$this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
476
-			$url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
475
+			$this->show_error(__('Unable to duplicate form', 'invoicing'));
476
+			$url = remove_query_arg(array('getpaid-admin-action', 'form_id', 'getpaid-nonce'));
477 477
 		}
478 478
 
479
-		wp_redirect( $url );
479
+		wp_redirect($url);
480 480
 		exit;
481 481
 	}
482 482
 
@@ -485,9 +485,9 @@  discard block
 block discarded – undo
485 485
 	 *
486 486
 	 * @param array $args
487 487
      */
488
-    public function send_customer_invoice( $args ) {
489
-		getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
490
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
488
+    public function send_customer_invoice($args) {
489
+		getpaid()->get('invoice_emails')->user_invoice(new WPInv_Invoice($args['invoice_id']), true);
490
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
491 491
 		exit;
492 492
 	}
493 493
 
@@ -496,16 +496,16 @@  discard block
 block discarded – undo
496 496
 	 *
497 497
 	 * @param array $args
498 498
      */
499
-    public function send_customer_payment_reminder( $args ) {
500
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
499
+    public function send_customer_payment_reminder($args) {
500
+		$sent = getpaid()->get('invoice_emails')->force_send_overdue_notice(new WPInv_Invoice($args['invoice_id']));
501 501
 
502
-		if ( $sent ) {
503
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
502
+		if ($sent) {
503
+			$this->show_success(__('Payment reminder was successfully sent to the customer', 'invoicing'));
504 504
 		} else {
505
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
505
+			$this->show_error(__('Could not sent payment reminder to the customer', 'invoicing'));
506 506
 		}
507 507
 
508
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
508
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
509 509
 		exit;
510 510
 	}
511 511
 
@@ -515,8 +515,8 @@  discard block
 block discarded – undo
515 515
      */
516 516
     public function admin_reset_tax_rates() {
517 517
 
518
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
519
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
518
+		update_option('wpinv_tax_rates', wpinv_get_data('tax-rates'));
519
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
520 520
 		exit;
521 521
 
522 522
 	}
@@ -528,8 +528,8 @@  discard block
 block discarded – undo
528 528
     public function admin_create_missing_pages() {
529 529
 		$installer = new GetPaid_Installer();
530 530
 		$installer->create_pages();
531
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
532
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
531
+		$this->show_success(__('GetPaid pages updated.', 'invoicing'));
532
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
533 533
 		exit;
534 534
 	}
535 535
 
@@ -541,35 +541,35 @@  discard block
 block discarded – undo
541 541
 		global $wpdb;
542 542
 		$installer = new GetPaid_Installer();
543 543
 
544
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'" ) != $wpdb->prefix . 'wpinv_subscriptions' ) {
544
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}wpinv_subscriptions'") != $wpdb->prefix . 'wpinv_subscriptions') {
545 545
 			$installer->create_subscriptions_table();
546 546
 
547
-			if ( $wpdb->last_error !== '' ) {
548
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
547
+			if ($wpdb->last_error !== '') {
548
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
549 549
 			}
550 550
 		}
551 551
 
552
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'" ) != $wpdb->prefix . 'getpaid_invoices' ) {
552
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoices'") != $wpdb->prefix . 'getpaid_invoices') {
553 553
 			$installer->create_invoices_table();
554 554
 
555
-			if ( $wpdb->last_error !== '' ) {
556
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
555
+			if ($wpdb->last_error !== '') {
556
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
557 557
 			}
558 558
 		}
559 559
 
560
-		if ( $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'" ) != $wpdb->prefix . 'getpaid_invoice_items' ) {
560
+		if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->prefix}getpaid_invoice_items'") != $wpdb->prefix . 'getpaid_invoice_items') {
561 561
 			$installer->create_invoice_items_table();
562 562
 
563
-			if ( $wpdb->last_error !== '' ) {
564
-				$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
563
+			if ($wpdb->last_error !== '') {
564
+				$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
565 565
 			}
566 566
 		}
567 567
 
568
-		if ( ! $this->has_notices() ) {
569
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
568
+		if (!$this->has_notices()) {
569
+			$this->show_success(__('Your GetPaid tables have been updated.', 'invoicing'));
570 570
 		}
571 571
 
572
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
572
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
573 573
 		exit;
574 574
 	}
575 575
 
@@ -584,10 +584,10 @@  discard block
 block discarded – undo
584 584
 		$installer->migrate_old_invoices();
585 585
 
586 586
 		// Show an admin message.
587
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
587
+		$this->show_success(__('Your invoices have been migrated.', 'invoicing'));
588 588
 
589 589
 		// Redirect the admin.
590
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
590
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
591 591
 		exit;
592 592
 
593 593
 	}
@@ -599,18 +599,18 @@  discard block
 block discarded – undo
599 599
     public function admin_download_customers() {
600 600
 		global $wpdb;
601 601
 
602
-		$output = fopen( 'php://output', 'w' ) or die( __( 'Unsupported server', 'invoicing' ) );
602
+		$output = fopen('php://output', 'w') or die(__('Unsupported server', 'invoicing'));
603 603
 
604
-		header( 'Content-Type:text/csv' );
605
-		header( 'Content-Disposition:attachment;filename=customers.csv' );
604
+		header('Content-Type:text/csv');
605
+		header('Content-Disposition:attachment;filename=customers.csv');
606 606
 
607 607
 		$post_types = '';
608 608
 
609
-		foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) {
610
-			$post_types .= $wpdb->prepare( 'post_type=%s OR ', $post_type );
609
+		foreach (array_keys(getpaid_get_invoice_post_types()) as $post_type) {
610
+			$post_types .= $wpdb->prepare('post_type=%s OR ', $post_type);
611 611
 		}
612 612
 
613
-		$post_types = rtrim( $post_types, ' OR' );
613
+		$post_types = rtrim($post_types, ' OR');
614 614
 
615 615
 		$customers = $wpdb->get_col(
616 616
 			$wpdb->prepare(
@@ -619,58 +619,58 @@  discard block
 block discarded – undo
619 619
 		);
620 620
 
621 621
 		$columns = array(
622
-			'name'       => __( 'Name', 'invoicing' ),
623
-			'email'      => __( 'Email', 'invoicing' ),
624
-			'country'    => __( 'Country', 'invoicing' ),
625
-			'state'      => __( 'State', 'invoicing' ),
626
-			'city'       => __( 'City', 'invoicing' ),
627
-			'zip'        => __( 'ZIP', 'invoicing' ),
628
-			'address'    => __( 'Address', 'invoicing' ),
629
-			'phone'      => __( 'Phone', 'invoicing' ),
630
-			'company'    => __( 'Company', 'invoicing' ),
631
-			'company_id' => __( 'Company ID', 'invoicing' ),
632
-			'invoices'   => __( 'Invoices', 'invoicing' ),
633
-			'total_raw'  => __( 'Total Spend', 'invoicing' ),
634
-			'signup'     => __( 'Date created', 'invoicing' ),
622
+			'name'       => __('Name', 'invoicing'),
623
+			'email'      => __('Email', 'invoicing'),
624
+			'country'    => __('Country', 'invoicing'),
625
+			'state'      => __('State', 'invoicing'),
626
+			'city'       => __('City', 'invoicing'),
627
+			'zip'        => __('ZIP', 'invoicing'),
628
+			'address'    => __('Address', 'invoicing'),
629
+			'phone'      => __('Phone', 'invoicing'),
630
+			'company'    => __('Company', 'invoicing'),
631
+			'company_id' => __('Company ID', 'invoicing'),
632
+			'invoices'   => __('Invoices', 'invoicing'),
633
+			'total_raw'  => __('Total Spend', 'invoicing'),
634
+			'signup'     => __('Date created', 'invoicing'),
635 635
 		);
636 636
 
637 637
 		// Output the csv column headers.
638
-		fputcsv( $output, array_values( $columns ) );
638
+		fputcsv($output, array_values($columns));
639 639
 
640 640
 		// Loop through
641 641
 		$table = new WPInv_Customers_Table();
642
-		foreach ( $customers as $customer_id ) {
642
+		foreach ($customers as $customer_id) {
643 643
 
644
-			$user = get_user_by( 'id', $customer_id );
644
+			$user = get_user_by('id', $customer_id);
645 645
 			$row  = array();
646
-			if ( empty( $user ) ) {
646
+			if (empty($user)) {
647 647
 				continue;
648 648
 			}
649 649
 
650
-			foreach ( array_keys( $columns ) as $column ) {
650
+			foreach (array_keys($columns) as $column) {
651 651
 
652 652
 				$method = 'column_' . $column;
653 653
 
654
-				if ( 'name' == $column ) {
655
-					$value = esc_html( $user->display_name );
656
-				} elseif ( 'email' == $column ) {
657
-					$value = sanitize_email( $user->user_email );
658
-				} elseif ( is_callable( array( $table, $method ) ) ) {
659
-					$value = strip_tags( $table->$method( $user ) );
654
+				if ('name' == $column) {
655
+					$value = esc_html($user->display_name);
656
+				} elseif ('email' == $column) {
657
+					$value = sanitize_email($user->user_email);
658
+				} elseif (is_callable(array($table, $method))) {
659
+					$value = strip_tags($table->$method($user));
660 660
 				}
661 661
 
662
-				if ( empty( $value ) ) {
663
-					$value = esc_html( get_user_meta( $user->ID, '_wpinv_' . $column, true ) );
662
+				if (empty($value)) {
663
+					$value = esc_html(get_user_meta($user->ID, '_wpinv_' . $column, true));
664 664
 				}
665 665
 
666 666
 				$row[] = $value;
667 667
 
668 668
 			}
669 669
 
670
-			fputcsv( $output, $row );
670
+			fputcsv($output, $row);
671 671
 		}
672 672
 
673
-		fclose( $output );
673
+		fclose($output);
674 674
 		exit;
675 675
 
676 676
 	}
@@ -680,27 +680,27 @@  discard block
 block discarded – undo
680 680
 	 *
681 681
 	 * @param array $data
682 682
      */
683
-    public function admin_install_plugin( $data ) {
683
+    public function admin_install_plugin($data) {
684 684
 
685
-		if ( ! empty( $data['plugins'] ) ) {
685
+		if (!empty($data['plugins'])) {
686 686
 			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
687 687
 			wp_cache_flush();
688 688
 
689
-			foreach ( $data['plugins'] as $slug => $file ) {
690
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
691
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
692
-				$installed  = $upgrader->install( $plugin_zip );
689
+			foreach ($data['plugins'] as $slug => $file) {
690
+				$plugin_zip = esc_url('https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip');
691
+				$upgrader   = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
692
+				$installed  = $upgrader->install($plugin_zip);
693 693
 
694
-				if ( ! is_wp_error( $installed ) && $installed ) {
695
-					activate_plugin( $file, '', false, true );
694
+				if (!is_wp_error($installed) && $installed) {
695
+					activate_plugin($file, '', false, true);
696 696
 				} else {
697
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
697
+					wpinv_error_log($upgrader->skin->get_upgrade_messages(), false);
698 698
 				}
699 699
 }
700 700
 }
701 701
 
702
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
703
-		wp_safe_redirect( $redirect );
702
+		$redirect = isset($data['redirect']) ? esc_url_raw($data['redirect']) : admin_url('plugins.php');
703
+		wp_safe_redirect($redirect);
704 704
 		exit;
705 705
 
706 706
 	}
@@ -710,41 +710,41 @@  discard block
 block discarded – undo
710 710
 	 *
711 711
 	 * @param array $data
712 712
      */
713
-    public function admin_connect_gateway( $data ) {
713
+    public function admin_connect_gateway($data) {
714 714
 
715
-		if ( ! empty( $data['plugin'] ) ) {
715
+		if (!empty($data['plugin'])) {
716 716
 
717
-			$gateway     = sanitize_key( $data['plugin'] );
718
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
717
+			$gateway     = sanitize_key($data['plugin']);
718
+			$connect_url = apply_filters("getpaid_get_{$gateway}_connect_url", false, $data);
719 719
 
720
-			if ( ! empty( $connect_url ) ) {
721
-				wp_redirect( $connect_url );
720
+			if (!empty($connect_url)) {
721
+				wp_redirect($connect_url);
722 722
 				exit;
723 723
 			}
724 724
 
725
-			if ( 'stripe' == $data['plugin'] ) {
725
+			if ('stripe' == $data['plugin']) {
726 726
 				require_once ABSPATH . 'wp-admin/includes/plugin.php';
727 727
 				include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
728 728
 				wp_cache_flush();
729 729
 
730
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
731
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
732
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
733
-					$upgrader->install( $plugin_zip );
730
+				if (!array_key_exists('getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins())) {
731
+					$plugin_zip = esc_url('https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip');
732
+					$upgrader   = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
733
+					$upgrader->install($plugin_zip);
734 734
 				}
735 735
 
736
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
736
+				activate_plugin('getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true);
737 737
 			}
738 738
 
739
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
740
-			if ( ! empty( $connect_url ) ) {
741
-				wp_redirect( $connect_url );
739
+			$connect_url = apply_filters("getpaid_get_{$gateway}_connect_url", false, $data);
740
+			if (!empty($connect_url)) {
741
+				wp_redirect($connect_url);
742 742
 				exit;
743 743
 			}
744 744
 }
745 745
 
746
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
747
-		wp_safe_redirect( $redirect );
746
+		$redirect = isset($data['redirect']) ? esc_url_raw(urldecode($data['redirect'])) : admin_url('admin.php?page=wpinv-settings&tab=gateways');
747
+		wp_safe_redirect($redirect);
748 748
 		exit;
749 749
 
750 750
 	}
@@ -758,35 +758,35 @@  discard block
 block discarded – undo
758 758
 
759 759
 		// Fetch all invoices that have discount codes.
760 760
 		$table    = $wpdb->prefix . 'getpaid_invoices';
761
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
761
+		$invoices = $wpdb->get_col("SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''");
762 762
 
763
-		foreach ( $invoices as $invoice ) {
763
+		foreach ($invoices as $invoice) {
764 764
 
765
-			$invoice = new WPInv_Invoice( $invoice );
765
+			$invoice = new WPInv_Invoice($invoice);
766 766
 
767
-			if ( ! $invoice->exists() ) {
767
+			if (!$invoice->exists()) {
768 768
 				continue;
769 769
 			}
770 770
 
771 771
 			// Abort if the discount does not exist or does not apply here.
772
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
773
-			if ( ! $discount->exists() ) {
772
+			$discount = new WPInv_Discount($invoice->get_discount_code());
773
+			if (!$discount->exists()) {
774 774
 				continue;
775 775
 			}
776 776
 
777
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
777
+			$invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
778 778
 			$invoice->recalculate_total();
779 779
 
780
-			if ( $invoice->get_total_discount() > 0 ) {
780
+			if ($invoice->get_total_discount() > 0) {
781 781
 				$invoice->save();
782 782
 			}
783 783
 }
784 784
 
785 785
 		// Show an admin message.
786
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
786
+		$this->show_success(__('Discounts have been recalculated.', 'invoicing'));
787 787
 
788 788
 		// Redirect the admin.
789
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
789
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
790 790
 		exit;
791 791
 
792 792
 	}
@@ -798,8 +798,8 @@  discard block
 block discarded – undo
798 798
      * @return array
799 799
 	 */
800 800
 	public function get_notices() {
801
-		$notices = get_option( 'wpinv_admin_notices' );
802
-        return is_array( $notices ) ? $notices : array();
801
+		$notices = get_option('wpinv_admin_notices');
802
+        return is_array($notices) ? $notices : array();
803 803
 	}
804 804
 
805 805
 	/**
@@ -809,7 +809,7 @@  discard block
 block discarded – undo
809 809
      * @return array
810 810
 	 */
811 811
 	public function has_notices() {
812
-		return count( $this->get_notices() ) > 0;
812
+		return count($this->get_notices()) > 0;
813 813
 	}
814 814
 
815 815
 	/**
@@ -819,7 +819,7 @@  discard block
 block discarded – undo
819 819
 	 * @since       1.0.19
820 820
 	 */
821 821
 	public function clear_notices() {
822
-		delete_option( 'wpinv_admin_notices' );
822
+		delete_option('wpinv_admin_notices');
823 823
 	}
824 824
 
825 825
 	/**
@@ -828,16 +828,16 @@  discard block
 block discarded – undo
828 828
 	 * @access      public
829 829
 	 * @since       1.0.19
830 830
 	 */
831
-	public function save_notice( $type, $message ) {
831
+	public function save_notice($type, $message) {
832 832
 		$notices = $this->get_notices();
833 833
 
834
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
835
-			$notices[ $type ] = array();
834
+		if (empty($notices[$type]) || !is_array($notices[$type])) {
835
+			$notices[$type] = array();
836 836
 		}
837 837
 
838
-		$notices[ $type ][] = $message;
838
+		$notices[$type][] = $message;
839 839
 
840
-		update_option( 'wpinv_admin_notices', $notices );
840
+		update_option('wpinv_admin_notices', $notices);
841 841
 	}
842 842
 
843 843
 	/**
@@ -847,8 +847,8 @@  discard block
 block discarded – undo
847 847
 	 * @access      public
848 848
 	 * @since       1.0.19
849 849
 	 */
850
-	public function show_success( $msg ) {
851
-		$this->save_notice( 'success', $msg );
850
+	public function show_success($msg) {
851
+		$this->save_notice('success', $msg);
852 852
 	}
853 853
 
854 854
 	/**
@@ -858,8 +858,8 @@  discard block
 block discarded – undo
858 858
 	 * @param       string $msg The message to qeue.
859 859
 	 * @since       1.0.19
860 860
 	 */
861
-	public function show_error( $msg ) {
862
-		$this->save_notice( 'error', $msg );
861
+	public function show_error($msg) {
862
+		$this->save_notice('error', $msg);
863 863
 	}
864 864
 
865 865
 	/**
@@ -869,8 +869,8 @@  discard block
 block discarded – undo
869 869
 	 * @param       string $msg The message to qeue.
870 870
 	 * @since       1.0.19
871 871
 	 */
872
-	public function show_warning( $msg ) {
873
-		$this->save_notice( 'warning', $msg );
872
+	public function show_warning($msg) {
873
+		$this->save_notice('warning', $msg);
874 874
 	}
875 875
 
876 876
 	/**
@@ -880,8 +880,8 @@  discard block
 block discarded – undo
880 880
 	 * @param       string $msg The message to qeue.
881 881
 	 * @since       1.0.19
882 882
 	 */
883
-	public function show_info( $msg ) {
884
-		$this->save_notice( 'info', $msg );
883
+	public function show_info($msg) {
884
+		$this->save_notice('info', $msg);
885 885
 	}
886 886
 
887 887
 	/**
@@ -895,29 +895,29 @@  discard block
 block discarded – undo
895 895
         $notices = $this->get_notices();
896 896
         $this->clear_notices();
897 897
 
898
-		foreach ( $notices as $type => $messages ) {
898
+		foreach ($notices as $type => $messages) {
899 899
 
900
-			if ( ! is_array( $messages ) ) {
900
+			if (!is_array($messages)) {
901 901
 				continue;
902 902
 			}
903 903
 
904
-            $type  = esc_attr( $type );
905
-			foreach ( $messages as $message ) {
906
-                $message = wp_kses_post( $message );
904
+            $type = esc_attr($type);
905
+			foreach ($messages as $message) {
906
+                $message = wp_kses_post($message);
907 907
 				echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
908 908
             }
909 909
 }
910 910
 
911
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
911
+		foreach (array('checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page') as $page) {
912 912
 
913
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
914
-				$url     = wp_nonce_url(
915
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
913
+			if (!is_numeric(wpinv_get_option($page, false))) {
914
+				$url = wp_nonce_url(
915
+					add_query_arg('getpaid-admin-action', 'create_missing_pages'),
916 916
 					'getpaid-nonce',
917 917
 					'getpaid-nonce'
918 918
 				);
919
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
920
-				$message2 = __( 'Generate Pages', 'invoicing' );
919
+				$message  = __('Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing');
920
+				$message2 = __('Generate Pages', 'invoicing');
921 921
 				echo "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>";
922 922
 				break;
923 923
 			}
Please login to merge, or discard this patch.
includes/admin/views/wizard-introduction.php 1 patch
Spacing   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -4,78 +4,78 @@  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
 
11 11
 <div class="card shadow-sm my-5">
12 12
 
13 13
     <h1 class="h4 card-header bg-white border-bottom-0 pt-4 pb-1">
14
-        <?php esc_html_e( 'Welcome to the GetPaid Setup Wizard!', 'invoicing' ); ?>
14
+        <?php esc_html_e('Welcome to the GetPaid Setup Wizard!', 'invoicing'); ?>
15 15
     </h1>
16 16
 
17 17
     <div class="card-body text-muted ">
18
-        <p><?php _e( 'Thank you for choosing GetPaid - The most Powerful Payments Plugin for WordPress', 'invoicing' ); ?></p>
18
+        <p><?php _e('Thank you for choosing GetPaid - The most Powerful Payments Plugin for WordPress', 'invoicing'); ?></p>
19 19
         <hr class="mt-4 pt-3 pb-0" />
20
-        <p class="small"><?php _e( 'This quick setup wizard will help you <b>configure the basic settings</b>. It’s <b>completely optional</b> and shouldn’t take longer than <b>five minutes</b>.', 'invoicing' ); ?></p>
20
+        <p class="small"><?php _e('This quick setup wizard will help you <b>configure the basic settings</b>. It’s <b>completely optional</b> and shouldn’t take longer than <b>five minutes</b>.', 'invoicing'); ?></p>
21 21
     </div>
22 22
 
23 23
     <div class="card-footer mb-0 bg-white gp-setup-actions step border-top-0">
24 24
         <a
25
-            href="<?php echo esc_url( $next_url ); ?>"
26
-            class="btn btn-primary button-next"><?php esc_html_e( "Let's go!", 'invoicing' ); ?></a>
25
+            href="<?php echo esc_url($next_url); ?>"
26
+            class="btn btn-primary button-next"><?php esc_html_e("Let's go!", 'invoicing'); ?></a>
27 27
         <a
28
-            href="<?php echo esc_url( admin_url() ); ?>"
29
-            class="btn btn-link d-block mt-2 "><?php esc_html_e( 'Not right now', 'invoicing' ); ?></a>
28
+            href="<?php echo esc_url(admin_url()); ?>"
29
+            class="btn btn-link d-block mt-2 "><?php esc_html_e('Not right now', 'invoicing'); ?></a>
30 30
     </div>
31 31
 </div>
32 32
 
33 33
 <div class="card shadow-sm my-5 overflow-hidden">
34 34
     <h1 class="h4 card-header bg-white border-bottom-0  pt-4 pb-1">
35
-        <?php esc_html_e( 'GetPaid Features & Addons!', 'invoicing' ); ?>
35
+        <?php esc_html_e('GetPaid Features & Addons!', 'invoicing'); ?>
36 36
     </h1>
37 37
 
38 38
     <div class="card-body text-muted overflow-hidden">
39
-		<p><?php _e( 'Collect one time & recurring payments online within minutes. No complex setup required.', 'invoicing' ); ?></p>
39
+		<p><?php _e('Collect one time & recurring payments online within minutes. No complex setup required.', 'invoicing'); ?></p>
40 40
 		<hr>
41 41
 
42 42
 		<div class="row row-cols-2 text-left">
43 43
 			<div class="col mt-3">
44 44
 				<div class="media">
45
-                    <img src="<?php echo esc_url( WPINV_PLUGIN_URL . 'assets/images/buy.svg' ); ?>" class="mr-3" alt="...">
45
+                    <img src="<?php echo esc_url(WPINV_PLUGIN_URL . 'assets/images/buy.svg'); ?>" class="mr-3" alt="...">
46 46
                     <div class="media-body">
47
-                        <h6 class="mt-0 font-weight-bold"><?php _e( 'GetPaid via Buy Now Buttons', 'invoicing' ); ?></h6>
48
-                        <small><?php _e( 'Sell via buy now buttons anywhere on your site', 'invoicing' ); ?></small>
47
+                        <h6 class="mt-0 font-weight-bold"><?php _e('GetPaid via Buy Now Buttons', 'invoicing'); ?></h6>
48
+                        <small><?php _e('Sell via buy now buttons anywhere on your site', 'invoicing'); ?></small>
49 49
                     </div>
50 50
                 </div>
51 51
 			</div>
52 52
 
53 53
             <div class="col mt-3">
54 54
                 <div class="media">
55
-                    <img src="<?php echo esc_url( WPINV_PLUGIN_URL . 'assets/images/report.svg' ); ?>" class="mr-3" alt="...">
55
+                    <img src="<?php echo esc_url(WPINV_PLUGIN_URL . 'assets/images/report.svg'); ?>" class="mr-3" alt="...">
56 56
                         <div class="media-body">
57
-                        <h6 class="mt-0 font-weight-bold"><?php _e( 'GetPaid via payment form', 'invoicing' ); ?></h6>
58
-                        <small><?php _e( 'Payment forms are conversion-optimized checkout forms', 'invoicing' ); ?></small>
57
+                        <h6 class="mt-0 font-weight-bold"><?php _e('GetPaid via payment form', 'invoicing'); ?></h6>
58
+                        <small><?php _e('Payment forms are conversion-optimized checkout forms', 'invoicing'); ?></small>
59 59
                     </div>
60 60
                 </div>
61 61
 		    </div>
62 62
 
63 63
             <div class="col mt-3">
64 64
                 <div class="media">
65
-                    <img src="<?php echo esc_url( WPINV_PLUGIN_URL . 'assets/images/invoices.svg' ); ?>" class="mr-3" alt="...">
65
+                    <img src="<?php echo esc_url(WPINV_PLUGIN_URL . 'assets/images/invoices.svg'); ?>" class="mr-3" alt="...">
66 66
                     <div class="media-body">
67
-                        <h6 class="mt-0 font-weight-bold"><?php _e( 'GetPaid via Invoice', 'invoicing' ); ?></h6>
68
-                        <small><?php _e( 'Create and send invoices for just about anything from the WordPress dashboard', 'invoicing' ); ?></small>
67
+                        <h6 class="mt-0 font-weight-bold"><?php _e('GetPaid via Invoice', 'invoicing'); ?></h6>
68
+                        <small><?php _e('Create and send invoices for just about anything from the WordPress dashboard', 'invoicing'); ?></small>
69 69
                     </div>
70 70
                 </div>
71 71
 		    </div>
72 72
 
73 73
             <div class="col mt-3">
74 74
                 <div class="media">
75
-                    <img src="<?php echo esc_url( WPINV_PLUGIN_URL . 'assets/images/payment.svg' ); ?>" class="mr-3" alt="...">
75
+                    <img src="<?php echo esc_url(WPINV_PLUGIN_URL . 'assets/images/payment.svg'); ?>" class="mr-3" alt="...">
76 76
                     <div class="media-body">
77
-                        <h6 class="mt-0 font-weight-bold"><?php _e( 'Affordable payment gateways', 'invoicing' ); ?></h6>
78
-                        <small><?php _e( 'On average our gateways are over 66% cheaper than our competition', 'invoicing' ); ?></small>
77
+                        <h6 class="mt-0 font-weight-bold"><?php _e('Affordable payment gateways', 'invoicing'); ?></h6>
78
+                        <small><?php _e('On average our gateways are over 66% cheaper than our competition', 'invoicing'); ?></small>
79 79
                     </div>
80 80
                 </div>
81 81
 		    </div>
@@ -86,51 +86,51 @@  discard block
 block discarded – undo
86 86
 	<div class="mt-5">
87 87
 		<a
88 88
             href="https://wpgetpaid.com/features-list/"
89
-			class="btn btn-primary"><?php esc_html_e( 'View All Features!', 'invoicing' ); ?></a>
89
+			class="btn btn-primary"><?php esc_html_e('View All Features!', 'invoicing'); ?></a>
90 90
 	</div>
91 91
 
92 92
 	<div class="mt-5 mx-n4 py-4" style="background:#eafaf6;">
93
-		<h4 class="mt-0 font-weight-bold text-dark mb-4"><?php _e( 'More with Membership!', 'invoicing' ); ?></h4>
93
+		<h4 class="mt-0 font-weight-bold text-dark mb-4"><?php _e('More with Membership!', 'invoicing'); ?></h4>
94 94
 		<div class="row row-cols-2 text-left px-5">
95 95
 
96 96
 			<div class="col">
97 97
 				<ul class="list-unstyled">
98
-					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e( 'PDF Invoices', 'invoicing' ); ?></li>
99
-					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e( 'Gravity Forms', 'invoicing' ); ?></li>
100
-					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e( 'Contact form 7', 'invoicing' ); ?></li>
101
-					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e( 'AffiliateWP Integration', 'invoicing' ); ?></li>
98
+					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e('PDF Invoices', 'invoicing'); ?></li>
99
+					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e('Gravity Forms', 'invoicing'); ?></li>
100
+					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e('Contact form 7', 'invoicing'); ?></li>
101
+					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e('AffiliateWP Integration', 'invoicing'); ?></li>
102 102
 				</ul>
103 103
 			</div>
104 104
 
105 105
 			<div class="col">
106 106
 				<ul class="list-unstyled">
107
-			    	<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e( 'Ninja forms', 'invoicing' ); ?></li>
108
-					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e( 'Digital Downloads', 'invoicing' ); ?></li>
109
-					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e( 'Wallet', 'invoicing' ); ?></li>
107
+			    	<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e('Ninja forms', 'invoicing'); ?></li>
108
+					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e('Digital Downloads', 'invoicing'); ?></li>
109
+					<li class="my-2"><i class="far fa-check-circle text-success"></i> <?php _e('Wallet', 'invoicing'); ?></li>
110 110
 				</ul>
111 111
 			</div>
112 112
 		</div>
113 113
 
114
-		<h5 class="mt-4 font-weight-bold text-dark mb-3"><?php _e( 'Membership Starts From', 'invoicing' ); ?></h5>
115
-		<h1 class="mt-0 font-weight-bold text-dark mb-4 display-3"><?php esc_html_e( '$49', 'invoicing' ); ?></h1>
114
+		<h5 class="mt-4 font-weight-bold text-dark mb-3"><?php _e('Membership Starts From', 'invoicing'); ?></h5>
115
+		<h1 class="mt-0 font-weight-bold text-dark mb-4 display-3"><?php esc_html_e('$49', 'invoicing'); ?></h1>
116 116
 
117 117
 		<div class="mt-2">
118 118
 			<a
119 119
                 href="https://wpgetpaid.com/downloads/membership/"
120
-				class="btn btn-primary"><?php esc_html_e( 'Buy Membership Now!', 'invoicing' ); ?></a>
120
+				class="btn btn-primary"><?php esc_html_e('Buy Membership Now!', 'invoicing'); ?></a>
121 121
 		</div>
122 122
 
123 123
 	</div>
124 124
 
125 125
     <div class="card-footer mb-0 bg-white gp-setup-actions step border-top-0">
126 126
         <a
127
-            href="<?php echo esc_url( $next_url ); ?>"
128
-            class="btn btn-outline-primary button-next"><?php esc_html_e( 'Launch the Setup Wizard!', 'invoicing' ); ?></a>
127
+            href="<?php echo esc_url($next_url); ?>"
128
+            class="btn btn-outline-primary button-next"><?php esc_html_e('Launch the Setup Wizard!', 'invoicing'); ?></a>
129 129
         <a
130 130
             href="https://docs.wpgetpaid.com/"
131
-            class="btn btn-outline-primary ml-4"><?php esc_html_e( 'Documentation', 'invoicing' ); ?></a>
131
+            class="btn btn-outline-primary ml-4"><?php esc_html_e('Documentation', 'invoicing'); ?></a>
132 132
         <a
133
-            href="<?php echo esc_url( admin_url() ); ?>"
134
-            class="btn btn-link d-block mt-2 "><?php esc_html_e( 'Not right now', 'invoicing' ); ?></a>
133
+            href="<?php echo esc_url(admin_url()); ?>"
134
+            class="btn btn-link d-block mt-2 "><?php esc_html_e('Not right now', 'invoicing'); ?></a>
135 135
     </div>
136 136
 </div>
Please login to merge, or discard this patch.
includes/admin/views/html-gateways-edit.php 2 patches
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -44,9 +44,9 @@  discard block
 block discarded – undo
44 44
                         <?php
45 45
 
46 46
                             if ( wpinv_is_gateway_active( $id ) ) {
47
-							echo "<i class='text-success fa fa-check'></i>";
47
+                            echo "<i class='text-success fa fa-check'></i>";
48 48
                             } else {
49
-							echo "<i class='text-dark fa fa-times'></i>";
49
+                            echo "<i class='text-dark fa fa-times'></i>";
50 50
                             }
51 51
 
52 52
                         ?>
@@ -58,9 +58,9 @@  discard block
 block discarded – undo
58 58
                             $supports = apply_filters( 'getapid_gateway_supports_subscription', $supports, $id );
59 59
 
60 60
                             if ( $supports ) {
61
-							echo "<i class='text-success fa fa-check'></i>";
61
+                            echo "<i class='text-success fa fa-check'></i>";
62 62
                             } else {
63
-							echo "<i class='text-dark fa fa-times'></i>";
63
+                            echo "<i class='text-dark fa fa-times'></i>";
64 64
                             }
65 65
 
66 66
                         ?>
Please login to merge, or discard this patch.
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -4,29 +4,29 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 
9 9
 $gateways = wpinv_get_payment_gateways();
10
-ksort( $gateways );
10
+ksort($gateways);
11 11
 
12 12
 ?>
13 13
 <div class="table-responsive">
14 14
     <table id="wpinv_gateways_select" class="table border bg-white form-table">
15
-        <caption><?php echo esc_html_e( 'This table displays installed payment methods.', 'invoicing' ); ?></caption>
15
+        <caption><?php echo esc_html_e('This table displays installed payment methods.', 'invoicing'); ?></caption>
16 16
 
17 17
         <thead>
18 18
             <tr class="table-light">
19 19
 
20 20
                 <th scope="col" class="border-bottom border-top text-left">
21
-                    <?php _e( 'Payment Method', 'invoicing' ); ?>
21
+                    <?php _e('Payment Method', 'invoicing'); ?>
22 22
                 </th>
23 23
 
24 24
                 <th scope="col" class="border-bottom border-top text-center">
25
-                    <?php _e( 'Enabled', 'invoicing' ); ?>
25
+                    <?php _e('Enabled', 'invoicing'); ?>
26 26
                 </th>
27 27
 
28 28
                 <th scope="col" class="border-bottom border-top text-center">
29
-                    <?php _e( 'Supports Subscriptions', 'invoicing' ); ?>
29
+                    <?php _e('Supports Subscriptions', 'invoicing'); ?>
30 30
                 </th>
31 31
 
32 32
                 <th scope="col" class="border-bottom border-top text-right" style="width:32px">&nbsp;</th>
@@ -35,15 +35,15 @@  discard block
 block discarded – undo
35 35
         </thead>
36 36
 
37 37
         <tbody>
38
-            <?php foreach ( $gateways as $id => $gateway ) : ?>
38
+            <?php foreach ($gateways as $id => $gateway) : ?>
39 39
                 <tr>
40 40
                     <td class="getpaid-payment-method text-left">
41
-                        <a style="color: #0073aa;" href="<?php echo esc_url( add_query_arg( 'section', $id ) ); ?>" class="font-weight-bold"><?php echo esc_html( $gateway['admin_label'] ); ?></a>
41
+                        <a style="color: #0073aa;" href="<?php echo esc_url(add_query_arg('section', $id)); ?>" class="font-weight-bold"><?php echo esc_html($gateway['admin_label']); ?></a>
42 42
                     </td>
43 43
                     <td class="getpaid-payment-method-enabled text-center">
44 44
                         <?php
45 45
 
46
-                            if ( wpinv_is_gateway_active( $id ) ) {
46
+                            if (wpinv_is_gateway_active($id)) {
47 47
 							echo "<i class='text-success fa fa-check'></i>";
48 48
                             } else {
49 49
 							echo "<i class='text-dark fa fa-times'></i>";
@@ -54,10 +54,10 @@  discard block
 block discarded – undo
54 54
                     <td class="getpaid-payment-method-subscription text-center">
55 55
                         <?php
56 56
 
57
-                            $supports = apply_filters( "wpinv_{$id}_support_subscription", false );
58
-                            $supports = apply_filters( 'getapid_gateway_supports_subscription', $supports, $id );
57
+                            $supports = apply_filters("wpinv_{$id}_support_subscription", false);
58
+                            $supports = apply_filters('getapid_gateway_supports_subscription', $supports, $id);
59 59
 
60
-                            if ( $supports ) {
60
+                            if ($supports) {
61 61
 							echo "<i class='text-success fa fa-check'></i>";
62 62
                             } else {
63 63
 							echo "<i class='text-dark fa fa-times'></i>";
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
                     </td>
68 68
 
69 69
                     <td class="getpaid-payment-method-action text-right">
70
-                        <a class="button button-secondary" href="<?php echo esc_url( add_query_arg( 'section', $id ) ); ?>"><?php _e( 'Manage', 'invoicing' ); ?></a>
70
+                        <a class="button button-secondary" href="<?php echo esc_url(add_query_arg('section', $id)); ?>"><?php _e('Manage', 'invoicing'); ?></a>
71 71
                     </td>
72 72
 
73 73
                 </tr>
@@ -77,8 +77,8 @@  discard block
 block discarded – undo
77 77
         <tfoot>
78 78
             <tr class="table-light">
79 79
                 <td colspan="4" class="border-top">
80
-                    <a class="button button-secondary getpaid-install-gateways" href="<?php echo esc_url( admin_url( 'admin.php?page=wpi-addons&tab=gateways' ) ); ?>">
81
-                        <span><?php _e( 'Add Payment Methods', 'invoicing' ); ?></span>
80
+                    <a class="button button-secondary getpaid-install-gateways" href="<?php echo esc_url(admin_url('admin.php?page=wpi-addons&tab=gateways')); ?>">
81
+                        <span><?php _e('Add Payment Methods', 'invoicing'); ?></span>
82 82
                     </a>
83 83
                 </td>
84 84
             </tr>
Please login to merge, or discard this patch.
includes/admin/views/wizard-plugins.php 2 patches
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -27,7 +27,7 @@
 block discarded – undo
27 27
 						<input type="checkbox" name="plugins[<?php echo esc_attr( $plugin['slug'] ); ?>]" value="<?php echo esc_attr( $plugin['file'] ); ?>" class="custom-control-input"  
28 28
                                                                         <?php
29 29
                         if ( is_plugin_active( $plugin['slug'] ) ) {
30
-																								echo 'checked';}
30
+                                                                                                echo 'checked';}
31 31
 ?>
32 32
 >
33 33
 						<label class="custom-control-label" for="ac-setting-updates"></label>
Please login to merge, or discard this patch.
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -4,35 +4,35 @@  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
 
11 11
 <div class="card shadow-sm my-5">'
12 12
 
13
-    <form method="post" class="text-center card-body" action="<?php echo esc_url( admin_url() ); ?>">
14
-		<?php getpaid_hidden_field( 'getpaid-admin-action', 'install_plugin' ); ?>
15
-		<?php wp_nonce_field( 'getpaid-nonce', 'getpaid-nonce' ); ?>
16
-		<?php getpaid_hidden_field( 'redirect', $next_url ); ?>
13
+    <form method="post" class="text-center card-body" action="<?php echo esc_url(admin_url()); ?>">
14
+		<?php getpaid_hidden_field('getpaid-admin-action', 'install_plugin'); ?>
15
+		<?php wp_nonce_field('getpaid-nonce', 'getpaid-nonce'); ?>
16
+		<?php getpaid_hidden_field('redirect', $next_url); ?>
17 17
 		<div class="gd-wizard-recommend">
18 18
 
19
-			<h2 class="gd-settings-title h3"><?php _e( 'Recommended Plugins', 'invoicing' ); ?></h2>
20
-			<p><?php _e( 'Below are a few of our own plugins that may help you.', 'invoicing' ); ?></p>
19
+			<h2 class="gd-settings-title h3"><?php _e('Recommended Plugins', 'invoicing'); ?></h2>
20
+			<p><?php _e('Below are a few of our own plugins that may help you.', 'invoicing'); ?></p>
21 21
 
22 22
 			<ul class="list-group">
23
-				<?php foreach ( $recommended_plugins as $plugin ) : ?>
23
+				<?php foreach ($recommended_plugins as $plugin) : ?>
24 24
 				<li class="list-group-item d-flex justify-content-between align-items-center flex-wrap text-left">
25
-					<span class="mr-auto"><?php echo esc_html( $plugin['name'] ); ?></span>
25
+					<span class="mr-auto"><?php echo esc_html($plugin['name']); ?></span>
26 26
 					<div class="custom-control custom-switch getpaid-install-plugin-siwtch-div mr-n2">
27
-						<input type="checkbox" name="plugins[<?php echo esc_attr( $plugin['slug'] ); ?>]" value="<?php echo esc_attr( $plugin['file'] ); ?>" class="custom-control-input"  
27
+						<input type="checkbox" name="plugins[<?php echo esc_attr($plugin['slug']); ?>]" value="<?php echo esc_attr($plugin['file']); ?>" class="custom-control-input"  
28 28
                                                                         <?php
29
-                        if ( is_plugin_active( $plugin['slug'] ) ) {
30
-																								echo 'checked';}
29
+                        if (is_plugin_active($plugin['slug'])) {
30
+																								echo 'checked'; }
31 31
 ?>
32 32
 >
33 33
 						<label class="custom-control-label" for="ac-setting-updates"></label>
34 34
 					</div>
35
-					<small class="w-100"><?php echo esc_attr( $plugin['desc'] ); ?></small>
35
+					<small class="w-100"><?php echo esc_attr($plugin['desc']); ?></small>
36 36
 				</li>
37 37
 				<?php endforeach; ?>
38 38
 			</ul>
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
 				<input
42 42
                 	type="submit"
43 43
                 	class="btn btn-primary button-next"
44
-				    value="<?php esc_attr_e( 'Continue', 'invoicing' ); ?>" name="save_step"/>
44
+				    value="<?php esc_attr_e('Continue', 'invoicing'); ?>" name="save_step"/>
45 45
 			</p>
46 46
 
47 47
 		</div>
Please login to merge, or discard this patch.