Passed
Pull Request — master (#865)
by Kiran
08:35 queued 02:32
created
includes/class-wpinv-session-handler.php 2 patches
Indentation   +274 added lines, -274 removed lines patch added patch discarded remove patch
@@ -14,125 +14,125 @@  discard block
 block discarded – undo
14 14
  */
15 15
 class WPInv_Session_Handler extends WPInv_Session {
16 16
 
17
-	/**
18
-	 * Cookie name used for the session.
19
-	 *
20
-	 * @var string cookie name
21
-	 */
22
-	protected $_cookie;
23
-
24
-	/**
25
-	 * Stores session expiry.
26
-	 *
27
-	 * @var int session due to expire timestamp
28
-	 */
29
-	protected $_session_expiring;
30
-
31
-	/**
32
-	 * Stores session due to expire timestamp.
33
-	 *
34
-	 * @var string session expiration timestamp
35
-	 */
36
-	protected $_session_expiration;
37
-
38
-	/**
39
-	 * True when the cookie exists.
40
-	 *
41
-	 * @var bool Based on whether a cookie exists.
42
-	 */
43
-	protected $_has_cookie = false;
44
-
45
-	/**
46
-	 * Table name for session data.
47
-	 *
48
-	 * @var string Custom session table name
49
-	 */
50
-	protected $_table;
51
-
52
-	/**
53
-	 * Constructor for the session class.
54
-	 */
55
-	public function old__construct() {
56
-
57
-	    $this->_cookie = apply_filters( 'wpinv_cookie', 'wpinv_session_' . COOKIEHASH );
17
+    /**
18
+     * Cookie name used for the session.
19
+     *
20
+     * @var string cookie name
21
+     */
22
+    protected $_cookie;
23
+
24
+    /**
25
+     * Stores session expiry.
26
+     *
27
+     * @var int session due to expire timestamp
28
+     */
29
+    protected $_session_expiring;
30
+
31
+    /**
32
+     * Stores session due to expire timestamp.
33
+     *
34
+     * @var string session expiration timestamp
35
+     */
36
+    protected $_session_expiration;
37
+
38
+    /**
39
+     * True when the cookie exists.
40
+     *
41
+     * @var bool Based on whether a cookie exists.
42
+     */
43
+    protected $_has_cookie = false;
44
+
45
+    /**
46
+     * Table name for session data.
47
+     *
48
+     * @var string Custom session table name
49
+     */
50
+    protected $_table;
51
+
52
+    /**
53
+     * Constructor for the session class.
54
+     */
55
+    public function old__construct() {
56
+
57
+        $this->_cookie = apply_filters( 'wpinv_cookie', 'wpinv_session_' . COOKIEHASH );
58 58
         add_action( 'init', array( $this, 'init' ), -1 );
59
-		add_action( 'wp_logout', array( $this, 'destroy_session' ) );
60
-		add_action( 'wp', array( $this, 'set_customer_session_cookie' ), 10 );
61
-		add_action( 'shutdown', array( $this, 'save_data' ), 20 );
62
-
63
-	}
64
-
65
-	/**
66
-	 * Init hooks and session data.
67
-	 *
68
-	 * @since 3.3.0
69
-	 */
70
-	public function init() {
71
-		$this->init_session_cookie();
72
-
73
-		if ( ! is_user_logged_in() ) {
74
-			add_filter( 'nonce_user_logged_out', array( $this, 'nonce_user_logged_out' ), 10, 2 );
75
-		}
76
-	}
77
-
78
-	/**
79
-	 * Setup cookie and customer ID.
80
-	 *
81
-	 * @since 3.6.0
82
-	 */
83
-	public function init_session_cookie() {
84
-		$cookie = $this->get_session_cookie();
85
-
86
-		if ( $cookie ) {
87
-			$this->_customer_id        = $cookie[0];
88
-			$this->_session_expiration = $cookie[1];
89
-			$this->_session_expiring   = $cookie[2];
90
-			$this->_has_cookie         = true;
91
-			$this->_data               = $this->get_session_data();
92
-
93
-			// If the user logs in, update session.
94
-			if ( is_user_logged_in() && get_current_user_id() != $this->_customer_id ) {
95
-				$this->_customer_id = get_current_user_id();
96
-				$this->_dirty       = true;
97
-				$this->save_data();
98
-				$this->set_customer_session_cookie( true );
99
-			}
100
-
101
-			// Update session if its close to expiring.
102
-			if ( time() > $this->_session_expiring ) {
103
-				$this->set_session_expiration();
104
-				$this->update_session_timestamp( $this->_customer_id, $this->_session_expiration );
105
-			}
106
-		} else {
107
-			$this->set_session_expiration();
108
-			$this->_customer_id = $this->generate_customer_id();
109
-			$this->_data        = $this->get_session_data();
110
-		}
111
-	}
112
-
113
-	/**
114
-	 * Sets the session cookie on-demand (usually after adding an item to the cart).
115
-	 *
116
-	 * Since the cookie name (as of 2.1) is prepended with wp, cache systems like batcache will not cache pages when set.
117
-	 *
118
-	 * Warning: Cookies will only be set if this is called before the headers are sent.
119
-	 *
120
-	 * @param bool $set Should the session cookie be set.
121
-	 */
122
-	public function set_customer_session_cookie( $set ) {
123
-		if ( $set ) {
124
-			$to_hash           = $this->_customer_id . '|' . $this->_session_expiration;
125
-			$cookie_hash       = hash_hmac( 'md5', $to_hash, wp_hash( $to_hash ) );
126
-			$cookie_value      = $this->_customer_id . '||' . $this->_session_expiration . '||' . $this->_session_expiring . '||' . $cookie_hash;
127
-			$this->_has_cookie = true;
128
-
129
-			if ( ! isset( $_COOKIE[ $this->_cookie ] ) || $_COOKIE[ $this->_cookie ] !== $cookie_value ) {
130
-				$this->setcookie( $this->_cookie, $cookie_value, $this->_session_expiration, $this->use_secure_cookie(), true );
131
-			}
132
-		}
133
-	}
134
-
135
-	public function setcookie( $name, $value, $expire = 0, $secure = false, $httponly = false ) {
59
+        add_action( 'wp_logout', array( $this, 'destroy_session' ) );
60
+        add_action( 'wp', array( $this, 'set_customer_session_cookie' ), 10 );
61
+        add_action( 'shutdown', array( $this, 'save_data' ), 20 );
62
+
63
+    }
64
+
65
+    /**
66
+     * Init hooks and session data.
67
+     *
68
+     * @since 3.3.0
69
+     */
70
+    public function init() {
71
+        $this->init_session_cookie();
72
+
73
+        if ( ! is_user_logged_in() ) {
74
+            add_filter( 'nonce_user_logged_out', array( $this, 'nonce_user_logged_out' ), 10, 2 );
75
+        }
76
+    }
77
+
78
+    /**
79
+     * Setup cookie and customer ID.
80
+     *
81
+     * @since 3.6.0
82
+     */
83
+    public function init_session_cookie() {
84
+        $cookie = $this->get_session_cookie();
85
+
86
+        if ( $cookie ) {
87
+            $this->_customer_id        = $cookie[0];
88
+            $this->_session_expiration = $cookie[1];
89
+            $this->_session_expiring   = $cookie[2];
90
+            $this->_has_cookie         = true;
91
+            $this->_data               = $this->get_session_data();
92
+
93
+            // If the user logs in, update session.
94
+            if ( is_user_logged_in() && get_current_user_id() != $this->_customer_id ) {
95
+                $this->_customer_id = get_current_user_id();
96
+                $this->_dirty       = true;
97
+                $this->save_data();
98
+                $this->set_customer_session_cookie( true );
99
+            }
100
+
101
+            // Update session if its close to expiring.
102
+            if ( time() > $this->_session_expiring ) {
103
+                $this->set_session_expiration();
104
+                $this->update_session_timestamp( $this->_customer_id, $this->_session_expiration );
105
+            }
106
+        } else {
107
+            $this->set_session_expiration();
108
+            $this->_customer_id = $this->generate_customer_id();
109
+            $this->_data        = $this->get_session_data();
110
+        }
111
+    }
112
+
113
+    /**
114
+     * Sets the session cookie on-demand (usually after adding an item to the cart).
115
+     *
116
+     * Since the cookie name (as of 2.1) is prepended with wp, cache systems like batcache will not cache pages when set.
117
+     *
118
+     * Warning: Cookies will only be set if this is called before the headers are sent.
119
+     *
120
+     * @param bool $set Should the session cookie be set.
121
+     */
122
+    public function set_customer_session_cookie( $set ) {
123
+        if ( $set ) {
124
+            $to_hash           = $this->_customer_id . '|' . $this->_session_expiration;
125
+            $cookie_hash       = hash_hmac( 'md5', $to_hash, wp_hash( $to_hash ) );
126
+            $cookie_value      = $this->_customer_id . '||' . $this->_session_expiration . '||' . $this->_session_expiring . '||' . $cookie_hash;
127
+            $this->_has_cookie = true;
128
+
129
+            if ( ! isset( $_COOKIE[ $this->_cookie ] ) || $_COOKIE[ $this->_cookie ] !== $cookie_value ) {
130
+                $this->setcookie( $this->_cookie, $cookie_value, $this->_session_expiration, $this->use_secure_cookie(), true );
131
+            }
132
+        }
133
+    }
134
+
135
+    public function setcookie( $name, $value, $expire = 0, $secure = false, $httponly = false ) {
136 136
         if ( ! headers_sent() ) {
137 137
             setcookie( $name, $value, $expire, COOKIEPATH ? COOKIEPATH : '/', COOKIE_DOMAIN, $secure, apply_filters( 'wpinv_cookie_httponly', $httponly, $name, $value, $expire, $secure ) );
138 138
         } elseif ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
@@ -141,86 +141,86 @@  discard block
 block discarded – undo
141 141
         }
142 142
     }
143 143
 
144
-	/**
145
-	 * Should the session cookie be secure?
146
-	 *
147
-	 * @since 3.6.0
148
-	 * @return bool
149
-	 */
150
-	protected function use_secure_cookie() {
144
+    /**
145
+     * Should the session cookie be secure?
146
+     *
147
+     * @since 3.6.0
148
+     * @return bool
149
+     */
150
+    protected function use_secure_cookie() {
151 151
         $is_https = false !== strstr( get_option( 'home' ), 'https:' );
152
-		return apply_filters( 'wpinv_session_use_secure_cookie', $is_https && is_ssl() );
153
-	}
154
-
155
-	/**
156
-	 * Return true if the current user has an active session, i.e. a cookie to retrieve values.
157
-	 *
158
-	 * @return bool
159
-	 */
160
-	public function has_session() {
161
-		return isset( $_COOKIE[ $this->_cookie ] ) || $this->_has_cookie || is_user_logged_in(); // @codingStandardsIgnoreLine.
162
-	}
163
-
164
-	/**
165
-	 * Set session expiration.
166
-	 */
167
-	public function set_session_expiration() {
168
-		$this->_session_expiring   = time() + intval( apply_filters( 'wpinv_session_expiring', 60 * 60 * 47 ) ); // 47 Hours.
169
-		$this->_session_expiration = time() + intval( apply_filters( 'wpinv_session_expiration', 60 * 60 * 48 ) ); // 48 Hours.
170
-	}
171
-
172
-	/**
173
-	 * Generates session ids.
174
-	 *
175
-	 * @return string
176
-	 */
177
-	public function generate_customer_id() {
178
-		require_once ABSPATH . 'wp-includes/class-phpass.php';
179
-		$hasher      = new PasswordHash( 8, false );
180
-		return md5( $hasher->get_random_bytes( 32 ) );
181
-	}
182
-
183
-	/**
184
-	 * Get the session cookie, if set. Otherwise return false.
185
-	 *
186
-	 * Session cookies without a customer ID are invalid.
187
-	 *
188
-	 * @return bool|array
189
-	 */
190
-	public function get_session_cookie() {
191
-		$cookie_value = isset( $_COOKIE[ $this->_cookie ] ) ? wp_unslash( $_COOKIE[ $this->_cookie ] ) : false; // @codingStandardsIgnoreLine.
192
-
193
-		if ( empty( $cookie_value ) || ! is_string( $cookie_value ) ) {
194
-			return false;
195
-		}
196
-
197
-		list( $customer_id, $session_expiration, $session_expiring, $cookie_hash ) = explode( '||', $cookie_value );
198
-
199
-		if ( empty( $customer_id ) ) {
200
-			return false;
201
-		}
202
-
203
-		// Validate hash.
204
-		$to_hash = $customer_id . '|' . $session_expiration;
205
-		$hash    = hash_hmac( 'md5', $to_hash, wp_hash( $to_hash ) );
206
-
207
-		if ( empty( $cookie_hash ) || ! hash_equals( $hash, $cookie_hash ) ) {
208
-			return false;
209
-		}
210
-
211
-		return array( $customer_id, $session_expiration, $session_expiring, $cookie_hash );
212
-	}
213
-
214
-	/**
215
-	 * Get session data.
216
-	 *
217
-	 * @return array
218
-	 */
219
-	public function get_session_data() {
220
-		return $this->has_session() ? (array) $this->get_session( $this->_customer_id ) : array();
221
-	}
222
-
223
-	public function generate_key( $customer_id ) {
152
+        return apply_filters( 'wpinv_session_use_secure_cookie', $is_https && is_ssl() );
153
+    }
154
+
155
+    /**
156
+     * Return true if the current user has an active session, i.e. a cookie to retrieve values.
157
+     *
158
+     * @return bool
159
+     */
160
+    public function has_session() {
161
+        return isset( $_COOKIE[ $this->_cookie ] ) || $this->_has_cookie || is_user_logged_in(); // @codingStandardsIgnoreLine.
162
+    }
163
+
164
+    /**
165
+     * Set session expiration.
166
+     */
167
+    public function set_session_expiration() {
168
+        $this->_session_expiring   = time() + intval( apply_filters( 'wpinv_session_expiring', 60 * 60 * 47 ) ); // 47 Hours.
169
+        $this->_session_expiration = time() + intval( apply_filters( 'wpinv_session_expiration', 60 * 60 * 48 ) ); // 48 Hours.
170
+    }
171
+
172
+    /**
173
+     * Generates session ids.
174
+     *
175
+     * @return string
176
+     */
177
+    public function generate_customer_id() {
178
+        require_once ABSPATH . 'wp-includes/class-phpass.php';
179
+        $hasher      = new PasswordHash( 8, false );
180
+        return md5( $hasher->get_random_bytes( 32 ) );
181
+    }
182
+
183
+    /**
184
+     * Get the session cookie, if set. Otherwise return false.
185
+     *
186
+     * Session cookies without a customer ID are invalid.
187
+     *
188
+     * @return bool|array
189
+     */
190
+    public function get_session_cookie() {
191
+        $cookie_value = isset( $_COOKIE[ $this->_cookie ] ) ? wp_unslash( $_COOKIE[ $this->_cookie ] ) : false; // @codingStandardsIgnoreLine.
192
+
193
+        if ( empty( $cookie_value ) || ! is_string( $cookie_value ) ) {
194
+            return false;
195
+        }
196
+
197
+        list( $customer_id, $session_expiration, $session_expiring, $cookie_hash ) = explode( '||', $cookie_value );
198
+
199
+        if ( empty( $customer_id ) ) {
200
+            return false;
201
+        }
202
+
203
+        // Validate hash.
204
+        $to_hash = $customer_id . '|' . $session_expiration;
205
+        $hash    = hash_hmac( 'md5', $to_hash, wp_hash( $to_hash ) );
206
+
207
+        if ( empty( $cookie_hash ) || ! hash_equals( $hash, $cookie_hash ) ) {
208
+            return false;
209
+        }
210
+
211
+        return array( $customer_id, $session_expiration, $session_expiring, $cookie_hash );
212
+    }
213
+
214
+    /**
215
+     * Get session data.
216
+     *
217
+     * @return array
218
+     */
219
+    public function get_session_data() {
220
+        return $this->has_session() ? (array) $this->get_session( $this->_customer_id ) : array();
221
+    }
222
+
223
+    public function generate_key( $customer_id ) {
224 224
         if ( ! $customer_id ) {
225 225
             return;
226 226
         }
@@ -228,68 +228,68 @@  discard block
 block discarded – undo
228 228
         return 'wpi_trans_' . $customer_id;
229 229
     }
230 230
 
231
-	/**
232
-	 * Save data.
233
-	 */
234
-	public function save_data() {
235
-		// Dirty if something changed - prevents saving nothing new.
236
-		if ( $this->_dirty && $this->has_session() ) {
231
+    /**
232
+     * Save data.
233
+     */
234
+    public function save_data() {
235
+        // Dirty if something changed - prevents saving nothing new.
236
+        if ( $this->_dirty && $this->has_session() ) {
237 237
 
238 238
             set_transient( $this->generate_key( $this->_customer_id ), $this->_data, $this->_session_expiration );
239 239
 
240
-			$this->_dirty = false;
241
-		}
242
-	}
243
-
244
-	/**
245
-	 * Destroy all session data.
246
-	 */
247
-	public function destroy_session() {
248
-		$this->delete_session( $this->_customer_id );
249
-		$this->forget_session();
250
-	}
251
-
252
-	/**
253
-	 * Forget all session data without destroying it.
254
-	 */
255
-	public function forget_session() {
256
-		$this->setcookie( $this->_cookie, '', time() - YEAR_IN_SECONDS, $this->use_secure_cookie(), true );
257
-
258
-		wpinv_empty_cart();
259
-
260
-		$this->_data        = array();
261
-		$this->_dirty       = false;
262
-		$this->_customer_id = $this->generate_customer_id();
263
-	}
264
-
265
-	/**
266
-	 * When a user is logged out, ensure they have a unique nonce by using the customer/session ID.
267
-	 *
268
-	 * @param int $uid User ID.
269
-	 * @return string
270
-	 */
271
-	public function nonce_user_logged_out( $uid ) {
272
-
273
-		// Check if one of our nonces.
274
-		if ( substr( $uid, 0, 5 ) === 'wpinv' || substr( $uid, 0, 7 ) === 'getpaid' ) {
275
-			return $this->has_session() && $this->_customer_id ? $this->_customer_id : $uid;
276
-		}
277
-
278
-		return $uid;
279
-	}
280
-
281
-	/**
282
-	 * Returns the session.
283
-	 *
284
-	 * @param string $customer_id Customer ID.
285
-	 * @param mixed  $default Default session value.
286
-	 * @return string|array
287
-	 */
288
-	public function get_session( $customer_id, $default = false ) {
289
-
290
-		if ( defined( 'WP_SETUP_CONFIG' ) ) {
291
-			return array();
292
-		}
240
+            $this->_dirty = false;
241
+        }
242
+    }
243
+
244
+    /**
245
+     * Destroy all session data.
246
+     */
247
+    public function destroy_session() {
248
+        $this->delete_session( $this->_customer_id );
249
+        $this->forget_session();
250
+    }
251
+
252
+    /**
253
+     * Forget all session data without destroying it.
254
+     */
255
+    public function forget_session() {
256
+        $this->setcookie( $this->_cookie, '', time() - YEAR_IN_SECONDS, $this->use_secure_cookie(), true );
257
+
258
+        wpinv_empty_cart();
259
+
260
+        $this->_data        = array();
261
+        $this->_dirty       = false;
262
+        $this->_customer_id = $this->generate_customer_id();
263
+    }
264
+
265
+    /**
266
+     * When a user is logged out, ensure they have a unique nonce by using the customer/session ID.
267
+     *
268
+     * @param int $uid User ID.
269
+     * @return string
270
+     */
271
+    public function nonce_user_logged_out( $uid ) {
272
+
273
+        // Check if one of our nonces.
274
+        if ( substr( $uid, 0, 5 ) === 'wpinv' || substr( $uid, 0, 7 ) === 'getpaid' ) {
275
+            return $this->has_session() && $this->_customer_id ? $this->_customer_id : $uid;
276
+        }
277
+
278
+        return $uid;
279
+    }
280
+
281
+    /**
282
+     * Returns the session.
283
+     *
284
+     * @param string $customer_id Customer ID.
285
+     * @param mixed  $default Default session value.
286
+     * @return string|array
287
+     */
288
+    public function get_session( $customer_id, $default = false ) {
289
+
290
+        if ( defined( 'WP_SETUP_CONFIG' ) ) {
291
+            return array();
292
+        }
293 293
 
294 294
         $key = $this->generate_key( $customer_id );
295 295
         $value = get_transient( $key );
@@ -298,30 +298,30 @@  discard block
 block discarded – undo
298 298
             $value = $default;
299 299
         }
300 300
 
301
-		return maybe_unserialize( $value );
302
-	}
301
+        return maybe_unserialize( $value );
302
+    }
303 303
 
304
-	/**
305
-	 * Delete the session from the cache and database.
306
-	 *
307
-	 * @param int $customer_id Customer ID.
308
-	 */
309
-	public function delete_session( $customer_id ) {
304
+    /**
305
+     * Delete the session from the cache and database.
306
+     *
307
+     * @param int $customer_id Customer ID.
308
+     */
309
+    public function delete_session( $customer_id ) {
310 310
 
311 311
         $key = $this->generate_key( $customer_id );
312 312
 
313
-		delete_transient( $key );
314
-	}
313
+        delete_transient( $key );
314
+    }
315 315
 
316
-	/**
317
-	 * Update the session expiry timestamp.
318
-	 *
319
-	 * @param string $customer_id Customer ID.
320
-	 * @param int    $timestamp Timestamp to expire the cookie.
321
-	 */
322
-	public function update_session_timestamp( $customer_id, $timestamp ) {
316
+    /**
317
+     * Update the session expiry timestamp.
318
+     *
319
+     * @param string $customer_id Customer ID.
320
+     * @param int    $timestamp Timestamp to expire the cookie.
321
+     */
322
+    public function update_session_timestamp( $customer_id, $timestamp ) {
323 323
 
324 324
         set_transient( $this->generate_key( $customer_id ), maybe_serialize( $this->_data ), $timestamp );
325 325
 
326
-	}
326
+    }
327 327
 }
Please login to merge, or discard this patch.
Spacing   +58 added lines, -58 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
  * Session handler class.
@@ -54,11 +54,11 @@  discard block
 block discarded – undo
54 54
 	 */
55 55
 	public function old__construct() {
56 56
 
57
-	    $this->_cookie = apply_filters( 'wpinv_cookie', 'wpinv_session_' . COOKIEHASH );
58
-        add_action( 'init', array( $this, 'init' ), -1 );
59
-		add_action( 'wp_logout', array( $this, 'destroy_session' ) );
60
-		add_action( 'wp', array( $this, 'set_customer_session_cookie' ), 10 );
61
-		add_action( 'shutdown', array( $this, 'save_data' ), 20 );
57
+	    $this->_cookie = apply_filters('wpinv_cookie', 'wpinv_session_' . COOKIEHASH);
58
+        add_action('init', array($this, 'init'), -1);
59
+		add_action('wp_logout', array($this, 'destroy_session'));
60
+		add_action('wp', array($this, 'set_customer_session_cookie'), 10);
61
+		add_action('shutdown', array($this, 'save_data'), 20);
62 62
 
63 63
 	}
64 64
 
@@ -70,8 +70,8 @@  discard block
 block discarded – undo
70 70
 	public function init() {
71 71
 		$this->init_session_cookie();
72 72
 
73
-		if ( ! is_user_logged_in() ) {
74
-			add_filter( 'nonce_user_logged_out', array( $this, 'nonce_user_logged_out' ), 10, 2 );
73
+		if (!is_user_logged_in()) {
74
+			add_filter('nonce_user_logged_out', array($this, 'nonce_user_logged_out'), 10, 2);
75 75
 		}
76 76
 	}
77 77
 
@@ -83,7 +83,7 @@  discard block
 block discarded – undo
83 83
 	public function init_session_cookie() {
84 84
 		$cookie = $this->get_session_cookie();
85 85
 
86
-		if ( $cookie ) {
86
+		if ($cookie) {
87 87
 			$this->_customer_id        = $cookie[0];
88 88
 			$this->_session_expiration = $cookie[1];
89 89
 			$this->_session_expiring   = $cookie[2];
@@ -91,17 +91,17 @@  discard block
 block discarded – undo
91 91
 			$this->_data               = $this->get_session_data();
92 92
 
93 93
 			// If the user logs in, update session.
94
-			if ( is_user_logged_in() && get_current_user_id() != $this->_customer_id ) {
94
+			if (is_user_logged_in() && get_current_user_id() != $this->_customer_id) {
95 95
 				$this->_customer_id = get_current_user_id();
96 96
 				$this->_dirty       = true;
97 97
 				$this->save_data();
98
-				$this->set_customer_session_cookie( true );
98
+				$this->set_customer_session_cookie(true);
99 99
 			}
100 100
 
101 101
 			// Update session if its close to expiring.
102
-			if ( time() > $this->_session_expiring ) {
102
+			if (time() > $this->_session_expiring) {
103 103
 				$this->set_session_expiration();
104
-				$this->update_session_timestamp( $this->_customer_id, $this->_session_expiration );
104
+				$this->update_session_timestamp($this->_customer_id, $this->_session_expiration);
105 105
 			}
106 106
 		} else {
107 107
 			$this->set_session_expiration();
@@ -119,25 +119,25 @@  discard block
 block discarded – undo
119 119
 	 *
120 120
 	 * @param bool $set Should the session cookie be set.
121 121
 	 */
122
-	public function set_customer_session_cookie( $set ) {
123
-		if ( $set ) {
122
+	public function set_customer_session_cookie($set) {
123
+		if ($set) {
124 124
 			$to_hash           = $this->_customer_id . '|' . $this->_session_expiration;
125
-			$cookie_hash       = hash_hmac( 'md5', $to_hash, wp_hash( $to_hash ) );
125
+			$cookie_hash       = hash_hmac('md5', $to_hash, wp_hash($to_hash));
126 126
 			$cookie_value      = $this->_customer_id . '||' . $this->_session_expiration . '||' . $this->_session_expiring . '||' . $cookie_hash;
127 127
 			$this->_has_cookie = true;
128 128
 
129
-			if ( ! isset( $_COOKIE[ $this->_cookie ] ) || $_COOKIE[ $this->_cookie ] !== $cookie_value ) {
130
-				$this->setcookie( $this->_cookie, $cookie_value, $this->_session_expiration, $this->use_secure_cookie(), true );
129
+			if (!isset($_COOKIE[$this->_cookie]) || $_COOKIE[$this->_cookie] !== $cookie_value) {
130
+				$this->setcookie($this->_cookie, $cookie_value, $this->_session_expiration, $this->use_secure_cookie(), true);
131 131
 			}
132 132
 		}
133 133
 	}
134 134
 
135
-	public function setcookie( $name, $value, $expire = 0, $secure = false, $httponly = false ) {
136
-        if ( ! headers_sent() ) {
137
-            setcookie( $name, $value, $expire, COOKIEPATH ? COOKIEPATH : '/', COOKIE_DOMAIN, $secure, apply_filters( 'wpinv_cookie_httponly', $httponly, $name, $value, $expire, $secure ) );
138
-        } elseif ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
139
-            headers_sent( $file, $line );
140
-            trigger_error( "{$name} cookie cannot be set - headers already sent by {$file} on line {$line}", E_USER_NOTICE ); // @codingStandardsIgnoreLine
135
+	public function setcookie($name, $value, $expire = 0, $secure = false, $httponly = false) {
136
+        if (!headers_sent()) {
137
+            setcookie($name, $value, $expire, COOKIEPATH ? COOKIEPATH : '/', COOKIE_DOMAIN, $secure, apply_filters('wpinv_cookie_httponly', $httponly, $name, $value, $expire, $secure));
138
+        } elseif (defined('WP_DEBUG') && WP_DEBUG) {
139
+            headers_sent($file, $line);
140
+            trigger_error("{$name} cookie cannot be set - headers already sent by {$file} on line {$line}", E_USER_NOTICE); // @codingStandardsIgnoreLine
141 141
         }
142 142
     }
143 143
 
@@ -148,8 +148,8 @@  discard block
 block discarded – undo
148 148
 	 * @return bool
149 149
 	 */
150 150
 	protected function use_secure_cookie() {
151
-        $is_https = false !== strstr( get_option( 'home' ), 'https:' );
152
-		return apply_filters( 'wpinv_session_use_secure_cookie', $is_https && is_ssl() );
151
+        $is_https = false !== strstr(get_option('home'), 'https:');
152
+		return apply_filters('wpinv_session_use_secure_cookie', $is_https && is_ssl());
153 153
 	}
154 154
 
155 155
 	/**
@@ -158,15 +158,15 @@  discard block
 block discarded – undo
158 158
 	 * @return bool
159 159
 	 */
160 160
 	public function has_session() {
161
-		return isset( $_COOKIE[ $this->_cookie ] ) || $this->_has_cookie || is_user_logged_in(); // @codingStandardsIgnoreLine.
161
+		return isset($_COOKIE[$this->_cookie]) || $this->_has_cookie || is_user_logged_in(); // @codingStandardsIgnoreLine.
162 162
 	}
163 163
 
164 164
 	/**
165 165
 	 * Set session expiration.
166 166
 	 */
167 167
 	public function set_session_expiration() {
168
-		$this->_session_expiring   = time() + intval( apply_filters( 'wpinv_session_expiring', 60 * 60 * 47 ) ); // 47 Hours.
169
-		$this->_session_expiration = time() + intval( apply_filters( 'wpinv_session_expiration', 60 * 60 * 48 ) ); // 48 Hours.
168
+		$this->_session_expiring   = time() + intval(apply_filters('wpinv_session_expiring', 60 * 60 * 47)); // 47 Hours.
169
+		$this->_session_expiration = time() + intval(apply_filters('wpinv_session_expiration', 60 * 60 * 48)); // 48 Hours.
170 170
 	}
171 171
 
172 172
 	/**
@@ -176,8 +176,8 @@  discard block
 block discarded – undo
176 176
 	 */
177 177
 	public function generate_customer_id() {
178 178
 		require_once ABSPATH . 'wp-includes/class-phpass.php';
179
-		$hasher      = new PasswordHash( 8, false );
180
-		return md5( $hasher->get_random_bytes( 32 ) );
179
+		$hasher = new PasswordHash(8, false);
180
+		return md5($hasher->get_random_bytes(32));
181 181
 	}
182 182
 
183 183
 	/**
@@ -188,27 +188,27 @@  discard block
 block discarded – undo
188 188
 	 * @return bool|array
189 189
 	 */
190 190
 	public function get_session_cookie() {
191
-		$cookie_value = isset( $_COOKIE[ $this->_cookie ] ) ? wp_unslash( $_COOKIE[ $this->_cookie ] ) : false; // @codingStandardsIgnoreLine.
191
+		$cookie_value = isset($_COOKIE[$this->_cookie]) ? wp_unslash($_COOKIE[$this->_cookie]) : false; // @codingStandardsIgnoreLine.
192 192
 
193
-		if ( empty( $cookie_value ) || ! is_string( $cookie_value ) ) {
193
+		if (empty($cookie_value) || !is_string($cookie_value)) {
194 194
 			return false;
195 195
 		}
196 196
 
197
-		list( $customer_id, $session_expiration, $session_expiring, $cookie_hash ) = explode( '||', $cookie_value );
197
+		list($customer_id, $session_expiration, $session_expiring, $cookie_hash) = explode('||', $cookie_value);
198 198
 
199
-		if ( empty( $customer_id ) ) {
199
+		if (empty($customer_id)) {
200 200
 			return false;
201 201
 		}
202 202
 
203 203
 		// Validate hash.
204 204
 		$to_hash = $customer_id . '|' . $session_expiration;
205
-		$hash    = hash_hmac( 'md5', $to_hash, wp_hash( $to_hash ) );
205
+		$hash    = hash_hmac('md5', $to_hash, wp_hash($to_hash));
206 206
 
207
-		if ( empty( $cookie_hash ) || ! hash_equals( $hash, $cookie_hash ) ) {
207
+		if (empty($cookie_hash) || !hash_equals($hash, $cookie_hash)) {
208 208
 			return false;
209 209
 		}
210 210
 
211
-		return array( $customer_id, $session_expiration, $session_expiring, $cookie_hash );
211
+		return array($customer_id, $session_expiration, $session_expiring, $cookie_hash);
212 212
 	}
213 213
 
214 214
 	/**
@@ -217,11 +217,11 @@  discard block
 block discarded – undo
217 217
 	 * @return array
218 218
 	 */
219 219
 	public function get_session_data() {
220
-		return $this->has_session() ? (array) $this->get_session( $this->_customer_id ) : array();
220
+		return $this->has_session() ? (array) $this->get_session($this->_customer_id) : array();
221 221
 	}
222 222
 
223
-	public function generate_key( $customer_id ) {
224
-        if ( ! $customer_id ) {
223
+	public function generate_key($customer_id) {
224
+        if (!$customer_id) {
225 225
             return;
226 226
         }
227 227
 
@@ -233,9 +233,9 @@  discard block
 block discarded – undo
233 233
 	 */
234 234
 	public function save_data() {
235 235
 		// Dirty if something changed - prevents saving nothing new.
236
-		if ( $this->_dirty && $this->has_session() ) {
236
+		if ($this->_dirty && $this->has_session()) {
237 237
 
238
-            set_transient( $this->generate_key( $this->_customer_id ), $this->_data, $this->_session_expiration );
238
+            set_transient($this->generate_key($this->_customer_id), $this->_data, $this->_session_expiration);
239 239
 
240 240
 			$this->_dirty = false;
241 241
 		}
@@ -245,7 +245,7 @@  discard block
 block discarded – undo
245 245
 	 * Destroy all session data.
246 246
 	 */
247 247
 	public function destroy_session() {
248
-		$this->delete_session( $this->_customer_id );
248
+		$this->delete_session($this->_customer_id);
249 249
 		$this->forget_session();
250 250
 	}
251 251
 
@@ -253,7 +253,7 @@  discard block
 block discarded – undo
253 253
 	 * Forget all session data without destroying it.
254 254
 	 */
255 255
 	public function forget_session() {
256
-		$this->setcookie( $this->_cookie, '', time() - YEAR_IN_SECONDS, $this->use_secure_cookie(), true );
256
+		$this->setcookie($this->_cookie, '', time() - YEAR_IN_SECONDS, $this->use_secure_cookie(), true);
257 257
 
258 258
 		wpinv_empty_cart();
259 259
 
@@ -268,10 +268,10 @@  discard block
 block discarded – undo
268 268
 	 * @param int $uid User ID.
269 269
 	 * @return string
270 270
 	 */
271
-	public function nonce_user_logged_out( $uid ) {
271
+	public function nonce_user_logged_out($uid) {
272 272
 
273 273
 		// Check if one of our nonces.
274
-		if ( substr( $uid, 0, 5 ) === 'wpinv' || substr( $uid, 0, 7 ) === 'getpaid' ) {
274
+		if (substr($uid, 0, 5) === 'wpinv' || substr($uid, 0, 7) === 'getpaid') {
275 275
 			return $this->has_session() && $this->_customer_id ? $this->_customer_id : $uid;
276 276
 		}
277 277
 
@@ -285,20 +285,20 @@  discard block
 block discarded – undo
285 285
 	 * @param mixed  $default Default session value.
286 286
 	 * @return string|array
287 287
 	 */
288
-	public function get_session( $customer_id, $default = false ) {
288
+	public function get_session($customer_id, $default = false) {
289 289
 
290
-		if ( defined( 'WP_SETUP_CONFIG' ) ) {
290
+		if (defined('WP_SETUP_CONFIG')) {
291 291
 			return array();
292 292
 		}
293 293
 
294
-        $key = $this->generate_key( $customer_id );
295
-        $value = get_transient( $key );
294
+        $key = $this->generate_key($customer_id);
295
+        $value = get_transient($key);
296 296
 
297
-        if ( ! $value ) {
297
+        if (!$value) {
298 298
             $value = $default;
299 299
         }
300 300
 
301
-		return maybe_unserialize( $value );
301
+		return maybe_unserialize($value);
302 302
 	}
303 303
 
304 304
 	/**
@@ -306,11 +306,11 @@  discard block
 block discarded – undo
306 306
 	 *
307 307
 	 * @param int $customer_id Customer ID.
308 308
 	 */
309
-	public function delete_session( $customer_id ) {
309
+	public function delete_session($customer_id) {
310 310
 
311
-        $key = $this->generate_key( $customer_id );
311
+        $key = $this->generate_key($customer_id);
312 312
 
313
-		delete_transient( $key );
313
+		delete_transient($key);
314 314
 	}
315 315
 
316 316
 	/**
@@ -319,9 +319,9 @@  discard block
 block discarded – undo
319 319
 	 * @param string $customer_id Customer ID.
320 320
 	 * @param int    $timestamp Timestamp to expire the cookie.
321 321
 	 */
322
-	public function update_session_timestamp( $customer_id, $timestamp ) {
322
+	public function update_session_timestamp($customer_id, $timestamp) {
323 323
 
324
-        set_transient( $this->generate_key( $customer_id ), maybe_serialize( $this->_data ), $timestamp );
324
+        set_transient($this->generate_key($customer_id), maybe_serialize($this->_data), $timestamp);
325 325
 
326 326
 	}
327 327
 }
Please login to merge, or discard this patch.
includes/admin/class-getpaid-metaboxes.php 2 patches
Indentation   +243 added lines, -243 removed lines patch added patch discarded remove patch
@@ -12,280 +12,280 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Metaboxes {
14 14
 
15
-	/**
16
-	 * Only save metaboxes once.
17
-	 *
18
-	 * @var boolean
19
-	 */
20
-	private static $saved_meta_boxes = false;
15
+    /**
16
+     * Only save metaboxes once.
17
+     *
18
+     * @var boolean
19
+     */
20
+    private static $saved_meta_boxes = false;
21 21
 
22 22
     /**
23
-	 * Hook in methods.
24
-	 */
25
-	public static function init() {
23
+     * Hook in methods.
24
+     */
25
+    public static function init() {
26 26
 
27
-		// Register metaboxes.
28
-		add_action( 'add_meta_boxes', 'GetPaid_Metaboxes::add_meta_boxes', 50, 2 );
27
+        // Register metaboxes.
28
+        add_action( 'add_meta_boxes', 'GetPaid_Metaboxes::add_meta_boxes', 50, 2 );
29 29
 
30
-		// Remove metaboxes.
31
-		add_action( 'add_meta_boxes', 'GetPaid_Metaboxes::remove_meta_boxes', 30 );
30
+        // Remove metaboxes.
31
+        add_action( 'add_meta_boxes', 'GetPaid_Metaboxes::remove_meta_boxes', 30 );
32 32
 
33
-		// Rename metaboxes.
34
-		add_action( 'add_meta_boxes', 'GetPaid_Metaboxes::rename_meta_boxes', 45 );
33
+        // Rename metaboxes.
34
+        add_action( 'add_meta_boxes', 'GetPaid_Metaboxes::rename_meta_boxes', 45 );
35 35
 
36
-		// Save metaboxes.
37
-		add_action( 'save_post', 'GetPaid_Metaboxes::save_meta_boxes', 1, 2 );
38
-	}
36
+        // Save metaboxes.
37
+        add_action( 'save_post', 'GetPaid_Metaboxes::save_meta_boxes', 1, 2 );
38
+    }
39 39
 
40
-	/**
41
-	 * Register core metaboxes.
42
-	 */
43
-	public static function add_meta_boxes( $post_type, $post ) {
40
+    /**
41
+     * Register core metaboxes.
42
+     */
43
+    public static function add_meta_boxes( $post_type, $post ) {
44 44
 
45
-		// For invoices.
46
-		self::add_invoice_meta_boxes( $post_type, $post );
45
+        // For invoices.
46
+        self::add_invoice_meta_boxes( $post_type, $post );
47 47
 
48
-		// For payment forms.
49
-		self::add_payment_form_meta_boxes( $post_type, $post );
48
+        // For payment forms.
49
+        self::add_payment_form_meta_boxes( $post_type, $post );
50 50
 
51
-		// For invoice items.
52
-		self::add_item_meta_boxes( $post_type );
51
+        // For invoice items.
52
+        self::add_item_meta_boxes( $post_type );
53 53
 
54
-		// For invoice discounts.
55
-		if ( 'wpi_discount' === $post_type ) {
56
-			add_meta_box( 'wpinv_discount_details', __( 'Discount Details', 'invoicing' ), 'GetPaid_Meta_Box_Discount_Details::output', 'wpi_discount', 'normal', 'high' );
57
-		}
54
+        // For invoice discounts.
55
+        if ( 'wpi_discount' === $post_type ) {
56
+            add_meta_box( 'wpinv_discount_details', __( 'Discount Details', 'invoicing' ), 'GetPaid_Meta_Box_Discount_Details::output', 'wpi_discount', 'normal', 'high' );
57
+        }
58 58
 
59
-	}
59
+    }
60 60
 
61
-	/**
62
-	 * Register core metaboxes.
63
-	 */
64
-	protected static function add_payment_form_meta_boxes( $post_type, $post ) {
61
+    /**
62
+     * Register core metaboxes.
63
+     */
64
+    protected static function add_payment_form_meta_boxes( $post_type, $post ) {
65 65
 
66
-		// For payment forms.
67
-		if ( 'wpi_payment_form' === $post_type ) {
66
+        // For payment forms.
67
+        if ( 'wpi_payment_form' === $post_type ) {
68 68
 
69
-			// Design payment form.
70
-			add_meta_box( 'wpinv-payment-form-design', __( 'Payment Form', 'invoicing' ), 'GetPaid_Meta_Box_Payment_Form::output', 'wpi_payment_form', 'normal' );
69
+            // Design payment form.
70
+            add_meta_box( 'wpinv-payment-form-design', __( 'Payment Form', 'invoicing' ), 'GetPaid_Meta_Box_Payment_Form::output', 'wpi_payment_form', 'normal' );
71 71
 
72
-			// Payment form information.
73
-			if ( wpinv_get_default_payment_form() !== $post->ID ) {
74
-				add_meta_box( 'wpinv-payment-form-info', __( 'Details', 'invoicing' ), 'GetPaid_Meta_Box_Payment_Form_Info::output', 'wpi_payment_form', 'side' );
75
-			}
72
+            // Payment form information.
73
+            if ( wpinv_get_default_payment_form() !== $post->ID ) {
74
+                add_meta_box( 'wpinv-payment-form-info', __( 'Details', 'invoicing' ), 'GetPaid_Meta_Box_Payment_Form_Info::output', 'wpi_payment_form', 'side' );
75
+            }
76 76
 }
77 77
 
78
-	}
79
-
80
-	/**
81
-	 * Register core metaboxes.
82
-	 */
83
-	protected static function add_item_meta_boxes( $post_type ) {
78
+    }
84 79
 
85
-		if ( 'wpi_item' === $post_type ) {
86
-
87
-			// Item details.
88
-			add_meta_box( 'wpinv_item_details', __( 'Item Details', 'invoicing' ), 'GetPaid_Meta_Box_Item_Details::output', 'wpi_item', 'normal', 'high' );
89
-
90
-			// If taxes are enabled, register the tax metabox.
91
-			if ( wpinv_use_taxes() ) {
92
-				add_meta_box( 'wpinv_item_vat', __( 'Tax', 'invoicing' ), 'GetPaid_Meta_Box_Item_VAT::output', 'wpi_item', 'normal', 'high' );
93
-			}
80
+    /**
81
+     * Register core metaboxes.
82
+     */
83
+    protected static function add_item_meta_boxes( $post_type ) {
94 84
 
95
-			// Item info.
96
-			add_meta_box( 'wpinv_field_item_info', __( 'Item info', 'invoicing' ), 'GetPaid_Meta_Box_Item_Info::output', 'wpi_item', 'side', 'core' );
85
+        if ( 'wpi_item' === $post_type ) {
97 86
 
98
-			// Item description.
99
-			add_meta_box( 'postexcerpt', __( 'Item Description', 'invoicing' ), 'GetPaid_Meta_Box_Description::output', 'wpi_item', 'normal' );
100
-		}
87
+            // Item details.
88
+            add_meta_box( 'wpinv_item_details', __( 'Item Details', 'invoicing' ), 'GetPaid_Meta_Box_Item_Details::output', 'wpi_item', 'normal', 'high' );
101 89
 
102
-	}
90
+            // If taxes are enabled, register the tax metabox.
91
+            if ( wpinv_use_taxes() ) {
92
+                add_meta_box( 'wpinv_item_vat', __( 'Tax', 'invoicing' ), 'GetPaid_Meta_Box_Item_VAT::output', 'wpi_item', 'normal', 'high' );
93
+            }
103 94
 
104
-	/**
105
-	 * Register invoice metaboxes.
106
-	 */
107
-	protected static function add_invoice_meta_boxes( $post_type, $post ) {
95
+            // Item info.
96
+            add_meta_box( 'wpinv_field_item_info', __( 'Item info', 'invoicing' ), 'GetPaid_Meta_Box_Item_Info::output', 'wpi_item', 'side', 'core' );
108 97
 
109
-		// For invoices...
110
-		if ( getpaid_is_invoice_post_type( $post_type ) ) {
111
-			$invoice = new WPInv_Invoice( $post );
98
+            // Item description.
99
+            add_meta_box( 'postexcerpt', __( 'Item Description', 'invoicing' ), 'GetPaid_Meta_Box_Description::output', 'wpi_item', 'normal' );
100
+        }
112 101
 
113
-			// Resend invoice.
114
-			if ( ! $invoice->is_draft() ) {
102
+    }
115 103
 
116
-				add_meta_box(
117
-					'wpinv-mb-resend-invoice',
118
-					sprintf(
119
-						// translators: %s is the invoice type.
120
-						__( 'Resend %s', 'invoicing' ),
121
-						ucfirst( $invoice->get_invoice_quote_type() )
122
-					),
123
-					'GetPaid_Meta_Box_Resend_Invoice::output',
124
-					$post_type,
125
-					'side',
126
-					'low'
127
-				);
104
+    /**
105
+     * Register invoice metaboxes.
106
+     */
107
+    protected static function add_invoice_meta_boxes( $post_type, $post ) {
108
+
109
+        // For invoices...
110
+        if ( getpaid_is_invoice_post_type( $post_type ) ) {
111
+            $invoice = new WPInv_Invoice( $post );
112
+
113
+            // Resend invoice.
114
+            if ( ! $invoice->is_draft() ) {
115
+
116
+                add_meta_box(
117
+                    'wpinv-mb-resend-invoice',
118
+                    sprintf(
119
+                        // translators: %s is the invoice type.
120
+                        __( 'Resend %s', 'invoicing' ),
121
+                        ucfirst( $invoice->get_invoice_quote_type() )
122
+                    ),
123
+                    'GetPaid_Meta_Box_Resend_Invoice::output',
124
+                    $post_type,
125
+                    'side',
126
+                    'low'
127
+                );
128
+
129
+            }
130
+
131
+            // Subscriptions.
132
+            $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
133
+            if ( ! empty( $subscriptions ) ) {
134
+
135
+                if ( is_array( $subscriptions ) ) {
136
+                    add_meta_box( 'wpinv-mb-subscriptions', __( 'Related Subscriptions', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Subscription::output_related', $post_type, 'advanced' );
137
+                } else {
138
+                    add_meta_box( 'wpinv-mb-subscriptions', __( 'Subscription Details', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Subscription::output', $post_type, 'advanced' );
139
+                }
140
+
141
+                if ( getpaid_count_subscription_invoices( $invoice->is_renewal() ? $invoice->get_parent_id() : $invoice->get_id() ) > 1 ) {
142
+                    add_meta_box( 'wpinv-mb-subscription-invoices', __( 'Related Payments', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Subscription::output_invoices', $post_type, 'advanced' );
143
+                }
144
+}
128 145
 
129
-			}
146
+            // Invoice details.
147
+            add_meta_box(
148
+                'wpinv-details',
149
+                sprintf(
150
+                    // translators: %s is the invoice type.
151
+                    __( '%s Details', 'invoicing' ),
152
+                    ucfirst( $invoice->get_invoice_quote_type() )
153
+                ),
154
+                'GetPaid_Meta_Box_Invoice_Details::output',
155
+                $post_type,
156
+                'side'
157
+            );
158
+
159
+            // Payment details.
160
+            add_meta_box( 'wpinv-payment-meta', __( 'Payment Meta', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Payment_Meta::output', $post_type, 'side', 'default' );
161
+
162
+            // Billing details.
163
+            add_meta_box( 'wpinv-address', __( 'Billing Details', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Address::output', $post_type, 'normal', 'high' );
164
+
165
+            // Invoice items.
166
+            add_meta_box(
167
+                'wpinv-items',
168
+                sprintf(
169
+                    // translators: %s is the invoice type.
170
+                    __( '%s Items', 'invoicing' ),
171
+                    ucfirst( $invoice->get_invoice_quote_type() )
172
+                ),
173
+                'GetPaid_Meta_Box_Invoice_Items::output',
174
+                $post_type,
175
+                'normal',
176
+                'high'
177
+            );
178
+
179
+            // Invoice notes.
180
+            add_meta_box(
181
+                'wpinv-notes',
182
+                sprintf(
183
+                    // translators: %s is the invoice type.
184
+                    __( '%s Notes', 'invoicing' ),
185
+                    ucfirst( $invoice->get_invoice_quote_type() )
186
+                ),
187
+                'WPInv_Meta_Box_Notes::output',
188
+                $post_type,
189
+                'side',
190
+                'low'
191
+            );
192
+
193
+            // Shipping Address.
194
+            if ( get_post_meta( $invoice->get_id(), 'shipping_address', true ) ) {
195
+                add_meta_box( 'wpinv-invoice-shipping-details', __( 'Shipping Address', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Shipping_Address::output', $post_type, 'side', 'high' );
196
+            }
197
+
198
+            // Payment form information.
199
+            if ( get_post_meta( $invoice->get_id(), 'payment_form_data', true ) ) {
200
+                add_meta_box( 'wpinv-invoice-payment-form-details', __( 'Payment Form Details', 'invoicing' ), 'WPInv_Meta_Box_Payment_Form::output_details', $post_type, 'side', 'high' );
201
+            }
202
+}
130 203
 
131
-			// Subscriptions.
132
-			$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
133
-			if ( ! empty( $subscriptions ) ) {
204
+    }
134 205
 
135
-				if ( is_array( $subscriptions ) ) {
136
-					add_meta_box( 'wpinv-mb-subscriptions', __( 'Related Subscriptions', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Subscription::output_related', $post_type, 'advanced' );
137
-				} else {
138
-					add_meta_box( 'wpinv-mb-subscriptions', __( 'Subscription Details', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Subscription::output', $post_type, 'advanced' );
139
-				}
206
+    /**
207
+     * Remove some metaboxes.
208
+     */
209
+    public static function remove_meta_boxes() {
210
+        remove_meta_box( 'wpseo_meta', 'wpi_invoice', 'normal' );
211
+        remove_meta_box( 'postexcerpt', 'wpi_item', 'normal' );
212
+    }
140 213
 
141
-				if ( getpaid_count_subscription_invoices( $invoice->is_renewal() ? $invoice->get_parent_id() : $invoice->get_id() ) > 1 ) {
142
-					add_meta_box( 'wpinv-mb-subscription-invoices', __( 'Related Payments', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Subscription::output_invoices', $post_type, 'advanced' );
143
-				}
144
-}
214
+    /**
215
+     * Rename other metaboxes.
216
+     */
217
+    public static function rename_meta_boxes() {
145 218
 
146
-			// Invoice details.
147
-			add_meta_box(
148
-				'wpinv-details',
149
-				sprintf(
150
-					// translators: %s is the invoice type.
151
-					__( '%s Details', 'invoicing' ),
152
-					ucfirst( $invoice->get_invoice_quote_type() )
153
-				),
154
-				'GetPaid_Meta_Box_Invoice_Details::output',
155
-				$post_type,
156
-				'side'
157
-			);
158
-
159
-			// Payment details.
160
-			add_meta_box( 'wpinv-payment-meta', __( 'Payment Meta', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Payment_Meta::output', $post_type, 'side', 'default' );
161
-
162
-			// Billing details.
163
-			add_meta_box( 'wpinv-address', __( 'Billing Details', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Address::output', $post_type, 'normal', 'high' );
164
-
165
-			// Invoice items.
166
-			add_meta_box(
167
-				'wpinv-items',
168
-				sprintf(
169
-					// translators: %s is the invoice type.
170
-					__( '%s Items', 'invoicing' ),
171
-					ucfirst( $invoice->get_invoice_quote_type() )
172
-				),
173
-				'GetPaid_Meta_Box_Invoice_Items::output',
174
-				$post_type,
175
-				'normal',
176
-				'high'
177
-			);
178
-
179
-			// Invoice notes.
180
-			add_meta_box(
181
-				'wpinv-notes',
182
-				sprintf(
183
-					// translators: %s is the invoice type.
184
-					__( '%s Notes', 'invoicing' ),
185
-					ucfirst( $invoice->get_invoice_quote_type() )
186
-				),
187
-				'WPInv_Meta_Box_Notes::output',
188
-				$post_type,
189
-				'side',
190
-				'low'
191
-			);
192
-
193
-			// Shipping Address.
194
-			if ( get_post_meta( $invoice->get_id(), 'shipping_address', true ) ) {
195
-				add_meta_box( 'wpinv-invoice-shipping-details', __( 'Shipping Address', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Shipping_Address::output', $post_type, 'side', 'high' );
196
-			}
197
-
198
-			// Payment form information.
199
-			if ( get_post_meta( $invoice->get_id(), 'payment_form_data', true ) ) {
200
-				add_meta_box( 'wpinv-invoice-payment-form-details', __( 'Payment Form Details', 'invoicing' ), 'WPInv_Meta_Box_Payment_Form::output_details', $post_type, 'side', 'high' );
201
-			}
202
-}
219
+    }
203 220
 
204
-	}
205
-
206
-	/**
207
-	 * Remove some metaboxes.
208
-	 */
209
-	public static function remove_meta_boxes() {
210
-		remove_meta_box( 'wpseo_meta', 'wpi_invoice', 'normal' );
211
-		remove_meta_box( 'postexcerpt', 'wpi_item', 'normal' );
212
-	}
213
-
214
-	/**
215
-	 * Rename other metaboxes.
216
-	 */
217
-	public static function rename_meta_boxes() {
218
-
219
-	}
220
-
221
-	/**
222
-	 * Check if we're saving, then trigger an action based on the post type.
223
-	 *
224
-	 * @param  int    $post_id Post ID.
225
-	 * @param  object $post Post object.
226
-	 */
227
-	public static function save_meta_boxes( $post_id, $post ) {
228
-		$post_id = absint( $post_id );
229
-		$data    = wp_kses_post_deep( wp_unslash( $_POST ) );
230
-
231
-		// Do not save for ajax requests.
232
-		if ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || isset( $_REQUEST['bulk_edit'] ) ) {
233
-			return;
234
-		}
235
-
236
-		// $post_id and $post are required
237
-		if ( empty( $post_id ) || empty( $post ) || self::$saved_meta_boxes ) {
238
-			return;
239
-		}
240
-
241
-		// Dont' save meta boxes for revisions or autosaves.
242
-		if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || is_int( wp_is_post_revision( $post ) ) || is_int( wp_is_post_autosave( $post ) ) ) {
243
-			return;
244
-		}
245
-
246
-		// Check the nonce.
247
-		if ( empty( $data['getpaid_meta_nonce'] ) || ! wp_verify_nonce( $data['getpaid_meta_nonce'], 'getpaid_meta_nonce' ) ) {
248
-			return;
249
-		}
250
-
251
-		// Check the post being saved == the $post_id to prevent triggering this call for other save_post events.
252
-		if ( empty( $data['post_ID'] ) || absint( $data['post_ID'] ) !== $post_id ) {
253
-			return;
254
-		}
255
-
256
-		// Check user has permission to edit.
257
-		if ( ! current_user_can( 'edit_post', $post_id ) ) {
258
-			return;
259
-		}
260
-
261
-		if ( getpaid_is_invoice_post_type( $post->post_type ) ) {
262
-
263
-			// We need this save event to run once to avoid potential endless loops.
264
-			self::$saved_meta_boxes = true;
265
-
266
-			return GetPaid_Meta_Box_Invoice_Address::save( $post_id, wp_kses_post_deep( $_POST ) );
267
-
268
-		}
269
-
270
-		// Ensure this is our post type.
271
-		$post_types_map = array(
272
-			'wpi_item'         => 'GetPaid_Meta_Box_Item_Details',
273
-			'wpi_payment_form' => 'GetPaid_Meta_Box_Payment_Form',
274
-			'wpi_discount'     => 'GetPaid_Meta_Box_Discount_Details',
275
-		);
276
-
277
-		// Is this our post type?
278
-		if ( ! isset( $post_types_map[ $post->post_type ] ) ) {
279
-			return;
280
-		}
281
-
282
-		// We need this save event to run once to avoid potential endless loops.
283
-		self::$saved_meta_boxes = true;
284
-
285
-		// Save the post.
286
-		$class = $post_types_map[ $post->post_type ];
287
-		$class::save( $post_id, wp_kses_post_deep( $_POST ), $post );
288
-
289
-	}
221
+    /**
222
+     * Check if we're saving, then trigger an action based on the post type.
223
+     *
224
+     * @param  int    $post_id Post ID.
225
+     * @param  object $post Post object.
226
+     */
227
+    public static function save_meta_boxes( $post_id, $post ) {
228
+        $post_id = absint( $post_id );
229
+        $data    = wp_kses_post_deep( wp_unslash( $_POST ) );
230
+
231
+        // Do not save for ajax requests.
232
+        if ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || isset( $_REQUEST['bulk_edit'] ) ) {
233
+            return;
234
+        }
235
+
236
+        // $post_id and $post are required
237
+        if ( empty( $post_id ) || empty( $post ) || self::$saved_meta_boxes ) {
238
+            return;
239
+        }
240
+
241
+        // Dont' save meta boxes for revisions or autosaves.
242
+        if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || is_int( wp_is_post_revision( $post ) ) || is_int( wp_is_post_autosave( $post ) ) ) {
243
+            return;
244
+        }
245
+
246
+        // Check the nonce.
247
+        if ( empty( $data['getpaid_meta_nonce'] ) || ! wp_verify_nonce( $data['getpaid_meta_nonce'], 'getpaid_meta_nonce' ) ) {
248
+            return;
249
+        }
250
+
251
+        // Check the post being saved == the $post_id to prevent triggering this call for other save_post events.
252
+        if ( empty( $data['post_ID'] ) || absint( $data['post_ID'] ) !== $post_id ) {
253
+            return;
254
+        }
255
+
256
+        // Check user has permission to edit.
257
+        if ( ! current_user_can( 'edit_post', $post_id ) ) {
258
+            return;
259
+        }
260
+
261
+        if ( getpaid_is_invoice_post_type( $post->post_type ) ) {
262
+
263
+            // We need this save event to run once to avoid potential endless loops.
264
+            self::$saved_meta_boxes = true;
265
+
266
+            return GetPaid_Meta_Box_Invoice_Address::save( $post_id, wp_kses_post_deep( $_POST ) );
267
+
268
+        }
269
+
270
+        // Ensure this is our post type.
271
+        $post_types_map = array(
272
+            'wpi_item'         => 'GetPaid_Meta_Box_Item_Details',
273
+            'wpi_payment_form' => 'GetPaid_Meta_Box_Payment_Form',
274
+            'wpi_discount'     => 'GetPaid_Meta_Box_Discount_Details',
275
+        );
276
+
277
+        // Is this our post type?
278
+        if ( ! isset( $post_types_map[ $post->post_type ] ) ) {
279
+            return;
280
+        }
281
+
282
+        // We need this save event to run once to avoid potential endless loops.
283
+        self::$saved_meta_boxes = true;
284
+
285
+        // Save the post.
286
+        $class = $post_types_map[ $post->post_type ];
287
+        $class::save( $post_id, wp_kses_post_deep( $_POST ), $post );
288
+
289
+    }
290 290
 
291 291
 }
Please login to merge, or discard this patch.
Spacing   +64 added lines, -64 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
  * Metaboxes Admin Class
@@ -25,35 +25,35 @@  discard block
 block discarded – undo
25 25
 	public static function init() {
26 26
 
27 27
 		// Register metaboxes.
28
-		add_action( 'add_meta_boxes', 'GetPaid_Metaboxes::add_meta_boxes', 50, 2 );
28
+		add_action('add_meta_boxes', 'GetPaid_Metaboxes::add_meta_boxes', 50, 2);
29 29
 
30 30
 		// Remove metaboxes.
31
-		add_action( 'add_meta_boxes', 'GetPaid_Metaboxes::remove_meta_boxes', 30 );
31
+		add_action('add_meta_boxes', 'GetPaid_Metaboxes::remove_meta_boxes', 30);
32 32
 
33 33
 		// Rename metaboxes.
34
-		add_action( 'add_meta_boxes', 'GetPaid_Metaboxes::rename_meta_boxes', 45 );
34
+		add_action('add_meta_boxes', 'GetPaid_Metaboxes::rename_meta_boxes', 45);
35 35
 
36 36
 		// Save metaboxes.
37
-		add_action( 'save_post', 'GetPaid_Metaboxes::save_meta_boxes', 1, 2 );
37
+		add_action('save_post', 'GetPaid_Metaboxes::save_meta_boxes', 1, 2);
38 38
 	}
39 39
 
40 40
 	/**
41 41
 	 * Register core metaboxes.
42 42
 	 */
43
-	public static function add_meta_boxes( $post_type, $post ) {
43
+	public static function add_meta_boxes($post_type, $post) {
44 44
 
45 45
 		// For invoices.
46
-		self::add_invoice_meta_boxes( $post_type, $post );
46
+		self::add_invoice_meta_boxes($post_type, $post);
47 47
 
48 48
 		// For payment forms.
49
-		self::add_payment_form_meta_boxes( $post_type, $post );
49
+		self::add_payment_form_meta_boxes($post_type, $post);
50 50
 
51 51
 		// For invoice items.
52
-		self::add_item_meta_boxes( $post_type );
52
+		self::add_item_meta_boxes($post_type);
53 53
 
54 54
 		// For invoice discounts.
55
-		if ( 'wpi_discount' === $post_type ) {
56
-			add_meta_box( 'wpinv_discount_details', __( 'Discount Details', 'invoicing' ), 'GetPaid_Meta_Box_Discount_Details::output', 'wpi_discount', 'normal', 'high' );
55
+		if ('wpi_discount' === $post_type) {
56
+			add_meta_box('wpinv_discount_details', __('Discount Details', 'invoicing'), 'GetPaid_Meta_Box_Discount_Details::output', 'wpi_discount', 'normal', 'high');
57 57
 		}
58 58
 
59 59
 	}
@@ -61,17 +61,17 @@  discard block
 block discarded – undo
61 61
 	/**
62 62
 	 * Register core metaboxes.
63 63
 	 */
64
-	protected static function add_payment_form_meta_boxes( $post_type, $post ) {
64
+	protected static function add_payment_form_meta_boxes($post_type, $post) {
65 65
 
66 66
 		// For payment forms.
67
-		if ( 'wpi_payment_form' === $post_type ) {
67
+		if ('wpi_payment_form' === $post_type) {
68 68
 
69 69
 			// Design payment form.
70
-			add_meta_box( 'wpinv-payment-form-design', __( 'Payment Form', 'invoicing' ), 'GetPaid_Meta_Box_Payment_Form::output', 'wpi_payment_form', 'normal' );
70
+			add_meta_box('wpinv-payment-form-design', __('Payment Form', 'invoicing'), 'GetPaid_Meta_Box_Payment_Form::output', 'wpi_payment_form', 'normal');
71 71
 
72 72
 			// Payment form information.
73
-			if ( wpinv_get_default_payment_form() !== $post->ID ) {
74
-				add_meta_box( 'wpinv-payment-form-info', __( 'Details', 'invoicing' ), 'GetPaid_Meta_Box_Payment_Form_Info::output', 'wpi_payment_form', 'side' );
73
+			if (wpinv_get_default_payment_form() !== $post->ID) {
74
+				add_meta_box('wpinv-payment-form-info', __('Details', 'invoicing'), 'GetPaid_Meta_Box_Payment_Form_Info::output', 'wpi_payment_form', 'side');
75 75
 			}
76 76
 }
77 77
 
@@ -80,23 +80,23 @@  discard block
 block discarded – undo
80 80
 	/**
81 81
 	 * Register core metaboxes.
82 82
 	 */
83
-	protected static function add_item_meta_boxes( $post_type ) {
83
+	protected static function add_item_meta_boxes($post_type) {
84 84
 
85
-		if ( 'wpi_item' === $post_type ) {
85
+		if ('wpi_item' === $post_type) {
86 86
 
87 87
 			// Item details.
88
-			add_meta_box( 'wpinv_item_details', __( 'Item Details', 'invoicing' ), 'GetPaid_Meta_Box_Item_Details::output', 'wpi_item', 'normal', 'high' );
88
+			add_meta_box('wpinv_item_details', __('Item Details', 'invoicing'), 'GetPaid_Meta_Box_Item_Details::output', 'wpi_item', 'normal', 'high');
89 89
 
90 90
 			// If taxes are enabled, register the tax metabox.
91
-			if ( wpinv_use_taxes() ) {
92
-				add_meta_box( 'wpinv_item_vat', __( 'Tax', 'invoicing' ), 'GetPaid_Meta_Box_Item_VAT::output', 'wpi_item', 'normal', 'high' );
91
+			if (wpinv_use_taxes()) {
92
+				add_meta_box('wpinv_item_vat', __('Tax', 'invoicing'), 'GetPaid_Meta_Box_Item_VAT::output', 'wpi_item', 'normal', 'high');
93 93
 			}
94 94
 
95 95
 			// Item info.
96
-			add_meta_box( 'wpinv_field_item_info', __( 'Item info', 'invoicing' ), 'GetPaid_Meta_Box_Item_Info::output', 'wpi_item', 'side', 'core' );
96
+			add_meta_box('wpinv_field_item_info', __('Item info', 'invoicing'), 'GetPaid_Meta_Box_Item_Info::output', 'wpi_item', 'side', 'core');
97 97
 
98 98
 			// Item description.
99
-			add_meta_box( 'postexcerpt', __( 'Item Description', 'invoicing' ), 'GetPaid_Meta_Box_Description::output', 'wpi_item', 'normal' );
99
+			add_meta_box('postexcerpt', __('Item Description', 'invoicing'), 'GetPaid_Meta_Box_Description::output', 'wpi_item', 'normal');
100 100
 		}
101 101
 
102 102
 	}
@@ -104,21 +104,21 @@  discard block
 block discarded – undo
104 104
 	/**
105 105
 	 * Register invoice metaboxes.
106 106
 	 */
107
-	protected static function add_invoice_meta_boxes( $post_type, $post ) {
107
+	protected static function add_invoice_meta_boxes($post_type, $post) {
108 108
 
109 109
 		// For invoices...
110
-		if ( getpaid_is_invoice_post_type( $post_type ) ) {
111
-			$invoice = new WPInv_Invoice( $post );
110
+		if (getpaid_is_invoice_post_type($post_type)) {
111
+			$invoice = new WPInv_Invoice($post);
112 112
 
113 113
 			// Resend invoice.
114
-			if ( ! $invoice->is_draft() ) {
114
+			if (!$invoice->is_draft()) {
115 115
 
116 116
 				add_meta_box(
117 117
 					'wpinv-mb-resend-invoice',
118 118
 					sprintf(
119 119
 						// translators: %s is the invoice type.
120
-						__( 'Resend %s', 'invoicing' ),
121
-						ucfirst( $invoice->get_invoice_quote_type() )
120
+						__('Resend %s', 'invoicing'),
121
+						ucfirst($invoice->get_invoice_quote_type())
122 122
 					),
123 123
 					'GetPaid_Meta_Box_Resend_Invoice::output',
124 124
 					$post_type,
@@ -129,17 +129,17 @@  discard block
 block discarded – undo
129 129
 			}
130 130
 
131 131
 			// Subscriptions.
132
-			$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
133
-			if ( ! empty( $subscriptions ) ) {
132
+			$subscriptions = getpaid_get_invoice_subscriptions($invoice);
133
+			if (!empty($subscriptions)) {
134 134
 
135
-				if ( is_array( $subscriptions ) ) {
136
-					add_meta_box( 'wpinv-mb-subscriptions', __( 'Related Subscriptions', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Subscription::output_related', $post_type, 'advanced' );
135
+				if (is_array($subscriptions)) {
136
+					add_meta_box('wpinv-mb-subscriptions', __('Related Subscriptions', 'invoicing'), 'GetPaid_Meta_Box_Invoice_Subscription::output_related', $post_type, 'advanced');
137 137
 				} else {
138
-					add_meta_box( 'wpinv-mb-subscriptions', __( 'Subscription Details', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Subscription::output', $post_type, 'advanced' );
138
+					add_meta_box('wpinv-mb-subscriptions', __('Subscription Details', 'invoicing'), 'GetPaid_Meta_Box_Invoice_Subscription::output', $post_type, 'advanced');
139 139
 				}
140 140
 
141
-				if ( getpaid_count_subscription_invoices( $invoice->is_renewal() ? $invoice->get_parent_id() : $invoice->get_id() ) > 1 ) {
142
-					add_meta_box( 'wpinv-mb-subscription-invoices', __( 'Related Payments', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Subscription::output_invoices', $post_type, 'advanced' );
141
+				if (getpaid_count_subscription_invoices($invoice->is_renewal() ? $invoice->get_parent_id() : $invoice->get_id()) > 1) {
142
+					add_meta_box('wpinv-mb-subscription-invoices', __('Related Payments', 'invoicing'), 'GetPaid_Meta_Box_Invoice_Subscription::output_invoices', $post_type, 'advanced');
143 143
 				}
144 144
 }
145 145
 
@@ -148,8 +148,8 @@  discard block
 block discarded – undo
148 148
 				'wpinv-details',
149 149
 				sprintf(
150 150
 					// translators: %s is the invoice type.
151
-					__( '%s Details', 'invoicing' ),
152
-					ucfirst( $invoice->get_invoice_quote_type() )
151
+					__('%s Details', 'invoicing'),
152
+					ucfirst($invoice->get_invoice_quote_type())
153 153
 				),
154 154
 				'GetPaid_Meta_Box_Invoice_Details::output',
155 155
 				$post_type,
@@ -157,18 +157,18 @@  discard block
 block discarded – undo
157 157
 			);
158 158
 
159 159
 			// Payment details.
160
-			add_meta_box( 'wpinv-payment-meta', __( 'Payment Meta', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Payment_Meta::output', $post_type, 'side', 'default' );
160
+			add_meta_box('wpinv-payment-meta', __('Payment Meta', 'invoicing'), 'GetPaid_Meta_Box_Invoice_Payment_Meta::output', $post_type, 'side', 'default');
161 161
 
162 162
 			// Billing details.
163
-			add_meta_box( 'wpinv-address', __( 'Billing Details', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Address::output', $post_type, 'normal', 'high' );
163
+			add_meta_box('wpinv-address', __('Billing Details', 'invoicing'), 'GetPaid_Meta_Box_Invoice_Address::output', $post_type, 'normal', 'high');
164 164
 
165 165
 			// Invoice items.
166 166
 			add_meta_box(
167 167
 				'wpinv-items',
168 168
 				sprintf(
169 169
 					// translators: %s is the invoice type.
170
-					__( '%s Items', 'invoicing' ),
171
-					ucfirst( $invoice->get_invoice_quote_type() )
170
+					__('%s Items', 'invoicing'),
171
+					ucfirst($invoice->get_invoice_quote_type())
172 172
 				),
173 173
 				'GetPaid_Meta_Box_Invoice_Items::output',
174 174
 				$post_type,
@@ -181,8 +181,8 @@  discard block
 block discarded – undo
181 181
 				'wpinv-notes',
182 182
 				sprintf(
183 183
 					// translators: %s is the invoice type.
184
-					__( '%s Notes', 'invoicing' ),
185
-					ucfirst( $invoice->get_invoice_quote_type() )
184
+					__('%s Notes', 'invoicing'),
185
+					ucfirst($invoice->get_invoice_quote_type())
186 186
 				),
187 187
 				'WPInv_Meta_Box_Notes::output',
188 188
 				$post_type,
@@ -191,13 +191,13 @@  discard block
 block discarded – undo
191 191
 			);
192 192
 
193 193
 			// Shipping Address.
194
-			if ( get_post_meta( $invoice->get_id(), 'shipping_address', true ) ) {
195
-				add_meta_box( 'wpinv-invoice-shipping-details', __( 'Shipping Address', 'invoicing' ), 'GetPaid_Meta_Box_Invoice_Shipping_Address::output', $post_type, 'side', 'high' );
194
+			if (get_post_meta($invoice->get_id(), 'shipping_address', true)) {
195
+				add_meta_box('wpinv-invoice-shipping-details', __('Shipping Address', 'invoicing'), 'GetPaid_Meta_Box_Invoice_Shipping_Address::output', $post_type, 'side', 'high');
196 196
 			}
197 197
 
198 198
 			// Payment form information.
199
-			if ( get_post_meta( $invoice->get_id(), 'payment_form_data', true ) ) {
200
-				add_meta_box( 'wpinv-invoice-payment-form-details', __( 'Payment Form Details', 'invoicing' ), 'WPInv_Meta_Box_Payment_Form::output_details', $post_type, 'side', 'high' );
199
+			if (get_post_meta($invoice->get_id(), 'payment_form_data', true)) {
200
+				add_meta_box('wpinv-invoice-payment-form-details', __('Payment Form Details', 'invoicing'), 'WPInv_Meta_Box_Payment_Form::output_details', $post_type, 'side', 'high');
201 201
 			}
202 202
 }
203 203
 
@@ -207,8 +207,8 @@  discard block
 block discarded – undo
207 207
 	 * Remove some metaboxes.
208 208
 	 */
209 209
 	public static function remove_meta_boxes() {
210
-		remove_meta_box( 'wpseo_meta', 'wpi_invoice', 'normal' );
211
-		remove_meta_box( 'postexcerpt', 'wpi_item', 'normal' );
210
+		remove_meta_box('wpseo_meta', 'wpi_invoice', 'normal');
211
+		remove_meta_box('postexcerpt', 'wpi_item', 'normal');
212 212
 	}
213 213
 
214 214
 	/**
@@ -224,46 +224,46 @@  discard block
 block discarded – undo
224 224
 	 * @param  int    $post_id Post ID.
225 225
 	 * @param  object $post Post object.
226 226
 	 */
227
-	public static function save_meta_boxes( $post_id, $post ) {
228
-		$post_id = absint( $post_id );
229
-		$data    = wp_kses_post_deep( wp_unslash( $_POST ) );
227
+	public static function save_meta_boxes($post_id, $post) {
228
+		$post_id = absint($post_id);
229
+		$data    = wp_kses_post_deep(wp_unslash($_POST));
230 230
 
231 231
 		// Do not save for ajax requests.
232
-		if ( ( defined( 'DOING_AJAX' ) && DOING_AJAX ) || isset( $_REQUEST['bulk_edit'] ) ) {
232
+		if ((defined('DOING_AJAX') && DOING_AJAX) || isset($_REQUEST['bulk_edit'])) {
233 233
 			return;
234 234
 		}
235 235
 
236 236
 		// $post_id and $post are required
237
-		if ( empty( $post_id ) || empty( $post ) || self::$saved_meta_boxes ) {
237
+		if (empty($post_id) || empty($post) || self::$saved_meta_boxes) {
238 238
 			return;
239 239
 		}
240 240
 
241 241
 		// Dont' save meta boxes for revisions or autosaves.
242
-		if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || is_int( wp_is_post_revision( $post ) ) || is_int( wp_is_post_autosave( $post ) ) ) {
242
+		if ((defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) || is_int(wp_is_post_revision($post)) || is_int(wp_is_post_autosave($post))) {
243 243
 			return;
244 244
 		}
245 245
 
246 246
 		// Check the nonce.
247
-		if ( empty( $data['getpaid_meta_nonce'] ) || ! wp_verify_nonce( $data['getpaid_meta_nonce'], 'getpaid_meta_nonce' ) ) {
247
+		if (empty($data['getpaid_meta_nonce']) || !wp_verify_nonce($data['getpaid_meta_nonce'], 'getpaid_meta_nonce')) {
248 248
 			return;
249 249
 		}
250 250
 
251 251
 		// Check the post being saved == the $post_id to prevent triggering this call for other save_post events.
252
-		if ( empty( $data['post_ID'] ) || absint( $data['post_ID'] ) !== $post_id ) {
252
+		if (empty($data['post_ID']) || absint($data['post_ID']) !== $post_id) {
253 253
 			return;
254 254
 		}
255 255
 
256 256
 		// Check user has permission to edit.
257
-		if ( ! current_user_can( 'edit_post', $post_id ) ) {
257
+		if (!current_user_can('edit_post', $post_id)) {
258 258
 			return;
259 259
 		}
260 260
 
261
-		if ( getpaid_is_invoice_post_type( $post->post_type ) ) {
261
+		if (getpaid_is_invoice_post_type($post->post_type)) {
262 262
 
263 263
 			// We need this save event to run once to avoid potential endless loops.
264 264
 			self::$saved_meta_boxes = true;
265 265
 
266
-			return GetPaid_Meta_Box_Invoice_Address::save( $post_id, wp_kses_post_deep( $_POST ) );
266
+			return GetPaid_Meta_Box_Invoice_Address::save($post_id, wp_kses_post_deep($_POST));
267 267
 
268 268
 		}
269 269
 
@@ -275,7 +275,7 @@  discard block
 block discarded – undo
275 275
 		);
276 276
 
277 277
 		// Is this our post type?
278
-		if ( ! isset( $post_types_map[ $post->post_type ] ) ) {
278
+		if (!isset($post_types_map[$post->post_type])) {
279 279
 			return;
280 280
 		}
281 281
 
@@ -283,8 +283,8 @@  discard block
 block discarded – undo
283 283
 		self::$saved_meta_boxes = true;
284 284
 
285 285
 		// Save the post.
286
-		$class = $post_types_map[ $post->post_type ];
287
-		$class::save( $post_id, wp_kses_post_deep( $_POST ), $post );
286
+		$class = $post_types_map[$post->post_type];
287
+		$class::save($post_id, wp_kses_post_deep($_POST), $post);
288 288
 
289 289
 	}
290 290
 
Please login to merge, or discard this patch.
ayecode/wp-ayecode-ui/includes/components/class-aui-component-alert.php 4 patches
Indentation   +83 added lines, -83 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 if ( ! defined( 'ABSPATH' ) ) {
4
-	exit; // Exit if accessed directly
4
+    exit; // Exit if accessed directly
5 5
 }
6 6
 
7 7
 /**
@@ -11,87 +11,87 @@  discard block
 block discarded – undo
11 11
  */
12 12
 class AUI_Component_Alert {
13 13
 
14
-	/**
15
-	 * Build the component.
16
-	 * 
17
-	 * @param array $args
18
-	 *
19
-	 * @return string The rendered component.
20
-	 */
21
-	public static function get($args = array()){
22
-		global $aui_bs5;
23
-		$defaults = array(
24
-			'type'       => 'info',
25
-			'class'      => '',
26
-			'icon' => '',
27
-			'heading'    => '',
28
-			'content'    => '',
29
-			'footer'     => '',
30
-			'dismissible'=> false,
31
-			'data'       => '',
32
-		);
33
-
34
-		/**
35
-		 * Parse incoming $args into an array and merge it with $defaults
36
-		 */
37
-		$args   = wp_parse_args( $args, $defaults );
38
-		$output = '';
39
-		if ( ! empty( $args['content'] ) ) {
40
-			$type = sanitize_html_class( $args['type'] );
41
-			if($type=='error'){$type='danger';}
42
-			$icon = !empty($args['icon']) ? "<i class='".esc_attr($args['icon'])."'></i>" : '';
43
-
44
-			// set default icon
45
-			if(!$icon && $args['icon']!==false && $type){
46
-				if($type=='danger'){$icon = '<i class="fas fa-exclamation-circle"></i>';}
47
-				elseif($type=='warning'){$icon = '<i class="fas fa-exclamation-triangle"></i>';}
48
-				elseif($type=='success'){$icon = '<i class="fas fa-check-circle"></i>';}
49
-				elseif($type=='info'){$icon = '<i class="fas fa-info-circle"></i>';}
50
-			}
51
-
52
-			$data = '';
53
-			$class = !empty($args['class']) ? esc_attr($args['class']) : '';
54
-			if($args['dismissible']){$class .= " alert-dismissible fade show";}
55
-
56
-			// open
57
-			$output .= '<div class="alert alert-' . $type . ' '.$class.'" role="alert" '.$data.'>';
58
-
59
-			// heading
60
-			if ( ! empty( $args['heading'] ) ) {
61
-				$output .= '<h4 class="alert-heading">' . $args['heading'] . '</h4>';
62
-			}
63
-
64
-			// icon
65
-			if ( ! empty( $icon) ) {
66
-				$output .= $icon." ";
67
-			}
68
-
69
-			// content
70
-			$output .= $args['content'];
71
-
72
-			// dismissible
73
-			if($args['dismissible']){
74
-
75
-				if ( $aui_bs5 ) {
76
-					$output .= '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
77
-				}else{
78
-					$output .= '<button type="button" class="close" data-dismiss="alert" aria-label="Close">';
79
-					$output .= '<span aria-hidden="true">&times;</span>';
80
-					$output .= '</button>';
81
-				}
82
-			}
83
-
84
-			// footer
85
-			if ( ! empty( $args['footer'] ) ) {
86
-				$output .= '<hr>';
87
-				$output .= '<p class="mb-0">' . $args['footer'] . '</p>';
88
-			}
89
-
90
-			// close
91
-			$output .= '</div>';
92
-		}
93
-
94
-		return $output;
95
-	}
14
+    /**
15
+     * Build the component.
16
+     * 
17
+     * @param array $args
18
+     *
19
+     * @return string The rendered component.
20
+     */
21
+    public static function get($args = array()){
22
+        global $aui_bs5;
23
+        $defaults = array(
24
+            'type'       => 'info',
25
+            'class'      => '',
26
+            'icon' => '',
27
+            'heading'    => '',
28
+            'content'    => '',
29
+            'footer'     => '',
30
+            'dismissible'=> false,
31
+            'data'       => '',
32
+        );
33
+
34
+        /**
35
+         * Parse incoming $args into an array and merge it with $defaults
36
+         */
37
+        $args   = wp_parse_args( $args, $defaults );
38
+        $output = '';
39
+        if ( ! empty( $args['content'] ) ) {
40
+            $type = sanitize_html_class( $args['type'] );
41
+            if($type=='error'){$type='danger';}
42
+            $icon = !empty($args['icon']) ? "<i class='".esc_attr($args['icon'])."'></i>" : '';
43
+
44
+            // set default icon
45
+            if(!$icon && $args['icon']!==false && $type){
46
+                if($type=='danger'){$icon = '<i class="fas fa-exclamation-circle"></i>';}
47
+                elseif($type=='warning'){$icon = '<i class="fas fa-exclamation-triangle"></i>';}
48
+                elseif($type=='success'){$icon = '<i class="fas fa-check-circle"></i>';}
49
+                elseif($type=='info'){$icon = '<i class="fas fa-info-circle"></i>';}
50
+            }
51
+
52
+            $data = '';
53
+            $class = !empty($args['class']) ? esc_attr($args['class']) : '';
54
+            if($args['dismissible']){$class .= " alert-dismissible fade show";}
55
+
56
+            // open
57
+            $output .= '<div class="alert alert-' . $type . ' '.$class.'" role="alert" '.$data.'>';
58
+
59
+            // heading
60
+            if ( ! empty( $args['heading'] ) ) {
61
+                $output .= '<h4 class="alert-heading">' . $args['heading'] . '</h4>';
62
+            }
63
+
64
+            // icon
65
+            if ( ! empty( $icon) ) {
66
+                $output .= $icon." ";
67
+            }
68
+
69
+            // content
70
+            $output .= $args['content'];
71
+
72
+            // dismissible
73
+            if($args['dismissible']){
74
+
75
+                if ( $aui_bs5 ) {
76
+                    $output .= '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
77
+                }else{
78
+                    $output .= '<button type="button" class="close" data-dismiss="alert" aria-label="Close">';
79
+                    $output .= '<span aria-hidden="true">&times;</span>';
80
+                    $output .= '</button>';
81
+                }
82
+            }
83
+
84
+            // footer
85
+            if ( ! empty( $args['footer'] ) ) {
86
+                $output .= '<hr>';
87
+                $output .= '<p class="mb-0">' . $args['footer'] . '</p>';
88
+            }
89
+
90
+            // close
91
+            $output .= '</div>';
92
+        }
93
+
94
+        return $output;
95
+    }
96 96
 
97 97
 }
98 98
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if ( ! defined( 'ABSPATH' ) ) {
3
+if (!defined('ABSPATH')) {
4 4
 	exit; // Exit if accessed directly
5 5
 }
6 6
 
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
 	 *
19 19
 	 * @return string The rendered component.
20 20
 	 */
21
-	public static function get($args = array()){
21
+	public static function get($args = array()) {
22 22
 		global $aui_bs5;
23 23
 		$defaults = array(
24 24
 			'type'       => 'info',
@@ -34,47 +34,47 @@  discard block
 block discarded – undo
34 34
 		/**
35 35
 		 * Parse incoming $args into an array and merge it with $defaults
36 36
 		 */
37
-		$args   = wp_parse_args( $args, $defaults );
37
+		$args   = wp_parse_args($args, $defaults);
38 38
 		$output = '';
39
-		if ( ! empty( $args['content'] ) ) {
40
-			$type = sanitize_html_class( $args['type'] );
41
-			if($type=='error'){$type='danger';}
42
-			$icon = !empty($args['icon']) ? "<i class='".esc_attr($args['icon'])."'></i>" : '';
39
+		if (!empty($args['content'])) {
40
+			$type = sanitize_html_class($args['type']);
41
+			if ($type == 'error') {$type = 'danger'; }
42
+			$icon = !empty($args['icon']) ? "<i class='" . esc_attr($args['icon']) . "'></i>" : '';
43 43
 
44 44
 			// set default icon
45
-			if(!$icon && $args['icon']!==false && $type){
46
-				if($type=='danger'){$icon = '<i class="fas fa-exclamation-circle"></i>';}
47
-				elseif($type=='warning'){$icon = '<i class="fas fa-exclamation-triangle"></i>';}
48
-				elseif($type=='success'){$icon = '<i class="fas fa-check-circle"></i>';}
49
-				elseif($type=='info'){$icon = '<i class="fas fa-info-circle"></i>';}
45
+			if (!$icon && $args['icon'] !== false && $type) {
46
+				if ($type == 'danger') {$icon = '<i class="fas fa-exclamation-circle"></i>'; }
47
+				elseif ($type == 'warning') {$icon = '<i class="fas fa-exclamation-triangle"></i>'; }
48
+				elseif ($type == 'success') {$icon = '<i class="fas fa-check-circle"></i>'; }
49
+				elseif ($type == 'info') {$icon = '<i class="fas fa-info-circle"></i>'; }
50 50
 			}
51 51
 
52 52
 			$data = '';
53 53
 			$class = !empty($args['class']) ? esc_attr($args['class']) : '';
54
-			if($args['dismissible']){$class .= " alert-dismissible fade show";}
54
+			if ($args['dismissible']) {$class .= " alert-dismissible fade show"; }
55 55
 
56 56
 			// open
57
-			$output .= '<div class="alert alert-' . $type . ' '.$class.'" role="alert" '.$data.'>';
57
+			$output .= '<div class="alert alert-' . $type . ' ' . $class . '" role="alert" ' . $data . '>';
58 58
 
59 59
 			// heading
60
-			if ( ! empty( $args['heading'] ) ) {
60
+			if (!empty($args['heading'])) {
61 61
 				$output .= '<h4 class="alert-heading">' . $args['heading'] . '</h4>';
62 62
 			}
63 63
 
64 64
 			// icon
65
-			if ( ! empty( $icon) ) {
66
-				$output .= $icon." ";
65
+			if (!empty($icon)) {
66
+				$output .= $icon . " ";
67 67
 			}
68 68
 
69 69
 			// content
70 70
 			$output .= $args['content'];
71 71
 
72 72
 			// dismissible
73
-			if($args['dismissible']){
73
+			if ($args['dismissible']) {
74 74
 
75
-				if ( $aui_bs5 ) {
75
+				if ($aui_bs5) {
76 76
 					$output .= '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
77
-				}else{
77
+				} else {
78 78
 					$output .= '<button type="button" class="close" data-dismiss="alert" aria-label="Close">';
79 79
 					$output .= '<span aria-hidden="true">&times;</span>';
80 80
 					$output .= '</button>';
@@ -82,7 +82,7 @@  discard block
 block discarded – undo
82 82
 			}
83 83
 
84 84
 			// footer
85
-			if ( ! empty( $args['footer'] ) ) {
85
+			if (!empty($args['footer'])) {
86 86
 				$output .= '<hr>';
87 87
 				$output .= '<p class="mb-0">' . $args['footer'] . '</p>';
88 88
 			}
Please login to merge, or discard this patch.
Braces   +2 added lines, -5 removed lines patch added patch discarded remove patch
@@ -43,10 +43,7 @@  discard block
 block discarded – undo
43 43
 
44 44
 			// set default icon
45 45
 			if(!$icon && $args['icon']!==false && $type){
46
-				if($type=='danger'){$icon = '<i class="fas fa-exclamation-circle"></i>';}
47
-				elseif($type=='warning'){$icon = '<i class="fas fa-exclamation-triangle"></i>';}
48
-				elseif($type=='success'){$icon = '<i class="fas fa-check-circle"></i>';}
49
-				elseif($type=='info'){$icon = '<i class="fas fa-info-circle"></i>';}
46
+				if($type=='danger'){$icon = '<i class="fas fa-exclamation-circle"></i>';} elseif($type=='warning'){$icon = '<i class="fas fa-exclamation-triangle"></i>';} elseif($type=='success'){$icon = '<i class="fas fa-check-circle"></i>';} elseif($type=='info'){$icon = '<i class="fas fa-info-circle"></i>';}
50 47
 			}
51 48
 
52 49
 			$data = '';
@@ -74,7 +71,7 @@  discard block
 block discarded – undo
74 71
 
75 72
 				if ( $aui_bs5 ) {
76 73
 					$output .= '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
77
-				}else{
74
+				} else{
78 75
 					$output .= '<button type="button" class="close" data-dismiss="alert" aria-label="Close">';
79 76
 					$output .= '<span aria-hidden="true">&times;</span>';
80 77
 					$output .= '</button>';
Please login to merge, or discard this patch.
Switch Indentation   +78 added lines, -78 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1
-<?php
1
+    <?php
2 2
 
3
-if ( ! defined( 'ABSPATH' ) ) {
4
-	exit; // Exit if accessed directly
3
+    if ( ! defined( 'ABSPATH' ) ) {
4
+	    exit; // Exit if accessed directly
5 5
 }
6 6
 
7 7
 /**
@@ -9,89 +9,89 @@  discard block
 block discarded – undo
9 9
  *
10 10
  * @since 1.0.0
11 11
  */
12
-class AUI_Component_Alert {
12
+    class AUI_Component_Alert {
13 13
 
14
-	/**
14
+	    /**
15 15
 	 * Build the component.
16 16
 	 * 
17 17
 	 * @param array $args
18 18
 	 *
19 19
 	 * @return string The rendered component.
20 20
 	 */
21
-	public static function get($args = array()){
22
-		global $aui_bs5;
23
-		$defaults = array(
24
-			'type'       => 'info',
25
-			'class'      => '',
26
-			'icon' => '',
27
-			'heading'    => '',
28
-			'content'    => '',
29
-			'footer'     => '',
30
-			'dismissible'=> false,
31
-			'data'       => '',
32
-		);
33
-
34
-		/**
21
+	    public static function get($args = array()){
22
+		    global $aui_bs5;
23
+		    $defaults = array(
24
+			    'type'       => 'info',
25
+			    'class'      => '',
26
+			    'icon' => '',
27
+			    'heading'    => '',
28
+			    'content'    => '',
29
+			    'footer'     => '',
30
+			    'dismissible'=> false,
31
+			    'data'       => '',
32
+		    );
33
+
34
+		    /**
35 35
 		 * Parse incoming $args into an array and merge it with $defaults
36 36
 		 */
37
-		$args   = wp_parse_args( $args, $defaults );
38
-		$output = '';
39
-		if ( ! empty( $args['content'] ) ) {
40
-			$type = sanitize_html_class( $args['type'] );
41
-			if($type=='error'){$type='danger';}
42
-			$icon = !empty($args['icon']) ? "<i class='".esc_attr($args['icon'])."'></i>" : '';
43
-
44
-			// set default icon
45
-			if(!$icon && $args['icon']!==false && $type){
46
-				if($type=='danger'){$icon = '<i class="fas fa-exclamation-circle"></i>';}
47
-				elseif($type=='warning'){$icon = '<i class="fas fa-exclamation-triangle"></i>';}
48
-				elseif($type=='success'){$icon = '<i class="fas fa-check-circle"></i>';}
49
-				elseif($type=='info'){$icon = '<i class="fas fa-info-circle"></i>';}
50
-			}
51
-
52
-			$data = '';
53
-			$class = !empty($args['class']) ? esc_attr($args['class']) : '';
54
-			if($args['dismissible']){$class .= " alert-dismissible fade show";}
55
-
56
-			// open
57
-			$output .= '<div class="alert alert-' . $type . ' '.$class.'" role="alert" '.$data.'>';
58
-
59
-			// heading
60
-			if ( ! empty( $args['heading'] ) ) {
61
-				$output .= '<h4 class="alert-heading">' . $args['heading'] . '</h4>';
62
-			}
63
-
64
-			// icon
65
-			if ( ! empty( $icon) ) {
66
-				$output .= $icon." ";
67
-			}
68
-
69
-			// content
70
-			$output .= $args['content'];
71
-
72
-			// dismissible
73
-			if($args['dismissible']){
74
-
75
-				if ( $aui_bs5 ) {
76
-					$output .= '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
77
-				}else{
78
-					$output .= '<button type="button" class="close" data-dismiss="alert" aria-label="Close">';
79
-					$output .= '<span aria-hidden="true">&times;</span>';
80
-					$output .= '</button>';
81
-				}
82
-			}
83
-
84
-			// footer
85
-			if ( ! empty( $args['footer'] ) ) {
86
-				$output .= '<hr>';
87
-				$output .= '<p class="mb-0">' . $args['footer'] . '</p>';
88
-			}
89
-
90
-			// close
91
-			$output .= '</div>';
92
-		}
93
-
94
-		return $output;
95
-	}
37
+		    $args   = wp_parse_args( $args, $defaults );
38
+		    $output = '';
39
+		    if ( ! empty( $args['content'] ) ) {
40
+			    $type = sanitize_html_class( $args['type'] );
41
+			    if($type=='error'){$type='danger';}
42
+			    $icon = !empty($args['icon']) ? "<i class='".esc_attr($args['icon'])."'></i>" : '';
43
+
44
+			    // set default icon
45
+			    if(!$icon && $args['icon']!==false && $type){
46
+				    if($type=='danger'){$icon = '<i class="fas fa-exclamation-circle"></i>';}
47
+				    elseif($type=='warning'){$icon = '<i class="fas fa-exclamation-triangle"></i>';}
48
+				    elseif($type=='success'){$icon = '<i class="fas fa-check-circle"></i>';}
49
+				    elseif($type=='info'){$icon = '<i class="fas fa-info-circle"></i>';}
50
+			    }
51
+
52
+			    $data = '';
53
+			    $class = !empty($args['class']) ? esc_attr($args['class']) : '';
54
+			    if($args['dismissible']){$class .= " alert-dismissible fade show";}
55
+
56
+			    // open
57
+			    $output .= '<div class="alert alert-' . $type . ' '.$class.'" role="alert" '.$data.'>';
58
+
59
+			    // heading
60
+			    if ( ! empty( $args['heading'] ) ) {
61
+				    $output .= '<h4 class="alert-heading">' . $args['heading'] . '</h4>';
62
+			    }
63
+
64
+			    // icon
65
+			    if ( ! empty( $icon) ) {
66
+				    $output .= $icon." ";
67
+			    }
68
+
69
+			    // content
70
+			    $output .= $args['content'];
71
+
72
+			    // dismissible
73
+			    if($args['dismissible']){
74
+
75
+				    if ( $aui_bs5 ) {
76
+					    $output .= '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>';
77
+				    }else{
78
+					    $output .= '<button type="button" class="close" data-dismiss="alert" aria-label="Close">';
79
+					    $output .= '<span aria-hidden="true">&times;</span>';
80
+					    $output .= '</button>';
81
+				    }
82
+			    }
83
+
84
+			    // footer
85
+			    if ( ! empty( $args['footer'] ) ) {
86
+				    $output .= '<hr>';
87
+				    $output .= '<p class="mb-0">' . $args['footer'] . '</p>';
88
+			    }
89
+
90
+			    // close
91
+			    $output .= '</div>';
92
+		    }
93
+
94
+		    return $output;
95
+	    }
96 96
 
97 97
 }
98 98
\ No newline at end of file
Please login to merge, or discard this patch.
ayecode/wp-ayecode-ui/includes/components/class-aui-component-input.php 4 patches
Braces   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -99,7 +99,7 @@  discard block
 block discarded – undo
99 99
 			if ( $args['size'] == 'lg' || $args['size'] == 'large' ) {
100 100
 				$size = 'lg';
101 101
 				$args['class'] .= ' form-control-lg';
102
-			}elseif ( $args['size'] == 'sm' || $args['size'] == 'small' ) {
102
+			} elseif ( $args['size'] == 'sm' || $args['size'] == 'small' ) {
103 103
 				$size = 'sm';
104 104
 				$args['class'] .= ' form-control-sm';
105 105
 			}
@@ -248,7 +248,7 @@  discard block
 block discarded – undo
248 248
 						$help_text = '';
249 249
 						//$label_args['class'] .= ' d-inline ';
250 250
 						$args['wrap_class'] .= ' align-items-center ';
251
-					}else{
251
+					} else{
252 252
 
253 253
 					}
254 254
 
@@ -282,7 +282,7 @@  discard block
 block discarded – undo
282 282
 				$switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
283 283
 				if ( $aui_bs5 ) {
284 284
 					$wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
285
-				}else{
285
+				} else{
286 286
 					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
287 287
 				}
288 288
 				if ( ! empty( $args['label_force_left'] ) ) {
@@ -356,7 +356,7 @@  discard block
 block discarded – undo
356 356
 			if ( ! $args['no_wrap'] ) {
357 357
 				if ( ! empty( $args['form_group_class'] ) ) {
358 358
 					$fg_class = esc_attr( $args['form_group_class'] );
359
-				}else{
359
+				} else{
360 360
 					$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
361 361
 				}
362 362
 				$form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
@@ -759,7 +759,7 @@  discard block
 block discarded – undo
759 759
 		if ( ! $args['no_wrap'] ) {
760 760
 			if ( ! empty( $args['form_group_class'] ) ) {
761 761
 				$fg_class = esc_attr( $args['form_group_class'] );
762
-			}else{
762
+			} else{
763 763
 				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
764 764
 			}
765 765
 			$form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
@@ -1051,7 +1051,7 @@  discard block
 block discarded – undo
1051 1051
 		if ( ! $args['no_wrap'] ) {
1052 1052
 			if ( ! empty( $args['form_group_class'] ) ) {
1053 1053
 				$fg_class = esc_attr( $args['form_group_class'] );
1054
-			}else{
1054
+			} else{
1055 1055
 				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1056 1056
 			}
1057 1057
 			$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
Please login to merge, or discard this patch.
Indentation   +1284 added lines, -1284 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 if ( ! defined( 'ABSPATH' ) ) {
4
-	exit; // Exit if accessed directly
4
+    exit; // Exit if accessed directly
5 5
 }
6 6
 
7 7
 /**
@@ -11,1303 +11,1303 @@  discard block
 block discarded – undo
11 11
  */
12 12
 class AUI_Component_Input {
13 13
 
14
-	/**
15
-	 * Build the component.
16
-	 *
17
-	 * @param array $args
18
-	 *
19
-	 * @return string The rendered component.
20
-	 */
21
-	public static function input( $args = array() ) {
22
-		global $aui_bs5;
23
-
24
-		$defaults = array(
25
-			'type'                     => 'text',
26
-			'name'                     => '',
27
-			'class'                    => '',
28
-			'wrap_class'               => '',
29
-			'id'                       => '',
30
-			'placeholder'              => '',
31
-			'title'                    => '',
32
-			'value'                    => '',
33
-			'required'                 => false,
34
-			'size'                     => '', // sm, lg, small, large
35
-			'clear_icon'               => '', // true will show a clear icon, can't be used with input_group_right
36
-			'with_hidden'              => false, // Append hidden field for single checkbox.
37
-			'label'                    => '',
38
-			'label_after'              => false,
39
-			'label_class'              => '',
40
-			'label_col'                => '2',
41
-			'label_type'               => '', // top, horizontal, empty = hidden
42
-			'label_force_left'         => false, // used to force checkbox label left when using horizontal
43
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
44
-			'help_text'                => '',
45
-			'validation_text'          => '',
46
-			'validation_pattern'       => '',
47
-			'no_wrap'                  => false,
48
-			'input_group_right'        => '',
49
-			'input_group_left'         => '',
50
-			'input_group_right_inside' => false,
51
-			// forces the input group inside the input
52
-			'input_group_left_inside'  => false,
53
-			// forces the input group inside the input
54
-			'form_group_class'         => '',
55
-			'step'                     => '',
56
-			'switch'                   => false,
57
-			// to show checkbox as a switch
58
-			'checked'                  => false,
59
-			// set a checkbox or radio as selected
60
-			'password_toggle'          => true,
61
-			// toggle view/hide password
62
-			'element_require'          => '',
63
-			// [%element_id%] == "1"
64
-			'extra_attributes'         => array(),
65
-			// an array of extra attributes
66
-			'wrap_attributes'          => array()
67
-		);
68
-
69
-		/**
70
-		 * Parse incoming $args into an array and merge it with $defaults
71
-		 */
72
-		$args   = wp_parse_args( $args, $defaults );
73
-		$output = '';
74
-		if ( ! empty( $args['type'] ) ) {
75
-			// hidden label option needs to be empty
76
-			$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
77
-
78
-			$type = sanitize_html_class( $args['type'] );
79
-
80
-			$help_text   = '';
81
-			$label       = '';
82
-			$label_after = $args['label_after'];
83
-			$label_args  = array(
84
-				'title'      => $args['label'],
85
-				'for'        => $args['id'],
86
-				'class'      => $args['label_class'] . " ",
87
-				'label_type' => $args['label_type'],
88
-				'label_col'  => $args['label_col']
89
-			);
90
-
91
-			// floating labels need label after
92
-			if ( $args['label_type'] == 'floating' && $type != 'checkbox' ) {
93
-				$label_after         = true;
94
-				$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
95
-			}
96
-
97
-			// size
98
-			$size = '';
99
-			if ( $args['size'] == 'lg' || $args['size'] == 'large' ) {
100
-				$size = 'lg';
101
-				$args['class'] .= ' form-control-lg';
102
-			}elseif ( $args['size'] == 'sm' || $args['size'] == 'small' ) {
103
-				$size = 'sm';
104
-				$args['class'] .= ' form-control-sm';
105
-			}
106
-
107
-			// clear function
108
-			$clear_function = 'jQuery(this).parent().parent().find(\'input\').val(\'\');';
109
-
110
-			// Some special sauce for files
111
-			if ( $type == 'file' ) {
112
-				$label_after = true; // if type file we need the label after
113
-				$args['class'] .= ' custom-file-input ';
114
-			} elseif ( $type == 'checkbox' ) {
115
-				$label_after = true; // if type file we need the label after
116
-				$args['class'] .= $aui_bs5 ? ' form-check-input c-pointer ' : ' custom-control-input c-pointer ';
117
-			} elseif ( $type == 'datepicker' || $type == 'timepicker' ) {
118
-				$orig_type = $type;
119
-				$type = 'text';
120
-				$args['class'] .= ' bg-initial '; // @todo not sure why we have this?
121
-				$clear_function .= "jQuery(this).parent().parent().find('input[name=\'" . esc_attr( $args['name'] ) . "\']').trigger('change');";
122
-
123
-				$args['extra_attributes']['data-aui-init'] = 'flatpickr';
124
-
125
-				// Disable native datetime inputs.
126
-				$disable_mobile_attr = isset( $args['extra_attributes']['data-disable-mobile'] ) ? $args['extra_attributes']['data-disable-mobile'] : 'true';
127
-				$disable_mobile_attr = apply_filters( 'aui_flatpickr_disable_disable_mobile_attr', $disable_mobile_attr, $args );
128
-
129
-				$args['extra_attributes']['data-disable-mobile'] = $disable_mobile_attr;
130
-
131
-				// set a way to clear field if empty
132
-				if ( $args['input_group_right'] === '' && $args['clear_icon'] !== false ) {
133
-					$args['input_group_right_inside'] = true;
134
-					$args['clear_icon'] = true;
135
-				}
136
-
137
-				// enqueue the script
138
-				$aui_settings = AyeCode_UI_Settings::instance();
139
-				$aui_settings->enqueue_flatpickr();
140
-			} else if ( $type == 'iconpicker' ) {
141
-				$type = 'text';
142
-
143
-				// Validate FA icon.
144
-				$args['value'] = AUI_Component_Helper::sanitize_fa_icon( $args['value'], $args );
145
-
146
-				$args['extra_attributes']['data-aui-init'] = 'iconpicker';
147
-				$args['extra_attributes']['data-placement'] = 'bottomRight';
148
-
149
-				$args['input_group_right'] = '<span class="input-group-addon input-group-text c-pointer"></span>';
150
-
151
-				// Enqueue the script
152
-				$aui_settings = AyeCode_UI_Settings::instance();
153
-				$aui_settings->enqueue_iconpicker();
154
-			}
155
-
156
-			if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
157
-				$output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
158
-			}
159
-
160
-			// allow clear icon
161
-			if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
162
-				$font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
163
-				$args['input_group_right_inside'] = true;
164
-				$align_class = $aui_bs5 ? ' h-100 py-0' : '';
165
-				$args['input_group_right'] = '<span class="input-group-text aui-clear-input c-pointer bg-initial border-0 px-2 d-none ' . $align_class . '" onclick="' . $clear_function . '"><span style="font-size: ' . $font_size . 'rem" aria-hidden="true" class="' . ( $aui_bs5 ? 'btn-close' : 'close' ) . '">' . ( $aui_bs5 ? '' : '&times;' ) . '</span></span>';
166
-			}
167
-
168
-			// open/type
169
-			$output .= '<input type="' . $type . '" ';
170
-
171
-			// name
172
-			if ( ! empty( $args['name'] ) ) {
173
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
174
-			}
175
-
176
-			// id
177
-			if ( ! empty( $args['id'] ) ) {
178
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
179
-			}
180
-
181
-			// placeholder
182
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
183
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
184
-			}
185
-
186
-			// title
187
-			if ( ! empty( $args['title'] ) ) {
188
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
189
-			}
190
-
191
-			// value
192
-			if ( ! empty( $args['value'] ) ) {
193
-				$output .= AUI_Component_Helper::value( $args['value'] );
194
-			}
195
-
196
-			// checked, for radio and checkboxes
197
-			if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
198
-				$output .= ' checked ';
199
-			}
200
-
201
-			// validation text
202
-			if ( ! empty( $args['validation_text'] ) ) {
203
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
204
-				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
205
-			}
206
-
207
-			// validation_pattern
208
-			if ( ! empty( $args['validation_pattern'] ) ) {
209
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
210
-			}
211
-
212
-			// step (for numbers)
213
-			if ( ! empty( $args['step'] ) ) {
214
-				$output .= ' step="' . $args['step'] . '" ';
215
-			}
216
-
217
-			// required
218
-			if ( ! empty( $args['required'] ) ) {
219
-				$output .= ' required ';
220
-			}
221
-
222
-			// class
223
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
224
-			$output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
225
-
226
-			// data-attributes
227
-			$output .= AUI_Component_Helper::data_attributes( $args );
228
-
229
-			// extra attributes
230
-			if ( ! empty( $args['extra_attributes'] ) ) {
231
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
232
-			}
233
-
234
-			// close
235
-			$output .= '>';
236
-
237
-			// help text
238
-			if ( ! empty( $args['help_text'] ) ) {
239
-				$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
240
-			}
241
-
242
-			// label
243
-			if ( ! empty( $args['label'] ) ) {
244
-				$label_base_class = '';
245
-				if ( $type == 'file' ) {
246
-					$label_base_class = ' custom-file-label';
247
-				} elseif ( $type == 'checkbox' ) {
248
-					if ( ! empty( $args['label_force_left'] ) ) {
249
-						$label_args['title'] = wp_kses_post( $args['help_text'] );
250
-						$help_text = '';
251
-						//$label_args['class'] .= ' d-inline ';
252
-						$args['wrap_class'] .= ' align-items-center ';
253
-					}else{
254
-
255
-					}
256
-
257
-					$label_base_class = $aui_bs5 ? ' form-check-label' : ' custom-control-label';
258
-				}
259
-				$label_args['class'] .= $label_base_class;
260
-				$temp_label_args = $label_args;
261
-				if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
262
-				$label = self::label( $temp_label_args, $type );
263
-			}
264
-
265
-
266
-
267
-
268
-			// set help text in the correct position
269
-			if ( $label_after ) {
270
-				$output .= $label . $help_text;
271
-			}
272
-
273
-			// some input types need a separate wrap
274
-			if ( $type == 'file' ) {
275
-				$output = self::wrap( array(
276
-					'content' => $output,
277
-					'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
278
-				) );
279
-			} elseif ( $type == 'checkbox' ) {
280
-
281
-				$label_args['title'] = $args['label'];
282
-				$label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
283
-				$label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
284
-				$switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
285
-				if ( $aui_bs5 ) {
286
-					$wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
287
-				}else{
288
-					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
289
-				}
290
-				if ( ! empty( $args['label_force_left'] ) ) {
291
-					$wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
292
-					$label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
293
-				}
294
-				$output     = self::wrap( array(
295
-					'content' => $output,
296
-					'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
297
-				) );
298
-
299
-				if ( $args['label_type'] == 'horizontal' ) {
300
-					$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
301
-					$output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
302
-				}
303
-			} elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
304
-
305
-
306
-				// allow password field to toggle view
307
-				$args['input_group_right'] = '<span class="input-group-text c-pointer px-3" 
14
+    /**
15
+     * Build the component.
16
+     *
17
+     * @param array $args
18
+     *
19
+     * @return string The rendered component.
20
+     */
21
+    public static function input( $args = array() ) {
22
+        global $aui_bs5;
23
+
24
+        $defaults = array(
25
+            'type'                     => 'text',
26
+            'name'                     => '',
27
+            'class'                    => '',
28
+            'wrap_class'               => '',
29
+            'id'                       => '',
30
+            'placeholder'              => '',
31
+            'title'                    => '',
32
+            'value'                    => '',
33
+            'required'                 => false,
34
+            'size'                     => '', // sm, lg, small, large
35
+            'clear_icon'               => '', // true will show a clear icon, can't be used with input_group_right
36
+            'with_hidden'              => false, // Append hidden field for single checkbox.
37
+            'label'                    => '',
38
+            'label_after'              => false,
39
+            'label_class'              => '',
40
+            'label_col'                => '2',
41
+            'label_type'               => '', // top, horizontal, empty = hidden
42
+            'label_force_left'         => false, // used to force checkbox label left when using horizontal
43
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
44
+            'help_text'                => '',
45
+            'validation_text'          => '',
46
+            'validation_pattern'       => '',
47
+            'no_wrap'                  => false,
48
+            'input_group_right'        => '',
49
+            'input_group_left'         => '',
50
+            'input_group_right_inside' => false,
51
+            // forces the input group inside the input
52
+            'input_group_left_inside'  => false,
53
+            // forces the input group inside the input
54
+            'form_group_class'         => '',
55
+            'step'                     => '',
56
+            'switch'                   => false,
57
+            // to show checkbox as a switch
58
+            'checked'                  => false,
59
+            // set a checkbox or radio as selected
60
+            'password_toggle'          => true,
61
+            // toggle view/hide password
62
+            'element_require'          => '',
63
+            // [%element_id%] == "1"
64
+            'extra_attributes'         => array(),
65
+            // an array of extra attributes
66
+            'wrap_attributes'          => array()
67
+        );
68
+
69
+        /**
70
+         * Parse incoming $args into an array and merge it with $defaults
71
+         */
72
+        $args   = wp_parse_args( $args, $defaults );
73
+        $output = '';
74
+        if ( ! empty( $args['type'] ) ) {
75
+            // hidden label option needs to be empty
76
+            $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
77
+
78
+            $type = sanitize_html_class( $args['type'] );
79
+
80
+            $help_text   = '';
81
+            $label       = '';
82
+            $label_after = $args['label_after'];
83
+            $label_args  = array(
84
+                'title'      => $args['label'],
85
+                'for'        => $args['id'],
86
+                'class'      => $args['label_class'] . " ",
87
+                'label_type' => $args['label_type'],
88
+                'label_col'  => $args['label_col']
89
+            );
90
+
91
+            // floating labels need label after
92
+            if ( $args['label_type'] == 'floating' && $type != 'checkbox' ) {
93
+                $label_after         = true;
94
+                $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
95
+            }
96
+
97
+            // size
98
+            $size = '';
99
+            if ( $args['size'] == 'lg' || $args['size'] == 'large' ) {
100
+                $size = 'lg';
101
+                $args['class'] .= ' form-control-lg';
102
+            }elseif ( $args['size'] == 'sm' || $args['size'] == 'small' ) {
103
+                $size = 'sm';
104
+                $args['class'] .= ' form-control-sm';
105
+            }
106
+
107
+            // clear function
108
+            $clear_function = 'jQuery(this).parent().parent().find(\'input\').val(\'\');';
109
+
110
+            // Some special sauce for files
111
+            if ( $type == 'file' ) {
112
+                $label_after = true; // if type file we need the label after
113
+                $args['class'] .= ' custom-file-input ';
114
+            } elseif ( $type == 'checkbox' ) {
115
+                $label_after = true; // if type file we need the label after
116
+                $args['class'] .= $aui_bs5 ? ' form-check-input c-pointer ' : ' custom-control-input c-pointer ';
117
+            } elseif ( $type == 'datepicker' || $type == 'timepicker' ) {
118
+                $orig_type = $type;
119
+                $type = 'text';
120
+                $args['class'] .= ' bg-initial '; // @todo not sure why we have this?
121
+                $clear_function .= "jQuery(this).parent().parent().find('input[name=\'" . esc_attr( $args['name'] ) . "\']').trigger('change');";
122
+
123
+                $args['extra_attributes']['data-aui-init'] = 'flatpickr';
124
+
125
+                // Disable native datetime inputs.
126
+                $disable_mobile_attr = isset( $args['extra_attributes']['data-disable-mobile'] ) ? $args['extra_attributes']['data-disable-mobile'] : 'true';
127
+                $disable_mobile_attr = apply_filters( 'aui_flatpickr_disable_disable_mobile_attr', $disable_mobile_attr, $args );
128
+
129
+                $args['extra_attributes']['data-disable-mobile'] = $disable_mobile_attr;
130
+
131
+                // set a way to clear field if empty
132
+                if ( $args['input_group_right'] === '' && $args['clear_icon'] !== false ) {
133
+                    $args['input_group_right_inside'] = true;
134
+                    $args['clear_icon'] = true;
135
+                }
136
+
137
+                // enqueue the script
138
+                $aui_settings = AyeCode_UI_Settings::instance();
139
+                $aui_settings->enqueue_flatpickr();
140
+            } else if ( $type == 'iconpicker' ) {
141
+                $type = 'text';
142
+
143
+                // Validate FA icon.
144
+                $args['value'] = AUI_Component_Helper::sanitize_fa_icon( $args['value'], $args );
145
+
146
+                $args['extra_attributes']['data-aui-init'] = 'iconpicker';
147
+                $args['extra_attributes']['data-placement'] = 'bottomRight';
148
+
149
+                $args['input_group_right'] = '<span class="input-group-addon input-group-text c-pointer"></span>';
150
+
151
+                // Enqueue the script
152
+                $aui_settings = AyeCode_UI_Settings::instance();
153
+                $aui_settings->enqueue_iconpicker();
154
+            }
155
+
156
+            if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
157
+                $output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
158
+            }
159
+
160
+            // allow clear icon
161
+            if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
162
+                $font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
163
+                $args['input_group_right_inside'] = true;
164
+                $align_class = $aui_bs5 ? ' h-100 py-0' : '';
165
+                $args['input_group_right'] = '<span class="input-group-text aui-clear-input c-pointer bg-initial border-0 px-2 d-none ' . $align_class . '" onclick="' . $clear_function . '"><span style="font-size: ' . $font_size . 'rem" aria-hidden="true" class="' . ( $aui_bs5 ? 'btn-close' : 'close' ) . '">' . ( $aui_bs5 ? '' : '&times;' ) . '</span></span>';
166
+            }
167
+
168
+            // open/type
169
+            $output .= '<input type="' . $type . '" ';
170
+
171
+            // name
172
+            if ( ! empty( $args['name'] ) ) {
173
+                $output .= ' name="' . esc_attr( $args['name'] ) . '" ';
174
+            }
175
+
176
+            // id
177
+            if ( ! empty( $args['id'] ) ) {
178
+                $output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
179
+            }
180
+
181
+            // placeholder
182
+            if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
183
+                $output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
184
+            }
185
+
186
+            // title
187
+            if ( ! empty( $args['title'] ) ) {
188
+                $output .= ' title="' . esc_attr( $args['title'] ) . '" ';
189
+            }
190
+
191
+            // value
192
+            if ( ! empty( $args['value'] ) ) {
193
+                $output .= AUI_Component_Helper::value( $args['value'] );
194
+            }
195
+
196
+            // checked, for radio and checkboxes
197
+            if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
198
+                $output .= ' checked ';
199
+            }
200
+
201
+            // validation text
202
+            if ( ! empty( $args['validation_text'] ) ) {
203
+                $output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
204
+                $output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
205
+            }
206
+
207
+            // validation_pattern
208
+            if ( ! empty( $args['validation_pattern'] ) ) {
209
+                $output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
210
+            }
211
+
212
+            // step (for numbers)
213
+            if ( ! empty( $args['step'] ) ) {
214
+                $output .= ' step="' . $args['step'] . '" ';
215
+            }
216
+
217
+            // required
218
+            if ( ! empty( $args['required'] ) ) {
219
+                $output .= ' required ';
220
+            }
221
+
222
+            // class
223
+            $class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
224
+            $output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
225
+
226
+            // data-attributes
227
+            $output .= AUI_Component_Helper::data_attributes( $args );
228
+
229
+            // extra attributes
230
+            if ( ! empty( $args['extra_attributes'] ) ) {
231
+                $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
232
+            }
233
+
234
+            // close
235
+            $output .= '>';
236
+
237
+            // help text
238
+            if ( ! empty( $args['help_text'] ) ) {
239
+                $help_text = AUI_Component_Helper::help_text( $args['help_text'] );
240
+            }
241
+
242
+            // label
243
+            if ( ! empty( $args['label'] ) ) {
244
+                $label_base_class = '';
245
+                if ( $type == 'file' ) {
246
+                    $label_base_class = ' custom-file-label';
247
+                } elseif ( $type == 'checkbox' ) {
248
+                    if ( ! empty( $args['label_force_left'] ) ) {
249
+                        $label_args['title'] = wp_kses_post( $args['help_text'] );
250
+                        $help_text = '';
251
+                        //$label_args['class'] .= ' d-inline ';
252
+                        $args['wrap_class'] .= ' align-items-center ';
253
+                    }else{
254
+
255
+                    }
256
+
257
+                    $label_base_class = $aui_bs5 ? ' form-check-label' : ' custom-control-label';
258
+                }
259
+                $label_args['class'] .= $label_base_class;
260
+                $temp_label_args = $label_args;
261
+                if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
262
+                $label = self::label( $temp_label_args, $type );
263
+            }
264
+
265
+
266
+
267
+
268
+            // set help text in the correct position
269
+            if ( $label_after ) {
270
+                $output .= $label . $help_text;
271
+            }
272
+
273
+            // some input types need a separate wrap
274
+            if ( $type == 'file' ) {
275
+                $output = self::wrap( array(
276
+                    'content' => $output,
277
+                    'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
278
+                ) );
279
+            } elseif ( $type == 'checkbox' ) {
280
+
281
+                $label_args['title'] = $args['label'];
282
+                $label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
283
+                $label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
284
+                $switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
285
+                if ( $aui_bs5 ) {
286
+                    $wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
287
+                }else{
288
+                    $wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
289
+                }
290
+                if ( ! empty( $args['label_force_left'] ) ) {
291
+                    $wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
292
+                    $label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
293
+                }
294
+                $output     = self::wrap( array(
295
+                    'content' => $output,
296
+                    'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
297
+                ) );
298
+
299
+                if ( $args['label_type'] == 'horizontal' ) {
300
+                    $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
301
+                    $output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
302
+                }
303
+            } elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
304
+
305
+
306
+                // allow password field to toggle view
307
+                $args['input_group_right'] = '<span class="input-group-text c-pointer px-3" 
308 308
 onclick="var $el = jQuery(this).find(\'i\');$el.toggleClass(\'fa-eye fa-eye-slash\');
309 309
 var $eli = jQuery(this).parent().parent().find(\'input\');
310 310
 if($el.hasClass(\'fa-eye\'))
311 311
 {$eli.attr(\'type\',\'text\');}
312 312
 else{$eli.attr(\'type\',\'password\');}"
313 313
 ><i class="far fa-fw fa-eye-slash"></i></span>';
314
-			}
315
-
316
-			// input group wraps
317
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
318
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
319
-				$group_size = $size == 'lg' ? ' input-group-lg' : '';
320
-				$group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
321
-
322
-				if ( $args['input_group_left'] ) {
323
-					$output = self::wrap( array(
324
-						'content'                 => $output,
325
-						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
326
-						'input_group_left'        => $args['input_group_left'],
327
-						'input_group_left_inside' => $args['input_group_left_inside']
328
-					) );
329
-				}
330
-				if ( $args['input_group_right'] ) {
331
-					$output = self::wrap( array(
332
-						'content'                  => $output,
333
-						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
334
-						'input_group_right'        => $args['input_group_right'],
335
-						'input_group_right_inside' => $args['input_group_right_inside']
336
-					) );
337
-				}
338
-
339
-			}
340
-
341
-			if ( ! $label_after ) {
342
-				$output .= $help_text;
343
-			}
344
-
345
-
346
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
347
-				$output = self::wrap( array(
348
-					'content' => $output,
349
-					'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
350
-				) );
351
-			}
352
-
353
-			if ( ! $label_after ) {
354
-				$output = $label . $output;
355
-			}
356
-
357
-			// wrap
358
-			if ( ! $args['no_wrap'] ) {
359
-				if ( ! empty( $args['form_group_class'] ) ) {
360
-					$fg_class = esc_attr( $args['form_group_class'] );
361
-				}else{
362
-					$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
363
-				}
364
-				$form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
365
-				$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
366
-				$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
367
-				$output           = self::wrap( array(
368
-					'content'         => $output,
369
-					'class'           => $wrap_class,
370
-					'element_require' => $args['element_require'],
371
-					'argument_id'     => $args['id'],
372
-					'wrap_attributes' => $args['wrap_attributes'],
373
-				) );
374
-			}
375
-		}
376
-
377
-		return $output;
378
-	}
379
-
380
-	public static function label( $args = array(), $type = '' ) {
381
-		global $aui_bs5;
382
-
383
-		$defaults = array(
384
-			'title'      => 'div',
385
-			'for'        => '',
386
-			'class'      => '',
387
-			'label_type' => '', // empty = hidden, top, horizontal
388
-			'label_col'  => '',
389
-		);
390
-
391
-		/**
392
-		 * Parse incoming $args into an array and merge it with $defaults
393
-		 */
394
-		$args   = wp_parse_args( $args, $defaults );
395
-		$output = '';
396
-
397
-		if ( $args['title'] ) {
398
-			// maybe hide labels //@todo set a global option for visibility class
399
-			if ( $type == 'file' || $type == 'checkbox' || $type == 'radio' || ! empty( $args['label_type'] ) ) {
400
-				$class = $args['class'];
401
-			} else {
402
-				$class = 'sr-only ' . ( $aui_bs5 ? 'visually-hidden ' : '' ) . $args['class'];
403
-			}
404
-
405
-			// maybe horizontal
406
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
407
-				$class .= ' ' . AUI_Component_Helper::get_column_class( $args['label_col'], 'label' ) . ' col-form-label ' . $type;
408
-			}
409
-
410
-			if ( $aui_bs5 ) {
411
-				$class .= ' form-label';
412
-			}
413
-
414
-			// open
415
-			$output .= '<label';
416
-
417
-			// for
418
-			if ( ! empty( $args['for'] ) ) {
419
-				$output .= ' for="' . esc_attr( $args['for'] ) . '"';
420
-			}
421
-
422
-			// class
423
-			$class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
424
-			$output .= $class != "" ? ' class="' . $class . '"' : '';
425
-
426
-			// close
427
-			$output .= '>';
428
-
429
-			// title, don't escape fully as can contain html
430
-			if ( ! empty( $args['title'] ) ) {
431
-				$output .= wp_kses_post( $args['title'] );
432
-			}
433
-
434
-			// close wrap
435
-			$output .= '</label>';
436
-		}
437
-
438
-		return $output;
439
-	}
440
-
441
-	/**
442
-	 * Wrap some content in a HTML wrapper.
443
-	 *
444
-	 * @param array $args
445
-	 *
446
-	 * @return string
447
-	 */
448
-	public static function wrap( $args = array() ) {
449
-		global $aui_bs5;
450
-		$defaults = array(
451
-			'type'                     => 'div',
452
-			'class'                    => $aui_bs5 ? 'mb-3' : 'form-group',
453
-			'content'                  => '',
454
-			'input_group_left'         => '',
455
-			'input_group_right'        => '',
456
-			'input_group_left_inside'  => false,
457
-			'input_group_right_inside' => false,
458
-			'element_require'          => '',
459
-			'argument_id'              => '',
460
-			'wrap_attributes'          => array()
461
-		);
462
-
463
-		/**
464
-		 * Parse incoming $args into an array and merge it with $defaults
465
-		 */
466
-		$args   = wp_parse_args( $args, $defaults );
467
-		$output = '';
468
-		if ( $args['type'] ) {
469
-
470
-			// open
471
-			$output .= '<' . sanitize_html_class( $args['type'] );
472
-
473
-			// element require
474
-			if ( ! empty( $args['element_require'] ) ) {
475
-				$output .= AUI_Component_Helper::element_require( $args['element_require'] );
476
-				$args['class'] .= " aui-conditional-field";
477
-			}
478
-
479
-			// argument_id
480
-			if ( ! empty( $args['argument_id'] ) ) {
481
-				$output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
482
-			}
483
-
484
-			// class
485
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
486
-			$output .= ' class="' . $class . '" ';
487
-
488
-			// Attributes
489
-			if ( ! empty( $args['wrap_attributes'] ) ) {
490
-				$output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
491
-			}
492
-
493
-			// close wrap
494
-			$output .= '>';
495
-
496
-
497
-			// Input group left
498
-			if ( ! empty( $args['input_group_left'] ) ) {
499
-				$position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
500
-				$input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
501
-				$output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
314
+            }
315
+
316
+            // input group wraps
317
+            if ( $args['input_group_left'] || $args['input_group_right'] ) {
318
+                $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
319
+                $group_size = $size == 'lg' ? ' input-group-lg' : '';
320
+                $group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
321
+
322
+                if ( $args['input_group_left'] ) {
323
+                    $output = self::wrap( array(
324
+                        'content'                 => $output,
325
+                        'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
326
+                        'input_group_left'        => $args['input_group_left'],
327
+                        'input_group_left_inside' => $args['input_group_left_inside']
328
+                    ) );
329
+                }
330
+                if ( $args['input_group_right'] ) {
331
+                    $output = self::wrap( array(
332
+                        'content'                  => $output,
333
+                        'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
334
+                        'input_group_right'        => $args['input_group_right'],
335
+                        'input_group_right_inside' => $args['input_group_right_inside']
336
+                    ) );
337
+                }
338
+
339
+            }
340
+
341
+            if ( ! $label_after ) {
342
+                $output .= $help_text;
343
+            }
344
+
345
+
346
+            if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
347
+                $output = self::wrap( array(
348
+                    'content' => $output,
349
+                    'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
350
+                ) );
351
+            }
352
+
353
+            if ( ! $label_after ) {
354
+                $output = $label . $output;
355
+            }
356
+
357
+            // wrap
358
+            if ( ! $args['no_wrap'] ) {
359
+                if ( ! empty( $args['form_group_class'] ) ) {
360
+                    $fg_class = esc_attr( $args['form_group_class'] );
361
+                }else{
362
+                    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
363
+                }
364
+                $form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
365
+                $wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
366
+                $wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
367
+                $output           = self::wrap( array(
368
+                    'content'         => $output,
369
+                    'class'           => $wrap_class,
370
+                    'element_require' => $args['element_require'],
371
+                    'argument_id'     => $args['id'],
372
+                    'wrap_attributes' => $args['wrap_attributes'],
373
+                ) );
374
+            }
375
+        }
376
+
377
+        return $output;
378
+    }
379
+
380
+    public static function label( $args = array(), $type = '' ) {
381
+        global $aui_bs5;
382
+
383
+        $defaults = array(
384
+            'title'      => 'div',
385
+            'for'        => '',
386
+            'class'      => '',
387
+            'label_type' => '', // empty = hidden, top, horizontal
388
+            'label_col'  => '',
389
+        );
390
+
391
+        /**
392
+         * Parse incoming $args into an array and merge it with $defaults
393
+         */
394
+        $args   = wp_parse_args( $args, $defaults );
395
+        $output = '';
396
+
397
+        if ( $args['title'] ) {
398
+            // maybe hide labels //@todo set a global option for visibility class
399
+            if ( $type == 'file' || $type == 'checkbox' || $type == 'radio' || ! empty( $args['label_type'] ) ) {
400
+                $class = $args['class'];
401
+            } else {
402
+                $class = 'sr-only ' . ( $aui_bs5 ? 'visually-hidden ' : '' ) . $args['class'];
403
+            }
404
+
405
+            // maybe horizontal
406
+            if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
407
+                $class .= ' ' . AUI_Component_Helper::get_column_class( $args['label_col'], 'label' ) . ' col-form-label ' . $type;
408
+            }
409
+
410
+            if ( $aui_bs5 ) {
411
+                $class .= ' form-label';
412
+            }
413
+
414
+            // open
415
+            $output .= '<label';
416
+
417
+            // for
418
+            if ( ! empty( $args['for'] ) ) {
419
+                $output .= ' for="' . esc_attr( $args['for'] ) . '"';
420
+            }
421
+
422
+            // class
423
+            $class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
424
+            $output .= $class != "" ? ' class="' . $class . '"' : '';
425
+
426
+            // close
427
+            $output .= '>';
428
+
429
+            // title, don't escape fully as can contain html
430
+            if ( ! empty( $args['title'] ) ) {
431
+                $output .= wp_kses_post( $args['title'] );
432
+            }
433
+
434
+            // close wrap
435
+            $output .= '</label>';
436
+        }
437
+
438
+        return $output;
439
+    }
440
+
441
+    /**
442
+     * Wrap some content in a HTML wrapper.
443
+     *
444
+     * @param array $args
445
+     *
446
+     * @return string
447
+     */
448
+    public static function wrap( $args = array() ) {
449
+        global $aui_bs5;
450
+        $defaults = array(
451
+            'type'                     => 'div',
452
+            'class'                    => $aui_bs5 ? 'mb-3' : 'form-group',
453
+            'content'                  => '',
454
+            'input_group_left'         => '',
455
+            'input_group_right'        => '',
456
+            'input_group_left_inside'  => false,
457
+            'input_group_right_inside' => false,
458
+            'element_require'          => '',
459
+            'argument_id'              => '',
460
+            'wrap_attributes'          => array()
461
+        );
462
+
463
+        /**
464
+         * Parse incoming $args into an array and merge it with $defaults
465
+         */
466
+        $args   = wp_parse_args( $args, $defaults );
467
+        $output = '';
468
+        if ( $args['type'] ) {
469
+
470
+            // open
471
+            $output .= '<' . sanitize_html_class( $args['type'] );
472
+
473
+            // element require
474
+            if ( ! empty( $args['element_require'] ) ) {
475
+                $output .= AUI_Component_Helper::element_require( $args['element_require'] );
476
+                $args['class'] .= " aui-conditional-field";
477
+            }
478
+
479
+            // argument_id
480
+            if ( ! empty( $args['argument_id'] ) ) {
481
+                $output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
482
+            }
483
+
484
+            // class
485
+            $class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
486
+            $output .= ' class="' . $class . '" ';
487
+
488
+            // Attributes
489
+            if ( ! empty( $args['wrap_attributes'] ) ) {
490
+                $output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
491
+            }
492
+
493
+            // close wrap
494
+            $output .= '>';
495
+
496
+
497
+            // Input group left
498
+            if ( ! empty( $args['input_group_left'] ) ) {
499
+                $position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
500
+                $input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
501
+                $output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
502 502
 //				$output .= '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
503
-			}
503
+            }
504 504
 
505
-			// content
506
-			$output .= $args['content'];
505
+            // content
506
+            $output .= $args['content'];
507 507
 
508
-			// Input group right
509
-			if ( ! empty( $args['input_group_right'] ) ) {
510
-				$position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
511
-				$input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
512
-				$output .= $aui_bs5 ? str_replace( 'input-group-text','input-group-text top-0 end-0', $input_group_right ) : '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
508
+            // Input group right
509
+            if ( ! empty( $args['input_group_right'] ) ) {
510
+                $position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
511
+                $input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
512
+                $output .= $aui_bs5 ? str_replace( 'input-group-text','input-group-text top-0 end-0', $input_group_right ) : '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
513 513
 //				$output .= '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
514
-			}
515
-
516
-
517
-			// close wrap
518
-			$output .= '</' . sanitize_html_class( $args['type'] ) . '>';
519
-
520
-
521
-		} else {
522
-			$output = $args['content'];
523
-		}
524
-
525
-		return $output;
526
-	}
527
-
528
-	/**
529
-	 * Build the component.
530
-	 *
531
-	 * @param array $args
532
-	 *
533
-	 * @return string The rendered component.
534
-	 */
535
-	public static function textarea( $args = array() ) {
536
-		global $aui_bs5;
537
-
538
-		$defaults = array(
539
-			'name'               => '',
540
-			'class'              => '',
541
-			'wrap_class'         => '',
542
-			'id'                 => '',
543
-			'placeholder'        => '',
544
-			'title'              => '',
545
-			'value'              => '',
546
-			'required'           => false,
547
-			'label'              => '',
548
-			'label_after'        => false,
549
-			'label_class'        => '',
550
-			'label_type'         => '',
551
-			'label_col'          => '',
552
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
553
-			'input_group_right'        => '',
554
-			'input_group_left'         => '',
555
-			'input_group_right_inside' => false,
556
-			'form_group_class'      => '',
557
-			'help_text'          => '',
558
-			'validation_text'    => '',
559
-			'validation_pattern' => '',
560
-			'no_wrap'            => false,
561
-			'rows'               => '',
562
-			'wysiwyg'            => false,
563
-			'allow_tags'         => false,
564
-			// Allow HTML tags
565
-			'element_require'    => '',
566
-			// [%element_id%] == "1"
567
-			'extra_attributes'   => array(),
568
-			// an array of extra attributes
569
-			'wrap_attributes'    => array(),
570
-		);
571
-
572
-		/**
573
-		 * Parse incoming $args into an array and merge it with $defaults
574
-		 */
575
-		$args   = wp_parse_args( $args, $defaults );
576
-		$output = '';
577
-		$label = '';
578
-
579
-		// hidden label option needs to be empty
580
-		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
581
-
582
-		// floating labels don't work with wysiwyg so set it as top
583
-		if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
584
-			$args['label_type'] = 'top';
585
-		}
586
-
587
-		$label_after = $args['label_after'];
588
-
589
-		// floating labels need label after
590
-		if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
591
-			$label_after         = true;
592
-			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
593
-		}
594
-
595
-		// label
596
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
597
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
598
-			$label_args = array(
599
-				'title'      => $args['label'],
600
-				'for'        => $args['id'],
601
-				'class'      => $args['label_class'] . " ",
602
-				'label_type' => $args['label_type'],
603
-				'label_col'  => $args['label_col']
604
-			);
605
-			$label .= self::label( $label_args );
606
-		}
607
-
608
-		// maybe horizontal label
609
-		if ( $args['label_type'] == 'horizontal' ) {
610
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
611
-			$label .= '<div class="' . $input_col . '">';
612
-		}
613
-
614
-		if ( ! empty( $args['wysiwyg'] ) ) {
615
-			ob_start();
616
-			$content   = $args['value'];
617
-			$editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
618
-			$settings  = array(
619
-				'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
620
-				'quicktags'     => false,
621
-				'media_buttons' => false,
622
-				'editor_class'  => 'form-control',
623
-				'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
624
-				'teeny'         => true,
625
-			);
626
-
627
-			// maybe set settings if array
628
-			if ( is_array( $args['wysiwyg'] ) ) {
629
-				$settings = wp_parse_args( $args['wysiwyg'], $settings );
630
-			}
631
-
632
-			wp_editor( $content, $editor_id, $settings );
633
-			$output .= ob_get_clean();
634
-		} else {
635
-
636
-			// open
637
-			$output .= '<textarea ';
638
-
639
-			// name
640
-			if ( ! empty( $args['name'] ) ) {
641
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
642
-			}
643
-
644
-			// id
645
-			if ( ! empty( $args['id'] ) ) {
646
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
647
-			}
648
-
649
-			// placeholder
650
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
651
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
652
-			}
653
-
654
-			// title
655
-			if ( ! empty( $args['title'] ) ) {
656
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
657
-			}
658
-
659
-			// validation text
660
-			if ( ! empty( $args['validation_text'] ) ) {
661
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
662
-				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
663
-			}
664
-
665
-			// validation_pattern
666
-			if ( ! empty( $args['validation_pattern'] ) ) {
667
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
668
-			}
669
-
670
-			// required
671
-			if ( ! empty( $args['required'] ) ) {
672
-				$output .= ' required ';
673
-			}
674
-
675
-			// rows
676
-			if ( ! empty( $args['rows'] ) ) {
677
-				$output .= ' rows="' . absint( $args['rows'] ) . '" ';
678
-			}
679
-
680
-
681
-			// class
682
-			$class = ! empty( $args['class'] ) ? $args['class'] : '';
683
-			$output .= ' class="form-control ' . $class . '" ';
684
-
685
-			// extra attributes
686
-			if ( ! empty( $args['extra_attributes'] ) ) {
687
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
688
-			}
689
-
690
-			// close tag
691
-			$output .= '>';
692
-
693
-			// value
694
-			if ( ! empty( $args['value'] ) ) {
695
-				if ( ! empty( $args['allow_tags'] ) ) {
696
-					$output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
697
-				} else {
698
-					$output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
699
-				}
700
-			}
701
-
702
-			// closing tag
703
-			$output .= '</textarea>';
704
-
705
-
706
-			// input group wraps
707
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
708
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
709
-				if ( $args['input_group_left'] ) {
710
-					$output = self::wrap( array(
711
-						'content'                 => $output,
712
-						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
713
-						'input_group_left'        => $args['input_group_left'],
714
-						'input_group_left_inside' => $args['input_group_left_inside']
715
-					) );
716
-				}
717
-				if ( $args['input_group_right'] ) {
718
-					$output = self::wrap( array(
719
-						'content'                  => $output,
720
-						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
721
-						'input_group_right'        => $args['input_group_right'],
722
-						'input_group_right_inside' => $args['input_group_right_inside']
723
-					) );
724
-				}
725
-
726
-			}
727
-
728
-
729
-		}
730
-
731
-		if ( ! empty( $args['label'] ) && $label_after ) {
732
-			$label_args = array(
733
-				'title'      => $args['label'],
734
-				'for'        => $args['id'],
735
-				'class'      => $args['label_class'] . " ",
736
-				'label_type' => $args['label_type'],
737
-				'label_col'  => $args['label_col']
738
-			);
739
-			$output .= self::label( $label_args );
740
-		}
741
-
742
-		// help text
743
-		if ( ! empty( $args['help_text'] ) ) {
744
-			$output .= AUI_Component_Helper::help_text( $args['help_text'] );
745
-		}
746
-
747
-		if ( ! $label_after ) {
748
-			$output = $label . $output;
749
-		}
750
-
751
-		// maybe horizontal label
752
-		if ( $args['label_type'] == 'horizontal' ) {
753
-			$output .= '</div>';
754
-		}
755
-
756
-
757
-		// wrap
758
-		if ( ! $args['no_wrap'] ) {
759
-			if ( ! empty( $args['form_group_class'] ) ) {
760
-				$fg_class = esc_attr( $args['form_group_class'] );
761
-			}else{
762
-				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
763
-			}
764
-			$form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
765
-			$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
766
-			$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
767
-			$output           = self::wrap( array(
768
-				'content'         => $output,
769
-				'class'           => $wrap_class,
770
-				'element_require' => $args['element_require'],
771
-				'argument_id'     => $args['id'],
772
-				'wrap_attributes' => $args['wrap_attributes'],
773
-			) );
774
-		}
775
-
776
-
777
-		return $output;
778
-	}
779
-
780
-	/**
781
-	 * Build the component.
782
-	 *
783
-	 * @param array $args
784
-	 *
785
-	 * @return string The rendered component.
786
-	 */
787
-	public static function select( $args = array() ) {
788
-		global $aui_bs5, $aui_has_select2, $aui_select2_enqueued;
789
-
790
-		$defaults = array(
791
-			'class'            => '',
792
-			'wrap_class'       => '',
793
-			'id'               => '',
794
-			'title'            => '',
795
-			'value'            => '',
796
-			// can be an array or a string
797
-			'required'         => false,
798
-			'label'            => '',
799
-			'label_after'      => false,
800
-			'label_type'       => '',
801
-			'label_col'        => '',
802
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
803
-			'label_class'      => '',
804
-			'help_text'        => '',
805
-			'placeholder'      => '',
806
-			'options'          => array(),
807
-			// array or string
808
-			'icon'             => '',
809
-			'multiple'         => false,
810
-			'select2'          => false,
811
-			'no_wrap'          => false,
812
-			'input_group_right' => '',
813
-			'input_group_left' => '',
814
-			'input_group_right_inside' => false, // forces the input group inside the input
815
-			'input_group_left_inside' => false, // forces the input group inside the input
816
-			'form_group_class'  => '',
817
-			'element_require'  => '',
818
-			// [%element_id%] == "1"
819
-			'extra_attributes' => array(),
820
-			// an array of extra attributes
821
-			'wrap_attributes'  => array(),
822
-		);
823
-
824
-		/**
825
-		 * Parse incoming $args into an array and merge it with $defaults
826
-		 */
827
-		$args   = wp_parse_args( $args, $defaults );
828
-		$output = '';
829
-
830
-		// for now lets hide floating labels
831
-		if ( $args['label_type'] == 'floating' ) {
832
-			$args['label_type'] = 'hidden';
833
-		}
834
-
835
-		// hidden label option needs to be empty
836
-		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
837
-
838
-
839
-		$label_after = $args['label_after'];
840
-
841
-		// floating labels need label after
842
-		if ( $args['label_type'] == 'floating' ) {
843
-			$label_after         = true;
844
-			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
845
-		}
846
-
847
-		// Maybe setup select2
848
-		$is_select2 = false;
849
-		if ( ! empty( $args['select2'] ) ) {
850
-			$args['class'] .= ' aui-select2';
851
-			$is_select2 = true;
852
-		} elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
853
-			$is_select2 = true;
854
-		}
855
-
856
-		if ( $is_select2 && ! $aui_has_select2 ) {
857
-			$aui_has_select2 = true;
858
-			$conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
859
-
860
-			// Enqueue the script,
861
-			if ( empty( $aui_select2_enqueued ) && $conditional_select2 === true ) {
862
-				$aui_select2_enqueued = true;
863
-
864
-				$aui_settings = AyeCode_UI_Settings::instance();
865
-				$aui_settings->enqueue_select2();
866
-			}
867
-		}
868
-
869
-		// select2 tags
870
-		if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
871
-			$args['data-tags']             = 'true';
872
-			$args['data-token-separators'] = "[',']";
873
-			$args['multiple']              = true;
874
-		}
875
-
876
-		// select2 placeholder
877
-		if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
878
-			$args['data-placeholder'] = esc_attr( $args['placeholder'] );
879
-			$args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
880
-		}
881
-
882
-		// Set hidden input to save empty value for multiselect.
883
-		if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
884
-			$output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
885
-		}
886
-
887
-		// open/type
888
-		$output .= '<select ';
889
-
890
-		// style
891
-		if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
892
-			$output .= " style='width:100%;' ";
893
-		}
894
-
895
-		// element require
896
-		if ( ! empty( $args['element_require'] ) ) {
897
-			$output .= AUI_Component_Helper::element_require( $args['element_require'] );
898
-			$args['class'] .= " aui-conditional-field";
899
-		}
900
-
901
-		// class
902
-		$class = ! empty( $args['class'] ) ? $args['class'] : '';
903
-		$select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
904
-		$output .= AUI_Component_Helper::class_attr( $select_class . $class );
905
-
906
-		// name
907
-		if ( ! empty( $args['name'] ) ) {
908
-			$output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
909
-		}
910
-
911
-		// id
912
-		if ( ! empty( $args['id'] ) ) {
913
-			$output .= AUI_Component_Helper::id( $args['id'] );
914
-		}
915
-
916
-		// title
917
-		if ( ! empty( $args['title'] ) ) {
918
-			$output .= AUI_Component_Helper::title( $args['title'] );
919
-		}
920
-
921
-		// data-attributes
922
-		$output .= AUI_Component_Helper::data_attributes( $args );
923
-
924
-		// aria-attributes
925
-		$output .= AUI_Component_Helper::aria_attributes( $args );
926
-
927
-		// extra attributes
928
-		if ( ! empty( $args['extra_attributes'] ) ) {
929
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
930
-		}
931
-
932
-		// required
933
-		if ( ! empty( $args['required'] ) ) {
934
-			$output .= ' required';
935
-		}
936
-
937
-		// multiple
938
-		if ( ! empty( $args['multiple'] ) ) {
939
-			$output .= ' multiple';
940
-		}
941
-
942
-		// close opening tag
943
-		$output .= '>';
944
-
945
-		// placeholder
946
-		if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
947
-			$output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
948
-		} elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
949
-			$output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
950
-		}
951
-
952
-		// Options
953
-		if ( ! empty( $args['options'] ) ) {
954
-
955
-			if ( ! is_array( $args['options'] ) ) {
956
-				$output .= $args['options']; // not the preferred way but an option
957
-			} else {
958
-				foreach ( $args['options'] as $val => $name ) {
959
-					$selected = '';
960
-					if ( is_array( $name ) ) {
961
-						if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
962
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
963
-
964
-							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
965
-						} else {
966
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
967
-							$option_value = isset( $name['value'] ) ? $name['value'] : '';
968
-							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
969
-							if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
970
-								$selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
971
-							} elseif ( ! empty( $args['value'] ) ) {
972
-								$selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
973
-							} elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
974
-								$selected = selected( $option_value, $args['value'], false );
975
-							}
976
-
977
-							$output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
978
-						}
979
-					} else {
980
-						if ( ! empty( $args['value'] ) ) {
981
-							if ( is_array( $args['value'] ) ) {
982
-								$selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
983
-							} elseif ( ! empty( $args['value'] ) ) {
984
-								$selected = selected( $args['value'], $val, false );
985
-							}
986
-						} elseif ( $args['value'] === $val ) {
987
-							$selected = selected( $args['value'], $val, false );
988
-						}
989
-						$output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
990
-					}
991
-				}
992
-			}
993
-
994
-		}
995
-
996
-		// closing tag
997
-		$output .= '</select>';
998
-
999
-		$label = '';
1000
-		$help_text = '';
1001
-		// label
1002
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1003
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
1004
-			$label_args = array(
1005
-				'title'      => $args['label'],
1006
-				'for'        => $args['id'],
1007
-				'class'      => $args['label_class'] . " ",
1008
-				'label_type' => $args['label_type'],
1009
-				'label_col'  => $args['label_col']
1010
-			);
1011
-			$label = self::label( $label_args );
1012
-		}
1013
-
1014
-		// help text
1015
-		if ( ! empty( $args['help_text'] ) ) {
1016
-			$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1017
-		}
1018
-
1019
-		// input group wraps
1020
-		if ( $args['input_group_left'] || $args['input_group_right'] ) {
1021
-			$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1022
-			if ( $args['input_group_left'] ) {
1023
-				$output = self::wrap( array(
1024
-					'content'                 => $output,
1025
-					'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1026
-					'input_group_left'        => $args['input_group_left'],
1027
-					'input_group_left_inside' => $args['input_group_left_inside']
1028
-				) );
1029
-			}
1030
-			if ( $args['input_group_right'] ) {
1031
-				$output = self::wrap( array(
1032
-					'content'                  => $output,
1033
-					'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1034
-					'input_group_right'        => $args['input_group_right'],
1035
-					'input_group_right_inside' => $args['input_group_right_inside']
1036
-				) );
1037
-			}
1038
-
1039
-		}
1040
-
1041
-		if ( ! $label_after ) {
1042
-			$output .= $help_text;
1043
-		}
1044
-
1045
-
1046
-		if ( $args['label_type'] == 'horizontal' ) {
1047
-			$output = self::wrap( array(
1048
-				'content' => $output,
1049
-				'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1050
-			) );
1051
-		}
1052
-
1053
-		if ( ! $label_after ) {
1054
-			$output = $label . $output;
1055
-		}
1056
-
1057
-		// maybe horizontal label
514
+            }
515
+
516
+
517
+            // close wrap
518
+            $output .= '</' . sanitize_html_class( $args['type'] ) . '>';
519
+
520
+
521
+        } else {
522
+            $output = $args['content'];
523
+        }
524
+
525
+        return $output;
526
+    }
527
+
528
+    /**
529
+     * Build the component.
530
+     *
531
+     * @param array $args
532
+     *
533
+     * @return string The rendered component.
534
+     */
535
+    public static function textarea( $args = array() ) {
536
+        global $aui_bs5;
537
+
538
+        $defaults = array(
539
+            'name'               => '',
540
+            'class'              => '',
541
+            'wrap_class'         => '',
542
+            'id'                 => '',
543
+            'placeholder'        => '',
544
+            'title'              => '',
545
+            'value'              => '',
546
+            'required'           => false,
547
+            'label'              => '',
548
+            'label_after'        => false,
549
+            'label_class'        => '',
550
+            'label_type'         => '',
551
+            'label_col'          => '',
552
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
553
+            'input_group_right'        => '',
554
+            'input_group_left'         => '',
555
+            'input_group_right_inside' => false,
556
+            'form_group_class'      => '',
557
+            'help_text'          => '',
558
+            'validation_text'    => '',
559
+            'validation_pattern' => '',
560
+            'no_wrap'            => false,
561
+            'rows'               => '',
562
+            'wysiwyg'            => false,
563
+            'allow_tags'         => false,
564
+            // Allow HTML tags
565
+            'element_require'    => '',
566
+            // [%element_id%] == "1"
567
+            'extra_attributes'   => array(),
568
+            // an array of extra attributes
569
+            'wrap_attributes'    => array(),
570
+        );
571
+
572
+        /**
573
+         * Parse incoming $args into an array and merge it with $defaults
574
+         */
575
+        $args   = wp_parse_args( $args, $defaults );
576
+        $output = '';
577
+        $label = '';
578
+
579
+        // hidden label option needs to be empty
580
+        $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
581
+
582
+        // floating labels don't work with wysiwyg so set it as top
583
+        if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
584
+            $args['label_type'] = 'top';
585
+        }
586
+
587
+        $label_after = $args['label_after'];
588
+
589
+        // floating labels need label after
590
+        if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
591
+            $label_after         = true;
592
+            $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
593
+        }
594
+
595
+        // label
596
+        if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
597
+        } elseif ( ! empty( $args['label'] ) && ! $label_after ) {
598
+            $label_args = array(
599
+                'title'      => $args['label'],
600
+                'for'        => $args['id'],
601
+                'class'      => $args['label_class'] . " ",
602
+                'label_type' => $args['label_type'],
603
+                'label_col'  => $args['label_col']
604
+            );
605
+            $label .= self::label( $label_args );
606
+        }
607
+
608
+        // maybe horizontal label
609
+        if ( $args['label_type'] == 'horizontal' ) {
610
+            $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
611
+            $label .= '<div class="' . $input_col . '">';
612
+        }
613
+
614
+        if ( ! empty( $args['wysiwyg'] ) ) {
615
+            ob_start();
616
+            $content   = $args['value'];
617
+            $editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
618
+            $settings  = array(
619
+                'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
620
+                'quicktags'     => false,
621
+                'media_buttons' => false,
622
+                'editor_class'  => 'form-control',
623
+                'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
624
+                'teeny'         => true,
625
+            );
626
+
627
+            // maybe set settings if array
628
+            if ( is_array( $args['wysiwyg'] ) ) {
629
+                $settings = wp_parse_args( $args['wysiwyg'], $settings );
630
+            }
631
+
632
+            wp_editor( $content, $editor_id, $settings );
633
+            $output .= ob_get_clean();
634
+        } else {
635
+
636
+            // open
637
+            $output .= '<textarea ';
638
+
639
+            // name
640
+            if ( ! empty( $args['name'] ) ) {
641
+                $output .= ' name="' . esc_attr( $args['name'] ) . '" ';
642
+            }
643
+
644
+            // id
645
+            if ( ! empty( $args['id'] ) ) {
646
+                $output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
647
+            }
648
+
649
+            // placeholder
650
+            if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
651
+                $output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
652
+            }
653
+
654
+            // title
655
+            if ( ! empty( $args['title'] ) ) {
656
+                $output .= ' title="' . esc_attr( $args['title'] ) . '" ';
657
+            }
658
+
659
+            // validation text
660
+            if ( ! empty( $args['validation_text'] ) ) {
661
+                $output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
662
+                $output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
663
+            }
664
+
665
+            // validation_pattern
666
+            if ( ! empty( $args['validation_pattern'] ) ) {
667
+                $output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
668
+            }
669
+
670
+            // required
671
+            if ( ! empty( $args['required'] ) ) {
672
+                $output .= ' required ';
673
+            }
674
+
675
+            // rows
676
+            if ( ! empty( $args['rows'] ) ) {
677
+                $output .= ' rows="' . absint( $args['rows'] ) . '" ';
678
+            }
679
+
680
+
681
+            // class
682
+            $class = ! empty( $args['class'] ) ? $args['class'] : '';
683
+            $output .= ' class="form-control ' . $class . '" ';
684
+
685
+            // extra attributes
686
+            if ( ! empty( $args['extra_attributes'] ) ) {
687
+                $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
688
+            }
689
+
690
+            // close tag
691
+            $output .= '>';
692
+
693
+            // value
694
+            if ( ! empty( $args['value'] ) ) {
695
+                if ( ! empty( $args['allow_tags'] ) ) {
696
+                    $output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
697
+                } else {
698
+                    $output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
699
+                }
700
+            }
701
+
702
+            // closing tag
703
+            $output .= '</textarea>';
704
+
705
+
706
+            // input group wraps
707
+            if ( $args['input_group_left'] || $args['input_group_right'] ) {
708
+                $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
709
+                if ( $args['input_group_left'] ) {
710
+                    $output = self::wrap( array(
711
+                        'content'                 => $output,
712
+                        'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
713
+                        'input_group_left'        => $args['input_group_left'],
714
+                        'input_group_left_inside' => $args['input_group_left_inside']
715
+                    ) );
716
+                }
717
+                if ( $args['input_group_right'] ) {
718
+                    $output = self::wrap( array(
719
+                        'content'                  => $output,
720
+                        'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
721
+                        'input_group_right'        => $args['input_group_right'],
722
+                        'input_group_right_inside' => $args['input_group_right_inside']
723
+                    ) );
724
+                }
725
+
726
+            }
727
+
728
+
729
+        }
730
+
731
+        if ( ! empty( $args['label'] ) && $label_after ) {
732
+            $label_args = array(
733
+                'title'      => $args['label'],
734
+                'for'        => $args['id'],
735
+                'class'      => $args['label_class'] . " ",
736
+                'label_type' => $args['label_type'],
737
+                'label_col'  => $args['label_col']
738
+            );
739
+            $output .= self::label( $label_args );
740
+        }
741
+
742
+        // help text
743
+        if ( ! empty( $args['help_text'] ) ) {
744
+            $output .= AUI_Component_Helper::help_text( $args['help_text'] );
745
+        }
746
+
747
+        if ( ! $label_after ) {
748
+            $output = $label . $output;
749
+        }
750
+
751
+        // maybe horizontal label
752
+        if ( $args['label_type'] == 'horizontal' ) {
753
+            $output .= '</div>';
754
+        }
755
+
756
+
757
+        // wrap
758
+        if ( ! $args['no_wrap'] ) {
759
+            if ( ! empty( $args['form_group_class'] ) ) {
760
+                $fg_class = esc_attr( $args['form_group_class'] );
761
+            }else{
762
+                $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
763
+            }
764
+            $form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
765
+            $wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
766
+            $wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
767
+            $output           = self::wrap( array(
768
+                'content'         => $output,
769
+                'class'           => $wrap_class,
770
+                'element_require' => $args['element_require'],
771
+                'argument_id'     => $args['id'],
772
+                'wrap_attributes' => $args['wrap_attributes'],
773
+            ) );
774
+        }
775
+
776
+
777
+        return $output;
778
+    }
779
+
780
+    /**
781
+     * Build the component.
782
+     *
783
+     * @param array $args
784
+     *
785
+     * @return string The rendered component.
786
+     */
787
+    public static function select( $args = array() ) {
788
+        global $aui_bs5, $aui_has_select2, $aui_select2_enqueued;
789
+
790
+        $defaults = array(
791
+            'class'            => '',
792
+            'wrap_class'       => '',
793
+            'id'               => '',
794
+            'title'            => '',
795
+            'value'            => '',
796
+            // can be an array or a string
797
+            'required'         => false,
798
+            'label'            => '',
799
+            'label_after'      => false,
800
+            'label_type'       => '',
801
+            'label_col'        => '',
802
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
803
+            'label_class'      => '',
804
+            'help_text'        => '',
805
+            'placeholder'      => '',
806
+            'options'          => array(),
807
+            // array or string
808
+            'icon'             => '',
809
+            'multiple'         => false,
810
+            'select2'          => false,
811
+            'no_wrap'          => false,
812
+            'input_group_right' => '',
813
+            'input_group_left' => '',
814
+            'input_group_right_inside' => false, // forces the input group inside the input
815
+            'input_group_left_inside' => false, // forces the input group inside the input
816
+            'form_group_class'  => '',
817
+            'element_require'  => '',
818
+            // [%element_id%] == "1"
819
+            'extra_attributes' => array(),
820
+            // an array of extra attributes
821
+            'wrap_attributes'  => array(),
822
+        );
823
+
824
+        /**
825
+         * Parse incoming $args into an array and merge it with $defaults
826
+         */
827
+        $args   = wp_parse_args( $args, $defaults );
828
+        $output = '';
829
+
830
+        // for now lets hide floating labels
831
+        if ( $args['label_type'] == 'floating' ) {
832
+            $args['label_type'] = 'hidden';
833
+        }
834
+
835
+        // hidden label option needs to be empty
836
+        $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
837
+
838
+
839
+        $label_after = $args['label_after'];
840
+
841
+        // floating labels need label after
842
+        if ( $args['label_type'] == 'floating' ) {
843
+            $label_after         = true;
844
+            $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
845
+        }
846
+
847
+        // Maybe setup select2
848
+        $is_select2 = false;
849
+        if ( ! empty( $args['select2'] ) ) {
850
+            $args['class'] .= ' aui-select2';
851
+            $is_select2 = true;
852
+        } elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
853
+            $is_select2 = true;
854
+        }
855
+
856
+        if ( $is_select2 && ! $aui_has_select2 ) {
857
+            $aui_has_select2 = true;
858
+            $conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
859
+
860
+            // Enqueue the script,
861
+            if ( empty( $aui_select2_enqueued ) && $conditional_select2 === true ) {
862
+                $aui_select2_enqueued = true;
863
+
864
+                $aui_settings = AyeCode_UI_Settings::instance();
865
+                $aui_settings->enqueue_select2();
866
+            }
867
+        }
868
+
869
+        // select2 tags
870
+        if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
871
+            $args['data-tags']             = 'true';
872
+            $args['data-token-separators'] = "[',']";
873
+            $args['multiple']              = true;
874
+        }
875
+
876
+        // select2 placeholder
877
+        if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
878
+            $args['data-placeholder'] = esc_attr( $args['placeholder'] );
879
+            $args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
880
+        }
881
+
882
+        // Set hidden input to save empty value for multiselect.
883
+        if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
884
+            $output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
885
+        }
886
+
887
+        // open/type
888
+        $output .= '<select ';
889
+
890
+        // style
891
+        if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
892
+            $output .= " style='width:100%;' ";
893
+        }
894
+
895
+        // element require
896
+        if ( ! empty( $args['element_require'] ) ) {
897
+            $output .= AUI_Component_Helper::element_require( $args['element_require'] );
898
+            $args['class'] .= " aui-conditional-field";
899
+        }
900
+
901
+        // class
902
+        $class = ! empty( $args['class'] ) ? $args['class'] : '';
903
+        $select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
904
+        $output .= AUI_Component_Helper::class_attr( $select_class . $class );
905
+
906
+        // name
907
+        if ( ! empty( $args['name'] ) ) {
908
+            $output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
909
+        }
910
+
911
+        // id
912
+        if ( ! empty( $args['id'] ) ) {
913
+            $output .= AUI_Component_Helper::id( $args['id'] );
914
+        }
915
+
916
+        // title
917
+        if ( ! empty( $args['title'] ) ) {
918
+            $output .= AUI_Component_Helper::title( $args['title'] );
919
+        }
920
+
921
+        // data-attributes
922
+        $output .= AUI_Component_Helper::data_attributes( $args );
923
+
924
+        // aria-attributes
925
+        $output .= AUI_Component_Helper::aria_attributes( $args );
926
+
927
+        // extra attributes
928
+        if ( ! empty( $args['extra_attributes'] ) ) {
929
+            $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
930
+        }
931
+
932
+        // required
933
+        if ( ! empty( $args['required'] ) ) {
934
+            $output .= ' required';
935
+        }
936
+
937
+        // multiple
938
+        if ( ! empty( $args['multiple'] ) ) {
939
+            $output .= ' multiple';
940
+        }
941
+
942
+        // close opening tag
943
+        $output .= '>';
944
+
945
+        // placeholder
946
+        if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
947
+            $output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
948
+        } elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
949
+            $output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
950
+        }
951
+
952
+        // Options
953
+        if ( ! empty( $args['options'] ) ) {
954
+
955
+            if ( ! is_array( $args['options'] ) ) {
956
+                $output .= $args['options']; // not the preferred way but an option
957
+            } else {
958
+                foreach ( $args['options'] as $val => $name ) {
959
+                    $selected = '';
960
+                    if ( is_array( $name ) ) {
961
+                        if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
962
+                            $option_label = isset( $name['label'] ) ? $name['label'] : '';
963
+
964
+                            $output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
965
+                        } else {
966
+                            $option_label = isset( $name['label'] ) ? $name['label'] : '';
967
+                            $option_value = isset( $name['value'] ) ? $name['value'] : '';
968
+                            $extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
969
+                            if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
970
+                                $selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
971
+                            } elseif ( ! empty( $args['value'] ) ) {
972
+                                $selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
973
+                            } elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
974
+                                $selected = selected( $option_value, $args['value'], false );
975
+                            }
976
+
977
+                            $output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
978
+                        }
979
+                    } else {
980
+                        if ( ! empty( $args['value'] ) ) {
981
+                            if ( is_array( $args['value'] ) ) {
982
+                                $selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
983
+                            } elseif ( ! empty( $args['value'] ) ) {
984
+                                $selected = selected( $args['value'], $val, false );
985
+                            }
986
+                        } elseif ( $args['value'] === $val ) {
987
+                            $selected = selected( $args['value'], $val, false );
988
+                        }
989
+                        $output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
990
+                    }
991
+                }
992
+            }
993
+
994
+        }
995
+
996
+        // closing tag
997
+        $output .= '</select>';
998
+
999
+        $label = '';
1000
+        $help_text = '';
1001
+        // label
1002
+        if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1003
+        } elseif ( ! empty( $args['label'] ) && ! $label_after ) {
1004
+            $label_args = array(
1005
+                'title'      => $args['label'],
1006
+                'for'        => $args['id'],
1007
+                'class'      => $args['label_class'] . " ",
1008
+                'label_type' => $args['label_type'],
1009
+                'label_col'  => $args['label_col']
1010
+            );
1011
+            $label = self::label( $label_args );
1012
+        }
1013
+
1014
+        // help text
1015
+        if ( ! empty( $args['help_text'] ) ) {
1016
+            $help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1017
+        }
1018
+
1019
+        // input group wraps
1020
+        if ( $args['input_group_left'] || $args['input_group_right'] ) {
1021
+            $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1022
+            if ( $args['input_group_left'] ) {
1023
+                $output = self::wrap( array(
1024
+                    'content'                 => $output,
1025
+                    'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1026
+                    'input_group_left'        => $args['input_group_left'],
1027
+                    'input_group_left_inside' => $args['input_group_left_inside']
1028
+                ) );
1029
+            }
1030
+            if ( $args['input_group_right'] ) {
1031
+                $output = self::wrap( array(
1032
+                    'content'                  => $output,
1033
+                    'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1034
+                    'input_group_right'        => $args['input_group_right'],
1035
+                    'input_group_right_inside' => $args['input_group_right_inside']
1036
+                ) );
1037
+            }
1038
+
1039
+        }
1040
+
1041
+        if ( ! $label_after ) {
1042
+            $output .= $help_text;
1043
+        }
1044
+
1045
+
1046
+        if ( $args['label_type'] == 'horizontal' ) {
1047
+            $output = self::wrap( array(
1048
+                'content' => $output,
1049
+                'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1050
+            ) );
1051
+        }
1052
+
1053
+        if ( ! $label_after ) {
1054
+            $output = $label . $output;
1055
+        }
1056
+
1057
+        // maybe horizontal label
1058 1058
 //		if ( $args['label_type'] == 'horizontal' ) {
1059 1059
 //			$output .= '</div>';
1060 1060
 //		}
1061 1061
 
1062 1062
 
1063
-		// wrap
1064
-		if ( ! $args['no_wrap'] ) {
1065
-			if ( ! empty( $args['form_group_class'] ) ) {
1066
-				$fg_class = esc_attr( $args['form_group_class'] );
1067
-			}else{
1068
-				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1069
-			}
1070
-			$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1071
-			$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1072
-			$output     = self::wrap( array(
1073
-				'content'         => $output,
1074
-				'class'           => $wrap_class,
1075
-				'element_require' => $args['element_require'],
1076
-				'argument_id'     => $args['id'],
1077
-				'wrap_attributes' => $args['wrap_attributes'],
1078
-			) );
1079
-		}
1080
-
1081
-
1082
-		return $output;
1083
-	}
1084
-
1085
-	/**
1086
-	 * Build the component.
1087
-	 *
1088
-	 * @param array $args
1089
-	 *
1090
-	 * @return string The rendered component.
1091
-	 */
1092
-	public static function radio( $args = array() ) {
1093
-		global $aui_bs5;
1094
-
1095
-		$defaults = array(
1096
-			'class'            => '',
1097
-			'wrap_class'       => '',
1098
-			'id'               => '',
1099
-			'title'            => '',
1100
-			'horizontal'       => false,
1101
-			// sets the lable horizontal
1102
-			'value'            => '',
1103
-			'label'            => '',
1104
-			'label_class'      => '',
1105
-			'label_type'       => '',
1106
-			'label_col'        => '',
1107
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
1108
-			'help_text'        => '',
1109
-			'inline'           => true,
1110
-			'required'         => false,
1111
-			'options'          => array(),
1112
-			'icon'             => '',
1113
-			'no_wrap'          => false,
1114
-			'element_require'  => '',
1115
-			// [%element_id%] == "1"
1116
-			'extra_attributes' => array(),
1117
-			// an array of extra attributes
1118
-			'wrap_attributes'  => array()
1119
-		);
1120
-
1121
-		/**
1122
-		 * Parse incoming $args into an array and merge it with $defaults
1123
-		 */
1124
-		$args = wp_parse_args( $args, $defaults );
1125
-
1126
-		// for now lets use horizontal for floating
1127
-		if ( $args['label_type'] == 'floating' ) {
1128
-			$args['label_type'] = 'horizontal';
1129
-		}
1130
-
1131
-		$label_args = array(
1132
-			'title'      => $args['label'],
1133
-			'class'      => $args['label_class'] . " pt-0 ",
1134
-			'label_type' => $args['label_type'],
1135
-			'label_col'  => $args['label_col']
1136
-		);
1137
-
1138
-		if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1139
-			$label_args['class'] .= 'd-block ';
1140
-
1141
-			if ( $args['label_type'] == 'hidden' ) {
1142
-				$label_args['class'] .= 'sr-only ' . ( $aui_bs5 ? 'visually-hidden ' : '' );
1143
-			}
1144
-		}
1145
-
1146
-		$output = '';
1147
-
1148
-		// label before
1149
-		if ( ! empty( $args['label'] ) ) {
1150
-			$output .= self::label( $label_args, 'radio' );
1151
-		}
1152
-
1153
-		// maybe horizontal label
1154
-		if ( $args['label_type'] == 'horizontal' ) {
1155
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1156
-			$output .= '<div class="' . $input_col . '">';
1157
-		}
1158
-
1159
-		if ( ! empty( $args['options'] ) ) {
1160
-			$count = 0;
1161
-			foreach ( $args['options'] as $value => $label ) {
1162
-				$option_args            = $args;
1163
-				$option_args['value']   = $value;
1164
-				$option_args['label']   = $label;
1165
-				$option_args['checked'] = $value == $args['value'] ? true : false;
1166
-				$output .= self::radio_option( $option_args, $count );
1167
-				$count ++;
1168
-			}
1169
-		}
1170
-
1171
-		// help text
1172
-		$help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1173
-		$output .= $help_text;
1174
-
1175
-		// maybe horizontal label
1176
-		if ( $args['label_type'] == 'horizontal' ) {
1177
-			$output .= '</div>';
1178
-		}
1179
-
1180
-		// wrap
1181
-		$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1182
-		$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1183
-		$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1184
-		$output     = self::wrap( array(
1185
-			'content'         => $output,
1186
-			'class'           => $wrap_class,
1187
-			'element_require' => $args['element_require'],
1188
-			'argument_id'     => $args['id'],
1189
-			'wrap_attributes' => $args['wrap_attributes'],
1190
-		) );
1191
-
1192
-
1193
-		return $output;
1194
-	}
1195
-
1196
-	/**
1197
-	 * Build the component.
1198
-	 *
1199
-	 * @param array $args
1200
-	 *
1201
-	 * @return string The rendered component.
1202
-	 */
1203
-	public static function radio_option( $args = array(), $count = '' ) {
1204
-		$defaults = array(
1205
-			'class'            => '',
1206
-			'id'               => '',
1207
-			'title'            => '',
1208
-			'value'            => '',
1209
-			'required'         => false,
1210
-			'inline'           => true,
1211
-			'label'            => '',
1212
-			'options'          => array(),
1213
-			'icon'             => '',
1214
-			'no_wrap'          => false,
1215
-			'extra_attributes' => array() // an array of extra attributes
1216
-		);
1217
-
1218
-		/**
1219
-		 * Parse incoming $args into an array and merge it with $defaults
1220
-		 */
1221
-		$args = wp_parse_args( $args, $defaults );
1222
-
1223
-		$output = '';
1224
-
1225
-		// open/type
1226
-		$output .= '<input type="radio"';
1227
-
1228
-		// class
1229
-		$output .= ' class="form-check-input" ';
1230
-
1231
-		// name
1232
-		if ( ! empty( $args['name'] ) ) {
1233
-			$output .= AUI_Component_Helper::name( $args['name'] );
1234
-		}
1235
-
1236
-		// id
1237
-		if ( ! empty( $args['id'] ) ) {
1238
-			$output .= AUI_Component_Helper::id( $args['id'] . $count );
1239
-		}
1240
-
1241
-		// title
1242
-		if ( ! empty( $args['title'] ) ) {
1243
-			$output .= AUI_Component_Helper::title( $args['title'] );
1244
-		}
1245
-
1246
-		// value
1247
-		if ( isset( $args['value'] ) ) {
1248
-			$output .= AUI_Component_Helper::value( $args['value'] );
1249
-		}
1250
-
1251
-		// checked, for radio and checkboxes
1252
-		if ( $args['checked'] ) {
1253
-			$output .= ' checked ';
1254
-		}
1255
-
1256
-		// data-attributes
1257
-		$output .= AUI_Component_Helper::data_attributes( $args );
1258
-
1259
-		// aria-attributes
1260
-		$output .= AUI_Component_Helper::aria_attributes( $args );
1261
-
1262
-		// extra attributes
1263
-		if ( ! empty( $args['extra_attributes'] ) ) {
1264
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1265
-		}
1266
-
1267
-		// required
1268
-		if ( ! empty( $args['required'] ) ) {
1269
-			$output .= ' required';
1270
-		}
1271
-
1272
-		// close opening tag
1273
-		$output .= '>';
1274
-
1275
-		// label
1276
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1277
-		} elseif ( ! empty( $args['label'] ) ) {
1278
-			$output .= self::label( array(
1279
-				'title' => $args['label'],
1280
-				'for'   => $args['id'] . $count,
1281
-				'class' => 'form-check-label'
1282
-			), 'radio' );
1283
-		}
1284
-
1285
-		// wrap
1286
-		if ( ! $args['no_wrap'] ) {
1287
-			$wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1288
-
1289
-			// Unique wrap class
1290
-			$uniq_class = 'fwrap';
1291
-			if ( ! empty( $args['name'] ) ) {
1292
-				$uniq_class .= '-' . $args['name'];
1293
-			} else if ( ! empty( $args['id'] ) ) {
1294
-				$uniq_class .= '-' . $args['id'];
1295
-			}
1296
-
1297
-			if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1298
-				$uniq_class .= '-' . $args['value'];
1299
-			} else {
1300
-				$uniq_class .= '-' . $count;
1301
-			}
1302
-			$wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1303
-
1304
-			$output = self::wrap( array(
1305
-				'content' => $output,
1306
-				'class'   => $wrap_class
1307
-			) );
1308
-		}
1309
-
1310
-		return $output;
1311
-	}
1063
+        // wrap
1064
+        if ( ! $args['no_wrap'] ) {
1065
+            if ( ! empty( $args['form_group_class'] ) ) {
1066
+                $fg_class = esc_attr( $args['form_group_class'] );
1067
+            }else{
1068
+                $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1069
+            }
1070
+            $wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1071
+            $wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1072
+            $output     = self::wrap( array(
1073
+                'content'         => $output,
1074
+                'class'           => $wrap_class,
1075
+                'element_require' => $args['element_require'],
1076
+                'argument_id'     => $args['id'],
1077
+                'wrap_attributes' => $args['wrap_attributes'],
1078
+            ) );
1079
+        }
1080
+
1081
+
1082
+        return $output;
1083
+    }
1084
+
1085
+    /**
1086
+     * Build the component.
1087
+     *
1088
+     * @param array $args
1089
+     *
1090
+     * @return string The rendered component.
1091
+     */
1092
+    public static function radio( $args = array() ) {
1093
+        global $aui_bs5;
1094
+
1095
+        $defaults = array(
1096
+            'class'            => '',
1097
+            'wrap_class'       => '',
1098
+            'id'               => '',
1099
+            'title'            => '',
1100
+            'horizontal'       => false,
1101
+            // sets the lable horizontal
1102
+            'value'            => '',
1103
+            'label'            => '',
1104
+            'label_class'      => '',
1105
+            'label_type'       => '',
1106
+            'label_col'        => '',
1107
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
1108
+            'help_text'        => '',
1109
+            'inline'           => true,
1110
+            'required'         => false,
1111
+            'options'          => array(),
1112
+            'icon'             => '',
1113
+            'no_wrap'          => false,
1114
+            'element_require'  => '',
1115
+            // [%element_id%] == "1"
1116
+            'extra_attributes' => array(),
1117
+            // an array of extra attributes
1118
+            'wrap_attributes'  => array()
1119
+        );
1120
+
1121
+        /**
1122
+         * Parse incoming $args into an array and merge it with $defaults
1123
+         */
1124
+        $args = wp_parse_args( $args, $defaults );
1125
+
1126
+        // for now lets use horizontal for floating
1127
+        if ( $args['label_type'] == 'floating' ) {
1128
+            $args['label_type'] = 'horizontal';
1129
+        }
1130
+
1131
+        $label_args = array(
1132
+            'title'      => $args['label'],
1133
+            'class'      => $args['label_class'] . " pt-0 ",
1134
+            'label_type' => $args['label_type'],
1135
+            'label_col'  => $args['label_col']
1136
+        );
1137
+
1138
+        if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1139
+            $label_args['class'] .= 'd-block ';
1140
+
1141
+            if ( $args['label_type'] == 'hidden' ) {
1142
+                $label_args['class'] .= 'sr-only ' . ( $aui_bs5 ? 'visually-hidden ' : '' );
1143
+            }
1144
+        }
1145
+
1146
+        $output = '';
1147
+
1148
+        // label before
1149
+        if ( ! empty( $args['label'] ) ) {
1150
+            $output .= self::label( $label_args, 'radio' );
1151
+        }
1152
+
1153
+        // maybe horizontal label
1154
+        if ( $args['label_type'] == 'horizontal' ) {
1155
+            $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1156
+            $output .= '<div class="' . $input_col . '">';
1157
+        }
1158
+
1159
+        if ( ! empty( $args['options'] ) ) {
1160
+            $count = 0;
1161
+            foreach ( $args['options'] as $value => $label ) {
1162
+                $option_args            = $args;
1163
+                $option_args['value']   = $value;
1164
+                $option_args['label']   = $label;
1165
+                $option_args['checked'] = $value == $args['value'] ? true : false;
1166
+                $output .= self::radio_option( $option_args, $count );
1167
+                $count ++;
1168
+            }
1169
+        }
1170
+
1171
+        // help text
1172
+        $help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1173
+        $output .= $help_text;
1174
+
1175
+        // maybe horizontal label
1176
+        if ( $args['label_type'] == 'horizontal' ) {
1177
+            $output .= '</div>';
1178
+        }
1179
+
1180
+        // wrap
1181
+        $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1182
+        $wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1183
+        $wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1184
+        $output     = self::wrap( array(
1185
+            'content'         => $output,
1186
+            'class'           => $wrap_class,
1187
+            'element_require' => $args['element_require'],
1188
+            'argument_id'     => $args['id'],
1189
+            'wrap_attributes' => $args['wrap_attributes'],
1190
+        ) );
1191
+
1192
+
1193
+        return $output;
1194
+    }
1195
+
1196
+    /**
1197
+     * Build the component.
1198
+     *
1199
+     * @param array $args
1200
+     *
1201
+     * @return string The rendered component.
1202
+     */
1203
+    public static function radio_option( $args = array(), $count = '' ) {
1204
+        $defaults = array(
1205
+            'class'            => '',
1206
+            'id'               => '',
1207
+            'title'            => '',
1208
+            'value'            => '',
1209
+            'required'         => false,
1210
+            'inline'           => true,
1211
+            'label'            => '',
1212
+            'options'          => array(),
1213
+            'icon'             => '',
1214
+            'no_wrap'          => false,
1215
+            'extra_attributes' => array() // an array of extra attributes
1216
+        );
1217
+
1218
+        /**
1219
+         * Parse incoming $args into an array and merge it with $defaults
1220
+         */
1221
+        $args = wp_parse_args( $args, $defaults );
1222
+
1223
+        $output = '';
1224
+
1225
+        // open/type
1226
+        $output .= '<input type="radio"';
1227
+
1228
+        // class
1229
+        $output .= ' class="form-check-input" ';
1230
+
1231
+        // name
1232
+        if ( ! empty( $args['name'] ) ) {
1233
+            $output .= AUI_Component_Helper::name( $args['name'] );
1234
+        }
1235
+
1236
+        // id
1237
+        if ( ! empty( $args['id'] ) ) {
1238
+            $output .= AUI_Component_Helper::id( $args['id'] . $count );
1239
+        }
1240
+
1241
+        // title
1242
+        if ( ! empty( $args['title'] ) ) {
1243
+            $output .= AUI_Component_Helper::title( $args['title'] );
1244
+        }
1245
+
1246
+        // value
1247
+        if ( isset( $args['value'] ) ) {
1248
+            $output .= AUI_Component_Helper::value( $args['value'] );
1249
+        }
1250
+
1251
+        // checked, for radio and checkboxes
1252
+        if ( $args['checked'] ) {
1253
+            $output .= ' checked ';
1254
+        }
1255
+
1256
+        // data-attributes
1257
+        $output .= AUI_Component_Helper::data_attributes( $args );
1258
+
1259
+        // aria-attributes
1260
+        $output .= AUI_Component_Helper::aria_attributes( $args );
1261
+
1262
+        // extra attributes
1263
+        if ( ! empty( $args['extra_attributes'] ) ) {
1264
+            $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1265
+        }
1266
+
1267
+        // required
1268
+        if ( ! empty( $args['required'] ) ) {
1269
+            $output .= ' required';
1270
+        }
1271
+
1272
+        // close opening tag
1273
+        $output .= '>';
1274
+
1275
+        // label
1276
+        if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1277
+        } elseif ( ! empty( $args['label'] ) ) {
1278
+            $output .= self::label( array(
1279
+                'title' => $args['label'],
1280
+                'for'   => $args['id'] . $count,
1281
+                'class' => 'form-check-label'
1282
+            ), 'radio' );
1283
+        }
1284
+
1285
+        // wrap
1286
+        if ( ! $args['no_wrap'] ) {
1287
+            $wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1288
+
1289
+            // Unique wrap class
1290
+            $uniq_class = 'fwrap';
1291
+            if ( ! empty( $args['name'] ) ) {
1292
+                $uniq_class .= '-' . $args['name'];
1293
+            } else if ( ! empty( $args['id'] ) ) {
1294
+                $uniq_class .= '-' . $args['id'];
1295
+            }
1296
+
1297
+            if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1298
+                $uniq_class .= '-' . $args['value'];
1299
+            } else {
1300
+                $uniq_class .= '-' . $count;
1301
+            }
1302
+            $wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1303
+
1304
+            $output = self::wrap( array(
1305
+                'content' => $output,
1306
+                'class'   => $wrap_class
1307
+            ) );
1308
+        }
1309
+
1310
+        return $output;
1311
+    }
1312 1312
 
1313 1313
 }
1314 1314
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +316 added lines, -316 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3
-if ( ! defined( 'ABSPATH' ) ) {
3
+if (!defined('ABSPATH')) {
4 4
 	exit; // Exit if accessed directly
5 5
 }
6 6
 
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
 	 *
19 19
 	 * @return string The rendered component.
20 20
 	 */
21
-	public static function input( $args = array() ) {
21
+	public static function input($args = array()) {
22 22
 		global $aui_bs5;
23 23
 
24 24
 		$defaults = array(
@@ -69,13 +69,13 @@  discard block
 block discarded – undo
69 69
 		/**
70 70
 		 * Parse incoming $args into an array and merge it with $defaults
71 71
 		 */
72
-		$args   = wp_parse_args( $args, $defaults );
72
+		$args   = wp_parse_args($args, $defaults);
73 73
 		$output = '';
74
-		if ( ! empty( $args['type'] ) ) {
74
+		if (!empty($args['type'])) {
75 75
 			// hidden label option needs to be empty
76 76
 			$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
77 77
 
78
-			$type = sanitize_html_class( $args['type'] );
78
+			$type = sanitize_html_class($args['type']);
79 79
 
80 80
 			$help_text   = '';
81 81
 			$label       = '';
@@ -89,17 +89,17 @@  discard block
 block discarded – undo
89 89
 			);
90 90
 
91 91
 			// floating labels need label after
92
-			if ( $args['label_type'] == 'floating' && $type != 'checkbox' ) {
92
+			if ($args['label_type'] == 'floating' && $type != 'checkbox') {
93 93
 				$label_after         = true;
94 94
 				$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
95 95
 			}
96 96
 
97 97
 			// size
98 98
 			$size = '';
99
-			if ( $args['size'] == 'lg' || $args['size'] == 'large' ) {
99
+			if ($args['size'] == 'lg' || $args['size'] == 'large') {
100 100
 				$size = 'lg';
101 101
 				$args['class'] .= ' form-control-lg';
102
-			}elseif ( $args['size'] == 'sm' || $args['size'] == 'small' ) {
102
+			}elseif ($args['size'] == 'sm' || $args['size'] == 'small') {
103 103
 				$size = 'sm';
104 104
 				$args['class'] .= ' form-control-sm';
105 105
 			}
@@ -108,28 +108,28 @@  discard block
 block discarded – undo
108 108
 			$clear_function = 'jQuery(this).parent().parent().find(\'input\').val(\'\');';
109 109
 
110 110
 			// Some special sauce for files
111
-			if ( $type == 'file' ) {
111
+			if ($type == 'file') {
112 112
 				$label_after = true; // if type file we need the label after
113 113
 				$args['class'] .= ' custom-file-input ';
114
-			} elseif ( $type == 'checkbox' ) {
114
+			} elseif ($type == 'checkbox') {
115 115
 				$label_after = true; // if type file we need the label after
116 116
 				$args['class'] .= $aui_bs5 ? ' form-check-input c-pointer ' : ' custom-control-input c-pointer ';
117
-			} elseif ( $type == 'datepicker' || $type == 'timepicker' ) {
117
+			} elseif ($type == 'datepicker' || $type == 'timepicker') {
118 118
 				$orig_type = $type;
119 119
 				$type = 'text';
120 120
 				$args['class'] .= ' bg-initial '; // @todo not sure why we have this?
121
-				$clear_function .= "jQuery(this).parent().parent().find('input[name=\'" . esc_attr( $args['name'] ) . "\']').trigger('change');";
121
+				$clear_function .= "jQuery(this).parent().parent().find('input[name=\'" . esc_attr($args['name']) . "\']').trigger('change');";
122 122
 
123 123
 				$args['extra_attributes']['data-aui-init'] = 'flatpickr';
124 124
 
125 125
 				// Disable native datetime inputs.
126
-				$disable_mobile_attr = isset( $args['extra_attributes']['data-disable-mobile'] ) ? $args['extra_attributes']['data-disable-mobile'] : 'true';
127
-				$disable_mobile_attr = apply_filters( 'aui_flatpickr_disable_disable_mobile_attr', $disable_mobile_attr, $args );
126
+				$disable_mobile_attr = isset($args['extra_attributes']['data-disable-mobile']) ? $args['extra_attributes']['data-disable-mobile'] : 'true';
127
+				$disable_mobile_attr = apply_filters('aui_flatpickr_disable_disable_mobile_attr', $disable_mobile_attr, $args);
128 128
 
129 129
 				$args['extra_attributes']['data-disable-mobile'] = $disable_mobile_attr;
130 130
 
131 131
 				// set a way to clear field if empty
132
-				if ( $args['input_group_right'] === '' && $args['clear_icon'] !== false ) {
132
+				if ($args['input_group_right'] === '' && $args['clear_icon'] !== false) {
133 133
 					$args['input_group_right_inside'] = true;
134 134
 					$args['clear_icon'] = true;
135 135
 				}
@@ -137,11 +137,11 @@  discard block
 block discarded – undo
137 137
 				// enqueue the script
138 138
 				$aui_settings = AyeCode_UI_Settings::instance();
139 139
 				$aui_settings->enqueue_flatpickr();
140
-			} else if ( $type == 'iconpicker' ) {
140
+			} else if ($type == 'iconpicker') {
141 141
 				$type = 'text';
142 142
 
143 143
 				// Validate FA icon.
144
-				$args['value'] = AUI_Component_Helper::sanitize_fa_icon( $args['value'], $args );
144
+				$args['value'] = AUI_Component_Helper::sanitize_fa_icon($args['value'], $args);
145 145
 
146 146
 				$args['extra_attributes']['data-aui-init'] = 'iconpicker';
147 147
 				$args['extra_attributes']['data-placement'] = 'bottomRight';
@@ -153,104 +153,104 @@  discard block
 block discarded – undo
153 153
 				$aui_settings->enqueue_iconpicker();
154 154
 			}
155 155
 
156
-			if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
157
-				$output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
156
+			if ($type == 'checkbox' && ((!empty($args['name']) && strpos($args['name'], '[') === false) || !empty($args['with_hidden']))) {
157
+				$output .= '<input type="hidden" name="' . esc_attr($args['name']) . '" value="0" />';
158 158
 			}
159 159
 
160 160
 			// allow clear icon
161
-			if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
162
-				$font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
161
+			if ($args['input_group_right'] === '' && $args['clear_icon']) {
162
+				$font_size = $size == 'sm' ? '1.3' : ($size == 'lg' ? '1.65' : '1.5');
163 163
 				$args['input_group_right_inside'] = true;
164 164
 				$align_class = $aui_bs5 ? ' h-100 py-0' : '';
165
-				$args['input_group_right'] = '<span class="input-group-text aui-clear-input c-pointer bg-initial border-0 px-2 d-none ' . $align_class . '" onclick="' . $clear_function . '"><span style="font-size: ' . $font_size . 'rem" aria-hidden="true" class="' . ( $aui_bs5 ? 'btn-close' : 'close' ) . '">' . ( $aui_bs5 ? '' : '&times;' ) . '</span></span>';
165
+				$args['input_group_right'] = '<span class="input-group-text aui-clear-input c-pointer bg-initial border-0 px-2 d-none ' . $align_class . '" onclick="' . $clear_function . '"><span style="font-size: ' . $font_size . 'rem" aria-hidden="true" class="' . ($aui_bs5 ? 'btn-close' : 'close') . '">' . ($aui_bs5 ? '' : '&times;') . '</span></span>';
166 166
 			}
167 167
 
168 168
 			// open/type
169 169
 			$output .= '<input type="' . $type . '" ';
170 170
 
171 171
 			// name
172
-			if ( ! empty( $args['name'] ) ) {
173
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
172
+			if (!empty($args['name'])) {
173
+				$output .= ' name="' . esc_attr($args['name']) . '" ';
174 174
 			}
175 175
 
176 176
 			// id
177
-			if ( ! empty( $args['id'] ) ) {
178
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
177
+			if (!empty($args['id'])) {
178
+				$output .= ' id="' . sanitize_html_class($args['id']) . '" ';
179 179
 			}
180 180
 
181 181
 			// placeholder
182
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
183
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
182
+			if (isset($args['placeholder']) && '' != $args['placeholder']) {
183
+				$output .= ' placeholder="' . esc_attr($args['placeholder']) . '" ';
184 184
 			}
185 185
 
186 186
 			// title
187
-			if ( ! empty( $args['title'] ) ) {
188
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
187
+			if (!empty($args['title'])) {
188
+				$output .= ' title="' . esc_attr($args['title']) . '" ';
189 189
 			}
190 190
 
191 191
 			// value
192
-			if ( ! empty( $args['value'] ) ) {
193
-				$output .= AUI_Component_Helper::value( $args['value'] );
192
+			if (!empty($args['value'])) {
193
+				$output .= AUI_Component_Helper::value($args['value']);
194 194
 			}
195 195
 
196 196
 			// checked, for radio and checkboxes
197
-			if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
197
+			if (($type == 'checkbox' || $type == 'radio') && $args['checked']) {
198 198
 				$output .= ' checked ';
199 199
 			}
200 200
 
201 201
 			// validation text
202
-			if ( ! empty( $args['validation_text'] ) ) {
203
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
202
+			if (!empty($args['validation_text'])) {
203
+				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr(addslashes($args['validation_text'])) . '\')" ';
204 204
 				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
205 205
 			}
206 206
 
207 207
 			// validation_pattern
208
-			if ( ! empty( $args['validation_pattern'] ) ) {
209
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
208
+			if (!empty($args['validation_pattern'])) {
209
+				$output .= ' pattern="' . esc_attr($args['validation_pattern']) . '" ';
210 210
 			}
211 211
 
212 212
 			// step (for numbers)
213
-			if ( ! empty( $args['step'] ) ) {
213
+			if (!empty($args['step'])) {
214 214
 				$output .= ' step="' . $args['step'] . '" ';
215 215
 			}
216 216
 
217 217
 			// required
218
-			if ( ! empty( $args['required'] ) ) {
218
+			if (!empty($args['required'])) {
219 219
 				$output .= ' required ';
220 220
 			}
221 221
 
222 222
 			// class
223
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
224
-			$output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
223
+			$class = !empty($args['class']) ? AUI_Component_Helper::esc_classes($args['class']) : '';
224
+			$output .= $aui_bs5 && $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
225 225
 
226 226
 			// data-attributes
227
-			$output .= AUI_Component_Helper::data_attributes( $args );
227
+			$output .= AUI_Component_Helper::data_attributes($args);
228 228
 
229 229
 			// extra attributes
230
-			if ( ! empty( $args['extra_attributes'] ) ) {
231
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
230
+			if (!empty($args['extra_attributes'])) {
231
+				$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
232 232
 			}
233 233
 
234 234
 			// close
235 235
 			$output .= '>';
236 236
 
237 237
 			// help text
238
-			if ( ! empty( $args['help_text'] ) ) {
239
-				$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
238
+			if (!empty($args['help_text'])) {
239
+				$help_text = AUI_Component_Helper::help_text($args['help_text']);
240 240
 			}
241 241
 
242 242
 			// label
243
-			if ( ! empty( $args['label'] ) ) {
243
+			if (!empty($args['label'])) {
244 244
 				$label_base_class = '';
245
-				if ( $type == 'file' ) {
245
+				if ($type == 'file') {
246 246
 					$label_base_class = ' custom-file-label';
247
-				} elseif ( $type == 'checkbox' ) {
248
-					if ( ! empty( $args['label_force_left'] ) ) {
249
-						$label_args['title'] = wp_kses_post( $args['help_text'] );
247
+				} elseif ($type == 'checkbox') {
248
+					if (!empty($args['label_force_left'])) {
249
+						$label_args['title'] = wp_kses_post($args['help_text']);
250 250
 						$help_text = '';
251 251
 						//$label_args['class'] .= ' d-inline ';
252 252
 						$args['wrap_class'] .= ' align-items-center ';
253
-					}else{
253
+					} else {
254 254
 
255 255
 					}
256 256
 
@@ -258,49 +258,49 @@  discard block
 block discarded – undo
258 258
 				}
259 259
 				$label_args['class'] .= $label_base_class;
260 260
 				$temp_label_args = $label_args;
261
-				if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
262
-				$label = self::label( $temp_label_args, $type );
261
+				if (!empty($args['label_force_left'])) {$temp_label_args['class'] = $label_base_class . " text-muted"; }
262
+				$label = self::label($temp_label_args, $type);
263 263
 			}
264 264
 
265 265
 
266 266
 
267 267
 
268 268
 			// set help text in the correct position
269
-			if ( $label_after ) {
269
+			if ($label_after) {
270 270
 				$output .= $label . $help_text;
271 271
 			}
272 272
 
273 273
 			// some input types need a separate wrap
274
-			if ( $type == 'file' ) {
275
-				$output = self::wrap( array(
274
+			if ($type == 'file') {
275
+				$output = self::wrap(array(
276 276
 					'content' => $output,
277 277
 					'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
278
-				) );
279
-			} elseif ( $type == 'checkbox' ) {
278
+				));
279
+			} elseif ($type == 'checkbox') {
280 280
 
281 281
 				$label_args['title'] = $args['label'];
282
-				$label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
283
-				$label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
284
-				$switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
285
-				if ( $aui_bs5 ) {
282
+				$label_col = AUI_Component_Helper::get_column_class($args['label_col'], 'label');
283
+				$label = !empty($args['label_force_left']) ? self::label($label_args, 'cb') : '<div class="' . $label_col . ' col-form-label"></div>';
284
+				$switch_size_class = $args['switch'] && !is_bool($args['switch']) ? ' custom-switch-' . esc_attr($args['switch']) : '';
285
+				if ($aui_bs5) {
286 286
 					$wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
287
-				}else{
288
-					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
287
+				} else {
288
+					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class : 'custom-checkbox';
289 289
 				}
290
-				if ( ! empty( $args['label_force_left'] ) ) {
290
+				if (!empty($args['label_force_left'])) {
291 291
 					$wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
292
-					$label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
292
+					$label = str_replace(array("form-check-label", "custom-control-label"), "", self::label($label_args, 'cb'));
293 293
 				}
294
-				$output     = self::wrap( array(
294
+				$output = self::wrap(array(
295 295
 					'content' => $output,
296 296
 					'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
297
-				) );
297
+				));
298 298
 
299
-				if ( $args['label_type'] == 'horizontal' ) {
300
-					$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
299
+				if ($args['label_type'] == 'horizontal') {
300
+					$input_col = AUI_Component_Helper::get_column_class($args['label_col'], 'input');
301 301
 					$output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
302 302
 				}
303
-			} elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
303
+			} elseif ($type == 'password' && $args['password_toggle'] && !$args['input_group_right']) {
304 304
 
305 305
 
306 306
 				// allow password field to toggle view
@@ -314,70 +314,70 @@  discard block
 block discarded – undo
314 314
 			}
315 315
 
316 316
 			// input group wraps
317
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
318
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
317
+			if ($args['input_group_left'] || $args['input_group_right']) {
318
+				$w100 = strpos($args['class'], 'w-100') !== false ? ' w-100' : '';
319 319
 				$group_size = $size == 'lg' ? ' input-group-lg' : '';
320 320
 				$group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
321 321
 
322
-				if ( $args['input_group_left'] ) {
323
-					$output = self::wrap( array(
322
+				if ($args['input_group_left']) {
323
+					$output = self::wrap(array(
324 324
 						'content'                 => $output,
325 325
 						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
326 326
 						'input_group_left'        => $args['input_group_left'],
327 327
 						'input_group_left_inside' => $args['input_group_left_inside']
328
-					) );
328
+					));
329 329
 				}
330
-				if ( $args['input_group_right'] ) {
331
-					$output = self::wrap( array(
330
+				if ($args['input_group_right']) {
331
+					$output = self::wrap(array(
332 332
 						'content'                  => $output,
333 333
 						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
334 334
 						'input_group_right'        => $args['input_group_right'],
335 335
 						'input_group_right_inside' => $args['input_group_right_inside']
336
-					) );
336
+					));
337 337
 				}
338 338
 
339 339
 			}
340 340
 
341
-			if ( ! $label_after ) {
341
+			if (!$label_after) {
342 342
 				$output .= $help_text;
343 343
 			}
344 344
 
345 345
 
346
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
347
-				$output = self::wrap( array(
346
+			if ($args['label_type'] == 'horizontal' && $type != 'checkbox') {
347
+				$output = self::wrap(array(
348 348
 					'content' => $output,
349
-					'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
350
-				) );
349
+					'class'   => AUI_Component_Helper::get_column_class($args['label_col'], 'input')
350
+				));
351 351
 			}
352 352
 
353
-			if ( ! $label_after ) {
353
+			if (!$label_after) {
354 354
 				$output = $label . $output;
355 355
 			}
356 356
 
357 357
 			// wrap
358
-			if ( ! $args['no_wrap'] ) {
359
-				if ( ! empty( $args['form_group_class'] ) ) {
360
-					$fg_class = esc_attr( $args['form_group_class'] );
361
-				}else{
358
+			if (!$args['no_wrap']) {
359
+				if (!empty($args['form_group_class'])) {
360
+					$fg_class = esc_attr($args['form_group_class']);
361
+				} else {
362 362
 					$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
363 363
 				}
364 364
 				$form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
365 365
 				$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
366
-				$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
367
-				$output           = self::wrap( array(
366
+				$wrap_class       = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
367
+				$output           = self::wrap(array(
368 368
 					'content'         => $output,
369 369
 					'class'           => $wrap_class,
370 370
 					'element_require' => $args['element_require'],
371 371
 					'argument_id'     => $args['id'],
372 372
 					'wrap_attributes' => $args['wrap_attributes'],
373
-				) );
373
+				));
374 374
 			}
375 375
 		}
376 376
 
377 377
 		return $output;
378 378
 	}
379 379
 
380
-	public static function label( $args = array(), $type = '' ) {
380
+	public static function label($args = array(), $type = '') {
381 381
 		global $aui_bs5;
382 382
 
383 383
 		$defaults = array(
@@ -391,23 +391,23 @@  discard block
 block discarded – undo
391 391
 		/**
392 392
 		 * Parse incoming $args into an array and merge it with $defaults
393 393
 		 */
394
-		$args   = wp_parse_args( $args, $defaults );
394
+		$args   = wp_parse_args($args, $defaults);
395 395
 		$output = '';
396 396
 
397
-		if ( $args['title'] ) {
397
+		if ($args['title']) {
398 398
 			// maybe hide labels //@todo set a global option for visibility class
399
-			if ( $type == 'file' || $type == 'checkbox' || $type == 'radio' || ! empty( $args['label_type'] ) ) {
399
+			if ($type == 'file' || $type == 'checkbox' || $type == 'radio' || !empty($args['label_type'])) {
400 400
 				$class = $args['class'];
401 401
 			} else {
402
-				$class = 'sr-only ' . ( $aui_bs5 ? 'visually-hidden ' : '' ) . $args['class'];
402
+				$class = 'sr-only ' . ($aui_bs5 ? 'visually-hidden ' : '') . $args['class'];
403 403
 			}
404 404
 
405 405
 			// maybe horizontal
406
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
407
-				$class .= ' ' . AUI_Component_Helper::get_column_class( $args['label_col'], 'label' ) . ' col-form-label ' . $type;
406
+			if ($args['label_type'] == 'horizontal' && $type != 'checkbox') {
407
+				$class .= ' ' . AUI_Component_Helper::get_column_class($args['label_col'], 'label') . ' col-form-label ' . $type;
408 408
 			}
409 409
 
410
-			if ( $aui_bs5 ) {
410
+			if ($aui_bs5) {
411 411
 				$class .= ' form-label';
412 412
 			}
413 413
 
@@ -415,20 +415,20 @@  discard block
 block discarded – undo
415 415
 			$output .= '<label';
416 416
 
417 417
 			// for
418
-			if ( ! empty( $args['for'] ) ) {
419
-				$output .= ' for="' . esc_attr( $args['for'] ) . '"';
418
+			if (!empty($args['for'])) {
419
+				$output .= ' for="' . esc_attr($args['for']) . '"';
420 420
 			}
421 421
 
422 422
 			// class
423
-			$class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
423
+			$class = $class ? AUI_Component_Helper::esc_classes($class) : '';
424 424
 			$output .= $class != "" ? ' class="' . $class . '"' : '';
425 425
 
426 426
 			// close
427 427
 			$output .= '>';
428 428
 
429 429
 			// title, don't escape fully as can contain html
430
-			if ( ! empty( $args['title'] ) ) {
431
-				$output .= wp_kses_post( $args['title'] );
430
+			if (!empty($args['title'])) {
431
+				$output .= wp_kses_post($args['title']);
432 432
 			}
433 433
 
434 434
 			// close wrap
@@ -445,7 +445,7 @@  discard block
 block discarded – undo
445 445
 	 *
446 446
 	 * @return string
447 447
 	 */
448
-	public static function wrap( $args = array() ) {
448
+	public static function wrap($args = array()) {
449 449
 		global $aui_bs5;
450 450
 		$defaults = array(
451 451
 			'type'                     => 'div',
@@ -463,31 +463,31 @@  discard block
 block discarded – undo
463 463
 		/**
464 464
 		 * Parse incoming $args into an array and merge it with $defaults
465 465
 		 */
466
-		$args   = wp_parse_args( $args, $defaults );
466
+		$args   = wp_parse_args($args, $defaults);
467 467
 		$output = '';
468
-		if ( $args['type'] ) {
468
+		if ($args['type']) {
469 469
 
470 470
 			// open
471
-			$output .= '<' . sanitize_html_class( $args['type'] );
471
+			$output .= '<' . sanitize_html_class($args['type']);
472 472
 
473 473
 			// element require
474
-			if ( ! empty( $args['element_require'] ) ) {
475
-				$output .= AUI_Component_Helper::element_require( $args['element_require'] );
474
+			if (!empty($args['element_require'])) {
475
+				$output .= AUI_Component_Helper::element_require($args['element_require']);
476 476
 				$args['class'] .= " aui-conditional-field";
477 477
 			}
478 478
 
479 479
 			// argument_id
480
-			if ( ! empty( $args['argument_id'] ) ) {
481
-				$output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
480
+			if (!empty($args['argument_id'])) {
481
+				$output .= ' data-argument="' . esc_attr($args['argument_id']) . '"';
482 482
 			}
483 483
 
484 484
 			// class
485
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
485
+			$class = !empty($args['class']) ? AUI_Component_Helper::esc_classes($args['class']) : '';
486 486
 			$output .= ' class="' . $class . '" ';
487 487
 
488 488
 			// Attributes
489
-			if ( ! empty( $args['wrap_attributes'] ) ) {
490
-				$output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
489
+			if (!empty($args['wrap_attributes'])) {
490
+				$output .= AUI_Component_Helper::extra_attributes($args['wrap_attributes']);
491 491
 			}
492 492
 
493 493
 			// close wrap
@@ -495,9 +495,9 @@  discard block
 block discarded – undo
495 495
 
496 496
 
497 497
 			// Input group left
498
-			if ( ! empty( $args['input_group_left'] ) ) {
499
-				$position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
500
-				$input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
498
+			if (!empty($args['input_group_left'])) {
499
+				$position_class   = !empty($args['input_group_left_inside']) ? 'position-absolute h-100' : '';
500
+				$input_group_left = strpos($args['input_group_left'], '<') !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
501 501
 				$output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
502 502
 //				$output .= '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
503 503
 			}
@@ -506,16 +506,16 @@  discard block
 block discarded – undo
506 506
 			$output .= $args['content'];
507 507
 
508 508
 			// Input group right
509
-			if ( ! empty( $args['input_group_right'] ) ) {
510
-				$position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
511
-				$input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
512
-				$output .= $aui_bs5 ? str_replace( 'input-group-text','input-group-text top-0 end-0', $input_group_right ) : '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
509
+			if (!empty($args['input_group_right'])) {
510
+				$position_class    = !empty($args['input_group_right_inside']) ? 'position-absolute h-100' : '';
511
+				$input_group_right = strpos($args['input_group_right'], '<') !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
512
+				$output .= $aui_bs5 ? str_replace('input-group-text', 'input-group-text top-0 end-0', $input_group_right) : '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
513 513
 //				$output .= '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
514 514
 			}
515 515
 
516 516
 
517 517
 			// close wrap
518
-			$output .= '</' . sanitize_html_class( $args['type'] ) . '>';
518
+			$output .= '</' . sanitize_html_class($args['type']) . '>';
519 519
 
520 520
 
521 521
 		} else {
@@ -532,7 +532,7 @@  discard block
 block discarded – undo
532 532
 	 *
533 533
 	 * @return string The rendered component.
534 534
 	 */
535
-	public static function textarea( $args = array() ) {
535
+	public static function textarea($args = array()) {
536 536
 		global $aui_bs5;
537 537
 
538 538
 		$defaults = array(
@@ -572,7 +572,7 @@  discard block
 block discarded – undo
572 572
 		/**
573 573
 		 * Parse incoming $args into an array and merge it with $defaults
574 574
 		 */
575
-		$args   = wp_parse_args( $args, $defaults );
575
+		$args   = wp_parse_args($args, $defaults);
576 576
 		$output = '';
577 577
 		$label = '';
578 578
 
@@ -580,21 +580,21 @@  discard block
 block discarded – undo
580 580
 		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
581 581
 
582 582
 		// floating labels don't work with wysiwyg so set it as top
583
-		if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
583
+		if ($args['label_type'] == 'floating' && !empty($args['wysiwyg'])) {
584 584
 			$args['label_type'] = 'top';
585 585
 		}
586 586
 
587 587
 		$label_after = $args['label_after'];
588 588
 
589 589
 		// floating labels need label after
590
-		if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
590
+		if ($args['label_type'] == 'floating' && empty($args['wysiwyg'])) {
591 591
 			$label_after         = true;
592 592
 			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
593 593
 		}
594 594
 
595 595
 		// label
596
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
597
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
596
+		if (!empty($args['label']) && is_array($args['label'])) {
597
+		} elseif (!empty($args['label']) && !$label_after) {
598 598
 			$label_args = array(
599 599
 				'title'      => $args['label'],
600 600
 				'for'        => $args['id'],
@@ -602,34 +602,34 @@  discard block
 block discarded – undo
602 602
 				'label_type' => $args['label_type'],
603 603
 				'label_col'  => $args['label_col']
604 604
 			);
605
-			$label .= self::label( $label_args );
605
+			$label .= self::label($label_args);
606 606
 		}
607 607
 
608 608
 		// maybe horizontal label
609
-		if ( $args['label_type'] == 'horizontal' ) {
610
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
609
+		if ($args['label_type'] == 'horizontal') {
610
+			$input_col = AUI_Component_Helper::get_column_class($args['label_col'], 'input');
611 611
 			$label .= '<div class="' . $input_col . '">';
612 612
 		}
613 613
 
614
-		if ( ! empty( $args['wysiwyg'] ) ) {
614
+		if (!empty($args['wysiwyg'])) {
615 615
 			ob_start();
616 616
 			$content   = $args['value'];
617
-			$editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
617
+			$editor_id = !empty($args['id']) ? sanitize_html_class($args['id']) : 'wp_editor';
618 618
 			$settings  = array(
619
-				'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
619
+				'textarea_rows' => !empty(absint($args['rows'])) ? absint($args['rows']) : 4,
620 620
 				'quicktags'     => false,
621 621
 				'media_buttons' => false,
622 622
 				'editor_class'  => 'form-control',
623
-				'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
623
+				'textarea_name' => !empty($args['name']) ? sanitize_html_class($args['name']) : sanitize_html_class($args['id']),
624 624
 				'teeny'         => true,
625 625
 			);
626 626
 
627 627
 			// maybe set settings if array
628
-			if ( is_array( $args['wysiwyg'] ) ) {
629
-				$settings = wp_parse_args( $args['wysiwyg'], $settings );
628
+			if (is_array($args['wysiwyg'])) {
629
+				$settings = wp_parse_args($args['wysiwyg'], $settings);
630 630
 			}
631 631
 
632
-			wp_editor( $content, $editor_id, $settings );
632
+			wp_editor($content, $editor_id, $settings);
633 633
 			$output .= ob_get_clean();
634 634
 		} else {
635 635
 
@@ -637,65 +637,65 @@  discard block
 block discarded – undo
637 637
 			$output .= '<textarea ';
638 638
 
639 639
 			// name
640
-			if ( ! empty( $args['name'] ) ) {
641
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
640
+			if (!empty($args['name'])) {
641
+				$output .= ' name="' . esc_attr($args['name']) . '" ';
642 642
 			}
643 643
 
644 644
 			// id
645
-			if ( ! empty( $args['id'] ) ) {
646
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
645
+			if (!empty($args['id'])) {
646
+				$output .= ' id="' . sanitize_html_class($args['id']) . '" ';
647 647
 			}
648 648
 
649 649
 			// placeholder
650
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
651
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
650
+			if (isset($args['placeholder']) && '' != $args['placeholder']) {
651
+				$output .= ' placeholder="' . esc_attr($args['placeholder']) . '" ';
652 652
 			}
653 653
 
654 654
 			// title
655
-			if ( ! empty( $args['title'] ) ) {
656
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
655
+			if (!empty($args['title'])) {
656
+				$output .= ' title="' . esc_attr($args['title']) . '" ';
657 657
 			}
658 658
 
659 659
 			// validation text
660
-			if ( ! empty( $args['validation_text'] ) ) {
661
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
660
+			if (!empty($args['validation_text'])) {
661
+				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr(addslashes($args['validation_text'])) . '\')" ';
662 662
 				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
663 663
 			}
664 664
 
665 665
 			// validation_pattern
666
-			if ( ! empty( $args['validation_pattern'] ) ) {
667
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
666
+			if (!empty($args['validation_pattern'])) {
667
+				$output .= ' pattern="' . esc_attr($args['validation_pattern']) . '" ';
668 668
 			}
669 669
 
670 670
 			// required
671
-			if ( ! empty( $args['required'] ) ) {
671
+			if (!empty($args['required'])) {
672 672
 				$output .= ' required ';
673 673
 			}
674 674
 
675 675
 			// rows
676
-			if ( ! empty( $args['rows'] ) ) {
677
-				$output .= ' rows="' . absint( $args['rows'] ) . '" ';
676
+			if (!empty($args['rows'])) {
677
+				$output .= ' rows="' . absint($args['rows']) . '" ';
678 678
 			}
679 679
 
680 680
 
681 681
 			// class
682
-			$class = ! empty( $args['class'] ) ? $args['class'] : '';
682
+			$class = !empty($args['class']) ? $args['class'] : '';
683 683
 			$output .= ' class="form-control ' . $class . '" ';
684 684
 
685 685
 			// extra attributes
686
-			if ( ! empty( $args['extra_attributes'] ) ) {
687
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
686
+			if (!empty($args['extra_attributes'])) {
687
+				$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
688 688
 			}
689 689
 
690 690
 			// close tag
691 691
 			$output .= '>';
692 692
 
693 693
 			// value
694
-			if ( ! empty( $args['value'] ) ) {
695
-				if ( ! empty( $args['allow_tags'] ) ) {
696
-					$output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
694
+			if (!empty($args['value'])) {
695
+				if (!empty($args['allow_tags'])) {
696
+					$output .= AUI_Component_Helper::sanitize_html_field($args['value'], $args); // Sanitize HTML.
697 697
 				} else {
698
-					$output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
698
+					$output .= AUI_Component_Helper::sanitize_textarea_field($args['value']);
699 699
 				}
700 700
 			}
701 701
 
@@ -704,23 +704,23 @@  discard block
 block discarded – undo
704 704
 
705 705
 
706 706
 			// input group wraps
707
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
708
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
709
-				if ( $args['input_group_left'] ) {
710
-					$output = self::wrap( array(
707
+			if ($args['input_group_left'] || $args['input_group_right']) {
708
+				$w100 = strpos($args['class'], 'w-100') !== false ? ' w-100' : '';
709
+				if ($args['input_group_left']) {
710
+					$output = self::wrap(array(
711 711
 						'content'                 => $output,
712 712
 						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
713 713
 						'input_group_left'        => $args['input_group_left'],
714 714
 						'input_group_left_inside' => $args['input_group_left_inside']
715
-					) );
715
+					));
716 716
 				}
717
-				if ( $args['input_group_right'] ) {
718
-					$output = self::wrap( array(
717
+				if ($args['input_group_right']) {
718
+					$output = self::wrap(array(
719 719
 						'content'                  => $output,
720 720
 						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
721 721
 						'input_group_right'        => $args['input_group_right'],
722 722
 						'input_group_right_inside' => $args['input_group_right_inside']
723
-					) );
723
+					));
724 724
 				}
725 725
 
726 726
 			}
@@ -728,7 +728,7 @@  discard block
 block discarded – undo
728 728
 
729 729
 		}
730 730
 
731
-		if ( ! empty( $args['label'] ) && $label_after ) {
731
+		if (!empty($args['label']) && $label_after) {
732 732
 			$label_args = array(
733 733
 				'title'      => $args['label'],
734 734
 				'for'        => $args['id'],
@@ -736,41 +736,41 @@  discard block
 block discarded – undo
736 736
 				'label_type' => $args['label_type'],
737 737
 				'label_col'  => $args['label_col']
738 738
 			);
739
-			$output .= self::label( $label_args );
739
+			$output .= self::label($label_args);
740 740
 		}
741 741
 
742 742
 		// help text
743
-		if ( ! empty( $args['help_text'] ) ) {
744
-			$output .= AUI_Component_Helper::help_text( $args['help_text'] );
743
+		if (!empty($args['help_text'])) {
744
+			$output .= AUI_Component_Helper::help_text($args['help_text']);
745 745
 		}
746 746
 
747
-		if ( ! $label_after ) {
747
+		if (!$label_after) {
748 748
 			$output = $label . $output;
749 749
 		}
750 750
 
751 751
 		// maybe horizontal label
752
-		if ( $args['label_type'] == 'horizontal' ) {
752
+		if ($args['label_type'] == 'horizontal') {
753 753
 			$output .= '</div>';
754 754
 		}
755 755
 
756 756
 
757 757
 		// wrap
758
-		if ( ! $args['no_wrap'] ) {
759
-			if ( ! empty( $args['form_group_class'] ) ) {
760
-				$fg_class = esc_attr( $args['form_group_class'] );
761
-			}else{
758
+		if (!$args['no_wrap']) {
759
+			if (!empty($args['form_group_class'])) {
760
+				$fg_class = esc_attr($args['form_group_class']);
761
+			} else {
762 762
 				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
763 763
 			}
764 764
 			$form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
765 765
 			$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
766
-			$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
767
-			$output           = self::wrap( array(
766
+			$wrap_class       = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
767
+			$output           = self::wrap(array(
768 768
 				'content'         => $output,
769 769
 				'class'           => $wrap_class,
770 770
 				'element_require' => $args['element_require'],
771 771
 				'argument_id'     => $args['id'],
772 772
 				'wrap_attributes' => $args['wrap_attributes'],
773
-			) );
773
+			));
774 774
 		}
775 775
 
776 776
 
@@ -784,7 +784,7 @@  discard block
 block discarded – undo
784 784
 	 *
785 785
 	 * @return string The rendered component.
786 786
 	 */
787
-	public static function select( $args = array() ) {
787
+	public static function select($args = array()) {
788 788
 		global $aui_bs5, $aui_has_select2, $aui_select2_enqueued;
789 789
 
790 790
 		$defaults = array(
@@ -824,11 +824,11 @@  discard block
 block discarded – undo
824 824
 		/**
825 825
 		 * Parse incoming $args into an array and merge it with $defaults
826 826
 		 */
827
-		$args   = wp_parse_args( $args, $defaults );
827
+		$args   = wp_parse_args($args, $defaults);
828 828
 		$output = '';
829 829
 
830 830
 		// for now lets hide floating labels
831
-		if ( $args['label_type'] == 'floating' ) {
831
+		if ($args['label_type'] == 'floating') {
832 832
 			$args['label_type'] = 'hidden';
833 833
 		}
834 834
 
@@ -839,26 +839,26 @@  discard block
 block discarded – undo
839 839
 		$label_after = $args['label_after'];
840 840
 
841 841
 		// floating labels need label after
842
-		if ( $args['label_type'] == 'floating' ) {
842
+		if ($args['label_type'] == 'floating') {
843 843
 			$label_after         = true;
844 844
 			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
845 845
 		}
846 846
 
847 847
 		// Maybe setup select2
848 848
 		$is_select2 = false;
849
-		if ( ! empty( $args['select2'] ) ) {
849
+		if (!empty($args['select2'])) {
850 850
 			$args['class'] .= ' aui-select2';
851 851
 			$is_select2 = true;
852
-		} elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
852
+		} elseif (strpos($args['class'], 'aui-select2') !== false) {
853 853
 			$is_select2 = true;
854 854
 		}
855 855
 
856
-		if ( $is_select2 && ! $aui_has_select2 ) {
856
+		if ($is_select2 && !$aui_has_select2) {
857 857
 			$aui_has_select2 = true;
858
-			$conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
858
+			$conditional_select2 = apply_filters('aui_is_conditional_select2', true);
859 859
 
860 860
 			// Enqueue the script,
861
-			if ( empty( $aui_select2_enqueued ) && $conditional_select2 === true ) {
861
+			if (empty($aui_select2_enqueued) && $conditional_select2 === true) {
862 862
 				$aui_select2_enqueued = true;
863 863
 
864 864
 				$aui_settings = AyeCode_UI_Settings::instance();
@@ -867,75 +867,75 @@  discard block
 block discarded – undo
867 867
 		}
868 868
 
869 869
 		// select2 tags
870
-		if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
870
+		if (!empty($args['select2']) && $args['select2'] === 'tags') { // triple equals needed here for some reason
871 871
 			$args['data-tags']             = 'true';
872 872
 			$args['data-token-separators'] = "[',']";
873 873
 			$args['multiple']              = true;
874 874
 		}
875 875
 
876 876
 		// select2 placeholder
877
-		if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
878
-			$args['data-placeholder'] = esc_attr( $args['placeholder'] );
879
-			$args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
877
+		if ($is_select2 && isset($args['placeholder']) && '' != $args['placeholder'] && empty($args['data-placeholder'])) {
878
+			$args['data-placeholder'] = esc_attr($args['placeholder']);
879
+			$args['data-allow-clear'] = isset($args['data-allow-clear']) ? (bool) $args['data-allow-clear'] : true;
880 880
 		}
881 881
 
882 882
 		// Set hidden input to save empty value for multiselect.
883
-		if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
884
-			$output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
883
+		if (!empty($args['multiple']) && !empty($args['name'])) {
884
+			$output .= '<input type="hidden" ' . AUI_Component_Helper::name($args['name']) . ' value="" data-ignore-rule/>';
885 885
 		}
886 886
 
887 887
 		// open/type
888 888
 		$output .= '<select ';
889 889
 
890 890
 		// style
891
-		if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
891
+		if ($is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
892 892
 			$output .= " style='width:100%;' ";
893 893
 		}
894 894
 
895 895
 		// element require
896
-		if ( ! empty( $args['element_require'] ) ) {
897
-			$output .= AUI_Component_Helper::element_require( $args['element_require'] );
896
+		if (!empty($args['element_require'])) {
897
+			$output .= AUI_Component_Helper::element_require($args['element_require']);
898 898
 			$args['class'] .= " aui-conditional-field";
899 899
 		}
900 900
 
901 901
 		// class
902
-		$class = ! empty( $args['class'] ) ? $args['class'] : '';
902
+		$class = !empty($args['class']) ? $args['class'] : '';
903 903
 		$select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
904
-		$output .= AUI_Component_Helper::class_attr( $select_class . $class );
904
+		$output .= AUI_Component_Helper::class_attr($select_class . $class);
905 905
 
906 906
 		// name
907
-		if ( ! empty( $args['name'] ) ) {
908
-			$output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
907
+		if (!empty($args['name'])) {
908
+			$output .= AUI_Component_Helper::name($args['name'], $args['multiple']);
909 909
 		}
910 910
 
911 911
 		// id
912
-		if ( ! empty( $args['id'] ) ) {
913
-			$output .= AUI_Component_Helper::id( $args['id'] );
912
+		if (!empty($args['id'])) {
913
+			$output .= AUI_Component_Helper::id($args['id']);
914 914
 		}
915 915
 
916 916
 		// title
917
-		if ( ! empty( $args['title'] ) ) {
918
-			$output .= AUI_Component_Helper::title( $args['title'] );
917
+		if (!empty($args['title'])) {
918
+			$output .= AUI_Component_Helper::title($args['title']);
919 919
 		}
920 920
 
921 921
 		// data-attributes
922
-		$output .= AUI_Component_Helper::data_attributes( $args );
922
+		$output .= AUI_Component_Helper::data_attributes($args);
923 923
 
924 924
 		// aria-attributes
925
-		$output .= AUI_Component_Helper::aria_attributes( $args );
925
+		$output .= AUI_Component_Helper::aria_attributes($args);
926 926
 
927 927
 		// extra attributes
928
-		if ( ! empty( $args['extra_attributes'] ) ) {
929
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
928
+		if (!empty($args['extra_attributes'])) {
929
+			$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
930 930
 		}
931 931
 
932 932
 		// required
933
-		if ( ! empty( $args['required'] ) ) {
933
+		if (!empty($args['required'])) {
934 934
 			$output .= ' required';
935 935
 		}
936 936
 
937 937
 		// multiple
938
-		if ( ! empty( $args['multiple'] ) ) {
938
+		if (!empty($args['multiple'])) {
939 939
 			$output .= ' multiple';
940 940
 		}
941 941
 
@@ -943,50 +943,50 @@  discard block
 block discarded – undo
943 943
 		$output .= '>';
944 944
 
945 945
 		// placeholder
946
-		if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
947
-			$output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
948
-		} elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
946
+		if (isset($args['placeholder']) && '' != $args['placeholder'] && !$is_select2) {
947
+			$output .= '<option value="" disabled selected hidden>' . esc_attr($args['placeholder']) . '</option>';
948
+		} elseif ($is_select2 && !empty($args['placeholder'])) {
949 949
 			$output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
950 950
 		}
951 951
 
952 952
 		// Options
953
-		if ( ! empty( $args['options'] ) ) {
953
+		if (!empty($args['options'])) {
954 954
 
955
-			if ( ! is_array( $args['options'] ) ) {
955
+			if (!is_array($args['options'])) {
956 956
 				$output .= $args['options']; // not the preferred way but an option
957 957
 			} else {
958
-				foreach ( $args['options'] as $val => $name ) {
958
+				foreach ($args['options'] as $val => $name) {
959 959
 					$selected = '';
960
-					if ( is_array( $name ) ) {
961
-						if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
962
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
960
+					if (is_array($name)) {
961
+						if (isset($name['optgroup']) && ($name['optgroup'] == 'start' || $name['optgroup'] == 'end')) {
962
+							$option_label = isset($name['label']) ? $name['label'] : '';
963 963
 
964
-							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
964
+							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr($option_label) . '">' : '</optgroup>';
965 965
 						} else {
966
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
967
-							$option_value = isset( $name['value'] ) ? $name['value'] : '';
968
-							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
969
-							if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
970
-								$selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
971
-							} elseif ( ! empty( $args['value'] ) ) {
972
-								$selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
973
-							} elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
974
-								$selected = selected( $option_value, $args['value'], false );
966
+							$option_label = isset($name['label']) ? $name['label'] : '';
967
+							$option_value = isset($name['value']) ? $name['value'] : '';
968
+							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes($name['extra_attributes']) : '';
969
+							if (!empty($args['multiple']) && !empty($args['value']) && is_array($args['value'])) {
970
+								$selected = in_array($option_value, stripslashes_deep($args['value'])) ? "selected" : "";
971
+							} elseif (!empty($args['value'])) {
972
+								$selected = selected($option_value, stripslashes_deep($args['value']), false);
973
+							} elseif (empty($args['value']) && $args['value'] === $option_value) {
974
+								$selected = selected($option_value, $args['value'], false);
975 975
 							}
976 976
 
977
-							$output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
977
+							$output .= '<option value="' . esc_attr($option_value) . '" ' . $selected . ' ' . $extra_attributes . '>' . $option_label . '</option>';
978 978
 						}
979 979
 					} else {
980
-						if ( ! empty( $args['value'] ) ) {
981
-							if ( is_array( $args['value'] ) ) {
982
-								$selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
983
-							} elseif ( ! empty( $args['value'] ) ) {
984
-								$selected = selected( $args['value'], $val, false );
980
+						if (!empty($args['value'])) {
981
+							if (is_array($args['value'])) {
982
+								$selected = in_array($val, $args['value']) ? 'selected="selected"' : '';
983
+							} elseif (!empty($args['value'])) {
984
+								$selected = selected($args['value'], $val, false);
985 985
 							}
986
-						} elseif ( $args['value'] === $val ) {
987
-							$selected = selected( $args['value'], $val, false );
986
+						} elseif ($args['value'] === $val) {
987
+							$selected = selected($args['value'], $val, false);
988 988
 						}
989
-						$output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
989
+						$output .= '<option value="' . esc_attr($val) . '" ' . $selected . '>' . esc_attr($name) . '</option>';
990 990
 					}
991 991
 				}
992 992
 			}
@@ -999,8 +999,8 @@  discard block
 block discarded – undo
999 999
 		$label = '';
1000 1000
 		$help_text = '';
1001 1001
 		// label
1002
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1003
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
1002
+		if (!empty($args['label']) && is_array($args['label'])) {
1003
+		} elseif (!empty($args['label']) && !$label_after) {
1004 1004
 			$label_args = array(
1005 1005
 				'title'      => $args['label'],
1006 1006
 				'for'        => $args['id'],
@@ -1008,49 +1008,49 @@  discard block
 block discarded – undo
1008 1008
 				'label_type' => $args['label_type'],
1009 1009
 				'label_col'  => $args['label_col']
1010 1010
 			);
1011
-			$label = self::label( $label_args );
1011
+			$label = self::label($label_args);
1012 1012
 		}
1013 1013
 
1014 1014
 		// help text
1015
-		if ( ! empty( $args['help_text'] ) ) {
1016
-			$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1015
+		if (!empty($args['help_text'])) {
1016
+			$help_text = AUI_Component_Helper::help_text($args['help_text']);
1017 1017
 		}
1018 1018
 
1019 1019
 		// input group wraps
1020
-		if ( $args['input_group_left'] || $args['input_group_right'] ) {
1021
-			$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1022
-			if ( $args['input_group_left'] ) {
1023
-				$output = self::wrap( array(
1020
+		if ($args['input_group_left'] || $args['input_group_right']) {
1021
+			$w100 = strpos($args['class'], 'w-100') !== false ? ' w-100' : '';
1022
+			if ($args['input_group_left']) {
1023
+				$output = self::wrap(array(
1024 1024
 					'content'                 => $output,
1025 1025
 					'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1026 1026
 					'input_group_left'        => $args['input_group_left'],
1027 1027
 					'input_group_left_inside' => $args['input_group_left_inside']
1028
-				) );
1028
+				));
1029 1029
 			}
1030
-			if ( $args['input_group_right'] ) {
1031
-				$output = self::wrap( array(
1030
+			if ($args['input_group_right']) {
1031
+				$output = self::wrap(array(
1032 1032
 					'content'                  => $output,
1033 1033
 					'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1034 1034
 					'input_group_right'        => $args['input_group_right'],
1035 1035
 					'input_group_right_inside' => $args['input_group_right_inside']
1036
-				) );
1036
+				));
1037 1037
 			}
1038 1038
 
1039 1039
 		}
1040 1040
 
1041
-		if ( ! $label_after ) {
1041
+		if (!$label_after) {
1042 1042
 			$output .= $help_text;
1043 1043
 		}
1044 1044
 
1045 1045
 
1046
-		if ( $args['label_type'] == 'horizontal' ) {
1047
-			$output = self::wrap( array(
1046
+		if ($args['label_type'] == 'horizontal') {
1047
+			$output = self::wrap(array(
1048 1048
 				'content' => $output,
1049
-				'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1050
-			) );
1049
+				'class'   => AUI_Component_Helper::get_column_class($args['label_col'], 'input')
1050
+			));
1051 1051
 		}
1052 1052
 
1053
-		if ( ! $label_after ) {
1053
+		if (!$label_after) {
1054 1054
 			$output = $label . $output;
1055 1055
 		}
1056 1056
 
@@ -1061,21 +1061,21 @@  discard block
 block discarded – undo
1061 1061
 
1062 1062
 
1063 1063
 		// wrap
1064
-		if ( ! $args['no_wrap'] ) {
1065
-			if ( ! empty( $args['form_group_class'] ) ) {
1066
-				$fg_class = esc_attr( $args['form_group_class'] );
1067
-			}else{
1064
+		if (!$args['no_wrap']) {
1065
+			if (!empty($args['form_group_class'])) {
1066
+				$fg_class = esc_attr($args['form_group_class']);
1067
+			} else {
1068 1068
 				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1069 1069
 			}
1070 1070
 			$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1071
-			$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1072
-			$output     = self::wrap( array(
1071
+			$wrap_class = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1072
+			$output     = self::wrap(array(
1073 1073
 				'content'         => $output,
1074 1074
 				'class'           => $wrap_class,
1075 1075
 				'element_require' => $args['element_require'],
1076 1076
 				'argument_id'     => $args['id'],
1077 1077
 				'wrap_attributes' => $args['wrap_attributes'],
1078
-			) );
1078
+			));
1079 1079
 		}
1080 1080
 
1081 1081
 
@@ -1089,7 +1089,7 @@  discard block
 block discarded – undo
1089 1089
 	 *
1090 1090
 	 * @return string The rendered component.
1091 1091
 	 */
1092
-	public static function radio( $args = array() ) {
1092
+	public static function radio($args = array()) {
1093 1093
 		global $aui_bs5;
1094 1094
 
1095 1095
 		$defaults = array(
@@ -1121,10 +1121,10 @@  discard block
 block discarded – undo
1121 1121
 		/**
1122 1122
 		 * Parse incoming $args into an array and merge it with $defaults
1123 1123
 		 */
1124
-		$args = wp_parse_args( $args, $defaults );
1124
+		$args = wp_parse_args($args, $defaults);
1125 1125
 
1126 1126
 		// for now lets use horizontal for floating
1127
-		if ( $args['label_type'] == 'floating' ) {
1127
+		if ($args['label_type'] == 'floating') {
1128 1128
 			$args['label_type'] = 'horizontal';
1129 1129
 		}
1130 1130
 
@@ -1135,59 +1135,59 @@  discard block
 block discarded – undo
1135 1135
 			'label_col'  => $args['label_col']
1136 1136
 		);
1137 1137
 
1138
-		if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1138
+		if ($args['label_type'] == 'top' || $args['label_type'] == 'hidden') {
1139 1139
 			$label_args['class'] .= 'd-block ';
1140 1140
 
1141
-			if ( $args['label_type'] == 'hidden' ) {
1142
-				$label_args['class'] .= 'sr-only ' . ( $aui_bs5 ? 'visually-hidden ' : '' );
1141
+			if ($args['label_type'] == 'hidden') {
1142
+				$label_args['class'] .= 'sr-only ' . ($aui_bs5 ? 'visually-hidden ' : '');
1143 1143
 			}
1144 1144
 		}
1145 1145
 
1146 1146
 		$output = '';
1147 1147
 
1148 1148
 		// label before
1149
-		if ( ! empty( $args['label'] ) ) {
1150
-			$output .= self::label( $label_args, 'radio' );
1149
+		if (!empty($args['label'])) {
1150
+			$output .= self::label($label_args, 'radio');
1151 1151
 		}
1152 1152
 
1153 1153
 		// maybe horizontal label
1154
-		if ( $args['label_type'] == 'horizontal' ) {
1155
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1154
+		if ($args['label_type'] == 'horizontal') {
1155
+			$input_col = AUI_Component_Helper::get_column_class($args['label_col'], 'input');
1156 1156
 			$output .= '<div class="' . $input_col . '">';
1157 1157
 		}
1158 1158
 
1159
-		if ( ! empty( $args['options'] ) ) {
1159
+		if (!empty($args['options'])) {
1160 1160
 			$count = 0;
1161
-			foreach ( $args['options'] as $value => $label ) {
1161
+			foreach ($args['options'] as $value => $label) {
1162 1162
 				$option_args            = $args;
1163 1163
 				$option_args['value']   = $value;
1164 1164
 				$option_args['label']   = $label;
1165 1165
 				$option_args['checked'] = $value == $args['value'] ? true : false;
1166
-				$output .= self::radio_option( $option_args, $count );
1167
-				$count ++;
1166
+				$output .= self::radio_option($option_args, $count);
1167
+				$count++;
1168 1168
 			}
1169 1169
 		}
1170 1170
 
1171 1171
 		// help text
1172
-		$help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1172
+		$help_text = !empty($args['help_text']) ? AUI_Component_Helper::help_text($args['help_text']) : '';
1173 1173
 		$output .= $help_text;
1174 1174
 
1175 1175
 		// maybe horizontal label
1176
-		if ( $args['label_type'] == 'horizontal' ) {
1176
+		if ($args['label_type'] == 'horizontal') {
1177 1177
 			$output .= '</div>';
1178 1178
 		}
1179 1179
 
1180 1180
 		// wrap
1181 1181
 		$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1182 1182
 		$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1183
-		$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1184
-		$output     = self::wrap( array(
1183
+		$wrap_class = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1184
+		$output     = self::wrap(array(
1185 1185
 			'content'         => $output,
1186 1186
 			'class'           => $wrap_class,
1187 1187
 			'element_require' => $args['element_require'],
1188 1188
 			'argument_id'     => $args['id'],
1189 1189
 			'wrap_attributes' => $args['wrap_attributes'],
1190
-		) );
1190
+		));
1191 1191
 
1192 1192
 
1193 1193
 		return $output;
@@ -1200,7 +1200,7 @@  discard block
 block discarded – undo
1200 1200
 	 *
1201 1201
 	 * @return string The rendered component.
1202 1202
 	 */
1203
-	public static function radio_option( $args = array(), $count = '' ) {
1203
+	public static function radio_option($args = array(), $count = '') {
1204 1204
 		$defaults = array(
1205 1205
 			'class'            => '',
1206 1206
 			'id'               => '',
@@ -1218,7 +1218,7 @@  discard block
 block discarded – undo
1218 1218
 		/**
1219 1219
 		 * Parse incoming $args into an array and merge it with $defaults
1220 1220
 		 */
1221
-		$args = wp_parse_args( $args, $defaults );
1221
+		$args = wp_parse_args($args, $defaults);
1222 1222
 
1223 1223
 		$output = '';
1224 1224
 
@@ -1229,43 +1229,43 @@  discard block
 block discarded – undo
1229 1229
 		$output .= ' class="form-check-input" ';
1230 1230
 
1231 1231
 		// name
1232
-		if ( ! empty( $args['name'] ) ) {
1233
-			$output .= AUI_Component_Helper::name( $args['name'] );
1232
+		if (!empty($args['name'])) {
1233
+			$output .= AUI_Component_Helper::name($args['name']);
1234 1234
 		}
1235 1235
 
1236 1236
 		// id
1237
-		if ( ! empty( $args['id'] ) ) {
1238
-			$output .= AUI_Component_Helper::id( $args['id'] . $count );
1237
+		if (!empty($args['id'])) {
1238
+			$output .= AUI_Component_Helper::id($args['id'] . $count);
1239 1239
 		}
1240 1240
 
1241 1241
 		// title
1242
-		if ( ! empty( $args['title'] ) ) {
1243
-			$output .= AUI_Component_Helper::title( $args['title'] );
1242
+		if (!empty($args['title'])) {
1243
+			$output .= AUI_Component_Helper::title($args['title']);
1244 1244
 		}
1245 1245
 
1246 1246
 		// value
1247
-		if ( isset( $args['value'] ) ) {
1248
-			$output .= AUI_Component_Helper::value( $args['value'] );
1247
+		if (isset($args['value'])) {
1248
+			$output .= AUI_Component_Helper::value($args['value']);
1249 1249
 		}
1250 1250
 
1251 1251
 		// checked, for radio and checkboxes
1252
-		if ( $args['checked'] ) {
1252
+		if ($args['checked']) {
1253 1253
 			$output .= ' checked ';
1254 1254
 		}
1255 1255
 
1256 1256
 		// data-attributes
1257
-		$output .= AUI_Component_Helper::data_attributes( $args );
1257
+		$output .= AUI_Component_Helper::data_attributes($args);
1258 1258
 
1259 1259
 		// aria-attributes
1260
-		$output .= AUI_Component_Helper::aria_attributes( $args );
1260
+		$output .= AUI_Component_Helper::aria_attributes($args);
1261 1261
 
1262 1262
 		// extra attributes
1263
-		if ( ! empty( $args['extra_attributes'] ) ) {
1264
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1263
+		if (!empty($args['extra_attributes'])) {
1264
+			$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
1265 1265
 		}
1266 1266
 
1267 1267
 		// required
1268
-		if ( ! empty( $args['required'] ) ) {
1268
+		if (!empty($args['required'])) {
1269 1269
 			$output .= ' required';
1270 1270
 		}
1271 1271
 
@@ -1273,38 +1273,38 @@  discard block
 block discarded – undo
1273 1273
 		$output .= '>';
1274 1274
 
1275 1275
 		// label
1276
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1277
-		} elseif ( ! empty( $args['label'] ) ) {
1278
-			$output .= self::label( array(
1276
+		if (!empty($args['label']) && is_array($args['label'])) {
1277
+		} elseif (!empty($args['label'])) {
1278
+			$output .= self::label(array(
1279 1279
 				'title' => $args['label'],
1280 1280
 				'for'   => $args['id'] . $count,
1281 1281
 				'class' => 'form-check-label'
1282
-			), 'radio' );
1282
+			), 'radio');
1283 1283
 		}
1284 1284
 
1285 1285
 		// wrap
1286
-		if ( ! $args['no_wrap'] ) {
1286
+		if (!$args['no_wrap']) {
1287 1287
 			$wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1288 1288
 
1289 1289
 			// Unique wrap class
1290 1290
 			$uniq_class = 'fwrap';
1291
-			if ( ! empty( $args['name'] ) ) {
1291
+			if (!empty($args['name'])) {
1292 1292
 				$uniq_class .= '-' . $args['name'];
1293
-			} else if ( ! empty( $args['id'] ) ) {
1293
+			} else if (!empty($args['id'])) {
1294 1294
 				$uniq_class .= '-' . $args['id'];
1295 1295
 			}
1296 1296
 
1297
-			if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1297
+			if (isset($args['value']) || $args['value'] !== "") {
1298 1298
 				$uniq_class .= '-' . $args['value'];
1299 1299
 			} else {
1300 1300
 				$uniq_class .= '-' . $count;
1301 1301
 			}
1302
-			$wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1302
+			$wrap_class .= ' ' . sanitize_html_class($uniq_class);
1303 1303
 
1304
-			$output = self::wrap( array(
1304
+			$output = self::wrap(array(
1305 1305
 				'content' => $output,
1306 1306
 				'class'   => $wrap_class
1307
-			) );
1307
+			));
1308 1308
 		}
1309 1309
 
1310 1310
 		return $output;
Please login to merge, or discard this patch.
Switch Indentation   +1230 added lines, -1230 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1
-<?php
1
+    <?php
2 2
 
3
-if ( ! defined( 'ABSPATH' ) ) {
4
-	exit; // Exit if accessed directly
3
+    if ( ! defined( 'ABSPATH' ) ) {
4
+	    exit; // Exit if accessed directly
5 5
 }
6 6
 
7 7
 /**
@@ -9,1305 +9,1305 @@  discard block
 block discarded – undo
9 9
  *
10 10
  * @since 1.0.0
11 11
  */
12
-class AUI_Component_Input {
12
+    class AUI_Component_Input {
13 13
 
14
-	/**
14
+	    /**
15 15
 	 * Build the component.
16 16
 	 *
17 17
 	 * @param array $args
18 18
 	 *
19 19
 	 * @return string The rendered component.
20 20
 	 */
21
-	public static function input( $args = array() ) {
22
-		global $aui_bs5;
23
-
24
-		$defaults = array(
25
-			'type'                     => 'text',
26
-			'name'                     => '',
27
-			'class'                    => '',
28
-			'wrap_class'               => '',
29
-			'id'                       => '',
30
-			'placeholder'              => '',
31
-			'title'                    => '',
32
-			'value'                    => '',
33
-			'required'                 => false,
34
-			'size'                     => '', // sm, lg, small, large
35
-			'clear_icon'               => '', // true will show a clear icon, can't be used with input_group_right
36
-			'with_hidden'              => false, // Append hidden field for single checkbox.
37
-			'label'                    => '',
38
-			'label_after'              => false,
39
-			'label_class'              => '',
40
-			'label_col'                => '2',
41
-			'label_type'               => '', // top, horizontal, empty = hidden
42
-			'label_force_left'         => false, // used to force checkbox label left when using horizontal
43
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
44
-			'help_text'                => '',
45
-			'validation_text'          => '',
46
-			'validation_pattern'       => '',
47
-			'no_wrap'                  => false,
48
-			'input_group_right'        => '',
49
-			'input_group_left'         => '',
50
-			'input_group_right_inside' => false,
51
-			// forces the input group inside the input
52
-			'input_group_left_inside'  => false,
53
-			// forces the input group inside the input
54
-			'form_group_class'         => '',
55
-			'step'                     => '',
56
-			'switch'                   => false,
57
-			// to show checkbox as a switch
58
-			'checked'                  => false,
59
-			// set a checkbox or radio as selected
60
-			'password_toggle'          => true,
61
-			// toggle view/hide password
62
-			'element_require'          => '',
63
-			// [%element_id%] == "1"
64
-			'extra_attributes'         => array(),
65
-			// an array of extra attributes
66
-			'wrap_attributes'          => array()
67
-		);
68
-
69
-		/**
21
+	    public static function input( $args = array() ) {
22
+		    global $aui_bs5;
23
+
24
+		    $defaults = array(
25
+			    'type'                     => 'text',
26
+			    'name'                     => '',
27
+			    'class'                    => '',
28
+			    'wrap_class'               => '',
29
+			    'id'                       => '',
30
+			    'placeholder'              => '',
31
+			    'title'                    => '',
32
+			    'value'                    => '',
33
+			    'required'                 => false,
34
+			    'size'                     => '', // sm, lg, small, large
35
+			    'clear_icon'               => '', // true will show a clear icon, can't be used with input_group_right
36
+			    'with_hidden'              => false, // Append hidden field for single checkbox.
37
+			    'label'                    => '',
38
+			    'label_after'              => false,
39
+			    'label_class'              => '',
40
+			    'label_col'                => '2',
41
+			    'label_type'               => '', // top, horizontal, empty = hidden
42
+			    'label_force_left'         => false, // used to force checkbox label left when using horizontal
43
+			    // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
44
+			    'help_text'                => '',
45
+			    'validation_text'          => '',
46
+			    'validation_pattern'       => '',
47
+			    'no_wrap'                  => false,
48
+			    'input_group_right'        => '',
49
+			    'input_group_left'         => '',
50
+			    'input_group_right_inside' => false,
51
+			    // forces the input group inside the input
52
+			    'input_group_left_inside'  => false,
53
+			    // forces the input group inside the input
54
+			    'form_group_class'         => '',
55
+			    'step'                     => '',
56
+			    'switch'                   => false,
57
+			    // to show checkbox as a switch
58
+			    'checked'                  => false,
59
+			    // set a checkbox or radio as selected
60
+			    'password_toggle'          => true,
61
+			    // toggle view/hide password
62
+			    'element_require'          => '',
63
+			    // [%element_id%] == "1"
64
+			    'extra_attributes'         => array(),
65
+			    // an array of extra attributes
66
+			    'wrap_attributes'          => array()
67
+		    );
68
+
69
+		    /**
70 70
 		 * Parse incoming $args into an array and merge it with $defaults
71 71
 		 */
72
-		$args   = wp_parse_args( $args, $defaults );
73
-		$output = '';
74
-		if ( ! empty( $args['type'] ) ) {
75
-			// hidden label option needs to be empty
76
-			$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
77
-
78
-			$type = sanitize_html_class( $args['type'] );
79
-
80
-			$help_text   = '';
81
-			$label       = '';
82
-			$label_after = $args['label_after'];
83
-			$label_args  = array(
84
-				'title'      => $args['label'],
85
-				'for'        => $args['id'],
86
-				'class'      => $args['label_class'] . " ",
87
-				'label_type' => $args['label_type'],
88
-				'label_col'  => $args['label_col']
89
-			);
90
-
91
-			// floating labels need label after
92
-			if ( $args['label_type'] == 'floating' && $type != 'checkbox' ) {
93
-				$label_after         = true;
94
-				$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
95
-			}
96
-
97
-			// size
98
-			$size = '';
99
-			if ( $args['size'] == 'lg' || $args['size'] == 'large' ) {
100
-				$size = 'lg';
101
-				$args['class'] .= ' form-control-lg';
102
-			}elseif ( $args['size'] == 'sm' || $args['size'] == 'small' ) {
103
-				$size = 'sm';
104
-				$args['class'] .= ' form-control-sm';
105
-			}
106
-
107
-			// clear function
108
-			$clear_function = 'jQuery(this).parent().parent().find(\'input\').val(\'\');';
109
-
110
-			// Some special sauce for files
111
-			if ( $type == 'file' ) {
112
-				$label_after = true; // if type file we need the label after
113
-				$args['class'] .= ' custom-file-input ';
114
-			} elseif ( $type == 'checkbox' ) {
115
-				$label_after = true; // if type file we need the label after
116
-				$args['class'] .= $aui_bs5 ? ' form-check-input c-pointer ' : ' custom-control-input c-pointer ';
117
-			} elseif ( $type == 'datepicker' || $type == 'timepicker' ) {
118
-				$orig_type = $type;
119
-				$type = 'text';
120
-				$args['class'] .= ' bg-initial '; // @todo not sure why we have this?
121
-				$clear_function .= "jQuery(this).parent().parent().find('input[name=\'" . esc_attr( $args['name'] ) . "\']').trigger('change');";
122
-
123
-				$args['extra_attributes']['data-aui-init'] = 'flatpickr';
124
-
125
-				// Disable native datetime inputs.
126
-				$disable_mobile_attr = isset( $args['extra_attributes']['data-disable-mobile'] ) ? $args['extra_attributes']['data-disable-mobile'] : 'true';
127
-				$disable_mobile_attr = apply_filters( 'aui_flatpickr_disable_disable_mobile_attr', $disable_mobile_attr, $args );
128
-
129
-				$args['extra_attributes']['data-disable-mobile'] = $disable_mobile_attr;
130
-
131
-				// set a way to clear field if empty
132
-				if ( $args['input_group_right'] === '' && $args['clear_icon'] !== false ) {
133
-					$args['input_group_right_inside'] = true;
134
-					$args['clear_icon'] = true;
135
-				}
136
-
137
-				// enqueue the script
138
-				$aui_settings = AyeCode_UI_Settings::instance();
139
-				$aui_settings->enqueue_flatpickr();
140
-			} else if ( $type == 'iconpicker' ) {
141
-				$type = 'text';
142
-
143
-				// Validate FA icon.
144
-				$args['value'] = AUI_Component_Helper::sanitize_fa_icon( $args['value'], $args );
145
-
146
-				$args['extra_attributes']['data-aui-init'] = 'iconpicker';
147
-				$args['extra_attributes']['data-placement'] = 'bottomRight';
148
-
149
-				$args['input_group_right'] = '<span class="input-group-addon input-group-text c-pointer"></span>';
150
-
151
-				// Enqueue the script
152
-				$aui_settings = AyeCode_UI_Settings::instance();
153
-				$aui_settings->enqueue_iconpicker();
154
-			}
155
-
156
-			if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
157
-				$output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
158
-			}
159
-
160
-			// allow clear icon
161
-			if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
162
-				$font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
163
-				$args['input_group_right_inside'] = true;
164
-				$align_class = $aui_bs5 ? ' h-100 py-0' : '';
165
-				$args['input_group_right'] = '<span class="input-group-text aui-clear-input c-pointer bg-initial border-0 px-2 d-none ' . $align_class . '" onclick="' . $clear_function . '"><span style="font-size: ' . $font_size . 'rem" aria-hidden="true" class="' . ( $aui_bs5 ? 'btn-close' : 'close' ) . '">' . ( $aui_bs5 ? '' : '&times;' ) . '</span></span>';
166
-			}
167
-
168
-			// open/type
169
-			$output .= '<input type="' . $type . '" ';
170
-
171
-			// name
172
-			if ( ! empty( $args['name'] ) ) {
173
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
174
-			}
175
-
176
-			// id
177
-			if ( ! empty( $args['id'] ) ) {
178
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
179
-			}
180
-
181
-			// placeholder
182
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
183
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
184
-			}
185
-
186
-			// title
187
-			if ( ! empty( $args['title'] ) ) {
188
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
189
-			}
190
-
191
-			// value
192
-			if ( ! empty( $args['value'] ) ) {
193
-				$output .= AUI_Component_Helper::value( $args['value'] );
194
-			}
195
-
196
-			// checked, for radio and checkboxes
197
-			if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
198
-				$output .= ' checked ';
199
-			}
200
-
201
-			// validation text
202
-			if ( ! empty( $args['validation_text'] ) ) {
203
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
204
-				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
205
-			}
206
-
207
-			// validation_pattern
208
-			if ( ! empty( $args['validation_pattern'] ) ) {
209
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
210
-			}
211
-
212
-			// step (for numbers)
213
-			if ( ! empty( $args['step'] ) ) {
214
-				$output .= ' step="' . $args['step'] . '" ';
215
-			}
216
-
217
-			// required
218
-			if ( ! empty( $args['required'] ) ) {
219
-				$output .= ' required ';
220
-			}
221
-
222
-			// class
223
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
224
-			$output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
225
-
226
-			// data-attributes
227
-			$output .= AUI_Component_Helper::data_attributes( $args );
228
-
229
-			// extra attributes
230
-			if ( ! empty( $args['extra_attributes'] ) ) {
231
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
232
-			}
233
-
234
-			// close
235
-			$output .= '>';
236
-
237
-			// help text
238
-			if ( ! empty( $args['help_text'] ) ) {
239
-				$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
240
-			}
241
-
242
-			// label
243
-			if ( ! empty( $args['label'] ) ) {
244
-				$label_base_class = '';
245
-				if ( $type == 'file' ) {
246
-					$label_base_class = ' custom-file-label';
247
-				} elseif ( $type == 'checkbox' ) {
248
-					if ( ! empty( $args['label_force_left'] ) ) {
249
-						$label_args['title'] = wp_kses_post( $args['help_text'] );
250
-						$help_text = '';
251
-						//$label_args['class'] .= ' d-inline ';
252
-						$args['wrap_class'] .= ' align-items-center ';
253
-					}else{
254
-
255
-					}
256
-
257
-					$label_base_class = $aui_bs5 ? ' form-check-label' : ' custom-control-label';
258
-				}
259
-				$label_args['class'] .= $label_base_class;
260
-				$temp_label_args = $label_args;
261
-				if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
262
-				$label = self::label( $temp_label_args, $type );
263
-			}
264
-
265
-
266
-
267
-
268
-			// set help text in the correct position
269
-			if ( $label_after ) {
270
-				$output .= $label . $help_text;
271
-			}
272
-
273
-			// some input types need a separate wrap
274
-			if ( $type == 'file' ) {
275
-				$output = self::wrap( array(
276
-					'content' => $output,
277
-					'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
278
-				) );
279
-			} elseif ( $type == 'checkbox' ) {
280
-
281
-				$label_args['title'] = $args['label'];
282
-				$label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
283
-				$label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
284
-				$switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
285
-				if ( $aui_bs5 ) {
286
-					$wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
287
-				}else{
288
-					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
289
-				}
290
-				if ( ! empty( $args['label_force_left'] ) ) {
291
-					$wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
292
-					$label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
293
-				}
294
-				$output     = self::wrap( array(
295
-					'content' => $output,
296
-					'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
297
-				) );
298
-
299
-				if ( $args['label_type'] == 'horizontal' ) {
300
-					$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
301
-					$output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
302
-				}
303
-			} elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
304
-
305
-
306
-				// allow password field to toggle view
307
-				$args['input_group_right'] = '<span class="input-group-text c-pointer px-3" 
72
+		    $args   = wp_parse_args( $args, $defaults );
73
+		    $output = '';
74
+		    if ( ! empty( $args['type'] ) ) {
75
+			    // hidden label option needs to be empty
76
+			    $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
77
+
78
+			    $type = sanitize_html_class( $args['type'] );
79
+
80
+			    $help_text   = '';
81
+			    $label       = '';
82
+			    $label_after = $args['label_after'];
83
+			    $label_args  = array(
84
+				    'title'      => $args['label'],
85
+				    'for'        => $args['id'],
86
+				    'class'      => $args['label_class'] . " ",
87
+				    'label_type' => $args['label_type'],
88
+				    'label_col'  => $args['label_col']
89
+			    );
90
+
91
+			    // floating labels need label after
92
+			    if ( $args['label_type'] == 'floating' && $type != 'checkbox' ) {
93
+				    $label_after         = true;
94
+				    $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
95
+			    }
96
+
97
+			    // size
98
+			    $size = '';
99
+			    if ( $args['size'] == 'lg' || $args['size'] == 'large' ) {
100
+				    $size = 'lg';
101
+				    $args['class'] .= ' form-control-lg';
102
+			    }elseif ( $args['size'] == 'sm' || $args['size'] == 'small' ) {
103
+				    $size = 'sm';
104
+				    $args['class'] .= ' form-control-sm';
105
+			    }
106
+
107
+			    // clear function
108
+			    $clear_function = 'jQuery(this).parent().parent().find(\'input\').val(\'\');';
109
+
110
+			    // Some special sauce for files
111
+			    if ( $type == 'file' ) {
112
+				    $label_after = true; // if type file we need the label after
113
+				    $args['class'] .= ' custom-file-input ';
114
+			    } elseif ( $type == 'checkbox' ) {
115
+				    $label_after = true; // if type file we need the label after
116
+				    $args['class'] .= $aui_bs5 ? ' form-check-input c-pointer ' : ' custom-control-input c-pointer ';
117
+			    } elseif ( $type == 'datepicker' || $type == 'timepicker' ) {
118
+				    $orig_type = $type;
119
+				    $type = 'text';
120
+				    $args['class'] .= ' bg-initial '; // @todo not sure why we have this?
121
+				    $clear_function .= "jQuery(this).parent().parent().find('input[name=\'" . esc_attr( $args['name'] ) . "\']').trigger('change');";
122
+
123
+				    $args['extra_attributes']['data-aui-init'] = 'flatpickr';
124
+
125
+				    // Disable native datetime inputs.
126
+				    $disable_mobile_attr = isset( $args['extra_attributes']['data-disable-mobile'] ) ? $args['extra_attributes']['data-disable-mobile'] : 'true';
127
+				    $disable_mobile_attr = apply_filters( 'aui_flatpickr_disable_disable_mobile_attr', $disable_mobile_attr, $args );
128
+
129
+				    $args['extra_attributes']['data-disable-mobile'] = $disable_mobile_attr;
130
+
131
+				    // set a way to clear field if empty
132
+				    if ( $args['input_group_right'] === '' && $args['clear_icon'] !== false ) {
133
+					    $args['input_group_right_inside'] = true;
134
+					    $args['clear_icon'] = true;
135
+				    }
136
+
137
+				    // enqueue the script
138
+				    $aui_settings = AyeCode_UI_Settings::instance();
139
+				    $aui_settings->enqueue_flatpickr();
140
+			    } else if ( $type == 'iconpicker' ) {
141
+				    $type = 'text';
142
+
143
+				    // Validate FA icon.
144
+				    $args['value'] = AUI_Component_Helper::sanitize_fa_icon( $args['value'], $args );
145
+
146
+				    $args['extra_attributes']['data-aui-init'] = 'iconpicker';
147
+				    $args['extra_attributes']['data-placement'] = 'bottomRight';
148
+
149
+				    $args['input_group_right'] = '<span class="input-group-addon input-group-text c-pointer"></span>';
150
+
151
+				    // Enqueue the script
152
+				    $aui_settings = AyeCode_UI_Settings::instance();
153
+				    $aui_settings->enqueue_iconpicker();
154
+			    }
155
+
156
+			    if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
157
+				    $output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
158
+			    }
159
+
160
+			    // allow clear icon
161
+			    if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
162
+				    $font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
163
+				    $args['input_group_right_inside'] = true;
164
+				    $align_class = $aui_bs5 ? ' h-100 py-0' : '';
165
+				    $args['input_group_right'] = '<span class="input-group-text aui-clear-input c-pointer bg-initial border-0 px-2 d-none ' . $align_class . '" onclick="' . $clear_function . '"><span style="font-size: ' . $font_size . 'rem" aria-hidden="true" class="' . ( $aui_bs5 ? 'btn-close' : 'close' ) . '">' . ( $aui_bs5 ? '' : '&times;' ) . '</span></span>';
166
+			    }
167
+
168
+			    // open/type
169
+			    $output .= '<input type="' . $type . '" ';
170
+
171
+			    // name
172
+			    if ( ! empty( $args['name'] ) ) {
173
+				    $output .= ' name="' . esc_attr( $args['name'] ) . '" ';
174
+			    }
175
+
176
+			    // id
177
+			    if ( ! empty( $args['id'] ) ) {
178
+				    $output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
179
+			    }
180
+
181
+			    // placeholder
182
+			    if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
183
+				    $output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
184
+			    }
185
+
186
+			    // title
187
+			    if ( ! empty( $args['title'] ) ) {
188
+				    $output .= ' title="' . esc_attr( $args['title'] ) . '" ';
189
+			    }
190
+
191
+			    // value
192
+			    if ( ! empty( $args['value'] ) ) {
193
+				    $output .= AUI_Component_Helper::value( $args['value'] );
194
+			    }
195
+
196
+			    // checked, for radio and checkboxes
197
+			    if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
198
+				    $output .= ' checked ';
199
+			    }
200
+
201
+			    // validation text
202
+			    if ( ! empty( $args['validation_text'] ) ) {
203
+				    $output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
204
+				    $output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
205
+			    }
206
+
207
+			    // validation_pattern
208
+			    if ( ! empty( $args['validation_pattern'] ) ) {
209
+				    $output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
210
+			    }
211
+
212
+			    // step (for numbers)
213
+			    if ( ! empty( $args['step'] ) ) {
214
+				    $output .= ' step="' . $args['step'] . '" ';
215
+			    }
216
+
217
+			    // required
218
+			    if ( ! empty( $args['required'] ) ) {
219
+				    $output .= ' required ';
220
+			    }
221
+
222
+			    // class
223
+			    $class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
224
+			    $output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
225
+
226
+			    // data-attributes
227
+			    $output .= AUI_Component_Helper::data_attributes( $args );
228
+
229
+			    // extra attributes
230
+			    if ( ! empty( $args['extra_attributes'] ) ) {
231
+				    $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
232
+			    }
233
+
234
+			    // close
235
+			    $output .= '>';
236
+
237
+			    // help text
238
+			    if ( ! empty( $args['help_text'] ) ) {
239
+				    $help_text = AUI_Component_Helper::help_text( $args['help_text'] );
240
+			    }
241
+
242
+			    // label
243
+			    if ( ! empty( $args['label'] ) ) {
244
+				    $label_base_class = '';
245
+				    if ( $type == 'file' ) {
246
+					    $label_base_class = ' custom-file-label';
247
+				    } elseif ( $type == 'checkbox' ) {
248
+					    if ( ! empty( $args['label_force_left'] ) ) {
249
+						    $label_args['title'] = wp_kses_post( $args['help_text'] );
250
+						    $help_text = '';
251
+						    //$label_args['class'] .= ' d-inline ';
252
+						    $args['wrap_class'] .= ' align-items-center ';
253
+					    }else{
254
+
255
+					    }
256
+
257
+					    $label_base_class = $aui_bs5 ? ' form-check-label' : ' custom-control-label';
258
+				    }
259
+				    $label_args['class'] .= $label_base_class;
260
+				    $temp_label_args = $label_args;
261
+				    if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
262
+				    $label = self::label( $temp_label_args, $type );
263
+			    }
264
+
265
+
266
+
267
+
268
+			    // set help text in the correct position
269
+			    if ( $label_after ) {
270
+				    $output .= $label . $help_text;
271
+			    }
272
+
273
+			    // some input types need a separate wrap
274
+			    if ( $type == 'file' ) {
275
+				    $output = self::wrap( array(
276
+					    'content' => $output,
277
+					    'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
278
+				    ) );
279
+			    } elseif ( $type == 'checkbox' ) {
280
+
281
+				    $label_args['title'] = $args['label'];
282
+				    $label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
283
+				    $label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
284
+				    $switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
285
+				    if ( $aui_bs5 ) {
286
+					    $wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
287
+				    }else{
288
+					    $wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
289
+				    }
290
+				    if ( ! empty( $args['label_force_left'] ) ) {
291
+					    $wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
292
+					    $label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
293
+				    }
294
+				    $output     = self::wrap( array(
295
+					    'content' => $output,
296
+					    'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
297
+				    ) );
298
+
299
+				    if ( $args['label_type'] == 'horizontal' ) {
300
+					    $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
301
+					    $output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
302
+				    }
303
+			    } elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
304
+
305
+
306
+				    // allow password field to toggle view
307
+				    $args['input_group_right'] = '<span class="input-group-text c-pointer px-3" 
308 308
 onclick="var $el = jQuery(this).find(\'i\');$el.toggleClass(\'fa-eye fa-eye-slash\');
309 309
 var $eli = jQuery(this).parent().parent().find(\'input\');
310 310
 if($el.hasClass(\'fa-eye\'))
311 311
 {$eli.attr(\'type\',\'text\');}
312 312
 else{$eli.attr(\'type\',\'password\');}"
313 313
 ><i class="far fa-fw fa-eye-slash"></i></span>';
314
-			}
315
-
316
-			// input group wraps
317
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
318
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
319
-				$group_size = $size == 'lg' ? ' input-group-lg' : '';
320
-				$group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
321
-
322
-				if ( $args['input_group_left'] ) {
323
-					$output = self::wrap( array(
324
-						'content'                 => $output,
325
-						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
326
-						'input_group_left'        => $args['input_group_left'],
327
-						'input_group_left_inside' => $args['input_group_left_inside']
328
-					) );
329
-				}
330
-				if ( $args['input_group_right'] ) {
331
-					$output = self::wrap( array(
332
-						'content'                  => $output,
333
-						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
334
-						'input_group_right'        => $args['input_group_right'],
335
-						'input_group_right_inside' => $args['input_group_right_inside']
336
-					) );
337
-				}
338
-
339
-			}
340
-
341
-			if ( ! $label_after ) {
342
-				$output .= $help_text;
343
-			}
344
-
345
-
346
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
347
-				$output = self::wrap( array(
348
-					'content' => $output,
349
-					'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
350
-				) );
351
-			}
352
-
353
-			if ( ! $label_after ) {
354
-				$output = $label . $output;
355
-			}
356
-
357
-			// wrap
358
-			if ( ! $args['no_wrap'] ) {
359
-				if ( ! empty( $args['form_group_class'] ) ) {
360
-					$fg_class = esc_attr( $args['form_group_class'] );
361
-				}else{
362
-					$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
363
-				}
364
-				$form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
365
-				$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
366
-				$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
367
-				$output           = self::wrap( array(
368
-					'content'         => $output,
369
-					'class'           => $wrap_class,
370
-					'element_require' => $args['element_require'],
371
-					'argument_id'     => $args['id'],
372
-					'wrap_attributes' => $args['wrap_attributes'],
373
-				) );
374
-			}
375
-		}
376
-
377
-		return $output;
378
-	}
379
-
380
-	public static function label( $args = array(), $type = '' ) {
381
-		global $aui_bs5;
382
-
383
-		$defaults = array(
384
-			'title'      => 'div',
385
-			'for'        => '',
386
-			'class'      => '',
387
-			'label_type' => '', // empty = hidden, top, horizontal
388
-			'label_col'  => '',
389
-		);
390
-
391
-		/**
314
+			    }
315
+
316
+			    // input group wraps
317
+			    if ( $args['input_group_left'] || $args['input_group_right'] ) {
318
+				    $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
319
+				    $group_size = $size == 'lg' ? ' input-group-lg' : '';
320
+				    $group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
321
+
322
+				    if ( $args['input_group_left'] ) {
323
+					    $output = self::wrap( array(
324
+						    'content'                 => $output,
325
+						    'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
326
+						    'input_group_left'        => $args['input_group_left'],
327
+						    'input_group_left_inside' => $args['input_group_left_inside']
328
+					    ) );
329
+				    }
330
+				    if ( $args['input_group_right'] ) {
331
+					    $output = self::wrap( array(
332
+						    'content'                  => $output,
333
+						    'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
334
+						    'input_group_right'        => $args['input_group_right'],
335
+						    'input_group_right_inside' => $args['input_group_right_inside']
336
+					    ) );
337
+				    }
338
+
339
+			    }
340
+
341
+			    if ( ! $label_after ) {
342
+				    $output .= $help_text;
343
+			    }
344
+
345
+
346
+			    if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
347
+				    $output = self::wrap( array(
348
+					    'content' => $output,
349
+					    'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
350
+				    ) );
351
+			    }
352
+
353
+			    if ( ! $label_after ) {
354
+				    $output = $label . $output;
355
+			    }
356
+
357
+			    // wrap
358
+			    if ( ! $args['no_wrap'] ) {
359
+				    if ( ! empty( $args['form_group_class'] ) ) {
360
+					    $fg_class = esc_attr( $args['form_group_class'] );
361
+				    }else{
362
+					    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
363
+				    }
364
+				    $form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
365
+				    $wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
366
+				    $wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
367
+				    $output           = self::wrap( array(
368
+					    'content'         => $output,
369
+					    'class'           => $wrap_class,
370
+					    'element_require' => $args['element_require'],
371
+					    'argument_id'     => $args['id'],
372
+					    'wrap_attributes' => $args['wrap_attributes'],
373
+				    ) );
374
+			    }
375
+		    }
376
+
377
+		    return $output;
378
+	    }
379
+
380
+	    public static function label( $args = array(), $type = '' ) {
381
+		    global $aui_bs5;
382
+
383
+		    $defaults = array(
384
+			    'title'      => 'div',
385
+			    'for'        => '',
386
+			    'class'      => '',
387
+			    'label_type' => '', // empty = hidden, top, horizontal
388
+			    'label_col'  => '',
389
+		    );
390
+
391
+		    /**
392 392
 		 * Parse incoming $args into an array and merge it with $defaults
393 393
 		 */
394
-		$args   = wp_parse_args( $args, $defaults );
395
-		$output = '';
396
-
397
-		if ( $args['title'] ) {
398
-			// maybe hide labels //@todo set a global option for visibility class
399
-			if ( $type == 'file' || $type == 'checkbox' || $type == 'radio' || ! empty( $args['label_type'] ) ) {
400
-				$class = $args['class'];
401
-			} else {
402
-				$class = 'sr-only ' . ( $aui_bs5 ? 'visually-hidden ' : '' ) . $args['class'];
403
-			}
404
-
405
-			// maybe horizontal
406
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
407
-				$class .= ' ' . AUI_Component_Helper::get_column_class( $args['label_col'], 'label' ) . ' col-form-label ' . $type;
408
-			}
409
-
410
-			if ( $aui_bs5 ) {
411
-				$class .= ' form-label';
412
-			}
413
-
414
-			// open
415
-			$output .= '<label';
416
-
417
-			// for
418
-			if ( ! empty( $args['for'] ) ) {
419
-				$output .= ' for="' . esc_attr( $args['for'] ) . '"';
420
-			}
421
-
422
-			// class
423
-			$class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
424
-			$output .= $class != "" ? ' class="' . $class . '"' : '';
425
-
426
-			// close
427
-			$output .= '>';
428
-
429
-			// title, don't escape fully as can contain html
430
-			if ( ! empty( $args['title'] ) ) {
431
-				$output .= wp_kses_post( $args['title'] );
432
-			}
433
-
434
-			// close wrap
435
-			$output .= '</label>';
436
-		}
437
-
438
-		return $output;
439
-	}
440
-
441
-	/**
394
+		    $args   = wp_parse_args( $args, $defaults );
395
+		    $output = '';
396
+
397
+		    if ( $args['title'] ) {
398
+			    // maybe hide labels //@todo set a global option for visibility class
399
+			    if ( $type == 'file' || $type == 'checkbox' || $type == 'radio' || ! empty( $args['label_type'] ) ) {
400
+				    $class = $args['class'];
401
+			    } else {
402
+				    $class = 'sr-only ' . ( $aui_bs5 ? 'visually-hidden ' : '' ) . $args['class'];
403
+			    }
404
+
405
+			    // maybe horizontal
406
+			    if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
407
+				    $class .= ' ' . AUI_Component_Helper::get_column_class( $args['label_col'], 'label' ) . ' col-form-label ' . $type;
408
+			    }
409
+
410
+			    if ( $aui_bs5 ) {
411
+				    $class .= ' form-label';
412
+			    }
413
+
414
+			    // open
415
+			    $output .= '<label';
416
+
417
+			    // for
418
+			    if ( ! empty( $args['for'] ) ) {
419
+				    $output .= ' for="' . esc_attr( $args['for'] ) . '"';
420
+			    }
421
+
422
+			    // class
423
+			    $class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
424
+			    $output .= $class != "" ? ' class="' . $class . '"' : '';
425
+
426
+			    // close
427
+			    $output .= '>';
428
+
429
+			    // title, don't escape fully as can contain html
430
+			    if ( ! empty( $args['title'] ) ) {
431
+				    $output .= wp_kses_post( $args['title'] );
432
+			    }
433
+
434
+			    // close wrap
435
+			    $output .= '</label>';
436
+		    }
437
+
438
+		    return $output;
439
+	    }
440
+
441
+	    /**
442 442
 	 * Wrap some content in a HTML wrapper.
443 443
 	 *
444 444
 	 * @param array $args
445 445
 	 *
446 446
 	 * @return string
447 447
 	 */
448
-	public static function wrap( $args = array() ) {
449
-		global $aui_bs5;
450
-		$defaults = array(
451
-			'type'                     => 'div',
452
-			'class'                    => $aui_bs5 ? 'mb-3' : 'form-group',
453
-			'content'                  => '',
454
-			'input_group_left'         => '',
455
-			'input_group_right'        => '',
456
-			'input_group_left_inside'  => false,
457
-			'input_group_right_inside' => false,
458
-			'element_require'          => '',
459
-			'argument_id'              => '',
460
-			'wrap_attributes'          => array()
461
-		);
462
-
463
-		/**
448
+	    public static function wrap( $args = array() ) {
449
+		    global $aui_bs5;
450
+		    $defaults = array(
451
+			    'type'                     => 'div',
452
+			    'class'                    => $aui_bs5 ? 'mb-3' : 'form-group',
453
+			    'content'                  => '',
454
+			    'input_group_left'         => '',
455
+			    'input_group_right'        => '',
456
+			    'input_group_left_inside'  => false,
457
+			    'input_group_right_inside' => false,
458
+			    'element_require'          => '',
459
+			    'argument_id'              => '',
460
+			    'wrap_attributes'          => array()
461
+		    );
462
+
463
+		    /**
464 464
 		 * Parse incoming $args into an array and merge it with $defaults
465 465
 		 */
466
-		$args   = wp_parse_args( $args, $defaults );
467
-		$output = '';
468
-		if ( $args['type'] ) {
466
+		    $args   = wp_parse_args( $args, $defaults );
467
+		    $output = '';
468
+		    if ( $args['type'] ) {
469 469
 
470
-			// open
471
-			$output .= '<' . sanitize_html_class( $args['type'] );
470
+			    // open
471
+			    $output .= '<' . sanitize_html_class( $args['type'] );
472 472
 
473
-			// element require
474
-			if ( ! empty( $args['element_require'] ) ) {
475
-				$output .= AUI_Component_Helper::element_require( $args['element_require'] );
476
-				$args['class'] .= " aui-conditional-field";
477
-			}
473
+			    // element require
474
+			    if ( ! empty( $args['element_require'] ) ) {
475
+				    $output .= AUI_Component_Helper::element_require( $args['element_require'] );
476
+				    $args['class'] .= " aui-conditional-field";
477
+			    }
478 478
 
479
-			// argument_id
480
-			if ( ! empty( $args['argument_id'] ) ) {
481
-				$output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
482
-			}
479
+			    // argument_id
480
+			    if ( ! empty( $args['argument_id'] ) ) {
481
+				    $output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
482
+			    }
483 483
 
484
-			// class
485
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
486
-			$output .= ' class="' . $class . '" ';
484
+			    // class
485
+			    $class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
486
+			    $output .= ' class="' . $class . '" ';
487 487
 
488
-			// Attributes
489
-			if ( ! empty( $args['wrap_attributes'] ) ) {
490
-				$output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
491
-			}
488
+			    // Attributes
489
+			    if ( ! empty( $args['wrap_attributes'] ) ) {
490
+				    $output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
491
+			    }
492 492
 
493
-			// close wrap
494
-			$output .= '>';
493
+			    // close wrap
494
+			    $output .= '>';
495 495
 
496 496
 
497
-			// Input group left
498
-			if ( ! empty( $args['input_group_left'] ) ) {
499
-				$position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
500
-				$input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
501
-				$output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
502
-//				$output .= '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
503
-			}
497
+			    // Input group left
498
+			    if ( ! empty( $args['input_group_left'] ) ) {
499
+				    $position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
500
+				    $input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
501
+				    $output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
502
+    //				$output .= '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
503
+			    }
504 504
 
505
-			// content
506
-			$output .= $args['content'];
505
+			    // content
506
+			    $output .= $args['content'];
507 507
 
508
-			// Input group right
509
-			if ( ! empty( $args['input_group_right'] ) ) {
510
-				$position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
511
-				$input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
512
-				$output .= $aui_bs5 ? str_replace( 'input-group-text','input-group-text top-0 end-0', $input_group_right ) : '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
513
-//				$output .= '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
514
-			}
508
+			    // Input group right
509
+			    if ( ! empty( $args['input_group_right'] ) ) {
510
+				    $position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
511
+				    $input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
512
+				    $output .= $aui_bs5 ? str_replace( 'input-group-text','input-group-text top-0 end-0', $input_group_right ) : '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
513
+    //				$output .= '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
514
+			    }
515 515
 
516 516
 
517
-			// close wrap
518
-			$output .= '</' . sanitize_html_class( $args['type'] ) . '>';
517
+			    // close wrap
518
+			    $output .= '</' . sanitize_html_class( $args['type'] ) . '>';
519 519
 
520 520
 
521
-		} else {
522
-			$output = $args['content'];
523
-		}
521
+		    } else {
522
+			    $output = $args['content'];
523
+		    }
524 524
 
525
-		return $output;
526
-	}
525
+		    return $output;
526
+	    }
527 527
 
528
-	/**
528
+	    /**
529 529
 	 * Build the component.
530 530
 	 *
531 531
 	 * @param array $args
532 532
 	 *
533 533
 	 * @return string The rendered component.
534 534
 	 */
535
-	public static function textarea( $args = array() ) {
536
-		global $aui_bs5;
537
-
538
-		$defaults = array(
539
-			'name'               => '',
540
-			'class'              => '',
541
-			'wrap_class'         => '',
542
-			'id'                 => '',
543
-			'placeholder'        => '',
544
-			'title'              => '',
545
-			'value'              => '',
546
-			'required'           => false,
547
-			'label'              => '',
548
-			'label_after'        => false,
549
-			'label_class'        => '',
550
-			'label_type'         => '',
551
-			'label_col'          => '',
552
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
553
-			'input_group_right'        => '',
554
-			'input_group_left'         => '',
555
-			'input_group_right_inside' => false,
556
-			'form_group_class'      => '',
557
-			'help_text'          => '',
558
-			'validation_text'    => '',
559
-			'validation_pattern' => '',
560
-			'no_wrap'            => false,
561
-			'rows'               => '',
562
-			'wysiwyg'            => false,
563
-			'allow_tags'         => false,
564
-			// Allow HTML tags
565
-			'element_require'    => '',
566
-			// [%element_id%] == "1"
567
-			'extra_attributes'   => array(),
568
-			// an array of extra attributes
569
-			'wrap_attributes'    => array(),
570
-		);
571
-
572
-		/**
535
+	    public static function textarea( $args = array() ) {
536
+		    global $aui_bs5;
537
+
538
+		    $defaults = array(
539
+			    'name'               => '',
540
+			    'class'              => '',
541
+			    'wrap_class'         => '',
542
+			    'id'                 => '',
543
+			    'placeholder'        => '',
544
+			    'title'              => '',
545
+			    'value'              => '',
546
+			    'required'           => false,
547
+			    'label'              => '',
548
+			    'label_after'        => false,
549
+			    'label_class'        => '',
550
+			    'label_type'         => '',
551
+			    'label_col'          => '',
552
+			    // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
553
+			    'input_group_right'        => '',
554
+			    'input_group_left'         => '',
555
+			    'input_group_right_inside' => false,
556
+			    'form_group_class'      => '',
557
+			    'help_text'          => '',
558
+			    'validation_text'    => '',
559
+			    'validation_pattern' => '',
560
+			    'no_wrap'            => false,
561
+			    'rows'               => '',
562
+			    'wysiwyg'            => false,
563
+			    'allow_tags'         => false,
564
+			    // Allow HTML tags
565
+			    'element_require'    => '',
566
+			    // [%element_id%] == "1"
567
+			    'extra_attributes'   => array(),
568
+			    // an array of extra attributes
569
+			    'wrap_attributes'    => array(),
570
+		    );
571
+
572
+		    /**
573 573
 		 * Parse incoming $args into an array and merge it with $defaults
574 574
 		 */
575
-		$args   = wp_parse_args( $args, $defaults );
576
-		$output = '';
577
-		$label = '';
578
-
579
-		// hidden label option needs to be empty
580
-		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
581
-
582
-		// floating labels don't work with wysiwyg so set it as top
583
-		if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
584
-			$args['label_type'] = 'top';
585
-		}
586
-
587
-		$label_after = $args['label_after'];
588
-
589
-		// floating labels need label after
590
-		if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
591
-			$label_after         = true;
592
-			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
593
-		}
594
-
595
-		// label
596
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
597
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
598
-			$label_args = array(
599
-				'title'      => $args['label'],
600
-				'for'        => $args['id'],
601
-				'class'      => $args['label_class'] . " ",
602
-				'label_type' => $args['label_type'],
603
-				'label_col'  => $args['label_col']
604
-			);
605
-			$label .= self::label( $label_args );
606
-		}
607
-
608
-		// maybe horizontal label
609
-		if ( $args['label_type'] == 'horizontal' ) {
610
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
611
-			$label .= '<div class="' . $input_col . '">';
612
-		}
613
-
614
-		if ( ! empty( $args['wysiwyg'] ) ) {
615
-			ob_start();
616
-			$content   = $args['value'];
617
-			$editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
618
-			$settings  = array(
619
-				'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
620
-				'quicktags'     => false,
621
-				'media_buttons' => false,
622
-				'editor_class'  => 'form-control',
623
-				'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
624
-				'teeny'         => true,
625
-			);
626
-
627
-			// maybe set settings if array
628
-			if ( is_array( $args['wysiwyg'] ) ) {
629
-				$settings = wp_parse_args( $args['wysiwyg'], $settings );
630
-			}
631
-
632
-			wp_editor( $content, $editor_id, $settings );
633
-			$output .= ob_get_clean();
634
-		} else {
635
-
636
-			// open
637
-			$output .= '<textarea ';
638
-
639
-			// name
640
-			if ( ! empty( $args['name'] ) ) {
641
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
642
-			}
643
-
644
-			// id
645
-			if ( ! empty( $args['id'] ) ) {
646
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
647
-			}
648
-
649
-			// placeholder
650
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
651
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
652
-			}
653
-
654
-			// title
655
-			if ( ! empty( $args['title'] ) ) {
656
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
657
-			}
658
-
659
-			// validation text
660
-			if ( ! empty( $args['validation_text'] ) ) {
661
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
662
-				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
663
-			}
664
-
665
-			// validation_pattern
666
-			if ( ! empty( $args['validation_pattern'] ) ) {
667
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
668
-			}
669
-
670
-			// required
671
-			if ( ! empty( $args['required'] ) ) {
672
-				$output .= ' required ';
673
-			}
674
-
675
-			// rows
676
-			if ( ! empty( $args['rows'] ) ) {
677
-				$output .= ' rows="' . absint( $args['rows'] ) . '" ';
678
-			}
679
-
680
-
681
-			// class
682
-			$class = ! empty( $args['class'] ) ? $args['class'] : '';
683
-			$output .= ' class="form-control ' . $class . '" ';
684
-
685
-			// extra attributes
686
-			if ( ! empty( $args['extra_attributes'] ) ) {
687
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
688
-			}
689
-
690
-			// close tag
691
-			$output .= '>';
692
-
693
-			// value
694
-			if ( ! empty( $args['value'] ) ) {
695
-				if ( ! empty( $args['allow_tags'] ) ) {
696
-					$output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
697
-				} else {
698
-					$output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
699
-				}
700
-			}
701
-
702
-			// closing tag
703
-			$output .= '</textarea>';
704
-
705
-
706
-			// input group wraps
707
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
708
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
709
-				if ( $args['input_group_left'] ) {
710
-					$output = self::wrap( array(
711
-						'content'                 => $output,
712
-						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
713
-						'input_group_left'        => $args['input_group_left'],
714
-						'input_group_left_inside' => $args['input_group_left_inside']
715
-					) );
716
-				}
717
-				if ( $args['input_group_right'] ) {
718
-					$output = self::wrap( array(
719
-						'content'                  => $output,
720
-						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
721
-						'input_group_right'        => $args['input_group_right'],
722
-						'input_group_right_inside' => $args['input_group_right_inside']
723
-					) );
724
-				}
725
-
726
-			}
727
-
728
-
729
-		}
730
-
731
-		if ( ! empty( $args['label'] ) && $label_after ) {
732
-			$label_args = array(
733
-				'title'      => $args['label'],
734
-				'for'        => $args['id'],
735
-				'class'      => $args['label_class'] . " ",
736
-				'label_type' => $args['label_type'],
737
-				'label_col'  => $args['label_col']
738
-			);
739
-			$output .= self::label( $label_args );
740
-		}
741
-
742
-		// help text
743
-		if ( ! empty( $args['help_text'] ) ) {
744
-			$output .= AUI_Component_Helper::help_text( $args['help_text'] );
745
-		}
746
-
747
-		if ( ! $label_after ) {
748
-			$output = $label . $output;
749
-		}
750
-
751
-		// maybe horizontal label
752
-		if ( $args['label_type'] == 'horizontal' ) {
753
-			$output .= '</div>';
754
-		}
755
-
756
-
757
-		// wrap
758
-		if ( ! $args['no_wrap'] ) {
759
-			if ( ! empty( $args['form_group_class'] ) ) {
760
-				$fg_class = esc_attr( $args['form_group_class'] );
761
-			}else{
762
-				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
763
-			}
764
-			$form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
765
-			$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
766
-			$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
767
-			$output           = self::wrap( array(
768
-				'content'         => $output,
769
-				'class'           => $wrap_class,
770
-				'element_require' => $args['element_require'],
771
-				'argument_id'     => $args['id'],
772
-				'wrap_attributes' => $args['wrap_attributes'],
773
-			) );
774
-		}
775
-
776
-
777
-		return $output;
778
-	}
779
-
780
-	/**
575
+		    $args   = wp_parse_args( $args, $defaults );
576
+		    $output = '';
577
+		    $label = '';
578
+
579
+		    // hidden label option needs to be empty
580
+		    $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
581
+
582
+		    // floating labels don't work with wysiwyg so set it as top
583
+		    if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
584
+			    $args['label_type'] = 'top';
585
+		    }
586
+
587
+		    $label_after = $args['label_after'];
588
+
589
+		    // floating labels need label after
590
+		    if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
591
+			    $label_after         = true;
592
+			    $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
593
+		    }
594
+
595
+		    // label
596
+		    if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
597
+		    } elseif ( ! empty( $args['label'] ) && ! $label_after ) {
598
+			    $label_args = array(
599
+				    'title'      => $args['label'],
600
+				    'for'        => $args['id'],
601
+				    'class'      => $args['label_class'] . " ",
602
+				    'label_type' => $args['label_type'],
603
+				    'label_col'  => $args['label_col']
604
+			    );
605
+			    $label .= self::label( $label_args );
606
+		    }
607
+
608
+		    // maybe horizontal label
609
+		    if ( $args['label_type'] == 'horizontal' ) {
610
+			    $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
611
+			    $label .= '<div class="' . $input_col . '">';
612
+		    }
613
+
614
+		    if ( ! empty( $args['wysiwyg'] ) ) {
615
+			    ob_start();
616
+			    $content   = $args['value'];
617
+			    $editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
618
+			    $settings  = array(
619
+				    'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
620
+				    'quicktags'     => false,
621
+				    'media_buttons' => false,
622
+				    'editor_class'  => 'form-control',
623
+				    'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
624
+				    'teeny'         => true,
625
+			    );
626
+
627
+			    // maybe set settings if array
628
+			    if ( is_array( $args['wysiwyg'] ) ) {
629
+				    $settings = wp_parse_args( $args['wysiwyg'], $settings );
630
+			    }
631
+
632
+			    wp_editor( $content, $editor_id, $settings );
633
+			    $output .= ob_get_clean();
634
+		    } else {
635
+
636
+			    // open
637
+			    $output .= '<textarea ';
638
+
639
+			    // name
640
+			    if ( ! empty( $args['name'] ) ) {
641
+				    $output .= ' name="' . esc_attr( $args['name'] ) . '" ';
642
+			    }
643
+
644
+			    // id
645
+			    if ( ! empty( $args['id'] ) ) {
646
+				    $output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
647
+			    }
648
+
649
+			    // placeholder
650
+			    if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
651
+				    $output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
652
+			    }
653
+
654
+			    // title
655
+			    if ( ! empty( $args['title'] ) ) {
656
+				    $output .= ' title="' . esc_attr( $args['title'] ) . '" ';
657
+			    }
658
+
659
+			    // validation text
660
+			    if ( ! empty( $args['validation_text'] ) ) {
661
+				    $output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
662
+				    $output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
663
+			    }
664
+
665
+			    // validation_pattern
666
+			    if ( ! empty( $args['validation_pattern'] ) ) {
667
+				    $output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
668
+			    }
669
+
670
+			    // required
671
+			    if ( ! empty( $args['required'] ) ) {
672
+				    $output .= ' required ';
673
+			    }
674
+
675
+			    // rows
676
+			    if ( ! empty( $args['rows'] ) ) {
677
+				    $output .= ' rows="' . absint( $args['rows'] ) . '" ';
678
+			    }
679
+
680
+
681
+			    // class
682
+			    $class = ! empty( $args['class'] ) ? $args['class'] : '';
683
+			    $output .= ' class="form-control ' . $class . '" ';
684
+
685
+			    // extra attributes
686
+			    if ( ! empty( $args['extra_attributes'] ) ) {
687
+				    $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
688
+			    }
689
+
690
+			    // close tag
691
+			    $output .= '>';
692
+
693
+			    // value
694
+			    if ( ! empty( $args['value'] ) ) {
695
+				    if ( ! empty( $args['allow_tags'] ) ) {
696
+					    $output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
697
+				    } else {
698
+					    $output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
699
+				    }
700
+			    }
701
+
702
+			    // closing tag
703
+			    $output .= '</textarea>';
704
+
705
+
706
+			    // input group wraps
707
+			    if ( $args['input_group_left'] || $args['input_group_right'] ) {
708
+				    $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
709
+				    if ( $args['input_group_left'] ) {
710
+					    $output = self::wrap( array(
711
+						    'content'                 => $output,
712
+						    'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
713
+						    'input_group_left'        => $args['input_group_left'],
714
+						    'input_group_left_inside' => $args['input_group_left_inside']
715
+					    ) );
716
+				    }
717
+				    if ( $args['input_group_right'] ) {
718
+					    $output = self::wrap( array(
719
+						    'content'                  => $output,
720
+						    'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
721
+						    'input_group_right'        => $args['input_group_right'],
722
+						    'input_group_right_inside' => $args['input_group_right_inside']
723
+					    ) );
724
+				    }
725
+
726
+			    }
727
+
728
+
729
+		    }
730
+
731
+		    if ( ! empty( $args['label'] ) && $label_after ) {
732
+			    $label_args = array(
733
+				    'title'      => $args['label'],
734
+				    'for'        => $args['id'],
735
+				    'class'      => $args['label_class'] . " ",
736
+				    'label_type' => $args['label_type'],
737
+				    'label_col'  => $args['label_col']
738
+			    );
739
+			    $output .= self::label( $label_args );
740
+		    }
741
+
742
+		    // help text
743
+		    if ( ! empty( $args['help_text'] ) ) {
744
+			    $output .= AUI_Component_Helper::help_text( $args['help_text'] );
745
+		    }
746
+
747
+		    if ( ! $label_after ) {
748
+			    $output = $label . $output;
749
+		    }
750
+
751
+		    // maybe horizontal label
752
+		    if ( $args['label_type'] == 'horizontal' ) {
753
+			    $output .= '</div>';
754
+		    }
755
+
756
+
757
+		    // wrap
758
+		    if ( ! $args['no_wrap'] ) {
759
+			    if ( ! empty( $args['form_group_class'] ) ) {
760
+				    $fg_class = esc_attr( $args['form_group_class'] );
761
+			    }else{
762
+				    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
763
+			    }
764
+			    $form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
765
+			    $wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
766
+			    $wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
767
+			    $output           = self::wrap( array(
768
+				    'content'         => $output,
769
+				    'class'           => $wrap_class,
770
+				    'element_require' => $args['element_require'],
771
+				    'argument_id'     => $args['id'],
772
+				    'wrap_attributes' => $args['wrap_attributes'],
773
+			    ) );
774
+		    }
775
+
776
+
777
+		    return $output;
778
+	    }
779
+
780
+	    /**
781 781
 	 * Build the component.
782 782
 	 *
783 783
 	 * @param array $args
784 784
 	 *
785 785
 	 * @return string The rendered component.
786 786
 	 */
787
-	public static function select( $args = array() ) {
788
-		global $aui_bs5, $aui_has_select2, $aui_select2_enqueued;
789
-
790
-		$defaults = array(
791
-			'class'            => '',
792
-			'wrap_class'       => '',
793
-			'id'               => '',
794
-			'title'            => '',
795
-			'value'            => '',
796
-			// can be an array or a string
797
-			'required'         => false,
798
-			'label'            => '',
799
-			'label_after'      => false,
800
-			'label_type'       => '',
801
-			'label_col'        => '',
802
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
803
-			'label_class'      => '',
804
-			'help_text'        => '',
805
-			'placeholder'      => '',
806
-			'options'          => array(),
807
-			// array or string
808
-			'icon'             => '',
809
-			'multiple'         => false,
810
-			'select2'          => false,
811
-			'no_wrap'          => false,
812
-			'input_group_right' => '',
813
-			'input_group_left' => '',
814
-			'input_group_right_inside' => false, // forces the input group inside the input
815
-			'input_group_left_inside' => false, // forces the input group inside the input
816
-			'form_group_class'  => '',
817
-			'element_require'  => '',
818
-			// [%element_id%] == "1"
819
-			'extra_attributes' => array(),
820
-			// an array of extra attributes
821
-			'wrap_attributes'  => array(),
822
-		);
823
-
824
-		/**
787
+	    public static function select( $args = array() ) {
788
+		    global $aui_bs5, $aui_has_select2, $aui_select2_enqueued;
789
+
790
+		    $defaults = array(
791
+			    'class'            => '',
792
+			    'wrap_class'       => '',
793
+			    'id'               => '',
794
+			    'title'            => '',
795
+			    'value'            => '',
796
+			    // can be an array or a string
797
+			    'required'         => false,
798
+			    'label'            => '',
799
+			    'label_after'      => false,
800
+			    'label_type'       => '',
801
+			    'label_col'        => '',
802
+			    // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
803
+			    'label_class'      => '',
804
+			    'help_text'        => '',
805
+			    'placeholder'      => '',
806
+			    'options'          => array(),
807
+			    // array or string
808
+			    'icon'             => '',
809
+			    'multiple'         => false,
810
+			    'select2'          => false,
811
+			    'no_wrap'          => false,
812
+			    'input_group_right' => '',
813
+			    'input_group_left' => '',
814
+			    'input_group_right_inside' => false, // forces the input group inside the input
815
+			    'input_group_left_inside' => false, // forces the input group inside the input
816
+			    'form_group_class'  => '',
817
+			    'element_require'  => '',
818
+			    // [%element_id%] == "1"
819
+			    'extra_attributes' => array(),
820
+			    // an array of extra attributes
821
+			    'wrap_attributes'  => array(),
822
+		    );
823
+
824
+		    /**
825 825
 		 * Parse incoming $args into an array and merge it with $defaults
826 826
 		 */
827
-		$args   = wp_parse_args( $args, $defaults );
828
-		$output = '';
829
-
830
-		// for now lets hide floating labels
831
-		if ( $args['label_type'] == 'floating' ) {
832
-			$args['label_type'] = 'hidden';
833
-		}
834
-
835
-		// hidden label option needs to be empty
836
-		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
837
-
838
-
839
-		$label_after = $args['label_after'];
840
-
841
-		// floating labels need label after
842
-		if ( $args['label_type'] == 'floating' ) {
843
-			$label_after         = true;
844
-			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
845
-		}
846
-
847
-		// Maybe setup select2
848
-		$is_select2 = false;
849
-		if ( ! empty( $args['select2'] ) ) {
850
-			$args['class'] .= ' aui-select2';
851
-			$is_select2 = true;
852
-		} elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
853
-			$is_select2 = true;
854
-		}
855
-
856
-		if ( $is_select2 && ! $aui_has_select2 ) {
857
-			$aui_has_select2 = true;
858
-			$conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
859
-
860
-			// Enqueue the script,
861
-			if ( empty( $aui_select2_enqueued ) && $conditional_select2 === true ) {
862
-				$aui_select2_enqueued = true;
863
-
864
-				$aui_settings = AyeCode_UI_Settings::instance();
865
-				$aui_settings->enqueue_select2();
866
-			}
867
-		}
868
-
869
-		// select2 tags
870
-		if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
871
-			$args['data-tags']             = 'true';
872
-			$args['data-token-separators'] = "[',']";
873
-			$args['multiple']              = true;
874
-		}
875
-
876
-		// select2 placeholder
877
-		if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
878
-			$args['data-placeholder'] = esc_attr( $args['placeholder'] );
879
-			$args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
880
-		}
881
-
882
-		// Set hidden input to save empty value for multiselect.
883
-		if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
884
-			$output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
885
-		}
886
-
887
-		// open/type
888
-		$output .= '<select ';
889
-
890
-		// style
891
-		if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
892
-			$output .= " style='width:100%;' ";
893
-		}
894
-
895
-		// element require
896
-		if ( ! empty( $args['element_require'] ) ) {
897
-			$output .= AUI_Component_Helper::element_require( $args['element_require'] );
898
-			$args['class'] .= " aui-conditional-field";
899
-		}
900
-
901
-		// class
902
-		$class = ! empty( $args['class'] ) ? $args['class'] : '';
903
-		$select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
904
-		$output .= AUI_Component_Helper::class_attr( $select_class . $class );
905
-
906
-		// name
907
-		if ( ! empty( $args['name'] ) ) {
908
-			$output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
909
-		}
910
-
911
-		// id
912
-		if ( ! empty( $args['id'] ) ) {
913
-			$output .= AUI_Component_Helper::id( $args['id'] );
914
-		}
915
-
916
-		// title
917
-		if ( ! empty( $args['title'] ) ) {
918
-			$output .= AUI_Component_Helper::title( $args['title'] );
919
-		}
920
-
921
-		// data-attributes
922
-		$output .= AUI_Component_Helper::data_attributes( $args );
923
-
924
-		// aria-attributes
925
-		$output .= AUI_Component_Helper::aria_attributes( $args );
926
-
927
-		// extra attributes
928
-		if ( ! empty( $args['extra_attributes'] ) ) {
929
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
930
-		}
931
-
932
-		// required
933
-		if ( ! empty( $args['required'] ) ) {
934
-			$output .= ' required';
935
-		}
936
-
937
-		// multiple
938
-		if ( ! empty( $args['multiple'] ) ) {
939
-			$output .= ' multiple';
940
-		}
941
-
942
-		// close opening tag
943
-		$output .= '>';
944
-
945
-		// placeholder
946
-		if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
947
-			$output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
948
-		} elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
949
-			$output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
950
-		}
951
-
952
-		// Options
953
-		if ( ! empty( $args['options'] ) ) {
954
-
955
-			if ( ! is_array( $args['options'] ) ) {
956
-				$output .= $args['options']; // not the preferred way but an option
957
-			} else {
958
-				foreach ( $args['options'] as $val => $name ) {
959
-					$selected = '';
960
-					if ( is_array( $name ) ) {
961
-						if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
962
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
963
-
964
-							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
965
-						} else {
966
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
967
-							$option_value = isset( $name['value'] ) ? $name['value'] : '';
968
-							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
969
-							if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
970
-								$selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
971
-							} elseif ( ! empty( $args['value'] ) ) {
972
-								$selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
973
-							} elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
974
-								$selected = selected( $option_value, $args['value'], false );
975
-							}
976
-
977
-							$output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
978
-						}
979
-					} else {
980
-						if ( ! empty( $args['value'] ) ) {
981
-							if ( is_array( $args['value'] ) ) {
982
-								$selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
983
-							} elseif ( ! empty( $args['value'] ) ) {
984
-								$selected = selected( $args['value'], $val, false );
985
-							}
986
-						} elseif ( $args['value'] === $val ) {
987
-							$selected = selected( $args['value'], $val, false );
988
-						}
989
-						$output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
990
-					}
991
-				}
992
-			}
993
-
994
-		}
995
-
996
-		// closing tag
997
-		$output .= '</select>';
998
-
999
-		$label = '';
1000
-		$help_text = '';
1001
-		// label
1002
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1003
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
1004
-			$label_args = array(
1005
-				'title'      => $args['label'],
1006
-				'for'        => $args['id'],
1007
-				'class'      => $args['label_class'] . " ",
1008
-				'label_type' => $args['label_type'],
1009
-				'label_col'  => $args['label_col']
1010
-			);
1011
-			$label = self::label( $label_args );
1012
-		}
1013
-
1014
-		// help text
1015
-		if ( ! empty( $args['help_text'] ) ) {
1016
-			$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1017
-		}
1018
-
1019
-		// input group wraps
1020
-		if ( $args['input_group_left'] || $args['input_group_right'] ) {
1021
-			$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1022
-			if ( $args['input_group_left'] ) {
1023
-				$output = self::wrap( array(
1024
-					'content'                 => $output,
1025
-					'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1026
-					'input_group_left'        => $args['input_group_left'],
1027
-					'input_group_left_inside' => $args['input_group_left_inside']
1028
-				) );
1029
-			}
1030
-			if ( $args['input_group_right'] ) {
1031
-				$output = self::wrap( array(
1032
-					'content'                  => $output,
1033
-					'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1034
-					'input_group_right'        => $args['input_group_right'],
1035
-					'input_group_right_inside' => $args['input_group_right_inside']
1036
-				) );
1037
-			}
1038
-
1039
-		}
1040
-
1041
-		if ( ! $label_after ) {
1042
-			$output .= $help_text;
1043
-		}
1044
-
1045
-
1046
-		if ( $args['label_type'] == 'horizontal' ) {
1047
-			$output = self::wrap( array(
1048
-				'content' => $output,
1049
-				'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1050
-			) );
1051
-		}
1052
-
1053
-		if ( ! $label_after ) {
1054
-			$output = $label . $output;
1055
-		}
1056
-
1057
-		// maybe horizontal label
1058
-//		if ( $args['label_type'] == 'horizontal' ) {
1059
-//			$output .= '</div>';
1060
-//		}
1061
-
1062
-
1063
-		// wrap
1064
-		if ( ! $args['no_wrap'] ) {
1065
-			if ( ! empty( $args['form_group_class'] ) ) {
1066
-				$fg_class = esc_attr( $args['form_group_class'] );
1067
-			}else{
1068
-				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1069
-			}
1070
-			$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1071
-			$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1072
-			$output     = self::wrap( array(
1073
-				'content'         => $output,
1074
-				'class'           => $wrap_class,
1075
-				'element_require' => $args['element_require'],
1076
-				'argument_id'     => $args['id'],
1077
-				'wrap_attributes' => $args['wrap_attributes'],
1078
-			) );
1079
-		}
1080
-
1081
-
1082
-		return $output;
1083
-	}
1084
-
1085
-	/**
827
+		    $args   = wp_parse_args( $args, $defaults );
828
+		    $output = '';
829
+
830
+		    // for now lets hide floating labels
831
+		    if ( $args['label_type'] == 'floating' ) {
832
+			    $args['label_type'] = 'hidden';
833
+		    }
834
+
835
+		    // hidden label option needs to be empty
836
+		    $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
837
+
838
+
839
+		    $label_after = $args['label_after'];
840
+
841
+		    // floating labels need label after
842
+		    if ( $args['label_type'] == 'floating' ) {
843
+			    $label_after         = true;
844
+			    $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
845
+		    }
846
+
847
+		    // Maybe setup select2
848
+		    $is_select2 = false;
849
+		    if ( ! empty( $args['select2'] ) ) {
850
+			    $args['class'] .= ' aui-select2';
851
+			    $is_select2 = true;
852
+		    } elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
853
+			    $is_select2 = true;
854
+		    }
855
+
856
+		    if ( $is_select2 && ! $aui_has_select2 ) {
857
+			    $aui_has_select2 = true;
858
+			    $conditional_select2 = apply_filters( 'aui_is_conditional_select2', true );
859
+
860
+			    // Enqueue the script,
861
+			    if ( empty( $aui_select2_enqueued ) && $conditional_select2 === true ) {
862
+				    $aui_select2_enqueued = true;
863
+
864
+				    $aui_settings = AyeCode_UI_Settings::instance();
865
+				    $aui_settings->enqueue_select2();
866
+			    }
867
+		    }
868
+
869
+		    // select2 tags
870
+		    if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
871
+			    $args['data-tags']             = 'true';
872
+			    $args['data-token-separators'] = "[',']";
873
+			    $args['multiple']              = true;
874
+		    }
875
+
876
+		    // select2 placeholder
877
+		    if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
878
+			    $args['data-placeholder'] = esc_attr( $args['placeholder'] );
879
+			    $args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
880
+		    }
881
+
882
+		    // Set hidden input to save empty value for multiselect.
883
+		    if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
884
+			    $output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
885
+		    }
886
+
887
+		    // open/type
888
+		    $output .= '<select ';
889
+
890
+		    // style
891
+		    if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
892
+			    $output .= " style='width:100%;' ";
893
+		    }
894
+
895
+		    // element require
896
+		    if ( ! empty( $args['element_require'] ) ) {
897
+			    $output .= AUI_Component_Helper::element_require( $args['element_require'] );
898
+			    $args['class'] .= " aui-conditional-field";
899
+		    }
900
+
901
+		    // class
902
+		    $class = ! empty( $args['class'] ) ? $args['class'] : '';
903
+		    $select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
904
+		    $output .= AUI_Component_Helper::class_attr( $select_class . $class );
905
+
906
+		    // name
907
+		    if ( ! empty( $args['name'] ) ) {
908
+			    $output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
909
+		    }
910
+
911
+		    // id
912
+		    if ( ! empty( $args['id'] ) ) {
913
+			    $output .= AUI_Component_Helper::id( $args['id'] );
914
+		    }
915
+
916
+		    // title
917
+		    if ( ! empty( $args['title'] ) ) {
918
+			    $output .= AUI_Component_Helper::title( $args['title'] );
919
+		    }
920
+
921
+		    // data-attributes
922
+		    $output .= AUI_Component_Helper::data_attributes( $args );
923
+
924
+		    // aria-attributes
925
+		    $output .= AUI_Component_Helper::aria_attributes( $args );
926
+
927
+		    // extra attributes
928
+		    if ( ! empty( $args['extra_attributes'] ) ) {
929
+			    $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
930
+		    }
931
+
932
+		    // required
933
+		    if ( ! empty( $args['required'] ) ) {
934
+			    $output .= ' required';
935
+		    }
936
+
937
+		    // multiple
938
+		    if ( ! empty( $args['multiple'] ) ) {
939
+			    $output .= ' multiple';
940
+		    }
941
+
942
+		    // close opening tag
943
+		    $output .= '>';
944
+
945
+		    // placeholder
946
+		    if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
947
+			    $output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
948
+		    } elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
949
+			    $output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
950
+		    }
951
+
952
+		    // Options
953
+		    if ( ! empty( $args['options'] ) ) {
954
+
955
+			    if ( ! is_array( $args['options'] ) ) {
956
+				    $output .= $args['options']; // not the preferred way but an option
957
+			    } else {
958
+				    foreach ( $args['options'] as $val => $name ) {
959
+					    $selected = '';
960
+					    if ( is_array( $name ) ) {
961
+						    if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
962
+							    $option_label = isset( $name['label'] ) ? $name['label'] : '';
963
+
964
+							    $output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
965
+						    } else {
966
+							    $option_label = isset( $name['label'] ) ? $name['label'] : '';
967
+							    $option_value = isset( $name['value'] ) ? $name['value'] : '';
968
+							    $extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
969
+							    if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
970
+								    $selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
971
+							    } elseif ( ! empty( $args['value'] ) ) {
972
+								    $selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
973
+							    } elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
974
+								    $selected = selected( $option_value, $args['value'], false );
975
+							    }
976
+
977
+							    $output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
978
+						    }
979
+					    } else {
980
+						    if ( ! empty( $args['value'] ) ) {
981
+							    if ( is_array( $args['value'] ) ) {
982
+								    $selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
983
+							    } elseif ( ! empty( $args['value'] ) ) {
984
+								    $selected = selected( $args['value'], $val, false );
985
+							    }
986
+						    } elseif ( $args['value'] === $val ) {
987
+							    $selected = selected( $args['value'], $val, false );
988
+						    }
989
+						    $output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
990
+					    }
991
+				    }
992
+			    }
993
+
994
+		    }
995
+
996
+		    // closing tag
997
+		    $output .= '</select>';
998
+
999
+		    $label = '';
1000
+		    $help_text = '';
1001
+		    // label
1002
+		    if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1003
+		    } elseif ( ! empty( $args['label'] ) && ! $label_after ) {
1004
+			    $label_args = array(
1005
+				    'title'      => $args['label'],
1006
+				    'for'        => $args['id'],
1007
+				    'class'      => $args['label_class'] . " ",
1008
+				    'label_type' => $args['label_type'],
1009
+				    'label_col'  => $args['label_col']
1010
+			    );
1011
+			    $label = self::label( $label_args );
1012
+		    }
1013
+
1014
+		    // help text
1015
+		    if ( ! empty( $args['help_text'] ) ) {
1016
+			    $help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1017
+		    }
1018
+
1019
+		    // input group wraps
1020
+		    if ( $args['input_group_left'] || $args['input_group_right'] ) {
1021
+			    $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1022
+			    if ( $args['input_group_left'] ) {
1023
+				    $output = self::wrap( array(
1024
+					    'content'                 => $output,
1025
+					    'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1026
+					    'input_group_left'        => $args['input_group_left'],
1027
+					    'input_group_left_inside' => $args['input_group_left_inside']
1028
+				    ) );
1029
+			    }
1030
+			    if ( $args['input_group_right'] ) {
1031
+				    $output = self::wrap( array(
1032
+					    'content'                  => $output,
1033
+					    'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1034
+					    'input_group_right'        => $args['input_group_right'],
1035
+					    'input_group_right_inside' => $args['input_group_right_inside']
1036
+				    ) );
1037
+			    }
1038
+
1039
+		    }
1040
+
1041
+		    if ( ! $label_after ) {
1042
+			    $output .= $help_text;
1043
+		    }
1044
+
1045
+
1046
+		    if ( $args['label_type'] == 'horizontal' ) {
1047
+			    $output = self::wrap( array(
1048
+				    'content' => $output,
1049
+				    'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1050
+			    ) );
1051
+		    }
1052
+
1053
+		    if ( ! $label_after ) {
1054
+			    $output = $label . $output;
1055
+		    }
1056
+
1057
+		    // maybe horizontal label
1058
+    //		if ( $args['label_type'] == 'horizontal' ) {
1059
+    //			$output .= '</div>';
1060
+    //		}
1061
+
1062
+
1063
+		    // wrap
1064
+		    if ( ! $args['no_wrap'] ) {
1065
+			    if ( ! empty( $args['form_group_class'] ) ) {
1066
+				    $fg_class = esc_attr( $args['form_group_class'] );
1067
+			    }else{
1068
+				    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1069
+			    }
1070
+			    $wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1071
+			    $wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1072
+			    $output     = self::wrap( array(
1073
+				    'content'         => $output,
1074
+				    'class'           => $wrap_class,
1075
+				    'element_require' => $args['element_require'],
1076
+				    'argument_id'     => $args['id'],
1077
+				    'wrap_attributes' => $args['wrap_attributes'],
1078
+			    ) );
1079
+		    }
1080
+
1081
+
1082
+		    return $output;
1083
+	    }
1084
+
1085
+	    /**
1086 1086
 	 * Build the component.
1087 1087
 	 *
1088 1088
 	 * @param array $args
1089 1089
 	 *
1090 1090
 	 * @return string The rendered component.
1091 1091
 	 */
1092
-	public static function radio( $args = array() ) {
1093
-		global $aui_bs5;
1094
-
1095
-		$defaults = array(
1096
-			'class'            => '',
1097
-			'wrap_class'       => '',
1098
-			'id'               => '',
1099
-			'title'            => '',
1100
-			'horizontal'       => false,
1101
-			// sets the lable horizontal
1102
-			'value'            => '',
1103
-			'label'            => '',
1104
-			'label_class'      => '',
1105
-			'label_type'       => '',
1106
-			'label_col'        => '',
1107
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
1108
-			'help_text'        => '',
1109
-			'inline'           => true,
1110
-			'required'         => false,
1111
-			'options'          => array(),
1112
-			'icon'             => '',
1113
-			'no_wrap'          => false,
1114
-			'element_require'  => '',
1115
-			// [%element_id%] == "1"
1116
-			'extra_attributes' => array(),
1117
-			// an array of extra attributes
1118
-			'wrap_attributes'  => array()
1119
-		);
1120
-
1121
-		/**
1092
+	    public static function radio( $args = array() ) {
1093
+		    global $aui_bs5;
1094
+
1095
+		    $defaults = array(
1096
+			    'class'            => '',
1097
+			    'wrap_class'       => '',
1098
+			    'id'               => '',
1099
+			    'title'            => '',
1100
+			    'horizontal'       => false,
1101
+			    // sets the lable horizontal
1102
+			    'value'            => '',
1103
+			    'label'            => '',
1104
+			    'label_class'      => '',
1105
+			    'label_type'       => '',
1106
+			    'label_col'        => '',
1107
+			    // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
1108
+			    'help_text'        => '',
1109
+			    'inline'           => true,
1110
+			    'required'         => false,
1111
+			    'options'          => array(),
1112
+			    'icon'             => '',
1113
+			    'no_wrap'          => false,
1114
+			    'element_require'  => '',
1115
+			    // [%element_id%] == "1"
1116
+			    'extra_attributes' => array(),
1117
+			    // an array of extra attributes
1118
+			    'wrap_attributes'  => array()
1119
+		    );
1120
+
1121
+		    /**
1122 1122
 		 * Parse incoming $args into an array and merge it with $defaults
1123 1123
 		 */
1124
-		$args = wp_parse_args( $args, $defaults );
1125
-
1126
-		// for now lets use horizontal for floating
1127
-		if ( $args['label_type'] == 'floating' ) {
1128
-			$args['label_type'] = 'horizontal';
1129
-		}
1130
-
1131
-		$label_args = array(
1132
-			'title'      => $args['label'],
1133
-			'class'      => $args['label_class'] . " pt-0 ",
1134
-			'label_type' => $args['label_type'],
1135
-			'label_col'  => $args['label_col']
1136
-		);
1137
-
1138
-		if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1139
-			$label_args['class'] .= 'd-block ';
1140
-
1141
-			if ( $args['label_type'] == 'hidden' ) {
1142
-				$label_args['class'] .= 'sr-only ' . ( $aui_bs5 ? 'visually-hidden ' : '' );
1143
-			}
1144
-		}
1145
-
1146
-		$output = '';
1147
-
1148
-		// label before
1149
-		if ( ! empty( $args['label'] ) ) {
1150
-			$output .= self::label( $label_args, 'radio' );
1151
-		}
1152
-
1153
-		// maybe horizontal label
1154
-		if ( $args['label_type'] == 'horizontal' ) {
1155
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1156
-			$output .= '<div class="' . $input_col . '">';
1157
-		}
1158
-
1159
-		if ( ! empty( $args['options'] ) ) {
1160
-			$count = 0;
1161
-			foreach ( $args['options'] as $value => $label ) {
1162
-				$option_args            = $args;
1163
-				$option_args['value']   = $value;
1164
-				$option_args['label']   = $label;
1165
-				$option_args['checked'] = $value == $args['value'] ? true : false;
1166
-				$output .= self::radio_option( $option_args, $count );
1167
-				$count ++;
1168
-			}
1169
-		}
1170
-
1171
-		// help text
1172
-		$help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1173
-		$output .= $help_text;
1174
-
1175
-		// maybe horizontal label
1176
-		if ( $args['label_type'] == 'horizontal' ) {
1177
-			$output .= '</div>';
1178
-		}
1179
-
1180
-		// wrap
1181
-		$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1182
-		$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1183
-		$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1184
-		$output     = self::wrap( array(
1185
-			'content'         => $output,
1186
-			'class'           => $wrap_class,
1187
-			'element_require' => $args['element_require'],
1188
-			'argument_id'     => $args['id'],
1189
-			'wrap_attributes' => $args['wrap_attributes'],
1190
-		) );
1191
-
1192
-
1193
-		return $output;
1194
-	}
1195
-
1196
-	/**
1124
+		    $args = wp_parse_args( $args, $defaults );
1125
+
1126
+		    // for now lets use horizontal for floating
1127
+		    if ( $args['label_type'] == 'floating' ) {
1128
+			    $args['label_type'] = 'horizontal';
1129
+		    }
1130
+
1131
+		    $label_args = array(
1132
+			    'title'      => $args['label'],
1133
+			    'class'      => $args['label_class'] . " pt-0 ",
1134
+			    'label_type' => $args['label_type'],
1135
+			    'label_col'  => $args['label_col']
1136
+		    );
1137
+
1138
+		    if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1139
+			    $label_args['class'] .= 'd-block ';
1140
+
1141
+			    if ( $args['label_type'] == 'hidden' ) {
1142
+				    $label_args['class'] .= 'sr-only ' . ( $aui_bs5 ? 'visually-hidden ' : '' );
1143
+			    }
1144
+		    }
1145
+
1146
+		    $output = '';
1147
+
1148
+		    // label before
1149
+		    if ( ! empty( $args['label'] ) ) {
1150
+			    $output .= self::label( $label_args, 'radio' );
1151
+		    }
1152
+
1153
+		    // maybe horizontal label
1154
+		    if ( $args['label_type'] == 'horizontal' ) {
1155
+			    $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1156
+			    $output .= '<div class="' . $input_col . '">';
1157
+		    }
1158
+
1159
+		    if ( ! empty( $args['options'] ) ) {
1160
+			    $count = 0;
1161
+			    foreach ( $args['options'] as $value => $label ) {
1162
+				    $option_args            = $args;
1163
+				    $option_args['value']   = $value;
1164
+				    $option_args['label']   = $label;
1165
+				    $option_args['checked'] = $value == $args['value'] ? true : false;
1166
+				    $output .= self::radio_option( $option_args, $count );
1167
+				    $count ++;
1168
+			    }
1169
+		    }
1170
+
1171
+		    // help text
1172
+		    $help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1173
+		    $output .= $help_text;
1174
+
1175
+		    // maybe horizontal label
1176
+		    if ( $args['label_type'] == 'horizontal' ) {
1177
+			    $output .= '</div>';
1178
+		    }
1179
+
1180
+		    // wrap
1181
+		    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1182
+		    $wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1183
+		    $wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1184
+		    $output     = self::wrap( array(
1185
+			    'content'         => $output,
1186
+			    'class'           => $wrap_class,
1187
+			    'element_require' => $args['element_require'],
1188
+			    'argument_id'     => $args['id'],
1189
+			    'wrap_attributes' => $args['wrap_attributes'],
1190
+		    ) );
1191
+
1192
+
1193
+		    return $output;
1194
+	    }
1195
+
1196
+	    /**
1197 1197
 	 * Build the component.
1198 1198
 	 *
1199 1199
 	 * @param array $args
1200 1200
 	 *
1201 1201
 	 * @return string The rendered component.
1202 1202
 	 */
1203
-	public static function radio_option( $args = array(), $count = '' ) {
1204
-		$defaults = array(
1205
-			'class'            => '',
1206
-			'id'               => '',
1207
-			'title'            => '',
1208
-			'value'            => '',
1209
-			'required'         => false,
1210
-			'inline'           => true,
1211
-			'label'            => '',
1212
-			'options'          => array(),
1213
-			'icon'             => '',
1214
-			'no_wrap'          => false,
1215
-			'extra_attributes' => array() // an array of extra attributes
1216
-		);
1217
-
1218
-		/**
1203
+	    public static function radio_option( $args = array(), $count = '' ) {
1204
+		    $defaults = array(
1205
+			    'class'            => '',
1206
+			    'id'               => '',
1207
+			    'title'            => '',
1208
+			    'value'            => '',
1209
+			    'required'         => false,
1210
+			    'inline'           => true,
1211
+			    'label'            => '',
1212
+			    'options'          => array(),
1213
+			    'icon'             => '',
1214
+			    'no_wrap'          => false,
1215
+			    'extra_attributes' => array() // an array of extra attributes
1216
+		    );
1217
+
1218
+		    /**
1219 1219
 		 * Parse incoming $args into an array and merge it with $defaults
1220 1220
 		 */
1221
-		$args = wp_parse_args( $args, $defaults );
1222
-
1223
-		$output = '';
1224
-
1225
-		// open/type
1226
-		$output .= '<input type="radio"';
1227
-
1228
-		// class
1229
-		$output .= ' class="form-check-input" ';
1230
-
1231
-		// name
1232
-		if ( ! empty( $args['name'] ) ) {
1233
-			$output .= AUI_Component_Helper::name( $args['name'] );
1234
-		}
1235
-
1236
-		// id
1237
-		if ( ! empty( $args['id'] ) ) {
1238
-			$output .= AUI_Component_Helper::id( $args['id'] . $count );
1239
-		}
1240
-
1241
-		// title
1242
-		if ( ! empty( $args['title'] ) ) {
1243
-			$output .= AUI_Component_Helper::title( $args['title'] );
1244
-		}
1245
-
1246
-		// value
1247
-		if ( isset( $args['value'] ) ) {
1248
-			$output .= AUI_Component_Helper::value( $args['value'] );
1249
-		}
1250
-
1251
-		// checked, for radio and checkboxes
1252
-		if ( $args['checked'] ) {
1253
-			$output .= ' checked ';
1254
-		}
1255
-
1256
-		// data-attributes
1257
-		$output .= AUI_Component_Helper::data_attributes( $args );
1258
-
1259
-		// aria-attributes
1260
-		$output .= AUI_Component_Helper::aria_attributes( $args );
1261
-
1262
-		// extra attributes
1263
-		if ( ! empty( $args['extra_attributes'] ) ) {
1264
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1265
-		}
1266
-
1267
-		// required
1268
-		if ( ! empty( $args['required'] ) ) {
1269
-			$output .= ' required';
1270
-		}
1271
-
1272
-		// close opening tag
1273
-		$output .= '>';
1274
-
1275
-		// label
1276
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1277
-		} elseif ( ! empty( $args['label'] ) ) {
1278
-			$output .= self::label( array(
1279
-				'title' => $args['label'],
1280
-				'for'   => $args['id'] . $count,
1281
-				'class' => 'form-check-label'
1282
-			), 'radio' );
1283
-		}
1284
-
1285
-		// wrap
1286
-		if ( ! $args['no_wrap'] ) {
1287
-			$wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1288
-
1289
-			// Unique wrap class
1290
-			$uniq_class = 'fwrap';
1291
-			if ( ! empty( $args['name'] ) ) {
1292
-				$uniq_class .= '-' . $args['name'];
1293
-			} else if ( ! empty( $args['id'] ) ) {
1294
-				$uniq_class .= '-' . $args['id'];
1295
-			}
1296
-
1297
-			if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1298
-				$uniq_class .= '-' . $args['value'];
1299
-			} else {
1300
-				$uniq_class .= '-' . $count;
1301
-			}
1302
-			$wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1303
-
1304
-			$output = self::wrap( array(
1305
-				'content' => $output,
1306
-				'class'   => $wrap_class
1307
-			) );
1308
-		}
1309
-
1310
-		return $output;
1311
-	}
1221
+		    $args = wp_parse_args( $args, $defaults );
1222
+
1223
+		    $output = '';
1224
+
1225
+		    // open/type
1226
+		    $output .= '<input type="radio"';
1227
+
1228
+		    // class
1229
+		    $output .= ' class="form-check-input" ';
1230
+
1231
+		    // name
1232
+		    if ( ! empty( $args['name'] ) ) {
1233
+			    $output .= AUI_Component_Helper::name( $args['name'] );
1234
+		    }
1235
+
1236
+		    // id
1237
+		    if ( ! empty( $args['id'] ) ) {
1238
+			    $output .= AUI_Component_Helper::id( $args['id'] . $count );
1239
+		    }
1240
+
1241
+		    // title
1242
+		    if ( ! empty( $args['title'] ) ) {
1243
+			    $output .= AUI_Component_Helper::title( $args['title'] );
1244
+		    }
1245
+
1246
+		    // value
1247
+		    if ( isset( $args['value'] ) ) {
1248
+			    $output .= AUI_Component_Helper::value( $args['value'] );
1249
+		    }
1250
+
1251
+		    // checked, for radio and checkboxes
1252
+		    if ( $args['checked'] ) {
1253
+			    $output .= ' checked ';
1254
+		    }
1255
+
1256
+		    // data-attributes
1257
+		    $output .= AUI_Component_Helper::data_attributes( $args );
1258
+
1259
+		    // aria-attributes
1260
+		    $output .= AUI_Component_Helper::aria_attributes( $args );
1261
+
1262
+		    // extra attributes
1263
+		    if ( ! empty( $args['extra_attributes'] ) ) {
1264
+			    $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1265
+		    }
1266
+
1267
+		    // required
1268
+		    if ( ! empty( $args['required'] ) ) {
1269
+			    $output .= ' required';
1270
+		    }
1271
+
1272
+		    // close opening tag
1273
+		    $output .= '>';
1274
+
1275
+		    // label
1276
+		    if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1277
+		    } elseif ( ! empty( $args['label'] ) ) {
1278
+			    $output .= self::label( array(
1279
+				    'title' => $args['label'],
1280
+				    'for'   => $args['id'] . $count,
1281
+				    'class' => 'form-check-label'
1282
+			    ), 'radio' );
1283
+		    }
1284
+
1285
+		    // wrap
1286
+		    if ( ! $args['no_wrap'] ) {
1287
+			    $wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1288
+
1289
+			    // Unique wrap class
1290
+			    $uniq_class = 'fwrap';
1291
+			    if ( ! empty( $args['name'] ) ) {
1292
+				    $uniq_class .= '-' . $args['name'];
1293
+			    } else if ( ! empty( $args['id'] ) ) {
1294
+				    $uniq_class .= '-' . $args['id'];
1295
+			    }
1296
+
1297
+			    if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1298
+				    $uniq_class .= '-' . $args['value'];
1299
+			    } else {
1300
+				    $uniq_class .= '-' . $count;
1301
+			    }
1302
+			    $wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1303
+
1304
+			    $output = self::wrap( array(
1305
+				    'content' => $output,
1306
+				    'class'   => $wrap_class
1307
+			    ) );
1308
+		    }
1309
+
1310
+		    return $output;
1311
+	    }
1312 1312
 
1313 1313
 }
1314 1314
\ No newline at end of file
Please login to merge, or discard this patch.
vendor/ayecode/wp-ayecode-ui/example-plugin.php 3 patches
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -15,7 +15,7 @@  discard block
 block discarded – undo
15 15
 */
16 16
 
17 17
 // If this file is called directly, abort.
18
-if ( ! defined( 'WPINC' ) ) {
18
+if (!defined('WPINC')) {
19 19
 	die;
20 20
 }
21 21
 
@@ -29,14 +29,14 @@  discard block
 block discarded – undo
29 29
 	public function __construct() {
30 30
 
31 31
 		// load AUI
32
-		require_once( dirname( __FILE__ ) . '/ayecode-ui-loader.php' );
32
+		require_once(dirname(__FILE__) . '/ayecode-ui-loader.php');
33 33
 
34 34
 		// Maybe show example page
35
-		add_action( 'template_redirect', array( $this,'maybe_show_examples' ) );
35
+		add_action('template_redirect', array($this, 'maybe_show_examples'));
36 36
 	}
37 37
 
38
-	public function maybe_show_examples(){
39
-		if ( current_user_can( 'manage_options' ) && isset( $_REQUEST['preview-aui'] ) ) {
38
+	public function maybe_show_examples() {
39
+		if (current_user_can('manage_options') && isset($_REQUEST['preview-aui'])) {
40 40
 			echo "<head>";
41 41
 			wp_head();
42 42
 			echo "</head>";
@@ -48,7 +48,7 @@  discard block
 block discarded – undo
48 48
 		}
49 49
 	}
50 50
 
51
-	public function get_examples(){
51
+	public function get_examples() {
52 52
 		$output = '';
53 53
 
54 54
 		// open form
Please login to merge, or discard this patch.
Indentation   +212 added lines, -212 removed lines patch added patch discarded remove patch
@@ -16,222 +16,222 @@
 block discarded – undo
16 16
 
17 17
 // If this file is called directly, abort.
18 18
 if ( ! defined( 'WPINC' ) ) {
19
-	die;
19
+    die;
20 20
 }
21 21
 
22 22
 class AyeCode_UI_Plugin {
23 23
 
24
-	/**
25
-	 * AUI Plugin constructor.
26
-	 *
27
-	 * @since 1.0.0
28
-	 */
29
-	public function __construct() {
30
-
31
-		// load AUI
32
-		require_once( dirname( __FILE__ ) . '/ayecode-ui-loader.php' );
33
-
34
-		// Maybe show example page
35
-		add_action( 'template_redirect', array( $this,'maybe_show_examples' ) );
36
-	}
37
-
38
-	public function maybe_show_examples(){
39
-		if ( current_user_can( 'manage_options' ) && isset( $_REQUEST['preview-aui'] ) ) {
40
-			echo "<head>";
41
-			wp_head();
42
-			echo "</head>";
43
-			echo "<body class='bsui'>";
44
-			echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
45
-			wp_footer();
46
-			echo "</body>";
47
-			exit;
48
-		}
49
-	}
50
-
51
-	public function get_examples(){
52
-		$output = '';
53
-
54
-		// open form
55
-		$output .= "<form class='p-5 m-5 border rounded bg-white'>";
56
-
57
-		$output .= aui()->input(
58
-			array(
59
-				'type'             => 'datepicker',
60
-				'id'               => 'date_example_sm',
61
-				'size'             => 'sm',
62
-				'name'             => 'date_example_sm',
63
-				'label'            => 'Date Input Label (small)',
64
-				'help_text'        => 'help text',
65
-				'label_type'       => 'top',
66
-				'placeholder'      => 'YYYY-MM-DD 00:00',
67
-				'value'            => '',
68
-				'extra_attributes' => array(
69
-					'data-enable-time' => 'true',
70
-					'data-time_24hr'   => 'true',
71
-					'data-allow-input' => 'true',
72
-				),
73
-			)
74
-		);
75
-
76
-		$output .= aui()->input(
77
-			array(
78
-				'type'             => 'datepicker',
79
-				'id'               => 'date_example',
80
-				//'size'             => 'smx',
81
-				'name'             => 'date_example',
82
-				'label'            => 'Date Input Label',
83
-				'help_text'        => 'help text',
84
-				'label_type'       => 'top',
85
-				'placeholder'      => 'YYYY-MM-DD 00:00',
86
-				'value'            => '',
87
-				'extra_attributes' => array(
88
-					'data-enable-time' => 'true',
89
-					'data-time_24hr'   => 'true',
90
-					'data-allow-input' => 'true',
91
-				),
92
-			)
93
-		);
94
-
95
-		$output .= aui()->input(
96
-			array(
97
-				'type'             => 'datepicker',
98
-				'id'               => 'date_example_lg',
99
-				'size'             => 'lg',
100
-				'name'             => 'date_example_lg',
101
-				'label'            => 'Date Input Label (large)',
102
-				'help_text'        => 'help text',
103
-				'label_type'       => 'top',
104
-				'placeholder'      => 'YYYY-MM-DD 00:00',
105
-				'value'            => '',
106
-				'extra_attributes' => array(
107
-					'data-enable-time' => 'true',
108
-					'data-time_24hr'   => 'true',
109
-					//'data-allow-input' => 'true',
110
-				),
111
-			)
112
-		);
113
-
114
-		// input example
115
-		$output .= aui()->input(
116
-			array(
117
-				'type'  =>  'text',
118
-				'id'    =>  'text-example',
119
-				'size'             => 'sm',
120
-				//'clear_icon'    => true,
121
-				'name'    =>  'text-example',
122
-				'placeholder'   => 'text placeholder',
123
-				'title'   => 'Text input example',
124
-				'value' =>  '',
125
-				'required'  => false,
126
-				'help_text' => 'help text',
127
-				'label' => 'Text input example label',
128
-				'label_type' => 'top'
129
-			)
130
-		);
131
-
132
-		$output .= aui()->input(
133
-			array(
134
-				'type'  =>  'search',
135
-				'id'    =>  'text-example',
136
-				'size'             => 'sm',
137
-				//'clear_icon'    => true,
138
-				'name'    =>  'text-example',
139
-				'placeholder'   => 'text placeholder',
140
-				'title'   => 'Text input example',
141
-				'value' =>  '',
142
-				'required'  => false,
143
-				'help_text' => 'help text',
144
-				'label' => 'Text input example label',
145
-				'label_type' => 'top'
146
-			)
147
-		);
148
-
149
-		// input example
150
-		$output .= aui()->input(
151
-			array(
152
-				'type'  =>  'url',
153
-				'id'    =>  'text-example2',
154
-				'name'    =>  'text-example',
155
-				'placeholder'   => 'url placeholder',
156
-				'title'   => 'Text input example',
157
-				'value' =>  '',
158
-				'required'  => false,
159
-				'help_text' => 'help text',
160
-				'label' => 'Text input example label'
161
-			)
162
-		);
163
-
164
-		// checkbox example
165
-		$output .= aui()->input(
166
-			array(
167
-				'type'  =>  'checkbox',
168
-				'id'    =>  'checkbox-example',
169
-				'name'    =>  'checkbox-example',
170
-				'placeholder'   => 'checkbox-example',
171
-				'title'   => 'Checkbox example',
172
-				'value' =>  '1',
173
-				'checked'   => true,
174
-				'required'  => false,
175
-				'help_text' => 'help text',
176
-				'label' => 'Checkbox checked'
177
-			)
178
-		);
179
-
180
-		// checkbox example
181
-		$output .= aui()->input(
182
-			array(
183
-				'type'  =>  'checkbox',
184
-				'id'    =>  'checkbox-example2',
185
-				'name'    =>  'checkbox-example2',
186
-				'placeholder'   => 'checkbox-example',
187
-				'title'   => 'Checkbox example',
188
-				'value' =>  '1',
189
-				'checked'   => false,
190
-				'required'  => false,
191
-				'help_text' => 'help text',
192
-				'label' => 'Checkbox un-checked'
193
-			)
194
-		);
195
-
196
-		// switch example
197
-		$output .= aui()->input(
198
-			array(
199
-				'type'  =>  'checkbox',
200
-				'id'    =>  'switch-example',
201
-				'name'    =>  'switch-example',
202
-				'placeholder'   => 'checkbox-example',
203
-				'title'   => 'Switch example',
204
-				'value' =>  '1',
205
-				'checked'   => true,
206
-				'switch'    => true,
207
-				'required'  => false,
208
-				'help_text' => 'help text',
209
-				'label' => 'Switch on'
210
-			)
211
-		);
212
-
213
-		// switch example
214
-		$output .= aui()->input(
215
-			array(
216
-				'type'  =>  'checkbox',
217
-				'id'    =>  'switch-example2',
218
-				'name'    =>  'switch-example2',
219
-				'placeholder'   => 'checkbox-example',
220
-				'title'   => 'Switch example',
221
-				'value' =>  '1',
222
-				'checked'   => false,
223
-				'switch'    => true,
224
-				'required'  => false,
225
-				'help_text' => 'help text',
226
-				'label' => 'Switch off'
227
-			)
228
-		);
229
-
230
-		// close form
231
-		$output .= "</form>";
232
-
233
-		return $output;
234
-	}
24
+    /**
25
+     * AUI Plugin constructor.
26
+     *
27
+     * @since 1.0.0
28
+     */
29
+    public function __construct() {
30
+
31
+        // load AUI
32
+        require_once( dirname( __FILE__ ) . '/ayecode-ui-loader.php' );
33
+
34
+        // Maybe show example page
35
+        add_action( 'template_redirect', array( $this,'maybe_show_examples' ) );
36
+    }
37
+
38
+    public function maybe_show_examples(){
39
+        if ( current_user_can( 'manage_options' ) && isset( $_REQUEST['preview-aui'] ) ) {
40
+            echo "<head>";
41
+            wp_head();
42
+            echo "</head>";
43
+            echo "<body class='bsui'>";
44
+            echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
45
+            wp_footer();
46
+            echo "</body>";
47
+            exit;
48
+        }
49
+    }
50
+
51
+    public function get_examples(){
52
+        $output = '';
53
+
54
+        // open form
55
+        $output .= "<form class='p-5 m-5 border rounded bg-white'>";
56
+
57
+        $output .= aui()->input(
58
+            array(
59
+                'type'             => 'datepicker',
60
+                'id'               => 'date_example_sm',
61
+                'size'             => 'sm',
62
+                'name'             => 'date_example_sm',
63
+                'label'            => 'Date Input Label (small)',
64
+                'help_text'        => 'help text',
65
+                'label_type'       => 'top',
66
+                'placeholder'      => 'YYYY-MM-DD 00:00',
67
+                'value'            => '',
68
+                'extra_attributes' => array(
69
+                    'data-enable-time' => 'true',
70
+                    'data-time_24hr'   => 'true',
71
+                    'data-allow-input' => 'true',
72
+                ),
73
+            )
74
+        );
75
+
76
+        $output .= aui()->input(
77
+            array(
78
+                'type'             => 'datepicker',
79
+                'id'               => 'date_example',
80
+                //'size'             => 'smx',
81
+                'name'             => 'date_example',
82
+                'label'            => 'Date Input Label',
83
+                'help_text'        => 'help text',
84
+                'label_type'       => 'top',
85
+                'placeholder'      => 'YYYY-MM-DD 00:00',
86
+                'value'            => '',
87
+                'extra_attributes' => array(
88
+                    'data-enable-time' => 'true',
89
+                    'data-time_24hr'   => 'true',
90
+                    'data-allow-input' => 'true',
91
+                ),
92
+            )
93
+        );
94
+
95
+        $output .= aui()->input(
96
+            array(
97
+                'type'             => 'datepicker',
98
+                'id'               => 'date_example_lg',
99
+                'size'             => 'lg',
100
+                'name'             => 'date_example_lg',
101
+                'label'            => 'Date Input Label (large)',
102
+                'help_text'        => 'help text',
103
+                'label_type'       => 'top',
104
+                'placeholder'      => 'YYYY-MM-DD 00:00',
105
+                'value'            => '',
106
+                'extra_attributes' => array(
107
+                    'data-enable-time' => 'true',
108
+                    'data-time_24hr'   => 'true',
109
+                    //'data-allow-input' => 'true',
110
+                ),
111
+            )
112
+        );
113
+
114
+        // input example
115
+        $output .= aui()->input(
116
+            array(
117
+                'type'  =>  'text',
118
+                'id'    =>  'text-example',
119
+                'size'             => 'sm',
120
+                //'clear_icon'    => true,
121
+                'name'    =>  'text-example',
122
+                'placeholder'   => 'text placeholder',
123
+                'title'   => 'Text input example',
124
+                'value' =>  '',
125
+                'required'  => false,
126
+                'help_text' => 'help text',
127
+                'label' => 'Text input example label',
128
+                'label_type' => 'top'
129
+            )
130
+        );
131
+
132
+        $output .= aui()->input(
133
+            array(
134
+                'type'  =>  'search',
135
+                'id'    =>  'text-example',
136
+                'size'             => 'sm',
137
+                //'clear_icon'    => true,
138
+                'name'    =>  'text-example',
139
+                'placeholder'   => 'text placeholder',
140
+                'title'   => 'Text input example',
141
+                'value' =>  '',
142
+                'required'  => false,
143
+                'help_text' => 'help text',
144
+                'label' => 'Text input example label',
145
+                'label_type' => 'top'
146
+            )
147
+        );
148
+
149
+        // input example
150
+        $output .= aui()->input(
151
+            array(
152
+                'type'  =>  'url',
153
+                'id'    =>  'text-example2',
154
+                'name'    =>  'text-example',
155
+                'placeholder'   => 'url placeholder',
156
+                'title'   => 'Text input example',
157
+                'value' =>  '',
158
+                'required'  => false,
159
+                'help_text' => 'help text',
160
+                'label' => 'Text input example label'
161
+            )
162
+        );
163
+
164
+        // checkbox example
165
+        $output .= aui()->input(
166
+            array(
167
+                'type'  =>  'checkbox',
168
+                'id'    =>  'checkbox-example',
169
+                'name'    =>  'checkbox-example',
170
+                'placeholder'   => 'checkbox-example',
171
+                'title'   => 'Checkbox example',
172
+                'value' =>  '1',
173
+                'checked'   => true,
174
+                'required'  => false,
175
+                'help_text' => 'help text',
176
+                'label' => 'Checkbox checked'
177
+            )
178
+        );
179
+
180
+        // checkbox example
181
+        $output .= aui()->input(
182
+            array(
183
+                'type'  =>  'checkbox',
184
+                'id'    =>  'checkbox-example2',
185
+                'name'    =>  'checkbox-example2',
186
+                'placeholder'   => 'checkbox-example',
187
+                'title'   => 'Checkbox example',
188
+                'value' =>  '1',
189
+                'checked'   => false,
190
+                'required'  => false,
191
+                'help_text' => 'help text',
192
+                'label' => 'Checkbox un-checked'
193
+            )
194
+        );
195
+
196
+        // switch example
197
+        $output .= aui()->input(
198
+            array(
199
+                'type'  =>  'checkbox',
200
+                'id'    =>  'switch-example',
201
+                'name'    =>  'switch-example',
202
+                'placeholder'   => 'checkbox-example',
203
+                'title'   => 'Switch example',
204
+                'value' =>  '1',
205
+                'checked'   => true,
206
+                'switch'    => true,
207
+                'required'  => false,
208
+                'help_text' => 'help text',
209
+                'label' => 'Switch on'
210
+            )
211
+        );
212
+
213
+        // switch example
214
+        $output .= aui()->input(
215
+            array(
216
+                'type'  =>  'checkbox',
217
+                'id'    =>  'switch-example2',
218
+                'name'    =>  'switch-example2',
219
+                'placeholder'   => 'checkbox-example',
220
+                'title'   => 'Switch example',
221
+                'value' =>  '1',
222
+                'checked'   => false,
223
+                'switch'    => true,
224
+                'required'  => false,
225
+                'help_text' => 'help text',
226
+                'label' => 'Switch off'
227
+            )
228
+        );
229
+
230
+        // close form
231
+        $output .= "</form>";
232
+
233
+        return $output;
234
+    }
235 235
 }
236 236
 
237 237
 new AyeCode_UI_Plugin();
238 238
\ No newline at end of file
Please login to merge, or discard this patch.
Switch Indentation   +213 added lines, -213 removed lines patch added patch discarded remove patch
@@ -1,4 +1,4 @@  discard block
 block discarded – undo
1
-<?php
1
+    <?php
2 2
 /*
3 3
 Plugin Name: AyeCode UI
4 4
 Plugin URI: https://ayecode.io/
@@ -14,224 +14,224 @@  discard block
 block discarded – undo
14 14
 Tested up to: 6.8
15 15
 */
16 16
 
17
-// If this file is called directly, abort.
18
-if ( ! defined( 'WPINC' ) ) {
19
-	die;
17
+    // If this file is called directly, abort.
18
+    if ( ! defined( 'WPINC' ) ) {
19
+	    die;
20 20
 }
21 21
 
22
-class AyeCode_UI_Plugin {
22
+    class AyeCode_UI_Plugin {
23 23
 
24
-	/**
24
+	    /**
25 25
 	 * AUI Plugin constructor.
26 26
 	 *
27 27
 	 * @since 1.0.0
28 28
 	 */
29
-	public function __construct() {
30
-
31
-		// load AUI
32
-		require_once( dirname( __FILE__ ) . '/ayecode-ui-loader.php' );
33
-
34
-		// Maybe show example page
35
-		add_action( 'template_redirect', array( $this,'maybe_show_examples' ) );
36
-	}
37
-
38
-	public function maybe_show_examples(){
39
-		if ( current_user_can( 'manage_options' ) && isset( $_REQUEST['preview-aui'] ) ) {
40
-			echo "<head>";
41
-			wp_head();
42
-			echo "</head>";
43
-			echo "<body class='bsui'>";
44
-			echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
45
-			wp_footer();
46
-			echo "</body>";
47
-			exit;
48
-		}
49
-	}
50
-
51
-	public function get_examples(){
52
-		$output = '';
53
-
54
-		// open form
55
-		$output .= "<form class='p-5 m-5 border rounded bg-white'>";
56
-
57
-		$output .= aui()->input(
58
-			array(
59
-				'type'             => 'datepicker',
60
-				'id'               => 'date_example_sm',
61
-				'size'             => 'sm',
62
-				'name'             => 'date_example_sm',
63
-				'label'            => 'Date Input Label (small)',
64
-				'help_text'        => 'help text',
65
-				'label_type'       => 'top',
66
-				'placeholder'      => 'YYYY-MM-DD 00:00',
67
-				'value'            => '',
68
-				'extra_attributes' => array(
69
-					'data-enable-time' => 'true',
70
-					'data-time_24hr'   => 'true',
71
-					'data-allow-input' => 'true',
72
-				),
73
-			)
74
-		);
75
-
76
-		$output .= aui()->input(
77
-			array(
78
-				'type'             => 'datepicker',
79
-				'id'               => 'date_example',
80
-				//'size'             => 'smx',
81
-				'name'             => 'date_example',
82
-				'label'            => 'Date Input Label',
83
-				'help_text'        => 'help text',
84
-				'label_type'       => 'top',
85
-				'placeholder'      => 'YYYY-MM-DD 00:00',
86
-				'value'            => '',
87
-				'extra_attributes' => array(
88
-					'data-enable-time' => 'true',
89
-					'data-time_24hr'   => 'true',
90
-					'data-allow-input' => 'true',
91
-				),
92
-			)
93
-		);
94
-
95
-		$output .= aui()->input(
96
-			array(
97
-				'type'             => 'datepicker',
98
-				'id'               => 'date_example_lg',
99
-				'size'             => 'lg',
100
-				'name'             => 'date_example_lg',
101
-				'label'            => 'Date Input Label (large)',
102
-				'help_text'        => 'help text',
103
-				'label_type'       => 'top',
104
-				'placeholder'      => 'YYYY-MM-DD 00:00',
105
-				'value'            => '',
106
-				'extra_attributes' => array(
107
-					'data-enable-time' => 'true',
108
-					'data-time_24hr'   => 'true',
109
-					//'data-allow-input' => 'true',
110
-				),
111
-			)
112
-		);
113
-
114
-		// input example
115
-		$output .= aui()->input(
116
-			array(
117
-				'type'  =>  'text',
118
-				'id'    =>  'text-example',
119
-				'size'             => 'sm',
120
-				//'clear_icon'    => true,
121
-				'name'    =>  'text-example',
122
-				'placeholder'   => 'text placeholder',
123
-				'title'   => 'Text input example',
124
-				'value' =>  '',
125
-				'required'  => false,
126
-				'help_text' => 'help text',
127
-				'label' => 'Text input example label',
128
-				'label_type' => 'top'
129
-			)
130
-		);
131
-
132
-		$output .= aui()->input(
133
-			array(
134
-				'type'  =>  'search',
135
-				'id'    =>  'text-example',
136
-				'size'             => 'sm',
137
-				//'clear_icon'    => true,
138
-				'name'    =>  'text-example',
139
-				'placeholder'   => 'text placeholder',
140
-				'title'   => 'Text input example',
141
-				'value' =>  '',
142
-				'required'  => false,
143
-				'help_text' => 'help text',
144
-				'label' => 'Text input example label',
145
-				'label_type' => 'top'
146
-			)
147
-		);
148
-
149
-		// input example
150
-		$output .= aui()->input(
151
-			array(
152
-				'type'  =>  'url',
153
-				'id'    =>  'text-example2',
154
-				'name'    =>  'text-example',
155
-				'placeholder'   => 'url placeholder',
156
-				'title'   => 'Text input example',
157
-				'value' =>  '',
158
-				'required'  => false,
159
-				'help_text' => 'help text',
160
-				'label' => 'Text input example label'
161
-			)
162
-		);
163
-
164
-		// checkbox example
165
-		$output .= aui()->input(
166
-			array(
167
-				'type'  =>  'checkbox',
168
-				'id'    =>  'checkbox-example',
169
-				'name'    =>  'checkbox-example',
170
-				'placeholder'   => 'checkbox-example',
171
-				'title'   => 'Checkbox example',
172
-				'value' =>  '1',
173
-				'checked'   => true,
174
-				'required'  => false,
175
-				'help_text' => 'help text',
176
-				'label' => 'Checkbox checked'
177
-			)
178
-		);
179
-
180
-		// checkbox example
181
-		$output .= aui()->input(
182
-			array(
183
-				'type'  =>  'checkbox',
184
-				'id'    =>  'checkbox-example2',
185
-				'name'    =>  'checkbox-example2',
186
-				'placeholder'   => 'checkbox-example',
187
-				'title'   => 'Checkbox example',
188
-				'value' =>  '1',
189
-				'checked'   => false,
190
-				'required'  => false,
191
-				'help_text' => 'help text',
192
-				'label' => 'Checkbox un-checked'
193
-			)
194
-		);
195
-
196
-		// switch example
197
-		$output .= aui()->input(
198
-			array(
199
-				'type'  =>  'checkbox',
200
-				'id'    =>  'switch-example',
201
-				'name'    =>  'switch-example',
202
-				'placeholder'   => 'checkbox-example',
203
-				'title'   => 'Switch example',
204
-				'value' =>  '1',
205
-				'checked'   => true,
206
-				'switch'    => true,
207
-				'required'  => false,
208
-				'help_text' => 'help text',
209
-				'label' => 'Switch on'
210
-			)
211
-		);
212
-
213
-		// switch example
214
-		$output .= aui()->input(
215
-			array(
216
-				'type'  =>  'checkbox',
217
-				'id'    =>  'switch-example2',
218
-				'name'    =>  'switch-example2',
219
-				'placeholder'   => 'checkbox-example',
220
-				'title'   => 'Switch example',
221
-				'value' =>  '1',
222
-				'checked'   => false,
223
-				'switch'    => true,
224
-				'required'  => false,
225
-				'help_text' => 'help text',
226
-				'label' => 'Switch off'
227
-			)
228
-		);
229
-
230
-		// close form
231
-		$output .= "</form>";
232
-
233
-		return $output;
234
-	}
29
+	    public function __construct() {
30
+
31
+		    // load AUI
32
+		    require_once( dirname( __FILE__ ) . '/ayecode-ui-loader.php' );
33
+
34
+		    // Maybe show example page
35
+		    add_action( 'template_redirect', array( $this,'maybe_show_examples' ) );
36
+	    }
37
+
38
+	    public function maybe_show_examples(){
39
+		    if ( current_user_can( 'manage_options' ) && isset( $_REQUEST['preview-aui'] ) ) {
40
+			    echo "<head>";
41
+			    wp_head();
42
+			    echo "</head>";
43
+			    echo "<body class='bsui'>";
44
+			    echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
45
+			    wp_footer();
46
+			    echo "</body>";
47
+			    exit;
48
+		    }
49
+	    }
50
+
51
+	    public function get_examples(){
52
+		    $output = '';
53
+
54
+		    // open form
55
+		    $output .= "<form class='p-5 m-5 border rounded bg-white'>";
56
+
57
+		    $output .= aui()->input(
58
+			    array(
59
+				    'type'             => 'datepicker',
60
+				    'id'               => 'date_example_sm',
61
+				    'size'             => 'sm',
62
+				    'name'             => 'date_example_sm',
63
+				    'label'            => 'Date Input Label (small)',
64
+				    'help_text'        => 'help text',
65
+				    'label_type'       => 'top',
66
+				    'placeholder'      => 'YYYY-MM-DD 00:00',
67
+				    'value'            => '',
68
+				    'extra_attributes' => array(
69
+					    'data-enable-time' => 'true',
70
+					    'data-time_24hr'   => 'true',
71
+					    'data-allow-input' => 'true',
72
+				    ),
73
+			    )
74
+		    );
75
+
76
+		    $output .= aui()->input(
77
+			    array(
78
+				    'type'             => 'datepicker',
79
+				    'id'               => 'date_example',
80
+				    //'size'             => 'smx',
81
+				    'name'             => 'date_example',
82
+				    'label'            => 'Date Input Label',
83
+				    'help_text'        => 'help text',
84
+				    'label_type'       => 'top',
85
+				    'placeholder'      => 'YYYY-MM-DD 00:00',
86
+				    'value'            => '',
87
+				    'extra_attributes' => array(
88
+					    'data-enable-time' => 'true',
89
+					    'data-time_24hr'   => 'true',
90
+					    'data-allow-input' => 'true',
91
+				    ),
92
+			    )
93
+		    );
94
+
95
+		    $output .= aui()->input(
96
+			    array(
97
+				    'type'             => 'datepicker',
98
+				    'id'               => 'date_example_lg',
99
+				    'size'             => 'lg',
100
+				    'name'             => 'date_example_lg',
101
+				    'label'            => 'Date Input Label (large)',
102
+				    'help_text'        => 'help text',
103
+				    'label_type'       => 'top',
104
+				    'placeholder'      => 'YYYY-MM-DD 00:00',
105
+				    'value'            => '',
106
+				    'extra_attributes' => array(
107
+					    'data-enable-time' => 'true',
108
+					    'data-time_24hr'   => 'true',
109
+					    //'data-allow-input' => 'true',
110
+				    ),
111
+			    )
112
+		    );
113
+
114
+		    // input example
115
+		    $output .= aui()->input(
116
+			    array(
117
+				    'type'  =>  'text',
118
+				    'id'    =>  'text-example',
119
+				    'size'             => 'sm',
120
+				    //'clear_icon'    => true,
121
+				    'name'    =>  'text-example',
122
+				    'placeholder'   => 'text placeholder',
123
+				    'title'   => 'Text input example',
124
+				    'value' =>  '',
125
+				    'required'  => false,
126
+				    'help_text' => 'help text',
127
+				    'label' => 'Text input example label',
128
+				    'label_type' => 'top'
129
+			    )
130
+		    );
131
+
132
+		    $output .= aui()->input(
133
+			    array(
134
+				    'type'  =>  'search',
135
+				    'id'    =>  'text-example',
136
+				    'size'             => 'sm',
137
+				    //'clear_icon'    => true,
138
+				    'name'    =>  'text-example',
139
+				    'placeholder'   => 'text placeholder',
140
+				    'title'   => 'Text input example',
141
+				    'value' =>  '',
142
+				    'required'  => false,
143
+				    'help_text' => 'help text',
144
+				    'label' => 'Text input example label',
145
+				    'label_type' => 'top'
146
+			    )
147
+		    );
148
+
149
+		    // input example
150
+		    $output .= aui()->input(
151
+			    array(
152
+				    'type'  =>  'url',
153
+				    'id'    =>  'text-example2',
154
+				    'name'    =>  'text-example',
155
+				    'placeholder'   => 'url placeholder',
156
+				    'title'   => 'Text input example',
157
+				    'value' =>  '',
158
+				    'required'  => false,
159
+				    'help_text' => 'help text',
160
+				    'label' => 'Text input example label'
161
+			    )
162
+		    );
163
+
164
+		    // checkbox example
165
+		    $output .= aui()->input(
166
+			    array(
167
+				    'type'  =>  'checkbox',
168
+				    'id'    =>  'checkbox-example',
169
+				    'name'    =>  'checkbox-example',
170
+				    'placeholder'   => 'checkbox-example',
171
+				    'title'   => 'Checkbox example',
172
+				    'value' =>  '1',
173
+				    'checked'   => true,
174
+				    'required'  => false,
175
+				    'help_text' => 'help text',
176
+				    'label' => 'Checkbox checked'
177
+			    )
178
+		    );
179
+
180
+		    // checkbox example
181
+		    $output .= aui()->input(
182
+			    array(
183
+				    'type'  =>  'checkbox',
184
+				    'id'    =>  'checkbox-example2',
185
+				    'name'    =>  'checkbox-example2',
186
+				    'placeholder'   => 'checkbox-example',
187
+				    'title'   => 'Checkbox example',
188
+				    'value' =>  '1',
189
+				    'checked'   => false,
190
+				    'required'  => false,
191
+				    'help_text' => 'help text',
192
+				    'label' => 'Checkbox un-checked'
193
+			    )
194
+		    );
195
+
196
+		    // switch example
197
+		    $output .= aui()->input(
198
+			    array(
199
+				    'type'  =>  'checkbox',
200
+				    'id'    =>  'switch-example',
201
+				    'name'    =>  'switch-example',
202
+				    'placeholder'   => 'checkbox-example',
203
+				    'title'   => 'Switch example',
204
+				    'value' =>  '1',
205
+				    'checked'   => true,
206
+				    'switch'    => true,
207
+				    'required'  => false,
208
+				    'help_text' => 'help text',
209
+				    'label' => 'Switch on'
210
+			    )
211
+		    );
212
+
213
+		    // switch example
214
+		    $output .= aui()->input(
215
+			    array(
216
+				    'type'  =>  'checkbox',
217
+				    'id'    =>  'switch-example2',
218
+				    'name'    =>  'switch-example2',
219
+				    'placeholder'   => 'checkbox-example',
220
+				    'title'   => 'Switch example',
221
+				    'value' =>  '1',
222
+				    'checked'   => false,
223
+				    'switch'    => true,
224
+				    'required'  => false,
225
+				    'help_text' => 'help text',
226
+				    'label' => 'Switch off'
227
+			    )
228
+		    );
229
+
230
+		    // close form
231
+		    $output .= "</form>";
232
+
233
+		    return $output;
234
+	    }
235 235
 }
236 236
 
237
-new AyeCode_UI_Plugin();
238 237
\ No newline at end of file
238
+    new AyeCode_UI_Plugin();
239 239
\ No newline at end of file
Please login to merge, or discard this patch.
includes/payments/class-getpaid-payment-form-submission-items.php 2 patches
Indentation   +90 added lines, -90 removed lines patch added patch discarded remove patch
@@ -12,51 +12,51 @@  discard block
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Payment_Form_Submission_Items {
14 14
 
15
-	/**
16
-	 * Submission items.
17
-	 * @var GetPaid_Form_Item[]
18
-	 */
19
-	public $items = array();
15
+    /**
16
+     * Submission items.
17
+     * @var GetPaid_Form_Item[]
18
+     */
19
+    public $items = array();
20 20
 
21 21
     /**
22
-	 * Class constructor
23
-	 *
24
-	 * @param GetPaid_Payment_Form_Submission $submission
25
-	 */
26
-	public function __construct( $submission ) {
27
-
28
-		$data         = $submission->get_data();
29
-		$payment_form = $submission->get_payment_form();
30
-		$invoice      = $submission->get_invoice();
31
-		$force_prices = array();
32
-
33
-		// Prepare the selected items.
34
-		$selected_items = array();
35
-		if ( ! empty( $data['getpaid-items'] ) ) {
36
-			$selected_items = wpinv_clean( $data['getpaid-items'] );
37
-
38
-			if ( ! empty( $invoice ) && $submission->is_initial_fetch() ) {
39
-				foreach ( $invoice->get_items() as $invoice_item ) {
40
-					if ( isset( $selected_items[ $invoice_item->get_id() ] ) ) {
41
-						$selected_items[ $invoice_item->get_id() ]['quantity'] = $invoice_item->get_quantity();
42
-						$selected_items[ $invoice_item->get_id() ]['price']    = $invoice_item->get_price();
43
-
44
-						$force_prices[ $invoice_item->get_id() ] = $invoice_item->get_price();
45
-					}
46
-				}
47
-			}
48
-		}
49
-
50
-		// (Maybe) set form items.
51
-		if ( isset( $data['getpaid-form-items'] ) ) {
52
-
53
-			// Confirm items key.
54
-			$form_items = wpinv_clean( $data['getpaid-form-items'] );
55
-			if ( ! isset( $data['getpaid-form-items-key'] ) || md5( NONCE_KEY . AUTH_KEY . $form_items ) !== $data['getpaid-form-items-key'] ) {
56
-				throw new Exception( __( 'We could not validate the form items. Please reload the page and try again.', 'invoicing' ) );
57
-			}
58
-
59
-			$items    = array();
22
+     * Class constructor
23
+     *
24
+     * @param GetPaid_Payment_Form_Submission $submission
25
+     */
26
+    public function __construct( $submission ) {
27
+
28
+        $data         = $submission->get_data();
29
+        $payment_form = $submission->get_payment_form();
30
+        $invoice      = $submission->get_invoice();
31
+        $force_prices = array();
32
+
33
+        // Prepare the selected items.
34
+        $selected_items = array();
35
+        if ( ! empty( $data['getpaid-items'] ) ) {
36
+            $selected_items = wpinv_clean( $data['getpaid-items'] );
37
+
38
+            if ( ! empty( $invoice ) && $submission->is_initial_fetch() ) {
39
+                foreach ( $invoice->get_items() as $invoice_item ) {
40
+                    if ( isset( $selected_items[ $invoice_item->get_id() ] ) ) {
41
+                        $selected_items[ $invoice_item->get_id() ]['quantity'] = $invoice_item->get_quantity();
42
+                        $selected_items[ $invoice_item->get_id() ]['price']    = $invoice_item->get_price();
43
+
44
+                        $force_prices[ $invoice_item->get_id() ] = $invoice_item->get_price();
45
+                    }
46
+                }
47
+            }
48
+        }
49
+
50
+        // (Maybe) set form items.
51
+        if ( isset( $data['getpaid-form-items'] ) ) {
52
+
53
+            // Confirm items key.
54
+            $form_items = wpinv_clean( $data['getpaid-form-items'] );
55
+            if ( ! isset( $data['getpaid-form-items-key'] ) || md5( NONCE_KEY . AUTH_KEY . $form_items ) !== $data['getpaid-form-items-key'] ) {
56
+                throw new Exception( __( 'We could not validate the form items. Please reload the page and try again.', 'invoicing' ) );
57
+            }
58
+
59
+            $items    = array();
60 60
             $item_ids = array();
61 61
 
62 62
             foreach ( getpaid_convert_items_to_array( $form_items ) as $item_id => $qty ) {
@@ -69,10 +69,10 @@  discard block
 block discarded – undo
69 69
                         $item->set_is_required( false );
70 70
                     }
71 71
 
72
-					if ( ! $item->user_can_set_their_price() && isset( $force_prices[ $item_id ] ) ) {
73
-						$item->set_is_dynamic_pricing( true );
74
-						$item->set_minimum_price( 0 );
75
-					}
72
+                    if ( ! $item->user_can_set_their_price() && isset( $force_prices[ $item_id ] ) ) {
73
+                        $item->set_is_dynamic_pricing( true );
74
+                        $item->set_minimum_price( 0 );
75
+                    }
76 76
 
77 77
                     $item_ids[] = $item->get_id();
78 78
                     $items[]    = $item;
@@ -87,61 +87,61 @@  discard block
 block discarded – undo
87 87
                         $items[]    = $item;
88 88
                     }
89 89
                 }
90
-			}
90
+            }
91 91
 
92 92
             $payment_form->set_items( $items );
93 93
 
94
-		}
95
-
96
-		// Process each individual item.
97
-		foreach ( $payment_form->get_items() as $item ) {
98
-			$this->process_item( $item, $selected_items, $submission );
99
-		}
100
-
101
-	}
102
-
103
-	/**
104
-	 * Process a single item.
105
-	 *
106
-	 * @param GetPaid_Form_Item $item
107
-	 * @param array $selected_items
108
-	 * @param GetPaid_Payment_Form_Submission $submission
109
-	 */
110
-	public function process_item( $item, $selected_items, $submission ) {
94
+        }
111 95
 
112
-		// Abort if this is an optional item and it has not been selected.
113
-		if ( ! $item->is_required() && ! isset( $selected_items[ $item->get_id() ] ) ) {
114
-			return;
115
-		}
96
+        // Process each individual item.
97
+        foreach ( $payment_form->get_items() as $item ) {
98
+            $this->process_item( $item, $selected_items, $submission );
99
+        }
116 100
 
117
-		// (maybe) let customers change the quantities and prices.
118
-		if ( isset( $selected_items[ $item->get_id() ] ) ) {
101
+    }
119 102
 
120
-			// Maybe change the quantities.
121
-			if ( $item->allows_quantities() ) {
122
-				$item->set_quantity( (float) $selected_items[ $item->get_id() ]['quantity'] );
123
-			}
103
+    /**
104
+     * Process a single item.
105
+     *
106
+     * @param GetPaid_Form_Item $item
107
+     * @param array $selected_items
108
+     * @param GetPaid_Payment_Form_Submission $submission
109
+     */
110
+    public function process_item( $item, $selected_items, $submission ) {
111
+
112
+        // Abort if this is an optional item and it has not been selected.
113
+        if ( ! $item->is_required() && ! isset( $selected_items[ $item->get_id() ] ) ) {
114
+            return;
115
+        }
116
+
117
+        // (maybe) let customers change the quantities and prices.
118
+        if ( isset( $selected_items[ $item->get_id() ] ) ) {
119
+
120
+            // Maybe change the quantities.
121
+            if ( $item->allows_quantities() ) {
122
+                $item->set_quantity( (float) $selected_items[ $item->get_id() ]['quantity'] );
123
+            }
124 124
 
125
-			// Maybe change the price.
126
-			if ( $item->user_can_set_their_price() ) {
127
-				$price = (float) wpinv_sanitize_amount( $selected_items[ $item->get_id() ]['price'] );
125
+            // Maybe change the price.
126
+            if ( $item->user_can_set_their_price() ) {
127
+                $price = (float) wpinv_sanitize_amount( $selected_items[ $item->get_id() ]['price'] );
128 128
 
129
-				if ( $item->get_minimum_price() > $price ) {
130
-					throw new Exception( sprintf( __( 'The minimum allowed amount is %s', 'invoicing' ), getpaid_unstandardize_amount( $item->get_minimum_price() ) ) );
131
-				}
129
+                if ( $item->get_minimum_price() > $price ) {
130
+                    throw new Exception( sprintf( __( 'The minimum allowed amount is %s', 'invoicing' ), getpaid_unstandardize_amount( $item->get_minimum_price() ) ) );
131
+                }
132 132
 
133
-				$item->set_price( $price );
133
+                $item->set_price( $price );
134 134
 
135
-			}
136
-		}
135
+            }
136
+        }
137 137
 
138
-		if ( 0 == $item->get_quantity() ) {
139
-			return;
140
-		}
138
+        if ( 0 == $item->get_quantity() ) {
139
+            return;
140
+        }
141 141
 
142
-		// Save the item.
143
-		$this->items[] = apply_filters( 'getpaid_payment_form_submission_processed_item', $item, $submission );
142
+        // Save the item.
143
+        $this->items[] = apply_filters( 'getpaid_payment_form_submission_processed_item', $item, $submission );
144 144
 
145
-	}
145
+    }
146 146
 
147 147
 }
Please login to merge, or discard this patch.
Spacing   +43 added lines, -43 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 
9 9
 /**
10 10
  * Payment form submission itemss class
@@ -23,7 +23,7 @@  discard block
 block discarded – undo
23 23
 	 *
24 24
 	 * @param GetPaid_Payment_Form_Submission $submission
25 25
 	 */
26
-	public function __construct( $submission ) {
26
+	public function __construct($submission) {
27 27
 
28 28
 		$data         = $submission->get_data();
29 29
 		$payment_form = $submission->get_payment_form();
@@ -32,46 +32,46 @@  discard block
 block discarded – undo
32 32
 
33 33
 		// Prepare the selected items.
34 34
 		$selected_items = array();
35
-		if ( ! empty( $data['getpaid-items'] ) ) {
36
-			$selected_items = wpinv_clean( $data['getpaid-items'] );
35
+		if (!empty($data['getpaid-items'])) {
36
+			$selected_items = wpinv_clean($data['getpaid-items']);
37 37
 
38
-			if ( ! empty( $invoice ) && $submission->is_initial_fetch() ) {
39
-				foreach ( $invoice->get_items() as $invoice_item ) {
40
-					if ( isset( $selected_items[ $invoice_item->get_id() ] ) ) {
41
-						$selected_items[ $invoice_item->get_id() ]['quantity'] = $invoice_item->get_quantity();
42
-						$selected_items[ $invoice_item->get_id() ]['price']    = $invoice_item->get_price();
38
+			if (!empty($invoice) && $submission->is_initial_fetch()) {
39
+				foreach ($invoice->get_items() as $invoice_item) {
40
+					if (isset($selected_items[$invoice_item->get_id()])) {
41
+						$selected_items[$invoice_item->get_id()]['quantity'] = $invoice_item->get_quantity();
42
+						$selected_items[$invoice_item->get_id()]['price']    = $invoice_item->get_price();
43 43
 
44
-						$force_prices[ $invoice_item->get_id() ] = $invoice_item->get_price();
44
+						$force_prices[$invoice_item->get_id()] = $invoice_item->get_price();
45 45
 					}
46 46
 				}
47 47
 			}
48 48
 		}
49 49
 
50 50
 		// (Maybe) set form items.
51
-		if ( isset( $data['getpaid-form-items'] ) ) {
51
+		if (isset($data['getpaid-form-items'])) {
52 52
 
53 53
 			// Confirm items key.
54
-			$form_items = wpinv_clean( $data['getpaid-form-items'] );
55
-			if ( ! isset( $data['getpaid-form-items-key'] ) || md5( NONCE_KEY . AUTH_KEY . $form_items ) !== $data['getpaid-form-items-key'] ) {
56
-				throw new Exception( __( 'We could not validate the form items. Please reload the page and try again.', 'invoicing' ) );
54
+			$form_items = wpinv_clean($data['getpaid-form-items']);
55
+			if (!isset($data['getpaid-form-items-key']) || md5(NONCE_KEY . AUTH_KEY . $form_items) !== $data['getpaid-form-items-key']) {
56
+				throw new Exception(__('We could not validate the form items. Please reload the page and try again.', 'invoicing'));
57 57
 			}
58 58
 
59
-			$items    = array();
59
+			$items = array();
60 60
             $item_ids = array();
61 61
 
62
-            foreach ( getpaid_convert_items_to_array( $form_items ) as $item_id => $qty ) {
63
-                if ( ! in_array( $item_id, $item_ids ) ) {
64
-                    $item = new GetPaid_Form_Item( $item_id );
65
-                    $item->set_quantity( $qty );
62
+            foreach (getpaid_convert_items_to_array($form_items) as $item_id => $qty) {
63
+                if (!in_array($item_id, $item_ids)) {
64
+                    $item = new GetPaid_Form_Item($item_id);
65
+                    $item->set_quantity($qty);
66 66
 
67
-                    if ( empty( $qty ) ) {
68
-                        $item->set_allow_quantities( true );
69
-                        $item->set_is_required( false );
67
+                    if (empty($qty)) {
68
+                        $item->set_allow_quantities(true);
69
+                        $item->set_is_required(false);
70 70
                     }
71 71
 
72
-					if ( ! $item->user_can_set_their_price() && isset( $force_prices[ $item_id ] ) ) {
73
-						$item->set_is_dynamic_pricing( true );
74
-						$item->set_minimum_price( 0 );
72
+					if (!$item->user_can_set_their_price() && isset($force_prices[$item_id])) {
73
+						$item->set_is_dynamic_pricing(true);
74
+						$item->set_minimum_price(0);
75 75
 					}
76 76
 
77 77
                     $item_ids[] = $item->get_id();
@@ -79,23 +79,23 @@  discard block
 block discarded – undo
79 79
                 }
80 80
             }
81 81
 
82
-            if ( ! $payment_form->is_default() ) {
82
+            if (!$payment_form->is_default()) {
83 83
 
84
-                foreach ( $payment_form->get_items() as $item ) {
85
-                    if ( ! in_array( $item->get_id(), $item_ids ) ) {
84
+                foreach ($payment_form->get_items() as $item) {
85
+                    if (!in_array($item->get_id(), $item_ids)) {
86 86
                         $item_ids[] = $item->get_id();
87 87
                         $items[]    = $item;
88 88
                     }
89 89
                 }
90 90
 			}
91 91
 
92
-            $payment_form->set_items( $items );
92
+            $payment_form->set_items($items);
93 93
 
94 94
 		}
95 95
 
96 96
 		// Process each individual item.
97
-		foreach ( $payment_form->get_items() as $item ) {
98
-			$this->process_item( $item, $selected_items, $submission );
97
+		foreach ($payment_form->get_items() as $item) {
98
+			$this->process_item($item, $selected_items, $submission);
99 99
 		}
100 100
 
101 101
 	}
@@ -107,40 +107,40 @@  discard block
 block discarded – undo
107 107
 	 * @param array $selected_items
108 108
 	 * @param GetPaid_Payment_Form_Submission $submission
109 109
 	 */
110
-	public function process_item( $item, $selected_items, $submission ) {
110
+	public function process_item($item, $selected_items, $submission) {
111 111
 
112 112
 		// Abort if this is an optional item and it has not been selected.
113
-		if ( ! $item->is_required() && ! isset( $selected_items[ $item->get_id() ] ) ) {
113
+		if (!$item->is_required() && !isset($selected_items[$item->get_id()])) {
114 114
 			return;
115 115
 		}
116 116
 
117 117
 		// (maybe) let customers change the quantities and prices.
118
-		if ( isset( $selected_items[ $item->get_id() ] ) ) {
118
+		if (isset($selected_items[$item->get_id()])) {
119 119
 
120 120
 			// Maybe change the quantities.
121
-			if ( $item->allows_quantities() ) {
122
-				$item->set_quantity( (float) $selected_items[ $item->get_id() ]['quantity'] );
121
+			if ($item->allows_quantities()) {
122
+				$item->set_quantity((float) $selected_items[$item->get_id()]['quantity']);
123 123
 			}
124 124
 
125 125
 			// Maybe change the price.
126
-			if ( $item->user_can_set_their_price() ) {
127
-				$price = (float) wpinv_sanitize_amount( $selected_items[ $item->get_id() ]['price'] );
126
+			if ($item->user_can_set_their_price()) {
127
+				$price = (float) wpinv_sanitize_amount($selected_items[$item->get_id()]['price']);
128 128
 
129
-				if ( $item->get_minimum_price() > $price ) {
130
-					throw new Exception( sprintf( __( 'The minimum allowed amount is %s', 'invoicing' ), getpaid_unstandardize_amount( $item->get_minimum_price() ) ) );
129
+				if ($item->get_minimum_price() > $price) {
130
+					throw new Exception(sprintf(__('The minimum allowed amount is %s', 'invoicing'), getpaid_unstandardize_amount($item->get_minimum_price())));
131 131
 				}
132 132
 
133
-				$item->set_price( $price );
133
+				$item->set_price($price);
134 134
 
135 135
 			}
136 136
 		}
137 137
 
138
-		if ( 0 == $item->get_quantity() ) {
138
+		if (0 == $item->get_quantity()) {
139 139
 			return;
140 140
 		}
141 141
 
142 142
 		// Save the item.
143
-		$this->items[] = apply_filters( 'getpaid_payment_form_submission_processed_item', $item, $submission );
143
+		$this->items[] = apply_filters('getpaid_payment_form_submission_processed_item', $item, $submission);
144 144
 
145 145
 	}
146 146
 
Please login to merge, or discard this patch.
includes/payments/class-getpaid-form-item.php 2 patches
Indentation   +359 added lines, -359 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined( 'ABSPATH' ) ) {
3
-	exit;
3
+    exit;
4 4
 }
5 5
 
6 6
 /**
@@ -10,67 +10,67 @@  discard block
 block discarded – undo
10 10
 class GetPaid_Form_Item  extends WPInv_Item {
11 11
 
12 12
     /**
13
-	 * Stores a custom description for the item.
14
-	 *
15
-	 * @var string
16
-	 */
17
-	protected $custom_description = null;
18
-
19
-	/**
20
-	 * Stores the item quantity.
21
-	 *
22
-	 * @var float
23
-	 */
24
-	protected $quantity = 1;
25
-
26
-	/**
27
-	 * Stores the item meta.
28
-	 *
29
-	 * @var array
30
-	 */
31
-	protected $meta = array();
32
-
33
-	/**
34
-	 * Is this item required?
35
-	 *
36
-	 * @var int
37
-	 */
38
-	protected $is_required = true;
39
-
40
-	/**
41
-	 * Are quantities allowed?
42
-	 *
43
-	 * @var int
44
-	 */
45
-	protected $allow_quantities = false;
46
-
47
-	/**
48
-	 * Associated invoice.
49
-	 *
50
-	 * @var int
51
-	 */
52
-	public $invoice_id = 0;
53
-
54
-	/**
55
-	 * Item discount.
56
-	 *
57
-	 * @var float
58
-	 */
59
-	public $item_discount = 0;
60
-
61
-	/**
62
-	 * Recurring item discount.
63
-	 *
64
-	 * @var float
65
-	 */
66
-	public $recurring_item_discount = 0;
67
-
68
-	/**
69
-	 * Item tax.
70
-	 *
71
-	 * @var float
72
-	 */
73
-	public $item_tax = 0;
13
+     * Stores a custom description for the item.
14
+     *
15
+     * @var string
16
+     */
17
+    protected $custom_description = null;
18
+
19
+    /**
20
+     * Stores the item quantity.
21
+     *
22
+     * @var float
23
+     */
24
+    protected $quantity = 1;
25
+
26
+    /**
27
+     * Stores the item meta.
28
+     *
29
+     * @var array
30
+     */
31
+    protected $meta = array();
32
+
33
+    /**
34
+     * Is this item required?
35
+     *
36
+     * @var int
37
+     */
38
+    protected $is_required = true;
39
+
40
+    /**
41
+     * Are quantities allowed?
42
+     *
43
+     * @var int
44
+     */
45
+    protected $allow_quantities = false;
46
+
47
+    /**
48
+     * Associated invoice.
49
+     *
50
+     * @var int
51
+     */
52
+    public $invoice_id = 0;
53
+
54
+    /**
55
+     * Item discount.
56
+     *
57
+     * @var float
58
+     */
59
+    public $item_discount = 0;
60
+
61
+    /**
62
+     * Recurring item discount.
63
+     *
64
+     * @var float
65
+     */
66
+    public $recurring_item_discount = 0;
67
+
68
+    /**
69
+     * Item tax.
70
+     *
71
+     * @var float
72
+     */
73
+    public $item_tax = 0;
74 74
 
75 75
     /*
76 76
 	|--------------------------------------------------------------------------
@@ -88,230 +88,230 @@  discard block
 block discarded – undo
88 88
     */
89 89
 
90 90
     /**
91
-	 * Get the item name.
92
-	 *
93
-	 * @since 1.0.19
94
-	 * @param  string $context View or edit context.
95
-	 * @return string
96
-	 */
97
-	public function get_name( $context = 'view' ) {
98
-		$name = parent::get_name( $context );
99
-		return $name . wpinv_get_item_suffix( $this );
100
-	}
101
-
102
-	/**
103
-	 * Get the item name without a suffix.
104
-	 *
105
-	 * @since 1.0.19
106
-	 * @param  string $context View or edit context.
107
-	 * @return string
108
-	 */
109
-	public function get_raw_name( $context = 'view' ) {
110
-		return parent::get_name( $context );
111
-	}
112
-
113
-	/**
114
-	 * Get the item description.
115
-	 *
116
-	 * @since 1.0.19
117
-	 * @param  string $context View or edit context.
118
-	 * @return string
119
-	 */
120
-	public function get_description( $context = 'view' ) {
121
-
122
-		if ( isset( $this->custom_description ) ) {
123
-			return $this->custom_description;
124
-		}
125
-
126
-		return parent::get_description( $context );
127
-	}
128
-
129
-	/**
130
-	 * Returns the sub total.
131
-	 *
132
-	 * @since 1.0.19
133
-	 * @param  string $context View or edit context.
134
-	 * @return float
135
-	 */
136
-	public function get_sub_total( $context = 'view' ) {
137
-		return $this->get_quantity( $context ) * $this->get_initial_price( $context );
138
-	}
139
-
140
-	/**
141
-	 * Returns the recurring sub total.
142
-	 *
143
-	 * @since 1.0.19
144
-	 * @param  string $context View or edit context.
145
-	 * @return float
146
-	 */
147
-	public function get_recurring_sub_total( $context = 'view' ) {
148
-
149
-		if ( $this->is_recurring() ) {
150
-			return $this->get_quantity( $context ) * $this->get_price( $context );
151
-		}
152
-
153
-		return 0;
154
-	}
155
-
156
-	/**
157
-	 * @deprecated
158
-	 */
159
-	public function get_qantity( $context = 'view' ) {
160
-		return $this->get_quantity( $context );
161
-	}
162
-
163
-	/**
164
-	 * Get the item quantity.
165
-	 *
166
-	 * @since 1.0.19
167
-	 * @param  string $context View or edit context.
168
-	 * @return float
169
-	 */
170
-	public function get_quantity( $context = 'view' ) {
171
-		$quantity = (float) $this->quantity;
172
-
173
-		if ( 'view' === $context ) {
174
-			return apply_filters( 'getpaid_payment_form_item_quantity', $quantity, $this );
175
-		}
176
-
177
-		return $quantity;
178
-
179
-	}
180
-
181
-	/**
182
-	 * Get the item meta data.
183
-	 *
184
-	 * @since 1.0.19
185
-	 * @param  string $context View or edit context.
186
-	 * @return meta
187
-	 */
188
-	public function get_item_meta( $context = 'view' ) {
189
-		$meta = $this->meta;
190
-
191
-		if ( 'view' === $context ) {
192
-			return apply_filters( 'getpaid_payment_form_item_meta', $meta, $this );
193
-		}
194
-
195
-		return $meta;
196
-
197
-	}
198
-
199
-	/**
200
-	 * Returns whether or not customers can update the item quantity.
201
-	 *
202
-	 * @since 1.0.19
203
-	 * @param  string $context View or edit context.
204
-	 * @return bool
205
-	 */
206
-	public function get_allow_quantities( $context = 'view' ) {
207
-		$allow_quantities = (bool) $this->allow_quantities;
208
-
209
-		if ( 'view' === $context ) {
210
-			return apply_filters( 'getpaid_payment_form_item_allow_quantities', $allow_quantities, $this );
211
-		}
212
-
213
-		return $allow_quantities;
214
-
215
-	}
216
-
217
-	/**
218
-	 * Returns whether or not the item is required.
219
-	 *
220
-	 * @since 1.0.19
221
-	 * @param  string $context View or edit context.
222
-	 * @return bool
223
-	 */
224
-	public function get_is_required( $context = 'view' ) {
225
-		$is_required = (bool) $this->is_required;
226
-
227
-		if ( 'view' === $context ) {
228
-			return apply_filters( 'getpaid_payment_form_item_is_required', $is_required, $this );
229
-		}
230
-
231
-		return $is_required;
232
-
233
-	}
234
-
235
-	/**
236
-	 * Prepares form data for use.
237
-	 *
238
-	 * @since 1.0.19
239
-	 * @return array
240
-	 */
241
-	public function prepare_data_for_use( $required = null ) {
242
-
243
-		$required = is_null( $required ) ? $this->is_required() : $required;
244
-		return array(
245
-			'title'            => wp_strip_all_tags( $this->get_name() ),
246
-			'id'               => $this->get_id(),
247
-			'price'            => $this->get_price(),
248
-			'recurring'        => $this->is_recurring(),
249
-			'description'      => $this->get_description(),
250
-			'allow_quantities' => $this->allows_quantities(),
251
-			'required'         => $required,
252
-		);
253
-
254
-	}
255
-
256
-	/**
257
-	 * Prepares form data for ajax use.
258
-	 *
259
-	 * @since 1.0.19
260
-	 * @return array
261
-	 */
262
-	public function prepare_data_for_invoice_edit_ajax( $currency = '', $is_renewal = false ) {
263
-
264
-		$description = getpaid_item_recurring_price_help_text( $this, $currency );
265
-
266
-		if ( $description ) {
267
-			$description = "<div class='getpaid-subscription-help-text'>$description</div>";
268
-		}
269
-
270
-		$price    = ! $is_renewal ? $this->get_price() : $this->get_recurring_price();
271
-		$subtotal = ! $is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total();
272
-		return array(
273
-			'id'     => $this->get_id(),
274
-			'texts'  => array(
275
-				'item-name'        => sanitize_text_field( $this->get_name() ),
276
-				'item-description' => wp_kses_post( $this->get_description() ) . $description,
277
-				'item-quantity'    => floatval( $this->get_quantity() ),
278
-				'item-price'       => wpinv_price( $price, $currency ),
279
-				'item-total'       => wpinv_price( $subtotal, $currency ),
280
-			),
281
-			'inputs' => array(
282
-				'item-id'          => $this->get_id(),
283
-				'item-name'        => sanitize_text_field( $this->get_name() ),
284
-				'item-description' => wp_kses_post( $this->get_description() ),
285
-				'item-quantity'    => floatval( $this->get_quantity() ),
286
-				'item-price'       => $price,
287
-			),
288
-		);
289
-
290
-	}
291
-
292
-	/**
293
-	 * Prepares form data for saving (cart_details).
294
-	 *
295
-	 * @since 1.0.19
296
-	 * @return array
297
-	 */
298
-	public function prepare_data_for_saving() {
299
-
300
-		return array(
301
-			'post_id'          => $this->invoice_id,
302
-			'item_id'          => $this->get_id(),
303
-			'item_name'        => sanitize_text_field( $this->get_raw_name( 'edit' ) ),
304
-			'item_description' => $this->get_description( 'edit' ),
305
-			'tax'              => $this->item_tax,
306
-			'item_price'       => $this->get_price( 'edit' ),
307
-			'quantity'         => (float) $this->get_quantity( 'edit' ),
308
-			'discount'         => $this->item_discount,
309
-			'subtotal'         => $this->get_sub_total( 'edit' ),
310
-			'price'            => $this->get_sub_total( 'edit' ) + $this->item_tax - $this->item_discount,
311
-			'meta'             => $this->get_item_meta( 'edit' ),
312
-		);
313
-
314
-	}
91
+     * Get the item name.
92
+     *
93
+     * @since 1.0.19
94
+     * @param  string $context View or edit context.
95
+     * @return string
96
+     */
97
+    public function get_name( $context = 'view' ) {
98
+        $name = parent::get_name( $context );
99
+        return $name . wpinv_get_item_suffix( $this );
100
+    }
101
+
102
+    /**
103
+     * Get the item name without a suffix.
104
+     *
105
+     * @since 1.0.19
106
+     * @param  string $context View or edit context.
107
+     * @return string
108
+     */
109
+    public function get_raw_name( $context = 'view' ) {
110
+        return parent::get_name( $context );
111
+    }
112
+
113
+    /**
114
+     * Get the item description.
115
+     *
116
+     * @since 1.0.19
117
+     * @param  string $context View or edit context.
118
+     * @return string
119
+     */
120
+    public function get_description( $context = 'view' ) {
121
+
122
+        if ( isset( $this->custom_description ) ) {
123
+            return $this->custom_description;
124
+        }
125
+
126
+        return parent::get_description( $context );
127
+    }
128
+
129
+    /**
130
+     * Returns the sub total.
131
+     *
132
+     * @since 1.0.19
133
+     * @param  string $context View or edit context.
134
+     * @return float
135
+     */
136
+    public function get_sub_total( $context = 'view' ) {
137
+        return $this->get_quantity( $context ) * $this->get_initial_price( $context );
138
+    }
139
+
140
+    /**
141
+     * Returns the recurring sub total.
142
+     *
143
+     * @since 1.0.19
144
+     * @param  string $context View or edit context.
145
+     * @return float
146
+     */
147
+    public function get_recurring_sub_total( $context = 'view' ) {
148
+
149
+        if ( $this->is_recurring() ) {
150
+            return $this->get_quantity( $context ) * $this->get_price( $context );
151
+        }
152
+
153
+        return 0;
154
+    }
155
+
156
+    /**
157
+     * @deprecated
158
+     */
159
+    public function get_qantity( $context = 'view' ) {
160
+        return $this->get_quantity( $context );
161
+    }
162
+
163
+    /**
164
+     * Get the item quantity.
165
+     *
166
+     * @since 1.0.19
167
+     * @param  string $context View or edit context.
168
+     * @return float
169
+     */
170
+    public function get_quantity( $context = 'view' ) {
171
+        $quantity = (float) $this->quantity;
172
+
173
+        if ( 'view' === $context ) {
174
+            return apply_filters( 'getpaid_payment_form_item_quantity', $quantity, $this );
175
+        }
176
+
177
+        return $quantity;
178
+
179
+    }
180
+
181
+    /**
182
+     * Get the item meta data.
183
+     *
184
+     * @since 1.0.19
185
+     * @param  string $context View or edit context.
186
+     * @return meta
187
+     */
188
+    public function get_item_meta( $context = 'view' ) {
189
+        $meta = $this->meta;
190
+
191
+        if ( 'view' === $context ) {
192
+            return apply_filters( 'getpaid_payment_form_item_meta', $meta, $this );
193
+        }
194
+
195
+        return $meta;
196
+
197
+    }
198
+
199
+    /**
200
+     * Returns whether or not customers can update the item quantity.
201
+     *
202
+     * @since 1.0.19
203
+     * @param  string $context View or edit context.
204
+     * @return bool
205
+     */
206
+    public function get_allow_quantities( $context = 'view' ) {
207
+        $allow_quantities = (bool) $this->allow_quantities;
208
+
209
+        if ( 'view' === $context ) {
210
+            return apply_filters( 'getpaid_payment_form_item_allow_quantities', $allow_quantities, $this );
211
+        }
212
+
213
+        return $allow_quantities;
214
+
215
+    }
216
+
217
+    /**
218
+     * Returns whether or not the item is required.
219
+     *
220
+     * @since 1.0.19
221
+     * @param  string $context View or edit context.
222
+     * @return bool
223
+     */
224
+    public function get_is_required( $context = 'view' ) {
225
+        $is_required = (bool) $this->is_required;
226
+
227
+        if ( 'view' === $context ) {
228
+            return apply_filters( 'getpaid_payment_form_item_is_required', $is_required, $this );
229
+        }
230
+
231
+        return $is_required;
232
+
233
+    }
234
+
235
+    /**
236
+     * Prepares form data for use.
237
+     *
238
+     * @since 1.0.19
239
+     * @return array
240
+     */
241
+    public function prepare_data_for_use( $required = null ) {
242
+
243
+        $required = is_null( $required ) ? $this->is_required() : $required;
244
+        return array(
245
+            'title'            => wp_strip_all_tags( $this->get_name() ),
246
+            'id'               => $this->get_id(),
247
+            'price'            => $this->get_price(),
248
+            'recurring'        => $this->is_recurring(),
249
+            'description'      => $this->get_description(),
250
+            'allow_quantities' => $this->allows_quantities(),
251
+            'required'         => $required,
252
+        );
253
+
254
+    }
255
+
256
+    /**
257
+     * Prepares form data for ajax use.
258
+     *
259
+     * @since 1.0.19
260
+     * @return array
261
+     */
262
+    public function prepare_data_for_invoice_edit_ajax( $currency = '', $is_renewal = false ) {
263
+
264
+        $description = getpaid_item_recurring_price_help_text( $this, $currency );
265
+
266
+        if ( $description ) {
267
+            $description = "<div class='getpaid-subscription-help-text'>$description</div>";
268
+        }
269
+
270
+        $price    = ! $is_renewal ? $this->get_price() : $this->get_recurring_price();
271
+        $subtotal = ! $is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total();
272
+        return array(
273
+            'id'     => $this->get_id(),
274
+            'texts'  => array(
275
+                'item-name'        => sanitize_text_field( $this->get_name() ),
276
+                'item-description' => wp_kses_post( $this->get_description() ) . $description,
277
+                'item-quantity'    => floatval( $this->get_quantity() ),
278
+                'item-price'       => wpinv_price( $price, $currency ),
279
+                'item-total'       => wpinv_price( $subtotal, $currency ),
280
+            ),
281
+            'inputs' => array(
282
+                'item-id'          => $this->get_id(),
283
+                'item-name'        => sanitize_text_field( $this->get_name() ),
284
+                'item-description' => wp_kses_post( $this->get_description() ),
285
+                'item-quantity'    => floatval( $this->get_quantity() ),
286
+                'item-price'       => $price,
287
+            ),
288
+        );
289
+
290
+    }
291
+
292
+    /**
293
+     * Prepares form data for saving (cart_details).
294
+     *
295
+     * @since 1.0.19
296
+     * @return array
297
+     */
298
+    public function prepare_data_for_saving() {
299
+
300
+        return array(
301
+            'post_id'          => $this->invoice_id,
302
+            'item_id'          => $this->get_id(),
303
+            'item_name'        => sanitize_text_field( $this->get_raw_name( 'edit' ) ),
304
+            'item_description' => $this->get_description( 'edit' ),
305
+            'tax'              => $this->item_tax,
306
+            'item_price'       => $this->get_price( 'edit' ),
307
+            'quantity'         => (float) $this->get_quantity( 'edit' ),
308
+            'discount'         => $this->item_discount,
309
+            'subtotal'         => $this->get_sub_total( 'edit' ),
310
+            'price'            => $this->get_sub_total( 'edit' ) + $this->item_tax - $this->item_discount,
311
+            'meta'             => $this->get_item_meta( 'edit' ),
312
+        );
313
+
314
+    }
315 315
 
316 316
     /*
317 317
 	|--------------------------------------------------------------------------
@@ -323,70 +323,70 @@  discard block
 block discarded – undo
323 323
 	| object.
324 324
     */
325 325
 
326
-	/**
327
-	 * Set the item qantity.
328
-	 *
329
-	 * @since 1.0.19
330
-	 * @param  float $quantity The item quantity.
331
-	 */
332
-	public function set_quantity( $quantity ) {
333
-
334
-		if ( ! is_numeric( $quantity ) ) {
335
-			$quantity = 1;
336
-		}
337
-
338
-		$this->quantity = (float) $quantity;
339
-
340
-	}
341
-
342
-	/**
343
-	 * Set the item meta data.
344
-	 *
345
-	 * @since 1.0.19
346
-	 * @param  array $meta The item meta data.
347
-	 */
348
-	public function set_item_meta( $meta ) {
349
-		$this->meta = maybe_unserialize( $meta );
350
-	}
351
-
352
-	/**
353
-	 * Set whether or not the quantities are allowed.
354
-	 *
355
-	 * @since 1.0.19
356
-	 * @param  bool $allow_quantities
357
-	 */
358
-	public function set_allow_quantities( $allow_quantities ) {
359
-		$this->allow_quantities = (bool) $allow_quantities;
360
-	}
361
-
362
-	/**
363
-	 * Set whether or not the item is required.
364
-	 *
365
-	 * @since 1.0.19
366
-	 * @param  bool $is_required
367
-	 */
368
-	public function set_is_required( $is_required ) {
369
-		$this->is_required = (bool) $is_required;
370
-	}
371
-
372
-	/**
373
-	 * Sets the custom item description.
374
-	 *
375
-	 * @since 1.0.19
376
-	 * @param  string $description
377
-	 */
378
-	public function set_custom_description( $description ) {
379
-		$this->custom_description = $description;
380
-	}
326
+    /**
327
+     * Set the item qantity.
328
+     *
329
+     * @since 1.0.19
330
+     * @param  float $quantity The item quantity.
331
+     */
332
+    public function set_quantity( $quantity ) {
333
+
334
+        if ( ! is_numeric( $quantity ) ) {
335
+            $quantity = 1;
336
+        }
337
+
338
+        $this->quantity = (float) $quantity;
339
+
340
+    }
341
+
342
+    /**
343
+     * Set the item meta data.
344
+     *
345
+     * @since 1.0.19
346
+     * @param  array $meta The item meta data.
347
+     */
348
+    public function set_item_meta( $meta ) {
349
+        $this->meta = maybe_unserialize( $meta );
350
+    }
351
+
352
+    /**
353
+     * Set whether or not the quantities are allowed.
354
+     *
355
+     * @since 1.0.19
356
+     * @param  bool $allow_quantities
357
+     */
358
+    public function set_allow_quantities( $allow_quantities ) {
359
+        $this->allow_quantities = (bool) $allow_quantities;
360
+    }
361
+
362
+    /**
363
+     * Set whether or not the item is required.
364
+     *
365
+     * @since 1.0.19
366
+     * @param  bool $is_required
367
+     */
368
+    public function set_is_required( $is_required ) {
369
+        $this->is_required = (bool) $is_required;
370
+    }
371
+
372
+    /**
373
+     * Sets the custom item description.
374
+     *
375
+     * @since 1.0.19
376
+     * @param  string $description
377
+     */
378
+    public function set_custom_description( $description ) {
379
+        $this->custom_description = $description;
380
+    }
381 381
 
382 382
     /**
383 383
      * We do not want to save items to the database.
384 384
      *
385
-	 * @return int item id
385
+     * @return int item id
386 386
      */
387 387
     public function save( $data = array() ) {
388 388
         return $this->get_id();
389
-	}
389
+    }
390 390
 
391 391
     /*
392 392
 	|--------------------------------------------------------------------------
@@ -398,23 +398,23 @@  discard block
 block discarded – undo
398 398
 	*/
399 399
 
400 400
     /**
401
-	 * Checks whether the item has enabled dynamic pricing.
402
-	 *
403
-	 * @since 1.0.19
404
-	 * @return bool
405
-	 */
406
-	public function is_required() {
401
+     * Checks whether the item has enabled dynamic pricing.
402
+     *
403
+     * @since 1.0.19
404
+     * @return bool
405
+     */
406
+    public function is_required() {
407 407
         return (bool) $this->get_is_required();
408
-	}
409
-
410
-	/**
411
-	 * Checks whether users can edit the quantities.
412
-	 *
413
-	 * @since 1.0.19
414
-	 * @return bool
415
-	 */
416
-	public function allows_quantities() {
408
+    }
409
+
410
+    /**
411
+     * Checks whether users can edit the quantities.
412
+     *
413
+     * @since 1.0.19
414
+     * @return bool
415
+     */
416
+    public function allows_quantities() {
417 417
         return (bool) $this->get_allow_quantities();
418
-	}
418
+    }
419 419
 
420 420
 }
Please login to merge, or discard this patch.
Spacing   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) {
2
+if (!defined('ABSPATH')) {
3 3
 	exit;
4 4
 }
5 5
 
@@ -94,9 +94,9 @@  discard block
 block discarded – undo
94 94
 	 * @param  string $context View or edit context.
95 95
 	 * @return string
96 96
 	 */
97
-	public function get_name( $context = 'view' ) {
98
-		$name = parent::get_name( $context );
99
-		return $name . wpinv_get_item_suffix( $this );
97
+	public function get_name($context = 'view') {
98
+		$name = parent::get_name($context);
99
+		return $name . wpinv_get_item_suffix($this);
100 100
 	}
101 101
 
102 102
 	/**
@@ -106,8 +106,8 @@  discard block
 block discarded – undo
106 106
 	 * @param  string $context View or edit context.
107 107
 	 * @return string
108 108
 	 */
109
-	public function get_raw_name( $context = 'view' ) {
110
-		return parent::get_name( $context );
109
+	public function get_raw_name($context = 'view') {
110
+		return parent::get_name($context);
111 111
 	}
112 112
 
113 113
 	/**
@@ -117,13 +117,13 @@  discard block
 block discarded – undo
117 117
 	 * @param  string $context View or edit context.
118 118
 	 * @return string
119 119
 	 */
120
-	public function get_description( $context = 'view' ) {
120
+	public function get_description($context = 'view') {
121 121
 
122
-		if ( isset( $this->custom_description ) ) {
122
+		if (isset($this->custom_description)) {
123 123
 			return $this->custom_description;
124 124
 		}
125 125
 
126
-		return parent::get_description( $context );
126
+		return parent::get_description($context);
127 127
 	}
128 128
 
129 129
 	/**
@@ -133,8 +133,8 @@  discard block
 block discarded – undo
133 133
 	 * @param  string $context View or edit context.
134 134
 	 * @return float
135 135
 	 */
136
-	public function get_sub_total( $context = 'view' ) {
137
-		return $this->get_quantity( $context ) * $this->get_initial_price( $context );
136
+	public function get_sub_total($context = 'view') {
137
+		return $this->get_quantity($context) * $this->get_initial_price($context);
138 138
 	}
139 139
 
140 140
 	/**
@@ -144,10 +144,10 @@  discard block
 block discarded – undo
144 144
 	 * @param  string $context View or edit context.
145 145
 	 * @return float
146 146
 	 */
147
-	public function get_recurring_sub_total( $context = 'view' ) {
147
+	public function get_recurring_sub_total($context = 'view') {
148 148
 
149
-		if ( $this->is_recurring() ) {
150
-			return $this->get_quantity( $context ) * $this->get_price( $context );
149
+		if ($this->is_recurring()) {
150
+			return $this->get_quantity($context) * $this->get_price($context);
151 151
 		}
152 152
 
153 153
 		return 0;
@@ -156,8 +156,8 @@  discard block
 block discarded – undo
156 156
 	/**
157 157
 	 * @deprecated
158 158
 	 */
159
-	public function get_qantity( $context = 'view' ) {
160
-		return $this->get_quantity( $context );
159
+	public function get_qantity($context = 'view') {
160
+		return $this->get_quantity($context);
161 161
 	}
162 162
 
163 163
 	/**
@@ -167,11 +167,11 @@  discard block
 block discarded – undo
167 167
 	 * @param  string $context View or edit context.
168 168
 	 * @return float
169 169
 	 */
170
-	public function get_quantity( $context = 'view' ) {
170
+	public function get_quantity($context = 'view') {
171 171
 		$quantity = (float) $this->quantity;
172 172
 
173
-		if ( 'view' === $context ) {
174
-			return apply_filters( 'getpaid_payment_form_item_quantity', $quantity, $this );
173
+		if ('view' === $context) {
174
+			return apply_filters('getpaid_payment_form_item_quantity', $quantity, $this);
175 175
 		}
176 176
 
177 177
 		return $quantity;
@@ -185,11 +185,11 @@  discard block
 block discarded – undo
185 185
 	 * @param  string $context View or edit context.
186 186
 	 * @return meta
187 187
 	 */
188
-	public function get_item_meta( $context = 'view' ) {
188
+	public function get_item_meta($context = 'view') {
189 189
 		$meta = $this->meta;
190 190
 
191
-		if ( 'view' === $context ) {
192
-			return apply_filters( 'getpaid_payment_form_item_meta', $meta, $this );
191
+		if ('view' === $context) {
192
+			return apply_filters('getpaid_payment_form_item_meta', $meta, $this);
193 193
 		}
194 194
 
195 195
 		return $meta;
@@ -203,11 +203,11 @@  discard block
 block discarded – undo
203 203
 	 * @param  string $context View or edit context.
204 204
 	 * @return bool
205 205
 	 */
206
-	public function get_allow_quantities( $context = 'view' ) {
206
+	public function get_allow_quantities($context = 'view') {
207 207
 		$allow_quantities = (bool) $this->allow_quantities;
208 208
 
209
-		if ( 'view' === $context ) {
210
-			return apply_filters( 'getpaid_payment_form_item_allow_quantities', $allow_quantities, $this );
209
+		if ('view' === $context) {
210
+			return apply_filters('getpaid_payment_form_item_allow_quantities', $allow_quantities, $this);
211 211
 		}
212 212
 
213 213
 		return $allow_quantities;
@@ -221,11 +221,11 @@  discard block
 block discarded – undo
221 221
 	 * @param  string $context View or edit context.
222 222
 	 * @return bool
223 223
 	 */
224
-	public function get_is_required( $context = 'view' ) {
224
+	public function get_is_required($context = 'view') {
225 225
 		$is_required = (bool) $this->is_required;
226 226
 
227
-		if ( 'view' === $context ) {
228
-			return apply_filters( 'getpaid_payment_form_item_is_required', $is_required, $this );
227
+		if ('view' === $context) {
228
+			return apply_filters('getpaid_payment_form_item_is_required', $is_required, $this);
229 229
 		}
230 230
 
231 231
 		return $is_required;
@@ -238,11 +238,11 @@  discard block
 block discarded – undo
238 238
 	 * @since 1.0.19
239 239
 	 * @return array
240 240
 	 */
241
-	public function prepare_data_for_use( $required = null ) {
241
+	public function prepare_data_for_use($required = null) {
242 242
 
243
-		$required = is_null( $required ) ? $this->is_required() : $required;
243
+		$required = is_null($required) ? $this->is_required() : $required;
244 244
 		return array(
245
-			'title'            => wp_strip_all_tags( $this->get_name() ),
245
+			'title'            => wp_strip_all_tags($this->get_name()),
246 246
 			'id'               => $this->get_id(),
247 247
 			'price'            => $this->get_price(),
248 248
 			'recurring'        => $this->is_recurring(),
@@ -259,30 +259,30 @@  discard block
 block discarded – undo
259 259
 	 * @since 1.0.19
260 260
 	 * @return array
261 261
 	 */
262
-	public function prepare_data_for_invoice_edit_ajax( $currency = '', $is_renewal = false ) {
262
+	public function prepare_data_for_invoice_edit_ajax($currency = '', $is_renewal = false) {
263 263
 
264
-		$description = getpaid_item_recurring_price_help_text( $this, $currency );
264
+		$description = getpaid_item_recurring_price_help_text($this, $currency);
265 265
 
266
-		if ( $description ) {
266
+		if ($description) {
267 267
 			$description = "<div class='getpaid-subscription-help-text'>$description</div>";
268 268
 		}
269 269
 
270
-		$price    = ! $is_renewal ? $this->get_price() : $this->get_recurring_price();
271
-		$subtotal = ! $is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total();
270
+		$price    = !$is_renewal ? $this->get_price() : $this->get_recurring_price();
271
+		$subtotal = !$is_renewal ? $this->get_sub_total() : $this->get_recurring_sub_total();
272 272
 		return array(
273 273
 			'id'     => $this->get_id(),
274 274
 			'texts'  => array(
275
-				'item-name'        => sanitize_text_field( $this->get_name() ),
276
-				'item-description' => wp_kses_post( $this->get_description() ) . $description,
277
-				'item-quantity'    => floatval( $this->get_quantity() ),
278
-				'item-price'       => wpinv_price( $price, $currency ),
279
-				'item-total'       => wpinv_price( $subtotal, $currency ),
275
+				'item-name'        => sanitize_text_field($this->get_name()),
276
+				'item-description' => wp_kses_post($this->get_description()) . $description,
277
+				'item-quantity'    => floatval($this->get_quantity()),
278
+				'item-price'       => wpinv_price($price, $currency),
279
+				'item-total'       => wpinv_price($subtotal, $currency),
280 280
 			),
281 281
 			'inputs' => array(
282 282
 				'item-id'          => $this->get_id(),
283
-				'item-name'        => sanitize_text_field( $this->get_name() ),
284
-				'item-description' => wp_kses_post( $this->get_description() ),
285
-				'item-quantity'    => floatval( $this->get_quantity() ),
283
+				'item-name'        => sanitize_text_field($this->get_name()),
284
+				'item-description' => wp_kses_post($this->get_description()),
285
+				'item-quantity'    => floatval($this->get_quantity()),
286 286
 				'item-price'       => $price,
287 287
 			),
288 288
 		);
@@ -300,15 +300,15 @@  discard block
 block discarded – undo
300 300
 		return array(
301 301
 			'post_id'          => $this->invoice_id,
302 302
 			'item_id'          => $this->get_id(),
303
-			'item_name'        => sanitize_text_field( $this->get_raw_name( 'edit' ) ),
304
-			'item_description' => $this->get_description( 'edit' ),
303
+			'item_name'        => sanitize_text_field($this->get_raw_name('edit')),
304
+			'item_description' => $this->get_description('edit'),
305 305
 			'tax'              => $this->item_tax,
306
-			'item_price'       => $this->get_price( 'edit' ),
307
-			'quantity'         => (float) $this->get_quantity( 'edit' ),
306
+			'item_price'       => $this->get_price('edit'),
307
+			'quantity'         => (float) $this->get_quantity('edit'),
308 308
 			'discount'         => $this->item_discount,
309
-			'subtotal'         => $this->get_sub_total( 'edit' ),
310
-			'price'            => $this->get_sub_total( 'edit' ) + $this->item_tax - $this->item_discount,
311
-			'meta'             => $this->get_item_meta( 'edit' ),
309
+			'subtotal'         => $this->get_sub_total('edit'),
310
+			'price'            => $this->get_sub_total('edit') + $this->item_tax - $this->item_discount,
311
+			'meta'             => $this->get_item_meta('edit'),
312 312
 		);
313 313
 
314 314
 	}
@@ -329,9 +329,9 @@  discard block
 block discarded – undo
329 329
 	 * @since 1.0.19
330 330
 	 * @param  float $quantity The item quantity.
331 331
 	 */
332
-	public function set_quantity( $quantity ) {
332
+	public function set_quantity($quantity) {
333 333
 
334
-		if ( ! is_numeric( $quantity ) ) {
334
+		if (!is_numeric($quantity)) {
335 335
 			$quantity = 1;
336 336
 		}
337 337
 
@@ -345,8 +345,8 @@  discard block
 block discarded – undo
345 345
 	 * @since 1.0.19
346 346
 	 * @param  array $meta The item meta data.
347 347
 	 */
348
-	public function set_item_meta( $meta ) {
349
-		$this->meta = maybe_unserialize( $meta );
348
+	public function set_item_meta($meta) {
349
+		$this->meta = maybe_unserialize($meta);
350 350
 	}
351 351
 
352 352
 	/**
@@ -355,7 +355,7 @@  discard block
 block discarded – undo
355 355
 	 * @since 1.0.19
356 356
 	 * @param  bool $allow_quantities
357 357
 	 */
358
-	public function set_allow_quantities( $allow_quantities ) {
358
+	public function set_allow_quantities($allow_quantities) {
359 359
 		$this->allow_quantities = (bool) $allow_quantities;
360 360
 	}
361 361
 
@@ -365,7 +365,7 @@  discard block
 block discarded – undo
365 365
 	 * @since 1.0.19
366 366
 	 * @param  bool $is_required
367 367
 	 */
368
-	public function set_is_required( $is_required ) {
368
+	public function set_is_required($is_required) {
369 369
 		$this->is_required = (bool) $is_required;
370 370
 	}
371 371
 
@@ -375,7 +375,7 @@  discard block
 block discarded – undo
375 375
 	 * @since 1.0.19
376 376
 	 * @param  string $description
377 377
 	 */
378
-	public function set_custom_description( $description ) {
378
+	public function set_custom_description($description) {
379 379
 		$this->custom_description = $description;
380 380
 	}
381 381
 
@@ -384,7 +384,7 @@  discard block
 block discarded – undo
384 384
      *
385 385
 	 * @return int item id
386 386
      */
387
-    public function save( $data = array() ) {
387
+    public function save($data = array()) {
388 388
         return $this->get_id();
389 389
 	}
390 390
 
Please login to merge, or discard this patch.
templates/payment-forms/form.php 2 patches
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -57,7 +57,7 @@  discard block
 block discarded – undo
57 57
 
58 58
         // And the optional invoice id.
59 59
         if ( ! empty( $form->invoice ) ) {
60
-		    getpaid_hidden_field( 'invoice_id', $form->invoice->get_id() );
60
+            getpaid_hidden_field( 'invoice_id', $form->invoice->get_id() );
61 61
         }
62 62
 
63 63
         // We also want to include the form id.
@@ -76,7 +76,7 @@  discard block
 block discarded – undo
76 76
                 <?php
77 77
 
78 78
                     foreach ( $form->get_elements() as $element ) {
79
-					    if ( isset( $element['type'] ) ) {
79
+                        if ( isset( $element['type'] ) ) {
80 80
                             $grid_class = getpaid_get_form_element_grid_class( $element );
81 81
                             do_action( 'getpaid_payment_form_element_before', $element, $form );
82 82
                             do_action( "getpaid_payment_form_element_before_{$element['type']}_template", $element, $form );
Please login to merge, or discard this patch.
Spacing   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -7,17 +7,17 @@  discard block
 block discarded – undo
7 7
  * @version 1.0.19
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12 12
 // Standardize IDs.
13 13
 global $rendered_getpaid_forms;
14 14
 
15 15
 // Make sure that the form is active.
16
-if ( ! $form->is_active() ) {
16
+if (!$form->is_active()) {
17 17
     aui()->alert(
18 18
         array(
19 19
             'type'    => 'warning',
20
-            'content' => __( 'This payment form is no longer active', 'invoicing' ),
20
+            'content' => __('This payment form is no longer active', 'invoicing'),
21 21
         ),
22 22
         true
23 23
     );
@@ -25,12 +25,12 @@  discard block
 block discarded – undo
25 25
 }
26 26
 
27 27
 // Require login to checkout.
28
-if ( wpinv_require_login_to_checkout() && ! get_current_user_id() ) {
28
+if (wpinv_require_login_to_checkout() && !get_current_user_id()) {
29 29
 
30 30
     aui()->alert(
31 31
         array(
32 32
             'type'    => 'danger',
33
-            'content' => __( 'You must be logged in to checkout.', 'invoicing' ),
33
+            'content' => __('You must be logged in to checkout.', 'invoicing'),
34 34
         ),
35 35
         true
36 36
     );
@@ -38,36 +38,36 @@  discard block
 block discarded – undo
38 38
 
39 39
 }
40 40
 
41
-if ( ! is_array( $rendered_getpaid_forms ) ) {
41
+if (!is_array($rendered_getpaid_forms)) {
42 42
     $rendered_getpaid_forms = array();
43 43
 }
44 44
 
45
-$rendered_getpaid_forms[ $form->get_id() ] = isset( $rendered_getpaid_forms[ $form->get_id() ] ) ? $rendered_getpaid_forms[ $form->get_id() ] + 1 : 0;
45
+$rendered_getpaid_forms[$form->get_id()] = isset($rendered_getpaid_forms[$form->get_id()]) ? $rendered_getpaid_forms[$form->get_id()] + 1 : 0;
46 46
 
47 47
 // Fires before displaying a payment form.
48
-do_action( 'getpaid_before_payment_form', $form );
48
+do_action('getpaid_before_payment_form', $form);
49 49
 ?>
50 50
 
51
-<form class='getpaid-payment-form getpaid-payment-form-<?php echo absint( $form->get_id() ); ?> bsui position-relative' method='POST' data-key='<?php echo esc_attr( uniqid( 'gpf' ) ); ?>' data-currency='<?php echo esc_attr( empty( $form->invoice ) ? wpinv_get_currency() : $form->invoice->get_currency() ); ?>' novalidate>
51
+<form class='getpaid-payment-form getpaid-payment-form-<?php echo absint($form->get_id()); ?> bsui position-relative' method='POST' data-key='<?php echo esc_attr(uniqid('gpf')); ?>' data-currency='<?php echo esc_attr(empty($form->invoice) ? wpinv_get_currency() : $form->invoice->get_currency()); ?>' novalidate>
52 52
 
53 53
     <?php
54 54
 
55 55
         // Fires when printing the top of a payment form.
56
-        do_action( 'getpaid_payment_form_top', $form );
56
+        do_action('getpaid_payment_form_top', $form);
57 57
 
58 58
         // And the optional invoice id.
59
-        if ( ! empty( $form->invoice ) ) {
60
-		    getpaid_hidden_field( 'invoice_id', $form->invoice->get_id() );
59
+        if (!empty($form->invoice)) {
60
+		    getpaid_hidden_field('invoice_id', $form->invoice->get_id());
61 61
         }
62 62
 
63 63
         // We also want to include the form id.
64
-        getpaid_hidden_field( 'form_id', $form->get_id() );
64
+        getpaid_hidden_field('form_id', $form->get_id());
65 65
 
66 66
         // And an indication that this is a payment form submission.
67
-        getpaid_hidden_field( 'getpaid_payment_form_submission', '1' );
67
+        getpaid_hidden_field('getpaid_payment_form_submission', '1');
68 68
 
69 69
         // Fires before displaying payment form elements.
70
-        do_action( 'getpaid_payment_form_before_elements', $form );
70
+        do_action('getpaid_payment_form_before_elements', $form);
71 71
 
72 72
         // Display the elements.
73 73
         ?>
@@ -75,17 +75,17 @@  discard block
 block discarded – undo
75 75
             <div class="row">
76 76
                 <?php
77 77
 
78
-                    foreach ( $form->get_elements() as $element ) {
79
-					    if ( isset( $element['type'] ) ) {
80
-                            $grid_class = getpaid_get_form_element_grid_class( $element );
81
-                            do_action( 'getpaid_payment_form_element_before', $element, $form );
82
-                            do_action( "getpaid_payment_form_element_before_{$element['type']}_template", $element, $form );
83
-                            echo "<div class='" . esc_attr( $grid_class ) . "'>";
84
-                            do_action( 'getpaid_payment_form_element', $element, $form );
85
-                            do_action( "getpaid_payment_form_element_{$element['type']}_template", $element, $form );
78
+                    foreach ($form->get_elements() as $element) {
79
+					    if (isset($element['type'])) {
80
+                            $grid_class = getpaid_get_form_element_grid_class($element);
81
+                            do_action('getpaid_payment_form_element_before', $element, $form);
82
+                            do_action("getpaid_payment_form_element_before_{$element['type']}_template", $element, $form);
83
+                            echo "<div class='" . esc_attr($grid_class) . "'>";
84
+                            do_action('getpaid_payment_form_element', $element, $form);
85
+                            do_action("getpaid_payment_form_element_{$element['type']}_template", $element, $form);
86 86
                             echo '</div>';
87
-                            do_action( 'getpaid_payment_form_element_after', $element, $form );
88
-                            do_action( "getpaid_payment_form_element_after_{$element['type']}_template", $element, $form );
87
+                            do_action('getpaid_payment_form_element_after', $element, $form);
88
+                            do_action("getpaid_payment_form_element_after_{$element['type']}_template", $element, $form);
89 89
                         }
90 90
                     }
91 91
 
@@ -95,28 +95,28 @@  discard block
 block discarded – undo
95 95
 
96 96
         <?php
97 97
         // Fires after displaying payment form elements.
98
-        do_action( 'getpaid_payment_form_after_elements', $form );
98
+        do_action('getpaid_payment_form_after_elements', $form);
99 99
 
100 100
         echo "<div class='getpaid-payment-form-errors alert alert-danger d-none'></div>";
101 101
 
102
-        if ( wpinv_current_user_can_manage_invoicing() ) {
102
+        if (wpinv_current_user_can_manage_invoicing()) {
103 103
 
104 104
             edit_post_link(
105
-                __( 'Edit this form.', 'invoicing' ),
105
+                __('Edit this form.', 'invoicing'),
106 106
                 '<small class="form-text text-muted">',
107
-                '&nbsp;' . __( 'This is only visible to website administators.', 'invoicing' ) . '</small>',
107
+                '&nbsp;' . __('This is only visible to website administators.', 'invoicing') . '</small>',
108 108
                 $form->get_id(),
109 109
                 'text-danger'
110 110
             );
111 111
 
112 112
         }
113 113
 
114
-        echo wp_kses( $extra_markup, getpaid_allowed_html() );
114
+        echo wp_kses($extra_markup, getpaid_allowed_html());
115 115
     ?>
116 116
 
117 117
     <div class="loading_div overlay overlay-black position-absolute row m-0 rounded overflow-hidden" style="height: 100%;width: 100%;top: 0px;z-index: 2;display:none;">
118 118
         <div class="spinner-border mx-auto align-self-center text-white" role="status">
119
-            <span class="sr-only"><?php esc_html_e( 'Loading...', 'invoicing' ); ?></span>
119
+            <span class="sr-only"><?php esc_html_e('Loading...', 'invoicing'); ?></span>
120 120
         </div>
121 121
     </div>
122 122
 
@@ -125,4 +125,4 @@  discard block
 block discarded – undo
125 125
 <?php
126 126
 
127 127
 // Fires after displaying a payment form.
128
-do_action( 'getpaid_after_payment_form', $form );
128
+do_action('getpaid_after_payment_form', $form);
Please login to merge, or discard this patch.
templates/payment-forms/cart-totals.php 2 patches
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -11,26 +11,26 @@  discard block
 block discarded – undo
11 11
 
12 12
 // Totals rows.
13 13
 $cart_totals = apply_filters(
14
-	'getpaid_payment_form_cart_table_totals',
15
-	array(
16
-		'subtotal' => __( 'Subtotal', 'invoicing' ),
17
-		'tax'      => __( 'Tax', 'invoicing' ),
18
-		'fees'     => __( 'Fee', 'invoicing' ),
19
-		'discount' => __( 'Discount', 'invoicing' ),
20
-		'total'    => __( 'Total', 'invoicing' ),
21
-	),
22
-	$form
14
+    'getpaid_payment_form_cart_table_totals',
15
+    array(
16
+        'subtotal' => __( 'Subtotal', 'invoicing' ),
17
+        'tax'      => __( 'Tax', 'invoicing' ),
18
+        'fees'     => __( 'Fee', 'invoicing' ),
19
+        'discount' => __( 'Discount', 'invoicing' ),
20
+        'total'    => __( 'Total', 'invoicing' ),
21
+    ),
22
+    $form
23 23
 );
24 24
 
25 25
 $currency = $form->get_currency();
26 26
 $country  = wpinv_get_default_country();
27 27
 
28 28
 if ( ! empty( $form->invoice ) ) {
29
-	$country  = $form->invoice->get_country();
29
+    $country  = $form->invoice->get_country();
30 30
 }
31 31
 
32 32
 if ( ! wpinv_use_taxes() && isset( $cart_totals['tax'] ) ) {
33
-	unset( $cart_totals['tax'] );
33
+    unset( $cart_totals['tax'] );
34 34
 }
35 35
 
36 36
 do_action( 'getpaid_before_payment_form_cart_totals', $form, $cart_totals );
@@ -61,13 +61,13 @@  discard block
 block discarded – undo
61 61
 
62 62
 							<?php
63 63
 
64
-								// Total tax.
65
-								if ( in_array( $key, array( 'tax', 'discount', 'subtotal', 'total', 'fees' ), true ) ) {
66
-									wpinv_the_price( 0, $currency );
67
-								}
64
+                                // Total tax.
65
+                                if ( in_array( $key, array( 'tax', 'discount', 'subtotal', 'total', 'fees' ), true ) ) {
66
+                                    wpinv_the_price( 0, $currency );
67
+                                }
68 68
 
69
-								do_action( "getpaid_payment_form_cart_totals_$key", $form );
70
-							?>
69
+                                do_action( "getpaid_payment_form_cart_totals_$key", $form );
70
+                            ?>
71 71
 
72 72
 						</div>
73 73
 
Please login to merge, or discard this patch.
Spacing   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -7,17 +7,17 @@  discard block
 block discarded – undo
7 7
  * @version 1.0.19
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12 12
 // Totals rows.
13 13
 $cart_totals = apply_filters(
14 14
 	'getpaid_payment_form_cart_table_totals',
15 15
 	array(
16
-		'subtotal' => __( 'Subtotal', 'invoicing' ),
17
-		'tax'      => __( 'Tax', 'invoicing' ),
18
-		'fees'     => __( 'Fee', 'invoicing' ),
19
-		'discount' => __( 'Discount', 'invoicing' ),
20
-		'total'    => __( 'Total', 'invoicing' ),
16
+		'subtotal' => __('Subtotal', 'invoicing'),
17
+		'tax'      => __('Tax', 'invoicing'),
18
+		'fees'     => __('Fee', 'invoicing'),
19
+		'discount' => __('Discount', 'invoicing'),
20
+		'total'    => __('Total', 'invoicing'),
21 21
 	),
22 22
 	$form
23 23
 );
@@ -25,15 +25,15 @@  discard block
 block discarded – undo
25 25
 $currency = $form->get_currency();
26 26
 $country  = wpinv_get_default_country();
27 27
 
28
-if ( ! empty( $form->invoice ) ) {
29
-	$country  = $form->invoice->get_country();
28
+if (!empty($form->invoice)) {
29
+	$country = $form->invoice->get_country();
30 30
 }
31 31
 
32
-if ( ! wpinv_use_taxes() && isset( $cart_totals['tax'] ) ) {
33
-	unset( $cart_totals['tax'] );
32
+if (!wpinv_use_taxes() && isset($cart_totals['tax'])) {
33
+	unset($cart_totals['tax']);
34 34
 }
35 35
 
36
-do_action( 'getpaid_before_payment_form_cart_totals', $form, $cart_totals );
36
+do_action('getpaid_before_payment_form_cart_totals', $form, $cart_totals);
37 37
 
38 38
 ?>
39 39
 <style>
@@ -47,26 +47,26 @@  discard block
 block discarded – undo
47 47
 	<div class="row">
48 48
 		<div class="col-12 offset-sm-6 col-sm-6 border-sm-left pl-sm-0">
49 49
 
50
-			<?php foreach ( $cart_totals as $key => $label ) : ?>
50
+			<?php foreach ($cart_totals as $key => $label) : ?>
51 51
 
52
-				<div class="getpaid-form-cart-totals-col getpaid-form-cart-totals-<?php echo esc_attr( $key ); ?> font-weight-bold py-2 px-3 <?php echo 'total' === $key ? 'bg-light' : 'border-bottom'; ?> <?php echo 'tax' === $key && wpinv_display_individual_tax_rates() ? 'getpaid-tax-template d-none' : ''; ?>">
52
+				<div class="getpaid-form-cart-totals-col getpaid-form-cart-totals-<?php echo esc_attr($key); ?> font-weight-bold py-2 px-3 <?php echo 'total' === $key ? 'bg-light' : 'border-bottom'; ?> <?php echo 'tax' === $key && wpinv_display_individual_tax_rates() ? 'getpaid-tax-template d-none' : ''; ?>">
53 53
 
54 54
 					<div class="form-row row">
55 55
 
56 56
 						<div class="col-8 pl-sm-0 getpaid-payment-form-line-totals-label">
57
-							<?php echo esc_html( $label ); ?>
57
+							<?php echo esc_html($label); ?>
58 58
 						</div>
59 59
 
60
-						<div class="col-4 getpaid-payment-form-line-totals-value getpaid-form-cart-totals-total-<?php echo esc_attr( $key ); ?>">
60
+						<div class="col-4 getpaid-payment-form-line-totals-value getpaid-form-cart-totals-total-<?php echo esc_attr($key); ?>">
61 61
 
62 62
 							<?php
63 63
 
64 64
 								// Total tax.
65
-								if ( in_array( $key, array( 'tax', 'discount', 'subtotal', 'total', 'fees' ), true ) ) {
66
-									wpinv_the_price( 0, $currency );
65
+								if (in_array($key, array('tax', 'discount', 'subtotal', 'total', 'fees'), true)) {
66
+									wpinv_the_price(0, $currency);
67 67
 								}
68 68
 
69
-								do_action( "getpaid_payment_form_cart_totals_$key", $form );
69
+								do_action("getpaid_payment_form_cart_totals_$key", $form);
70 70
 							?>
71 71
 
72 72
 						</div>
@@ -82,4 +82,4 @@  discard block
 block discarded – undo
82 82
 </div>
83 83
 
84 84
 <?php
85
-do_action( 'getpaid_payment_form_cart_totals', $form, $cart_totals );
85
+do_action('getpaid_payment_form_cart_totals', $form, $cart_totals);
Please login to merge, or discard this patch.