Passed
Pull Request — master (#773)
by
unknown
04:43
created
includes/data-stores/class-getpaid-customer-data-store.php 2 patches
Indentation   +184 added lines, -184 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 if ( ! defined( 'ABSPATH' ) ) {
8
-	exit;
8
+    exit;
9 9
 }
10 10
 
11 11
 /**
@@ -15,196 +15,196 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class GetPaid_Customer_Data_Store {
17 17
 
18
-	/*
18
+    /*
19 19
 	|--------------------------------------------------------------------------
20 20
 	| CRUD Methods
21 21
 	|--------------------------------------------------------------------------
22 22
 	*/
23 23
 
24
-	/**
25
-	 * Method to create a new customer in the database.
26
-	 *
27
-	 * @param GetPaid_Customer $customer customer object.
28
-	 */
29
-	public function create( &$customer ) {
30
-		global $wpdb;
31
-
32
-		$values  = array();
33
-		$formats = array();
34
-
35
-		$fields = self::get_database_fields();
36
-		unset( $fields['id'] );
37
-
38
-		foreach ( $fields as $key => $format ) {
39
-			$values[ $key ] = $customer->get( $key, 'edit' );
40
-			$formats[]      = $format;
41
-		}
42
-
43
-		$result = $wpdb->insert( $wpdb->prefix . 'getpaid_customers', $values, $formats );
44
-
45
-		if ( $result ) {
46
-			$customer->set_id( $wpdb->insert_id );
47
-			$customer->apply_changes();
48
-			$customer->clear_cache();
49
-			do_action( 'getpaid_new_customer', $customer );
50
-			return true;
51
-		}
52
-
53
-		return false;
54
-	}
55
-
56
-	/**
57
-	 * Method to read a customer from the database.
58
-	 *
59
-	 * @param GetPaid_Customer $customer customer object.
60
-	 *
61
-	 */
62
-	public function read( &$customer ) {
63
-		global $wpdb;
64
-
65
-		$customer->set_defaults();
66
-
67
-		if ( ! $customer->get_id() ) {
68
-			$customer->last_error = 'Invalid customer.';
69
-			$customer->set_id( 0 );
70
-			return false;
71
-		}
72
-
73
-		// Maybe retrieve from the cache.
74
-		$raw_customer = wp_cache_get( $customer->get_id(), 'getpaid_customers' );
75
-
76
-		// If not found, retrieve from the db.
77
-		if ( false === $raw_customer ) {
78
-
79
-			$raw_customer = $wpdb->get_row(
80
-				$wpdb->prepare(
81
-					"SELECT * FROM {$wpdb->prefix}getpaid_customers WHERE id = %d",
82
-					$customer->get_id()
83
-				)
84
-			);
85
-
86
-			// Update the cache with our data
87
-			wp_cache_set( $customer->get_id(), $raw_customer, 'getpaid_customers' );
88
-
89
-		}
90
-
91
-		if ( ! $raw_customer ) {
92
-			$raw_customer->last_error = 'Invalid customer.';
93
-			return false;
94
-		}
95
-
96
-		// Loop through raw customer fields.
97
-		foreach ( (array) $raw_customer as $key => $value ) {
98
-			$customer->set( $key, $value );
99
-		}
100
-
101
-		$customer->set_object_read( true );
102
-		do_action( 'getpaid_read_customer', $customer );
103
-
104
-	}
105
-
106
-	/**
107
-	 * Method to update a customer in the database.
108
-	 *
109
-	 * @param GetPaid_Customer $customer Customer object.
110
-	 */
111
-	public function update( &$customer ) {
112
-		global $wpdb;
113
-
114
-		do_action( 'getpaid_before_update_customer', $customer, $customer->get_changes() );
115
-
116
-		$changes = $customer->get_changes();
117
-		$values  = array();
118
-		$format  = array();
119
-
120
-		foreach ( self::get_database_fields() as $key => $format ) {
121
-			if ( array_key_exists( $key, $changes ) ) {
122
-				$values[ $key ] = $customer->get( $key, 'edit' );
123
-				$formats[]      = $format;
124
-			}
125
-		}
126
-
127
-		if ( empty( $values ) ) {
128
-			return;
129
-		}
130
-
131
-		$wpdb->update(
132
-			$wpdb->prefix . 'getpaid_customers',
133
-			$values,
134
-			array(
135
-				'id' => $customer->get_id(),
136
-			),
137
-			$formats,
138
-			'%d'
139
-		);
140
-
141
-		// Apply the changes.
142
-		$customer->apply_changes();
143
-
144
-		// Delete cache.
145
-		$customer->clear_cache();
146
-
147
-		// Fire a hook.
148
-		do_action( 'getpaid_update_customer', $customer );
149
-
150
-	}
151
-
152
-	/**
153
-	 * Method to delete a customer from the database.
154
-	 *
155
-	 * @param GetPaid_Customer $customer
156
-	 */
157
-	public function delete( &$customer ) {
158
-		global $wpdb;
159
-
160
-		do_action( 'getpaid_before_delete_customer', $customer );
161
-
162
-		$wpdb->delete(
163
-			$wpdb->prefix . 'getpaid_customers',
164
-			array(
165
-				'id' => $customer->get_id(),
166
-			),
167
-			'%d'
168
-		);
169
-
170
-		// Delete cache.
171
-		$customer->clear_cache();
172
-
173
-		// Fire a hook.
174
-		do_action( 'getpaid_delete_customer', $customer );
175
-
176
-		$customer->set_id( 0 );
177
-	}
178
-
179
-	/*
24
+    /**
25
+     * Method to create a new customer in the database.
26
+     *
27
+     * @param GetPaid_Customer $customer customer object.
28
+     */
29
+    public function create( &$customer ) {
30
+        global $wpdb;
31
+
32
+        $values  = array();
33
+        $formats = array();
34
+
35
+        $fields = self::get_database_fields();
36
+        unset( $fields['id'] );
37
+
38
+        foreach ( $fields as $key => $format ) {
39
+            $values[ $key ] = $customer->get( $key, 'edit' );
40
+            $formats[]      = $format;
41
+        }
42
+
43
+        $result = $wpdb->insert( $wpdb->prefix . 'getpaid_customers', $values, $formats );
44
+
45
+        if ( $result ) {
46
+            $customer->set_id( $wpdb->insert_id );
47
+            $customer->apply_changes();
48
+            $customer->clear_cache();
49
+            do_action( 'getpaid_new_customer', $customer );
50
+            return true;
51
+        }
52
+
53
+        return false;
54
+    }
55
+
56
+    /**
57
+     * Method to read a customer from the database.
58
+     *
59
+     * @param GetPaid_Customer $customer customer object.
60
+     *
61
+     */
62
+    public function read( &$customer ) {
63
+        global $wpdb;
64
+
65
+        $customer->set_defaults();
66
+
67
+        if ( ! $customer->get_id() ) {
68
+            $customer->last_error = 'Invalid customer.';
69
+            $customer->set_id( 0 );
70
+            return false;
71
+        }
72
+
73
+        // Maybe retrieve from the cache.
74
+        $raw_customer = wp_cache_get( $customer->get_id(), 'getpaid_customers' );
75
+
76
+        // If not found, retrieve from the db.
77
+        if ( false === $raw_customer ) {
78
+
79
+            $raw_customer = $wpdb->get_row(
80
+                $wpdb->prepare(
81
+                    "SELECT * FROM {$wpdb->prefix}getpaid_customers WHERE id = %d",
82
+                    $customer->get_id()
83
+                )
84
+            );
85
+
86
+            // Update the cache with our data
87
+            wp_cache_set( $customer->get_id(), $raw_customer, 'getpaid_customers' );
88
+
89
+        }
90
+
91
+        if ( ! $raw_customer ) {
92
+            $raw_customer->last_error = 'Invalid customer.';
93
+            return false;
94
+        }
95
+
96
+        // Loop through raw customer fields.
97
+        foreach ( (array) $raw_customer as $key => $value ) {
98
+            $customer->set( $key, $value );
99
+        }
100
+
101
+        $customer->set_object_read( true );
102
+        do_action( 'getpaid_read_customer', $customer );
103
+
104
+    }
105
+
106
+    /**
107
+     * Method to update a customer in the database.
108
+     *
109
+     * @param GetPaid_Customer $customer Customer object.
110
+     */
111
+    public function update( &$customer ) {
112
+        global $wpdb;
113
+
114
+        do_action( 'getpaid_before_update_customer', $customer, $customer->get_changes() );
115
+
116
+        $changes = $customer->get_changes();
117
+        $values  = array();
118
+        $format  = array();
119
+
120
+        foreach ( self::get_database_fields() as $key => $format ) {
121
+            if ( array_key_exists( $key, $changes ) ) {
122
+                $values[ $key ] = $customer->get( $key, 'edit' );
123
+                $formats[]      = $format;
124
+            }
125
+        }
126
+
127
+        if ( empty( $values ) ) {
128
+            return;
129
+        }
130
+
131
+        $wpdb->update(
132
+            $wpdb->prefix . 'getpaid_customers',
133
+            $values,
134
+            array(
135
+                'id' => $customer->get_id(),
136
+            ),
137
+            $formats,
138
+            '%d'
139
+        );
140
+
141
+        // Apply the changes.
142
+        $customer->apply_changes();
143
+
144
+        // Delete cache.
145
+        $customer->clear_cache();
146
+
147
+        // Fire a hook.
148
+        do_action( 'getpaid_update_customer', $customer );
149
+
150
+    }
151
+
152
+    /**
153
+     * Method to delete a customer from the database.
154
+     *
155
+     * @param GetPaid_Customer $customer
156
+     */
157
+    public function delete( &$customer ) {
158
+        global $wpdb;
159
+
160
+        do_action( 'getpaid_before_delete_customer', $customer );
161
+
162
+        $wpdb->delete(
163
+            $wpdb->prefix . 'getpaid_customers',
164
+            array(
165
+                'id' => $customer->get_id(),
166
+            ),
167
+            '%d'
168
+        );
169
+
170
+        // Delete cache.
171
+        $customer->clear_cache();
172
+
173
+        // Fire a hook.
174
+        do_action( 'getpaid_delete_customer', $customer );
175
+
176
+        $customer->set_id( 0 );
177
+    }
178
+
179
+    /*
180 180
 	|--------------------------------------------------------------------------
181 181
 	| Additional Methods
182 182
 	|--------------------------------------------------------------------------
183 183
 	*/
184
-	public static function get_database_fields() {
185
-
186
-		$fields = array(
187
-			'id'             => '%d',
188
-			'user_id'        => '%d',
189
-			'email'          => '%s',
190
-			'email_cc'       => '%s',
191
-			'status'         => '%s',
192
-			'purchase_value' => '%f',
193
-			'purchase_count' => '%d',
194
-			'date_created'   => '%s',
195
-			'date_modified'  => '%s',
196
-			'uuid'           => '%s',
197
-		);
198
-
199
-		// Add address fields.
200
-		foreach ( array_keys( getpaid_user_address_fields() ) as $field ) {
201
-
202
-			// Skip id, user_id and email.
203
-			if ( ! in_array( $field, array( 'id', 'user_id', 'email', 'purchase_value', 'purchase_count', 'date_created', 'date_modified', 'uuid' ), true ) ) {
204
-				$fields[ $field ] = '%s';
205
-			}
206
-		}
207
-
208
-		return $fields;
209
-	}
184
+    public static function get_database_fields() {
185
+
186
+        $fields = array(
187
+            'id'             => '%d',
188
+            'user_id'        => '%d',
189
+            'email'          => '%s',
190
+            'email_cc'       => '%s',
191
+            'status'         => '%s',
192
+            'purchase_value' => '%f',
193
+            'purchase_count' => '%d',
194
+            'date_created'   => '%s',
195
+            'date_modified'  => '%s',
196
+            'uuid'           => '%s',
197
+        );
198
+
199
+        // Add address fields.
200
+        foreach ( array_keys( getpaid_user_address_fields() ) as $field ) {
201
+
202
+            // Skip id, user_id and email.
203
+            if ( ! in_array( $field, array( 'id', 'user_id', 'email', 'purchase_value', 'purchase_count', 'date_created', 'date_modified', 'uuid' ), true ) ) {
204
+                $fields[ $field ] = '%s';
205
+            }
206
+        }
207
+
208
+        return $fields;
209
+    }
210 210
 }
Please login to merge, or discard this patch.
Spacing   +34 added lines, -34 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  * GetPaid_Customer_Data_Store class file.
5 5
  *
6 6
  */
7
-if ( ! defined( 'ABSPATH' ) ) {
7
+if (!defined('ABSPATH')) {
8 8
 	exit;
9 9
 }
10 10
 
@@ -26,27 +26,27 @@  discard block
 block discarded – undo
26 26
 	 *
27 27
 	 * @param GetPaid_Customer $customer customer object.
28 28
 	 */
29
-	public function create( &$customer ) {
29
+	public function create(&$customer) {
30 30
 		global $wpdb;
31 31
 
32 32
 		$values  = array();
33 33
 		$formats = array();
34 34
 
35 35
 		$fields = self::get_database_fields();
36
-		unset( $fields['id'] );
36
+		unset($fields['id']);
37 37
 
38
-		foreach ( $fields as $key => $format ) {
39
-			$values[ $key ] = $customer->get( $key, 'edit' );
38
+		foreach ($fields as $key => $format) {
39
+			$values[$key] = $customer->get($key, 'edit');
40 40
 			$formats[]      = $format;
41 41
 		}
42 42
 
43
-		$result = $wpdb->insert( $wpdb->prefix . 'getpaid_customers', $values, $formats );
43
+		$result = $wpdb->insert($wpdb->prefix . 'getpaid_customers', $values, $formats);
44 44
 
45
-		if ( $result ) {
46
-			$customer->set_id( $wpdb->insert_id );
45
+		if ($result) {
46
+			$customer->set_id($wpdb->insert_id);
47 47
 			$customer->apply_changes();
48 48
 			$customer->clear_cache();
49
-			do_action( 'getpaid_new_customer', $customer );
49
+			do_action('getpaid_new_customer', $customer);
50 50
 			return true;
51 51
 		}
52 52
 
@@ -59,22 +59,22 @@  discard block
 block discarded – undo
59 59
 	 * @param GetPaid_Customer $customer customer object.
60 60
 	 *
61 61
 	 */
62
-	public function read( &$customer ) {
62
+	public function read(&$customer) {
63 63
 		global $wpdb;
64 64
 
65 65
 		$customer->set_defaults();
66 66
 
67
-		if ( ! $customer->get_id() ) {
67
+		if (!$customer->get_id()) {
68 68
 			$customer->last_error = 'Invalid customer.';
69
-			$customer->set_id( 0 );
69
+			$customer->set_id(0);
70 70
 			return false;
71 71
 		}
72 72
 
73 73
 		// Maybe retrieve from the cache.
74
-		$raw_customer = wp_cache_get( $customer->get_id(), 'getpaid_customers' );
74
+		$raw_customer = wp_cache_get($customer->get_id(), 'getpaid_customers');
75 75
 
76 76
 		// If not found, retrieve from the db.
77
-		if ( false === $raw_customer ) {
77
+		if (false === $raw_customer) {
78 78
 
79 79
 			$raw_customer = $wpdb->get_row(
80 80
 				$wpdb->prepare(
@@ -84,22 +84,22 @@  discard block
 block discarded – undo
84 84
 			);
85 85
 
86 86
 			// Update the cache with our data
87
-			wp_cache_set( $customer->get_id(), $raw_customer, 'getpaid_customers' );
87
+			wp_cache_set($customer->get_id(), $raw_customer, 'getpaid_customers');
88 88
 
89 89
 		}
90 90
 
91
-		if ( ! $raw_customer ) {
91
+		if (!$raw_customer) {
92 92
 			$raw_customer->last_error = 'Invalid customer.';
93 93
 			return false;
94 94
 		}
95 95
 
96 96
 		// Loop through raw customer fields.
97
-		foreach ( (array) $raw_customer as $key => $value ) {
98
-			$customer->set( $key, $value );
97
+		foreach ((array) $raw_customer as $key => $value) {
98
+			$customer->set($key, $value);
99 99
 		}
100 100
 
101
-		$customer->set_object_read( true );
102
-		do_action( 'getpaid_read_customer', $customer );
101
+		$customer->set_object_read(true);
102
+		do_action('getpaid_read_customer', $customer);
103 103
 
104 104
 	}
105 105
 
@@ -108,23 +108,23 @@  discard block
 block discarded – undo
108 108
 	 *
109 109
 	 * @param GetPaid_Customer $customer Customer object.
110 110
 	 */
111
-	public function update( &$customer ) {
111
+	public function update(&$customer) {
112 112
 		global $wpdb;
113 113
 
114
-		do_action( 'getpaid_before_update_customer', $customer, $customer->get_changes() );
114
+		do_action('getpaid_before_update_customer', $customer, $customer->get_changes());
115 115
 
116 116
 		$changes = $customer->get_changes();
117 117
 		$values  = array();
118 118
 		$format  = array();
119 119
 
120
-		foreach ( self::get_database_fields() as $key => $format ) {
121
-			if ( array_key_exists( $key, $changes ) ) {
122
-				$values[ $key ] = $customer->get( $key, 'edit' );
120
+		foreach (self::get_database_fields() as $key => $format) {
121
+			if (array_key_exists($key, $changes)) {
122
+				$values[$key] = $customer->get($key, 'edit');
123 123
 				$formats[]      = $format;
124 124
 			}
125 125
 		}
126 126
 
127
-		if ( empty( $values ) ) {
127
+		if (empty($values)) {
128 128
 			return;
129 129
 		}
130 130
 
@@ -145,7 +145,7 @@  discard block
 block discarded – undo
145 145
 		$customer->clear_cache();
146 146
 
147 147
 		// Fire a hook.
148
-		do_action( 'getpaid_update_customer', $customer );
148
+		do_action('getpaid_update_customer', $customer);
149 149
 
150 150
 	}
151 151
 
@@ -154,10 +154,10 @@  discard block
 block discarded – undo
154 154
 	 *
155 155
 	 * @param GetPaid_Customer $customer
156 156
 	 */
157
-	public function delete( &$customer ) {
157
+	public function delete(&$customer) {
158 158
 		global $wpdb;
159 159
 
160
-		do_action( 'getpaid_before_delete_customer', $customer );
160
+		do_action('getpaid_before_delete_customer', $customer);
161 161
 
162 162
 		$wpdb->delete(
163 163
 			$wpdb->prefix . 'getpaid_customers',
@@ -171,9 +171,9 @@  discard block
 block discarded – undo
171 171
 		$customer->clear_cache();
172 172
 
173 173
 		// Fire a hook.
174
-		do_action( 'getpaid_delete_customer', $customer );
174
+		do_action('getpaid_delete_customer', $customer);
175 175
 
176
-		$customer->set_id( 0 );
176
+		$customer->set_id(0);
177 177
 	}
178 178
 
179 179
 	/*
@@ -197,11 +197,11 @@  discard block
 block discarded – undo
197 197
 		);
198 198
 
199 199
 		// Add address fields.
200
-		foreach ( array_keys( getpaid_user_address_fields() ) as $field ) {
200
+		foreach (array_keys(getpaid_user_address_fields()) as $field) {
201 201
 
202 202
 			// Skip id, user_id and email.
203
-			if ( ! in_array( $field, array( 'id', 'user_id', 'email', 'purchase_value', 'purchase_count', 'date_created', 'date_modified', 'uuid' ), true ) ) {
204
-				$fields[ $field ] = '%s';
203
+			if (!in_array($field, array('id', 'user_id', 'email', 'purchase_value', 'purchase_count', 'date_created', 'date_modified', 'uuid'), true)) {
204
+				$fields[$field] = '%s';
205 205
 			}
206 206
 		}
207 207
 
Please login to merge, or discard this patch.
includes/class-wpinv.php 2 patches
Indentation   +606 added lines, -606 removed lines patch added patch discarded remove patch
@@ -14,652 +14,652 @@
 block discarded – undo
14 14
  */
15 15
 class WPInv_Plugin {
16 16
 
17
-	/**
18
-	 * GetPaid version.
19
-	 *
20
-	 * @var string
21
-	 */
22
-	public $version;
23
-
24
-	/**
25
-	 * Data container.
26
-	 *
27
-	 * @var array
28
-	 */
29
-	protected $data = array();
30
-
31
-	/**
32
-	 * Form elements instance.
33
-	 *
34
-	 * @var WPInv_Payment_Form_Elements
35
-	 */
36
-	public $form_elements;
37
-
38
-	/**
39
-	 * @var array An array of payment gateways.
40
-	 */
41
-	public $gateways;
42
-
43
-	/**
44
-	 * Class constructor.
45
-	 */
46
-	public function __construct() {
47
-		$this->define_constants();
48
-		$this->includes();
49
-		$this->init_hooks();
50
-		$this->set_properties();
51
-	}
52
-
53
-	/**
54
-	 * Sets a custom data property.
55
-	 *
56
-	 * @param string $prop The prop to set.
57
-	 * @param mixed $value The value to retrieve.
58
-	 */
59
-	public function set( $prop, $value ) {
60
-		$this->data[ $prop ] = $value;
61
-	}
62
-
63
-	/**
64
-	 * Gets a custom data property.
65
-	 *
66
-	 * @param string $prop The prop to set.
67
-	 * @return mixed The value.
68
-	 */
69
-	public function get( $prop ) {
70
-
71
-		if ( isset( $this->data[ $prop ] ) ) {
72
-			return $this->data[ $prop ];
73
-		}
74
-
75
-		return null;
76
-	}
77
-
78
-	/**
79
-	 * Define class properties.
80
-	 */
81
-	public function set_properties() {
82
-
83
-		// Sessions.
84
-		$this->set( 'session', new WPInv_Session_Handler() );
85
-		$GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
86
-		$GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility.
87
-
88
-		// Init other objects.
89
-		$this->set( 'notes', new WPInv_Notes() );
90
-		$this->set( 'api', new WPInv_API() );
91
-		$this->set( 'post_types', new GetPaid_Post_Types() );
92
-		$this->set( 'template', new GetPaid_Template() );
93
-		$this->set( 'admin', new GetPaid_Admin() );
94
-		$this->set( 'subscriptions', new WPInv_Subscriptions() );
95
-		$this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
96
-		$this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
97
-		$this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
98
-		$this->set( 'payment_forms', new GetPaid_Payment_Forms() );
99
-		$this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() );
100
-
101
-	}
102
-
103
-	 /**
104
-	 * Define plugin constants.
105
-	 */
106
-	public function define_constants() {
107
-		define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
108
-		define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
109
-		$this->version = WPINV_VERSION;
110
-	}
111
-
112
-	/**
113
-	 * Hook into actions and filters.
114
-	 *
115
-	 * @since 1.0.19
116
-	 */
117
-	protected function init_hooks() {
118
-		/* Internationalize the text strings used. */
119
-		add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
120
-
121
-		// Init the plugin after WordPress inits.
122
-		add_action( 'init', array( $this, 'init' ), 1 );
123
-		add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 );
124
-		add_action( 'init', array( $this, 'wpinv_actions' ) );
125
-		add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
126
-		add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
127
-		add_action( 'wp_footer', array( $this, 'wp_footer' ) );
128
-		add_action( 'wp_head', array( $this, 'wp_head' ) );
129
-		add_action( 'widgets_init', array( $this, 'register_widgets' ) );
130
-		add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
131
-		add_filter( 'the_seo_framework_sitemap_supported_post_types', array( $this, 'exclude_invoicing_post_types' ) );
132
-		add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
133
-
134
-		add_filter( 'query_vars', array( $this, 'custom_query_vars' ) );
17
+    /**
18
+     * GetPaid version.
19
+     *
20
+     * @var string
21
+     */
22
+    public $version;
23
+
24
+    /**
25
+     * Data container.
26
+     *
27
+     * @var array
28
+     */
29
+    protected $data = array();
30
+
31
+    /**
32
+     * Form elements instance.
33
+     *
34
+     * @var WPInv_Payment_Form_Elements
35
+     */
36
+    public $form_elements;
37
+
38
+    /**
39
+     * @var array An array of payment gateways.
40
+     */
41
+    public $gateways;
42
+
43
+    /**
44
+     * Class constructor.
45
+     */
46
+    public function __construct() {
47
+        $this->define_constants();
48
+        $this->includes();
49
+        $this->init_hooks();
50
+        $this->set_properties();
51
+    }
52
+
53
+    /**
54
+     * Sets a custom data property.
55
+     *
56
+     * @param string $prop The prop to set.
57
+     * @param mixed $value The value to retrieve.
58
+     */
59
+    public function set( $prop, $value ) {
60
+        $this->data[ $prop ] = $value;
61
+    }
62
+
63
+    /**
64
+     * Gets a custom data property.
65
+     *
66
+     * @param string $prop The prop to set.
67
+     * @return mixed The value.
68
+     */
69
+    public function get( $prop ) {
70
+
71
+        if ( isset( $this->data[ $prop ] ) ) {
72
+            return $this->data[ $prop ];
73
+        }
74
+
75
+        return null;
76
+    }
77
+
78
+    /**
79
+     * Define class properties.
80
+     */
81
+    public function set_properties() {
82
+
83
+        // Sessions.
84
+        $this->set( 'session', new WPInv_Session_Handler() );
85
+        $GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
86
+        $GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility.
87
+
88
+        // Init other objects.
89
+        $this->set( 'notes', new WPInv_Notes() );
90
+        $this->set( 'api', new WPInv_API() );
91
+        $this->set( 'post_types', new GetPaid_Post_Types() );
92
+        $this->set( 'template', new GetPaid_Template() );
93
+        $this->set( 'admin', new GetPaid_Admin() );
94
+        $this->set( 'subscriptions', new WPInv_Subscriptions() );
95
+        $this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
96
+        $this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
97
+        $this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
98
+        $this->set( 'payment_forms', new GetPaid_Payment_Forms() );
99
+        $this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() );
100
+
101
+    }
102
+
103
+        /**
104
+         * Define plugin constants.
105
+         */
106
+    public function define_constants() {
107
+        define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
108
+        define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
109
+        $this->version = WPINV_VERSION;
110
+    }
111
+
112
+    /**
113
+     * Hook into actions and filters.
114
+     *
115
+     * @since 1.0.19
116
+     */
117
+    protected function init_hooks() {
118
+        /* Internationalize the text strings used. */
119
+        add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
120
+
121
+        // Init the plugin after WordPress inits.
122
+        add_action( 'init', array( $this, 'init' ), 1 );
123
+        add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 );
124
+        add_action( 'init', array( $this, 'wpinv_actions' ) );
125
+        add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
126
+        add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
127
+        add_action( 'wp_footer', array( $this, 'wp_footer' ) );
128
+        add_action( 'wp_head', array( $this, 'wp_head' ) );
129
+        add_action( 'widgets_init', array( $this, 'register_widgets' ) );
130
+        add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
131
+        add_filter( 'the_seo_framework_sitemap_supported_post_types', array( $this, 'exclude_invoicing_post_types' ) );
132
+        add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
133
+
134
+        add_filter( 'query_vars', array( $this, 'custom_query_vars' ) );
135 135
         add_action( 'init', array( $this, 'add_rewrite_rule' ), 10, 0 );
136
-		add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 );
137
-
138
-		// Fires after registering actions.
139
-		do_action( 'wpinv_actions', $this );
140
-		do_action( 'getpaid_actions', $this );
141
-
142
-	}
143
-
144
-	public function plugins_loaded() {
145
-		/* Internationalize the text strings used. */
146
-		$this->load_textdomain();
147
-
148
-		do_action( 'wpinv_loaded' );
149
-
150
-		// Fix oxygen page builder conflict
151
-		if ( function_exists( 'ct_css_output' ) ) {
152
-			wpinv_oxygen_fix_conflict();
153
-		}
154
-	}
155
-
156
-	/**
157
-	 * Load Localisation files.
158
-	 *
159
-	 * Note: the first-loaded translation file overrides any following ones if the same translation is present.
160
-	 *
161
-	 * Locales found in:
162
-	 *      - WP_LANG_DIR/plugins/invoicing-LOCALE.mo
163
-	 *      - WP_PLUGIN_DIR/invoicing/languages/invoicing-LOCALE.mo
164
-	 *
165
-	 * @since 1.0.0
166
-	 */
167
-	public function load_textdomain() {
168
-
169
-		load_plugin_textdomain(
170
-			'invoicing',
171
-			false,
172
-			plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/'
173
-		);
174
-
175
-	}
176
-
177
-	/**
178
-	 * Include required core files used in admin and on the frontend.
179
-	 */
180
-	public function includes() {
181
-
182
-		// Start with the settings.
183
-		require_once WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php';
184
-
185
-		// Packages/libraries.
186
-		require_once WPINV_PLUGIN_DIR . 'vendor/autoload.php';
187
-		require_once WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php';
188
-
189
-		// Load functions.
190
-		require_once WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php';
191
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php';
192
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php';
193
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php';
194
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php';
195
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php';
196
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php';
197
-		require_once WPINV_PLUGIN_DIR . 'includes/invoice-functions.php';
198
-		require_once WPINV_PLUGIN_DIR . 'includes/subscription-functions.php';
199
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php';
200
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php';
201
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php';
202
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php';
203
-		require_once WPINV_PLUGIN_DIR . 'includes/user-functions.php';
204
-		require_once WPINV_PLUGIN_DIR . 'includes/error-functions.php';
205
-
206
-		// Register autoloader.
207
-		try {
208
-			spl_autoload_register( array( $this, 'autoload' ), true );
209
-		} catch ( Exception $e ) {
210
-			wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
211
-		}
212
-
213
-		require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php';
214
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php';
215
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php';
216
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php';
217
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php';
218
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php';
219
-		require_once WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php';
220
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php';
221
-		require_once WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php';
222
-		require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php';
223
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php';
224
-		require_once WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php';
225
-		require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php';
226
-		require_once WPINV_PLUGIN_DIR . 'widgets/checkout.php';
227
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice-history.php';
228
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php';
229
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php';
230
-		require_once WPINV_PLUGIN_DIR . 'widgets/subscriptions.php';
231
-		require_once WPINV_PLUGIN_DIR . 'widgets/buy-item.php';
232
-		require_once WPINV_PLUGIN_DIR . 'widgets/getpaid.php';
233
-		require_once WPINV_PLUGIN_DIR . 'widgets/invoice.php';
234
-		require_once WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php';
235
-
236
-		if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
237
-			GetPaid_Post_Types_Admin::init();
238
-
239
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php';
240
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php';
241
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php';
242
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php';
243
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php';
244
-			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php';
245
-			// load the user class only on the users.php page
246
-			global $pagenow;
247
-			if ( $pagenow == 'users.php' ) {
248
-				new WPInv_Admin_Users();
249
-			}
250
-		}
251
-
252
-		// Register cli commands
253
-		if ( defined( 'WP_CLI' ) && WP_CLI ) {
254
-			require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php';
255
-			WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
256
-		}
257
-
258
-	}
259
-
260
-	/**
261
-	 * Class autoloader
262
-	 *
263
-	 * @param       string $class_name The name of the class to load.
264
-	 * @access      public
265
-	 * @since       1.0.19
266
-	 * @return      void
267
-	 */
268
-	public function autoload( $class_name ) {
269
-
270
-		// Normalize the class name...
271
-		$class_name  = strtolower( $class_name );
272
-
273
-		// ... and make sure it is our class.
274
-		if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
275
-			return;
276
-		}
277
-
278
-		// Next, prepare the file name from the class.
279
-		$file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
280
-
281
-		// Base path of the classes.
282
-		$plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
283
-
284
-		// And an array of possible locations in order of importance.
285
-		$locations = array(
286
-			"$plugin_path/includes",
287
-			"$plugin_path/includes/data-stores",
288
-			"$plugin_path/includes/gateways",
289
-			"$plugin_path/includes/payments",
290
-			"$plugin_path/includes/geolocation",
291
-			"$plugin_path/includes/reports",
292
-			"$plugin_path/includes/api",
293
-			"$plugin_path/includes/admin",
294
-			"$plugin_path/includes/admin/meta-boxes",
295
-		);
296
-
297
-		foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
298
-
299
-			if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
300
-				include trailingslashit( $location ) . $file_name;
301
-				break;
302
-			}
136
+        add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 );
137
+
138
+        // Fires after registering actions.
139
+        do_action( 'wpinv_actions', $this );
140
+        do_action( 'getpaid_actions', $this );
141
+
142
+    }
143
+
144
+    public function plugins_loaded() {
145
+        /* Internationalize the text strings used. */
146
+        $this->load_textdomain();
147
+
148
+        do_action( 'wpinv_loaded' );
149
+
150
+        // Fix oxygen page builder conflict
151
+        if ( function_exists( 'ct_css_output' ) ) {
152
+            wpinv_oxygen_fix_conflict();
153
+        }
154
+    }
155
+
156
+    /**
157
+     * Load Localisation files.
158
+     *
159
+     * Note: the first-loaded translation file overrides any following ones if the same translation is present.
160
+     *
161
+     * Locales found in:
162
+     *      - WP_LANG_DIR/plugins/invoicing-LOCALE.mo
163
+     *      - WP_PLUGIN_DIR/invoicing/languages/invoicing-LOCALE.mo
164
+     *
165
+     * @since 1.0.0
166
+     */
167
+    public function load_textdomain() {
168
+
169
+        load_plugin_textdomain(
170
+            'invoicing',
171
+            false,
172
+            plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/'
173
+        );
174
+
175
+    }
176
+
177
+    /**
178
+     * Include required core files used in admin and on the frontend.
179
+     */
180
+    public function includes() {
181
+
182
+        // Start with the settings.
183
+        require_once WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php';
184
+
185
+        // Packages/libraries.
186
+        require_once WPINV_PLUGIN_DIR . 'vendor/autoload.php';
187
+        require_once WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php';
188
+
189
+        // Load functions.
190
+        require_once WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php';
191
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php';
192
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php';
193
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php';
194
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php';
195
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php';
196
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php';
197
+        require_once WPINV_PLUGIN_DIR . 'includes/invoice-functions.php';
198
+        require_once WPINV_PLUGIN_DIR . 'includes/subscription-functions.php';
199
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php';
200
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php';
201
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php';
202
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php';
203
+        require_once WPINV_PLUGIN_DIR . 'includes/user-functions.php';
204
+        require_once WPINV_PLUGIN_DIR . 'includes/error-functions.php';
205
+
206
+        // Register autoloader.
207
+        try {
208
+            spl_autoload_register( array( $this, 'autoload' ), true );
209
+        } catch ( Exception $e ) {
210
+            wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
211
+        }
212
+
213
+        require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php';
214
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php';
215
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php';
216
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php';
217
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php';
218
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php';
219
+        require_once WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php';
220
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php';
221
+        require_once WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php';
222
+        require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php';
223
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php';
224
+        require_once WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php';
225
+        require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php';
226
+        require_once WPINV_PLUGIN_DIR . 'widgets/checkout.php';
227
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice-history.php';
228
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php';
229
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php';
230
+        require_once WPINV_PLUGIN_DIR . 'widgets/subscriptions.php';
231
+        require_once WPINV_PLUGIN_DIR . 'widgets/buy-item.php';
232
+        require_once WPINV_PLUGIN_DIR . 'widgets/getpaid.php';
233
+        require_once WPINV_PLUGIN_DIR . 'widgets/invoice.php';
234
+        require_once WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php';
235
+
236
+        if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
237
+            GetPaid_Post_Types_Admin::init();
238
+
239
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php';
240
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php';
241
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php';
242
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php';
243
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php';
244
+            require_once WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php';
245
+            // load the user class only on the users.php page
246
+            global $pagenow;
247
+            if ( $pagenow == 'users.php' ) {
248
+                new WPInv_Admin_Users();
249
+            }
250
+        }
251
+
252
+        // Register cli commands
253
+        if ( defined( 'WP_CLI' ) && WP_CLI ) {
254
+            require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php';
255
+            WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
256
+        }
257
+
258
+    }
259
+
260
+    /**
261
+     * Class autoloader
262
+     *
263
+     * @param       string $class_name The name of the class to load.
264
+     * @access      public
265
+     * @since       1.0.19
266
+     * @return      void
267
+     */
268
+    public function autoload( $class_name ) {
269
+
270
+        // Normalize the class name...
271
+        $class_name  = strtolower( $class_name );
272
+
273
+        // ... and make sure it is our class.
274
+        if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
275
+            return;
276
+        }
277
+
278
+        // Next, prepare the file name from the class.
279
+        $file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
280
+
281
+        // Base path of the classes.
282
+        $plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
283
+
284
+        // And an array of possible locations in order of importance.
285
+        $locations = array(
286
+            "$plugin_path/includes",
287
+            "$plugin_path/includes/data-stores",
288
+            "$plugin_path/includes/gateways",
289
+            "$plugin_path/includes/payments",
290
+            "$plugin_path/includes/geolocation",
291
+            "$plugin_path/includes/reports",
292
+            "$plugin_path/includes/api",
293
+            "$plugin_path/includes/admin",
294
+            "$plugin_path/includes/admin/meta-boxes",
295
+        );
296
+
297
+        foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
298
+
299
+            if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
300
+                include trailingslashit( $location ) . $file_name;
301
+                break;
302
+            }
303 303
 }
304 304
 
305
-	}
306
-
307
-	/**
308
-	 * Inits hooks etc.
309
-	 */
310
-	public function init() {
311
-
312
-		// Fires before getpaid inits.
313
-		do_action( 'before_getpaid_init', $this );
314
-
315
-		// Maybe upgrade.
316
-		$this->maybe_upgrade_database();
317
-
318
-		// Load default gateways.
319
-		$gateways = apply_filters(
320
-			'getpaid_default_gateways',
321
-			array(
322
-				'manual'        => 'GetPaid_Manual_Gateway',
323
-				'paypal'        => 'GetPaid_Paypal_Gateway',
324
-				'worldpay'      => 'GetPaid_Worldpay_Gateway',
325
-				'bank_transfer' => 'GetPaid_Bank_Transfer_Gateway',
326
-				'authorizenet'  => 'GetPaid_Authorize_Net_Gateway',
327
-			)
328
-		);
329
-
330
-		foreach ( $gateways as $id => $class ) {
331
-			$this->gateways[ $id ] = new $class();
332
-		}
333
-
334
-		if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) {
335
-			GetPaid_Installer::rename_gateways_label();
336
-			update_option( 'wpinv_renamed_gateways', 'yes' );
337
-		}
338
-
339
-		// Fires after getpaid inits.
340
-		do_action( 'getpaid_init', $this );
341
-
342
-	}
343
-
344
-	/**
345
-	 * Checks if this is an IPN request and processes it.
346
-	 */
347
-	public function maybe_process_ipn() {
348
-
349
-		// Ensure that this is an IPN request.
350
-		if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
351
-			return;
352
-		}
353
-
354
-		$gateway = sanitize_text_field( $_GET['wpi-gateway'] );
355
-
356
-		do_action( 'wpinv_verify_payment_ipn', $gateway );
357
-		do_action( "wpinv_verify_{$gateway}_ipn" );
358
-		exit;
359
-
360
-	}
361
-
362
-	public function enqueue_scripts() {
363
-
364
-		// Fires before adding scripts.
365
-		do_action( 'getpaid_enqueue_scripts' );
366
-
367
-		$localize                         = array();
368
-		$localize['ajax_url']             = admin_url( 'admin-ajax.php' );
369
-		$localize['thousands']            = wpinv_thousands_separator();
370
-		$localize['decimals']             = wpinv_decimal_separator();
371
-		$localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
372
-		$localize['txtComplete']          = __( 'Continue', 'invoicing' );
373
-		$localize['UseTaxes']             = wpinv_use_taxes();
374
-		$localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
375
-		$localize['loading']              = __( 'Loading...', 'invoicing' );
376
-		$localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
377
-		$localize['recaptchaSettings']    = getpaid_get_recaptcha_settings();
378
-
379
-		$localize = apply_filters( 'wpinv_front_js_localize', $localize );
380
-
381
-		// reCaptcha.
382
-		if ( getpaid_is_recaptcha_enabled() ) {
383
-			$url = apply_filters(
384
-				'getpaid_recaptcha_api_url',
385
-				add_query_arg(
386
-					array(
387
-						'render' => 'v2' === getpaid_get_recaptcha_version() ? 'explicit' : getpaid_get_recaptcha_site_key(),
388
-					),
389
-					'https://www.google.com/recaptcha/api.js'
390
-				)
391
-			);
392
-			wp_enqueue_script( 'recaptcha', $url, array(), null, true ); // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
393
-		}
394
-
395
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
396
-		wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true );
397
-		wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
398
-	}
399
-
400
-	public function wpinv_actions() {
401
-		if ( isset( $_REQUEST['wpi_action'] ) ) {
402
-			do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
403
-		}
404
-
405
-		if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) {
406
-			include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
407
-		}
408
-	}
409
-
410
-	/**
305
+    }
306
+
307
+    /**
308
+     * Inits hooks etc.
309
+     */
310
+    public function init() {
311
+
312
+        // Fires before getpaid inits.
313
+        do_action( 'before_getpaid_init', $this );
314
+
315
+        // Maybe upgrade.
316
+        $this->maybe_upgrade_database();
317
+
318
+        // Load default gateways.
319
+        $gateways = apply_filters(
320
+            'getpaid_default_gateways',
321
+            array(
322
+                'manual'        => 'GetPaid_Manual_Gateway',
323
+                'paypal'        => 'GetPaid_Paypal_Gateway',
324
+                'worldpay'      => 'GetPaid_Worldpay_Gateway',
325
+                'bank_transfer' => 'GetPaid_Bank_Transfer_Gateway',
326
+                'authorizenet'  => 'GetPaid_Authorize_Net_Gateway',
327
+            )
328
+        );
329
+
330
+        foreach ( $gateways as $id => $class ) {
331
+            $this->gateways[ $id ] = new $class();
332
+        }
333
+
334
+        if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) {
335
+            GetPaid_Installer::rename_gateways_label();
336
+            update_option( 'wpinv_renamed_gateways', 'yes' );
337
+        }
338
+
339
+        // Fires after getpaid inits.
340
+        do_action( 'getpaid_init', $this );
341
+
342
+    }
343
+
344
+    /**
345
+     * Checks if this is an IPN request and processes it.
346
+     */
347
+    public function maybe_process_ipn() {
348
+
349
+        // Ensure that this is an IPN request.
350
+        if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
351
+            return;
352
+        }
353
+
354
+        $gateway = sanitize_text_field( $_GET['wpi-gateway'] );
355
+
356
+        do_action( 'wpinv_verify_payment_ipn', $gateway );
357
+        do_action( "wpinv_verify_{$gateway}_ipn" );
358
+        exit;
359
+
360
+    }
361
+
362
+    public function enqueue_scripts() {
363
+
364
+        // Fires before adding scripts.
365
+        do_action( 'getpaid_enqueue_scripts' );
366
+
367
+        $localize                         = array();
368
+        $localize['ajax_url']             = admin_url( 'admin-ajax.php' );
369
+        $localize['thousands']            = wpinv_thousands_separator();
370
+        $localize['decimals']             = wpinv_decimal_separator();
371
+        $localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
372
+        $localize['txtComplete']          = __( 'Continue', 'invoicing' );
373
+        $localize['UseTaxes']             = wpinv_use_taxes();
374
+        $localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
375
+        $localize['loading']              = __( 'Loading...', 'invoicing' );
376
+        $localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
377
+        $localize['recaptchaSettings']    = getpaid_get_recaptcha_settings();
378
+
379
+        $localize = apply_filters( 'wpinv_front_js_localize', $localize );
380
+
381
+        // reCaptcha.
382
+        if ( getpaid_is_recaptcha_enabled() ) {
383
+            $url = apply_filters(
384
+                'getpaid_recaptcha_api_url',
385
+                add_query_arg(
386
+                    array(
387
+                        'render' => 'v2' === getpaid_get_recaptcha_version() ? 'explicit' : getpaid_get_recaptcha_site_key(),
388
+                    ),
389
+                    'https://www.google.com/recaptcha/api.js'
390
+                )
391
+            );
392
+            wp_enqueue_script( 'recaptcha', $url, array(), null, true ); // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
393
+        }
394
+
395
+        $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
396
+        wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true );
397
+        wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
398
+    }
399
+
400
+    public function wpinv_actions() {
401
+        if ( isset( $_REQUEST['wpi_action'] ) ) {
402
+            do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
403
+        }
404
+
405
+        if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) {
406
+            include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
407
+        }
408
+    }
409
+
410
+    /**
411 411
      * Fires an action after verifying that a user can fire them.
412
-	 *
413
-	 * Note: If the action is on an invoice, subscription etc, esure that the
414
-	 * current user owns the invoice/subscription.
412
+     *
413
+     * Note: If the action is on an invoice, subscription etc, esure that the
414
+     * current user owns the invoice/subscription.
415 415
      */
416 416
     public function maybe_do_authenticated_action() {
417 417
 
418
-		if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
418
+        if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
419 419
 
420
-			$key  = sanitize_key( $_REQUEST['getpaid-action'] );
421
-			$data = wp_unslash( $_REQUEST );
422
-			if ( is_user_logged_in() ) {
423
-				do_action( "getpaid_authenticated_action_$key", $data );
424
-			}
420
+            $key  = sanitize_key( $_REQUEST['getpaid-action'] );
421
+            $data = wp_unslash( $_REQUEST );
422
+            if ( is_user_logged_in() ) {
423
+                do_action( "getpaid_authenticated_action_$key", $data );
424
+            }
425 425
 
426
-			do_action( "getpaid_unauthenticated_action_$key", $data );
426
+            do_action( "getpaid_unauthenticated_action_$key", $data );
427 427
 
428
-		}
428
+        }
429 429
 
430 430
     }
431 431
 
432
-	public function pre_get_posts( $wp_query ) {
433
-
434
-		if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
435
-			$wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) );
436
-		}
437
-
438
-		return $wp_query;
439
-	}
440
-
441
-	/**
442
-	 * Register widgets
443
-	 *
444
-	 */
445
-	public function register_widgets() {
446
-		global $pagenow;
447
-
448
-		// Currently, UX Builder does not work particulaly well with SuperDuper.
449
-		// So we disable our widgets when editing a page with UX Builder.
450
-		if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) {
451
-			return;
452
-		}
453
-
454
-		$block_widget_init_screens = function_exists( 'sd_pagenow_exclude' ) ? sd_pagenow_exclude() : array();
455
-
456
-		if ( is_admin() && $pagenow && in_array( $pagenow, $block_widget_init_screens ) ) {
457
-			// don't initiate in these conditions.
458
-		} else {
459
-
460
-			// Only load allowed widgets.
461
-			$exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array();
462
-			$widgets = apply_filters(
463
-				'getpaid_widget_classes',
464
-				array(
465
-					'WPInv_Checkout_Widget',
466
-					'WPInv_History_Widget',
467
-					'WPInv_Receipt_Widget',
468
-					'WPInv_Subscriptions_Widget',
469
-					'WPInv_Buy_Item_Widget',
470
-					'WPInv_Messages_Widget',
471
-					'WPInv_GetPaid_Widget',
472
-					'WPInv_Invoice_Widget',
473
-				)
474
-			);
475
-
476
-			// For each widget...
477
-			foreach ( $widgets as $widget ) {
478
-
479
-				// Abort early if it is excluded for this page.
480
-				if ( in_array( $widget, $exclude ) ) {
481
-					continue;
482
-				}
483
-
484
-				// SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it.
485
-				if ( is_subclass_of( $widget, 'WP_Widget' ) ) {
486
-					register_widget( $widget );
487
-				} else {
488
-					new $widget();
489
-				}
432
+    public function pre_get_posts( $wp_query ) {
433
+
434
+        if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
435
+            $wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) );
436
+        }
437
+
438
+        return $wp_query;
439
+    }
440
+
441
+    /**
442
+     * Register widgets
443
+     *
444
+     */
445
+    public function register_widgets() {
446
+        global $pagenow;
447
+
448
+        // Currently, UX Builder does not work particulaly well with SuperDuper.
449
+        // So we disable our widgets when editing a page with UX Builder.
450
+        if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) {
451
+            return;
452
+        }
453
+
454
+        $block_widget_init_screens = function_exists( 'sd_pagenow_exclude' ) ? sd_pagenow_exclude() : array();
455
+
456
+        if ( is_admin() && $pagenow && in_array( $pagenow, $block_widget_init_screens ) ) {
457
+            // don't initiate in these conditions.
458
+        } else {
459
+
460
+            // Only load allowed widgets.
461
+            $exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array();
462
+            $widgets = apply_filters(
463
+                'getpaid_widget_classes',
464
+                array(
465
+                    'WPInv_Checkout_Widget',
466
+                    'WPInv_History_Widget',
467
+                    'WPInv_Receipt_Widget',
468
+                    'WPInv_Subscriptions_Widget',
469
+                    'WPInv_Buy_Item_Widget',
470
+                    'WPInv_Messages_Widget',
471
+                    'WPInv_GetPaid_Widget',
472
+                    'WPInv_Invoice_Widget',
473
+                )
474
+            );
475
+
476
+            // For each widget...
477
+            foreach ( $widgets as $widget ) {
478
+
479
+                // Abort early if it is excluded for this page.
480
+                if ( in_array( $widget, $exclude ) ) {
481
+                    continue;
482
+                }
483
+
484
+                // SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it.
485
+                if ( is_subclass_of( $widget, 'WP_Widget' ) ) {
486
+                    register_widget( $widget );
487
+                } else {
488
+                    new $widget();
489
+                }
490 490
 }
491 491
 }
492 492
 
493
-	}
493
+    }
494
+
495
+    /**
496
+     * Upgrades the database.
497
+     *
498
+     * @since 2.0.2
499
+     */
500
+    public function maybe_upgrade_database() {
501
+
502
+        // Ensure the database tables are up to date.
503
+        GetPaid_Installer::maybe_create_db_tables();
504
+
505
+        $wpi_version = get_option( 'wpinv_version', 0 );
506
+
507
+        if ( $wpi_version == WPINV_VERSION ) {
508
+            return;
509
+        }
510
+
511
+        $installer = new GetPaid_Installer();
512
+
513
+        if ( empty( $wpi_version ) ) {
514
+            return $installer->upgrade_db( 0 );
515
+        }
516
+
517
+        $upgrades  = array(
518
+            '0.0.5' => '004',
519
+            '1.0.3' => '102',
520
+            '2.0.0' => '118',
521
+            '2.8.0' => '279',
522
+        );
523
+
524
+        foreach ( $upgrades as $key => $method ) {
525
+
526
+            if ( version_compare( $wpi_version, $key, '<' ) ) {
527
+                return $installer->upgrade_db( $method );
528
+            }
529
+        }
530
+
531
+    }
532
+
533
+    /**
534
+     * Flushes the permalinks if needed.
535
+     *
536
+     * @since 2.0.8
537
+     */
538
+    public function maybe_flush_permalinks() {
539
+
540
+        $flush = get_option( 'wpinv_flush_permalinks', 0 );
541
+
542
+        if ( ! empty( $flush ) ) {
543
+            flush_rewrite_rules();
544
+            delete_option( 'wpinv_flush_permalinks' );
545
+        }
546
+
547
+    }
548
+
549
+    /**
550
+     * Remove our pages from yoast sitemaps.
551
+     *
552
+     * @since 1.0.19
553
+     * @param int[] $excluded_posts_ids
554
+     */
555
+    public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ) {
556
+
557
+        // Ensure that we have an array.
558
+        if ( ! is_array( $excluded_posts_ids ) ) {
559
+            $excluded_posts_ids = array();
560
+        }
561
+
562
+        // Prepare our pages.
563
+        $our_pages = array();
564
+
565
+        // Checkout page.
566
+        $our_pages[] = wpinv_get_option( 'checkout_page', false );
567
+
568
+        // Success page.
569
+        $our_pages[] = wpinv_get_option( 'success_page', false );
570
+
571
+        // Failure page.
572
+        $our_pages[] = wpinv_get_option( 'failure_page', false );
494 573
 
495
-	/**
496
-	 * Upgrades the database.
497
-	 *
498
-	 * @since 2.0.2
499
-	 */
500
-	public function maybe_upgrade_database() {
574
+        // History page.
575
+        $our_pages[] = wpinv_get_option( 'invoice_history_page', false );
501 576
 
502
-		// Ensure the database tables are up to date.
503
-		GetPaid_Installer::maybe_create_db_tables();
577
+        // Subscriptions page.
578
+        $our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
504 579
 
505
-		$wpi_version = get_option( 'wpinv_version', 0 );
580
+        $our_pages   = array_map( 'intval', array_filter( $our_pages ) );
506 581
 
507
-		if ( $wpi_version == WPINV_VERSION ) {
508
-			return;
509
-		}
582
+        $excluded_posts_ids = $excluded_posts_ids + $our_pages;
583
+        return array_unique( $excluded_posts_ids );
510 584
 
511
-		$installer = new GetPaid_Installer();
585
+    }
586
+
587
+    /**
588
+     * Remove our pages from yoast sitemaps.
589
+     *
590
+     * @since 1.0.19
591
+     * @param string[] $post_types
592
+     */
593
+    public function exclude_invoicing_post_types( $post_types ) {
594
+
595
+        // Ensure that we have an array.
596
+        if ( ! is_array( $post_types ) ) {
597
+            $post_types = array();
598
+        }
599
+
600
+        // Remove our post types.
601
+        return array_diff( $post_types, array_keys( getpaid_get_invoice_post_types() ) );
602
+    }
603
+
604
+    /**
605
+     * Displays additional footer code.
606
+     *
607
+     * @since 2.0.0
608
+     */
609
+    public function wp_footer() {
610
+        wpinv_get_template( 'frontend-footer.php' );
611
+    }
512 612
 
513
-		if ( empty( $wpi_version ) ) {
514
-			return $installer->upgrade_db( 0 );
515
-		}
613
+    /**
614
+     * Displays additional header code.
615
+     *
616
+     * @since 2.0.0
617
+     */
618
+    public function wp_head() {
619
+        wpinv_get_template( 'frontend-head.php' );
620
+    }
516 621
 
517
-		$upgrades  = array(
518
-			'0.0.5' => '004',
519
-			'1.0.3' => '102',
520
-			'2.0.0' => '118',
521
-			'2.8.0' => '279',
522
-		);
523
-
524
-		foreach ( $upgrades as $key => $method ) {
525
-
526
-			if ( version_compare( $wpi_version, $key, '<' ) ) {
527
-				return $installer->upgrade_db( $method );
528
-			}
529
-		}
530
-
531
-	}
532
-
533
-	/**
534
-	 * Flushes the permalinks if needed.
535
-	 *
536
-	 * @since 2.0.8
537
-	 */
538
-	public function maybe_flush_permalinks() {
539
-
540
-		$flush = get_option( 'wpinv_flush_permalinks', 0 );
541
-
542
-		if ( ! empty( $flush ) ) {
543
-			flush_rewrite_rules();
544
-			delete_option( 'wpinv_flush_permalinks' );
545
-		}
546
-
547
-	}
548
-
549
-	/**
550
-	 * Remove our pages from yoast sitemaps.
551
-	 *
552
-	 * @since 1.0.19
553
-	 * @param int[] $excluded_posts_ids
554
-	 */
555
-	public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ) {
556
-
557
-		// Ensure that we have an array.
558
-		if ( ! is_array( $excluded_posts_ids ) ) {
559
-			$excluded_posts_ids = array();
560
-		}
561
-
562
-		// Prepare our pages.
563
-		$our_pages = array();
564
-
565
-		// Checkout page.
566
-		$our_pages[] = wpinv_get_option( 'checkout_page', false );
567
-
568
-		// Success page.
569
-		$our_pages[] = wpinv_get_option( 'success_page', false );
570
-
571
-		// Failure page.
572
-		$our_pages[] = wpinv_get_option( 'failure_page', false );
573
-
574
-		// History page.
575
-		$our_pages[] = wpinv_get_option( 'invoice_history_page', false );
576
-
577
-		// Subscriptions page.
578
-		$our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
579
-
580
-		$our_pages   = array_map( 'intval', array_filter( $our_pages ) );
581
-
582
-		$excluded_posts_ids = $excluded_posts_ids + $our_pages;
583
-		return array_unique( $excluded_posts_ids );
584
-
585
-	}
586
-
587
-	/**
588
-	 * Remove our pages from yoast sitemaps.
589
-	 *
590
-	 * @since 1.0.19
591
-	 * @param string[] $post_types
592
-	 */
593
-	public function exclude_invoicing_post_types( $post_types ) {
594
-
595
-		// Ensure that we have an array.
596
-		if ( ! is_array( $post_types ) ) {
597
-			$post_types = array();
598
-		}
599
-
600
-		// Remove our post types.
601
-		return array_diff( $post_types, array_keys( getpaid_get_invoice_post_types() ) );
602
-	}
603
-
604
-	/**
605
-	 * Displays additional footer code.
606
-	 *
607
-	 * @since 2.0.0
608
-	 */
609
-	public function wp_footer() {
610
-		wpinv_get_template( 'frontend-footer.php' );
611
-	}
612
-
613
-	/**
614
-	 * Displays additional header code.
615
-	 *
616
-	 * @since 2.0.0
617
-	 */
618
-	public function wp_head() {
619
-		wpinv_get_template( 'frontend-head.php' );
620
-	}
621
-
622
-	/**
623
-	 * Custom query vars.
624
-	 *
625
-	 */
626
-	public function custom_query_vars( $vars ) {
622
+    /**
623
+     * Custom query vars.
624
+     *
625
+     */
626
+    public function custom_query_vars( $vars ) {
627 627
         $vars[] = 'getpaid-ipn';
628 628
         return $vars;
629
-	}
629
+    }
630 630
 
631
-	/**
632
-	 * Add rewrite tags and rules.
633
-	 *
634
-	 */
635
-	public function add_rewrite_rule() {
631
+    /**
632
+     * Add rewrite tags and rules.
633
+     *
634
+     */
635
+    public function add_rewrite_rule() {
636 636
         $tag = 'getpaid-ipn';
637 637
         add_rewrite_tag( "%$tag%", '([^&]+)' );
638 638
         add_rewrite_rule( "^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top' );
639
-	}
639
+    }
640 640
 
641
-	/**
642
-	 * Processes non-query string ipns.
643
-	 *
644
-	 */
645
-	public function maybe_process_new_ipn( $query ) {
641
+    /**
642
+     * Processes non-query string ipns.
643
+     *
644
+     */
645
+    public function maybe_process_new_ipn( $query ) {
646 646
 
647 647
         if ( is_admin() || ! $query->is_main_query() ) {
648 648
             return;
649 649
         }
650 650
 
651
-		$gateway = get_query_var( 'getpaid-ipn' );
651
+        $gateway = get_query_var( 'getpaid-ipn' );
652 652
 
653 653
         if ( ! empty( $gateway ) ) {
654 654
 
655
-			$gateway = sanitize_text_field( $gateway );
656
-			nocache_headers();
657
-			do_action( 'wpinv_verify_payment_ipn', $gateway );
658
-			do_action( "wpinv_verify_{$gateway}_ipn" );
659
-			exit;
655
+            $gateway = sanitize_text_field( $gateway );
656
+            nocache_headers();
657
+            do_action( 'wpinv_verify_payment_ipn', $gateway );
658
+            do_action( "wpinv_verify_{$gateway}_ipn" );
659
+            exit;
660 660
 
661 661
         }
662 662
 
663
-	}
663
+    }
664 664
 
665 665
 }
Please login to merge, or discard this patch.
Spacing   +136 added lines, -136 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @since   1.0.0
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Main Invoicing class.
@@ -56,8 +56,8 @@  discard block
 block discarded – undo
56 56
 	 * @param string $prop The prop to set.
57 57
 	 * @param mixed $value The value to retrieve.
58 58
 	 */
59
-	public function set( $prop, $value ) {
60
-		$this->data[ $prop ] = $value;
59
+	public function set($prop, $value) {
60
+		$this->data[$prop] = $value;
61 61
 	}
62 62
 
63 63
 	/**
@@ -66,10 +66,10 @@  discard block
 block discarded – undo
66 66
 	 * @param string $prop The prop to set.
67 67
 	 * @return mixed The value.
68 68
 	 */
69
-	public function get( $prop ) {
69
+	public function get($prop) {
70 70
 
71
-		if ( isset( $this->data[ $prop ] ) ) {
72
-			return $this->data[ $prop ];
71
+		if (isset($this->data[$prop])) {
72
+			return $this->data[$prop];
73 73
 		}
74 74
 
75 75
 		return null;
@@ -81,22 +81,22 @@  discard block
 block discarded – undo
81 81
 	public function set_properties() {
82 82
 
83 83
 		// Sessions.
84
-		$this->set( 'session', new WPInv_Session_Handler() );
85
-		$GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
84
+		$this->set('session', new WPInv_Session_Handler());
85
+		$GLOBALS['wpi_session'] = $this->get('session'); // Backwards compatibility.
86 86
 		$GLOBALS['wpinv_euvat'] = new WPInv_EUVat(); // Backwards compatibility.
87 87
 
88 88
 		// Init other objects.
89
-		$this->set( 'notes', new WPInv_Notes() );
90
-		$this->set( 'api', new WPInv_API() );
91
-		$this->set( 'post_types', new GetPaid_Post_Types() );
92
-		$this->set( 'template', new GetPaid_Template() );
93
-		$this->set( 'admin', new GetPaid_Admin() );
94
-		$this->set( 'subscriptions', new WPInv_Subscriptions() );
95
-		$this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
96
-		$this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
97
-		$this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
98
-		$this->set( 'payment_forms', new GetPaid_Payment_Forms() );
99
-		$this->set( 'maxmind', new GetPaid_MaxMind_Geolocation() );
89
+		$this->set('notes', new WPInv_Notes());
90
+		$this->set('api', new WPInv_API());
91
+		$this->set('post_types', new GetPaid_Post_Types());
92
+		$this->set('template', new GetPaid_Template());
93
+		$this->set('admin', new GetPaid_Admin());
94
+		$this->set('subscriptions', new WPInv_Subscriptions());
95
+		$this->set('invoice_emails', new GetPaid_Invoice_Notification_Emails());
96
+		$this->set('subscription_emails', new GetPaid_Subscription_Notification_Emails());
97
+		$this->set('daily_maintenace', new GetPaid_Daily_Maintenance());
98
+		$this->set('payment_forms', new GetPaid_Payment_Forms());
99
+		$this->set('maxmind', new GetPaid_MaxMind_Geolocation());
100 100
 
101 101
 	}
102 102
 
@@ -104,8 +104,8 @@  discard block
 block discarded – undo
104 104
 	 * Define plugin constants.
105 105
 	 */
106 106
 	public function define_constants() {
107
-		define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
108
-		define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
107
+		define('WPINV_PLUGIN_DIR', plugin_dir_path(WPINV_PLUGIN_FILE));
108
+		define('WPINV_PLUGIN_URL', plugin_dir_url(WPINV_PLUGIN_FILE));
109 109
 		$this->version = WPINV_VERSION;
110 110
 	}
111 111
 
@@ -116,28 +116,28 @@  discard block
 block discarded – undo
116 116
 	 */
117 117
 	protected function init_hooks() {
118 118
 		/* Internationalize the text strings used. */
119
-		add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
119
+		add_action('plugins_loaded', array(&$this, 'plugins_loaded'));
120 120
 
121 121
 		// Init the plugin after WordPress inits.
122
-		add_action( 'init', array( $this, 'init' ), 1 );
123
-		add_action( 'init', array( $this, 'maybe_process_ipn' ), 10 );
124
-		add_action( 'init', array( $this, 'wpinv_actions' ) );
125
-		add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
126
-		add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
127
-		add_action( 'wp_footer', array( $this, 'wp_footer' ) );
128
-		add_action( 'wp_head', array( $this, 'wp_head' ) );
129
-		add_action( 'widgets_init', array( $this, 'register_widgets' ) );
130
-		add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
131
-		add_filter( 'the_seo_framework_sitemap_supported_post_types', array( $this, 'exclude_invoicing_post_types' ) );
132
-		add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
133
-
134
-		add_filter( 'query_vars', array( $this, 'custom_query_vars' ) );
135
-        add_action( 'init', array( $this, 'add_rewrite_rule' ), 10, 0 );
136
-		add_action( 'pre_get_posts', array( $this, 'maybe_process_new_ipn' ), 1 );
122
+		add_action('init', array($this, 'init'), 1);
123
+		add_action('init', array($this, 'maybe_process_ipn'), 10);
124
+		add_action('init', array($this, 'wpinv_actions'));
125
+		add_action('init', array($this, 'maybe_do_authenticated_action'), 100);
126
+		add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 11);
127
+		add_action('wp_footer', array($this, 'wp_footer'));
128
+		add_action('wp_head', array($this, 'wp_head'));
129
+		add_action('widgets_init', array($this, 'register_widgets'));
130
+		add_filter('wpseo_exclude_from_sitemap_by_post_ids', array($this, 'wpseo_exclude_from_sitemap_by_post_ids'));
131
+		add_filter('the_seo_framework_sitemap_supported_post_types', array($this, 'exclude_invoicing_post_types'));
132
+		add_filter('pre_get_posts', array(&$this, 'pre_get_posts'));
133
+
134
+		add_filter('query_vars', array($this, 'custom_query_vars'));
135
+        add_action('init', array($this, 'add_rewrite_rule'), 10, 0);
136
+		add_action('pre_get_posts', array($this, 'maybe_process_new_ipn'), 1);
137 137
 
138 138
 		// Fires after registering actions.
139
-		do_action( 'wpinv_actions', $this );
140
-		do_action( 'getpaid_actions', $this );
139
+		do_action('wpinv_actions', $this);
140
+		do_action('getpaid_actions', $this);
141 141
 
142 142
 	}
143 143
 
@@ -145,10 +145,10 @@  discard block
 block discarded – undo
145 145
 		/* Internationalize the text strings used. */
146 146
 		$this->load_textdomain();
147 147
 
148
-		do_action( 'wpinv_loaded' );
148
+		do_action('wpinv_loaded');
149 149
 
150 150
 		// Fix oxygen page builder conflict
151
-		if ( function_exists( 'ct_css_output' ) ) {
151
+		if (function_exists('ct_css_output')) {
152 152
 			wpinv_oxygen_fix_conflict();
153 153
 		}
154 154
 	}
@@ -169,7 +169,7 @@  discard block
 block discarded – undo
169 169
 		load_plugin_textdomain(
170 170
 			'invoicing',
171 171
 			false,
172
-			plugin_basename( dirname( WPINV_PLUGIN_FILE ) ) . '/languages/'
172
+			plugin_basename(dirname(WPINV_PLUGIN_FILE)) . '/languages/'
173 173
 		);
174 174
 
175 175
 	}
@@ -205,9 +205,9 @@  discard block
 block discarded – undo
205 205
 
206 206
 		// Register autoloader.
207 207
 		try {
208
-			spl_autoload_register( array( $this, 'autoload' ), true );
209
-		} catch ( Exception $e ) {
210
-			wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
208
+			spl_autoload_register(array($this, 'autoload'), true);
209
+		} catch (Exception $e) {
210
+			wpinv_error_log($e->getMessage(), '', __FILE__, 149, true);
211 211
 		}
212 212
 
213 213
 		require_once WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php';
@@ -233,7 +233,7 @@  discard block
 block discarded – undo
233 233
 		require_once WPINV_PLUGIN_DIR . 'widgets/invoice.php';
234 234
 		require_once WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php';
235 235
 
236
-		if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
236
+		if (is_admin() || (defined('WP_CLI') && WP_CLI)) {
237 237
 			GetPaid_Post_Types_Admin::init();
238 238
 
239 239
 			require_once WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php';
@@ -244,15 +244,15 @@  discard block
 block discarded – undo
244 244
 			require_once WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php';
245 245
 			// load the user class only on the users.php page
246 246
 			global $pagenow;
247
-			if ( $pagenow == 'users.php' ) {
247
+			if ($pagenow == 'users.php') {
248 248
 				new WPInv_Admin_Users();
249 249
 			}
250 250
 		}
251 251
 
252 252
 		// Register cli commands
253
-		if ( defined( 'WP_CLI' ) && WP_CLI ) {
253
+		if (defined('WP_CLI') && WP_CLI) {
254 254
 			require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php';
255
-			WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
255
+			WP_CLI::add_command('invoicing', 'WPInv_CLI');
256 256
 		}
257 257
 
258 258
 	}
@@ -265,21 +265,21 @@  discard block
 block discarded – undo
265 265
 	 * @since       1.0.19
266 266
 	 * @return      void
267 267
 	 */
268
-	public function autoload( $class_name ) {
268
+	public function autoload($class_name) {
269 269
 
270 270
 		// Normalize the class name...
271
-		$class_name  = strtolower( $class_name );
271
+		$class_name = strtolower($class_name);
272 272
 
273 273
 		// ... and make sure it is our class.
274
-		if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
274
+		if (false === strpos($class_name, 'getpaid_') && false === strpos($class_name, 'wpinv_')) {
275 275
 			return;
276 276
 		}
277 277
 
278 278
 		// Next, prepare the file name from the class.
279
-		$file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
279
+		$file_name = 'class-' . str_replace('_', '-', $class_name) . '.php';
280 280
 
281 281
 		// Base path of the classes.
282
-		$plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
282
+		$plugin_path = untrailingslashit(WPINV_PLUGIN_DIR);
283 283
 
284 284
 		// And an array of possible locations in order of importance.
285 285
 		$locations = array(
@@ -294,10 +294,10 @@  discard block
 block discarded – undo
294 294
 			"$plugin_path/includes/admin/meta-boxes",
295 295
 		);
296 296
 
297
-		foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
297
+		foreach (apply_filters('getpaid_autoload_locations', $locations) as $location) {
298 298
 
299
-			if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
300
-				include trailingslashit( $location ) . $file_name;
299
+			if (file_exists(trailingslashit($location) . $file_name)) {
300
+				include trailingslashit($location) . $file_name;
301 301
 				break;
302 302
 			}
303 303
 }
@@ -310,7 +310,7 @@  discard block
 block discarded – undo
310 310
 	public function init() {
311 311
 
312 312
 		// Fires before getpaid inits.
313
-		do_action( 'before_getpaid_init', $this );
313
+		do_action('before_getpaid_init', $this);
314 314
 
315 315
 		// Maybe upgrade.
316 316
 		$this->maybe_upgrade_database();
@@ -327,17 +327,17 @@  discard block
 block discarded – undo
327 327
 			)
328 328
 		);
329 329
 
330
-		foreach ( $gateways as $id => $class ) {
331
-			$this->gateways[ $id ] = new $class();
330
+		foreach ($gateways as $id => $class) {
331
+			$this->gateways[$id] = new $class();
332 332
 		}
333 333
 
334
-		if ( 'yes' != get_option( 'wpinv_renamed_gateways' ) ) {
334
+		if ('yes' != get_option('wpinv_renamed_gateways')) {
335 335
 			GetPaid_Installer::rename_gateways_label();
336
-			update_option( 'wpinv_renamed_gateways', 'yes' );
336
+			update_option('wpinv_renamed_gateways', 'yes');
337 337
 		}
338 338
 
339 339
 		// Fires after getpaid inits.
340
-		do_action( 'getpaid_init', $this );
340
+		do_action('getpaid_init', $this);
341 341
 
342 342
 	}
343 343
 
@@ -347,14 +347,14 @@  discard block
 block discarded – undo
347 347
 	public function maybe_process_ipn() {
348 348
 
349 349
 		// Ensure that this is an IPN request.
350
-		if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
350
+		if (empty($_GET['wpi-listener']) || 'IPN' !== $_GET['wpi-listener'] || empty($_GET['wpi-gateway'])) {
351 351
 			return;
352 352
 		}
353 353
 
354
-		$gateway = sanitize_text_field( $_GET['wpi-gateway'] );
354
+		$gateway = sanitize_text_field($_GET['wpi-gateway']);
355 355
 
356
-		do_action( 'wpinv_verify_payment_ipn', $gateway );
357
-		do_action( "wpinv_verify_{$gateway}_ipn" );
356
+		do_action('wpinv_verify_payment_ipn', $gateway);
357
+		do_action("wpinv_verify_{$gateway}_ipn");
358 358
 		exit;
359 359
 
360 360
 	}
@@ -362,24 +362,24 @@  discard block
 block discarded – undo
362 362
 	public function enqueue_scripts() {
363 363
 
364 364
 		// Fires before adding scripts.
365
-		do_action( 'getpaid_enqueue_scripts' );
365
+		do_action('getpaid_enqueue_scripts');
366 366
 
367 367
 		$localize                         = array();
368
-		$localize['ajax_url']             = admin_url( 'admin-ajax.php' );
368
+		$localize['ajax_url']             = admin_url('admin-ajax.php');
369 369
 		$localize['thousands']            = wpinv_thousands_separator();
370 370
 		$localize['decimals']             = wpinv_decimal_separator();
371
-		$localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
372
-		$localize['txtComplete']          = __( 'Continue', 'invoicing' );
371
+		$localize['nonce']                = wp_create_nonce('wpinv-nonce');
372
+		$localize['txtComplete']          = __('Continue', 'invoicing');
373 373
 		$localize['UseTaxes']             = wpinv_use_taxes();
374
-		$localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
375
-		$localize['loading']              = __( 'Loading...', 'invoicing' );
376
-		$localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
374
+		$localize['formNonce']            = wp_create_nonce('getpaid_form_nonce');
375
+		$localize['loading']              = __('Loading...', 'invoicing');
376
+		$localize['connectionError']      = __('Could not establish a connection to the server.', 'invoicing');
377 377
 		$localize['recaptchaSettings']    = getpaid_get_recaptcha_settings();
378 378
 
379
-		$localize = apply_filters( 'wpinv_front_js_localize', $localize );
379
+		$localize = apply_filters('wpinv_front_js_localize', $localize);
380 380
 
381 381
 		// reCaptcha.
382
-		if ( getpaid_is_recaptcha_enabled() ) {
382
+		if (getpaid_is_recaptcha_enabled()) {
383 383
 			$url = apply_filters(
384 384
 				'getpaid_recaptcha_api_url',
385 385
 				add_query_arg(
@@ -389,21 +389,21 @@  discard block
 block discarded – undo
389 389
 					'https://www.google.com/recaptcha/api.js'
390 390
 				)
391 391
 			);
392
-			wp_enqueue_script( 'recaptcha', $url, array(), null, true ); // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
392
+			wp_enqueue_script('recaptcha', $url, array(), null, true); // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion
393 393
 		}
394 394
 
395
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
396
-		wp_enqueue_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'jquery' ), $version, true );
397
-		wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
395
+		$version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js');
396
+		wp_enqueue_script('wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array('jquery'), $version, true);
397
+		wp_localize_script('wpinv-front-script', 'WPInv', $localize);
398 398
 	}
399 399
 
400 400
 	public function wpinv_actions() {
401
-		if ( isset( $_REQUEST['wpi_action'] ) ) {
402
-			do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
401
+		if (isset($_REQUEST['wpi_action'])) {
402
+			do_action('wpinv_' . wpinv_sanitize_key($_REQUEST['wpi_action']), $_REQUEST);
403 403
 		}
404 404
 
405
-		if ( defined( 'WP_ALL_IMPORT_ROOT_DIR' ) ) {
406
-			include plugin_dir_path( __FILE__ ) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
405
+		if (defined('WP_ALL_IMPORT_ROOT_DIR')) {
406
+			include plugin_dir_path(__FILE__) . 'libraries/wp-all-import/class-getpaid-wp-all-import.php';
407 407
 		}
408 408
 	}
409 409
 
@@ -415,24 +415,24 @@  discard block
 block discarded – undo
415 415
      */
416 416
     public function maybe_do_authenticated_action() {
417 417
 
418
-		if ( isset( $_REQUEST['getpaid-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
418
+		if (isset($_REQUEST['getpaid-action']) && isset($_REQUEST['getpaid-nonce']) && wp_verify_nonce($_REQUEST['getpaid-nonce'], 'getpaid-nonce')) {
419 419
 
420
-			$key  = sanitize_key( $_REQUEST['getpaid-action'] );
421
-			$data = wp_unslash( $_REQUEST );
422
-			if ( is_user_logged_in() ) {
423
-				do_action( "getpaid_authenticated_action_$key", $data );
420
+			$key  = sanitize_key($_REQUEST['getpaid-action']);
421
+			$data = wp_unslash($_REQUEST);
422
+			if (is_user_logged_in()) {
423
+				do_action("getpaid_authenticated_action_$key", $data);
424 424
 			}
425 425
 
426
-			do_action( "getpaid_unauthenticated_action_$key", $data );
426
+			do_action("getpaid_unauthenticated_action_$key", $data);
427 427
 
428 428
 		}
429 429
 
430 430
     }
431 431
 
432
-	public function pre_get_posts( $wp_query ) {
432
+	public function pre_get_posts($wp_query) {
433 433
 
434
-		if ( ! is_admin() && ! empty( $wp_query->query_vars['post_type'] ) && getpaid_is_invoice_post_type( $wp_query->query_vars['post_type'] ) && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
435
-			$wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses( false, false, $wp_query->query_vars['post_type'] ) );
434
+		if (!is_admin() && !empty($wp_query->query_vars['post_type']) && getpaid_is_invoice_post_type($wp_query->query_vars['post_type']) && is_user_logged_in() && is_single() && $wp_query->is_main_query()) {
435
+			$wp_query->query_vars['post_status'] = array_keys(wpinv_get_invoice_statuses(false, false, $wp_query->query_vars['post_type']));
436 436
 		}
437 437
 
438 438
 		return $wp_query;
@@ -447,18 +447,18 @@  discard block
 block discarded – undo
447 447
 
448 448
 		// Currently, UX Builder does not work particulaly well with SuperDuper.
449 449
 		// So we disable our widgets when editing a page with UX Builder.
450
-		if ( function_exists( 'ux_builder_is_active' ) && ux_builder_is_active() ) {
450
+		if (function_exists('ux_builder_is_active') && ux_builder_is_active()) {
451 451
 			return;
452 452
 		}
453 453
 
454
-		$block_widget_init_screens = function_exists( 'sd_pagenow_exclude' ) ? sd_pagenow_exclude() : array();
454
+		$block_widget_init_screens = function_exists('sd_pagenow_exclude') ? sd_pagenow_exclude() : array();
455 455
 
456
-		if ( is_admin() && $pagenow && in_array( $pagenow, $block_widget_init_screens ) ) {
456
+		if (is_admin() && $pagenow && in_array($pagenow, $block_widget_init_screens)) {
457 457
 			// don't initiate in these conditions.
458 458
 		} else {
459 459
 
460 460
 			// Only load allowed widgets.
461
-			$exclude = function_exists( 'sd_widget_exclude' ) ? sd_widget_exclude() : array();
461
+			$exclude = function_exists('sd_widget_exclude') ? sd_widget_exclude() : array();
462 462
 			$widgets = apply_filters(
463 463
 				'getpaid_widget_classes',
464 464
 				array(
@@ -474,16 +474,16 @@  discard block
 block discarded – undo
474 474
 			);
475 475
 
476 476
 			// For each widget...
477
-			foreach ( $widgets as $widget ) {
477
+			foreach ($widgets as $widget) {
478 478
 
479 479
 				// Abort early if it is excluded for this page.
480
-				if ( in_array( $widget, $exclude ) ) {
480
+				if (in_array($widget, $exclude)) {
481 481
 					continue;
482 482
 				}
483 483
 
484 484
 				// SD V1 used to extend the widget class. V2 does not, so we cannot call register widget on it.
485
-				if ( is_subclass_of( $widget, 'WP_Widget' ) ) {
486
-					register_widget( $widget );
485
+				if (is_subclass_of($widget, 'WP_Widget')) {
486
+					register_widget($widget);
487 487
 				} else {
488 488
 					new $widget();
489 489
 				}
@@ -502,29 +502,29 @@  discard block
 block discarded – undo
502 502
 		// Ensure the database tables are up to date.
503 503
 		GetPaid_Installer::maybe_create_db_tables();
504 504
 
505
-		$wpi_version = get_option( 'wpinv_version', 0 );
505
+		$wpi_version = get_option('wpinv_version', 0);
506 506
 
507
-		if ( $wpi_version == WPINV_VERSION ) {
507
+		if ($wpi_version == WPINV_VERSION) {
508 508
 			return;
509 509
 		}
510 510
 
511 511
 		$installer = new GetPaid_Installer();
512 512
 
513
-		if ( empty( $wpi_version ) ) {
514
-			return $installer->upgrade_db( 0 );
513
+		if (empty($wpi_version)) {
514
+			return $installer->upgrade_db(0);
515 515
 		}
516 516
 
517
-		$upgrades  = array(
517
+		$upgrades = array(
518 518
 			'0.0.5' => '004',
519 519
 			'1.0.3' => '102',
520 520
 			'2.0.0' => '118',
521 521
 			'2.8.0' => '279',
522 522
 		);
523 523
 
524
-		foreach ( $upgrades as $key => $method ) {
524
+		foreach ($upgrades as $key => $method) {
525 525
 
526
-			if ( version_compare( $wpi_version, $key, '<' ) ) {
527
-				return $installer->upgrade_db( $method );
526
+			if (version_compare($wpi_version, $key, '<')) {
527
+				return $installer->upgrade_db($method);
528 528
 			}
529 529
 		}
530 530
 
@@ -537,11 +537,11 @@  discard block
 block discarded – undo
537 537
 	 */
538 538
 	public function maybe_flush_permalinks() {
539 539
 
540
-		$flush = get_option( 'wpinv_flush_permalinks', 0 );
540
+		$flush = get_option('wpinv_flush_permalinks', 0);
541 541
 
542
-		if ( ! empty( $flush ) ) {
542
+		if (!empty($flush)) {
543 543
 			flush_rewrite_rules();
544
-			delete_option( 'wpinv_flush_permalinks' );
544
+			delete_option('wpinv_flush_permalinks');
545 545
 		}
546 546
 
547 547
 	}
@@ -552,10 +552,10 @@  discard block
 block discarded – undo
552 552
 	 * @since 1.0.19
553 553
 	 * @param int[] $excluded_posts_ids
554 554
 	 */
555
-	public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ) {
555
+	public function wpseo_exclude_from_sitemap_by_post_ids($excluded_posts_ids) {
556 556
 
557 557
 		// Ensure that we have an array.
558
-		if ( ! is_array( $excluded_posts_ids ) ) {
558
+		if (!is_array($excluded_posts_ids)) {
559 559
 			$excluded_posts_ids = array();
560 560
 		}
561 561
 
@@ -563,24 +563,24 @@  discard block
 block discarded – undo
563 563
 		$our_pages = array();
564 564
 
565 565
 		// Checkout page.
566
-		$our_pages[] = wpinv_get_option( 'checkout_page', false );
566
+		$our_pages[] = wpinv_get_option('checkout_page', false);
567 567
 
568 568
 		// Success page.
569
-		$our_pages[] = wpinv_get_option( 'success_page', false );
569
+		$our_pages[] = wpinv_get_option('success_page', false);
570 570
 
571 571
 		// Failure page.
572
-		$our_pages[] = wpinv_get_option( 'failure_page', false );
572
+		$our_pages[] = wpinv_get_option('failure_page', false);
573 573
 
574 574
 		// History page.
575
-		$our_pages[] = wpinv_get_option( 'invoice_history_page', false );
575
+		$our_pages[] = wpinv_get_option('invoice_history_page', false);
576 576
 
577 577
 		// Subscriptions page.
578
-		$our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
578
+		$our_pages[] = wpinv_get_option('invoice_subscription_page', false);
579 579
 
580
-		$our_pages   = array_map( 'intval', array_filter( $our_pages ) );
580
+		$our_pages   = array_map('intval', array_filter($our_pages));
581 581
 
582 582
 		$excluded_posts_ids = $excluded_posts_ids + $our_pages;
583
-		return array_unique( $excluded_posts_ids );
583
+		return array_unique($excluded_posts_ids);
584 584
 
585 585
 	}
586 586
 
@@ -590,15 +590,15 @@  discard block
 block discarded – undo
590 590
 	 * @since 1.0.19
591 591
 	 * @param string[] $post_types
592 592
 	 */
593
-	public function exclude_invoicing_post_types( $post_types ) {
593
+	public function exclude_invoicing_post_types($post_types) {
594 594
 
595 595
 		// Ensure that we have an array.
596
-		if ( ! is_array( $post_types ) ) {
596
+		if (!is_array($post_types)) {
597 597
 			$post_types = array();
598 598
 		}
599 599
 
600 600
 		// Remove our post types.
601
-		return array_diff( $post_types, array_keys( getpaid_get_invoice_post_types() ) );
601
+		return array_diff($post_types, array_keys(getpaid_get_invoice_post_types()));
602 602
 	}
603 603
 
604 604
 	/**
@@ -607,7 +607,7 @@  discard block
 block discarded – undo
607 607
 	 * @since 2.0.0
608 608
 	 */
609 609
 	public function wp_footer() {
610
-		wpinv_get_template( 'frontend-footer.php' );
610
+		wpinv_get_template('frontend-footer.php');
611 611
 	}
612 612
 
613 613
 	/**
@@ -616,14 +616,14 @@  discard block
 block discarded – undo
616 616
 	 * @since 2.0.0
617 617
 	 */
618 618
 	public function wp_head() {
619
-		wpinv_get_template( 'frontend-head.php' );
619
+		wpinv_get_template('frontend-head.php');
620 620
 	}
621 621
 
622 622
 	/**
623 623
 	 * Custom query vars.
624 624
 	 *
625 625
 	 */
626
-	public function custom_query_vars( $vars ) {
626
+	public function custom_query_vars($vars) {
627 627
         $vars[] = 'getpaid-ipn';
628 628
         return $vars;
629 629
 	}
@@ -634,28 +634,28 @@  discard block
 block discarded – undo
634 634
 	 */
635 635
 	public function add_rewrite_rule() {
636 636
         $tag = 'getpaid-ipn';
637
-        add_rewrite_tag( "%$tag%", '([^&]+)' );
638
-        add_rewrite_rule( "^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top' );
637
+        add_rewrite_tag("%$tag%", '([^&]+)');
638
+        add_rewrite_rule("^$tag/([^/]*)/?", "index.php?$tag=\$matches[1]", 'top');
639 639
 	}
640 640
 
641 641
 	/**
642 642
 	 * Processes non-query string ipns.
643 643
 	 *
644 644
 	 */
645
-	public function maybe_process_new_ipn( $query ) {
645
+	public function maybe_process_new_ipn($query) {
646 646
 
647
-        if ( is_admin() || ! $query->is_main_query() ) {
647
+        if (is_admin() || !$query->is_main_query()) {
648 648
             return;
649 649
         }
650 650
 
651
-		$gateway = get_query_var( 'getpaid-ipn' );
651
+		$gateway = get_query_var('getpaid-ipn');
652 652
 
653
-        if ( ! empty( $gateway ) ) {
653
+        if (!empty($gateway)) {
654 654
 
655
-			$gateway = sanitize_text_field( $gateway );
655
+			$gateway = sanitize_text_field($gateway);
656 656
 			nocache_headers();
657
-			do_action( 'wpinv_verify_payment_ipn', $gateway );
658
-			do_action( "wpinv_verify_{$gateway}_ipn" );
657
+			do_action('wpinv_verify_payment_ipn', $gateway);
658
+			do_action("wpinv_verify_{$gateway}_ipn");
659 659
 			exit;
660 660
 
661 661
         }
Please login to merge, or discard this patch.
includes/user-functions.php 2 patches
Indentation   +88 added lines, -88 removed lines patch added patch discarded remove patch
@@ -19,28 +19,28 @@  discard block
 block discarded – undo
19 19
  */
20 20
 function getpaid_get_customers( $args = array(), $return = 'results' ) {
21 21
 
22
-	// Do not retrieve all fields if we just want the count.
23
-	if ( 'count' === $return ) {
24
-		$args['fields'] = 'id';
25
-		$args['number'] = 1;
26
-	}
22
+    // Do not retrieve all fields if we just want the count.
23
+    if ( 'count' === $return ) {
24
+        $args['fields'] = 'id';
25
+        $args['number'] = 1;
26
+    }
27 27
 
28
-	// Do not count all matches if we just want the results.
29
-	if ( 'results' === $return ) {
30
-		$args['count_total'] = false;
31
-	}
28
+    // Do not count all matches if we just want the results.
29
+    if ( 'results' === $return ) {
30
+        $args['count_total'] = false;
31
+    }
32 32
 
33
-	$query = new GetPaid_Customers_Query( $args );
33
+    $query = new GetPaid_Customers_Query( $args );
34 34
 
35
-	if ( 'results' === $return ) {
36
-		return $query->get_results();
37
-	}
35
+    if ( 'results' === $return ) {
36
+        return $query->get_results();
37
+    }
38 38
 
39
-	if ( 'count' === $return ) {
40
-		return $query->get_total();
41
-	}
39
+    if ( 'count' === $return ) {
40
+        return $query->get_total();
41
+    }
42 42
 
43
-	return $query;
43
+    return $query;
44 44
 }
45 45
 
46 46
 /**
@@ -106,11 +106,11 @@  discard block
 block discarded – undo
106 106
  */
107 107
 function wpinv_get_capability( $capalibilty = 'manage_invoicing' ) {
108 108
 
109
-	if ( current_user_can( 'manage_options' ) ) {
110
-		return 'manage_options';
111
-	};
109
+    if ( current_user_can( 'manage_options' ) ) {
110
+        return 'manage_options';
111
+    };
112 112
 
113
-	return $capalibilty;
113
+    return $capalibilty;
114 114
 }
115 115
 
116 116
 /**
@@ -133,9 +133,9 @@  discard block
 block discarded – undo
133 133
  * @return bool Whether the current user has the given capability.
134 134
  */
135 135
 function wpinv_current_user_can( $capability, $args = array() ) {
136
-	$can = wpinv_current_user_can_manage_invoicing();
136
+    $can = wpinv_current_user_can_manage_invoicing();
137 137
 
138
-	return apply_filters( 'getpaid_current_user_can', $can, $capability, $args );
138
+    return apply_filters( 'getpaid_current_user_can', $can, $capability, $args );
139 139
 }
140 140
 
141 141
 /**
@@ -149,10 +149,10 @@  discard block
 block discarded – undo
149 149
     // Prepare user values.
150 150
     $prefix = preg_replace( '/\s+/', '', $prefix );
151 151
     $prefix = empty( $prefix ) ? $email : $prefix;
152
-	$args   = array(
153
-		'user_login' => wpinv_generate_user_name( $prefix ),
154
-		'user_pass'  => wp_generate_password(),
155
-		'user_email' => $email,
152
+    $args   = array(
153
+        'user_login' => wpinv_generate_user_name( $prefix ),
154
+        'user_pass'  => wp_generate_password(),
155
+        'user_email' => $email,
156 156
         'role'       => 'subscriber',
157 157
     );
158 158
 
@@ -169,16 +169,16 @@  discard block
 block discarded – undo
169 169
 function wpinv_generate_user_name( $prefix = '' ) {
170 170
 
171 171
     // If prefix is an email, retrieve the part before the email.
172
-	$prefix = strtok( $prefix, '@' );
172
+    $prefix = strtok( $prefix, '@' );
173 173
     $prefix = trim( $prefix, '.' );
174 174
 
175
-	// Sanitize the username.
176
-	$prefix = sanitize_user( $prefix, true );
175
+    // Sanitize the username.
176
+    $prefix = sanitize_user( $prefix, true );
177 177
 
178
-	$illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
179
-	if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) {
180
-		$prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 );
181
-	}
178
+    $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
179
+    if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) {
180
+        $prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 );
181
+    }
182 182
 
183 183
     $username = $prefix;
184 184
     $postfix  = 2;
@@ -317,43 +317,43 @@  discard block
 block discarded – undo
317 317
 
318 318
                         $value = $customer->get( $key );
319 319
 
320
-					// Display the country.
321
-					if ( 'country' == $key ) {
322
-
323
-						aui()->select(
324
-							array(
325
-								'options'     => wpinv_get_country_list(),
326
-								'name'        => 'getpaid_address[' . esc_attr( $key ) . ']',
327
-								'id'          => 'wpinv-' . sanitize_html_class( $key ),
328
-								'value'       => sanitize_text_field( $value ),
329
-								'placeholder' => $label,
330
-								'label'       => wp_kses_post( $label ),
331
-								'label_type'  => 'vertical',
332
-								'class'       => 'getpaid-address-field',
320
+                    // Display the country.
321
+                    if ( 'country' == $key ) {
322
+
323
+                        aui()->select(
324
+                            array(
325
+                                'options'     => wpinv_get_country_list(),
326
+                                'name'        => 'getpaid_address[' . esc_attr( $key ) . ']',
327
+                                'id'          => 'wpinv-' . sanitize_html_class( $key ),
328
+                                'value'       => sanitize_text_field( $value ),
329
+                                'placeholder' => $label,
330
+                                'label'       => wp_kses_post( $label ),
331
+                                'label_type'  => 'vertical',
332
+                                'class'       => 'getpaid-address-field',
333 333
                             ),
334 334
                             true
335
-						);
335
+                        );
336 336
 
337
-					}
337
+                    }
338 338
 
339
-					// Display the state.
340
-					elseif ( 'state' == $key ) {
339
+                    // Display the state.
340
+                    elseif ( 'state' == $key ) {
341 341
 
342
-						getpaid_get_states_select_markup(
342
+                        getpaid_get_states_select_markup(
343 343
                             $customer->get( 'country' ),
344
-							$value,
345
-							$label,
346
-							$label,
347
-							'',
348
-							false,
349
-							'',
350
-							'getpaid_address[' . esc_attr( $key ) . ']',
344
+                            $value,
345
+                            $label,
346
+                            $label,
347
+                            '',
348
+                            false,
349
+                            '',
350
+                            'getpaid_address[' . esc_attr( $key ) . ']',
351 351
                             true
352
-						);
352
+                        );
353 353
 
354 354
                         } else {
355 355
 
356
-						aui()->input(
356
+                        aui()->input(
357 357
                             array(
358 358
                                 'name'        => 'getpaid_address[' . esc_attr( $key ) . ']',
359 359
                                 'id'          => 'wpinv-' . sanitize_html_class( $key ),
@@ -365,7 +365,7 @@  discard block
 block discarded – undo
365 365
                                 'class'       => 'getpaid-address-field',
366 366
                             ),
367 367
                             true
368
-						);
368
+                        );
369 369
 
370 370
                         }
371 371
                     }
@@ -509,7 +509,7 @@  discard block
 block discarded – undo
509 509
 function getpaid_allowed_html() {
510 510
     $allowed_html = wp_kses_allowed_html( 'post' );
511 511
 
512
-	// form fields
512
+    // form fields
513 513
     $allowed_html['form'] = array(
514 514
         'action'         => true,
515 515
         'accept'         => true,
@@ -521,12 +521,12 @@  discard block
 block discarded – undo
521 521
     );
522 522
 
523 523
     // - input
524
-	$allowed_html['input'] = array(
525
-		'class'        => array(),
526
-		'id'           => array(),
527
-		'name'         => array(),
528
-		'value'        => array(),
529
-		'type'         => array(),
524
+    $allowed_html['input'] = array(
525
+        'class'        => array(),
526
+        'id'           => array(),
527
+        'name'         => array(),
528
+        'value'        => array(),
529
+        'type'         => array(),
530 530
         'placeholder'  => array(),
531 531
         'autocomplete' => array(),
532 532
         'autofocus'    => array(),
@@ -540,33 +540,33 @@  discard block
 block discarded – undo
540 540
         'max'          => array(),
541 541
         'step'         => array(),
542 542
         'size'         => array(),
543
-	);
543
+    );
544 544
 
545 545
     // - input
546
-	$allowed_html['textarea'] = array(
547
-		'class' => array(),
548
-		'id'    => array(),
549
-		'name'  => array(),
550
-		'value' => array(),
551
-	);
552
-
553
-	// select
554
-	$allowed_html['select'] = array(
555
-		'class'        => array(),
556
-		'id'           => array(),
557
-		'name'         => array(),
546
+    $allowed_html['textarea'] = array(
547
+        'class' => array(),
548
+        'id'    => array(),
549
+        'name'  => array(),
550
+        'value' => array(),
551
+    );
552
+
553
+    // select
554
+    $allowed_html['select'] = array(
555
+        'class'        => array(),
556
+        'id'           => array(),
557
+        'name'         => array(),
558 558
         'autocomplete' => array(),
559 559
         'multiple'     => array(),
560
-	);
560
+    );
561 561
 
562
-	// select options
563
-	$allowed_html['option'] = array(
564
-		'selected' => array(),
562
+    // select options
563
+    $allowed_html['option'] = array(
564
+        'selected' => array(),
565 565
         'disabled' => array(),
566 566
         'value'    => array(),
567
-	);
567
+    );
568 568
 
569
-	return $allowed_html;
569
+    return $allowed_html;
570 570
 
571 571
 }
572 572
 
Please login to merge, or discard this patch.
Spacing   +150 added lines, -150 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @package GetPaid
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Queries the customers database.
@@ -17,26 +17,26 @@  discard block
 block discarded – undo
17 17
  *
18 18
  * @return int|array|GetPaid_Customer[]|GetPaid_Customers_Query
19 19
  */
20
-function getpaid_get_customers( $args = array(), $return = 'results' ) {
20
+function getpaid_get_customers($args = array(), $return = 'results') {
21 21
 
22 22
 	// Do not retrieve all fields if we just want the count.
23
-	if ( 'count' === $return ) {
23
+	if ('count' === $return) {
24 24
 		$args['fields'] = 'id';
25 25
 		$args['number'] = 1;
26 26
 	}
27 27
 
28 28
 	// Do not count all matches if we just want the results.
29
-	if ( 'results' === $return ) {
29
+	if ('results' === $return) {
30 30
 		$args['count_total'] = false;
31 31
 	}
32 32
 
33
-	$query = new GetPaid_Customers_Query( $args );
33
+	$query = new GetPaid_Customers_Query($args);
34 34
 
35
-	if ( 'results' === $return ) {
35
+	if ('results' === $return) {
36 36
 		return $query->get_results();
37 37
 	}
38 38
 
39
-	if ( 'count' === $return ) {
39
+	if ('count' === $return) {
40 40
 		return $query->get_total();
41 41
 	}
42 42
 
@@ -49,19 +49,19 @@  discard block
 block discarded – undo
49 49
  * @param int|string|object|GetPaid_Customer $customer customer id, email or object.
50 50
  * @return GetPaid_Customer|null
51 51
  */
52
-function getpaid_get_customer( $customer ) {
52
+function getpaid_get_customer($customer) {
53 53
 
54
-    if ( empty( $customer ) ) {
54
+    if (empty($customer)) {
55 55
         return null;
56 56
     }
57 57
 
58 58
     // Retrieve the customer.
59
-    if ( ! is_a( $customer, 'GetPaid_Customer' ) ) {
60
-        $customer = new GetPaid_Customer( $customer );
59
+    if (!is_a($customer, 'GetPaid_Customer')) {
60
+        $customer = new GetPaid_Customer($customer);
61 61
     }
62 62
 
63 63
     // Check if it exists.
64
-    if ( $customer->exists() ) {
64
+    if ($customer->exists()) {
65 65
         return $customer;
66 66
     }
67 67
 
@@ -74,9 +74,9 @@  discard block
 block discarded – undo
74 74
  * @return GetPaid_Customer|null
75 75
  * @since 1.0.0
76 76
  */
77
-function getpaid_get_customer_by_user_id( $user_id ) {
77
+function getpaid_get_customer_by_user_id($user_id) {
78 78
     return getpaid_get_customer(
79
-        GetPaid_Customer::get_customer_id_by( $user_id, 'user_id' )
79
+        GetPaid_Customer::get_customer_id_by($user_id, 'user_id')
80 80
     );
81 81
 }
82 82
 
@@ -88,13 +88,13 @@  discard block
 block discarded – undo
88 88
  * @param array $args
89 89
  * @see wp_dropdown_users
90 90
  */
91
-function wpinv_dropdown_users( $args = '' ) {
91
+function wpinv_dropdown_users($args = '') {
92 92
 
93
-    if ( is_array( $args ) && ! empty( $args['show'] ) && 'display_name_with_email' == $args['show'] ) {
93
+    if (is_array($args) && !empty($args['show']) && 'display_name_with_email' == $args['show']) {
94 94
         $args['show'] = 'display_name_with_login';
95 95
     }
96 96
 
97
-    return wp_dropdown_users( $args );
97
+    return wp_dropdown_users($args);
98 98
 }
99 99
 
100 100
 /**
@@ -104,9 +104,9 @@  discard block
 block discarded – undo
104 104
  * @return string capability to check against
105 105
  * @param string $capalibilty Optional. The alternative capability to check against.
106 106
  */
107
-function wpinv_get_capability( $capalibilty = 'manage_invoicing' ) {
107
+function wpinv_get_capability($capalibilty = 'manage_invoicing') {
108 108
 
109
-	if ( current_user_can( 'manage_options' ) ) {
109
+	if (current_user_can('manage_options')) {
110 110
 		return 'manage_options';
111 111
 	};
112 112
 
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
  * @return bool
121 121
  */
122 122
 function wpinv_current_user_can_manage_invoicing() {
123
-    return current_user_can( wpinv_get_capability() );
123
+    return current_user_can(wpinv_get_capability());
124 124
 }
125 125
 
126 126
 /**
@@ -132,10 +132,10 @@  discard block
 block discarded – undo
132 132
  * @param mixed  $args    Optional further parameters, typically starting with an object.
133 133
  * @return bool Whether the current user has the given capability.
134 134
  */
135
-function wpinv_current_user_can( $capability, $args = array() ) {
135
+function wpinv_current_user_can($capability, $args = array()) {
136 136
 	$can = wpinv_current_user_can_manage_invoicing();
137 137
 
138
-	return apply_filters( 'getpaid_current_user_can', $can, $capability, $args );
138
+	return apply_filters('getpaid_current_user_can', $can, $capability, $args);
139 139
 }
140 140
 
141 141
 /**
@@ -144,19 +144,19 @@  discard block
 block discarded – undo
144 144
  * @since 1.0.19
145 145
  * @return int|WP_Error
146 146
  */
147
-function wpinv_create_user( $email, $prefix = '' ) {
147
+function wpinv_create_user($email, $prefix = '') {
148 148
 
149 149
     // Prepare user values.
150
-    $prefix = preg_replace( '/\s+/', '', $prefix );
151
-    $prefix = empty( $prefix ) ? $email : $prefix;
152
-	$args   = array(
153
-		'user_login' => wpinv_generate_user_name( $prefix ),
150
+    $prefix = preg_replace('/\s+/', '', $prefix);
151
+    $prefix = empty($prefix) ? $email : $prefix;
152
+	$args = array(
153
+		'user_login' => wpinv_generate_user_name($prefix),
154 154
 		'user_pass'  => wp_generate_password(),
155 155
 		'user_email' => $email,
156 156
         'role'       => 'subscriber',
157 157
     );
158 158
 
159
-    return wp_insert_user( $args );
159
+    return wp_insert_user($args);
160 160
 
161 161
 }
162 162
 
@@ -166,26 +166,26 @@  discard block
 block discarded – undo
166 166
  * @since 1.0.19
167 167
  * @return bool|WP_User
168 168
  */
169
-function wpinv_generate_user_name( $prefix = '' ) {
169
+function wpinv_generate_user_name($prefix = '') {
170 170
 
171 171
     // If prefix is an email, retrieve the part before the email.
172
-	$prefix = strtok( $prefix, '@' );
173
-    $prefix = trim( $prefix, '.' );
172
+	$prefix = strtok($prefix, '@');
173
+    $prefix = trim($prefix, '.');
174 174
 
175 175
 	// Sanitize the username.
176
-	$prefix = sanitize_user( $prefix, true );
176
+	$prefix = sanitize_user($prefix, true);
177 177
 
178
-	$illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
179
-	if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) {
180
-		$prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 );
178
+	$illegal_logins = (array) apply_filters('illegal_user_logins', array());
179
+	if (empty($prefix) || in_array(strtolower($prefix), array_map('strtolower', $illegal_logins), true)) {
180
+		$prefix = 'gtp_' . zeroise(wp_rand(0, 9999), 4);
181 181
 	}
182 182
 
183 183
     $username = $prefix;
184 184
     $postfix  = 2;
185 185
 
186
-    while ( username_exists( $username ) ) {
186
+    while (username_exists($username)) {
187 187
         $username = "{$prefix}{$postfix}";
188
-        $postfix ++;
188
+        $postfix++;
189 189
     }
190 190
 
191 191
     return $username;
@@ -202,31 +202,31 @@  discard block
 block discarded – undo
202 202
     $tabs = array(
203 203
 
204 204
         'gp-invoices'      => array(
205
-            'label'   => __( 'Invoices', 'invoicing' ), // Name of the tab.
205
+            'label'   => __('Invoices', 'invoicing'), // Name of the tab.
206 206
             'content' => '[wpinv_history]', // Content of the tab. Or specify "callback" to provide a callback instead.
207 207
             'icon'    => 'fas fa-file-invoice', // Shown on some profile plugins.
208 208
         ),
209 209
 
210 210
         'gp-subscriptions' => array(
211
-            'label'   => __( 'Subscriptions', 'invoicing' ),
211
+            'label'   => __('Subscriptions', 'invoicing'),
212 212
             'content' => '[wpinv_subscriptions]',
213 213
             'icon'    => 'fas fa-redo',
214 214
         ),
215 215
 
216 216
         'gp-edit-address'  => array(
217
-            'label'    => __( 'Billing Address', 'invoicing' ),
217
+            'label'    => __('Billing Address', 'invoicing'),
218 218
             'callback' => 'getpaid_display_address_edit_tab',
219 219
             'icon'     => 'fas fa-credit-card',
220 220
         ),
221 221
 
222 222
     );
223 223
 
224
-    $tabs = apply_filters( 'getpaid_user_content_tabs', $tabs );
224
+    $tabs = apply_filters('getpaid_user_content_tabs', $tabs);
225 225
 
226 226
     // Make sure address editing is last on the list.
227
-    if ( isset( $tabs['gp-edit-address'] ) ) {
227
+    if (isset($tabs['gp-edit-address'])) {
228 228
         $address = $tabs['gp-edit-address'];
229
-        unset( $tabs['gp-edit-address'] );
229
+        unset($tabs['gp-edit-address']);
230 230
         $tabs['gp-edit-address'] = $address;
231 231
     }
232 232
 
@@ -240,19 +240,19 @@  discard block
 block discarded – undo
240 240
  * @param array $tab
241 241
  * @return array
242 242
  */
243
-function getpaid_prepare_user_content_tab( $tab ) {
243
+function getpaid_prepare_user_content_tab($tab) {
244 244
 
245
-    if ( ! empty( $tab['callback'] ) ) {
246
-        return call_user_func( $tab['callback'] );
245
+    if (!empty($tab['callback'])) {
246
+        return call_user_func($tab['callback']);
247 247
     }
248 248
 
249
-    if ( ! empty( $tab['content'] ) ) {
250
-        return convert_smilies( capital_P_dangit( wp_filter_content_tags( do_shortcode( shortcode_unautop( wpautop( wptexturize( do_blocks( $tab['content'] ) ) ) ) ) ) ) );
249
+    if (!empty($tab['content'])) {
250
+        return convert_smilies(capital_P_dangit(wp_filter_content_tags(do_shortcode(shortcode_unautop(wpautop(wptexturize(do_blocks($tab['content']))))))));
251 251
     }
252 252
 
253 253
     $notice = aui()->alert(
254 254
         array(
255
-            'content' => __( 'This tab has no content or content callback.', 'invoicing' ),
255
+            'content' => __('This tab has no content or content callback.', 'invoicing'),
256 256
             'type'    => 'error',
257 257
         )
258 258
     );
@@ -268,14 +268,14 @@  discard block
 block discarded – undo
268 268
  * @param string $default
269 269
  * @return array
270 270
  */
271
-function getpaid_get_tab_url( $tab, $default ) {
271
+function getpaid_get_tab_url($tab, $default) {
272 272
     global $getpaid_tab_url;
273 273
 
274
-    if ( empty( $getpaid_tab_url ) ) {
274
+    if (empty($getpaid_tab_url)) {
275 275
         return $default;
276 276
     }
277 277
 
278
-    return sprintf( $getpaid_tab_url, $tab );
278
+    return sprintf($getpaid_tab_url, $tab);
279 279
 
280 280
 }
281 281
 
@@ -287,21 +287,21 @@  discard block
 block discarded – undo
287 287
  */
288 288
 function getpaid_display_address_edit_tab() {
289 289
 
290
-    if ( 0 === get_current_user_id() ) {
290
+    if (0 === get_current_user_id()) {
291 291
         return '<div class="bsui">' . aui()->alert(
292 292
             array(
293 293
                 'type'        => 'error',
294
-                'content'     => __( 'Your must be logged in to view this section', 'invoicing' ),
294
+                'content'     => __('Your must be logged in to view this section', 'invoicing'),
295 295
                 'dismissible' => false,
296 296
             )
297 297
         ) . '</div>';
298 298
     }
299 299
 
300
-    $customer = getpaid_get_customer_by_user_id( get_current_user_id() );
300
+    $customer = getpaid_get_customer_by_user_id(get_current_user_id());
301 301
 
302
-    if ( empty( $customer ) ) {
303
-        $customer = new GetPaid_Customer( 0 );
304
-        $customer->clone_user( get_current_user_id() );
302
+    if (empty($customer)) {
303
+        $customer = new GetPaid_Customer(0);
304
+        $customer->clone_user(get_current_user_id());
305 305
         $customer->save();
306 306
     }
307 307
 
@@ -313,21 +313,21 @@  discard block
 block discarded – undo
313 313
 
314 314
                 <?php
315 315
 
316
-                    foreach ( getpaid_user_address_fields() as $key => $label ) {
316
+                    foreach (getpaid_user_address_fields() as $key => $label) {
317 317
 
318
-                        $value = $customer->get( $key );
318
+                        $value = $customer->get($key);
319 319
 
320 320
 					// Display the country.
321
-					if ( 'country' == $key ) {
321
+					if ('country' == $key) {
322 322
 
323 323
 						aui()->select(
324 324
 							array(
325 325
 								'options'     => wpinv_get_country_list(),
326
-								'name'        => 'getpaid_address[' . esc_attr( $key ) . ']',
327
-								'id'          => 'wpinv-' . sanitize_html_class( $key ),
328
-								'value'       => sanitize_text_field( $value ),
326
+								'name'        => 'getpaid_address[' . esc_attr($key) . ']',
327
+								'id'          => 'wpinv-' . sanitize_html_class($key),
328
+								'value'       => sanitize_text_field($value),
329 329
 								'placeholder' => $label,
330
-								'label'       => wp_kses_post( $label ),
330
+								'label'       => wp_kses_post($label),
331 331
 								'label_type'  => 'vertical',
332 332
 								'class'       => 'getpaid-address-field',
333 333
                             ),
@@ -337,17 +337,17 @@  discard block
 block discarded – undo
337 337
 					}
338 338
 
339 339
 					// Display the state.
340
-					elseif ( 'state' == $key ) {
340
+					elseif ('state' == $key) {
341 341
 
342 342
 						getpaid_get_states_select_markup(
343
-                            $customer->get( 'country' ),
343
+                            $customer->get('country'),
344 344
 							$value,
345 345
 							$label,
346 346
 							$label,
347 347
 							'',
348 348
 							false,
349 349
 							'',
350
-							'getpaid_address[' . esc_attr( $key ) . ']',
350
+							'getpaid_address[' . esc_attr($key) . ']',
351 351
                             true
352 352
 						);
353 353
 
@@ -355,13 +355,13 @@  discard block
 block discarded – undo
355 355
 
356 356
 						aui()->input(
357 357
                             array(
358
-                                'name'        => 'getpaid_address[' . esc_attr( $key ) . ']',
359
-                                'id'          => 'wpinv-' . sanitize_html_class( $key ),
358
+                                'name'        => 'getpaid_address[' . esc_attr($key) . ']',
359
+                                'id'          => 'wpinv-' . sanitize_html_class($key),
360 360
                                 'placeholder' => $label,
361
-                                'label'       => wp_kses_post( $label ),
361
+                                'label'       => wp_kses_post($label),
362 362
                                 'label_type'  => 'vertical',
363 363
                                 'type'        => 'text',
364
-                                'value'       => sanitize_text_field( $value ),
364
+                                'value'       => sanitize_text_field($value),
365 365
                                 'class'       => 'getpaid-address-field',
366 366
                             ),
367 367
                             true
@@ -375,32 +375,32 @@  discard block
 block discarded – undo
375 375
                             'name'        => 'getpaid_address[email_cc]',
376 376
                             'id'          => 'wpinv-email_cc',
377 377
                             'placeholder' => '[email protected], [email protected]',
378
-                            'label'       => __( 'Other email addresses', 'invoicing' ),
378
+                            'label'       => __('Other email addresses', 'invoicing'),
379 379
                             'label_type'  => 'vertical',
380 380
                             'type'        => 'text',
381
-                            'value'       => sanitize_text_field( $customer->get( 'email_cc' ) ),
381
+                            'value'       => sanitize_text_field($customer->get('email_cc')),
382 382
                             'class'       => 'getpaid-address-field',
383
-                            'help_text'   => __( 'Optionally provide other email addresses where we should send payment notifications', 'invoicing' ),
383
+                            'help_text'   => __('Optionally provide other email addresses where we should send payment notifications', 'invoicing'),
384 384
                         ),
385 385
                         true
386 386
                     );
387 387
 
388
-                    do_action( 'getpaid_display_address_edit_tab' );
388
+                    do_action('getpaid_display_address_edit_tab');
389 389
 
390 390
                     aui()->input(
391 391
                         array(
392 392
                             'name'      => 'getpaid_profile_edit_submit_button',
393 393
                             'id'        => 'getpaid_profile_edit_submit_button',
394
-                            'value'     => __( 'Save Address', 'invoicing' ),
395
-                            'help_text' => __( 'New invoices will use this address as the billing address.', 'invoicing' ),
394
+                            'value'     => __('Save Address', 'invoicing'),
395
+                            'help_text' => __('New invoices will use this address as the billing address.', 'invoicing'),
396 396
                             'type'      => 'submit',
397 397
                             'class'     => 'btn btn-primary btn-block submit-button',
398 398
                         ),
399 399
                         true
400 400
                     );
401 401
 
402
-                    wp_nonce_field( 'getpaid-nonce', 'getpaid-nonce' );
403
-                    getpaid_hidden_field( 'getpaid-action', 'edit_billing_details' );
402
+                    wp_nonce_field('getpaid-nonce', 'getpaid-nonce');
403
+                    getpaid_hidden_field('getpaid-action', 'edit_billing_details');
404 404
                 ?>
405 405
 
406 406
             </form>
@@ -410,7 +410,7 @@  discard block
 block discarded – undo
410 410
 
411 411
     return ob_get_clean();
412 412
 }
413
-add_shortcode( 'getpaid_edit_address', 'getpaid_display_address_edit_tab' );
413
+add_shortcode('getpaid_edit_address', 'getpaid_display_address_edit_tab');
414 414
 
415 415
 /**
416 416
  * Saves the billing address edit tab.
@@ -418,35 +418,35 @@  discard block
 block discarded – undo
418 418
  * @since 2.1.4
419 419
  * @param array $data
420 420
  */
421
-function getpaid_save_address_edit_tab( $data ) {
421
+function getpaid_save_address_edit_tab($data) {
422 422
 
423
-    if ( empty( $data['getpaid_address'] ) || ! is_array( $data['getpaid_address'] ) ) {
423
+    if (empty($data['getpaid_address']) || !is_array($data['getpaid_address'])) {
424 424
         return;
425 425
     }
426 426
 
427 427
     $data     = $data['getpaid_address'];
428
-    $customer = getpaid_get_customer_by_user_id( get_current_user_id() );
428
+    $customer = getpaid_get_customer_by_user_id(get_current_user_id());
429 429
 
430
-    if ( empty( $customer ) ) {
431
-        $customer = new GetPaid_Customer( 0 );
432
-        $customer->clone_user( get_current_user_id() );
430
+    if (empty($customer)) {
431
+        $customer = new GetPaid_Customer(0);
432
+        $customer->clone_user(get_current_user_id());
433 433
     }
434 434
 
435
-    foreach ( array_keys( getpaid_user_address_fields() ) as $field ) {
435
+    foreach (array_keys(getpaid_user_address_fields()) as $field) {
436 436
 
437
-        if ( isset( $data[ $field ] ) ) {
438
-            $customer->set( $field, sanitize_text_field( $data[ $field ] ) );
437
+        if (isset($data[$field])) {
438
+            $customer->set($field, sanitize_text_field($data[$field]));
439 439
         }
440 440
     }
441 441
 
442
-    if ( isset( $data['email_cc'] ) ) {
443
-        $customer->set( 'email_cc', sanitize_text_field( $data['email_cc'] ) );
442
+    if (isset($data['email_cc'])) {
443
+        $customer->set('email_cc', sanitize_text_field($data['email_cc']));
444 444
     }
445 445
 
446 446
     $customer->save();
447
-    wpinv_set_error( 'address_updated' );
447
+    wpinv_set_error('address_updated');
448 448
 }
449
-add_action( 'getpaid_authenticated_action_edit_billing_details', 'getpaid_save_address_edit_tab' );
449
+add_action('getpaid_authenticated_action_edit_billing_details', 'getpaid_save_address_edit_tab');
450 450
 
451 451
 
452 452
 /*
@@ -464,27 +464,27 @@  discard block
 block discarded – undo
464 464
  * @param  array $tabs
465 465
  * @return array
466 466
  */
467
-function getpaid_filter_userswp_account_tabs( $tabs ) {
467
+function getpaid_filter_userswp_account_tabs($tabs) {
468 468
 
469 469
     // Abort if the integration is inactive.
470
-    if ( ! getpaid_is_userswp_integration_active() ) {
470
+    if (!getpaid_is_userswp_integration_active()) {
471 471
         return $tabs;
472 472
     }
473 473
 
474
-    $new_tabs   = array();
474
+    $new_tabs = array();
475 475
 
476
-    foreach ( getpaid_get_user_content_tabs() as $slug => $tab ) {
476
+    foreach (getpaid_get_user_content_tabs() as $slug => $tab) {
477 477
 
478
-        $new_tabs[ $slug ] = array(
478
+        $new_tabs[$slug] = array(
479 479
             'title' => $tab['label'],
480 480
             'icon'  => $tab['icon'],
481 481
         );
482 482
 
483 483
     }
484 484
 
485
-    return array_merge( $tabs, $new_tabs );
485
+    return array_merge($tabs, $new_tabs);
486 486
 }
487
-add_filter( 'uwp_account_available_tabs', 'getpaid_filter_userswp_account_tabs' );
487
+add_filter('uwp_account_available_tabs', 'getpaid_filter_userswp_account_tabs');
488 488
 
489 489
 /**
490 490
  * Display our UsersWP account tabs.
@@ -493,21 +493,21 @@  discard block
 block discarded – undo
493 493
  * @param  array $tabs
494 494
  * @return array
495 495
  */
496
-function getpaid_display_userswp_account_tabs( $tab ) {
496
+function getpaid_display_userswp_account_tabs($tab) {
497 497
     global $getpaid_tab_url;
498 498
 
499 499
     $our_tabs = getpaid_get_user_content_tabs();
500 500
 
501
-    if ( getpaid_is_userswp_integration_active() && isset( $our_tabs[ $tab ] ) ) {
502
-        $getpaid_tab_url = add_query_arg( 'type', '%s', uwp_get_account_page_url() );
503
-        echo wp_kses( getpaid_prepare_user_content_tab( $our_tabs[ $tab ] ), getpaid_allowed_html() );
501
+    if (getpaid_is_userswp_integration_active() && isset($our_tabs[$tab])) {
502
+        $getpaid_tab_url = add_query_arg('type', '%s', uwp_get_account_page_url());
503
+        echo wp_kses(getpaid_prepare_user_content_tab($our_tabs[$tab]), getpaid_allowed_html());
504 504
     }
505 505
 
506 506
 }
507
-add_action( 'uwp_account_form_display', 'getpaid_display_userswp_account_tabs' );
507
+add_action('uwp_account_form_display', 'getpaid_display_userswp_account_tabs');
508 508
 
509 509
 function getpaid_allowed_html() {
510
-    $allowed_html = wp_kses_allowed_html( 'post' );
510
+    $allowed_html = wp_kses_allowed_html('post');
511 511
 
512 512
 	// form fields
513 513
     $allowed_html['form'] = array(
@@ -578,17 +578,17 @@  discard block
 block discarded – undo
578 578
  * @param  string $tab   Current tab.
579 579
  * @return string Title.
580 580
  */
581
-function getpaid_filter_userswp_account_title( $title, $tab ) {
581
+function getpaid_filter_userswp_account_title($title, $tab) {
582 582
 
583
-    $our_tabs   = getpaid_get_user_content_tabs();
583
+    $our_tabs = getpaid_get_user_content_tabs();
584 584
 
585
-    if ( getpaid_is_userswp_integration_active() && isset( $our_tabs[ $tab ] ) ) {
586
-        return $our_tabs[ $tab ]['label'];
585
+    if (getpaid_is_userswp_integration_active() && isset($our_tabs[$tab])) {
586
+        return $our_tabs[$tab]['label'];
587 587
     }
588 588
 
589 589
     return $title;
590 590
 }
591
-add_filter( 'uwp_account_page_title', 'getpaid_filter_userswp_account_title', 10, 2 );
591
+add_filter('uwp_account_page_title', 'getpaid_filter_userswp_account_title', 10, 2);
592 592
 
593 593
 /**
594 594
  * Registers the UsersWP integration settings.
@@ -597,26 +597,26 @@  discard block
 block discarded – undo
597 597
  * @param  array $settings An array of integration settings.
598 598
  * @return array
599 599
  */
600
-function getpaid_register_userswp_settings( $settings ) {
600
+function getpaid_register_userswp_settings($settings) {
601 601
 
602
-    if ( defined( 'USERSWP_PLUGIN_FILE' ) ) {
602
+    if (defined('USERSWP_PLUGIN_FILE')) {
603 603
 
604 604
         $settings[] = array(
605 605
 
606 606
             'id'       => 'userswp',
607
-            'label'    => __( 'UsersWP', 'invoicing' ),
607
+            'label'    => __('UsersWP', 'invoicing'),
608 608
             'settings' => array(
609 609
 
610 610
                 'userswp_settings' => array(
611 611
                     'id'   => 'userswp_settings',
612
-                    'name' => '<h3>' . __( 'UsersWP', 'invoicing' ) . '</h3>',
612
+                    'name' => '<h3>' . __('UsersWP', 'invoicing') . '</h3>',
613 613
                     'type' => 'header',
614 614
                 ),
615 615
 
616 616
                 'enable_userswp'   => array(
617 617
                     'id'   => 'enable_userswp',
618
-                    'name' => __( 'Enable Integration', 'invoicing' ),
619
-                    'desc' => __( 'Display GetPaid items on UsersWP account page.', 'invoicing' ),
618
+                    'name' => __('Enable Integration', 'invoicing'),
619
+                    'desc' => __('Display GetPaid items on UsersWP account page.', 'invoicing'),
620 620
                     'type' => 'checkbox',
621 621
                     'std'  => 1,
622 622
                 ),
@@ -629,7 +629,7 @@  discard block
 block discarded – undo
629 629
 
630 630
     return $settings;
631 631
 }
632
-add_filter( 'getpaid_integration_settings', 'getpaid_register_userswp_settings' );
632
+add_filter('getpaid_integration_settings', 'getpaid_register_userswp_settings');
633 633
 
634 634
 /**
635 635
  * Ovewrites the invoices history page to UsersWP.
@@ -637,18 +637,18 @@  discard block
 block discarded – undo
637 637
  * @since  2.3.1
638 638
  * @return bool
639 639
  */
640
-function getpaid_userswp_overwrite_invoice_history_page( $url, $post_type ) {
640
+function getpaid_userswp_overwrite_invoice_history_page($url, $post_type) {
641 641
 
642 642
     $our_tabs = getpaid_get_user_content_tabs();
643 643
     $tab      = "gp-{$post_type}s";
644
-    if ( getpaid_is_userswp_integration_active() && isset( $our_tabs[ $tab ] ) ) {
645
-        return add_query_arg( 'type', $tab, uwp_get_account_page_url() );
644
+    if (getpaid_is_userswp_integration_active() && isset($our_tabs[$tab])) {
645
+        return add_query_arg('type', $tab, uwp_get_account_page_url());
646 646
     }
647 647
 
648 648
     return $url;
649 649
 
650 650
 }
651
-add_filter( 'wpinv_get_history_page_uri', 'getpaid_userswp_overwrite_invoice_history_page', 10, 2 );
651
+add_filter('wpinv_get_history_page_uri', 'getpaid_userswp_overwrite_invoice_history_page', 10, 2);
652 652
 
653 653
 /**
654 654
  * Checks if the integration is enabled.
@@ -657,8 +657,8 @@  discard block
 block discarded – undo
657 657
  * @return bool
658 658
  */
659 659
 function getpaid_is_userswp_integration_active() {
660
-    $enabled = wpinv_get_option( 'enable_userswp', 1 );
661
-    return defined( 'USERSWP_PLUGIN_FILE' ) && ! empty( $enabled );
660
+    $enabled = wpinv_get_option('enable_userswp', 1);
661
+    return defined('USERSWP_PLUGIN_FILE') && !empty($enabled);
662 662
 }
663 663
 
664 664
 /*
@@ -676,26 +676,26 @@  discard block
 block discarded – undo
676 676
  * @param  array $settings An array of integration settings.
677 677
  * @return array
678 678
  */
679
-function getpaid_register_buddypress_settings( $settings ) {
679
+function getpaid_register_buddypress_settings($settings) {
680 680
 
681
-    if ( class_exists( 'BuddyPress' ) ) {
681
+    if (class_exists('BuddyPress')) {
682 682
 
683 683
         $settings[] = array(
684 684
 
685 685
             'id'       => 'buddypress',
686
-            'label'    => __( 'BuddyPress', 'invoicing' ),
686
+            'label'    => __('BuddyPress', 'invoicing'),
687 687
             'settings' => array(
688 688
 
689 689
                 'buddypress_settings' => array(
690 690
                     'id'   => 'buddypress_settings',
691
-                    'name' => '<h3>' . __( 'BuddyPress', 'invoicing' ) . '</h3>',
691
+                    'name' => '<h3>' . __('BuddyPress', 'invoicing') . '</h3>',
692 692
                     'type' => 'header',
693 693
                 ),
694 694
 
695 695
                 'enable_buddypress'   => array(
696 696
                     'id'   => 'enable_buddypress',
697
-                    'name' => __( 'Enable Integration', 'invoicing' ),
698
-                    'desc' => __( 'Display GetPaid items on BuddyPress account pages.', 'invoicing' ),
697
+                    'name' => __('Enable Integration', 'invoicing'),
698
+                    'desc' => __('Display GetPaid items on BuddyPress account pages.', 'invoicing'),
699 699
                     'type' => 'checkbox',
700 700
                     'std'  => 1,
701 701
                 ),
@@ -708,7 +708,7 @@  discard block
 block discarded – undo
708 708
 
709 709
     return $settings;
710 710
 }
711
-add_filter( 'getpaid_integration_settings', 'getpaid_register_buddypress_settings' );
711
+add_filter('getpaid_integration_settings', 'getpaid_register_buddypress_settings');
712 712
 
713 713
 /**
714 714
  * Checks if the integration is enabled.
@@ -717,8 +717,8 @@  discard block
 block discarded – undo
717 717
  * @return bool
718 718
  */
719 719
 function getpaid_is_buddypress_integration_active() {
720
-    $enabled = wpinv_get_option( 'enable_buddypress', 1 );
721
-    return class_exists( 'BuddyPress' ) && ! empty( $enabled );
720
+    $enabled = wpinv_get_option('enable_buddypress', 1);
721
+    return class_exists('BuddyPress') && !empty($enabled);
722 722
 }
723 723
 
724 724
 /**
@@ -729,13 +729,13 @@  discard block
 block discarded – undo
729 729
  */
730 730
 function getpaid_setup_buddypress_integration() {
731 731
 
732
-    if ( getpaid_is_buddypress_integration_active() ) {
732
+    if (getpaid_is_buddypress_integration_active()) {
733 733
         require_once WPINV_PLUGIN_DIR . 'includes/class-bp-getpaid-component.php';
734 734
         buddypress()->getpaid = new BP_GetPaid_Component();
735 735
     }
736 736
 
737 737
 }
738
-add_action( 'bp_setup_components', 'getpaid_setup_buddypress_integration' );
738
+add_action('bp_setup_components', 'getpaid_setup_buddypress_integration');
739 739
 
740 740
 /**
741 741
  * Checks if a given user has purchased a given item.
@@ -744,10 +744,10 @@  discard block
 block discarded – undo
744 744
  * @param int $item_id The item id.
745 745
  * @return int The IDs of users who purchased the item.
746 746
  */
747
-function getpaid_user_ids_who_purchased_item( $item_id ) {
747
+function getpaid_user_ids_who_purchased_item($item_id) {
748 748
     global $wpdb;
749 749
 
750
-    if ( empty( $item_id ) ) {
750
+    if (empty($item_id)) {
751 751
         return false;
752 752
     }
753 753
 
@@ -760,7 +760,7 @@  discard block
 block discarded – undo
760 760
         )
761 761
     );
762 762
 
763
-    return wp_parse_id_list( $ids );
763
+    return wp_parse_id_list($ids);
764 764
 }
765 765
 
766 766
 /**
@@ -769,10 +769,10 @@  discard block
 block discarded – undo
769 769
  * @since 2.6.17
770 770
  * @param int $user_id The user id.
771 771
  */
772
-function getpaid_has_user_purchased_item( $user_id, $item_id ) {
772
+function getpaid_has_user_purchased_item($user_id, $item_id) {
773 773
     global $wpdb;
774 774
 
775
-    if ( empty( $user_id ) ) {
775
+    if (empty($user_id)) {
776 776
         return false;
777 777
     }
778 778
 
@@ -787,7 +787,7 @@  discard block
 block discarded – undo
787 787
         )
788 788
     );
789 789
 
790
-    return ! empty( $count );
790
+    return !empty($count);
791 791
 }
792 792
 
793 793
 /**
@@ -796,7 +796,7 @@  discard block
 block discarded – undo
796 796
  * @since 2.6.17
797 797
  * @param int $user_id The user id.
798 798
  */
799
-function getpaid_get_user_total_spend( $user_id ) {
799
+function getpaid_get_user_total_spend($user_id) {
800 800
     $args = array(
801 801
         'data'           => array(
802 802
 
@@ -811,17 +811,17 @@  discard block
 block discarded – undo
811 811
 
812 812
             'author' => array(
813 813
                 'type'     => 'post_data',
814
-                'value'    => absint( $user_id ),
814
+                'value'    => absint($user_id),
815 815
                 'key'      => 'posts.post_author',
816 816
                 'operator' => '=',
817 817
             ),
818 818
 
819 819
         ),
820 820
         'query_type'     => 'get_var',
821
-        'invoice_status' => array( 'wpi-renewal', 'wpi-processing', 'publish' ),
821
+        'invoice_status' => array('wpi-renewal', 'wpi-processing', 'publish'),
822 822
     );
823 823
 
824
-    return wpinv_round_amount( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
824
+    return wpinv_round_amount(GetPaid_Reports_Helper::get_invoice_report_data($args));
825 825
 }
826 826
 
827 827
 /**
@@ -830,7 +830,7 @@  discard block
 block discarded – undo
830 830
  * @since 2.6.17
831 831
  * @param int $user_id The user id.
832 832
  */
833
-function getpaid_count_user_invoices( $user_id ) {
833
+function getpaid_count_user_invoices($user_id) {
834 834
     $args = array(
835 835
         'data'           => array(
836 836
 
@@ -846,15 +846,15 @@  discard block
 block discarded – undo
846 846
 
847 847
             'author' => array(
848 848
                 'type'     => 'post_data',
849
-                'value'    => absint( $user_id ),
849
+                'value'    => absint($user_id),
850 850
                 'key'      => 'posts.post_author',
851 851
                 'operator' => '=',
852 852
             ),
853 853
 
854 854
         ),
855 855
         'query_type'     => 'get_var',
856
-        'invoice_status' => array_keys( wpinv_get_invoice_statuses() ),
856
+        'invoice_status' => array_keys(wpinv_get_invoice_statuses()),
857 857
     );
858 858
 
859
-    return absint( GetPaid_Reports_Helper::get_invoice_report_data( $args ) );
859
+    return absint(GetPaid_Reports_Helper::get_invoice_report_data($args));
860 860
 }
Please login to merge, or discard this patch.
includes/class-getpaid-customer.php 2 patches
Indentation   +176 added lines, -176 removed lines patch added patch discarded remove patch
@@ -15,69 +15,69 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class GetPaid_Customer extends GetPaid_Data {
17 17
 
18
-	/**
19
-	 * Which data store to load.
20
-	 *
21
-	 * @var string
22
-	 */
18
+    /**
19
+     * Which data store to load.
20
+     *
21
+     * @var string
22
+     */
23 23
     protected $data_store_name = 'customer';
24 24
 
25 25
     /**
26
-	 * This is the name of this object type.
27
-	 *
28
-	 * @var string
29
-	 */
30
-	protected $object_type = 'customer';
31
-
32
-	/**
33
-	 * Get the customer if ID is passed, otherwise the customer is new and empty.
34
-	 *
35
-	 * @param int|string|GetPaid_Customer|object $customer customer id, object, or email.
36
-	 */
37
-	public function __construct( $customer = 0 ) {
26
+     * This is the name of this object type.
27
+     *
28
+     * @var string
29
+     */
30
+    protected $object_type = 'customer';
31
+
32
+    /**
33
+     * Get the customer if ID is passed, otherwise the customer is new and empty.
34
+     *
35
+     * @param int|string|GetPaid_Customer|object $customer customer id, object, or email.
36
+     */
37
+    public function __construct( $customer = 0 ) {
38 38
 
39 39
         // Setup default customer data.
40 40
         $this->setup_default_data();
41 41
 
42
-		if ( is_numeric( $customer ) ) {
43
-			$this->set_id( $customer );
44
-		} elseif ( $customer instanceof self ) {
45
-			$this->set_id( $customer->get_id() );
46
-		} elseif ( is_string( $customer ) && $customer_id = self::get_customer_id_by( $customer, 'email' ) ) {
47
-			$this->set_id( $customer_id );
48
-		} elseif ( ! empty( $customer->id ) ) {
49
-			$this->set_id( $customer->id );
50
-		}
42
+        if ( is_numeric( $customer ) ) {
43
+            $this->set_id( $customer );
44
+        } elseif ( $customer instanceof self ) {
45
+            $this->set_id( $customer->get_id() );
46
+        } elseif ( is_string( $customer ) && $customer_id = self::get_customer_id_by( $customer, 'email' ) ) {
47
+            $this->set_id( $customer_id );
48
+        } elseif ( ! empty( $customer->id ) ) {
49
+            $this->set_id( $customer->id );
50
+        }
51 51
 
52 52
         // Load the datastore.
53
-		$this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
53
+        $this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
54 54
 
55
-		if ( $this->get_id() > 0 ) {
56
-			$this->data_store->read( $this );
55
+        if ( $this->get_id() > 0 ) {
56
+            $this->data_store->read( $this );
57 57
         }
58 58
 
59 59
         $this->set_object_read( true );
60
-	}
60
+    }
61 61
 
62 62
     /**
63
-	 * Sets up default customer data.
64
-	 */
65
-	private function setup_default_data() {
63
+     * Sets up default customer data.
64
+     */
65
+    private function setup_default_data() {
66 66
 
67 67
         $this->data = array(
68
-			'user_id'        => 0,
69
-			'email'          => '',
70
-			'email_cc'       => '',
71
-			'status'         => 'active',
72
-			'purchase_value' => 0,
73
-			'purchase_count' => 0,
74
-			'date_created'   => current_time( 'mysql' ),
75
-			'date_modified'  => current_time( 'mysql' ),
76
-			'uuid'           => wp_generate_uuid4(),
77
-		);
68
+            'user_id'        => 0,
69
+            'email'          => '',
70
+            'email_cc'       => '',
71
+            'status'         => 'active',
72
+            'purchase_value' => 0,
73
+            'purchase_count' => 0,
74
+            'date_created'   => current_time( 'mysql' ),
75
+            'date_modified'  => current_time( 'mysql' ),
76
+            'uuid'           => wp_generate_uuid4(),
77
+        );
78 78
 
79 79
         // Add address fields.
80
-		foreach ( array_keys( getpaid_user_address_fields() ) as $field ) {
80
+        foreach ( array_keys( getpaid_user_address_fields() ) as $field ) {
81 81
 
82 82
             if ( isset( $this->data[ $field ] ) ) {
83 83
                 continue;
@@ -95,22 +95,22 @@  discard block
 block discarded – undo
95 95
                 continue;
96 96
             }
97 97
 
98
-			$this->data[ $field ] = '';
99
-		}
98
+            $this->data[ $field ] = '';
99
+        }
100 100
 
101 101
         $this->default_data = $this->data;
102
-	}
103
-
104
-	/**
105
-	 * Given a customer email or user id, it returns a customer id.
106
-	 *
107
-	 * @static
108
-	 * @param string $value
109
-	 * @since 1.0.15
110
-	 * @return int
111
-	 */
112
-	public static function get_customer_id_by( $value, $by = 'email' ) {
113
-		global $wpdb;
102
+    }
103
+
104
+    /**
105
+     * Given a customer email or user id, it returns a customer id.
106
+     *
107
+     * @static
108
+     * @param string $value
109
+     * @since 1.0.15
110
+     * @return int
111
+     */
112
+    public static function get_customer_id_by( $value, $by = 'email' ) {
113
+        global $wpdb;
114 114
 
115 115
         // Prepare value.
116 116
         if ( 'email' === $by ) {
@@ -125,12 +125,12 @@  discard block
 block discarded – undo
125 125
             return 0;
126 126
         }
127 127
 
128
-		// Maybe retrieve from the cache.
128
+        // Maybe retrieve from the cache.
129 129
         $cache_key   = 'getpaid_customer_ids_by_' . $by;
130
-		$customer_id = wp_cache_get( $value, $cache_key );
131
-		if ( false !== $customer_id ) {
132
-			return $customer_id;
133
-		}
130
+        $customer_id = wp_cache_get( $value, $cache_key );
131
+        if ( false !== $customer_id ) {
132
+            return $customer_id;
133
+        }
134 134
 
135 135
         if ( 'email' === $by ) {
136 136
             $customer_id = (int) $wpdb->get_var(
@@ -142,23 +142,23 @@  discard block
 block discarded – undo
142 142
             );
143 143
         }
144 144
 
145
-		// Update the cache with our data
146
-		wp_cache_set( $value, $customer_id, $cache_key );
145
+        // Update the cache with our data
146
+        wp_cache_set( $value, $customer_id, $cache_key );
147 147
 
148
-		return $customer_id;
148
+        return $customer_id;
149 149
 
150
-	}
150
+    }
151 151
 
152
-	/**
152
+    /**
153 153
      * Clears the customer's cache.
154 154
      */
155 155
     public function clear_cache() {
156 156
         wp_cache_delete( $this->get( 'email' ), 'getpaid_customer_ids_by_email' );
157 157
         wp_cache_delete( $this->get( 'user_id' ), 'getpaid_customer_ids_by_user_id' );
158
-		wp_cache_delete( $this->get_id(), 'getpaid_customers' );
159
-	}
158
+        wp_cache_delete( $this->get_id(), 'getpaid_customers' );
159
+    }
160 160
 
161
-	/*
161
+    /*
162 162
 	|--------------------------------------------------------------------------
163 163
 	| CRUD methods
164 164
 	|--------------------------------------------------------------------------
@@ -189,11 +189,11 @@  discard block
 block discarded – undo
189 189
             return call_user_func( array( $this, 'get_' . $key ), $context );
190 190
         }
191 191
 
192
-		return $this->get_prop( $key, $context );
192
+        return $this->get_prop( $key, $context );
193 193
 
194 194
     }
195 195
 
196
-	/*
196
+    /*
197 197
 	|--------------------------------------------------------------------------
198 198
 	| Setters
199 199
 	|--------------------------------------------------------------------------
@@ -216,114 +216,114 @@  discard block
 block discarded – undo
216 216
             return call_user_func( array( $this, 'set_' . $key ), $value );
217 217
         }
218 218
 
219
-		return $this->set_prop( $key, $value );
219
+        return $this->set_prop( $key, $value );
220 220
 
221 221
     }
222 222
 
223
-	/**
224
-	 * Sets customer status.
225
-	 *
226
-	 * @since 1.0.0
227
-	 * @param  string $status New status.
228
-	 */
229
-	public function set_status( $status ) {
230
-
231
-		if ( in_array( $status, array( 'active', 'inactive', 'blocked' ), true ) ) {
232
-			return $this->set_prop( 'status', $status );
233
-		}
234
-
235
-		$this->set_prop( 'status', 'inactive' );
236
-	}
237
-
238
-	/**
239
-	 * Sets the purchase value.
240
-	 *
241
-	 * @since 1.0.0
242
-	 * @param float $purchase_value.
243
-	 */
244
-	public function set_purchase_value( $purchase_value ) {
245
-		$this->set_prop( 'purchase_value', (float) $purchase_value );
246
-	}
223
+    /**
224
+     * Sets customer status.
225
+     *
226
+     * @since 1.0.0
227
+     * @param  string $status New status.
228
+     */
229
+    public function set_status( $status ) {
230
+
231
+        if ( in_array( $status, array( 'active', 'inactive', 'blocked' ), true ) ) {
232
+            return $this->set_prop( 'status', $status );
233
+        }
234
+
235
+        $this->set_prop( 'status', 'inactive' );
236
+    }
237
+
238
+    /**
239
+     * Sets the purchase value.
240
+     *
241
+     * @since 1.0.0
242
+     * @param float $purchase_value.
243
+     */
244
+    public function set_purchase_value( $purchase_value ) {
245
+        $this->set_prop( 'purchase_value', (float) $purchase_value );
246
+    }
247 247
 
248 248
     /**
249
-	 * Sets the purchase count.
250
-	 *
251
-	 * @since 1.0.0
252
-	 * @param int $purchase_count.
253
-	 */
254
-	public function set_purchase_count( $purchase_count ) {
255
-		$this->set_prop( 'purchase_count', absint( $purchase_count ) );
256
-	}
249
+     * Sets the purchase count.
250
+     *
251
+     * @since 1.0.0
252
+     * @param int $purchase_count.
253
+     */
254
+    public function set_purchase_count( $purchase_count ) {
255
+        $this->set_prop( 'purchase_count', absint( $purchase_count ) );
256
+    }
257 257
 
258 258
     /**
259
-	 * Sets the user id.
260
-	 *
261
-	 * @since 1.0.0
262
-	 * @param int $user_id.
263
-	 */
264
-	public function set_user_id( $user_id ) {
265
-		$this->set_prop( 'user_id', absint( $user_id ) );
266
-	}
259
+     * Sets the user id.
260
+     *
261
+     * @since 1.0.0
262
+     * @param int $user_id.
263
+     */
264
+    public function set_user_id( $user_id ) {
265
+        $this->set_prop( 'user_id', absint( $user_id ) );
266
+    }
267 267
 
268 268
     /**
269
-	 * Sets the email.
270
-	 *
271
-	 * @since 1.0.0
272
-	 * @param string $email.
273
-	 */
274
-	public function set_email( $email ) {
269
+     * Sets the email.
270
+     *
271
+     * @since 1.0.0
272
+     * @param string $email.
273
+     */
274
+    public function set_email( $email ) {
275 275
         $email = is_string( $email ) ? sanitize_email( $email ) : '';
276
-		$this->set_prop( 'email', $email );
277
-	}
276
+        $this->set_prop( 'email', $email );
277
+    }
278 278
 
279 279
     /**
280
-	 * Sets the email cc.
281
-	 *
282
-	 * @since 1.0.0
283
-	 * @param string $email_cc.
284
-	 */
285
-	public function set_email_cc( $email_cc ) {
280
+     * Sets the email cc.
281
+     *
282
+     * @since 1.0.0
283
+     * @param string $email_cc.
284
+     */
285
+    public function set_email_cc( $email_cc ) {
286 286
         $email_cc = implode( ', ', wp_parse_list( $email_cc ) );
287
-		$this->set_prop( 'email_cc', $email_cc );
288
-	}
287
+        $this->set_prop( 'email_cc', $email_cc );
288
+    }
289 289
 
290 290
     /**
291
-	 * Sets the created date.
292
-	 *
293
-	 * @since 1.0.0
294
-	 * @param  string $date_created date created.
295
-	 */
296
-	public function set_date_created( $date_created ) {
291
+     * Sets the created date.
292
+     *
293
+     * @since 1.0.0
294
+     * @param  string $date_created date created.
295
+     */
296
+    public function set_date_created( $date_created ) {
297 297
 
298
-		$date = strtotime( $date_created );
298
+        $date = strtotime( $date_created );
299 299
 
300 300
         if ( $date && $date_created !== '0000-00-00 00:00:00'  && $date_created !== '0000-00-00 00:00' ) {
301 301
             $this->set_prop( 'date_created', gmdate( 'Y-m-d H:i:s', $date ) );
302 302
             return;
303
-		}
303
+        }
304 304
 
305
-		$this->set_prop( 'date_created', null );
306
-	}
305
+        $this->set_prop( 'date_created', null );
306
+    }
307 307
 
308 308
     /**
309
-	 * Sets the created date.
310
-	 *
311
-	 * @since 1.0.0
312
-	 * @param  string $date_modified date created.
313
-	 */
314
-	public function set_date_modified( $date_modified ) {
309
+     * Sets the created date.
310
+     *
311
+     * @since 1.0.0
312
+     * @param  string $date_modified date created.
313
+     */
314
+    public function set_date_modified( $date_modified ) {
315 315
 
316
-		$date = strtotime( $date_modified );
316
+        $date = strtotime( $date_modified );
317 317
 
318 318
         if ( $date && $date_modified !== '0000-00-00 00:00:00'  && $date_modified !== '0000-00-00 00:00' ) {
319 319
             $this->set_prop( 'date_modified', gmdate( 'Y-m-d H:i:s', $date ) );
320 320
             return;
321
-		}
321
+        }
322 322
 
323
-		$this->set_prop( 'date_modified', null );
324
-	}
323
+        $this->set_prop( 'date_modified', null );
324
+    }
325 325
 
326
-	/*
326
+    /*
327 327
 	|--------------------------------------------------------------------------
328 328
 	| Additional methods
329 329
 	|--------------------------------------------------------------------------
@@ -332,12 +332,12 @@  discard block
 block discarded – undo
332 332
 	|
333 333
 	*/
334 334
 
335
-	/**
336
-	 * Saves the customer.
337
-	 *
338
-	 * @since 1.0.0
339
-	 */
340
-	public function save() {
335
+    /**
336
+     * Saves the customer.
337
+     *
338
+     * @since 1.0.0
339
+     */
340
+    public function save() {
341 341
 
342 342
         $maybe_set = array(
343 343
             'uuid'         => wp_generate_uuid4(),
@@ -354,29 +354,29 @@  discard block
 block discarded – undo
354 354
 
355 355
         $this->set( 'date_modified', current_time( 'mysql' ) );
356 356
 
357
-		return parent::save();
358
-	}
357
+        return parent::save();
358
+    }
359 359
 
360 360
     /**
361
-	 * Helper method to clone a customer from a user ID.
362
-	 *
363
-	 * @since 1.0.0
364
-	 * @param int $user_id.
365
-	 */
366
-	public function clone_user( $user_id ) {
361
+     * Helper method to clone a customer from a user ID.
362
+     *
363
+     * @since 1.0.0
364
+     * @param int $user_id.
365
+     */
366
+    public function clone_user( $user_id ) {
367 367
         $user = get_userdata( $user_id );
368 368
 
369 369
         if ( empty( $user ) ) {
370 370
             return;
371 371
         }
372 372
 
373
-		$this->set_user_id( $user->ID );
373
+        $this->set_user_id( $user->ID );
374 374
         $this->set_email( $user->user_email );
375 375
         $this->set_purchase_value( getpaid_get_user_total_spend( $user->ID ) );
376 376
         $this->set_purchase_count( getpaid_count_user_invoices( $user->ID ) );
377 377
         $this->set( 'first_name', $user->first_name );
378 378
         $this->set( 'last_name', $user->last_name );
379
-		$this->set_date_created( $user->user_registered );
379
+        $this->set_date_created( $user->user_registered );
380 380
 
381 381
         // Fetch extra data from WC or old GetPaid.
382 382
         $prefixes = array(
@@ -400,18 +400,18 @@  discard block
 block discarded – undo
400 400
                     continue;
401 401
                 }
402 402
             }
403
-		}
404
-	}
403
+        }
404
+    }
405 405
 
406 406
     /**
407
-	 * Helper method to migrate an existing user ID to the new customers table.
408
-	 *
409
-	 * @since 1.0.0
410
-	 * @param int $user_id.
411
-	 */
412
-	public function migrate_from_user( $user_id ) {
407
+     * Helper method to migrate an existing user ID to the new customers table.
408
+     *
409
+     * @since 1.0.0
410
+     * @param int $user_id.
411
+     */
412
+    public function migrate_from_user( $user_id ) {
413 413
         $this->clone_user( $user_id );
414 414
         do_action( 'getpaid_customer_migrated_from_user', $this, $user_id );
415 415
         $this->save();
416
-	}
416
+    }
417 417
 }
Please login to merge, or discard this patch.
Spacing   +100 added lines, -100 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  * @since   1.0.15
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * Customer class.
@@ -34,29 +34,29 @@  discard block
 block discarded – undo
34 34
 	 *
35 35
 	 * @param int|string|GetPaid_Customer|object $customer customer id, object, or email.
36 36
 	 */
37
-	public function __construct( $customer = 0 ) {
37
+	public function __construct($customer = 0) {
38 38
 
39 39
         // Setup default customer data.
40 40
         $this->setup_default_data();
41 41
 
42
-		if ( is_numeric( $customer ) ) {
43
-			$this->set_id( $customer );
44
-		} elseif ( $customer instanceof self ) {
45
-			$this->set_id( $customer->get_id() );
46
-		} elseif ( is_string( $customer ) && $customer_id = self::get_customer_id_by( $customer, 'email' ) ) {
47
-			$this->set_id( $customer_id );
48
-		} elseif ( ! empty( $customer->id ) ) {
49
-			$this->set_id( $customer->id );
42
+		if (is_numeric($customer)) {
43
+			$this->set_id($customer);
44
+		} elseif ($customer instanceof self) {
45
+			$this->set_id($customer->get_id());
46
+		} elseif (is_string($customer) && $customer_id = self::get_customer_id_by($customer, 'email')) {
47
+			$this->set_id($customer_id);
48
+		} elseif (!empty($customer->id)) {
49
+			$this->set_id($customer->id);
50 50
 		}
51 51
 
52 52
         // Load the datastore.
53
-		$this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
53
+		$this->data_store = GetPaid_Data_Store::load($this->data_store_name);
54 54
 
55
-		if ( $this->get_id() > 0 ) {
56
-			$this->data_store->read( $this );
55
+		if ($this->get_id() > 0) {
56
+			$this->data_store->read($this);
57 57
         }
58 58
 
59
-        $this->set_object_read( true );
59
+        $this->set_object_read(true);
60 60
 	}
61 61
 
62 62
     /**
@@ -71,31 +71,31 @@  discard block
 block discarded – undo
71 71
 			'status'         => 'active',
72 72
 			'purchase_value' => 0,
73 73
 			'purchase_count' => 0,
74
-			'date_created'   => current_time( 'mysql' ),
75
-			'date_modified'  => current_time( 'mysql' ),
74
+			'date_created'   => current_time('mysql'),
75
+			'date_modified'  => current_time('mysql'),
76 76
 			'uuid'           => wp_generate_uuid4(),
77 77
 		);
78 78
 
79 79
         // Add address fields.
80
-		foreach ( array_keys( getpaid_user_address_fields() ) as $field ) {
80
+		foreach (array_keys(getpaid_user_address_fields()) as $field) {
81 81
 
82
-            if ( isset( $this->data[ $field ] ) ) {
82
+            if (isset($this->data[$field])) {
83 83
                 continue;
84 84
             }
85 85
 
86 86
             // Country.
87
-            if ( 'country' === $field ) {
88
-                $this->data[ $field ] = wpinv_get_default_country();
87
+            if ('country' === $field) {
88
+                $this->data[$field] = wpinv_get_default_country();
89 89
                 continue;
90 90
             }
91 91
 
92 92
             // State.
93
-            if ( 'state' === $field ) {
94
-                $this->data[ $field ] = wpinv_get_default_state();
93
+            if ('state' === $field) {
94
+                $this->data[$field] = wpinv_get_default_state();
95 95
                 continue;
96 96
             }
97 97
 
98
-			$this->data[ $field ] = '';
98
+			$this->data[$field] = '';
99 99
 		}
100 100
 
101 101
         $this->default_data = $this->data;
@@ -109,41 +109,41 @@  discard block
 block discarded – undo
109 109
 	 * @since 1.0.15
110 110
 	 * @return int
111 111
 	 */
112
-	public static function get_customer_id_by( $value, $by = 'email' ) {
112
+	public static function get_customer_id_by($value, $by = 'email') {
113 113
 		global $wpdb;
114 114
 
115 115
         // Prepare value.
116
-        if ( 'email' === $by ) {
117
-            $value = sanitize_email( $value );
118
-        } elseif ( 'user_id' === $by ) {
119
-            $value = absint( $value );
116
+        if ('email' === $by) {
117
+            $value = sanitize_email($value);
118
+        } elseif ('user_id' === $by) {
119
+            $value = absint($value);
120 120
         } else {
121 121
             return 0;
122 122
         }
123 123
 
124
-        if ( empty( $value ) ) {
124
+        if (empty($value)) {
125 125
             return 0;
126 126
         }
127 127
 
128 128
 		// Maybe retrieve from the cache.
129
-        $cache_key   = 'getpaid_customer_ids_by_' . $by;
130
-		$customer_id = wp_cache_get( $value, $cache_key );
131
-		if ( false !== $customer_id ) {
129
+        $cache_key = 'getpaid_customer_ids_by_' . $by;
130
+		$customer_id = wp_cache_get($value, $cache_key);
131
+		if (false !== $customer_id) {
132 132
 			return $customer_id;
133 133
 		}
134 134
 
135
-        if ( 'email' === $by ) {
135
+        if ('email' === $by) {
136 136
             $customer_id = (int) $wpdb->get_var(
137
-                $wpdb->prepare( "SELECT id FROM {$wpdb->prefix}getpaid_customers WHERE email=%s LIMIT 1", $value )
137
+                $wpdb->prepare("SELECT id FROM {$wpdb->prefix}getpaid_customers WHERE email=%s LIMIT 1", $value)
138 138
             );
139
-        } elseif ( 'user_id' === $by ) {
139
+        } elseif ('user_id' === $by) {
140 140
             $customer_id = (int) $wpdb->get_var(
141
-                $wpdb->prepare( "SELECT id FROM {$wpdb->prefix}getpaid_customers WHERE user_id=%d LIMIT 1", $value )
141
+                $wpdb->prepare("SELECT id FROM {$wpdb->prefix}getpaid_customers WHERE user_id=%d LIMIT 1", $value)
142 142
             );
143 143
         }
144 144
 
145 145
 		// Update the cache with our data
146
-		wp_cache_set( $value, $customer_id, $cache_key );
146
+		wp_cache_set($value, $customer_id, $cache_key);
147 147
 
148 148
 		return $customer_id;
149 149
 
@@ -153,9 +153,9 @@  discard block
 block discarded – undo
153 153
      * Clears the customer's cache.
154 154
      */
155 155
     public function clear_cache() {
156
-        wp_cache_delete( $this->get( 'email' ), 'getpaid_customer_ids_by_email' );
157
-        wp_cache_delete( $this->get( 'user_id' ), 'getpaid_customer_ids_by_user_id' );
158
-		wp_cache_delete( $this->get_id(), 'getpaid_customers' );
156
+        wp_cache_delete($this->get('email'), 'getpaid_customer_ids_by_email');
157
+        wp_cache_delete($this->get('user_id'), 'getpaid_customer_ids_by_user_id');
158
+		wp_cache_delete($this->get_id(), 'getpaid_customers');
159 159
 	}
160 160
 
161 161
 	/*
@@ -179,17 +179,17 @@  discard block
 block discarded – undo
179 179
      * @param  string $key The key to fetch.
180 180
      * @param  string $context View or edit context.
181 181
      */
182
-    public function get( $key, $context = 'view' ) {
182
+    public function get($key, $context = 'view') {
183 183
 
184 184
         // Maybe strip _wpinv_ prefix from key.
185
-        $key = str_replace( '_wpinv_', '', $key );
185
+        $key = str_replace('_wpinv_', '', $key);
186 186
 
187 187
         // Check if we have a helper method for that.
188
-        if ( method_exists( $this, 'get_' . $key ) ) {
189
-            return call_user_func( array( $this, 'get_' . $key ), $context );
188
+        if (method_exists($this, 'get_' . $key)) {
189
+            return call_user_func(array($this, 'get_' . $key), $context);
190 190
         }
191 191
 
192
-		return $this->get_prop( $key, $context );
192
+		return $this->get_prop($key, $context);
193 193
 
194 194
     }
195 195
 
@@ -209,14 +209,14 @@  discard block
 block discarded – undo
209 209
      * @param string $key The key to fetch.
210 210
      * @param mixed $value The new value.
211 211
      */
212
-    public function set( $key, $value ) {
212
+    public function set($key, $value) {
213 213
 
214 214
         // Check if we have a helper method for that.
215
-        if ( method_exists( $this, 'set_' . $key ) ) {
216
-            return call_user_func( array( $this, 'set_' . $key ), $value );
215
+        if (method_exists($this, 'set_' . $key)) {
216
+            return call_user_func(array($this, 'set_' . $key), $value);
217 217
         }
218 218
 
219
-		return $this->set_prop( $key, $value );
219
+		return $this->set_prop($key, $value);
220 220
 
221 221
     }
222 222
 
@@ -226,13 +226,13 @@  discard block
 block discarded – undo
226 226
 	 * @since 1.0.0
227 227
 	 * @param  string $status New status.
228 228
 	 */
229
-	public function set_status( $status ) {
229
+	public function set_status($status) {
230 230
 
231
-		if ( in_array( $status, array( 'active', 'inactive', 'blocked' ), true ) ) {
232
-			return $this->set_prop( 'status', $status );
231
+		if (in_array($status, array('active', 'inactive', 'blocked'), true)) {
232
+			return $this->set_prop('status', $status);
233 233
 		}
234 234
 
235
-		$this->set_prop( 'status', 'inactive' );
235
+		$this->set_prop('status', 'inactive');
236 236
 	}
237 237
 
238 238
 	/**
@@ -241,8 +241,8 @@  discard block
 block discarded – undo
241 241
 	 * @since 1.0.0
242 242
 	 * @param float $purchase_value.
243 243
 	 */
244
-	public function set_purchase_value( $purchase_value ) {
245
-		$this->set_prop( 'purchase_value', (float) $purchase_value );
244
+	public function set_purchase_value($purchase_value) {
245
+		$this->set_prop('purchase_value', (float) $purchase_value);
246 246
 	}
247 247
 
248 248
     /**
@@ -251,8 +251,8 @@  discard block
 block discarded – undo
251 251
 	 * @since 1.0.0
252 252
 	 * @param int $purchase_count.
253 253
 	 */
254
-	public function set_purchase_count( $purchase_count ) {
255
-		$this->set_prop( 'purchase_count', absint( $purchase_count ) );
254
+	public function set_purchase_count($purchase_count) {
255
+		$this->set_prop('purchase_count', absint($purchase_count));
256 256
 	}
257 257
 
258 258
     /**
@@ -261,8 +261,8 @@  discard block
 block discarded – undo
261 261
 	 * @since 1.0.0
262 262
 	 * @param int $user_id.
263 263
 	 */
264
-	public function set_user_id( $user_id ) {
265
-		$this->set_prop( 'user_id', absint( $user_id ) );
264
+	public function set_user_id($user_id) {
265
+		$this->set_prop('user_id', absint($user_id));
266 266
 	}
267 267
 
268 268
     /**
@@ -271,9 +271,9 @@  discard block
 block discarded – undo
271 271
 	 * @since 1.0.0
272 272
 	 * @param string $email.
273 273
 	 */
274
-	public function set_email( $email ) {
275
-        $email = is_string( $email ) ? sanitize_email( $email ) : '';
276
-		$this->set_prop( 'email', $email );
274
+	public function set_email($email) {
275
+        $email = is_string($email) ? sanitize_email($email) : '';
276
+		$this->set_prop('email', $email);
277 277
 	}
278 278
 
279 279
     /**
@@ -282,9 +282,9 @@  discard block
 block discarded – undo
282 282
 	 * @since 1.0.0
283 283
 	 * @param string $email_cc.
284 284
 	 */
285
-	public function set_email_cc( $email_cc ) {
286
-        $email_cc = implode( ', ', wp_parse_list( $email_cc ) );
287
-		$this->set_prop( 'email_cc', $email_cc );
285
+	public function set_email_cc($email_cc) {
286
+        $email_cc = implode(', ', wp_parse_list($email_cc));
287
+		$this->set_prop('email_cc', $email_cc);
288 288
 	}
289 289
 
290 290
     /**
@@ -293,16 +293,16 @@  discard block
 block discarded – undo
293 293
 	 * @since 1.0.0
294 294
 	 * @param  string $date_created date created.
295 295
 	 */
296
-	public function set_date_created( $date_created ) {
296
+	public function set_date_created($date_created) {
297 297
 
298
-		$date = strtotime( $date_created );
298
+		$date = strtotime($date_created);
299 299
 
300
-        if ( $date && $date_created !== '0000-00-00 00:00:00'  && $date_created !== '0000-00-00 00:00' ) {
301
-            $this->set_prop( 'date_created', gmdate( 'Y-m-d H:i:s', $date ) );
300
+        if ($date && $date_created !== '0000-00-00 00:00:00' && $date_created !== '0000-00-00 00:00') {
301
+            $this->set_prop('date_created', gmdate('Y-m-d H:i:s', $date));
302 302
             return;
303 303
 		}
304 304
 
305
-		$this->set_prop( 'date_created', null );
305
+		$this->set_prop('date_created', null);
306 306
 	}
307 307
 
308 308
     /**
@@ -311,16 +311,16 @@  discard block
 block discarded – undo
311 311
 	 * @since 1.0.0
312 312
 	 * @param  string $date_modified date created.
313 313
 	 */
314
-	public function set_date_modified( $date_modified ) {
314
+	public function set_date_modified($date_modified) {
315 315
 
316
-		$date = strtotime( $date_modified );
316
+		$date = strtotime($date_modified);
317 317
 
318
-        if ( $date && $date_modified !== '0000-00-00 00:00:00'  && $date_modified !== '0000-00-00 00:00' ) {
319
-            $this->set_prop( 'date_modified', gmdate( 'Y-m-d H:i:s', $date ) );
318
+        if ($date && $date_modified !== '0000-00-00 00:00:00' && $date_modified !== '0000-00-00 00:00') {
319
+            $this->set_prop('date_modified', gmdate('Y-m-d H:i:s', $date));
320 320
             return;
321 321
 		}
322 322
 
323
-		$this->set_prop( 'date_modified', null );
323
+		$this->set_prop('date_modified', null);
324 324
 	}
325 325
 
326 326
 	/*
@@ -341,18 +341,18 @@  discard block
 block discarded – undo
341 341
 
342 342
         $maybe_set = array(
343 343
             'uuid'         => wp_generate_uuid4(),
344
-            'date_created' => current_time( 'mysql' ),
344
+            'date_created' => current_time('mysql'),
345 345
         );
346 346
 
347
-        foreach ( $maybe_set as $key => $value ) {
348
-            $current_value = $this->get( $key );
347
+        foreach ($maybe_set as $key => $value) {
348
+            $current_value = $this->get($key);
349 349
 
350
-            if ( empty( $current_value ) ) {
351
-                $this->set( $key, $value );
350
+            if (empty($current_value)) {
351
+                $this->set($key, $value);
352 352
             }
353 353
         }
354 354
 
355
-        $this->set( 'date_modified', current_time( 'mysql' ) );
355
+        $this->set('date_modified', current_time('mysql'));
356 356
 
357 357
 		return parent::save();
358 358
 	}
@@ -363,20 +363,20 @@  discard block
 block discarded – undo
363 363
 	 * @since 1.0.0
364 364
 	 * @param int $user_id.
365 365
 	 */
366
-	public function clone_user( $user_id ) {
367
-        $user = get_userdata( $user_id );
366
+	public function clone_user($user_id) {
367
+        $user = get_userdata($user_id);
368 368
 
369
-        if ( empty( $user ) ) {
369
+        if (empty($user)) {
370 370
             return;
371 371
         }
372 372
 
373
-		$this->set_user_id( $user->ID );
374
-        $this->set_email( $user->user_email );
375
-        $this->set_purchase_value( getpaid_get_user_total_spend( $user->ID ) );
376
-        $this->set_purchase_count( getpaid_count_user_invoices( $user->ID ) );
377
-        $this->set( 'first_name', $user->first_name );
378
-        $this->set( 'last_name', $user->last_name );
379
-		$this->set_date_created( $user->user_registered );
373
+		$this->set_user_id($user->ID);
374
+        $this->set_email($user->user_email);
375
+        $this->set_purchase_value(getpaid_get_user_total_spend($user->ID));
376
+        $this->set_purchase_count(getpaid_count_user_invoices($user->ID));
377
+        $this->set('first_name', $user->first_name);
378
+        $this->set('last_name', $user->last_name);
379
+		$this->set_date_created($user->user_registered);
380 380
 
381 381
         // Fetch extra data from WC or old GetPaid.
382 382
         $prefixes = array(
@@ -385,18 +385,18 @@  discard block
 block discarded – undo
385 385
             '',
386 386
         );
387 387
 
388
-        foreach ( array_keys( getpaid_user_address_fields() ) as $field ) {
388
+        foreach (array_keys(getpaid_user_address_fields()) as $field) {
389 389
 
390
-            foreach ( $prefixes as $prefix ) {
390
+            foreach ($prefixes as $prefix) {
391 391
 
392 392
                 // Meta table.
393
-                $value = get_user_meta( $user_id, $prefix . $field, true );
393
+                $value = get_user_meta($user_id, $prefix . $field, true);
394 394
 
395 395
                 // UWP table.
396
-                $value = ( empty( $value ) && function_exists( 'uwp_get_usermeta' ) ) ? uwp_get_usermeta( $user_id, $prefix . $field ) : $value;
396
+                $value = (empty($value) && function_exists('uwp_get_usermeta')) ? uwp_get_usermeta($user_id, $prefix . $field) : $value;
397 397
 
398
-                if ( ! empty( $value ) ) {
399
-                    $this->set( $field, $value );
398
+                if (!empty($value)) {
399
+                    $this->set($field, $value);
400 400
                     continue;
401 401
                 }
402 402
             }
@@ -409,9 +409,9 @@  discard block
 block discarded – undo
409 409
 	 * @since 1.0.0
410 410
 	 * @param int $user_id.
411 411
 	 */
412
-	public function migrate_from_user( $user_id ) {
413
-        $this->clone_user( $user_id );
414
-        do_action( 'getpaid_customer_migrated_from_user', $this, $user_id );
412
+	public function migrate_from_user($user_id) {
413
+        $this->clone_user($user_id);
414
+        do_action('getpaid_customer_migrated_from_user', $this, $user_id);
415 415
         $this->save();
416 416
 	}
417 417
 }
Please login to merge, or discard this patch.
includes/admin/meta-boxes/class-getpaid-meta-box-invoice-items.php 2 patches
Indentation   +150 added lines, -150 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  */
9 9
 
10 10
 if ( ! defined( 'ABSPATH' ) ) {
11
-	exit; // Exit if accessed directly
11
+    exit; // Exit if accessed directly
12 12
 }
13 13
 
14 14
 /**
@@ -75,16 +75,16 @@  discard block
 block discarded – undo
75 75
             $class .= ' wpi-recurring';
76 76
         }
77 77
 
78
-		$refund_url = wp_nonce_url(
79
-			add_query_arg(
80
-				array(
81
-					'getpaid-admin-action' => 'refund_invoice',
82
-					'invoice_id'           => $invoice->get_id(),
83
-				)
84
-			),
85
-			'getpaid-nonce',
86
-			'getpaid-nonce'
87
-		);
78
+        $refund_url = wp_nonce_url(
79
+            add_query_arg(
80
+                array(
81
+                    'getpaid-admin-action' => 'refund_invoice',
82
+                    'invoice_id'           => $invoice->get_id(),
83
+                )
84
+            ),
85
+            'getpaid-nonce',
86
+            'getpaid-nonce'
87
+        );
88 88
     ?>
89 89
 
90 90
         <div class="wpinv-items-wrap<?php echo esc_attr( $class ); ?>" id="wpinv_items_wrap" data-status="<?php echo esc_attr( $invoice->get_status() ); ?>">
@@ -96,8 +96,8 @@  discard block
 block discarded – undo
96 96
                             <th class="
97 97
                             <?php
98 98
                             echo esc_attr( $key );
99
-							echo 'total' == $key || 'qty' == $key ? ' hide-if-amount' : '';
100
-							?>
99
+                            echo 'total' == $key || 'qty' == $key ? ' hide-if-amount' : '';
100
+                            ?>
101 101
 							"><?php echo wp_kses_post( $label ); ?></th>
102 102
                         <?php endforeach; ?>
103 103
                     </tr>
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
                 <tbody class="wpinv-line-items">
107 107
                     <?php
108 108
                         foreach ( $invoice->get_items() as $int => $item ) {
109
-						self::output_row( $columns, $item, $invoice, $int % 2 == 0 ? 'even' : 'odd' );
109
+                        self::output_row( $columns, $item, $invoice, $int % 2 == 0 ? 'even' : 'odd' );
110 110
                         }
111 111
                     ?>
112 112
                 </tbody>
@@ -151,13 +151,13 @@  discard block
 block discarded – undo
151 151
                                                         <?php
152 152
                                                         wpinv_html_select(
153 153
                                                             array(
154
-																'options'          => $item_types,
155
-																'name'             => '_wpinv_quick[type]',
156
-																'id'               => '_wpinv_quick_type',
157
-																'selected'         => 'custom',
158
-																'show_option_all'  => false,
159
-																'show_option_none' => false,
160
-																'class'            => 'gdmbx2-text-medium wpinv-quick-type',
154
+                                                                'options'          => $item_types,
155
+                                                                'name'             => '_wpinv_quick[type]',
156
+                                                                'id'               => '_wpinv_quick_type',
157
+                                                                'selected'         => 'custom',
158
+                                                                'show_option_all'  => false,
159
+                                                                'show_option_none' => false,
160
+                                                                'class'            => 'gdmbx2-text-medium wpinv-quick-type',
161 161
                                                             )
162 162
                                                         );
163 163
                                                             ?>
@@ -172,16 +172,16 @@  discard block
 block discarded – undo
172 172
                                                             <?php
173 173
                                                                 wpinv_html_select(
174 174
                                                                     array(
175
-																		'options'          => array_merge(
176
-																			array( '' => __( 'Select VAT Rule', 'invoicing' ) ),
177
-																			getpaid_get_tax_rules()
178
-																		),
179
-																		'name'             => '_wpinv_quick[vat_rule]',
180
-																		'id'               => '_wpinv_quick_vat_rule',
181
-																		'show_option_all'  => false,
182
-																		'show_option_none' => false,
183
-																		'class'            => 'gdmbx2-text-medium wpinv-quick-vat-rule',
184
-																		'selected'         => 'digital',
175
+                                                                        'options'          => array_merge(
176
+                                                                            array( '' => __( 'Select VAT Rule', 'invoicing' ) ),
177
+                                                                            getpaid_get_tax_rules()
178
+                                                                        ),
179
+                                                                        'name'             => '_wpinv_quick[vat_rule]',
180
+                                                                        'id'               => '_wpinv_quick_vat_rule',
181
+                                                                        'show_option_all'  => false,
182
+                                                                        'show_option_none' => false,
183
+                                                                        'class'            => 'gdmbx2-text-medium wpinv-quick-vat-rule',
184
+                                                                        'selected'         => 'digital',
185 185
                                                                     )
186 186
                                                                 );
187 187
                                                             ?>
@@ -194,16 +194,16 @@  discard block
 block discarded – undo
194 194
                                                             <?php
195 195
                                                                 wpinv_html_select(
196 196
                                                                     array(
197
-																		'options'          => array_merge(
198
-																			array( '' => __( 'Select VAT Class', 'invoicing' ) ),
199
-																			getpaid_get_tax_classes()
200
-																		),
201
-																		'name'             => '_wpinv_quick[vat_class]',
202
-																		'id'               => '_wpinv_quick_vat_class',
203
-																		'show_option_all'  => false,
204
-																		'show_option_none' => false,
205
-																		'class'            => 'gdmbx2-text-medium wpinv-quick-vat-class',
206
-																		'selected'         => '_standard',
197
+                                                                        'options'          => array_merge(
198
+                                                                            array( '' => __( 'Select VAT Class', 'invoicing' ) ),
199
+                                                                            getpaid_get_tax_classes()
200
+                                                                        ),
201
+                                                                        'name'             => '_wpinv_quick[vat_class]',
202
+                                                                        'id'               => '_wpinv_quick_vat_class',
203
+                                                                        'show_option_all'  => false,
204
+                                                                        'show_option_none' => false,
205
+                                                                        'class'            => 'gdmbx2-text-medium wpinv-quick-vat-class',
206
+                                                                        'selected'         => '_standard',
207 207
                                                                     )
208 208
                                                                 );
209 209
                                                             ?>
@@ -294,37 +294,37 @@  discard block
 block discarded – undo
294 294
 								</p>
295 295
 								<?php if ( getpaid_payment_gateway_supports( $invoice->get_gateway(), 'refunds' ) ) : ?>
296 296
 									<?php
297
-										aui()->input(
298
-											array(
299
-												'type'  => 'checkbox',
300
-												'name'  => 'getpaid_refund_remote',
301
-												'id'    => 'getpaid_refund_remote',
302
-												'label' => sprintf(
303
-													'Refund payment in %s',
304
-													wpinv_get_gateway_admin_label( $invoice->get_gateway() )
305
-												),
306
-												'value' => 1,
307
-												'class' => 'getpaid-refund-field',
308
-											),
309
-											true
310
-										);
311
-									?>
297
+                                        aui()->input(
298
+                                            array(
299
+                                                'type'  => 'checkbox',
300
+                                                'name'  => 'getpaid_refund_remote',
301
+                                                'id'    => 'getpaid_refund_remote',
302
+                                                'label' => sprintf(
303
+                                                    'Refund payment in %s',
304
+                                                    wpinv_get_gateway_admin_label( $invoice->get_gateway() )
305
+                                                ),
306
+                                                'value' => 1,
307
+                                                'class' => 'getpaid-refund-field',
308
+                                            ),
309
+                                            true
310
+                                        );
311
+                                    ?>
312 312
 								<?php endif; ?>
313 313
 
314 314
 								<?php if ( getpaid_get_invoice_subscriptions( $invoice ) ) : ?>
315 315
 									<?php
316
-										aui()->input(
317
-											array(
318
-												'type'  => 'checkbox',
319
-												'name'  => 'getpaid_cancel_subscription',
320
-												'id'    => 'getpaid_cancel_subscription',
321
-												'label' => __( 'Cancel subscription', 'invoicing' ),
322
-												'value' => 1,
323
-												'class' => 'getpaid-refund-field',
324
-											),
325
-											true
326
-										);
327
-									?>
316
+                                        aui()->input(
317
+                                            array(
318
+                                                'type'  => 'checkbox',
319
+                                                'name'  => 'getpaid_cancel_subscription',
320
+                                                'id'    => 'getpaid_cancel_subscription',
321
+                                                'label' => __( 'Cancel subscription', 'invoicing' ),
322
+                                                'value' => 1,
323
+                                                'class' => 'getpaid-refund-field',
324
+                                            ),
325
+                                            true
326
+                                        );
327
+                                    ?>
328 328
 								<?php endif; ?>
329 329
                             </div>
330 330
                             <div class="modal-footer">
@@ -364,23 +364,23 @@  discard block
 block discarded – undo
364 364
                 <?php
365 365
                     if ( $invoice->is_paid() ) {
366 366
 
367
-						printf(
368
-							'<span class="bsui"><button type="button" class="button button-primary" data-toggle="modal" data-bs-toggle="modal" data-bs-target="#getpaid-refund-invoice-modal" data-target="#getpaid-refund-invoice-modal">%s</button></span>',
369
-							esc_html__( 'Refund', 'invoicing' )
370
-						);
367
+                        printf(
368
+                            '<span class="bsui"><button type="button" class="button button-primary" data-toggle="modal" data-bs-toggle="modal" data-bs-target="#getpaid-refund-invoice-modal" data-target="#getpaid-refund-invoice-modal">%s</button></span>',
369
+                            esc_html__( 'Refund', 'invoicing' )
370
+                        );
371 371
                     } elseif ( ! $invoice->is_refunded() ) {
372
-						wpinv_item_dropdown(
373
-							array(
374
-								'name'           => 'wpinv_invoice_item',
375
-								'id'             => 'wpinv_invoice_item',
376
-								'show_recurring' => true,
377
-								'class'          => 'wpi_select2',
378
-							)
379
-						);
380
-
381
-						echo '&nbsp;' . '<button type="button" class="button button-primary" id="wpinv-add-item">' . sprintf( esc_html__( 'Add item to %s', 'invoicing' ), esc_html( $invoice->get_label() ) ) . '</button>';
382
-						echo '&nbsp;' . '<button type="button" class="button button-primary" id="wpinv-new-item">' . esc_html__( 'Create new item', 'invoicing' ) . '</button>';
383
-						echo '&nbsp;' . '<button type="button" class="button button-primary wpinv-flr" id="wpinv-recalc-totals">' . esc_html__( 'Recalculate Totals', 'invoicing' ) . '</button>';
372
+                        wpinv_item_dropdown(
373
+                            array(
374
+                                'name'           => 'wpinv_invoice_item',
375
+                                'id'             => 'wpinv_invoice_item',
376
+                                'show_recurring' => true,
377
+                                'class'          => 'wpi_select2',
378
+                            )
379
+                        );
380
+
381
+                        echo '&nbsp;' . '<button type="button" class="button button-primary" id="wpinv-add-item">' . sprintf( esc_html__( 'Add item to %s', 'invoicing' ), esc_html( $invoice->get_label() ) ) . '</button>';
382
+                        echo '&nbsp;' . '<button type="button" class="button button-primary" id="wpinv-new-item">' . esc_html__( 'Create new item', 'invoicing' ) . '</button>';
383
+                        echo '&nbsp;' . '<button type="button" class="button button-primary wpinv-flr" id="wpinv-recalc-totals">' . esc_html__( 'Recalculate Totals', 'invoicing' ) . '</button>';
384 384
 
385 385
                     }
386 386
                 ?>
@@ -397,72 +397,72 @@  discard block
 block discarded – undo
397 397
             <?php foreach ( array_keys( $columns ) as $column ) : ?>
398 398
                 <td class="
399 399
 					<?php
400
-						echo esc_attr( $column );
401
-						echo 'total' == $column || 'qty' == $column ? ' hide-if-amount' : '';
402
-					?>
400
+                        echo esc_attr( $column );
401
+                        echo 'total' == $column || 'qty' == $column ? ' hide-if-amount' : '';
402
+                    ?>
403 403
 				">
404 404
                     <?php
405 405
                         switch ( $column ) {
406
-						case 'id':
407
-							echo (int) $item->get_id();
408
-							break;
409
-						case 'title':
410
-							printf(
411
-								'<a href="%s" target="_blank">%s</a>',
412
-								esc_url( get_edit_post_link( $item->get_id() ) ),
413
-								esc_html( $item->get_raw_name() )
414
-							);
415
-
416
-							$summary = apply_filters( 'getpaid_admin_invoice_line_item_summary', $item->get_description(), $item, $invoice );
417
-							if ( $summary !== '' ) {
418
-								printf(
419
-									'<span class="meta">%s</span>',
420
-									wp_kses_post( wpautop( $summary ) )
421
-								);
422
-							}
423
-
424
-							printf(
425
-								'<input type="hidden" value="%s" name="getpaid_items[%s][name]" class="getpaid-recalculate-prices-on-change" />',
426
-								esc_attr( $item->get_raw_name() ),
427
-								(int) $item->get_id()
428
-							);
429
-
430
-							printf(
431
-								'<textarea style="display: none;" name="getpaid_items[%s][description]" class="getpaid-recalculate-prices-on-change">%s</textarea>',
432
-								(int) $item->get_id(),
433
-								esc_attr( $item->get_description() )
434
-							);
435
-
436
-							break;
437
-						case 'price':
438
-							printf(
439
-								'<input type="text" value="%s" name="getpaid_items[%s][price]" style="width: 100px;" class="getpaid-admin-invoice-item-price getpaid-recalculate-prices-on-change" />',
440
-								esc_attr( getpaid_unstandardize_amount( $item->get_price() ) ),
441
-								(int) $item->get_id()
442
-							);
443
-
444
-							break;
445
-						case 'qty':
446
-							printf(
447
-								'<input type="text" style="width: 100px;" value="%s" name="getpaid_items[%s][quantity]" class="getpaid-admin-invoice-item-quantity getpaid-recalculate-prices-on-change" />',
448
-								floatval( $item->get_quantity() ),
449
-								(int) $item->get_id()
450
-							);
451
-
452
-							break;
453
-						case 'total':
454
-							wpinv_the_price( $item->get_sub_total(), $invoice->get_currency() );
455
-
456
-							break;
457
-						case 'tax':
458
-							echo floatval( wpinv_round_amount( getpaid_get_invoice_tax_rate( $invoice, $item ), 2 ) ) . '%';
459
-
460
-							break;
461
-						case 'action':
462
-							if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
463
-								echo '<i class="fa fa-trash wpinv-item-remove"></i>';
406
+                        case 'id':
407
+                            echo (int) $item->get_id();
408
+                            break;
409
+                        case 'title':
410
+                            printf(
411
+                                '<a href="%s" target="_blank">%s</a>',
412
+                                esc_url( get_edit_post_link( $item->get_id() ) ),
413
+                                esc_html( $item->get_raw_name() )
414
+                            );
415
+
416
+                            $summary = apply_filters( 'getpaid_admin_invoice_line_item_summary', $item->get_description(), $item, $invoice );
417
+                            if ( $summary !== '' ) {
418
+                                printf(
419
+                                    '<span class="meta">%s</span>',
420
+                                    wp_kses_post( wpautop( $summary ) )
421
+                                );
422
+                            }
423
+
424
+                            printf(
425
+                                '<input type="hidden" value="%s" name="getpaid_items[%s][name]" class="getpaid-recalculate-prices-on-change" />',
426
+                                esc_attr( $item->get_raw_name() ),
427
+                                (int) $item->get_id()
428
+                            );
429
+
430
+                            printf(
431
+                                '<textarea style="display: none;" name="getpaid_items[%s][description]" class="getpaid-recalculate-prices-on-change">%s</textarea>',
432
+                                (int) $item->get_id(),
433
+                                esc_attr( $item->get_description() )
434
+                            );
435
+
436
+                            break;
437
+                        case 'price':
438
+                            printf(
439
+                                '<input type="text" value="%s" name="getpaid_items[%s][price]" style="width: 100px;" class="getpaid-admin-invoice-item-price getpaid-recalculate-prices-on-change" />',
440
+                                esc_attr( getpaid_unstandardize_amount( $item->get_price() ) ),
441
+                                (int) $item->get_id()
442
+                            );
443
+
444
+                            break;
445
+                        case 'qty':
446
+                            printf(
447
+                                '<input type="text" style="width: 100px;" value="%s" name="getpaid_items[%s][quantity]" class="getpaid-admin-invoice-item-quantity getpaid-recalculate-prices-on-change" />',
448
+                                floatval( $item->get_quantity() ),
449
+                                (int) $item->get_id()
450
+                            );
451
+
452
+                            break;
453
+                        case 'total':
454
+                            wpinv_the_price( $item->get_sub_total(), $invoice->get_currency() );
455
+
456
+                            break;
457
+                        case 'tax':
458
+                            echo floatval( wpinv_round_amount( getpaid_get_invoice_tax_rate( $invoice, $item ), 2 ) ) . '%';
459
+
460
+                            break;
461
+                        case 'action':
462
+                            if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
463
+                                echo '<i class="fa fa-trash wpinv-item-remove"></i>';
464 464
                                 }
465
-							break;
465
+                            break;
466 466
                         }
467 467
                         do_action( 'getpaid_admin_edit_invoice_item_' . $column, $item, $invoice );
468 468
                     ?>
@@ -473,10 +473,10 @@  discard block
 block discarded – undo
473 473
     }
474 474
 
475 475
     /**
476
-	 * Output the metabox.
477
-	 *
478
-	 * @param WP_Post $post
479
-	 */
476
+     * Output the metabox.
477
+     *
478
+     * @param WP_Post $post
479
+     */
480 480
     public static function output2( $post ) {
481 481
 
482 482
         // Prepare the invoice.
Please login to merge, or discard this patch.
Spacing   +168 added lines, -168 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  *
8 8
  */
9 9
 
10
-if ( ! defined( 'ABSPATH' ) ) {
10
+if (!defined('ABSPATH')) {
11 11
 	exit; // Exit if accessed directly
12 12
 }
13 13
 
@@ -16,62 +16,62 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class GetPaid_Meta_Box_Invoice_Items {
18 18
 
19
-    public static function get_columns( $invoice ) {
19
+    public static function get_columns($invoice) {
20 20
         $use_taxes = $invoice->is_taxable() && wpinv_use_taxes();
21 21
         $columns   = array(
22
-            'id'     => __( 'ID', 'invoicing' ),
23
-            'title'  => __( 'Item', 'invoicing' ),
22
+            'id'     => __('ID', 'invoicing'),
23
+            'title'  => __('Item', 'invoicing'),
24 24
             'price'  => sprintf(
25 25
                 '<span class="getpaid-hide-if-hours getpaid-hide-if-quantity">%s</span>
26 26
                 <span class="getpaid-hide-if-hours hide-if-amount">%s</span>
27 27
                 <span class="getpaid-hide-if-quantity hide-if-amount">%s</span>',
28
-                __( 'Amount', 'invoicing' ),
29
-                __( 'Price', 'invoicing' ),
30
-                __( 'Rate', 'invoicing' )
28
+                __('Amount', 'invoicing'),
29
+                __('Price', 'invoicing'),
30
+                __('Rate', 'invoicing')
31 31
             ),
32 32
             'qty'    => sprintf(
33 33
                 '<span class="getpaid-hide-if-hours">%s</span><span class="getpaid-hide-if-quantity">%s</span>',
34
-                __( 'Quantity', 'invoicing' ),
35
-                __( 'Hours', 'invoicing' )
34
+                __('Quantity', 'invoicing'),
35
+                __('Hours', 'invoicing')
36 36
             ),
37
-            'total'  => __( 'Total', 'invoicing' ),
38
-            'tax'    => __( 'Tax (%)', 'invoicing' ),
37
+            'total'  => __('Total', 'invoicing'),
38
+            'tax'    => __('Tax (%)', 'invoicing'),
39 39
             'action' => '',
40 40
         );
41 41
 
42
-        if ( ! $use_taxes ) {
43
-            unset( $columns['tax'] );
42
+        if (!$use_taxes) {
43
+            unset($columns['tax']);
44 44
         }
45 45
 
46 46
         return $columns;
47 47
     }
48 48
 
49
-    public static function output( $post, $invoice = false ) {
49
+    public static function output($post, $invoice = false) {
50 50
 
51
-        if ( apply_filters( 'getpaid_use_new_invoice_items_metabox', false ) ) {
52
-            return self::output2( $post );
51
+        if (apply_filters('getpaid_use_new_invoice_items_metabox', false)) {
52
+            return self::output2($post);
53 53
         }
54 54
 
55
-        $post_id    = ! empty( $post->ID ) ? $post->ID : 0;
56
-        $invoice    = $invoice instanceof WPInv_Invoice ? $invoice : new WPInv_Invoice( $post_id );
55
+        $post_id    = !empty($post->ID) ? $post->ID : 0;
56
+        $invoice    = $invoice instanceof WPInv_Invoice ? $invoice : new WPInv_Invoice($post_id);
57 57
         $use_taxes  = $invoice->is_taxable() && wpinv_use_taxes();
58
-        $item_types = apply_filters( 'wpinv_item_types_for_quick_add_item', wpinv_get_item_types(), $post );
59
-        $columns    = self::get_columns( $invoice );
60
-        $cols       = count( $columns );
58
+        $item_types = apply_filters('wpinv_item_types_for_quick_add_item', wpinv_get_item_types(), $post);
59
+        $columns    = self::get_columns($invoice);
60
+        $cols       = count($columns);
61 61
         $class      = '';
62 62
 
63
-        unset( $item_types['adv'] );
64
-        unset( $item_types['package'] );
63
+        unset($item_types['adv']);
64
+        unset($item_types['package']);
65 65
 
66
-        if ( $invoice->is_paid() ) {
66
+        if ($invoice->is_paid()) {
67 67
             $class .= ' wpinv-paid';
68 68
         }
69 69
 
70
-        if ( $invoice->is_refunded() ) {
70
+        if ($invoice->is_refunded()) {
71 71
             $class .= ' wpinv-refunded';
72 72
         }
73 73
 
74
-        if ( $invoice->is_recurring() ) {
74
+        if ($invoice->is_recurring()) {
75 75
             $class .= ' wpi-recurring';
76 76
         }
77 77
 
@@ -87,26 +87,26 @@  discard block
 block discarded – undo
87 87
 		);
88 88
     ?>
89 89
 
90
-        <div class="wpinv-items-wrap<?php echo esc_attr( $class ); ?>" id="wpinv_items_wrap" data-status="<?php echo esc_attr( $invoice->get_status() ); ?>">
90
+        <div class="wpinv-items-wrap<?php echo esc_attr($class); ?>" id="wpinv_items_wrap" data-status="<?php echo esc_attr($invoice->get_status()); ?>">
91 91
             <table id="wpinv_items" class="wpinv-items" cellspacing="0" cellpadding="0">
92 92
 
93 93
                 <thead>
94 94
                     <tr>
95
-                        <?php foreach ( $columns as $key => $label ) : ?>
95
+                        <?php foreach ($columns as $key => $label) : ?>
96 96
                             <th class="
97 97
                             <?php
98
-                            echo esc_attr( $key );
98
+                            echo esc_attr($key);
99 99
 							echo 'total' == $key || 'qty' == $key ? ' hide-if-amount' : '';
100 100
 							?>
101
-							"><?php echo wp_kses_post( $label ); ?></th>
101
+							"><?php echo wp_kses_post($label); ?></th>
102 102
                         <?php endforeach; ?>
103 103
                     </tr>
104 104
                 </thead>
105 105
 
106 106
                 <tbody class="wpinv-line-items">
107 107
                     <?php
108
-                        foreach ( $invoice->get_items() as $int => $item ) {
109
-						self::output_row( $columns, $item, $invoice, $int % 2 == 0 ? 'even' : 'odd' );
108
+                        foreach ($invoice->get_items() as $int => $item) {
109
+						self::output_row($columns, $item, $invoice, $int % 2 == 0 ? 'even' : 'odd');
110 110
                         }
111 111
                     ?>
112 112
                 </tbody>
@@ -123,7 +123,7 @@  discard block
 block discarded – undo
123 123
                                             <div class="wp-clearfix">
124 124
                                                 <label class="wpi-item-name">
125 125
                                                     <span class="input-text-wrap">
126
-                                                        <input type="text" style="width: 100%" placeholder="<?php esc_attr_e( 'Item Name', 'invoicing' ); ?>" class="wpinv-quick-item-name" name="_wpinv_quick[name]">
126
+                                                        <input type="text" style="width: 100%" placeholder="<?php esc_attr_e('Item Name', 'invoicing'); ?>" class="wpinv-quick-item-name" name="_wpinv_quick[name]">
127 127
                                                     </span>
128 128
                                                 </label>
129 129
                                             </div>
@@ -131,8 +131,8 @@  discard block
 block discarded – undo
131 131
                                             <div class="wp-clearfix">
132 132
                                                 <label class="wpi-item-price">
133 133
                                                     <span class="input-text-wrap">
134
-                                                    <input type="text" style="width: 200px" placeholder="<?php esc_attr_e( 'Item Price', 'invoicing' ); ?>" class="wpinv-quick-item-price" name="_wpinv_quick[price]">
135
-                                                        &times; <input type="text" style="width: 140px" placeholder="<?php esc_attr_e( 'Item Quantity', 'invoicing' ); ?>" class="wpinv-quick-item-qty" name="_wpinv_quick[qty]">
134
+                                                    <input type="text" style="width: 200px" placeholder="<?php esc_attr_e('Item Price', 'invoicing'); ?>" class="wpinv-quick-item-price" name="_wpinv_quick[price]">
135
+                                                        &times; <input type="text" style="width: 140px" placeholder="<?php esc_attr_e('Item Quantity', 'invoicing'); ?>" class="wpinv-quick-item-qty" name="_wpinv_quick[qty]">
136 136
                                                     </span>
137 137
                                                 </label>
138 138
                                             </div>
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
                                             <div class="wp-clearfix">
141 141
                                                 <label class="wpi-item-name">
142 142
                                                     <span class="input-text-wrap">
143
-                                                        <textarea rows="4" style="width: 100%" placeholder="<?php esc_attr_e( 'Item Description', 'invoicing' ); ?>" class="wpinv-quick-item-description" name="_wpinv_quick[description]"></textarea>
143
+                                                        <textarea rows="4" style="width: 100%" placeholder="<?php esc_attr_e('Item Description', 'invoicing'); ?>" class="wpinv-quick-item-description" name="_wpinv_quick[description]"></textarea>
144 144
                                                     </span>
145 145
                                                 </label>
146 146
                                             </div>
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
                                                 </label>
166 166
                                             </div>
167 167
 
168
-                                            <?php if ( $use_taxes ) : ?>
168
+                                            <?php if ($use_taxes) : ?>
169 169
                                                 <div class="wp-clearfix">
170 170
                                                     <label class="wpi-vat-rule">
171 171
                                                         <span class="input-text-wrap">
@@ -173,7 +173,7 @@  discard block
 block discarded – undo
173 173
                                                                 wpinv_html_select(
174 174
                                                                     array(
175 175
 																		'options'          => array_merge(
176
-																			array( '' => __( 'Select VAT Rule', 'invoicing' ) ),
176
+																			array('' => __('Select VAT Rule', 'invoicing')),
177 177
 																			getpaid_get_tax_rules()
178 178
 																		),
179 179
 																		'name'             => '_wpinv_quick[vat_rule]',
@@ -195,7 +195,7 @@  discard block
 block discarded – undo
195 195
                                                                 wpinv_html_select(
196 196
                                                                     array(
197 197
 																		'options'          => array_merge(
198
-																			array( '' => __( 'Select VAT Class', 'invoicing' ) ),
198
+																			array('' => __('Select VAT Class', 'invoicing')),
199 199
 																			getpaid_get_tax_classes()
200 200
 																		),
201 201
 																		'name'             => '_wpinv_quick[vat_class]',
@@ -219,7 +219,7 @@  discard block
 block discarded – undo
219 219
                                                             'type'    => 'checkbox',
220 220
                                                             'name'    => '_wpinv_quick[one-time]',
221 221
                                                             'id'      => '_wpinv_quick-one-time',
222
-                                                            'label'   => __( "One time item (won't be saved to regular items list)", 'invoicing' ),
222
+                                                            'label'   => __("One time item (won't be saved to regular items list)", 'invoicing'),
223 223
                                                             'value'   => 1,
224 224
                                                             'no_wrap' => true,
225 225
                                                             'checked' => false,
@@ -243,29 +243,29 @@  discard block
 block discarded – undo
243 243
                         </td>
244 244
                     </tr>
245 245
                     <tr class="totals">
246
-                        <td colspan="<?php echo ( (int) $cols - 4 ); ?>"></td>
246
+                        <td colspan="<?php echo ((int) $cols - 4); ?>"></td>
247 247
                         <td colspan="4">
248 248
                             <table cellspacing="0" cellpadding="0">
249 249
                                 <tr class="subtotal">
250
-                                    <td class="name"><?php esc_html_e( 'Sub Total:', 'invoicing' ); ?></td>
251
-                                    <td class="total"><?php wpinv_the_price( $invoice->get_subtotal(), $invoice->get_currency() ); ?></td>
250
+                                    <td class="name"><?php esc_html_e('Sub Total:', 'invoicing'); ?></td>
251
+                                    <td class="total"><?php wpinv_the_price($invoice->get_subtotal(), $invoice->get_currency()); ?></td>
252 252
                                     <td class="action"></td>
253 253
                                 </tr>
254 254
                                 <tr class="discount">
255
-                                    <td class="name"><?php esc_html_e( 'Discount:', 'invoicing' ); ?></td>
256
-                                    <td class="total"><?php wpinv_the_price( $invoice->get_total_discount(), $invoice->get_currency() ); ?></td>
255
+                                    <td class="name"><?php esc_html_e('Discount:', 'invoicing'); ?></td>
256
+                                    <td class="total"><?php wpinv_the_price($invoice->get_total_discount(), $invoice->get_currency()); ?></td>
257 257
                                     <td class="action"></td>
258 258
                                 </tr>
259
-                                <?php if ( $use_taxes ) : ?>
259
+                                <?php if ($use_taxes) : ?>
260 260
                                 <tr class="tax">
261
-                                    <td class="name"><?php esc_html_e( 'Tax:', 'invoicing' ); ?></td>
262
-                                    <td class="total"><?php wpinv_the_price( $invoice->get_total_tax(), $invoice->get_currency() ); ?></td>
261
+                                    <td class="name"><?php esc_html_e('Tax:', 'invoicing'); ?></td>
262
+                                    <td class="total"><?php wpinv_the_price($invoice->get_total_tax(), $invoice->get_currency()); ?></td>
263 263
                                     <td class="action"></td>
264 264
                                 </tr>
265 265
                                 <?php endif; ?>
266 266
                                 <tr class="total">
267
-                                    <td class="name"><?php esc_html_e( 'Total:', 'invoicing' ); ?></td>
268
-                                    <td class="total"><?php wpinv_the_price( $invoice->get_total(), $invoice->get_currency() ); ?></td>
267
+                                    <td class="name"><?php esc_html_e('Total:', 'invoicing'); ?></td>
268
+                                    <td class="total"><?php wpinv_the_price($invoice->get_total(), $invoice->get_currency()); ?></td>
269 269
                                     <td class="action"></td>
270 270
                                 </tr>
271 271
                             </table>
@@ -281,18 +281,18 @@  discard block
 block discarded – undo
281 281
                      <div class="modal-dialog modal-dialog-centered" role="document">
282 282
                         <div class="modal-content">
283 283
                             <div class="modal-header">
284
-                                <h5 class="modal-title" id="getpaid-refund-invoice-modal-label"><?php esc_html_e( 'Refund Payment', 'invoicing' ); ?></h5>
285
-                                <button type="button" class="close btn-close" data-bs-dismiss="modal" data-dismiss="modal" aria-label="<?php esc_html_e( 'Close', 'invoicing' ); ?>">
286
-                                    <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
284
+                                <h5 class="modal-title" id="getpaid-refund-invoice-modal-label"><?php esc_html_e('Refund Payment', 'invoicing'); ?></h5>
285
+                                <button type="button" class="close btn-close" data-bs-dismiss="modal" data-dismiss="modal" aria-label="<?php esc_html_e('Close', 'invoicing'); ?>">
286
+                                    <?php if (empty($GLOBALS['aui_bs5'])) : ?>
287 287
                                         <span aria-hidden="true">×</span>
288 288
                                     <?php endif; ?>
289 289
                                 </button>
290 290
                             </div>
291 291
                             <div class="modal-body">
292 292
 								<p>
293
-									<?php esc_html_e( 'Are you sure you want to refund this payment?', 'invoicing' ); ?>
293
+									<?php esc_html_e('Are you sure you want to refund this payment?', 'invoicing'); ?>
294 294
 								</p>
295
-								<?php if ( getpaid_payment_gateway_supports( $invoice->get_gateway(), 'refunds' ) ) : ?>
295
+								<?php if (getpaid_payment_gateway_supports($invoice->get_gateway(), 'refunds')) : ?>
296 296
 									<?php
297 297
 										aui()->input(
298 298
 											array(
@@ -301,7 +301,7 @@  discard block
 block discarded – undo
301 301
 												'id'    => 'getpaid_refund_remote',
302 302
 												'label' => sprintf(
303 303
 													'Refund payment in %s',
304
-													wpinv_get_gateway_admin_label( $invoice->get_gateway() )
304
+													wpinv_get_gateway_admin_label($invoice->get_gateway())
305 305
 												),
306 306
 												'value' => 1,
307 307
 												'class' => 'getpaid-refund-field',
@@ -311,14 +311,14 @@  discard block
 block discarded – undo
311 311
 									?>
312 312
 								<?php endif; ?>
313 313
 
314
-								<?php if ( getpaid_get_invoice_subscriptions( $invoice ) ) : ?>
314
+								<?php if (getpaid_get_invoice_subscriptions($invoice)) : ?>
315 315
 									<?php
316 316
 										aui()->input(
317 317
 											array(
318 318
 												'type'  => 'checkbox',
319 319
 												'name'  => 'getpaid_cancel_subscription',
320 320
 												'id'    => 'getpaid_cancel_subscription',
321
-												'label' => __( 'Cancel subscription', 'invoicing' ),
321
+												'label' => __('Cancel subscription', 'invoicing'),
322 322
 												'value' => 1,
323 323
 												'class' => 'getpaid-refund-field',
324 324
 											),
@@ -328,12 +328,12 @@  discard block
 block discarded – undo
328 328
 								<?php endif; ?>
329 329
                             </div>
330 330
                             <div class="modal-footer">
331
-                                <button type="button" class="btn btn-secondary getpaid-cancel" data-bs-dismiss="modal" data-dismiss="modal"><?php esc_html_e( 'Cancel', 'invoicing' ); ?></button>
331
+                                <button type="button" class="btn btn-secondary getpaid-cancel" data-bs-dismiss="modal" data-dismiss="modal"><?php esc_html_e('Cancel', 'invoicing'); ?></button>
332 332
                                 <a
333
-									href="<?php echo esc_url_raw( $refund_url ); ?>"
334
-									data-href="<?php echo esc_url_raw( $refund_url ); ?>"
333
+									href="<?php echo esc_url_raw($refund_url); ?>"
334
+									data-href="<?php echo esc_url_raw($refund_url); ?>"
335 335
 									class="btn btn-primary getpaid-refund-payment-button"
336
-								><?php esc_html_e( 'Refund', 'invoicing' ); ?></a>
336
+								><?php esc_html_e('Refund', 'invoicing'); ?></a>
337 337
 								<script>
338 338
 									// Update the refund URL when the user changes the refund options.
339 339
 									jQuery( function( $ ) {
@@ -359,13 +359,13 @@  discard block
 block discarded – undo
359 359
 
360 360
             <div class="wpinv-actions">
361 361
                 <?php
362
-                    if ( $invoice->is_paid() ) {
362
+                    if ($invoice->is_paid()) {
363 363
 
364 364
 						printf(
365 365
 							'<span class="bsui"><button type="button" class="button button-primary" data-toggle="modal" data-bs-toggle="modal" data-bs-target="#getpaid-refund-invoice-modal" data-target="#getpaid-refund-invoice-modal">%s</button></span>',
366
-							esc_html__( 'Refund', 'invoicing' )
366
+							esc_html__('Refund', 'invoicing')
367 367
 						);
368
-                    } elseif ( ! $invoice->is_refunded() ) {
368
+                    } elseif (!$invoice->is_refunded()) {
369 369
 						wpinv_item_dropdown(
370 370
 							array(
371 371
 								'name'           => 'wpinv_invoice_item',
@@ -375,66 +375,66 @@  discard block
 block discarded – undo
375 375
 							)
376 376
 						);
377 377
 
378
-						echo '&nbsp;' . '<button type="button" class="button button-primary" id="wpinv-add-item">' . sprintf( esc_html__( 'Add item to %s', 'invoicing' ), esc_html( $invoice->get_label() ) ) . '</button>';
379
-						echo '&nbsp;' . '<button type="button" class="button button-primary" id="wpinv-new-item">' . esc_html__( 'Create new item', 'invoicing' ) . '</button>';
380
-						echo '&nbsp;' . '<button type="button" class="button button-primary wpinv-flr" id="wpinv-recalc-totals">' . esc_html__( 'Recalculate Totals', 'invoicing' ) . '</button>';
378
+						echo '&nbsp;' . '<button type="button" class="button button-primary" id="wpinv-add-item">' . sprintf(esc_html__('Add item to %s', 'invoicing'), esc_html($invoice->get_label())) . '</button>';
379
+						echo '&nbsp;' . '<button type="button" class="button button-primary" id="wpinv-new-item">' . esc_html__('Create new item', 'invoicing') . '</button>';
380
+						echo '&nbsp;' . '<button type="button" class="button button-primary wpinv-flr" id="wpinv-recalc-totals">' . esc_html__('Recalculate Totals', 'invoicing') . '</button>';
381 381
 
382 382
                     }
383 383
                 ?>
384
-                <?php do_action( 'wpinv_invoice_items_actions', $invoice ); ?>
384
+                <?php do_action('wpinv_invoice_items_actions', $invoice); ?>
385 385
             </div>
386 386
         </div>
387 387
         <?php
388 388
     }
389 389
 
390
-    public static function output_row( $columns, $item, $invoice, $class = 'even' ) {
390
+    public static function output_row($columns, $item, $invoice, $class = 'even') {
391 391
 
392 392
     ?>
393
-        <tr class="item item-<?php echo esc_attr( $class ); ?>" data-item-id="<?php echo esc_attr( $item->get_id() ); ?>">
394
-            <?php foreach ( array_keys( $columns ) as $column ) : ?>
393
+        <tr class="item item-<?php echo esc_attr($class); ?>" data-item-id="<?php echo esc_attr($item->get_id()); ?>">
394
+            <?php foreach (array_keys($columns) as $column) : ?>
395 395
                 <td class="
396 396
 					<?php
397
-						echo esc_attr( $column );
397
+						echo esc_attr($column);
398 398
 						echo 'total' == $column || 'qty' == $column ? ' hide-if-amount' : '';
399 399
 					?>
400 400
 				">
401 401
                     <?php
402
-                        switch ( $column ) {
402
+                        switch ($column) {
403 403
 						case 'id':
404 404
 							echo (int) $item->get_id();
405 405
 							break;
406 406
 						case 'title':
407 407
 							printf(
408 408
 								'<a href="%s" target="_blank">%s</a>',
409
-								esc_url( get_edit_post_link( $item->get_id() ) ),
410
-								esc_html( $item->get_raw_name() )
409
+								esc_url(get_edit_post_link($item->get_id())),
410
+								esc_html($item->get_raw_name())
411 411
 							);
412 412
 
413
-							$summary = apply_filters( 'getpaid_admin_invoice_line_item_summary', $item->get_description(), $item, $invoice );
414
-							if ( $summary !== '' ) {
413
+							$summary = apply_filters('getpaid_admin_invoice_line_item_summary', $item->get_description(), $item, $invoice);
414
+							if ($summary !== '') {
415 415
 								printf(
416 416
 									'<span class="meta">%s</span>',
417
-									wp_kses_post( wpautop( $summary ) )
417
+									wp_kses_post(wpautop($summary))
418 418
 								);
419 419
 							}
420 420
 
421 421
 							printf(
422 422
 								'<input type="hidden" value="%s" name="getpaid_items[%s][name]" class="getpaid-recalculate-prices-on-change" />',
423
-								esc_attr( $item->get_raw_name() ),
423
+								esc_attr($item->get_raw_name()),
424 424
 								(int) $item->get_id()
425 425
 							);
426 426
 
427 427
 							printf(
428 428
 								'<textarea style="display: none;" name="getpaid_items[%s][description]" class="getpaid-recalculate-prices-on-change">%s</textarea>',
429 429
 								(int) $item->get_id(),
430
-								esc_attr( $item->get_description() )
430
+								esc_attr($item->get_description())
431 431
 							);
432 432
 
433 433
 							break;
434 434
 						case 'price':
435 435
 							printf(
436 436
 								'<input type="text" value="%s" name="getpaid_items[%s][price]" style="width: 100px;" class="getpaid-admin-invoice-item-price getpaid-recalculate-prices-on-change" />',
437
-								esc_attr( getpaid_unstandardize_amount( $item->get_price() ) ),
437
+								esc_attr(getpaid_unstandardize_amount($item->get_price())),
438 438
 								(int) $item->get_id()
439 439
 							);
440 440
 
@@ -442,26 +442,26 @@  discard block
 block discarded – undo
442 442
 						case 'qty':
443 443
 							printf(
444 444
 								'<input type="text" style="width: 100px;" value="%s" name="getpaid_items[%s][quantity]" class="getpaid-admin-invoice-item-quantity getpaid-recalculate-prices-on-change" />',
445
-								floatval( $item->get_quantity() ),
445
+								floatval($item->get_quantity()),
446 446
 								(int) $item->get_id()
447 447
 							);
448 448
 
449 449
 							break;
450 450
 						case 'total':
451
-							wpinv_the_price( $item->get_sub_total(), $invoice->get_currency() );
451
+							wpinv_the_price($item->get_sub_total(), $invoice->get_currency());
452 452
 
453 453
 							break;
454 454
 						case 'tax':
455
-							echo floatval( wpinv_round_amount( getpaid_get_invoice_tax_rate( $invoice, $item ), 2 ) ) . '%';
455
+							echo floatval(wpinv_round_amount(getpaid_get_invoice_tax_rate($invoice, $item), 2)) . '%';
456 456
 
457 457
 							break;
458 458
 						case 'action':
459
-							if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
459
+							if (!$invoice->is_paid() && !$invoice->is_refunded()) {
460 460
 								echo '<i class="fa fa-trash wpinv-item-remove"></i>';
461 461
                                 }
462 462
 							break;
463 463
                         }
464
-                        do_action( 'getpaid_admin_edit_invoice_item_' . $column, $item, $invoice );
464
+                        do_action('getpaid_admin_edit_invoice_item_' . $column, $item, $invoice);
465 465
                     ?>
466 466
                 </td>
467 467
             <?php endforeach; ?>
@@ -474,10 +474,10 @@  discard block
 block discarded – undo
474 474
 	 *
475 475
 	 * @param WP_Post $post
476 476
 	 */
477
-    public static function output2( $post ) {
477
+    public static function output2($post) {
478 478
 
479 479
         // Prepare the invoice.
480
-        $invoice = new WPInv_Invoice( $post );
480
+        $invoice = new WPInv_Invoice($post);
481 481
 
482 482
         // Invoice items.
483 483
         $items = $invoice->get_items();
@@ -485,28 +485,28 @@  discard block
 block discarded – undo
485 485
         $totals = array(
486 486
 
487 487
             'subtotal' => array(
488
-                'label' => __( 'Items Subtotal', 'invoicing' ),
489
-                'value' => wpinv_price( $invoice->get_subtotal(), $invoice->get_currency() ),
488
+                'label' => __('Items Subtotal', 'invoicing'),
489
+                'value' => wpinv_price($invoice->get_subtotal(), $invoice->get_currency()),
490 490
             ),
491 491
 
492 492
             'discount' => array(
493
-                'label' => __( 'Total Discount', 'invoicing' ),
494
-                'value' => wpinv_price( $invoice->get_total_discount(), $invoice->get_currency() ),
493
+                'label' => __('Total Discount', 'invoicing'),
494
+                'value' => wpinv_price($invoice->get_total_discount(), $invoice->get_currency()),
495 495
             ),
496 496
 
497 497
             'tax'      => array(
498
-                'label' => __( 'Total Tax', 'invoicing' ),
499
-                'value' => wpinv_price( $invoice->get_total_tax(), $invoice->get_currency() ),
498
+                'label' => __('Total Tax', 'invoicing'),
499
+                'value' => wpinv_price($invoice->get_total_tax(), $invoice->get_currency()),
500 500
             ),
501 501
 
502 502
             'total'    => array(
503
-                'label' => __( 'Invoice Total', 'invoicing' ),
504
-                'value' => wpinv_price( $invoice->get_total(), $invoice->get_currency() ),
503
+                'label' => __('Invoice Total', 'invoicing'),
504
+                'value' => wpinv_price($invoice->get_total(), $invoice->get_currency()),
505 505
             ),
506 506
         );
507 507
 
508
-        if ( ! wpinv_use_taxes() ) {
509
-            unset( $totals['tax'] );
508
+        if (!wpinv_use_taxes()) {
509
+            unset($totals['tax']);
510 510
         }
511 511
 
512 512
         $item_args = array(
@@ -514,7 +514,7 @@  discard block
 block discarded – undo
514 514
             'orderby'        => 'title',
515 515
             'order'          => 'ASC',
516 516
             'posts_per_page' => -1,
517
-            'post_status'    => array( 'publish' ),
517
+            'post_status'    => array('publish'),
518 518
             'meta_query'     => array(
519 519
                 array(
520 520
                     'key'     => '_wpinv_type',
@@ -542,10 +542,10 @@  discard block
 block discarded – undo
542 542
             }
543 543
         </style>
544 544
 
545
-                <div class="bsui getpaid-invoice-items-inner <?php echo empty( $items ) ? 'no-items' : 'has-items'; ?> <?php echo $invoice->is_paid() || $invoice->is_refunded() ? 'not-editable' : 'editable'; ?>" style="margin-top: 1.5rem; padding: 0 12px 12px;">
545
+                <div class="bsui getpaid-invoice-items-inner <?php echo empty($items) ? 'no-items' : 'has-items'; ?> <?php echo $invoice->is_paid() || $invoice->is_refunded() ? 'not-editable' : 'editable'; ?>" style="margin-top: 1.5rem; padding: 0 12px 12px;">
546 546
 
547
-                    <?php if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) : ?>
548
-                        <?php do_action( 'wpinv_meta_box_before_invoice_template_row', $invoice->get_id() ); ?>
547
+                    <?php if (!$invoice->is_paid() && !$invoice->is_refunded()) : ?>
548
+                        <?php do_action('wpinv_meta_box_before_invoice_template_row', $invoice->get_id()); ?>
549 549
 
550 550
                         <div class="row">
551 551
                             <div class="col-12 col-sm-6">
@@ -554,15 +554,15 @@  discard block
 block discarded – undo
554 554
                                         array(
555 555
                                             'id'          => 'wpinv_template',
556 556
                                             'name'        => 'wpinv_template',
557
-                                            'label'       => __( 'Template', 'invoicing' ),
557
+                                            'label'       => __('Template', 'invoicing'),
558 558
                                             'label_type'  => 'vertical',
559
-                                            'placeholder' => __( 'Choose a template', 'invoicing' ),
559
+                                            'placeholder' => __('Choose a template', 'invoicing'),
560 560
                                             'class'       => 'form-control-sm',
561
-                                            'value'       => $invoice->get_template( 'edit' ),
561
+                                            'value'       => $invoice->get_template('edit'),
562 562
                                             'options'     => array(
563
-                                                'quantity' => __( 'Quantity', 'invoicing' ),
564
-                                                'hours'    => __( 'Hours', 'invoicing' ),
565
-                                                'amount'   => __( 'Amount Only', 'invoicing' ),
563
+                                                'quantity' => __('Quantity', 'invoicing'),
564
+                                                'hours'    => __('Hours', 'invoicing'),
565
+                                                'amount'   => __('Amount Only', 'invoicing'),
566 566
                                             ),
567 567
                                             'data-allow-clear' => 'false',
568 568
                                             'select2'     => true,
@@ -579,11 +579,11 @@  discard block
 block discarded – undo
579 579
                                         array(
580 580
                                             'id'          => 'wpinv_currency',
581 581
                                             'name'        => 'wpinv_currency',
582
-                                            'label'       => __( 'Currency', 'invoicing' ),
582
+                                            'label'       => __('Currency', 'invoicing'),
583 583
                                             'label_type'  => 'vertical',
584
-                                            'placeholder' => __( 'Select Invoice Currency', 'invoicing' ),
584
+                                            'placeholder' => __('Select Invoice Currency', 'invoicing'),
585 585
                                             'class'       => 'form-control-sm',
586
-                                            'value'       => $invoice->get_currency( 'edit' ),
586
+                                            'value'       => $invoice->get_currency('edit'),
587 587
                                             'required'    => false,
588 588
                                             'data-allow-clear' => 'false',
589 589
                                             'select2'     => true,
@@ -596,24 +596,24 @@  discard block
 block discarded – undo
596 596
                             </div>
597 597
                         </div>
598 598
 
599
-                        <?php do_action( 'wpinv_meta_box_invoice_template_row', $invoice->get_id() ); ?>
599
+                        <?php do_action('wpinv_meta_box_invoice_template_row', $invoice->get_id()); ?>
600 600
                     <?php endif; ?>
601 601
 
602 602
                     <table cellpadding="0" cellspacing="0" class="getpaid_invoice_items">
603 603
                         <thead>
604 604
                             <tr>
605
-                                <th class="getpaid-item" colspan="2"><?php esc_html_e( 'Item', 'invoicing' ); ?></th>
605
+                                <th class="getpaid-item" colspan="2"><?php esc_html_e('Item', 'invoicing'); ?></th>
606 606
                                 <th class="getpaid-quantity hide-if-amount text-right">
607
-                                    <span class="getpaid-hide-if-hours"><?php esc_html_e( 'Quantity', 'invoicing' ); ?></span>
608
-                                    <span class="getpaid-hide-if-quantity"><?php esc_html_e( 'Hours', 'invoicing' ); ?></span>
607
+                                    <span class="getpaid-hide-if-hours"><?php esc_html_e('Quantity', 'invoicing'); ?></span>
608
+                                    <span class="getpaid-hide-if-quantity"><?php esc_html_e('Hours', 'invoicing'); ?></span>
609 609
                                 </th>
610 610
                                 <th class="getpaid-price hide-if-amount text-right">
611
-                                    <span class="getpaid-hide-if-hours"><?php esc_html_e( 'Price', 'invoicing' ); ?></span>
612
-                                    <span class="getpaid-hide-if-quantity"><?php esc_html_e( 'Rate', 'invoicing' ); ?></span>
611
+                                    <span class="getpaid-hide-if-hours"><?php esc_html_e('Price', 'invoicing'); ?></span>
612
+                                    <span class="getpaid-hide-if-quantity"><?php esc_html_e('Rate', 'invoicing'); ?></span>
613 613
                                 </th>
614 614
                                 <th class="getpaid-item-subtotal text-right">
615
-                                    <span class="getpaid-hide-if-hours getpaid-hide-if-quantity"><?php esc_html_e( 'Amount', 'invoicing' ); ?></span>
616
-                                    <span class="hide-if-amount"><?php esc_html_e( 'Total', 'invoicing' ); ?></span>
615
+                                    <span class="getpaid-hide-if-hours getpaid-hide-if-quantity"><?php esc_html_e('Amount', 'invoicing'); ?></span>
616
+                                    <span class="hide-if-amount"><?php esc_html_e('Total', 'invoicing'); ?></span>
617 617
                                 </th>
618 618
                                 <th class="getpaid-item-actions hide-if-not-editable" width="70px">&nbsp;</th>
619 619
                             </tr>
@@ -621,8 +621,8 @@  discard block
 block discarded – undo
621 621
 		                <tbody class="getpaid_invoice_line_items">
622 622
                             <tr class="hide-if-has-items hide-if-not-editable">
623 623
                                 <td colspan="2" class="pt-4 pb-4">
624
-                                    <button type="button" class="button button-primary add-invoice-item" data-toggle="modal" data-target="#getpaid-add-items-to-invoice"><?php esc_html_e( 'Add Existing Items', 'invoicing' ); ?></button>
625
-                                    <button type="button" class="button button-secondary create-invoice-item" data-toggle="modal" data-target="#getpaid-create-invoice-item"><?php esc_html_e( 'Create New Item', 'invoicing' ); ?></button>
624
+                                    <button type="button" class="button button-primary add-invoice-item" data-toggle="modal" data-target="#getpaid-add-items-to-invoice"><?php esc_html_e('Add Existing Items', 'invoicing'); ?></button>
625
+                                    <button type="button" class="button button-secondary create-invoice-item" data-toggle="modal" data-target="#getpaid-create-invoice-item"><?php esc_html_e('Create New Item', 'invoicing'); ?></button>
626 626
                                 </td>
627 627
                                 <td class="hide-if-amount">&nbsp;</th>
628 628
                                 <td class="hide-if-amount">&nbsp;</th>
@@ -654,11 +654,11 @@  discard block
 block discarded – undo
654 654
                             <div class="col-12 col-sm-6 offset-sm-6">
655 655
                                 <table class="getpaid-invoice-totals text-right w-100">
656 656
                                     <tbody>
657
-                                        <?php foreach ( apply_filters( 'getpaid_invoice_subtotal_rows', $totals, $invoice ) as $key => $data ) : ?>
658
-                                            <tr class="getpaid-totals-<?php echo esc_attr( $key ); ?>">
659
-                                                <td class="label"><?php echo esc_html( $data['label'] ); ?>:</td>
657
+                                        <?php foreach (apply_filters('getpaid_invoice_subtotal_rows', $totals, $invoice) as $key => $data) : ?>
658
+                                            <tr class="getpaid-totals-<?php echo esc_attr($key); ?>">
659
+                                                <td class="label"><?php echo esc_html($data['label']); ?>:</td>
660 660
                                                 <td width="1%"></td>
661
-                                                <td class="value"><?php echo wp_kses_post( $data['value'] ); ?></td>
661
+                                                <td class="value"><?php echo wp_kses_post($data['value']); ?></td>
662 662
                                             </tr>
663 663
                                         <?php endforeach; ?>
664 664
                                     </tbody>
@@ -671,18 +671,18 @@  discard block
 block discarded – undo
671 671
                     <div class="getpaid-invoice-item-actions hide-if-no-items hide-if-not-editable">
672 672
                         <div class="row">
673 673
                             <div class="text-left col-12 col-sm-8">
674
-                                <button type="button" class="button button-primary add-invoice-item" data-toggle="modal" data-target="#getpaid-add-items-to-invoice"><?php esc_html_e( 'Add Existing Item', 'invoicing' ); ?></button>
675
-                                <button type="button" class="button button-secondary create-invoice-item" data-toggle="modal" data-target="#getpaid-create-invoice-item"><?php esc_html_e( 'Create New Item', 'invoicing' ); ?></button>
676
-                                <?php do_action( 'getpaid-invoice-items-actions', $invoice ); ?>
674
+                                <button type="button" class="button button-primary add-invoice-item" data-toggle="modal" data-target="#getpaid-add-items-to-invoice"><?php esc_html_e('Add Existing Item', 'invoicing'); ?></button>
675
+                                <button type="button" class="button button-secondary create-invoice-item" data-toggle="modal" data-target="#getpaid-create-invoice-item"><?php esc_html_e('Create New Item', 'invoicing'); ?></button>
676
+                                <?php do_action('getpaid-invoice-items-actions', $invoice); ?>
677 677
                             </div>
678 678
                             <div class="text-right col-12 col-sm-4">
679
-                                <button type="button" class="button button-primary recalculate-totals-button"><?php esc_html_e( 'Recalculate Totals', 'invoicing' ); ?></button>
679
+                                <button type="button" class="button button-primary recalculate-totals-button"><?php esc_html_e('Recalculate Totals', 'invoicing'); ?></button>
680 680
                             </div>
681 681
                         </div>
682 682
                     </div>
683 683
 
684 684
                     <div class="getpaid-invoice-item-actions hide-if-editable">
685
-                        <p class="description m-2 text-right text-muted"><?php esc_html_e( 'This invoice is no longer editable', 'invoicing' ); ?></p>
685
+                        <p class="description m-2 text-right text-muted"><?php esc_html_e('This invoice is no longer editable', 'invoicing'); ?></p>
686 686
                     </div>
687 687
 
688 688
                     <!-- Add items to an invoice -->
@@ -690,9 +690,9 @@  discard block
 block discarded – undo
690 690
                         <div class="modal-dialog modal-dialog-centered" role="document">
691 691
                             <div class="modal-content">
692 692
                                 <div class="modal-header">
693
-                                    <h5 class="modal-title" id="getpaid-add-item-to-invoice-label"><?php esc_html_e( 'Add Item(s)', 'invoicing' ); ?></h5>
694
-                                    <button type="button" class="close btn-close" data-dismiss="modal" aria-label="<?php esc_html_e( 'Close', 'invoicing' ); ?>">
695
-                                        <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
693
+                                    <h5 class="modal-title" id="getpaid-add-item-to-invoice-label"><?php esc_html_e('Add Item(s)', 'invoicing'); ?></h5>
694
+                                    <button type="button" class="close btn-close" data-dismiss="modal" aria-label="<?php esc_html_e('Close', 'invoicing'); ?>">
695
+                                        <?php if (empty($GLOBALS['aui_bs5'])) : ?>
696 696
                                             <span aria-hidden="true">×</span>
697 697
                                         <?php endif; ?>
698 698
                                     </button>
@@ -701,10 +701,10 @@  discard block
 block discarded – undo
701 701
                                     <table class="widefat">
702 702
                                         <thead>
703 703
                                             <tr>
704
-                                                <th class="pl-0 text-left"><?php esc_html_e( 'Item', 'invoicing' ); ?></th>
704
+                                                <th class="pl-0 text-left"><?php esc_html_e('Item', 'invoicing'); ?></th>
705 705
                                                 <th class="pr-0 text-right hide-if-amount">
706
-                                                    <span class="getpaid-hide-if-hours"><?php esc_html_e( 'Quantity', 'invoicing' ); ?></span>
707
-                                                    <span class="getpaid-hide-if-quantity"><?php esc_html_e( 'Hours', 'invoicing' ); ?></span>
706
+                                                    <span class="getpaid-hide-if-hours"><?php esc_html_e('Quantity', 'invoicing'); ?></span>
707
+                                                    <span class="getpaid-hide-if-quantity"><?php esc_html_e('Hours', 'invoicing'); ?></span>
708 708
                                                 </th>
709 709
                                             </tr>
710 710
                                         </thead>
@@ -712,9 +712,9 @@  discard block
 block discarded – undo
712 712
 								            <tr>
713 713
 									            <td class="pl-0 text-left">
714 714
                                                     <select class="regular-text getpaid-add-invoice-item-select">
715
-                                                        <option value="" selected="selected" disabled><?php esc_html_e( 'Select an item…', 'invoicing' ); ?></option>
716
-                                                        <?php foreach ( get_posts( $item_args ) as $item ) : ?>
717
-                                                        <option value="<?php echo (int) $item->ID; ?>"><?php echo esc_html( $item->post_title ); ?></option>
715
+                                                        <option value="" selected="selected" disabled><?php esc_html_e('Select an item…', 'invoicing'); ?></option>
716
+                                                        <?php foreach (get_posts($item_args) as $item) : ?>
717
+                                                        <option value="<?php echo (int) $item->ID; ?>"><?php echo esc_html($item->post_title); ?></option>
718 718
                                                         <?php endforeach; ?>
719 719
                                                     </select>
720 720
                                                 </td>
@@ -726,8 +726,8 @@  discard block
 block discarded – undo
726 726
 						            </table>
727 727
                                 </div>
728 728
                                 <div class="modal-footer">
729
-                                    <button type="button" class="btn btn-secondary getpaid-cancel" data-dismiss="modal"><?php esc_html_e( 'Cancel', 'invoicing' ); ?></button>
730
-                                    <button type="button" class="btn btn-primary getpaid-add" data-dismiss="modal"><?php esc_html_e( 'Add', 'invoicing' ); ?></button>
729
+                                    <button type="button" class="btn btn-secondary getpaid-cancel" data-dismiss="modal"><?php esc_html_e('Cancel', 'invoicing'); ?></button>
730
+                                    <button type="button" class="btn btn-primary getpaid-add" data-dismiss="modal"><?php esc_html_e('Add', 'invoicing'); ?></button>
731 731
                                 </div>
732 732
                             </div>
733 733
                         </div>
@@ -738,9 +738,9 @@  discard block
 block discarded – undo
738 738
                         <div class="modal-dialog modal-dialog-centered" role="document">
739 739
                             <div class="modal-content">
740 740
                                 <div class="modal-header">
741
-                                    <h5 class="modal-title" id="getpaid-create-invoice-item-label"><?php esc_html_e( 'Create Item', 'invoicing' ); ?></h5>
742
-                                    <button type="button" class="close btn-close" data-dismiss="modal" aria-label="<?php esc_html_e( 'Close', 'invoicing' ); ?>">
743
-                                        <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
741
+                                    <h5 class="modal-title" id="getpaid-create-invoice-item-label"><?php esc_html_e('Create Item', 'invoicing'); ?></h5>
742
+                                    <button type="button" class="close btn-close" data-dismiss="modal" aria-label="<?php esc_html_e('Close', 'invoicing'); ?>">
743
+                                        <?php if (empty($GLOBALS['aui_bs5'])) : ?>
744 744
                                             <span aria-hidden="true">×</span>
745 745
                                         <?php endif; ?>
746 746
                                     </button>
@@ -749,27 +749,27 @@  discard block
 block discarded – undo
749 749
                                     <div class="getpaid-create-item-div">
750 750
                                         <input type="hidden" name="id" value="new" class="form-control form-control-sm item-id">
751 751
                                         <label class="form-group mb-3 w-100">
752
-                                            <span><?php esc_html_e( 'Name', 'invoicing' ); ?></span>
753
-                                            <input type="text" name="name" placeholder="<?php esc_attr_e( 'Item Name', 'invoicing' ); ?>" class="form-control form-control-sm item-name">
752
+                                            <span><?php esc_html_e('Name', 'invoicing'); ?></span>
753
+                                            <input type="text" name="name" placeholder="<?php esc_attr_e('Item Name', 'invoicing'); ?>" class="form-control form-control-sm item-name">
754 754
                                         </label>
755 755
                                         <label class="form-group mb-3 w-100">
756
-                                            <span class="getpaid-hide-if-hours getpaid-hide-if-quantity item-price"><?php esc_html_e( 'Amount', 'invoicing' ); ?></span>
757
-                                            <span class="hide-if-amount"><?php esc_html_e( 'Price', 'invoicing' ); ?></span>
758
-                                            <input type="text" name="price" placeholder="<?php echo esc_attr( wpinv_sanitize_amount( 0 ) ); ?>" class="form-control form-control-sm item-price">
756
+                                            <span class="getpaid-hide-if-hours getpaid-hide-if-quantity item-price"><?php esc_html_e('Amount', 'invoicing'); ?></span>
757
+                                            <span class="hide-if-amount"><?php esc_html_e('Price', 'invoicing'); ?></span>
758
+                                            <input type="text" name="price" placeholder="<?php echo esc_attr(wpinv_sanitize_amount(0)); ?>" class="form-control form-control-sm item-price">
759 759
                                         </label>
760 760
                                         <label class="form-group mb-3 w-100 hide-if-amount">
761
-                                            <span><?php esc_html_e( 'Quantity', 'invoicing' ); ?></span>
761
+                                            <span><?php esc_html_e('Quantity', 'invoicing'); ?></span>
762 762
                                             <input type="text" name="quantity" placeholder="1" class="form-control form-control-sm item-quantity">
763 763
                                         </label>
764 764
                                         <label class="form-group mb-3 w-100">
765
-                                            <span><?php esc_html_e( 'Item Description', 'invoicing' ); ?></span>
766
-                                            <textarea name="description" placeholder="<?php esc_attr_e( 'Enter a description for this item', 'invoicing' ); ?>" class="form-control item-description"></textarea>
765
+                                            <span><?php esc_html_e('Item Description', 'invoicing'); ?></span>
766
+                                            <textarea name="description" placeholder="<?php esc_attr_e('Enter a description for this item', 'invoicing'); ?>" class="form-control item-description"></textarea>
767 767
                                         </label>
768 768
                                     </div>
769 769
                                 </div>
770 770
                                 <div class="modal-footer">
771
-                                    <button type="button" class="btn btn-secondary getpaid-cancel" data-dismiss="modal"><?php esc_html_e( 'Cancel', 'invoicing' ); ?></button>
772
-                                    <button type="button" class="btn btn-primary getpaid-save" data-dismiss="modal"><?php esc_html_e( 'Create', 'invoicing' ); ?></button>
771
+                                    <button type="button" class="btn btn-secondary getpaid-cancel" data-dismiss="modal"><?php esc_html_e('Cancel', 'invoicing'); ?></button>
772
+                                    <button type="button" class="btn btn-primary getpaid-save" data-dismiss="modal"><?php esc_html_e('Create', 'invoicing'); ?></button>
773 773
                                 </div>
774 774
                             </div>
775 775
                         </div>
@@ -780,9 +780,9 @@  discard block
 block discarded – undo
780 780
                         <div class="modal-dialog modal-dialog-centered" role="document">
781 781
                             <div class="modal-content">
782 782
                                 <div class="modal-header">
783
-                                    <h5 class="modal-title" id="getpaid-edit-invoice-item-label"><?php esc_html_e( 'Edit Item', 'invoicing' ); ?></h5>
784
-                                    <button type="button" class="close close" data-dismiss="modal" aria-label="<?php esc_html_e( 'Close', 'invoicing' ); ?>">
785
-                                        <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
783
+                                    <h5 class="modal-title" id="getpaid-edit-invoice-item-label"><?php esc_html_e('Edit Item', 'invoicing'); ?></h5>
784
+                                    <button type="button" class="close close" data-dismiss="modal" aria-label="<?php esc_html_e('Close', 'invoicing'); ?>">
785
+                                        <?php if (empty($GLOBALS['aui_bs5'])) : ?>
786 786
                                             <span aria-hidden="true">×</span>
787 787
                                         <?php endif; ?>
788 788
                                     </button>
@@ -791,27 +791,27 @@  discard block
 block discarded – undo
791 791
                                     <div class="getpaid-edit-item-div">
792 792
                                         <input type="hidden" name="id" class="form-control form-control-sm item-id">
793 793
                                         <label class="form-group mb-3 w-100">
794
-                                            <span><?php esc_html_e( 'Name', 'invoicing' ); ?></span>
795
-                                            <input type="text" name="name" placeholder="<?php esc_attr_e( 'Item Name', 'invoicing' ); ?>" class="form-control form-control-sm item-name">
794
+                                            <span><?php esc_html_e('Name', 'invoicing'); ?></span>
795
+                                            <input type="text" name="name" placeholder="<?php esc_attr_e('Item Name', 'invoicing'); ?>" class="form-control form-control-sm item-name">
796 796
                                         </label>
797 797
                                         <label class="form-group mb-3 w-100">
798
-                                            <span class="getpaid-hide-if-hours getpaid-hide-if-quantity item-price"><?php esc_html_e( 'Amount', 'invoicing' ); ?></span>
799
-                                            <span class="hide-if-amount"><?php esc_html_e( 'Price', 'invoicing' ); ?></span>
800
-                                            <input type="text" name="price" placeholder="<?php wpinv_sanitize_amount( 0 ); ?>" class="form-control form-control-sm item-price">
798
+                                            <span class="getpaid-hide-if-hours getpaid-hide-if-quantity item-price"><?php esc_html_e('Amount', 'invoicing'); ?></span>
799
+                                            <span class="hide-if-amount"><?php esc_html_e('Price', 'invoicing'); ?></span>
800
+                                            <input type="text" name="price" placeholder="<?php wpinv_sanitize_amount(0); ?>" class="form-control form-control-sm item-price">
801 801
                                         </label>
802 802
                                         <label class="form-group mb-3 w-100 hide-if-amount">
803
-                                            <span><?php esc_html_e( 'Quantity', 'invoicing' ); ?></span>
803
+                                            <span><?php esc_html_e('Quantity', 'invoicing'); ?></span>
804 804
                                             <input type="text" name="quantity" placeholder="1" class="form-control form-control-sm item-quantity">
805 805
                                         </label>
806 806
                                         <label class="form-group mb-3 w-100">
807
-                                            <span><?php esc_html_e( 'Item Description', 'invoicing' ); ?></span>
808
-                                            <textarea name="description" placeholder="<?php esc_attr_e( 'Enter a description for this item', 'invoicing' ); ?>" class="form-control item-description"></textarea>
807
+                                            <span><?php esc_html_e('Item Description', 'invoicing'); ?></span>
808
+                                            <textarea name="description" placeholder="<?php esc_attr_e('Enter a description for this item', 'invoicing'); ?>" class="form-control item-description"></textarea>
809 809
                                         </label>
810 810
                                     </div>
811 811
                                 </div>
812 812
                                 <div class="modal-footer">
813
-                                    <button type="button" class="btn btn-secondary getpaid-cancel" data-dismiss="modal"><?php esc_html_e( 'Cancel', 'invoicing' ); ?></button>
814
-                                    <button type="button" class="btn btn-primary getpaid-save" data-dismiss="modal"><?php esc_html_e( 'Save', 'invoicing' ); ?></button>
813
+                                    <button type="button" class="btn btn-secondary getpaid-cancel" data-dismiss="modal"><?php esc_html_e('Cancel', 'invoicing'); ?></button>
814
+                                    <button type="button" class="btn btn-primary getpaid-save" data-dismiss="modal"><?php esc_html_e('Save', 'invoicing'); ?></button>
815 815
                                 </div>
816 816
                             </div>
817 817
                         </div>
Please login to merge, or discard this patch.
includes/admin/class-getpaid-admin.php 2 patches
Indentation   +620 added lines, -620 removed lines patch added patch discarded remove patch
@@ -14,94 +14,94 @@  discard block
 block discarded – undo
14 14
 class GetPaid_Admin {
15 15
 
16 16
     /**
17
-	 * Local path to this plugins admin directory
18
-	 *
19
-	 * @var         string
20
-	 */
21
-	public $admin_path;
22
-
23
-	/**
24
-	 * Web path to this plugins admin directory
25
-	 *
26
-	 * @var         string
27
-	 */
28
-	public $admin_url;
29
-
30
-	/**
31
-	 * Reports components.
32
-	 *
33
-	 * @var GetPaid_Reports
34
-	 */
17
+     * Local path to this plugins admin directory
18
+     *
19
+     * @var         string
20
+     */
21
+    public $admin_path;
22
+
23
+    /**
24
+     * Web path to this plugins admin directory
25
+     *
26
+     * @var         string
27
+     */
28
+    public $admin_url;
29
+
30
+    /**
31
+     * Reports components.
32
+     *
33
+     * @var GetPaid_Reports
34
+     */
35 35
     public $reports;
36 36
 
37 37
     /**
38
-	 * Class constructor.
39
-	 */
40
-	public function __construct() {
38
+     * Class constructor.
39
+     */
40
+    public function __construct() {
41 41
 
42 42
         $this->admin_path  = plugin_dir_path( __FILE__ );
43
-		$this->admin_url   = plugins_url( '/', __FILE__ );
44
-		$this->reports     = new GetPaid_Reports();
43
+        $this->admin_url   = plugins_url( '/', __FILE__ );
44
+        $this->reports     = new GetPaid_Reports();
45 45
 
46 46
         if ( is_admin() ) {
47
-			$this->init_admin_hooks();
47
+            $this->init_admin_hooks();
48 48
         }
49 49
 
50 50
     }
51 51
 
52 52
     /**
53
-	 * Init action and filter hooks
54
-	 *
55
-	 */
56
-	private function init_admin_hooks() {
53
+     * Init action and filter hooks
54
+     *
55
+     */
56
+    private function init_admin_hooks() {
57 57
         add_action( 'admin_enqueue_scripts', array( $this, 'enqeue_scripts' ), 9 );
58 58
         add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) );
59 59
         add_action( 'admin_init', array( $this, 'init_ayecode_connect_helper' ) );
60 60
         add_action( 'admin_init', array( $this, 'activation_redirect' ) );
61 61
         add_action( 'admin_init', array( $this, 'maybe_do_admin_action' ) );
62
-		add_action( 'admin_notices', array( $this, 'show_notices' ) );
63
-		add_action( 'getpaid_authenticated_admin_action_rate_plugin', array( $this, 'redirect_to_wordpress_rating_page' ) );
64
-		add_action( 'getpaid_authenticated_admin_action_duplicate_form', array( $this, 'duplicate_payment_form' ) );
65
-		add_action( 'getpaid_authenticated_admin_action_reset_form_stats', array( $this, 'reset_form_stats' ) );
66
-		add_action( 'getpaid_authenticated_admin_action_duplicate_invoice', array( $this, 'duplicate_invoice' ) );
67
-		add_action( 'getpaid_authenticated_admin_action_refund_invoice', array( $this, 'refund_invoice' ) );
68
-		add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
69
-		add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
62
+        add_action( 'admin_notices', array( $this, 'show_notices' ) );
63
+        add_action( 'getpaid_authenticated_admin_action_rate_plugin', array( $this, 'redirect_to_wordpress_rating_page' ) );
64
+        add_action( 'getpaid_authenticated_admin_action_duplicate_form', array( $this, 'duplicate_payment_form' ) );
65
+        add_action( 'getpaid_authenticated_admin_action_reset_form_stats', array( $this, 'reset_form_stats' ) );
66
+        add_action( 'getpaid_authenticated_admin_action_duplicate_invoice', array( $this, 'duplicate_invoice' ) );
67
+        add_action( 'getpaid_authenticated_admin_action_refund_invoice', array( $this, 'refund_invoice' ) );
68
+        add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
69
+        add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
70 70
         add_action( 'getpaid_authenticated_admin_action_reset_tax_rates', array( $this, 'admin_reset_tax_rates' ) );
71
-		add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
72
-		add_action( 'getpaid_authenticated_admin_action_refresh_permalinks', array( $this, 'admin_refresh_permalinks' ) );
73
-		add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
74
-		add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
75
-		add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
76
-		add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
77
-		add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
78
-		add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
79
-		add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
80
-		do_action( 'getpaid_init_admin_hooks', $this );
81
-
82
-		// Setup/welcome
83
-		if ( ! empty( $_GET['page'] ) ) {
84
-			switch ( sanitize_text_field( $_GET['page'] ) ) {
85
-				case 'gp-setup':
86
-					include_once dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php';
87
-					break;
88
-			}
89
-		}
90
-
91
-    }
92
-
93
-    /**
94
-	 * Register admin scripts
95
-	 *
96
-	 */
97
-	public function enqeue_scripts() {
71
+        add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
72
+        add_action( 'getpaid_authenticated_admin_action_refresh_permalinks', array( $this, 'admin_refresh_permalinks' ) );
73
+        add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
74
+        add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
75
+        add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
76
+        add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
77
+        add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
78
+        add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
79
+        add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
80
+        do_action( 'getpaid_init_admin_hooks', $this );
81
+
82
+        // Setup/welcome
83
+        if ( ! empty( $_GET['page'] ) ) {
84
+            switch ( sanitize_text_field( $_GET['page'] ) ) {
85
+                case 'gp-setup':
86
+                    include_once dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php';
87
+                    break;
88
+            }
89
+        }
90
+
91
+    }
92
+
93
+    /**
94
+     * Register admin scripts
95
+     *
96
+     */
97
+    public function enqeue_scripts() {
98 98
         global $current_screen, $pagenow;
99 99
 
100
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
101
-		$editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
100
+        $page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
101
+        $editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
102 102
 
103 103
         if ( ! empty( $current_screen->post_type ) ) {
104
-			$page = $current_screen->post_type;
104
+            $page = $current_screen->post_type;
105 105
         }
106 106
 
107 107
         // General styles.
@@ -122,53 +122,53 @@  discard block
 block discarded – undo
122 122
         }
123 123
 
124 124
         // Payment form scripts.
125
-		if ( 'wpi_payment_form' == $page && $editing ) {
125
+        if ( 'wpi_payment_form' == $page && $editing ) {
126 126
             $this->load_payment_form_scripts();
127 127
         }
128 128
 
129
-		if ( $page == 'wpinv-subscriptions' ) {
130
-			wp_enqueue_script( 'postbox' );
131
-		}
129
+        if ( $page == 'wpinv-subscriptions' ) {
130
+            wp_enqueue_script( 'postbox' );
131
+        }
132 132
 
133 133
     }
134 134
 
135 135
     /**
136
-	 * Returns admin js translations.
137
-	 *
138
-	 */
139
-	protected function get_admin_i18() {
136
+     * Returns admin js translations.
137
+     *
138
+     */
139
+    protected function get_admin_i18() {
140 140
         global $post;
141 141
 
142
-		$date_range = array(
143
-			'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days',
144
-		);
142
+        $date_range = array(
143
+            'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days',
144
+        );
145 145
 
146
-		if ( $date_range['period'] == 'custom' ) {
146
+        if ( $date_range['period'] == 'custom' ) {
147 147
 
148
-			if ( isset( $_GET['from'] ) ) {
149
-				$date_range['after'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
150
-			}
148
+            if ( isset( $_GET['from'] ) ) {
149
+                $date_range['after'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
150
+            }
151 151
 
152
-			if ( isset( $_GET['to'] ) ) {
153
-				$date_range['before'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
154
-			}
152
+            if ( isset( $_GET['to'] ) ) {
153
+                $date_range['before'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
154
+            }
155 155
 }
156 156
 
157 157
         $i18n = array(
158 158
             'ajax_url'                  => admin_url( 'admin-ajax.php' ),
159 159
             'post_ID'                   => isset( $post->ID ) ? $post->ID : '',
160
-			'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
161
-			'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
162
-			'rest_root'                 => esc_url_raw( rest_url() ),
163
-			'date_range'                => $date_range,
160
+            'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
161
+            'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
162
+            'rest_root'                 => esc_url_raw( rest_url() ),
163
+            'date_range'                => $date_range,
164 164
             'add_invoice_note_nonce'    => wp_create_nonce( 'add-invoice-note' ),
165 165
             'delete_invoice_note_nonce' => wp_create_nonce( 'delete-invoice-note' ),
166 166
             'invoice_item_nonce'        => wp_create_nonce( 'invoice-item' ),
167 167
             'billing_details_nonce'     => wp_create_nonce( 'get-billing-details' ),
168 168
             'tax'                       => wpinv_tax_amount(),
169 169
             'discount'                  => 0,
170
-			'currency_symbol'           => wpinv_currency_symbol(),
171
-			'currency'                  => wpinv_get_currency(),
170
+            'currency_symbol'           => wpinv_currency_symbol(),
171
+            'currency'                  => wpinv_get_currency(),
172 172
             'currency_pos'              => wpinv_currency_position(),
173 173
             'thousand_sep'              => wpinv_thousands_separator(),
174 174
             'decimal_sep'               => wpinv_decimal_separator(),
@@ -188,118 +188,118 @@  discard block
 block discarded – undo
188 188
             'item_description'          => __( 'Item Description', 'invoicing' ),
189 189
             'invoice_description'       => __( 'Invoice Description', 'invoicing' ),
190 190
             'discount_description'      => __( 'Discount Description', 'invoicing' ),
191
-			'searching'                 => __( 'Searching', 'invoicing' ),
192
-			'loading'                   => __( 'Loading...', 'invoicing' ),
193
-			'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
194
-			'search_items'              => __( 'Enter item name', 'invoicing' ),
195
-			'graphs'                    => array_merge( array( 'refunded_fees', 'refunded_items', 'refunded_subtotal', 'refunded_tax' ), array_keys( wpinv_get_report_graphs() ) ),
191
+            'searching'                 => __( 'Searching', 'invoicing' ),
192
+            'loading'                   => __( 'Loading...', 'invoicing' ),
193
+            'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
194
+            'search_items'              => __( 'Enter item name', 'invoicing' ),
195
+            'graphs'                    => array_merge( array( 'refunded_fees', 'refunded_items', 'refunded_subtotal', 'refunded_tax' ), array_keys( wpinv_get_report_graphs() ) ),
196 196
         );
197 197
 
198
-		if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
198
+        if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
199 199
 
200
-			$invoice              = new WPInv_Invoice( $post );
201
-			$i18n['save_invoice'] = sprintf(
202
-				__( 'Save %s', 'invoicing' ),
203
-				ucfirst( $invoice->get_invoice_quote_type() )
204
-			);
200
+            $invoice              = new WPInv_Invoice( $post );
201
+            $i18n['save_invoice'] = sprintf(
202
+                __( 'Save %s', 'invoicing' ),
203
+                ucfirst( $invoice->get_invoice_quote_type() )
204
+            );
205 205
 
206
-			$i18n['invoice_description'] = sprintf(
207
-				__( '%s Description', 'invoicing' ),
208
-				ucfirst( $invoice->get_invoice_quote_type() )
209
-			);
206
+            $i18n['invoice_description'] = sprintf(
207
+                __( '%s Description', 'invoicing' ),
208
+                ucfirst( $invoice->get_invoice_quote_type() )
209
+            );
210 210
 
211
-		}
212
-		return $i18n;
213
-	}
211
+        }
212
+        return $i18n;
213
+    }
214 214
 
215
-	/**
216
-	 * Change the admin footer text on GetPaid admin pages.
217
-	 *
218
-	 * @since  2.0.0
219
-	 * @param  string $footer_text
220
-	 * @return string
221
-	 */
222
-	public function admin_footer_text( $footer_text ) {
223
-		global $current_screen;
215
+    /**
216
+     * Change the admin footer text on GetPaid admin pages.
217
+     *
218
+     * @since  2.0.0
219
+     * @param  string $footer_text
220
+     * @return string
221
+     */
222
+    public function admin_footer_text( $footer_text ) {
223
+        global $current_screen;
224 224
 
225
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
225
+        $page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
226 226
 
227 227
         if ( ! empty( $current_screen->post_type ) ) {
228
-			$page = $current_screen->post_type;
228
+            $page = $current_screen->post_type;
229 229
         }
230 230
 
231 231
         // General styles.
232 232
         if ( apply_filters( 'getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing() ) && false !== stripos( $page, 'wpi' ) ) {
233 233
 
234
-			// Change the footer text
235
-			if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
234
+            // Change the footer text
235
+            if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
236 236
 
237
-				$rating_url  = esc_url(
238
-					wp_nonce_url(
239
-						admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
240
-						'getpaid-nonce',
241
-						'getpaid-nonce'
237
+                $rating_url  = esc_url(
238
+                    wp_nonce_url(
239
+                        admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
240
+                        'getpaid-nonce',
241
+                        'getpaid-nonce'
242 242
                     )
243
-				);
243
+                );
244 244
 
245
-				$footer_text = sprintf(
246
-					/* translators: %s: five stars */
247
-					__( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
248
-					"<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
249
-				);
245
+                $footer_text = sprintf(
246
+                    /* translators: %s: five stars */
247
+                    __( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
248
+                    "<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
249
+                );
250 250
 
251
-			} else {
251
+            } else {
252 252
 
253
-				$footer_text = sprintf(
254
-					/* translators: %s: GetPaid */
255
-					__( 'Thank you for using %s!', 'invoicing' ),
256
-					"<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
257
-				);
253
+                $footer_text = sprintf(
254
+                    /* translators: %s: GetPaid */
255
+                    __( 'Thank you for using %s!', 'invoicing' ),
256
+                    "<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
257
+                );
258 258
 
259
-			}
259
+            }
260 260
 }
261 261
 
262
-		return $footer_text;
263
-	}
264
-
265
-	/**
266
-	 * Redirects to wp.org to rate the plugin.
267
-	 *
268
-	 * @since  2.0.0
269
-	 */
270
-	public function redirect_to_wordpress_rating_page() {
271
-		update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
272
-		wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
273
-		exit;
274
-	}
275
-
276
-    /**
277
-	 * Loads payment form js.
278
-	 *
279
-	 */
280
-	protected function load_payment_form_scripts() {
262
+        return $footer_text;
263
+    }
264
+
265
+    /**
266
+     * Redirects to wp.org to rate the plugin.
267
+     *
268
+     * @since  2.0.0
269
+     */
270
+    public function redirect_to_wordpress_rating_page() {
271
+        update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
272
+        wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
273
+        exit;
274
+    }
275
+
276
+    /**
277
+     * Loads payment form js.
278
+     *
279
+     */
280
+    protected function load_payment_form_scripts() {
281 281
         global $post;
282 282
 
283 283
         wp_enqueue_script( 'vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.min.js', array(), WPINV_VERSION );
284
-		wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
285
-		wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
284
+        wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
285
+        wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
286 286
 
287
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
288
-		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 );
287
+        $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
288
+        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 );
289 289
 
290
-		wp_localize_script(
290
+        wp_localize_script(
291 291
             'wpinv-admin-payment-form-script',
292 292
             'wpinvPaymentFormAdmin',
293 293
             array(
294
-				'elements'      => wpinv_get_data( 'payment-form-elements' ),
295
-				'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
296
-				'currency'      => wpinv_currency_symbol(),
297
-				'position'      => wpinv_currency_position(),
298
-				'decimals'      => (int) wpinv_decimals(),
299
-				'thousands_sep' => wpinv_thousands_separator(),
300
-				'decimals_sep'  => wpinv_decimal_separator(),
301
-				'form_items'    => gepaid_get_form_items( $post->ID ),
302
-				'is_default'    => $post->ID == wpinv_get_default_payment_form(),
294
+                'elements'      => wpinv_get_data( 'payment-form-elements' ),
295
+                'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
296
+                'currency'      => wpinv_currency_symbol(),
297
+                'position'      => wpinv_currency_position(),
298
+                'decimals'      => (int) wpinv_decimals(),
299
+                'thousands_sep' => wpinv_thousands_separator(),
300
+                'decimals_sep'  => wpinv_decimal_separator(),
301
+                'form_items'    => gepaid_get_form_items( $post->ID ),
302
+                'is_default'    => $post->ID == wpinv_get_default_payment_form(),
303 303
             )
304 304
         );
305 305
 
@@ -308,19 +308,19 @@  discard block
 block discarded – undo
308 308
     }
309 309
 
310 310
     /**
311
-	 * Add our classes to admin pages.
311
+     * Add our classes to admin pages.
312 312
      *
313 313
      * @param string $classes
314 314
      * @return string
315
-	 *
316
-	 */
315
+     *
316
+     */
317 317
     public function admin_body_class( $classes ) {
318
-		global $pagenow, $post, $current_screen;
318
+        global $pagenow, $post, $current_screen;
319 319
 
320 320
         $page = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
321 321
 
322 322
         if ( ! empty( $current_screen->post_type ) ) {
323
-			$page = $current_screen->post_type;
323
+            $page = $current_screen->post_type;
324 324
         }
325 325
 
326 326
         if ( false !== stripos( $page, 'wpi' ) ) {
@@ -329,70 +329,70 @@  discard block
 block discarded – undo
329 329
 
330 330
         if ( in_array( $page, wpinv_parse_list( 'wpi_invoice wpi_payment_form wpi_quote' ) ) ) {
331 331
             $classes .= ' wpinv-cpt wpinv';
332
-		}
332
+        }
333 333
 
334
-		if ( getpaid_is_invoice_post_type( $page ) ) {
334
+        if ( getpaid_is_invoice_post_type( $page ) ) {
335 335
             $classes .= ' getpaid-is-invoice-cpt';
336 336
         }
337 337
 
338
-		return $classes;
338
+        return $classes;
339 339
     }
340 340
 
341 341
     /**
342
-	 * Maybe show the AyeCode Connect Notice.
343
-	 */
344
-	public function init_ayecode_connect_helper() {
342
+     * Maybe show the AyeCode Connect Notice.
343
+     */
344
+    public function init_ayecode_connect_helper() {
345 345
 
346
-		// Register with the deactivation survey class.
347
-		AyeCode_Deactivation_Survey::instance(
346
+        // Register with the deactivation survey class.
347
+        AyeCode_Deactivation_Survey::instance(
348 348
             array(
349
-				'slug'              => 'invoicing',
350
-				'version'           => WPINV_VERSION,
351
-				'support_url'       => 'https://wpgetpaid.com/support/',
352
-				'documentation_url' => 'https://docs.wpgetpaid.com/',
353
-				'activated'         => (int) get_option( 'gepaid_installed_on' ),
349
+                'slug'              => 'invoicing',
350
+                'version'           => WPINV_VERSION,
351
+                'support_url'       => 'https://wpgetpaid.com/support/',
352
+                'documentation_url' => 'https://docs.wpgetpaid.com/',
353
+                'activated'         => (int) get_option( 'gepaid_installed_on' ),
354 354
             )
355 355
         );
356 356
 
357 357
         new AyeCode_Connect_Helper(
358 358
             array(
359
-				'connect_title'     => __( 'WP Invoicing - an AyeCode product!', 'invoicing' ),
360
-				'connect_external'  => __( 'Please confirm you wish to connect your site?', 'invoicing' ),
361
-				'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>' ),
362
-				'connect_button'    => __( 'Connect Site', 'invoicing' ),
363
-				'connecting_button' => __( 'Connecting...', 'invoicing' ),
364
-				'error_localhost'   => __( 'This service will only work with a live domain, not a localhost.', 'invoicing' ),
365
-				'error'             => __( 'Something went wrong, please refresh and try again.', 'invoicing' ),
359
+                'connect_title'     => __( 'WP Invoicing - an AyeCode product!', 'invoicing' ),
360
+                'connect_external'  => __( 'Please confirm you wish to connect your site?', 'invoicing' ),
361
+                '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>' ),
362
+                'connect_button'    => __( 'Connect Site', 'invoicing' ),
363
+                'connecting_button' => __( 'Connecting...', 'invoicing' ),
364
+                'error_localhost'   => __( 'This service will only work with a live domain, not a localhost.', 'invoicing' ),
365
+                'error'             => __( 'Something went wrong, please refresh and try again.', 'invoicing' ),
366 366
             ),
367 367
             array( 'wpi-addons' )
368 368
         );
369 369
 
370 370
     }
371 371
 
372
-	/**
373
-	 * Redirect users to settings on activation.
374
-	 *
375
-	 * @return void
376
-	 */
377
-	public function activation_redirect() {
372
+    /**
373
+     * Redirect users to settings on activation.
374
+     *
375
+     * @return void
376
+     */
377
+    public function activation_redirect() {
378 378
 
379
-		$redirected = get_option( 'wpinv_redirected_to_settings' );
379
+        $redirected = get_option( 'wpinv_redirected_to_settings' );
380 380
 
381
-		if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
382
-			return;
383
-		}
381
+        if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
382
+            return;
383
+        }
384 384
 
385
-		// Bail if activating from network, or bulk
386
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
387
-			return;
388
-		}
385
+        // Bail if activating from network, or bulk
386
+        if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
387
+            return;
388
+        }
389 389
 
390
-	    update_option( 'wpinv_redirected_to_settings', 1 );
390
+        update_option( 'wpinv_redirected_to_settings', 1 );
391 391
 
392 392
         wp_safe_redirect( admin_url( 'index.php?page=gp-setup' ) );
393 393
         exit;
394 394
 
395
-	}
395
+    }
396 396
 
397 397
     /**
398 398
      * Fires an admin action after verifying that a user can fire them.
@@ -405,555 +405,555 @@  discard block
 block discarded – undo
405 405
         }
406 406
     }
407 407
 
408
-	/**
408
+    /**
409 409
      * Duplicate invoice.
410
-	 *
411
-	 * @param array $args
410
+     *
411
+     * @param array $args
412 412
      */
413 413
     public function duplicate_invoice( $args ) {
414 414
 
415
-		if ( empty( $args['invoice_id'] ) ) {
416
-			return;
417
-		}
415
+        if ( empty( $args['invoice_id'] ) ) {
416
+            return;
417
+        }
418 418
 
419
-		$invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
419
+        $invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
420 420
 
421
-		if ( ! $invoice->exists() ) {
422
-			return;
423
-		}
421
+        if ( ! $invoice->exists() ) {
422
+            return;
423
+        }
424 424
 
425
-		$new_invoice = getpaid_duplicate_invoice( $invoice );
426
-		$new_invoice->save();
425
+        $new_invoice = getpaid_duplicate_invoice( $invoice );
426
+        $new_invoice->save();
427 427
 
428
-		if ( $new_invoice->exists() ) {
428
+        if ( $new_invoice->exists() ) {
429 429
 
430
-			getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'invoicing' ) );
430
+            getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'invoicing' ) );
431 431
 
432
-			wp_safe_redirect(
433
-				add_query_arg(
434
-					array(
435
-						'action' => 'edit',
436
-						'post'   => $new_invoice->get_id(),
437
-					),
438
-					admin_url( 'post.php' )
439
-				)
440
-			);
441
-			exit;
432
+            wp_safe_redirect(
433
+                add_query_arg(
434
+                    array(
435
+                        'action' => 'edit',
436
+                        'post'   => $new_invoice->get_id(),
437
+                    ),
438
+                    admin_url( 'post.php' )
439
+                )
440
+            );
441
+            exit;
442 442
 
443
-		}
443
+        }
444 444
 
445
-		getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'invoicing' ) );
445
+        getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'invoicing' ) );
446 446
 
447
-	}
447
+    }
448 448
 
449
-	/**
449
+    /**
450 450
      * Refund an invoice.
451
-	 *
452
-	 * @param array $args
451
+     *
452
+     * @param array $args
453 453
      */
454 454
     public function refund_invoice( $args ) {
455 455
 
456
-		if ( empty( $args['invoice_id'] ) ) {
457
-			return;
458
-		}
459
-
460
-		$invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
461
-
462
-		if ( ! $invoice->exists() || $invoice->is_refunded() ) {
463
-			return;
464
-		}
465
-
466
-		$invoice->refund();
467
-
468
-		// Refund remotely.
469
-		if ( getpaid_payment_gateway_supports( $invoice->get_gateway(), 'refunds' ) && ! empty( $args['getpaid_refund_remote'] ) ) {
470
-			do_action( 'getpaid_refund_invoice_remotely', $invoice );
471
-		}
472
-
473
-		// Cancel subscriptions.
474
-		if ( ! empty( $args['getpaid_cancel_subscription'] ) ) {
475
-			$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
476
-
477
-			if ( ! empty( $subscriptions ) ) {
478
-				if ( ! is_array( $subscriptions ) ) {
479
-					$subscriptions = array( $subscriptions );
480
-				}
481
-
482
-				foreach ( $subscriptions as $subscription ) {
483
-					$subscription->cancel();
484
-					$invoice->add_system_note(
485
-						sprintf(
486
-							// translators: %s: subscription ID.
487
-							__( 'Subscription #%s cancelled', 'invoicing' ),
488
-							$subscription->get_id()
489
-						)
490
-					);
491
-				}
492
-			}
493
-		}
494
-
495
-		// Add notice.
496
-		$this->show_success( __( 'Invoice refunded successfully.', 'invoicing' ) );
497
-
498
-		// Redirect.
499
-		wp_safe_redirect(
500
-			remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id', 'getpaid_cancel_subscription', 'getpaid_refund_remote' ) )
501
-		);
502
-	}
503
-
504
-	/**
456
+        if ( empty( $args['invoice_id'] ) ) {
457
+            return;
458
+        }
459
+
460
+        $invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
461
+
462
+        if ( ! $invoice->exists() || $invoice->is_refunded() ) {
463
+            return;
464
+        }
465
+
466
+        $invoice->refund();
467
+
468
+        // Refund remotely.
469
+        if ( getpaid_payment_gateway_supports( $invoice->get_gateway(), 'refunds' ) && ! empty( $args['getpaid_refund_remote'] ) ) {
470
+            do_action( 'getpaid_refund_invoice_remotely', $invoice );
471
+        }
472
+
473
+        // Cancel subscriptions.
474
+        if ( ! empty( $args['getpaid_cancel_subscription'] ) ) {
475
+            $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
476
+
477
+            if ( ! empty( $subscriptions ) ) {
478
+                if ( ! is_array( $subscriptions ) ) {
479
+                    $subscriptions = array( $subscriptions );
480
+                }
481
+
482
+                foreach ( $subscriptions as $subscription ) {
483
+                    $subscription->cancel();
484
+                    $invoice->add_system_note(
485
+                        sprintf(
486
+                            // translators: %s: subscription ID.
487
+                            __( 'Subscription #%s cancelled', 'invoicing' ),
488
+                            $subscription->get_id()
489
+                        )
490
+                    );
491
+                }
492
+            }
493
+        }
494
+
495
+        // Add notice.
496
+        $this->show_success( __( 'Invoice refunded successfully.', 'invoicing' ) );
497
+
498
+        // Redirect.
499
+        wp_safe_redirect(
500
+            remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id', 'getpaid_cancel_subscription', 'getpaid_refund_remote' ) )
501
+        );
502
+    }
503
+
504
+    /**
505 505
      * Sends a payment reminder to a customer.
506
-	 *
507
-	 * @param array $args
506
+     *
507
+     * @param array $args
508 508
      */
509 509
     public function duplicate_payment_form( $args ) {
510 510
 
511
-		if ( empty( $args['form_id'] ) ) {
512
-			return;
513
-		}
514
-
515
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
511
+        if ( empty( $args['form_id'] ) ) {
512
+            return;
513
+        }
516 514
 
517
-		if ( ! $form->exists() ) {
518
-			return;
519
-		}
515
+        $form = new GetPaid_Payment_Form( (int) $args['form_id'] );
520 516
 
521
-		$new_form = new GetPaid_Payment_Form();
522
-		$new_form->set_author( $form->get_author( 'edit' ) );
523
-		$new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
524
-		$new_form->set_elements( $form->get_elements( 'edit' ) );
525
-		$new_form->set_items( $form->get_items( 'edit' ) );
526
-		$new_form->save();
517
+        if ( ! $form->exists() ) {
518
+            return;
519
+        }
527 520
 
528
-		if ( $new_form->exists() ) {
529
-			$this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
530
-			$url = get_edit_post_link( $new_form->get_id(), 'edit' );
531
-		} else {
532
-			$this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
533
-			$url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
534
-		}
521
+        $new_form = new GetPaid_Payment_Form();
522
+        $new_form->set_author( $form->get_author( 'edit' ) );
523
+        $new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
524
+        $new_form->set_elements( $form->get_elements( 'edit' ) );
525
+        $new_form->set_items( $form->get_items( 'edit' ) );
526
+        $new_form->save();
527
+
528
+        if ( $new_form->exists() ) {
529
+            $this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
530
+            $url = get_edit_post_link( $new_form->get_id(), 'edit' );
531
+        } else {
532
+            $this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
533
+            $url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
534
+        }
535 535
 
536
-		wp_redirect( $url );
537
-		exit;
538
-	}
536
+        wp_redirect( $url );
537
+        exit;
538
+    }
539 539
 
540
-	/**
540
+    /**
541 541
      * Resets form stats.
542
-	 *
543
-	 * @param array $args
542
+     *
543
+     * @param array $args
544 544
      */
545 545
     public function reset_form_stats( $args ) {
546 546
 
547
-		if ( empty( $args['form_id'] ) ) {
548
-			return;
549
-		}
547
+        if ( empty( $args['form_id'] ) ) {
548
+            return;
549
+        }
550 550
 
551
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
551
+        $form = new GetPaid_Payment_Form( (int) $args['form_id'] );
552 552
 
553
-		if ( ! $form->exists() ) {
554
-			return;
555
-		}
553
+        if ( ! $form->exists() ) {
554
+            return;
555
+        }
556 556
 
557
-		$form->set_earned( 0 );
558
-		$form->set_refunded( 0 );
559
-		$form->set_cancelled( 0 );
560
-		$form->set_failed( 0 );
561
-		$form->save();
557
+        $form->set_earned( 0 );
558
+        $form->set_refunded( 0 );
559
+        $form->set_cancelled( 0 );
560
+        $form->set_failed( 0 );
561
+        $form->save();
562 562
 
563
-		$this->show_success( __( 'Form stats reset successfully', 'invoicing' ) );
563
+        $this->show_success( __( 'Form stats reset successfully', 'invoicing' ) );
564 564
 
565
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) ) );
566
-		exit;
567
-	}
565
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) ) );
566
+        exit;
567
+    }
568 568
 
569
-	/**
569
+    /**
570 570
      * Sends a payment reminder to a customer.
571
-	 *
572
-	 * @param array $args
571
+     *
572
+     * @param array $args
573 573
      */
574 574
     public function send_customer_invoice( $args ) {
575
-		getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
576
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
577
-		exit;
578
-	}
575
+        getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
576
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
577
+        exit;
578
+    }
579 579
 
580
-	/**
580
+    /**
581 581
      * Sends a payment reminder to a customer.
582
-	 *
583
-	 * @param array $args
582
+     *
583
+     * @param array $args
584 584
      */
585 585
     public function send_customer_payment_reminder( $args ) {
586
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
586
+        $sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
587 587
 
588
-		if ( $sent ) {
589
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
590
-		} else {
591
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
592
-		}
588
+        if ( $sent ) {
589
+            $this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
590
+        } else {
591
+            $this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
592
+        }
593 593
 
594
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
595
-		exit;
596
-	}
594
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
595
+        exit;
596
+    }
597 597
 
598
-	/**
598
+    /**
599 599
      * Resets tax rates.
600
-	 *
600
+     *
601 601
      */
602 602
     public function admin_reset_tax_rates() {
603 603
 
604
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
605
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
606
-		exit;
604
+        update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
605
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
606
+        exit;
607 607
 
608
-	}
608
+    }
609 609
 
610
-	/**
610
+    /**
611 611
      * Resets admin pages.
612
-	 *
612
+     *
613 613
      */
614 614
     public function admin_create_missing_pages() {
615
-		$installer = new GetPaid_Installer();
616
-		$installer->create_pages();
617
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
618
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
619
-		exit;
620
-	}
621
-
622
-	/**
623
-	 * Refreshes the permalinks.
624
-	 */
625
-	public function admin_refresh_permalinks() {
626
-		flush_rewrite_rules();
627
-		$this->show_success( __( 'Permalinks refreshed.', 'invoicing' ) );
628
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
629
-		exit;
630
-	}
631
-
632
-	/**
615
+        $installer = new GetPaid_Installer();
616
+        $installer->create_pages();
617
+        $this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
618
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
619
+        exit;
620
+    }
621
+
622
+    /**
623
+     * Refreshes the permalinks.
624
+     */
625
+    public function admin_refresh_permalinks() {
626
+        flush_rewrite_rules();
627
+        $this->show_success( __( 'Permalinks refreshed.', 'invoicing' ) );
628
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
629
+        exit;
630
+    }
631
+
632
+    /**
633 633
      * Creates missing admin tables.
634
-	 *
634
+     *
635 635
      */
636 636
     public function admin_create_missing_tables() {
637
-		global $wpdb;
637
+        global $wpdb;
638 638
 
639
-		GetPaid_Installer::create_db_tables();
640
-		GetPaid_Installer::migrate_old_customers();
639
+        GetPaid_Installer::create_db_tables();
640
+        GetPaid_Installer::migrate_old_customers();
641 641
 
642
-		if ( '' !== $wpdb->last_error ) {
643
-			$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
644
-		} else {
645
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
646
-		}
642
+        if ( '' !== $wpdb->last_error ) {
643
+            $this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
644
+        } else {
645
+            $this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
646
+        }
647 647
 
648
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
649
-		exit;
650
-	}
648
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
649
+        exit;
650
+    }
651 651
 
652
-	/**
652
+    /**
653 653
      * Migrates old invoices to the new database tables.
654
-	 *
654
+     *
655 655
      */
656 656
     public function admin_migrate_old_invoices() {
657 657
 
658
-		// Migrate the invoices.
659
-		$installer = new GetPaid_Installer();
660
-		$installer->migrate_old_invoices();
658
+        // Migrate the invoices.
659
+        $installer = new GetPaid_Installer();
660
+        $installer->migrate_old_invoices();
661 661
 
662
-		// Show an admin message.
663
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
662
+        // Show an admin message.
663
+        $this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
664 664
 
665
-		// Redirect the admin.
666
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
667
-		exit;
665
+        // Redirect the admin.
666
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
667
+        exit;
668 668
 
669
-	}
669
+    }
670 670
 
671
-	/**
671
+    /**
672 672
      * Download customers.
673
-	 *
673
+     *
674 674
      */
675 675
     public function admin_download_customers() {
676 676
 
677
-		$output = fopen( 'php://output', 'w' );
677
+        $output = fopen( 'php://output', 'w' );
678 678
 
679
-		if ( false === $output ) {
680
-			wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
681
-		}
679
+        if ( false === $output ) {
680
+            wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
681
+        }
682 682
 
683
-		header( 'Content-Type:text/csv' );
684
-		header( 'Content-Disposition:attachment;filename=customers.csv' );
683
+        header( 'Content-Type:text/csv' );
684
+        header( 'Content-Disposition:attachment;filename=customers.csv' );
685 685
 
686
-		/** @var GetPaid_Customer[] $customers */
687
-		$customers = getpaid_get_customers( array( 'number' => -1 ) );
688
-		$columns   = array_keys( GetPaid_Customer_Data_Store::get_database_fields() );
686
+        /** @var GetPaid_Customer[] $customers */
687
+        $customers = getpaid_get_customers( array( 'number' => -1 ) );
688
+        $columns   = array_keys( GetPaid_Customer_Data_Store::get_database_fields() );
689 689
 
690
-		// Output the csv column headers.
691
-		fputcsv( $output, $columns );
690
+        // Output the csv column headers.
691
+        fputcsv( $output, $columns );
692 692
 
693
-		// Loop through
694
-		foreach ( $customers as $customer ) {
693
+        // Loop through
694
+        foreach ( $customers as $customer ) {
695 695
 
696
-			$row  = array();
696
+            $row  = array();
697 697
 
698
-			foreach ( $columns as $column ) {
699
-				$row[]  = (string) maybe_serialize( $customer->get( $column, 'edit' ) );
700
-			}
698
+            foreach ( $columns as $column ) {
699
+                $row[]  = (string) maybe_serialize( $customer->get( $column, 'edit' ) );
700
+            }
701 701
 
702
-			fputcsv( $output, $row );
703
-		}
702
+            fputcsv( $output, $row );
703
+        }
704 704
 
705
-		fclose( $output );
706
-		exit;
705
+        fclose( $output );
706
+        exit;
707 707
 
708
-	}
708
+    }
709 709
 
710
-	/**
710
+    /**
711 711
      * Installs a plugin.
712
-	 *
713
-	 * @param array $data
712
+     *
713
+     * @param array $data
714 714
      */
715 715
     public function admin_install_plugin( $data ) {
716 716
 
717
-		if ( ! empty( $data['plugins'] ) ) {
718
-			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
719
-			wp_cache_flush();
717
+        if ( ! empty( $data['plugins'] ) ) {
718
+            include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
719
+            wp_cache_flush();
720 720
 
721
-			foreach ( $data['plugins'] as $slug => $file ) {
722
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
723
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
724
-				$installed  = $upgrader->install( $plugin_zip );
721
+            foreach ( $data['plugins'] as $slug => $file ) {
722
+                $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
723
+                $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
724
+                $installed  = $upgrader->install( $plugin_zip );
725 725
 
726
-				if ( ! is_wp_error( $installed ) && $installed ) {
727
-					activate_plugin( $file, '', false, true );
728
-				} else {
729
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
730
-				}
726
+                if ( ! is_wp_error( $installed ) && $installed ) {
727
+                    activate_plugin( $file, '', false, true );
728
+                } else {
729
+                    wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
730
+                }
731 731
 }
732 732
 }
733 733
 
734
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
735
-		wp_safe_redirect( $redirect );
736
-		exit;
734
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
735
+        wp_safe_redirect( $redirect );
736
+        exit;
737 737
 
738
-	}
738
+    }
739 739
 
740
-	/**
740
+    /**
741 741
      * Connects a gateway.
742
-	 *
743
-	 * @param array $data
742
+     *
743
+     * @param array $data
744 744
      */
745 745
     public function admin_connect_gateway( $data ) {
746 746
 
747
-		if ( ! empty( $data['plugin'] ) ) {
747
+        if ( ! empty( $data['plugin'] ) ) {
748 748
 
749
-			$gateway     = sanitize_key( $data['plugin'] );
750
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
749
+            $gateway     = sanitize_key( $data['plugin'] );
750
+            $connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
751 751
 
752
-			if ( ! empty( $connect_url ) ) {
753
-				wp_redirect( $connect_url );
754
-				exit;
755
-			}
752
+            if ( ! empty( $connect_url ) ) {
753
+                wp_redirect( $connect_url );
754
+                exit;
755
+            }
756 756
 
757
-			if ( 'stripe' == $data['plugin'] ) {
758
-				require_once ABSPATH . 'wp-admin/includes/plugin.php';
759
-				include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
760
-				wp_cache_flush();
757
+            if ( 'stripe' == $data['plugin'] ) {
758
+                require_once ABSPATH . 'wp-admin/includes/plugin.php';
759
+                include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
760
+                wp_cache_flush();
761 761
 
762
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
763
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
764
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
765
-					$upgrader->install( $plugin_zip );
766
-				}
762
+                if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
763
+                    $plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
764
+                    $upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
765
+                    $upgrader->install( $plugin_zip );
766
+                }
767 767
 
768
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
769
-			}
768
+                activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
769
+            }
770 770
 
771
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
772
-			if ( ! empty( $connect_url ) ) {
773
-				wp_redirect( $connect_url );
774
-				exit;
775
-			}
771
+            $connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
772
+            if ( ! empty( $connect_url ) ) {
773
+                wp_redirect( $connect_url );
774
+                exit;
775
+            }
776 776
 }
777 777
 
778
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
779
-		wp_safe_redirect( $redirect );
780
-		exit;
778
+        $redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
779
+        wp_safe_redirect( $redirect );
780
+        exit;
781 781
 
782
-	}
782
+    }
783 783
 
784
-	/**
784
+    /**
785 785
      * Recalculates discounts.
786
-	 *
786
+     *
787 787
      */
788 788
     public function admin_recalculate_discounts() {
789
-		global $wpdb;
789
+        global $wpdb;
790 790
 
791
-		// Fetch all invoices that have discount codes.
792
-		$table    = $wpdb->prefix . 'getpaid_invoices';
793
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
791
+        // Fetch all invoices that have discount codes.
792
+        $table    = $wpdb->prefix . 'getpaid_invoices';
793
+        $invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
794 794
 
795
-		foreach ( $invoices as $invoice ) {
795
+        foreach ( $invoices as $invoice ) {
796 796
 
797
-			$invoice = new WPInv_Invoice( $invoice );
797
+            $invoice = new WPInv_Invoice( $invoice );
798 798
 
799
-			if ( ! $invoice->exists() ) {
800
-				continue;
801
-			}
799
+            if ( ! $invoice->exists() ) {
800
+                continue;
801
+            }
802 802
 
803
-			// Abort if the discount does not exist or does not apply here.
804
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
805
-			if ( ! $discount->exists() ) {
806
-				continue;
807
-			}
803
+            // Abort if the discount does not exist or does not apply here.
804
+            $discount = new WPInv_Discount( $invoice->get_discount_code() );
805
+            if ( ! $discount->exists() ) {
806
+                continue;
807
+            }
808 808
 
809
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
810
-			$invoice->recalculate_total();
809
+            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
810
+            $invoice->recalculate_total();
811 811
 
812
-			if ( $invoice->get_total_discount() > 0 ) {
813
-				$invoice->save();
814
-			}
812
+            if ( $invoice->get_total_discount() > 0 ) {
813
+                $invoice->save();
814
+            }
815 815
 }
816 816
 
817
-		// Show an admin message.
818
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
817
+        // Show an admin message.
818
+        $this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
819 819
 
820
-		// Redirect the admin.
821
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
822
-		exit;
820
+        // Redirect the admin.
821
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
822
+        exit;
823 823
 
824
-	}
824
+    }
825 825
 
826 826
     /**
827
-	 * Returns an array of admin notices.
828
-	 *
829
-	 * @since       1.0.19
827
+     * Returns an array of admin notices.
828
+     *
829
+     * @since       1.0.19
830 830
      * @return array
831
-	 */
832
-	public function get_notices() {
833
-		$notices = get_option( 'wpinv_admin_notices' );
831
+     */
832
+    public function get_notices() {
833
+        $notices = get_option( 'wpinv_admin_notices' );
834 834
         return is_array( $notices ) ? $notices : array();
835
-	}
835
+    }
836 836
 
837
-	/**
838
-	 * Checks if we have any admin notices.
839
-	 *
840
-	 * @since       2.0.4
837
+    /**
838
+     * Checks if we have any admin notices.
839
+     *
840
+     * @since       2.0.4
841 841
      * @return array
842
-	 */
843
-	public function has_notices() {
844
-		return count( $this->get_notices() ) > 0;
845
-	}
846
-
847
-	/**
848
-	 * Clears all admin notices
849
-	 *
850
-	 * @access      public
851
-	 * @since       1.0.19
852
-	 */
853
-	public function clear_notices() {
854
-		delete_option( 'wpinv_admin_notices' );
855
-	}
856
-
857
-	/**
858
-	 * Saves a new admin notice
859
-	 *
860
-	 * @access      public
861
-	 * @since       1.0.19
862
-	 */
863
-	public function save_notice( $type, $message ) {
864
-		$notices = $this->get_notices();
865
-
866
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
867
-			$notices[ $type ] = array();
868
-		}
869
-
870
-		$notices[ $type ][] = $message;
871
-
872
-		update_option( 'wpinv_admin_notices', $notices );
873
-	}
874
-
875
-	/**
876
-	 * Displays a success notice
877
-	 *
878
-	 * @param       string $msg The message to qeue.
879
-	 * @access      public
880
-	 * @since       1.0.19
881
-	 */
882
-	public function show_success( $msg ) {
883
-		$this->save_notice( 'success', $msg );
884
-	}
885
-
886
-	/**
887
-	 * Displays a error notice
888
-	 *
889
-	 * @access      public
890
-	 * @param       string $msg The message to qeue.
891
-	 * @since       1.0.19
892
-	 */
893
-	public function show_error( $msg ) {
894
-		$this->save_notice( 'error', $msg );
895
-	}
896
-
897
-	/**
898
-	 * Displays a warning notice
899
-	 *
900
-	 * @access      public
901
-	 * @param       string $msg The message to qeue.
902
-	 * @since       1.0.19
903
-	 */
904
-	public function show_warning( $msg ) {
905
-		$this->save_notice( 'warning', $msg );
906
-	}
907
-
908
-	/**
909
-	 * Displays a info notice
910
-	 *
911
-	 * @access      public
912
-	 * @param       string $msg The message to qeue.
913
-	 * @since       1.0.19
914
-	 */
915
-	public function show_info( $msg ) {
916
-		$this->save_notice( 'info', $msg );
917
-	}
918
-
919
-	/**
920
-	 * Show notices
921
-	 *
922
-	 * @access      public
923
-	 * @since       1.0.19
924
-	 */
925
-	public function show_notices() {
842
+     */
843
+    public function has_notices() {
844
+        return count( $this->get_notices() ) > 0;
845
+    }
846
+
847
+    /**
848
+     * Clears all admin notices
849
+     *
850
+     * @access      public
851
+     * @since       1.0.19
852
+     */
853
+    public function clear_notices() {
854
+        delete_option( 'wpinv_admin_notices' );
855
+    }
856
+
857
+    /**
858
+     * Saves a new admin notice
859
+     *
860
+     * @access      public
861
+     * @since       1.0.19
862
+     */
863
+    public function save_notice( $type, $message ) {
864
+        $notices = $this->get_notices();
865
+
866
+        if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
867
+            $notices[ $type ] = array();
868
+        }
869
+
870
+        $notices[ $type ][] = $message;
871
+
872
+        update_option( 'wpinv_admin_notices', $notices );
873
+    }
874
+
875
+    /**
876
+     * Displays a success notice
877
+     *
878
+     * @param       string $msg The message to qeue.
879
+     * @access      public
880
+     * @since       1.0.19
881
+     */
882
+    public function show_success( $msg ) {
883
+        $this->save_notice( 'success', $msg );
884
+    }
885
+
886
+    /**
887
+     * Displays a error notice
888
+     *
889
+     * @access      public
890
+     * @param       string $msg The message to qeue.
891
+     * @since       1.0.19
892
+     */
893
+    public function show_error( $msg ) {
894
+        $this->save_notice( 'error', $msg );
895
+    }
896
+
897
+    /**
898
+     * Displays a warning notice
899
+     *
900
+     * @access      public
901
+     * @param       string $msg The message to qeue.
902
+     * @since       1.0.19
903
+     */
904
+    public function show_warning( $msg ) {
905
+        $this->save_notice( 'warning', $msg );
906
+    }
907
+
908
+    /**
909
+     * Displays a info notice
910
+     *
911
+     * @access      public
912
+     * @param       string $msg The message to qeue.
913
+     * @since       1.0.19
914
+     */
915
+    public function show_info( $msg ) {
916
+        $this->save_notice( 'info', $msg );
917
+    }
918
+
919
+    /**
920
+     * Show notices
921
+     *
922
+     * @access      public
923
+     * @since       1.0.19
924
+     */
925
+    public function show_notices() {
926 926
 
927 927
         $notices = $this->get_notices();
928 928
         $this->clear_notices();
929 929
 
930
-		foreach ( $notices as $type => $messages ) {
930
+        foreach ( $notices as $type => $messages ) {
931 931
 
932
-			if ( ! is_array( $messages ) ) {
933
-				continue;
934
-			}
932
+            if ( ! is_array( $messages ) ) {
933
+                continue;
934
+            }
935 935
 
936 936
             $type  = esc_attr( $type );
937
-			foreach ( $messages as $message ) {
938
-				echo wp_kses_post( "<div class='notice notice-$type is-dismissible'><p>$message</p></div>" );
937
+            foreach ( $messages as $message ) {
938
+                echo wp_kses_post( "<div class='notice notice-$type is-dismissible'><p>$message</p></div>" );
939 939
             }
940 940
 }
941 941
 
942
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
943
-
944
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
945
-				$url     = wp_nonce_url(
946
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
947
-					'getpaid-nonce',
948
-					'getpaid-nonce'
949
-				);
950
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
951
-				$message2 = __( 'Generate Pages', 'invoicing' );
952
-				echo wp_kses_post( "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>" );
953
-				break;
954
-			}
942
+        foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
943
+
944
+            if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
945
+                $url     = wp_nonce_url(
946
+                    add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
947
+                    'getpaid-nonce',
948
+                    'getpaid-nonce'
949
+                );
950
+                $message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
951
+                $message2 = __( 'Generate Pages', 'invoicing' );
952
+                echo wp_kses_post( "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>" );
953
+                break;
954
+            }
955 955
 }
956 956
 
957
-	}
957
+    }
958 958
 
959 959
 }
Please login to merge, or discard this patch.
Spacing   +279 added lines, -279 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,36 +54,36 @@  discard block
 block discarded – undo
54 54
 	 *
55 55
 	 */
56 56
 	private function init_admin_hooks() {
57
-        add_action( 'admin_enqueue_scripts', array( $this, 'enqeue_scripts' ), 9 );
58
-        add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) );
59
-        add_action( 'admin_init', array( $this, 'init_ayecode_connect_helper' ) );
60
-        add_action( 'admin_init', array( $this, 'activation_redirect' ) );
61
-        add_action( 'admin_init', array( $this, 'maybe_do_admin_action' ) );
62
-		add_action( 'admin_notices', array( $this, 'show_notices' ) );
63
-		add_action( 'getpaid_authenticated_admin_action_rate_plugin', array( $this, 'redirect_to_wordpress_rating_page' ) );
64
-		add_action( 'getpaid_authenticated_admin_action_duplicate_form', array( $this, 'duplicate_payment_form' ) );
65
-		add_action( 'getpaid_authenticated_admin_action_reset_form_stats', array( $this, 'reset_form_stats' ) );
66
-		add_action( 'getpaid_authenticated_admin_action_duplicate_invoice', array( $this, 'duplicate_invoice' ) );
67
-		add_action( 'getpaid_authenticated_admin_action_refund_invoice', array( $this, 'refund_invoice' ) );
68
-		add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
69
-		add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
70
-        add_action( 'getpaid_authenticated_admin_action_reset_tax_rates', array( $this, 'admin_reset_tax_rates' ) );
71
-		add_action( 'getpaid_authenticated_admin_action_create_missing_pages', array( $this, 'admin_create_missing_pages' ) );
72
-		add_action( 'getpaid_authenticated_admin_action_refresh_permalinks', array( $this, 'admin_refresh_permalinks' ) );
73
-		add_action( 'getpaid_authenticated_admin_action_create_missing_tables', array( $this, 'admin_create_missing_tables' ) );
74
-		add_action( 'getpaid_authenticated_admin_action_migrate_old_invoices', array( $this, 'admin_migrate_old_invoices' ) );
75
-		add_action( 'getpaid_authenticated_admin_action_download_customers', array( $this, 'admin_download_customers' ) );
76
-		add_action( 'getpaid_authenticated_admin_action_recalculate_discounts', array( $this, 'admin_recalculate_discounts' ) );
77
-		add_action( 'getpaid_authenticated_admin_action_install_plugin', array( $this, 'admin_install_plugin' ) );
78
-		add_action( 'getpaid_authenticated_admin_action_connect_gateway', array( $this, 'admin_connect_gateway' ) );
79
-		add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ) );
80
-		do_action( 'getpaid_init_admin_hooks', $this );
57
+        add_action('admin_enqueue_scripts', array($this, 'enqeue_scripts'), 9);
58
+        add_filter('admin_body_class', array($this, 'admin_body_class'));
59
+        add_action('admin_init', array($this, 'init_ayecode_connect_helper'));
60
+        add_action('admin_init', array($this, 'activation_redirect'));
61
+        add_action('admin_init', array($this, 'maybe_do_admin_action'));
62
+		add_action('admin_notices', array($this, 'show_notices'));
63
+		add_action('getpaid_authenticated_admin_action_rate_plugin', array($this, 'redirect_to_wordpress_rating_page'));
64
+		add_action('getpaid_authenticated_admin_action_duplicate_form', array($this, 'duplicate_payment_form'));
65
+		add_action('getpaid_authenticated_admin_action_reset_form_stats', array($this, 'reset_form_stats'));
66
+		add_action('getpaid_authenticated_admin_action_duplicate_invoice', array($this, 'duplicate_invoice'));
67
+		add_action('getpaid_authenticated_admin_action_refund_invoice', array($this, 'refund_invoice'));
68
+		add_action('getpaid_authenticated_admin_action_send_invoice', array($this, 'send_customer_invoice'));
69
+		add_action('getpaid_authenticated_admin_action_send_invoice_reminder', array($this, 'send_customer_payment_reminder'));
70
+        add_action('getpaid_authenticated_admin_action_reset_tax_rates', array($this, 'admin_reset_tax_rates'));
71
+		add_action('getpaid_authenticated_admin_action_create_missing_pages', array($this, 'admin_create_missing_pages'));
72
+		add_action('getpaid_authenticated_admin_action_refresh_permalinks', array($this, 'admin_refresh_permalinks'));
73
+		add_action('getpaid_authenticated_admin_action_create_missing_tables', array($this, 'admin_create_missing_tables'));
74
+		add_action('getpaid_authenticated_admin_action_migrate_old_invoices', array($this, 'admin_migrate_old_invoices'));
75
+		add_action('getpaid_authenticated_admin_action_download_customers', array($this, 'admin_download_customers'));
76
+		add_action('getpaid_authenticated_admin_action_recalculate_discounts', array($this, 'admin_recalculate_discounts'));
77
+		add_action('getpaid_authenticated_admin_action_install_plugin', array($this, 'admin_install_plugin'));
78
+		add_action('getpaid_authenticated_admin_action_connect_gateway', array($this, 'admin_connect_gateway'));
79
+		add_filter('admin_footer_text', array($this, 'admin_footer_text'));
80
+		do_action('getpaid_init_admin_hooks', $this);
81 81
 
82 82
 		// Setup/welcome
83
-		if ( ! empty( $_GET['page'] ) ) {
84
-			switch ( sanitize_text_field( $_GET['page'] ) ) {
83
+		if (!empty($_GET['page'])) {
84
+			switch (sanitize_text_field($_GET['page'])) {
85 85
 				case 'gp-setup':
86
-					include_once dirname( __FILE__ ) . '/class-getpaid-admin-setup-wizard.php';
86
+					include_once dirname(__FILE__) . '/class-getpaid-admin-setup-wizard.php';
87 87
 					break;
88 88
 			}
89 89
 		}
@@ -97,37 +97,37 @@  discard block
 block discarded – undo
97 97
 	public function enqeue_scripts() {
98 98
         global $current_screen, $pagenow;
99 99
 
100
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
100
+		$page    = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
101 101
 		$editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
102 102
 
103
-        if ( ! empty( $current_screen->post_type ) ) {
103
+        if (!empty($current_screen->post_type)) {
104 104
 			$page = $current_screen->post_type;
105 105
         }
106 106
 
107 107
         // General styles.
108
-        if ( false !== stripos( $page, 'wpi' ) || false !== stripos( $page, 'getpaid' ) || 'gp-setup' == $page || false !== stripos( $page, 'geodir-tickets' ) ) {
108
+        if (false !== stripos($page, 'wpi') || false !== stripos($page, 'getpaid') || 'gp-setup' == $page || false !== stripos($page, 'geodir-tickets')) {
109 109
 
110 110
             // Styles.
111
-            $version = filemtime( WPINV_PLUGIN_DIR . 'assets/css/admin.css' );
112
-            wp_enqueue_style( 'wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array( 'wp-color-picker' ), $version );
113
-            wp_enqueue_style( 'select2', WPINV_PLUGIN_URL . 'assets/css/select2/select2.min.css', array(), '4.0.13', 'all' );
111
+            $version = filemtime(WPINV_PLUGIN_DIR . 'assets/css/admin.css');
112
+            wp_enqueue_style('wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array('wp-color-picker'), $version);
113
+            wp_enqueue_style('select2', WPINV_PLUGIN_URL . 'assets/css/select2/select2.min.css', array(), '4.0.13', 'all');
114 114
 
115 115
             // Scripts.
116
-            wp_enqueue_script( 'select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full.min.js', array( 'jquery' ), WPINV_VERSION );
116
+            wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full.min.js', array('jquery'), WPINV_VERSION);
117 117
 
118
-            $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin.js' );
119
-            wp_enqueue_script( 'wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array( 'jquery', 'wp-color-picker', 'jquery-ui-tooltip' ), $version );
120
-            wp_localize_script( 'wpinv-admin-script', 'WPInv_Admin', apply_filters( 'wpinv_admin_js_localize', $this->get_admin_i18() ) );
118
+            $version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/admin.js');
119
+            wp_enqueue_script('wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array('jquery', 'wp-color-picker', 'jquery-ui-tooltip'), $version);
120
+            wp_localize_script('wpinv-admin-script', 'WPInv_Admin', apply_filters('wpinv_admin_js_localize', $this->get_admin_i18()));
121 121
 
122 122
         }
123 123
 
124 124
         // Payment form scripts.
125
-		if ( 'wpi_payment_form' == $page && $editing ) {
125
+		if ('wpi_payment_form' == $page && $editing) {
126 126
             $this->load_payment_form_scripts();
127 127
         }
128 128
 
129
-		if ( $page == 'wpinv-subscriptions' ) {
130
-			wp_enqueue_script( 'postbox' );
129
+		if ($page == 'wpinv-subscriptions') {
130
+			wp_enqueue_script('postbox');
131 131
 		}
132 132
 
133 133
     }
@@ -140,31 +140,31 @@  discard block
 block discarded – undo
140 140
         global $post;
141 141
 
142 142
 		$date_range = array(
143
-			'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days',
143
+			'period' => isset($_GET['date_range']) ? sanitize_text_field($_GET['date_range']) : '7_days',
144 144
 		);
145 145
 
146
-		if ( $date_range['period'] == 'custom' ) {
146
+		if ($date_range['period'] == 'custom') {
147 147
 
148
-			if ( isset( $_GET['from'] ) ) {
149
-				$date_range['after'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
148
+			if (isset($_GET['from'])) {
149
+				$date_range['after'] = date('Y-m-d', strtotime(sanitize_text_field($_GET['from']), current_time('timestamp')) - DAY_IN_SECONDS);
150 150
 			}
151 151
 
152
-			if ( isset( $_GET['to'] ) ) {
153
-				$date_range['before'] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
152
+			if (isset($_GET['to'])) {
153
+				$date_range['before'] = date('Y-m-d', strtotime(sanitize_text_field($_GET['to']), current_time('timestamp')) + DAY_IN_SECONDS);
154 154
 			}
155 155
 }
156 156
 
157 157
         $i18n = array(
158
-            'ajax_url'                  => admin_url( 'admin-ajax.php' ),
159
-            'post_ID'                   => isset( $post->ID ) ? $post->ID : '',
160
-			'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
161
-			'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
162
-			'rest_root'                 => esc_url_raw( rest_url() ),
158
+            'ajax_url'                  => admin_url('admin-ajax.php'),
159
+            'post_ID'                   => isset($post->ID) ? $post->ID : '',
160
+			'wpinv_nonce'               => wp_create_nonce('wpinv-nonce'),
161
+			'rest_nonce'                => wp_create_nonce('wp_rest'),
162
+			'rest_root'                 => esc_url_raw(rest_url()),
163 163
 			'date_range'                => $date_range,
164
-            'add_invoice_note_nonce'    => wp_create_nonce( 'add-invoice-note' ),
165
-            'delete_invoice_note_nonce' => wp_create_nonce( 'delete-invoice-note' ),
166
-            'invoice_item_nonce'        => wp_create_nonce( 'invoice-item' ),
167
-            'billing_details_nonce'     => wp_create_nonce( 'get-billing-details' ),
164
+            'add_invoice_note_nonce'    => wp_create_nonce('add-invoice-note'),
165
+            'delete_invoice_note_nonce' => wp_create_nonce('delete-invoice-note'),
166
+            'invoice_item_nonce'        => wp_create_nonce('invoice-item'),
167
+            'billing_details_nonce'     => wp_create_nonce('get-billing-details'),
168 168
             'tax'                       => wpinv_tax_amount(),
169 169
             'discount'                  => 0,
170 170
 			'currency_symbol'           => wpinv_currency_symbol(),
@@ -173,39 +173,39 @@  discard block
 block discarded – undo
173 173
             'thousand_sep'              => wpinv_thousands_separator(),
174 174
             'decimal_sep'               => wpinv_decimal_separator(),
175 175
             'decimals'                  => wpinv_decimals(),
176
-            'save_invoice'              => __( 'Save Invoice', 'invoicing' ),
177
-            'status_publish'            => wpinv_status_nicename( 'publish' ),
178
-            'status_pending'            => wpinv_status_nicename( 'wpi-pending' ),
179
-            'delete_tax_rate'           => __( 'Are you sure you wish to delete this tax rate?', 'invoicing' ),
180
-            'status_pending'            => wpinv_status_nicename( 'wpi-pending' ),
181
-            'FillBillingDetails'        => __( 'Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing' ),
182
-            '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' ),
183
-            'AreYouSure'                => __( 'Are you sure?', 'invoicing' ),
184
-            'errDeleteItem'             => __( 'This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing' ),
185
-            'delete_subscription'       => __( 'Are you sure you want to delete this subscription?', 'invoicing' ),
186
-            'action_edit'               => __( 'Edit', 'invoicing' ),
187
-            'action_cancel'             => __( 'Cancel', 'invoicing' ),
188
-            'item_description'          => __( 'Item Description', 'invoicing' ),
189
-            'invoice_description'       => __( 'Invoice Description', 'invoicing' ),
190
-            'discount_description'      => __( 'Discount Description', 'invoicing' ),
191
-			'searching'                 => __( 'Searching', 'invoicing' ),
192
-			'loading'                   => __( 'Loading...', 'invoicing' ),
193
-			'search_customers'          => __( 'Enter customer name or email', 'invoicing' ),
194
-			'search_items'              => __( 'Enter item name', 'invoicing' ),
195
-			'graphs'                    => array_merge( array( 'refunded_fees', 'refunded_items', 'refunded_subtotal', 'refunded_tax' ), array_keys( wpinv_get_report_graphs() ) ),
176
+            'save_invoice'              => __('Save Invoice', 'invoicing'),
177
+            'status_publish'            => wpinv_status_nicename('publish'),
178
+            'status_pending'            => wpinv_status_nicename('wpi-pending'),
179
+            'delete_tax_rate'           => __('Are you sure you wish to delete this tax rate?', 'invoicing'),
180
+            'status_pending'            => wpinv_status_nicename('wpi-pending'),
181
+            'FillBillingDetails'        => __('Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing'),
182
+            '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'),
183
+            'AreYouSure'                => __('Are you sure?', 'invoicing'),
184
+            'errDeleteItem'             => __('This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing'),
185
+            'delete_subscription'       => __('Are you sure you want to delete this subscription?', 'invoicing'),
186
+            'action_edit'               => __('Edit', 'invoicing'),
187
+            'action_cancel'             => __('Cancel', 'invoicing'),
188
+            'item_description'          => __('Item Description', 'invoicing'),
189
+            'invoice_description'       => __('Invoice Description', 'invoicing'),
190
+            'discount_description'      => __('Discount Description', 'invoicing'),
191
+			'searching'                 => __('Searching', 'invoicing'),
192
+			'loading'                   => __('Loading...', 'invoicing'),
193
+			'search_customers'          => __('Enter customer name or email', 'invoicing'),
194
+			'search_items'              => __('Enter item name', 'invoicing'),
195
+			'graphs'                    => array_merge(array('refunded_fees', 'refunded_items', 'refunded_subtotal', 'refunded_tax'), array_keys(wpinv_get_report_graphs())),
196 196
         );
197 197
 
198
-		if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
198
+		if (!empty($post) && getpaid_is_invoice_post_type($post->post_type)) {
199 199
 
200
-			$invoice              = new WPInv_Invoice( $post );
200
+			$invoice              = new WPInv_Invoice($post);
201 201
 			$i18n['save_invoice'] = sprintf(
202
-				__( 'Save %s', 'invoicing' ),
203
-				ucfirst( $invoice->get_invoice_quote_type() )
202
+				__('Save %s', 'invoicing'),
203
+				ucfirst($invoice->get_invoice_quote_type())
204 204
 			);
205 205
 
206 206
 			$i18n['invoice_description'] = sprintf(
207
-				__( '%s Description', 'invoicing' ),
208
-				ucfirst( $invoice->get_invoice_quote_type() )
207
+				__('%s Description', 'invoicing'),
208
+				ucfirst($invoice->get_invoice_quote_type())
209 209
 			);
210 210
 
211 211
 		}
@@ -219,24 +219,24 @@  discard block
 block discarded – undo
219 219
 	 * @param  string $footer_text
220 220
 	 * @return string
221 221
 	 */
222
-	public function admin_footer_text( $footer_text ) {
222
+	public function admin_footer_text($footer_text) {
223 223
 		global $current_screen;
224 224
 
225
-		$page    = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
225
+		$page = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
226 226
 
227
-        if ( ! empty( $current_screen->post_type ) ) {
227
+        if (!empty($current_screen->post_type)) {
228 228
 			$page = $current_screen->post_type;
229 229
         }
230 230
 
231 231
         // General styles.
232
-        if ( apply_filters( 'getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing() ) && false !== stripos( $page, 'wpi' ) ) {
232
+        if (apply_filters('getpaid_display_admin_footer_text', wpinv_current_user_can_manage_invoicing()) && false !== stripos($page, 'wpi')) {
233 233
 
234 234
 			// Change the footer text
235
-			if ( ! get_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', true ) ) {
235
+			if (!get_user_meta(get_current_user_id(), 'getpaid_admin_footer_text_rated', true)) {
236 236
 
237
-				$rating_url  = esc_url(
237
+				$rating_url = esc_url(
238 238
 					wp_nonce_url(
239
-						admin_url( 'admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin' ),
239
+						admin_url('admin.php?page=wpinv-reports&getpaid-admin-action=rate_plugin'),
240 240
 						'getpaid-nonce',
241 241
 						'getpaid-nonce'
242 242
                     )
@@ -244,7 +244,7 @@  discard block
 block discarded – undo
244 244
 
245 245
 				$footer_text = sprintf(
246 246
 					/* translators: %s: five stars */
247
-					__( 'If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing' ),
247
+					__('If you like <strong>GetPaid</strong>, please leave us a %s rating. A huge thanks in advance!', 'invoicing'),
248 248
 					"<a href='$rating_url'>&#9733;&#9733;&#9733;&#9733;&#9733;</a>"
249 249
 				);
250 250
 
@@ -252,7 +252,7 @@  discard block
 block discarded – undo
252 252
 
253 253
 				$footer_text = sprintf(
254 254
 					/* translators: %s: GetPaid */
255
-					__( 'Thank you for using %s!', 'invoicing' ),
255
+					__('Thank you for using %s!', 'invoicing'),
256 256
 					"<a href='https://wpgetpaid.com/' target='_blank'><strong>GetPaid</strong></a>"
257 257
 				);
258 258
 
@@ -268,8 +268,8 @@  discard block
 block discarded – undo
268 268
 	 * @since  2.0.0
269 269
 	 */
270 270
 	public function redirect_to_wordpress_rating_page() {
271
-		update_user_meta( get_current_user_id(), 'getpaid_admin_footer_text_rated', 1 );
272
-		wp_redirect( 'https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post' );
271
+		update_user_meta(get_current_user_id(), 'getpaid_admin_footer_text_rated', 1);
272
+		wp_redirect('https://wordpress.org/support/plugin/invoicing/reviews?rate=5#new-post');
273 273
 		exit;
274 274
 	}
275 275
 
@@ -280,30 +280,30 @@  discard block
 block discarded – undo
280 280
 	protected function load_payment_form_scripts() {
281 281
         global $post;
282 282
 
283
-        wp_enqueue_script( 'vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.min.js', array(), WPINV_VERSION );
284
-		wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
285
-		wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
283
+        wp_enqueue_script('vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.min.js', array(), WPINV_VERSION);
284
+		wp_enqueue_script('sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION);
285
+		wp_enqueue_script('vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array('sortable', 'vue'), WPINV_VERSION);
286 286
 
287
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
288
-		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 );
287
+		$version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js');
288
+		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);
289 289
 
290 290
 		wp_localize_script(
291 291
             'wpinv-admin-payment-form-script',
292 292
             'wpinvPaymentFormAdmin',
293 293
             array(
294
-				'elements'      => wpinv_get_data( 'payment-form-elements' ),
295
-				'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
294
+				'elements'      => wpinv_get_data('payment-form-elements'),
295
+				'form_elements' => getpaid_get_payment_form_elements($post->ID),
296 296
 				'currency'      => wpinv_currency_symbol(),
297 297
 				'position'      => wpinv_currency_position(),
298 298
 				'decimals'      => (int) wpinv_decimals(),
299 299
 				'thousands_sep' => wpinv_thousands_separator(),
300 300
 				'decimals_sep'  => wpinv_decimal_separator(),
301
-				'form_items'    => gepaid_get_form_items( $post->ID ),
301
+				'form_items'    => gepaid_get_form_items($post->ID),
302 302
 				'is_default'    => $post->ID == wpinv_get_default_payment_form(),
303 303
             )
304 304
         );
305 305
 
306
-        wp_enqueue_script( 'wpinv-admin-payment-form-script' );
306
+        wp_enqueue_script('wpinv-admin-payment-form-script');
307 307
 
308 308
     }
309 309
 
@@ -314,24 +314,24 @@  discard block
 block discarded – undo
314 314
      * @return string
315 315
 	 *
316 316
 	 */
317
-    public function admin_body_class( $classes ) {
317
+    public function admin_body_class($classes) {
318 318
 		global $pagenow, $post, $current_screen;
319 319
 
320
-        $page = isset( $_GET['page'] ) ? sanitize_text_field( $_GET['page'] ) : '';
320
+        $page = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : '';
321 321
 
322
-        if ( ! empty( $current_screen->post_type ) ) {
322
+        if (!empty($current_screen->post_type)) {
323 323
 			$page = $current_screen->post_type;
324 324
         }
325 325
 
326
-        if ( false !== stripos( $page, 'wpi' ) ) {
327
-            $classes .= ' wpi-' . sanitize_key( $page );
326
+        if (false !== stripos($page, 'wpi')) {
327
+            $classes .= ' wpi-' . sanitize_key($page);
328 328
         }
329 329
 
330
-        if ( in_array( $page, wpinv_parse_list( 'wpi_invoice wpi_payment_form wpi_quote' ) ) ) {
330
+        if (in_array($page, wpinv_parse_list('wpi_invoice wpi_payment_form wpi_quote'))) {
331 331
             $classes .= ' wpinv-cpt wpinv';
332 332
 		}
333 333
 
334
-		if ( getpaid_is_invoice_post_type( $page ) ) {
334
+		if (getpaid_is_invoice_post_type($page)) {
335 335
             $classes .= ' getpaid-is-invoice-cpt';
336 336
         }
337 337
 
@@ -350,21 +350,21 @@  discard block
 block discarded – undo
350 350
 				'version'           => WPINV_VERSION,
351 351
 				'support_url'       => 'https://wpgetpaid.com/support/',
352 352
 				'documentation_url' => 'https://docs.wpgetpaid.com/',
353
-				'activated'         => (int) get_option( 'gepaid_installed_on' ),
353
+				'activated'         => (int) get_option('gepaid_installed_on'),
354 354
             )
355 355
         );
356 356
 
357 357
         new AyeCode_Connect_Helper(
358 358
             array(
359
-				'connect_title'     => __( 'WP Invoicing - an AyeCode product!', 'invoicing' ),
360
-				'connect_external'  => __( 'Please confirm you wish to connect your site?', 'invoicing' ),
361
-				'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>' ),
362
-				'connect_button'    => __( 'Connect Site', 'invoicing' ),
363
-				'connecting_button' => __( 'Connecting...', 'invoicing' ),
364
-				'error_localhost'   => __( 'This service will only work with a live domain, not a localhost.', 'invoicing' ),
365
-				'error'             => __( 'Something went wrong, please refresh and try again.', 'invoicing' ),
359
+				'connect_title'     => __('WP Invoicing - an AyeCode product!', 'invoicing'),
360
+				'connect_external'  => __('Please confirm you wish to connect your site?', 'invoicing'),
361
+				'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>'),
362
+				'connect_button'    => __('Connect Site', 'invoicing'),
363
+				'connecting_button' => __('Connecting...', 'invoicing'),
364
+				'error_localhost'   => __('This service will only work with a live domain, not a localhost.', 'invoicing'),
365
+				'error'             => __('Something went wrong, please refresh and try again.', 'invoicing'),
366 366
             ),
367
-            array( 'wpi-addons' )
367
+            array('wpi-addons')
368 368
         );
369 369
 
370 370
     }
@@ -376,20 +376,20 @@  discard block
 block discarded – undo
376 376
 	 */
377 377
 	public function activation_redirect() {
378 378
 
379
-		$redirected = get_option( 'wpinv_redirected_to_settings' );
379
+		$redirected = get_option('wpinv_redirected_to_settings');
380 380
 
381
-		if ( ! empty( $redirected ) || wp_doing_ajax() || ! current_user_can( 'manage_options' ) ) {
381
+		if (!empty($redirected) || wp_doing_ajax() || !current_user_can('manage_options')) {
382 382
 			return;
383 383
 		}
384 384
 
385 385
 		// Bail if activating from network, or bulk
386
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
386
+		if (is_network_admin() || isset($_GET['activate-multi'])) {
387 387
 			return;
388 388
 		}
389 389
 
390
-	    update_option( 'wpinv_redirected_to_settings', 1 );
390
+	    update_option('wpinv_redirected_to_settings', 1);
391 391
 
392
-        wp_safe_redirect( admin_url( 'index.php?page=gp-setup' ) );
392
+        wp_safe_redirect(admin_url('index.php?page=gp-setup'));
393 393
         exit;
394 394
 
395 395
 	}
@@ -398,10 +398,10 @@  discard block
 block discarded – undo
398 398
      * Fires an admin action after verifying that a user can fire them.
399 399
      */
400 400
     public function maybe_do_admin_action() {
401
-        if ( isset( $_REQUEST['getpaid-admin-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) && wpinv_current_user_can( sanitize_text_field( $_REQUEST['getpaid-admin-action'] ), $_REQUEST ) ) {
402
-            $key = sanitize_key( $_REQUEST['getpaid-admin-action'] );
401
+        if (isset($_REQUEST['getpaid-admin-action']) && isset($_REQUEST['getpaid-nonce']) && wp_verify_nonce($_REQUEST['getpaid-nonce'], 'getpaid-nonce') && wpinv_current_user_can(sanitize_text_field($_REQUEST['getpaid-admin-action']), $_REQUEST)) {
402
+            $key = sanitize_key($_REQUEST['getpaid-admin-action']);
403 403
 
404
-            do_action( "getpaid_authenticated_admin_action_$key", $_REQUEST );
404
+            do_action("getpaid_authenticated_admin_action_$key", $_REQUEST);
405 405
         }
406 406
     }
407 407
 
@@ -410,24 +410,24 @@  discard block
 block discarded – undo
410 410
 	 *
411 411
 	 * @param array $args
412 412
      */
413
-    public function duplicate_invoice( $args ) {
413
+    public function duplicate_invoice($args) {
414 414
 
415
-		if ( empty( $args['invoice_id'] ) ) {
415
+		if (empty($args['invoice_id'])) {
416 416
 			return;
417 417
 		}
418 418
 
419
-		$invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
419
+		$invoice = new WPInv_Invoice((int) $args['invoice_id']);
420 420
 
421
-		if ( ! $invoice->exists() ) {
421
+		if (!$invoice->exists()) {
422 422
 			return;
423 423
 		}
424 424
 
425
-		$new_invoice = getpaid_duplicate_invoice( $invoice );
425
+		$new_invoice = getpaid_duplicate_invoice($invoice);
426 426
 		$new_invoice->save();
427 427
 
428
-		if ( $new_invoice->exists() ) {
428
+		if ($new_invoice->exists()) {
429 429
 
430
-			getpaid_admin()->show_success( __( 'Invoice duplicated successfully.', 'invoicing' ) );
430
+			getpaid_admin()->show_success(__('Invoice duplicated successfully.', 'invoicing'));
431 431
 
432 432
 			wp_safe_redirect(
433 433
 				add_query_arg(
@@ -435,14 +435,14 @@  discard block
 block discarded – undo
435 435
 						'action' => 'edit',
436 436
 						'post'   => $new_invoice->get_id(),
437 437
 					),
438
-					admin_url( 'post.php' )
438
+					admin_url('post.php')
439 439
 				)
440 440
 			);
441 441
 			exit;
442 442
 
443 443
 		}
444 444
 
445
-		getpaid_admin()->show_error( __( 'There was an error duplicating this invoice. Please try again.', 'invoicing' ) );
445
+		getpaid_admin()->show_error(__('There was an error duplicating this invoice. Please try again.', 'invoicing'));
446 446
 
447 447
 	}
448 448
 
@@ -451,40 +451,40 @@  discard block
 block discarded – undo
451 451
 	 *
452 452
 	 * @param array $args
453 453
      */
454
-    public function refund_invoice( $args ) {
454
+    public function refund_invoice($args) {
455 455
 
456
-		if ( empty( $args['invoice_id'] ) ) {
456
+		if (empty($args['invoice_id'])) {
457 457
 			return;
458 458
 		}
459 459
 
460
-		$invoice = new WPInv_Invoice( (int) $args['invoice_id'] );
460
+		$invoice = new WPInv_Invoice((int) $args['invoice_id']);
461 461
 
462
-		if ( ! $invoice->exists() || $invoice->is_refunded() ) {
462
+		if (!$invoice->exists() || $invoice->is_refunded()) {
463 463
 			return;
464 464
 		}
465 465
 
466 466
 		$invoice->refund();
467 467
 
468 468
 		// Refund remotely.
469
-		if ( getpaid_payment_gateway_supports( $invoice->get_gateway(), 'refunds' ) && ! empty( $args['getpaid_refund_remote'] ) ) {
470
-			do_action( 'getpaid_refund_invoice_remotely', $invoice );
469
+		if (getpaid_payment_gateway_supports($invoice->get_gateway(), 'refunds') && !empty($args['getpaid_refund_remote'])) {
470
+			do_action('getpaid_refund_invoice_remotely', $invoice);
471 471
 		}
472 472
 
473 473
 		// Cancel subscriptions.
474
-		if ( ! empty( $args['getpaid_cancel_subscription'] ) ) {
475
-			$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
474
+		if (!empty($args['getpaid_cancel_subscription'])) {
475
+			$subscriptions = getpaid_get_invoice_subscriptions($invoice);
476 476
 
477
-			if ( ! empty( $subscriptions ) ) {
478
-				if ( ! is_array( $subscriptions ) ) {
479
-					$subscriptions = array( $subscriptions );
477
+			if (!empty($subscriptions)) {
478
+				if (!is_array($subscriptions)) {
479
+					$subscriptions = array($subscriptions);
480 480
 				}
481 481
 
482
-				foreach ( $subscriptions as $subscription ) {
482
+				foreach ($subscriptions as $subscription) {
483 483
 					$subscription->cancel();
484 484
 					$invoice->add_system_note(
485 485
 						sprintf(
486 486
 							// translators: %s: subscription ID.
487
-							__( 'Subscription #%s cancelled', 'invoicing' ),
487
+							__('Subscription #%s cancelled', 'invoicing'),
488 488
 							$subscription->get_id()
489 489
 						)
490 490
 					);
@@ -493,11 +493,11 @@  discard block
 block discarded – undo
493 493
 		}
494 494
 
495 495
 		// Add notice.
496
-		$this->show_success( __( 'Invoice refunded successfully.', 'invoicing' ) );
496
+		$this->show_success(__('Invoice refunded successfully.', 'invoicing'));
497 497
 
498 498
 		// Redirect.
499 499
 		wp_safe_redirect(
500
-			remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id', 'getpaid_cancel_subscription', 'getpaid_refund_remote' ) )
500
+			remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id', 'getpaid_cancel_subscription', 'getpaid_refund_remote'))
501 501
 		);
502 502
 	}
503 503
 
@@ -506,34 +506,34 @@  discard block
 block discarded – undo
506 506
 	 *
507 507
 	 * @param array $args
508 508
      */
509
-    public function duplicate_payment_form( $args ) {
509
+    public function duplicate_payment_form($args) {
510 510
 
511
-		if ( empty( $args['form_id'] ) ) {
511
+		if (empty($args['form_id'])) {
512 512
 			return;
513 513
 		}
514 514
 
515
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
515
+		$form = new GetPaid_Payment_Form((int) $args['form_id']);
516 516
 
517
-		if ( ! $form->exists() ) {
517
+		if (!$form->exists()) {
518 518
 			return;
519 519
 		}
520 520
 
521 521
 		$new_form = new GetPaid_Payment_Form();
522
-		$new_form->set_author( $form->get_author( 'edit' ) );
523
-		$new_form->set_name( $form->get_name( 'edit' ) . __( '(copy)', 'invoicing' ) );
524
-		$new_form->set_elements( $form->get_elements( 'edit' ) );
525
-		$new_form->set_items( $form->get_items( 'edit' ) );
522
+		$new_form->set_author($form->get_author('edit'));
523
+		$new_form->set_name($form->get_name('edit') . __('(copy)', 'invoicing'));
524
+		$new_form->set_elements($form->get_elements('edit'));
525
+		$new_form->set_items($form->get_items('edit'));
526 526
 		$new_form->save();
527 527
 
528
-		if ( $new_form->exists() ) {
529
-			$this->show_success( __( 'Form duplicated successfully', 'invoicing' ) );
530
-			$url = get_edit_post_link( $new_form->get_id(), 'edit' );
528
+		if ($new_form->exists()) {
529
+			$this->show_success(__('Form duplicated successfully', 'invoicing'));
530
+			$url = get_edit_post_link($new_form->get_id(), 'edit');
531 531
 		} else {
532
-			$this->show_error( __( 'Unable to duplicate form', 'invoicing' ) );
533
-			$url = remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) );
532
+			$this->show_error(__('Unable to duplicate form', 'invoicing'));
533
+			$url = remove_query_arg(array('getpaid-admin-action', 'form_id', 'getpaid-nonce'));
534 534
 		}
535 535
 
536
-		wp_redirect( $url );
536
+		wp_redirect($url);
537 537
 		exit;
538 538
 	}
539 539
 
@@ -542,27 +542,27 @@  discard block
 block discarded – undo
542 542
 	 *
543 543
 	 * @param array $args
544 544
      */
545
-    public function reset_form_stats( $args ) {
545
+    public function reset_form_stats($args) {
546 546
 
547
-		if ( empty( $args['form_id'] ) ) {
547
+		if (empty($args['form_id'])) {
548 548
 			return;
549 549
 		}
550 550
 
551
-		$form = new GetPaid_Payment_Form( (int) $args['form_id'] );
551
+		$form = new GetPaid_Payment_Form((int) $args['form_id']);
552 552
 
553
-		if ( ! $form->exists() ) {
553
+		if (!$form->exists()) {
554 554
 			return;
555 555
 		}
556 556
 
557
-		$form->set_earned( 0 );
558
-		$form->set_refunded( 0 );
559
-		$form->set_cancelled( 0 );
560
-		$form->set_failed( 0 );
557
+		$form->set_earned(0);
558
+		$form->set_refunded(0);
559
+		$form->set_cancelled(0);
560
+		$form->set_failed(0);
561 561
 		$form->save();
562 562
 
563
-		$this->show_success( __( 'Form stats reset successfully', 'invoicing' ) );
563
+		$this->show_success(__('Form stats reset successfully', 'invoicing'));
564 564
 
565
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'form_id', 'getpaid-nonce' ) ) );
565
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'form_id', 'getpaid-nonce')));
566 566
 		exit;
567 567
 	}
568 568
 
@@ -571,9 +571,9 @@  discard block
 block discarded – undo
571 571
 	 *
572 572
 	 * @param array $args
573 573
      */
574
-    public function send_customer_invoice( $args ) {
575
-		getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ), true );
576
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
574
+    public function send_customer_invoice($args) {
575
+		getpaid()->get('invoice_emails')->user_invoice(new WPInv_Invoice($args['invoice_id']), true);
576
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
577 577
 		exit;
578 578
 	}
579 579
 
@@ -582,16 +582,16 @@  discard block
 block discarded – undo
582 582
 	 *
583 583
 	 * @param array $args
584 584
      */
585
-    public function send_customer_payment_reminder( $args ) {
586
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
585
+    public function send_customer_payment_reminder($args) {
586
+		$sent = getpaid()->get('invoice_emails')->force_send_overdue_notice(new WPInv_Invoice($args['invoice_id']));
587 587
 
588
-		if ( $sent ) {
589
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
588
+		if ($sent) {
589
+			$this->show_success(__('Payment reminder was successfully sent to the customer', 'invoicing'));
590 590
 		} else {
591
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
591
+			$this->show_error(__('Could not sent payment reminder to the customer', 'invoicing'));
592 592
 		}
593 593
 
594
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
594
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
595 595
 		exit;
596 596
 	}
597 597
 
@@ -601,8 +601,8 @@  discard block
 block discarded – undo
601 601
      */
602 602
     public function admin_reset_tax_rates() {
603 603
 
604
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
605
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
604
+		update_option('wpinv_tax_rates', wpinv_get_data('tax-rates'));
605
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
606 606
 		exit;
607 607
 
608 608
 	}
@@ -614,8 +614,8 @@  discard block
 block discarded – undo
614 614
     public function admin_create_missing_pages() {
615 615
 		$installer = new GetPaid_Installer();
616 616
 		$installer->create_pages();
617
-		$this->show_success( __( 'GetPaid pages updated.', 'invoicing' ) );
618
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
617
+		$this->show_success(__('GetPaid pages updated.', 'invoicing'));
618
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
619 619
 		exit;
620 620
 	}
621 621
 
@@ -624,8 +624,8 @@  discard block
 block discarded – undo
624 624
 	 */
625 625
 	public function admin_refresh_permalinks() {
626 626
 		flush_rewrite_rules();
627
-		$this->show_success( __( 'Permalinks refreshed.', 'invoicing' ) );
628
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
627
+		$this->show_success(__('Permalinks refreshed.', 'invoicing'));
628
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
629 629
 		exit;
630 630
 	}
631 631
 
@@ -639,13 +639,13 @@  discard block
 block discarded – undo
639 639
 		GetPaid_Installer::create_db_tables();
640 640
 		GetPaid_Installer::migrate_old_customers();
641 641
 
642
-		if ( '' !== $wpdb->last_error ) {
643
-			$this->show_error( __( 'Your GetPaid tables have been updated:', 'invoicing' ) . ' ' . $wpdb->last_error );
642
+		if ('' !== $wpdb->last_error) {
643
+			$this->show_error(__('Your GetPaid tables have been updated:', 'invoicing') . ' ' . $wpdb->last_error);
644 644
 		} else {
645
-			$this->show_success( __( 'Your GetPaid tables have been updated.', 'invoicing' ) );
645
+			$this->show_success(__('Your GetPaid tables have been updated.', 'invoicing'));
646 646
 		}
647 647
 
648
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
648
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
649 649
 		exit;
650 650
 	}
651 651
 
@@ -660,10 +660,10 @@  discard block
 block discarded – undo
660 660
 		$installer->migrate_old_invoices();
661 661
 
662 662
 		// Show an admin message.
663
-		$this->show_success( __( 'Your invoices have been migrated.', 'invoicing' ) );
663
+		$this->show_success(__('Your invoices have been migrated.', 'invoicing'));
664 664
 
665 665
 		// Redirect the admin.
666
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
666
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
667 667
 		exit;
668 668
 
669 669
 	}
@@ -674,35 +674,35 @@  discard block
 block discarded – undo
674 674
      */
675 675
     public function admin_download_customers() {
676 676
 
677
-		$output = fopen( 'php://output', 'w' );
677
+		$output = fopen('php://output', 'w');
678 678
 
679
-		if ( false === $output ) {
680
-			wp_die( esc_html__( 'Unsupported server', 'invoicing' ), 500 );
679
+		if (false === $output) {
680
+			wp_die(esc_html__('Unsupported server', 'invoicing'), 500);
681 681
 		}
682 682
 
683
-		header( 'Content-Type:text/csv' );
684
-		header( 'Content-Disposition:attachment;filename=customers.csv' );
683
+		header('Content-Type:text/csv');
684
+		header('Content-Disposition:attachment;filename=customers.csv');
685 685
 
686 686
 		/** @var GetPaid_Customer[] $customers */
687
-		$customers = getpaid_get_customers( array( 'number' => -1 ) );
688
-		$columns   = array_keys( GetPaid_Customer_Data_Store::get_database_fields() );
687
+		$customers = getpaid_get_customers(array('number' => -1));
688
+		$columns   = array_keys(GetPaid_Customer_Data_Store::get_database_fields());
689 689
 
690 690
 		// Output the csv column headers.
691
-		fputcsv( $output, $columns );
691
+		fputcsv($output, $columns);
692 692
 
693 693
 		// Loop through
694
-		foreach ( $customers as $customer ) {
694
+		foreach ($customers as $customer) {
695 695
 
696
-			$row  = array();
696
+			$row = array();
697 697
 
698
-			foreach ( $columns as $column ) {
699
-				$row[]  = (string) maybe_serialize( $customer->get( $column, 'edit' ) );
698
+			foreach ($columns as $column) {
699
+				$row[] = (string) maybe_serialize($customer->get($column, 'edit'));
700 700
 			}
701 701
 
702
-			fputcsv( $output, $row );
702
+			fputcsv($output, $row);
703 703
 		}
704 704
 
705
-		fclose( $output );
705
+		fclose($output);
706 706
 		exit;
707 707
 
708 708
 	}
@@ -712,27 +712,27 @@  discard block
 block discarded – undo
712 712
 	 *
713 713
 	 * @param array $data
714 714
      */
715
-    public function admin_install_plugin( $data ) {
715
+    public function admin_install_plugin($data) {
716 716
 
717
-		if ( ! empty( $data['plugins'] ) ) {
717
+		if (!empty($data['plugins'])) {
718 718
 			include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
719 719
 			wp_cache_flush();
720 720
 
721
-			foreach ( $data['plugins'] as $slug => $file ) {
722
-				$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip' );
723
-				$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
724
-				$installed  = $upgrader->install( $plugin_zip );
721
+			foreach ($data['plugins'] as $slug => $file) {
722
+				$plugin_zip = esc_url('https://downloads.wordpress.org/plugin/' . $slug . '.latest-stable.zip');
723
+				$upgrader   = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
724
+				$installed  = $upgrader->install($plugin_zip);
725 725
 
726
-				if ( ! is_wp_error( $installed ) && $installed ) {
727
-					activate_plugin( $file, '', false, true );
726
+				if (!is_wp_error($installed) && $installed) {
727
+					activate_plugin($file, '', false, true);
728 728
 				} else {
729
-					wpinv_error_log( $upgrader->skin->get_upgrade_messages(), false );
729
+					wpinv_error_log($upgrader->skin->get_upgrade_messages(), false);
730 730
 				}
731 731
 }
732 732
 }
733 733
 
734
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( $data['redirect'] ) : admin_url( 'plugins.php' );
735
-		wp_safe_redirect( $redirect );
734
+		$redirect = isset($data['redirect']) ? esc_url_raw($data['redirect']) : admin_url('plugins.php');
735
+		wp_safe_redirect($redirect);
736 736
 		exit;
737 737
 
738 738
 	}
@@ -742,41 +742,41 @@  discard block
 block discarded – undo
742 742
 	 *
743 743
 	 * @param array $data
744 744
      */
745
-    public function admin_connect_gateway( $data ) {
745
+    public function admin_connect_gateway($data) {
746 746
 
747
-		if ( ! empty( $data['plugin'] ) ) {
747
+		if (!empty($data['plugin'])) {
748 748
 
749
-			$gateway     = sanitize_key( $data['plugin'] );
750
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
749
+			$gateway     = sanitize_key($data['plugin']);
750
+			$connect_url = apply_filters("getpaid_get_{$gateway}_connect_url", false, $data);
751 751
 
752
-			if ( ! empty( $connect_url ) ) {
753
-				wp_redirect( $connect_url );
752
+			if (!empty($connect_url)) {
753
+				wp_redirect($connect_url);
754 754
 				exit;
755 755
 			}
756 756
 
757
-			if ( 'stripe' == $data['plugin'] ) {
757
+			if ('stripe' == $data['plugin']) {
758 758
 				require_once ABSPATH . 'wp-admin/includes/plugin.php';
759 759
 				include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
760 760
 				wp_cache_flush();
761 761
 
762
-				if ( ! array_key_exists( 'getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins() ) ) {
763
-					$plugin_zip = esc_url( 'https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip' );
764
-					$upgrader   = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
765
-					$upgrader->install( $plugin_zip );
762
+				if (!array_key_exists('getpaid-stripe-payments/getpaid-stripe-payments.php', get_plugins())) {
763
+					$plugin_zip = esc_url('https://downloads.wordpress.org/plugin/getpaid-stripe-payments.latest-stable.zip');
764
+					$upgrader   = new Plugin_Upgrader(new Automatic_Upgrader_Skin());
765
+					$upgrader->install($plugin_zip);
766 766
 				}
767 767
 
768
-				activate_plugin( 'getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true );
768
+				activate_plugin('getpaid-stripe-payments/getpaid-stripe-payments.php', '', false, true);
769 769
 			}
770 770
 
771
-			$connect_url = apply_filters( "getpaid_get_{$gateway}_connect_url", false, $data );
772
-			if ( ! empty( $connect_url ) ) {
773
-				wp_redirect( $connect_url );
771
+			$connect_url = apply_filters("getpaid_get_{$gateway}_connect_url", false, $data);
772
+			if (!empty($connect_url)) {
773
+				wp_redirect($connect_url);
774 774
 				exit;
775 775
 			}
776 776
 }
777 777
 
778
-		$redirect = isset( $data['redirect'] ) ? esc_url_raw( urldecode( $data['redirect'] ) ) : admin_url( 'admin.php?page=wpinv-settings&tab=gateways' );
779
-		wp_safe_redirect( $redirect );
778
+		$redirect = isset($data['redirect']) ? esc_url_raw(urldecode($data['redirect'])) : admin_url('admin.php?page=wpinv-settings&tab=gateways');
779
+		wp_safe_redirect($redirect);
780 780
 		exit;
781 781
 
782 782
 	}
@@ -790,35 +790,35 @@  discard block
 block discarded – undo
790 790
 
791 791
 		// Fetch all invoices that have discount codes.
792 792
 		$table    = $wpdb->prefix . 'getpaid_invoices';
793
-		$invoices = $wpdb->get_col( "SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''" );
793
+		$invoices = $wpdb->get_col("SELECT `post_id` FROM `$table` WHERE `discount` = 0 && `discount_code` <> ''");
794 794
 
795
-		foreach ( $invoices as $invoice ) {
795
+		foreach ($invoices as $invoice) {
796 796
 
797
-			$invoice = new WPInv_Invoice( $invoice );
797
+			$invoice = new WPInv_Invoice($invoice);
798 798
 
799
-			if ( ! $invoice->exists() ) {
799
+			if (!$invoice->exists()) {
800 800
 				continue;
801 801
 			}
802 802
 
803 803
 			// Abort if the discount does not exist or does not apply here.
804
-			$discount = new WPInv_Discount( $invoice->get_discount_code() );
805
-			if ( ! $discount->exists() ) {
804
+			$discount = new WPInv_Discount($invoice->get_discount_code());
805
+			if (!$discount->exists()) {
806 806
 				continue;
807 807
 			}
808 808
 
809
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
809
+			$invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
810 810
 			$invoice->recalculate_total();
811 811
 
812
-			if ( $invoice->get_total_discount() > 0 ) {
812
+			if ($invoice->get_total_discount() > 0) {
813 813
 				$invoice->save();
814 814
 			}
815 815
 }
816 816
 
817 817
 		// Show an admin message.
818
-		$this->show_success( __( 'Discounts have been recalculated.', 'invoicing' ) );
818
+		$this->show_success(__('Discounts have been recalculated.', 'invoicing'));
819 819
 
820 820
 		// Redirect the admin.
821
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
821
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
822 822
 		exit;
823 823
 
824 824
 	}
@@ -830,8 +830,8 @@  discard block
 block discarded – undo
830 830
      * @return array
831 831
 	 */
832 832
 	public function get_notices() {
833
-		$notices = get_option( 'wpinv_admin_notices' );
834
-        return is_array( $notices ) ? $notices : array();
833
+		$notices = get_option('wpinv_admin_notices');
834
+        return is_array($notices) ? $notices : array();
835 835
 	}
836 836
 
837 837
 	/**
@@ -841,7 +841,7 @@  discard block
 block discarded – undo
841 841
      * @return array
842 842
 	 */
843 843
 	public function has_notices() {
844
-		return count( $this->get_notices() ) > 0;
844
+		return count($this->get_notices()) > 0;
845 845
 	}
846 846
 
847 847
 	/**
@@ -851,7 +851,7 @@  discard block
 block discarded – undo
851 851
 	 * @since       1.0.19
852 852
 	 */
853 853
 	public function clear_notices() {
854
-		delete_option( 'wpinv_admin_notices' );
854
+		delete_option('wpinv_admin_notices');
855 855
 	}
856 856
 
857 857
 	/**
@@ -860,16 +860,16 @@  discard block
 block discarded – undo
860 860
 	 * @access      public
861 861
 	 * @since       1.0.19
862 862
 	 */
863
-	public function save_notice( $type, $message ) {
863
+	public function save_notice($type, $message) {
864 864
 		$notices = $this->get_notices();
865 865
 
866
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ] ) ) {
867
-			$notices[ $type ] = array();
866
+		if (empty($notices[$type]) || !is_array($notices[$type])) {
867
+			$notices[$type] = array();
868 868
 		}
869 869
 
870
-		$notices[ $type ][] = $message;
870
+		$notices[$type][] = $message;
871 871
 
872
-		update_option( 'wpinv_admin_notices', $notices );
872
+		update_option('wpinv_admin_notices', $notices);
873 873
 	}
874 874
 
875 875
 	/**
@@ -879,8 +879,8 @@  discard block
 block discarded – undo
879 879
 	 * @access      public
880 880
 	 * @since       1.0.19
881 881
 	 */
882
-	public function show_success( $msg ) {
883
-		$this->save_notice( 'success', $msg );
882
+	public function show_success($msg) {
883
+		$this->save_notice('success', $msg);
884 884
 	}
885 885
 
886 886
 	/**
@@ -890,8 +890,8 @@  discard block
 block discarded – undo
890 890
 	 * @param       string $msg The message to qeue.
891 891
 	 * @since       1.0.19
892 892
 	 */
893
-	public function show_error( $msg ) {
894
-		$this->save_notice( 'error', $msg );
893
+	public function show_error($msg) {
894
+		$this->save_notice('error', $msg);
895 895
 	}
896 896
 
897 897
 	/**
@@ -901,8 +901,8 @@  discard block
 block discarded – undo
901 901
 	 * @param       string $msg The message to qeue.
902 902
 	 * @since       1.0.19
903 903
 	 */
904
-	public function show_warning( $msg ) {
905
-		$this->save_notice( 'warning', $msg );
904
+	public function show_warning($msg) {
905
+		$this->save_notice('warning', $msg);
906 906
 	}
907 907
 
908 908
 	/**
@@ -912,8 +912,8 @@  discard block
 block discarded – undo
912 912
 	 * @param       string $msg The message to qeue.
913 913
 	 * @since       1.0.19
914 914
 	 */
915
-	public function show_info( $msg ) {
916
-		$this->save_notice( 'info', $msg );
915
+	public function show_info($msg) {
916
+		$this->save_notice('info', $msg);
917 917
 	}
918 918
 
919 919
 	/**
@@ -927,29 +927,29 @@  discard block
 block discarded – undo
927 927
         $notices = $this->get_notices();
928 928
         $this->clear_notices();
929 929
 
930
-		foreach ( $notices as $type => $messages ) {
930
+		foreach ($notices as $type => $messages) {
931 931
 
932
-			if ( ! is_array( $messages ) ) {
932
+			if (!is_array($messages)) {
933 933
 				continue;
934 934
 			}
935 935
 
936
-            $type  = esc_attr( $type );
937
-			foreach ( $messages as $message ) {
938
-				echo wp_kses_post( "<div class='notice notice-$type is-dismissible'><p>$message</p></div>" );
936
+            $type = esc_attr($type);
937
+			foreach ($messages as $message) {
938
+				echo wp_kses_post("<div class='notice notice-$type is-dismissible'><p>$message</p></div>");
939 939
             }
940 940
 }
941 941
 
942
-		foreach ( array( 'checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page' ) as $page ) {
942
+		foreach (array('checkout_page', 'invoice_history_page', 'success_page', 'failure_page', 'invoice_subscription_page') as $page) {
943 943
 
944
-			if ( ! is_numeric( wpinv_get_option( $page, false ) ) ) {
945
-				$url     = wp_nonce_url(
946
-					add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ),
944
+			if (!is_numeric(wpinv_get_option($page, false))) {
945
+				$url = wp_nonce_url(
946
+					add_query_arg('getpaid-admin-action', 'create_missing_pages'),
947 947
 					'getpaid-nonce',
948 948
 					'getpaid-nonce'
949 949
 				);
950
-				$message  = __( 'Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing' );
951
-				$message2 = __( 'Generate Pages', 'invoicing' );
952
-				echo wp_kses_post( "<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>" );
950
+				$message  = __('Some GetPaid pages are missing. To use GetPaid without any issues, click the button below to generate the missing pages.', 'invoicing');
951
+				$message2 = __('Generate Pages', 'invoicing');
952
+				echo wp_kses_post("<div class='notice notice-warning is-dismissible'><p>$message<br><br><a href='$url' class='button button-primary'>$message2</a></p></div>");
953 953
 				break;
954 954
 			}
955 955
 }
Please login to merge, or discard this patch.
includes/gateways/class-getpaid-paypal-api.php 2 patches
Indentation   +197 added lines, -197 removed lines patch added patch discarded remove patch
@@ -10,211 +10,211 @@
 block discarded – undo
10 10
  */
11 11
 class GetPaid_PayPal_API {
12 12
 
13
-	/**
14
-	 * Retrieves the bearer token.
15
-	 *
13
+    /**
14
+     * Retrieves the bearer token.
15
+     *
16 16
      * @return string|\WP_Error
17
-	 */
18
-	public static function get_token( $mode = 'live' ) {
17
+     */
18
+    public static function get_token( $mode = 'live' ) {
19 19
 
20
-		$token = get_transient( 'getpaid_paypal_' . $mode . '_token' );
20
+        $token = get_transient( 'getpaid_paypal_' . $mode . '_token' );
21 21
 
22
-		if ( $token ) {
23
-			return $token;
24
-		}
22
+        if ( $token ) {
23
+            return $token;
24
+        }
25 25
 
26
-		$client_id  = 'live' === $mode ? wpinv_get_option( 'paypal_client_id' ) : wpinv_get_option( 'paypal_sandbox_client_id' );
27
-		$secret_key = 'live' === $mode ? wpinv_get_option( 'paypal_secret_key' ) : wpinv_get_option( 'paypal_sandbox_secret_key' );
28
-		$url        = self::get_api_url( 'v1/oauth2/token?grant_type=client_credentials', $mode );
26
+        $client_id  = 'live' === $mode ? wpinv_get_option( 'paypal_client_id' ) : wpinv_get_option( 'paypal_sandbox_client_id' );
27
+        $secret_key = 'live' === $mode ? wpinv_get_option( 'paypal_secret_key' ) : wpinv_get_option( 'paypal_sandbox_secret_key' );
28
+        $url        = self::get_api_url( 'v1/oauth2/token?grant_type=client_credentials', $mode );
29 29
 
30 30
         if ( empty( $client_id ) || empty( $secret_key ) ) {
31 31
             return new \WP_Error( 'invalid_request', 'Missing client id or secret key.', array( 'status' => 400 ) );
32 32
         }
33 33
 
34
-		$args   = array(
35
-			'method'  => 'POST',
36
-			'timeout' => 30,
37
-			'headers' => array(
38
-				'Authorization' => 'Basic ' . base64_encode( $client_id . ':' . $secret_key ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
39
-				'Accept'        => 'application/json',
40
-				'Content-Type'  => 'application/x-www-form-urlencoded',
41
-			),
42
-		);
43
-
44
-		$response = self::response_or_error( wp_remote_post( $url, $args ) );
45
-
46
-		if ( is_wp_error( $response ) ) {
47
-			return $response;
48
-		}
49
-
50
-		if ( ! isset( $response->access_token ) ) {
51
-			return new \WP_Error( 'invalid_request', 'Could not create token.', array( 'status' => 400 ) );
52
-		}
53
-
54
-		set_transient( 'getpaid_paypal_' . $mode . '_token', $response->access_token, $response->expires_in - 600 );
55
-		return $response->access_token;
56
-	}
57
-
58
-	/**
59
-	 * Retrieves the PayPal API URL.
60
-	 *
61
-	 * @param string $endpoint
62
-	 * @return string
63
-	 */
64
-	public static function get_api_url( $endpoint = '', $mode = 'live'  ) {
65
-		$endpoint = ltrim( $endpoint, '/' );
66
-		return 'live' === $mode ? 'https://api-m.paypal.com/' . $endpoint : 'https://api-m.sandbox.paypal.com/' . $endpoint;
67
-	}
68
-
69
-	/**
70
-	 * Handles a post request.
71
-	 *
72
-	 * @param string $path The path to the endpoint.
73
-	 * @param mixed $data The data to send.
74
-	 * @param string $method The method to use.
75
-	 *
76
-	 * @return true|\WP_Error
77
-	 */
78
-	public static function post( $path, $data, $mode = 'live', $method = 'POST' ) {
79
-
80
-		$access_token = self::get_token( $mode );
81
-
82
-		if ( is_wp_error( $access_token ) ) {
83
-			return $access_token;
84
-		}
85
-
86
-		$url  = self::get_api_url( $path, $mode );
87
-		$args = array(
88
-			'method'  => $method,
89
-			'headers' => array(
90
-				'Authorization' => 'Bearer ' . $access_token,
91
-				'Content-Type'  => 'application/json',
92
-			),
93
-			'body'    => wp_json_encode( $data ),
94
-		);
95
-
96
-		return self::response_or_error( wp_remote_post( $url, $args ) );
97
-	}
98
-
99
-	/**
100
-	 * Handles a get request.
101
-	 *
102
-	 * @param string $path The path to the endpoint.
103
-	 * @param string $method
104
-	 * @return object|\WP_Error
105
-	 */
106
-	public static function get( $path, $mode = 'live', $method = 'GET' ) {
107
-
108
-		$access_token = self::get_token( $mode );
109
-
110
-		if ( is_wp_error( $access_token ) ) {
111
-			return $access_token;
112
-		}
113
-
114
-		$url  = self::get_api_url( $path, $mode );
115
-		$args = array(
116
-			'method'  => $method,
117
-			'headers' => array(
118
-				'Authorization' => 'Bearer ' . $access_token,
119
-			),
120
-		);
121
-
122
-		return self::response_or_error( wp_remote_get( $url, $args ) );
123
-	}
124
-
125
-	/**
126
-	 * Returns the response body
127
-	 *
128
-	 * @since 1.0.0
129
-	 * @version 1.0.0
130
-	 * @param \WP_Error|array $response
131
-	 * @return \WP_Error|object
132
-	 */
133
-	public static function response_or_error( $response ) {
134
-
135
-		if ( is_wp_error( $response ) ) {
136
-			return new \WP_Error( 'paypal_error', __( 'There was a problem connecting to the PayPal API endpoint.', 'invoicing' ) );
137
-		}
138
-
139
-		if ( empty( $response['body'] ) ) {
140
-			return true;
141
-		}
142
-
143
-		$response_body = json_decode( wp_remote_retrieve_body( $response ) );
144
-
145
-		if ( wp_remote_retrieve_response_code( $response ) > 299 ) {
146
-
147
-			// Normal errors.
148
-			if ( $response_body && isset( $response_body->message ) ) {
149
-				$error_message = $response_body->message;
150
-
151
-			// Identity errors.
152
-			} elseif ( $response_body && isset( $response_body->error_description ) ) {
153
-				$error_message = $response_body->error_description;
154
-				return new \WP_Error( 'paypal_error', wp_kses_post( $response_body->error_description ) );
155
-			} else {
156
-				$error_message = __( 'There was an error connecting to the PayPal API endpoint.', 'invoicing' );
157
-			}
158
-
159
-			return new \WP_Error( 'paypal_error', $error_message );
160
-		}
161
-
162
-		return $response_body;
163
-	}
164
-
165
-	/**
166
-	 * Fetches an order.
167
-	 *
168
-	 * @since 1.0.0
169
-	 * @version 1.0.0
170
-	 * @param string $order_id
171
-	 * @link https://developer.paypal.com/docs/api/orders/v2/#orders_get
172
-	 * @return \WP_Error|object
173
-	 */
174
-	public static function get_order( $order_id, $mode = 'live' ) {
175
-		return self::get( '/v2/checkout/orders/' . $order_id, $mode );
176
-	}
177
-
178
-	/**
179
-	 * Fetches a subscription.
180
-	 *
181
-	 * @since 1.0.0
182
-	 * @version 1.0.0
183
-	 * @param string $subscription_id
184
-	 * @link https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_get
185
-	 * @return \WP_Error|object
186
-	 */
187
-	public static function get_subscription( $subscription_id, $mode = 'live' ) {
188
-		return self::get( '/v1/billing/subscriptions/' . $subscription_id, $mode );
189
-	}
190
-
191
-	/**
192
-	 * Fetches a subscription's latest transactions (limits search to last one day).
193
-	 *
194
-	 * @since 1.0.0
195
-	 * @version 1.0.0
196
-	 * @param string $subscription_id
197
-	 * @link https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_transactions
198
-	 * @return \WP_Error|object
199
-	 */
200
-	public static function get_subscription_transaction( $subscription_id, $mode = 'live' ) {
201
-		$start_time = gmdate( 'Y-m-d\TH:i:s\Z', strtotime( '-1 day' ) );
202
-		$end_time   = gmdate( 'Y-m-d\TH:i:s\Z' );
203
-		return self::get( "/v1/billing/subscriptions/$subscription_id/transactions?start_time=$start_time&end_time=$end_time", $mode );
204
-	}
205
-
206
-	/**
207
-	 * Refunds a capture.
208
-	 *
209
-	 * @since 1.0.0
210
-	 * @version 1.0.0
211
-	 * @param string $capture_id
212
-	 * @param array  $args
213
-	 * @link https://developer.paypal.com/docs/api/payments/v2/#captures_refund
214
-	 * @return \WP_Error|object
215
-	 */
216
-	public static function refund_capture( $capture_id, $args = array(), $mode = 'live' ) {
217
-		return self::post( '/v2/payments/captures/' . $capture_id . '/refund', $args, $mode );
218
-	}
34
+        $args   = array(
35
+            'method'  => 'POST',
36
+            'timeout' => 30,
37
+            'headers' => array(
38
+                'Authorization' => 'Basic ' . base64_encode( $client_id . ':' . $secret_key ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
39
+                'Accept'        => 'application/json',
40
+                'Content-Type'  => 'application/x-www-form-urlencoded',
41
+            ),
42
+        );
43
+
44
+        $response = self::response_or_error( wp_remote_post( $url, $args ) );
45
+
46
+        if ( is_wp_error( $response ) ) {
47
+            return $response;
48
+        }
49
+
50
+        if ( ! isset( $response->access_token ) ) {
51
+            return new \WP_Error( 'invalid_request', 'Could not create token.', array( 'status' => 400 ) );
52
+        }
53
+
54
+        set_transient( 'getpaid_paypal_' . $mode . '_token', $response->access_token, $response->expires_in - 600 );
55
+        return $response->access_token;
56
+    }
57
+
58
+    /**
59
+     * Retrieves the PayPal API URL.
60
+     *
61
+     * @param string $endpoint
62
+     * @return string
63
+     */
64
+    public static function get_api_url( $endpoint = '', $mode = 'live'  ) {
65
+        $endpoint = ltrim( $endpoint, '/' );
66
+        return 'live' === $mode ? 'https://api-m.paypal.com/' . $endpoint : 'https://api-m.sandbox.paypal.com/' . $endpoint;
67
+    }
68
+
69
+    /**
70
+     * Handles a post request.
71
+     *
72
+     * @param string $path The path to the endpoint.
73
+     * @param mixed $data The data to send.
74
+     * @param string $method The method to use.
75
+     *
76
+     * @return true|\WP_Error
77
+     */
78
+    public static function post( $path, $data, $mode = 'live', $method = 'POST' ) {
79
+
80
+        $access_token = self::get_token( $mode );
81
+
82
+        if ( is_wp_error( $access_token ) ) {
83
+            return $access_token;
84
+        }
85
+
86
+        $url  = self::get_api_url( $path, $mode );
87
+        $args = array(
88
+            'method'  => $method,
89
+            'headers' => array(
90
+                'Authorization' => 'Bearer ' . $access_token,
91
+                'Content-Type'  => 'application/json',
92
+            ),
93
+            'body'    => wp_json_encode( $data ),
94
+        );
95
+
96
+        return self::response_or_error( wp_remote_post( $url, $args ) );
97
+    }
98
+
99
+    /**
100
+     * Handles a get request.
101
+     *
102
+     * @param string $path The path to the endpoint.
103
+     * @param string $method
104
+     * @return object|\WP_Error
105
+     */
106
+    public static function get( $path, $mode = 'live', $method = 'GET' ) {
107
+
108
+        $access_token = self::get_token( $mode );
109
+
110
+        if ( is_wp_error( $access_token ) ) {
111
+            return $access_token;
112
+        }
113
+
114
+        $url  = self::get_api_url( $path, $mode );
115
+        $args = array(
116
+            'method'  => $method,
117
+            'headers' => array(
118
+                'Authorization' => 'Bearer ' . $access_token,
119
+            ),
120
+        );
121
+
122
+        return self::response_or_error( wp_remote_get( $url, $args ) );
123
+    }
124
+
125
+    /**
126
+     * Returns the response body
127
+     *
128
+     * @since 1.0.0
129
+     * @version 1.0.0
130
+     * @param \WP_Error|array $response
131
+     * @return \WP_Error|object
132
+     */
133
+    public static function response_or_error( $response ) {
134
+
135
+        if ( is_wp_error( $response ) ) {
136
+            return new \WP_Error( 'paypal_error', __( 'There was a problem connecting to the PayPal API endpoint.', 'invoicing' ) );
137
+        }
138
+
139
+        if ( empty( $response['body'] ) ) {
140
+            return true;
141
+        }
142
+
143
+        $response_body = json_decode( wp_remote_retrieve_body( $response ) );
144
+
145
+        if ( wp_remote_retrieve_response_code( $response ) > 299 ) {
146
+
147
+            // Normal errors.
148
+            if ( $response_body && isset( $response_body->message ) ) {
149
+                $error_message = $response_body->message;
150
+
151
+            // Identity errors.
152
+            } elseif ( $response_body && isset( $response_body->error_description ) ) {
153
+                $error_message = $response_body->error_description;
154
+                return new \WP_Error( 'paypal_error', wp_kses_post( $response_body->error_description ) );
155
+            } else {
156
+                $error_message = __( 'There was an error connecting to the PayPal API endpoint.', 'invoicing' );
157
+            }
158
+
159
+            return new \WP_Error( 'paypal_error', $error_message );
160
+        }
161
+
162
+        return $response_body;
163
+    }
164
+
165
+    /**
166
+     * Fetches an order.
167
+     *
168
+     * @since 1.0.0
169
+     * @version 1.0.0
170
+     * @param string $order_id
171
+     * @link https://developer.paypal.com/docs/api/orders/v2/#orders_get
172
+     * @return \WP_Error|object
173
+     */
174
+    public static function get_order( $order_id, $mode = 'live' ) {
175
+        return self::get( '/v2/checkout/orders/' . $order_id, $mode );
176
+    }
177
+
178
+    /**
179
+     * Fetches a subscription.
180
+     *
181
+     * @since 1.0.0
182
+     * @version 1.0.0
183
+     * @param string $subscription_id
184
+     * @link https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_get
185
+     * @return \WP_Error|object
186
+     */
187
+    public static function get_subscription( $subscription_id, $mode = 'live' ) {
188
+        return self::get( '/v1/billing/subscriptions/' . $subscription_id, $mode );
189
+    }
190
+
191
+    /**
192
+     * Fetches a subscription's latest transactions (limits search to last one day).
193
+     *
194
+     * @since 1.0.0
195
+     * @version 1.0.0
196
+     * @param string $subscription_id
197
+     * @link https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_transactions
198
+     * @return \WP_Error|object
199
+     */
200
+    public static function get_subscription_transaction( $subscription_id, $mode = 'live' ) {
201
+        $start_time = gmdate( 'Y-m-d\TH:i:s\Z', strtotime( '-1 day' ) );
202
+        $end_time   = gmdate( 'Y-m-d\TH:i:s\Z' );
203
+        return self::get( "/v1/billing/subscriptions/$subscription_id/transactions?start_time=$start_time&end_time=$end_time", $mode );
204
+    }
205
+
206
+    /**
207
+     * Refunds a capture.
208
+     *
209
+     * @since 1.0.0
210
+     * @version 1.0.0
211
+     * @param string $capture_id
212
+     * @param array  $args
213
+     * @link https://developer.paypal.com/docs/api/payments/v2/#captures_refund
214
+     * @return \WP_Error|object
215
+     */
216
+    public static function refund_capture( $capture_id, $args = array(), $mode = 'live' ) {
217
+        return self::post( '/v2/payments/captures/' . $capture_id . '/refund', $args, $mode );
218
+    }
219 219
 
220 220
 }
Please login to merge, or discard this patch.
Spacing   +50 added lines, -50 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 // Exit if accessed directly.
4
-defined( 'ABSPATH' ) || exit;
4
+defined('ABSPATH') || exit;
5 5
 
6 6
 /**
7 7
  * PayPal API handler.
@@ -15,43 +15,43 @@  discard block
 block discarded – undo
15 15
 	 *
16 16
      * @return string|\WP_Error
17 17
 	 */
18
-	public static function get_token( $mode = 'live' ) {
18
+	public static function get_token($mode = 'live') {
19 19
 
20
-		$token = get_transient( 'getpaid_paypal_' . $mode . '_token' );
20
+		$token = get_transient('getpaid_paypal_' . $mode . '_token');
21 21
 
22
-		if ( $token ) {
22
+		if ($token) {
23 23
 			return $token;
24 24
 		}
25 25
 
26
-		$client_id  = 'live' === $mode ? wpinv_get_option( 'paypal_client_id' ) : wpinv_get_option( 'paypal_sandbox_client_id' );
27
-		$secret_key = 'live' === $mode ? wpinv_get_option( 'paypal_secret_key' ) : wpinv_get_option( 'paypal_sandbox_secret_key' );
28
-		$url        = self::get_api_url( 'v1/oauth2/token?grant_type=client_credentials', $mode );
26
+		$client_id  = 'live' === $mode ? wpinv_get_option('paypal_client_id') : wpinv_get_option('paypal_sandbox_client_id');
27
+		$secret_key = 'live' === $mode ? wpinv_get_option('paypal_secret_key') : wpinv_get_option('paypal_sandbox_secret_key');
28
+		$url        = self::get_api_url('v1/oauth2/token?grant_type=client_credentials', $mode);
29 29
 
30
-        if ( empty( $client_id ) || empty( $secret_key ) ) {
31
-            return new \WP_Error( 'invalid_request', 'Missing client id or secret key.', array( 'status' => 400 ) );
30
+        if (empty($client_id) || empty($secret_key)) {
31
+            return new \WP_Error('invalid_request', 'Missing client id or secret key.', array('status' => 400));
32 32
         }
33 33
 
34
-		$args   = array(
34
+		$args = array(
35 35
 			'method'  => 'POST',
36 36
 			'timeout' => 30,
37 37
 			'headers' => array(
38
-				'Authorization' => 'Basic ' . base64_encode( $client_id . ':' . $secret_key ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
38
+				'Authorization' => 'Basic ' . base64_encode($client_id . ':' . $secret_key), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
39 39
 				'Accept'        => 'application/json',
40 40
 				'Content-Type'  => 'application/x-www-form-urlencoded',
41 41
 			),
42 42
 		);
43 43
 
44
-		$response = self::response_or_error( wp_remote_post( $url, $args ) );
44
+		$response = self::response_or_error(wp_remote_post($url, $args));
45 45
 
46
-		if ( is_wp_error( $response ) ) {
46
+		if (is_wp_error($response)) {
47 47
 			return $response;
48 48
 		}
49 49
 
50
-		if ( ! isset( $response->access_token ) ) {
51
-			return new \WP_Error( 'invalid_request', 'Could not create token.', array( 'status' => 400 ) );
50
+		if (!isset($response->access_token)) {
51
+			return new \WP_Error('invalid_request', 'Could not create token.', array('status' => 400));
52 52
 		}
53 53
 
54
-		set_transient( 'getpaid_paypal_' . $mode . '_token', $response->access_token, $response->expires_in - 600 );
54
+		set_transient('getpaid_paypal_' . $mode . '_token', $response->access_token, $response->expires_in - 600);
55 55
 		return $response->access_token;
56 56
 	}
57 57
 
@@ -61,8 +61,8 @@  discard block
 block discarded – undo
61 61
 	 * @param string $endpoint
62 62
 	 * @return string
63 63
 	 */
64
-	public static function get_api_url( $endpoint = '', $mode = 'live'  ) {
65
-		$endpoint = ltrim( $endpoint, '/' );
64
+	public static function get_api_url($endpoint = '', $mode = 'live') {
65
+		$endpoint = ltrim($endpoint, '/');
66 66
 		return 'live' === $mode ? 'https://api-m.paypal.com/' . $endpoint : 'https://api-m.sandbox.paypal.com/' . $endpoint;
67 67
 	}
68 68
 
@@ -75,25 +75,25 @@  discard block
 block discarded – undo
75 75
 	 *
76 76
 	 * @return true|\WP_Error
77 77
 	 */
78
-	public static function post( $path, $data, $mode = 'live', $method = 'POST' ) {
78
+	public static function post($path, $data, $mode = 'live', $method = 'POST') {
79 79
 
80
-		$access_token = self::get_token( $mode );
80
+		$access_token = self::get_token($mode);
81 81
 
82
-		if ( is_wp_error( $access_token ) ) {
82
+		if (is_wp_error($access_token)) {
83 83
 			return $access_token;
84 84
 		}
85 85
 
86
-		$url  = self::get_api_url( $path, $mode );
86
+		$url  = self::get_api_url($path, $mode);
87 87
 		$args = array(
88 88
 			'method'  => $method,
89 89
 			'headers' => array(
90 90
 				'Authorization' => 'Bearer ' . $access_token,
91 91
 				'Content-Type'  => 'application/json',
92 92
 			),
93
-			'body'    => wp_json_encode( $data ),
93
+			'body'    => wp_json_encode($data),
94 94
 		);
95 95
 
96
-		return self::response_or_error( wp_remote_post( $url, $args ) );
96
+		return self::response_or_error(wp_remote_post($url, $args));
97 97
 	}
98 98
 
99 99
 	/**
@@ -103,15 +103,15 @@  discard block
 block discarded – undo
103 103
 	 * @param string $method
104 104
 	 * @return object|\WP_Error
105 105
 	 */
106
-	public static function get( $path, $mode = 'live', $method = 'GET' ) {
106
+	public static function get($path, $mode = 'live', $method = 'GET') {
107 107
 
108
-		$access_token = self::get_token( $mode );
108
+		$access_token = self::get_token($mode);
109 109
 
110
-		if ( is_wp_error( $access_token ) ) {
110
+		if (is_wp_error($access_token)) {
111 111
 			return $access_token;
112 112
 		}
113 113
 
114
-		$url  = self::get_api_url( $path, $mode );
114
+		$url  = self::get_api_url($path, $mode);
115 115
 		$args = array(
116 116
 			'method'  => $method,
117 117
 			'headers' => array(
@@ -119,7 +119,7 @@  discard block
 block discarded – undo
119 119
 			),
120 120
 		);
121 121
 
122
-		return self::response_or_error( wp_remote_get( $url, $args ) );
122
+		return self::response_or_error(wp_remote_get($url, $args));
123 123
 	}
124 124
 
125 125
 	/**
@@ -130,33 +130,33 @@  discard block
 block discarded – undo
130 130
 	 * @param \WP_Error|array $response
131 131
 	 * @return \WP_Error|object
132 132
 	 */
133
-	public static function response_or_error( $response ) {
133
+	public static function response_or_error($response) {
134 134
 
135
-		if ( is_wp_error( $response ) ) {
136
-			return new \WP_Error( 'paypal_error', __( 'There was a problem connecting to the PayPal API endpoint.', 'invoicing' ) );
135
+		if (is_wp_error($response)) {
136
+			return new \WP_Error('paypal_error', __('There was a problem connecting to the PayPal API endpoint.', 'invoicing'));
137 137
 		}
138 138
 
139
-		if ( empty( $response['body'] ) ) {
139
+		if (empty($response['body'])) {
140 140
 			return true;
141 141
 		}
142 142
 
143
-		$response_body = json_decode( wp_remote_retrieve_body( $response ) );
143
+		$response_body = json_decode(wp_remote_retrieve_body($response));
144 144
 
145
-		if ( wp_remote_retrieve_response_code( $response ) > 299 ) {
145
+		if (wp_remote_retrieve_response_code($response) > 299) {
146 146
 
147 147
 			// Normal errors.
148
-			if ( $response_body && isset( $response_body->message ) ) {
148
+			if ($response_body && isset($response_body->message)) {
149 149
 				$error_message = $response_body->message;
150 150
 
151 151
 			// Identity errors.
152
-			} elseif ( $response_body && isset( $response_body->error_description ) ) {
152
+			} elseif ($response_body && isset($response_body->error_description)) {
153 153
 				$error_message = $response_body->error_description;
154
-				return new \WP_Error( 'paypal_error', wp_kses_post( $response_body->error_description ) );
154
+				return new \WP_Error('paypal_error', wp_kses_post($response_body->error_description));
155 155
 			} else {
156
-				$error_message = __( 'There was an error connecting to the PayPal API endpoint.', 'invoicing' );
156
+				$error_message = __('There was an error connecting to the PayPal API endpoint.', 'invoicing');
157 157
 			}
158 158
 
159
-			return new \WP_Error( 'paypal_error', $error_message );
159
+			return new \WP_Error('paypal_error', $error_message);
160 160
 		}
161 161
 
162 162
 		return $response_body;
@@ -171,8 +171,8 @@  discard block
 block discarded – undo
171 171
 	 * @link https://developer.paypal.com/docs/api/orders/v2/#orders_get
172 172
 	 * @return \WP_Error|object
173 173
 	 */
174
-	public static function get_order( $order_id, $mode = 'live' ) {
175
-		return self::get( '/v2/checkout/orders/' . $order_id, $mode );
174
+	public static function get_order($order_id, $mode = 'live') {
175
+		return self::get('/v2/checkout/orders/' . $order_id, $mode);
176 176
 	}
177 177
 
178 178
 	/**
@@ -184,8 +184,8 @@  discard block
 block discarded – undo
184 184
 	 * @link https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_get
185 185
 	 * @return \WP_Error|object
186 186
 	 */
187
-	public static function get_subscription( $subscription_id, $mode = 'live' ) {
188
-		return self::get( '/v1/billing/subscriptions/' . $subscription_id, $mode );
187
+	public static function get_subscription($subscription_id, $mode = 'live') {
188
+		return self::get('/v1/billing/subscriptions/' . $subscription_id, $mode);
189 189
 	}
190 190
 
191 191
 	/**
@@ -197,10 +197,10 @@  discard block
 block discarded – undo
197 197
 	 * @link https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_transactions
198 198
 	 * @return \WP_Error|object
199 199
 	 */
200
-	public static function get_subscription_transaction( $subscription_id, $mode = 'live' ) {
201
-		$start_time = gmdate( 'Y-m-d\TH:i:s\Z', strtotime( '-1 day' ) );
202
-		$end_time   = gmdate( 'Y-m-d\TH:i:s\Z' );
203
-		return self::get( "/v1/billing/subscriptions/$subscription_id/transactions?start_time=$start_time&end_time=$end_time", $mode );
200
+	public static function get_subscription_transaction($subscription_id, $mode = 'live') {
201
+		$start_time = gmdate('Y-m-d\TH:i:s\Z', strtotime('-1 day'));
202
+		$end_time   = gmdate('Y-m-d\TH:i:s\Z');
203
+		return self::get("/v1/billing/subscriptions/$subscription_id/transactions?start_time=$start_time&end_time=$end_time", $mode);
204 204
 	}
205 205
 
206 206
 	/**
@@ -213,8 +213,8 @@  discard block
 block discarded – undo
213 213
 	 * @link https://developer.paypal.com/docs/api/payments/v2/#captures_refund
214 214
 	 * @return \WP_Error|object
215 215
 	 */
216
-	public static function refund_capture( $capture_id, $args = array(), $mode = 'live' ) {
217
-		return self::post( '/v2/payments/captures/' . $capture_id . '/refund', $args, $mode );
216
+	public static function refund_capture($capture_id, $args = array(), $mode = 'live') {
217
+		return self::post('/v2/payments/captures/' . $capture_id . '/refund', $args, $mode);
218 218
 	}
219 219
 
220 220
 }
Please login to merge, or discard this patch.
includes/gateways/class-getpaid-paypal-gateway.php 2 patches
Indentation   +399 added lines, -399 removed lines patch added patch discarded remove patch
@@ -13,97 +13,97 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Paypal_Gateway extends GetPaid_Payment_Gateway {
14 14
 
15 15
     /**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20 20
     public $id = 'paypal';
21 21
 
22 22
     /**
23
-	 * An array of features that this gateway supports.
24
-	 *
25
-	 * @var array
26
-	 */
23
+     * An array of features that this gateway supports.
24
+     *
25
+     * @var array
26
+     */
27 27
     protected $supports = array( 'subscription', 'sandbox', 'single_subscription_group' );
28 28
 
29 29
     /**
30
-	 * Payment method order.
31
-	 *
32
-	 * @var int
33
-	 */
30
+     * Payment method order.
31
+     *
32
+     * @var int
33
+     */
34 34
     public $order = 1;
35 35
 
36 36
     /**
37
-	 * Stores line items to send to PayPal.
38
-	 *
39
-	 * @var array
40
-	 */
37
+     * Stores line items to send to PayPal.
38
+     *
39
+     * @var array
40
+     */
41 41
     protected $line_items = array();
42 42
 
43 43
     /**
44
-	 * Endpoint for requests from PayPal.
45
-	 *
46
-	 * @var string
47
-	 */
48
-	protected $notify_url;
49
-
50
-	/**
51
-	 * Endpoint for requests to PayPal.
52
-	 *
53
-	 * @var string
54
-	 */
44
+     * Endpoint for requests from PayPal.
45
+     *
46
+     * @var string
47
+     */
48
+    protected $notify_url;
49
+
50
+    /**
51
+     * Endpoint for requests to PayPal.
52
+     *
53
+     * @var string
54
+     */
55 55
     protected $endpoint;
56 56
 
57 57
     /**
58
-	 * Currencies this gateway is allowed for.
59
-	 *
60
-	 * @var array
61
-	 */
62
-	public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' );
58
+     * Currencies this gateway is allowed for.
59
+     *
60
+     * @var array
61
+     */
62
+    public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' );
63 63
 
64 64
     /**
65
-	 * URL to view a transaction.
66
-	 *
67
-	 * @var string
68
-	 */
65
+     * URL to view a transaction.
66
+     *
67
+     * @var string
68
+     */
69 69
     public $view_transaction_url = 'https://www.{sandbox}paypal.com/activity/payment/%s';
70 70
 
71 71
     /**
72
-	 * URL to view a subscription.
73
-	 *
74
-	 * @var string
75
-	 */
76
-	public $view_subscription_url = 'https://www.{sandbox}paypal.com/cgi-bin/webscr?cmd=_profile-recurring-payments&encrypted_profile_id=%s';
72
+     * URL to view a subscription.
73
+     *
74
+     * @var string
75
+     */
76
+    public $view_subscription_url = 'https://www.{sandbox}paypal.com/cgi-bin/webscr?cmd=_profile-recurring-payments&encrypted_profile_id=%s';
77 77
 
78 78
     /**
79
-	 * Class constructor.
80
-	 */
81
-	public function __construct() {
79
+     * Class constructor.
80
+     */
81
+    public function __construct() {
82 82
 
83 83
         $this->title                = __( 'PayPal Standard', 'invoicing' );
84 84
         $this->method_title         = __( 'PayPal Standard', 'invoicing' );
85 85
         $this->checkout_button_text = __( 'Proceed to PayPal', 'invoicing' );
86 86
         $this->notify_url           = wpinv_get_ipn_url( $this->id );
87 87
 
88
-		add_filter( 'wpinv_subscription_cancel_url', array( $this, 'filter_cancel_subscription_url' ), 10, 2 );
89
-		add_filter( 'getpaid_paypal_args', array( $this, 'process_subscription' ), 10, 2 );
88
+        add_filter( 'wpinv_subscription_cancel_url', array( $this, 'filter_cancel_subscription_url' ), 10, 2 );
89
+        add_filter( 'getpaid_paypal_args', array( $this, 'process_subscription' ), 10, 2 );
90 90
         add_filter( 'getpaid_paypal_sandbox_notice', array( $this, 'sandbox_notice' ) );
91
-		add_filter( 'getpaid_get_paypal_connect_url', array( $this, 'maybe_get_connect_url' ), 10, 2 );
92
-		add_action( 'getpaid_authenticated_admin_action_connect_paypal', array( $this, 'connect_paypal' ) );
93
-		add_action( 'wpinv_paypal_connect', array( $this, 'display_connect_buttons' ) );
94
-		parent::__construct();
91
+        add_filter( 'getpaid_get_paypal_connect_url', array( $this, 'maybe_get_connect_url' ), 10, 2 );
92
+        add_action( 'getpaid_authenticated_admin_action_connect_paypal', array( $this, 'connect_paypal' ) );
93
+        add_action( 'wpinv_paypal_connect', array( $this, 'display_connect_buttons' ) );
94
+        parent::__construct();
95 95
     }
96 96
 
97 97
     /**
98
-	 * Process Payment.
99
-	 *
100
-	 *
101
-	 * @param WPInv_Invoice $invoice Invoice.
102
-	 * @param array $submission_data Posted checkout fields.
103
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
104
-	 * @return array
105
-	 */
106
-	public function process_payment( $invoice, $submission_data, $submission ) {
98
+     * Process Payment.
99
+     *
100
+     *
101
+     * @param WPInv_Invoice $invoice Invoice.
102
+     * @param array $submission_data Posted checkout fields.
103
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
104
+     * @return array
105
+     */
106
+    public function process_payment( $invoice, $submission_data, $submission ) {
107 107
 
108 108
         // Get redirect url.
109 109
         $paypal_redirect = $this->get_request_url( $invoice );
@@ -126,15 +126,15 @@  discard block
 block discarded – undo
126 126
     }
127 127
 
128 128
     /**
129
-	 * Get the PayPal request URL for an invoice.
130
-	 *
131
-	 * @param  WPInv_Invoice $invoice Invoice object.
132
-	 * @return string
133
-	 */
134
-	public function get_request_url( $invoice ) {
129
+     * Get the PayPal request URL for an invoice.
130
+     *
131
+     * @param  WPInv_Invoice $invoice Invoice object.
132
+     * @return string
133
+     */
134
+    public function get_request_url( $invoice ) {
135 135
 
136 136
         // Endpoint for this request
137
-		$this->endpoint    = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
137
+        $this->endpoint    = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
138 138
 
139 139
         // Retrieve paypal args.
140 140
         $paypal_args       = map_deep( $this->get_paypal_args( $invoice ), 'urlencode' );
@@ -147,45 +147,45 @@  discard block
 block discarded – undo
147 147
 
148 148
         return add_query_arg( $paypal_args, $this->endpoint );
149 149
 
150
-	}
150
+    }
151 151
 
152 152
     /**
153
-	 * Get PayPal Args for passing to PP.
154
-	 *
155
-	 * @param  WPInv_Invoice $invoice Invoice object.
156
-	 * @return array
157
-	 */
158
-	protected function get_paypal_args( $invoice ) {
153
+     * Get PayPal Args for passing to PP.
154
+     *
155
+     * @param  WPInv_Invoice $invoice Invoice object.
156
+     * @return array
157
+     */
158
+    protected function get_paypal_args( $invoice ) {
159 159
 
160 160
         // Whether or not to send the line items as one item.
161
-		$force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', true, $invoice );
162
-
163
-		if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) {
164
-			$force_one_line_item = true;
165
-		}
166
-
167
-		$paypal_args = apply_filters(
168
-			'getpaid_paypal_args',
169
-			array_merge(
170
-				$this->get_transaction_args( $invoice ),
171
-				$this->get_line_item_args( $invoice, $force_one_line_item )
172
-			),
173
-			$invoice
174
-		);
175
-
176
-		return $this->fix_request_length( $invoice, $paypal_args );
161
+        $force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', true, $invoice );
162
+
163
+        if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) {
164
+            $force_one_line_item = true;
165
+        }
166
+
167
+        $paypal_args = apply_filters(
168
+            'getpaid_paypal_args',
169
+            array_merge(
170
+                $this->get_transaction_args( $invoice ),
171
+                $this->get_line_item_args( $invoice, $force_one_line_item )
172
+            ),
173
+            $invoice
174
+        );
175
+
176
+        return $this->fix_request_length( $invoice, $paypal_args );
177 177
     }
178 178
 
179 179
     /**
180
-	 * Get transaction args for paypal request.
181
-	 *
182
-	 * @param WPInv_Invoice $invoice Invoice object.
183
-	 * @return array
184
-	 */
185
-	protected function get_transaction_args( $invoice ) {
186
-
187
-		$email = $this->is_sandbox( $invoice ) ? wpinv_get_option( 'paypal_sandbox_email', wpinv_get_option( 'paypal_email', '' ) ) : wpinv_get_option( 'paypal_email', '' );
188
-		return array(
180
+     * Get transaction args for paypal request.
181
+     *
182
+     * @param WPInv_Invoice $invoice Invoice object.
183
+     * @return array
184
+     */
185
+    protected function get_transaction_args( $invoice ) {
186
+
187
+        $email = $this->is_sandbox( $invoice ) ? wpinv_get_option( 'paypal_sandbox_email', wpinv_get_option( 'paypal_email', '' ) ) : wpinv_get_option( 'paypal_email', '' );
188
+        return array(
189 189
             'cmd'           => '_cart',
190 190
             'business'      => $email,
191 191
             'no_shipping'   => '1',
@@ -210,16 +210,16 @@  discard block
 block discarded – undo
210 210
     }
211 211
 
212 212
     /**
213
-	 * Get line item args for paypal request.
214
-	 *
215
-	 * @param  WPInv_Invoice $invoice Invoice object.
216
-	 * @param  bool     $force_one_line_item Create only one item for this invoice.
217
-	 * @return array
218
-	 */
219
-	protected function get_line_item_args( $invoice, $force_one_line_item = false ) {
213
+     * Get line item args for paypal request.
214
+     *
215
+     * @param  WPInv_Invoice $invoice Invoice object.
216
+     * @param  bool     $force_one_line_item Create only one item for this invoice.
217
+     * @return array
218
+     */
219
+    protected function get_line_item_args( $invoice, $force_one_line_item = false ) {
220 220
 
221 221
         // Maybe send invoice as a single item.
222
-		if ( $force_one_line_item ) {
222
+        if ( $force_one_line_item ) {
223 223
             return $this->get_line_item_args_single_item( $invoice );
224 224
         }
225 225
 
@@ -239,129 +239,129 @@  discard block
 block discarded – undo
239 239
             $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_discount(), 2 );
240 240
         }
241 241
 
242
-		return array_merge( $line_item_args, $this->get_line_items() );
242
+        return array_merge( $line_item_args, $this->get_line_items() );
243 243
 
244 244
     }
245 245
 
246 246
     /**
247
-	 * Get line item args for paypal request as a single line item.
248
-	 *
249
-	 * @param  WPInv_Invoice $invoice Invoice object.
250
-	 * @return array
251
-	 */
252
-	protected function get_line_item_args_single_item( $invoice ) {
253
-		$this->delete_line_items();
247
+     * Get line item args for paypal request as a single line item.
248
+     *
249
+     * @param  WPInv_Invoice $invoice Invoice object.
250
+     * @return array
251
+     */
252
+    protected function get_line_item_args_single_item( $invoice ) {
253
+        $this->delete_line_items();
254 254
 
255 255
         $item_name = sprintf( __( 'Invoice #%s', 'invoicing' ), $invoice->get_number() );
256
-		$this->add_line_item( $item_name, 1, wpinv_round_amount( (float) $invoice->get_total(), 2, true ), $invoice->get_id() );
256
+        $this->add_line_item( $item_name, 1, wpinv_round_amount( (float) $invoice->get_total(), 2, true ), $invoice->get_id() );
257 257
 
258
-		return $this->get_line_items();
258
+        return $this->get_line_items();
259 259
     }
260 260
 
261 261
     /**
262
-	 * Return all line items.
263
-	 */
264
-	protected function get_line_items() {
265
-		return $this->line_items;
266
-	}
262
+     * Return all line items.
263
+     */
264
+    protected function get_line_items() {
265
+        return $this->line_items;
266
+    }
267 267
 
268 268
     /**
269
-	 * Remove all line items.
270
-	 */
271
-	protected function delete_line_items() {
272
-		$this->line_items = array();
269
+     * Remove all line items.
270
+     */
271
+    protected function delete_line_items() {
272
+        $this->line_items = array();
273 273
     }
274 274
 
275 275
     /**
276
-	 * Prepare line items to send to paypal.
277
-	 *
278
-	 * @param  WPInv_Invoice $invoice Invoice object.
279
-	 */
280
-	protected function prepare_line_items( $invoice ) {
281
-		$this->delete_line_items();
282
-
283
-		// Items.
284
-		foreach ( $invoice->get_items() as $item ) {
285
-			$amount   = $item->get_price();
286
-			$quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity();
287
-			$this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() );
276
+     * Prepare line items to send to paypal.
277
+     *
278
+     * @param  WPInv_Invoice $invoice Invoice object.
279
+     */
280
+    protected function prepare_line_items( $invoice ) {
281
+        $this->delete_line_items();
282
+
283
+        // Items.
284
+        foreach ( $invoice->get_items() as $item ) {
285
+            $amount   = $item->get_price();
286
+            $quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity();
287
+            $this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() );
288 288
         }
289 289
 
290 290
         // Fees.
291
-		foreach ( $invoice->get_fees() as $fee => $data ) {
291
+        foreach ( $invoice->get_fees() as $fee => $data ) {
292 292
             $this->add_line_item( $fee, 1, wpinv_sanitize_amount( $data['initial_fee'] ) );
293 293
         }
294 294
 
295 295
     }
296 296
 
297 297
     /**
298
-	 * Add PayPal Line Item.
299
-	 *
300
-	 * @param  string $item_name Item name.
301
-	 * @param  float    $quantity Item quantity.
302
-	 * @param  float  $amount Amount.
303
-	 * @param  string $item_number Item number.
304
-	 */
305
-	protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) {
306
-		$index = ( count( $this->line_items ) / 4 ) + 1;
307
-
308
-		$item = apply_filters(
309
-			'getpaid_paypal_line_item',
310
-			array(
311
-				'item_name'   => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ),
312
-				'quantity'    => (float) $quantity,
313
-				'amount'      => wpinv_sanitize_amount( (float) $amount, 2 ),
314
-				'item_number' => $item_number,
315
-			),
316
-			$item_name,
317
-			$quantity,
318
-			$amount,
319
-			$item_number
320
-		);
321
-
322
-		$this->line_items[ 'item_name_' . $index ]   = getpaid_limit_length( $item['item_name'], 127 );
298
+     * Add PayPal Line Item.
299
+     *
300
+     * @param  string $item_name Item name.
301
+     * @param  float    $quantity Item quantity.
302
+     * @param  float  $amount Amount.
303
+     * @param  string $item_number Item number.
304
+     */
305
+    protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) {
306
+        $index = ( count( $this->line_items ) / 4 ) + 1;
307
+
308
+        $item = apply_filters(
309
+            'getpaid_paypal_line_item',
310
+            array(
311
+                'item_name'   => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ),
312
+                'quantity'    => (float) $quantity,
313
+                'amount'      => wpinv_sanitize_amount( (float) $amount, 2 ),
314
+                'item_number' => $item_number,
315
+            ),
316
+            $item_name,
317
+            $quantity,
318
+            $amount,
319
+            $item_number
320
+        );
321
+
322
+        $this->line_items[ 'item_name_' . $index ]   = getpaid_limit_length( $item['item_name'], 127 );
323 323
         $this->line_items[ 'quantity_' . $index ]    = $item['quantity'];
324 324
 
325 325
         // The price or amount of the product, service, or contribution, not including shipping, handling, or tax.
326
-		$this->line_items[ 'amount_' . $index ]      = $item['amount'] * $item['quantity'];
327
-		$this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 );
326
+        $this->line_items[ 'amount_' . $index ]      = $item['amount'] * $item['quantity'];
327
+        $this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 );
328 328
     }
329 329
 
330 330
     /**
331
-	 * If the default request with line items is too long, generate a new one with only one line item.
332
-	 *
333
-	 * https://support.microsoft.com/en-us/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer.
334
-	 *
335
-	 * @param WPInv_Invoice $invoice Invoice to be sent to Paypal.
336
-	 * @param array    $paypal_args Arguments sent to Paypal in the request.
337
-	 * @return array
338
-	 */
339
-	protected function fix_request_length( $invoice, $paypal_args ) {
340
-		$max_paypal_length = 2083;
341
-		$query_candidate   = http_build_query( $paypal_args, '', '&' );
342
-
343
-		if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) {
344
-			return $paypal_args;
345
-		}
346
-
347
-		return apply_filters(
348
-			'getpaid_paypal_args',
349
-			array_merge(
350
-				$this->get_transaction_args( $invoice ),
351
-				$this->get_line_item_args( $invoice, true )
352
-			),
353
-			$invoice
354
-		);
331
+     * If the default request with line items is too long, generate a new one with only one line item.
332
+     *
333
+     * https://support.microsoft.com/en-us/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer.
334
+     *
335
+     * @param WPInv_Invoice $invoice Invoice to be sent to Paypal.
336
+     * @param array    $paypal_args Arguments sent to Paypal in the request.
337
+     * @return array
338
+     */
339
+    protected function fix_request_length( $invoice, $paypal_args ) {
340
+        $max_paypal_length = 2083;
341
+        $query_candidate   = http_build_query( $paypal_args, '', '&' );
342
+
343
+        if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) {
344
+            return $paypal_args;
345
+        }
346
+
347
+        return apply_filters(
348
+            'getpaid_paypal_args',
349
+            array_merge(
350
+                $this->get_transaction_args( $invoice ),
351
+                $this->get_line_item_args( $invoice, true )
352
+            ),
353
+            $invoice
354
+        );
355 355
 
356 356
     }
357 357
 
358 358
     /**
359
-	 * Processes recurring invoices.
360
-	 *
361
-	 * @param  array $paypal_args PayPal args.
362
-	 * @param  WPInv_Invoice    $invoice Invoice object.
363
-	 */
364
-	public function process_subscription( $paypal_args, $invoice ) {
359
+     * Processes recurring invoices.
360
+     *
361
+     * @param  array $paypal_args PayPal args.
362
+     * @param  WPInv_Invoice    $invoice Invoice object.
363
+     */
364
+    public function process_subscription( $paypal_args, $invoice ) {
365 365
 
366 366
         // Make sure this is a subscription.
367 367
         if ( ! $invoice->is_recurring() || ! $subscription = getpaid_get_invoice_subscription( $invoice ) ) {
@@ -382,21 +382,21 @@  discard block
 block discarded – undo
382 382
         $recurring_amount       = (float) wpinv_sanitize_amount( $invoice->get_recurring_total(), 2 );
383 383
         $subscription_item      = $invoice->get_recurring( true );
384 384
 
385
-		// Convert 365 days to 1 year.
386
-		if ( 'D' == $period && 365 == $interval ) {
387
-			$period = 'Y';
388
-			$interval = 1;
389
-		}
385
+        // Convert 365 days to 1 year.
386
+        if ( 'D' == $period && 365 == $interval ) {
387
+            $period = 'Y';
388
+            $interval = 1;
389
+        }
390 390
 
391 391
         if ( $subscription_item->has_free_trial() ) {
392 392
 
393 393
             $paypal_args['a1'] = 0 == $initial_amount ? 0 : $initial_amount;
394 394
 
395
-			// Trial period length.
396
-			$paypal_args['p1'] = $subscription_item->get_trial_interval();
395
+            // Trial period length.
396
+            $paypal_args['p1'] = $subscription_item->get_trial_interval();
397 397
 
398
-			// Trial period.
399
-			$paypal_args['t1'] = $subscription_item->get_trial_period();
398
+            // Trial period.
399
+            $paypal_args['t1'] = $subscription_item->get_trial_period();
400 400
 
401 401
         } elseif ( $initial_amount != $recurring_amount ) {
402 402
 
@@ -419,40 +419,40 @@  discard block
 block discarded – undo
419 419
         }
420 420
 
421 421
         // We have a recurring payment
422
-		if ( ! isset( $param_number ) || 1 == $param_number ) {
422
+        if ( ! isset( $param_number ) || 1 == $param_number ) {
423 423
 
424
-			// Subscription price
425
-			$paypal_args['a3'] = $recurring_amount;
424
+            // Subscription price
425
+            $paypal_args['a3'] = $recurring_amount;
426 426
 
427
-			// Subscription duration
428
-			$paypal_args['p3'] = $interval;
427
+            // Subscription duration
428
+            $paypal_args['p3'] = $interval;
429 429
 
430
-			// Subscription period
431
-			$paypal_args['t3'] = $period;
430
+            // Subscription period
431
+            $paypal_args['t3'] = $period;
432 432
 
433 433
         }
434 434
 
435 435
         // Recurring payments
436
-		if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) {
436
+        if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) {
437 437
 
438
-			// Non-recurring payments
439
-			$paypal_args['src'] = 0;
438
+            // Non-recurring payments
439
+            $paypal_args['src'] = 0;
440 440
 
441
-		} else {
441
+        } else {
442 442
 
443
-			$paypal_args['src'] = 1;
443
+            $paypal_args['src'] = 1;
444 444
 
445
-			if ( $bill_times > 0 ) {
445
+            if ( $bill_times > 0 ) {
446 446
 
447
-				// An initial period is being used to charge a sign-up fee
448
-				if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) {
449
-					$bill_times--;
450
-				}
447
+                // An initial period is being used to charge a sign-up fee
448
+                if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) {
449
+                    $bill_times--;
450
+                }
451 451
 
452 452
                 // Make sure it's not over the max of 52
453 453
                 $paypal_args['srt'] = ( $bill_times <= 52 ? absint( $bill_times ) : 52 );
454 454
 
455
-			}
455
+            }
456 456
         }
457 457
 
458 458
         // Force return URL so that order description & instructions display
@@ -467,19 +467,19 @@  discard block
 block discarded – undo
467 467
 }
468 468
 
469 469
         return apply_filters(
470
-			'getpaid_paypal_subscription_args',
471
-			$paypal_args,
472
-			$invoice
470
+            'getpaid_paypal_subscription_args',
471
+            $paypal_args,
472
+            $invoice
473 473
         );
474 474
 
475 475
     }
476 476
 
477 477
     /**
478
-	 * Processes ipns and marks payments as complete.
479
-	 *
480
-	 * @return void
481
-	 */
482
-	public function verify_ipn() {
478
+     * Processes ipns and marks payments as complete.
479
+     *
480
+     * @return void
481
+     */
482
+    public function verify_ipn() {
483 483
         new GetPaid_Paypal_Gateway_IPN_Handler( $this );
484 484
     }
485 485
 
@@ -489,19 +489,19 @@  discard block
 block discarded – undo
489 489
     public function sandbox_notice() {
490 490
 
491 491
         return sprintf(
492
-			__( 'SANDBOX ENABLED. You can use sandbox testing accounts only. See the %1$sPayPal Sandbox Testing Guide%2$s for more details.', 'invoicing' ),
493
-			'<a href="https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/">',
494
-			'</a>'
495
-		);
492
+            __( 'SANDBOX ENABLED. You can use sandbox testing accounts only. See the %1$sPayPal Sandbox Testing Guide%2$s for more details.', 'invoicing' ),
493
+            '<a href="https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/">',
494
+            '</a>'
495
+        );
496 496
 
497 497
     }
498 498
 
499
-	/**
500
-	 * Filters the gateway settings.
501
-	 *
502
-	 * @param array $admin_settings
503
-	 */
504
-	public function admin_settings( $admin_settings ) {
499
+    /**
500
+     * Filters the gateway settings.
501
+     *
502
+     * @param array $admin_settings
503
+     */
504
+    public function admin_settings( $admin_settings ) {
505 505
 
506 506
         $currencies = sprintf(
507 507
             __( 'Supported Currencies: %s', 'invoicing' ),
@@ -511,66 +511,66 @@  discard block
 block discarded – undo
511 511
         $admin_settings['paypal_active']['desc'] .= " ($currencies)";
512 512
         $admin_settings['paypal_desc']['std']     = __( 'Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing' );
513 513
 
514
-		// Access tokens.
515
-		$live_email      = wpinv_get_option( 'paypal_email' );
516
-		$sandbox_email   = wpinv_get_option( 'paypal_sandbox_email' );
514
+        // Access tokens.
515
+        $live_email      = wpinv_get_option( 'paypal_email' );
516
+        $sandbox_email   = wpinv_get_option( 'paypal_sandbox_email' );
517 517
 
518
-		$admin_settings['paypal_connect'] = array(
519
-			'type' => 'hook',
520
-			'id'   => 'paypal_connect',
521
-			'name' => __( 'Connect to PayPal', 'invoicing' ),
522
-		);
518
+        $admin_settings['paypal_connect'] = array(
519
+            'type' => 'hook',
520
+            'id'   => 'paypal_connect',
521
+            'name' => __( 'Connect to PayPal', 'invoicing' ),
522
+        );
523 523
 
524 524
         $admin_settings['paypal_email'] = array(
525 525
             'type'  => 'text',
526
-			'class' => 'live-auth-data',
526
+            'class' => 'live-auth-data',
527 527
             'id'    => 'paypal_email',
528 528
             'name'  => __( 'Live Email Address', 'invoicing' ),
529 529
             'desc'  => __( 'The email address of your PayPal account.', 'invoicing' ),
530 530
         );
531 531
 
532
-		$admin_settings['paypal_sandbox_email'] = array(
532
+        $admin_settings['paypal_sandbox_email'] = array(
533 533
             'type'  => 'text',
534
-			'class' => 'sandbox-auth-data',
534
+            'class' => 'sandbox-auth-data',
535 535
             'id'    => 'paypal_sandbox_email',
536 536
             'name'  => __( 'Sandbox Email Address', 'invoicing' ),
537 537
             'desc'  => __( 'The email address of your sandbox PayPal account.', 'invoicing' ),
538
-			'std'   => wpinv_get_option( 'paypal_email', '' ),
538
+            'std'   => wpinv_get_option( 'paypal_email', '' ),
539
+        );
540
+
541
+        // Client ID and secret.
542
+        $admin_settings['paypal_client_id'] = array(
543
+            'type'  => 'text',
544
+            'class' => 'live-auth-data',
545
+            'id'    => 'paypal_client_id',
546
+            'name'  => __( 'Live Client ID', 'invoicing' ),
547
+            'desc'  => __( 'The client ID of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
548
+        );
549
+
550
+        $admin_settings['paypal_sandbox_client_id'] = array(
551
+            'type'  => 'text',
552
+            'class' => 'sandbox-auth-data',
553
+            'id'    => 'paypal_sandbox_client_id',
554
+            'name'  => __( 'Sandbox Client ID', 'invoicing' ),
555
+            'desc'  => __( 'The client ID of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
556
+            'std'   => wpinv_get_option( 'paypal_client_id', '' ),
539 557
         );
540 558
 
541
-		// Client ID and secret.
542
-		$admin_settings['paypal_client_id'] = array(
543
-			'type'  => 'text',
544
-			'class' => 'live-auth-data',
545
-			'id'    => 'paypal_client_id',
546
-			'name'  => __( 'Live Client ID', 'invoicing' ),
547
-			'desc'  => __( 'The client ID of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
548
-		);
549
-
550
-		$admin_settings['paypal_sandbox_client_id'] = array(
551
-			'type'  => 'text',
552
-			'class' => 'sandbox-auth-data',
553
-			'id'    => 'paypal_sandbox_client_id',
554
-			'name'  => __( 'Sandbox Client ID', 'invoicing' ),
555
-			'desc'  => __( 'The client ID of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
556
-			'std'   => wpinv_get_option( 'paypal_client_id', '' ),
557
-		);
558
-
559
-		$admin_settings['paypal_secret'] = array(
560
-			'type'  => 'text',
561
-			'class' => 'live-auth-data',
562
-			'id'    => 'paypal_secret',
563
-			'name'  => __( 'Live Secret', 'invoicing' ),
564
-			'desc'  => __( 'The secret of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
565
-		);
566
-
567
-		$admin_settings['paypal_sandbox_secret'] = array(
568
-			'type'  => 'text',
569
-			'class' => 'sandbox-auth-data',
570
-			'id'    => 'paypal_sandbox_secret',
571
-			'name'  => __( 'Sandbox Secret', 'invoicing' ),
572
-			'desc'  => __( 'The secret of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
573
-		);
559
+        $admin_settings['paypal_secret'] = array(
560
+            'type'  => 'text',
561
+            'class' => 'live-auth-data',
562
+            'id'    => 'paypal_secret',
563
+            'name'  => __( 'Live Secret', 'invoicing' ),
564
+            'desc'  => __( 'The secret of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
565
+        );
566
+
567
+        $admin_settings['paypal_sandbox_secret'] = array(
568
+            'type'  => 'text',
569
+            'class' => 'sandbox-auth-data',
570
+            'id'    => 'paypal_sandbox_secret',
571
+            'name'  => __( 'Sandbox Secret', 'invoicing' ),
572
+            'desc'  => __( 'The secret of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
573
+        );
574 574
 
575 575
         $admin_settings['paypal_ipn_url'] = array(
576 576
             'type'     => 'ipn_url',
@@ -581,57 +581,57 @@  discard block
 block discarded – undo
581 581
             'readonly' => true,
582 582
         );
583 583
 
584
-		return $admin_settings;
585
-	}
586
-
587
-	/**
588
-	 * Retrieves the URL to cancel a subscription.
589
-	 *
590
-	 * @param string $url
591
-	 * @param WPInv_Subscription $subscription
592
-	 */
593
-	public function filter_cancel_subscription_url( $url, $subscription ) {
594
-
595
-		if ( $this->id !== $subscription->get_gateway() ) {
596
-			return $url;
597
-		}
598
-
599
-		// Get the PayPal profile ID.
600
-		$profile_id = $subscription->get_profile_id();
601
-
602
-		// Bail if no profile ID.
603
-		if ( empty( $profile_id ) ) {
604
-			return $url;
605
-		}
606
-
607
-		$cancel_url = 'https://www.paypal.com/myaccount/autopay/connect/%s/cancel';
608
-		if ( $this->is_sandbox( $subscription->get_parent_payment() ) ) {
609
-			$cancel_url = 'https://www.sandbox.paypal.com/myaccount/autopay/connect/%s/cancel';
610
-		}
611
-
612
-		return sprintf( $cancel_url, $profile_id );
613
-	}
614
-
615
-	/**
616
-	 * Retrieves the PayPal connect URL when using the setup wizzard.
617
-	 *
618
-	 *
584
+        return $admin_settings;
585
+    }
586
+
587
+    /**
588
+     * Retrieves the URL to cancel a subscription.
589
+     *
590
+     * @param string $url
591
+     * @param WPInv_Subscription $subscription
592
+     */
593
+    public function filter_cancel_subscription_url( $url, $subscription ) {
594
+
595
+        if ( $this->id !== $subscription->get_gateway() ) {
596
+            return $url;
597
+        }
598
+
599
+        // Get the PayPal profile ID.
600
+        $profile_id = $subscription->get_profile_id();
601
+
602
+        // Bail if no profile ID.
603
+        if ( empty( $profile_id ) ) {
604
+            return $url;
605
+        }
606
+
607
+        $cancel_url = 'https://www.paypal.com/myaccount/autopay/connect/%s/cancel';
608
+        if ( $this->is_sandbox( $subscription->get_parent_payment() ) ) {
609
+            $cancel_url = 'https://www.sandbox.paypal.com/myaccount/autopay/connect/%s/cancel';
610
+        }
611
+
612
+        return sprintf( $cancel_url, $profile_id );
613
+    }
614
+
615
+    /**
616
+     * Retrieves the PayPal connect URL when using the setup wizzard.
617
+     *
618
+     *
619 619
      * @param array $data
620 620
      * @return string
621
-	 */
622
-	public static function maybe_get_connect_url( $url = '', $data = array() ) {
623
-		return self::get_connect_url( false, urldecode( $data['redirect'] ) );
624
-	}
625
-
626
-	/**
627
-	 * Retrieves the PayPal connect URL.
628
-	 *
629
-	 *
621
+     */
622
+    public static function maybe_get_connect_url( $url = '', $data = array() ) {
623
+        return self::get_connect_url( false, urldecode( $data['redirect'] ) );
624
+    }
625
+
626
+    /**
627
+     * Retrieves the PayPal connect URL.
628
+     *
629
+     *
630 630
      * @param bool $is_sandbox
631
-	 * @param string $redirect
631
+     * @param string $redirect
632 632
      * @return string
633
-	 */
634
-	public static function get_connect_url( $is_sandbox, $redirect = '' ) {
633
+     */
634
+    public static function get_connect_url( $is_sandbox, $redirect = '' ) {
635 635
 
636 636
         $redirect_url = add_query_arg(
637 637
             array(
@@ -641,7 +641,7 @@  discard block
 block discarded – undo
641 641
                 'tab'                  => 'gateways',
642 642
                 'section'              => 'paypal',
643 643
                 'getpaid-nonce'        => wp_create_nonce( 'getpaid-nonce' ),
644
-				'redirect'             => urlencode( $redirect ),
644
+                'redirect'             => urlencode( $redirect ),
645 645
             ),
646 646
             admin_url( 'admin.php' )
647 647
         );
@@ -656,12 +656,12 @@  discard block
 block discarded – undo
656 656
 
657 657
     }
658 658
 
659
-	/**
660
-	 * Generates settings page js.
661
-	 *
659
+    /**
660
+     * Generates settings page js.
661
+     *
662 662
      * @return void
663
-	 */
664
-	public static function display_connect_buttons() {
663
+     */
664
+    public static function display_connect_buttons() {
665 665
 
666 666
         ?>
667 667
 			<div class="wpinv-paypal-connect-live">
@@ -703,70 +703,70 @@  discard block
 block discarded – undo
703 703
         <?php
704 704
     }
705 705
 
706
-	/**
707
-	 * Connects to PayPal.
708
-	 *
709
-	 * @param array $data Connection data.
710
-	 * @return void
711
-	 */
712
-	public function connect_paypal( $data ) {
713
-
714
-		$sandbox      = $this->is_sandbox();
715
-		$data         = wp_unslash( $data );
716
-		$access_token = empty( $data['access_token'] ) ? '' : sanitize_text_field( $data['access_token'] );
717
-
718
-		if ( isset( $data['live_mode'] ) ) {
719
-			$sandbox = empty( $data['live_mode'] );
720
-		}
721
-
722
-		wpinv_update_option( 'paypal_sandbox', (int) $sandbox );
723
-		wpinv_update_option( 'paypal_active', 1 );
724
-
725
-		if ( ! empty( $data['error_description'] ) ) {
726
-			getpaid_admin()->show_error( wp_kses_post( urldecode( $data['error_description'] ) ) );
727
-		} else {
728
-
729
-			// Retrieve the user info.
730
-			$user_info = wp_remote_get(
731
-				! $sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
732
-				array(
733
-
734
-					'headers' => array(
735
-						'Authorization' => 'Bearer ' . $access_token,
736
-						'Content-type'  => 'application/json',
737
-					),
738
-
739
-				)
740
-			);
741
-
742
-			if ( is_wp_error( $user_info ) ) {
743
-				getpaid_admin()->show_error( wp_kses_post( $user_info->get_error_message() ) );
744
-			} else {
745
-
746
-				// Create application.
747
-				$user_info = json_decode( wp_remote_retrieve_body( $user_info ) );
748
-
749
-				if ( $sandbox ) {
750
-					wpinv_update_option( 'paypal_sandbox_email', sanitize_email( $user_info->emails[0]->value ) );
751
-					wpinv_update_option( 'paypal_sandbox_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
752
-					set_transient( 'getpaid_paypal_sandbox_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
753
-					getpaid_admin()->show_success( __( 'Successfully connected your PayPal sandbox account', 'invoicing' ) );
754
-				} else {
755
-					wpinv_update_option( 'paypal_email', sanitize_email( $user_info->emails[0]->value ) );
756
-					wpinv_update_option( 'paypal_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
757
-					set_transient( 'getpaid_paypal_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
758
-					getpaid_admin()->show_success( __( 'Successfully connected your PayPal account', 'invoicing' ) );
759
-				}
706
+    /**
707
+     * Connects to PayPal.
708
+     *
709
+     * @param array $data Connection data.
710
+     * @return void
711
+     */
712
+    public function connect_paypal( $data ) {
713
+
714
+        $sandbox      = $this->is_sandbox();
715
+        $data         = wp_unslash( $data );
716
+        $access_token = empty( $data['access_token'] ) ? '' : sanitize_text_field( $data['access_token'] );
717
+
718
+        if ( isset( $data['live_mode'] ) ) {
719
+            $sandbox = empty( $data['live_mode'] );
720
+        }
721
+
722
+        wpinv_update_option( 'paypal_sandbox', (int) $sandbox );
723
+        wpinv_update_option( 'paypal_active', 1 );
724
+
725
+        if ( ! empty( $data['error_description'] ) ) {
726
+            getpaid_admin()->show_error( wp_kses_post( urldecode( $data['error_description'] ) ) );
727
+        } else {
728
+
729
+            // Retrieve the user info.
730
+            $user_info = wp_remote_get(
731
+                ! $sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
732
+                array(
733
+
734
+                    'headers' => array(
735
+                        'Authorization' => 'Bearer ' . $access_token,
736
+                        'Content-type'  => 'application/json',
737
+                    ),
738
+
739
+                )
740
+            );
741
+
742
+            if ( is_wp_error( $user_info ) ) {
743
+                getpaid_admin()->show_error( wp_kses_post( $user_info->get_error_message() ) );
744
+            } else {
745
+
746
+                // Create application.
747
+                $user_info = json_decode( wp_remote_retrieve_body( $user_info ) );
748
+
749
+                if ( $sandbox ) {
750
+                    wpinv_update_option( 'paypal_sandbox_email', sanitize_email( $user_info->emails[0]->value ) );
751
+                    wpinv_update_option( 'paypal_sandbox_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
752
+                    set_transient( 'getpaid_paypal_sandbox_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
753
+                    getpaid_admin()->show_success( __( 'Successfully connected your PayPal sandbox account', 'invoicing' ) );
754
+                } else {
755
+                    wpinv_update_option( 'paypal_email', sanitize_email( $user_info->emails[0]->value ) );
756
+                    wpinv_update_option( 'paypal_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
757
+                    set_transient( 'getpaid_paypal_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
758
+                    getpaid_admin()->show_success( __( 'Successfully connected your PayPal account', 'invoicing' ) );
759
+                }
760 760
 }
761 761
 }
762 762
 
763
-		$redirect = empty( $data['redirect'] ) ? admin_url( 'admin.php?page=wpinv-settings&tab=gateways&section=paypal' ) : urldecode( $data['redirect'] );
763
+        $redirect = empty( $data['redirect'] ) ? admin_url( 'admin.php?page=wpinv-settings&tab=gateways&section=paypal' ) : urldecode( $data['redirect'] );
764 764
 
765
-		if ( isset( $data['step'] ) ) {
766
-			$redirect = add_query_arg( 'step', $data['step'], $redirect );
767
-		}
768
-		wp_redirect( $redirect );
769
-		exit;
770
-	}
765
+        if ( isset( $data['step'] ) ) {
766
+            $redirect = add_query_arg( 'step', $data['step'], $redirect );
767
+        }
768
+        wp_redirect( $redirect );
769
+        exit;
770
+    }
771 771
 
772 772
 }
Please login to merge, or discard this patch.
Spacing   +160 added lines, -160 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 
9 9
 /**
10 10
  * Paypal Payment Gateway class.
@@ -24,7 +24,7 @@  discard block
 block discarded – undo
24 24
 	 *
25 25
 	 * @var array
26 26
 	 */
27
-    protected $supports = array( 'subscription', 'sandbox', 'single_subscription_group' );
27
+    protected $supports = array('subscription', 'sandbox', 'single_subscription_group');
28 28
 
29 29
     /**
30 30
 	 * Payment method order.
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
 	 *
60 60
 	 * @var array
61 61
 	 */
62
-	public $currencies = array( 'AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR' );
62
+	public $currencies = array('AUD', 'BRL', 'CAD', 'MXN', 'NZD', 'HKD', 'SGD', 'USD', 'EUR', 'JPY', 'TRY', 'NOK', 'CZK', 'DKK', 'HUF', 'ILS', 'MYR', 'PHP', 'PLN', 'SEK', 'CHF', 'TWD', 'THB', 'GBP', 'RMB', 'RUB', 'INR');
63 63
 
64 64
     /**
65 65
 	 * URL to view a transaction.
@@ -80,17 +80,17 @@  discard block
 block discarded – undo
80 80
 	 */
81 81
 	public function __construct() {
82 82
 
83
-        $this->title                = __( 'PayPal Standard', 'invoicing' );
84
-        $this->method_title         = __( 'PayPal Standard', 'invoicing' );
85
-        $this->checkout_button_text = __( 'Proceed to PayPal', 'invoicing' );
86
-        $this->notify_url           = wpinv_get_ipn_url( $this->id );
87
-
88
-		add_filter( 'wpinv_subscription_cancel_url', array( $this, 'filter_cancel_subscription_url' ), 10, 2 );
89
-		add_filter( 'getpaid_paypal_args', array( $this, 'process_subscription' ), 10, 2 );
90
-        add_filter( 'getpaid_paypal_sandbox_notice', array( $this, 'sandbox_notice' ) );
91
-		add_filter( 'getpaid_get_paypal_connect_url', array( $this, 'maybe_get_connect_url' ), 10, 2 );
92
-		add_action( 'getpaid_authenticated_admin_action_connect_paypal', array( $this, 'connect_paypal' ) );
93
-		add_action( 'wpinv_paypal_connect', array( $this, 'display_connect_buttons' ) );
83
+        $this->title                = __('PayPal Standard', 'invoicing');
84
+        $this->method_title         = __('PayPal Standard', 'invoicing');
85
+        $this->checkout_button_text = __('Proceed to PayPal', 'invoicing');
86
+        $this->notify_url           = wpinv_get_ipn_url($this->id);
87
+
88
+		add_filter('wpinv_subscription_cancel_url', array($this, 'filter_cancel_subscription_url'), 10, 2);
89
+		add_filter('getpaid_paypal_args', array($this, 'process_subscription'), 10, 2);
90
+        add_filter('getpaid_paypal_sandbox_notice', array($this, 'sandbox_notice'));
91
+		add_filter('getpaid_get_paypal_connect_url', array($this, 'maybe_get_connect_url'), 10, 2);
92
+		add_action('getpaid_authenticated_admin_action_connect_paypal', array($this, 'connect_paypal'));
93
+		add_action('wpinv_paypal_connect', array($this, 'display_connect_buttons'));
94 94
 		parent::__construct();
95 95
     }
96 96
 
@@ -103,16 +103,16 @@  discard block
 block discarded – undo
103 103
 	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
104 104
 	 * @return array
105 105
 	 */
106
-	public function process_payment( $invoice, $submission_data, $submission ) {
106
+	public function process_payment($invoice, $submission_data, $submission) {
107 107
 
108 108
         // Get redirect url.
109
-        $paypal_redirect = $this->get_request_url( $invoice );
109
+        $paypal_redirect = $this->get_request_url($invoice);
110 110
 
111 111
         // Add a note about the request url.
112 112
         $invoice->add_note(
113 113
             sprintf(
114
-                __( 'Redirecting to PayPal: %s', 'invoicing' ),
115
-                esc_url( $paypal_redirect )
114
+                __('Redirecting to PayPal: %s', 'invoicing'),
115
+                esc_url($paypal_redirect)
116 116
             ),
117 117
             false,
118 118
             false,
@@ -120,7 +120,7 @@  discard block
 block discarded – undo
120 120
         );
121 121
 
122 122
         // Redirect to PayPal
123
-        wp_redirect( $paypal_redirect );
123
+        wp_redirect($paypal_redirect);
124 124
         exit;
125 125
 
126 126
     }
@@ -131,21 +131,21 @@  discard block
 block discarded – undo
131 131
 	 * @param  WPInv_Invoice $invoice Invoice object.
132 132
 	 * @return string
133 133
 	 */
134
-	public function get_request_url( $invoice ) {
134
+	public function get_request_url($invoice) {
135 135
 
136 136
         // Endpoint for this request
137
-		$this->endpoint    = $this->is_sandbox( $invoice ) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
137
+		$this->endpoint = $this->is_sandbox($invoice) ? 'https://www.sandbox.paypal.com/cgi-bin/webscr?test_ipn=1&' : 'https://www.paypal.com/cgi-bin/webscr?';
138 138
 
139 139
         // Retrieve paypal args.
140
-        $paypal_args       = map_deep( $this->get_paypal_args( $invoice ), 'urlencode' );
140
+        $paypal_args = map_deep($this->get_paypal_args($invoice), 'urlencode');
141 141
 
142
-        if ( $invoice->is_recurring() ) {
142
+        if ($invoice->is_recurring()) {
143 143
             $paypal_args['bn'] = 'GetPaid_Subscribe_WPS_US';
144 144
         } else {
145 145
             $paypal_args['bn'] = 'GetPaid_ShoppingCart_WPS_US';
146 146
         }
147 147
 
148
-        return add_query_arg( $paypal_args, $this->endpoint );
148
+        return add_query_arg($paypal_args, $this->endpoint);
149 149
 
150 150
 	}
151 151
 
@@ -155,25 +155,25 @@  discard block
 block discarded – undo
155 155
 	 * @param  WPInv_Invoice $invoice Invoice object.
156 156
 	 * @return array
157 157
 	 */
158
-	protected function get_paypal_args( $invoice ) {
158
+	protected function get_paypal_args($invoice) {
159 159
 
160 160
         // Whether or not to send the line items as one item.
161
-		$force_one_line_item = apply_filters( 'getpaid_paypal_force_one_line_item', true, $invoice );
161
+		$force_one_line_item = apply_filters('getpaid_paypal_force_one_line_item', true, $invoice);
162 162
 
163
-		if ( $invoice->is_recurring() || ( wpinv_use_taxes() && wpinv_prices_include_tax() ) ) {
163
+		if ($invoice->is_recurring() || (wpinv_use_taxes() && wpinv_prices_include_tax())) {
164 164
 			$force_one_line_item = true;
165 165
 		}
166 166
 
167 167
 		$paypal_args = apply_filters(
168 168
 			'getpaid_paypal_args',
169 169
 			array_merge(
170
-				$this->get_transaction_args( $invoice ),
171
-				$this->get_line_item_args( $invoice, $force_one_line_item )
170
+				$this->get_transaction_args($invoice),
171
+				$this->get_line_item_args($invoice, $force_one_line_item)
172 172
 			),
173 173
 			$invoice
174 174
 		);
175 175
 
176
-		return $this->fix_request_length( $invoice, $paypal_args );
176
+		return $this->fix_request_length($invoice, $paypal_args);
177 177
     }
178 178
 
179 179
     /**
@@ -182,9 +182,9 @@  discard block
 block discarded – undo
182 182
 	 * @param WPInv_Invoice $invoice Invoice object.
183 183
 	 * @return array
184 184
 	 */
185
-	protected function get_transaction_args( $invoice ) {
185
+	protected function get_transaction_args($invoice) {
186 186
 
187
-		$email = $this->is_sandbox( $invoice ) ? wpinv_get_option( 'paypal_sandbox_email', wpinv_get_option( 'paypal_email', '' ) ) : wpinv_get_option( 'paypal_email', '' );
187
+		$email = $this->is_sandbox($invoice) ? wpinv_get_option('paypal_sandbox_email', wpinv_get_option('paypal_email', '')) : wpinv_get_option('paypal_email', '');
188 188
 		return array(
189 189
             'cmd'           => '_cart',
190 190
             'business'      => $email,
@@ -195,16 +195,16 @@  discard block
 block discarded – undo
195 195
             'rm'            => is_ssl() ? 2 : 1,
196 196
             'upload'        => 1,
197 197
             'currency_code' => $invoice->get_currency(), // https://developer.paypal.com/docs/nvp-soap-api/currency-codes/#paypal
198
-            'return'        => esc_url_raw( $this->get_return_url( $invoice ) ),
199
-            'cancel_return' => esc_url_raw( $invoice->get_checkout_payment_url() ),
200
-            'notify_url'    => getpaid_limit_length( $this->notify_url, 255 ),
201
-            'invoice'       => getpaid_limit_length( $invoice->get_number(), 127 ),
198
+            'return'        => esc_url_raw($this->get_return_url($invoice)),
199
+            'cancel_return' => esc_url_raw($invoice->get_checkout_payment_url()),
200
+            'notify_url'    => getpaid_limit_length($this->notify_url, 255),
201
+            'invoice'       => getpaid_limit_length($invoice->get_number(), 127),
202 202
             'custom'        => $invoice->get_id(),
203
-            'first_name'    => getpaid_limit_length( $invoice->get_first_name(), 32 ),
204
-            'last_name'     => getpaid_limit_length( $invoice->get_last_name(), 64 ),
205
-            'country'       => getpaid_limit_length( $invoice->get_country(), 2 ),
206
-            'email'         => getpaid_limit_length( $invoice->get_email(), 127 ),
207
-            'cbt'           => get_bloginfo( 'name' ),
203
+            'first_name'    => getpaid_limit_length($invoice->get_first_name(), 32),
204
+            'last_name'     => getpaid_limit_length($invoice->get_last_name(), 64),
205
+            'country'       => getpaid_limit_length($invoice->get_country(), 2),
206
+            'email'         => getpaid_limit_length($invoice->get_email(), 127),
207
+            'cbt'           => get_bloginfo('name'),
208 208
         );
209 209
 
210 210
     }
@@ -216,30 +216,30 @@  discard block
 block discarded – undo
216 216
 	 * @param  bool     $force_one_line_item Create only one item for this invoice.
217 217
 	 * @return array
218 218
 	 */
219
-	protected function get_line_item_args( $invoice, $force_one_line_item = false ) {
219
+	protected function get_line_item_args($invoice, $force_one_line_item = false) {
220 220
 
221 221
         // Maybe send invoice as a single item.
222
-		if ( $force_one_line_item ) {
223
-            return $this->get_line_item_args_single_item( $invoice );
222
+		if ($force_one_line_item) {
223
+            return $this->get_line_item_args_single_item($invoice);
224 224
         }
225 225
 
226 226
         // Send each line item individually.
227 227
         $line_item_args = array();
228 228
 
229 229
         // Prepare line items.
230
-        $this->prepare_line_items( $invoice );
230
+        $this->prepare_line_items($invoice);
231 231
 
232 232
         // Add taxes to the cart
233
-        if ( wpinv_use_taxes() && $invoice->is_taxable() ) {
234
-            $line_item_args['tax_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_tax(), 2 );
233
+        if (wpinv_use_taxes() && $invoice->is_taxable()) {
234
+            $line_item_args['tax_cart'] = wpinv_sanitize_amount((float) $invoice->get_total_tax(), 2);
235 235
         }
236 236
 
237 237
         // Add discount.
238
-        if ( $invoice->get_total_discount() > 0 ) {
239
-            $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount( (float) $invoice->get_total_discount(), 2 );
238
+        if ($invoice->get_total_discount() > 0) {
239
+            $line_item_args['discount_amount_cart'] = wpinv_sanitize_amount((float) $invoice->get_total_discount(), 2);
240 240
         }
241 241
 
242
-		return array_merge( $line_item_args, $this->get_line_items() );
242
+		return array_merge($line_item_args, $this->get_line_items());
243 243
 
244 244
     }
245 245
 
@@ -249,11 +249,11 @@  discard block
 block discarded – undo
249 249
 	 * @param  WPInv_Invoice $invoice Invoice object.
250 250
 	 * @return array
251 251
 	 */
252
-	protected function get_line_item_args_single_item( $invoice ) {
252
+	protected function get_line_item_args_single_item($invoice) {
253 253
 		$this->delete_line_items();
254 254
 
255
-        $item_name = sprintf( __( 'Invoice #%s', 'invoicing' ), $invoice->get_number() );
256
-		$this->add_line_item( $item_name, 1, wpinv_round_amount( (float) $invoice->get_total(), 2, true ), $invoice->get_id() );
255
+        $item_name = sprintf(__('Invoice #%s', 'invoicing'), $invoice->get_number());
256
+		$this->add_line_item($item_name, 1, wpinv_round_amount((float) $invoice->get_total(), 2, true), $invoice->get_id());
257 257
 
258 258
 		return $this->get_line_items();
259 259
     }
@@ -277,19 +277,19 @@  discard block
 block discarded – undo
277 277
 	 *
278 278
 	 * @param  WPInv_Invoice $invoice Invoice object.
279 279
 	 */
280
-	protected function prepare_line_items( $invoice ) {
280
+	protected function prepare_line_items($invoice) {
281 281
 		$this->delete_line_items();
282 282
 
283 283
 		// Items.
284
-		foreach ( $invoice->get_items() as $item ) {
284
+		foreach ($invoice->get_items() as $item) {
285 285
 			$amount   = $item->get_price();
286 286
 			$quantity = $invoice->get_template() == 'amount' ? 1 : $item->get_quantity();
287
-			$this->add_line_item( $item->get_raw_name(), $quantity, $amount, $item->get_id() );
287
+			$this->add_line_item($item->get_raw_name(), $quantity, $amount, $item->get_id());
288 288
         }
289 289
 
290 290
         // Fees.
291
-		foreach ( $invoice->get_fees() as $fee => $data ) {
292
-            $this->add_line_item( $fee, 1, wpinv_sanitize_amount( $data['initial_fee'] ) );
291
+		foreach ($invoice->get_fees() as $fee => $data) {
292
+            $this->add_line_item($fee, 1, wpinv_sanitize_amount($data['initial_fee']));
293 293
         }
294 294
 
295 295
     }
@@ -302,15 +302,15 @@  discard block
 block discarded – undo
302 302
 	 * @param  float  $amount Amount.
303 303
 	 * @param  string $item_number Item number.
304 304
 	 */
305
-	protected function add_line_item( $item_name, $quantity = 1, $amount = 0.0, $item_number = '' ) {
306
-		$index = ( count( $this->line_items ) / 4 ) + 1;
305
+	protected function add_line_item($item_name, $quantity = 1, $amount = 0.0, $item_number = '') {
306
+		$index = (count($this->line_items) / 4) + 1;
307 307
 
308 308
 		$item = apply_filters(
309 309
 			'getpaid_paypal_line_item',
310 310
 			array(
311
-				'item_name'   => html_entity_decode( getpaid_limit_length( $item_name ? wp_strip_all_tags( $item_name ) : __( 'Item', 'invoicing' ), 127 ), ENT_NOQUOTES, 'UTF-8' ),
311
+				'item_name'   => html_entity_decode(getpaid_limit_length($item_name ? wp_strip_all_tags($item_name) : __('Item', 'invoicing'), 127), ENT_NOQUOTES, 'UTF-8'),
312 312
 				'quantity'    => (float) $quantity,
313
-				'amount'      => wpinv_sanitize_amount( (float) $amount, 2 ),
313
+				'amount'      => wpinv_sanitize_amount((float) $amount, 2),
314 314
 				'item_number' => $item_number,
315 315
 			),
316 316
 			$item_name,
@@ -319,12 +319,12 @@  discard block
 block discarded – undo
319 319
 			$item_number
320 320
 		);
321 321
 
322
-		$this->line_items[ 'item_name_' . $index ]   = getpaid_limit_length( $item['item_name'], 127 );
323
-        $this->line_items[ 'quantity_' . $index ]    = $item['quantity'];
322
+		$this->line_items['item_name_' . $index] = getpaid_limit_length($item['item_name'], 127);
323
+        $this->line_items['quantity_' . $index] = $item['quantity'];
324 324
 
325 325
         // The price or amount of the product, service, or contribution, not including shipping, handling, or tax.
326
-		$this->line_items[ 'amount_' . $index ]      = $item['amount'] * $item['quantity'];
327
-		$this->line_items[ 'item_number_' . $index ] = getpaid_limit_length( $item['item_number'], 127 );
326
+		$this->line_items['amount_' . $index]      = $item['amount'] * $item['quantity'];
327
+		$this->line_items['item_number_' . $index] = getpaid_limit_length($item['item_number'], 127);
328 328
     }
329 329
 
330 330
     /**
@@ -336,19 +336,19 @@  discard block
 block discarded – undo
336 336
 	 * @param array    $paypal_args Arguments sent to Paypal in the request.
337 337
 	 * @return array
338 338
 	 */
339
-	protected function fix_request_length( $invoice, $paypal_args ) {
339
+	protected function fix_request_length($invoice, $paypal_args) {
340 340
 		$max_paypal_length = 2083;
341
-		$query_candidate   = http_build_query( $paypal_args, '', '&' );
341
+		$query_candidate   = http_build_query($paypal_args, '', '&');
342 342
 
343
-		if ( strlen( $this->endpoint . $query_candidate ) <= $max_paypal_length ) {
343
+		if (strlen($this->endpoint . $query_candidate) <= $max_paypal_length) {
344 344
 			return $paypal_args;
345 345
 		}
346 346
 
347 347
 		return apply_filters(
348 348
 			'getpaid_paypal_args',
349 349
 			array_merge(
350
-				$this->get_transaction_args( $invoice ),
351
-				$this->get_line_item_args( $invoice, true )
350
+				$this->get_transaction_args($invoice),
351
+				$this->get_line_item_args($invoice, true)
352 352
 			),
353 353
 			$invoice
354 354
 		);
@@ -361,10 +361,10 @@  discard block
 block discarded – undo
361 361
 	 * @param  array $paypal_args PayPal args.
362 362
 	 * @param  WPInv_Invoice    $invoice Invoice object.
363 363
 	 */
364
-	public function process_subscription( $paypal_args, $invoice ) {
364
+	public function process_subscription($paypal_args, $invoice) {
365 365
 
366 366
         // Make sure this is a subscription.
367
-        if ( ! $invoice->is_recurring() || ! $subscription = getpaid_get_invoice_subscription( $invoice ) ) {
367
+        if (!$invoice->is_recurring() || !$subscription = getpaid_get_invoice_subscription($invoice)) {
368 368
             return $paypal_args;
369 369
         }
370 370
 
@@ -372,23 +372,23 @@  discard block
 block discarded – undo
372 372
         $paypal_args['cmd'] = '_xclick-subscriptions';
373 373
 
374 374
         // Subscription name.
375
-        $paypal_args['item_name'] = sprintf( __( 'Invoice #%s', 'invoicing' ), $invoice->get_number() );
375
+        $paypal_args['item_name'] = sprintf(__('Invoice #%s', 'invoicing'), $invoice->get_number());
376 376
 
377 377
         // Get subscription args.
378
-        $period                 = strtoupper( substr( $subscription->get_period(), 0, 1 ) );
378
+        $period                 = strtoupper(substr($subscription->get_period(), 0, 1));
379 379
         $interval               = (int) $subscription->get_frequency();
380 380
         $bill_times             = (int) $subscription->get_bill_times();
381
-        $initial_amount         = (float) wpinv_sanitize_amount( $invoice->get_initial_total(), 2 );
382
-        $recurring_amount       = (float) wpinv_sanitize_amount( $invoice->get_recurring_total(), 2 );
383
-        $subscription_item      = $invoice->get_recurring( true );
381
+        $initial_amount         = (float) wpinv_sanitize_amount($invoice->get_initial_total(), 2);
382
+        $recurring_amount       = (float) wpinv_sanitize_amount($invoice->get_recurring_total(), 2);
383
+        $subscription_item      = $invoice->get_recurring(true);
384 384
 
385 385
 		// Convert 365 days to 1 year.
386
-		if ( 'D' == $period && 365 == $interval ) {
386
+		if ('D' == $period && 365 == $interval) {
387 387
 			$period = 'Y';
388 388
 			$interval = 1;
389 389
 		}
390 390
 
391
-        if ( $subscription_item->has_free_trial() ) {
391
+        if ($subscription_item->has_free_trial()) {
392 392
 
393 393
             $paypal_args['a1'] = 0 == $initial_amount ? 0 : $initial_amount;
394 394
 
@@ -398,28 +398,28 @@  discard block
 block discarded – undo
398 398
 			// Trial period.
399 399
 			$paypal_args['t1'] = $subscription_item->get_trial_period();
400 400
 
401
-        } elseif ( $initial_amount != $recurring_amount ) {
401
+        } elseif ($initial_amount != $recurring_amount) {
402 402
 
403 403
             // No trial period, but initial amount includes a sign-up fee and/or other items, so charge it as a separate period.
404 404
 
405
-            if ( 1 == $bill_times ) {
405
+            if (1 == $bill_times) {
406 406
                 $param_number = 3;
407 407
             } else {
408 408
                 $param_number = 1;
409 409
             }
410 410
 
411
-            $paypal_args[ 'a' . $param_number ] = $initial_amount ? $initial_amount : 0;
411
+            $paypal_args['a' . $param_number] = $initial_amount ? $initial_amount : 0;
412 412
 
413 413
             // Sign Up interval
414
-            $paypal_args[ 'p' . $param_number ] = $interval;
414
+            $paypal_args['p' . $param_number] = $interval;
415 415
 
416 416
             // Sign Up unit of duration
417
-            $paypal_args[ 't' . $param_number ] = $period;
417
+            $paypal_args['t' . $param_number] = $period;
418 418
 
419 419
         }
420 420
 
421 421
         // We have a recurring payment
422
-		if ( ! isset( $param_number ) || 1 == $param_number ) {
422
+		if (!isset($param_number) || 1 == $param_number) {
423 423
 
424 424
 			// Subscription price
425 425
 			$paypal_args['a3'] = $recurring_amount;
@@ -433,7 +433,7 @@  discard block
 block discarded – undo
433 433
         }
434 434
 
435 435
         // Recurring payments
436
-		if ( 1 == $bill_times || ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() && 2 == $bill_times ) ) {
436
+		if (1 == $bill_times || ($initial_amount != $recurring_amount && !$subscription_item->has_free_trial() && 2 == $bill_times)) {
437 437
 
438 438
 			// Non-recurring payments
439 439
 			$paypal_args['src'] = 0;
@@ -442,15 +442,15 @@  discard block
 block discarded – undo
442 442
 
443 443
 			$paypal_args['src'] = 1;
444 444
 
445
-			if ( $bill_times > 0 ) {
445
+			if ($bill_times > 0) {
446 446
 
447 447
 				// An initial period is being used to charge a sign-up fee
448
-				if ( $initial_amount != $recurring_amount && ! $subscription_item->has_free_trial() ) {
448
+				if ($initial_amount != $recurring_amount && !$subscription_item->has_free_trial()) {
449 449
 					$bill_times--;
450 450
 				}
451 451
 
452 452
                 // Make sure it's not over the max of 52
453
-                $paypal_args['srt'] = ( $bill_times <= 52 ? absint( $bill_times ) : 52 );
453
+                $paypal_args['srt'] = ($bill_times <= 52 ? absint($bill_times) : 52);
454 454
 
455 455
 			}
456 456
         }
@@ -459,10 +459,10 @@  discard block
 block discarded – undo
459 459
         $paypal_args['rm'] = 2;
460 460
 
461 461
         // Get rid of redudant items.
462
-        foreach ( array( 'item_name_1', 'quantity_1', 'amount_1', 'item_number_1' ) as $arg ) {
462
+        foreach (array('item_name_1', 'quantity_1', 'amount_1', 'item_number_1') as $arg) {
463 463
 
464
-            if ( isset( $paypal_args[ $arg ] ) ) {
465
-                unset( $paypal_args[ $arg ] );
464
+            if (isset($paypal_args[$arg])) {
465
+                unset($paypal_args[$arg]);
466 466
             }
467 467
 }
468 468
 
@@ -480,7 +480,7 @@  discard block
 block discarded – undo
480 480
 	 * @return void
481 481
 	 */
482 482
 	public function verify_ipn() {
483
-        new GetPaid_Paypal_Gateway_IPN_Handler( $this );
483
+        new GetPaid_Paypal_Gateway_IPN_Handler($this);
484 484
     }
485 485
 
486 486
     /**
@@ -489,7 +489,7 @@  discard block
 block discarded – undo
489 489
     public function sandbox_notice() {
490 490
 
491 491
         return sprintf(
492
-			__( 'SANDBOX ENABLED. You can use sandbox testing accounts only. See the %1$sPayPal Sandbox Testing Guide%2$s for more details.', 'invoicing' ),
492
+			__('SANDBOX ENABLED. You can use sandbox testing accounts only. See the %1$sPayPal Sandbox Testing Guide%2$s for more details.', 'invoicing'),
493 493
 			'<a href="https://developer.paypal.com/docs/classic/lifecycle/ug_sandbox/">',
494 494
 			'</a>'
495 495
 		);
@@ -501,41 +501,41 @@  discard block
 block discarded – undo
501 501
 	 *
502 502
 	 * @param array $admin_settings
503 503
 	 */
504
-	public function admin_settings( $admin_settings ) {
504
+	public function admin_settings($admin_settings) {
505 505
 
506 506
         $currencies = sprintf(
507
-            __( 'Supported Currencies: %s', 'invoicing' ),
508
-            implode( ', ', $this->currencies )
507
+            __('Supported Currencies: %s', 'invoicing'),
508
+            implode(', ', $this->currencies)
509 509
         );
510 510
 
511 511
         $admin_settings['paypal_active']['desc'] .= " ($currencies)";
512
-        $admin_settings['paypal_desc']['std']     = __( 'Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing' );
512
+        $admin_settings['paypal_desc']['std']     = __('Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing');
513 513
 
514 514
 		// Access tokens.
515
-		$live_email      = wpinv_get_option( 'paypal_email' );
516
-		$sandbox_email   = wpinv_get_option( 'paypal_sandbox_email' );
515
+		$live_email      = wpinv_get_option('paypal_email');
516
+		$sandbox_email   = wpinv_get_option('paypal_sandbox_email');
517 517
 
518 518
 		$admin_settings['paypal_connect'] = array(
519 519
 			'type' => 'hook',
520 520
 			'id'   => 'paypal_connect',
521
-			'name' => __( 'Connect to PayPal', 'invoicing' ),
521
+			'name' => __('Connect to PayPal', 'invoicing'),
522 522
 		);
523 523
 
524 524
         $admin_settings['paypal_email'] = array(
525 525
             'type'  => 'text',
526 526
 			'class' => 'live-auth-data',
527 527
             'id'    => 'paypal_email',
528
-            'name'  => __( 'Live Email Address', 'invoicing' ),
529
-            'desc'  => __( 'The email address of your PayPal account.', 'invoicing' ),
528
+            'name'  => __('Live Email Address', 'invoicing'),
529
+            'desc'  => __('The email address of your PayPal account.', 'invoicing'),
530 530
         );
531 531
 
532 532
 		$admin_settings['paypal_sandbox_email'] = array(
533 533
             'type'  => 'text',
534 534
 			'class' => 'sandbox-auth-data',
535 535
             'id'    => 'paypal_sandbox_email',
536
-            'name'  => __( 'Sandbox Email Address', 'invoicing' ),
537
-            'desc'  => __( 'The email address of your sandbox PayPal account.', 'invoicing' ),
538
-			'std'   => wpinv_get_option( 'paypal_email', '' ),
536
+            'name'  => __('Sandbox Email Address', 'invoicing'),
537
+            'desc'  => __('The email address of your sandbox PayPal account.', 'invoicing'),
538
+			'std'   => wpinv_get_option('paypal_email', ''),
539 539
         );
540 540
 
541 541
 		// Client ID and secret.
@@ -543,41 +543,41 @@  discard block
 block discarded – undo
543 543
 			'type'  => 'text',
544 544
 			'class' => 'live-auth-data',
545 545
 			'id'    => 'paypal_client_id',
546
-			'name'  => __( 'Live Client ID', 'invoicing' ),
547
-			'desc'  => __( 'The client ID of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
546
+			'name'  => __('Live Client ID', 'invoicing'),
547
+			'desc'  => __('The client ID of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing'),
548 548
 		);
549 549
 
550 550
 		$admin_settings['paypal_sandbox_client_id'] = array(
551 551
 			'type'  => 'text',
552 552
 			'class' => 'sandbox-auth-data',
553 553
 			'id'    => 'paypal_sandbox_client_id',
554
-			'name'  => __( 'Sandbox Client ID', 'invoicing' ),
555
-			'desc'  => __( 'The client ID of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
556
-			'std'   => wpinv_get_option( 'paypal_client_id', '' ),
554
+			'name'  => __('Sandbox Client ID', 'invoicing'),
555
+			'desc'  => __('The client ID of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing'),
556
+			'std'   => wpinv_get_option('paypal_client_id', ''),
557 557
 		);
558 558
 
559 559
 		$admin_settings['paypal_secret'] = array(
560 560
 			'type'  => 'text',
561 561
 			'class' => 'live-auth-data',
562 562
 			'id'    => 'paypal_secret',
563
-			'name'  => __( 'Live Secret', 'invoicing' ),
564
-			'desc'  => __( 'The secret of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
563
+			'name'  => __('Live Secret', 'invoicing'),
564
+			'desc'  => __('The secret of your PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing'),
565 565
 		);
566 566
 
567 567
 		$admin_settings['paypal_sandbox_secret'] = array(
568 568
 			'type'  => 'text',
569 569
 			'class' => 'sandbox-auth-data',
570 570
 			'id'    => 'paypal_sandbox_secret',
571
-			'name'  => __( 'Sandbox Secret', 'invoicing' ),
572
-			'desc'  => __( 'The secret of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing' ),
571
+			'name'  => __('Sandbox Secret', 'invoicing'),
572
+			'desc'  => __('The secret of your sandbox PayPal account. You can retrieve this from your PayPal developer account.', 'invoicing'),
573 573
 		);
574 574
 
575 575
         $admin_settings['paypal_ipn_url'] = array(
576 576
             'type'     => 'ipn_url',
577 577
             'id'       => 'paypal_ipn_url',
578
-            'name'     => __( 'IPN Url', 'invoicing' ),
578
+            'name'     => __('IPN Url', 'invoicing'),
579 579
             'std'      => $this->notify_url,
580
-            'desc'     => __( "If you've not enabled IPNs in your paypal account, use the above URL to enable them.", 'invoicing' ) . ' <a href="https://developer.paypal.com/docs/api-basics/notifications/ipn/"><em>' . __( 'Learn more.', 'invoicing' ) . '</em></a>',
580
+            'desc'     => __("If you've not enabled IPNs in your paypal account, use the above URL to enable them.", 'invoicing') . ' <a href="https://developer.paypal.com/docs/api-basics/notifications/ipn/"><em>' . __('Learn more.', 'invoicing') . '</em></a>',
581 581
             'readonly' => true,
582 582
         );
583 583
 
@@ -590,9 +590,9 @@  discard block
 block discarded – undo
590 590
 	 * @param string $url
591 591
 	 * @param WPInv_Subscription $subscription
592 592
 	 */
593
-	public function filter_cancel_subscription_url( $url, $subscription ) {
593
+	public function filter_cancel_subscription_url($url, $subscription) {
594 594
 
595
-		if ( $this->id !== $subscription->get_gateway() ) {
595
+		if ($this->id !== $subscription->get_gateway()) {
596 596
 			return $url;
597 597
 		}
598 598
 
@@ -600,16 +600,16 @@  discard block
 block discarded – undo
600 600
 		$profile_id = $subscription->get_profile_id();
601 601
 
602 602
 		// Bail if no profile ID.
603
-		if ( empty( $profile_id ) ) {
603
+		if (empty($profile_id)) {
604 604
 			return $url;
605 605
 		}
606 606
 
607 607
 		$cancel_url = 'https://www.paypal.com/myaccount/autopay/connect/%s/cancel';
608
-		if ( $this->is_sandbox( $subscription->get_parent_payment() ) ) {
608
+		if ($this->is_sandbox($subscription->get_parent_payment())) {
609 609
 			$cancel_url = 'https://www.sandbox.paypal.com/myaccount/autopay/connect/%s/cancel';
610 610
 		}
611 611
 
612
-		return sprintf( $cancel_url, $profile_id );
612
+		return sprintf($cancel_url, $profile_id);
613 613
 	}
614 614
 
615 615
 	/**
@@ -619,8 +619,8 @@  discard block
 block discarded – undo
619 619
      * @param array $data
620 620
      * @return string
621 621
 	 */
622
-	public static function maybe_get_connect_url( $url = '', $data = array() ) {
623
-		return self::get_connect_url( false, urldecode( $data['redirect'] ) );
622
+	public static function maybe_get_connect_url($url = '', $data = array()) {
623
+		return self::get_connect_url(false, urldecode($data['redirect']));
624 624
 	}
625 625
 
626 626
 	/**
@@ -631,25 +631,25 @@  discard block
 block discarded – undo
631 631
 	 * @param string $redirect
632 632
      * @return string
633 633
 	 */
634
-	public static function get_connect_url( $is_sandbox, $redirect = '' ) {
634
+	public static function get_connect_url($is_sandbox, $redirect = '') {
635 635
 
636 636
         $redirect_url = add_query_arg(
637 637
             array(
638 638
                 'getpaid-admin-action' => 'connect_paypal',
639 639
                 'page'                 => 'wpinv-settings',
640
-                'live_mode'            => (int) empty( $is_sandbox ),
640
+                'live_mode'            => (int) empty($is_sandbox),
641 641
                 'tab'                  => 'gateways',
642 642
                 'section'              => 'paypal',
643
-                'getpaid-nonce'        => wp_create_nonce( 'getpaid-nonce' ),
644
-				'redirect'             => urlencode( $redirect ),
643
+                'getpaid-nonce'        => wp_create_nonce('getpaid-nonce'),
644
+				'redirect'             => urlencode($redirect),
645 645
             ),
646
-            admin_url( 'admin.php' )
646
+            admin_url('admin.php')
647 647
         );
648 648
 
649 649
         return add_query_arg(
650 650
             array(
651
-                'live_mode'    => (int) empty( $is_sandbox ),
652
-                'redirect_url' => urlencode( str_replace( '&amp;', '&', $redirect_url ) ),
651
+                'live_mode'    => (int) empty($is_sandbox),
652
+                'redirect_url' => urlencode(str_replace('&amp;', '&', $redirect_url)),
653 653
             ),
654 654
             'https://ayecode.io/oauth/paypal'
655 655
         );
@@ -665,10 +665,10 @@  discard block
 block discarded – undo
665 665
 
666 666
         ?>
667 667
 			<div class="wpinv-paypal-connect-live">
668
-				<a class="button button-primary" href="<?php echo esc_url( self::get_connect_url( false ) ); ?>"><?php esc_html_e( 'Connect to PayPal', 'invoicing' ); ?></a>
668
+				<a class="button button-primary" href="<?php echo esc_url(self::get_connect_url(false)); ?>"><?php esc_html_e('Connect to PayPal', 'invoicing'); ?></a>
669 669
 			</div>
670 670
 			<div class="wpinv-paypal-connect-sandbox">
671
-				<a class="button button-primary" href="<?php echo esc_url( self::get_connect_url( true ) ); ?>"><?php esc_html_e( 'Connect to PayPal Sandbox', 'invoicing' ); ?></a>
671
+				<a class="button button-primary" href="<?php echo esc_url(self::get_connect_url(true)); ?>"><?php esc_html_e('Connect to PayPal Sandbox', 'invoicing'); ?></a>
672 672
 			</div>
673 673
 
674 674
             <script>
@@ -709,26 +709,26 @@  discard block
 block discarded – undo
709 709
 	 * @param array $data Connection data.
710 710
 	 * @return void
711 711
 	 */
712
-	public function connect_paypal( $data ) {
712
+	public function connect_paypal($data) {
713 713
 
714 714
 		$sandbox      = $this->is_sandbox();
715
-		$data         = wp_unslash( $data );
716
-		$access_token = empty( $data['access_token'] ) ? '' : sanitize_text_field( $data['access_token'] );
715
+		$data         = wp_unslash($data);
716
+		$access_token = empty($data['access_token']) ? '' : sanitize_text_field($data['access_token']);
717 717
 
718
-		if ( isset( $data['live_mode'] ) ) {
719
-			$sandbox = empty( $data['live_mode'] );
718
+		if (isset($data['live_mode'])) {
719
+			$sandbox = empty($data['live_mode']);
720 720
 		}
721 721
 
722
-		wpinv_update_option( 'paypal_sandbox', (int) $sandbox );
723
-		wpinv_update_option( 'paypal_active', 1 );
722
+		wpinv_update_option('paypal_sandbox', (int) $sandbox);
723
+		wpinv_update_option('paypal_active', 1);
724 724
 
725
-		if ( ! empty( $data['error_description'] ) ) {
726
-			getpaid_admin()->show_error( wp_kses_post( urldecode( $data['error_description'] ) ) );
725
+		if (!empty($data['error_description'])) {
726
+			getpaid_admin()->show_error(wp_kses_post(urldecode($data['error_description'])));
727 727
 		} else {
728 728
 
729 729
 			// Retrieve the user info.
730 730
 			$user_info = wp_remote_get(
731
-				! $sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
731
+				!$sandbox ? 'https://api-m.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1' : 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1',
732 732
 				array(
733 733
 
734 734
 					'headers' => array(
@@ -739,33 +739,33 @@  discard block
 block discarded – undo
739 739
 				)
740 740
 			);
741 741
 
742
-			if ( is_wp_error( $user_info ) ) {
743
-				getpaid_admin()->show_error( wp_kses_post( $user_info->get_error_message() ) );
742
+			if (is_wp_error($user_info)) {
743
+				getpaid_admin()->show_error(wp_kses_post($user_info->get_error_message()));
744 744
 			} else {
745 745
 
746 746
 				// Create application.
747
-				$user_info = json_decode( wp_remote_retrieve_body( $user_info ) );
747
+				$user_info = json_decode(wp_remote_retrieve_body($user_info));
748 748
 
749
-				if ( $sandbox ) {
750
-					wpinv_update_option( 'paypal_sandbox_email', sanitize_email( $user_info->emails[0]->value ) );
751
-					wpinv_update_option( 'paypal_sandbox_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
752
-					set_transient( 'getpaid_paypal_sandbox_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
753
-					getpaid_admin()->show_success( __( 'Successfully connected your PayPal sandbox account', 'invoicing' ) );
749
+				if ($sandbox) {
750
+					wpinv_update_option('paypal_sandbox_email', sanitize_email($user_info->emails[0]->value));
751
+					wpinv_update_option('paypal_sandbox_refresh_token', sanitize_text_field(urldecode($data['refresh_token'])));
752
+					set_transient('getpaid_paypal_sandbox_access_token', sanitize_text_field(urldecode($data['access_token'])), (int) $data['expires_in']);
753
+					getpaid_admin()->show_success(__('Successfully connected your PayPal sandbox account', 'invoicing'));
754 754
 				} else {
755
-					wpinv_update_option( 'paypal_email', sanitize_email( $user_info->emails[0]->value ) );
756
-					wpinv_update_option( 'paypal_refresh_token', sanitize_text_field( urldecode( $data['refresh_token'] ) ) );
757
-					set_transient( 'getpaid_paypal_access_token', sanitize_text_field( urldecode( $data['access_token'] ) ), (int) $data['expires_in'] );
758
-					getpaid_admin()->show_success( __( 'Successfully connected your PayPal account', 'invoicing' ) );
755
+					wpinv_update_option('paypal_email', sanitize_email($user_info->emails[0]->value));
756
+					wpinv_update_option('paypal_refresh_token', sanitize_text_field(urldecode($data['refresh_token'])));
757
+					set_transient('getpaid_paypal_access_token', sanitize_text_field(urldecode($data['access_token'])), (int) $data['expires_in']);
758
+					getpaid_admin()->show_success(__('Successfully connected your PayPal account', 'invoicing'));
759 759
 				}
760 760
 }
761 761
 }
762 762
 
763
-		$redirect = empty( $data['redirect'] ) ? admin_url( 'admin.php?page=wpinv-settings&tab=gateways&section=paypal' ) : urldecode( $data['redirect'] );
763
+		$redirect = empty($data['redirect']) ? admin_url('admin.php?page=wpinv-settings&tab=gateways&section=paypal') : urldecode($data['redirect']);
764 764
 
765
-		if ( isset( $data['step'] ) ) {
766
-			$redirect = add_query_arg( 'step', $data['step'], $redirect );
765
+		if (isset($data['step'])) {
766
+			$redirect = add_query_arg('step', $data['step'], $redirect);
767 767
 		}
768
-		wp_redirect( $redirect );
768
+		wp_redirect($redirect);
769 769
 		exit;
770 770
 	}
771 771
 
Please login to merge, or discard this patch.
includes/class-getpaid-tax.php 2 patches
Indentation   +192 added lines, -192 removed lines patch added patch discarded remove patch
@@ -13,199 +13,199 @@
 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'    => __( 'Tax', 'invoicing' ),
119
-				),
120
-			)
121
-		);
122
-
123
-	}
124
-
125
-	/**
126
-	 * Get's an array of all tax rules.
127
-	 *
128
-	 * @return array
129
-	 */
130
-	public static function get_all_tax_rules() {
131
-
132
-		$rules = get_option(
133
-			'wpinv_tax_rules',
134
-			array(
135
-				array(
136
-					'key'               => 'physical',
137
-					'label'             => __( 'Physical Item', 'invoicing' ),
138
-					'tax_base'          => wpinv_get_option( 'tax_base', 'billing' ),
139
-					'same_country_rule' => wpinv_get_option( 'vat_same_country_rule', 'vat_too' ),
140
-				),
141
-				array(
142
-					'key'               => 'digital',
143
-					'label'             => __( 'Digital Item', 'invoicing' ),
144
-					'tax_base'          => wpinv_get_option( 'tax_base', 'billing' ),
145
-					'same_country_rule' => wpinv_get_option( 'vat_same_country_rule', 'vat_too' ),
146
-				),
147
-        	)
148
-		);
149
-
150
-		return apply_filters(
151
-			'getpaid_tax_rules',
152
-			array_filter( array_values( wpinv_parse_list( $rules ) ) )
153
-		);
154
-
155
-	}
156
-
157
-	/**
158
-	 * Get's an array of tax rates for a given address.
159
-	 *
160
-	 * @param string $country
161
-	 * @param string $state
162
-	 * @return array
163
-	 */
164
-	public static function get_address_tax_rates( $country, $state ) {
165
-
166
-		$all_tax_rates  = self::get_all_tax_rates();
167
-		$matching_rates = array_merge(
168
-			wp_list_filter( $all_tax_rates, array( 'country' => $country ) ),
169
-			wp_list_filter( $all_tax_rates, array( 'country' => '' ) )
170
-		);
171
-
172
-		foreach ( $matching_rates as $i => $rate ) {
173
-
174
-			$states = array_filter( wpinv_clean( explode( ',', strtolower( $rate['state'] ) ) ) );
175
-			if ( empty( $rate['global'] ) && ! in_array( strtolower( $state ), $states ) ) {
176
-				unset( $matching_rates[ $i ] );
177
-			}
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'    => __( 'Tax', 'invoicing' ),
119
+                ),
120
+            )
121
+        );
122
+
123
+    }
124
+
125
+    /**
126
+     * Get's an array of all tax rules.
127
+     *
128
+     * @return array
129
+     */
130
+    public static function get_all_tax_rules() {
131
+
132
+        $rules = get_option(
133
+            'wpinv_tax_rules',
134
+            array(
135
+                array(
136
+                    'key'               => 'physical',
137
+                    'label'             => __( 'Physical Item', 'invoicing' ),
138
+                    'tax_base'          => wpinv_get_option( 'tax_base', 'billing' ),
139
+                    'same_country_rule' => wpinv_get_option( 'vat_same_country_rule', 'vat_too' ),
140
+                ),
141
+                array(
142
+                    'key'               => 'digital',
143
+                    'label'             => __( 'Digital Item', 'invoicing' ),
144
+                    'tax_base'          => wpinv_get_option( 'tax_base', 'billing' ),
145
+                    'same_country_rule' => wpinv_get_option( 'vat_same_country_rule', 'vat_too' ),
146
+                ),
147
+            )
148
+        );
149
+
150
+        return apply_filters(
151
+            'getpaid_tax_rules',
152
+            array_filter( array_values( wpinv_parse_list( $rules ) ) )
153
+        );
154
+
155
+    }
156
+
157
+    /**
158
+     * Get's an array of tax rates for a given address.
159
+     *
160
+     * @param string $country
161
+     * @param string $state
162
+     * @return array
163
+     */
164
+    public static function get_address_tax_rates( $country, $state ) {
165
+
166
+        $all_tax_rates  = self::get_all_tax_rates();
167
+        $matching_rates = array_merge(
168
+            wp_list_filter( $all_tax_rates, array( 'country' => $country ) ),
169
+            wp_list_filter( $all_tax_rates, array( 'country' => '' ) )
170
+        );
171
+
172
+        foreach ( $matching_rates as $i => $rate ) {
173
+
174
+            $states = array_filter( wpinv_clean( explode( ',', strtolower( $rate['state'] ) ) ) );
175
+            if ( empty( $rate['global'] ) && ! in_array( strtolower( $state ), $states ) ) {
176
+                unset( $matching_rates[ $i ] );
177
+            }
178 178
 }
179 179
 
180
-		return apply_filters( 'getpaid_get_address_tax_rates', $matching_rates, $country, $state );
181
-
182
-	}
183
-
184
-	/**
185
-	 * Sums a set of taxes to form a single total. Result is rounded to precision.
186
-	 *
187
-	 * @param  array $taxes Array of taxes.
188
-	 * @return float
189
-	 */
190
-	public static function get_tax_total( $taxes ) {
191
-		return self::round( array_sum( $taxes ) );
192
-	}
193
-
194
-	/**
195
-	 * Round to precision.
196
-	 *
197
-	 * Filter example: to return rounding to .5 cents you'd use:
198
-	 *
199
-	 * function euro_5cent_rounding( $in ) {
200
-	 *      return round( $in / 5, 2 ) * 5;
201
-	 * }
202
-	 * add_filter( 'getpaid_tax_round', 'euro_5cent_rounding' );
203
-	 *
204
-	 * @param float|int $in Value to round.
205
-	 * @return float
206
-	 */
207
-	public static function round( $in ) {
208
-		return apply_filters( 'getpaid_tax_round', round( $in, 4 ), $in );
209
-	}
180
+        return apply_filters( 'getpaid_get_address_tax_rates', $matching_rates, $country, $state );
181
+
182
+    }
183
+
184
+    /**
185
+     * Sums a set of taxes to form a single total. Result is rounded to precision.
186
+     *
187
+     * @param  array $taxes Array of taxes.
188
+     * @return float
189
+     */
190
+    public static function get_tax_total( $taxes ) {
191
+        return self::round( array_sum( $taxes ) );
192
+    }
193
+
194
+    /**
195
+     * Round to precision.
196
+     *
197
+     * Filter example: to return rounding to .5 cents you'd use:
198
+     *
199
+     * function euro_5cent_rounding( $in ) {
200
+     *      return round( $in / 5, 2 ) * 5;
201
+     * }
202
+     * add_filter( 'getpaid_tax_round', 'euro_5cent_rounding' );
203
+     *
204
+     * @param float|int $in Value to round.
205
+     * @return float
206
+     */
207
+    public static function round( $in ) {
208
+        return apply_filters( 'getpaid_tax_round', round( $in, 4 ), $in );
209
+    }
210 210
 
211 211
 }
Please login to merge, or discard this patch.
Spacing   +43 added lines, -43 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'    => __( 'Tax', 'invoicing' ),
118
+					'name'    => __('Tax', 'invoicing'),
119 119
 				),
120 120
 			)
121 121
 		);
@@ -134,22 +134,22 @@  discard block
 block discarded – undo
134 134
 			array(
135 135
 				array(
136 136
 					'key'               => 'physical',
137
-					'label'             => __( 'Physical Item', 'invoicing' ),
138
-					'tax_base'          => wpinv_get_option( 'tax_base', 'billing' ),
139
-					'same_country_rule' => wpinv_get_option( 'vat_same_country_rule', 'vat_too' ),
137
+					'label'             => __('Physical Item', 'invoicing'),
138
+					'tax_base'          => wpinv_get_option('tax_base', 'billing'),
139
+					'same_country_rule' => wpinv_get_option('vat_same_country_rule', 'vat_too'),
140 140
 				),
141 141
 				array(
142 142
 					'key'               => 'digital',
143
-					'label'             => __( 'Digital Item', 'invoicing' ),
144
-					'tax_base'          => wpinv_get_option( 'tax_base', 'billing' ),
145
-					'same_country_rule' => wpinv_get_option( 'vat_same_country_rule', 'vat_too' ),
143
+					'label'             => __('Digital Item', 'invoicing'),
144
+					'tax_base'          => wpinv_get_option('tax_base', 'billing'),
145
+					'same_country_rule' => wpinv_get_option('vat_same_country_rule', 'vat_too'),
146 146
 				),
147 147
         	)
148 148
 		);
149 149
 
150 150
 		return apply_filters(
151 151
 			'getpaid_tax_rules',
152
-			array_filter( array_values( wpinv_parse_list( $rules ) ) )
152
+			array_filter(array_values(wpinv_parse_list($rules)))
153 153
 		);
154 154
 
155 155
 	}
@@ -161,23 +161,23 @@  discard block
 block discarded – undo
161 161
 	 * @param string $state
162 162
 	 * @return array
163 163
 	 */
164
-	public static function get_address_tax_rates( $country, $state ) {
164
+	public static function get_address_tax_rates($country, $state) {
165 165
 
166 166
 		$all_tax_rates  = self::get_all_tax_rates();
167 167
 		$matching_rates = array_merge(
168
-			wp_list_filter( $all_tax_rates, array( 'country' => $country ) ),
169
-			wp_list_filter( $all_tax_rates, array( 'country' => '' ) )
168
+			wp_list_filter($all_tax_rates, array('country' => $country)),
169
+			wp_list_filter($all_tax_rates, array('country' => ''))
170 170
 		);
171 171
 
172
-		foreach ( $matching_rates as $i => $rate ) {
172
+		foreach ($matching_rates as $i => $rate) {
173 173
 
174
-			$states = array_filter( wpinv_clean( explode( ',', strtolower( $rate['state'] ) ) ) );
175
-			if ( empty( $rate['global'] ) && ! in_array( strtolower( $state ), $states ) ) {
176
-				unset( $matching_rates[ $i ] );
174
+			$states = array_filter(wpinv_clean(explode(',', strtolower($rate['state']))));
175
+			if (empty($rate['global']) && !in_array(strtolower($state), $states)) {
176
+				unset($matching_rates[$i]);
177 177
 			}
178 178
 }
179 179
 
180
-		return apply_filters( 'getpaid_get_address_tax_rates', $matching_rates, $country, $state );
180
+		return apply_filters('getpaid_get_address_tax_rates', $matching_rates, $country, $state);
181 181
 
182 182
 	}
183 183
 
@@ -187,8 +187,8 @@  discard block
 block discarded – undo
187 187
 	 * @param  array $taxes Array of taxes.
188 188
 	 * @return float
189 189
 	 */
190
-	public static function get_tax_total( $taxes ) {
191
-		return self::round( array_sum( $taxes ) );
190
+	public static function get_tax_total($taxes) {
191
+		return self::round(array_sum($taxes));
192 192
 	}
193 193
 
194 194
 	/**
@@ -204,8 +204,8 @@  discard block
 block discarded – undo
204 204
 	 * @param float|int $in Value to round.
205 205
 	 * @return float
206 206
 	 */
207
-	public static function round( $in ) {
208
-		return apply_filters( 'getpaid_tax_round', round( $in, 4 ), $in );
207
+	public static function round($in) {
208
+		return apply_filters('getpaid_tax_round', round($in, 4), $in);
209 209
 	}
210 210
 
211 211
 }
Please login to merge, or discard this patch.