Passed
Push — master ( 0f9edb...599c71 )
by Kiran
12:27 queued 07:01
created
templates/payment-forms-admin/previews/alert.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -7,14 +7,14 @@
 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
 ?>
13 13
 
14 14
 <div class='alert mb-0' :class='form_element.class' role='alert'>
15 15
     <span v-html='form_element.text'></span>
16 16
     <button v-if='form_element.dismissible' type='button' class='close btn-close' @click.prevent='' style="margin-top: -4px;">
17
-        <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
17
+        <?php if (empty($GLOBALS['aui_bs5'])) : ?>
18 18
             <span aria-hidden="true">×</span>
19 19
         <?php endif; ?>
20 20
     </button>
Please login to merge, or discard this patch.
includes/admin/views/html-tax-rate-edit.php 1 patch
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @var array $tax_rate
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 ?>
12 12
 
@@ -18,13 +18,13 @@  discard block
 block discarded – undo
18 18
             aui()->select(
19 19
                 array(
20 20
                     'options' => array_merge(
21
-                        array( '' => __( 'All Countries', 'invoicing' ) ),
21
+                        array('' => __('All Countries', 'invoicing')),
22 22
                         wpinv_get_country_list()
23 23
                     ),
24 24
                     'name'    => "tax_rates[$key][country]",
25
-                    'id'      => uniqid( 'tax_rate_country' ),
26
-                    'value'   => esc_html( $tax_rate['country'] ),
27
-                    'label'   => __( 'Country', 'invoicing' ),
25
+                    'id'      => uniqid('tax_rate_country'),
26
+                    'value'   => esc_html($tax_rate['country']),
27
+                    'label'   => __('Country', 'invoicing'),
28 28
                     'class'   => 'wpinv_country',
29 29
                     'no_wrap' => true,
30 30
                 ),
@@ -37,36 +37,36 @@  discard block
 block discarded – undo
37 37
     <td class="wpinv_tax_state">
38 38
 
39 39
         <label class="w-100">
40
-            <span class="screen-reader-text"><?php esc_html_e( 'States', 'invoicing' ); ?></span>
41
-            <input type="text" placeholder="<?php esc_attr_e( 'Apply to whole country', 'invoicing' ); ?>" name="tax_rates[<?php echo esc_attr( $key ); ?>][state]" value="<?php echo empty( $tax_rate['global'] ) ? esc_attr( $tax_rate['state'] ) : ''; ?>"/>
40
+            <span class="screen-reader-text"><?php esc_html_e('States', 'invoicing'); ?></span>
41
+            <input type="text" placeholder="<?php esc_attr_e('Apply to whole country', 'invoicing'); ?>" name="tax_rates[<?php echo esc_attr($key); ?>][state]" value="<?php echo empty($tax_rate['global']) ? esc_attr($tax_rate['state']) : ''; ?>"/>
42 42
         </label>
43 43
 
44 44
     </td>
45 45
 
46 46
     <td class="wpinv_standard_rate">
47 47
         <label class="w-100">
48
-            <span class="screen-reader-text"><?php esc_html_e( 'Standard Rate', 'invoicing' ); ?></span>
49
-            <input type="number" step="any" min="0" max="99" name="tax_rates[<?php echo esc_attr( $key ); ?>][rate]" value="<?php echo esc_attr( $tax_rate['rate'] ); ?>"/>
48
+            <span class="screen-reader-text"><?php esc_html_e('Standard Rate', 'invoicing'); ?></span>
49
+            <input type="number" step="any" min="0" max="99" name="tax_rates[<?php echo esc_attr($key); ?>][rate]" value="<?php echo esc_attr($tax_rate['rate']); ?>"/>
50 50
         </label>
51 51
     </td>
52 52
 
53 53
     <td class="wpinv_reduced_rate">
54 54
         <label class="w-100">
55
-            <span class="screen-reader-text"><?php esc_html_e( 'Reduced Rate', 'invoicing' ); ?></span>
56
-            <input type="number" step="any" min="0" max="99" name="tax_rates[<?php echo esc_attr( $key ); ?>][reduced_rate]" value="<?php echo esc_attr( $tax_rate['reduced_rate'] ); ?>"/>
55
+            <span class="screen-reader-text"><?php esc_html_e('Reduced Rate', 'invoicing'); ?></span>
56
+            <input type="number" step="any" min="0" max="99" name="tax_rates[<?php echo esc_attr($key); ?>][reduced_rate]" value="<?php echo esc_attr($tax_rate['reduced_rate']); ?>"/>
57 57
         </label>
58 58
     </td>
59 59
 
60 60
     <td class="wpinv_tax_name">
61 61
         <label class="w-100">
62
-            <span class="screen-reader-text"><?php esc_html_e( 'Tax Name', 'invoicing' ); ?></span>
63
-            <input type="text" name="tax_rates[<?php echo esc_attr( $key ); ?>][name]" value="<?php echo esc_attr( $tax_rate['name'] ); ?>"/>
62
+            <span class="screen-reader-text"><?php esc_html_e('Tax Name', 'invoicing'); ?></span>
63
+            <input type="text" name="tax_rates[<?php echo esc_attr($key); ?>][name]" value="<?php echo esc_attr($tax_rate['name']); ?>"/>
64 64
         </label>
65 65
     </td>
66 66
 
67 67
     <td class="wpinv_tax_remove">
68
-        <button type="button" class="close btn-close wpinv_remove_tax_rate" aria-label="<?php esc_attr_e( 'Delete', 'invoicing' ); ?>" title="<?php esc_attr_e( 'Delete', 'invoicing' ); ?>">
69
-            <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
68
+        <button type="button" class="close btn-close wpinv_remove_tax_rate" aria-label="<?php esc_attr_e('Delete', 'invoicing'); ?>" title="<?php esc_attr_e('Delete', 'invoicing'); ?>">
69
+            <?php if (empty($GLOBALS['aui_bs5'])) : ?>
70 70
                 <span aria-hidden="true">×</span>
71 71
             <?php endif; ?>
72 72
         </button>
Please login to merge, or discard this patch.
includes/wpinv-helper-functions.php 2 patches
Indentation   +65 added lines, -65 removed lines patch added patch discarded remove patch
@@ -136,13 +136,13 @@  discard block
 block discarded – undo
136 136
  */
137 137
 function wpinv_get_invoice_statuses( $draft = false, $trashed = false, $invoice = false ) {
138 138
 
139
-	$invoice_statuses = array(
140
-		'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
139
+    $invoice_statuses = array(
140
+        'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
141 141
         'publish'        => _x( 'Paid', 'Invoice status', 'invoicing' ),
142 142
         'wpi-processing' => _x( 'Processing', 'Invoice status', 'invoicing' ),
143
-		'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
144
-		'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
145
-		'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
143
+        'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
144
+        'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
145
+        'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
146 146
         'wpi-failed'     => _x( 'Failed', 'Invoice status', 'invoicing' ),
147 147
         'wpi-renewal'    => _x( 'Renewal Payment', 'Invoice status', 'invoicing' ),
148 148
     );
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
         $invoice = $invoice->get_post_type();
160 160
     }
161 161
 
162
-	return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
162
+    return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
163 163
 }
164 164
 
165 165
 /**
@@ -277,25 +277,25 @@  discard block
 block discarded – undo
277 277
  * @return string
278 278
  */
279 279
 function getpaid_get_price_format() {
280
-	$currency_pos = wpinv_currency_position();
281
-	$format       = '%1$s%2$s';
282
-
283
-	switch ( $currency_pos ) {
284
-		case 'left':
285
-			$format = '%1$s%2$s';
286
-			break;
287
-		case 'right':
288
-			$format = '%2$s%1$s';
289
-			break;
290
-		case 'left_space':
291
-			$format = '%1$s&nbsp;%2$s';
292
-			break;
293
-		case 'right_space':
294
-			$format = '%2$s&nbsp;%1$s';
295
-			break;
296
-	}
297
-
298
-	return apply_filters( 'getpaid_price_format', $format, $currency_pos );
280
+    $currency_pos = wpinv_currency_position();
281
+    $format       = '%1$s%2$s';
282
+
283
+    switch ( $currency_pos ) {
284
+        case 'left':
285
+            $format = '%1$s%2$s';
286
+            break;
287
+        case 'right':
288
+            $format = '%2$s%1$s';
289
+            break;
290
+        case 'left_space':
291
+            $format = '%1$s&nbsp;%2$s';
292
+            break;
293
+        case 'right_space':
294
+            $format = '%2$s&nbsp;%1$s';
295
+            break;
296
+    }
297
+
298
+    return apply_filters( 'getpaid_price_format', $format, $currency_pos );
299 299
 }
300 300
 
301 301
 /**
@@ -401,13 +401,13 @@  discard block
 block discarded – undo
401 401
  * @param mixed  $value Value.
402 402
  */
403 403
 function getpaid_maybe_define_constant( $name, $value ) {
404
-	if ( ! defined( $name ) ) {
405
-		define( $name, $value );
406
-	}
404
+    if ( ! defined( $name ) ) {
405
+        define( $name, $value );
406
+    }
407 407
 }
408 408
 
409 409
 function wpinv_get_php_arg_separator_output() {
410
-	return ini_get( 'arg_separator.output' );
410
+    return ini_get( 'arg_separator.output' );
411 411
 }
412 412
 
413 413
 function wpinv_rgb_from_hex( $color ) {
@@ -718,16 +718,16 @@  discard block
 block discarded – undo
718 718
     return wp_kses(
719 719
         html_entity_decode( $var ),
720 720
         array(
721
-			'br'     => array(),
722
-			'em'     => array(),
723
-			'strong' => array(),
724
-			'b'      => array(),
725
-			'small'  => array(),
726
-			'span'   => array(),
727
-			'ul'     => array(),
728
-			'li'     => array(),
729
-			'ol'     => array(),
730
-			'p'      => array(),
721
+            'br'     => array(),
722
+            'em'     => array(),
723
+            'strong' => array(),
724
+            'b'      => array(),
725
+            'small'  => array(),
726
+            'span'   => array(),
727
+            'ul'     => array(),
728
+            'li'     => array(),
729
+            'ol'     => array(),
730
+            'p'      => array(),
731 731
         )
732 732
     );
733 733
 }
@@ -778,11 +778,11 @@  discard block
 block discarded – undo
778 778
         $list = array();
779 779
     }
780 780
 
781
-	if ( ! is_array( $list ) ) {
782
-		return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
783
-	}
781
+    if ( ! is_array( $list ) ) {
782
+        return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
783
+    }
784 784
 
785
-	return $list;
785
+    return $list;
786 786
 }
787 787
 
788 788
 /**
@@ -823,17 +823,17 @@  discard block
 block discarded – undo
823 823
  */
824 824
 function wpinv_clean( $var ) {
825 825
 
826
-	if ( is_array( $var ) ) {
827
-		return array_map( 'wpinv_clean', $var );
826
+    if ( is_array( $var ) ) {
827
+        return array_map( 'wpinv_clean', $var );
828 828
     }
829 829
 
830 830
     if ( is_object( $var ) ) {
831
-		$object_vars = get_object_vars( $var );
832
-		foreach ( $object_vars as $property_name => $property_value ) {
833
-			$var->$property_name = wpinv_clean( $property_value );
831
+        $object_vars = get_object_vars( $var );
832
+        foreach ( $object_vars as $property_name => $property_value ) {
833
+            $var->$property_name = wpinv_clean( $property_value );
834 834
         }
835 835
         return $var;
836
-	}
836
+    }
837 837
 
838 838
     return is_string( $var ) ? sanitize_text_field( stripslashes( $var ) ) : $var;
839 839
 }
@@ -846,7 +846,7 @@  discard block
 block discarded – undo
846 846
  */
847 847
 function getpaid_convert_price_string_to_options( $str ) {
848 848
 
849
-	$raw_options = array_map( 'trim', explode( ',', $str ) );
849
+    $raw_options = array_map( 'trim', explode( ',', $str ) );
850 850
     $options     = array();
851 851
 
852 852
     foreach ( $raw_options as $option ) {
@@ -935,7 +935,7 @@  discard block
 block discarded – undo
935 935
  * @return string
936 936
  */
937 937
 function getpaid_date_format() {
938
-	return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
938
+    return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
939 939
 }
940 940
 
941 941
 /**
@@ -944,7 +944,7 @@  discard block
 block discarded – undo
944 944
  * @return string
945 945
  */
946 946
 function getpaid_time_format() {
947
-	return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
947
+    return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
948 948
 }
949 949
 
950 950
 /**
@@ -957,15 +957,15 @@  discard block
 block discarded – undo
957 957
 function getpaid_limit_length( $string, $limit ) {
958 958
     $str_limit = $limit - 3;
959 959
 
960
-	if ( function_exists( 'mb_strimwidth' ) ) {
961
-		if ( mb_strlen( $string ) > $limit ) {
962
-			$string = mb_strimwidth( $string, 0, $str_limit ) . '...';
963
-		}
964
-	} else {
965
-		if ( strlen( $string ) > $limit ) {
966
-			$string = substr( $string, 0, $str_limit ) . '...';
967
-		}
968
-	}
960
+    if ( function_exists( 'mb_strimwidth' ) ) {
961
+        if ( mb_strlen( $string ) > $limit ) {
962
+            $string = mb_strimwidth( $string, 0, $str_limit ) . '...';
963
+        }
964
+    } else {
965
+        if ( strlen( $string ) > $limit ) {
966
+            $string = substr( $string, 0, $str_limit ) . '...';
967
+        }
968
+    }
969 969
     return $string;
970 970
 
971 971
 }
@@ -1095,12 +1095,12 @@  discard block
 block discarded – undo
1095 1095
     $types = get_allowed_mime_types();
1096 1096
 
1097 1097
     if ( isset( $types['htm|html'] ) ) {
1098
-		unset( $types['htm|html'] );
1099
-	}
1098
+        unset( $types['htm|html'] );
1099
+    }
1100 1100
 
1101 1101
     if ( isset( $types['js'] ) ) {
1102
-		unset( $types['js'] );
1103
-	}
1102
+        unset( $types['js'] );
1103
+    }
1104 1104
 
1105 1105
     return $types;
1106 1106
 
Please login to merge, or discard this patch.
Spacing   +286 added lines, -286 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @package Invoicing
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Are we supporting item quantities?
@@ -20,35 +20,35 @@  discard block
 block discarded – undo
20 20
  */
21 21
 function wpinv_get_ip() {
22 22
 
23
-    if ( isset( $_SERVER['HTTP_X_REAL_IP'] ) ) {
24
-        return sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_REAL_IP'] ) );
23
+    if (isset($_SERVER['HTTP_X_REAL_IP'])) {
24
+        return sanitize_text_field(wp_unslash($_SERVER['HTTP_X_REAL_IP']));
25 25
     }
26 26
 
27
-    if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
27
+    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
28 28
         // Proxy servers can send through this header like this: X-Forwarded-For: client1, proxy1, proxy2
29 29
         // Make sure we always only send through the first IP in the list which should always be the client IP.
30
-        return (string) rest_is_ip_address( trim( current( preg_split( '/,/', sanitize_text_field( wp_unslash( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) ) ) ) );
30
+        return (string) rest_is_ip_address(trim(current(preg_split('/,/', sanitize_text_field(wp_unslash($_SERVER['HTTP_X_FORWARDED_FOR']))))));
31 31
     }
32 32
 
33
-    if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) {
34
-        return sanitize_text_field( wp_unslash( $_SERVER['HTTP_CLIENT_IP'] ) );
33
+    if (isset($_SERVER['HTTP_CLIENT_IP'])) {
34
+        return sanitize_text_field(wp_unslash($_SERVER['HTTP_CLIENT_IP']));
35 35
     }
36 36
 
37
-    if ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
38
-        return sanitize_text_field( wp_unslash( $_SERVER['REMOTE_ADDR'] ) );
37
+    if (isset($_SERVER['REMOTE_ADDR'])) {
38
+        return sanitize_text_field(wp_unslash($_SERVER['REMOTE_ADDR']));
39 39
     }
40 40
 
41 41
     return '';
42 42
 }
43 43
 
44 44
 function wpinv_get_user_agent() {
45
-    if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
46
-        $user_agent = sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] );
45
+    if (!empty($_SERVER['HTTP_USER_AGENT'])) {
46
+        $user_agent = sanitize_text_field($_SERVER['HTTP_USER_AGENT']);
47 47
     } else {
48 48
         $user_agent = '';
49 49
     }
50 50
 
51
-    return apply_filters( 'wpinv_get_user_agent', $user_agent );
51
+    return apply_filters('wpinv_get_user_agent', $user_agent);
52 52
 }
53 53
 
54 54
 /**
@@ -57,16 +57,16 @@  discard block
 block discarded – undo
57 57
  * @param string $amount The amount to sanitize.
58 58
  * @return float
59 59
  */
60
-function getpaid_standardize_amount( $amount ) {
60
+function getpaid_standardize_amount($amount) {
61 61
 
62
-    $amount = str_replace( wpinv_thousands_separator(), '', $amount );
63
-    $amount = str_replace( wpinv_decimal_separator(), '.', $amount );
64
-    if ( is_numeric( $amount ) ) {
65
-        return floatval( $amount );
62
+    $amount = str_replace(wpinv_thousands_separator(), '', $amount);
63
+    $amount = str_replace(wpinv_decimal_separator(), '.', $amount);
64
+    if (is_numeric($amount)) {
65
+        return floatval($amount);
66 66
     }
67 67
 
68 68
     // Cast the remaining to a float.
69
-    return wpinv_round_amount( preg_replace( '/[^0-9\.\-]/', '', $amount ) );
69
+    return wpinv_round_amount(preg_replace('/[^0-9\.\-]/', '', $amount));
70 70
 
71 71
 }
72 72
 
@@ -75,8 +75,8 @@  discard block
 block discarded – undo
75 75
  *
76 76
  * @param string $amount The amount to sanitize.
77 77
  */
78
-function getpaid_unstandardize_amount( $amount ) {
79
-    return str_replace( '.', wpinv_decimal_separator(), $amount );
78
+function getpaid_unstandardize_amount($amount) {
79
+    return str_replace('.', wpinv_decimal_separator(), $amount);
80 80
 }
81 81
 
82 82
 /**
@@ -84,24 +84,24 @@  discard block
 block discarded – undo
84 84
  *
85 85
  * @param string $amount The amount to sanitize.
86 86
  */
87
-function wpinv_sanitize_amount( $amount ) {
87
+function wpinv_sanitize_amount($amount) {
88 88
 
89
-    if ( is_numeric( $amount ) ) {
90
-        return floatval( $amount );
89
+    if (is_numeric($amount)) {
90
+        return floatval($amount);
91 91
     }
92 92
 
93 93
     // Separate the decimals and thousands.
94
-    $amount    = empty( $amount ) ? '0' : (string) $amount;
95
-    $amount    = explode( wpinv_decimal_separator(), $amount );
94
+    $amount    = empty($amount) ? '0' : (string) $amount;
95
+    $amount    = explode(wpinv_decimal_separator(), $amount);
96 96
 
97 97
     // Remove thousands.
98
-    $amount[0] = str_replace( wpinv_thousands_separator(), '', $amount[0] );
98
+    $amount[0] = str_replace(wpinv_thousands_separator(), '', $amount[0]);
99 99
 
100 100
     // Convert back to string.
101
-    $amount = count( $amount ) > 1 ? "{$amount[0]}.{$amount[1]}" : $amount[0];
101
+    $amount = count($amount) > 1 ? "{$amount[0]}.{$amount[1]}" : $amount[0];
102 102
 
103 103
     // Cast the remaining to a float.
104
-    return (float) preg_replace( '/[^0-9\.\-]/', '', $amount );
104
+    return (float) preg_replace('/[^0-9\.\-]/', '', $amount);
105 105
 
106 106
 }
107 107
 
@@ -111,19 +111,19 @@  discard block
 block discarded – undo
111 111
  * @param float $amount
112 112
  * @param float|string|int|null $decimals
113 113
  */
114
-function wpinv_round_amount( $amount, $decimals = null, $use_sprintf = false ) {
114
+function wpinv_round_amount($amount, $decimals = null, $use_sprintf = false) {
115 115
 
116
-    if ( $decimals === null ) {
116
+    if ($decimals === null) {
117 117
         $decimals = wpinv_decimals();
118 118
     }
119 119
 
120
-    if ( $use_sprintf ) {
121
-        $amount = sprintf( "%.{$decimals}f", (float) $amount );
120
+    if ($use_sprintf) {
121
+        $amount = sprintf("%.{$decimals}f", (float) $amount);
122 122
     } else {
123
-        $amount = round( (float) $amount, absint( $decimals ) );
123
+        $amount = round((float) $amount, absint($decimals));
124 124
     }
125 125
 
126
-    return apply_filters( 'wpinv_round_amount', $amount, $decimals );
126
+    return apply_filters('wpinv_round_amount', $amount, $decimals);
127 127
 }
128 128
 
129 129
 /**
@@ -135,32 +135,32 @@  discard block
 block discarded – undo
135 135
  * @param string|WPInv_Invoice $invoice The invoice object|post type|type
136 136
  * @return array
137 137
  */
138
-function wpinv_get_invoice_statuses( $draft = false, $trashed = false, $invoice = false ) {
138
+function wpinv_get_invoice_statuses($draft = false, $trashed = false, $invoice = false) {
139 139
 
140 140
 	$invoice_statuses = array(
141
-		'wpi-pending'    => _x( 'Pending payment', 'Invoice status', 'invoicing' ),
142
-        'publish'        => _x( 'Paid', 'Invoice status', 'invoicing' ),
143
-        'wpi-processing' => _x( 'Processing', 'Invoice status', 'invoicing' ),
144
-		'wpi-onhold'     => _x( 'On hold', 'Invoice status', 'invoicing' ),
145
-		'wpi-cancelled'  => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
146
-		'wpi-refunded'   => _x( 'Refunded', 'Invoice status', 'invoicing' ),
147
-        'wpi-failed'     => _x( 'Failed', 'Invoice status', 'invoicing' ),
148
-        'wpi-renewal'    => _x( 'Renewal Payment', 'Invoice status', 'invoicing' ),
141
+		'wpi-pending'    => _x('Pending payment', 'Invoice status', 'invoicing'),
142
+        'publish'        => _x('Paid', 'Invoice status', 'invoicing'),
143
+        'wpi-processing' => _x('Processing', 'Invoice status', 'invoicing'),
144
+		'wpi-onhold'     => _x('On hold', 'Invoice status', 'invoicing'),
145
+		'wpi-cancelled'  => _x('Cancelled', 'Invoice status', 'invoicing'),
146
+		'wpi-refunded'   => _x('Refunded', 'Invoice status', 'invoicing'),
147
+        'wpi-failed'     => _x('Failed', 'Invoice status', 'invoicing'),
148
+        'wpi-renewal'    => _x('Renewal Payment', 'Invoice status', 'invoicing'),
149 149
     );
150 150
 
151
-    if ( $draft ) {
152
-        $invoice_statuses['draft'] = __( 'Draft', 'invoicing' );
151
+    if ($draft) {
152
+        $invoice_statuses['draft'] = __('Draft', 'invoicing');
153 153
     }
154 154
 
155
-    if ( $trashed ) {
156
-        $invoice_statuses['trash'] = __( 'Trash', 'invoicing' );
155
+    if ($trashed) {
156
+        $invoice_statuses['trash'] = __('Trash', 'invoicing');
157 157
     }
158 158
 
159
-    if ( $invoice instanceof WPInv_Invoice ) {
159
+    if ($invoice instanceof WPInv_Invoice) {
160 160
         $invoice = $invoice->get_post_type();
161 161
     }
162 162
 
163
-	return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );
163
+	return apply_filters('wpinv_statuses', $invoice_statuses, $invoice);
164 164
 }
165 165
 
166 166
 /**
@@ -169,11 +169,11 @@  discard block
 block discarded – undo
169 169
  * @param string $status The raw status
170 170
  * @param string|WPInv_Invoice $invoice The invoice object|post type|type
171 171
  */
172
-function wpinv_status_nicename( $status, $invoice = false ) {
173
-    $statuses = wpinv_get_invoice_statuses( true, true, $invoice );
174
-    $status   = isset( $statuses[ $status ] ) ? $statuses[ $status ] : $status;
172
+function wpinv_status_nicename($status, $invoice = false) {
173
+    $statuses = wpinv_get_invoice_statuses(true, true, $invoice);
174
+    $status   = isset($statuses[$status]) ? $statuses[$status] : $status;
175 175
 
176
-    return sanitize_text_field( $status );
176
+    return sanitize_text_field($status);
177 177
 }
178 178
 
179 179
 /**
@@ -181,13 +181,13 @@  discard block
 block discarded – undo
181 181
  *
182 182
  * @param string $current
183 183
  */
184
-function wpinv_get_currency( $current = '' ) {
184
+function wpinv_get_currency($current = '') {
185 185
 
186
-    if ( empty( $current ) ) {
187
-        $current = apply_filters( 'wpinv_currency', wpinv_get_option( 'currency', 'USD' ) );
186
+    if (empty($current)) {
187
+        $current = apply_filters('wpinv_currency', wpinv_get_option('currency', 'USD'));
188 188
     }
189 189
 
190
-    return trim( strtoupper( $current ) );
190
+    return trim(strtoupper($current));
191 191
 }
192 192
 
193 193
 /**
@@ -195,25 +195,25 @@  discard block
 block discarded – undo
195 195
  *
196 196
  * @param string|null $currency The currency code. Defaults to the default currency.
197 197
  */
198
-function wpinv_currency_symbol( $currency = null ) {
198
+function wpinv_currency_symbol($currency = null) {
199 199
 
200 200
     // Prepare the currency.
201
-    $currency = empty( $currency ) ? wpinv_get_currency() : wpinv_clean( $currency );
201
+    $currency = empty($currency) ? wpinv_get_currency() : wpinv_clean($currency);
202 202
 
203 203
     // Fetch all symbols.
204 204
     $symbols = wpinv_get_currency_symbols();
205 205
 
206 206
     // Fetch this currencies symbol.
207
-    $currency_symbol = isset( $symbols[ $currency ] ) ? $symbols[ $currency ] : $currency;
207
+    $currency_symbol = isset($symbols[$currency]) ? $symbols[$currency] : $currency;
208 208
 
209 209
     // Filter the symbol.
210
-    return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency );
210
+    return apply_filters('wpinv_currency_symbol', $currency_symbol, $currency);
211 211
 }
212 212
 
213 213
 function wpinv_currency_position() {
214
-    $position = wpinv_get_option( 'currency_position', 'left' );
214
+    $position = wpinv_get_option('currency_position', 'left');
215 215
 
216
-    return apply_filters( 'wpinv_currency_position', $position );
216
+    return apply_filters('wpinv_currency_position', $position);
217 217
 }
218 218
 
219 219
 /**
@@ -221,13 +221,13 @@  discard block
 block discarded – undo
221 221
  *
222 222
  * @param $string|null $current
223 223
  */
224
-function wpinv_thousands_separator( $current = null ) {
224
+function wpinv_thousands_separator($current = null) {
225 225
 
226
-    if ( null == $current ) {
227
-        $current = wpinv_get_option( 'thousands_separator', ',' );
226
+    if (null == $current) {
227
+        $current = wpinv_get_option('thousands_separator', ',');
228 228
     }
229 229
 
230
-    return trim( $current );
230
+    return trim($current);
231 231
 }
232 232
 
233 233
 /**
@@ -235,13 +235,13 @@  discard block
 block discarded – undo
235 235
  *
236 236
  * @param $string|null $current
237 237
  */
238
-function wpinv_decimal_separator( $current = null ) {
238
+function wpinv_decimal_separator($current = null) {
239 239
 
240
-    if ( null == $current ) {
241
-        $current = wpinv_get_option( 'decimal_separator', '.' );
240
+    if (null == $current) {
241
+        $current = wpinv_get_option('decimal_separator', '.');
242 242
     }
243 243
 
244
-    return trim( $current );
244
+    return trim($current);
245 245
 }
246 246
 
247 247
 /**
@@ -249,27 +249,27 @@  discard block
 block discarded – undo
249 249
  *
250 250
  * @param $string|null $current
251 251
  */
252
-function wpinv_decimals( $current = null ) {
252
+function wpinv_decimals($current = null) {
253 253
 
254
-    if ( null == $current ) {
255
-        $current = wpinv_get_option( 'decimals', 2 );
254
+    if (null == $current) {
255
+        $current = wpinv_get_option('decimals', 2);
256 256
     }
257 257
 
258
-    return absint( $current );
258
+    return absint($current);
259 259
 }
260 260
 
261 261
 /**
262 262
  * Retrieves a list of all supported currencies.
263 263
  */
264 264
 function wpinv_get_currencies() {
265
-    return apply_filters( 'wpinv_currencies', wpinv_get_data( 'currencies' ) );
265
+    return apply_filters('wpinv_currencies', wpinv_get_data('currencies'));
266 266
 }
267 267
 
268 268
 /**
269 269
  * Retrieves a list of all currency symbols.
270 270
  */
271 271
 function wpinv_get_currency_symbols() {
272
-    return apply_filters( 'wpinv_currency_symbols', wpinv_get_data( 'currency-symbols' ) );
272
+    return apply_filters('wpinv_currency_symbols', wpinv_get_data('currency-symbols'));
273 273
 }
274 274
 
275 275
 /**
@@ -281,7 +281,7 @@  discard block
 block discarded – undo
281 281
 	$currency_pos = wpinv_currency_position();
282 282
 	$format       = '%1$s%2$s';
283 283
 
284
-	switch ( $currency_pos ) {
284
+	switch ($currency_pos) {
285 285
 		case 'left':
286 286
 			$format = '%1$s%2$s';
287 287
 			break;
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
 			break;
297 297
 	}
298 298
 
299
-	return apply_filters( 'getpaid_price_format', $format, $currency_pos );
299
+	return apply_filters('getpaid_price_format', $format, $currency_pos);
300 300
 }
301 301
 
302 302
 /**
@@ -306,8 +306,8 @@  discard block
 block discarded – undo
306 306
  * @param  string $currency Currency.
307 307
  * @return string
308 308
  */
309
-function wpinv_the_price( $amount = 0, $currency = '' ) {
310
-    echo wp_kses_post( wpinv_price( $amount, $currency ) );
309
+function wpinv_the_price($amount = 0, $currency = '') {
310
+    echo wp_kses_post(wpinv_price($amount, $currency));
311 311
 }
312 312
 
313 313
 /**
@@ -317,25 +317,25 @@  discard block
 block discarded – undo
317 317
  * @param  string $currency Currency.
318 318
  * @return string
319 319
  */
320
-function wpinv_price( $amount = 0, $currency = '' ) {
320
+function wpinv_price($amount = 0, $currency = '') {
321 321
 
322 322
     // Backwards compatibility.
323
-    $amount             = wpinv_sanitize_amount( $amount );
323
+    $amount             = wpinv_sanitize_amount($amount);
324 324
 
325 325
     // Prepare variables.
326
-    $currency           = wpinv_get_currency( $currency );
326
+    $currency           = wpinv_get_currency($currency);
327 327
     $amount             = (float) $amount;
328 328
     $unformatted_amount = $amount;
329 329
     $negative           = $amount < 0;
330
-    $amount             = apply_filters( 'getpaid_raw_amount', floatval( $negative ? $amount * -1 : $amount ) );
331
-    $amount             = wpinv_format_amount( $amount );
330
+    $amount             = apply_filters('getpaid_raw_amount', floatval($negative ? $amount * -1 : $amount));
331
+    $amount             = wpinv_format_amount($amount);
332 332
 
333 333
     // Format the amount.
334 334
     $format             = getpaid_get_price_format();
335
-    $formatted_amount   = ( $negative ? '-' : '' ) . sprintf( $format, '<span class="getpaid-currency__symbol">' . wpinv_currency_symbol( $currency ) . '</span>', $amount );
335
+    $formatted_amount   = ($negative ? '-' : '') . sprintf($format, '<span class="getpaid-currency__symbol">' . wpinv_currency_symbol($currency) . '</span>', $amount);
336 336
 
337 337
     // Filter the formatting.
338
-    return apply_filters( 'wpinv_price', $formatted_amount, $amount, $currency, $unformatted_amount );
338
+    return apply_filters('wpinv_price', $formatted_amount, $amount, $currency, $unformatted_amount);
339 339
 }
340 340
 
341 341
 /**
@@ -346,25 +346,25 @@  discard block
 block discarded – undo
346 346
  * @param  bool     $calculate Whether or not to apply separators.
347 347
  * @return string
348 348
  */
349
-function wpinv_format_amount( $amount, $decimals = null, $calculate = false ) {
349
+function wpinv_format_amount($amount, $decimals = null, $calculate = false) {
350 350
     $thousands_sep = wpinv_thousands_separator();
351 351
     $decimal_sep   = wpinv_decimal_separator();
352
-    $decimals      = wpinv_decimals( $decimals );
353
-    $amount        = wpinv_sanitize_amount( $amount );
352
+    $decimals      = wpinv_decimals($decimals);
353
+    $amount        = wpinv_sanitize_amount($amount);
354 354
 
355
-    if ( $calculate ) {
355
+    if ($calculate) {
356 356
         return $amount;
357 357
     }
358 358
 
359 359
     // Fomart the amount.
360
-    return number_format( $amount, $decimals, $decimal_sep, $thousands_sep );
360
+    return number_format($amount, $decimals, $decimal_sep, $thousands_sep);
361 361
 }
362 362
 
363
-function wpinv_sanitize_key( $key ) {
363
+function wpinv_sanitize_key($key) {
364 364
     $raw_key = $key;
365
-    $key = preg_replace( '/[^a-zA-Z0-9_\-\.\:\/]/', '', $key );
365
+    $key = preg_replace('/[^a-zA-Z0-9_\-\.\:\/]/', '', $key);
366 366
 
367
-    return apply_filters( 'wpinv_sanitize_key', $key, $raw_key );
367
+    return apply_filters('wpinv_sanitize_key', $key, $raw_key);
368 368
 }
369 369
 
370 370
 /**
@@ -372,8 +372,8 @@  discard block
 block discarded – undo
372 372
  *
373 373
  * @param $str the file whose extension should be retrieved.
374 374
  */
375
-function wpinv_get_file_extension( $str ) {
376
-    $filetype = wp_check_filetype( $str );
375
+function wpinv_get_file_extension($str) {
376
+    $filetype = wp_check_filetype($str);
377 377
     return $filetype['ext'];
378 378
 }
379 379
 
@@ -382,16 +382,16 @@  discard block
 block discarded – undo
382 382
  *
383 383
  * @param string $string
384 384
  */
385
-function wpinv_string_is_image_url( $string ) {
386
-    $extension = strtolower( wpinv_get_file_extension( $string ) );
387
-    return in_array( $extension, array( 'jpeg', 'jpg', 'png', 'gif', 'ico' ), true );
385
+function wpinv_string_is_image_url($string) {
386
+    $extension = strtolower(wpinv_get_file_extension($string));
387
+    return in_array($extension, array('jpeg', 'jpg', 'png', 'gif', 'ico'), true);
388 388
 }
389 389
 
390 390
 /**
391 391
  * Returns the current URL.
392 392
  */
393 393
 function wpinv_get_current_page_url() {
394
-    return esc_url( add_query_arg( array() ) );
394
+    return esc_url(add_query_arg(array()));
395 395
 }
396 396
 
397 397
 /**
@@ -401,46 +401,46 @@  discard block
 block discarded – undo
401 401
  * @param string $name  Constant name.
402 402
  * @param mixed  $value Value.
403 403
  */
404
-function getpaid_maybe_define_constant( $name, $value ) {
405
-	if ( ! defined( $name ) ) {
406
-		define( $name, $value );
404
+function getpaid_maybe_define_constant($name, $value) {
405
+	if (!defined($name)) {
406
+		define($name, $value);
407 407
 	}
408 408
 }
409 409
 
410 410
 function wpinv_get_php_arg_separator_output() {
411
-	return ini_get( 'arg_separator.output' );
411
+	return ini_get('arg_separator.output');
412 412
 }
413 413
 
414
-function wpinv_rgb_from_hex( $color ) {
415
-    $color = str_replace( '#', '', $color );
414
+function wpinv_rgb_from_hex($color) {
415
+    $color = str_replace('#', '', $color);
416 416
 
417 417
     // Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF"
418
-    $color = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color );
419
-    if ( empty( $color ) ) {
418
+    $color = preg_replace('~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color);
419
+    if (empty($color)) {
420 420
         return null;
421 421
     }
422 422
 
423
-    $color = str_split( $color );
423
+    $color = str_split($color);
424 424
 
425 425
     $rgb      = array();
426
-    $rgb['R'] = hexdec( $color[0] . $color[1] );
427
-    $rgb['G'] = hexdec( $color[2] . $color[3] );
428
-    $rgb['B'] = hexdec( $color[4] . $color[5] );
426
+    $rgb['R'] = hexdec($color[0] . $color[1]);
427
+    $rgb['G'] = hexdec($color[2] . $color[3]);
428
+    $rgb['B'] = hexdec($color[4] . $color[5]);
429 429
 
430 430
     return $rgb;
431 431
 }
432 432
 
433
-function wpinv_hex_darker( $color, $factor = 30 ) {
434
-    $base  = wpinv_rgb_from_hex( $color );
433
+function wpinv_hex_darker($color, $factor = 30) {
434
+    $base  = wpinv_rgb_from_hex($color);
435 435
     $color = '#';
436 436
 
437
-    foreach ( $base as $k => $v ) {
437
+    foreach ($base as $k => $v) {
438 438
         $amount      = $v / 100;
439
-        $amount      = round( $amount * $factor );
439
+        $amount      = round($amount * $factor);
440 440
         $new_decimal = $v - $amount;
441 441
 
442
-        $new_hex_component = dechex( $new_decimal );
443
-        if ( strlen( $new_hex_component ) < 2 ) {
442
+        $new_hex_component = dechex($new_decimal);
443
+        if (strlen($new_hex_component) < 2) {
444 444
             $new_hex_component = '0' . $new_hex_component;
445 445
         }
446 446
         $color .= $new_hex_component;
@@ -449,18 +449,18 @@  discard block
 block discarded – undo
449 449
     return $color;
450 450
 }
451 451
 
452
-function wpinv_hex_lighter( $color, $factor = 30 ) {
453
-    $base  = wpinv_rgb_from_hex( $color );
452
+function wpinv_hex_lighter($color, $factor = 30) {
453
+    $base  = wpinv_rgb_from_hex($color);
454 454
     $color = '#';
455 455
 
456
-    foreach ( $base as $k => $v ) {
456
+    foreach ($base as $k => $v) {
457 457
         $amount      = 255 - $v;
458 458
         $amount      = $amount / 100;
459
-        $amount      = round( $amount * $factor );
459
+        $amount      = round($amount * $factor);
460 460
         $new_decimal = $v + $amount;
461 461
 
462
-        $new_hex_component = dechex( $new_decimal );
463
-        if ( strlen( $new_hex_component ) < 2 ) {
462
+        $new_hex_component = dechex($new_decimal);
463
+        if (strlen($new_hex_component) < 2) {
464 464
             $new_hex_component = '0' . $new_hex_component;
465 465
         }
466 466
         $color .= $new_hex_component;
@@ -469,22 +469,22 @@  discard block
 block discarded – undo
469 469
     return $color;
470 470
 }
471 471
 
472
-function wpinv_light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) {
473
-    $hex = str_replace( '#', '', $color );
472
+function wpinv_light_or_dark($color, $dark = '#000000', $light = '#FFFFFF') {
473
+    $hex = str_replace('#', '', $color);
474 474
 
475
-    $c_r = hexdec( substr( $hex, 0, 2 ) );
476
-    $c_g = hexdec( substr( $hex, 2, 2 ) );
477
-    $c_b = hexdec( substr( $hex, 4, 2 ) );
475
+    $c_r = hexdec(substr($hex, 0, 2));
476
+    $c_g = hexdec(substr($hex, 2, 2));
477
+    $c_b = hexdec(substr($hex, 4, 2));
478 478
 
479
-    $brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000;
479
+    $brightness = (($c_r * 299) + ($c_g * 587) + ($c_b * 114)) / 1000;
480 480
 
481 481
     return $brightness > 155 ? $dark : $light;
482 482
 }
483 483
 
484
-function wpinv_format_hex( $hex ) {
485
-    $hex = trim( str_replace( '#', '', $hex ) );
484
+function wpinv_format_hex($hex) {
485
+    $hex = trim(str_replace('#', '', $hex));
486 486
 
487
-    if ( strlen( $hex ) == 3 ) {
487
+    if (strlen($hex) == 3) {
488 488
         $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2];
489 489
     }
490 490
 
@@ -504,12 +504,12 @@  discard block
 block discarded – undo
504 504
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
505 505
  * @return string
506 506
  */
507
-function wpinv_utf8_strimwidth( $str, $start, $width, $trimmaker = '', $encoding = 'UTF-8' ) {
508
-    if ( function_exists( 'mb_strimwidth' ) ) {
509
-        return mb_strimwidth( $str, $start, $width, $trimmaker, $encoding );
507
+function wpinv_utf8_strimwidth($str, $start, $width, $trimmaker = '', $encoding = 'UTF-8') {
508
+    if (function_exists('mb_strimwidth')) {
509
+        return mb_strimwidth($str, $start, $width, $trimmaker, $encoding);
510 510
     }
511 511
 
512
-    return wpinv_utf8_substr( $str, $start, $width, $encoding ) . $trimmaker;
512
+    return wpinv_utf8_substr($str, $start, $width, $encoding) . $trimmaker;
513 513
 }
514 514
 
515 515
 /**
@@ -521,28 +521,28 @@  discard block
 block discarded – undo
521 521
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
522 522
  * @return int Returns the number of characters in string.
523 523
  */
524
-function wpinv_utf8_strlen( $str, $encoding = 'UTF-8' ) {
525
-    if ( function_exists( 'mb_strlen' ) ) {
526
-        return mb_strlen( $str, $encoding );
524
+function wpinv_utf8_strlen($str, $encoding = 'UTF-8') {
525
+    if (function_exists('mb_strlen')) {
526
+        return mb_strlen($str, $encoding);
527 527
     }
528 528
 
529
-    return strlen( $str );
529
+    return strlen($str);
530 530
 }
531 531
 
532
-function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) {
533
-    if ( function_exists( 'mb_strtolower' ) ) {
534
-        return mb_strtolower( $str, $encoding );
532
+function wpinv_utf8_strtolower($str, $encoding = 'UTF-8') {
533
+    if (function_exists('mb_strtolower')) {
534
+        return mb_strtolower($str, $encoding);
535 535
     }
536 536
 
537
-    return strtolower( $str );
537
+    return strtolower($str);
538 538
 }
539 539
 
540
-function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) {
541
-    if ( function_exists( 'mb_strtoupper' ) ) {
542
-        return mb_strtoupper( $str, $encoding );
540
+function wpinv_utf8_strtoupper($str, $encoding = 'UTF-8') {
541
+    if (function_exists('mb_strtoupper')) {
542
+        return mb_strtoupper($str, $encoding);
543 543
     }
544 544
 
545
-    return strtoupper( $str );
545
+    return strtoupper($str);
546 546
 }
547 547
 
548 548
 /**
@@ -556,12 +556,12 @@  discard block
 block discarded – undo
556 556
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
557 557
  * @return int Returns the position of the first occurrence of search in the string.
558 558
  */
559
-function wpinv_utf8_strpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) {
560
-    if ( function_exists( 'mb_strpos' ) ) {
561
-        return mb_strpos( $str, $find, $offset, $encoding );
559
+function wpinv_utf8_strpos($str, $find, $offset = 0, $encoding = 'UTF-8') {
560
+    if (function_exists('mb_strpos')) {
561
+        return mb_strpos($str, $find, $offset, $encoding);
562 562
     }
563 563
 
564
-    return strpos( $str, $find, $offset );
564
+    return strpos($str, $find, $offset);
565 565
 }
566 566
 
567 567
 /**
@@ -575,12 +575,12 @@  discard block
 block discarded – undo
575 575
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
576 576
  * @return int Returns the position of the last occurrence of search.
577 577
  */
578
-function wpinv_utf8_strrpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) {
579
-    if ( function_exists( 'mb_strrpos' ) ) {
580
-        return mb_strrpos( $str, $find, $offset, $encoding );
578
+function wpinv_utf8_strrpos($str, $find, $offset = 0, $encoding = 'UTF-8') {
579
+    if (function_exists('mb_strrpos')) {
580
+        return mb_strrpos($str, $find, $offset, $encoding);
581 581
     }
582 582
 
583
-    return strrpos( $str, $find, $offset );
583
+    return strrpos($str, $find, $offset);
584 584
 }
585 585
 
586 586
 /**
@@ -595,16 +595,16 @@  discard block
 block discarded – undo
595 595
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
596 596
  * @return string
597 597
  */
598
-function wpinv_utf8_substr( $str, $start, $length = null, $encoding = 'UTF-8' ) {
599
-    if ( function_exists( 'mb_substr' ) ) {
600
-        if ( null === $length ) {
601
-            return mb_substr( $str, $start, wpinv_utf8_strlen( $str, $encoding ), $encoding );
598
+function wpinv_utf8_substr($str, $start, $length = null, $encoding = 'UTF-8') {
599
+    if (function_exists('mb_substr')) {
600
+        if (null === $length) {
601
+            return mb_substr($str, $start, wpinv_utf8_strlen($str, $encoding), $encoding);
602 602
         } else {
603
-            return mb_substr( $str, $start, $length, $encoding );
603
+            return mb_substr($str, $start, $length, $encoding);
604 604
         }
605 605
     }
606 606
 
607
-    return substr( $str, $start, $length );
607
+    return substr($str, $start, $length);
608 608
 }
609 609
 
610 610
 /**
@@ -616,48 +616,48 @@  discard block
 block discarded – undo
616 616
  * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".
617 617
  * @return string The width of string.
618 618
  */
619
-function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) {
620
-    if ( function_exists( 'mb_strwidth' ) ) {
621
-        return mb_strwidth( $str, $encoding );
619
+function wpinv_utf8_strwidth($str, $encoding = 'UTF-8') {
620
+    if (function_exists('mb_strwidth')) {
621
+        return mb_strwidth($str, $encoding);
622 622
     }
623 623
 
624
-    return wpinv_utf8_strlen( $str, $encoding );
624
+    return wpinv_utf8_strlen($str, $encoding);
625 625
 }
626 626
 
627
-function wpinv_utf8_ucfirst( $str, $lower_str_end = false, $encoding = 'UTF-8' ) {
628
-    if ( function_exists( 'mb_strlen' ) ) {
629
-        $first_letter = wpinv_utf8_strtoupper( wpinv_utf8_substr( $str, 0, 1, $encoding ), $encoding );
627
+function wpinv_utf8_ucfirst($str, $lower_str_end = false, $encoding = 'UTF-8') {
628
+    if (function_exists('mb_strlen')) {
629
+        $first_letter = wpinv_utf8_strtoupper(wpinv_utf8_substr($str, 0, 1, $encoding), $encoding);
630 630
         $str_end = '';
631 631
 
632
-        if ( $lower_str_end ) {
633
-            $str_end = wpinv_utf8_strtolower( wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding ), $encoding );
632
+        if ($lower_str_end) {
633
+            $str_end = wpinv_utf8_strtolower(wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding), $encoding);
634 634
         } else {
635
-            $str_end = wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding );
635
+            $str_end = wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding);
636 636
         }
637 637
 
638 638
         return $first_letter . $str_end;
639 639
     }
640 640
 
641
-    return ucfirst( $str );
641
+    return ucfirst($str);
642 642
 }
643 643
 
644
-function wpinv_utf8_ucwords( $str, $encoding = 'UTF-8' ) {
645
-    if ( function_exists( 'mb_convert_case' ) ) {
646
-        return mb_convert_case( $str, MB_CASE_TITLE, $encoding );
644
+function wpinv_utf8_ucwords($str, $encoding = 'UTF-8') {
645
+    if (function_exists('mb_convert_case')) {
646
+        return mb_convert_case($str, MB_CASE_TITLE, $encoding);
647 647
     }
648 648
 
649
-    return ucwords( $str );
649
+    return ucwords($str);
650 650
 }
651 651
 
652
-function wpinv_period_in_days( $period, $unit ) {
653
-    $period = absint( $period );
652
+function wpinv_period_in_days($period, $unit) {
653
+    $period = absint($period);
654 654
 
655
-    if ( $period > 0 ) {
656
-        if ( in_array( strtolower( $unit ), array( 'w', 'week', 'weeks' ) ) ) {
655
+    if ($period > 0) {
656
+        if (in_array(strtolower($unit), array('w', 'week', 'weeks'))) {
657 657
             $period = $period * 7;
658
-        } elseif ( in_array( strtolower( $unit ), array( 'm', 'month', 'months' ) ) ) {
658
+        } elseif (in_array(strtolower($unit), array('m', 'month', 'months'))) {
659 659
             $period = $period * 30;
660
-        } elseif ( in_array( strtolower( $unit ), array( 'y', 'year', 'years' ) ) ) {
660
+        } elseif (in_array(strtolower($unit), array('y', 'year', 'years'))) {
661 661
             $period = $period * 365;
662 662
         }
663 663
     }
@@ -665,14 +665,14 @@  discard block
 block discarded – undo
665 665
     return $period;
666 666
 }
667 667
 
668
-function wpinv_cal_days_in_month( $calendar, $month, $year ) {
669
-    if ( function_exists( 'cal_days_in_month' ) ) {
670
-        return cal_days_in_month( $calendar, $month, $year );
668
+function wpinv_cal_days_in_month($calendar, $month, $year) {
669
+    if (function_exists('cal_days_in_month')) {
670
+        return cal_days_in_month($calendar, $month, $year);
671 671
     }
672 672
 
673 673
     // Fallback in case the calendar extension is not loaded in PHP
674 674
     // Only supports Gregorian calendar
675
-    return gmdate( 't', mktime( 0, 0, 0, $month, 1, $year ) );
675
+    return gmdate('t', mktime(0, 0, 0, $month, 1, $year));
676 676
 }
677 677
 
678 678
 /**
@@ -683,27 +683,27 @@  discard block
 block discarded – undo
683 683
  *
684 684
  * @return string
685 685
  */
686
-function wpi_help_tip( $tip, $allow_html = false, $is_vue = false, $echo = false ) {
686
+function wpi_help_tip($tip, $allow_html = false, $is_vue = false, $echo = false) {
687 687
 
688
-    if ( $allow_html ) {
689
-        $tip = wpi_sanitize_tooltip( $tip );
688
+    if ($allow_html) {
689
+        $tip = wpi_sanitize_tooltip($tip);
690 690
     } else {
691
-        $tip = strip_tags( $tip );
691
+        $tip = strip_tags($tip);
692 692
     }
693 693
 
694
-    if ( $is_vue ) {
694
+    if ($is_vue) {
695 695
 
696
-        if ( $echo ) {
697
-            echo '<span class="dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
696
+        if ($echo) {
697
+            echo '<span class="dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
698 698
         } else {
699
-            return '<span class="dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
699
+            return '<span class="dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
700 700
         }
701 701
 }
702 702
 
703
-    if ( $echo ) {
704
-        echo '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
703
+    if ($echo) {
704
+        echo '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
705 705
     } else {
706
-        return '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr( $tip ) . '"></span>';
706
+        return '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . esc_attr($tip) . '"></span>';
707 707
     }
708 708
 }
709 709
 
@@ -715,9 +715,9 @@  discard block
 block discarded – undo
715 715
  * @param string $var
716 716
  * @return string
717 717
  */
718
-function wpi_sanitize_tooltip( $var ) {
718
+function wpi_sanitize_tooltip($var) {
719 719
     return wp_kses(
720
-        html_entity_decode( $var ),
720
+        html_entity_decode($var),
721 721
         array(
722 722
 			'br'     => array(),
723 723
 			'em'     => array(),
@@ -740,7 +740,7 @@  discard block
 block discarded – undo
740 740
  */
741 741
 function wpinv_get_screen_ids() {
742 742
 
743
-    $screen_id = sanitize_title( __( 'Invoicing', 'invoicing' ) );
743
+    $screen_id = sanitize_title(__('Invoicing', 'invoicing'));
744 744
 
745 745
     $screen_ids = array(
746 746
         'toplevel_page_' . $screen_id,
@@ -762,7 +762,7 @@  discard block
 block discarded – undo
762 762
         'gp-setup', // setup wizard
763 763
     );
764 764
 
765
-    return apply_filters( 'wpinv_screen_ids', $screen_ids );
765
+    return apply_filters('wpinv_screen_ids', $screen_ids);
766 766
 }
767 767
 
768 768
 /**
@@ -773,14 +773,14 @@  discard block
 block discarded – undo
773 773
  * @param array|string $list List of values.
774 774
  * @return array Sanitized array of values.
775 775
  */
776
-function wpinv_parse_list( $list ) {
776
+function wpinv_parse_list($list) {
777 777
 
778
-    if ( empty( $list ) ) {
778
+    if (empty($list)) {
779 779
         $list = array();
780 780
     }
781 781
 
782
-	if ( ! is_array( $list ) ) {
783
-		return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
782
+	if (!is_array($list)) {
783
+		return preg_split('/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY);
784 784
 	}
785 785
 
786 786
 	return $list;
@@ -794,8 +794,8 @@  discard block
 block discarded – undo
794 794
  * @param string $key Type of data to fetch.
795 795
  * @return mixed Fetched data.
796 796
  */
797
-function wpinv_get_data( $key ) {
798
-    return apply_filters( "wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php" );
797
+function wpinv_get_data($key) {
798
+    return apply_filters("wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php");
799 799
 }
800 800
 
801 801
 /**
@@ -807,10 +807,10 @@  discard block
 block discarded – undo
807 807
  * @param bool $first_empty Whether or not the first item in the list should be empty
808 808
  * @return mixed Fetched data.
809 809
  */
810
-function wpinv_maybe_add_empty_option( $options, $first_empty ) {
810
+function wpinv_maybe_add_empty_option($options, $first_empty) {
811 811
 
812
-    if ( ! empty( $options ) && $first_empty ) {
813
-        return array_merge( array( '' => '' ), $options );
812
+    if (!empty($options) && $first_empty) {
813
+        return array_merge(array('' => ''), $options);
814 814
     }
815 815
     return $options;
816 816
 
@@ -822,21 +822,21 @@  discard block
 block discarded – undo
822 822
  * @param mixed $var Data to sanitize.
823 823
  * @return string|array
824 824
  */
825
-function wpinv_clean( $var ) {
825
+function wpinv_clean($var) {
826 826
 
827
-	if ( is_array( $var ) ) {
828
-		return array_map( 'wpinv_clean', $var );
827
+	if (is_array($var)) {
828
+		return array_map('wpinv_clean', $var);
829 829
     }
830 830
 
831
-    if ( is_object( $var ) ) {
832
-		$object_vars = get_object_vars( $var );
833
-		foreach ( $object_vars as $property_name => $property_value ) {
834
-			$var->$property_name = wpinv_clean( $property_value );
831
+    if (is_object($var)) {
832
+		$object_vars = get_object_vars($var);
833
+		foreach ($object_vars as $property_name => $property_value) {
834
+			$var->$property_name = wpinv_clean($property_value);
835 835
         }
836 836
         return $var;
837 837
 	}
838 838
 
839
-    return is_string( $var ) ? sanitize_text_field( stripslashes( $var ) ) : $var;
839
+    return is_string($var) ? sanitize_text_field(stripslashes($var)) : $var;
840 840
 }
841 841
 
842 842
 /**
@@ -845,43 +845,43 @@  discard block
 block discarded – undo
845 845
  * @param string $str Data to convert.
846 846
  * @return string|array
847 847
  */
848
-function getpaid_convert_price_string_to_options( $str ) {
848
+function getpaid_convert_price_string_to_options($str) {
849 849
 
850
-	$raw_options = array_map( 'trim', explode( ',', $str ) );
851
-    $options     = array();
850
+	$raw_options = array_map('trim', explode(',', $str));
851
+    $options = array();
852 852
 
853
-    foreach ( $raw_options as $option ) {
853
+    foreach ($raw_options as $option) {
854 854
 
855
-        if ( '' == $option ) {
855
+        if ('' == $option) {
856 856
             continue;
857 857
         }
858 858
 
859
-        $option = array_map( 'trim', explode( '|', $option ) );
859
+        $option = array_map('trim', explode('|', $option));
860 860
 
861 861
         $price = null;
862 862
         $label = null;
863 863
 
864
-        if ( isset( $option[0] ) && '' != $option[0] ) {
865
-            $label  = $option[0];
864
+        if (isset($option[0]) && '' != $option[0]) {
865
+            $label = $option[0];
866 866
         }
867 867
 
868
-        if ( isset( $option[1] ) && '' != $option[1] ) {
868
+        if (isset($option[1]) && '' != $option[1]) {
869 869
             $price = $option[1];
870 870
         }
871 871
 
872
-        if ( ! isset( $price ) ) {
872
+        if (!isset($price)) {
873 873
             $price = $label;
874 874
         }
875 875
 
876
-        if ( ! isset( $price ) || ! is_numeric( $price ) ) {
876
+        if (!isset($price) || !is_numeric($price)) {
877 877
             continue;
878 878
         }
879 879
 
880
-        if ( ! isset( $label ) ) {
880
+        if (!isset($label)) {
881 881
             $label = $price;
882 882
         }
883 883
 
884
-        $options[ "$label|$price" ] = $label;
884
+        $options["$label|$price"] = $label;
885 885
     }
886 886
 
887 887
     return $options;
@@ -890,14 +890,14 @@  discard block
 block discarded – undo
890 890
 /**
891 891
  * Returns the help tip.
892 892
  */
893
-function getpaid_get_help_tip( $tip, $additional_classes = '', $echo = false ) {
893
+function getpaid_get_help_tip($tip, $additional_classes = '', $echo = false) {
894 894
     $classes = 'wpi-help-tip dashicons dashicons-editor-help ' . $additional_classes;
895
-    $tip     = esc_attr( $tip );
895
+    $tip     = esc_attr($tip);
896 896
 
897
-    if ( $echo ) {
898
-        echo '<span class="' . esc_attr( $classes ) . '" data-tip="' . esc_attr( $tip ) . '"></span>';
897
+    if ($echo) {
898
+        echo '<span class="' . esc_attr($classes) . '" data-tip="' . esc_attr($tip) . '"></span>';
899 899
     } else {
900
-        return '<span class="' . esc_attr( $classes ) . '" data-tip="' . esc_attr( $tip ) . '"></span>';
900
+        return '<span class="' . esc_attr($classes) . '" data-tip="' . esc_attr($tip) . '"></span>';
901 901
     }
902 902
 
903 903
 }
@@ -905,18 +905,18 @@  discard block
 block discarded – undo
905 905
 /**
906 906
  * Formats a date
907 907
  */
908
-function getpaid_format_date( $date, $with_time = false ) {
908
+function getpaid_format_date($date, $with_time = false) {
909 909
 
910
-    if ( empty( $date ) || $date == '0000-00-00 00:00:00' ) {
910
+    if (empty($date) || $date == '0000-00-00 00:00:00') {
911 911
         return '';
912 912
     }
913 913
 
914 914
     $format = getpaid_date_format();
915 915
 
916
-    if ( $with_time ) {
916
+    if ($with_time) {
917 917
         $format .= ' ' . getpaid_time_format();
918 918
     }
919
-    return date_i18n( $format, strtotime( $date ) );
919
+    return date_i18n($format, strtotime($date));
920 920
 
921 921
 }
922 922
 
@@ -925,9 +925,9 @@  discard block
 block discarded – undo
925 925
  *
926 926
  * @return string
927 927
  */
928
-function getpaid_format_date_value( $date, $default = '&mdash;', $with_time = false ) {
929
-    $date = getpaid_format_date( $date, $with_time );
930
-    return empty( $date ) ? $default : $date;
928
+function getpaid_format_date_value($date, $default = '&mdash;', $with_time = false) {
929
+    $date = getpaid_format_date($date, $with_time);
930
+    return empty($date) ? $default : $date;
931 931
 }
932 932
 
933 933
 /**
@@ -936,7 +936,7 @@  discard block
 block discarded – undo
936 936
  * @return string
937 937
  */
938 938
 function getpaid_date_format() {
939
-	return apply_filters( 'getpaid_date_format', get_option( 'date_format' ) );
939
+	return apply_filters('getpaid_date_format', get_option('date_format'));
940 940
 }
941 941
 
942 942
 /**
@@ -945,7 +945,7 @@  discard block
 block discarded – undo
945 945
  * @return string
946 946
  */
947 947
 function getpaid_time_format() {
948
-	return apply_filters( 'getpaid_time_format', get_option( 'time_format' ) );
948
+	return apply_filters('getpaid_time_format', get_option('time_format'));
949 949
 }
950 950
 
951 951
 /**
@@ -955,16 +955,16 @@  discard block
 block discarded – undo
955 955
  * @param  integer $limit Limit size in characters.
956 956
  * @return string
957 957
  */
958
-function getpaid_limit_length( $string, $limit ) {
958
+function getpaid_limit_length($string, $limit) {
959 959
     $str_limit = $limit - 3;
960 960
 
961
-	if ( function_exists( 'mb_strimwidth' ) ) {
962
-		if ( mb_strlen( $string ) > $limit ) {
963
-			$string = mb_strimwidth( $string, 0, $str_limit ) . '...';
961
+	if (function_exists('mb_strimwidth')) {
962
+		if (mb_strlen($string) > $limit) {
963
+			$string = mb_strimwidth($string, 0, $str_limit) . '...';
964 964
 		}
965 965
 	} else {
966
-		if ( strlen( $string ) > $limit ) {
967
-			$string = substr( $string, 0, $str_limit ) . '...';
966
+		if (strlen($string) > $limit) {
967
+			$string = substr($string, 0, $str_limit) . '...';
968 968
 		}
969 969
 	}
970 970
     return $string;
@@ -978,7 +978,7 @@  discard block
 block discarded – undo
978 978
  * @since 1.0.19
979 979
  */
980 980
 function getpaid_api() {
981
-    return getpaid()->get( 'api' );
981
+    return getpaid()->get('api');
982 982
 }
983 983
 
984 984
 /**
@@ -988,7 +988,7 @@  discard block
 block discarded – undo
988 988
  * @since 1.0.19
989 989
  */
990 990
 function getpaid_post_types() {
991
-    return getpaid()->get( 'post_types' );
991
+    return getpaid()->get('post_types');
992 992
 }
993 993
 
994 994
 /**
@@ -998,7 +998,7 @@  discard block
 block discarded – undo
998 998
  * @since 1.0.19
999 999
  */
1000 1000
 function getpaid_session() {
1001
-    return getpaid()->get( 'session' );
1001
+    return getpaid()->get('session');
1002 1002
 }
1003 1003
 
1004 1004
 /**
@@ -1008,7 +1008,7 @@  discard block
 block discarded – undo
1008 1008
  * @since 1.0.19
1009 1009
  */
1010 1010
 function getpaid_notes() {
1011
-    return getpaid()->get( 'notes' );
1011
+    return getpaid()->get('notes');
1012 1012
 }
1013 1013
 
1014 1014
 /**
@@ -1017,7 +1017,7 @@  discard block
 block discarded – undo
1017 1017
  * @return GetPaid_Admin
1018 1018
  */
1019 1019
 function getpaid_admin() {
1020
-    return getpaid()->get( 'admin' );
1020
+    return getpaid()->get('admin');
1021 1021
 }
1022 1022
 
1023 1023
 /**
@@ -1027,8 +1027,8 @@  discard block
 block discarded – undo
1027 1027
  * @param string $base the base url
1028 1028
  * @return string
1029 1029
  */
1030
-function getpaid_get_authenticated_action_url( $action, $base = false ) {
1031
-    return wp_nonce_url( add_query_arg( 'getpaid-action', $action, $base ), 'getpaid-nonce', 'getpaid-nonce' );
1030
+function getpaid_get_authenticated_action_url($action, $base = false) {
1031
+    return wp_nonce_url(add_query_arg('getpaid-action', $action, $base), 'getpaid-nonce', 'getpaid-nonce');
1032 1032
 }
1033 1033
 
1034 1034
 /**
@@ -1036,11 +1036,11 @@  discard block
 block discarded – undo
1036 1036
  *
1037 1037
  * @return string
1038 1038
  */
1039
-function getpaid_get_post_type_label( $post_type, $plural = true ) {
1039
+function getpaid_get_post_type_label($post_type, $plural = true) {
1040 1040
 
1041
-    $post_type = get_post_type_object( $post_type );
1041
+    $post_type = get_post_type_object($post_type);
1042 1042
 
1043
-    if ( ! is_object( $post_type ) ) {
1043
+    if (!is_object($post_type)) {
1044 1044
         return null;
1045 1045
     }
1046 1046
 
@@ -1053,18 +1053,18 @@  discard block
 block discarded – undo
1053 1053
  *
1054 1054
  * @return mixed|null
1055 1055
  */
1056
-function getpaid_get_array_field( $array, $key, $secondary_key = null ) {
1056
+function getpaid_get_array_field($array, $key, $secondary_key = null) {
1057 1057
 
1058
-    if ( ! is_array( $array ) ) {
1058
+    if (!is_array($array)) {
1059 1059
         return null;
1060 1060
     }
1061 1061
 
1062
-    if ( ! empty( $secondary_key ) ) {
1063
-        $array = isset( $array[ $secondary_key ] ) ? $array[ $secondary_key ] : array();
1064
-        return getpaid_get_array_field( $array, $key );
1062
+    if (!empty($secondary_key)) {
1063
+        $array = isset($array[$secondary_key]) ? $array[$secondary_key] : array();
1064
+        return getpaid_get_array_field($array, $key);
1065 1065
     }
1066 1066
 
1067
-    return isset( $array[ $key ] ) ? $array[ $key ] : null;
1067
+    return isset($array[$key]) ? $array[$key] : null;
1068 1068
 
1069 1069
 }
1070 1070
 
@@ -1073,12 +1073,12 @@  discard block
 block discarded – undo
1073 1073
  *
1074 1074
  * @return array
1075 1075
  */
1076
-function getpaid_array_merge_if_empty( $args, $defaults ) {
1076
+function getpaid_array_merge_if_empty($args, $defaults) {
1077 1077
 
1078
-    foreach ( $defaults as $key => $value ) {
1078
+    foreach ($defaults as $key => $value) {
1079 1079
 
1080
-        if ( empty( $args[ $key ] ) ) {
1081
-            $args[ $key ] = $value;
1080
+        if (empty($args[$key])) {
1081
+            $args[$key] = $value;
1082 1082
         }
1083 1083
     }
1084 1084
 
@@ -1095,12 +1095,12 @@  discard block
 block discarded – undo
1095 1095
 
1096 1096
     $types = get_allowed_mime_types();
1097 1097
 
1098
-    if ( isset( $types['htm|html'] ) ) {
1099
-		unset( $types['htm|html'] );
1098
+    if (isset($types['htm|html'])) {
1099
+		unset($types['htm|html']);
1100 1100
 	}
1101 1101
 
1102
-    if ( isset( $types['js'] ) ) {
1103
-		unset( $types['js'] );
1102
+    if (isset($types['js'])) {
1103
+		unset($types['js']);
1104 1104
 	}
1105 1105
 
1106 1106
     return $types;
@@ -1108,21 +1108,21 @@  discard block
 block discarded – undo
1108 1108
 }
1109 1109
 
1110 1110
 
1111
-function getpaid_user_delete_invoice( $data ) {
1111
+function getpaid_user_delete_invoice($data) {
1112 1112
 
1113 1113
     // Ensure there is an invoice to delete.
1114
-    if ( empty( $data['invoice_id'] ) ) {
1114
+    if (empty($data['invoice_id'])) {
1115 1115
         return;
1116 1116
     }
1117 1117
 
1118
-    $invoice = new WPInv_Invoice( (int) $data['invoice_id'] );
1118
+    $invoice = new WPInv_Invoice((int) $data['invoice_id']);
1119 1119
 
1120 1120
     // Ensure that it exists and that it belongs to the current user.
1121
-    if ( ! $invoice->exists() || $invoice->get_customer_id() != get_current_user_id() ) {
1121
+    if (!$invoice->exists() || $invoice->get_customer_id() != get_current_user_id()) {
1122 1122
         $notice = 'perm_delete_invoice';
1123 1123
 
1124 1124
     // Can it be deleted?
1125
-    } elseif ( ! $invoice->needs_payment() ) {
1125
+    } elseif (!$invoice->needs_payment()) {
1126 1126
         $notice = 'cannot_delete_invoice';
1127 1127
 
1128 1128
     // Delete it.
@@ -1141,8 +1141,8 @@  discard block
 block discarded – undo
1141 1141
         )
1142 1142
     );
1143 1143
 
1144
-    wp_safe_redirect( $redirect );
1144
+    wp_safe_redirect($redirect);
1145 1145
     exit;
1146 1146
 
1147 1147
 }
1148
-add_action( 'getpaid_authenticated_action_delete_invoice', 'getpaid_user_delete_invoice' );
1148
+add_action('getpaid_authenticated_action_delete_invoice', 'getpaid_user_delete_invoice');
Please login to merge, or discard this patch.
includes/class-wpinv-ajax.php 2 patches
Indentation   +64 added lines, -64 removed lines patch added patch discarded remove patch
@@ -14,70 +14,70 @@  discard block
 block discarded – undo
14 14
 class WPInv_Ajax {
15 15
 
16 16
     /**
17
-	 * Hook in ajax handlers.
18
-	 */
19
-	public static function init() {
20
-		add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
-		add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
22
-		self::add_ajax_events();
17
+     * Hook in ajax handlers.
18
+     */
19
+    public static function init() {
20
+        add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
+        add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
22
+        self::add_ajax_events();
23 23
     }
24 24
 
25 25
     /**
26
-	 * Set GetPaid AJAX constant and headers.
27
-	 */
28
-	public static function define_ajax() {
29
-
30
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
-			getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
-			getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
-			if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
-				/** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
35
-			}
36
-			$GLOBALS['wpdb']->hide_errors();
37
-		}
26
+     * Set GetPaid AJAX constant and headers.
27
+     */
28
+    public static function define_ajax() {
29
+
30
+        if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
+            getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
+            getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
+            if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
+                /** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
35
+            }
36
+            $GLOBALS['wpdb']->hide_errors();
37
+        }
38 38
 
39 39
     }
40 40
 
41 41
     /**
42
-	 * Send headers for GetPaid Ajax Requests.
43
-	 *
44
-	 * @since 1.0.18
45
-	 */
46
-	private static function wpinv_ajax_headers() {
47
-		if ( ! headers_sent() ) {
48
-			send_origin_headers();
49
-			send_nosniff_header();
50
-			nocache_headers();
51
-			header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
-			header( 'X-Robots-Tag: noindex' );
53
-			status_header( 200 );
54
-		}
42
+     * Send headers for GetPaid Ajax Requests.
43
+     *
44
+     * @since 1.0.18
45
+     */
46
+    private static function wpinv_ajax_headers() {
47
+        if ( ! headers_sent() ) {
48
+            send_origin_headers();
49
+            send_nosniff_header();
50
+            nocache_headers();
51
+            header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
+            header( 'X-Robots-Tag: noindex' );
53
+            status_header( 200 );
54
+        }
55 55
     }
56 56
 
57 57
     /**
58
-	 * Check for GetPaid Ajax request and fire action.
59
-	 */
60
-	public static function do_wpinv_ajax() {
61
-		global $wp_query;
58
+     * Check for GetPaid Ajax request and fire action.
59
+     */
60
+    public static function do_wpinv_ajax() {
61
+        global $wp_query;
62 62
 
63
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
-			$wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
65
-		}
63
+        if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
+            $wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
65
+        }
66 66
 
67
-		$action = $wp_query->get( 'wpinv-ajax' );
67
+        $action = $wp_query->get( 'wpinv-ajax' );
68 68
 
69
-		if ( $action ) {
70
-			self::wpinv_ajax_headers();
71
-			$action = sanitize_text_field( $action );
72
-			do_action( 'wpinv_ajax_' . $action );
73
-			wp_die();
74
-		}
69
+        if ( $action ) {
70
+            self::wpinv_ajax_headers();
71
+            $action = sanitize_text_field( $action );
72
+            do_action( 'wpinv_ajax_' . $action );
73
+            wp_die();
74
+        }
75 75
 
76 76
     }
77 77
 
78 78
     /**
79
-	 * Hook in ajax methods.
80
-	 */
79
+     * Hook in ajax methods.
80
+     */
81 81
     public static function add_ajax_events() {
82 82
 
83 83
         // array( 'event' => is_frontend )
@@ -258,11 +258,11 @@  discard block
 block discarded – undo
258 258
         global $getpaid_force_checkbox;
259 259
 
260 260
         // Is the request set up correctly?
261
-		if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) {
262
-			aui()->alert(
263
-				array(
264
-					'type'    => 'warning',
265
-					'content' => __( 'No payment form or item provided', 'invoicing' ),
261
+        if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) {
262
+            aui()->alert(
263
+                array(
264
+                    'type'    => 'warning',
265
+                    'content' => __( 'No payment form or item provided', 'invoicing' ),
266 266
                 ),
267 267
                 true
268 268
             );
@@ -270,7 +270,7 @@  discard block
 block discarded – undo
270 270
         }
271 271
 
272 272
         // Payment form or button?
273
-		if ( ! empty( $_GET['form'] ) ) {
273
+        if ( ! empty( $_GET['form'] ) ) {
274 274
             $form = sanitize_text_field( urldecode( $_GET['form'] ) );
275 275
 
276 276
             if ( false !== strpos( $form, '|' ) ) {
@@ -323,10 +323,10 @@  discard block
 block discarded – undo
323 323
                 getpaid_display_payment_form( $form );
324 324
             }
325 325
 } elseif ( ! empty( $_GET['invoice'] ) ) {
326
-		    getpaid_display_invoice_payment_form( (int) urldecode( $_GET['invoice'] ) );
326
+            getpaid_display_invoice_payment_form( (int) urldecode( $_GET['invoice'] ) );
327 327
         } else {
328
-			$items = getpaid_convert_items_to_array( sanitize_text_field( urldecode( $_GET['item'] ) ) );
329
-		    getpaid_display_item_payment_form( $items );
328
+            $items = getpaid_convert_items_to_array( sanitize_text_field( urldecode( $_GET['item'] ) ) );
329
+            getpaid_display_item_payment_form( $items );
330 330
         }
331 331
 
332 332
         exit;
@@ -643,7 +643,7 @@  discard block
 block discarded – undo
643 643
         if ( is_wp_error( $error ) ) {
644 644
             $alert = $error->get_error_message();
645 645
             wp_send_json_success( compact( 'alert' ) );
646
-         }
646
+            }
647 647
 
648 648
         // Update totals.
649 649
         $invoice->recalculate_total();
@@ -1072,12 +1072,12 @@  discard block
 block discarded – undo
1072 1072
     }
1073 1073
 
1074 1074
     /**
1075
-	 * Handles file uploads.
1076
-	 *
1077
-	 * @since       1.0.0
1078
-	 * @return      void
1079
-	 */
1080
-	public static function file_upload() {
1075
+     * Handles file uploads.
1076
+     *
1077
+     * @since       1.0.0
1078
+     * @return      void
1079
+     */
1080
+    public static function file_upload() {
1081 1081
 
1082 1082
         // Check nonce.
1083 1083
         check_ajax_referer( 'getpaid_form_nonce' );
@@ -1138,7 +1138,7 @@  discard block
 block discarded – undo
1138 1138
 
1139 1139
         wp_send_json_success( $response );
1140 1140
 
1141
-	}
1141
+    }
1142 1142
 
1143 1143
 }
1144 1144
 
Please login to merge, or discard this patch.
Spacing   +339 added lines, -339 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @package Invoicing
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * WPInv_Ajax class.
@@ -17,8 +17,8 @@  discard block
 block discarded – undo
17 17
 	 * Hook in ajax handlers.
18 18
 	 */
19 19
 	public static function init() {
20
-		add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
-		add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
20
+		add_action('init', array(__CLASS__, 'define_ajax'), 0);
21
+		add_action('template_redirect', array(__CLASS__, 'do_wpinv_ajax'), 0);
22 22
 		self::add_ajax_events();
23 23
     }
24 24
 
@@ -27,11 +27,11 @@  discard block
 block discarded – undo
27 27
 	 */
28 28
 	public static function define_ajax() {
29 29
 
30
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
-			getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
-			getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
-			if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
-				/** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
30
+		if (!empty($_GET['wpinv-ajax'])) {
31
+			getpaid_maybe_define_constant('DOING_AJAX', true);
32
+			getpaid_maybe_define_constant('WPInv_DOING_AJAX', true);
33
+			if (!WP_DEBUG || (WP_DEBUG && !WP_DEBUG_DISPLAY)) {
34
+				/** @scrutinizer ignore-unhandled */ @ini_set('display_errors', 0);
35 35
 			}
36 36
 			$GLOBALS['wpdb']->hide_errors();
37 37
 		}
@@ -44,13 +44,13 @@  discard block
 block discarded – undo
44 44
 	 * @since 1.0.18
45 45
 	 */
46 46
 	private static function wpinv_ajax_headers() {
47
-		if ( ! headers_sent() ) {
47
+		if (!headers_sent()) {
48 48
 			send_origin_headers();
49 49
 			send_nosniff_header();
50 50
 			nocache_headers();
51
-			header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
-			header( 'X-Robots-Tag: noindex' );
53
-			status_header( 200 );
51
+			header('Content-Type: text/html; charset=' . get_option('blog_charset'));
52
+			header('X-Robots-Tag: noindex');
53
+			status_header(200);
54 54
 		}
55 55
     }
56 56
 
@@ -60,16 +60,16 @@  discard block
 block discarded – undo
60 60
 	public static function do_wpinv_ajax() {
61 61
 		global $wp_query;
62 62
 
63
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
-			$wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
63
+		if (!empty($_GET['wpinv-ajax'])) {
64
+			$wp_query->set('wpinv-ajax', sanitize_text_field(wp_unslash($_GET['wpinv-ajax'])));
65 65
 		}
66 66
 
67
-		$action = $wp_query->get( 'wpinv-ajax' );
67
+		$action = $wp_query->get('wpinv-ajax');
68 68
 
69
-		if ( $action ) {
69
+		if ($action) {
70 70
 			self::wpinv_ajax_headers();
71
-			$action = sanitize_text_field( $action );
72
-			do_action( 'wpinv_ajax_' . $action );
71
+			$action = sanitize_text_field($action);
72
+			do_action('wpinv_ajax_' . $action);
73 73
 			wp_die();
74 74
 		}
75 75
 
@@ -106,36 +106,36 @@  discard block
 block discarded – undo
106 106
             'file_upload'                   => true,
107 107
         );
108 108
 
109
-        foreach ( $ajax_events as $ajax_event => $nopriv ) {
110
-            add_action( 'wp_ajax_wpinv_' . $ajax_event, array( __CLASS__, $ajax_event ) );
111
-            add_action( 'wp_ajax_getpaid_' . $ajax_event, array( __CLASS__, $ajax_event ) );
109
+        foreach ($ajax_events as $ajax_event => $nopriv) {
110
+            add_action('wp_ajax_wpinv_' . $ajax_event, array(__CLASS__, $ajax_event));
111
+            add_action('wp_ajax_getpaid_' . $ajax_event, array(__CLASS__, $ajax_event));
112 112
 
113
-            if ( $nopriv ) {
114
-                add_action( 'wp_ajax_nopriv_wpinv_' . $ajax_event, array( __CLASS__, $ajax_event ) );
115
-                add_action( 'wp_ajax_nopriv_getpaid_' . $ajax_event, array( __CLASS__, $ajax_event ) );
116
-                add_action( 'wpinv_ajax_' . $ajax_event, array( __CLASS__, $ajax_event ) );
113
+            if ($nopriv) {
114
+                add_action('wp_ajax_nopriv_wpinv_' . $ajax_event, array(__CLASS__, $ajax_event));
115
+                add_action('wp_ajax_nopriv_getpaid_' . $ajax_event, array(__CLASS__, $ajax_event));
116
+                add_action('wpinv_ajax_' . $ajax_event, array(__CLASS__, $ajax_event));
117 117
             }
118 118
         }
119 119
     }
120 120
 
121 121
     public static function add_note() {
122
-        check_ajax_referer( 'add-invoice-note', '_nonce' );
122
+        check_ajax_referer('add-invoice-note', '_nonce');
123 123
 
124
-        $post_id   = absint( $_POST['post_id'] );
125
-        $note      = wp_kses_post( trim( stripslashes( $_POST['note'] ) ) );
126
-        $note_type = sanitize_text_field( $_POST['note_type'] );
124
+        $post_id   = absint($_POST['post_id']);
125
+        $note      = wp_kses_post(trim(stripslashes($_POST['note'])));
126
+        $note_type = sanitize_text_field($_POST['note_type']);
127 127
 
128
-        if ( ! wpinv_current_user_can( 'invoice_add_note', array( 'invoice_id' => $post_id, 'note_type' => $note_type ) ) ) {
128
+        if (!wpinv_current_user_can('invoice_add_note', array('invoice_id' => $post_id, 'note_type' => $note_type))) {
129 129
             die( -1 );
130 130
         }
131 131
 
132 132
         $is_customer_note = $note_type == 'customer' ? 1 : 0;
133 133
 
134
-        if ( $post_id > 0 ) {
135
-            $note_id = wpinv_insert_payment_note( $post_id, $note, $is_customer_note );
134
+        if ($post_id > 0) {
135
+            $note_id = wpinv_insert_payment_note($post_id, $note, $is_customer_note);
136 136
 
137
-            if ( $note_id > 0 && ! is_wp_error( $note_id ) ) {
138
-                wpinv_get_invoice_note_line_item( $note_id );
137
+            if ($note_id > 0 && !is_wp_error($note_id)) {
138
+                wpinv_get_invoice_note_line_item($note_id);
139 139
             }
140 140
         }
141 141
 
@@ -143,16 +143,16 @@  discard block
 block discarded – undo
143 143
     }
144 144
 
145 145
     public static function delete_note() {
146
-        check_ajax_referer( 'delete-invoice-note', '_nonce' );
146
+        check_ajax_referer('delete-invoice-note', '_nonce');
147 147
 
148
-        $note_id = (int)$_POST['note_id'];
148
+        $note_id = (int) $_POST['note_id'];
149 149
 
150
-        if ( ! wpinv_current_user_can( 'invoice_delete_note', array( 'note_id' => $note_id ) ) ) {
150
+        if (!wpinv_current_user_can('invoice_delete_note', array('note_id' => $note_id))) {
151 151
             die( -1 );
152 152
         }
153 153
 
154
-        if ( $note_id > 0 ) {
155
-            wp_delete_comment( $note_id, true );
154
+        if ($note_id > 0) {
155
+            wp_delete_comment($note_id, true);
156 156
         }
157 157
 
158 158
         die();
@@ -169,35 +169,35 @@  discard block
 block discarded – undo
169 169
      */
170 170
     public static function get_billing_details() {
171 171
         // Verify nonce.
172
-        check_ajax_referer( 'wpinv-nonce' );
172
+        check_ajax_referer('wpinv-nonce');
173 173
 
174 174
         // Do we have a user id?
175 175
         $user_id = (int) $_GET['user_id'];
176
-        $invoice_id = ! empty( $_REQUEST['post_id'] ) ? (int) $_REQUEST['post_id'] : 0;
176
+        $invoice_id = !empty($_REQUEST['post_id']) ? (int) $_REQUEST['post_id'] : 0;
177 177
 
178
-        if ( empty( $user_id ) || ! is_numeric( $user_id ) ) {
178
+        if (empty($user_id) || !is_numeric($user_id)) {
179 179
             die( -1 );
180 180
         }
181 181
 
182 182
         // Can the user manage the plugin?
183
-        if ( ! wpinv_current_user_can( 'invoice_get_billing_details', array( 'user_id' => $user_id, 'invoice_id' => $invoice_id ) ) ) {
183
+        if (!wpinv_current_user_can('invoice_get_billing_details', array('user_id' => $user_id, 'invoice_id' => $invoice_id))) {
184 184
             die( -1 );
185 185
         }
186 186
 
187 187
         // Fetch the billing details.
188
-        $billing_details    = wpinv_get_user_address( $user_id );
189
-        $billing_details    = apply_filters( 'wpinv_ajax_billing_details', $billing_details, $user_id );
188
+        $billing_details    = wpinv_get_user_address($user_id);
189
+        $billing_details    = apply_filters('wpinv_ajax_billing_details', $billing_details, $user_id);
190 190
 
191 191
         // unset the user id and email.
192
-        $to_ignore = array( 'user_id', 'email' );
192
+        $to_ignore = array('user_id', 'email');
193 193
 
194
-        foreach ( $to_ignore as $key ) {
195
-            if ( isset( $billing_details[ $key ] ) ) {
196
-                unset( $billing_details[ $key ] );
194
+        foreach ($to_ignore as $key) {
195
+            if (isset($billing_details[$key])) {
196
+                unset($billing_details[$key]);
197 197
             }
198 198
         }
199 199
 
200
-        wp_send_json_success( $billing_details );
200
+        wp_send_json_success($billing_details);
201 201
 
202 202
     }
203 203
 
@@ -206,54 +206,54 @@  discard block
 block discarded – undo
206 206
      */
207 207
     public static function check_new_user_email() {
208 208
         // Verify nonce.
209
-        check_ajax_referer( 'wpinv-nonce' );
209
+        check_ajax_referer('wpinv-nonce');
210 210
 
211
-        $invoice_id = ! empty( $_REQUEST['post_id'] ) ? absint( $_REQUEST['post_id'] ) : 0;
211
+        $invoice_id = !empty($_REQUEST['post_id']) ? absint($_REQUEST['post_id']) : 0;
212 212
 
213
-        if ( empty( $invoice_id ) ) {
213
+        if (empty($invoice_id)) {
214 214
             die( -1 );
215 215
         }
216 216
 
217 217
         // Can the user manage the plugin?
218
-        if ( ! wpinv_current_user_can( 'invoice_check_new_user_email', array( 'invoice_id' => $invoice_id ) ) ) {
218
+        if (!wpinv_current_user_can('invoice_check_new_user_email', array('invoice_id' => $invoice_id))) {
219 219
             die( -1 );
220 220
         }
221 221
 
222 222
         // We need an email address.
223
-        if ( empty( $_GET['email'] ) ) {
224
-            esc_html_e( "Provide the new user's email address", 'invoicing' );
223
+        if (empty($_GET['email'])) {
224
+            esc_html_e("Provide the new user's email address", 'invoicing');
225 225
             exit;
226 226
         }
227 227
 
228 228
         // Ensure the email is valid.
229
-        $email = sanitize_email( $_GET['email'] );
230
-        if ( ! is_email( $email ) ) {
231
-            esc_html_e( 'Invalid email address', 'invoicing' );
229
+        $email = sanitize_email($_GET['email']);
230
+        if (!is_email($email)) {
231
+            esc_html_e('Invalid email address', 'invoicing');
232 232
             exit;
233 233
         }
234 234
 
235 235
         // And it does not exist.
236
-        $id = email_exists( $email );
237
-        if ( $id ) {
238
-            wp_send_json_success( compact( 'id' ) );
236
+        $id = email_exists($email);
237
+        if ($id) {
238
+            wp_send_json_success(compact('id'));
239 239
         }
240 240
 
241
-        wp_send_json_success( true );
241
+        wp_send_json_success(true);
242 242
     }
243 243
 
244 244
     public static function run_tool() {
245
-        check_ajax_referer( 'wpinv-nonce', '_nonce' );
245
+        check_ajax_referer('wpinv-nonce', '_nonce');
246 246
 
247
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
247
+        if (!wpinv_current_user_can_manage_invoicing()) {
248 248
             die( -1 );
249 249
         }
250 250
 
251
-        $tool = sanitize_text_field( $_POST['tool'] );
251
+        $tool = sanitize_text_field($_POST['tool']);
252 252
 
253
-        do_action( 'wpinv_run_tool' );
253
+        do_action('wpinv_run_tool');
254 254
 
255
-        if ( ! empty( $tool ) ) {
256
-            do_action( 'wpinv_tool_' . $tool );
255
+        if (!empty($tool)) {
256
+            do_action('wpinv_tool_' . $tool);
257 257
         }
258 258
     }
259 259
 
@@ -264,11 +264,11 @@  discard block
 block discarded – undo
264 264
         global $getpaid_force_checkbox;
265 265
 
266 266
         // Is the request set up correctly?
267
-		if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) && empty( $_GET['invoice'] ) ) {
267
+		if (empty($_GET['form']) && empty($_GET['item']) && empty($_GET['invoice'])) {
268 268
 			aui()->alert(
269 269
 				array(
270 270
 					'type'    => 'warning',
271
-					'content' => __( 'No payment form or item provided', 'invoicing' ),
271
+					'content' => __('No payment form or item provided', 'invoicing'),
272 272
                 ),
273 273
                 true
274 274
             );
@@ -276,29 +276,29 @@  discard block
 block discarded – undo
276 276
         }
277 277
 
278 278
         // Payment form or button?
279
-		if ( ! empty( $_GET['form'] ) ) {
280
-            $form = sanitize_text_field( urldecode( $_GET['form'] ) );
279
+		if (!empty($_GET['form'])) {
280
+            $form = sanitize_text_field(urldecode($_GET['form']));
281 281
 
282
-            if ( false !== strpos( $form, '|' ) ) {
283
-                $form_pos = strpos( $form, '|' );
284
-                $_items   = getpaid_convert_items_to_array( substr( $form, $form_pos + 1 ) );
285
-                $form     = substr( $form, 0, $form_pos );
282
+            if (false !== strpos($form, '|')) {
283
+                $form_pos = strpos($form, '|');
284
+                $_items   = getpaid_convert_items_to_array(substr($form, $form_pos + 1));
285
+                $form     = substr($form, 0, $form_pos);
286 286
 
287 287
                 // Retrieve appropriate payment form.
288
-                $payment_form = new GetPaid_Payment_Form( $form );
289
-                $payment_form = $payment_form->exists() ? $payment_form : new GetPaid_Payment_Form( wpinv_get_default_payment_form() );
288
+                $payment_form = new GetPaid_Payment_Form($form);
289
+                $payment_form = $payment_form->exists() ? $payment_form : new GetPaid_Payment_Form(wpinv_get_default_payment_form());
290 290
 
291 291
                 $items    = array();
292 292
                 $item_ids = array();
293 293
 
294
-                foreach ( $_items as $item_id => $qty ) {
295
-                    if ( ! in_array( $item_id, $item_ids ) ) {
296
-                        $item = new GetPaid_Form_Item( $item_id );
297
-                        $item->set_quantity( $qty );
294
+                foreach ($_items as $item_id => $qty) {
295
+                    if (!in_array($item_id, $item_ids)) {
296
+                        $item = new GetPaid_Form_Item($item_id);
297
+                        $item->set_quantity($qty);
298 298
 
299
-                        if ( 0 == $qty ) {
300
-                            $item->set_allow_quantities( true );
301
-                            $item->set_is_required( false );
299
+                        if (0 == $qty) {
300
+                            $item->set_allow_quantities(true);
301
+                            $item->set_is_required(false);
302 302
                             $getpaid_force_checkbox = true;
303 303
                         }
304 304
 
@@ -307,32 +307,32 @@  discard block
 block discarded – undo
307 307
                     }
308 308
                 }
309 309
 
310
-                if ( ! $payment_form->is_default() ) {
310
+                if (!$payment_form->is_default()) {
311 311
 
312
-                    foreach ( $payment_form->get_items() as $item ) {
313
-                        if ( ! in_array( $item->get_id(), $item_ids ) ) {
312
+                    foreach ($payment_form->get_items() as $item) {
313
+                        if (!in_array($item->get_id(), $item_ids)) {
314 314
                             $item_ids[] = $item->get_id();
315 315
                             $items[]    = $item;
316 316
                         }
317 317
                     }
318 318
                 }
319 319
 
320
-                $payment_form->set_items( $items );
321
-                $extra_items     = esc_attr( getpaid_convert_items_to_string( $_items ) );
322
-                $extra_items_key = md5( NONCE_KEY . AUTH_KEY . $extra_items );
320
+                $payment_form->set_items($items);
321
+                $extra_items     = esc_attr(getpaid_convert_items_to_string($_items));
322
+                $extra_items_key = md5(NONCE_KEY . AUTH_KEY . $extra_items);
323 323
                 $extra_items     = "<input type='hidden' name='getpaid-form-items' value='$extra_items' />";
324 324
                 $extra_items    .= "<input type='hidden' name='getpaid-form-items-key' value='$extra_items_key' />";
325
-                $payment_form->display( $extra_items );
325
+                $payment_form->display($extra_items);
326 326
                 $getpaid_force_checkbox = false;
327 327
 
328 328
             } else {
329
-                getpaid_display_payment_form( $form );
329
+                getpaid_display_payment_form($form);
330 330
             }
331
-} elseif ( ! empty( $_GET['invoice'] ) ) {
332
-		    getpaid_display_invoice_payment_form( (int) urldecode( $_GET['invoice'] ) );
331
+} elseif (!empty($_GET['invoice'])) {
332
+		    getpaid_display_invoice_payment_form((int) urldecode($_GET['invoice']));
333 333
         } else {
334
-			$items = getpaid_convert_items_to_array( sanitize_text_field( urldecode( $_GET['item'] ) ) );
335
-		    getpaid_display_item_payment_form( $items );
334
+			$items = getpaid_convert_items_to_array(sanitize_text_field(urldecode($_GET['item'])));
335
+		    getpaid_display_item_payment_form($items);
336 336
         }
337 337
 
338 338
         exit;
@@ -347,14 +347,14 @@  discard block
 block discarded – undo
347 347
     public static function payment_form() {
348 348
 
349 349
         // ... form fields...
350
-        if ( empty( $_POST['getpaid_payment_form_submission'] ) ) {
351
-            esc_html_e( 'Error: Reload the page and try again.', 'invoicing' );
350
+        if (empty($_POST['getpaid_payment_form_submission'])) {
351
+            esc_html_e('Error: Reload the page and try again.', 'invoicing');
352 352
             exit;
353 353
         }
354 354
 
355 355
         // Process the payment form.
356
-        $checkout_class = apply_filters( 'getpaid_checkout_class', 'GetPaid_Checkout' );
357
-        $checkout       = new $checkout_class( new GetPaid_Payment_Form_Submission() );
356
+        $checkout_class = apply_filters('getpaid_checkout_class', 'GetPaid_Checkout');
357
+        $checkout       = new $checkout_class(new GetPaid_Payment_Form_Submission());
358 358
         $checkout->process_checkout();
359 359
 
360 360
         exit;
@@ -367,55 +367,55 @@  discard block
 block discarded – undo
367 367
      */
368 368
     public static function get_payment_form_states_field() {
369 369
 
370
-        if ( empty( $_GET['country'] ) || empty( $_GET['form'] ) ) {
370
+        if (empty($_GET['country']) || empty($_GET['form'])) {
371 371
             exit;
372 372
         }
373 373
 
374
-        $elements = getpaid_get_payment_form_elements( (int) $_GET['form'] );
374
+        $elements = getpaid_get_payment_form_elements((int) $_GET['form']);
375 375
 
376
-        if ( empty( $elements ) ) {
376
+        if (empty($elements)) {
377 377
             exit;
378 378
         }
379 379
 
380 380
         $address_fields = array();
381
-        foreach ( $elements as $element ) {
382
-            if ( 'address' === $element['type'] ) {
381
+        foreach ($elements as $element) {
382
+            if ('address' === $element['type']) {
383 383
                 $address_fields = $element;
384 384
                 break;
385 385
             }
386 386
         }
387 387
 
388
-        if ( empty( $address_fields ) ) {
388
+        if (empty($address_fields)) {
389 389
             exit;
390 390
         }
391 391
 
392
-        foreach ( $address_fields['fields'] as $address_field ) {
392
+        foreach ($address_fields['fields'] as $address_field) {
393 393
 
394
-            if ( 'wpinv_state' == $address_field['name'] ) {
394
+            if ('wpinv_state' == $address_field['name']) {
395 395
 
396
-                $wrap_class  = getpaid_get_form_element_grid_class( $address_field );
397
-                $wrap_class  = esc_attr( "$wrap_class getpaid-address-field-wrapper" );
398
-                $placeholder = empty( $address_field['placeholder'] ) ? '' : esc_attr( $address_field['placeholder'] );
399
-                $description = empty( $address_field['description'] ) ? '' : wp_kses_post( $address_field['description'] );
400
-                $value       = is_user_logged_in() ? get_user_meta( get_current_user_id(), '_wpinv_state', true ) : '';
401
-                $label       = empty( $address_field['label'] ) ? '' : wp_kses_post( $address_field['label'] );
396
+                $wrap_class  = getpaid_get_form_element_grid_class($address_field);
397
+                $wrap_class  = esc_attr("$wrap_class getpaid-address-field-wrapper");
398
+                $placeholder = empty($address_field['placeholder']) ? '' : esc_attr($address_field['placeholder']);
399
+                $description = empty($address_field['description']) ? '' : wp_kses_post($address_field['description']);
400
+                $value       = is_user_logged_in() ? get_user_meta(get_current_user_id(), '_wpinv_state', true) : '';
401
+                $label       = empty($address_field['label']) ? '' : wp_kses_post($address_field['label']);
402 402
 
403
-                if ( ! empty( $address_field['required'] ) ) {
403
+                if (!empty($address_field['required'])) {
404 404
                     $label .= "<span class='text-danger'> *</span>";
405 405
                 }
406 406
 
407 407
                 $html = getpaid_get_states_select_markup(
408
-                    sanitize_text_field( $_GET['country'] ),
408
+                    sanitize_text_field($_GET['country']),
409 409
                     $value,
410 410
                     $placeholder,
411 411
                     $label,
412 412
                     $description,
413
-                    ! empty( $address_field['required'] ),
413
+                    !empty($address_field['required']),
414 414
                     $wrap_class,
415
-                    sanitize_text_field( $_GET['name'] )
415
+                    sanitize_text_field($_GET['name'])
416 416
                 );
417 417
 
418
-                wp_send_json_success( $html );
418
+                wp_send_json_success($html);
419 419
                 exit;
420 420
 
421 421
             }
@@ -429,68 +429,68 @@  discard block
 block discarded – undo
429 429
      */
430 430
     public static function recalculate_invoice_totals() {
431 431
         // Verify nonce.
432
-        check_ajax_referer( 'wpinv-nonce' );
432
+        check_ajax_referer('wpinv-nonce');
433 433
 
434
-        $invoice_id = ! empty( $_POST['post_id'] ) ? absint( $_POST['post_id'] ) : 0;
434
+        $invoice_id = !empty($_POST['post_id']) ? absint($_POST['post_id']) : 0;
435 435
 
436
-        if ( empty( $invoice_id ) ) {
436
+        if (empty($invoice_id)) {
437 437
             die( -1 );
438 438
         }
439 439
 
440 440
         // Can the user manage the plugin?
441
-        if ( ! wpinv_current_user_can( 'invoice_recalculate_totals', array( 'invoice_id' => $invoice_id ) ) ) {
441
+        if (!wpinv_current_user_can('invoice_recalculate_totals', array('invoice_id' => $invoice_id))) {
442 442
             die( -1 );
443 443
         }
444 444
 
445 445
         // Fetch the invoice.
446
-        $invoice = new WPInv_Invoice( $invoice_id );
446
+        $invoice = new WPInv_Invoice($invoice_id);
447 447
 
448 448
         // Ensure it exists.
449
-        if ( ! $invoice->get_id() ) {
449
+        if (!$invoice->get_id()) {
450 450
             exit;
451 451
         }
452 452
 
453 453
         // Maybe set the country, state, currency.
454
-        foreach ( array( 'country', 'state', 'currency', 'vat_number', 'discount_code' ) as $key ) {
455
-            if ( isset( $_POST[ $key ] ) ) {
454
+        foreach (array('country', 'state', 'currency', 'vat_number', 'discount_code') as $key) {
455
+            if (isset($_POST[$key])) {
456 456
                 $method = "set_$key";
457
-                $invoice->$method( sanitize_text_field( $_POST[ $key ] ) );
457
+                $invoice->$method(sanitize_text_field($_POST[$key]));
458 458
             }
459 459
         }
460 460
 
461 461
         // Maybe disable taxes.
462
-        $invoice->set_disable_taxes( ! empty( $_POST['taxes'] ) );
462
+        $invoice->set_disable_taxes(!empty($_POST['taxes']));
463 463
 
464 464
         // Discount code.
465
-        if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
466
-            $discount = new WPInv_Discount( $invoice->get_discount_code() );
467
-            if ( $discount->exists() ) {
468
-                $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
465
+        if (!$invoice->is_paid() && !$invoice->is_refunded()) {
466
+            $discount = new WPInv_Discount($invoice->get_discount_code());
467
+            if ($discount->exists()) {
468
+                $invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
469 469
             } else {
470
-                $invoice->remove_discount( 'discount_code' );
470
+                $invoice->remove_discount('discount_code');
471 471
             }
472 472
         }
473 473
 
474 474
         // Recalculate totals.
475 475
         $invoice->recalculate_total();
476 476
 
477
-        $total        = wpinv_price( $invoice->get_total(), $invoice->get_currency() );
478
-        $suscriptions = getpaid_get_invoice_subscriptions( $invoice );
479
-        if ( is_a( $suscriptions, 'WPInv_Subscription' ) && $invoice->is_recurring() && $invoice->is_parent() && $invoice->get_total() != $invoice->get_recurring_total() ) {
480
-            $recurring_total = wpinv_price( $invoice->get_recurring_total(), $invoice->get_currency() );
481
-            $total          .= '<small class="form-text text-muted">' . sprintf( __( 'Recurring Price: %s', 'invoicing' ), $recurring_total ) . '</small>';
477
+        $total        = wpinv_price($invoice->get_total(), $invoice->get_currency());
478
+        $suscriptions = getpaid_get_invoice_subscriptions($invoice);
479
+        if (is_a($suscriptions, 'WPInv_Subscription') && $invoice->is_recurring() && $invoice->is_parent() && $invoice->get_total() != $invoice->get_recurring_total()) {
480
+            $recurring_total = wpinv_price($invoice->get_recurring_total(), $invoice->get_currency());
481
+            $total          .= '<small class="form-text text-muted">' . sprintf(__('Recurring Price: %s', 'invoicing'), $recurring_total) . '</small>';
482 482
         }
483 483
 
484 484
         $totals = array(
485
-            'subtotal' => wpinv_price( $invoice->get_subtotal(), $invoice->get_currency() ),
486
-            'discount' => wpinv_price( $invoice->get_total_discount(), $invoice->get_currency() ),
487
-            'tax'      => wpinv_price( $invoice->get_total_tax(), $invoice->get_currency() ),
485
+            'subtotal' => wpinv_price($invoice->get_subtotal(), $invoice->get_currency()),
486
+            'discount' => wpinv_price($invoice->get_total_discount(), $invoice->get_currency()),
487
+            'tax'      => wpinv_price($invoice->get_total_tax(), $invoice->get_currency()),
488 488
             'total'    => $total,
489 489
         );
490 490
 
491
-        $totals = apply_filters( 'getpaid_invoice_totals', $totals, $invoice );
491
+        $totals = apply_filters('getpaid_invoice_totals', $totals, $invoice);
492 492
 
493
-        wp_send_json_success( compact( 'totals' ) );
493
+        wp_send_json_success(compact('totals'));
494 494
     }
495 495
 
496 496
     /**
@@ -498,35 +498,35 @@  discard block
 block discarded – undo
498 498
      */
499 499
     public static function get_invoice_items() {
500 500
         // Verify nonce.
501
-        check_ajax_referer( 'wpinv-nonce' );
501
+        check_ajax_referer('wpinv-nonce');
502 502
 
503
-        $invoice_id = ! empty( $_POST['post_id'] ) ? absint( $_POST['post_id'] ) : 0;
503
+        $invoice_id = !empty($_POST['post_id']) ? absint($_POST['post_id']) : 0;
504 504
 
505
-        if ( empty( $invoice_id ) ) {
505
+        if (empty($invoice_id)) {
506 506
             exit;
507 507
         }
508 508
 
509 509
         // Can the user manage the plugin?
510
-        if ( ! wpinv_current_user_can( 'invoice_get_items', array( 'invoice_id' => $invoice_id ) ) ) {
510
+        if (!wpinv_current_user_can('invoice_get_items', array('invoice_id' => $invoice_id))) {
511 511
             exit;
512 512
         }
513 513
 
514 514
         // Fetch the invoice.
515
-        $invoice = new WPInv_Invoice( $invoice_id );
515
+        $invoice = new WPInv_Invoice($invoice_id);
516 516
 
517 517
         // Ensure it exists.
518
-        if ( ! $invoice->get_id() ) {
518
+        if (!$invoice->get_id()) {
519 519
             exit;
520 520
         }
521 521
 
522 522
         // Return an array of invoice items.
523 523
         $items = array();
524 524
 
525
-        foreach ( $invoice->get_items() as $item ) {
526
-            $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency(), $invoice->is_renewal() );
525
+        foreach ($invoice->get_items() as $item) {
526
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency(), $invoice->is_renewal());
527 527
         }
528 528
 
529
-        wp_send_json_success( compact( 'items' ) );
529
+        wp_send_json_success(compact('items'));
530 530
     }
531 531
 
532 532
     /**
@@ -534,57 +534,57 @@  discard block
 block discarded – undo
534 534
      */
535 535
     public static function edit_invoice_item() {
536 536
         // Verify nonce.
537
-        check_ajax_referer( 'wpinv-nonce' );
537
+        check_ajax_referer('wpinv-nonce');
538 538
 
539 539
         // We need an invoice and item details.
540
-        if ( empty( $_POST['post_id'] ) || empty( $_POST['data'] ) ) {
540
+        if (empty($_POST['post_id']) || empty($_POST['data'])) {
541 541
             exit;
542 542
         }
543 543
 
544
-        $invoice_id = absint( $_POST['post_id'] );
544
+        $invoice_id = absint($_POST['post_id']);
545 545
 
546
-        if ( empty( $invoice_id ) ) {
546
+        if (empty($invoice_id)) {
547 547
             exit;
548 548
         }
549 549
 
550 550
         // Can the user manage the plugin?
551
-        if ( ! wpinv_current_user_can( 'invoice_edit_item', array( 'invoice_id' => $invoice_id ) ) ) {
551
+        if (!wpinv_current_user_can('invoice_edit_item', array('invoice_id' => $invoice_id))) {
552 552
             exit;
553 553
         }
554 554
 
555 555
         // Fetch the invoice.
556
-        $invoice = new WPInv_Invoice( $invoice_id );
556
+        $invoice = new WPInv_Invoice($invoice_id);
557 557
 
558 558
         // Ensure it exists and its not been paid for.
559
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
559
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
560 560
             exit;
561 561
         }
562 562
 
563 563
         // Format the data.
564
-        $data = wp_kses_post_deep( wp_unslash( wp_list_pluck( $_POST['data'], 'value', 'field' ) ) );
564
+        $data = wp_kses_post_deep(wp_unslash(wp_list_pluck($_POST['data'], 'value', 'field')));
565 565
 
566 566
         // Ensure that we have an item id.
567
-        if ( empty( $data['id'] ) ) {
567
+        if (empty($data['id'])) {
568 568
             exit;
569 569
         }
570 570
 
571 571
         // Abort if the invoice does not have the specified item.
572
-        $item = $invoice->get_item( (int) $data['id'] );
572
+        $item = $invoice->get_item((int) $data['id']);
573 573
 
574
-        if ( empty( $item ) ) {
574
+        if (empty($item)) {
575 575
             exit;
576 576
         }
577 577
 
578 578
         // Update the item.
579
-        $item->set_price( getpaid_standardize_amount( $data['price'] ) );
580
-        $item->set_name( sanitize_text_field( $data['name'] ) );
581
-        $item->set_description( wp_kses_post( $data['description'] ) );
582
-        $item->set_quantity( floatval( $data['quantity'] ) );
579
+        $item->set_price(getpaid_standardize_amount($data['price']));
580
+        $item->set_name(sanitize_text_field($data['name']));
581
+        $item->set_description(wp_kses_post($data['description']));
582
+        $item->set_quantity(floatval($data['quantity']));
583 583
 
584 584
         // Add it to the invoice.
585
-        $error = $invoice->add_item( $item );
585
+        $error = $invoice->add_item($item);
586 586
         $alert = false;
587
-        if ( is_wp_error( $error ) ) {
587
+        if (is_wp_error($error)) {
588 588
             $alert = $error->get_error_message();
589 589
         }
590 590
 
@@ -597,11 +597,11 @@  discard block
 block discarded – undo
597 597
         // Return an array of invoice items.
598 598
         $items = array();
599 599
 
600
-        foreach ( $invoice->get_items() as $item ) {
601
-            $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency() );
600
+        foreach ($invoice->get_items() as $item) {
601
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency());
602 602
         }
603 603
 
604
-        wp_send_json_success( compact( 'items', 'alert' ) );
604
+        wp_send_json_success(compact('items', 'alert'));
605 605
     }
606 606
 
607 607
     /**
@@ -609,63 +609,63 @@  discard block
 block discarded – undo
609 609
      */
610 610
     public static function create_invoice_item() {
611 611
         // Verify nonce.
612
-        check_ajax_referer( 'wpinv-nonce' );
612
+        check_ajax_referer('wpinv-nonce');
613 613
 
614 614
         // We need an invoice and item details.
615
-        if ( empty( $_POST['invoice_id'] ) || empty( $_POST['_wpinv_quick'] ) ) {
615
+        if (empty($_POST['invoice_id']) || empty($_POST['_wpinv_quick'])) {
616 616
             exit;
617 617
         }
618 618
 
619
-        $invoice_id = absint( $_POST['invoice_id'] );
619
+        $invoice_id = absint($_POST['invoice_id']);
620 620
 
621
-        if ( empty( $invoice_id ) ) {
621
+        if (empty($invoice_id)) {
622 622
             exit;
623 623
         }
624 624
 
625
-        if ( ! wpinv_current_user_can( 'invoice_create_item', array( 'invoice_id' => $invoice_id ) ) ) {
625
+        if (!wpinv_current_user_can('invoice_create_item', array('invoice_id' => $invoice_id))) {
626 626
             exit;
627 627
         }
628 628
 
629 629
         // Fetch the invoice.
630
-        $invoice = new WPInv_Invoice( $invoice_id );
630
+        $invoice = new WPInv_Invoice($invoice_id);
631 631
 
632 632
         // Ensure it exists and its not been paid for.
633
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
633
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
634 634
             exit;
635 635
         }
636 636
 
637 637
         // Format the data.
638
-        $data = wp_kses_post_deep( wp_unslash( $_POST['_wpinv_quick'] ) );
638
+        $data = wp_kses_post_deep(wp_unslash($_POST['_wpinv_quick']));
639 639
 
640 640
         $item = new WPInv_Item();
641
-        $item->set_price( getpaid_standardize_amount( $data['price'] ) );
642
-        $item->set_name( sanitize_text_field( $data['name'] ) );
643
-        $item->set_description( wp_kses_post( $data['description'] ) );
644
-        $item->set_type( sanitize_text_field( $data['type'] ) );
645
-        $item->set_vat_rule( sanitize_text_field( $data['vat_rule'] ) );
646
-        $item->set_vat_class( sanitize_text_field( $data['vat_class'] ) );
647
-        $item->set_status( 'publish' );
641
+        $item->set_price(getpaid_standardize_amount($data['price']));
642
+        $item->set_name(sanitize_text_field($data['name']));
643
+        $item->set_description(wp_kses_post($data['description']));
644
+        $item->set_type(sanitize_text_field($data['type']));
645
+        $item->set_vat_rule(sanitize_text_field($data['vat_rule']));
646
+        $item->set_vat_class(sanitize_text_field($data['vat_class']));
647
+        $item->set_status('publish');
648 648
         $item->save();
649 649
 
650
-        if ( ! $item->exists() ) {
651
-            $alert = __( 'Could not create invoice item. Please try again.', 'invoicing' );
652
-            wp_send_json_success( compact( 'alert' ) );
650
+        if (!$item->exists()) {
651
+            $alert = __('Could not create invoice item. Please try again.', 'invoicing');
652
+            wp_send_json_success(compact('alert'));
653 653
         }
654 654
 
655
-        if ( ! empty( $data['one-time'] ) ) {
656
-            update_post_meta( $item->get_id(), '_wpinv_one_time', 'yes' );
655
+        if (!empty($data['one-time'])) {
656
+            update_post_meta($item->get_id(), '_wpinv_one_time', 'yes');
657 657
         }
658 658
 
659
-        $item = new GetPaid_Form_Item( $item->get_id() );
660
-        $item->set_quantity( floatval( $data['qty'] ) );
659
+        $item = new GetPaid_Form_Item($item->get_id());
660
+        $item->set_quantity(floatval($data['qty']));
661 661
 
662 662
         // Add it to the invoice.
663
-        $error = $invoice->add_item( $item );
663
+        $error = $invoice->add_item($item);
664 664
         $alert = false;
665 665
 
666
-        if ( is_wp_error( $error ) ) {
666
+        if (is_wp_error($error)) {
667 667
             $alert = $error->get_error_message();
668
-            wp_send_json_success( compact( 'alert' ) );
668
+            wp_send_json_success(compact('alert'));
669 669
          }
670 670
 
671 671
         // Update totals.
@@ -678,9 +678,9 @@  discard block
 block discarded – undo
678 678
         $invoice->recalculate_total();
679 679
         $invoice->save();
680 680
         ob_start();
681
-        GetPaid_Meta_Box_Invoice_Items::output_row( GetPaid_Meta_Box_Invoice_Items::get_columns( $invoice ), $item, $invoice );
681
+        GetPaid_Meta_Box_Invoice_Items::output_row(GetPaid_Meta_Box_Invoice_Items::get_columns($invoice), $item, $invoice);
682 682
         $row = ob_get_clean();
683
-        wp_send_json_success( compact( 'row' ) );
683
+        wp_send_json_success(compact('row'));
684 684
     }
685 685
 
686 686
     /**
@@ -688,37 +688,37 @@  discard block
 block discarded – undo
688 688
      */
689 689
     public static function remove_invoice_item() {
690 690
         // Verify nonce.
691
-        check_ajax_referer( 'wpinv-nonce' );
691
+        check_ajax_referer('wpinv-nonce');
692 692
 
693 693
         // We need an invoice and item.
694
-        $invoice_id = ! empty( $_POST['post_id'] ) ? absint( $_POST['post_id'] ) : 0;
695
-        $item_id = ! empty( $_POST['item_id'] ) ? absint( $_POST['item_id'] ) : 0;
694
+        $invoice_id = !empty($_POST['post_id']) ? absint($_POST['post_id']) : 0;
695
+        $item_id = !empty($_POST['item_id']) ? absint($_POST['item_id']) : 0;
696 696
 
697
-        if ( empty( $invoice_id ) || empty( $item_id ) ) {
697
+        if (empty($invoice_id) || empty($item_id)) {
698 698
             exit;
699 699
         }
700 700
 
701 701
         // Can the user manage the plugin?
702
-        if ( ! wpinv_current_user_can( 'invoice_remove_item', array( 'invoice_id' => $invoice_id, 'item_id' => $item_id ) ) ) {
702
+        if (!wpinv_current_user_can('invoice_remove_item', array('invoice_id' => $invoice_id, 'item_id' => $item_id))) {
703 703
             exit;
704 704
         }
705 705
 
706 706
         // Fetch the invoice.
707
-        $invoice = new WPInv_Invoice( $invoice_id );
707
+        $invoice = new WPInv_Invoice($invoice_id);
708 708
 
709 709
         // Ensure it exists and its not been paid for.
710
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
710
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
711 711
             exit;
712 712
         }
713 713
 
714 714
         // Abort if the invoice does not have the specified item.
715
-        $item = $invoice->get_item( $item_id );
715
+        $item = $invoice->get_item($item_id);
716 716
 
717
-        if ( empty( $item ) ) {
717
+        if (empty($item)) {
718 718
             exit;
719 719
         }
720 720
 
721
-        $invoice->remove_item( $item_id );
721
+        $invoice->remove_item($item_id);
722 722
 
723 723
         // Update totals.
724 724
         $invoice->recalculate_total();
@@ -729,11 +729,11 @@  discard block
 block discarded – undo
729 729
         // Return an array of invoice items.
730 730
         $items = array();
731 731
 
732
-        foreach ( $invoice->get_items() as $item ) {
733
-            $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency() );
732
+        foreach ($invoice->get_items() as $item) {
733
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency());
734 734
         }
735 735
 
736
-        wp_send_json_success( compact( 'items' ) );
736
+        wp_send_json_success(compact('items'));
737 737
     }
738 738
 
739 739
     /**
@@ -741,69 +741,69 @@  discard block
 block discarded – undo
741 741
      */
742 742
     public static function recalculate_full_prices() {
743 743
         // Verify nonce.
744
-        check_ajax_referer( 'wpinv-nonce' );
744
+        check_ajax_referer('wpinv-nonce');
745 745
 
746
-        $invoice_id = ! empty( $_POST['post_id'] ) ? absint( $_POST['post_id'] ) : 0;
746
+        $invoice_id = !empty($_POST['post_id']) ? absint($_POST['post_id']) : 0;
747 747
 
748
-        if ( empty( $invoice_id ) ) {
748
+        if (empty($invoice_id)) {
749 749
             exit;
750 750
         }
751 751
 
752
-        if ( ! wpinv_current_user_can( 'invoice_recalculate_full_prices', array( 'invoice_id' => $invoice_id ) ) ) {
752
+        if (!wpinv_current_user_can('invoice_recalculate_full_prices', array('invoice_id' => $invoice_id))) {
753 753
             exit;
754 754
         }
755 755
 
756 756
         // Fetch the invoice.
757
-        $invoice = new WPInv_Invoice( $invoice_id );
757
+        $invoice = new WPInv_Invoice($invoice_id);
758 758
         $alert   = false;
759 759
 
760 760
         // Ensure it exists and its not been paid for.
761
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
761
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
762 762
             exit;
763 763
         }
764 764
 
765
-        $invoice->set_items( array() );
765
+        $invoice->set_items(array());
766 766
 
767
-        if ( ! empty( $_POST['getpaid_items'] ) ) {
767
+        if (!empty($_POST['getpaid_items'])) {
768 768
 
769
-            foreach ( wp_kses_post_deep( wp_unslash( $_POST['getpaid_items'] ) ) as $item_id => $args ) {
770
-                $item = new GetPaid_Form_Item( $item_id );
769
+            foreach (wp_kses_post_deep(wp_unslash($_POST['getpaid_items'])) as $item_id => $args) {
770
+                $item = new GetPaid_Form_Item($item_id);
771 771
 
772
-                if ( $item->exists() ) {
773
-                    $item->set_price( getpaid_standardize_amount( $args['price'] ) );
774
-                    $item->set_quantity( floatval( $args['quantity'] ) );
775
-                    $item->set_name( sanitize_text_field( $args['name'] ) );
776
-                    $item->set_description( wp_kses_post( $args['description'] ) );
777
-                    $invoice->add_item( $item );
772
+                if ($item->exists()) {
773
+                    $item->set_price(getpaid_standardize_amount($args['price']));
774
+                    $item->set_quantity(floatval($args['quantity']));
775
+                    $item->set_name(sanitize_text_field($args['name']));
776
+                    $item->set_description(wp_kses_post($args['description']));
777
+                    $invoice->add_item($item);
778 778
                 }
779 779
             }
780 780
         }
781 781
 
782
-        $invoice->set_disable_taxes( ! empty( $_POST['disable_taxes'] ) );
782
+        $invoice->set_disable_taxes(!empty($_POST['disable_taxes']));
783 783
 
784 784
         // Maybe set the country, state, currency.
785
-        foreach ( array( 'wpinv_country', 'wpinv_state', 'wpinv_currency', 'wpinv_vat_number', 'wpinv_discount_code' ) as $key ) {
786
-            if ( isset( $_POST[ $key ] ) ) {
787
-                $_key   = str_replace( 'wpinv_', '', $key );
785
+        foreach (array('wpinv_country', 'wpinv_state', 'wpinv_currency', 'wpinv_vat_number', 'wpinv_discount_code') as $key) {
786
+            if (isset($_POST[$key])) {
787
+                $_key   = str_replace('wpinv_', '', $key);
788 788
                 $method = "set_$_key";
789
-                $invoice->$method( sanitize_text_field( $_POST[ $key ] ) );
789
+                $invoice->$method(sanitize_text_field($_POST[$key]));
790 790
             }
791 791
         }
792 792
 
793
-        $discount = new WPInv_Discount( $invoice->get_discount_code() );
794
-        if ( $discount->exists() ) {
795
-            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
793
+        $discount = new WPInv_Discount($invoice->get_discount_code());
794
+        if ($discount->exists()) {
795
+            $invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
796 796
         } else {
797
-            $invoice->remove_discount( 'discount_code' );
797
+            $invoice->remove_discount('discount_code');
798 798
         }
799 799
 
800 800
         // Save the invoice.
801 801
         $invoice->recalculate_total();
802 802
         $invoice->save();
803 803
         ob_start();
804
-        GetPaid_Meta_Box_Invoice_Items::output( get_post( $invoice->get_id() ), $invoice );
804
+        GetPaid_Meta_Box_Invoice_Items::output(get_post($invoice->get_id()), $invoice);
805 805
         $table = ob_get_clean();
806
-        wp_send_json_success( compact( 'table' ) );
806
+        wp_send_json_success(compact('table'));
807 807
     }
808 808
 
809 809
     /**
@@ -811,47 +811,47 @@  discard block
 block discarded – undo
811 811
      */
812 812
     public static function admin_add_invoice_item() {
813 813
         // Verify nonce.
814
-        check_ajax_referer( 'wpinv-nonce' );
814
+        check_ajax_referer('wpinv-nonce');
815 815
 
816 816
         // We need an invoice and item.
817
-        $invoice_id = ! empty( $_POST['post_id'] ) ? absint( $_POST['post_id'] ) : 0;
818
-        $item_id = ! empty( $_POST['item_id'] ) ? absint( $_POST['item_id'] ) : 0;
817
+        $invoice_id = !empty($_POST['post_id']) ? absint($_POST['post_id']) : 0;
818
+        $item_id = !empty($_POST['item_id']) ? absint($_POST['item_id']) : 0;
819 819
 
820
-        if ( empty( $invoice_id ) || empty( $item_id ) ) {
820
+        if (empty($invoice_id) || empty($item_id)) {
821 821
             exit;
822 822
         }
823 823
 
824 824
         // Can the user manage the plugin?
825
-        if ( ! wpinv_current_user_can( 'invoice_add_item', array( 'invoice_id' => $invoice_id, 'item_id' => $item_id ) ) ) {
825
+        if (!wpinv_current_user_can('invoice_add_item', array('invoice_id' => $invoice_id, 'item_id' => $item_id))) {
826 826
             exit;
827 827
         }
828 828
 
829 829
         // Fetch the invoice.
830
-        $invoice = new WPInv_Invoice( $invoice_id );
830
+        $invoice = new WPInv_Invoice($invoice_id);
831 831
         $alert   = false;
832 832
 
833 833
         // Ensure it exists and its not been paid for.
834
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
834
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
835 835
             exit;
836 836
         }
837 837
 
838 838
         // Add the item.
839
-        $item  = new GetPaid_Form_Item( $item_id );
839
+        $item  = new GetPaid_Form_Item($item_id);
840 840
 
841
-        $error = $invoice->add_item( $item );
841
+        $error = $invoice->add_item($item);
842 842
 
843
-        if ( is_wp_error( $error ) ) {
843
+        if (is_wp_error($error)) {
844 844
             $alert = $error->get_error_message();
845
-            wp_send_json_success( compact( 'alert' ) );
845
+            wp_send_json_success(compact('alert'));
846 846
         }
847 847
 
848 848
         // Save the invoice.
849 849
         $invoice->recalculate_total();
850 850
         $invoice->save();
851 851
         ob_start();
852
-        GetPaid_Meta_Box_Invoice_Items::output_row( GetPaid_Meta_Box_Invoice_Items::get_columns( $invoice ), $item, $invoice );
852
+        GetPaid_Meta_Box_Invoice_Items::output_row(GetPaid_Meta_Box_Invoice_Items::get_columns($invoice), $item, $invoice);
853 853
         $row = ob_get_clean();
854
-        wp_send_json_success( compact( 'row' ) );
854
+        wp_send_json_success(compact('row'));
855 855
     }
856 856
 
857 857
     /**
@@ -859,42 +859,42 @@  discard block
 block discarded – undo
859 859
      */
860 860
     public static function add_invoice_items() {
861 861
         // Verify nonce.
862
-        check_ajax_referer( 'wpinv-nonce' );
862
+        check_ajax_referer('wpinv-nonce');
863 863
 
864
-        $invoice_id = ! empty( $_POST['post_id'] ) ? absint( $_POST['post_id'] ) : 0;
864
+        $invoice_id = !empty($_POST['post_id']) ? absint($_POST['post_id']) : 0;
865 865
 
866 866
         // We need an invoice and items.
867
-        if ( empty( $invoice_id ) || empty( $_POST['items'] ) ) {
867
+        if (empty($invoice_id) || empty($_POST['items'])) {
868 868
             exit;
869 869
         }
870 870
 
871 871
         // Can the user manage the plugin?
872
-        if ( ! wpinv_current_user_can( 'invoice_add_items', array( 'invoice_id' => $invoice_id ) ) ) {
872
+        if (!wpinv_current_user_can('invoice_add_items', array('invoice_id' => $invoice_id))) {
873 873
             exit;
874 874
         }
875 875
 
876 876
         // Fetch the invoice.
877
-        $invoice = new WPInv_Invoice( $invoice_id );
877
+        $invoice = new WPInv_Invoice($invoice_id);
878 878
         $alert   = false;
879 879
 
880 880
         // Ensure it exists and its not been paid for.
881
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
881
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
882 882
             exit;
883 883
         }
884 884
 
885 885
         // Add the items.
886
-        foreach ( wp_kses_post_deep( wp_unslash( $_POST['items'] ) ) as $data ) {
886
+        foreach (wp_kses_post_deep(wp_unslash($_POST['items'])) as $data) {
887 887
 
888
-            $item = new GetPaid_Form_Item( (int) $data['id'] );
888
+            $item = new GetPaid_Form_Item((int) $data['id']);
889 889
 
890
-            if ( is_numeric( $data['qty'] ) && (float) $data['qty'] > 0 ) {
891
-                $item->set_quantity( floatval( $data['qty'] ) );
890
+            if (is_numeric($data['qty']) && (float) $data['qty'] > 0) {
891
+                $item->set_quantity(floatval($data['qty']));
892 892
             }
893 893
 
894
-            if ( $item->get_id() > 0 ) {
895
-                $error = $invoice->add_item( $item );
894
+            if ($item->get_id() > 0) {
895
+                $error = $invoice->add_item($item);
896 896
 
897
-                if ( is_wp_error( $error ) ) {
897
+                if (is_wp_error($error)) {
898 898
                     $alert = $error->get_error_message();
899 899
                 }
900 900
 }
@@ -907,11 +907,11 @@  discard block
 block discarded – undo
907 907
         // Return an array of invoice items.
908 908
         $items = array();
909 909
 
910
-        foreach ( $invoice->get_items() as $item ) {
911
-            $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency() );
910
+        foreach ($invoice->get_items() as $item) {
911
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency());
912 912
         }
913 913
 
914
-        wp_send_json_success( compact( 'items', 'alert' ) );
914
+        wp_send_json_success(compact('items', 'alert'));
915 915
     }
916 916
 
917 917
     /**
@@ -919,16 +919,16 @@  discard block
 block discarded – undo
919 919
      */
920 920
     public static function get_invoicing_items() {
921 921
         // Verify nonce.
922
-        check_ajax_referer( 'wpinv-nonce' );
922
+        check_ajax_referer('wpinv-nonce');
923 923
 
924 924
         // Can the user manage the plugin?
925
-        if ( ! wpinv_current_user_can( 'get_invoicing_items' ) ) {
925
+        if (!wpinv_current_user_can('get_invoicing_items')) {
926 926
             exit;
927 927
         }
928 928
 
929 929
         // We need a search term.
930
-        if ( empty( $_GET['search'] ) ) {
931
-            wp_send_json_success( array() );
930
+        if (empty($_GET['search'])) {
931
+            wp_send_json_success(array());
932 932
         }
933 933
 
934 934
         // Retrieve items.
@@ -937,8 +937,8 @@  discard block
 block discarded – undo
937 937
             'orderby'        => 'title',
938 938
             'order'          => 'ASC',
939 939
             'posts_per_page' => -1,
940
-            'post_status'    => array( 'publish' ),
941
-            's'              => sanitize_text_field( urldecode( $_GET['search'] ) ),
940
+            'post_status'    => array('publish'),
941
+            's'              => sanitize_text_field(urldecode($_GET['search'])),
942 942
             'meta_query'     => array(
943 943
                 array(
944 944
                     'key'     => '_wpinv_type',
@@ -952,25 +952,25 @@  discard block
 block discarded – undo
952 952
             ),
953 953
         );
954 954
 
955
-        if ( ! empty( $_GET['ignore'] ) ) {
956
-            $item_args['exclude'] = wp_parse_id_list( sanitize_text_field( $_GET['ignore'] ) );
955
+        if (!empty($_GET['ignore'])) {
956
+            $item_args['exclude'] = wp_parse_id_list(sanitize_text_field($_GET['ignore']));
957 957
         }
958 958
 
959
-        $items = get_posts( apply_filters( 'getpaid_ajax_invoice_items_query_args', $item_args ) );
959
+        $items = get_posts(apply_filters('getpaid_ajax_invoice_items_query_args', $item_args));
960 960
         $data  = array();
961 961
 
962
-        $is_payment_form = ( ! empty( $_GET['post_id'] ) && 'wpi_payment_form' == get_post_type( (int) $_GET['post_id'] ) );
962
+        $is_payment_form = (!empty($_GET['post_id']) && 'wpi_payment_form' == get_post_type((int) $_GET['post_id']));
963 963
 
964
-        foreach ( $items as $item ) {
965
-            $item      = new GetPaid_Form_Item( $item );
964
+        foreach ($items as $item) {
965
+            $item = new GetPaid_Form_Item($item);
966 966
             $data[] = array(
967 967
                 'id'        => (int) $item->get_id(),
968
-                'text'      => strip_tags( $item->get_name() ),
969
-                'form_data' => $is_payment_form ? $item->prepare_data_for_use( false ) : '',
968
+                'text'      => strip_tags($item->get_name()),
969
+                'form_data' => $is_payment_form ? $item->prepare_data_for_use(false) : '',
970 970
             );
971 971
         }
972 972
 
973
-        wp_send_json_success( $data );
973
+        wp_send_json_success($data);
974 974
 
975 975
     }
976 976
 
@@ -979,40 +979,40 @@  discard block
 block discarded – undo
979 979
      */
980 980
     public static function get_customers() {
981 981
         // Verify nonce.
982
-        check_ajax_referer( 'wpinv-nonce' );
982
+        check_ajax_referer('wpinv-nonce');
983 983
 
984
-        $invoice_id = ! empty( $_REQUEST['post_id'] ) ? (int) $_REQUEST['post_id'] : 0;
984
+        $invoice_id = !empty($_REQUEST['post_id']) ? (int) $_REQUEST['post_id'] : 0;
985 985
 
986 986
         // Can the user manage the plugin?
987
-        if ( ! wpinv_current_user_can( 'invoice_get_customers', array( 'invoice_id' => $invoice_id ) ) ) {
987
+        if (!wpinv_current_user_can('invoice_get_customers', array('invoice_id' => $invoice_id))) {
988 988
             die( -1 );
989 989
         }
990 990
 
991 991
         // We need a search term.
992
-        if ( empty( $_GET['search'] ) ) {
993
-            wp_send_json_success( array() );
992
+        if (empty($_GET['search'])) {
993
+            wp_send_json_success(array());
994 994
         }
995 995
 
996 996
         // Retrieve customers.
997 997
 
998 998
         $customer_args = array(
999
-            'fields'         => array( 'ID', 'user_email', 'display_name' ),
999
+            'fields'         => array('ID', 'user_email', 'display_name'),
1000 1000
             'orderby'        => 'display_name',
1001
-            'search'         => '*' . sanitize_text_field( $_GET['search'] ) . '*',
1002
-            'search_columns' => array( 'user_login', 'user_email', 'display_name' ),
1001
+            'search'         => '*' . sanitize_text_field($_GET['search']) . '*',
1002
+            'search_columns' => array('user_login', 'user_email', 'display_name'),
1003 1003
         );
1004 1004
 
1005
-        $customers = get_users( apply_filters( 'getpaid_ajax_invoice_customers_query_args', $customer_args ) );
1005
+        $customers = get_users(apply_filters('getpaid_ajax_invoice_customers_query_args', $customer_args));
1006 1006
         $data      = array();
1007 1007
 
1008
-        foreach ( $customers as $customer ) {
1008
+        foreach ($customers as $customer) {
1009 1009
             $data[] = array(
1010 1010
                 'id'   => (int) $customer->ID,
1011
-                'text' => strip_tags( sprintf( _x( '%1$s (%2$s)', 'user dropdown', 'invoicing' ), $customer->display_name, $customer->user_email ) ),
1011
+                'text' => strip_tags(sprintf(_x('%1$s (%2$s)', 'user dropdown', 'invoicing'), $customer->display_name, $customer->user_email)),
1012 1012
             );
1013 1013
         }
1014 1014
 
1015
-        wp_send_json_success( $data );
1015
+        wp_send_json_success($data);
1016 1016
 
1017 1017
     }
1018 1018
 
@@ -1022,25 +1022,25 @@  discard block
 block discarded – undo
1022 1022
     public static function get_aui_states_field() {
1023 1023
 
1024 1024
         // We need a country.
1025
-        if ( empty( $_GET['country'] ) ) {
1025
+        if (empty($_GET['country'])) {
1026 1026
             exit;
1027 1027
         }
1028 1028
 
1029
-        $states = wpinv_get_country_states( sanitize_text_field( $_GET['country'] ) );
1030
-        $state  = isset( $_GET['state'] ) ? sanitize_text_field( $_GET['state'] ) : wpinv_get_default_state();
1031
-        $name   = isset( $_GET['name'] ) ? sanitize_text_field( $_GET['name'] ) : 'wpinv_state';
1032
-        $class  = isset( $_GET['class'] ) ? sanitize_text_field( $_GET['class'] ) : 'form-control-sm';
1029
+        $states = wpinv_get_country_states(sanitize_text_field($_GET['country']));
1030
+        $state  = isset($_GET['state']) ? sanitize_text_field($_GET['state']) : wpinv_get_default_state();
1031
+        $name   = isset($_GET['name']) ? sanitize_text_field($_GET['name']) : 'wpinv_state';
1032
+        $class  = isset($_GET['class']) ? sanitize_text_field($_GET['class']) : 'form-control-sm';
1033 1033
 
1034
-        if ( empty( $states ) ) {
1034
+        if (empty($states)) {
1035 1035
 
1036 1036
             $html = aui()->input(
1037 1037
                 array(
1038 1038
                     'type'        => 'text',
1039 1039
                     'id'          => 'wpinv_state',
1040 1040
                     'name'        => $name,
1041
-                    'label'       => __( 'State', 'invoicing' ),
1041
+                    'label'       => __('State', 'invoicing'),
1042 1042
                     'label_type'  => 'vertical',
1043
-                    'placeholder' => __( 'State', 'invoicing' ),
1043
+                    'placeholder' => __('State', 'invoicing'),
1044 1044
                     'class'       => $class,
1045 1045
                     'value'       => $state,
1046 1046
                 )
@@ -1052,9 +1052,9 @@  discard block
 block discarded – undo
1052 1052
                 array(
1053 1053
                     'id'               => 'wpinv_state',
1054 1054
                     'name'             => $name,
1055
-                    'label'            => __( 'State', 'invoicing' ),
1055
+                    'label'            => __('State', 'invoicing'),
1056 1056
                     'label_type'       => 'vertical',
1057
-                    'placeholder'      => __( 'Select a state', 'invoicing' ),
1057
+                    'placeholder'      => __('Select a state', 'invoicing'),
1058 1058
                     'class'            => $class,
1059 1059
                     'value'            => $state,
1060 1060
                     'options'          => $states,
@@ -1068,7 +1068,7 @@  discard block
 block discarded – undo
1068 1068
         wp_send_json_success(
1069 1069
             array(
1070 1070
                 'html'   => $html,
1071
-                'select' => ! empty( $states ),
1071
+                'select' => !empty($states),
1072 1072
             )
1073 1073
         );
1074 1074
 
@@ -1082,8 +1082,8 @@  discard block
 block discarded – undo
1082 1082
     public static function payment_form_refresh_prices() {
1083 1083
 
1084 1084
         // ... form fields...
1085
-        if ( empty( $_POST['getpaid_payment_form_submission'] ) ) {
1086
-            esc_html_e( 'Error: Reload the page and try again.', 'invoicing' );
1085
+        if (empty($_POST['getpaid_payment_form_submission'])) {
1086
+            esc_html_e('Error: Reload the page and try again.', 'invoicing');
1087 1087
             exit;
1088 1088
         }
1089 1089
 
@@ -1091,7 +1091,7 @@  discard block
 block discarded – undo
1091 1091
         $submission = new GetPaid_Payment_Form_Submission();
1092 1092
 
1093 1093
         // Do we have an error?
1094
-        if ( ! empty( $submission->last_error ) ) {
1094
+        if (!empty($submission->last_error)) {
1095 1095
             wp_send_json_error(
1096 1096
                 array(
1097 1097
                     'code'  => $submission->last_error_code,
@@ -1101,12 +1101,12 @@  discard block
 block discarded – undo
1101 1101
         }
1102 1102
 
1103 1103
         // Prepare the response.
1104
-        $response = new GetPaid_Payment_Form_Submission_Refresh_Prices( $submission );
1104
+        $response = new GetPaid_Payment_Form_Submission_Refresh_Prices($submission);
1105 1105
 
1106 1106
         // Filter the response.
1107
-        $response = apply_filters( 'getpaid_payment_form_ajax_refresh_prices', $response->response, $submission );
1107
+        $response = apply_filters('getpaid_payment_form_ajax_refresh_prices', $response->response, $submission);
1108 1108
 
1109
-        wp_send_json_success( $response );
1109
+        wp_send_json_success($response);
1110 1110
     }
1111 1111
 
1112 1112
     /**
@@ -1118,63 +1118,63 @@  discard block
 block discarded – undo
1118 1118
 	public static function file_upload() {
1119 1119
 
1120 1120
         // Check nonce.
1121
-        check_ajax_referer( 'getpaid_form_nonce' );
1121
+        check_ajax_referer('getpaid_form_nonce');
1122 1122
 
1123
-        if ( empty( $_POST['form_id'] ) || empty( $_POST['field_name'] ) || empty( $_FILES['file'] ) ) {
1124
-            wp_die( esc_html_e( 'Bad Request', 'invoicing' ), 400 );
1123
+        if (empty($_POST['form_id']) || empty($_POST['field_name']) || empty($_FILES['file'])) {
1124
+            wp_die(esc_html_e('Bad Request', 'invoicing'), 400);
1125 1125
         }
1126 1126
 
1127 1127
         // Fetch form.
1128
-        $form = new GetPaid_Payment_Form( intval( $_POST['form_id'] ) );
1128
+        $form = new GetPaid_Payment_Form(intval($_POST['form_id']));
1129 1129
 
1130
-        if ( ! $form->is_active() ) {
1131
-            wp_send_json_error( __( 'Payment form not active', 'invoicing' ) );
1130
+        if (!$form->is_active()) {
1131
+            wp_send_json_error(__('Payment form not active', 'invoicing'));
1132 1132
         }
1133 1133
 
1134 1134
         // Fetch appropriate field.
1135
-        $upload_field = current( wp_list_filter( $form->get_elements(), array( 'id' => sanitize_text_field( $_POST['field_name'] ) ) ) );
1136
-        if ( empty( $upload_field ) ) {
1137
-            wp_send_json_error( __( 'Invalid upload field.', 'invoicing' ) );
1135
+        $upload_field = current(wp_list_filter($form->get_elements(), array('id' => sanitize_text_field($_POST['field_name']))));
1136
+        if (empty($upload_field)) {
1137
+            wp_send_json_error(__('Invalid upload field.', 'invoicing'));
1138 1138
         }
1139 1139
 
1140 1140
         // Prepare allowed file types.
1141
-        $file_types = isset( $upload_field['file_types'] ) ? $upload_field['file_types'] : array( 'jpg|jpeg|jpe', 'gif', 'png' );
1141
+        $file_types = isset($upload_field['file_types']) ? $upload_field['file_types'] : array('jpg|jpeg|jpe', 'gif', 'png');
1142 1142
         $all_types  = getpaid_get_allowed_mime_types();
1143 1143
         $mime_types = array();
1144 1144
 
1145
-        foreach ( $file_types as $file_type ) {
1146
-            if ( isset( $all_types[ $file_type ] ) ) {
1147
-                $mime_types[] = $all_types[ $file_type ];
1145
+        foreach ($file_types as $file_type) {
1146
+            if (isset($all_types[$file_type])) {
1147
+                $mime_types[] = $all_types[$file_type];
1148 1148
             }
1149 1149
         }
1150 1150
 
1151
-        if ( ! in_array( $_FILES['file']['type'], $mime_types ) ) {
1152
-            wp_send_json_error( __( 'Unsupported file type.', 'invoicing' ) );
1151
+        if (!in_array($_FILES['file']['type'], $mime_types)) {
1152
+            wp_send_json_error(__('Unsupported file type.', 'invoicing'));
1153 1153
         }
1154 1154
 
1155 1155
         // Upload file.
1156
-        $file_name = explode( '.', strtolower( $_FILES['file']['name'] ) );
1157
-        $file_name = uniqid( 'getpaid-' ) . '.' . array_pop( $file_name );
1156
+        $file_name = explode('.', strtolower($_FILES['file']['name']));
1157
+        $file_name = uniqid('getpaid-') . '.' . array_pop($file_name);
1158 1158
 
1159 1159
         $uploaded = wp_upload_bits(
1160 1160
             $file_name,
1161 1161
             null,
1162
-            file_get_contents( $_FILES['file']['tmp_name'] )
1162
+            file_get_contents($_FILES['file']['tmp_name'])
1163 1163
         );
1164 1164
 
1165
-        if ( ! empty( $uploaded['error'] ) ) {
1166
-            wp_send_json_error( $uploaded['error'] );
1165
+        if (!empty($uploaded['error'])) {
1166
+            wp_send_json_error($uploaded['error']);
1167 1167
         }
1168 1168
 
1169 1169
         // Retrieve response.
1170 1170
         $response = sprintf(
1171 1171
             '<input type="hidden" name="%s[%s]" value="%s" />',
1172
-            esc_attr( sanitize_text_field( $_POST['field_name'] ) ),
1173
-            esc_url( $uploaded['url'] ),
1174
-            esc_attr( sanitize_text_field( strtolower( $_FILES['file']['name'] ) ) )
1172
+            esc_attr(sanitize_text_field($_POST['field_name'])),
1173
+            esc_url($uploaded['url']),
1174
+            esc_attr(sanitize_text_field(strtolower($_FILES['file']['name'])))
1175 1175
         );
1176 1176
 
1177
-        wp_send_json_success( $response );
1177
+        wp_send_json_success($response);
1178 1178
 
1179 1179
 	}
1180 1180
 
Please login to merge, or discard this patch.
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-helper.php 3 patches
Indentation   +467 added lines, -467 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,470 +11,470 @@  discard block
 block discarded – undo
11 11
  */
12 12
 class AUI_Component_Helper {
13 13
 
14
-	/**
15
-	 * A component helper for generating a input name.
16
-	 *
17
-	 * @param $text
18
-	 * @param $multiple bool If the name is set to be multiple but no brackets found then we add some.
19
-	 *
20
-	 * @return string
21
-	 */
22
-	public static function name( $text, $multiple = false ) {
23
-		$output = '';
24
-
25
-		if ( $text ) {
26
-			$is_multiple = strpos( $text, '[' ) === false && $multiple ? '[]' : '';
27
-			$output      = ' name="' . esc_attr( $text ) . $is_multiple . '" ';
28
-		}
29
-
30
-		return $output;
31
-	}
32
-
33
-	/**
34
-	 * A component helper for generating a item id.
35
-	 *
36
-	 * @param $text string The text to be used as the value.
37
-	 *
38
-	 * @return string The sanitized item.
39
-	 */
40
-	public static function id( $text ) {
41
-		$output = '';
42
-
43
-		if ( $text ) {
44
-			$output = ' id="' . sanitize_html_class( $text ) . '" ';
45
-		}
46
-
47
-		return $output;
48
-	}
49
-
50
-	/**
51
-	 * A component helper for generating a item title.
52
-	 *
53
-	 * @param $text string The text to be used as the value.
54
-	 *
55
-	 * @return string The sanitized item.
56
-	 */
57
-	public static function title( $text ) {
58
-		$output = '';
59
-
60
-		if ( $text ) {
61
-			$output = ' title="' . esc_attr( $text ) . '" ';
62
-		}
63
-
64
-		return $output;
65
-	}
66
-
67
-	/**
68
-	 * A component helper for generating a item value.
69
-	 *
70
-	 * @param $text string The text to be used as the value.
71
-	 *
72
-	 * @return string The sanitized item.
73
-	 */
74
-	public static function value( $text ) {
75
-		$output = '';
76
-
77
-		if ( $text !== null && $text !== false ) {
78
-			$output = ' value="' . esc_attr( wp_unslash( $text ) ) . '" ';
79
-		}
80
-
81
-		return $output;
82
-	}
83
-
84
-	/**
85
-	 * A component helper for generating a item class attribute.
86
-	 *
87
-	 * @param $text string The text to be used as the value.
88
-	 *
89
-	 * @return string The sanitized item.
90
-	 */
91
-	public static function class_attr( $text ) {
92
-		$output = '';
93
-
94
-		if ( $text ) {
95
-			$classes = self::esc_classes( $text );
96
-			if ( ! empty( $classes ) ) {
97
-				$output = ' class="' . $classes . '" ';
98
-			}
99
-		}
100
-
101
-		return $output;
102
-	}
103
-
104
-	/**
105
-	 * Escape a string of classes.
106
-	 *
107
-	 * @param $text
108
-	 *
109
-	 * @return string
110
-	 */
111
-	public static function esc_classes( $text ) {
112
-		$output = '';
113
-
114
-		if ( $text ) {
115
-			$classes = explode( " ", $text );
116
-			$classes = array_map( "trim", $classes );
117
-			$classes = array_map( "sanitize_html_class", $classes );
118
-			if ( ! empty( $classes ) ) {
119
-				$output = implode( " ", $classes );
120
-			}
121
-		}
122
-
123
-		return $output;
124
-
125
-	}
126
-
127
-	/**
128
-	 * @param $args
129
-	 *
130
-	 * @return string
131
-	 */
132
-	public static function data_attributes( $args ) {
133
-		$output = '';
134
-
135
-		if ( ! empty( $args ) ) {
136
-
137
-			foreach ( $args as $key => $val ) {
138
-				if ( substr( $key, 0, 5 ) === "data-" ) {
139
-					$output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
140
-				}
141
-			}
142
-		}
143
-
144
-		return $output;
145
-	}
146
-
147
-	/**
148
-	 * @param $args
149
-	 *
150
-	 * @return string
151
-	 */
152
-	public static function aria_attributes( $args ) {
153
-		$output = '';
154
-
155
-		if ( ! empty( $args ) ) {
156
-
157
-			foreach ( $args as $key => $val ) {
158
-				if ( substr( $key, 0, 5 ) === "aria-" ) {
159
-					$output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
160
-				}
161
-			}
162
-		}
163
-
164
-		return $output;
165
-	}
166
-
167
-	/**
168
-	 * Build a font awesome icon from a class.
169
-	 *
170
-	 * @param $class
171
-	 * @param bool $space_after
172
-	 * @param array $extra_attributes An array of extra attributes.
173
-	 *
174
-	 * @return string
175
-	 */
176
-	public static function icon( $class, $space_after = false, $extra_attributes = array() ) {
177
-		$output = '';
178
-
179
-		if ( $class ) {
180
-			$classes = self::esc_classes( $class );
181
-			if ( ! empty( $classes ) ) {
182
-				$output = '<i class="' . $classes . '" ';
183
-				// extra attributes
184
-				if ( ! empty( $extra_attributes ) ) {
185
-					$output .= AUI_Component_Helper::extra_attributes( $extra_attributes );
186
-				}
187
-				$output .= '></i>';
188
-				if ( $space_after ) {
189
-					$output .= " ";
190
-				}
191
-			}
192
-		}
193
-
194
-		return $output;
195
-	}
196
-
197
-	/**
198
-	 * @param $args
199
-	 *
200
-	 * @return string
201
-	 */
202
-	public static function extra_attributes( $args ) {
203
-		$output = '';
204
-
205
-		if ( ! empty( $args ) ) {
206
-
207
-			if ( is_array( $args ) ) {
208
-				foreach ( $args as $key => $val ) {
209
-					$output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
210
-				}
211
-			} else {
212
-				$output .= ' ' . $args . ' ';
213
-			}
214
-
215
-		}
216
-
217
-		return $output;
218
-	}
219
-
220
-	/**
221
-	 * @param $args
222
-	 *
223
-	 * @return string
224
-	 */
225
-	public static function help_text( $text ) {
226
-		$output = '';
227
-
228
-		if ( $text ) {
229
-			$output .= '<small class="form-text text-muted d-block">' . wp_kses_post( $text ) . '</small>';
230
-		}
231
-
232
-
233
-		return $output;
234
-	}
235
-
236
-	/**
237
-	 * Replace element require context with JS.
238
-	 *
239
-	 * @param $input
240
-	 *
241
-	 * @return string|void
242
-	 */
243
-	public static function element_require( $input ) {
244
-
245
-		$input = str_replace( "'", '"', $input );// we only want double quotes
246
-
247
-		$output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array(
248
-			"jQuery(form).find('[data-argument=\"",
249
-			"\"]').find('input,select,textarea').val()",
250
-			"\"]').find('input:checked').val()",
251
-		), $input ) );
252
-
253
-		if ( $output ) {
254
-			$output = ' data-element-require="' . $output . '" ';
255
-		}
256
-
257
-		return $output;
258
-	}
259
-
260
-	/**
261
-	 * Navigates through an array, object, or scalar, and removes slashes from the values.
262
-	 *
263
-	 * @since 0.1.41
264
-	 *
265
-	 * @param mixed $value The value to be stripped.
266
-	 * @param array $input Input Field.
267
-	 *
268
-	 * @return mixed Stripped value.
269
-	 */
270
-	public static function sanitize_html_field( $value, $input = array() ) {
271
-		$original = $value;
272
-
273
-		if ( is_array( $value ) ) {
274
-			foreach ( $value as $index => $item ) {
275
-				$value[ $index ] = self::_sanitize_html_field( $value, $input );
276
-			}
277
-		} elseif ( is_object( $value ) ) {
278
-			$object_vars = get_object_vars( $value );
279
-
280
-			foreach ( $object_vars as $property_name => $property_value ) {
281
-				$value->$property_name = self::_sanitize_html_field( $property_value, $input );
282
-			}
283
-		} else {
284
-			$value = self::_sanitize_html_field( $value, $input );
285
-		}
286
-
287
-		/**
288
-		 * Filters content and keeps only allowable HTML elements.
289
-		 *
290
-		 * @since 0.1.41
291
-		 *
292
-		 * @param string|array $value Content to filter through kses.
293
-		 * @param string|array $value Original content without filter.
294
-		 * @param array $input Input Field.
295
-		 */
296
-		return apply_filters( 'ayecode_ui_sanitize_html_field', $value, $original, $input );
297
-	}
298
-
299
-	/**
300
-	 * Filters content and keeps only allowable HTML elements.
301
-	 *
302
-	 * This function makes sure that only the allowed HTML element names, attribute
303
-	 * names and attribute values plus only sane HTML entities will occur in
304
-	 * $string. You have to remove any slashes from PHP's magic quotes before you
305
-	 * call this function.
306
-	 *
307
-	 * The default allowed protocols are 'http', 'https', 'ftp', 'mailto', 'news',
308
-	 * 'irc', 'gopher', 'nntp', 'feed', 'telnet, 'mms', 'rtsp' and 'svn'. This
309
-	 * covers all common link protocols, except for 'javascript' which should not
310
-	 * be allowed for untrusted users.
311
-	 *
312
-	 * @since 0.1.41
313
-	 *
314
-	 * @param string|array $value Content to filter through kses.
315
-	 * @param array $input Input Field.
316
-	 *
317
-	 * @return string Filtered content with only allowed HTML elements.
318
-	 */
319
-	public static function _sanitize_html_field( $value, $input = array() ) {
320
-		if ( $value === '' ) {
321
-			return $value;
322
-		}
323
-
324
-		$allowed_html = self::kses_allowed_html( 'post', $input );
325
-
326
-		if ( ! is_array( $allowed_html ) ) {
327
-			$allowed_html = wp_kses_allowed_html( 'post' );
328
-		}
329
-
330
-		$filtered = trim( wp_unslash( $value ) );
331
-		$filtered = wp_kses( $filtered, $allowed_html );
332
-		$filtered = balanceTags( $filtered ); // Balances tags
333
-
334
-		return $filtered;
335
-	}
336
-
337
-	/**
338
-	 * Returns an array of allowed HTML tags and attributes for a given context.
339
-	 *
340
-	 * @since 0.1.41
341
-	 *
342
-	 * @param string|array $context The context for which to retrieve tags. Allowed values are 'post',
343
-	 *                              'strip', 'data', 'entities', or the name of a field filter such as
344
-	 *                              'pre_user_description'.
345
-	 * @param array $input Input.
346
-	 *
347
-	 * @return array Array of allowed HTML tags and their allowed attributes.
348
-	 */
349
-	public static function kses_allowed_html( $context = 'post', $input = array() ) {
350
-		$allowed_html = wp_kses_allowed_html( $context );
351
-
352
-		if ( is_array( $allowed_html ) ) {
353
-			// <iframe>
354
-			if ( ! isset( $allowed_html['iframe'] ) && $context == 'post' ) {
355
-				$allowed_html['iframe'] = array(
356
-					'class'           => true,
357
-					'id'              => true,
358
-					'src'             => true,
359
-					'width'           => true,
360
-					'height'          => true,
361
-					'frameborder'     => true,
362
-					'marginwidth'     => true,
363
-					'marginheight'    => true,
364
-					'scrolling'       => true,
365
-					'style'           => true,
366
-					'title'           => true,
367
-					'allow'           => true,
368
-					'allowfullscreen' => true,
369
-					'data-*'          => true,
370
-				);
371
-			}
372
-		}
373
-
374
-		/**
375
-		 * Filters the allowed html tags.
376
-		 *
377
-		 * @since 0.1.41
378
-		 *
379
-		 * @param array[]|string $allowed_html Allowed html tags.
380
-		 * @param @param string|array $context The context for which to retrieve tags.
381
-		 * @param array $input Input field.
382
-		 */
383
-		return apply_filters( 'ayecode_ui_kses_allowed_html', $allowed_html, $context, $input );
384
-	}
385
-
386
-	public static function get_column_class( $label_number = 2, $type = 'label' ) {
387
-
388
-		$class = '';
389
-
390
-		// set default if empty
391
-		if( $label_number === '' ){
392
-			$label_number = 2;
393
-		}
394
-
395
-		if ( $label_number && $label_number < 12 && $label_number > 0 ) {
396
-			if ( $type == 'label' ) {
397
-				$class = 'col-sm-' . absint( $label_number );
398
-			} elseif ( $type == 'input' ) {
399
-				$class = 'col-sm-' . ( 12 - absint( $label_number ) );
400
-			}
401
-		}
402
-
403
-		return $class;
404
-	}
405
-
406
-	/**
407
-	 * Sanitizes a multiline string from user input or from the database.
408
-	 *
409
-	 * Emulate the WP native sanitize_textarea_field function in a %%variable%% safe way.
410
-	 *
411
-	 * @see   https://core.trac.wordpress.org/browser/trunk/src/wp-includes/formatting.php for the original
412
-	 *
413
-	 * @since 0.1.66
414
-	 *
415
-	 * @param string $str String to sanitize.
416
-	 * @return string Sanitized string.
417
-	 */
418
-	public static function sanitize_textarea_field( $str ) {
419
-		$filtered = self::_sanitize_text_fields( $str, true );
420
-
421
-		/**
422
-		 * Filters a sanitized textarea field string.
423
-		 *
424
-		 * @see https://core.trac.wordpress.org/browser/trunk/src/wp-includes/formatting.php
425
-		 *
426
-		 * @param string $filtered The sanitized string.
427
-		 * @param string $str      The string prior to being sanitized.
428
-		 */
429
-		return apply_filters( 'sanitize_textarea_field', $filtered, $str );
430
-	}
431
-
432
-	/**
433
-	 * Internal helper function to sanitize a string from user input or from the db.
434
-	 *
435
-	 * @since 0.1.66
436
-	 * @access private
437
-	 *
438
-	 * @param string $str           String to sanitize.
439
-	 * @param bool   $keep_newlines Optional. Whether to keep newlines. Default: false.
440
-	 * @return string Sanitized string.
441
-	 */
442
-	public static function _sanitize_text_fields( $str, $keep_newlines = false ) {
443
-		if ( is_object( $str ) || is_array( $str ) ) {
444
-			return '';
445
-		}
446
-
447
-		$str = (string) $str;
448
-
449
-		$filtered = wp_check_invalid_utf8( $str );
450
-
451
-		if ( strpos( $filtered, '<' ) !== false ) {
452
-			$filtered = wp_pre_kses_less_than( $filtered );
453
-			// This will strip extra whitespace for us.
454
-			$filtered = wp_strip_all_tags( $filtered, false );
455
-
456
-			// Use HTML entities in a special case to make sure no later
457
-			// newline stripping stage could lead to a functional tag.
458
-			$filtered = str_replace( "<\n", "&lt;\n", $filtered );
459
-		}
460
-
461
-		if ( ! $keep_newlines ) {
462
-			$filtered = preg_replace( '/[\r\n\t ]+/', ' ', $filtered );
463
-		}
464
-		$filtered = trim( $filtered );
465
-
466
-		$found = false;
467
-		while ( preg_match( '`[^%](%[a-f0-9]{2})`i', $filtered, $match ) ) {
468
-			$filtered = str_replace( $match[1], '', $filtered );
469
-			$found = true;
470
-		}
471
-		unset( $match );
472
-
473
-		if ( $found ) {
474
-			// Strip out the whitespace that may now exist after removing the octets.
475
-			$filtered = trim( preg_replace( '` +`', ' ', $filtered ) );
476
-		}
477
-
478
-		return $filtered;
479
-	}
14
+    /**
15
+     * A component helper for generating a input name.
16
+     *
17
+     * @param $text
18
+     * @param $multiple bool If the name is set to be multiple but no brackets found then we add some.
19
+     *
20
+     * @return string
21
+     */
22
+    public static function name( $text, $multiple = false ) {
23
+        $output = '';
24
+
25
+        if ( $text ) {
26
+            $is_multiple = strpos( $text, '[' ) === false && $multiple ? '[]' : '';
27
+            $output      = ' name="' . esc_attr( $text ) . $is_multiple . '" ';
28
+        }
29
+
30
+        return $output;
31
+    }
32
+
33
+    /**
34
+     * A component helper for generating a item id.
35
+     *
36
+     * @param $text string The text to be used as the value.
37
+     *
38
+     * @return string The sanitized item.
39
+     */
40
+    public static function id( $text ) {
41
+        $output = '';
42
+
43
+        if ( $text ) {
44
+            $output = ' id="' . sanitize_html_class( $text ) . '" ';
45
+        }
46
+
47
+        return $output;
48
+    }
49
+
50
+    /**
51
+     * A component helper for generating a item title.
52
+     *
53
+     * @param $text string The text to be used as the value.
54
+     *
55
+     * @return string The sanitized item.
56
+     */
57
+    public static function title( $text ) {
58
+        $output = '';
59
+
60
+        if ( $text ) {
61
+            $output = ' title="' . esc_attr( $text ) . '" ';
62
+        }
63
+
64
+        return $output;
65
+    }
66
+
67
+    /**
68
+     * A component helper for generating a item value.
69
+     *
70
+     * @param $text string The text to be used as the value.
71
+     *
72
+     * @return string The sanitized item.
73
+     */
74
+    public static function value( $text ) {
75
+        $output = '';
76
+
77
+        if ( $text !== null && $text !== false ) {
78
+            $output = ' value="' . esc_attr( wp_unslash( $text ) ) . '" ';
79
+        }
80
+
81
+        return $output;
82
+    }
83
+
84
+    /**
85
+     * A component helper for generating a item class attribute.
86
+     *
87
+     * @param $text string The text to be used as the value.
88
+     *
89
+     * @return string The sanitized item.
90
+     */
91
+    public static function class_attr( $text ) {
92
+        $output = '';
93
+
94
+        if ( $text ) {
95
+            $classes = self::esc_classes( $text );
96
+            if ( ! empty( $classes ) ) {
97
+                $output = ' class="' . $classes . '" ';
98
+            }
99
+        }
100
+
101
+        return $output;
102
+    }
103
+
104
+    /**
105
+     * Escape a string of classes.
106
+     *
107
+     * @param $text
108
+     *
109
+     * @return string
110
+     */
111
+    public static function esc_classes( $text ) {
112
+        $output = '';
113
+
114
+        if ( $text ) {
115
+            $classes = explode( " ", $text );
116
+            $classes = array_map( "trim", $classes );
117
+            $classes = array_map( "sanitize_html_class", $classes );
118
+            if ( ! empty( $classes ) ) {
119
+                $output = implode( " ", $classes );
120
+            }
121
+        }
122
+
123
+        return $output;
124
+
125
+    }
126
+
127
+    /**
128
+     * @param $args
129
+     *
130
+     * @return string
131
+     */
132
+    public static function data_attributes( $args ) {
133
+        $output = '';
134
+
135
+        if ( ! empty( $args ) ) {
136
+
137
+            foreach ( $args as $key => $val ) {
138
+                if ( substr( $key, 0, 5 ) === "data-" ) {
139
+                    $output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
140
+                }
141
+            }
142
+        }
143
+
144
+        return $output;
145
+    }
146
+
147
+    /**
148
+     * @param $args
149
+     *
150
+     * @return string
151
+     */
152
+    public static function aria_attributes( $args ) {
153
+        $output = '';
154
+
155
+        if ( ! empty( $args ) ) {
156
+
157
+            foreach ( $args as $key => $val ) {
158
+                if ( substr( $key, 0, 5 ) === "aria-" ) {
159
+                    $output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
160
+                }
161
+            }
162
+        }
163
+
164
+        return $output;
165
+    }
166
+
167
+    /**
168
+     * Build a font awesome icon from a class.
169
+     *
170
+     * @param $class
171
+     * @param bool $space_after
172
+     * @param array $extra_attributes An array of extra attributes.
173
+     *
174
+     * @return string
175
+     */
176
+    public static function icon( $class, $space_after = false, $extra_attributes = array() ) {
177
+        $output = '';
178
+
179
+        if ( $class ) {
180
+            $classes = self::esc_classes( $class );
181
+            if ( ! empty( $classes ) ) {
182
+                $output = '<i class="' . $classes . '" ';
183
+                // extra attributes
184
+                if ( ! empty( $extra_attributes ) ) {
185
+                    $output .= AUI_Component_Helper::extra_attributes( $extra_attributes );
186
+                }
187
+                $output .= '></i>';
188
+                if ( $space_after ) {
189
+                    $output .= " ";
190
+                }
191
+            }
192
+        }
193
+
194
+        return $output;
195
+    }
196
+
197
+    /**
198
+     * @param $args
199
+     *
200
+     * @return string
201
+     */
202
+    public static function extra_attributes( $args ) {
203
+        $output = '';
204
+
205
+        if ( ! empty( $args ) ) {
206
+
207
+            if ( is_array( $args ) ) {
208
+                foreach ( $args as $key => $val ) {
209
+                    $output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
210
+                }
211
+            } else {
212
+                $output .= ' ' . $args . ' ';
213
+            }
214
+
215
+        }
216
+
217
+        return $output;
218
+    }
219
+
220
+    /**
221
+     * @param $args
222
+     *
223
+     * @return string
224
+     */
225
+    public static function help_text( $text ) {
226
+        $output = '';
227
+
228
+        if ( $text ) {
229
+            $output .= '<small class="form-text text-muted d-block">' . wp_kses_post( $text ) . '</small>';
230
+        }
231
+
232
+
233
+        return $output;
234
+    }
235
+
236
+    /**
237
+     * Replace element require context with JS.
238
+     *
239
+     * @param $input
240
+     *
241
+     * @return string|void
242
+     */
243
+    public static function element_require( $input ) {
244
+
245
+        $input = str_replace( "'", '"', $input );// we only want double quotes
246
+
247
+        $output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array(
248
+            "jQuery(form).find('[data-argument=\"",
249
+            "\"]').find('input,select,textarea').val()",
250
+            "\"]').find('input:checked').val()",
251
+        ), $input ) );
252
+
253
+        if ( $output ) {
254
+            $output = ' data-element-require="' . $output . '" ';
255
+        }
256
+
257
+        return $output;
258
+    }
259
+
260
+    /**
261
+     * Navigates through an array, object, or scalar, and removes slashes from the values.
262
+     *
263
+     * @since 0.1.41
264
+     *
265
+     * @param mixed $value The value to be stripped.
266
+     * @param array $input Input Field.
267
+     *
268
+     * @return mixed Stripped value.
269
+     */
270
+    public static function sanitize_html_field( $value, $input = array() ) {
271
+        $original = $value;
272
+
273
+        if ( is_array( $value ) ) {
274
+            foreach ( $value as $index => $item ) {
275
+                $value[ $index ] = self::_sanitize_html_field( $value, $input );
276
+            }
277
+        } elseif ( is_object( $value ) ) {
278
+            $object_vars = get_object_vars( $value );
279
+
280
+            foreach ( $object_vars as $property_name => $property_value ) {
281
+                $value->$property_name = self::_sanitize_html_field( $property_value, $input );
282
+            }
283
+        } else {
284
+            $value = self::_sanitize_html_field( $value, $input );
285
+        }
286
+
287
+        /**
288
+         * Filters content and keeps only allowable HTML elements.
289
+         *
290
+         * @since 0.1.41
291
+         *
292
+         * @param string|array $value Content to filter through kses.
293
+         * @param string|array $value Original content without filter.
294
+         * @param array $input Input Field.
295
+         */
296
+        return apply_filters( 'ayecode_ui_sanitize_html_field', $value, $original, $input );
297
+    }
298
+
299
+    /**
300
+     * Filters content and keeps only allowable HTML elements.
301
+     *
302
+     * This function makes sure that only the allowed HTML element names, attribute
303
+     * names and attribute values plus only sane HTML entities will occur in
304
+     * $string. You have to remove any slashes from PHP's magic quotes before you
305
+     * call this function.
306
+     *
307
+     * The default allowed protocols are 'http', 'https', 'ftp', 'mailto', 'news',
308
+     * 'irc', 'gopher', 'nntp', 'feed', 'telnet, 'mms', 'rtsp' and 'svn'. This
309
+     * covers all common link protocols, except for 'javascript' which should not
310
+     * be allowed for untrusted users.
311
+     *
312
+     * @since 0.1.41
313
+     *
314
+     * @param string|array $value Content to filter through kses.
315
+     * @param array $input Input Field.
316
+     *
317
+     * @return string Filtered content with only allowed HTML elements.
318
+     */
319
+    public static function _sanitize_html_field( $value, $input = array() ) {
320
+        if ( $value === '' ) {
321
+            return $value;
322
+        }
323
+
324
+        $allowed_html = self::kses_allowed_html( 'post', $input );
325
+
326
+        if ( ! is_array( $allowed_html ) ) {
327
+            $allowed_html = wp_kses_allowed_html( 'post' );
328
+        }
329
+
330
+        $filtered = trim( wp_unslash( $value ) );
331
+        $filtered = wp_kses( $filtered, $allowed_html );
332
+        $filtered = balanceTags( $filtered ); // Balances tags
333
+
334
+        return $filtered;
335
+    }
336
+
337
+    /**
338
+     * Returns an array of allowed HTML tags and attributes for a given context.
339
+     *
340
+     * @since 0.1.41
341
+     *
342
+     * @param string|array $context The context for which to retrieve tags. Allowed values are 'post',
343
+     *                              'strip', 'data', 'entities', or the name of a field filter such as
344
+     *                              'pre_user_description'.
345
+     * @param array $input Input.
346
+     *
347
+     * @return array Array of allowed HTML tags and their allowed attributes.
348
+     */
349
+    public static function kses_allowed_html( $context = 'post', $input = array() ) {
350
+        $allowed_html = wp_kses_allowed_html( $context );
351
+
352
+        if ( is_array( $allowed_html ) ) {
353
+            // <iframe>
354
+            if ( ! isset( $allowed_html['iframe'] ) && $context == 'post' ) {
355
+                $allowed_html['iframe'] = array(
356
+                    'class'           => true,
357
+                    'id'              => true,
358
+                    'src'             => true,
359
+                    'width'           => true,
360
+                    'height'          => true,
361
+                    'frameborder'     => true,
362
+                    'marginwidth'     => true,
363
+                    'marginheight'    => true,
364
+                    'scrolling'       => true,
365
+                    'style'           => true,
366
+                    'title'           => true,
367
+                    'allow'           => true,
368
+                    'allowfullscreen' => true,
369
+                    'data-*'          => true,
370
+                );
371
+            }
372
+        }
373
+
374
+        /**
375
+         * Filters the allowed html tags.
376
+         *
377
+         * @since 0.1.41
378
+         *
379
+         * @param array[]|string $allowed_html Allowed html tags.
380
+         * @param @param string|array $context The context for which to retrieve tags.
381
+         * @param array $input Input field.
382
+         */
383
+        return apply_filters( 'ayecode_ui_kses_allowed_html', $allowed_html, $context, $input );
384
+    }
385
+
386
+    public static function get_column_class( $label_number = 2, $type = 'label' ) {
387
+
388
+        $class = '';
389
+
390
+        // set default if empty
391
+        if( $label_number === '' ){
392
+            $label_number = 2;
393
+        }
394
+
395
+        if ( $label_number && $label_number < 12 && $label_number > 0 ) {
396
+            if ( $type == 'label' ) {
397
+                $class = 'col-sm-' . absint( $label_number );
398
+            } elseif ( $type == 'input' ) {
399
+                $class = 'col-sm-' . ( 12 - absint( $label_number ) );
400
+            }
401
+        }
402
+
403
+        return $class;
404
+    }
405
+
406
+    /**
407
+     * Sanitizes a multiline string from user input or from the database.
408
+     *
409
+     * Emulate the WP native sanitize_textarea_field function in a %%variable%% safe way.
410
+     *
411
+     * @see   https://core.trac.wordpress.org/browser/trunk/src/wp-includes/formatting.php for the original
412
+     *
413
+     * @since 0.1.66
414
+     *
415
+     * @param string $str String to sanitize.
416
+     * @return string Sanitized string.
417
+     */
418
+    public static function sanitize_textarea_field( $str ) {
419
+        $filtered = self::_sanitize_text_fields( $str, true );
420
+
421
+        /**
422
+         * Filters a sanitized textarea field string.
423
+         *
424
+         * @see https://core.trac.wordpress.org/browser/trunk/src/wp-includes/formatting.php
425
+         *
426
+         * @param string $filtered The sanitized string.
427
+         * @param string $str      The string prior to being sanitized.
428
+         */
429
+        return apply_filters( 'sanitize_textarea_field', $filtered, $str );
430
+    }
431
+
432
+    /**
433
+     * Internal helper function to sanitize a string from user input or from the db.
434
+     *
435
+     * @since 0.1.66
436
+     * @access private
437
+     *
438
+     * @param string $str           String to sanitize.
439
+     * @param bool   $keep_newlines Optional. Whether to keep newlines. Default: false.
440
+     * @return string Sanitized string.
441
+     */
442
+    public static function _sanitize_text_fields( $str, $keep_newlines = false ) {
443
+        if ( is_object( $str ) || is_array( $str ) ) {
444
+            return '';
445
+        }
446
+
447
+        $str = (string) $str;
448
+
449
+        $filtered = wp_check_invalid_utf8( $str );
450
+
451
+        if ( strpos( $filtered, '<' ) !== false ) {
452
+            $filtered = wp_pre_kses_less_than( $filtered );
453
+            // This will strip extra whitespace for us.
454
+            $filtered = wp_strip_all_tags( $filtered, false );
455
+
456
+            // Use HTML entities in a special case to make sure no later
457
+            // newline stripping stage could lead to a functional tag.
458
+            $filtered = str_replace( "<\n", "&lt;\n", $filtered );
459
+        }
460
+
461
+        if ( ! $keep_newlines ) {
462
+            $filtered = preg_replace( '/[\r\n\t ]+/', ' ', $filtered );
463
+        }
464
+        $filtered = trim( $filtered );
465
+
466
+        $found = false;
467
+        while ( preg_match( '`[^%](%[a-f0-9]{2})`i', $filtered, $match ) ) {
468
+            $filtered = str_replace( $match[1], '', $filtered );
469
+            $found = true;
470
+        }
471
+        unset( $match );
472
+
473
+        if ( $found ) {
474
+            // Strip out the whitespace that may now exist after removing the octets.
475
+            $filtered = trim( preg_replace( '` +`', ' ', $filtered ) );
476
+        }
477
+
478
+        return $filtered;
479
+    }
480 480
 }
481 481
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +103 added lines, -103 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
 
@@ -19,12 +19,12 @@  discard block
 block discarded – undo
19 19
 	 *
20 20
 	 * @return string
21 21
 	 */
22
-	public static function name( $text, $multiple = false ) {
22
+	public static function name($text, $multiple = false) {
23 23
 		$output = '';
24 24
 
25
-		if ( $text ) {
26
-			$is_multiple = strpos( $text, '[' ) === false && $multiple ? '[]' : '';
27
-			$output      = ' name="' . esc_attr( $text ) . $is_multiple . '" ';
25
+		if ($text) {
26
+			$is_multiple = strpos($text, '[') === false && $multiple ? '[]' : '';
27
+			$output      = ' name="' . esc_attr($text) . $is_multiple . '" ';
28 28
 		}
29 29
 
30 30
 		return $output;
@@ -37,11 +37,11 @@  discard block
 block discarded – undo
37 37
 	 *
38 38
 	 * @return string The sanitized item.
39 39
 	 */
40
-	public static function id( $text ) {
40
+	public static function id($text) {
41 41
 		$output = '';
42 42
 
43
-		if ( $text ) {
44
-			$output = ' id="' . sanitize_html_class( $text ) . '" ';
43
+		if ($text) {
44
+			$output = ' id="' . sanitize_html_class($text) . '" ';
45 45
 		}
46 46
 
47 47
 		return $output;
@@ -54,11 +54,11 @@  discard block
 block discarded – undo
54 54
 	 *
55 55
 	 * @return string The sanitized item.
56 56
 	 */
57
-	public static function title( $text ) {
57
+	public static function title($text) {
58 58
 		$output = '';
59 59
 
60
-		if ( $text ) {
61
-			$output = ' title="' . esc_attr( $text ) . '" ';
60
+		if ($text) {
61
+			$output = ' title="' . esc_attr($text) . '" ';
62 62
 		}
63 63
 
64 64
 		return $output;
@@ -71,11 +71,11 @@  discard block
 block discarded – undo
71 71
 	 *
72 72
 	 * @return string The sanitized item.
73 73
 	 */
74
-	public static function value( $text ) {
74
+	public static function value($text) {
75 75
 		$output = '';
76 76
 
77
-		if ( $text !== null && $text !== false ) {
78
-			$output = ' value="' . esc_attr( wp_unslash( $text ) ) . '" ';
77
+		if ($text !== null && $text !== false) {
78
+			$output = ' value="' . esc_attr(wp_unslash($text)) . '" ';
79 79
 		}
80 80
 
81 81
 		return $output;
@@ -88,12 +88,12 @@  discard block
 block discarded – undo
88 88
 	 *
89 89
 	 * @return string The sanitized item.
90 90
 	 */
91
-	public static function class_attr( $text ) {
91
+	public static function class_attr($text) {
92 92
 		$output = '';
93 93
 
94
-		if ( $text ) {
95
-			$classes = self::esc_classes( $text );
96
-			if ( ! empty( $classes ) ) {
94
+		if ($text) {
95
+			$classes = self::esc_classes($text);
96
+			if (!empty($classes)) {
97 97
 				$output = ' class="' . $classes . '" ';
98 98
 			}
99 99
 		}
@@ -108,15 +108,15 @@  discard block
 block discarded – undo
108 108
 	 *
109 109
 	 * @return string
110 110
 	 */
111
-	public static function esc_classes( $text ) {
111
+	public static function esc_classes($text) {
112 112
 		$output = '';
113 113
 
114
-		if ( $text ) {
115
-			$classes = explode( " ", $text );
116
-			$classes = array_map( "trim", $classes );
117
-			$classes = array_map( "sanitize_html_class", $classes );
118
-			if ( ! empty( $classes ) ) {
119
-				$output = implode( " ", $classes );
114
+		if ($text) {
115
+			$classes = explode(" ", $text);
116
+			$classes = array_map("trim", $classes);
117
+			$classes = array_map("sanitize_html_class", $classes);
118
+			if (!empty($classes)) {
119
+				$output = implode(" ", $classes);
120 120
 			}
121 121
 		}
122 122
 
@@ -129,14 +129,14 @@  discard block
 block discarded – undo
129 129
 	 *
130 130
 	 * @return string
131 131
 	 */
132
-	public static function data_attributes( $args ) {
132
+	public static function data_attributes($args) {
133 133
 		$output = '';
134 134
 
135
-		if ( ! empty( $args ) ) {
135
+		if (!empty($args)) {
136 136
 
137
-			foreach ( $args as $key => $val ) {
138
-				if ( substr( $key, 0, 5 ) === "data-" ) {
139
-					$output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
137
+			foreach ($args as $key => $val) {
138
+				if (substr($key, 0, 5) === "data-") {
139
+					$output .= ' ' . sanitize_html_class($key) . '="' . esc_attr($val) . '" ';
140 140
 				}
141 141
 			}
142 142
 		}
@@ -149,14 +149,14 @@  discard block
 block discarded – undo
149 149
 	 *
150 150
 	 * @return string
151 151
 	 */
152
-	public static function aria_attributes( $args ) {
152
+	public static function aria_attributes($args) {
153 153
 		$output = '';
154 154
 
155
-		if ( ! empty( $args ) ) {
155
+		if (!empty($args)) {
156 156
 
157
-			foreach ( $args as $key => $val ) {
158
-				if ( substr( $key, 0, 5 ) === "aria-" ) {
159
-					$output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
157
+			foreach ($args as $key => $val) {
158
+				if (substr($key, 0, 5) === "aria-") {
159
+					$output .= ' ' . sanitize_html_class($key) . '="' . esc_attr($val) . '" ';
160 160
 				}
161 161
 			}
162 162
 		}
@@ -173,19 +173,19 @@  discard block
 block discarded – undo
173 173
 	 *
174 174
 	 * @return string
175 175
 	 */
176
-	public static function icon( $class, $space_after = false, $extra_attributes = array() ) {
176
+	public static function icon($class, $space_after = false, $extra_attributes = array()) {
177 177
 		$output = '';
178 178
 
179
-		if ( $class ) {
180
-			$classes = self::esc_classes( $class );
181
-			if ( ! empty( $classes ) ) {
179
+		if ($class) {
180
+			$classes = self::esc_classes($class);
181
+			if (!empty($classes)) {
182 182
 				$output = '<i class="' . $classes . '" ';
183 183
 				// extra attributes
184
-				if ( ! empty( $extra_attributes ) ) {
185
-					$output .= AUI_Component_Helper::extra_attributes( $extra_attributes );
184
+				if (!empty($extra_attributes)) {
185
+					$output .= AUI_Component_Helper::extra_attributes($extra_attributes);
186 186
 				}
187 187
 				$output .= '></i>';
188
-				if ( $space_after ) {
188
+				if ($space_after) {
189 189
 					$output .= " ";
190 190
 				}
191 191
 			}
@@ -199,14 +199,14 @@  discard block
 block discarded – undo
199 199
 	 *
200 200
 	 * @return string
201 201
 	 */
202
-	public static function extra_attributes( $args ) {
202
+	public static function extra_attributes($args) {
203 203
 		$output = '';
204 204
 
205
-		if ( ! empty( $args ) ) {
205
+		if (!empty($args)) {
206 206
 
207
-			if ( is_array( $args ) ) {
208
-				foreach ( $args as $key => $val ) {
209
-					$output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
207
+			if (is_array($args)) {
208
+				foreach ($args as $key => $val) {
209
+					$output .= ' ' . sanitize_html_class($key) . '="' . esc_attr($val) . '" ';
210 210
 				}
211 211
 			} else {
212 212
 				$output .= ' ' . $args . ' ';
@@ -222,11 +222,11 @@  discard block
 block discarded – undo
222 222
 	 *
223 223
 	 * @return string
224 224
 	 */
225
-	public static function help_text( $text ) {
225
+	public static function help_text($text) {
226 226
 		$output = '';
227 227
 
228
-		if ( $text ) {
229
-			$output .= '<small class="form-text text-muted d-block">' . wp_kses_post( $text ) . '</small>';
228
+		if ($text) {
229
+			$output .= '<small class="form-text text-muted d-block">' . wp_kses_post($text) . '</small>';
230 230
 		}
231 231
 
232 232
 
@@ -240,17 +240,17 @@  discard block
 block discarded – undo
240 240
 	 *
241 241
 	 * @return string|void
242 242
 	 */
243
-	public static function element_require( $input ) {
243
+	public static function element_require($input) {
244 244
 
245
-		$input = str_replace( "'", '"', $input );// we only want double quotes
245
+		$input = str_replace("'", '"', $input); // we only want double quotes
246 246
 
247
-		$output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array(
247
+		$output = esc_attr(str_replace(array("[%", "%]", "%:checked]"), array(
248 248
 			"jQuery(form).find('[data-argument=\"",
249 249
 			"\"]').find('input,select,textarea').val()",
250 250
 			"\"]').find('input:checked').val()",
251
-		), $input ) );
251
+		), $input));
252 252
 
253
-		if ( $output ) {
253
+		if ($output) {
254 254
 			$output = ' data-element-require="' . $output . '" ';
255 255
 		}
256 256
 
@@ -267,21 +267,21 @@  discard block
 block discarded – undo
267 267
 	 *
268 268
 	 * @return mixed Stripped value.
269 269
 	 */
270
-	public static function sanitize_html_field( $value, $input = array() ) {
270
+	public static function sanitize_html_field($value, $input = array()) {
271 271
 		$original = $value;
272 272
 
273
-		if ( is_array( $value ) ) {
274
-			foreach ( $value as $index => $item ) {
275
-				$value[ $index ] = self::_sanitize_html_field( $value, $input );
273
+		if (is_array($value)) {
274
+			foreach ($value as $index => $item) {
275
+				$value[$index] = self::_sanitize_html_field($value, $input);
276 276
 			}
277
-		} elseif ( is_object( $value ) ) {
278
-			$object_vars = get_object_vars( $value );
277
+		} elseif (is_object($value)) {
278
+			$object_vars = get_object_vars($value);
279 279
 
280
-			foreach ( $object_vars as $property_name => $property_value ) {
281
-				$value->$property_name = self::_sanitize_html_field( $property_value, $input );
280
+			foreach ($object_vars as $property_name => $property_value) {
281
+				$value->$property_name = self::_sanitize_html_field($property_value, $input);
282 282
 			}
283 283
 		} else {
284
-			$value = self::_sanitize_html_field( $value, $input );
284
+			$value = self::_sanitize_html_field($value, $input);
285 285
 		}
286 286
 
287 287
 		/**
@@ -293,7 +293,7 @@  discard block
 block discarded – undo
293 293
 		 * @param string|array $value Original content without filter.
294 294
 		 * @param array $input Input Field.
295 295
 		 */
296
-		return apply_filters( 'ayecode_ui_sanitize_html_field', $value, $original, $input );
296
+		return apply_filters('ayecode_ui_sanitize_html_field', $value, $original, $input);
297 297
 	}
298 298
 
299 299
 	/**
@@ -316,20 +316,20 @@  discard block
 block discarded – undo
316 316
 	 *
317 317
 	 * @return string Filtered content with only allowed HTML elements.
318 318
 	 */
319
-	public static function _sanitize_html_field( $value, $input = array() ) {
320
-		if ( $value === '' ) {
319
+	public static function _sanitize_html_field($value, $input = array()) {
320
+		if ($value === '') {
321 321
 			return $value;
322 322
 		}
323 323
 
324
-		$allowed_html = self::kses_allowed_html( 'post', $input );
324
+		$allowed_html = self::kses_allowed_html('post', $input);
325 325
 
326
-		if ( ! is_array( $allowed_html ) ) {
327
-			$allowed_html = wp_kses_allowed_html( 'post' );
326
+		if (!is_array($allowed_html)) {
327
+			$allowed_html = wp_kses_allowed_html('post');
328 328
 		}
329 329
 
330
-		$filtered = trim( wp_unslash( $value ) );
331
-		$filtered = wp_kses( $filtered, $allowed_html );
332
-		$filtered = balanceTags( $filtered ); // Balances tags
330
+		$filtered = trim(wp_unslash($value));
331
+		$filtered = wp_kses($filtered, $allowed_html);
332
+		$filtered = balanceTags($filtered); // Balances tags
333 333
 
334 334
 		return $filtered;
335 335
 	}
@@ -346,12 +346,12 @@  discard block
 block discarded – undo
346 346
 	 *
347 347
 	 * @return array Array of allowed HTML tags and their allowed attributes.
348 348
 	 */
349
-	public static function kses_allowed_html( $context = 'post', $input = array() ) {
350
-		$allowed_html = wp_kses_allowed_html( $context );
349
+	public static function kses_allowed_html($context = 'post', $input = array()) {
350
+		$allowed_html = wp_kses_allowed_html($context);
351 351
 
352
-		if ( is_array( $allowed_html ) ) {
352
+		if (is_array($allowed_html)) {
353 353
 			// <iframe>
354
-			if ( ! isset( $allowed_html['iframe'] ) && $context == 'post' ) {
354
+			if (!isset($allowed_html['iframe']) && $context == 'post') {
355 355
 				$allowed_html['iframe'] = array(
356 356
 					'class'           => true,
357 357
 					'id'              => true,
@@ -380,23 +380,23 @@  discard block
 block discarded – undo
380 380
 		 * @param @param string|array $context The context for which to retrieve tags.
381 381
 		 * @param array $input Input field.
382 382
 		 */
383
-		return apply_filters( 'ayecode_ui_kses_allowed_html', $allowed_html, $context, $input );
383
+		return apply_filters('ayecode_ui_kses_allowed_html', $allowed_html, $context, $input);
384 384
 	}
385 385
 
386
-	public static function get_column_class( $label_number = 2, $type = 'label' ) {
386
+	public static function get_column_class($label_number = 2, $type = 'label') {
387 387
 
388 388
 		$class = '';
389 389
 
390 390
 		// set default if empty
391
-		if( $label_number === '' ){
391
+		if ($label_number === '') {
392 392
 			$label_number = 2;
393 393
 		}
394 394
 
395
-		if ( $label_number && $label_number < 12 && $label_number > 0 ) {
396
-			if ( $type == 'label' ) {
397
-				$class = 'col-sm-' . absint( $label_number );
398
-			} elseif ( $type == 'input' ) {
399
-				$class = 'col-sm-' . ( 12 - absint( $label_number ) );
395
+		if ($label_number && $label_number < 12 && $label_number > 0) {
396
+			if ($type == 'label') {
397
+				$class = 'col-sm-' . absint($label_number);
398
+			} elseif ($type == 'input') {
399
+				$class = 'col-sm-' . (12 - absint($label_number));
400 400
 			}
401 401
 		}
402 402
 
@@ -415,8 +415,8 @@  discard block
 block discarded – undo
415 415
 	 * @param string $str String to sanitize.
416 416
 	 * @return string Sanitized string.
417 417
 	 */
418
-	public static function sanitize_textarea_field( $str ) {
419
-		$filtered = self::_sanitize_text_fields( $str, true );
418
+	public static function sanitize_textarea_field($str) {
419
+		$filtered = self::_sanitize_text_fields($str, true);
420 420
 
421 421
 		/**
422 422
 		 * Filters a sanitized textarea field string.
@@ -426,7 +426,7 @@  discard block
 block discarded – undo
426 426
 		 * @param string $filtered The sanitized string.
427 427
 		 * @param string $str      The string prior to being sanitized.
428 428
 		 */
429
-		return apply_filters( 'sanitize_textarea_field', $filtered, $str );
429
+		return apply_filters('sanitize_textarea_field', $filtered, $str);
430 430
 	}
431 431
 
432 432
 	/**
@@ -439,40 +439,40 @@  discard block
 block discarded – undo
439 439
 	 * @param bool   $keep_newlines Optional. Whether to keep newlines. Default: false.
440 440
 	 * @return string Sanitized string.
441 441
 	 */
442
-	public static function _sanitize_text_fields( $str, $keep_newlines = false ) {
443
-		if ( is_object( $str ) || is_array( $str ) ) {
442
+	public static function _sanitize_text_fields($str, $keep_newlines = false) {
443
+		if (is_object($str) || is_array($str)) {
444 444
 			return '';
445 445
 		}
446 446
 
447 447
 		$str = (string) $str;
448 448
 
449
-		$filtered = wp_check_invalid_utf8( $str );
449
+		$filtered = wp_check_invalid_utf8($str);
450 450
 
451
-		if ( strpos( $filtered, '<' ) !== false ) {
452
-			$filtered = wp_pre_kses_less_than( $filtered );
451
+		if (strpos($filtered, '<') !== false) {
452
+			$filtered = wp_pre_kses_less_than($filtered);
453 453
 			// This will strip extra whitespace for us.
454
-			$filtered = wp_strip_all_tags( $filtered, false );
454
+			$filtered = wp_strip_all_tags($filtered, false);
455 455
 
456 456
 			// Use HTML entities in a special case to make sure no later
457 457
 			// newline stripping stage could lead to a functional tag.
458
-			$filtered = str_replace( "<\n", "&lt;\n", $filtered );
458
+			$filtered = str_replace("<\n", "&lt;\n", $filtered);
459 459
 		}
460 460
 
461
-		if ( ! $keep_newlines ) {
462
-			$filtered = preg_replace( '/[\r\n\t ]+/', ' ', $filtered );
461
+		if (!$keep_newlines) {
462
+			$filtered = preg_replace('/[\r\n\t ]+/', ' ', $filtered);
463 463
 		}
464
-		$filtered = trim( $filtered );
464
+		$filtered = trim($filtered);
465 465
 
466 466
 		$found = false;
467
-		while ( preg_match( '`[^%](%[a-f0-9]{2})`i', $filtered, $match ) ) {
468
-			$filtered = str_replace( $match[1], '', $filtered );
467
+		while (preg_match('`[^%](%[a-f0-9]{2})`i', $filtered, $match)) {
468
+			$filtered = str_replace($match[1], '', $filtered);
469 469
 			$found = true;
470 470
 		}
471
-		unset( $match );
471
+		unset($match);
472 472
 
473
-		if ( $found ) {
473
+		if ($found) {
474 474
 			// Strip out the whitespace that may now exist after removing the octets.
475
-			$filtered = trim( preg_replace( '` +`', ' ', $filtered ) );
475
+			$filtered = trim(preg_replace('` +`', ' ', $filtered));
476 476
 		}
477 477
 
478 478
 		return $filtered;
Please login to merge, or discard this patch.
Switch Indentation   +266 added lines, -266 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,9 +9,9 @@  discard block
 block discarded – undo
9 9
  *
10 10
  * @since 1.0.0
11 11
  */
12
-class AUI_Component_Helper {
12
+    class AUI_Component_Helper {
13 13
 
14
-	/**
14
+	    /**
15 15
 	 * A component helper for generating a input name.
16 16
 	 *
17 17
 	 * @param $text
@@ -19,152 +19,152 @@  discard block
 block discarded – undo
19 19
 	 *
20 20
 	 * @return string
21 21
 	 */
22
-	public static function name( $text, $multiple = false ) {
23
-		$output = '';
22
+	    public static function name( $text, $multiple = false ) {
23
+		    $output = '';
24 24
 
25
-		if ( $text ) {
26
-			$is_multiple = strpos( $text, '[' ) === false && $multiple ? '[]' : '';
27
-			$output      = ' name="' . esc_attr( $text ) . $is_multiple . '" ';
28
-		}
25
+		    if ( $text ) {
26
+			    $is_multiple = strpos( $text, '[' ) === false && $multiple ? '[]' : '';
27
+			    $output      = ' name="' . esc_attr( $text ) . $is_multiple . '" ';
28
+		    }
29 29
 
30
-		return $output;
31
-	}
30
+		    return $output;
31
+	    }
32 32
 
33
-	/**
33
+	    /**
34 34
 	 * A component helper for generating a item id.
35 35
 	 *
36 36
 	 * @param $text string The text to be used as the value.
37 37
 	 *
38 38
 	 * @return string The sanitized item.
39 39
 	 */
40
-	public static function id( $text ) {
41
-		$output = '';
40
+	    public static function id( $text ) {
41
+		    $output = '';
42 42
 
43
-		if ( $text ) {
44
-			$output = ' id="' . sanitize_html_class( $text ) . '" ';
45
-		}
43
+		    if ( $text ) {
44
+			    $output = ' id="' . sanitize_html_class( $text ) . '" ';
45
+		    }
46 46
 
47
-		return $output;
48
-	}
47
+		    return $output;
48
+	    }
49 49
 
50
-	/**
50
+	    /**
51 51
 	 * A component helper for generating a item title.
52 52
 	 *
53 53
 	 * @param $text string The text to be used as the value.
54 54
 	 *
55 55
 	 * @return string The sanitized item.
56 56
 	 */
57
-	public static function title( $text ) {
58
-		$output = '';
57
+	    public static function title( $text ) {
58
+		    $output = '';
59 59
 
60
-		if ( $text ) {
61
-			$output = ' title="' . esc_attr( $text ) . '" ';
62
-		}
60
+		    if ( $text ) {
61
+			    $output = ' title="' . esc_attr( $text ) . '" ';
62
+		    }
63 63
 
64
-		return $output;
65
-	}
64
+		    return $output;
65
+	    }
66 66
 
67
-	/**
67
+	    /**
68 68
 	 * A component helper for generating a item value.
69 69
 	 *
70 70
 	 * @param $text string The text to be used as the value.
71 71
 	 *
72 72
 	 * @return string The sanitized item.
73 73
 	 */
74
-	public static function value( $text ) {
75
-		$output = '';
74
+	    public static function value( $text ) {
75
+		    $output = '';
76 76
 
77
-		if ( $text !== null && $text !== false ) {
78
-			$output = ' value="' . esc_attr( wp_unslash( $text ) ) . '" ';
79
-		}
77
+		    if ( $text !== null && $text !== false ) {
78
+			    $output = ' value="' . esc_attr( wp_unslash( $text ) ) . '" ';
79
+		    }
80 80
 
81
-		return $output;
82
-	}
81
+		    return $output;
82
+	    }
83 83
 
84
-	/**
84
+	    /**
85 85
 	 * A component helper for generating a item class attribute.
86 86
 	 *
87 87
 	 * @param $text string The text to be used as the value.
88 88
 	 *
89 89
 	 * @return string The sanitized item.
90 90
 	 */
91
-	public static function class_attr( $text ) {
92
-		$output = '';
91
+	    public static function class_attr( $text ) {
92
+		    $output = '';
93 93
 
94
-		if ( $text ) {
95
-			$classes = self::esc_classes( $text );
96
-			if ( ! empty( $classes ) ) {
97
-				$output = ' class="' . $classes . '" ';
98
-			}
99
-		}
94
+		    if ( $text ) {
95
+			    $classes = self::esc_classes( $text );
96
+			    if ( ! empty( $classes ) ) {
97
+				    $output = ' class="' . $classes . '" ';
98
+			    }
99
+		    }
100 100
 
101
-		return $output;
102
-	}
101
+		    return $output;
102
+	    }
103 103
 
104
-	/**
104
+	    /**
105 105
 	 * Escape a string of classes.
106 106
 	 *
107 107
 	 * @param $text
108 108
 	 *
109 109
 	 * @return string
110 110
 	 */
111
-	public static function esc_classes( $text ) {
112
-		$output = '';
111
+	    public static function esc_classes( $text ) {
112
+		    $output = '';
113 113
 
114
-		if ( $text ) {
115
-			$classes = explode( " ", $text );
116
-			$classes = array_map( "trim", $classes );
117
-			$classes = array_map( "sanitize_html_class", $classes );
118
-			if ( ! empty( $classes ) ) {
119
-				$output = implode( " ", $classes );
120
-			}
121
-		}
114
+		    if ( $text ) {
115
+			    $classes = explode( " ", $text );
116
+			    $classes = array_map( "trim", $classes );
117
+			    $classes = array_map( "sanitize_html_class", $classes );
118
+			    if ( ! empty( $classes ) ) {
119
+				    $output = implode( " ", $classes );
120
+			    }
121
+		    }
122 122
 
123
-		return $output;
123
+		    return $output;
124 124
 
125
-	}
125
+	    }
126 126
 
127
-	/**
127
+	    /**
128 128
 	 * @param $args
129 129
 	 *
130 130
 	 * @return string
131 131
 	 */
132
-	public static function data_attributes( $args ) {
133
-		$output = '';
132
+	    public static function data_attributes( $args ) {
133
+		    $output = '';
134 134
 
135
-		if ( ! empty( $args ) ) {
135
+		    if ( ! empty( $args ) ) {
136 136
 
137
-			foreach ( $args as $key => $val ) {
138
-				if ( substr( $key, 0, 5 ) === "data-" ) {
139
-					$output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
140
-				}
141
-			}
142
-		}
137
+			    foreach ( $args as $key => $val ) {
138
+				    if ( substr( $key, 0, 5 ) === "data-" ) {
139
+					    $output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
140
+				    }
141
+			    }
142
+		    }
143 143
 
144
-		return $output;
145
-	}
144
+		    return $output;
145
+	    }
146 146
 
147
-	/**
147
+	    /**
148 148
 	 * @param $args
149 149
 	 *
150 150
 	 * @return string
151 151
 	 */
152
-	public static function aria_attributes( $args ) {
153
-		$output = '';
152
+	    public static function aria_attributes( $args ) {
153
+		    $output = '';
154 154
 
155
-		if ( ! empty( $args ) ) {
155
+		    if ( ! empty( $args ) ) {
156 156
 
157
-			foreach ( $args as $key => $val ) {
158
-				if ( substr( $key, 0, 5 ) === "aria-" ) {
159
-					$output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
160
-				}
161
-			}
162
-		}
157
+			    foreach ( $args as $key => $val ) {
158
+				    if ( substr( $key, 0, 5 ) === "aria-" ) {
159
+					    $output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
160
+				    }
161
+			    }
162
+		    }
163 163
 
164
-		return $output;
165
-	}
164
+		    return $output;
165
+	    }
166 166
 
167
-	/**
167
+	    /**
168 168
 	 * Build a font awesome icon from a class.
169 169
 	 *
170 170
 	 * @param $class
@@ -173,91 +173,91 @@  discard block
 block discarded – undo
173 173
 	 *
174 174
 	 * @return string
175 175
 	 */
176
-	public static function icon( $class, $space_after = false, $extra_attributes = array() ) {
177
-		$output = '';
178
-
179
-		if ( $class ) {
180
-			$classes = self::esc_classes( $class );
181
-			if ( ! empty( $classes ) ) {
182
-				$output = '<i class="' . $classes . '" ';
183
-				// extra attributes
184
-				if ( ! empty( $extra_attributes ) ) {
185
-					$output .= AUI_Component_Helper::extra_attributes( $extra_attributes );
186
-				}
187
-				$output .= '></i>';
188
-				if ( $space_after ) {
189
-					$output .= " ";
190
-				}
191
-			}
192
-		}
193
-
194
-		return $output;
195
-	}
196
-
197
-	/**
176
+	    public static function icon( $class, $space_after = false, $extra_attributes = array() ) {
177
+		    $output = '';
178
+
179
+		    if ( $class ) {
180
+			    $classes = self::esc_classes( $class );
181
+			    if ( ! empty( $classes ) ) {
182
+				    $output = '<i class="' . $classes . '" ';
183
+				    // extra attributes
184
+				    if ( ! empty( $extra_attributes ) ) {
185
+					    $output .= AUI_Component_Helper::extra_attributes( $extra_attributes );
186
+				    }
187
+				    $output .= '></i>';
188
+				    if ( $space_after ) {
189
+					    $output .= " ";
190
+				    }
191
+			    }
192
+		    }
193
+
194
+		    return $output;
195
+	    }
196
+
197
+	    /**
198 198
 	 * @param $args
199 199
 	 *
200 200
 	 * @return string
201 201
 	 */
202
-	public static function extra_attributes( $args ) {
203
-		$output = '';
202
+	    public static function extra_attributes( $args ) {
203
+		    $output = '';
204 204
 
205
-		if ( ! empty( $args ) ) {
205
+		    if ( ! empty( $args ) ) {
206 206
 
207
-			if ( is_array( $args ) ) {
208
-				foreach ( $args as $key => $val ) {
209
-					$output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
210
-				}
211
-			} else {
212
-				$output .= ' ' . $args . ' ';
213
-			}
207
+			    if ( is_array( $args ) ) {
208
+				    foreach ( $args as $key => $val ) {
209
+					    $output .= ' ' . sanitize_html_class( $key ) . '="' . esc_attr( $val ) . '" ';
210
+				    }
211
+			    } else {
212
+				    $output .= ' ' . $args . ' ';
213
+			    }
214 214
 
215
-		}
215
+		    }
216 216
 
217
-		return $output;
218
-	}
217
+		    return $output;
218
+	    }
219 219
 
220
-	/**
220
+	    /**
221 221
 	 * @param $args
222 222
 	 *
223 223
 	 * @return string
224 224
 	 */
225
-	public static function help_text( $text ) {
226
-		$output = '';
225
+	    public static function help_text( $text ) {
226
+		    $output = '';
227 227
 
228
-		if ( $text ) {
229
-			$output .= '<small class="form-text text-muted d-block">' . wp_kses_post( $text ) . '</small>';
230
-		}
228
+		    if ( $text ) {
229
+			    $output .= '<small class="form-text text-muted d-block">' . wp_kses_post( $text ) . '</small>';
230
+		    }
231 231
 
232 232
 
233
-		return $output;
234
-	}
233
+		    return $output;
234
+	    }
235 235
 
236
-	/**
236
+	    /**
237 237
 	 * Replace element require context with JS.
238 238
 	 *
239 239
 	 * @param $input
240 240
 	 *
241 241
 	 * @return string|void
242 242
 	 */
243
-	public static function element_require( $input ) {
243
+	    public static function element_require( $input ) {
244 244
 
245
-		$input = str_replace( "'", '"', $input );// we only want double quotes
245
+		    $input = str_replace( "'", '"', $input );// we only want double quotes
246 246
 
247
-		$output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array(
248
-			"jQuery(form).find('[data-argument=\"",
249
-			"\"]').find('input,select,textarea').val()",
250
-			"\"]').find('input:checked').val()",
251
-		), $input ) );
247
+		    $output = esc_attr( str_replace( array( "[%", "%]", "%:checked]" ), array(
248
+			    "jQuery(form).find('[data-argument=\"",
249
+			    "\"]').find('input,select,textarea').val()",
250
+			    "\"]').find('input:checked').val()",
251
+		    ), $input ) );
252 252
 
253
-		if ( $output ) {
254
-			$output = ' data-element-require="' . $output . '" ';
255
-		}
253
+		    if ( $output ) {
254
+			    $output = ' data-element-require="' . $output . '" ';
255
+		    }
256 256
 
257
-		return $output;
258
-	}
257
+		    return $output;
258
+	    }
259 259
 
260
-	/**
260
+	    /**
261 261
 	 * Navigates through an array, object, or scalar, and removes slashes from the values.
262 262
 	 *
263 263
 	 * @since 0.1.41
@@ -267,24 +267,24 @@  discard block
 block discarded – undo
267 267
 	 *
268 268
 	 * @return mixed Stripped value.
269 269
 	 */
270
-	public static function sanitize_html_field( $value, $input = array() ) {
271
-		$original = $value;
272
-
273
-		if ( is_array( $value ) ) {
274
-			foreach ( $value as $index => $item ) {
275
-				$value[ $index ] = self::_sanitize_html_field( $value, $input );
276
-			}
277
-		} elseif ( is_object( $value ) ) {
278
-			$object_vars = get_object_vars( $value );
279
-
280
-			foreach ( $object_vars as $property_name => $property_value ) {
281
-				$value->$property_name = self::_sanitize_html_field( $property_value, $input );
282
-			}
283
-		} else {
284
-			$value = self::_sanitize_html_field( $value, $input );
285
-		}
286
-
287
-		/**
270
+	    public static function sanitize_html_field( $value, $input = array() ) {
271
+		    $original = $value;
272
+
273
+		    if ( is_array( $value ) ) {
274
+			    foreach ( $value as $index => $item ) {
275
+				    $value[ $index ] = self::_sanitize_html_field( $value, $input );
276
+			    }
277
+		    } elseif ( is_object( $value ) ) {
278
+			    $object_vars = get_object_vars( $value );
279
+
280
+			    foreach ( $object_vars as $property_name => $property_value ) {
281
+				    $value->$property_name = self::_sanitize_html_field( $property_value, $input );
282
+			    }
283
+		    } else {
284
+			    $value = self::_sanitize_html_field( $value, $input );
285
+		    }
286
+
287
+		    /**
288 288
 		 * Filters content and keeps only allowable HTML elements.
289 289
 		 *
290 290
 		 * @since 0.1.41
@@ -293,10 +293,10 @@  discard block
 block discarded – undo
293 293
 		 * @param string|array $value Original content without filter.
294 294
 		 * @param array $input Input Field.
295 295
 		 */
296
-		return apply_filters( 'ayecode_ui_sanitize_html_field', $value, $original, $input );
297
-	}
296
+		    return apply_filters( 'ayecode_ui_sanitize_html_field', $value, $original, $input );
297
+	    }
298 298
 
299
-	/**
299
+	    /**
300 300
 	 * Filters content and keeps only allowable HTML elements.
301 301
 	 *
302 302
 	 * This function makes sure that only the allowed HTML element names, attribute
@@ -316,25 +316,25 @@  discard block
 block discarded – undo
316 316
 	 *
317 317
 	 * @return string Filtered content with only allowed HTML elements.
318 318
 	 */
319
-	public static function _sanitize_html_field( $value, $input = array() ) {
320
-		if ( $value === '' ) {
321
-			return $value;
322
-		}
319
+	    public static function _sanitize_html_field( $value, $input = array() ) {
320
+		    if ( $value === '' ) {
321
+			    return $value;
322
+		    }
323 323
 
324
-		$allowed_html = self::kses_allowed_html( 'post', $input );
324
+		    $allowed_html = self::kses_allowed_html( 'post', $input );
325 325
 
326
-		if ( ! is_array( $allowed_html ) ) {
327
-			$allowed_html = wp_kses_allowed_html( 'post' );
328
-		}
326
+		    if ( ! is_array( $allowed_html ) ) {
327
+			    $allowed_html = wp_kses_allowed_html( 'post' );
328
+		    }
329 329
 
330
-		$filtered = trim( wp_unslash( $value ) );
331
-		$filtered = wp_kses( $filtered, $allowed_html );
332
-		$filtered = balanceTags( $filtered ); // Balances tags
330
+		    $filtered = trim( wp_unslash( $value ) );
331
+		    $filtered = wp_kses( $filtered, $allowed_html );
332
+		    $filtered = balanceTags( $filtered ); // Balances tags
333 333
 
334
-		return $filtered;
335
-	}
334
+		    return $filtered;
335
+	    }
336 336
 
337
-	/**
337
+	    /**
338 338
 	 * Returns an array of allowed HTML tags and attributes for a given context.
339 339
 	 *
340 340
 	 * @since 0.1.41
@@ -346,32 +346,32 @@  discard block
 block discarded – undo
346 346
 	 *
347 347
 	 * @return array Array of allowed HTML tags and their allowed attributes.
348 348
 	 */
349
-	public static function kses_allowed_html( $context = 'post', $input = array() ) {
350
-		$allowed_html = wp_kses_allowed_html( $context );
351
-
352
-		if ( is_array( $allowed_html ) ) {
353
-			// <iframe>
354
-			if ( ! isset( $allowed_html['iframe'] ) && $context == 'post' ) {
355
-				$allowed_html['iframe'] = array(
356
-					'class'           => true,
357
-					'id'              => true,
358
-					'src'             => true,
359
-					'width'           => true,
360
-					'height'          => true,
361
-					'frameborder'     => true,
362
-					'marginwidth'     => true,
363
-					'marginheight'    => true,
364
-					'scrolling'       => true,
365
-					'style'           => true,
366
-					'title'           => true,
367
-					'allow'           => true,
368
-					'allowfullscreen' => true,
369
-					'data-*'          => true,
370
-				);
371
-			}
372
-		}
373
-
374
-		/**
349
+	    public static function kses_allowed_html( $context = 'post', $input = array() ) {
350
+		    $allowed_html = wp_kses_allowed_html( $context );
351
+
352
+		    if ( is_array( $allowed_html ) ) {
353
+			    // <iframe>
354
+			    if ( ! isset( $allowed_html['iframe'] ) && $context == 'post' ) {
355
+				    $allowed_html['iframe'] = array(
356
+					    'class'           => true,
357
+					    'id'              => true,
358
+					    'src'             => true,
359
+					    'width'           => true,
360
+					    'height'          => true,
361
+					    'frameborder'     => true,
362
+					    'marginwidth'     => true,
363
+					    'marginheight'    => true,
364
+					    'scrolling'       => true,
365
+					    'style'           => true,
366
+					    'title'           => true,
367
+					    'allow'           => true,
368
+					    'allowfullscreen' => true,
369
+					    'data-*'          => true,
370
+				    );
371
+			    }
372
+		    }
373
+
374
+		    /**
375 375
 		 * Filters the allowed html tags.
376 376
 		 *
377 377
 		 * @since 0.1.41
@@ -380,30 +380,30 @@  discard block
 block discarded – undo
380 380
 		 * @param @param string|array $context The context for which to retrieve tags.
381 381
 		 * @param array $input Input field.
382 382
 		 */
383
-		return apply_filters( 'ayecode_ui_kses_allowed_html', $allowed_html, $context, $input );
384
-	}
383
+		    return apply_filters( 'ayecode_ui_kses_allowed_html', $allowed_html, $context, $input );
384
+	    }
385 385
 
386
-	public static function get_column_class( $label_number = 2, $type = 'label' ) {
386
+	    public static function get_column_class( $label_number = 2, $type = 'label' ) {
387 387
 
388
-		$class = '';
388
+		    $class = '';
389 389
 
390
-		// set default if empty
391
-		if( $label_number === '' ){
392
-			$label_number = 2;
393
-		}
390
+		    // set default if empty
391
+		    if( $label_number === '' ){
392
+			    $label_number = 2;
393
+		    }
394 394
 
395
-		if ( $label_number && $label_number < 12 && $label_number > 0 ) {
396
-			if ( $type == 'label' ) {
397
-				$class = 'col-sm-' . absint( $label_number );
398
-			} elseif ( $type == 'input' ) {
399
-				$class = 'col-sm-' . ( 12 - absint( $label_number ) );
400
-			}
401
-		}
395
+		    if ( $label_number && $label_number < 12 && $label_number > 0 ) {
396
+			    if ( $type == 'label' ) {
397
+				    $class = 'col-sm-' . absint( $label_number );
398
+			    } elseif ( $type == 'input' ) {
399
+				    $class = 'col-sm-' . ( 12 - absint( $label_number ) );
400
+			    }
401
+		    }
402 402
 
403
-		return $class;
404
-	}
403
+		    return $class;
404
+	    }
405 405
 
406
-	/**
406
+	    /**
407 407
 	 * Sanitizes a multiline string from user input or from the database.
408 408
 	 *
409 409
 	 * Emulate the WP native sanitize_textarea_field function in a %%variable%% safe way.
@@ -415,10 +415,10 @@  discard block
 block discarded – undo
415 415
 	 * @param string $str String to sanitize.
416 416
 	 * @return string Sanitized string.
417 417
 	 */
418
-	public static function sanitize_textarea_field( $str ) {
419
-		$filtered = self::_sanitize_text_fields( $str, true );
418
+	    public static function sanitize_textarea_field( $str ) {
419
+		    $filtered = self::_sanitize_text_fields( $str, true );
420 420
 
421
-		/**
421
+		    /**
422 422
 		 * Filters a sanitized textarea field string.
423 423
 		 *
424 424
 		 * @see https://core.trac.wordpress.org/browser/trunk/src/wp-includes/formatting.php
@@ -426,10 +426,10 @@  discard block
 block discarded – undo
426 426
 		 * @param string $filtered The sanitized string.
427 427
 		 * @param string $str      The string prior to being sanitized.
428 428
 		 */
429
-		return apply_filters( 'sanitize_textarea_field', $filtered, $str );
430
-	}
429
+		    return apply_filters( 'sanitize_textarea_field', $filtered, $str );
430
+	    }
431 431
 
432
-	/**
432
+	    /**
433 433
 	 * Internal helper function to sanitize a string from user input or from the db.
434 434
 	 *
435 435
 	 * @since 0.1.66
@@ -439,42 +439,42 @@  discard block
 block discarded – undo
439 439
 	 * @param bool   $keep_newlines Optional. Whether to keep newlines. Default: false.
440 440
 	 * @return string Sanitized string.
441 441
 	 */
442
-	public static function _sanitize_text_fields( $str, $keep_newlines = false ) {
443
-		if ( is_object( $str ) || is_array( $str ) ) {
444
-			return '';
445
-		}
446
-
447
-		$str = (string) $str;
448
-
449
-		$filtered = wp_check_invalid_utf8( $str );
450
-
451
-		if ( strpos( $filtered, '<' ) !== false ) {
452
-			$filtered = wp_pre_kses_less_than( $filtered );
453
-			// This will strip extra whitespace for us.
454
-			$filtered = wp_strip_all_tags( $filtered, false );
455
-
456
-			// Use HTML entities in a special case to make sure no later
457
-			// newline stripping stage could lead to a functional tag.
458
-			$filtered = str_replace( "<\n", "&lt;\n", $filtered );
459
-		}
460
-
461
-		if ( ! $keep_newlines ) {
462
-			$filtered = preg_replace( '/[\r\n\t ]+/', ' ', $filtered );
463
-		}
464
-		$filtered = trim( $filtered );
465
-
466
-		$found = false;
467
-		while ( preg_match( '`[^%](%[a-f0-9]{2})`i', $filtered, $match ) ) {
468
-			$filtered = str_replace( $match[1], '', $filtered );
469
-			$found = true;
470
-		}
471
-		unset( $match );
472
-
473
-		if ( $found ) {
474
-			// Strip out the whitespace that may now exist after removing the octets.
475
-			$filtered = trim( preg_replace( '` +`', ' ', $filtered ) );
476
-		}
477
-
478
-		return $filtered;
479
-	}
442
+	    public static function _sanitize_text_fields( $str, $keep_newlines = false ) {
443
+		    if ( is_object( $str ) || is_array( $str ) ) {
444
+			    return '';
445
+		    }
446
+
447
+		    $str = (string) $str;
448
+
449
+		    $filtered = wp_check_invalid_utf8( $str );
450
+
451
+		    if ( strpos( $filtered, '<' ) !== false ) {
452
+			    $filtered = wp_pre_kses_less_than( $filtered );
453
+			    // This will strip extra whitespace for us.
454
+			    $filtered = wp_strip_all_tags( $filtered, false );
455
+
456
+			    // Use HTML entities in a special case to make sure no later
457
+			    // newline stripping stage could lead to a functional tag.
458
+			    $filtered = str_replace( "<\n", "&lt;\n", $filtered );
459
+		    }
460
+
461
+		    if ( ! $keep_newlines ) {
462
+			    $filtered = preg_replace( '/[\r\n\t ]+/', ' ', $filtered );
463
+		    }
464
+		    $filtered = trim( $filtered );
465
+
466
+		    $found = false;
467
+		    while ( preg_match( '`[^%](%[a-f0-9]{2})`i', $filtered, $match ) ) {
468
+			    $filtered = str_replace( $match[1], '', $filtered );
469
+			    $found = true;
470
+		    }
471
+		    unset( $match );
472
+
473
+		    if ( $found ) {
474
+			    // Strip out the whitespace that may now exist after removing the octets.
475
+			    $filtered = trim( preg_replace( '` +`', ' ', $filtered ) );
476
+		    }
477
+
478
+		    return $filtered;
479
+	    }
480 480
 }
481 481
\ 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   +1268 added lines, -1268 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,1291 +11,1291 @@  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
-			} elseif ( $type == 'iconpicker' ) {
141
-				$type = 'text';
142
-				//$args['class'] .= ' aui-flatpickr bg-initial ';
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
+            } elseif ( $type == 'iconpicker' ) {
141
+                $type = 'text';
142
+                //$args['class'] .= ' aui-flatpickr bg-initial ';
143 143
 //				$args['class'] .= ' bg-initial ';
144 144
 
145
-				$args['extra_attributes']['data-aui-init'] = 'iconpicker';
146
-				$args['extra_attributes']['data-placement'] = 'bottomRight';
145
+                $args['extra_attributes']['data-aui-init'] = 'iconpicker';
146
+                $args['extra_attributes']['data-placement'] = 'bottomRight';
147 147
 
148
-				$args['input_group_right'] = '<span class="input-group-addon input-group-text c-pointer"></span>';
148
+                $args['input_group_right'] = '<span class="input-group-addon input-group-text c-pointer"></span>';
149 149
 //				$args['input_group_right_inside'] = true;
150
-				// enqueue the script
151
-				$aui_settings = AyeCode_UI_Settings::instance();
152
-				$aui_settings->enqueue_iconpicker();
153
-			}
154
-
155
-			if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
156
-				$output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
157
-			}
158
-
159
-			// allow clear icon
160
-			if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
161
-				$font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
162
-				$args['input_group_right_inside'] = true;
163
-				$align_class = $aui_bs5 ? ' h-100 py-0' : '';
164
-				$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
-			}
166
-
167
-			// open/type
168
-			$output .= '<input type="' . $type . '" ';
169
-
170
-			// name
171
-			if ( ! empty( $args['name'] ) ) {
172
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
173
-			}
174
-
175
-			// id
176
-			if ( ! empty( $args['id'] ) ) {
177
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
178
-			}
179
-
180
-			// placeholder
181
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
182
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
183
-			}
184
-
185
-			// title
186
-			if ( ! empty( $args['title'] ) ) {
187
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
188
-			}
189
-
190
-			// value
191
-			if ( ! empty( $args['value'] ) ) {
192
-				$output .= AUI_Component_Helper::value( $args['value'] );
193
-			}
194
-
195
-			// checked, for radio and checkboxes
196
-			if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
197
-				$output .= ' checked ';
198
-			}
199
-
200
-			// validation text
201
-			if ( ! empty( $args['validation_text'] ) ) {
202
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
203
-				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
204
-			}
205
-
206
-			// validation_pattern
207
-			if ( ! empty( $args['validation_pattern'] ) ) {
208
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
209
-			}
210
-
211
-			// step (for numbers)
212
-			if ( ! empty( $args['step'] ) ) {
213
-				$output .= ' step="' . $args['step'] . '" ';
214
-			}
215
-
216
-			// required
217
-			if ( ! empty( $args['required'] ) ) {
218
-				$output .= ' required ';
219
-			}
220
-
221
-			// class
222
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
223
-			$output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
224
-
225
-			// data-attributes
226
-			$output .= AUI_Component_Helper::data_attributes( $args );
227
-
228
-			// extra attributes
229
-			if ( ! empty( $args['extra_attributes'] ) ) {
230
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
231
-			}
232
-
233
-			// close
234
-			$output .= ' >';
235
-
236
-			// help text
237
-			if ( ! empty( $args['help_text'] ) ) {
238
-				$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
239
-			}
240
-
241
-			// label
242
-			if ( ! empty( $args['label'] ) ) {
243
-				$label_base_class = '';
244
-				if ( $type == 'file' ) {
245
-					$label_base_class = ' custom-file-label';
246
-				} elseif ( $type == 'checkbox' ) {
247
-					if ( ! empty( $args['label_force_left'] ) ) {
248
-						$label_args['title'] = wp_kses_post( $args['help_text'] );
249
-						$help_text = '';
250
-						//$label_args['class'] .= ' d-inline ';
251
-						$args['wrap_class'] .= ' align-items-center ';
252
-					}else{
253
-
254
-					}
255
-
256
-					$label_base_class = $aui_bs5 ? ' form-check-label' : ' custom-control-label';
257
-				}
258
-				$label_args['class'] .= $label_base_class;
259
-				$temp_label_args = $label_args;
260
-				if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
261
-				$label = self::label( $temp_label_args, $type );
262
-			}
263
-
264
-
265
-
266
-
267
-			// set help text in the correct position
268
-			if ( $label_after ) {
269
-				$output .= $label . $help_text;
270
-			}
271
-
272
-			// some input types need a separate wrap
273
-			if ( $type == 'file' ) {
274
-				$output = self::wrap( array(
275
-					'content' => $output,
276
-					'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
277
-				) );
278
-			} elseif ( $type == 'checkbox' ) {
279
-
280
-				$label_args['title'] = $args['label'];
281
-				$label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
282
-				$label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
283
-				$switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
284
-				if ( $aui_bs5 ) {
285
-					$wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
286
-				}else{
287
-					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
288
-				}
289
-				if ( ! empty( $args['label_force_left'] ) ) {
290
-					$wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
291
-					$label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
292
-				}
293
-				$output     = self::wrap( array(
294
-					'content' => $output,
295
-					'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
296
-				) );
297
-
298
-				if ( $args['label_type'] == 'horizontal' ) {
299
-					$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
300
-					$output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
301
-				}
302
-			} elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
303
-
304
-
305
-				// allow password field to toggle view
306
-				$args['input_group_right'] = '<span class="input-group-text c-pointer px-3" 
150
+                // enqueue the script
151
+                $aui_settings = AyeCode_UI_Settings::instance();
152
+                $aui_settings->enqueue_iconpicker();
153
+            }
154
+
155
+            if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
156
+                $output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
157
+            }
158
+
159
+            // allow clear icon
160
+            if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
161
+                $font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
162
+                $args['input_group_right_inside'] = true;
163
+                $align_class = $aui_bs5 ? ' h-100 py-0' : '';
164
+                $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
+            }
166
+
167
+            // open/type
168
+            $output .= '<input type="' . $type . '" ';
169
+
170
+            // name
171
+            if ( ! empty( $args['name'] ) ) {
172
+                $output .= ' name="' . esc_attr( $args['name'] ) . '" ';
173
+            }
174
+
175
+            // id
176
+            if ( ! empty( $args['id'] ) ) {
177
+                $output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
178
+            }
179
+
180
+            // placeholder
181
+            if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
182
+                $output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
183
+            }
184
+
185
+            // title
186
+            if ( ! empty( $args['title'] ) ) {
187
+                $output .= ' title="' . esc_attr( $args['title'] ) . '" ';
188
+            }
189
+
190
+            // value
191
+            if ( ! empty( $args['value'] ) ) {
192
+                $output .= AUI_Component_Helper::value( $args['value'] );
193
+            }
194
+
195
+            // checked, for radio and checkboxes
196
+            if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
197
+                $output .= ' checked ';
198
+            }
199
+
200
+            // validation text
201
+            if ( ! empty( $args['validation_text'] ) ) {
202
+                $output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
203
+                $output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
204
+            }
205
+
206
+            // validation_pattern
207
+            if ( ! empty( $args['validation_pattern'] ) ) {
208
+                $output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
209
+            }
210
+
211
+            // step (for numbers)
212
+            if ( ! empty( $args['step'] ) ) {
213
+                $output .= ' step="' . $args['step'] . '" ';
214
+            }
215
+
216
+            // required
217
+            if ( ! empty( $args['required'] ) ) {
218
+                $output .= ' required ';
219
+            }
220
+
221
+            // class
222
+            $class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
223
+            $output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
224
+
225
+            // data-attributes
226
+            $output .= AUI_Component_Helper::data_attributes( $args );
227
+
228
+            // extra attributes
229
+            if ( ! empty( $args['extra_attributes'] ) ) {
230
+                $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
231
+            }
232
+
233
+            // close
234
+            $output .= ' >';
235
+
236
+            // help text
237
+            if ( ! empty( $args['help_text'] ) ) {
238
+                $help_text = AUI_Component_Helper::help_text( $args['help_text'] );
239
+            }
240
+
241
+            // label
242
+            if ( ! empty( $args['label'] ) ) {
243
+                $label_base_class = '';
244
+                if ( $type == 'file' ) {
245
+                    $label_base_class = ' custom-file-label';
246
+                } elseif ( $type == 'checkbox' ) {
247
+                    if ( ! empty( $args['label_force_left'] ) ) {
248
+                        $label_args['title'] = wp_kses_post( $args['help_text'] );
249
+                        $help_text = '';
250
+                        //$label_args['class'] .= ' d-inline ';
251
+                        $args['wrap_class'] .= ' align-items-center ';
252
+                    }else{
253
+
254
+                    }
255
+
256
+                    $label_base_class = $aui_bs5 ? ' form-check-label' : ' custom-control-label';
257
+                }
258
+                $label_args['class'] .= $label_base_class;
259
+                $temp_label_args = $label_args;
260
+                if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
261
+                $label = self::label( $temp_label_args, $type );
262
+            }
263
+
264
+
265
+
266
+
267
+            // set help text in the correct position
268
+            if ( $label_after ) {
269
+                $output .= $label . $help_text;
270
+            }
271
+
272
+            // some input types need a separate wrap
273
+            if ( $type == 'file' ) {
274
+                $output = self::wrap( array(
275
+                    'content' => $output,
276
+                    'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
277
+                ) );
278
+            } elseif ( $type == 'checkbox' ) {
279
+
280
+                $label_args['title'] = $args['label'];
281
+                $label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
282
+                $label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
283
+                $switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
284
+                if ( $aui_bs5 ) {
285
+                    $wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
286
+                }else{
287
+                    $wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
288
+                }
289
+                if ( ! empty( $args['label_force_left'] ) ) {
290
+                    $wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
291
+                    $label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
292
+                }
293
+                $output     = self::wrap( array(
294
+                    'content' => $output,
295
+                    'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
296
+                ) );
297
+
298
+                if ( $args['label_type'] == 'horizontal' ) {
299
+                    $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
300
+                    $output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
301
+                }
302
+            } elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
303
+
304
+
305
+                // allow password field to toggle view
306
+                $args['input_group_right'] = '<span class="input-group-text c-pointer px-3" 
307 307
 onclick="var $el = jQuery(this).find(\'i\');$el.toggleClass(\'fa-eye fa-eye-slash\');
308 308
 var $eli = jQuery(this).parent().parent().find(\'input\');
309 309
 if($el.hasClass(\'fa-eye\'))
310 310
 {$eli.attr(\'type\',\'text\');}
311 311
 else{$eli.attr(\'type\',\'password\');}"
312 312
 ><i class="far fa-fw fa-eye-slash"></i></span>';
313
-			}
314
-
315
-			// input group wraps
316
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
317
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
318
-				$group_size = $size == 'lg' ? ' input-group-lg' : '';
319
-				$group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
320
-
321
-				if ( $args['input_group_left'] ) {
322
-					$output = self::wrap( array(
323
-						'content'                 => $output,
324
-						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
325
-						'input_group_left'        => $args['input_group_left'],
326
-						'input_group_left_inside' => $args['input_group_left_inside']
327
-					) );
328
-				}
329
-				if ( $args['input_group_right'] ) {
330
-					$output = self::wrap( array(
331
-						'content'                  => $output,
332
-						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
333
-						'input_group_right'        => $args['input_group_right'],
334
-						'input_group_right_inside' => $args['input_group_right_inside']
335
-					) );
336
-				}
337
-
338
-			}
339
-
340
-			if ( ! $label_after ) {
341
-				$output .= $help_text;
342
-			}
343
-
344
-
345
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
346
-				$output = self::wrap( array(
347
-					'content' => $output,
348
-					'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
349
-				) );
350
-			}
351
-
352
-			if ( ! $label_after ) {
353
-				$output = $label . $output;
354
-			}
355
-
356
-			// wrap
357
-			if ( ! $args['no_wrap'] ) {
358
-				if ( ! empty( $args['form_group_class'] ) ) {
359
-					$fg_class = esc_attr( $args['form_group_class'] );
360
-				}else{
361
-					$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
362
-				}
363
-				$form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
364
-				$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
365
-				$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
366
-				$output           = self::wrap( array(
367
-					'content'         => $output,
368
-					'class'           => $wrap_class,
369
-					'element_require' => $args['element_require'],
370
-					'argument_id'     => $args['id'],
371
-					'wrap_attributes' => $args['wrap_attributes'],
372
-				) );
373
-			}
374
-		}
375
-
376
-		return $output;
377
-	}
378
-
379
-	public static function label( $args = array(), $type = '' ) {
380
-		global $aui_bs5;
381
-		//<label for="exampleInputEmail1">Email address</label>
382
-		$defaults = array(
383
-			'title'      => 'div',
384
-			'for'        => '',
385
-			'class'      => '',
386
-			'label_type' => '', // empty = hidden, top, horizontal
387
-			'label_col'  => '',
388
-		);
389
-
390
-		/**
391
-		 * Parse incoming $args into an array and merge it with $defaults
392
-		 */
393
-		$args   = wp_parse_args( $args, $defaults );
394
-		$output = '';
395
-
396
-		if ( $args['title'] ) {
397
-
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 ' . $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 ){ $class .= ' form-label'; }
411
-
412
-			// open
413
-			$output .= '<label ';
414
-
415
-			// for
416
-			if ( ! empty( $args['for'] ) ) {
417
-				$output .= ' for="' . esc_attr( $args['for'] ) . '" ';
418
-			}
419
-
420
-			// class
421
-			$class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
422
-			$output .= ' class="' . $class . '" ';
423
-
424
-			// close
425
-			$output .= '>';
426
-
427
-
428
-			// title, don't escape fully as can contain html
429
-			if ( ! empty( $args['title'] ) ) {
430
-				$output .= wp_kses_post( $args['title'] );
431
-			}
432
-
433
-			// close wrap
434
-			$output .= '</label>';
435
-
436
-
437
-		}
438
-
439
-
440
-		return $output;
441
-	}
442
-
443
-	/**
444
-	 * Wrap some content in a HTML wrapper.
445
-	 *
446
-	 * @param array $args
447
-	 *
448
-	 * @return string
449
-	 */
450
-	public static function wrap( $args = array() ) {
451
-		global $aui_bs5;
452
-		$defaults = array(
453
-			'type'                     => 'div',
454
-			'class'                    => $aui_bs5 ? 'mb-3' : 'form-group',
455
-			'content'                  => '',
456
-			'input_group_left'         => '',
457
-			'input_group_right'        => '',
458
-			'input_group_left_inside'  => false,
459
-			'input_group_right_inside' => false,
460
-			'element_require'          => '',
461
-			'argument_id'              => '',
462
-			'wrap_attributes'          => array()
463
-		);
464
-
465
-		/**
466
-		 * Parse incoming $args into an array and merge it with $defaults
467
-		 */
468
-		$args   = wp_parse_args( $args, $defaults );
469
-		$output = '';
470
-		if ( $args['type'] ) {
471
-
472
-			// open
473
-			$output .= '<' . sanitize_html_class( $args['type'] );
474
-
475
-			// element require
476
-			if ( ! empty( $args['element_require'] ) ) {
477
-				$output .= AUI_Component_Helper::element_require( $args['element_require'] );
478
-				$args['class'] .= " aui-conditional-field";
479
-			}
480
-
481
-			// argument_id
482
-			if ( ! empty( $args['argument_id'] ) ) {
483
-				$output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
484
-			}
485
-
486
-			// class
487
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
488
-			$output .= ' class="' . $class . '" ';
489
-
490
-			// Attributes
491
-			if ( ! empty( $args['wrap_attributes'] ) ) {
492
-				$output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
493
-			}
494
-
495
-			// close wrap
496
-			$output .= ' >';
497
-
498
-
499
-			// Input group left
500
-			if ( ! empty( $args['input_group_left'] ) ) {
501
-				$position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
502
-				$input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
503
-				$output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
313
+            }
314
+
315
+            // input group wraps
316
+            if ( $args['input_group_left'] || $args['input_group_right'] ) {
317
+                $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
318
+                $group_size = $size == 'lg' ? ' input-group-lg' : '';
319
+                $group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
320
+
321
+                if ( $args['input_group_left'] ) {
322
+                    $output = self::wrap( array(
323
+                        'content'                 => $output,
324
+                        'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
325
+                        'input_group_left'        => $args['input_group_left'],
326
+                        'input_group_left_inside' => $args['input_group_left_inside']
327
+                    ) );
328
+                }
329
+                if ( $args['input_group_right'] ) {
330
+                    $output = self::wrap( array(
331
+                        'content'                  => $output,
332
+                        'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
333
+                        'input_group_right'        => $args['input_group_right'],
334
+                        'input_group_right_inside' => $args['input_group_right_inside']
335
+                    ) );
336
+                }
337
+
338
+            }
339
+
340
+            if ( ! $label_after ) {
341
+                $output .= $help_text;
342
+            }
343
+
344
+
345
+            if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
346
+                $output = self::wrap( array(
347
+                    'content' => $output,
348
+                    'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
349
+                ) );
350
+            }
351
+
352
+            if ( ! $label_after ) {
353
+                $output = $label . $output;
354
+            }
355
+
356
+            // wrap
357
+            if ( ! $args['no_wrap'] ) {
358
+                if ( ! empty( $args['form_group_class'] ) ) {
359
+                    $fg_class = esc_attr( $args['form_group_class'] );
360
+                }else{
361
+                    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
362
+                }
363
+                $form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
364
+                $wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
365
+                $wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
366
+                $output           = self::wrap( array(
367
+                    'content'         => $output,
368
+                    'class'           => $wrap_class,
369
+                    'element_require' => $args['element_require'],
370
+                    'argument_id'     => $args['id'],
371
+                    'wrap_attributes' => $args['wrap_attributes'],
372
+                ) );
373
+            }
374
+        }
375
+
376
+        return $output;
377
+    }
378
+
379
+    public static function label( $args = array(), $type = '' ) {
380
+        global $aui_bs5;
381
+        //<label for="exampleInputEmail1">Email address</label>
382
+        $defaults = array(
383
+            'title'      => 'div',
384
+            'for'        => '',
385
+            'class'      => '',
386
+            'label_type' => '', // empty = hidden, top, horizontal
387
+            'label_col'  => '',
388
+        );
389
+
390
+        /**
391
+         * Parse incoming $args into an array and merge it with $defaults
392
+         */
393
+        $args   = wp_parse_args( $args, $defaults );
394
+        $output = '';
395
+
396
+        if ( $args['title'] ) {
397
+
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 ' . $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 ){ $class .= ' form-label'; }
411
+
412
+            // open
413
+            $output .= '<label ';
414
+
415
+            // for
416
+            if ( ! empty( $args['for'] ) ) {
417
+                $output .= ' for="' . esc_attr( $args['for'] ) . '" ';
418
+            }
419
+
420
+            // class
421
+            $class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
422
+            $output .= ' class="' . $class . '" ';
423
+
424
+            // close
425
+            $output .= '>';
426
+
427
+
428
+            // title, don't escape fully as can contain html
429
+            if ( ! empty( $args['title'] ) ) {
430
+                $output .= wp_kses_post( $args['title'] );
431
+            }
432
+
433
+            // close wrap
434
+            $output .= '</label>';
435
+
436
+
437
+        }
438
+
439
+
440
+        return $output;
441
+    }
442
+
443
+    /**
444
+     * Wrap some content in a HTML wrapper.
445
+     *
446
+     * @param array $args
447
+     *
448
+     * @return string
449
+     */
450
+    public static function wrap( $args = array() ) {
451
+        global $aui_bs5;
452
+        $defaults = array(
453
+            'type'                     => 'div',
454
+            'class'                    => $aui_bs5 ? 'mb-3' : 'form-group',
455
+            'content'                  => '',
456
+            'input_group_left'         => '',
457
+            'input_group_right'        => '',
458
+            'input_group_left_inside'  => false,
459
+            'input_group_right_inside' => false,
460
+            'element_require'          => '',
461
+            'argument_id'              => '',
462
+            'wrap_attributes'          => array()
463
+        );
464
+
465
+        /**
466
+         * Parse incoming $args into an array and merge it with $defaults
467
+         */
468
+        $args   = wp_parse_args( $args, $defaults );
469
+        $output = '';
470
+        if ( $args['type'] ) {
471
+
472
+            // open
473
+            $output .= '<' . sanitize_html_class( $args['type'] );
474
+
475
+            // element require
476
+            if ( ! empty( $args['element_require'] ) ) {
477
+                $output .= AUI_Component_Helper::element_require( $args['element_require'] );
478
+                $args['class'] .= " aui-conditional-field";
479
+            }
480
+
481
+            // argument_id
482
+            if ( ! empty( $args['argument_id'] ) ) {
483
+                $output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
484
+            }
485
+
486
+            // class
487
+            $class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
488
+            $output .= ' class="' . $class . '" ';
489
+
490
+            // Attributes
491
+            if ( ! empty( $args['wrap_attributes'] ) ) {
492
+                $output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
493
+            }
494
+
495
+            // close wrap
496
+            $output .= ' >';
497
+
498
+
499
+            // Input group left
500
+            if ( ! empty( $args['input_group_left'] ) ) {
501
+                $position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
502
+                $input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
503
+                $output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
504 504
 //				$output .= '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
505
-			}
505
+            }
506 506
 
507
-			// content
508
-			$output .= $args['content'];
507
+            // content
508
+            $output .= $args['content'];
509 509
 
510
-			// Input group right
511
-			if ( ! empty( $args['input_group_right'] ) ) {
512
-				$position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
513
-				$input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
514
-				$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>';
510
+            // Input group right
511
+            if ( ! empty( $args['input_group_right'] ) ) {
512
+                $position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
513
+                $input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
514
+                $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>';
515 515
 //				$output .= '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
516
-			}
517
-
518
-
519
-			// close wrap
520
-			$output .= '</' . sanitize_html_class( $args['type'] ) . '>';
521
-
522
-
523
-		} else {
524
-			$output = $args['content'];
525
-		}
526
-
527
-		return $output;
528
-	}
529
-
530
-	/**
531
-	 * Build the component.
532
-	 *
533
-	 * @param array $args
534
-	 *
535
-	 * @return string The rendered component.
536
-	 */
537
-	public static function textarea( $args = array() ) {
538
-		global $aui_bs5;
539
-
540
-		$defaults = array(
541
-			'name'               => '',
542
-			'class'              => '',
543
-			'wrap_class'         => '',
544
-			'id'                 => '',
545
-			'placeholder'        => '',
546
-			'title'              => '',
547
-			'value'              => '',
548
-			'required'           => false,
549
-			'label'              => '',
550
-			'label_after'        => false,
551
-			'label_class'        => '',
552
-			'label_type'         => '',
553
-			'label_col'          => '',
554
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
555
-			'input_group_right'        => '',
556
-			'input_group_left'         => '',
557
-			'input_group_right_inside' => false,
558
-			'form_group_class'      => '',
559
-			'help_text'          => '',
560
-			'validation_text'    => '',
561
-			'validation_pattern' => '',
562
-			'no_wrap'            => false,
563
-			'rows'               => '',
564
-			'wysiwyg'            => false,
565
-			'allow_tags'         => false,
566
-			// Allow HTML tags
567
-			'element_require'    => '',
568
-			// [%element_id%] == "1"
569
-			'extra_attributes'   => array(),
570
-			// an array of extra attributes
571
-			'wrap_attributes'    => array(),
572
-		);
573
-
574
-		/**
575
-		 * Parse incoming $args into an array and merge it with $defaults
576
-		 */
577
-		$args   = wp_parse_args( $args, $defaults );
578
-		$output = '';
579
-		$label = '';
580
-
581
-		// hidden label option needs to be empty
582
-		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
583
-
584
-		// floating labels don't work with wysiwyg so set it as top
585
-		if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
586
-			$args['label_type'] = 'top';
587
-		}
588
-
589
-		$label_after = $args['label_after'];
590
-
591
-		// floating labels need label after
592
-		if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
593
-			$label_after         = true;
594
-			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
595
-		}
596
-
597
-		// label
598
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
599
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
600
-			$label_args = array(
601
-				'title'      => $args['label'],
602
-				'for'        => $args['id'],
603
-				'class'      => $args['label_class'] . " ",
604
-				'label_type' => $args['label_type'],
605
-				'label_col'  => $args['label_col']
606
-			);
607
-			$label .= self::label( $label_args );
608
-		}
609
-
610
-		// maybe horizontal label
611
-		if ( $args['label_type'] == 'horizontal' ) {
612
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
613
-			$label .= '<div class="' . $input_col . '">';
614
-		}
615
-
616
-		if ( ! empty( $args['wysiwyg'] ) ) {
617
-			ob_start();
618
-			$content   = $args['value'];
619
-			$editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
620
-			$settings  = array(
621
-				'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
622
-				'quicktags'     => false,
623
-				'media_buttons' => false,
624
-				'editor_class'  => 'form-control',
625
-				'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
626
-				'teeny'         => true,
627
-			);
628
-
629
-			// maybe set settings if array
630
-			if ( is_array( $args['wysiwyg'] ) ) {
631
-				$settings = wp_parse_args( $args['wysiwyg'], $settings );
632
-			}
633
-
634
-			wp_editor( $content, $editor_id, $settings );
635
-			$output .= ob_get_clean();
636
-		} else {
637
-
638
-			// open
639
-			$output .= '<textarea ';
640
-
641
-			// name
642
-			if ( ! empty( $args['name'] ) ) {
643
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
644
-			}
645
-
646
-			// id
647
-			if ( ! empty( $args['id'] ) ) {
648
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
649
-			}
650
-
651
-			// placeholder
652
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
653
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
654
-			}
655
-
656
-			// title
657
-			if ( ! empty( $args['title'] ) ) {
658
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
659
-			}
660
-
661
-			// validation text
662
-			if ( ! empty( $args['validation_text'] ) ) {
663
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
664
-				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
665
-			}
666
-
667
-			// validation_pattern
668
-			if ( ! empty( $args['validation_pattern'] ) ) {
669
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
670
-			}
671
-
672
-			// required
673
-			if ( ! empty( $args['required'] ) ) {
674
-				$output .= ' required ';
675
-			}
676
-
677
-			// rows
678
-			if ( ! empty( $args['rows'] ) ) {
679
-				$output .= ' rows="' . absint( $args['rows'] ) . '" ';
680
-			}
681
-
682
-
683
-			// class
684
-			$class = ! empty( $args['class'] ) ? $args['class'] : '';
685
-			$output .= ' class="form-control ' . $class . '" ';
686
-
687
-			// extra attributes
688
-			if ( ! empty( $args['extra_attributes'] ) ) {
689
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
690
-			}
691
-
692
-			// close tag
693
-			$output .= ' >';
694
-
695
-			// value
696
-			if ( ! empty( $args['value'] ) ) {
697
-				if ( ! empty( $args['allow_tags'] ) ) {
698
-					$output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
699
-				} else {
700
-					$output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
701
-				}
702
-			}
703
-
704
-			// closing tag
705
-			$output .= '</textarea>';
706
-
707
-
708
-			// input group wraps
709
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
710
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
711
-				if ( $args['input_group_left'] ) {
712
-					$output = self::wrap( array(
713
-						'content'                 => $output,
714
-						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
715
-						'input_group_left'        => $args['input_group_left'],
716
-						'input_group_left_inside' => $args['input_group_left_inside']
717
-					) );
718
-				}
719
-				if ( $args['input_group_right'] ) {
720
-					$output = self::wrap( array(
721
-						'content'                  => $output,
722
-						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
723
-						'input_group_right'        => $args['input_group_right'],
724
-						'input_group_right_inside' => $args['input_group_right_inside']
725
-					) );
726
-				}
727
-
728
-			}
729
-
730
-
731
-		}
732
-
733
-		if ( ! empty( $args['label'] ) && $label_after ) {
734
-			$label_args = array(
735
-				'title'      => $args['label'],
736
-				'for'        => $args['id'],
737
-				'class'      => $args['label_class'] . " ",
738
-				'label_type' => $args['label_type'],
739
-				'label_col'  => $args['label_col']
740
-			);
741
-			$output .= self::label( $label_args );
742
-		}
743
-
744
-		// help text
745
-		if ( ! empty( $args['help_text'] ) ) {
746
-			$output .= AUI_Component_Helper::help_text( $args['help_text'] );
747
-		}
748
-
749
-		if ( ! $label_after ) {
750
-			$output = $label . $output;
751
-		}
752
-
753
-		// maybe horizontal label
754
-		if ( $args['label_type'] == 'horizontal' ) {
755
-			$output .= '</div>';
756
-		}
757
-
758
-
759
-		// wrap
760
-		if ( ! $args['no_wrap'] ) {
761
-			if ( ! empty( $args['form_group_class'] ) ) {
762
-				$fg_class = esc_attr( $args['form_group_class'] );
763
-			}else{
764
-				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
765
-			}
766
-			$form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
767
-			$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
768
-			$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
769
-			$output           = self::wrap( array(
770
-				'content'         => $output,
771
-				'class'           => $wrap_class,
772
-				'element_require' => $args['element_require'],
773
-				'argument_id'     => $args['id'],
774
-				'wrap_attributes' => $args['wrap_attributes'],
775
-			) );
776
-		}
777
-
778
-
779
-		return $output;
780
-	}
781
-
782
-	/**
783
-	 * Build the component.
784
-	 *
785
-	 * @param array $args
786
-	 *
787
-	 * @return string The rendered component.
788
-	 */
789
-	public static function select( $args = array() ) {
790
-		global $aui_bs5;
791
-		$defaults = array(
792
-			'class'            => '',
793
-			'wrap_class'       => '',
794
-			'id'               => '',
795
-			'title'            => '',
796
-			'value'            => '',
797
-			// can be an array or a string
798
-			'required'         => false,
799
-			'label'            => '',
800
-			'label_after'      => false,
801
-			'label_type'       => '',
802
-			'label_col'        => '',
803
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
804
-			'label_class'      => '',
805
-			'help_text'        => '',
806
-			'placeholder'      => '',
807
-			'options'          => array(),
808
-			// array or string
809
-			'icon'             => '',
810
-			'multiple'         => false,
811
-			'select2'          => false,
812
-			'no_wrap'          => false,
813
-			'input_group_right' => '',
814
-			'input_group_left' => '',
815
-			'input_group_right_inside' => false, // forces the input group inside the input
816
-			'input_group_left_inside' => false, // forces the input group inside the input
817
-			'form_group_class'  => '',
818
-			'element_require'  => '',
819
-			// [%element_id%] == "1"
820
-			'extra_attributes' => array(),
821
-			// an array of extra attributes
822
-			'wrap_attributes'  => array(),
823
-		);
824
-
825
-		/**
826
-		 * Parse incoming $args into an array and merge it with $defaults
827
-		 */
828
-		$args   = wp_parse_args( $args, $defaults );
829
-		$output = '';
830
-
831
-		// for now lets hide floating labels
832
-		if ( $args['label_type'] == 'floating' ) {
833
-			$args['label_type'] = 'hidden';
834
-		}
835
-
836
-		// hidden label option needs to be empty
837
-		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
838
-
839
-
840
-		$label_after = $args['label_after'];
841
-
842
-		// floating labels need label after
843
-		if ( $args['label_type'] == 'floating' ) {
844
-			$label_after         = true;
845
-			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
846
-		}
847
-
848
-		// Maybe setup select2
849
-		$is_select2 = false;
850
-		if ( ! empty( $args['select2'] ) ) {
851
-			$args['class'] .= ' aui-select2';
852
-			$is_select2 = true;
853
-		} elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
854
-			$is_select2 = true;
855
-		}
856
-
857
-		// select2 tags
858
-		if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
859
-			$args['data-tags']             = 'true';
860
-			$args['data-token-separators'] = "[',']";
861
-			$args['multiple']              = true;
862
-		}
863
-
864
-		// select2 placeholder
865
-		if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
866
-			$args['data-placeholder'] = esc_attr( $args['placeholder'] );
867
-			$args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
868
-		}
869
-
870
-		// Set hidden input to save empty value for multiselect.
871
-		if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
872
-			$output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
873
-		}
874
-
875
-		// open/type
876
-		$output .= '<select ';
877
-
878
-		// style
879
-		if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
880
-			$output .= " style='width:100%;' ";
881
-		}
882
-
883
-		// element require
884
-		if ( ! empty( $args['element_require'] ) ) {
885
-			$output .= AUI_Component_Helper::element_require( $args['element_require'] );
886
-			$args['class'] .= " aui-conditional-field";
887
-		}
888
-
889
-		// class
890
-		$class = ! empty( $args['class'] ) ? $args['class'] : '';
891
-		$select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
892
-		$output .= AUI_Component_Helper::class_attr( $select_class . $class );
893
-
894
-		// name
895
-		if ( ! empty( $args['name'] ) ) {
896
-			$output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
897
-		}
898
-
899
-		// id
900
-		if ( ! empty( $args['id'] ) ) {
901
-			$output .= AUI_Component_Helper::id( $args['id'] );
902
-		}
903
-
904
-		// title
905
-		if ( ! empty( $args['title'] ) ) {
906
-			$output .= AUI_Component_Helper::title( $args['title'] );
907
-		}
908
-
909
-		// data-attributes
910
-		$output .= AUI_Component_Helper::data_attributes( $args );
911
-
912
-		// aria-attributes
913
-		$output .= AUI_Component_Helper::aria_attributes( $args );
914
-
915
-		// extra attributes
916
-		if ( ! empty( $args['extra_attributes'] ) ) {
917
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
918
-		}
919
-
920
-		// required
921
-		if ( ! empty( $args['required'] ) ) {
922
-			$output .= ' required ';
923
-		}
924
-
925
-		// multiple
926
-		if ( ! empty( $args['multiple'] ) ) {
927
-			$output .= ' multiple ';
928
-		}
929
-
930
-		// close opening tag
931
-		$output .= ' >';
932
-
933
-		// placeholder
934
-		if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
935
-			$output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
936
-		} elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
937
-			$output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
938
-		}
939
-
940
-		// Options
941
-		if ( ! empty( $args['options'] ) ) {
942
-
943
-			if ( ! is_array( $args['options'] ) ) {
944
-				$output .= $args['options']; // not the preferred way but an option
945
-			} else {
946
-				foreach ( $args['options'] as $val => $name ) {
947
-					$selected = '';
948
-					if ( is_array( $name ) ) {
949
-						if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
950
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
951
-
952
-							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
953
-						} else {
954
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
955
-							$option_value = isset( $name['value'] ) ? $name['value'] : '';
956
-							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
957
-							if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
958
-								$selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
959
-							} elseif ( ! empty( $args['value'] ) ) {
960
-								$selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
961
-							} elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
962
-								$selected = selected( $option_value, $args['value'], false );
963
-							}
964
-
965
-							$output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
966
-						}
967
-					} else {
968
-						if ( ! empty( $args['value'] ) ) {
969
-							if ( is_array( $args['value'] ) ) {
970
-								$selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
971
-							} elseif ( ! empty( $args['value'] ) ) {
972
-								$selected = selected( $args['value'], $val, false );
973
-							}
974
-						} elseif ( $args['value'] === $val ) {
975
-							$selected = selected( $args['value'], $val, false );
976
-						}
977
-						$output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
978
-					}
979
-				}
980
-			}
981
-
982
-		}
983
-
984
-		// closing tag
985
-		$output .= '</select>';
986
-
987
-		$label = '';
988
-		$help_text = '';
989
-		// label
990
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
991
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
992
-			$label_args = array(
993
-				'title'      => $args['label'],
994
-				'for'        => $args['id'],
995
-				'class'      => $args['label_class'] . " ",
996
-				'label_type' => $args['label_type'],
997
-				'label_col'  => $args['label_col']
998
-			);
999
-			$label = self::label( $label_args );
1000
-		}
1001
-
1002
-		// help text
1003
-		if ( ! empty( $args['help_text'] ) ) {
1004
-			$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1005
-		}
1006
-
1007
-		// input group wraps
1008
-		if ( $args['input_group_left'] || $args['input_group_right'] ) {
1009
-			$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1010
-			if ( $args['input_group_left'] ) {
1011
-				$output = self::wrap( array(
1012
-					'content'                 => $output,
1013
-					'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1014
-					'input_group_left'        => $args['input_group_left'],
1015
-					'input_group_left_inside' => $args['input_group_left_inside']
1016
-				) );
1017
-			}
1018
-			if ( $args['input_group_right'] ) {
1019
-				$output = self::wrap( array(
1020
-					'content'                  => $output,
1021
-					'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1022
-					'input_group_right'        => $args['input_group_right'],
1023
-					'input_group_right_inside' => $args['input_group_right_inside']
1024
-				) );
1025
-			}
1026
-
1027
-		}
1028
-
1029
-		if ( ! $label_after ) {
1030
-			$output .= $help_text;
1031
-		}
1032
-
1033
-
1034
-		if ( $args['label_type'] == 'horizontal' ) {
1035
-			$output = self::wrap( array(
1036
-				'content' => $output,
1037
-				'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1038
-			) );
1039
-		}
1040
-
1041
-		if ( ! $label_after ) {
1042
-			$output = $label . $output;
1043
-		}
1044
-
1045
-		// maybe horizontal label
516
+            }
517
+
518
+
519
+            // close wrap
520
+            $output .= '</' . sanitize_html_class( $args['type'] ) . '>';
521
+
522
+
523
+        } else {
524
+            $output = $args['content'];
525
+        }
526
+
527
+        return $output;
528
+    }
529
+
530
+    /**
531
+     * Build the component.
532
+     *
533
+     * @param array $args
534
+     *
535
+     * @return string The rendered component.
536
+     */
537
+    public static function textarea( $args = array() ) {
538
+        global $aui_bs5;
539
+
540
+        $defaults = array(
541
+            'name'               => '',
542
+            'class'              => '',
543
+            'wrap_class'         => '',
544
+            'id'                 => '',
545
+            'placeholder'        => '',
546
+            'title'              => '',
547
+            'value'              => '',
548
+            'required'           => false,
549
+            'label'              => '',
550
+            'label_after'        => false,
551
+            'label_class'        => '',
552
+            'label_type'         => '',
553
+            'label_col'          => '',
554
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
555
+            'input_group_right'        => '',
556
+            'input_group_left'         => '',
557
+            'input_group_right_inside' => false,
558
+            'form_group_class'      => '',
559
+            'help_text'          => '',
560
+            'validation_text'    => '',
561
+            'validation_pattern' => '',
562
+            'no_wrap'            => false,
563
+            'rows'               => '',
564
+            'wysiwyg'            => false,
565
+            'allow_tags'         => false,
566
+            // Allow HTML tags
567
+            'element_require'    => '',
568
+            // [%element_id%] == "1"
569
+            'extra_attributes'   => array(),
570
+            // an array of extra attributes
571
+            'wrap_attributes'    => array(),
572
+        );
573
+
574
+        /**
575
+         * Parse incoming $args into an array and merge it with $defaults
576
+         */
577
+        $args   = wp_parse_args( $args, $defaults );
578
+        $output = '';
579
+        $label = '';
580
+
581
+        // hidden label option needs to be empty
582
+        $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
583
+
584
+        // floating labels don't work with wysiwyg so set it as top
585
+        if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
586
+            $args['label_type'] = 'top';
587
+        }
588
+
589
+        $label_after = $args['label_after'];
590
+
591
+        // floating labels need label after
592
+        if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
593
+            $label_after         = true;
594
+            $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
595
+        }
596
+
597
+        // label
598
+        if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
599
+        } elseif ( ! empty( $args['label'] ) && ! $label_after ) {
600
+            $label_args = array(
601
+                'title'      => $args['label'],
602
+                'for'        => $args['id'],
603
+                'class'      => $args['label_class'] . " ",
604
+                'label_type' => $args['label_type'],
605
+                'label_col'  => $args['label_col']
606
+            );
607
+            $label .= self::label( $label_args );
608
+        }
609
+
610
+        // maybe horizontal label
611
+        if ( $args['label_type'] == 'horizontal' ) {
612
+            $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
613
+            $label .= '<div class="' . $input_col . '">';
614
+        }
615
+
616
+        if ( ! empty( $args['wysiwyg'] ) ) {
617
+            ob_start();
618
+            $content   = $args['value'];
619
+            $editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
620
+            $settings  = array(
621
+                'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
622
+                'quicktags'     => false,
623
+                'media_buttons' => false,
624
+                'editor_class'  => 'form-control',
625
+                'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
626
+                'teeny'         => true,
627
+            );
628
+
629
+            // maybe set settings if array
630
+            if ( is_array( $args['wysiwyg'] ) ) {
631
+                $settings = wp_parse_args( $args['wysiwyg'], $settings );
632
+            }
633
+
634
+            wp_editor( $content, $editor_id, $settings );
635
+            $output .= ob_get_clean();
636
+        } else {
637
+
638
+            // open
639
+            $output .= '<textarea ';
640
+
641
+            // name
642
+            if ( ! empty( $args['name'] ) ) {
643
+                $output .= ' name="' . esc_attr( $args['name'] ) . '" ';
644
+            }
645
+
646
+            // id
647
+            if ( ! empty( $args['id'] ) ) {
648
+                $output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
649
+            }
650
+
651
+            // placeholder
652
+            if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
653
+                $output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
654
+            }
655
+
656
+            // title
657
+            if ( ! empty( $args['title'] ) ) {
658
+                $output .= ' title="' . esc_attr( $args['title'] ) . '" ';
659
+            }
660
+
661
+            // validation text
662
+            if ( ! empty( $args['validation_text'] ) ) {
663
+                $output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
664
+                $output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
665
+            }
666
+
667
+            // validation_pattern
668
+            if ( ! empty( $args['validation_pattern'] ) ) {
669
+                $output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
670
+            }
671
+
672
+            // required
673
+            if ( ! empty( $args['required'] ) ) {
674
+                $output .= ' required ';
675
+            }
676
+
677
+            // rows
678
+            if ( ! empty( $args['rows'] ) ) {
679
+                $output .= ' rows="' . absint( $args['rows'] ) . '" ';
680
+            }
681
+
682
+
683
+            // class
684
+            $class = ! empty( $args['class'] ) ? $args['class'] : '';
685
+            $output .= ' class="form-control ' . $class . '" ';
686
+
687
+            // extra attributes
688
+            if ( ! empty( $args['extra_attributes'] ) ) {
689
+                $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
690
+            }
691
+
692
+            // close tag
693
+            $output .= ' >';
694
+
695
+            // value
696
+            if ( ! empty( $args['value'] ) ) {
697
+                if ( ! empty( $args['allow_tags'] ) ) {
698
+                    $output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
699
+                } else {
700
+                    $output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
701
+                }
702
+            }
703
+
704
+            // closing tag
705
+            $output .= '</textarea>';
706
+
707
+
708
+            // input group wraps
709
+            if ( $args['input_group_left'] || $args['input_group_right'] ) {
710
+                $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
711
+                if ( $args['input_group_left'] ) {
712
+                    $output = self::wrap( array(
713
+                        'content'                 => $output,
714
+                        'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
715
+                        'input_group_left'        => $args['input_group_left'],
716
+                        'input_group_left_inside' => $args['input_group_left_inside']
717
+                    ) );
718
+                }
719
+                if ( $args['input_group_right'] ) {
720
+                    $output = self::wrap( array(
721
+                        'content'                  => $output,
722
+                        'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
723
+                        'input_group_right'        => $args['input_group_right'],
724
+                        'input_group_right_inside' => $args['input_group_right_inside']
725
+                    ) );
726
+                }
727
+
728
+            }
729
+
730
+
731
+        }
732
+
733
+        if ( ! empty( $args['label'] ) && $label_after ) {
734
+            $label_args = array(
735
+                'title'      => $args['label'],
736
+                'for'        => $args['id'],
737
+                'class'      => $args['label_class'] . " ",
738
+                'label_type' => $args['label_type'],
739
+                'label_col'  => $args['label_col']
740
+            );
741
+            $output .= self::label( $label_args );
742
+        }
743
+
744
+        // help text
745
+        if ( ! empty( $args['help_text'] ) ) {
746
+            $output .= AUI_Component_Helper::help_text( $args['help_text'] );
747
+        }
748
+
749
+        if ( ! $label_after ) {
750
+            $output = $label . $output;
751
+        }
752
+
753
+        // maybe horizontal label
754
+        if ( $args['label_type'] == 'horizontal' ) {
755
+            $output .= '</div>';
756
+        }
757
+
758
+
759
+        // wrap
760
+        if ( ! $args['no_wrap'] ) {
761
+            if ( ! empty( $args['form_group_class'] ) ) {
762
+                $fg_class = esc_attr( $args['form_group_class'] );
763
+            }else{
764
+                $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
765
+            }
766
+            $form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
767
+            $wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
768
+            $wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
769
+            $output           = self::wrap( array(
770
+                'content'         => $output,
771
+                'class'           => $wrap_class,
772
+                'element_require' => $args['element_require'],
773
+                'argument_id'     => $args['id'],
774
+                'wrap_attributes' => $args['wrap_attributes'],
775
+            ) );
776
+        }
777
+
778
+
779
+        return $output;
780
+    }
781
+
782
+    /**
783
+     * Build the component.
784
+     *
785
+     * @param array $args
786
+     *
787
+     * @return string The rendered component.
788
+     */
789
+    public static function select( $args = array() ) {
790
+        global $aui_bs5;
791
+        $defaults = array(
792
+            'class'            => '',
793
+            'wrap_class'       => '',
794
+            'id'               => '',
795
+            'title'            => '',
796
+            'value'            => '',
797
+            // can be an array or a string
798
+            'required'         => false,
799
+            'label'            => '',
800
+            'label_after'      => false,
801
+            'label_type'       => '',
802
+            'label_col'        => '',
803
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
804
+            'label_class'      => '',
805
+            'help_text'        => '',
806
+            'placeholder'      => '',
807
+            'options'          => array(),
808
+            // array or string
809
+            'icon'             => '',
810
+            'multiple'         => false,
811
+            'select2'          => false,
812
+            'no_wrap'          => false,
813
+            'input_group_right' => '',
814
+            'input_group_left' => '',
815
+            'input_group_right_inside' => false, // forces the input group inside the input
816
+            'input_group_left_inside' => false, // forces the input group inside the input
817
+            'form_group_class'  => '',
818
+            'element_require'  => '',
819
+            // [%element_id%] == "1"
820
+            'extra_attributes' => array(),
821
+            // an array of extra attributes
822
+            'wrap_attributes'  => array(),
823
+        );
824
+
825
+        /**
826
+         * Parse incoming $args into an array and merge it with $defaults
827
+         */
828
+        $args   = wp_parse_args( $args, $defaults );
829
+        $output = '';
830
+
831
+        // for now lets hide floating labels
832
+        if ( $args['label_type'] == 'floating' ) {
833
+            $args['label_type'] = 'hidden';
834
+        }
835
+
836
+        // hidden label option needs to be empty
837
+        $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
838
+
839
+
840
+        $label_after = $args['label_after'];
841
+
842
+        // floating labels need label after
843
+        if ( $args['label_type'] == 'floating' ) {
844
+            $label_after         = true;
845
+            $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
846
+        }
847
+
848
+        // Maybe setup select2
849
+        $is_select2 = false;
850
+        if ( ! empty( $args['select2'] ) ) {
851
+            $args['class'] .= ' aui-select2';
852
+            $is_select2 = true;
853
+        } elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
854
+            $is_select2 = true;
855
+        }
856
+
857
+        // select2 tags
858
+        if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
859
+            $args['data-tags']             = 'true';
860
+            $args['data-token-separators'] = "[',']";
861
+            $args['multiple']              = true;
862
+        }
863
+
864
+        // select2 placeholder
865
+        if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
866
+            $args['data-placeholder'] = esc_attr( $args['placeholder'] );
867
+            $args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
868
+        }
869
+
870
+        // Set hidden input to save empty value for multiselect.
871
+        if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
872
+            $output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
873
+        }
874
+
875
+        // open/type
876
+        $output .= '<select ';
877
+
878
+        // style
879
+        if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
880
+            $output .= " style='width:100%;' ";
881
+        }
882
+
883
+        // element require
884
+        if ( ! empty( $args['element_require'] ) ) {
885
+            $output .= AUI_Component_Helper::element_require( $args['element_require'] );
886
+            $args['class'] .= " aui-conditional-field";
887
+        }
888
+
889
+        // class
890
+        $class = ! empty( $args['class'] ) ? $args['class'] : '';
891
+        $select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
892
+        $output .= AUI_Component_Helper::class_attr( $select_class . $class );
893
+
894
+        // name
895
+        if ( ! empty( $args['name'] ) ) {
896
+            $output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
897
+        }
898
+
899
+        // id
900
+        if ( ! empty( $args['id'] ) ) {
901
+            $output .= AUI_Component_Helper::id( $args['id'] );
902
+        }
903
+
904
+        // title
905
+        if ( ! empty( $args['title'] ) ) {
906
+            $output .= AUI_Component_Helper::title( $args['title'] );
907
+        }
908
+
909
+        // data-attributes
910
+        $output .= AUI_Component_Helper::data_attributes( $args );
911
+
912
+        // aria-attributes
913
+        $output .= AUI_Component_Helper::aria_attributes( $args );
914
+
915
+        // extra attributes
916
+        if ( ! empty( $args['extra_attributes'] ) ) {
917
+            $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
918
+        }
919
+
920
+        // required
921
+        if ( ! empty( $args['required'] ) ) {
922
+            $output .= ' required ';
923
+        }
924
+
925
+        // multiple
926
+        if ( ! empty( $args['multiple'] ) ) {
927
+            $output .= ' multiple ';
928
+        }
929
+
930
+        // close opening tag
931
+        $output .= ' >';
932
+
933
+        // placeholder
934
+        if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
935
+            $output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
936
+        } elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
937
+            $output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
938
+        }
939
+
940
+        // Options
941
+        if ( ! empty( $args['options'] ) ) {
942
+
943
+            if ( ! is_array( $args['options'] ) ) {
944
+                $output .= $args['options']; // not the preferred way but an option
945
+            } else {
946
+                foreach ( $args['options'] as $val => $name ) {
947
+                    $selected = '';
948
+                    if ( is_array( $name ) ) {
949
+                        if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
950
+                            $option_label = isset( $name['label'] ) ? $name['label'] : '';
951
+
952
+                            $output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
953
+                        } else {
954
+                            $option_label = isset( $name['label'] ) ? $name['label'] : '';
955
+                            $option_value = isset( $name['value'] ) ? $name['value'] : '';
956
+                            $extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
957
+                            if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
958
+                                $selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
959
+                            } elseif ( ! empty( $args['value'] ) ) {
960
+                                $selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
961
+                            } elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
962
+                                $selected = selected( $option_value, $args['value'], false );
963
+                            }
964
+
965
+                            $output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
966
+                        }
967
+                    } else {
968
+                        if ( ! empty( $args['value'] ) ) {
969
+                            if ( is_array( $args['value'] ) ) {
970
+                                $selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
971
+                            } elseif ( ! empty( $args['value'] ) ) {
972
+                                $selected = selected( $args['value'], $val, false );
973
+                            }
974
+                        } elseif ( $args['value'] === $val ) {
975
+                            $selected = selected( $args['value'], $val, false );
976
+                        }
977
+                        $output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
978
+                    }
979
+                }
980
+            }
981
+
982
+        }
983
+
984
+        // closing tag
985
+        $output .= '</select>';
986
+
987
+        $label = '';
988
+        $help_text = '';
989
+        // label
990
+        if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
991
+        } elseif ( ! empty( $args['label'] ) && ! $label_after ) {
992
+            $label_args = array(
993
+                'title'      => $args['label'],
994
+                'for'        => $args['id'],
995
+                'class'      => $args['label_class'] . " ",
996
+                'label_type' => $args['label_type'],
997
+                'label_col'  => $args['label_col']
998
+            );
999
+            $label = self::label( $label_args );
1000
+        }
1001
+
1002
+        // help text
1003
+        if ( ! empty( $args['help_text'] ) ) {
1004
+            $help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1005
+        }
1006
+
1007
+        // input group wraps
1008
+        if ( $args['input_group_left'] || $args['input_group_right'] ) {
1009
+            $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1010
+            if ( $args['input_group_left'] ) {
1011
+                $output = self::wrap( array(
1012
+                    'content'                 => $output,
1013
+                    'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1014
+                    'input_group_left'        => $args['input_group_left'],
1015
+                    'input_group_left_inside' => $args['input_group_left_inside']
1016
+                ) );
1017
+            }
1018
+            if ( $args['input_group_right'] ) {
1019
+                $output = self::wrap( array(
1020
+                    'content'                  => $output,
1021
+                    'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1022
+                    'input_group_right'        => $args['input_group_right'],
1023
+                    'input_group_right_inside' => $args['input_group_right_inside']
1024
+                ) );
1025
+            }
1026
+
1027
+        }
1028
+
1029
+        if ( ! $label_after ) {
1030
+            $output .= $help_text;
1031
+        }
1032
+
1033
+
1034
+        if ( $args['label_type'] == 'horizontal' ) {
1035
+            $output = self::wrap( array(
1036
+                'content' => $output,
1037
+                'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1038
+            ) );
1039
+        }
1040
+
1041
+        if ( ! $label_after ) {
1042
+            $output = $label . $output;
1043
+        }
1044
+
1045
+        // maybe horizontal label
1046 1046
 //		if ( $args['label_type'] == 'horizontal' ) {
1047 1047
 //			$output .= '</div>';
1048 1048
 //		}
1049 1049
 
1050 1050
 
1051
-		// wrap
1052
-		if ( ! $args['no_wrap'] ) {
1053
-			if ( ! empty( $args['form_group_class'] ) ) {
1054
-				$fg_class = esc_attr( $args['form_group_class'] );
1055
-			}else{
1056
-				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1057
-			}
1058
-			$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1059
-			$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1060
-			$output     = self::wrap( array(
1061
-				'content'         => $output,
1062
-				'class'           => $wrap_class,
1063
-				'element_require' => $args['element_require'],
1064
-				'argument_id'     => $args['id'],
1065
-				'wrap_attributes' => $args['wrap_attributes'],
1066
-			) );
1067
-		}
1068
-
1069
-
1070
-		return $output;
1071
-	}
1072
-
1073
-	/**
1074
-	 * Build the component.
1075
-	 *
1076
-	 * @param array $args
1077
-	 *
1078
-	 * @return string The rendered component.
1079
-	 */
1080
-	public static function radio( $args = array() ) {
1081
-		global $aui_bs5;
1082
-
1083
-		$defaults = array(
1084
-			'class'            => '',
1085
-			'wrap_class'       => '',
1086
-			'id'               => '',
1087
-			'title'            => '',
1088
-			'horizontal'       => false,
1089
-			// sets the lable horizontal
1090
-			'value'            => '',
1091
-			'label'            => '',
1092
-			'label_class'      => '',
1093
-			'label_type'       => '',
1094
-			'label_col'        => '',
1095
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
1096
-			'help_text'        => '',
1097
-			'inline'           => true,
1098
-			'required'         => false,
1099
-			'options'          => array(),
1100
-			'icon'             => '',
1101
-			'no_wrap'          => false,
1102
-			'element_require'  => '',
1103
-			// [%element_id%] == "1"
1104
-			'extra_attributes' => array(),
1105
-			// an array of extra attributes
1106
-			'wrap_attributes'  => array()
1107
-		);
1108
-
1109
-		/**
1110
-		 * Parse incoming $args into an array and merge it with $defaults
1111
-		 */
1112
-		$args = wp_parse_args( $args, $defaults );
1113
-
1114
-		// for now lets use horizontal for floating
1115
-		if ( $args['label_type'] == 'floating' ) {
1116
-			$args['label_type'] = 'horizontal';
1117
-		}
1118
-
1119
-		$label_args = array(
1120
-			'title'      => $args['label'],
1121
-			'class'      => $args['label_class'] . " pt-0 ",
1122
-			'label_type' => $args['label_type'],
1123
-			'label_col'  => $args['label_col']
1124
-		);
1125
-
1126
-		if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1127
-			$label_args['class'] .= 'd-block ';
1128
-
1129
-			if ( $args['label_type'] == 'hidden' ) {
1130
-				$label_args['class'] .= 'sr-only ';
1131
-			}
1132
-		}
1133
-
1134
-		$output = '';
1135
-
1136
-		// label before
1137
-		if ( ! empty( $args['label'] ) ) {
1138
-			$output .= self::label( $label_args, 'radio' );
1139
-		}
1140
-
1141
-		// maybe horizontal label
1142
-		if ( $args['label_type'] == 'horizontal' ) {
1143
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1144
-			$output .= '<div class="' . $input_col . '">';
1145
-		}
1146
-
1147
-		if ( ! empty( $args['options'] ) ) {
1148
-			$count = 0;
1149
-			foreach ( $args['options'] as $value => $label ) {
1150
-				$option_args            = $args;
1151
-				$option_args['value']   = $value;
1152
-				$option_args['label']   = $label;
1153
-				$option_args['checked'] = $value == $args['value'] ? true : false;
1154
-				$output .= self::radio_option( $option_args, $count );
1155
-				$count ++;
1156
-			}
1157
-		}
1158
-
1159
-		// help text
1160
-		$help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1161
-		$output .= $help_text;
1162
-
1163
-		// maybe horizontal label
1164
-		if ( $args['label_type'] == 'horizontal' ) {
1165
-			$output .= '</div>';
1166
-		}
1167
-
1168
-		// wrap
1169
-		$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1170
-		$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1171
-		$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1172
-		$output     = self::wrap( array(
1173
-			'content'         => $output,
1174
-			'class'           => $wrap_class,
1175
-			'element_require' => $args['element_require'],
1176
-			'argument_id'     => $args['id'],
1177
-			'wrap_attributes' => $args['wrap_attributes'],
1178
-		) );
1179
-
1180
-
1181
-		return $output;
1182
-	}
1183
-
1184
-	/**
1185
-	 * Build the component.
1186
-	 *
1187
-	 * @param array $args
1188
-	 *
1189
-	 * @return string The rendered component.
1190
-	 */
1191
-	public static function radio_option( $args = array(), $count = '' ) {
1192
-		$defaults = array(
1193
-			'class'            => '',
1194
-			'id'               => '',
1195
-			'title'            => '',
1196
-			'value'            => '',
1197
-			'required'         => false,
1198
-			'inline'           => true,
1199
-			'label'            => '',
1200
-			'options'          => array(),
1201
-			'icon'             => '',
1202
-			'no_wrap'          => false,
1203
-			'extra_attributes' => array() // an array of extra attributes
1204
-		);
1205
-
1206
-		/**
1207
-		 * Parse incoming $args into an array and merge it with $defaults
1208
-		 */
1209
-		$args = wp_parse_args( $args, $defaults );
1210
-
1211
-		$output = '';
1212
-
1213
-		// open/type
1214
-		$output .= '<input type="radio"';
1215
-
1216
-		// class
1217
-		$output .= ' class="form-check-input" ';
1218
-
1219
-		// name
1220
-		if ( ! empty( $args['name'] ) ) {
1221
-			$output .= AUI_Component_Helper::name( $args['name'] );
1222
-		}
1223
-
1224
-		// id
1225
-		if ( ! empty( $args['id'] ) ) {
1226
-			$output .= AUI_Component_Helper::id( $args['id'] . $count );
1227
-		}
1228
-
1229
-		// title
1230
-		if ( ! empty( $args['title'] ) ) {
1231
-			$output .= AUI_Component_Helper::title( $args['title'] );
1232
-		}
1233
-
1234
-		// value
1235
-		if ( isset( $args['value'] ) ) {
1236
-			$output .= AUI_Component_Helper::value( $args['value'] );
1237
-		}
1238
-
1239
-		// checked, for radio and checkboxes
1240
-		if ( $args['checked'] ) {
1241
-			$output .= ' checked ';
1242
-		}
1243
-
1244
-		// data-attributes
1245
-		$output .= AUI_Component_Helper::data_attributes( $args );
1246
-
1247
-		// aria-attributes
1248
-		$output .= AUI_Component_Helper::aria_attributes( $args );
1249
-
1250
-		// extra attributes
1251
-		if ( ! empty( $args['extra_attributes'] ) ) {
1252
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1253
-		}
1254
-
1255
-		// required
1256
-		if ( ! empty( $args['required'] ) ) {
1257
-			$output .= ' required ';
1258
-		}
1259
-
1260
-		// close opening tag
1261
-		$output .= ' >';
1262
-
1263
-		// label
1264
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1265
-		} elseif ( ! empty( $args['label'] ) ) {
1266
-			$output .= self::label( array(
1267
-				'title' => $args['label'],
1268
-				'for'   => $args['id'] . $count,
1269
-				'class' => 'form-check-label'
1270
-			), 'radio' );
1271
-		}
1272
-
1273
-		// wrap
1274
-		if ( ! $args['no_wrap'] ) {
1275
-			$wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1276
-
1277
-			// Unique wrap class
1278
-			$uniq_class = 'fwrap';
1279
-			if ( ! empty( $args['name'] ) ) {
1280
-				$uniq_class .= '-' . $args['name'];
1281
-			} else if ( ! empty( $args['id'] ) ) {
1282
-				$uniq_class .= '-' . $args['id'];
1283
-			}
1284
-
1285
-			if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1286
-				$uniq_class .= '-' . $args['value'];
1287
-			} else {
1288
-				$uniq_class .= '-' . $count;
1289
-			}
1290
-			$wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1291
-
1292
-			$output = self::wrap( array(
1293
-				'content' => $output,
1294
-				'class'   => $wrap_class
1295
-			) );
1296
-		}
1297
-
1298
-		return $output;
1299
-	}
1051
+        // wrap
1052
+        if ( ! $args['no_wrap'] ) {
1053
+            if ( ! empty( $args['form_group_class'] ) ) {
1054
+                $fg_class = esc_attr( $args['form_group_class'] );
1055
+            }else{
1056
+                $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1057
+            }
1058
+            $wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1059
+            $wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1060
+            $output     = self::wrap( array(
1061
+                'content'         => $output,
1062
+                'class'           => $wrap_class,
1063
+                'element_require' => $args['element_require'],
1064
+                'argument_id'     => $args['id'],
1065
+                'wrap_attributes' => $args['wrap_attributes'],
1066
+            ) );
1067
+        }
1068
+
1069
+
1070
+        return $output;
1071
+    }
1072
+
1073
+    /**
1074
+     * Build the component.
1075
+     *
1076
+     * @param array $args
1077
+     *
1078
+     * @return string The rendered component.
1079
+     */
1080
+    public static function radio( $args = array() ) {
1081
+        global $aui_bs5;
1082
+
1083
+        $defaults = array(
1084
+            'class'            => '',
1085
+            'wrap_class'       => '',
1086
+            'id'               => '',
1087
+            'title'            => '',
1088
+            'horizontal'       => false,
1089
+            // sets the lable horizontal
1090
+            'value'            => '',
1091
+            'label'            => '',
1092
+            'label_class'      => '',
1093
+            'label_type'       => '',
1094
+            'label_col'        => '',
1095
+            // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
1096
+            'help_text'        => '',
1097
+            'inline'           => true,
1098
+            'required'         => false,
1099
+            'options'          => array(),
1100
+            'icon'             => '',
1101
+            'no_wrap'          => false,
1102
+            'element_require'  => '',
1103
+            // [%element_id%] == "1"
1104
+            'extra_attributes' => array(),
1105
+            // an array of extra attributes
1106
+            'wrap_attributes'  => array()
1107
+        );
1108
+
1109
+        /**
1110
+         * Parse incoming $args into an array and merge it with $defaults
1111
+         */
1112
+        $args = wp_parse_args( $args, $defaults );
1113
+
1114
+        // for now lets use horizontal for floating
1115
+        if ( $args['label_type'] == 'floating' ) {
1116
+            $args['label_type'] = 'horizontal';
1117
+        }
1118
+
1119
+        $label_args = array(
1120
+            'title'      => $args['label'],
1121
+            'class'      => $args['label_class'] . " pt-0 ",
1122
+            'label_type' => $args['label_type'],
1123
+            'label_col'  => $args['label_col']
1124
+        );
1125
+
1126
+        if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1127
+            $label_args['class'] .= 'd-block ';
1128
+
1129
+            if ( $args['label_type'] == 'hidden' ) {
1130
+                $label_args['class'] .= 'sr-only ';
1131
+            }
1132
+        }
1133
+
1134
+        $output = '';
1135
+
1136
+        // label before
1137
+        if ( ! empty( $args['label'] ) ) {
1138
+            $output .= self::label( $label_args, 'radio' );
1139
+        }
1140
+
1141
+        // maybe horizontal label
1142
+        if ( $args['label_type'] == 'horizontal' ) {
1143
+            $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1144
+            $output .= '<div class="' . $input_col . '">';
1145
+        }
1146
+
1147
+        if ( ! empty( $args['options'] ) ) {
1148
+            $count = 0;
1149
+            foreach ( $args['options'] as $value => $label ) {
1150
+                $option_args            = $args;
1151
+                $option_args['value']   = $value;
1152
+                $option_args['label']   = $label;
1153
+                $option_args['checked'] = $value == $args['value'] ? true : false;
1154
+                $output .= self::radio_option( $option_args, $count );
1155
+                $count ++;
1156
+            }
1157
+        }
1158
+
1159
+        // help text
1160
+        $help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1161
+        $output .= $help_text;
1162
+
1163
+        // maybe horizontal label
1164
+        if ( $args['label_type'] == 'horizontal' ) {
1165
+            $output .= '</div>';
1166
+        }
1167
+
1168
+        // wrap
1169
+        $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1170
+        $wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1171
+        $wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1172
+        $output     = self::wrap( array(
1173
+            'content'         => $output,
1174
+            'class'           => $wrap_class,
1175
+            'element_require' => $args['element_require'],
1176
+            'argument_id'     => $args['id'],
1177
+            'wrap_attributes' => $args['wrap_attributes'],
1178
+        ) );
1179
+
1180
+
1181
+        return $output;
1182
+    }
1183
+
1184
+    /**
1185
+     * Build the component.
1186
+     *
1187
+     * @param array $args
1188
+     *
1189
+     * @return string The rendered component.
1190
+     */
1191
+    public static function radio_option( $args = array(), $count = '' ) {
1192
+        $defaults = array(
1193
+            'class'            => '',
1194
+            'id'               => '',
1195
+            'title'            => '',
1196
+            'value'            => '',
1197
+            'required'         => false,
1198
+            'inline'           => true,
1199
+            'label'            => '',
1200
+            'options'          => array(),
1201
+            'icon'             => '',
1202
+            'no_wrap'          => false,
1203
+            'extra_attributes' => array() // an array of extra attributes
1204
+        );
1205
+
1206
+        /**
1207
+         * Parse incoming $args into an array and merge it with $defaults
1208
+         */
1209
+        $args = wp_parse_args( $args, $defaults );
1210
+
1211
+        $output = '';
1212
+
1213
+        // open/type
1214
+        $output .= '<input type="radio"';
1215
+
1216
+        // class
1217
+        $output .= ' class="form-check-input" ';
1218
+
1219
+        // name
1220
+        if ( ! empty( $args['name'] ) ) {
1221
+            $output .= AUI_Component_Helper::name( $args['name'] );
1222
+        }
1223
+
1224
+        // id
1225
+        if ( ! empty( $args['id'] ) ) {
1226
+            $output .= AUI_Component_Helper::id( $args['id'] . $count );
1227
+        }
1228
+
1229
+        // title
1230
+        if ( ! empty( $args['title'] ) ) {
1231
+            $output .= AUI_Component_Helper::title( $args['title'] );
1232
+        }
1233
+
1234
+        // value
1235
+        if ( isset( $args['value'] ) ) {
1236
+            $output .= AUI_Component_Helper::value( $args['value'] );
1237
+        }
1238
+
1239
+        // checked, for radio and checkboxes
1240
+        if ( $args['checked'] ) {
1241
+            $output .= ' checked ';
1242
+        }
1243
+
1244
+        // data-attributes
1245
+        $output .= AUI_Component_Helper::data_attributes( $args );
1246
+
1247
+        // aria-attributes
1248
+        $output .= AUI_Component_Helper::aria_attributes( $args );
1249
+
1250
+        // extra attributes
1251
+        if ( ! empty( $args['extra_attributes'] ) ) {
1252
+            $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1253
+        }
1254
+
1255
+        // required
1256
+        if ( ! empty( $args['required'] ) ) {
1257
+            $output .= ' required ';
1258
+        }
1259
+
1260
+        // close opening tag
1261
+        $output .= ' >';
1262
+
1263
+        // label
1264
+        if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1265
+        } elseif ( ! empty( $args['label'] ) ) {
1266
+            $output .= self::label( array(
1267
+                'title' => $args['label'],
1268
+                'for'   => $args['id'] . $count,
1269
+                'class' => 'form-check-label'
1270
+            ), 'radio' );
1271
+        }
1272
+
1273
+        // wrap
1274
+        if ( ! $args['no_wrap'] ) {
1275
+            $wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1276
+
1277
+            // Unique wrap class
1278
+            $uniq_class = 'fwrap';
1279
+            if ( ! empty( $args['name'] ) ) {
1280
+                $uniq_class .= '-' . $args['name'];
1281
+            } else if ( ! empty( $args['id'] ) ) {
1282
+                $uniq_class .= '-' . $args['id'];
1283
+            }
1284
+
1285
+            if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1286
+                $uniq_class .= '-' . $args['value'];
1287
+            } else {
1288
+                $uniq_class .= '-' . $count;
1289
+            }
1290
+            $wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1291
+
1292
+            $output = self::wrap( array(
1293
+                'content' => $output,
1294
+                'class'   => $wrap_class
1295
+            ) );
1296
+        }
1297
+
1298
+        return $output;
1299
+    }
1300 1300
 
1301 1301
 }
1302 1302
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +310 added lines, -310 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,7 +137,7 @@  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
-			} elseif ( $type == 'iconpicker' ) {
140
+			} elseif ($type == 'iconpicker') {
141 141
 				$type = 'text';
142 142
 				//$args['class'] .= ' aui-flatpickr bg-initial ';
143 143
 //				$args['class'] .= ' bg-initial ';
@@ -152,104 +152,104 @@  discard block
 block discarded – undo
152 152
 				$aui_settings->enqueue_iconpicker();
153 153
 			}
154 154
 
155
-			if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
156
-				$output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
155
+			if ($type == 'checkbox' && ((!empty($args['name']) && strpos($args['name'], '[') === false) || !empty($args['with_hidden']))) {
156
+				$output .= '<input type="hidden" name="' . esc_attr($args['name']) . '" value="0" />';
157 157
 			}
158 158
 
159 159
 			// allow clear icon
160
-			if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
161
-				$font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
160
+			if ($args['input_group_right'] === '' && $args['clear_icon']) {
161
+				$font_size = $size == 'sm' ? '1.3' : ($size == 'lg' ? '1.65' : '1.5');
162 162
 				$args['input_group_right_inside'] = true;
163 163
 				$align_class = $aui_bs5 ? ' h-100 py-0' : '';
164
-				$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>';
164
+				$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 165
 			}
166 166
 
167 167
 			// open/type
168 168
 			$output .= '<input type="' . $type . '" ';
169 169
 
170 170
 			// name
171
-			if ( ! empty( $args['name'] ) ) {
172
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
171
+			if (!empty($args['name'])) {
172
+				$output .= ' name="' . esc_attr($args['name']) . '" ';
173 173
 			}
174 174
 
175 175
 			// id
176
-			if ( ! empty( $args['id'] ) ) {
177
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
176
+			if (!empty($args['id'])) {
177
+				$output .= ' id="' . sanitize_html_class($args['id']) . '" ';
178 178
 			}
179 179
 
180 180
 			// placeholder
181
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
182
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
181
+			if (isset($args['placeholder']) && '' != $args['placeholder']) {
182
+				$output .= ' placeholder="' . esc_attr($args['placeholder']) . '" ';
183 183
 			}
184 184
 
185 185
 			// title
186
-			if ( ! empty( $args['title'] ) ) {
187
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
186
+			if (!empty($args['title'])) {
187
+				$output .= ' title="' . esc_attr($args['title']) . '" ';
188 188
 			}
189 189
 
190 190
 			// value
191
-			if ( ! empty( $args['value'] ) ) {
192
-				$output .= AUI_Component_Helper::value( $args['value'] );
191
+			if (!empty($args['value'])) {
192
+				$output .= AUI_Component_Helper::value($args['value']);
193 193
 			}
194 194
 
195 195
 			// checked, for radio and checkboxes
196
-			if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
196
+			if (($type == 'checkbox' || $type == 'radio') && $args['checked']) {
197 197
 				$output .= ' checked ';
198 198
 			}
199 199
 
200 200
 			// validation text
201
-			if ( ! empty( $args['validation_text'] ) ) {
202
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
201
+			if (!empty($args['validation_text'])) {
202
+				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr(addslashes($args['validation_text'])) . '\')" ';
203 203
 				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
204 204
 			}
205 205
 
206 206
 			// validation_pattern
207
-			if ( ! empty( $args['validation_pattern'] ) ) {
208
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
207
+			if (!empty($args['validation_pattern'])) {
208
+				$output .= ' pattern="' . esc_attr($args['validation_pattern']) . '" ';
209 209
 			}
210 210
 
211 211
 			// step (for numbers)
212
-			if ( ! empty( $args['step'] ) ) {
212
+			if (!empty($args['step'])) {
213 213
 				$output .= ' step="' . $args['step'] . '" ';
214 214
 			}
215 215
 
216 216
 			// required
217
-			if ( ! empty( $args['required'] ) ) {
217
+			if (!empty($args['required'])) {
218 218
 				$output .= ' required ';
219 219
 			}
220 220
 
221 221
 			// class
222
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
223
-			$output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
222
+			$class = !empty($args['class']) ? AUI_Component_Helper::esc_classes($args['class']) : '';
223
+			$output .= $aui_bs5 && $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
224 224
 
225 225
 			// data-attributes
226
-			$output .= AUI_Component_Helper::data_attributes( $args );
226
+			$output .= AUI_Component_Helper::data_attributes($args);
227 227
 
228 228
 			// extra attributes
229
-			if ( ! empty( $args['extra_attributes'] ) ) {
230
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
229
+			if (!empty($args['extra_attributes'])) {
230
+				$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
231 231
 			}
232 232
 
233 233
 			// close
234 234
 			$output .= ' >';
235 235
 
236 236
 			// help text
237
-			if ( ! empty( $args['help_text'] ) ) {
238
-				$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
237
+			if (!empty($args['help_text'])) {
238
+				$help_text = AUI_Component_Helper::help_text($args['help_text']);
239 239
 			}
240 240
 
241 241
 			// label
242
-			if ( ! empty( $args['label'] ) ) {
242
+			if (!empty($args['label'])) {
243 243
 				$label_base_class = '';
244
-				if ( $type == 'file' ) {
244
+				if ($type == 'file') {
245 245
 					$label_base_class = ' custom-file-label';
246
-				} elseif ( $type == 'checkbox' ) {
247
-					if ( ! empty( $args['label_force_left'] ) ) {
248
-						$label_args['title'] = wp_kses_post( $args['help_text'] );
246
+				} elseif ($type == 'checkbox') {
247
+					if (!empty($args['label_force_left'])) {
248
+						$label_args['title'] = wp_kses_post($args['help_text']);
249 249
 						$help_text = '';
250 250
 						//$label_args['class'] .= ' d-inline ';
251 251
 						$args['wrap_class'] .= ' align-items-center ';
252
-					}else{
252
+					} else {
253 253
 
254 254
 					}
255 255
 
@@ -257,49 +257,49 @@  discard block
 block discarded – undo
257 257
 				}
258 258
 				$label_args['class'] .= $label_base_class;
259 259
 				$temp_label_args = $label_args;
260
-				if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
261
-				$label = self::label( $temp_label_args, $type );
260
+				if (!empty($args['label_force_left'])) {$temp_label_args['class'] = $label_base_class . " text-muted"; }
261
+				$label = self::label($temp_label_args, $type);
262 262
 			}
263 263
 
264 264
 
265 265
 
266 266
 
267 267
 			// set help text in the correct position
268
-			if ( $label_after ) {
268
+			if ($label_after) {
269 269
 				$output .= $label . $help_text;
270 270
 			}
271 271
 
272 272
 			// some input types need a separate wrap
273
-			if ( $type == 'file' ) {
274
-				$output = self::wrap( array(
273
+			if ($type == 'file') {
274
+				$output = self::wrap(array(
275 275
 					'content' => $output,
276 276
 					'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
277
-				) );
278
-			} elseif ( $type == 'checkbox' ) {
277
+				));
278
+			} elseif ($type == 'checkbox') {
279 279
 
280 280
 				$label_args['title'] = $args['label'];
281
-				$label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
282
-				$label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
283
-				$switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
284
-				if ( $aui_bs5 ) {
281
+				$label_col = AUI_Component_Helper::get_column_class($args['label_col'], 'label');
282
+				$label = !empty($args['label_force_left']) ? self::label($label_args, 'cb') : '<div class="' . $label_col . ' col-form-label"></div>';
283
+				$switch_size_class = $args['switch'] && !is_bool($args['switch']) ? ' custom-switch-' . esc_attr($args['switch']) : '';
284
+				if ($aui_bs5) {
285 285
 					$wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
286
-				}else{
287
-					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
286
+				} else {
287
+					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class : 'custom-checkbox';
288 288
 				}
289
-				if ( ! empty( $args['label_force_left'] ) ) {
289
+				if (!empty($args['label_force_left'])) {
290 290
 					$wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
291
-					$label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
291
+					$label = str_replace(array("form-check-label", "custom-control-label"), "", self::label($label_args, 'cb'));
292 292
 				}
293
-				$output     = self::wrap( array(
293
+				$output = self::wrap(array(
294 294
 					'content' => $output,
295 295
 					'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
296
-				) );
296
+				));
297 297
 
298
-				if ( $args['label_type'] == 'horizontal' ) {
299
-					$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
298
+				if ($args['label_type'] == 'horizontal') {
299
+					$input_col = AUI_Component_Helper::get_column_class($args['label_col'], 'input');
300 300
 					$output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
301 301
 				}
302
-			} elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
302
+			} elseif ($type == 'password' && $args['password_toggle'] && !$args['input_group_right']) {
303 303
 
304 304
 
305 305
 				// allow password field to toggle view
@@ -313,70 +313,70 @@  discard block
 block discarded – undo
313 313
 			}
314 314
 
315 315
 			// input group wraps
316
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
317
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
316
+			if ($args['input_group_left'] || $args['input_group_right']) {
317
+				$w100 = strpos($args['class'], 'w-100') !== false ? ' w-100' : '';
318 318
 				$group_size = $size == 'lg' ? ' input-group-lg' : '';
319 319
 				$group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
320 320
 
321
-				if ( $args['input_group_left'] ) {
322
-					$output = self::wrap( array(
321
+				if ($args['input_group_left']) {
322
+					$output = self::wrap(array(
323 323
 						'content'                 => $output,
324 324
 						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
325 325
 						'input_group_left'        => $args['input_group_left'],
326 326
 						'input_group_left_inside' => $args['input_group_left_inside']
327
-					) );
327
+					));
328 328
 				}
329
-				if ( $args['input_group_right'] ) {
330
-					$output = self::wrap( array(
329
+				if ($args['input_group_right']) {
330
+					$output = self::wrap(array(
331 331
 						'content'                  => $output,
332 332
 						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
333 333
 						'input_group_right'        => $args['input_group_right'],
334 334
 						'input_group_right_inside' => $args['input_group_right_inside']
335
-					) );
335
+					));
336 336
 				}
337 337
 
338 338
 			}
339 339
 
340
-			if ( ! $label_after ) {
340
+			if (!$label_after) {
341 341
 				$output .= $help_text;
342 342
 			}
343 343
 
344 344
 
345
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
346
-				$output = self::wrap( array(
345
+			if ($args['label_type'] == 'horizontal' && $type != 'checkbox') {
346
+				$output = self::wrap(array(
347 347
 					'content' => $output,
348
-					'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
349
-				) );
348
+					'class'   => AUI_Component_Helper::get_column_class($args['label_col'], 'input')
349
+				));
350 350
 			}
351 351
 
352
-			if ( ! $label_after ) {
352
+			if (!$label_after) {
353 353
 				$output = $label . $output;
354 354
 			}
355 355
 
356 356
 			// wrap
357
-			if ( ! $args['no_wrap'] ) {
358
-				if ( ! empty( $args['form_group_class'] ) ) {
359
-					$fg_class = esc_attr( $args['form_group_class'] );
360
-				}else{
357
+			if (!$args['no_wrap']) {
358
+				if (!empty($args['form_group_class'])) {
359
+					$fg_class = esc_attr($args['form_group_class']);
360
+				} else {
361 361
 					$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
362 362
 				}
363 363
 				$form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
364 364
 				$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
365
-				$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
366
-				$output           = self::wrap( array(
365
+				$wrap_class       = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
366
+				$output           = self::wrap(array(
367 367
 					'content'         => $output,
368 368
 					'class'           => $wrap_class,
369 369
 					'element_require' => $args['element_require'],
370 370
 					'argument_id'     => $args['id'],
371 371
 					'wrap_attributes' => $args['wrap_attributes'],
372
-				) );
372
+				));
373 373
 			}
374 374
 		}
375 375
 
376 376
 		return $output;
377 377
 	}
378 378
 
379
-	public static function label( $args = array(), $type = '' ) {
379
+	public static function label($args = array(), $type = '') {
380 380
 		global $aui_bs5;
381 381
 		//<label for="exampleInputEmail1">Email address</label>
382 382
 		$defaults = array(
@@ -390,35 +390,35 @@  discard block
 block discarded – undo
390 390
 		/**
391 391
 		 * Parse incoming $args into an array and merge it with $defaults
392 392
 		 */
393
-		$args   = wp_parse_args( $args, $defaults );
393
+		$args   = wp_parse_args($args, $defaults);
394 394
 		$output = '';
395 395
 
396
-		if ( $args['title'] ) {
396
+		if ($args['title']) {
397 397
 
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 402
 				$class = 'sr-only ' . $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 ){ $class .= ' form-label'; }
410
+			if ($aui_bs5) { $class .= ' form-label'; }
411 411
 
412 412
 			// open
413 413
 			$output .= '<label ';
414 414
 
415 415
 			// for
416
-			if ( ! empty( $args['for'] ) ) {
417
-				$output .= ' for="' . esc_attr( $args['for'] ) . '" ';
416
+			if (!empty($args['for'])) {
417
+				$output .= ' for="' . esc_attr($args['for']) . '" ';
418 418
 			}
419 419
 
420 420
 			// class
421
-			$class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
421
+			$class = $class ? AUI_Component_Helper::esc_classes($class) : '';
422 422
 			$output .= ' class="' . $class . '" ';
423 423
 
424 424
 			// close
@@ -426,8 +426,8 @@  discard block
 block discarded – undo
426 426
 
427 427
 
428 428
 			// title, don't escape fully as can contain html
429
-			if ( ! empty( $args['title'] ) ) {
430
-				$output .= wp_kses_post( $args['title'] );
429
+			if (!empty($args['title'])) {
430
+				$output .= wp_kses_post($args['title']);
431 431
 			}
432 432
 
433 433
 			// close wrap
@@ -447,7 +447,7 @@  discard block
 block discarded – undo
447 447
 	 *
448 448
 	 * @return string
449 449
 	 */
450
-	public static function wrap( $args = array() ) {
450
+	public static function wrap($args = array()) {
451 451
 		global $aui_bs5;
452 452
 		$defaults = array(
453 453
 			'type'                     => 'div',
@@ -465,31 +465,31 @@  discard block
 block discarded – undo
465 465
 		/**
466 466
 		 * Parse incoming $args into an array and merge it with $defaults
467 467
 		 */
468
-		$args   = wp_parse_args( $args, $defaults );
468
+		$args   = wp_parse_args($args, $defaults);
469 469
 		$output = '';
470
-		if ( $args['type'] ) {
470
+		if ($args['type']) {
471 471
 
472 472
 			// open
473
-			$output .= '<' . sanitize_html_class( $args['type'] );
473
+			$output .= '<' . sanitize_html_class($args['type']);
474 474
 
475 475
 			// element require
476
-			if ( ! empty( $args['element_require'] ) ) {
477
-				$output .= AUI_Component_Helper::element_require( $args['element_require'] );
476
+			if (!empty($args['element_require'])) {
477
+				$output .= AUI_Component_Helper::element_require($args['element_require']);
478 478
 				$args['class'] .= " aui-conditional-field";
479 479
 			}
480 480
 
481 481
 			// argument_id
482
-			if ( ! empty( $args['argument_id'] ) ) {
483
-				$output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
482
+			if (!empty($args['argument_id'])) {
483
+				$output .= ' data-argument="' . esc_attr($args['argument_id']) . '"';
484 484
 			}
485 485
 
486 486
 			// class
487
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
487
+			$class = !empty($args['class']) ? AUI_Component_Helper::esc_classes($args['class']) : '';
488 488
 			$output .= ' class="' . $class . '" ';
489 489
 
490 490
 			// Attributes
491
-			if ( ! empty( $args['wrap_attributes'] ) ) {
492
-				$output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
491
+			if (!empty($args['wrap_attributes'])) {
492
+				$output .= AUI_Component_Helper::extra_attributes($args['wrap_attributes']);
493 493
 			}
494 494
 
495 495
 			// close wrap
@@ -497,9 +497,9 @@  discard block
 block discarded – undo
497 497
 
498 498
 
499 499
 			// Input group left
500
-			if ( ! empty( $args['input_group_left'] ) ) {
501
-				$position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
502
-				$input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
500
+			if (!empty($args['input_group_left'])) {
501
+				$position_class   = !empty($args['input_group_left_inside']) ? 'position-absolute h-100' : '';
502
+				$input_group_left = strpos($args['input_group_left'], '<') !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
503 503
 				$output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
504 504
 //				$output .= '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
505 505
 			}
@@ -508,16 +508,16 @@  discard block
 block discarded – undo
508 508
 			$output .= $args['content'];
509 509
 
510 510
 			// Input group right
511
-			if ( ! empty( $args['input_group_right'] ) ) {
512
-				$position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
513
-				$input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
514
-				$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>';
511
+			if (!empty($args['input_group_right'])) {
512
+				$position_class    = !empty($args['input_group_right_inside']) ? 'position-absolute h-100' : '';
513
+				$input_group_right = strpos($args['input_group_right'], '<') !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
514
+				$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>';
515 515
 //				$output .= '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
516 516
 			}
517 517
 
518 518
 
519 519
 			// close wrap
520
-			$output .= '</' . sanitize_html_class( $args['type'] ) . '>';
520
+			$output .= '</' . sanitize_html_class($args['type']) . '>';
521 521
 
522 522
 
523 523
 		} else {
@@ -534,7 +534,7 @@  discard block
 block discarded – undo
534 534
 	 *
535 535
 	 * @return string The rendered component.
536 536
 	 */
537
-	public static function textarea( $args = array() ) {
537
+	public static function textarea($args = array()) {
538 538
 		global $aui_bs5;
539 539
 
540 540
 		$defaults = array(
@@ -574,7 +574,7 @@  discard block
 block discarded – undo
574 574
 		/**
575 575
 		 * Parse incoming $args into an array and merge it with $defaults
576 576
 		 */
577
-		$args   = wp_parse_args( $args, $defaults );
577
+		$args   = wp_parse_args($args, $defaults);
578 578
 		$output = '';
579 579
 		$label = '';
580 580
 
@@ -582,21 +582,21 @@  discard block
 block discarded – undo
582 582
 		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
583 583
 
584 584
 		// floating labels don't work with wysiwyg so set it as top
585
-		if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
585
+		if ($args['label_type'] == 'floating' && !empty($args['wysiwyg'])) {
586 586
 			$args['label_type'] = 'top';
587 587
 		}
588 588
 
589 589
 		$label_after = $args['label_after'];
590 590
 
591 591
 		// floating labels need label after
592
-		if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
592
+		if ($args['label_type'] == 'floating' && empty($args['wysiwyg'])) {
593 593
 			$label_after         = true;
594 594
 			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
595 595
 		}
596 596
 
597 597
 		// label
598
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
599
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
598
+		if (!empty($args['label']) && is_array($args['label'])) {
599
+		} elseif (!empty($args['label']) && !$label_after) {
600 600
 			$label_args = array(
601 601
 				'title'      => $args['label'],
602 602
 				'for'        => $args['id'],
@@ -604,34 +604,34 @@  discard block
 block discarded – undo
604 604
 				'label_type' => $args['label_type'],
605 605
 				'label_col'  => $args['label_col']
606 606
 			);
607
-			$label .= self::label( $label_args );
607
+			$label .= self::label($label_args);
608 608
 		}
609 609
 
610 610
 		// maybe horizontal label
611
-		if ( $args['label_type'] == 'horizontal' ) {
612
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
611
+		if ($args['label_type'] == 'horizontal') {
612
+			$input_col = AUI_Component_Helper::get_column_class($args['label_col'], 'input');
613 613
 			$label .= '<div class="' . $input_col . '">';
614 614
 		}
615 615
 
616
-		if ( ! empty( $args['wysiwyg'] ) ) {
616
+		if (!empty($args['wysiwyg'])) {
617 617
 			ob_start();
618 618
 			$content   = $args['value'];
619
-			$editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
619
+			$editor_id = !empty($args['id']) ? sanitize_html_class($args['id']) : 'wp_editor';
620 620
 			$settings  = array(
621
-				'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
621
+				'textarea_rows' => !empty(absint($args['rows'])) ? absint($args['rows']) : 4,
622 622
 				'quicktags'     => false,
623 623
 				'media_buttons' => false,
624 624
 				'editor_class'  => 'form-control',
625
-				'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
625
+				'textarea_name' => !empty($args['name']) ? sanitize_html_class($args['name']) : sanitize_html_class($args['id']),
626 626
 				'teeny'         => true,
627 627
 			);
628 628
 
629 629
 			// maybe set settings if array
630
-			if ( is_array( $args['wysiwyg'] ) ) {
631
-				$settings = wp_parse_args( $args['wysiwyg'], $settings );
630
+			if (is_array($args['wysiwyg'])) {
631
+				$settings = wp_parse_args($args['wysiwyg'], $settings);
632 632
 			}
633 633
 
634
-			wp_editor( $content, $editor_id, $settings );
634
+			wp_editor($content, $editor_id, $settings);
635 635
 			$output .= ob_get_clean();
636 636
 		} else {
637 637
 
@@ -639,65 +639,65 @@  discard block
 block discarded – undo
639 639
 			$output .= '<textarea ';
640 640
 
641 641
 			// name
642
-			if ( ! empty( $args['name'] ) ) {
643
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
642
+			if (!empty($args['name'])) {
643
+				$output .= ' name="' . esc_attr($args['name']) . '" ';
644 644
 			}
645 645
 
646 646
 			// id
647
-			if ( ! empty( $args['id'] ) ) {
648
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
647
+			if (!empty($args['id'])) {
648
+				$output .= ' id="' . sanitize_html_class($args['id']) . '" ';
649 649
 			}
650 650
 
651 651
 			// placeholder
652
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
653
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
652
+			if (isset($args['placeholder']) && '' != $args['placeholder']) {
653
+				$output .= ' placeholder="' . esc_attr($args['placeholder']) . '" ';
654 654
 			}
655 655
 
656 656
 			// title
657
-			if ( ! empty( $args['title'] ) ) {
658
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
657
+			if (!empty($args['title'])) {
658
+				$output .= ' title="' . esc_attr($args['title']) . '" ';
659 659
 			}
660 660
 
661 661
 			// validation text
662
-			if ( ! empty( $args['validation_text'] ) ) {
663
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
662
+			if (!empty($args['validation_text'])) {
663
+				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr(addslashes($args['validation_text'])) . '\')" ';
664 664
 				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
665 665
 			}
666 666
 
667 667
 			// validation_pattern
668
-			if ( ! empty( $args['validation_pattern'] ) ) {
669
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
668
+			if (!empty($args['validation_pattern'])) {
669
+				$output .= ' pattern="' . esc_attr($args['validation_pattern']) . '" ';
670 670
 			}
671 671
 
672 672
 			// required
673
-			if ( ! empty( $args['required'] ) ) {
673
+			if (!empty($args['required'])) {
674 674
 				$output .= ' required ';
675 675
 			}
676 676
 
677 677
 			// rows
678
-			if ( ! empty( $args['rows'] ) ) {
679
-				$output .= ' rows="' . absint( $args['rows'] ) . '" ';
678
+			if (!empty($args['rows'])) {
679
+				$output .= ' rows="' . absint($args['rows']) . '" ';
680 680
 			}
681 681
 
682 682
 
683 683
 			// class
684
-			$class = ! empty( $args['class'] ) ? $args['class'] : '';
684
+			$class = !empty($args['class']) ? $args['class'] : '';
685 685
 			$output .= ' class="form-control ' . $class . '" ';
686 686
 
687 687
 			// extra attributes
688
-			if ( ! empty( $args['extra_attributes'] ) ) {
689
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
688
+			if (!empty($args['extra_attributes'])) {
689
+				$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
690 690
 			}
691 691
 
692 692
 			// close tag
693 693
 			$output .= ' >';
694 694
 
695 695
 			// value
696
-			if ( ! empty( $args['value'] ) ) {
697
-				if ( ! empty( $args['allow_tags'] ) ) {
698
-					$output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
696
+			if (!empty($args['value'])) {
697
+				if (!empty($args['allow_tags'])) {
698
+					$output .= AUI_Component_Helper::sanitize_html_field($args['value'], $args); // Sanitize HTML.
699 699
 				} else {
700
-					$output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
700
+					$output .= AUI_Component_Helper::sanitize_textarea_field($args['value']);
701 701
 				}
702 702
 			}
703 703
 
@@ -706,23 +706,23 @@  discard block
 block discarded – undo
706 706
 
707 707
 
708 708
 			// input group wraps
709
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
710
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
711
-				if ( $args['input_group_left'] ) {
712
-					$output = self::wrap( array(
709
+			if ($args['input_group_left'] || $args['input_group_right']) {
710
+				$w100 = strpos($args['class'], 'w-100') !== false ? ' w-100' : '';
711
+				if ($args['input_group_left']) {
712
+					$output = self::wrap(array(
713 713
 						'content'                 => $output,
714 714
 						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
715 715
 						'input_group_left'        => $args['input_group_left'],
716 716
 						'input_group_left_inside' => $args['input_group_left_inside']
717
-					) );
717
+					));
718 718
 				}
719
-				if ( $args['input_group_right'] ) {
720
-					$output = self::wrap( array(
719
+				if ($args['input_group_right']) {
720
+					$output = self::wrap(array(
721 721
 						'content'                  => $output,
722 722
 						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
723 723
 						'input_group_right'        => $args['input_group_right'],
724 724
 						'input_group_right_inside' => $args['input_group_right_inside']
725
-					) );
725
+					));
726 726
 				}
727 727
 
728 728
 			}
@@ -730,7 +730,7 @@  discard block
 block discarded – undo
730 730
 
731 731
 		}
732 732
 
733
-		if ( ! empty( $args['label'] ) && $label_after ) {
733
+		if (!empty($args['label']) && $label_after) {
734 734
 			$label_args = array(
735 735
 				'title'      => $args['label'],
736 736
 				'for'        => $args['id'],
@@ -738,41 +738,41 @@  discard block
 block discarded – undo
738 738
 				'label_type' => $args['label_type'],
739 739
 				'label_col'  => $args['label_col']
740 740
 			);
741
-			$output .= self::label( $label_args );
741
+			$output .= self::label($label_args);
742 742
 		}
743 743
 
744 744
 		// help text
745
-		if ( ! empty( $args['help_text'] ) ) {
746
-			$output .= AUI_Component_Helper::help_text( $args['help_text'] );
745
+		if (!empty($args['help_text'])) {
746
+			$output .= AUI_Component_Helper::help_text($args['help_text']);
747 747
 		}
748 748
 
749
-		if ( ! $label_after ) {
749
+		if (!$label_after) {
750 750
 			$output = $label . $output;
751 751
 		}
752 752
 
753 753
 		// maybe horizontal label
754
-		if ( $args['label_type'] == 'horizontal' ) {
754
+		if ($args['label_type'] == 'horizontal') {
755 755
 			$output .= '</div>';
756 756
 		}
757 757
 
758 758
 
759 759
 		// wrap
760
-		if ( ! $args['no_wrap'] ) {
761
-			if ( ! empty( $args['form_group_class'] ) ) {
762
-				$fg_class = esc_attr( $args['form_group_class'] );
763
-			}else{
760
+		if (!$args['no_wrap']) {
761
+			if (!empty($args['form_group_class'])) {
762
+				$fg_class = esc_attr($args['form_group_class']);
763
+			} else {
764 764
 				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
765 765
 			}
766 766
 			$form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
767 767
 			$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
768
-			$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
769
-			$output           = self::wrap( array(
768
+			$wrap_class       = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
769
+			$output           = self::wrap(array(
770 770
 				'content'         => $output,
771 771
 				'class'           => $wrap_class,
772 772
 				'element_require' => $args['element_require'],
773 773
 				'argument_id'     => $args['id'],
774 774
 				'wrap_attributes' => $args['wrap_attributes'],
775
-			) );
775
+			));
776 776
 		}
777 777
 
778 778
 
@@ -786,7 +786,7 @@  discard block
 block discarded – undo
786 786
 	 *
787 787
 	 * @return string The rendered component.
788 788
 	 */
789
-	public static function select( $args = array() ) {
789
+	public static function select($args = array()) {
790 790
 		global $aui_bs5;
791 791
 		$defaults = array(
792 792
 			'class'            => '',
@@ -825,11 +825,11 @@  discard block
 block discarded – undo
825 825
 		/**
826 826
 		 * Parse incoming $args into an array and merge it with $defaults
827 827
 		 */
828
-		$args   = wp_parse_args( $args, $defaults );
828
+		$args   = wp_parse_args($args, $defaults);
829 829
 		$output = '';
830 830
 
831 831
 		// for now lets hide floating labels
832
-		if ( $args['label_type'] == 'floating' ) {
832
+		if ($args['label_type'] == 'floating') {
833 833
 			$args['label_type'] = 'hidden';
834 834
 		}
835 835
 
@@ -840,90 +840,90 @@  discard block
 block discarded – undo
840 840
 		$label_after = $args['label_after'];
841 841
 
842 842
 		// floating labels need label after
843
-		if ( $args['label_type'] == 'floating' ) {
843
+		if ($args['label_type'] == 'floating') {
844 844
 			$label_after         = true;
845 845
 			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
846 846
 		}
847 847
 
848 848
 		// Maybe setup select2
849 849
 		$is_select2 = false;
850
-		if ( ! empty( $args['select2'] ) ) {
850
+		if (!empty($args['select2'])) {
851 851
 			$args['class'] .= ' aui-select2';
852 852
 			$is_select2 = true;
853
-		} elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
853
+		} elseif (strpos($args['class'], 'aui-select2') !== false) {
854 854
 			$is_select2 = true;
855 855
 		}
856 856
 
857 857
 		// select2 tags
858
-		if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
858
+		if (!empty($args['select2']) && $args['select2'] === 'tags') { // triple equals needed here for some reason
859 859
 			$args['data-tags']             = 'true';
860 860
 			$args['data-token-separators'] = "[',']";
861 861
 			$args['multiple']              = true;
862 862
 		}
863 863
 
864 864
 		// select2 placeholder
865
-		if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
866
-			$args['data-placeholder'] = esc_attr( $args['placeholder'] );
867
-			$args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
865
+		if ($is_select2 && isset($args['placeholder']) && '' != $args['placeholder'] && empty($args['data-placeholder'])) {
866
+			$args['data-placeholder'] = esc_attr($args['placeholder']);
867
+			$args['data-allow-clear'] = isset($args['data-allow-clear']) ? (bool) $args['data-allow-clear'] : true;
868 868
 		}
869 869
 
870 870
 		// Set hidden input to save empty value for multiselect.
871
-		if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
872
-			$output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
871
+		if (!empty($args['multiple']) && !empty($args['name'])) {
872
+			$output .= '<input type="hidden" ' . AUI_Component_Helper::name($args['name']) . ' value="" data-ignore-rule/>';
873 873
 		}
874 874
 
875 875
 		// open/type
876 876
 		$output .= '<select ';
877 877
 
878 878
 		// style
879
-		if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
879
+		if ($is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
880 880
 			$output .= " style='width:100%;' ";
881 881
 		}
882 882
 
883 883
 		// element require
884
-		if ( ! empty( $args['element_require'] ) ) {
885
-			$output .= AUI_Component_Helper::element_require( $args['element_require'] );
884
+		if (!empty($args['element_require'])) {
885
+			$output .= AUI_Component_Helper::element_require($args['element_require']);
886 886
 			$args['class'] .= " aui-conditional-field";
887 887
 		}
888 888
 
889 889
 		// class
890
-		$class = ! empty( $args['class'] ) ? $args['class'] : '';
890
+		$class = !empty($args['class']) ? $args['class'] : '';
891 891
 		$select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
892
-		$output .= AUI_Component_Helper::class_attr( $select_class . $class );
892
+		$output .= AUI_Component_Helper::class_attr($select_class . $class);
893 893
 
894 894
 		// name
895
-		if ( ! empty( $args['name'] ) ) {
896
-			$output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
895
+		if (!empty($args['name'])) {
896
+			$output .= AUI_Component_Helper::name($args['name'], $args['multiple']);
897 897
 		}
898 898
 
899 899
 		// id
900
-		if ( ! empty( $args['id'] ) ) {
901
-			$output .= AUI_Component_Helper::id( $args['id'] );
900
+		if (!empty($args['id'])) {
901
+			$output .= AUI_Component_Helper::id($args['id']);
902 902
 		}
903 903
 
904 904
 		// title
905
-		if ( ! empty( $args['title'] ) ) {
906
-			$output .= AUI_Component_Helper::title( $args['title'] );
905
+		if (!empty($args['title'])) {
906
+			$output .= AUI_Component_Helper::title($args['title']);
907 907
 		}
908 908
 
909 909
 		// data-attributes
910
-		$output .= AUI_Component_Helper::data_attributes( $args );
910
+		$output .= AUI_Component_Helper::data_attributes($args);
911 911
 
912 912
 		// aria-attributes
913
-		$output .= AUI_Component_Helper::aria_attributes( $args );
913
+		$output .= AUI_Component_Helper::aria_attributes($args);
914 914
 
915 915
 		// extra attributes
916
-		if ( ! empty( $args['extra_attributes'] ) ) {
917
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
916
+		if (!empty($args['extra_attributes'])) {
917
+			$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
918 918
 		}
919 919
 
920 920
 		// required
921
-		if ( ! empty( $args['required'] ) ) {
921
+		if (!empty($args['required'])) {
922 922
 			$output .= ' required ';
923 923
 		}
924 924
 
925 925
 		// multiple
926
-		if ( ! empty( $args['multiple'] ) ) {
926
+		if (!empty($args['multiple'])) {
927 927
 			$output .= ' multiple ';
928 928
 		}
929 929
 
@@ -931,50 +931,50 @@  discard block
 block discarded – undo
931 931
 		$output .= ' >';
932 932
 
933 933
 		// placeholder
934
-		if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
935
-			$output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
936
-		} elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
934
+		if (isset($args['placeholder']) && '' != $args['placeholder'] && !$is_select2) {
935
+			$output .= '<option value="" disabled selected hidden>' . esc_attr($args['placeholder']) . '</option>';
936
+		} elseif ($is_select2 && !empty($args['placeholder'])) {
937 937
 			$output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
938 938
 		}
939 939
 
940 940
 		// Options
941
-		if ( ! empty( $args['options'] ) ) {
941
+		if (!empty($args['options'])) {
942 942
 
943
-			if ( ! is_array( $args['options'] ) ) {
943
+			if (!is_array($args['options'])) {
944 944
 				$output .= $args['options']; // not the preferred way but an option
945 945
 			} else {
946
-				foreach ( $args['options'] as $val => $name ) {
946
+				foreach ($args['options'] as $val => $name) {
947 947
 					$selected = '';
948
-					if ( is_array( $name ) ) {
949
-						if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
950
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
948
+					if (is_array($name)) {
949
+						if (isset($name['optgroup']) && ($name['optgroup'] == 'start' || $name['optgroup'] == 'end')) {
950
+							$option_label = isset($name['label']) ? $name['label'] : '';
951 951
 
952
-							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
952
+							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr($option_label) . '">' : '</optgroup>';
953 953
 						} else {
954
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
955
-							$option_value = isset( $name['value'] ) ? $name['value'] : '';
956
-							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
957
-							if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
958
-								$selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
959
-							} elseif ( ! empty( $args['value'] ) ) {
960
-								$selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
961
-							} elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
962
-								$selected = selected( $option_value, $args['value'], false );
954
+							$option_label = isset($name['label']) ? $name['label'] : '';
955
+							$option_value = isset($name['value']) ? $name['value'] : '';
956
+							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes($name['extra_attributes']) : '';
957
+							if (!empty($args['multiple']) && !empty($args['value']) && is_array($args['value'])) {
958
+								$selected = in_array($option_value, stripslashes_deep($args['value'])) ? "selected" : "";
959
+							} elseif (!empty($args['value'])) {
960
+								$selected = selected($option_value, stripslashes_deep($args['value']), false);
961
+							} elseif (empty($args['value']) && $args['value'] === $option_value) {
962
+								$selected = selected($option_value, $args['value'], false);
963 963
 							}
964 964
 
965
-							$output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
965
+							$output .= '<option value="' . esc_attr($option_value) . '" ' . $selected . ' ' . $extra_attributes . '>' . $option_label . '</option>';
966 966
 						}
967 967
 					} else {
968
-						if ( ! empty( $args['value'] ) ) {
969
-							if ( is_array( $args['value'] ) ) {
970
-								$selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
971
-							} elseif ( ! empty( $args['value'] ) ) {
972
-								$selected = selected( $args['value'], $val, false );
968
+						if (!empty($args['value'])) {
969
+							if (is_array($args['value'])) {
970
+								$selected = in_array($val, $args['value']) ? 'selected="selected"' : '';
971
+							} elseif (!empty($args['value'])) {
972
+								$selected = selected($args['value'], $val, false);
973 973
 							}
974
-						} elseif ( $args['value'] === $val ) {
975
-							$selected = selected( $args['value'], $val, false );
974
+						} elseif ($args['value'] === $val) {
975
+							$selected = selected($args['value'], $val, false);
976 976
 						}
977
-						$output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
977
+						$output .= '<option value="' . esc_attr($val) . '" ' . $selected . '>' . esc_attr($name) . '</option>';
978 978
 					}
979 979
 				}
980 980
 			}
@@ -987,8 +987,8 @@  discard block
 block discarded – undo
987 987
 		$label = '';
988 988
 		$help_text = '';
989 989
 		// label
990
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
991
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
990
+		if (!empty($args['label']) && is_array($args['label'])) {
991
+		} elseif (!empty($args['label']) && !$label_after) {
992 992
 			$label_args = array(
993 993
 				'title'      => $args['label'],
994 994
 				'for'        => $args['id'],
@@ -996,49 +996,49 @@  discard block
 block discarded – undo
996 996
 				'label_type' => $args['label_type'],
997 997
 				'label_col'  => $args['label_col']
998 998
 			);
999
-			$label = self::label( $label_args );
999
+			$label = self::label($label_args);
1000 1000
 		}
1001 1001
 
1002 1002
 		// help text
1003
-		if ( ! empty( $args['help_text'] ) ) {
1004
-			$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1003
+		if (!empty($args['help_text'])) {
1004
+			$help_text = AUI_Component_Helper::help_text($args['help_text']);
1005 1005
 		}
1006 1006
 
1007 1007
 		// input group wraps
1008
-		if ( $args['input_group_left'] || $args['input_group_right'] ) {
1009
-			$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1010
-			if ( $args['input_group_left'] ) {
1011
-				$output = self::wrap( array(
1008
+		if ($args['input_group_left'] || $args['input_group_right']) {
1009
+			$w100 = strpos($args['class'], 'w-100') !== false ? ' w-100' : '';
1010
+			if ($args['input_group_left']) {
1011
+				$output = self::wrap(array(
1012 1012
 					'content'                 => $output,
1013 1013
 					'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1014 1014
 					'input_group_left'        => $args['input_group_left'],
1015 1015
 					'input_group_left_inside' => $args['input_group_left_inside']
1016
-				) );
1016
+				));
1017 1017
 			}
1018
-			if ( $args['input_group_right'] ) {
1019
-				$output = self::wrap( array(
1018
+			if ($args['input_group_right']) {
1019
+				$output = self::wrap(array(
1020 1020
 					'content'                  => $output,
1021 1021
 					'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1022 1022
 					'input_group_right'        => $args['input_group_right'],
1023 1023
 					'input_group_right_inside' => $args['input_group_right_inside']
1024
-				) );
1024
+				));
1025 1025
 			}
1026 1026
 
1027 1027
 		}
1028 1028
 
1029
-		if ( ! $label_after ) {
1029
+		if (!$label_after) {
1030 1030
 			$output .= $help_text;
1031 1031
 		}
1032 1032
 
1033 1033
 
1034
-		if ( $args['label_type'] == 'horizontal' ) {
1035
-			$output = self::wrap( array(
1034
+		if ($args['label_type'] == 'horizontal') {
1035
+			$output = self::wrap(array(
1036 1036
 				'content' => $output,
1037
-				'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1038
-			) );
1037
+				'class'   => AUI_Component_Helper::get_column_class($args['label_col'], 'input')
1038
+			));
1039 1039
 		}
1040 1040
 
1041
-		if ( ! $label_after ) {
1041
+		if (!$label_after) {
1042 1042
 			$output = $label . $output;
1043 1043
 		}
1044 1044
 
@@ -1049,21 +1049,21 @@  discard block
 block discarded – undo
1049 1049
 
1050 1050
 
1051 1051
 		// wrap
1052
-		if ( ! $args['no_wrap'] ) {
1053
-			if ( ! empty( $args['form_group_class'] ) ) {
1054
-				$fg_class = esc_attr( $args['form_group_class'] );
1055
-			}else{
1052
+		if (!$args['no_wrap']) {
1053
+			if (!empty($args['form_group_class'])) {
1054
+				$fg_class = esc_attr($args['form_group_class']);
1055
+			} else {
1056 1056
 				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1057 1057
 			}
1058 1058
 			$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1059
-			$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1060
-			$output     = self::wrap( array(
1059
+			$wrap_class = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1060
+			$output     = self::wrap(array(
1061 1061
 				'content'         => $output,
1062 1062
 				'class'           => $wrap_class,
1063 1063
 				'element_require' => $args['element_require'],
1064 1064
 				'argument_id'     => $args['id'],
1065 1065
 				'wrap_attributes' => $args['wrap_attributes'],
1066
-			) );
1066
+			));
1067 1067
 		}
1068 1068
 
1069 1069
 
@@ -1077,7 +1077,7 @@  discard block
 block discarded – undo
1077 1077
 	 *
1078 1078
 	 * @return string The rendered component.
1079 1079
 	 */
1080
-	public static function radio( $args = array() ) {
1080
+	public static function radio($args = array()) {
1081 1081
 		global $aui_bs5;
1082 1082
 
1083 1083
 		$defaults = array(
@@ -1109,10 +1109,10 @@  discard block
 block discarded – undo
1109 1109
 		/**
1110 1110
 		 * Parse incoming $args into an array and merge it with $defaults
1111 1111
 		 */
1112
-		$args = wp_parse_args( $args, $defaults );
1112
+		$args = wp_parse_args($args, $defaults);
1113 1113
 
1114 1114
 		// for now lets use horizontal for floating
1115
-		if ( $args['label_type'] == 'floating' ) {
1115
+		if ($args['label_type'] == 'floating') {
1116 1116
 			$args['label_type'] = 'horizontal';
1117 1117
 		}
1118 1118
 
@@ -1123,10 +1123,10 @@  discard block
 block discarded – undo
1123 1123
 			'label_col'  => $args['label_col']
1124 1124
 		);
1125 1125
 
1126
-		if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1126
+		if ($args['label_type'] == 'top' || $args['label_type'] == 'hidden') {
1127 1127
 			$label_args['class'] .= 'd-block ';
1128 1128
 
1129
-			if ( $args['label_type'] == 'hidden' ) {
1129
+			if ($args['label_type'] == 'hidden') {
1130 1130
 				$label_args['class'] .= 'sr-only ';
1131 1131
 			}
1132 1132
 		}
@@ -1134,48 +1134,48 @@  discard block
 block discarded – undo
1134 1134
 		$output = '';
1135 1135
 
1136 1136
 		// label before
1137
-		if ( ! empty( $args['label'] ) ) {
1138
-			$output .= self::label( $label_args, 'radio' );
1137
+		if (!empty($args['label'])) {
1138
+			$output .= self::label($label_args, 'radio');
1139 1139
 		}
1140 1140
 
1141 1141
 		// maybe horizontal label
1142
-		if ( $args['label_type'] == 'horizontal' ) {
1143
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1142
+		if ($args['label_type'] == 'horizontal') {
1143
+			$input_col = AUI_Component_Helper::get_column_class($args['label_col'], 'input');
1144 1144
 			$output .= '<div class="' . $input_col . '">';
1145 1145
 		}
1146 1146
 
1147
-		if ( ! empty( $args['options'] ) ) {
1147
+		if (!empty($args['options'])) {
1148 1148
 			$count = 0;
1149
-			foreach ( $args['options'] as $value => $label ) {
1149
+			foreach ($args['options'] as $value => $label) {
1150 1150
 				$option_args            = $args;
1151 1151
 				$option_args['value']   = $value;
1152 1152
 				$option_args['label']   = $label;
1153 1153
 				$option_args['checked'] = $value == $args['value'] ? true : false;
1154
-				$output .= self::radio_option( $option_args, $count );
1155
-				$count ++;
1154
+				$output .= self::radio_option($option_args, $count);
1155
+				$count++;
1156 1156
 			}
1157 1157
 		}
1158 1158
 
1159 1159
 		// help text
1160
-		$help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1160
+		$help_text = !empty($args['help_text']) ? AUI_Component_Helper::help_text($args['help_text']) : '';
1161 1161
 		$output .= $help_text;
1162 1162
 
1163 1163
 		// maybe horizontal label
1164
-		if ( $args['label_type'] == 'horizontal' ) {
1164
+		if ($args['label_type'] == 'horizontal') {
1165 1165
 			$output .= '</div>';
1166 1166
 		}
1167 1167
 
1168 1168
 		// wrap
1169 1169
 		$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1170 1170
 		$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1171
-		$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1172
-		$output     = self::wrap( array(
1171
+		$wrap_class = !empty($args['wrap_class']) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1172
+		$output     = self::wrap(array(
1173 1173
 			'content'         => $output,
1174 1174
 			'class'           => $wrap_class,
1175 1175
 			'element_require' => $args['element_require'],
1176 1176
 			'argument_id'     => $args['id'],
1177 1177
 			'wrap_attributes' => $args['wrap_attributes'],
1178
-		) );
1178
+		));
1179 1179
 
1180 1180
 
1181 1181
 		return $output;
@@ -1188,7 +1188,7 @@  discard block
 block discarded – undo
1188 1188
 	 *
1189 1189
 	 * @return string The rendered component.
1190 1190
 	 */
1191
-	public static function radio_option( $args = array(), $count = '' ) {
1191
+	public static function radio_option($args = array(), $count = '') {
1192 1192
 		$defaults = array(
1193 1193
 			'class'            => '',
1194 1194
 			'id'               => '',
@@ -1206,7 +1206,7 @@  discard block
 block discarded – undo
1206 1206
 		/**
1207 1207
 		 * Parse incoming $args into an array and merge it with $defaults
1208 1208
 		 */
1209
-		$args = wp_parse_args( $args, $defaults );
1209
+		$args = wp_parse_args($args, $defaults);
1210 1210
 
1211 1211
 		$output = '';
1212 1212
 
@@ -1217,43 +1217,43 @@  discard block
 block discarded – undo
1217 1217
 		$output .= ' class="form-check-input" ';
1218 1218
 
1219 1219
 		// name
1220
-		if ( ! empty( $args['name'] ) ) {
1221
-			$output .= AUI_Component_Helper::name( $args['name'] );
1220
+		if (!empty($args['name'])) {
1221
+			$output .= AUI_Component_Helper::name($args['name']);
1222 1222
 		}
1223 1223
 
1224 1224
 		// id
1225
-		if ( ! empty( $args['id'] ) ) {
1226
-			$output .= AUI_Component_Helper::id( $args['id'] . $count );
1225
+		if (!empty($args['id'])) {
1226
+			$output .= AUI_Component_Helper::id($args['id'] . $count);
1227 1227
 		}
1228 1228
 
1229 1229
 		// title
1230
-		if ( ! empty( $args['title'] ) ) {
1231
-			$output .= AUI_Component_Helper::title( $args['title'] );
1230
+		if (!empty($args['title'])) {
1231
+			$output .= AUI_Component_Helper::title($args['title']);
1232 1232
 		}
1233 1233
 
1234 1234
 		// value
1235
-		if ( isset( $args['value'] ) ) {
1236
-			$output .= AUI_Component_Helper::value( $args['value'] );
1235
+		if (isset($args['value'])) {
1236
+			$output .= AUI_Component_Helper::value($args['value']);
1237 1237
 		}
1238 1238
 
1239 1239
 		// checked, for radio and checkboxes
1240
-		if ( $args['checked'] ) {
1240
+		if ($args['checked']) {
1241 1241
 			$output .= ' checked ';
1242 1242
 		}
1243 1243
 
1244 1244
 		// data-attributes
1245
-		$output .= AUI_Component_Helper::data_attributes( $args );
1245
+		$output .= AUI_Component_Helper::data_attributes($args);
1246 1246
 
1247 1247
 		// aria-attributes
1248
-		$output .= AUI_Component_Helper::aria_attributes( $args );
1248
+		$output .= AUI_Component_Helper::aria_attributes($args);
1249 1249
 
1250 1250
 		// extra attributes
1251
-		if ( ! empty( $args['extra_attributes'] ) ) {
1252
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1251
+		if (!empty($args['extra_attributes'])) {
1252
+			$output .= AUI_Component_Helper::extra_attributes($args['extra_attributes']);
1253 1253
 		}
1254 1254
 
1255 1255
 		// required
1256
-		if ( ! empty( $args['required'] ) ) {
1256
+		if (!empty($args['required'])) {
1257 1257
 			$output .= ' required ';
1258 1258
 		}
1259 1259
 
@@ -1261,38 +1261,38 @@  discard block
 block discarded – undo
1261 1261
 		$output .= ' >';
1262 1262
 
1263 1263
 		// label
1264
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1265
-		} elseif ( ! empty( $args['label'] ) ) {
1266
-			$output .= self::label( array(
1264
+		if (!empty($args['label']) && is_array($args['label'])) {
1265
+		} elseif (!empty($args['label'])) {
1266
+			$output .= self::label(array(
1267 1267
 				'title' => $args['label'],
1268 1268
 				'for'   => $args['id'] . $count,
1269 1269
 				'class' => 'form-check-label'
1270
-			), 'radio' );
1270
+			), 'radio');
1271 1271
 		}
1272 1272
 
1273 1273
 		// wrap
1274
-		if ( ! $args['no_wrap'] ) {
1274
+		if (!$args['no_wrap']) {
1275 1275
 			$wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1276 1276
 
1277 1277
 			// Unique wrap class
1278 1278
 			$uniq_class = 'fwrap';
1279
-			if ( ! empty( $args['name'] ) ) {
1279
+			if (!empty($args['name'])) {
1280 1280
 				$uniq_class .= '-' . $args['name'];
1281
-			} else if ( ! empty( $args['id'] ) ) {
1281
+			} else if (!empty($args['id'])) {
1282 1282
 				$uniq_class .= '-' . $args['id'];
1283 1283
 			}
1284 1284
 
1285
-			if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1285
+			if (isset($args['value']) || $args['value'] !== "") {
1286 1286
 				$uniq_class .= '-' . $args['value'];
1287 1287
 			} else {
1288 1288
 				$uniq_class .= '-' . $count;
1289 1289
 			}
1290
-			$wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1290
+			$wrap_class .= ' ' . sanitize_html_class($uniq_class);
1291 1291
 
1292
-			$output = self::wrap( array(
1292
+			$output = self::wrap(array(
1293 1293
 				'content' => $output,
1294 1294
 				'class'   => $wrap_class
1295
-			) );
1295
+			));
1296 1296
 		}
1297 1297
 
1298 1298
 		return $output;
Please login to merge, or discard this patch.
Switch Indentation   +1202 added lines, -1202 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,1293 +9,1293 @@  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
-			} elseif ( $type == 'iconpicker' ) {
141
-				$type = 'text';
142
-				//$args['class'] .= ' aui-flatpickr bg-initial ';
143
-//				$args['class'] .= ' bg-initial ';
144
-
145
-				$args['extra_attributes']['data-aui-init'] = 'iconpicker';
146
-				$args['extra_attributes']['data-placement'] = 'bottomRight';
147
-
148
-				$args['input_group_right'] = '<span class="input-group-addon input-group-text c-pointer"></span>';
149
-//				$args['input_group_right_inside'] = true;
150
-				// enqueue the script
151
-				$aui_settings = AyeCode_UI_Settings::instance();
152
-				$aui_settings->enqueue_iconpicker();
153
-			}
154
-
155
-			if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
156
-				$output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
157
-			}
158
-
159
-			// allow clear icon
160
-			if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
161
-				$font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
162
-				$args['input_group_right_inside'] = true;
163
-				$align_class = $aui_bs5 ? ' h-100 py-0' : '';
164
-				$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
-			}
166
-
167
-			// open/type
168
-			$output .= '<input type="' . $type . '" ';
169
-
170
-			// name
171
-			if ( ! empty( $args['name'] ) ) {
172
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
173
-			}
174
-
175
-			// id
176
-			if ( ! empty( $args['id'] ) ) {
177
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
178
-			}
179
-
180
-			// placeholder
181
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
182
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
183
-			}
184
-
185
-			// title
186
-			if ( ! empty( $args['title'] ) ) {
187
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
188
-			}
189
-
190
-			// value
191
-			if ( ! empty( $args['value'] ) ) {
192
-				$output .= AUI_Component_Helper::value( $args['value'] );
193
-			}
194
-
195
-			// checked, for radio and checkboxes
196
-			if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
197
-				$output .= ' checked ';
198
-			}
199
-
200
-			// validation text
201
-			if ( ! empty( $args['validation_text'] ) ) {
202
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
203
-				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
204
-			}
205
-
206
-			// validation_pattern
207
-			if ( ! empty( $args['validation_pattern'] ) ) {
208
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
209
-			}
210
-
211
-			// step (for numbers)
212
-			if ( ! empty( $args['step'] ) ) {
213
-				$output .= ' step="' . $args['step'] . '" ';
214
-			}
215
-
216
-			// required
217
-			if ( ! empty( $args['required'] ) ) {
218
-				$output .= ' required ';
219
-			}
220
-
221
-			// class
222
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
223
-			$output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
224
-
225
-			// data-attributes
226
-			$output .= AUI_Component_Helper::data_attributes( $args );
227
-
228
-			// extra attributes
229
-			if ( ! empty( $args['extra_attributes'] ) ) {
230
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
231
-			}
232
-
233
-			// close
234
-			$output .= ' >';
235
-
236
-			// help text
237
-			if ( ! empty( $args['help_text'] ) ) {
238
-				$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
239
-			}
240
-
241
-			// label
242
-			if ( ! empty( $args['label'] ) ) {
243
-				$label_base_class = '';
244
-				if ( $type == 'file' ) {
245
-					$label_base_class = ' custom-file-label';
246
-				} elseif ( $type == 'checkbox' ) {
247
-					if ( ! empty( $args['label_force_left'] ) ) {
248
-						$label_args['title'] = wp_kses_post( $args['help_text'] );
249
-						$help_text = '';
250
-						//$label_args['class'] .= ' d-inline ';
251
-						$args['wrap_class'] .= ' align-items-center ';
252
-					}else{
253
-
254
-					}
255
-
256
-					$label_base_class = $aui_bs5 ? ' form-check-label' : ' custom-control-label';
257
-				}
258
-				$label_args['class'] .= $label_base_class;
259
-				$temp_label_args = $label_args;
260
-				if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
261
-				$label = self::label( $temp_label_args, $type );
262
-			}
263
-
264
-
265
-
266
-
267
-			// set help text in the correct position
268
-			if ( $label_after ) {
269
-				$output .= $label . $help_text;
270
-			}
271
-
272
-			// some input types need a separate wrap
273
-			if ( $type == 'file' ) {
274
-				$output = self::wrap( array(
275
-					'content' => $output,
276
-					'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
277
-				) );
278
-			} elseif ( $type == 'checkbox' ) {
279
-
280
-				$label_args['title'] = $args['label'];
281
-				$label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
282
-				$label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
283
-				$switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
284
-				if ( $aui_bs5 ) {
285
-					$wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
286
-				}else{
287
-					$wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
288
-				}
289
-				if ( ! empty( $args['label_force_left'] ) ) {
290
-					$wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
291
-					$label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
292
-				}
293
-				$output     = self::wrap( array(
294
-					'content' => $output,
295
-					'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
296
-				) );
297
-
298
-				if ( $args['label_type'] == 'horizontal' ) {
299
-					$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
300
-					$output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
301
-				}
302
-			} elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
303
-
304
-
305
-				// allow password field to toggle view
306
-				$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
+			    } elseif ( $type == 'iconpicker' ) {
141
+				    $type = 'text';
142
+				    //$args['class'] .= ' aui-flatpickr bg-initial ';
143
+    //				$args['class'] .= ' bg-initial ';
144
+
145
+				    $args['extra_attributes']['data-aui-init'] = 'iconpicker';
146
+				    $args['extra_attributes']['data-placement'] = 'bottomRight';
147
+
148
+				    $args['input_group_right'] = '<span class="input-group-addon input-group-text c-pointer"></span>';
149
+    //				$args['input_group_right_inside'] = true;
150
+				    // enqueue the script
151
+				    $aui_settings = AyeCode_UI_Settings::instance();
152
+				    $aui_settings->enqueue_iconpicker();
153
+			    }
154
+
155
+			    if ( $type == 'checkbox' && ( ( ! empty( $args['name'] ) && strpos( $args['name'], '[' ) === false ) || ! empty( $args['with_hidden'] ) ) ) {
156
+				    $output .= '<input type="hidden" name="' . esc_attr( $args['name'] ) . '" value="0" />';
157
+			    }
158
+
159
+			    // allow clear icon
160
+			    if ( $args['input_group_right'] === '' && $args['clear_icon'] ) {
161
+				    $font_size = $size == 'sm' ? '1.3' : ( $size == 'lg' ? '1.65' : '1.5' );
162
+				    $args['input_group_right_inside'] = true;
163
+				    $align_class = $aui_bs5 ? ' h-100 py-0' : '';
164
+				    $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
+			    }
166
+
167
+			    // open/type
168
+			    $output .= '<input type="' . $type . '" ';
169
+
170
+			    // name
171
+			    if ( ! empty( $args['name'] ) ) {
172
+				    $output .= ' name="' . esc_attr( $args['name'] ) . '" ';
173
+			    }
174
+
175
+			    // id
176
+			    if ( ! empty( $args['id'] ) ) {
177
+				    $output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
178
+			    }
179
+
180
+			    // placeholder
181
+			    if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
182
+				    $output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
183
+			    }
184
+
185
+			    // title
186
+			    if ( ! empty( $args['title'] ) ) {
187
+				    $output .= ' title="' . esc_attr( $args['title'] ) . '" ';
188
+			    }
189
+
190
+			    // value
191
+			    if ( ! empty( $args['value'] ) ) {
192
+				    $output .= AUI_Component_Helper::value( $args['value'] );
193
+			    }
194
+
195
+			    // checked, for radio and checkboxes
196
+			    if ( ( $type == 'checkbox' || $type == 'radio' ) && $args['checked'] ) {
197
+				    $output .= ' checked ';
198
+			    }
199
+
200
+			    // validation text
201
+			    if ( ! empty( $args['validation_text'] ) ) {
202
+				    $output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
203
+				    $output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
204
+			    }
205
+
206
+			    // validation_pattern
207
+			    if ( ! empty( $args['validation_pattern'] ) ) {
208
+				    $output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
209
+			    }
210
+
211
+			    // step (for numbers)
212
+			    if ( ! empty( $args['step'] ) ) {
213
+				    $output .= ' step="' . $args['step'] . '" ';
214
+			    }
215
+
216
+			    // required
217
+			    if ( ! empty( $args['required'] ) ) {
218
+				    $output .= ' required ';
219
+			    }
220
+
221
+			    // class
222
+			    $class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
223
+			    $output .= $aui_bs5 &&  $type == 'checkbox' ? ' class="' . $class . '" ' : ' class="form-control ' . $class . '" ';
224
+
225
+			    // data-attributes
226
+			    $output .= AUI_Component_Helper::data_attributes( $args );
227
+
228
+			    // extra attributes
229
+			    if ( ! empty( $args['extra_attributes'] ) ) {
230
+				    $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
231
+			    }
232
+
233
+			    // close
234
+			    $output .= ' >';
235
+
236
+			    // help text
237
+			    if ( ! empty( $args['help_text'] ) ) {
238
+				    $help_text = AUI_Component_Helper::help_text( $args['help_text'] );
239
+			    }
240
+
241
+			    // label
242
+			    if ( ! empty( $args['label'] ) ) {
243
+				    $label_base_class = '';
244
+				    if ( $type == 'file' ) {
245
+					    $label_base_class = ' custom-file-label';
246
+				    } elseif ( $type == 'checkbox' ) {
247
+					    if ( ! empty( $args['label_force_left'] ) ) {
248
+						    $label_args['title'] = wp_kses_post( $args['help_text'] );
249
+						    $help_text = '';
250
+						    //$label_args['class'] .= ' d-inline ';
251
+						    $args['wrap_class'] .= ' align-items-center ';
252
+					    }else{
253
+
254
+					    }
255
+
256
+					    $label_base_class = $aui_bs5 ? ' form-check-label' : ' custom-control-label';
257
+				    }
258
+				    $label_args['class'] .= $label_base_class;
259
+				    $temp_label_args = $label_args;
260
+				    if(! empty( $args['label_force_left'] )){$temp_label_args['class'] = $label_base_class." text-muted";}
261
+				    $label = self::label( $temp_label_args, $type );
262
+			    }
263
+
264
+
265
+
266
+
267
+			    // set help text in the correct position
268
+			    if ( $label_after ) {
269
+				    $output .= $label . $help_text;
270
+			    }
271
+
272
+			    // some input types need a separate wrap
273
+			    if ( $type == 'file' ) {
274
+				    $output = self::wrap( array(
275
+					    'content' => $output,
276
+					    'class'   => $aui_bs5 ? 'mb-3 custom-file' : 'form-group custom-file'
277
+				    ) );
278
+			    } elseif ( $type == 'checkbox' ) {
279
+
280
+				    $label_args['title'] = $args['label'];
281
+				    $label_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'label' );
282
+				    $label = !empty( $args['label_force_left'] ) ? self::label( $label_args, 'cb' ) : '<div class="' . $label_col . ' col-form-label"></div>';
283
+				    $switch_size_class = $args['switch'] && !is_bool( $args['switch'] ) ? ' custom-switch-'.esc_attr( $args['switch'] ) : '';
284
+				    if ( $aui_bs5 ) {
285
+					    $wrap_class = $args['switch'] ? 'form-check form-switch' . $switch_size_class : 'form-check';
286
+				    }else{
287
+					    $wrap_class = $args['switch'] ? 'custom-switch' . $switch_size_class :  'custom-checkbox' ;
288
+				    }
289
+				    if ( ! empty( $args['label_force_left'] ) ) {
290
+					    $wrap_class .= $aui_bs5 ? '' : ' d-flex align-content-center';
291
+					    $label = str_replace(array("form-check-label","custom-control-label"),"", self::label( $label_args, 'cb' ) );
292
+				    }
293
+				    $output     = self::wrap( array(
294
+					    'content' => $output,
295
+					    'class'   => $aui_bs5 ? $wrap_class : 'custom-control ' . $wrap_class
296
+				    ) );
297
+
298
+				    if ( $args['label_type'] == 'horizontal' ) {
299
+					    $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
300
+					    $output    = $label . '<div class="' . $input_col . '">' . $output . '</div>';
301
+				    }
302
+			    } elseif ( $type == 'password' && $args['password_toggle'] && ! $args['input_group_right'] ) {
303
+
304
+
305
+				    // allow password field to toggle view
306
+				    $args['input_group_right'] = '<span class="input-group-text c-pointer px-3" 
307 307
 onclick="var $el = jQuery(this).find(\'i\');$el.toggleClass(\'fa-eye fa-eye-slash\');
308 308
 var $eli = jQuery(this).parent().parent().find(\'input\');
309 309
 if($el.hasClass(\'fa-eye\'))
310 310
 {$eli.attr(\'type\',\'text\');}
311 311
 else{$eli.attr(\'type\',\'password\');}"
312 312
 ><i class="far fa-fw fa-eye-slash"></i></span>';
313
-			}
314
-
315
-			// input group wraps
316
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
317
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
318
-				$group_size = $size == 'lg' ? ' input-group-lg' : '';
319
-				$group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
320
-
321
-				if ( $args['input_group_left'] ) {
322
-					$output = self::wrap( array(
323
-						'content'                 => $output,
324
-						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
325
-						'input_group_left'        => $args['input_group_left'],
326
-						'input_group_left_inside' => $args['input_group_left_inside']
327
-					) );
328
-				}
329
-				if ( $args['input_group_right'] ) {
330
-					$output = self::wrap( array(
331
-						'content'                  => $output,
332
-						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
333
-						'input_group_right'        => $args['input_group_right'],
334
-						'input_group_right_inside' => $args['input_group_right_inside']
335
-					) );
336
-				}
337
-
338
-			}
339
-
340
-			if ( ! $label_after ) {
341
-				$output .= $help_text;
342
-			}
343
-
344
-
345
-			if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
346
-				$output = self::wrap( array(
347
-					'content' => $output,
348
-					'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
349
-				) );
350
-			}
351
-
352
-			if ( ! $label_after ) {
353
-				$output = $label . $output;
354
-			}
355
-
356
-			// wrap
357
-			if ( ! $args['no_wrap'] ) {
358
-				if ( ! empty( $args['form_group_class'] ) ) {
359
-					$fg_class = esc_attr( $args['form_group_class'] );
360
-				}else{
361
-					$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
362
-				}
363
-				$form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
364
-				$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
365
-				$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
366
-				$output           = self::wrap( array(
367
-					'content'         => $output,
368
-					'class'           => $wrap_class,
369
-					'element_require' => $args['element_require'],
370
-					'argument_id'     => $args['id'],
371
-					'wrap_attributes' => $args['wrap_attributes'],
372
-				) );
373
-			}
374
-		}
375
-
376
-		return $output;
377
-	}
378
-
379
-	public static function label( $args = array(), $type = '' ) {
380
-		global $aui_bs5;
381
-		//<label for="exampleInputEmail1">Email address</label>
382
-		$defaults = array(
383
-			'title'      => 'div',
384
-			'for'        => '',
385
-			'class'      => '',
386
-			'label_type' => '', // empty = hidden, top, horizontal
387
-			'label_col'  => '',
388
-		);
389
-
390
-		/**
313
+			    }
314
+
315
+			    // input group wraps
316
+			    if ( $args['input_group_left'] || $args['input_group_right'] ) {
317
+				    $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
318
+				    $group_size = $size == 'lg' ? ' input-group-lg' : '';
319
+				    $group_size = !$group_size && $size == 'sm' ? ' input-group-sm' : $group_size;
320
+
321
+				    if ( $args['input_group_left'] ) {
322
+					    $output = self::wrap( array(
323
+						    'content'                 => $output,
324
+						    'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
325
+						    'input_group_left'        => $args['input_group_left'],
326
+						    'input_group_left_inside' => $args['input_group_left_inside']
327
+					    ) );
328
+				    }
329
+				    if ( $args['input_group_right'] ) {
330
+					    $output = self::wrap( array(
331
+						    'content'                  => $output,
332
+						    'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 . $group_size : 'input-group' . $group_size,
333
+						    'input_group_right'        => $args['input_group_right'],
334
+						    'input_group_right_inside' => $args['input_group_right_inside']
335
+					    ) );
336
+				    }
337
+
338
+			    }
339
+
340
+			    if ( ! $label_after ) {
341
+				    $output .= $help_text;
342
+			    }
343
+
344
+
345
+			    if ( $args['label_type'] == 'horizontal' && $type != 'checkbox' ) {
346
+				    $output = self::wrap( array(
347
+					    'content' => $output,
348
+					    'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
349
+				    ) );
350
+			    }
351
+
352
+			    if ( ! $label_after ) {
353
+				    $output = $label . $output;
354
+			    }
355
+
356
+			    // wrap
357
+			    if ( ! $args['no_wrap'] ) {
358
+				    if ( ! empty( $args['form_group_class'] ) ) {
359
+					    $fg_class = esc_attr( $args['form_group_class'] );
360
+				    }else{
361
+					    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
362
+				    }
363
+				    $form_group_class = $args['label_type'] == 'floating' && $type != 'checkbox' ? 'form-label-group' : $fg_class;
364
+				    $wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
365
+				    $wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
366
+				    $output           = self::wrap( array(
367
+					    'content'         => $output,
368
+					    'class'           => $wrap_class,
369
+					    'element_require' => $args['element_require'],
370
+					    'argument_id'     => $args['id'],
371
+					    'wrap_attributes' => $args['wrap_attributes'],
372
+				    ) );
373
+			    }
374
+		    }
375
+
376
+		    return $output;
377
+	    }
378
+
379
+	    public static function label( $args = array(), $type = '' ) {
380
+		    global $aui_bs5;
381
+		    //<label for="exampleInputEmail1">Email address</label>
382
+		    $defaults = array(
383
+			    'title'      => 'div',
384
+			    'for'        => '',
385
+			    'class'      => '',
386
+			    'label_type' => '', // empty = hidden, top, horizontal
387
+			    'label_col'  => '',
388
+		    );
389
+
390
+		    /**
391 391
 		 * Parse incoming $args into an array and merge it with $defaults
392 392
 		 */
393
-		$args   = wp_parse_args( $args, $defaults );
394
-		$output = '';
393
+		    $args   = wp_parse_args( $args, $defaults );
394
+		    $output = '';
395 395
 
396
-		if ( $args['title'] ) {
396
+		    if ( $args['title'] ) {
397 397
 
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 ' . $args['class'];
403
-			}
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 ' . $args['class'];
403
+			    }
404 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
-			}
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 409
 
410
-			if( $aui_bs5 ){ $class .= ' form-label'; }
410
+			    if( $aui_bs5 ){ $class .= ' form-label'; }
411 411
 
412
-			// open
413
-			$output .= '<label ';
412
+			    // open
413
+			    $output .= '<label ';
414 414
 
415
-			// for
416
-			if ( ! empty( $args['for'] ) ) {
417
-				$output .= ' for="' . esc_attr( $args['for'] ) . '" ';
418
-			}
415
+			    // for
416
+			    if ( ! empty( $args['for'] ) ) {
417
+				    $output .= ' for="' . esc_attr( $args['for'] ) . '" ';
418
+			    }
419 419
 
420
-			// class
421
-			$class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
422
-			$output .= ' class="' . $class . '" ';
420
+			    // class
421
+			    $class = $class ? AUI_Component_Helper::esc_classes( $class ) : '';
422
+			    $output .= ' class="' . $class . '" ';
423 423
 
424
-			// close
425
-			$output .= '>';
424
+			    // close
425
+			    $output .= '>';
426 426
 
427 427
 
428
-			// title, don't escape fully as can contain html
429
-			if ( ! empty( $args['title'] ) ) {
430
-				$output .= wp_kses_post( $args['title'] );
431
-			}
428
+			    // title, don't escape fully as can contain html
429
+			    if ( ! empty( $args['title'] ) ) {
430
+				    $output .= wp_kses_post( $args['title'] );
431
+			    }
432 432
 
433
-			// close wrap
434
-			$output .= '</label>';
433
+			    // close wrap
434
+			    $output .= '</label>';
435 435
 
436 436
 
437
-		}
437
+		    }
438 438
 
439 439
 
440
-		return $output;
441
-	}
440
+		    return $output;
441
+	    }
442 442
 
443
-	/**
443
+	    /**
444 444
 	 * Wrap some content in a HTML wrapper.
445 445
 	 *
446 446
 	 * @param array $args
447 447
 	 *
448 448
 	 * @return string
449 449
 	 */
450
-	public static function wrap( $args = array() ) {
451
-		global $aui_bs5;
452
-		$defaults = array(
453
-			'type'                     => 'div',
454
-			'class'                    => $aui_bs5 ? 'mb-3' : 'form-group',
455
-			'content'                  => '',
456
-			'input_group_left'         => '',
457
-			'input_group_right'        => '',
458
-			'input_group_left_inside'  => false,
459
-			'input_group_right_inside' => false,
460
-			'element_require'          => '',
461
-			'argument_id'              => '',
462
-			'wrap_attributes'          => array()
463
-		);
464
-
465
-		/**
450
+	    public static function wrap( $args = array() ) {
451
+		    global $aui_bs5;
452
+		    $defaults = array(
453
+			    'type'                     => 'div',
454
+			    'class'                    => $aui_bs5 ? 'mb-3' : 'form-group',
455
+			    'content'                  => '',
456
+			    'input_group_left'         => '',
457
+			    'input_group_right'        => '',
458
+			    'input_group_left_inside'  => false,
459
+			    'input_group_right_inside' => false,
460
+			    'element_require'          => '',
461
+			    'argument_id'              => '',
462
+			    'wrap_attributes'          => array()
463
+		    );
464
+
465
+		    /**
466 466
 		 * Parse incoming $args into an array and merge it with $defaults
467 467
 		 */
468
-		$args   = wp_parse_args( $args, $defaults );
469
-		$output = '';
470
-		if ( $args['type'] ) {
468
+		    $args   = wp_parse_args( $args, $defaults );
469
+		    $output = '';
470
+		    if ( $args['type'] ) {
471 471
 
472
-			// open
473
-			$output .= '<' . sanitize_html_class( $args['type'] );
472
+			    // open
473
+			    $output .= '<' . sanitize_html_class( $args['type'] );
474 474
 
475
-			// element require
476
-			if ( ! empty( $args['element_require'] ) ) {
477
-				$output .= AUI_Component_Helper::element_require( $args['element_require'] );
478
-				$args['class'] .= " aui-conditional-field";
479
-			}
475
+			    // element require
476
+			    if ( ! empty( $args['element_require'] ) ) {
477
+				    $output .= AUI_Component_Helper::element_require( $args['element_require'] );
478
+				    $args['class'] .= " aui-conditional-field";
479
+			    }
480 480
 
481
-			// argument_id
482
-			if ( ! empty( $args['argument_id'] ) ) {
483
-				$output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
484
-			}
481
+			    // argument_id
482
+			    if ( ! empty( $args['argument_id'] ) ) {
483
+				    $output .= ' data-argument="' . esc_attr( $args['argument_id'] ) . '"';
484
+			    }
485 485
 
486
-			// class
487
-			$class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
488
-			$output .= ' class="' . $class . '" ';
486
+			    // class
487
+			    $class = ! empty( $args['class'] ) ? AUI_Component_Helper::esc_classes( $args['class'] ) : '';
488
+			    $output .= ' class="' . $class . '" ';
489 489
 
490
-			// Attributes
491
-			if ( ! empty( $args['wrap_attributes'] ) ) {
492
-				$output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
493
-			}
490
+			    // Attributes
491
+			    if ( ! empty( $args['wrap_attributes'] ) ) {
492
+				    $output .= AUI_Component_Helper::extra_attributes( $args['wrap_attributes'] );
493
+			    }
494 494
 
495
-			// close wrap
496
-			$output .= ' >';
495
+			    // close wrap
496
+			    $output .= ' >';
497 497
 
498 498
 
499
-			// Input group left
500
-			if ( ! empty( $args['input_group_left'] ) ) {
501
-				$position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
502
-				$input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
503
-				$output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
504
-//				$output .= '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
505
-			}
499
+			    // Input group left
500
+			    if ( ! empty( $args['input_group_left'] ) ) {
501
+				    $position_class   = ! empty( $args['input_group_left_inside'] ) ? 'position-absolute h-100' : '';
502
+				    $input_group_left = strpos( $args['input_group_left'], '<' ) !== false ? $args['input_group_left'] : '<span class="input-group-text">' . $args['input_group_left'] . '</span>';
503
+				    $output .= $aui_bs5 ? $input_group_left : '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
504
+    //				$output .= '<div class="input-group-prepend ' . $position_class . '">' . $input_group_left . '</div>';
505
+			    }
506 506
 
507
-			// content
508
-			$output .= $args['content'];
507
+			    // content
508
+			    $output .= $args['content'];
509 509
 
510
-			// Input group right
511
-			if ( ! empty( $args['input_group_right'] ) ) {
512
-				$position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
513
-				$input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
514
-				$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>';
515
-//				$output .= '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
516
-			}
510
+			    // Input group right
511
+			    if ( ! empty( $args['input_group_right'] ) ) {
512
+				    $position_class    = ! empty( $args['input_group_right_inside'] ) ? 'position-absolute h-100' : '';
513
+				    $input_group_right = strpos( $args['input_group_right'], '<' ) !== false ? $args['input_group_right'] : '<span class="input-group-text">' . $args['input_group_right'] . '</span>';
514
+				    $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>';
515
+    //				$output .= '<div class="input-group-append ' . $position_class . '" style="top:0;right:0;">' . $input_group_right . '</div>';
516
+			    }
517 517
 
518 518
 
519
-			// close wrap
520
-			$output .= '</' . sanitize_html_class( $args['type'] ) . '>';
519
+			    // close wrap
520
+			    $output .= '</' . sanitize_html_class( $args['type'] ) . '>';
521 521
 
522 522
 
523
-		} else {
524
-			$output = $args['content'];
525
-		}
523
+		    } else {
524
+			    $output = $args['content'];
525
+		    }
526 526
 
527
-		return $output;
528
-	}
527
+		    return $output;
528
+	    }
529 529
 
530
-	/**
530
+	    /**
531 531
 	 * Build the component.
532 532
 	 *
533 533
 	 * @param array $args
534 534
 	 *
535 535
 	 * @return string The rendered component.
536 536
 	 */
537
-	public static function textarea( $args = array() ) {
538
-		global $aui_bs5;
539
-
540
-		$defaults = array(
541
-			'name'               => '',
542
-			'class'              => '',
543
-			'wrap_class'         => '',
544
-			'id'                 => '',
545
-			'placeholder'        => '',
546
-			'title'              => '',
547
-			'value'              => '',
548
-			'required'           => false,
549
-			'label'              => '',
550
-			'label_after'        => false,
551
-			'label_class'        => '',
552
-			'label_type'         => '',
553
-			'label_col'          => '',
554
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
555
-			'input_group_right'        => '',
556
-			'input_group_left'         => '',
557
-			'input_group_right_inside' => false,
558
-			'form_group_class'      => '',
559
-			'help_text'          => '',
560
-			'validation_text'    => '',
561
-			'validation_pattern' => '',
562
-			'no_wrap'            => false,
563
-			'rows'               => '',
564
-			'wysiwyg'            => false,
565
-			'allow_tags'         => false,
566
-			// Allow HTML tags
567
-			'element_require'    => '',
568
-			// [%element_id%] == "1"
569
-			'extra_attributes'   => array(),
570
-			// an array of extra attributes
571
-			'wrap_attributes'    => array(),
572
-		);
573
-
574
-		/**
537
+	    public static function textarea( $args = array() ) {
538
+		    global $aui_bs5;
539
+
540
+		    $defaults = array(
541
+			    'name'               => '',
542
+			    'class'              => '',
543
+			    'wrap_class'         => '',
544
+			    'id'                 => '',
545
+			    'placeholder'        => '',
546
+			    'title'              => '',
547
+			    'value'              => '',
548
+			    'required'           => false,
549
+			    'label'              => '',
550
+			    'label_after'        => false,
551
+			    'label_class'        => '',
552
+			    'label_type'         => '',
553
+			    'label_col'          => '',
554
+			    // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
555
+			    'input_group_right'        => '',
556
+			    'input_group_left'         => '',
557
+			    'input_group_right_inside' => false,
558
+			    'form_group_class'      => '',
559
+			    'help_text'          => '',
560
+			    'validation_text'    => '',
561
+			    'validation_pattern' => '',
562
+			    'no_wrap'            => false,
563
+			    'rows'               => '',
564
+			    'wysiwyg'            => false,
565
+			    'allow_tags'         => false,
566
+			    // Allow HTML tags
567
+			    'element_require'    => '',
568
+			    // [%element_id%] == "1"
569
+			    'extra_attributes'   => array(),
570
+			    // an array of extra attributes
571
+			    'wrap_attributes'    => array(),
572
+		    );
573
+
574
+		    /**
575 575
 		 * Parse incoming $args into an array and merge it with $defaults
576 576
 		 */
577
-		$args   = wp_parse_args( $args, $defaults );
578
-		$output = '';
579
-		$label = '';
580
-
581
-		// hidden label option needs to be empty
582
-		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
583
-
584
-		// floating labels don't work with wysiwyg so set it as top
585
-		if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
586
-			$args['label_type'] = 'top';
587
-		}
588
-
589
-		$label_after = $args['label_after'];
590
-
591
-		// floating labels need label after
592
-		if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
593
-			$label_after         = true;
594
-			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
595
-		}
596
-
597
-		// label
598
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
599
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
600
-			$label_args = array(
601
-				'title'      => $args['label'],
602
-				'for'        => $args['id'],
603
-				'class'      => $args['label_class'] . " ",
604
-				'label_type' => $args['label_type'],
605
-				'label_col'  => $args['label_col']
606
-			);
607
-			$label .= self::label( $label_args );
608
-		}
609
-
610
-		// maybe horizontal label
611
-		if ( $args['label_type'] == 'horizontal' ) {
612
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
613
-			$label .= '<div class="' . $input_col . '">';
614
-		}
615
-
616
-		if ( ! empty( $args['wysiwyg'] ) ) {
617
-			ob_start();
618
-			$content   = $args['value'];
619
-			$editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
620
-			$settings  = array(
621
-				'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
622
-				'quicktags'     => false,
623
-				'media_buttons' => false,
624
-				'editor_class'  => 'form-control',
625
-				'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
626
-				'teeny'         => true,
627
-			);
628
-
629
-			// maybe set settings if array
630
-			if ( is_array( $args['wysiwyg'] ) ) {
631
-				$settings = wp_parse_args( $args['wysiwyg'], $settings );
632
-			}
633
-
634
-			wp_editor( $content, $editor_id, $settings );
635
-			$output .= ob_get_clean();
636
-		} else {
637
-
638
-			// open
639
-			$output .= '<textarea ';
640
-
641
-			// name
642
-			if ( ! empty( $args['name'] ) ) {
643
-				$output .= ' name="' . esc_attr( $args['name'] ) . '" ';
644
-			}
645
-
646
-			// id
647
-			if ( ! empty( $args['id'] ) ) {
648
-				$output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
649
-			}
650
-
651
-			// placeholder
652
-			if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
653
-				$output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
654
-			}
655
-
656
-			// title
657
-			if ( ! empty( $args['title'] ) ) {
658
-				$output .= ' title="' . esc_attr( $args['title'] ) . '" ';
659
-			}
660
-
661
-			// validation text
662
-			if ( ! empty( $args['validation_text'] ) ) {
663
-				$output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
664
-				$output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
665
-			}
666
-
667
-			// validation_pattern
668
-			if ( ! empty( $args['validation_pattern'] ) ) {
669
-				$output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
670
-			}
671
-
672
-			// required
673
-			if ( ! empty( $args['required'] ) ) {
674
-				$output .= ' required ';
675
-			}
676
-
677
-			// rows
678
-			if ( ! empty( $args['rows'] ) ) {
679
-				$output .= ' rows="' . absint( $args['rows'] ) . '" ';
680
-			}
681
-
682
-
683
-			// class
684
-			$class = ! empty( $args['class'] ) ? $args['class'] : '';
685
-			$output .= ' class="form-control ' . $class . '" ';
686
-
687
-			// extra attributes
688
-			if ( ! empty( $args['extra_attributes'] ) ) {
689
-				$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
690
-			}
691
-
692
-			// close tag
693
-			$output .= ' >';
694
-
695
-			// value
696
-			if ( ! empty( $args['value'] ) ) {
697
-				if ( ! empty( $args['allow_tags'] ) ) {
698
-					$output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
699
-				} else {
700
-					$output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
701
-				}
702
-			}
703
-
704
-			// closing tag
705
-			$output .= '</textarea>';
706
-
707
-
708
-			// input group wraps
709
-			if ( $args['input_group_left'] || $args['input_group_right'] ) {
710
-				$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
711
-				if ( $args['input_group_left'] ) {
712
-					$output = self::wrap( array(
713
-						'content'                 => $output,
714
-						'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
715
-						'input_group_left'        => $args['input_group_left'],
716
-						'input_group_left_inside' => $args['input_group_left_inside']
717
-					) );
718
-				}
719
-				if ( $args['input_group_right'] ) {
720
-					$output = self::wrap( array(
721
-						'content'                  => $output,
722
-						'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
723
-						'input_group_right'        => $args['input_group_right'],
724
-						'input_group_right_inside' => $args['input_group_right_inside']
725
-					) );
726
-				}
727
-
728
-			}
729
-
730
-
731
-		}
732
-
733
-		if ( ! empty( $args['label'] ) && $label_after ) {
734
-			$label_args = array(
735
-				'title'      => $args['label'],
736
-				'for'        => $args['id'],
737
-				'class'      => $args['label_class'] . " ",
738
-				'label_type' => $args['label_type'],
739
-				'label_col'  => $args['label_col']
740
-			);
741
-			$output .= self::label( $label_args );
742
-		}
743
-
744
-		// help text
745
-		if ( ! empty( $args['help_text'] ) ) {
746
-			$output .= AUI_Component_Helper::help_text( $args['help_text'] );
747
-		}
748
-
749
-		if ( ! $label_after ) {
750
-			$output = $label . $output;
751
-		}
752
-
753
-		// maybe horizontal label
754
-		if ( $args['label_type'] == 'horizontal' ) {
755
-			$output .= '</div>';
756
-		}
757
-
758
-
759
-		// wrap
760
-		if ( ! $args['no_wrap'] ) {
761
-			if ( ! empty( $args['form_group_class'] ) ) {
762
-				$fg_class = esc_attr( $args['form_group_class'] );
763
-			}else{
764
-				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
765
-			}
766
-			$form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
767
-			$wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
768
-			$wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
769
-			$output           = self::wrap( array(
770
-				'content'         => $output,
771
-				'class'           => $wrap_class,
772
-				'element_require' => $args['element_require'],
773
-				'argument_id'     => $args['id'],
774
-				'wrap_attributes' => $args['wrap_attributes'],
775
-			) );
776
-		}
777
-
778
-
779
-		return $output;
780
-	}
781
-
782
-	/**
577
+		    $args   = wp_parse_args( $args, $defaults );
578
+		    $output = '';
579
+		    $label = '';
580
+
581
+		    // hidden label option needs to be empty
582
+		    $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
583
+
584
+		    // floating labels don't work with wysiwyg so set it as top
585
+		    if ( $args['label_type'] == 'floating' && ! empty( $args['wysiwyg'] ) ) {
586
+			    $args['label_type'] = 'top';
587
+		    }
588
+
589
+		    $label_after = $args['label_after'];
590
+
591
+		    // floating labels need label after
592
+		    if ( $args['label_type'] == 'floating' && empty( $args['wysiwyg'] ) ) {
593
+			    $label_after         = true;
594
+			    $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
595
+		    }
596
+
597
+		    // label
598
+		    if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
599
+		    } elseif ( ! empty( $args['label'] ) && ! $label_after ) {
600
+			    $label_args = array(
601
+				    'title'      => $args['label'],
602
+				    'for'        => $args['id'],
603
+				    'class'      => $args['label_class'] . " ",
604
+				    'label_type' => $args['label_type'],
605
+				    'label_col'  => $args['label_col']
606
+			    );
607
+			    $label .= self::label( $label_args );
608
+		    }
609
+
610
+		    // maybe horizontal label
611
+		    if ( $args['label_type'] == 'horizontal' ) {
612
+			    $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
613
+			    $label .= '<div class="' . $input_col . '">';
614
+		    }
615
+
616
+		    if ( ! empty( $args['wysiwyg'] ) ) {
617
+			    ob_start();
618
+			    $content   = $args['value'];
619
+			    $editor_id = ! empty( $args['id'] ) ? sanitize_html_class( $args['id'] ) : 'wp_editor';
620
+			    $settings  = array(
621
+				    'textarea_rows' => ! empty( absint( $args['rows'] ) ) ? absint( $args['rows'] ) : 4,
622
+				    'quicktags'     => false,
623
+				    'media_buttons' => false,
624
+				    'editor_class'  => 'form-control',
625
+				    'textarea_name' => ! empty( $args['name'] ) ? sanitize_html_class( $args['name'] ) : sanitize_html_class( $args['id'] ),
626
+				    'teeny'         => true,
627
+			    );
628
+
629
+			    // maybe set settings if array
630
+			    if ( is_array( $args['wysiwyg'] ) ) {
631
+				    $settings = wp_parse_args( $args['wysiwyg'], $settings );
632
+			    }
633
+
634
+			    wp_editor( $content, $editor_id, $settings );
635
+			    $output .= ob_get_clean();
636
+		    } else {
637
+
638
+			    // open
639
+			    $output .= '<textarea ';
640
+
641
+			    // name
642
+			    if ( ! empty( $args['name'] ) ) {
643
+				    $output .= ' name="' . esc_attr( $args['name'] ) . '" ';
644
+			    }
645
+
646
+			    // id
647
+			    if ( ! empty( $args['id'] ) ) {
648
+				    $output .= ' id="' . sanitize_html_class( $args['id'] ) . '" ';
649
+			    }
650
+
651
+			    // placeholder
652
+			    if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] ) {
653
+				    $output .= ' placeholder="' . esc_attr( $args['placeholder'] ) . '" ';
654
+			    }
655
+
656
+			    // title
657
+			    if ( ! empty( $args['title'] ) ) {
658
+				    $output .= ' title="' . esc_attr( $args['title'] ) . '" ';
659
+			    }
660
+
661
+			    // validation text
662
+			    if ( ! empty( $args['validation_text'] ) ) {
663
+				    $output .= ' oninvalid="setCustomValidity(\'' . esc_attr( addslashes( $args['validation_text'] ) ) . '\')" ';
664
+				    $output .= ' onchange="try{setCustomValidity(\'\')}catch(e){}" ';
665
+			    }
666
+
667
+			    // validation_pattern
668
+			    if ( ! empty( $args['validation_pattern'] ) ) {
669
+				    $output .= ' pattern="' . esc_attr( $args['validation_pattern'] ) . '" ';
670
+			    }
671
+
672
+			    // required
673
+			    if ( ! empty( $args['required'] ) ) {
674
+				    $output .= ' required ';
675
+			    }
676
+
677
+			    // rows
678
+			    if ( ! empty( $args['rows'] ) ) {
679
+				    $output .= ' rows="' . absint( $args['rows'] ) . '" ';
680
+			    }
681
+
682
+
683
+			    // class
684
+			    $class = ! empty( $args['class'] ) ? $args['class'] : '';
685
+			    $output .= ' class="form-control ' . $class . '" ';
686
+
687
+			    // extra attributes
688
+			    if ( ! empty( $args['extra_attributes'] ) ) {
689
+				    $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
690
+			    }
691
+
692
+			    // close tag
693
+			    $output .= ' >';
694
+
695
+			    // value
696
+			    if ( ! empty( $args['value'] ) ) {
697
+				    if ( ! empty( $args['allow_tags'] ) ) {
698
+					    $output .= AUI_Component_Helper::sanitize_html_field( $args['value'], $args ); // Sanitize HTML.
699
+				    } else {
700
+					    $output .= AUI_Component_Helper::sanitize_textarea_field( $args['value'] );
701
+				    }
702
+			    }
703
+
704
+			    // closing tag
705
+			    $output .= '</textarea>';
706
+
707
+
708
+			    // input group wraps
709
+			    if ( $args['input_group_left'] || $args['input_group_right'] ) {
710
+				    $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
711
+				    if ( $args['input_group_left'] ) {
712
+					    $output = self::wrap( array(
713
+						    'content'                 => $output,
714
+						    'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
715
+						    'input_group_left'        => $args['input_group_left'],
716
+						    'input_group_left_inside' => $args['input_group_left_inside']
717
+					    ) );
718
+				    }
719
+				    if ( $args['input_group_right'] ) {
720
+					    $output = self::wrap( array(
721
+						    'content'                  => $output,
722
+						    'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
723
+						    'input_group_right'        => $args['input_group_right'],
724
+						    'input_group_right_inside' => $args['input_group_right_inside']
725
+					    ) );
726
+				    }
727
+
728
+			    }
729
+
730
+
731
+		    }
732
+
733
+		    if ( ! empty( $args['label'] ) && $label_after ) {
734
+			    $label_args = array(
735
+				    'title'      => $args['label'],
736
+				    'for'        => $args['id'],
737
+				    'class'      => $args['label_class'] . " ",
738
+				    'label_type' => $args['label_type'],
739
+				    'label_col'  => $args['label_col']
740
+			    );
741
+			    $output .= self::label( $label_args );
742
+		    }
743
+
744
+		    // help text
745
+		    if ( ! empty( $args['help_text'] ) ) {
746
+			    $output .= AUI_Component_Helper::help_text( $args['help_text'] );
747
+		    }
748
+
749
+		    if ( ! $label_after ) {
750
+			    $output = $label . $output;
751
+		    }
752
+
753
+		    // maybe horizontal label
754
+		    if ( $args['label_type'] == 'horizontal' ) {
755
+			    $output .= '</div>';
756
+		    }
757
+
758
+
759
+		    // wrap
760
+		    if ( ! $args['no_wrap'] ) {
761
+			    if ( ! empty( $args['form_group_class'] ) ) {
762
+				    $fg_class = esc_attr( $args['form_group_class'] );
763
+			    }else{
764
+				    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
765
+			    }
766
+			    $form_group_class = $args['label_type'] == 'floating' ? 'form-label-group' : $fg_class;
767
+			    $wrap_class       = $args['label_type'] == 'horizontal' ? $form_group_class . ' row' : $form_group_class;
768
+			    $wrap_class       = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
769
+			    $output           = self::wrap( array(
770
+				    'content'         => $output,
771
+				    'class'           => $wrap_class,
772
+				    'element_require' => $args['element_require'],
773
+				    'argument_id'     => $args['id'],
774
+				    'wrap_attributes' => $args['wrap_attributes'],
775
+			    ) );
776
+		    }
777
+
778
+
779
+		    return $output;
780
+	    }
781
+
782
+	    /**
783 783
 	 * Build the component.
784 784
 	 *
785 785
 	 * @param array $args
786 786
 	 *
787 787
 	 * @return string The rendered component.
788 788
 	 */
789
-	public static function select( $args = array() ) {
790
-		global $aui_bs5;
791
-		$defaults = array(
792
-			'class'            => '',
793
-			'wrap_class'       => '',
794
-			'id'               => '',
795
-			'title'            => '',
796
-			'value'            => '',
797
-			// can be an array or a string
798
-			'required'         => false,
799
-			'label'            => '',
800
-			'label_after'      => false,
801
-			'label_type'       => '',
802
-			'label_col'        => '',
803
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
804
-			'label_class'      => '',
805
-			'help_text'        => '',
806
-			'placeholder'      => '',
807
-			'options'          => array(),
808
-			// array or string
809
-			'icon'             => '',
810
-			'multiple'         => false,
811
-			'select2'          => false,
812
-			'no_wrap'          => false,
813
-			'input_group_right' => '',
814
-			'input_group_left' => '',
815
-			'input_group_right_inside' => false, // forces the input group inside the input
816
-			'input_group_left_inside' => false, // forces the input group inside the input
817
-			'form_group_class'  => '',
818
-			'element_require'  => '',
819
-			// [%element_id%] == "1"
820
-			'extra_attributes' => array(),
821
-			// an array of extra attributes
822
-			'wrap_attributes'  => array(),
823
-		);
824
-
825
-		/**
789
+	    public static function select( $args = array() ) {
790
+		    global $aui_bs5;
791
+		    $defaults = array(
792
+			    'class'            => '',
793
+			    'wrap_class'       => '',
794
+			    'id'               => '',
795
+			    'title'            => '',
796
+			    'value'            => '',
797
+			    // can be an array or a string
798
+			    'required'         => false,
799
+			    'label'            => '',
800
+			    'label_after'      => false,
801
+			    'label_type'       => '',
802
+			    'label_col'        => '',
803
+			    // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
804
+			    'label_class'      => '',
805
+			    'help_text'        => '',
806
+			    'placeholder'      => '',
807
+			    'options'          => array(),
808
+			    // array or string
809
+			    'icon'             => '',
810
+			    'multiple'         => false,
811
+			    'select2'          => false,
812
+			    'no_wrap'          => false,
813
+			    'input_group_right' => '',
814
+			    'input_group_left' => '',
815
+			    'input_group_right_inside' => false, // forces the input group inside the input
816
+			    'input_group_left_inside' => false, // forces the input group inside the input
817
+			    'form_group_class'  => '',
818
+			    'element_require'  => '',
819
+			    // [%element_id%] == "1"
820
+			    'extra_attributes' => array(),
821
+			    // an array of extra attributes
822
+			    'wrap_attributes'  => array(),
823
+		    );
824
+
825
+		    /**
826 826
 		 * Parse incoming $args into an array and merge it with $defaults
827 827
 		 */
828
-		$args   = wp_parse_args( $args, $defaults );
829
-		$output = '';
830
-
831
-		// for now lets hide floating labels
832
-		if ( $args['label_type'] == 'floating' ) {
833
-			$args['label_type'] = 'hidden';
834
-		}
835
-
836
-		// hidden label option needs to be empty
837
-		$args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
838
-
839
-
840
-		$label_after = $args['label_after'];
841
-
842
-		// floating labels need label after
843
-		if ( $args['label_type'] == 'floating' ) {
844
-			$label_after         = true;
845
-			$args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
846
-		}
847
-
848
-		// Maybe setup select2
849
-		$is_select2 = false;
850
-		if ( ! empty( $args['select2'] ) ) {
851
-			$args['class'] .= ' aui-select2';
852
-			$is_select2 = true;
853
-		} elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
854
-			$is_select2 = true;
855
-		}
856
-
857
-		// select2 tags
858
-		if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
859
-			$args['data-tags']             = 'true';
860
-			$args['data-token-separators'] = "[',']";
861
-			$args['multiple']              = true;
862
-		}
863
-
864
-		// select2 placeholder
865
-		if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
866
-			$args['data-placeholder'] = esc_attr( $args['placeholder'] );
867
-			$args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
868
-		}
869
-
870
-		// Set hidden input to save empty value for multiselect.
871
-		if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
872
-			$output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
873
-		}
874
-
875
-		// open/type
876
-		$output .= '<select ';
877
-
878
-		// style
879
-		if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
880
-			$output .= " style='width:100%;' ";
881
-		}
882
-
883
-		// element require
884
-		if ( ! empty( $args['element_require'] ) ) {
885
-			$output .= AUI_Component_Helper::element_require( $args['element_require'] );
886
-			$args['class'] .= " aui-conditional-field";
887
-		}
888
-
889
-		// class
890
-		$class = ! empty( $args['class'] ) ? $args['class'] : '';
891
-		$select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
892
-		$output .= AUI_Component_Helper::class_attr( $select_class . $class );
893
-
894
-		// name
895
-		if ( ! empty( $args['name'] ) ) {
896
-			$output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
897
-		}
898
-
899
-		// id
900
-		if ( ! empty( $args['id'] ) ) {
901
-			$output .= AUI_Component_Helper::id( $args['id'] );
902
-		}
903
-
904
-		// title
905
-		if ( ! empty( $args['title'] ) ) {
906
-			$output .= AUI_Component_Helper::title( $args['title'] );
907
-		}
908
-
909
-		// data-attributes
910
-		$output .= AUI_Component_Helper::data_attributes( $args );
911
-
912
-		// aria-attributes
913
-		$output .= AUI_Component_Helper::aria_attributes( $args );
914
-
915
-		// extra attributes
916
-		if ( ! empty( $args['extra_attributes'] ) ) {
917
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
918
-		}
919
-
920
-		// required
921
-		if ( ! empty( $args['required'] ) ) {
922
-			$output .= ' required ';
923
-		}
924
-
925
-		// multiple
926
-		if ( ! empty( $args['multiple'] ) ) {
927
-			$output .= ' multiple ';
928
-		}
929
-
930
-		// close opening tag
931
-		$output .= ' >';
932
-
933
-		// placeholder
934
-		if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
935
-			$output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
936
-		} elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
937
-			$output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
938
-		}
939
-
940
-		// Options
941
-		if ( ! empty( $args['options'] ) ) {
942
-
943
-			if ( ! is_array( $args['options'] ) ) {
944
-				$output .= $args['options']; // not the preferred way but an option
945
-			} else {
946
-				foreach ( $args['options'] as $val => $name ) {
947
-					$selected = '';
948
-					if ( is_array( $name ) ) {
949
-						if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
950
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
951
-
952
-							$output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
953
-						} else {
954
-							$option_label = isset( $name['label'] ) ? $name['label'] : '';
955
-							$option_value = isset( $name['value'] ) ? $name['value'] : '';
956
-							$extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
957
-							if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
958
-								$selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
959
-							} elseif ( ! empty( $args['value'] ) ) {
960
-								$selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
961
-							} elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
962
-								$selected = selected( $option_value, $args['value'], false );
963
-							}
964
-
965
-							$output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
966
-						}
967
-					} else {
968
-						if ( ! empty( $args['value'] ) ) {
969
-							if ( is_array( $args['value'] ) ) {
970
-								$selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
971
-							} elseif ( ! empty( $args['value'] ) ) {
972
-								$selected = selected( $args['value'], $val, false );
973
-							}
974
-						} elseif ( $args['value'] === $val ) {
975
-							$selected = selected( $args['value'], $val, false );
976
-						}
977
-						$output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
978
-					}
979
-				}
980
-			}
981
-
982
-		}
983
-
984
-		// closing tag
985
-		$output .= '</select>';
986
-
987
-		$label = '';
988
-		$help_text = '';
989
-		// label
990
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
991
-		} elseif ( ! empty( $args['label'] ) && ! $label_after ) {
992
-			$label_args = array(
993
-				'title'      => $args['label'],
994
-				'for'        => $args['id'],
995
-				'class'      => $args['label_class'] . " ",
996
-				'label_type' => $args['label_type'],
997
-				'label_col'  => $args['label_col']
998
-			);
999
-			$label = self::label( $label_args );
1000
-		}
1001
-
1002
-		// help text
1003
-		if ( ! empty( $args['help_text'] ) ) {
1004
-			$help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1005
-		}
1006
-
1007
-		// input group wraps
1008
-		if ( $args['input_group_left'] || $args['input_group_right'] ) {
1009
-			$w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1010
-			if ( $args['input_group_left'] ) {
1011
-				$output = self::wrap( array(
1012
-					'content'                 => $output,
1013
-					'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1014
-					'input_group_left'        => $args['input_group_left'],
1015
-					'input_group_left_inside' => $args['input_group_left_inside']
1016
-				) );
1017
-			}
1018
-			if ( $args['input_group_right'] ) {
1019
-				$output = self::wrap( array(
1020
-					'content'                  => $output,
1021
-					'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1022
-					'input_group_right'        => $args['input_group_right'],
1023
-					'input_group_right_inside' => $args['input_group_right_inside']
1024
-				) );
1025
-			}
1026
-
1027
-		}
1028
-
1029
-		if ( ! $label_after ) {
1030
-			$output .= $help_text;
1031
-		}
1032
-
1033
-
1034
-		if ( $args['label_type'] == 'horizontal' ) {
1035
-			$output = self::wrap( array(
1036
-				'content' => $output,
1037
-				'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1038
-			) );
1039
-		}
1040
-
1041
-		if ( ! $label_after ) {
1042
-			$output = $label . $output;
1043
-		}
1044
-
1045
-		// maybe horizontal label
1046
-//		if ( $args['label_type'] == 'horizontal' ) {
1047
-//			$output .= '</div>';
1048
-//		}
1049
-
1050
-
1051
-		// wrap
1052
-		if ( ! $args['no_wrap'] ) {
1053
-			if ( ! empty( $args['form_group_class'] ) ) {
1054
-				$fg_class = esc_attr( $args['form_group_class'] );
1055
-			}else{
1056
-				$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1057
-			}
1058
-			$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1059
-			$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1060
-			$output     = self::wrap( array(
1061
-				'content'         => $output,
1062
-				'class'           => $wrap_class,
1063
-				'element_require' => $args['element_require'],
1064
-				'argument_id'     => $args['id'],
1065
-				'wrap_attributes' => $args['wrap_attributes'],
1066
-			) );
1067
-		}
1068
-
1069
-
1070
-		return $output;
1071
-	}
1072
-
1073
-	/**
828
+		    $args   = wp_parse_args( $args, $defaults );
829
+		    $output = '';
830
+
831
+		    // for now lets hide floating labels
832
+		    if ( $args['label_type'] == 'floating' ) {
833
+			    $args['label_type'] = 'hidden';
834
+		    }
835
+
836
+		    // hidden label option needs to be empty
837
+		    $args['label_type'] = $args['label_type'] == 'hidden' ? '' : $args['label_type'];
838
+
839
+
840
+		    $label_after = $args['label_after'];
841
+
842
+		    // floating labels need label after
843
+		    if ( $args['label_type'] == 'floating' ) {
844
+			    $label_after         = true;
845
+			    $args['placeholder'] = ' '; // set the placeholder not empty so the floating label works.
846
+		    }
847
+
848
+		    // Maybe setup select2
849
+		    $is_select2 = false;
850
+		    if ( ! empty( $args['select2'] ) ) {
851
+			    $args['class'] .= ' aui-select2';
852
+			    $is_select2 = true;
853
+		    } elseif ( strpos( $args['class'], 'aui-select2' ) !== false ) {
854
+			    $is_select2 = true;
855
+		    }
856
+
857
+		    // select2 tags
858
+		    if ( ! empty( $args['select2'] ) && $args['select2'] === 'tags' ) { // triple equals needed here for some reason
859
+			    $args['data-tags']             = 'true';
860
+			    $args['data-token-separators'] = "[',']";
861
+			    $args['multiple']              = true;
862
+		    }
863
+
864
+		    // select2 placeholder
865
+		    if ( $is_select2 && isset( $args['placeholder'] ) && '' != $args['placeholder'] && empty( $args['data-placeholder'] ) ) {
866
+			    $args['data-placeholder'] = esc_attr( $args['placeholder'] );
867
+			    $args['data-allow-clear'] = isset( $args['data-allow-clear'] ) ? (bool) $args['data-allow-clear'] : true;
868
+		    }
869
+
870
+		    // Set hidden input to save empty value for multiselect.
871
+		    if ( ! empty( $args['multiple'] ) && ! empty( $args['name'] ) ) {
872
+			    $output .= '<input type="hidden" ' . AUI_Component_Helper::name( $args['name'] ) . ' value="" data-ignore-rule/>';
873
+		    }
874
+
875
+		    // open/type
876
+		    $output .= '<select ';
877
+
878
+		    // style
879
+		    if ( $is_select2 && !($args['input_group_left'] || $args['input_group_right'])) {
880
+			    $output .= " style='width:100%;' ";
881
+		    }
882
+
883
+		    // element require
884
+		    if ( ! empty( $args['element_require'] ) ) {
885
+			    $output .= AUI_Component_Helper::element_require( $args['element_require'] );
886
+			    $args['class'] .= " aui-conditional-field";
887
+		    }
888
+
889
+		    // class
890
+		    $class = ! empty( $args['class'] ) ? $args['class'] : '';
891
+		    $select_class = $aui_bs5 ? 'form-select ' : 'custom-select ';
892
+		    $output .= AUI_Component_Helper::class_attr( $select_class . $class );
893
+
894
+		    // name
895
+		    if ( ! empty( $args['name'] ) ) {
896
+			    $output .= AUI_Component_Helper::name( $args['name'], $args['multiple'] );
897
+		    }
898
+
899
+		    // id
900
+		    if ( ! empty( $args['id'] ) ) {
901
+			    $output .= AUI_Component_Helper::id( $args['id'] );
902
+		    }
903
+
904
+		    // title
905
+		    if ( ! empty( $args['title'] ) ) {
906
+			    $output .= AUI_Component_Helper::title( $args['title'] );
907
+		    }
908
+
909
+		    // data-attributes
910
+		    $output .= AUI_Component_Helper::data_attributes( $args );
911
+
912
+		    // aria-attributes
913
+		    $output .= AUI_Component_Helper::aria_attributes( $args );
914
+
915
+		    // extra attributes
916
+		    if ( ! empty( $args['extra_attributes'] ) ) {
917
+			    $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
918
+		    }
919
+
920
+		    // required
921
+		    if ( ! empty( $args['required'] ) ) {
922
+			    $output .= ' required ';
923
+		    }
924
+
925
+		    // multiple
926
+		    if ( ! empty( $args['multiple'] ) ) {
927
+			    $output .= ' multiple ';
928
+		    }
929
+
930
+		    // close opening tag
931
+		    $output .= ' >';
932
+
933
+		    // placeholder
934
+		    if ( isset( $args['placeholder'] ) && '' != $args['placeholder'] && ! $is_select2 ) {
935
+			    $output .= '<option value="" disabled selected hidden>' . esc_attr( $args['placeholder'] ) . '</option>';
936
+		    } elseif ( $is_select2 && ! empty( $args['placeholder'] ) ) {
937
+			    $output .= "<option></option>"; // select2 needs an empty select to fill the placeholder
938
+		    }
939
+
940
+		    // Options
941
+		    if ( ! empty( $args['options'] ) ) {
942
+
943
+			    if ( ! is_array( $args['options'] ) ) {
944
+				    $output .= $args['options']; // not the preferred way but an option
945
+			    } else {
946
+				    foreach ( $args['options'] as $val => $name ) {
947
+					    $selected = '';
948
+					    if ( is_array( $name ) ) {
949
+						    if ( isset( $name['optgroup'] ) && ( $name['optgroup'] == 'start' || $name['optgroup'] == 'end' ) ) {
950
+							    $option_label = isset( $name['label'] ) ? $name['label'] : '';
951
+
952
+							    $output .= $name['optgroup'] == 'start' ? '<optgroup label="' . esc_attr( $option_label ) . '">' : '</optgroup>';
953
+						    } else {
954
+							    $option_label = isset( $name['label'] ) ? $name['label'] : '';
955
+							    $option_value = isset( $name['value'] ) ? $name['value'] : '';
956
+							    $extra_attributes = !empty($name['extra_attributes']) ? AUI_Component_Helper::extra_attributes( $name['extra_attributes'] ) : '';
957
+							    if ( ! empty( $args['multiple'] ) && ! empty( $args['value'] ) && is_array( $args['value'] ) ) {
958
+								    $selected = in_array( $option_value, stripslashes_deep( $args['value'] ) ) ? "selected" : "";
959
+							    } elseif ( ! empty( $args['value'] ) ) {
960
+								    $selected = selected( $option_value, stripslashes_deep( $args['value'] ), false );
961
+							    } elseif ( empty( $args['value'] ) && $args['value'] === $option_value ) {
962
+								    $selected = selected( $option_value, $args['value'], false );
963
+							    }
964
+
965
+							    $output .= '<option value="' . esc_attr( $option_value ) . '" ' . $selected . ' '.$extra_attributes .'>' . $option_label . '</option>';
966
+						    }
967
+					    } else {
968
+						    if ( ! empty( $args['value'] ) ) {
969
+							    if ( is_array( $args['value'] ) ) {
970
+								    $selected = in_array( $val, $args['value'] ) ? 'selected="selected"' : '';
971
+							    } elseif ( ! empty( $args['value'] ) ) {
972
+								    $selected = selected( $args['value'], $val, false );
973
+							    }
974
+						    } elseif ( $args['value'] === $val ) {
975
+							    $selected = selected( $args['value'], $val, false );
976
+						    }
977
+						    $output .= '<option value="' . esc_attr( $val ) . '" ' . $selected . '>' . esc_attr( $name ) . '</option>';
978
+					    }
979
+				    }
980
+			    }
981
+
982
+		    }
983
+
984
+		    // closing tag
985
+		    $output .= '</select>';
986
+
987
+		    $label = '';
988
+		    $help_text = '';
989
+		    // label
990
+		    if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
991
+		    } elseif ( ! empty( $args['label'] ) && ! $label_after ) {
992
+			    $label_args = array(
993
+				    'title'      => $args['label'],
994
+				    'for'        => $args['id'],
995
+				    'class'      => $args['label_class'] . " ",
996
+				    'label_type' => $args['label_type'],
997
+				    'label_col'  => $args['label_col']
998
+			    );
999
+			    $label = self::label( $label_args );
1000
+		    }
1001
+
1002
+		    // help text
1003
+		    if ( ! empty( $args['help_text'] ) ) {
1004
+			    $help_text = AUI_Component_Helper::help_text( $args['help_text'] );
1005
+		    }
1006
+
1007
+		    // input group wraps
1008
+		    if ( $args['input_group_left'] || $args['input_group_right'] ) {
1009
+			    $w100 = strpos( $args['class'], 'w-100' ) !== false ? ' w-100' : '';
1010
+			    if ( $args['input_group_left'] ) {
1011
+				    $output = self::wrap( array(
1012
+					    'content'                 => $output,
1013
+					    'class'                   => $args['input_group_left_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1014
+					    'input_group_left'        => $args['input_group_left'],
1015
+					    'input_group_left_inside' => $args['input_group_left_inside']
1016
+				    ) );
1017
+			    }
1018
+			    if ( $args['input_group_right'] ) {
1019
+				    $output = self::wrap( array(
1020
+					    'content'                  => $output,
1021
+					    'class'                    => $args['input_group_right_inside'] ? 'input-group-inside position-relative' . $w100 : 'input-group',
1022
+					    'input_group_right'        => $args['input_group_right'],
1023
+					    'input_group_right_inside' => $args['input_group_right_inside']
1024
+				    ) );
1025
+			    }
1026
+
1027
+		    }
1028
+
1029
+		    if ( ! $label_after ) {
1030
+			    $output .= $help_text;
1031
+		    }
1032
+
1033
+
1034
+		    if ( $args['label_type'] == 'horizontal' ) {
1035
+			    $output = self::wrap( array(
1036
+				    'content' => $output,
1037
+				    'class'   => AUI_Component_Helper::get_column_class( $args['label_col'], 'input' )
1038
+			    ) );
1039
+		    }
1040
+
1041
+		    if ( ! $label_after ) {
1042
+			    $output = $label . $output;
1043
+		    }
1044
+
1045
+		    // maybe horizontal label
1046
+    //		if ( $args['label_type'] == 'horizontal' ) {
1047
+    //			$output .= '</div>';
1048
+    //		}
1049
+
1050
+
1051
+		    // wrap
1052
+		    if ( ! $args['no_wrap'] ) {
1053
+			    if ( ! empty( $args['form_group_class'] ) ) {
1054
+				    $fg_class = esc_attr( $args['form_group_class'] );
1055
+			    }else{
1056
+				    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1057
+			    }
1058
+			    $wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1059
+			    $wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1060
+			    $output     = self::wrap( array(
1061
+				    'content'         => $output,
1062
+				    'class'           => $wrap_class,
1063
+				    'element_require' => $args['element_require'],
1064
+				    'argument_id'     => $args['id'],
1065
+				    'wrap_attributes' => $args['wrap_attributes'],
1066
+			    ) );
1067
+		    }
1068
+
1069
+
1070
+		    return $output;
1071
+	    }
1072
+
1073
+	    /**
1074 1074
 	 * Build the component.
1075 1075
 	 *
1076 1076
 	 * @param array $args
1077 1077
 	 *
1078 1078
 	 * @return string The rendered component.
1079 1079
 	 */
1080
-	public static function radio( $args = array() ) {
1081
-		global $aui_bs5;
1082
-
1083
-		$defaults = array(
1084
-			'class'            => '',
1085
-			'wrap_class'       => '',
1086
-			'id'               => '',
1087
-			'title'            => '',
1088
-			'horizontal'       => false,
1089
-			// sets the lable horizontal
1090
-			'value'            => '',
1091
-			'label'            => '',
1092
-			'label_class'      => '',
1093
-			'label_type'       => '',
1094
-			'label_col'        => '',
1095
-			// sets the label type, default: hidden. Options: hidden, top, horizontal, floating
1096
-			'help_text'        => '',
1097
-			'inline'           => true,
1098
-			'required'         => false,
1099
-			'options'          => array(),
1100
-			'icon'             => '',
1101
-			'no_wrap'          => false,
1102
-			'element_require'  => '',
1103
-			// [%element_id%] == "1"
1104
-			'extra_attributes' => array(),
1105
-			// an array of extra attributes
1106
-			'wrap_attributes'  => array()
1107
-		);
1108
-
1109
-		/**
1080
+	    public static function radio( $args = array() ) {
1081
+		    global $aui_bs5;
1082
+
1083
+		    $defaults = array(
1084
+			    'class'            => '',
1085
+			    'wrap_class'       => '',
1086
+			    'id'               => '',
1087
+			    'title'            => '',
1088
+			    'horizontal'       => false,
1089
+			    // sets the lable horizontal
1090
+			    'value'            => '',
1091
+			    'label'            => '',
1092
+			    'label_class'      => '',
1093
+			    'label_type'       => '',
1094
+			    'label_col'        => '',
1095
+			    // sets the label type, default: hidden. Options: hidden, top, horizontal, floating
1096
+			    'help_text'        => '',
1097
+			    'inline'           => true,
1098
+			    'required'         => false,
1099
+			    'options'          => array(),
1100
+			    'icon'             => '',
1101
+			    'no_wrap'          => false,
1102
+			    'element_require'  => '',
1103
+			    // [%element_id%] == "1"
1104
+			    'extra_attributes' => array(),
1105
+			    // an array of extra attributes
1106
+			    'wrap_attributes'  => array()
1107
+		    );
1108
+
1109
+		    /**
1110 1110
 		 * Parse incoming $args into an array and merge it with $defaults
1111 1111
 		 */
1112
-		$args = wp_parse_args( $args, $defaults );
1113
-
1114
-		// for now lets use horizontal for floating
1115
-		if ( $args['label_type'] == 'floating' ) {
1116
-			$args['label_type'] = 'horizontal';
1117
-		}
1118
-
1119
-		$label_args = array(
1120
-			'title'      => $args['label'],
1121
-			'class'      => $args['label_class'] . " pt-0 ",
1122
-			'label_type' => $args['label_type'],
1123
-			'label_col'  => $args['label_col']
1124
-		);
1125
-
1126
-		if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1127
-			$label_args['class'] .= 'd-block ';
1128
-
1129
-			if ( $args['label_type'] == 'hidden' ) {
1130
-				$label_args['class'] .= 'sr-only ';
1131
-			}
1132
-		}
1133
-
1134
-		$output = '';
1135
-
1136
-		// label before
1137
-		if ( ! empty( $args['label'] ) ) {
1138
-			$output .= self::label( $label_args, 'radio' );
1139
-		}
1140
-
1141
-		// maybe horizontal label
1142
-		if ( $args['label_type'] == 'horizontal' ) {
1143
-			$input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1144
-			$output .= '<div class="' . $input_col . '">';
1145
-		}
1146
-
1147
-		if ( ! empty( $args['options'] ) ) {
1148
-			$count = 0;
1149
-			foreach ( $args['options'] as $value => $label ) {
1150
-				$option_args            = $args;
1151
-				$option_args['value']   = $value;
1152
-				$option_args['label']   = $label;
1153
-				$option_args['checked'] = $value == $args['value'] ? true : false;
1154
-				$output .= self::radio_option( $option_args, $count );
1155
-				$count ++;
1156
-			}
1157
-		}
1158
-
1159
-		// help text
1160
-		$help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1161
-		$output .= $help_text;
1162
-
1163
-		// maybe horizontal label
1164
-		if ( $args['label_type'] == 'horizontal' ) {
1165
-			$output .= '</div>';
1166
-		}
1167
-
1168
-		// wrap
1169
-		$fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1170
-		$wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1171
-		$wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1172
-		$output     = self::wrap( array(
1173
-			'content'         => $output,
1174
-			'class'           => $wrap_class,
1175
-			'element_require' => $args['element_require'],
1176
-			'argument_id'     => $args['id'],
1177
-			'wrap_attributes' => $args['wrap_attributes'],
1178
-		) );
1179
-
1180
-
1181
-		return $output;
1182
-	}
1183
-
1184
-	/**
1112
+		    $args = wp_parse_args( $args, $defaults );
1113
+
1114
+		    // for now lets use horizontal for floating
1115
+		    if ( $args['label_type'] == 'floating' ) {
1116
+			    $args['label_type'] = 'horizontal';
1117
+		    }
1118
+
1119
+		    $label_args = array(
1120
+			    'title'      => $args['label'],
1121
+			    'class'      => $args['label_class'] . " pt-0 ",
1122
+			    'label_type' => $args['label_type'],
1123
+			    'label_col'  => $args['label_col']
1124
+		    );
1125
+
1126
+		    if ( $args['label_type'] == 'top' || $args['label_type'] == 'hidden' ) {
1127
+			    $label_args['class'] .= 'd-block ';
1128
+
1129
+			    if ( $args['label_type'] == 'hidden' ) {
1130
+				    $label_args['class'] .= 'sr-only ';
1131
+			    }
1132
+		    }
1133
+
1134
+		    $output = '';
1135
+
1136
+		    // label before
1137
+		    if ( ! empty( $args['label'] ) ) {
1138
+			    $output .= self::label( $label_args, 'radio' );
1139
+		    }
1140
+
1141
+		    // maybe horizontal label
1142
+		    if ( $args['label_type'] == 'horizontal' ) {
1143
+			    $input_col = AUI_Component_Helper::get_column_class( $args['label_col'], 'input' );
1144
+			    $output .= '<div class="' . $input_col . '">';
1145
+		    }
1146
+
1147
+		    if ( ! empty( $args['options'] ) ) {
1148
+			    $count = 0;
1149
+			    foreach ( $args['options'] as $value => $label ) {
1150
+				    $option_args            = $args;
1151
+				    $option_args['value']   = $value;
1152
+				    $option_args['label']   = $label;
1153
+				    $option_args['checked'] = $value == $args['value'] ? true : false;
1154
+				    $output .= self::radio_option( $option_args, $count );
1155
+				    $count ++;
1156
+			    }
1157
+		    }
1158
+
1159
+		    // help text
1160
+		    $help_text = ! empty( $args['help_text'] ) ? AUI_Component_Helper::help_text( $args['help_text'] ) : '';
1161
+		    $output .= $help_text;
1162
+
1163
+		    // maybe horizontal label
1164
+		    if ( $args['label_type'] == 'horizontal' ) {
1165
+			    $output .= '</div>';
1166
+		    }
1167
+
1168
+		    // wrap
1169
+		    $fg_class = $aui_bs5 ? 'mb-3' : 'form-group';
1170
+		    $wrap_class = $args['label_type'] == 'horizontal' ? $fg_class . ' row' : $fg_class;
1171
+		    $wrap_class = ! empty( $args['wrap_class'] ) ? $wrap_class . " " . $args['wrap_class'] : $wrap_class;
1172
+		    $output     = self::wrap( array(
1173
+			    'content'         => $output,
1174
+			    'class'           => $wrap_class,
1175
+			    'element_require' => $args['element_require'],
1176
+			    'argument_id'     => $args['id'],
1177
+			    'wrap_attributes' => $args['wrap_attributes'],
1178
+		    ) );
1179
+
1180
+
1181
+		    return $output;
1182
+	    }
1183
+
1184
+	    /**
1185 1185
 	 * Build the component.
1186 1186
 	 *
1187 1187
 	 * @param array $args
1188 1188
 	 *
1189 1189
 	 * @return string The rendered component.
1190 1190
 	 */
1191
-	public static function radio_option( $args = array(), $count = '' ) {
1192
-		$defaults = array(
1193
-			'class'            => '',
1194
-			'id'               => '',
1195
-			'title'            => '',
1196
-			'value'            => '',
1197
-			'required'         => false,
1198
-			'inline'           => true,
1199
-			'label'            => '',
1200
-			'options'          => array(),
1201
-			'icon'             => '',
1202
-			'no_wrap'          => false,
1203
-			'extra_attributes' => array() // an array of extra attributes
1204
-		);
1205
-
1206
-		/**
1191
+	    public static function radio_option( $args = array(), $count = '' ) {
1192
+		    $defaults = array(
1193
+			    'class'            => '',
1194
+			    'id'               => '',
1195
+			    'title'            => '',
1196
+			    'value'            => '',
1197
+			    'required'         => false,
1198
+			    'inline'           => true,
1199
+			    'label'            => '',
1200
+			    'options'          => array(),
1201
+			    'icon'             => '',
1202
+			    'no_wrap'          => false,
1203
+			    'extra_attributes' => array() // an array of extra attributes
1204
+		    );
1205
+
1206
+		    /**
1207 1207
 		 * Parse incoming $args into an array and merge it with $defaults
1208 1208
 		 */
1209
-		$args = wp_parse_args( $args, $defaults );
1210
-
1211
-		$output = '';
1212
-
1213
-		// open/type
1214
-		$output .= '<input type="radio"';
1215
-
1216
-		// class
1217
-		$output .= ' class="form-check-input" ';
1218
-
1219
-		// name
1220
-		if ( ! empty( $args['name'] ) ) {
1221
-			$output .= AUI_Component_Helper::name( $args['name'] );
1222
-		}
1223
-
1224
-		// id
1225
-		if ( ! empty( $args['id'] ) ) {
1226
-			$output .= AUI_Component_Helper::id( $args['id'] . $count );
1227
-		}
1228
-
1229
-		// title
1230
-		if ( ! empty( $args['title'] ) ) {
1231
-			$output .= AUI_Component_Helper::title( $args['title'] );
1232
-		}
1233
-
1234
-		// value
1235
-		if ( isset( $args['value'] ) ) {
1236
-			$output .= AUI_Component_Helper::value( $args['value'] );
1237
-		}
1238
-
1239
-		// checked, for radio and checkboxes
1240
-		if ( $args['checked'] ) {
1241
-			$output .= ' checked ';
1242
-		}
1243
-
1244
-		// data-attributes
1245
-		$output .= AUI_Component_Helper::data_attributes( $args );
1246
-
1247
-		// aria-attributes
1248
-		$output .= AUI_Component_Helper::aria_attributes( $args );
1249
-
1250
-		// extra attributes
1251
-		if ( ! empty( $args['extra_attributes'] ) ) {
1252
-			$output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1253
-		}
1254
-
1255
-		// required
1256
-		if ( ! empty( $args['required'] ) ) {
1257
-			$output .= ' required ';
1258
-		}
1259
-
1260
-		// close opening tag
1261
-		$output .= ' >';
1262
-
1263
-		// label
1264
-		if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1265
-		} elseif ( ! empty( $args['label'] ) ) {
1266
-			$output .= self::label( array(
1267
-				'title' => $args['label'],
1268
-				'for'   => $args['id'] . $count,
1269
-				'class' => 'form-check-label'
1270
-			), 'radio' );
1271
-		}
1272
-
1273
-		// wrap
1274
-		if ( ! $args['no_wrap'] ) {
1275
-			$wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1276
-
1277
-			// Unique wrap class
1278
-			$uniq_class = 'fwrap';
1279
-			if ( ! empty( $args['name'] ) ) {
1280
-				$uniq_class .= '-' . $args['name'];
1281
-			} else if ( ! empty( $args['id'] ) ) {
1282
-				$uniq_class .= '-' . $args['id'];
1283
-			}
1284
-
1285
-			if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1286
-				$uniq_class .= '-' . $args['value'];
1287
-			} else {
1288
-				$uniq_class .= '-' . $count;
1289
-			}
1290
-			$wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1291
-
1292
-			$output = self::wrap( array(
1293
-				'content' => $output,
1294
-				'class'   => $wrap_class
1295
-			) );
1296
-		}
1297
-
1298
-		return $output;
1299
-	}
1209
+		    $args = wp_parse_args( $args, $defaults );
1210
+
1211
+		    $output = '';
1212
+
1213
+		    // open/type
1214
+		    $output .= '<input type="radio"';
1215
+
1216
+		    // class
1217
+		    $output .= ' class="form-check-input" ';
1218
+
1219
+		    // name
1220
+		    if ( ! empty( $args['name'] ) ) {
1221
+			    $output .= AUI_Component_Helper::name( $args['name'] );
1222
+		    }
1223
+
1224
+		    // id
1225
+		    if ( ! empty( $args['id'] ) ) {
1226
+			    $output .= AUI_Component_Helper::id( $args['id'] . $count );
1227
+		    }
1228
+
1229
+		    // title
1230
+		    if ( ! empty( $args['title'] ) ) {
1231
+			    $output .= AUI_Component_Helper::title( $args['title'] );
1232
+		    }
1233
+
1234
+		    // value
1235
+		    if ( isset( $args['value'] ) ) {
1236
+			    $output .= AUI_Component_Helper::value( $args['value'] );
1237
+		    }
1238
+
1239
+		    // checked, for radio and checkboxes
1240
+		    if ( $args['checked'] ) {
1241
+			    $output .= ' checked ';
1242
+		    }
1243
+
1244
+		    // data-attributes
1245
+		    $output .= AUI_Component_Helper::data_attributes( $args );
1246
+
1247
+		    // aria-attributes
1248
+		    $output .= AUI_Component_Helper::aria_attributes( $args );
1249
+
1250
+		    // extra attributes
1251
+		    if ( ! empty( $args['extra_attributes'] ) ) {
1252
+			    $output .= AUI_Component_Helper::extra_attributes( $args['extra_attributes'] );
1253
+		    }
1254
+
1255
+		    // required
1256
+		    if ( ! empty( $args['required'] ) ) {
1257
+			    $output .= ' required ';
1258
+		    }
1259
+
1260
+		    // close opening tag
1261
+		    $output .= ' >';
1262
+
1263
+		    // label
1264
+		    if ( ! empty( $args['label'] ) && is_array( $args['label'] ) ) {
1265
+		    } elseif ( ! empty( $args['label'] ) ) {
1266
+			    $output .= self::label( array(
1267
+				    'title' => $args['label'],
1268
+				    'for'   => $args['id'] . $count,
1269
+				    'class' => 'form-check-label'
1270
+			    ), 'radio' );
1271
+		    }
1272
+
1273
+		    // wrap
1274
+		    if ( ! $args['no_wrap'] ) {
1275
+			    $wrap_class = $args['inline'] ? 'form-check form-check-inline' : 'form-check';
1276
+
1277
+			    // Unique wrap class
1278
+			    $uniq_class = 'fwrap';
1279
+			    if ( ! empty( $args['name'] ) ) {
1280
+				    $uniq_class .= '-' . $args['name'];
1281
+			    } else if ( ! empty( $args['id'] ) ) {
1282
+				    $uniq_class .= '-' . $args['id'];
1283
+			    }
1284
+
1285
+			    if ( isset( $args['value'] ) || $args['value'] !== "" ) {
1286
+				    $uniq_class .= '-' . $args['value'];
1287
+			    } else {
1288
+				    $uniq_class .= '-' . $count;
1289
+			    }
1290
+			    $wrap_class .= ' ' . sanitize_html_class( $uniq_class );
1291
+
1292
+			    $output = self::wrap( array(
1293
+				    'content' => $output,
1294
+				    'class'   => $wrap_class
1295
+			    ) );
1296
+		    }
1297
+
1298
+		    return $output;
1299
+	    }
1300 1300
 
1301 1301
 }
1302 1302
\ No newline at end of file
Please login to merge, or discard this patch.