Passed
Push — master ( e16739...5581f0 )
by Kiran
10:20 queued 14s
created
vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php 1 patch
Indentation   +1975 added lines, -1975 removed lines patch added patch discarded remove patch
@@ -13,7 +13,7 @@  discard block
 block discarded – undo
13 13
  * Bail if we are not in WP.
14 14
  */
15 15
 if ( ! defined( 'ABSPATH' ) ) {
16
-	exit;
16
+    exit;
17 17
 }
18 18
 
19 19
 /**
@@ -21,480 +21,480 @@  discard block
 block discarded – undo
21 21
  */
22 22
 if ( ! class_exists( 'AyeCode_UI_Settings' ) ) {
23 23
 
24
-	/**
25
-	 * A Class to be able to change settings for Font Awesome.
26
-	 *
27
-	 * Class AyeCode_UI_Settings
28
-	 * @ver 1.0.0
29
-	 * @todo decide how to implement textdomain
30
-	 */
31
-	class AyeCode_UI_Settings {
32
-
33
-		/**
34
-		 * Class version version.
35
-		 *
36
-		 * @var string
37
-		 */
38
-		public $version = '0.2.23';
39
-
40
-		/**
41
-		 * Class textdomain.
42
-		 *
43
-		 * @var string
44
-		 */
45
-		public $textdomain = 'aui';
46
-
47
-		/**
48
-		 * Latest version of Bootstrap at time of publish published.
49
-		 *
50
-		 * @var string
51
-		 */
52
-		public $latest = "5.2.2";
53
-
54
-		/**
55
-		 * Current version of select2 being used.
56
-		 *
57
-		 * @var string
58
-		 */
59
-		public $select2_version = "4.0.11";
60
-
61
-		/**
62
-		 * The title.
63
-		 *
64
-		 * @var string
65
-		 */
66
-		public $name = 'AyeCode UI';
67
-
68
-		/**
69
-		 * The relative url to the assets.
70
-		 *
71
-		 * @var string
72
-		 */
73
-		public $url = '';
74
-
75
-		/**
76
-		 * Holds the settings values.
77
-		 *
78
-		 * @var array
79
-		 */
80
-		private $settings;
81
-
82
-		/**
83
-		 * AyeCode_UI_Settings instance.
84
-		 *
85
-		 * @access private
86
-		 * @since  1.0.0
87
-		 * @var    AyeCode_UI_Settings There can be only one!
88
-		 */
89
-		private static $instance = null;
90
-
91
-
92
-		/**
93
-		 * Main AyeCode_UI_Settings Instance.
94
-		 *
95
-		 * Ensures only one instance of AyeCode_UI_Settings is loaded or can be loaded.
96
-		 *
97
-		 * @since 1.0.0
98
-		 * @static
99
-		 * @return AyeCode_UI_Settings - Main instance.
100
-		 */
101
-		public static function instance() {
102
-			if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) {
103
-
104
-				self::$instance = new AyeCode_UI_Settings;
105
-
106
-				add_action( 'init', array( self::$instance, 'init' ) ); // set settings
107
-
108
-				if ( is_admin() ) {
109
-					add_action( 'admin_menu', array( self::$instance, 'menu_item' ) );
110
-					add_action( 'admin_init', array( self::$instance, 'register_settings' ) );
111
-
112
-					// Maybe show example page
113
-					add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) );
114
-
115
-					if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
116
-						add_filter( 'sd_aui_colors', array( self::$instance,'sd_aui_colors' ), 10, 3 );
117
-					}
118
-				}
24
+    /**
25
+     * A Class to be able to change settings for Font Awesome.
26
+     *
27
+     * Class AyeCode_UI_Settings
28
+     * @ver 1.0.0
29
+     * @todo decide how to implement textdomain
30
+     */
31
+    class AyeCode_UI_Settings {
32
+
33
+        /**
34
+         * Class version version.
35
+         *
36
+         * @var string
37
+         */
38
+        public $version = '0.2.23';
39
+
40
+        /**
41
+         * Class textdomain.
42
+         *
43
+         * @var string
44
+         */
45
+        public $textdomain = 'aui';
119 46
 
120
-				add_action( 'customize_register', array( self::$instance, 'customizer_settings' ));
47
+        /**
48
+         * Latest version of Bootstrap at time of publish published.
49
+         *
50
+         * @var string
51
+         */
52
+        public $latest = "5.2.2";
53
+
54
+        /**
55
+         * Current version of select2 being used.
56
+         *
57
+         * @var string
58
+         */
59
+        public $select2_version = "4.0.11";
121 60
 
122
-				do_action( 'ayecode_ui_settings_loaded' );
123
-			}
61
+        /**
62
+         * The title.
63
+         *
64
+         * @var string
65
+         */
66
+        public $name = 'AyeCode UI';
124 67
 
125
-			return self::$instance;
126
-		}
68
+        /**
69
+         * The relative url to the assets.
70
+         *
71
+         * @var string
72
+         */
73
+        public $url = '';
127 74
 
128
-		/**
129
-		 * Add custom colors to the color selector.
130
-		 *
131
-		 * @param $theme_colors
132
-		 * @param $include_outlines
133
-		 * @param $include_branding
134
-		 *
135
-		 * @return mixed
136
-		 */
137
-		public function sd_aui_colors( $theme_colors, $include_outlines, $include_branding ){
75
+        /**
76
+         * Holds the settings values.
77
+         *
78
+         * @var array
79
+         */
80
+        private $settings;
138 81
 
82
+        /**
83
+         * AyeCode_UI_Settings instance.
84
+         *
85
+         * @access private
86
+         * @since  1.0.0
87
+         * @var    AyeCode_UI_Settings There can be only one!
88
+         */
89
+        private static $instance = null;
139 90
 
140
-			$setting = wp_get_global_settings();
141 91
 
142
-			if(!empty($setting['color']['palette']['custom'])){
143
-				foreach($setting['color']['palette']['custom'] as $color){
144
-					$theme_colors[$color['slug']] = esc_attr($color['name']);
145
-				}
146
-			}
147
-
148
-			return $theme_colors;
149
-		}
150
-
151
-		/**
152
-		 * Setup some constants.
153
-		 */
154
-		public function constants(){
155
-			define( 'AUI_PRIMARY_COLOR_ORIGINAL', "#1e73be" );
156
-			define( 'AUI_SECONDARY_COLOR_ORIGINAL', '#6c757d' );
157
-			define( 'AUI_INFO_COLOR_ORIGINAL', '#17a2b8' );
158
-			define( 'AUI_WARNING_COLOR_ORIGINAL', '#ffc107' );
159
-			define( 'AUI_DANGER_COLOR_ORIGINAL', '#dc3545' );
160
-			define( 'AUI_SUCCESS_COLOR_ORIGINAL', '#44c553' );
161
-			define( 'AUI_LIGHT_COLOR_ORIGINAL', '#f8f9fa' );
162
-			define( 'AUI_DARK_COLOR_ORIGINAL', '#343a40' );
163
-			define( 'AUI_WHITE_COLOR_ORIGINAL', '#fff' );
164
-			define( 'AUI_PURPLE_COLOR_ORIGINAL', '#ad6edd' );
165
-			define( 'AUI_SALMON_COLOR_ORIGINAL', '#ff977a' );
166
-			define( 'AUI_CYAN_COLOR_ORIGINAL', '#35bdff' );
167
-			define( 'AUI_GRAY_COLOR_ORIGINAL', '#ced4da' );
168
-			define( 'AUI_INDIGO_COLOR_ORIGINAL', '#502c6c' );
169
-			define( 'AUI_ORANGE_COLOR_ORIGINAL', '#orange' );
170
-			define( 'AUI_BLACK_COLOR_ORIGINAL', '#000' );
171
-
172
-			if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) {
173
-				define( 'AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL );
174
-			}
175
-			if ( ! defined( 'AUI_SECONDARY_COLOR' ) ) {
176
-				define( 'AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL );
177
-			}
178
-			if ( ! defined( 'AUI_INFO_COLOR' ) ) {
179
-				define( 'AUI_INFO_COLOR', AUI_INFO_COLOR_ORIGINAL );
180
-			}
181
-			if ( ! defined( 'AUI_WARNING_COLOR' ) ) {
182
-				define( 'AUI_WARNING_COLOR', AUI_WARNING_COLOR_ORIGINAL );
183
-			}
184
-			if ( ! defined( 'AUI_DANGER_COLOR' ) ) {
185
-				define( 'AUI_DANGER_COLOR', AUI_DANGER_COLOR_ORIGINAL );
186
-			}
187
-			if ( ! defined( 'AUI_SUCCESS_COLOR' ) ) {
188
-				define( 'AUI_SUCCESS_COLOR', AUI_SUCCESS_COLOR_ORIGINAL );
189
-			}
190
-			if ( ! defined( 'AUI_LIGHT_COLOR' ) ) {
191
-				define( 'AUI_LIGHT_COLOR', AUI_LIGHT_COLOR_ORIGINAL );
192
-			}
193
-			if ( ! defined( 'AUI_DARK_COLOR' ) ) {
194
-				define( 'AUI_DARK_COLOR', AUI_DARK_COLOR_ORIGINAL );
195
-			}
196
-			if ( ! defined( 'AUI_WHITE_COLOR' ) ) {
197
-				define( 'AUI_WHITE_COLOR', AUI_WHITE_COLOR_ORIGINAL );
198
-			}
199
-			if ( ! defined( 'AUI_PURPLE_COLOR' ) ) {
200
-				define( 'AUI_PURPLE_COLOR', AUI_PURPLE_COLOR_ORIGINAL );
201
-			}
202
-			if ( ! defined( 'AUI_SALMON_COLOR' ) ) {
203
-				define( 'AUI_SALMON_COLOR', AUI_SALMON_COLOR_ORIGINAL );
204
-			}
205
-			if ( ! defined( 'AUI_CYAN_COLOR' ) ) {
206
-				define( 'AUI_CYAN_COLOR', AUI_CYAN_COLOR_ORIGINAL );
207
-			}
208
-			if ( ! defined( 'AUI_GRAY_COLOR' ) ) {
209
-				define( 'AUI_GRAY_COLOR', AUI_GRAY_COLOR_ORIGINAL );
210
-			}
211
-			if ( ! defined( 'AUI_INDIGO_COLOR' ) ) {
212
-				define( 'AUI_INDIGO_COLOR', AUI_INDIGO_COLOR_ORIGINAL );
213
-			}
214
-			if ( ! defined( 'AUI_ORANGE_COLOR' ) ) {
215
-				define( 'AUI_ORANGE_COLOR', AUI_ORANGE_COLOR_ORIGINAL );
216
-			}
217
-			if ( ! defined( 'AUI_BLACK_COLOR' ) ) {
218
-				define( 'AUI_BLACK_COLOR', AUI_BLACK_COLOR_ORIGINAL );
219
-			}
220
-
221
-		}
222
-
223
-		public static function get_colors( $original = false){
224
-
225
-			if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) {
226
-				return array();
227
-			}
228
-			if ( $original ) {
229
-				return array(
230
-					'primary'   => AUI_PRIMARY_COLOR_ORIGINAL,
231
-					'secondary' => AUI_SECONDARY_COLOR_ORIGINAL,
232
-					'info'      => AUI_INFO_COLOR_ORIGINAL,
233
-					'warning'   => AUI_WARNING_COLOR_ORIGINAL,
234
-					'danger'    => AUI_DANGER_COLOR_ORIGINAL,
235
-					'success'   => AUI_SUCCESS_COLOR_ORIGINAL,
236
-					'light'     => AUI_LIGHT_COLOR_ORIGINAL,
237
-					'dark'      => AUI_DARK_COLOR_ORIGINAL,
238
-					'white'     => AUI_WHITE_COLOR_ORIGINAL,
239
-					'purple'    => AUI_PURPLE_COLOR_ORIGINAL,
240
-					'salmon'    => AUI_SALMON_COLOR_ORIGINAL,
241
-					'cyan'      => AUI_CYAN_COLOR_ORIGINAL,
242
-					'gray'      => AUI_GRAY_COLOR_ORIGINAL,
243
-					'indigo'    => AUI_INDIGO_COLOR_ORIGINAL,
244
-					'orange'    => AUI_ORANGE_COLOR_ORIGINAL,
245
-					'black'     => AUI_BLACK_COLOR_ORIGINAL,
246
-				);
247
-			}
248
-
249
-			return array(
250
-				'primary'   => AUI_PRIMARY_COLOR,
251
-				'secondary' => AUI_SECONDARY_COLOR,
252
-				'info'      => AUI_INFO_COLOR,
253
-				'warning'   => AUI_WARNING_COLOR,
254
-				'danger'    => AUI_DANGER_COLOR,
255
-				'success'   => AUI_SUCCESS_COLOR,
256
-				'light'     => AUI_LIGHT_COLOR,
257
-				'dark'      => AUI_DARK_COLOR,
258
-				'white'     => AUI_WHITE_COLOR,
259
-				'purple'    => AUI_PURPLE_COLOR,
260
-				'salmon'    => AUI_SALMON_COLOR,
261
-				'cyan'      => AUI_CYAN_COLOR,
262
-				'gray'      => AUI_GRAY_COLOR,
263
-				'indigo'    => AUI_INDIGO_COLOR,
264
-				'orange'    => AUI_ORANGE_COLOR,
265
-				'black'     => AUI_BLACK_COLOR,
266
-			);
267
-		}
268
-
269
-		/**
270
-		 * Add admin body class to show when BS5 is active.
271
-		 *
272
-		 * @param $classes
273
-		 *
274
-		 * @return mixed
275
-		 */
276
-		public function add_bs5_admin_body_class( $classes = '' ) {
277
-			$classes .= ' aui_bs5';
278
-
279
-			return $classes;
280
-		}
281
-
282
-		/**
283
-		 * Add a body class to show when BS5 is active.
284
-		 *
285
-		 * @param $classes
286
-		 *
287
-		 * @return mixed
288
-		 */
289
-		public function add_bs5_body_class( $classes ) {
290
-			$classes[] = 'aui_bs5';
291
-
292
-			return $classes;
293
-		}
294
-
295
-		/**
296
-		 * Initiate the settings and add the required action hooks.
297
-		 */
298
-		public function init() {
92
+        /**
93
+         * Main AyeCode_UI_Settings Instance.
94
+         *
95
+         * Ensures only one instance of AyeCode_UI_Settings is loaded or can be loaded.
96
+         *
97
+         * @since 1.0.0
98
+         * @static
99
+         * @return AyeCode_UI_Settings - Main instance.
100
+         */
101
+        public static function instance() {
102
+            if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) {
103
+
104
+                self::$instance = new AyeCode_UI_Settings;
105
+
106
+                add_action( 'init', array( self::$instance, 'init' ) ); // set settings
107
+
108
+                if ( is_admin() ) {
109
+                    add_action( 'admin_menu', array( self::$instance, 'menu_item' ) );
110
+                    add_action( 'admin_init', array( self::$instance, 'register_settings' ) );
111
+
112
+                    // Maybe show example page
113
+                    add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) );
114
+
115
+                    if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
116
+                        add_filter( 'sd_aui_colors', array( self::$instance,'sd_aui_colors' ), 10, 3 );
117
+                    }
118
+                }
119
+
120
+                add_action( 'customize_register', array( self::$instance, 'customizer_settings' ));
121
+
122
+                do_action( 'ayecode_ui_settings_loaded' );
123
+            }
124
+
125
+            return self::$instance;
126
+        }
127
+
128
+        /**
129
+         * Add custom colors to the color selector.
130
+         *
131
+         * @param $theme_colors
132
+         * @param $include_outlines
133
+         * @param $include_branding
134
+         *
135
+         * @return mixed
136
+         */
137
+        public function sd_aui_colors( $theme_colors, $include_outlines, $include_branding ){
138
+
139
+
140
+            $setting = wp_get_global_settings();
141
+
142
+            if(!empty($setting['color']['palette']['custom'])){
143
+                foreach($setting['color']['palette']['custom'] as $color){
144
+                    $theme_colors[$color['slug']] = esc_attr($color['name']);
145
+                }
146
+            }
147
+
148
+            return $theme_colors;
149
+        }
150
+
151
+        /**
152
+         * Setup some constants.
153
+         */
154
+        public function constants(){
155
+            define( 'AUI_PRIMARY_COLOR_ORIGINAL', "#1e73be" );
156
+            define( 'AUI_SECONDARY_COLOR_ORIGINAL', '#6c757d' );
157
+            define( 'AUI_INFO_COLOR_ORIGINAL', '#17a2b8' );
158
+            define( 'AUI_WARNING_COLOR_ORIGINAL', '#ffc107' );
159
+            define( 'AUI_DANGER_COLOR_ORIGINAL', '#dc3545' );
160
+            define( 'AUI_SUCCESS_COLOR_ORIGINAL', '#44c553' );
161
+            define( 'AUI_LIGHT_COLOR_ORIGINAL', '#f8f9fa' );
162
+            define( 'AUI_DARK_COLOR_ORIGINAL', '#343a40' );
163
+            define( 'AUI_WHITE_COLOR_ORIGINAL', '#fff' );
164
+            define( 'AUI_PURPLE_COLOR_ORIGINAL', '#ad6edd' );
165
+            define( 'AUI_SALMON_COLOR_ORIGINAL', '#ff977a' );
166
+            define( 'AUI_CYAN_COLOR_ORIGINAL', '#35bdff' );
167
+            define( 'AUI_GRAY_COLOR_ORIGINAL', '#ced4da' );
168
+            define( 'AUI_INDIGO_COLOR_ORIGINAL', '#502c6c' );
169
+            define( 'AUI_ORANGE_COLOR_ORIGINAL', '#orange' );
170
+            define( 'AUI_BLACK_COLOR_ORIGINAL', '#000' );
171
+
172
+            if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) {
173
+                define( 'AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL );
174
+            }
175
+            if ( ! defined( 'AUI_SECONDARY_COLOR' ) ) {
176
+                define( 'AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL );
177
+            }
178
+            if ( ! defined( 'AUI_INFO_COLOR' ) ) {
179
+                define( 'AUI_INFO_COLOR', AUI_INFO_COLOR_ORIGINAL );
180
+            }
181
+            if ( ! defined( 'AUI_WARNING_COLOR' ) ) {
182
+                define( 'AUI_WARNING_COLOR', AUI_WARNING_COLOR_ORIGINAL );
183
+            }
184
+            if ( ! defined( 'AUI_DANGER_COLOR' ) ) {
185
+                define( 'AUI_DANGER_COLOR', AUI_DANGER_COLOR_ORIGINAL );
186
+            }
187
+            if ( ! defined( 'AUI_SUCCESS_COLOR' ) ) {
188
+                define( 'AUI_SUCCESS_COLOR', AUI_SUCCESS_COLOR_ORIGINAL );
189
+            }
190
+            if ( ! defined( 'AUI_LIGHT_COLOR' ) ) {
191
+                define( 'AUI_LIGHT_COLOR', AUI_LIGHT_COLOR_ORIGINAL );
192
+            }
193
+            if ( ! defined( 'AUI_DARK_COLOR' ) ) {
194
+                define( 'AUI_DARK_COLOR', AUI_DARK_COLOR_ORIGINAL );
195
+            }
196
+            if ( ! defined( 'AUI_WHITE_COLOR' ) ) {
197
+                define( 'AUI_WHITE_COLOR', AUI_WHITE_COLOR_ORIGINAL );
198
+            }
199
+            if ( ! defined( 'AUI_PURPLE_COLOR' ) ) {
200
+                define( 'AUI_PURPLE_COLOR', AUI_PURPLE_COLOR_ORIGINAL );
201
+            }
202
+            if ( ! defined( 'AUI_SALMON_COLOR' ) ) {
203
+                define( 'AUI_SALMON_COLOR', AUI_SALMON_COLOR_ORIGINAL );
204
+            }
205
+            if ( ! defined( 'AUI_CYAN_COLOR' ) ) {
206
+                define( 'AUI_CYAN_COLOR', AUI_CYAN_COLOR_ORIGINAL );
207
+            }
208
+            if ( ! defined( 'AUI_GRAY_COLOR' ) ) {
209
+                define( 'AUI_GRAY_COLOR', AUI_GRAY_COLOR_ORIGINAL );
210
+            }
211
+            if ( ! defined( 'AUI_INDIGO_COLOR' ) ) {
212
+                define( 'AUI_INDIGO_COLOR', AUI_INDIGO_COLOR_ORIGINAL );
213
+            }
214
+            if ( ! defined( 'AUI_ORANGE_COLOR' ) ) {
215
+                define( 'AUI_ORANGE_COLOR', AUI_ORANGE_COLOR_ORIGINAL );
216
+            }
217
+            if ( ! defined( 'AUI_BLACK_COLOR' ) ) {
218
+                define( 'AUI_BLACK_COLOR', AUI_BLACK_COLOR_ORIGINAL );
219
+            }
220
+
221
+        }
222
+
223
+        public static function get_colors( $original = false){
224
+
225
+            if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) {
226
+                return array();
227
+            }
228
+            if ( $original ) {
229
+                return array(
230
+                    'primary'   => AUI_PRIMARY_COLOR_ORIGINAL,
231
+                    'secondary' => AUI_SECONDARY_COLOR_ORIGINAL,
232
+                    'info'      => AUI_INFO_COLOR_ORIGINAL,
233
+                    'warning'   => AUI_WARNING_COLOR_ORIGINAL,
234
+                    'danger'    => AUI_DANGER_COLOR_ORIGINAL,
235
+                    'success'   => AUI_SUCCESS_COLOR_ORIGINAL,
236
+                    'light'     => AUI_LIGHT_COLOR_ORIGINAL,
237
+                    'dark'      => AUI_DARK_COLOR_ORIGINAL,
238
+                    'white'     => AUI_WHITE_COLOR_ORIGINAL,
239
+                    'purple'    => AUI_PURPLE_COLOR_ORIGINAL,
240
+                    'salmon'    => AUI_SALMON_COLOR_ORIGINAL,
241
+                    'cyan'      => AUI_CYAN_COLOR_ORIGINAL,
242
+                    'gray'      => AUI_GRAY_COLOR_ORIGINAL,
243
+                    'indigo'    => AUI_INDIGO_COLOR_ORIGINAL,
244
+                    'orange'    => AUI_ORANGE_COLOR_ORIGINAL,
245
+                    'black'     => AUI_BLACK_COLOR_ORIGINAL,
246
+                );
247
+            }
248
+
249
+            return array(
250
+                'primary'   => AUI_PRIMARY_COLOR,
251
+                'secondary' => AUI_SECONDARY_COLOR,
252
+                'info'      => AUI_INFO_COLOR,
253
+                'warning'   => AUI_WARNING_COLOR,
254
+                'danger'    => AUI_DANGER_COLOR,
255
+                'success'   => AUI_SUCCESS_COLOR,
256
+                'light'     => AUI_LIGHT_COLOR,
257
+                'dark'      => AUI_DARK_COLOR,
258
+                'white'     => AUI_WHITE_COLOR,
259
+                'purple'    => AUI_PURPLE_COLOR,
260
+                'salmon'    => AUI_SALMON_COLOR,
261
+                'cyan'      => AUI_CYAN_COLOR,
262
+                'gray'      => AUI_GRAY_COLOR,
263
+                'indigo'    => AUI_INDIGO_COLOR,
264
+                'orange'    => AUI_ORANGE_COLOR,
265
+                'black'     => AUI_BLACK_COLOR,
266
+            );
267
+        }
268
+
269
+        /**
270
+         * Add admin body class to show when BS5 is active.
271
+         *
272
+         * @param $classes
273
+         *
274
+         * @return mixed
275
+         */
276
+        public function add_bs5_admin_body_class( $classes = '' ) {
277
+            $classes .= ' aui_bs5';
278
+
279
+            return $classes;
280
+        }
281
+
282
+        /**
283
+         * Add a body class to show when BS5 is active.
284
+         *
285
+         * @param $classes
286
+         *
287
+         * @return mixed
288
+         */
289
+        public function add_bs5_body_class( $classes ) {
290
+            $classes[] = 'aui_bs5';
291
+
292
+            return $classes;
293
+        }
294
+
295
+        /**
296
+         * Initiate the settings and add the required action hooks.
297
+         */
298
+        public function init() {
299 299
             global $aui_bs5;
300 300
 
301
-			// Maybe fix settings
302
-			if ( ! empty( $_REQUEST['aui-fix-admin'] ) && !empty($_REQUEST['nonce']) && wp_verify_nonce( $_REQUEST['nonce'], "aui-fix-admin" ) ) {
303
-				$db_settings = get_option( 'ayecode-ui-settings' );
304
-				if ( ! empty( $db_settings ) ) {
305
-					$db_settings['css_backend'] = 'compatibility';
306
-					$db_settings['js_backend'] = 'core-popper';
307
-					update_option( 'ayecode-ui-settings', $db_settings );
308
-					wp_safe_redirect(admin_url("options-general.php?page=ayecode-ui-settings&updated=true"));
309
-				}
310
-			}
301
+            // Maybe fix settings
302
+            if ( ! empty( $_REQUEST['aui-fix-admin'] ) && !empty($_REQUEST['nonce']) && wp_verify_nonce( $_REQUEST['nonce'], "aui-fix-admin" ) ) {
303
+                $db_settings = get_option( 'ayecode-ui-settings' );
304
+                if ( ! empty( $db_settings ) ) {
305
+                    $db_settings['css_backend'] = 'compatibility';
306
+                    $db_settings['js_backend'] = 'core-popper';
307
+                    update_option( 'ayecode-ui-settings', $db_settings );
308
+                    wp_safe_redirect(admin_url("options-general.php?page=ayecode-ui-settings&updated=true"));
309
+                }
310
+            }
311 311
 
312
-			$this->constants();
313
-			$this->settings = $this->get_settings();
314
-			$this->url = $this->get_url();
312
+            $this->constants();
313
+            $this->settings = $this->get_settings();
314
+            $this->url = $this->get_url();
315 315
 
316 316
             // define the version
317
-			$aui_bs5 = $this->settings['bs_ver'] === '5';
318
-
319
-			if ( $aui_bs5 ) {
320
-				include_once( dirname( __FILE__ ) . '/inc/bs-conversion.php' );
321
-				add_filter( 'admin_body_class', array( $this, 'add_bs5_admin_body_class' ), 99, 1 );
322
-				add_filter( 'body_class', array( $this, 'add_bs5_body_class' ) );
323
-			}
324
-
325
-			/**
326
-			 * Maybe load CSS
327
-			 *
328
-			 * We load super early in case there is a theme version that might change the colors
329
-			 */
330
-			if ( $this->settings['css'] ) {
331
-				$priority = $this->is_bs3_compat() ? 100 : 1;
317
+            $aui_bs5 = $this->settings['bs_ver'] === '5';
318
+
319
+            if ( $aui_bs5 ) {
320
+                include_once( dirname( __FILE__ ) . '/inc/bs-conversion.php' );
321
+                add_filter( 'admin_body_class', array( $this, 'add_bs5_admin_body_class' ), 99, 1 );
322
+                add_filter( 'body_class', array( $this, 'add_bs5_body_class' ) );
323
+            }
324
+
325
+            /**
326
+             * Maybe load CSS
327
+             *
328
+             * We load super early in case there is a theme version that might change the colors
329
+             */
330
+            if ( $this->settings['css'] ) {
331
+                $priority = $this->is_bs3_compat() ? 100 : 1;
332 332
                 $priority = $aui_bs5 ? 10 : $priority;
333
-				add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), $priority );
334
-			}
335
-			if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) {
336
-				add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 );
337
-			}
338
-
339
-			// maybe load JS
340
-			if ( $this->settings['js'] ) {
341
-				$priority = $this->is_bs3_compat() ? 100 : 1;
342
-				add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), $priority );
343
-			}
344
-			if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) {
345
-				add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 );
346
-			}
347
-
348
-			// Maybe set the HTML font size
349
-			if ( $this->settings['html_font_size'] ) {
350
-				add_action( 'wp_footer', array( $this, 'html_font_size' ), 10 );
351
-			}
352
-
353
-			// Maybe show backend style error
354
-			if( $this->settings['css_backend'] != 'compatibility' || $this->settings['js_backend'] != 'core-popper' ){
355
-				add_action( 'admin_notices', array( $this, 'show_admin_style_notice' ) );
356
-			}
357
-
358
-		}
359
-
360
-		/**
361
-		 * Show admin notice if backend scripts not loaded.
362
-		 */
363
-		public function show_admin_style_notice(){
364
-			$fix_url = admin_url("options-general.php?page=ayecode-ui-settings&aui-fix-admin=true&nonce=".wp_create_nonce('aui-fix-admin'));
365
-			$button = '<a href="'.esc_url($fix_url).'" class="button-primary">Fix Now</a>';
366
-			$message = __( '<b>Style Issue:</b> AyeCode UI is disable or set wrong.')." " .$button;
367
-			echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
368
-		}
369
-
370
-		/**
371
-		 * Check if we should load the admin scripts or not.
372
-		 *
373
-		 * @return bool
374
-		 */
375
-		public function load_admin_scripts(){
376
-			$result = true;
377
-
378
-			// check if specifically disabled
379
-			if(!empty($this->settings['disable_admin'])){
380
-				$url_parts = explode("\n",$this->settings['disable_admin']);
381
-				foreach($url_parts as $part){
382
-					if( strpos($_SERVER['REQUEST_URI'], trim($part)) !== false ){
383
-						return false; // return early, no point checking further
384
-					}
385
-				}
386
-			}
387
-
388
-			return $result;
389
-		}
390
-
391
-		/**
392
-		 * Add a html font size to the footer.
393
-		 */
394
-		public function html_font_size(){
395
-			$this->settings = $this->get_settings();
396
-			echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>";
397
-		}
398
-
399
-		/**
400
-		 * Check if the current admin screen should load scripts.
401
-		 *
402
-		 * @return bool
403
-		 */
404
-		public function is_aui_screen(){
333
+                add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), $priority );
334
+            }
335
+            if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) {
336
+                add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 );
337
+            }
338
+
339
+            // maybe load JS
340
+            if ( $this->settings['js'] ) {
341
+                $priority = $this->is_bs3_compat() ? 100 : 1;
342
+                add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), $priority );
343
+            }
344
+            if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) {
345
+                add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 );
346
+            }
347
+
348
+            // Maybe set the HTML font size
349
+            if ( $this->settings['html_font_size'] ) {
350
+                add_action( 'wp_footer', array( $this, 'html_font_size' ), 10 );
351
+            }
352
+
353
+            // Maybe show backend style error
354
+            if( $this->settings['css_backend'] != 'compatibility' || $this->settings['js_backend'] != 'core-popper' ){
355
+                add_action( 'admin_notices', array( $this, 'show_admin_style_notice' ) );
356
+            }
357
+
358
+        }
359
+
360
+        /**
361
+         * Show admin notice if backend scripts not loaded.
362
+         */
363
+        public function show_admin_style_notice(){
364
+            $fix_url = admin_url("options-general.php?page=ayecode-ui-settings&aui-fix-admin=true&nonce=".wp_create_nonce('aui-fix-admin'));
365
+            $button = '<a href="'.esc_url($fix_url).'" class="button-primary">Fix Now</a>';
366
+            $message = __( '<b>Style Issue:</b> AyeCode UI is disable or set wrong.')." " .$button;
367
+            echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
368
+        }
369
+
370
+        /**
371
+         * Check if we should load the admin scripts or not.
372
+         *
373
+         * @return bool
374
+         */
375
+        public function load_admin_scripts(){
376
+            $result = true;
377
+
378
+            // check if specifically disabled
379
+            if(!empty($this->settings['disable_admin'])){
380
+                $url_parts = explode("\n",$this->settings['disable_admin']);
381
+                foreach($url_parts as $part){
382
+                    if( strpos($_SERVER['REQUEST_URI'], trim($part)) !== false ){
383
+                        return false; // return early, no point checking further
384
+                    }
385
+                }
386
+            }
387
+
388
+            return $result;
389
+        }
390
+
391
+        /**
392
+         * Add a html font size to the footer.
393
+         */
394
+        public function html_font_size(){
395
+            $this->settings = $this->get_settings();
396
+            echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>";
397
+        }
398
+
399
+        /**
400
+         * Check if the current admin screen should load scripts.
401
+         *
402
+         * @return bool
403
+         */
404
+        public function is_aui_screen(){
405 405
 //			echo '###';exit;
406
-			$load = false;
407
-			// check if we should load or not
408
-			if ( is_admin() ) {
409
-				// Only enable on set pages
410
-				$aui_screens = array(
411
-					'page',
406
+            $load = false;
407
+            // check if we should load or not
408
+            if ( is_admin() ) {
409
+                // Only enable on set pages
410
+                $aui_screens = array(
411
+                    'page',
412 412
                     //'docs',
413
-					'post',
414
-					'settings_page_ayecode-ui-settings',
415
-					'appearance_page_gutenberg-widgets',
416
-					'widgets',
417
-					'ayecode-ui-settings',
418
-					'site-editor'
419
-				);
420
-				$screen_ids = apply_filters( 'aui_screen_ids', $aui_screens );
413
+                    'post',
414
+                    'settings_page_ayecode-ui-settings',
415
+                    'appearance_page_gutenberg-widgets',
416
+                    'widgets',
417
+                    'ayecode-ui-settings',
418
+                    'site-editor'
419
+                );
420
+                $screen_ids = apply_filters( 'aui_screen_ids', $aui_screens );
421 421
 
422
-				$screen = get_current_screen();
422
+                $screen = get_current_screen();
423 423
 
424 424
 //				echo '###'.$screen->id;
425 425
 
426
-				// check if we are on a AUI screen
427
-				if ( $screen && in_array( $screen->id, $screen_ids ) ) {
428
-					$load = true;
429
-				}
426
+                // check if we are on a AUI screen
427
+                if ( $screen && in_array( $screen->id, $screen_ids ) ) {
428
+                    $load = true;
429
+                }
430 430
 
431
-				//load for widget previews in WP 5.8
432
-				if( !empty($_REQUEST['legacy-widget-preview'])){
433
-					$load = true;
434
-				}
435
-			}
431
+                //load for widget previews in WP 5.8
432
+                if( !empty($_REQUEST['legacy-widget-preview'])){
433
+                    $load = true;
434
+                }
435
+            }
436 436
 
437 437
 
438 438
 
439
-			return apply_filters( 'aui_load_on_admin' , $load );
440
-		}
439
+            return apply_filters( 'aui_load_on_admin' , $load );
440
+        }
441 441
 
442
-		/**
443
-		 * Check if the current theme is a block theme.
444
-		 *
445
-		 * @return bool
446
-		 */
447
-		public static function is_block_theme() {
448
-			if ( function_exists( 'wp_is_block_theme' && wp_is_block_theme() ) ) {
449
-				return true;
450
-			}
442
+        /**
443
+         * Check if the current theme is a block theme.
444
+         *
445
+         * @return bool
446
+         */
447
+        public static function is_block_theme() {
448
+            if ( function_exists( 'wp_is_block_theme' && wp_is_block_theme() ) ) {
449
+                return true;
450
+            }
451 451
 
452
-			return false;
453
-		}
452
+            return false;
453
+        }
454 454
 
455
-		/**
456
-		 * Adds the styles.
457
-		 */
458
-		public function enqueue_style() {
455
+        /**
456
+         * Adds the styles.
457
+         */
458
+        public function enqueue_style() {
459 459
             global $aui_bs5;
460 460
 
461 461
             $load_fse = false;
462 462
 
463
-			if( is_admin() && !$this->is_aui_screen()){
464
-				// don't add wp-admin scripts if not requested to
465
-			}else{
466
-				$css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend';
463
+            if( is_admin() && !$this->is_aui_screen()){
464
+                // don't add wp-admin scripts if not requested to
465
+            }else{
466
+                $css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend';
467 467
 
468
-				$rtl = is_rtl() && ! $aui_bs5 ? '-rtl' : '';
468
+                $rtl = is_rtl() && ! $aui_bs5 ? '-rtl' : '';
469 469
 
470 470
                 $bs_ver = $this->settings['bs_ver'] == '5' ? '-v5' : '';
471 471
 
472
-				if($this->settings[$css_setting]){
473
-					$compatibility = $this->settings[$css_setting]=='core' ? false : true;
474
-					$url = $this->settings[$css_setting]=='core' ? $this->url.'assets'.$bs_ver.'/css/ayecode-ui'.$rtl.'.css' : $this->url.'assets'.$bs_ver.'/css/ayecode-ui-compatibility'.$rtl.'.css';
472
+                if($this->settings[$css_setting]){
473
+                    $compatibility = $this->settings[$css_setting]=='core' ? false : true;
474
+                    $url = $this->settings[$css_setting]=='core' ? $this->url.'assets'.$bs_ver.'/css/ayecode-ui'.$rtl.'.css' : $this->url.'assets'.$bs_ver.'/css/ayecode-ui-compatibility'.$rtl.'.css';
475 475
 
476 476
 
477 477
 
478
-					wp_register_style( 'ayecode-ui', $url, array(), $this->version );
479
-					wp_enqueue_style( 'ayecode-ui' );
478
+                    wp_register_style( 'ayecode-ui', $url, array(), $this->version );
479
+                    wp_enqueue_style( 'ayecode-ui' );
480 480
 
481
-					$current_screen = function_exists('get_current_screen' ) ? get_current_screen() : '';
481
+                    $current_screen = function_exists('get_current_screen' ) ? get_current_screen() : '';
482 482
 
483 483
 //					if ( is_admin() && !empty($_REQUEST['postType']) ) {
484
-					if ( is_admin() && ( !empty($_REQUEST['postType']) || $current_screen->is_block_editor() ) && ( defined( 'BLOCKSTRAP_VERSION' ) || defined( 'AUI_FSE' ) )  ) {
485
-						$url = $this->url.'assets'.$bs_ver.'/css/ayecode-ui-fse.css';
486
-						wp_register_style( 'ayecode-ui-fse', $url, array(), $this->version );
487
-						wp_enqueue_style( 'ayecode-ui-fse' );
488
-						$load_fse = true;
489
-					}
484
+                    if ( is_admin() && ( !empty($_REQUEST['postType']) || $current_screen->is_block_editor() ) && ( defined( 'BLOCKSTRAP_VERSION' ) || defined( 'AUI_FSE' ) )  ) {
485
+                        $url = $this->url.'assets'.$bs_ver.'/css/ayecode-ui-fse.css';
486
+                        wp_register_style( 'ayecode-ui-fse', $url, array(), $this->version );
487
+                        wp_enqueue_style( 'ayecode-ui-fse' );
488
+                        $load_fse = true;
489
+                    }
490 490
 
491 491
 
492
-					// flatpickr
493
-					wp_register_style( 'flatpickr', $this->url.'assets'.$bs_ver.'/css/flatpickr.min.css', array(), $this->version );
492
+                    // flatpickr
493
+                    wp_register_style( 'flatpickr', $this->url.'assets'.$bs_ver.'/css/flatpickr.min.css', array(), $this->version );
494 494
 
495
-					// fix some wp-admin issues
496
-					if(is_admin()){
497
-						$custom_css = "
495
+                    // fix some wp-admin issues
496
+                    if(is_admin()){
497
+                        $custom_css = "
498 498
                 body{
499 499
                     background-color: #f1f1f1;
500 500
                     font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;
@@ -535,67 +535,67 @@  discard block
 block discarded – undo
535 535
 				}
536 536
                 ";
537 537
 
538
-						// @todo, remove once fixed :: fix for this bug https://github.com/WordPress/gutenberg/issues/14377
539
-						$custom_css .= "
538
+                        // @todo, remove once fixed :: fix for this bug https://github.com/WordPress/gutenberg/issues/14377
539
+                        $custom_css .= "
540 540
 						.edit-post-sidebar input[type=color].components-text-control__input{
541 541
 						    padding: 0;
542 542
 						}
543 543
 					";
544
-						wp_add_inline_style( 'ayecode-ui', $custom_css );
545
-					}
544
+                        wp_add_inline_style( 'ayecode-ui', $custom_css );
545
+                    }
546 546
 
547
-					// custom changes
548
-					if ( $load_fse ) {
549
-						wp_add_inline_style( 'ayecode-ui-fse', self::custom_css($compatibility) );
550
-					}else{
551
-						wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) );
547
+                    // custom changes
548
+                    if ( $load_fse ) {
549
+                        wp_add_inline_style( 'ayecode-ui-fse', self::custom_css($compatibility) );
550
+                    }else{
551
+                        wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) );
552 552
 
553
-					}
553
+                    }
554 554
 
555
-				}
556
-			}
555
+                }
556
+            }
557 557
 
558 558
 
559
-		}
559
+        }
560 560
 
561
-		/**
562
-		 * Get inline script used if bootstrap enqueued
563
-		 *
564
-		 * If this remains small then its best to use this than to add another JS file.
565
-		 */
566
-		public function inline_script() {
561
+        /**
562
+         * Get inline script used if bootstrap enqueued
563
+         *
564
+         * If this remains small then its best to use this than to add another JS file.
565
+         */
566
+        public function inline_script() {
567 567
             global $aui_bs5;
568
-			// Flatpickr calendar locale
569
-			$flatpickr_locale = self::flatpickr_locale();
570
-
571
-			ob_start();
572
-			if ( $aui_bs5 ) {
573
-				include_once( dirname( __FILE__ ) . '/inc/bs5-js.php' );
574
-			}else{
575
-				include_once( dirname( __FILE__ ) . '/inc/bs4-js.php' );
568
+            // Flatpickr calendar locale
569
+            $flatpickr_locale = self::flatpickr_locale();
570
+
571
+            ob_start();
572
+            if ( $aui_bs5 ) {
573
+                include_once( dirname( __FILE__ ) . '/inc/bs5-js.php' );
574
+            }else{
575
+                include_once( dirname( __FILE__ ) . '/inc/bs4-js.php' );
576 576
             }
577 577
 
578
-			$output = ob_get_clean();
578
+            $output = ob_get_clean();
579 579
 
580
-			/*
580
+            /*
581 581
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
582 582
 			 */
583
-			return str_replace( array(
584
-				'<script>',
585
-				'</script>'
586
-			), '', self::minify_js($output) );
587
-		}
588
-
589
-
590
-		/**
591
-		 * JS to help with conflict issues with other plugins and themes using bootstrap v3.
592
-		 *
593
-		 * @TODO we may need this when other conflicts arrise.
594
-		 * @return mixed
595
-		 */
596
-		public static function bs3_compat_js() {
597
-			ob_start();
598
-			?>
583
+            return str_replace( array(
584
+                '<script>',
585
+                '</script>'
586
+            ), '', self::minify_js($output) );
587
+        }
588
+
589
+
590
+        /**
591
+         * JS to help with conflict issues with other plugins and themes using bootstrap v3.
592
+         *
593
+         * @TODO we may need this when other conflicts arrise.
594
+         * @return mixed
595
+         */
596
+        public static function bs3_compat_js() {
597
+            ob_start();
598
+            ?>
599 599
             <script>
600 600
 				<?php if( defined( 'FUSION_BUILDER_VERSION' ) ){ ?>
601 601
                 /* With Avada builder */
@@ -603,20 +603,20 @@  discard block
 block discarded – undo
603 603
 				<?php } ?>
604 604
             </script>
605 605
 			<?php
606
-			return str_replace( array(
607
-				'<script>',
608
-				'</script>'
609
-			), '', ob_get_clean());
610
-		}
611
-
612
-		/**
613
-		 * Get inline script used if bootstrap file browser enqueued.
614
-		 *
615
-		 * If this remains small then its best to use this than to add another JS file.
616
-		 */
617
-		public function inline_script_file_browser(){
618
-			ob_start();
619
-			?>
606
+            return str_replace( array(
607
+                '<script>',
608
+                '</script>'
609
+            ), '', ob_get_clean());
610
+        }
611
+
612
+        /**
613
+         * Get inline script used if bootstrap file browser enqueued.
614
+         *
615
+         * If this remains small then its best to use this than to add another JS file.
616
+         */
617
+        public function inline_script_file_browser(){
618
+            ob_start();
619
+            ?>
620 620
             <script>
621 621
                 // run on doc ready
622 622
                 jQuery(document).ready(function () {
@@ -624,282 +624,282 @@  discard block
 block discarded – undo
624 624
                 });
625 625
             </script>
626 626
 			<?php
627
-			$output = ob_get_clean();
627
+            $output = ob_get_clean();
628 628
 
629
-			/*
629
+            /*
630 630
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
631 631
 			 */
632
-			return str_replace( array(
633
-				'<script>',
634
-				'</script>'
635
-			), '', $output );
636
-		}
632
+            return str_replace( array(
633
+                '<script>',
634
+                '</script>'
635
+            ), '', $output );
636
+        }
637 637
 
638
-		/**
639
-		 * Adds the Font Awesome JS.
640
-		 */
641
-		public function enqueue_scripts() {
638
+        /**
639
+         * Adds the Font Awesome JS.
640
+         */
641
+        public function enqueue_scripts() {
642 642
 
643
-			if( is_admin() && !$this->is_aui_screen()){
644
-				// don't add wp-admin scripts if not requested to
645
-			}else {
643
+            if( is_admin() && !$this->is_aui_screen()){
644
+                // don't add wp-admin scripts if not requested to
645
+            }else {
646 646
 
647
-				$js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend';
647
+                $js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend';
648 648
 
649
-				$bs_ver = $this->settings['bs_ver'] == '5' ? '-v5' : '';
649
+                $bs_ver = $this->settings['bs_ver'] == '5' ? '-v5' : '';
650 650
 
651
-				// select2
652
-				wp_register_script( 'select2', $this->url . 'assets/js/select2.min.js', array( 'jquery' ), $this->select2_version );
651
+                // select2
652
+                wp_register_script( 'select2', $this->url . 'assets/js/select2.min.js', array( 'jquery' ), $this->select2_version );
653 653
 
654
-				// flatpickr
655
-				wp_register_script( 'flatpickr', $this->url . 'assets/js/flatpickr.min.js', array(), $this->version );
654
+                // flatpickr
655
+                wp_register_script( 'flatpickr', $this->url . 'assets/js/flatpickr.min.js', array(), $this->version );
656 656
 
657
-				// iconpicker
658
-				if ( defined( 'FAS_ICONPICKER_JS_URL' ) ) {
659
-					wp_register_script( 'iconpicker', FAS_ICONPICKER_JS_URL, array(), $this->version );
660
-				}else{
661
-					wp_register_script( 'iconpicker', $this->url . 'assets/js/fa-iconpicker.min.js', array(), $this->version );
662
-				}
657
+                // iconpicker
658
+                if ( defined( 'FAS_ICONPICKER_JS_URL' ) ) {
659
+                    wp_register_script( 'iconpicker', FAS_ICONPICKER_JS_URL, array(), $this->version );
660
+                }else{
661
+                    wp_register_script( 'iconpicker', $this->url . 'assets/js/fa-iconpicker.min.js', array(), $this->version );
662
+                }
663 663
 
664
-				// Bootstrap file browser
665
-				wp_register_script( 'aui-custom-file-input', $url = $this->url . 'assets/js/bs-custom-file-input.min.js', array( 'jquery' ), $this->select2_version );
666
-				wp_add_inline_script( 'aui-custom-file-input', $this->inline_script_file_browser() );
667
-
668
-				$load_inline = false;
669
-
670
-				if ( $this->settings[ $js_setting ] == 'core-popper' ) {
671
-					// Bootstrap bundle
672
-					$url = $this->url . 'assets' . $bs_ver . '/js/bootstrap.bundle.min.js';
673
-					wp_register_script( 'bootstrap-js-bundle', $url, array(
674
-						'select2',
675
-						'jquery'
676
-					), $this->version, $this->is_bs3_compat() );
677
-					// if in admin then add to footer for compatibility.
678
-					is_admin() ? wp_enqueue_script( 'bootstrap-js-bundle', '', null, null, true ) : wp_enqueue_script( 'bootstrap-js-bundle' );
679
-					$script = $this->inline_script();
680
-					wp_add_inline_script( 'bootstrap-js-bundle', $script );
681
-				} elseif ( $this->settings[ $js_setting ] == 'popper' ) {
682
-					$url = $this->url . 'assets/js/popper.min.js'; //@todo we need to update this to bs5
683
-					wp_register_script( 'bootstrap-js-popper', $url, array( 'select2', 'jquery' ), $this->version );
684
-					wp_enqueue_script( 'bootstrap-js-popper' );
685
-					$load_inline = true;
686
-				} else {
687
-					$load_inline = true;
688
-				}
664
+                // Bootstrap file browser
665
+                wp_register_script( 'aui-custom-file-input', $url = $this->url . 'assets/js/bs-custom-file-input.min.js', array( 'jquery' ), $this->select2_version );
666
+                wp_add_inline_script( 'aui-custom-file-input', $this->inline_script_file_browser() );
667
+
668
+                $load_inline = false;
669
+
670
+                if ( $this->settings[ $js_setting ] == 'core-popper' ) {
671
+                    // Bootstrap bundle
672
+                    $url = $this->url . 'assets' . $bs_ver . '/js/bootstrap.bundle.min.js';
673
+                    wp_register_script( 'bootstrap-js-bundle', $url, array(
674
+                        'select2',
675
+                        'jquery'
676
+                    ), $this->version, $this->is_bs3_compat() );
677
+                    // if in admin then add to footer for compatibility.
678
+                    is_admin() ? wp_enqueue_script( 'bootstrap-js-bundle', '', null, null, true ) : wp_enqueue_script( 'bootstrap-js-bundle' );
679
+                    $script = $this->inline_script();
680
+                    wp_add_inline_script( 'bootstrap-js-bundle', $script );
681
+                } elseif ( $this->settings[ $js_setting ] == 'popper' ) {
682
+                    $url = $this->url . 'assets/js/popper.min.js'; //@todo we need to update this to bs5
683
+                    wp_register_script( 'bootstrap-js-popper', $url, array( 'select2', 'jquery' ), $this->version );
684
+                    wp_enqueue_script( 'bootstrap-js-popper' );
685
+                    $load_inline = true;
686
+                } else {
687
+                    $load_inline = true;
688
+                }
689 689
 
690
-				// Load needed inline scripts by faking the loading of a script if the main script is not being loaded
691
-				if ( $load_inline ) {
692
-					wp_register_script( 'bootstrap-dummy', '', array( 'select2', 'jquery' ) );
693
-					wp_enqueue_script( 'bootstrap-dummy' );
694
-					$script = $this->inline_script();
695
-					wp_add_inline_script( 'bootstrap-dummy', $script );
696
-				}
697
-			}
698
-
699
-		}
700
-
701
-		/**
702
-		 * Enqueue flatpickr if called.
703
-		 */
704
-		public function enqueue_flatpickr(){
705
-			wp_enqueue_style( 'flatpickr' );
706
-			wp_enqueue_script( 'flatpickr' );
707
-		}
708
-
709
-		/**
710
-		 * Enqueue iconpicker if called.
711
-		 */
712
-		public function enqueue_iconpicker(){
713
-			wp_enqueue_style( 'iconpicker' );
714
-			wp_enqueue_script( 'iconpicker' );
715
-		}
716
-
717
-		/**
718
-		 * Get the url path to the current folder.
719
-		 *
720
-		 * @return string
721
-		 */
722
-		public function get_url() {
723
-			$content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );
724
-			$content_url = untrailingslashit( WP_CONTENT_URL );
725
-
726
-			// Replace http:// to https://.
727
-			if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) {
728
-				$content_url = str_replace( 'http://', 'https://', $content_url );
729
-			}
730
-
731
-			// Check if we are inside a plugin
732
-			$file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) );
733
-			$url = str_replace( $content_dir, $content_url, $file_dir );
734
-
735
-			return trailingslashit( $url );
736
-		}
737
-
738
-		/**
739
-		 * Get the url path to the current folder.
740
-		 *
741
-		 * @return string
742
-		 */
743
-		public function get_url_old() {
744
-
745
-			$url = '';
746
-			// check if we are inside a plugin
747
-			$file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) );
748
-
749
-			// add check in-case user has changed wp-content dir name.
750
-			$wp_content_folder_name = basename(WP_CONTENT_DIR);
751
-			$dir_parts = explode("/$wp_content_folder_name/",$file_dir);
752
-			$url_parts = explode("/$wp_content_folder_name/",plugins_url());
753
-
754
-			if(!empty($url_parts[0]) && !empty($dir_parts[1])){
755
-				$url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] );
756
-			}
757
-
758
-			return $url;
759
-		}
760
-
761
-		/**
762
-		 * Register the database settings with WordPress.
763
-		 */
764
-		public function register_settings() {
765
-			register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' );
766
-		}
767
-
768
-		/**
769
-		 * Add the WordPress settings menu item.
770
-		 * @since 1.0.10 Calling function name direct will fail theme check so we don't.
771
-		 */
772
-		public function menu_item() {
773
-			$menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme
774
-			call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array(
775
-				$this,
776
-				'settings_page'
777
-			) );
778
-		}
779
-
780
-		/**
781
-		 * Get a list of themes and their default JS settings.
782
-		 *
783
-		 * @return array
784
-		 */
785
-		public function theme_js_settings(){
786
-			return array(
787
-				'ayetheme' => 'popper',
788
-				'listimia' => 'required',
789
-				'listimia_backend' => 'core-popper',
790
-				//'avada'    => 'required', // removed as we now add compatibility
791
-			);
792
-		}
793
-
794
-		/**
690
+                // Load needed inline scripts by faking the loading of a script if the main script is not being loaded
691
+                if ( $load_inline ) {
692
+                    wp_register_script( 'bootstrap-dummy', '', array( 'select2', 'jquery' ) );
693
+                    wp_enqueue_script( 'bootstrap-dummy' );
694
+                    $script = $this->inline_script();
695
+                    wp_add_inline_script( 'bootstrap-dummy', $script );
696
+                }
697
+            }
698
+
699
+        }
700
+
701
+        /**
702
+         * Enqueue flatpickr if called.
703
+         */
704
+        public function enqueue_flatpickr(){
705
+            wp_enqueue_style( 'flatpickr' );
706
+            wp_enqueue_script( 'flatpickr' );
707
+        }
708
+
709
+        /**
710
+         * Enqueue iconpicker if called.
711
+         */
712
+        public function enqueue_iconpicker(){
713
+            wp_enqueue_style( 'iconpicker' );
714
+            wp_enqueue_script( 'iconpicker' );
715
+        }
716
+
717
+        /**
718
+         * Get the url path to the current folder.
719
+         *
720
+         * @return string
721
+         */
722
+        public function get_url() {
723
+            $content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) );
724
+            $content_url = untrailingslashit( WP_CONTENT_URL );
725
+
726
+            // Replace http:// to https://.
727
+            if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) {
728
+                $content_url = str_replace( 'http://', 'https://', $content_url );
729
+            }
730
+
731
+            // Check if we are inside a plugin
732
+            $file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) );
733
+            $url = str_replace( $content_dir, $content_url, $file_dir );
734
+
735
+            return trailingslashit( $url );
736
+        }
737
+
738
+        /**
739
+         * Get the url path to the current folder.
740
+         *
741
+         * @return string
742
+         */
743
+        public function get_url_old() {
744
+
745
+            $url = '';
746
+            // check if we are inside a plugin
747
+            $file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) );
748
+
749
+            // add check in-case user has changed wp-content dir name.
750
+            $wp_content_folder_name = basename(WP_CONTENT_DIR);
751
+            $dir_parts = explode("/$wp_content_folder_name/",$file_dir);
752
+            $url_parts = explode("/$wp_content_folder_name/",plugins_url());
753
+
754
+            if(!empty($url_parts[0]) && !empty($dir_parts[1])){
755
+                $url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] );
756
+            }
757
+
758
+            return $url;
759
+        }
760
+
761
+        /**
762
+         * Register the database settings with WordPress.
763
+         */
764
+        public function register_settings() {
765
+            register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' );
766
+        }
767
+
768
+        /**
769
+         * Add the WordPress settings menu item.
770
+         * @since 1.0.10 Calling function name direct will fail theme check so we don't.
771
+         */
772
+        public function menu_item() {
773
+            $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme
774
+            call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array(
775
+                $this,
776
+                'settings_page'
777
+            ) );
778
+        }
779
+
780
+        /**
781
+         * Get a list of themes and their default JS settings.
782
+         *
783
+         * @return array
784
+         */
785
+        public function theme_js_settings(){
786
+            return array(
787
+                'ayetheme' => 'popper',
788
+                'listimia' => 'required',
789
+                'listimia_backend' => 'core-popper',
790
+                //'avada'    => 'required', // removed as we now add compatibility
791
+            );
792
+        }
793
+
794
+        /**
795 795
          * Get the date the site was installed.
796 796
          *
797
-		 * @return false|string
798
-		 */
797
+         * @return false|string
798
+         */
799 799
         public function get_site_install_date() {
800
-	        global $wpdb; // This gives you access to the WordPress database object
800
+            global $wpdb; // This gives you access to the WordPress database object
801 801
 
802
-	        // Prepare the SQL query to get the oldest registration date
803
-	        $query = "SELECT MIN(user_registered) AS oldest_registration_date FROM {$wpdb->users}";
802
+            // Prepare the SQL query to get the oldest registration date
803
+            $query = "SELECT MIN(user_registered) AS oldest_registration_date FROM {$wpdb->users}";
804 804
 
805
-	        // Execute the query
806
-	        $date = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
805
+            // Execute the query
806
+            $date = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
807 807
 
808
-	        return $date ? $date : false;
808
+            return $date ? $date : false;
809 809
         }
810 810
 
811
-		/**
812
-		 * Show admin notice if backend scripts not loaded.
813
-		 */
814
-		public function show_admin_version_notice(){
815
-			$fix_url = admin_url("options-general.php?page=ayecode-ui-settings" );
816
-			$button = '<a href="'.esc_url($fix_url).'" class="button-primary">View Settings</a>';
817
-			$message = __( '<b>Style Issue:</b> AyeCode UI has changed its default version from v4 to v5, if you notice unwanted style changes, please revert to v4 (saving the settings page will remove this notice)')." " .$button;
818
-			echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
819
-		}
820
-
821
-		/**
822
-		 * Get the current Font Awesome output settings.
823
-		 *
824
-		 * @return array The array of settings.
825
-		 */
826
-		public function get_settings() {
827
-
828
-			$db_settings = get_option( 'ayecode-ui-settings' );
811
+        /**
812
+         * Show admin notice if backend scripts not loaded.
813
+         */
814
+        public function show_admin_version_notice(){
815
+            $fix_url = admin_url("options-general.php?page=ayecode-ui-settings" );
816
+            $button = '<a href="'.esc_url($fix_url).'" class="button-primary">View Settings</a>';
817
+            $message = __( '<b>Style Issue:</b> AyeCode UI has changed its default version from v4 to v5, if you notice unwanted style changes, please revert to v4 (saving the settings page will remove this notice)')." " .$button;
818
+            echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>';
819
+        }
820
+
821
+        /**
822
+         * Get the current Font Awesome output settings.
823
+         *
824
+         * @return array The array of settings.
825
+         */
826
+        public function get_settings() {
827
+
828
+            $db_settings = get_option( 'ayecode-ui-settings' );
829 829
 
830 830
             // Maybe show default version notice
831
-			$site_install_date = new DateTime( self::get_site_install_date() );
832
-			$switch_over_date = new DateTime("2024-02-01");
833
-			if ( empty( $db_settings ) && $site_install_date < $switch_over_date ) {
834
-				add_action( 'admin_notices', array( $this, 'show_admin_version_notice' ) );
835
-			}
836
-
837
-			$js_default = 'core-popper';
838
-			$js_default_backend = $js_default;
839
-
840
-			// maybe set defaults (if no settings set)
841
-			if(empty($db_settings)){
842
-				$active_theme = strtolower( get_template() ); // active parent theme.
843
-				$theme_js_settings = self::theme_js_settings();
844
-				if(isset($theme_js_settings[$active_theme])){
845
-					$js_default = $theme_js_settings[$active_theme];
846
-					$js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default;
847
-				}
848
-			}
831
+            $site_install_date = new DateTime( self::get_site_install_date() );
832
+            $switch_over_date = new DateTime("2024-02-01");
833
+            if ( empty( $db_settings ) && $site_install_date < $switch_over_date ) {
834
+                add_action( 'admin_notices', array( $this, 'show_admin_version_notice' ) );
835
+            }
849 836
 
850
-			/**
851
-			 * Filter the default settings.
852
-			 */
853
-			$defaults = apply_filters( 'ayecode-ui-default-settings', array(
854
-				'css'            => 'compatibility', // core, compatibility
855
-				'js'             => $js_default, // js to load, core-popper, popper
856
-				'html_font_size' => '16', // js to load, core-popper, popper
857
-				'css_backend'    => 'compatibility', // core, compatibility
858
-				'js_backend'     => $js_default_backend, // js to load, core-popper, popper
859
-				'disable_admin'  => '', // URL snippets to disable loading on admin
837
+            $js_default = 'core-popper';
838
+            $js_default_backend = $js_default;
839
+
840
+            // maybe set defaults (if no settings set)
841
+            if(empty($db_settings)){
842
+                $active_theme = strtolower( get_template() ); // active parent theme.
843
+                $theme_js_settings = self::theme_js_settings();
844
+                if(isset($theme_js_settings[$active_theme])){
845
+                    $js_default = $theme_js_settings[$active_theme];
846
+                    $js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default;
847
+                }
848
+            }
849
+
850
+            /**
851
+             * Filter the default settings.
852
+             */
853
+            $defaults = apply_filters( 'ayecode-ui-default-settings', array(
854
+                'css'            => 'compatibility', // core, compatibility
855
+                'js'             => $js_default, // js to load, core-popper, popper
856
+                'html_font_size' => '16', // js to load, core-popper, popper
857
+                'css_backend'    => 'compatibility', // core, compatibility
858
+                'js_backend'     => $js_default_backend, // js to load, core-popper, popper
859
+                'disable_admin'  => '', // URL snippets to disable loading on admin
860 860
                 'bs_ver'         => '5', // The default bootstrap version to sue by default
861
-			), $db_settings );
861
+            ), $db_settings );
862 862
 
863
-			$settings = wp_parse_args( $db_settings, $defaults );
863
+            $settings = wp_parse_args( $db_settings, $defaults );
864 864
 
865
-			/**
866
-			 * Filter the Bootstrap settings.
867
-			 *
868
-			 * @todo if we add this filer people might use it and then it defeats the purpose of this class :/
869
-			 */
870
-			return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults );
871
-		}
865
+            /**
866
+             * Filter the Bootstrap settings.
867
+             *
868
+             * @todo if we add this filer people might use it and then it defeats the purpose of this class :/
869
+             */
870
+            return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults );
871
+        }
872 872
 
873 873
 
874
-		/**
875
-		 * The settings page html output.
876
-		 */
877
-		public function settings_page() {
878
-			if ( ! current_user_can( 'manage_options' ) ) {
879
-				wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'ayecode-connect' ) );
880
-			}
874
+        /**
875
+         * The settings page html output.
876
+         */
877
+        public function settings_page() {
878
+            if ( ! current_user_can( 'manage_options' ) ) {
879
+                wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'ayecode-connect' ) );
880
+            }
881 881
             $overrides = apply_filters( 'ayecode-ui-settings', array(), array(), array() );
882 882
 
883
-			?>
883
+            ?>
884 884
             <div class="wrap">
885 885
                 <h1><?php echo esc_attr( $this->name ); ?></h1>
886 886
                 <p><?php echo esc_html( apply_filters( 'ayecode-ui-settings-message', __("Here you can adjust settings if you are having compatibility issues.", 'ayecode-connect' ) ) );?></p>
887 887
                 <form method="post" action="options.php">
888 888
 					<?php
889
-					settings_fields( 'ayecode-ui-settings' );
890
-					do_settings_sections( 'ayecode-ui-settings' );
891
-					?>
889
+                    settings_fields( 'ayecode-ui-settings' );
890
+                    do_settings_sections( 'ayecode-ui-settings' );
891
+                    ?>
892 892
 
893 893
                     <h2><?php esc_html_e( 'BootStrap Version', 'ayecode-connect' ); ?></h2>
894 894
                     <p><?php echo esc_html( apply_filters( 'ayecode-ui-version-settings-message', __("V5 is recommended, however if you have another plugin installed using v4, you may need to use v4 also.", 'ayecode-connect' ) ) );?></p>
895 895
 	                <div class="bsui"><?php
896
-	                if ( ! empty( $overrides ) ) {
897
-		                echo aui()->alert(array( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
898
-			                'type'=> 'info',
899
-			                'content'=> esc_attr__("Some options are disabled as your current theme is overriding them.", 'ayecode-connect' )
900
-		                ));
901
-	                }
902
-	                ?>
896
+                    if ( ! empty( $overrides ) ) {
897
+                        echo aui()->alert(array( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
898
+                            'type'=> 'info',
899
+                            'content'=> esc_attr__("Some options are disabled as your current theme is overriding them.", 'ayecode-connect' )
900
+                        ));
901
+                    }
902
+                    ?>
903 903
                     </div>
904 904
                     <table class="form-table wpbs-table-version-settings">
905 905
                         <tr valign="top">
@@ -983,77 +983,77 @@  discard block
 block discarded – undo
983 983
                     </table>
984 984
 
985 985
 					<?php
986
-					submit_button();
987
-					?>
986
+                    submit_button();
987
+                    ?>
988 988
                 </form>
989 989
                 <div id="wpbs-version" data-aui-source="<?php echo esc_attr( $this->get_load_source() ); ?>"><?php echo esc_html( $this->version ); ?></div>
990 990
             </div>
991 991
 			<?php
992
-		}
992
+        }
993 993
 
994 994
         public function get_load_source(){
995
-	        $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
996
-	        $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
997
-
998
-	        // Find source plugin/theme of SD
999
-	        $source = array();
1000
-	        if ( strpos( $file, $plugins_dir ) !== false ) {
1001
-		        $source = explode( "/", plugin_basename( $file ) );
1002
-	        } else if ( function_exists( 'get_theme_root' ) ) {
1003
-		        $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
1004
-
1005
-		        if ( strpos( $file, $themes_dir ) !== false ) {
1006
-			        $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
1007
-		        }
1008
-	        }
995
+            $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) );
996
+            $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) );
997
+
998
+            // Find source plugin/theme of SD
999
+            $source = array();
1000
+            if ( strpos( $file, $plugins_dir ) !== false ) {
1001
+                $source = explode( "/", plugin_basename( $file ) );
1002
+            } else if ( function_exists( 'get_theme_root' ) ) {
1003
+                $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) );
1004
+
1005
+                if ( strpos( $file, $themes_dir ) !== false ) {
1006
+                    $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) );
1007
+                }
1008
+            }
1009 1009
 
1010 1010
             return isset($source[0]) ? esc_attr($source[0]) : '';
1011 1011
         }
1012 1012
 
1013
-		public function customizer_settings($wp_customize){
1014
-			$wp_customize->add_section('aui_settings', array(
1015
-				'title'    => __('AyeCode UI', 'ayecode-connect' ),
1016
-				'priority' => 120,
1017
-			));
1018
-
1019
-			//  =============================
1020
-			//  = Color Picker              =
1021
-			//  =============================
1022
-			$wp_customize->add_setting('aui_options[color_primary]', array(
1023
-				'default'           => AUI_PRIMARY_COLOR,
1024
-				'sanitize_callback' => 'sanitize_hex_color',
1025
-				'capability'        => 'edit_theme_options',
1026
-				'type'              => 'option',
1027
-				'transport'         => 'refresh',
1028
-			));
1029
-			$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array(
1030
-				'label'    => __('Primary Color', 'ayecode-connect' ),
1031
-				'section'  => 'aui_settings',
1032
-				'settings' => 'aui_options[color_primary]',
1033
-			)));
1034
-
1035
-			$wp_customize->add_setting('aui_options[color_secondary]', array(
1036
-				'default'           => '#6c757d',
1037
-				'sanitize_callback' => 'sanitize_hex_color',
1038
-				'capability'        => 'edit_theme_options',
1039
-				'type'              => 'option',
1040
-				'transport'         => 'refresh',
1041
-			));
1042
-			$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array(
1043
-				'label'    => __('Secondary Color', 'ayecode-connect' ),
1044
-				'section'  => 'aui_settings',
1045
-				'settings' => 'aui_options[color_secondary]',
1046
-			)));
1047
-		}
1048
-
1049
-		/**
1050
-		 * CSS to help with conflict issues with other plugins and themes using bootstrap v3.
1051
-		 *
1052
-		 * @return mixed
1053
-		 */
1054
-		public static function bs3_compat_css() {
1055
-			ob_start();
1056
-			?>
1013
+        public function customizer_settings($wp_customize){
1014
+            $wp_customize->add_section('aui_settings', array(
1015
+                'title'    => __('AyeCode UI', 'ayecode-connect' ),
1016
+                'priority' => 120,
1017
+            ));
1018
+
1019
+            //  =============================
1020
+            //  = Color Picker              =
1021
+            //  =============================
1022
+            $wp_customize->add_setting('aui_options[color_primary]', array(
1023
+                'default'           => AUI_PRIMARY_COLOR,
1024
+                'sanitize_callback' => 'sanitize_hex_color',
1025
+                'capability'        => 'edit_theme_options',
1026
+                'type'              => 'option',
1027
+                'transport'         => 'refresh',
1028
+            ));
1029
+            $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array(
1030
+                'label'    => __('Primary Color', 'ayecode-connect' ),
1031
+                'section'  => 'aui_settings',
1032
+                'settings' => 'aui_options[color_primary]',
1033
+            )));
1034
+
1035
+            $wp_customize->add_setting('aui_options[color_secondary]', array(
1036
+                'default'           => '#6c757d',
1037
+                'sanitize_callback' => 'sanitize_hex_color',
1038
+                'capability'        => 'edit_theme_options',
1039
+                'type'              => 'option',
1040
+                'transport'         => 'refresh',
1041
+            ));
1042
+            $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array(
1043
+                'label'    => __('Secondary Color', 'ayecode-connect' ),
1044
+                'section'  => 'aui_settings',
1045
+                'settings' => 'aui_options[color_secondary]',
1046
+            )));
1047
+        }
1048
+
1049
+        /**
1050
+         * CSS to help with conflict issues with other plugins and themes using bootstrap v3.
1051
+         *
1052
+         * @return mixed
1053
+         */
1054
+        public static function bs3_compat_css() {
1055
+            ob_start();
1056
+            ?>
1057 1057
             <style>
1058 1058
                 /* Bootstrap 3 compatibility */
1059 1059
                 body.modal-open .modal-backdrop.show:not(.in) {opacity:0.5;}
@@ -1082,55 +1082,55 @@  discard block
 block discarded – undo
1082 1082
                 <?php } ?>
1083 1083
             </style>
1084 1084
 			<?php
1085
-			return str_replace( array(
1086
-				'<style>',
1087
-				'</style>'
1088
-			), '', self::minify_css( ob_get_clean() ) );
1089
-		}
1085
+            return str_replace( array(
1086
+                '<style>',
1087
+                '</style>'
1088
+            ), '', self::minify_css( ob_get_clean() ) );
1089
+        }
1090 1090
 
1091 1091
 
1092
-		public static function custom_css($compatibility = true) {
1092
+        public static function custom_css($compatibility = true) {
1093 1093
             global $aui_bs5;
1094 1094
 
1095
-			$colors = array();
1096
-			if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
1095
+            $colors = array();
1096
+            if ( defined( 'BLOCKSTRAP_VERSION' ) ) {
1097 1097
 
1098 1098
 
1099
-				$setting = wp_get_global_settings();
1099
+                $setting = wp_get_global_settings();
1100 1100
 
1101 1101
 //                print_r(wp_get_global_styles());//exit;
1102 1102
 //                print_r(get_default_block_editor_settings());exit;
1103 1103
 
1104 1104
 //                print_r($setting);echo  '###';exit;
1105
-				if(!empty($setting['color']['palette']['theme'])){
1106
-					foreach($setting['color']['palette']['theme'] as $color){
1107
-						$colors[$color['slug']] = esc_attr($color['color']);
1108
-					}
1109
-				}
1105
+                if(!empty($setting['color']['palette']['theme'])){
1106
+                    foreach($setting['color']['palette']['theme'] as $color){
1107
+                        $colors[$color['slug']] = esc_attr($color['color']);
1108
+                    }
1109
+                }
1110 1110
 
1111
-				if(!empty($setting['color']['palette']['custom'])){
1112
-					foreach($setting['color']['palette']['custom'] as $color){
1113
-						$colors[$color['slug']] = esc_attr($color['color']);
1114
-					}
1115
-				}
1116
-			}else{
1117
-				$settings = get_option('aui_options');
1118
-				$colors = array(
1119
-					'primary'   => ! empty( $settings['color_primary'] ) ? $settings['color_primary'] : AUI_PRIMARY_COLOR,
1120
-					'secondary' => ! empty( $settings['color_secondary'] ) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR
1121
-				);
1122
-			}
1111
+                if(!empty($setting['color']['palette']['custom'])){
1112
+                    foreach($setting['color']['palette']['custom'] as $color){
1113
+                        $colors[$color['slug']] = esc_attr($color['color']);
1114
+                    }
1115
+                }
1116
+            }else{
1117
+                $settings = get_option('aui_options');
1118
+                $colors = array(
1119
+                    'primary'   => ! empty( $settings['color_primary'] ) ? $settings['color_primary'] : AUI_PRIMARY_COLOR,
1120
+                    'secondary' => ! empty( $settings['color_secondary'] ) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR
1121
+                );
1122
+            }
1123 1123
 
1124
-			ob_start();
1124
+            ob_start();
1125 1125
 
1126
-			?>
1126
+            ?>
1127 1127
             <style>
1128 1128
                 <?php
1129 1129
 
1130
-					// BS v3 compat
1131
-					if( self::is_bs3_compat() ){
1132
-						echo self::bs3_compat_css(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1133
-					}
1130
+                    // BS v3 compat
1131
+                    if( self::is_bs3_compat() ){
1132
+                        echo self::bs3_compat_css(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1133
+                    }
1134 1134
 
1135 1135
                     $current_screen = function_exists('get_current_screen' ) ? get_current_screen() : '';
1136 1136
                     $is_fse = false;
@@ -1138,26 +1138,26 @@  discard block
 block discarded – undo
1138 1138
                         $is_fse = true;
1139 1139
                     }
1140 1140
 
1141
-					if(!empty($colors)){
1142
-						$d_colors = self::get_colors(true);
1141
+                    if(!empty($colors)){
1142
+                        $d_colors = self::get_colors(true);
1143 1143
 
1144 1144
 //						$is_fse = !empty($_REQUEST['postType']) && $_REQUEST['postType']=='wp_template';
1145
-						foreach($colors as $key => $color ){
1146
-							if((empty( $d_colors[$key]) ||  $d_colors[$key] != $color) || $is_fse ) {
1147
-								$var = $is_fse ? "var(--wp--preset--color--$key)" : $color;
1148
-								$compat = $is_fse ? '.editor-styles-wrapper' : $compatibility;
1149
-								echo $aui_bs5 ? self::css_overwrite_bs5($key,$var,$compat,$color) : self::css_overwrite($key,$var,$compat,$color); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1150
-							}
1151
-						}
1152
-					   // exit;
1153
-					}
1145
+                        foreach($colors as $key => $color ){
1146
+                            if((empty( $d_colors[$key]) ||  $d_colors[$key] != $color) || $is_fse ) {
1147
+                                $var = $is_fse ? "var(--wp--preset--color--$key)" : $color;
1148
+                                $compat = $is_fse ? '.editor-styles-wrapper' : $compatibility;
1149
+                                echo $aui_bs5 ? self::css_overwrite_bs5($key,$var,$compat,$color) : self::css_overwrite($key,$var,$compat,$color); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1150
+                            }
1151
+                        }
1152
+                        // exit;
1153
+                    }
1154 1154
 
1155
-					// Set admin bar z-index lower when modal is open.
1156
-					echo ' body.modal-open #wpadminbar{z-index:999}.embed-responsive-16by9 .fluid-width-video-wrapper{padding:0 !important;position:initial}';
1155
+                    // Set admin bar z-index lower when modal is open.
1156
+                    echo ' body.modal-open #wpadminbar{z-index:999}.embed-responsive-16by9 .fluid-width-video-wrapper{padding:0 !important;position:initial}';
1157 1157
 
1158
-					if(is_admin()){
1159
-						echo ' body.modal-open #adminmenuwrap{z-index:999} body.modal-open #wpadminbar{z-index:1025}';
1160
-					}
1158
+                    if(is_admin()){
1159
+                        echo ' body.modal-open #adminmenuwrap{z-index:999} body.modal-open #wpadminbar{z-index:1025}';
1160
+                    }
1161 1161
 
1162 1162
                     if( $aui_bs5 && defined( 'BLOCKSTRAP_VERSION' )  ){
1163 1163
                         $css = '';
@@ -1177,28 +1177,28 @@  discard block
 block discarded – undo
1177 1177
                         }
1178 1178
 
1179 1179
                         // line height
1180
-                         if( !empty( $theme_settings['typography']['lineHeight'] ) ){
1180
+                            if( !empty( $theme_settings['typography']['lineHeight'] ) ){
1181 1181
                             $css .= '--bs-body-line-height: ' . esc_attr( $theme_settings['typography']['lineHeight'] ) . ';';
1182 1182
                         }
1183 1183
 
1184 1184
 
1185
-                           // font weight
1186
-                         if( !empty( $theme_settings['typography']['fontWeight'] ) ){
1185
+                            // font weight
1186
+                            if( !empty( $theme_settings['typography']['fontWeight'] ) ){
1187 1187
                             $css .= '--bs-body-font-weight: ' . esc_attr( $theme_settings['typography']['fontWeight'] ) . ';';
1188 1188
                         }
1189 1189
 
1190 1190
                         // Background
1191
-                         if( !empty( $theme_settings['color']['background'] ) ){
1191
+                            if( !empty( $theme_settings['color']['background'] ) ){
1192 1192
                             $css .= '--bs-body-bg: ' . esc_attr( $theme_settings['color']['background'] ) . ';';
1193 1193
                         }
1194 1194
 
1195
-                         // Background Gradient
1196
-                         if( !empty( $theme_settings['color']['gradient'] ) ){
1195
+                            // Background Gradient
1196
+                            if( !empty( $theme_settings['color']['gradient'] ) ){
1197 1197
                             $css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1198 1198
                         }
1199 1199
 
1200
-                           // Background Gradient
1201
-                         if( !empty( $theme_settings['color']['gradient'] ) ){
1200
+                            // Background Gradient
1201
+                            if( !empty( $theme_settings['color']['gradient'] ) ){
1202 1202
                             $css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';';
1203 1203
                         }
1204 1204
 
@@ -1236,7 +1236,7 @@  discard block
 block discarded – undo
1236 1236
                             $headings_css .= 'background: ' . esc_attr( $theme_settings['elements']['heading']['color']['background'] ) . ';';
1237 1237
                         }
1238 1238
 
1239
-                         // heading font family
1239
+                            // heading font family
1240 1240
                         if( !empty( $theme_settings['elements']['heading']['typography']['fontFamily'] ) ){
1241 1241
                             $headings_css .= 'font-family: ' . esc_attr( $theme_settings['elements']['heading']['typography']['fontFamily']  ) . ';';
1242 1242
                         }
@@ -1249,21 +1249,21 @@  discard block
 block discarded – undo
1249 1249
 
1250 1250
                         foreach($hs as $hn){
1251 1251
                             $h_css = '';
1252
-                             if( !empty( $theme_settings['elements'][$hn]['color']['text'] ) ){
1252
+                                if( !empty( $theme_settings['elements'][$hn]['color']['text'] ) ){
1253 1253
                                 $h_css .= 'color: ' . esc_attr( $theme_settings['elements'][$hn]['color']['text'] ) . ';';
1254
-                             }
1254
+                                }
1255 1255
 
1256
-                              if( !empty( $theme_settings['elements'][$hn]['typography']['fontSize'] ) ){
1256
+                                if( !empty( $theme_settings['elements'][$hn]['typography']['fontSize'] ) ){
1257 1257
                                 $h_css .= 'font-size: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontSize']  ) . ';';
1258
-                             }
1258
+                                }
1259 1259
 
1260
-                              if( !empty( $theme_settings['elements'][$hn]['typography']['fontFamily'] ) ){
1260
+                                if( !empty( $theme_settings['elements'][$hn]['typography']['fontFamily'] ) ){
1261 1261
                                 $h_css .= 'font-family: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontFamily']  ) . ';';
1262
-                             }
1262
+                                }
1263 1263
 
1264
-                             if($h_css){
1264
+                                if($h_css){
1265 1265
                                 echo esc_attr( $bep  . $hn ) . '{'.esc_attr( $h_css ).'}';
1266
-                             }
1266
+                                }
1267 1267
                         }
1268 1268
                     }
1269 1269
 
@@ -1274,176 +1274,176 @@  discard block
 block discarded – undo
1274 1274
                 ?>
1275 1275
             </style>
1276 1276
 			<?php
1277
-			/*
1277
+            /*
1278 1278
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1279 1279
 			 */
1280
-			return str_replace( array(
1281
-				'<style>',
1282
-				'</style>'
1283
-			), '', self::minify_css( ob_get_clean() ) );
1284
-		}
1285
-
1286
-		/**
1287
-		 * Check if we should add booststrap 3 compatibility changes.
1288
-		 *
1289
-		 * @return bool
1290
-		 */
1291
-		public static function is_bs3_compat(){
1292
-			return defined('AYECODE_UI_BS3_COMPAT') || defined('SVQ_THEME_VERSION') || defined('FUSION_BUILDER_VERSION');
1293
-		}
1294
-
1295
-		public static function hex_to_rgb( $hex ) {
1296
-			// Remove '#' if present
1297
-			$hex = str_replace( '#', '', $hex );
1298
-
1299
-			// Check if input is RGB
1300
-			if ( strpos( $hex, 'rgba(' ) === 0 || strpos( $hex, 'rgb(' ) === 0 ) {
1301
-				$_rgb = explode( ',', str_replace( array( 'rgba(', 'rgb(', ')' ), '', $hex ) );
1302
-
1303
-				$rgb = ( isset( $_rgb[0] ) ? (int) trim( $_rgb[0] ) : '0' ) . ',';
1304
-				$rgb .= ( isset( $_rgb[1] ) ? (int) trim( $_rgb[1] ) : '0' ) . ',';
1305
-				$rgb .= ( isset( $_rgb[2] ) ? (int) trim( $_rgb[2] ) : '0' );
1306
-
1307
-				return $rgb;
1308
-			}
1309
-
1310
-			// Convert 3-digit hex to 6-digit hex
1311
-			if ( strlen( $hex ) == 3 ) {
1312
-				$hex = str_repeat( substr( $hex, 0, 1 ), 2 ) . str_repeat( substr( $hex, 1, 1 ), 2 ) . str_repeat( substr( $hex, 2, 1 ), 2 );
1313
-			}
1314
-
1315
-			// Convert hex to RGB
1316
-			$r = hexdec( substr( $hex, 0, 2 ) );
1317
-			$g = hexdec( substr( $hex, 2, 2 ) );
1318
-			$b = hexdec( substr( $hex, 4, 2 ) );
1319
-
1320
-			// Return RGB values as an array
1321
-			return $r . ',' . $g . ',' . $b;
1322
-		}
1323
-
1324
-		/**
1325
-		 * Build the CSS to overwrite a bootstrap color variable.
1326
-		 *
1327
-		 * @param $type
1328
-		 * @param $color_code
1329
-		 * @param $compatibility
1330
-		 *
1331
-		 * @return string
1332
-		 */
1333
-		public static function css_overwrite_bs5($type,$color_code,$compatibility, $hex = '' ){
1334
-			global $aui_bs5;
1335
-
1336
-			$is_var = false;
1337
-			$is_custom = strpos($type, 'custom-') !== false ? true : false;
1338
-			if(!$color_code){return '';}
1339
-			if(strpos($color_code, 'var') !== false){
1340
-				//if(!sanitize_hex_color($color_code)){
1341
-				$color_code = esc_attr($color_code);
1342
-				$is_var = true;
1280
+            return str_replace( array(
1281
+                '<style>',
1282
+                '</style>'
1283
+            ), '', self::minify_css( ob_get_clean() ) );
1284
+        }
1285
+
1286
+        /**
1287
+         * Check if we should add booststrap 3 compatibility changes.
1288
+         *
1289
+         * @return bool
1290
+         */
1291
+        public static function is_bs3_compat(){
1292
+            return defined('AYECODE_UI_BS3_COMPAT') || defined('SVQ_THEME_VERSION') || defined('FUSION_BUILDER_VERSION');
1293
+        }
1294
+
1295
+        public static function hex_to_rgb( $hex ) {
1296
+            // Remove '#' if present
1297
+            $hex = str_replace( '#', '', $hex );
1298
+
1299
+            // Check if input is RGB
1300
+            if ( strpos( $hex, 'rgba(' ) === 0 || strpos( $hex, 'rgb(' ) === 0 ) {
1301
+                $_rgb = explode( ',', str_replace( array( 'rgba(', 'rgb(', ')' ), '', $hex ) );
1302
+
1303
+                $rgb = ( isset( $_rgb[0] ) ? (int) trim( $_rgb[0] ) : '0' ) . ',';
1304
+                $rgb .= ( isset( $_rgb[1] ) ? (int) trim( $_rgb[1] ) : '0' ) . ',';
1305
+                $rgb .= ( isset( $_rgb[2] ) ? (int) trim( $_rgb[2] ) : '0' );
1306
+
1307
+                return $rgb;
1308
+            }
1309
+
1310
+            // Convert 3-digit hex to 6-digit hex
1311
+            if ( strlen( $hex ) == 3 ) {
1312
+                $hex = str_repeat( substr( $hex, 0, 1 ), 2 ) . str_repeat( substr( $hex, 1, 1 ), 2 ) . str_repeat( substr( $hex, 2, 1 ), 2 );
1313
+            }
1314
+
1315
+            // Convert hex to RGB
1316
+            $r = hexdec( substr( $hex, 0, 2 ) );
1317
+            $g = hexdec( substr( $hex, 2, 2 ) );
1318
+            $b = hexdec( substr( $hex, 4, 2 ) );
1319
+
1320
+            // Return RGB values as an array
1321
+            return $r . ',' . $g . ',' . $b;
1322
+        }
1323
+
1324
+        /**
1325
+         * Build the CSS to overwrite a bootstrap color variable.
1326
+         *
1327
+         * @param $type
1328
+         * @param $color_code
1329
+         * @param $compatibility
1330
+         *
1331
+         * @return string
1332
+         */
1333
+        public static function css_overwrite_bs5($type,$color_code,$compatibility, $hex = '' ){
1334
+            global $aui_bs5;
1335
+
1336
+            $is_var = false;
1337
+            $is_custom = strpos($type, 'custom-') !== false ? true : false;
1338
+            if(!$color_code){return '';}
1339
+            if(strpos($color_code, 'var') !== false){
1340
+                //if(!sanitize_hex_color($color_code)){
1341
+                $color_code = esc_attr($color_code);
1342
+                $is_var = true;
1343 1343
 //				$color_code = "rgba($color_code, 0.5)";
1344 1344
 //                echo '###1'.$color_code.'###';//exit;
1345
-			}
1345
+            }
1346 1346
 
1347 1347
 //            echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit;
1348 1348
 
1349
-			if(!$color_code){return '';}
1349
+            if(!$color_code){return '';}
1350 1350
 
1351
-			$rgb = self::hex_to_rgb($hex);
1351
+            $rgb = self::hex_to_rgb($hex);
1352 1352
 
1353
-			if($compatibility===true || $compatibility===1){
1354
-				$compatibility = '.bsui';
1355
-			}elseif(!$compatibility){
1356
-				$compatibility = '';
1357
-			}else{
1358
-				$compatibility = esc_attr($compatibility);
1359
-			}
1353
+            if($compatibility===true || $compatibility===1){
1354
+                $compatibility = '.bsui';
1355
+            }elseif(!$compatibility){
1356
+                $compatibility = '';
1357
+            }else{
1358
+                $compatibility = esc_attr($compatibility);
1359
+            }
1360 1360
 
1361
-			$prefix = $compatibility ? $compatibility . " " : "";
1361
+            $prefix = $compatibility ? $compatibility . " " : "";
1362 1362
 
1363 1363
 
1364 1364
             $output = '';
1365 1365
 
1366 1366
 //            echo '####'.$color_code;exit;
1367 1367
 
1368
-			$type = sanitize_html_class($type);
1368
+            $type = sanitize_html_class($type);
1369
+
1370
+            /**
1371
+             * c = color, b = background color, o = border-color, f = fill
1372
+             */
1373
+            $selectors = array(
1374
+                ".btn-{$type}"                                              => array( 'b', 'o' ),
1375
+                ".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1376
+                ".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1377
+                ".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1378
+                ".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1379
+                ".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1380
+                ".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1381
+                ".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1382
+                ".badge-{$type}"                                            => array( 'b' ),
1383
+                ".alert-{$type}"                                            => array( 'b', 'o' ),
1384
+                ".bg-{$type}"                                               => array( 'b', 'f' ),
1385
+                ".btn-link.btn-{$type}"                                     => array( 'c' ),
1386
+                ".text-{$type}"                                     => array( 'c' ),
1387
+            );
1388
+
1389
+            if ( $aui_bs5 ) {
1390
+                unset($selectors[".alert-{$type}" ]);
1391
+            }
1369 1392
 
1370
-			/**
1371
-			 * c = color, b = background color, o = border-color, f = fill
1372
-			 */
1373
-			$selectors = array(
1374
-				".btn-{$type}"                                              => array( 'b', 'o' ),
1375
-				".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1376
-				".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1377
-				".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1378
-				".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1379
-				".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1380
-				".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1381
-				".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1382
-				".badge-{$type}"                                            => array( 'b' ),
1383
-				".alert-{$type}"                                            => array( 'b', 'o' ),
1384
-				".bg-{$type}"                                               => array( 'b', 'f' ),
1385
-				".btn-link.btn-{$type}"                                     => array( 'c' ),
1386
-				".text-{$type}"                                     => array( 'c' ),
1387
-			);
1388
-
1389
-			if ( $aui_bs5 ) {
1390
-				unset($selectors[".alert-{$type}" ]);
1391
-			}
1392
-
1393
-			if ( $type == 'primary' ) {
1394
-				$selectors = $selectors + array(
1395
-						'a'                                                                                                    => array( 'c' ),
1396
-						'.btn-link'                                                                                            => array( 'c' ),
1397
-						'.dropdown-item.active'                                                                                => array( 'b' ),
1398
-						'.custom-control-input:checked~.custom-control-label::before'                                          => array(
1399
-							'b',
1400
-							'o'
1401
-						),
1402
-						'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1403
-							'b',
1404
-							'o'
1405
-						),
1406
-						'.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1407
-						'.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1408
-						'.page-link'                                                                                           => array( 'c' ),
1409
-						'.page-item.active .page-link'                                                                         => array(
1410
-							'b',
1411
-							'o'
1412
-						),
1413
-						'.progress-bar'                                                                                        => array( 'b' ),
1414
-						'.list-group-item.active'                                                                              => array(
1415
-							'b',
1416
-							'o'
1417
-						),
1418
-						'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1419
-					);
1420
-			}
1393
+            if ( $type == 'primary' ) {
1394
+                $selectors = $selectors + array(
1395
+                        'a'                                                                                                    => array( 'c' ),
1396
+                        '.btn-link'                                                                                            => array( 'c' ),
1397
+                        '.dropdown-item.active'                                                                                => array( 'b' ),
1398
+                        '.custom-control-input:checked~.custom-control-label::before'                                          => array(
1399
+                            'b',
1400
+                            'o'
1401
+                        ),
1402
+                        '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1403
+                            'b',
1404
+                            'o'
1405
+                        ),
1406
+                        '.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1407
+                        '.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1408
+                        '.page-link'                                                                                           => array( 'c' ),
1409
+                        '.page-item.active .page-link'                                                                         => array(
1410
+                            'b',
1411
+                            'o'
1412
+                        ),
1413
+                        '.progress-bar'                                                                                        => array( 'b' ),
1414
+                        '.list-group-item.active'                                                                              => array(
1415
+                            'b',
1416
+                            'o'
1417
+                        ),
1418
+                        '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1419
+                    );
1420
+            }
1421 1421
 
1422 1422
 
1423 1423
 
1424 1424
             // link
1425
-			if ( $type === 'primary' ) {
1426
-				$output .= 'html body {--bs-link-hover-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .75); --bs-link-color: var(--bs-'.esc_attr($type).'); }';
1427
-				$output .= $prefix . ' .breadcrumb{--bs-breadcrumb-item-active-color: '.esc_attr($color_code).';  }';
1428
-				$output .= $prefix . ' .navbar { --bs-nav-link-hover-color: '.esc_attr($color_code).'; --bs-navbar-hover-color: '.esc_attr($color_code).'; --bs-navbar-active-color: '.esc_attr($color_code).'; }';
1425
+            if ( $type === 'primary' ) {
1426
+                $output .= 'html body {--bs-link-hover-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .75); --bs-link-color: var(--bs-'.esc_attr($type).'); }';
1427
+                $output .= $prefix . ' .breadcrumb{--bs-breadcrumb-item-active-color: '.esc_attr($color_code).';  }';
1428
+                $output .= $prefix . ' .navbar { --bs-nav-link-hover-color: '.esc_attr($color_code).'; --bs-navbar-hover-color: '.esc_attr($color_code).'; --bs-navbar-active-color: '.esc_attr($color_code).'; }';
1429 1429
 
1430
-				$output .= $prefix . ' a{color: var(--bs-'.esc_attr($type).');}';
1431
-				$output .= $prefix . ' .text-primary{color: var(--bs-'.esc_attr($type).') !important;}';
1430
+                $output .= $prefix . ' a{color: var(--bs-'.esc_attr($type).');}';
1431
+                $output .= $prefix . ' .text-primary{color: var(--bs-'.esc_attr($type).') !important;}';
1432 1432
 
1433 1433
                 // dropdown
1434
-				$output .= $prefix . ' .dropdown-menu{--bs-dropdown-link-hover-color: var(--bs-'.esc_attr($type).'); --bs-dropdown-link-active-color: var(--bs-'.esc_attr($type).');}';
1434
+                $output .= $prefix . ' .dropdown-menu{--bs-dropdown-link-hover-color: var(--bs-'.esc_attr($type).'); --bs-dropdown-link-active-color: var(--bs-'.esc_attr($type).');}';
1435 1435
 
1436 1436
                 // pagination
1437
-				$output .= $prefix . ' .pagination{--bs-pagination-hover-color: var(--bs-'.esc_attr($type).'); --bs-pagination-active-bg: var(--bs-'.esc_attr($type).');}';
1437
+                $output .= $prefix . ' .pagination{--bs-pagination-hover-color: var(--bs-'.esc_attr($type).'); --bs-pagination-active-bg: var(--bs-'.esc_attr($type).');}';
1438 1438
 
1439
-			}
1439
+            }
1440 1440
 
1441
-			$output .= $prefix . ' .link-'.esc_attr($type).' {color: var(--bs-'.esc_attr($type).'-rgb) !important;}';
1442
-			$output .= $prefix . ' .link-'.esc_attr($type).':hover {color: rgba(var(--bs-'.esc_attr($type).'-rgb), .8) !important;}';
1441
+            $output .= $prefix . ' .link-'.esc_attr($type).' {color: var(--bs-'.esc_attr($type).'-rgb) !important;}';
1442
+            $output .= $prefix . ' .link-'.esc_attr($type).':hover {color: rgba(var(--bs-'.esc_attr($type).'-rgb), .8) !important;}';
1443 1443
 
1444
-			//  buttons
1445
-			$output .= $prefix . ' .btn-'.esc_attr($type).'{';
1446
-			$output .= ' 
1444
+            //  buttons
1445
+            $output .= $prefix . ' .btn-'.esc_attr($type).'{';
1446
+            $output .= ' 
1447 1447
             --bs-btn-bg: '.esc_attr($color_code).';
1448 1448
             --bs-btn-border-color: '.esc_attr($color_code).';
1449 1449
             --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
@@ -1461,11 +1461,11 @@  discard block
 block discarded – undo
1461 1461
 //			--bs-btn-active-color: #fff;
1462 1462
 //			--bs-btn-disabled-color: #fff;
1463 1463
 //            ';
1464
-			$output .= '}';
1464
+            $output .= '}';
1465 1465
 
1466
-			//  buttons outline
1467
-			$output .= $prefix . ' .btn-outline-'.esc_attr($type).'{';
1468
-			$output .= ' 
1466
+            //  buttons outline
1467
+            $output .= $prefix . ' .btn-outline-'.esc_attr($type).'{';
1468
+            $output .= ' 
1469 1469
 			--bs-btn-color: '.esc_attr($color_code).';
1470 1470
             --bs-btn-border-color: '.esc_attr($color_code).';
1471 1471
             --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9);
@@ -1483,37 +1483,37 @@  discard block
 block discarded – undo
1483 1483
 //			--bs-btn-active-color: #fff;
1484 1484
 //			--bs-btn-disabled-color: #fff;
1485 1485
 //            ';
1486
-			$output .= '}';
1486
+            $output .= '}';
1487 1487
 
1488 1488
 
1489 1489
             // button hover
1490
-			$output .= $prefix . ' .btn-'.esc_attr($type).':hover{';
1491
-			$output .= ' 
1490
+            $output .= $prefix . ' .btn-'.esc_attr($type).':hover{';
1491
+            $output .= ' 
1492 1492
             box-shadow: 0 0.25rem 0.25rem 0.125rem rgb(var(--bs-'.esc_attr($type).'-rgb), .1), 0 0.375rem 0.75rem -0.125rem rgb(var(--bs-'.esc_attr($type).'-rgb) , .4);
1493 1493
             }
1494 1494
             ';
1495 1495
 
1496 1496
 
1497
-			if ( $aui_bs5 ) {
1497
+            if ( $aui_bs5 ) {
1498 1498
 //				$output .= $is_var ? 'html body {--bs-'.esc_attr($type).'-rgb: '.$color_code.'; }' : 'html body {--bs-'.esc_attr($type).'-rgb: '.self::hex_to_rgb($color_code).'; }';
1499
-				$output .= 'html body {--bs-'.esc_attr($type).': '.esc_attr($color_code).'; }';
1500
-				$output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1501
-			}
1499
+                $output .= 'html body {--bs-'.esc_attr($type).': '.esc_attr($color_code).'; }';
1500
+                $output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1501
+            }
1502 1502
 
1503 1503
 
1504
-			if ( $is_custom ) {
1504
+            if ( $is_custom ) {
1505 1505
 
1506 1506
 //				echo '###'.$type;exit;
1507 1507
 
1508
-				// build rules into each type
1509
-				foreach($selectors as $selector => $types){
1510
-					$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1511
-					$types = array_combine($types,$types);
1512
-					if(isset($types['c'])){$color[] = $selector;}
1513
-					if(isset($types['b'])){$background[] = $selector;}
1514
-					if(isset($types['o'])){$border[] = $selector;}
1515
-					if(isset($types['f'])){$fill[] = $selector;}
1516
-				}
1508
+                // build rules into each type
1509
+                foreach($selectors as $selector => $types){
1510
+                    $selector = $compatibility ? $compatibility . " ".$selector : $selector;
1511
+                    $types = array_combine($types,$types);
1512
+                    if(isset($types['c'])){$color[] = $selector;}
1513
+                    if(isset($types['b'])){$background[] = $selector;}
1514
+                    if(isset($types['o'])){$border[] = $selector;}
1515
+                    if(isset($types['f'])){$fill[] = $selector;}
1516
+                }
1517 1517
 
1518 1518
 //				// build rules into each type
1519 1519
 //				foreach($important_selectors as $selector => $types){
@@ -1525,68 +1525,68 @@  discard block
 block discarded – undo
1525 1525
 //					if(isset($types['f'])){$fill_i[] = $selector;}
1526 1526
 //				}
1527 1527
 
1528
-				// add any color rules
1529
-				if(!empty($color)){
1530
-					$output .= implode(",",$color) . "{color: $color_code;} ";
1531
-				}
1532
-				if(!empty($color_i)){
1533
-					$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1534
-				}
1528
+                // add any color rules
1529
+                if(!empty($color)){
1530
+                    $output .= implode(",",$color) . "{color: $color_code;} ";
1531
+                }
1532
+                if(!empty($color_i)){
1533
+                    $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1534
+                }
1535 1535
 
1536
-				// add any background color rules
1537
-				if(!empty($background)){
1538
-					$output .= implode(",",$background) . "{background-color: $color_code;} ";
1539
-				}
1540
-				if(!empty($background_i)){
1541
-					$output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1536
+                // add any background color rules
1537
+                if(!empty($background)){
1538
+                    $output .= implode(",",$background) . "{background-color: $color_code;} ";
1539
+                }
1540
+                if(!empty($background_i)){
1541
+                    $output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1542 1542
 //				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1543
-				}
1543
+                }
1544 1544
 
1545
-				// add any border color rules
1546
-				if(!empty($border)){
1547
-					$output .= implode(",",$border) . "{border-color: $color_code;} ";
1548
-				}
1549
-				if(!empty($border_i)){
1550
-					$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1551
-				}
1545
+                // add any border color rules
1546
+                if(!empty($border)){
1547
+                    $output .= implode(",",$border) . "{border-color: $color_code;} ";
1548
+                }
1549
+                if(!empty($border_i)){
1550
+                    $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1551
+                }
1552 1552
 
1553
-				// add any fill color rules
1554
-				if(!empty($fill)){
1555
-					$output .= implode(",",$fill) . "{fill: $color_code;} ";
1556
-				}
1557
-				if(!empty($fill_i)){
1558
-					$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1559
-				}
1553
+                // add any fill color rules
1554
+                if(!empty($fill)){
1555
+                    $output .= implode(",",$fill) . "{fill: $color_code;} ";
1556
+                }
1557
+                if(!empty($fill_i)){
1558
+                    $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1559
+                }
1560 1560
 
1561
-			}
1561
+            }
1562 1562
 
1563 1563
 
1564 1564
 
1565 1565
 
1566
-			$transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : '';
1567
-			// darken
1568
-			$darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1569
-			$darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1570
-			$darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1571
-			$darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1566
+            $transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : '';
1567
+            // darken
1568
+            $darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1569
+            $darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1570
+            $darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1571
+            $darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1572 1572
 
1573
-			// lighten
1574
-			$lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1573
+            // lighten
1574
+            $lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1575 1575
 
1576
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
1577
-			$op_25 = $color_code."40"; // 25% opacity
1576
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
1577
+            $op_25 = $color_code."40"; // 25% opacity
1578 1578
 
1579 1579
 
1580
-			// button states
1581
-			$output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1582
-			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1580
+            // button states
1581
+            $output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1582
+            $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1583 1583
 //			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1584
-			$output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1585
-			$output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
1584
+            $output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1585
+            $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
1586 1586
             $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-{$type}.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
1587 1587
             $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled):focus {box-shadow: 0 0.25rem 0.25rem 0.125rem rgba(var(--bs-{$type}-rgb), 0.1), 0 0.375rem 0.75rem -0.125rem rgba(var(--bs-{$type}-rgb), 0.4);} ";
1588 1588
 
1589
-			// text
1589
+            // text
1590 1590
 //			$output .= $prefix .".xxx, .text-{$type} {color: var(--bs-".esc_attr($type).");} ";
1591 1591
 
1592 1592
 
@@ -1601,777 +1601,777 @@  discard block
 block discarded – undo
1601 1601
 //				$output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1602 1602
 //			}
1603 1603
 
1604
-			// alerts
1605
-			if ( $aui_bs5 ) {
1604
+            // alerts
1605
+            if ( $aui_bs5 ) {
1606 1606
 //				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1607
-				$output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} ";
1608
-			}
1609
-
1610
-			return $output;
1611
-		}
1612
-
1613
-		/**
1614
-		 * Build the CSS to overwrite a bootstrap color variable.
1615
-		 *
1616
-		 * @param $type
1617
-		 * @param $color_code
1618
-		 * @param $compatibility
1619
-		 *
1620
-		 * @return string
1621
-		 */
1622
-		public static function css_overwrite($type,$color_code,$compatibility, $hex = '' ){
1607
+                $output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} ";
1608
+            }
1609
+
1610
+            return $output;
1611
+        }
1612
+
1613
+        /**
1614
+         * Build the CSS to overwrite a bootstrap color variable.
1615
+         *
1616
+         * @param $type
1617
+         * @param $color_code
1618
+         * @param $compatibility
1619
+         *
1620
+         * @return string
1621
+         */
1622
+        public static function css_overwrite($type,$color_code,$compatibility, $hex = '' ){
1623 1623
             global $aui_bs5;
1624 1624
 
1625
-			$is_var = false;
1626
-			if(!$color_code){return '';}
1627
-			if(strpos($color_code, 'var') !== false){
1628
-				//if(!sanitize_hex_color($color_code)){
1629
-				$color_code = esc_attr($color_code);
1630
-				$is_var = true;
1625
+            $is_var = false;
1626
+            if(!$color_code){return '';}
1627
+            if(strpos($color_code, 'var') !== false){
1628
+                //if(!sanitize_hex_color($color_code)){
1629
+                $color_code = esc_attr($color_code);
1630
+                $is_var = true;
1631 1631
 //				$color_code = "rgba($color_code, 0.5)";
1632 1632
 //                echo '###1'.$color_code.'###';//exit;
1633
-			}
1633
+            }
1634 1634
 
1635 1635
 //            echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit;
1636 1636
 
1637
-			if(!$color_code){return '';}
1637
+            if(!$color_code){return '';}
1638 1638
 
1639 1639
             $rgb = self::hex_to_rgb($hex);
1640 1640
 
1641
-			if($compatibility===true || $compatibility===1){
1642
-				$compatibility = '.bsui';
1643
-			}elseif(!$compatibility){
1644
-				$compatibility = '';
1645
-			}else{
1646
-				$compatibility = esc_attr($compatibility);
1647
-			}
1641
+            if($compatibility===true || $compatibility===1){
1642
+                $compatibility = '.bsui';
1643
+            }elseif(!$compatibility){
1644
+                $compatibility = '';
1645
+            }else{
1646
+                $compatibility = esc_attr($compatibility);
1647
+            }
1648 1648
 
1649 1649
 
1650 1650
 
1651 1651
 //            echo '####'.$color_code;exit;
1652 1652
 
1653
-			$type = sanitize_html_class($type);
1654
-
1655
-			/**
1656
-			 * c = color, b = background color, o = border-color, f = fill
1657
-			 */
1658
-			$selectors = array(
1659
-				".btn-{$type}"                                              => array( 'b', 'o' ),
1660
-				".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1661
-				".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1662
-				".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1663
-				".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1664
-				".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1665
-				".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1666
-				".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1667
-				".badge-{$type}"                                            => array( 'b' ),
1668
-				".alert-{$type}"                                            => array( 'b', 'o' ),
1669
-				".bg-{$type}"                                               => array( 'b', 'f' ),
1670
-				".btn-link.btn-{$type}"                                     => array( 'c' ),
1671
-			);
1672
-
1673
-			if ( $aui_bs5 ) {
1653
+            $type = sanitize_html_class($type);
1654
+
1655
+            /**
1656
+             * c = color, b = background color, o = border-color, f = fill
1657
+             */
1658
+            $selectors = array(
1659
+                ".btn-{$type}"                                              => array( 'b', 'o' ),
1660
+                ".btn-{$type}.disabled"                                     => array( 'b', 'o' ),
1661
+                ".btn-{$type}:disabled"                                     => array( 'b', 'o' ),
1662
+                ".btn-outline-{$type}"                                      => array( 'c', 'o' ),
1663
+                ".btn-outline-{$type}:hover"                                => array( 'b', 'o' ),
1664
+                ".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ),
1665
+                ".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ),
1666
+                ".show>.btn-outline-{$type}.dropdown-toggle"                => array( 'b', 'o' ),
1667
+                ".badge-{$type}"                                            => array( 'b' ),
1668
+                ".alert-{$type}"                                            => array( 'b', 'o' ),
1669
+                ".bg-{$type}"                                               => array( 'b', 'f' ),
1670
+                ".btn-link.btn-{$type}"                                     => array( 'c' ),
1671
+            );
1672
+
1673
+            if ( $aui_bs5 ) {
1674 1674
                 unset($selectors[".alert-{$type}" ]);
1675
-			}
1676
-
1677
-			if ( $type == 'primary' ) {
1678
-				$selectors = $selectors + array(
1679
-						'a'                                                                                                    => array( 'c' ),
1680
-						'.btn-link'                                                                                            => array( 'c' ),
1681
-						'.dropdown-item.active'                                                                                => array( 'b' ),
1682
-						'.custom-control-input:checked~.custom-control-label::before'                                          => array(
1683
-							'b',
1684
-							'o'
1685
-						),
1686
-						'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1687
-							'b',
1688
-							'o'
1689
-						),
1690
-						'.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1691
-						'.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1692
-						'.page-link'                                                                                           => array( 'c' ),
1693
-						'.page-item.active .page-link'                                                                         => array(
1694
-							'b',
1695
-							'o'
1696
-						),
1697
-						'.progress-bar'                                                                                        => array( 'b' ),
1698
-						'.list-group-item.active'                                                                              => array(
1699
-							'b',
1700
-							'o'
1701
-						),
1702
-						'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1675
+            }
1676
+
1677
+            if ( $type == 'primary' ) {
1678
+                $selectors = $selectors + array(
1679
+                        'a'                                                                                                    => array( 'c' ),
1680
+                        '.btn-link'                                                                                            => array( 'c' ),
1681
+                        '.dropdown-item.active'                                                                                => array( 'b' ),
1682
+                        '.custom-control-input:checked~.custom-control-label::before'                                          => array(
1683
+                            'b',
1684
+                            'o'
1685
+                        ),
1686
+                        '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before'                   => array(
1687
+                            'b',
1688
+                            'o'
1689
+                        ),
1690
+                        '.nav-pills .nav-link.active'                                                                          => array( 'b' ),
1691
+                        '.nav-pills .show>.nav-link'                                                                           => array( 'b' ),
1692
+                        '.page-link'                                                                                           => array( 'c' ),
1693
+                        '.page-item.active .page-link'                                                                         => array(
1694
+                            'b',
1695
+                            'o'
1696
+                        ),
1697
+                        '.progress-bar'                                                                                        => array( 'b' ),
1698
+                        '.list-group-item.active'                                                                              => array(
1699
+                            'b',
1700
+                            'o'
1701
+                        ),
1702
+                        '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ),
1703 1703
 //				    '.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1704 1704
 //				    '.custom-range::-moz-range-thumb' => array('b'),
1705 1705
 //				    '.custom-range::-ms-thumb' => array('b'),
1706
-					);
1707
-			}
1708
-
1709
-			$important_selectors = array(
1710
-				".bg-{$type}" => array('b','f'),
1711
-				".border-{$type}" => array('o'),
1712
-				".text-{$type}" => array('c'),
1713
-			);
1714
-
1715
-			$color = array();
1716
-			$color_i = array();
1717
-			$background = array();
1718
-			$background_i = array();
1719
-			$border = array();
1720
-			$border_i = array();
1721
-			$fill = array();
1722
-			$fill_i = array();
1723
-
1724
-			$output = '';
1725
-
1726
-			if ( $aui_bs5 ) {
1706
+                    );
1707
+            }
1708
+
1709
+            $important_selectors = array(
1710
+                ".bg-{$type}" => array('b','f'),
1711
+                ".border-{$type}" => array('o'),
1712
+                ".text-{$type}" => array('c'),
1713
+            );
1714
+
1715
+            $color = array();
1716
+            $color_i = array();
1717
+            $background = array();
1718
+            $background_i = array();
1719
+            $border = array();
1720
+            $border_i = array();
1721
+            $fill = array();
1722
+            $fill_i = array();
1723
+
1724
+            $output = '';
1725
+
1726
+            if ( $aui_bs5 ) {
1727 1727
 //				$output .= $is_var ? 'html body {--bs-'.esc_attr($type).'-rgb: '.$color_code.'; }' : 'html body {--bs-'.esc_attr($type).'-rgb: '.self::hex_to_rgb($color_code).'; }';
1728
-				$output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1729
-			}
1730
-
1731
-			// build rules into each type
1732
-			foreach($selectors as $selector => $types){
1733
-				$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1734
-				$types = array_combine($types,$types);
1735
-				if(isset($types['c'])){$color[] = $selector;}
1736
-				if(isset($types['b'])){$background[] = $selector;}
1737
-				if(isset($types['o'])){$border[] = $selector;}
1738
-				if(isset($types['f'])){$fill[] = $selector;}
1739
-			}
1740
-
1741
-			// build rules into each type
1742
-			foreach($important_selectors as $selector => $types){
1743
-				$selector = $compatibility ? $compatibility . " ".$selector : $selector;
1744
-				$types = array_combine($types,$types);
1745
-				if(isset($types['c'])){$color_i[] = $selector;}
1746
-				if(isset($types['b'])){$background_i[] = $selector;}
1747
-				if(isset($types['o'])){$border_i[] = $selector;}
1748
-				if(isset($types['f'])){$fill_i[] = $selector;}
1749
-			}
1750
-
1751
-			// add any color rules
1752
-			if(!empty($color)){
1753
-				$output .= implode(",",$color) . "{color: $color_code;} ";
1754
-			}
1755
-			if(!empty($color_i)){
1756
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1757
-			}
1758
-
1759
-			// add any background color rules
1760
-			if(!empty($background)){
1761
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
1762
-			}
1763
-			if(!empty($background_i)){
1764
-				$output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1728
+                $output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }';
1729
+            }
1730
+
1731
+            // build rules into each type
1732
+            foreach($selectors as $selector => $types){
1733
+                $selector = $compatibility ? $compatibility . " ".$selector : $selector;
1734
+                $types = array_combine($types,$types);
1735
+                if(isset($types['c'])){$color[] = $selector;}
1736
+                if(isset($types['b'])){$background[] = $selector;}
1737
+                if(isset($types['o'])){$border[] = $selector;}
1738
+                if(isset($types['f'])){$fill[] = $selector;}
1739
+            }
1740
+
1741
+            // build rules into each type
1742
+            foreach($important_selectors as $selector => $types){
1743
+                $selector = $compatibility ? $compatibility . " ".$selector : $selector;
1744
+                $types = array_combine($types,$types);
1745
+                if(isset($types['c'])){$color_i[] = $selector;}
1746
+                if(isset($types['b'])){$background_i[] = $selector;}
1747
+                if(isset($types['o'])){$border_i[] = $selector;}
1748
+                if(isset($types['f'])){$fill_i[] = $selector;}
1749
+            }
1750
+
1751
+            // add any color rules
1752
+            if(!empty($color)){
1753
+                $output .= implode(",",$color) . "{color: $color_code;} ";
1754
+            }
1755
+            if(!empty($color_i)){
1756
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1757
+            }
1758
+
1759
+            // add any background color rules
1760
+            if(!empty($background)){
1761
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
1762
+            }
1763
+            if(!empty($background_i)){
1764
+                $output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} ";
1765 1765
 //				$output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} ";
1766
-			}
1766
+            }
1767 1767
 
1768
-			// add any border color rules
1769
-			if(!empty($border)){
1770
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
1771
-			}
1772
-			if(!empty($border_i)){
1773
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1774
-			}
1768
+            // add any border color rules
1769
+            if(!empty($border)){
1770
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
1771
+            }
1772
+            if(!empty($border_i)){
1773
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1774
+            }
1775 1775
 
1776
-			// add any fill color rules
1777
-			if(!empty($fill)){
1778
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
1779
-			}
1780
-			if(!empty($fill_i)){
1781
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1782
-			}
1776
+            // add any fill color rules
1777
+            if(!empty($fill)){
1778
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
1779
+            }
1780
+            if(!empty($fill_i)){
1781
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1782
+            }
1783 1783
 
1784 1784
 
1785
-			$prefix = $compatibility ? $compatibility . " " : "";
1785
+            $prefix = $compatibility ? $compatibility . " " : "";
1786 1786
 
1787
-			$transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : '';
1788
-			// darken
1789
-			$darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1790
-			$darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1791
-			$darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1792
-			$darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1787
+            $transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : '';
1788
+            // darken
1789
+            $darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075");
1790
+            $darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10");
1791
+            $darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125");
1792
+            $darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4");
1793 1793
 
1794
-			// lighten
1795
-			$lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1794
+            // lighten
1795
+            $lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25");
1796 1796
 
1797
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
1798
-			$op_25 = $color_code."40"; // 25% opacity
1797
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
1798
+            $op_25 = $color_code."40"; // 25% opacity
1799 1799
 
1800 1800
 
1801
-			// button states
1802
-			$output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1803
-			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1801
+            // button states
1802
+            $output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : '';
1803
+            $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1804 1804
 //			$output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000;    border-color: #000;} ";
1805
-			$output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1806
-			$output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
1807
-			$output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-{$type}.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
1805
+            $output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1806
+            $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
1807
+            $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-{$type}.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
1808 1808
 
1809
-			if ( $type == 'primary' ) {
1810
-				// dropdown's
1811
-				$output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1809
+            if ( $type == 'primary' ) {
1810
+                // dropdown's
1811
+                $output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1812 1812
 
1813
-				// input states
1814
-				$output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
1813
+                // input states
1814
+                $output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} ";
1815 1815
 
1816
-				// page link
1817
-				$output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1818
-			}
1816
+                // page link
1817
+                $output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1818
+            }
1819 1819
 
1820 1820
             // alerts
1821
-			if ( $aui_bs5 ) {
1821
+            if ( $aui_bs5 ) {
1822 1822
 //				$output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20;    border-color: ".$color_code."30;color:$darker_40} ";
1823
-				$output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} ";
1824
-			}
1825
-
1826
-			return $output;
1827
-		}
1828
-
1829
-		/**
1830
-		 *
1831
-		 * @deprecated 0.1.76 Use css_overwrite()
1832
-		 *
1833
-		 * @param $color_code
1834
-		 * @param $compatibility
1835
-		 * @param $use_variable
1836
-		 *
1837
-		 * @return string
1838
-		 */
1839
-		public static function css_primary($color_code,$compatibility, $use_variable = false){
1840
-
1841
-			if(!$use_variable){
1842
-				$color_code = sanitize_hex_color($color_code);
1843
-				if(!$color_code){return '';}
1844
-			}
1845
-
1846
-			/**
1847
-			 * c = color, b = background color, o = border-color, f = fill
1848
-			 */
1849
-			$selectors = array(
1850
-				'a' => array('c'),
1851
-				'.btn-primary' => array('b','o'),
1852
-				'.btn-primary.disabled' => array('b','o'),
1853
-				'.btn-primary:disabled' => array('b','o'),
1854
-				'.btn-outline-primary' => array('c','o'),
1855
-				'.btn-outline-primary:hover' => array('b','o'),
1856
-				'.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'),
1857
-				'.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'),
1858
-				'.show>.btn-outline-primary.dropdown-toggle' => array('b','o'),
1859
-				'.btn-link' => array('c'),
1860
-				'.dropdown-item.active' => array('b'),
1861
-				'.custom-control-input:checked~.custom-control-label::before' => array('b','o'),
1862
-				'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'),
1823
+                $output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} ";
1824
+            }
1825
+
1826
+            return $output;
1827
+        }
1828
+
1829
+        /**
1830
+         *
1831
+         * @deprecated 0.1.76 Use css_overwrite()
1832
+         *
1833
+         * @param $color_code
1834
+         * @param $compatibility
1835
+         * @param $use_variable
1836
+         *
1837
+         * @return string
1838
+         */
1839
+        public static function css_primary($color_code,$compatibility, $use_variable = false){
1840
+
1841
+            if(!$use_variable){
1842
+                $color_code = sanitize_hex_color($color_code);
1843
+                if(!$color_code){return '';}
1844
+            }
1845
+
1846
+            /**
1847
+             * c = color, b = background color, o = border-color, f = fill
1848
+             */
1849
+            $selectors = array(
1850
+                'a' => array('c'),
1851
+                '.btn-primary' => array('b','o'),
1852
+                '.btn-primary.disabled' => array('b','o'),
1853
+                '.btn-primary:disabled' => array('b','o'),
1854
+                '.btn-outline-primary' => array('c','o'),
1855
+                '.btn-outline-primary:hover' => array('b','o'),
1856
+                '.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'),
1857
+                '.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'),
1858
+                '.show>.btn-outline-primary.dropdown-toggle' => array('b','o'),
1859
+                '.btn-link' => array('c'),
1860
+                '.dropdown-item.active' => array('b'),
1861
+                '.custom-control-input:checked~.custom-control-label::before' => array('b','o'),
1862
+                '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'),
1863 1863
 //				'.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1864 1864
 //				'.custom-range::-moz-range-thumb' => array('b'),
1865 1865
 //				'.custom-range::-ms-thumb' => array('b'),
1866
-				'.nav-pills .nav-link.active' => array('b'),
1867
-				'.nav-pills .show>.nav-link' => array('b'),
1868
-				'.page-link' => array('c'),
1869
-				'.page-item.active .page-link' => array('b','o'),
1870
-				'.badge-primary' => array('b'),
1871
-				'.alert-primary' => array('b','o'),
1872
-				'.progress-bar' => array('b'),
1873
-				'.list-group-item.active' => array('b','o'),
1874
-				'.bg-primary' => array('b','f'),
1875
-				'.btn-link.btn-primary' => array('c'),
1876
-				'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1877
-			);
1878
-
1879
-			$important_selectors = array(
1880
-				'.bg-primary' => array('b','f'),
1881
-				'.border-primary' => array('o'),
1882
-				'.text-primary' => array('c'),
1883
-			);
1884
-
1885
-			$color = array();
1886
-			$color_i = array();
1887
-			$background = array();
1888
-			$background_i = array();
1889
-			$border = array();
1890
-			$border_i = array();
1891
-			$fill = array();
1892
-			$fill_i = array();
1893
-
1894
-			$output = '';
1895
-
1896
-			// build rules into each type
1897
-			foreach($selectors as $selector => $types){
1898
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1899
-				$types = array_combine($types,$types);
1900
-				if(isset($types['c'])){$color[] = $selector;}
1901
-				if(isset($types['b'])){$background[] = $selector;}
1902
-				if(isset($types['o'])){$border[] = $selector;}
1903
-				if(isset($types['f'])){$fill[] = $selector;}
1904
-			}
1905
-
1906
-			// build rules into each type
1907
-			foreach($important_selectors as $selector => $types){
1908
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1909
-				$types = array_combine($types,$types);
1910
-				if(isset($types['c'])){$color_i[] = $selector;}
1911
-				if(isset($types['b'])){$background_i[] = $selector;}
1912
-				if(isset($types['o'])){$border_i[] = $selector;}
1913
-				if(isset($types['f'])){$fill_i[] = $selector;}
1914
-			}
1915
-
1916
-			// add any color rules
1917
-			if(!empty($color)){
1918
-				$output .= implode(",",$color) . "{color: $color_code;} ";
1919
-			}
1920
-			if(!empty($color_i)){
1921
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1922
-			}
1923
-
1924
-			// add any background color rules
1925
-			if(!empty($background)){
1926
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
1927
-			}
1928
-			if(!empty($background_i)){
1929
-				$output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1930
-			}
1931
-
1932
-			// add any border color rules
1933
-			if(!empty($border)){
1934
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
1935
-			}
1936
-			if(!empty($border_i)){
1937
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1938
-			}
1939
-
1940
-			// add any fill color rules
1941
-			if(!empty($fill)){
1942
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
1943
-			}
1944
-			if(!empty($fill_i)){
1945
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1946
-			}
1947
-
1948
-
1949
-			$prefix = $compatibility ? ".bsui " : "";
1950
-
1951
-			// darken
1952
-			$darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1953
-			$darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1954
-			$darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1955
-
1956
-			// lighten
1957
-			$lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1958
-
1959
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
1960
-			$op_25 = $color_code."40"; // 25% opacity
1961
-
1962
-
1963
-			// button states
1964
-			$output .= $prefix ." .btn-primary:hover, $prefix .btn-primary:focus, $prefix .btn-primary.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1965
-			$output .= $prefix ." .btn-outline-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-primary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1966
-			$output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active, $prefix .btn-primary:not(:disabled):not(.disabled).active, .show>$prefix .btn-primary.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
1967
-			$output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-primary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
1968
-
1969
-
1970
-			// dropdown's
1971
-			$output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1972
-
1973
-
1974
-			// input states
1975
-			$output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} ";
1976
-
1977
-			// page link
1978
-			$output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1979
-
1980
-			return $output;
1981
-		}
1982
-
1983
-		/**
1984
-		 *
1985
-		 * @deprecated 0.1.76 Use css_overwrite()
1986
-		 *
1987
-		 * @param $color_code
1988
-		 * @param $compatibility
1989
-		 *
1990
-		 * @return string
1991
-		 */
1992
-		public static function css_secondary($color_code,$compatibility){;
1993
-			$color_code = sanitize_hex_color($color_code);
1994
-			if(!$color_code){return '';}
1995
-			/**
1996
-			 * c = color, b = background color, o = border-color, f = fill
1997
-			 */
1998
-			$selectors = array(
1999
-				'.btn-secondary' => array('b','o'),
2000
-				'.btn-secondary.disabled' => array('b','o'),
2001
-				'.btn-secondary:disabled' => array('b','o'),
2002
-				'.btn-outline-secondary' => array('c','o'),
2003
-				'.btn-outline-secondary:hover' => array('b','o'),
2004
-				'.btn-outline-secondary.disabled' => array('c'),
2005
-				'.btn-outline-secondary:disabled' => array('c'),
2006
-				'.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'),
2007
-				'.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'),
2008
-				'.btn-outline-secondary.dropdown-toggle' => array('b','o'),
2009
-				'.badge-secondary' => array('b'),
2010
-				'.alert-secondary' => array('b','o'),
2011
-				'.btn-link.btn-secondary' => array('c'),
2012
-			);
2013
-
2014
-			$important_selectors = array(
2015
-				'.bg-secondary' => array('b','f'),
2016
-				'.border-secondary' => array('o'),
2017
-				'.text-secondary' => array('c'),
2018
-			);
2019
-
2020
-			$color = array();
2021
-			$color_i = array();
2022
-			$background = array();
2023
-			$background_i = array();
2024
-			$border = array();
2025
-			$border_i = array();
2026
-			$fill = array();
2027
-			$fill_i = array();
2028
-
2029
-			$output = '';
2030
-
2031
-			// build rules into each type
2032
-			foreach($selectors as $selector => $types){
2033
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
2034
-				$types = array_combine($types,$types);
2035
-				if(isset($types['c'])){$color[] = $selector;}
2036
-				if(isset($types['b'])){$background[] = $selector;}
2037
-				if(isset($types['o'])){$border[] = $selector;}
2038
-				if(isset($types['f'])){$fill[] = $selector;}
2039
-			}
2040
-
2041
-			// build rules into each type
2042
-			foreach($important_selectors as $selector => $types){
2043
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
2044
-				$types = array_combine($types,$types);
2045
-				if(isset($types['c'])){$color_i[] = $selector;}
2046
-				if(isset($types['b'])){$background_i[] = $selector;}
2047
-				if(isset($types['o'])){$border_i[] = $selector;}
2048
-				if(isset($types['f'])){$fill_i[] = $selector;}
2049
-			}
2050
-
2051
-			// add any color rules
2052
-			if(!empty($color)){
2053
-				$output .= implode(",",$color) . "{color: $color_code;} ";
2054
-			}
2055
-			if(!empty($color_i)){
2056
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
2057
-			}
2058
-
2059
-			// add any background color rules
2060
-			if(!empty($background)){
2061
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
2062
-			}
2063
-			if(!empty($background_i)){
2064
-				$output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
2065
-			}
2066
-
2067
-			// add any border color rules
2068
-			if(!empty($border)){
2069
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
2070
-			}
2071
-			if(!empty($border_i)){
2072
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
2073
-			}
2074
-
2075
-			// add any fill color rules
2076
-			if(!empty($fill)){
2077
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
2078
-			}
2079
-			if(!empty($fill_i)){
2080
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
2081
-			}
2082
-
2083
-
2084
-			$prefix = $compatibility ? ".bsui " : "";
2085
-
2086
-			// darken
2087
-			$darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
2088
-			$darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
2089
-			$darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
2090
-
2091
-			// lighten
2092
-			$lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
2093
-
2094
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
2095
-			$op_25 = $color_code."40"; // 25% opacity
2096
-
2097
-
2098
-			// button states
2099
-			$output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
2100
-			$output .= $prefix ." .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-secondary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
2101
-			$output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active, $prefix .btn-secondary:not(:disabled):not(.disabled).active, .show>$prefix .btn-secondary.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
2102
-			$output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-secondary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
2103
-
2104
-
2105
-			return $output;
2106
-		}
2107
-
2108
-		/**
2109
-		 * Increases or decreases the brightness of a color by a percentage of the current brightness.
2110
-		 *
2111
-		 * @param   string  $hexCode        Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF`
2112
-		 * @param   float   $adjustPercent  A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker.
2113
-		 *
2114
-		 * @return  string
2115
-		 */
2116
-		public static function css_hex_lighten_darken($hexCode, $adjustPercent) {
2117
-			$hexCode = ltrim($hexCode, '#');
2118
-
2119
-			if ( strpos( $hexCode, 'rgba(' ) !== false || strpos( $hexCode, 'rgb(' ) !== false ) {
2120
-				return $hexCode;
2121
-			}
2122
-
2123
-			if (strlen($hexCode) == 3) {
2124
-				$hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2];
2125
-			}
2126
-
2127
-			$hexCode = array_map('hexdec', str_split($hexCode, 2));
2128
-
2129
-			foreach ($hexCode as & $color) {
2130
-				$adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color;
2131
-				$adjustAmount = ceil($adjustableLimit * $adjustPercent);
2132
-
2133
-				$color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT);
2134
-			}
2135
-
2136
-			return '#' . implode($hexCode);
2137
-		}
2138
-
2139
-		/**
2140
-		 * Check if we should display examples.
2141
-		 */
2142
-		public function maybe_show_examples(){
2143
-			if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){
2144
-				echo "<head>";
2145
-				wp_head();
2146
-				echo "</head>";
2147
-				echo "<body>";
2148
-				echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2149
-				echo "</body>";
2150
-				exit;
2151
-			}
2152
-		}
2153
-
2154
-		/**
2155
-		 * Get developer examples.
2156
-		 *
2157
-		 * @return string
2158
-		 */
2159
-		public function get_examples(){
2160
-			$output = '';
2161
-
2162
-
2163
-			// open form
2164
-			$output .= "<form class='p-5 m-5 border rounded'>";
2165
-
2166
-			// input example
2167
-			$output .= aui()->input(array(
2168
-				'type'  =>  'text',
2169
-				'id'    =>  'text-example',
2170
-				'name'    =>  'text-example',
2171
-				'placeholder'   => 'text placeholder',
2172
-				'title'   => 'Text input example',
2173
-				'value' =>  '',
2174
-				'required'  => false,
2175
-				'help_text' => 'help text',
2176
-				'label' => 'Text input example label'
2177
-			));
2178
-
2179
-			// input example
2180
-			$output .= aui()->input(array(
2181
-				'type'  =>  'url',
2182
-				'id'    =>  'text-example2',
2183
-				'name'    =>  'text-example',
2184
-				'placeholder'   => 'url placeholder',
2185
-				'title'   => 'Text input example',
2186
-				'value' =>  '',
2187
-				'required'  => false,
2188
-				'help_text' => 'help text',
2189
-				'label' => 'Text input example label'
2190
-			));
2191
-
2192
-			// checkbox example
2193
-			$output .= aui()->input(array(
2194
-				'type'  =>  'checkbox',
2195
-				'id'    =>  'checkbox-example',
2196
-				'name'    =>  'checkbox-example',
2197
-				'placeholder'   => 'checkbox-example',
2198
-				'title'   => 'Checkbox example',
2199
-				'value' =>  '1',
2200
-				'checked'   => true,
2201
-				'required'  => false,
2202
-				'help_text' => 'help text',
2203
-				'label' => 'Checkbox checked'
2204
-			));
2205
-
2206
-			// checkbox example
2207
-			$output .= aui()->input(array(
2208
-				'type'  =>  'checkbox',
2209
-				'id'    =>  'checkbox-example2',
2210
-				'name'    =>  'checkbox-example2',
2211
-				'placeholder'   => 'checkbox-example',
2212
-				'title'   => 'Checkbox example',
2213
-				'value' =>  '1',
2214
-				'checked'   => false,
2215
-				'required'  => false,
2216
-				'help_text' => 'help text',
2217
-				'label' => 'Checkbox un-checked'
2218
-			));
2219
-
2220
-			// switch example
2221
-			$output .= aui()->input(array(
2222
-				'type'  =>  'checkbox',
2223
-				'id'    =>  'switch-example',
2224
-				'name'    =>  'switch-example',
2225
-				'placeholder'   => 'checkbox-example',
2226
-				'title'   => 'Switch example',
2227
-				'value' =>  '1',
2228
-				'checked'   => true,
2229
-				'switch'    => true,
2230
-				'required'  => false,
2231
-				'help_text' => 'help text',
2232
-				'label' => 'Switch on'
2233
-			));
2234
-
2235
-			// switch example
2236
-			$output .= aui()->input(array(
2237
-				'type'  =>  'checkbox',
2238
-				'id'    =>  'switch-example2',
2239
-				'name'    =>  'switch-example2',
2240
-				'placeholder'   => 'checkbox-example',
2241
-				'title'   => 'Switch example',
2242
-				'value' =>  '1',
2243
-				'checked'   => false,
2244
-				'switch'    => true,
2245
-				'required'  => false,
2246
-				'help_text' => 'help text',
2247
-				'label' => 'Switch off'
2248
-			));
2249
-
2250
-			// close form
2251
-			$output .= "</form>";
2252
-
2253
-			return $output;
2254
-		}
2255
-
2256
-		/**
2257
-		 * Calendar params.
2258
-		 *
2259
-		 * @since 0.1.44
2260
-		 *
2261
-		 * @return array Calendar params.
2262
-		 */
2263
-		public static function calendar_params() {
2264
-			$params = array(
2265
-				'month_long_1' => __( 'January', 'ayecode-connect' ),
2266
-				'month_long_2' => __( 'February', 'ayecode-connect' ),
2267
-				'month_long_3' => __( 'March', 'ayecode-connect' ),
2268
-				'month_long_4' => __( 'April', 'ayecode-connect' ),
2269
-				'month_long_5' => __( 'May', 'ayecode-connect' ),
2270
-				'month_long_6' => __( 'June', 'ayecode-connect' ),
2271
-				'month_long_7' => __( 'July', 'ayecode-connect' ),
2272
-				'month_long_8' => __( 'August', 'ayecode-connect' ),
2273
-				'month_long_9' => __( 'September', 'ayecode-connect' ),
2274
-				'month_long_10' => __( 'October', 'ayecode-connect' ),
2275
-				'month_long_11' => __( 'November', 'ayecode-connect' ),
2276
-				'month_long_12' => __( 'December', 'ayecode-connect' ),
2277
-				'month_s_1' => _x( 'Jan', 'January abbreviation', 'ayecode-connect' ),
2278
-				'month_s_2' => _x( 'Feb', 'February abbreviation', 'ayecode-connect' ),
2279
-				'month_s_3' => _x( 'Mar', 'March abbreviation', 'ayecode-connect' ),
2280
-				'month_s_4' => _x( 'Apr', 'April abbreviation', 'ayecode-connect' ),
2281
-				'month_s_5' => _x( 'May', 'May abbreviation', 'ayecode-connect' ),
2282
-				'month_s_6' => _x( 'Jun', 'June abbreviation', 'ayecode-connect' ),
2283
-				'month_s_7' => _x( 'Jul', 'July abbreviation', 'ayecode-connect' ),
2284
-				'month_s_8' => _x( 'Aug', 'August abbreviation', 'ayecode-connect' ),
2285
-				'month_s_9' => _x( 'Sep', 'September abbreviation', 'ayecode-connect' ),
2286
-				'month_s_10' => _x( 'Oct', 'October abbreviation', 'ayecode-connect' ),
2287
-				'month_s_11' => _x( 'Nov', 'November abbreviation', 'ayecode-connect' ),
2288
-				'month_s_12' => _x( 'Dec', 'December abbreviation', 'ayecode-connect' ),
2289
-				'day_s1_1' => _x( 'S', 'Sunday initial', 'ayecode-connect' ),
2290
-				'day_s1_2' => _x( 'M', 'Monday initial', 'ayecode-connect' ),
2291
-				'day_s1_3' => _x( 'T', 'Tuesday initial', 'ayecode-connect' ),
2292
-				'day_s1_4' => _x( 'W', 'Wednesday initial', 'ayecode-connect' ),
2293
-				'day_s1_5' => _x( 'T', 'Friday initial', 'ayecode-connect' ),
2294
-				'day_s1_6' => _x( 'F', 'Thursday initial', 'ayecode-connect' ),
2295
-				'day_s1_7' => _x( 'S', 'Saturday initial', 'ayecode-connect' ),
2296
-				'day_s2_1' => __( 'Su', 'ayecode-connect' ),
2297
-				'day_s2_2' => __( 'Mo', 'ayecode-connect' ),
2298
-				'day_s2_3' => __( 'Tu', 'ayecode-connect' ),
2299
-				'day_s2_4' => __( 'We', 'ayecode-connect' ),
2300
-				'day_s2_5' => __( 'Th', 'ayecode-connect' ),
2301
-				'day_s2_6' => __( 'Fr', 'ayecode-connect' ),
2302
-				'day_s2_7' => __( 'Sa', 'ayecode-connect' ),
2303
-				'day_s3_1' => __( 'Sun', 'ayecode-connect' ),
2304
-				'day_s3_2' => __( 'Mon', 'ayecode-connect' ),
2305
-				'day_s3_3' => __( 'Tue', 'ayecode-connect' ),
2306
-				'day_s3_4' => __( 'Wed', 'ayecode-connect' ),
2307
-				'day_s3_5' => __( 'Thu', 'ayecode-connect' ),
2308
-				'day_s3_6' => __( 'Fri', 'ayecode-connect' ),
2309
-				'day_s3_7' => __( 'Sat', 'ayecode-connect' ),
2310
-				'day_s5_1' => __( 'Sunday', 'ayecode-connect' ),
2311
-				'day_s5_2' => __( 'Monday', 'ayecode-connect' ),
2312
-				'day_s5_3' => __( 'Tuesday', 'ayecode-connect' ),
2313
-				'day_s5_4' => __( 'Wednesday', 'ayecode-connect' ),
2314
-				'day_s5_5' => __( 'Thursday', 'ayecode-connect' ),
2315
-				'day_s5_6' => __( 'Friday', 'ayecode-connect' ),
2316
-				'day_s5_7' => __( 'Saturday', 'ayecode-connect' ),
2317
-				'am_lower' => __( 'am', 'ayecode-connect' ),
2318
-				'pm_lower' => __( 'pm', 'ayecode-connect' ),
2319
-				'am_upper' => __( 'AM', 'ayecode-connect' ),
2320
-				'pm_upper' => __( 'PM', 'ayecode-connect' ),
2321
-				'firstDayOfWeek' => (int) get_option( 'start_of_week' ),
2322
-				'time_24hr' => false,
2323
-				'year' => __( 'Year', 'ayecode-connect' ),
2324
-				'hour' => __( 'Hour', 'ayecode-connect' ),
2325
-				'minute' => __( 'Minute', 'ayecode-connect' ),
2326
-				'weekAbbreviation' => __( 'Wk', 'ayecode-connect' ),
2327
-				'rangeSeparator' => __( ' to ', 'ayecode-connect' ),
2328
-				'scrollTitle' => __( 'Scroll to increment', 'ayecode-connect' ),
2329
-				'toggleTitle' => __( 'Click to toggle', 'ayecode-connect' )
2330
-			);
2331
-
2332
-			return apply_filters( 'ayecode_ui_calendar_params', $params );
2333
-		}
2334
-
2335
-		/**
2336
-		 * Flatpickr calendar localize.
2337
-		 *
2338
-		 * @since 0.1.44
2339
-		 *
2340
-		 * @return string Calendar locale.
2341
-		 */
2342
-		public static function flatpickr_locale() {
2343
-			$params = self::calendar_params();
2344
-
2345
-			if ( is_string( $params ) ) {
2346
-				$params = html_entity_decode( $params, ENT_QUOTES, 'UTF-8' );
2347
-			} else {
2348
-				foreach ( (array) $params as $key => $value ) {
2349
-					if ( ! is_scalar( $value ) ) {
2350
-						continue;
2351
-					}
2352
-
2353
-					$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2354
-				}
2355
-			}
1866
+                '.nav-pills .nav-link.active' => array('b'),
1867
+                '.nav-pills .show>.nav-link' => array('b'),
1868
+                '.page-link' => array('c'),
1869
+                '.page-item.active .page-link' => array('b','o'),
1870
+                '.badge-primary' => array('b'),
1871
+                '.alert-primary' => array('b','o'),
1872
+                '.progress-bar' => array('b'),
1873
+                '.list-group-item.active' => array('b','o'),
1874
+                '.bg-primary' => array('b','f'),
1875
+                '.btn-link.btn-primary' => array('c'),
1876
+                '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1877
+            );
1878
+
1879
+            $important_selectors = array(
1880
+                '.bg-primary' => array('b','f'),
1881
+                '.border-primary' => array('o'),
1882
+                '.text-primary' => array('c'),
1883
+            );
1884
+
1885
+            $color = array();
1886
+            $color_i = array();
1887
+            $background = array();
1888
+            $background_i = array();
1889
+            $border = array();
1890
+            $border_i = array();
1891
+            $fill = array();
1892
+            $fill_i = array();
1893
+
1894
+            $output = '';
1895
+
1896
+            // build rules into each type
1897
+            foreach($selectors as $selector => $types){
1898
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
1899
+                $types = array_combine($types,$types);
1900
+                if(isset($types['c'])){$color[] = $selector;}
1901
+                if(isset($types['b'])){$background[] = $selector;}
1902
+                if(isset($types['o'])){$border[] = $selector;}
1903
+                if(isset($types['f'])){$fill[] = $selector;}
1904
+            }
1905
+
1906
+            // build rules into each type
1907
+            foreach($important_selectors as $selector => $types){
1908
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
1909
+                $types = array_combine($types,$types);
1910
+                if(isset($types['c'])){$color_i[] = $selector;}
1911
+                if(isset($types['b'])){$background_i[] = $selector;}
1912
+                if(isset($types['o'])){$border_i[] = $selector;}
1913
+                if(isset($types['f'])){$fill_i[] = $selector;}
1914
+            }
1915
+
1916
+            // add any color rules
1917
+            if(!empty($color)){
1918
+                $output .= implode(",",$color) . "{color: $color_code;} ";
1919
+            }
1920
+            if(!empty($color_i)){
1921
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1922
+            }
1923
+
1924
+            // add any background color rules
1925
+            if(!empty($background)){
1926
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
1927
+            }
1928
+            if(!empty($background_i)){
1929
+                $output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1930
+            }
1931
+
1932
+            // add any border color rules
1933
+            if(!empty($border)){
1934
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
1935
+            }
1936
+            if(!empty($border_i)){
1937
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1938
+            }
1939
+
1940
+            // add any fill color rules
1941
+            if(!empty($fill)){
1942
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
1943
+            }
1944
+            if(!empty($fill_i)){
1945
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1946
+            }
1947
+
1948
+
1949
+            $prefix = $compatibility ? ".bsui " : "";
1950
+
1951
+            // darken
1952
+            $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1953
+            $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1954
+            $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1955
+
1956
+            // lighten
1957
+            $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1958
+
1959
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
1960
+            $op_25 = $color_code."40"; // 25% opacity
1961
+
1962
+
1963
+            // button states
1964
+            $output .= $prefix ." .btn-primary:hover, $prefix .btn-primary:focus, $prefix .btn-primary.focus{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1965
+            $output .= $prefix ." .btn-outline-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-primary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1966
+            $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active, $prefix .btn-primary:not(:disabled):not(.disabled).active, .show>$prefix .btn-primary.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
1967
+            $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-primary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
2356 1968
 
2357
-			$day_s3 = array();
2358
-			$day_s5 = array();
2359 1969
 
2360
-			for ( $i = 1; $i <= 7; $i ++ ) {
2361
-				$day_s3[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2362
-				$day_s5[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2363
-			}
1970
+            // dropdown's
1971
+            $output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
2364 1972
 
2365
-			$month_s = array();
2366
-			$month_long = array();
2367 1973
 
2368
-			for ( $i = 1; $i <= 12; $i ++ ) {
2369
-				$month_s[] = addslashes( $params[ 'month_s_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2370
-				$month_long[] = addslashes( $params[ 'month_long_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2371
-			}
1974
+            // input states
1975
+            $output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} ";
2372 1976
 
2373
-			ob_start();
2374
-		if ( 0 ) { ?><script><?php } ?>
1977
+            // page link
1978
+            $output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1979
+
1980
+            return $output;
1981
+        }
1982
+
1983
+        /**
1984
+         *
1985
+         * @deprecated 0.1.76 Use css_overwrite()
1986
+         *
1987
+         * @param $color_code
1988
+         * @param $compatibility
1989
+         *
1990
+         * @return string
1991
+         */
1992
+        public static function css_secondary($color_code,$compatibility){;
1993
+            $color_code = sanitize_hex_color($color_code);
1994
+            if(!$color_code){return '';}
1995
+            /**
1996
+             * c = color, b = background color, o = border-color, f = fill
1997
+             */
1998
+            $selectors = array(
1999
+                '.btn-secondary' => array('b','o'),
2000
+                '.btn-secondary.disabled' => array('b','o'),
2001
+                '.btn-secondary:disabled' => array('b','o'),
2002
+                '.btn-outline-secondary' => array('c','o'),
2003
+                '.btn-outline-secondary:hover' => array('b','o'),
2004
+                '.btn-outline-secondary.disabled' => array('c'),
2005
+                '.btn-outline-secondary:disabled' => array('c'),
2006
+                '.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'),
2007
+                '.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'),
2008
+                '.btn-outline-secondary.dropdown-toggle' => array('b','o'),
2009
+                '.badge-secondary' => array('b'),
2010
+                '.alert-secondary' => array('b','o'),
2011
+                '.btn-link.btn-secondary' => array('c'),
2012
+            );
2013
+
2014
+            $important_selectors = array(
2015
+                '.bg-secondary' => array('b','f'),
2016
+                '.border-secondary' => array('o'),
2017
+                '.text-secondary' => array('c'),
2018
+            );
2019
+
2020
+            $color = array();
2021
+            $color_i = array();
2022
+            $background = array();
2023
+            $background_i = array();
2024
+            $border = array();
2025
+            $border_i = array();
2026
+            $fill = array();
2027
+            $fill_i = array();
2028
+
2029
+            $output = '';
2030
+
2031
+            // build rules into each type
2032
+            foreach($selectors as $selector => $types){
2033
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
2034
+                $types = array_combine($types,$types);
2035
+                if(isset($types['c'])){$color[] = $selector;}
2036
+                if(isset($types['b'])){$background[] = $selector;}
2037
+                if(isset($types['o'])){$border[] = $selector;}
2038
+                if(isset($types['f'])){$fill[] = $selector;}
2039
+            }
2040
+
2041
+            // build rules into each type
2042
+            foreach($important_selectors as $selector => $types){
2043
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
2044
+                $types = array_combine($types,$types);
2045
+                if(isset($types['c'])){$color_i[] = $selector;}
2046
+                if(isset($types['b'])){$background_i[] = $selector;}
2047
+                if(isset($types['o'])){$border_i[] = $selector;}
2048
+                if(isset($types['f'])){$fill_i[] = $selector;}
2049
+            }
2050
+
2051
+            // add any color rules
2052
+            if(!empty($color)){
2053
+                $output .= implode(",",$color) . "{color: $color_code;} ";
2054
+            }
2055
+            if(!empty($color_i)){
2056
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
2057
+            }
2058
+
2059
+            // add any background color rules
2060
+            if(!empty($background)){
2061
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
2062
+            }
2063
+            if(!empty($background_i)){
2064
+                $output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
2065
+            }
2066
+
2067
+            // add any border color rules
2068
+            if(!empty($border)){
2069
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
2070
+            }
2071
+            if(!empty($border_i)){
2072
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
2073
+            }
2074
+
2075
+            // add any fill color rules
2076
+            if(!empty($fill)){
2077
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
2078
+            }
2079
+            if(!empty($fill_i)){
2080
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
2081
+            }
2082
+
2083
+
2084
+            $prefix = $compatibility ? ".bsui " : "";
2085
+
2086
+            // darken
2087
+            $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
2088
+            $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
2089
+            $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
2090
+
2091
+            // lighten
2092
+            $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
2093
+
2094
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
2095
+            $op_25 = $color_code."40"; // 25% opacity
2096
+
2097
+
2098
+            // button states
2099
+            $output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
2100
+            $output .= $prefix ." .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-secondary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
2101
+            $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active, $prefix .btn-secondary:not(:disabled):not(.disabled).active, .show>$prefix .btn-secondary.dropdown-toggle{background-color: ".$darker_10.";    border-color: ".$darker_125.";} ";
2102
+            $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-secondary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} ";
2103
+
2104
+
2105
+            return $output;
2106
+        }
2107
+
2108
+        /**
2109
+         * Increases or decreases the brightness of a color by a percentage of the current brightness.
2110
+         *
2111
+         * @param   string  $hexCode        Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF`
2112
+         * @param   float   $adjustPercent  A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker.
2113
+         *
2114
+         * @return  string
2115
+         */
2116
+        public static function css_hex_lighten_darken($hexCode, $adjustPercent) {
2117
+            $hexCode = ltrim($hexCode, '#');
2118
+
2119
+            if ( strpos( $hexCode, 'rgba(' ) !== false || strpos( $hexCode, 'rgb(' ) !== false ) {
2120
+                return $hexCode;
2121
+            }
2122
+
2123
+            if (strlen($hexCode) == 3) {
2124
+                $hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2];
2125
+            }
2126
+
2127
+            $hexCode = array_map('hexdec', str_split($hexCode, 2));
2128
+
2129
+            foreach ($hexCode as & $color) {
2130
+                $adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color;
2131
+                $adjustAmount = ceil($adjustableLimit * $adjustPercent);
2132
+
2133
+                $color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT);
2134
+            }
2135
+
2136
+            return '#' . implode($hexCode);
2137
+        }
2138
+
2139
+        /**
2140
+         * Check if we should display examples.
2141
+         */
2142
+        public function maybe_show_examples(){
2143
+            if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){
2144
+                echo "<head>";
2145
+                wp_head();
2146
+                echo "</head>";
2147
+                echo "<body>";
2148
+                echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2149
+                echo "</body>";
2150
+                exit;
2151
+            }
2152
+        }
2153
+
2154
+        /**
2155
+         * Get developer examples.
2156
+         *
2157
+         * @return string
2158
+         */
2159
+        public function get_examples(){
2160
+            $output = '';
2161
+
2162
+
2163
+            // open form
2164
+            $output .= "<form class='p-5 m-5 border rounded'>";
2165
+
2166
+            // input example
2167
+            $output .= aui()->input(array(
2168
+                'type'  =>  'text',
2169
+                'id'    =>  'text-example',
2170
+                'name'    =>  'text-example',
2171
+                'placeholder'   => 'text placeholder',
2172
+                'title'   => 'Text input example',
2173
+                'value' =>  '',
2174
+                'required'  => false,
2175
+                'help_text' => 'help text',
2176
+                'label' => 'Text input example label'
2177
+            ));
2178
+
2179
+            // input example
2180
+            $output .= aui()->input(array(
2181
+                'type'  =>  'url',
2182
+                'id'    =>  'text-example2',
2183
+                'name'    =>  'text-example',
2184
+                'placeholder'   => 'url placeholder',
2185
+                'title'   => 'Text input example',
2186
+                'value' =>  '',
2187
+                'required'  => false,
2188
+                'help_text' => 'help text',
2189
+                'label' => 'Text input example label'
2190
+            ));
2191
+
2192
+            // checkbox example
2193
+            $output .= aui()->input(array(
2194
+                'type'  =>  'checkbox',
2195
+                'id'    =>  'checkbox-example',
2196
+                'name'    =>  'checkbox-example',
2197
+                'placeholder'   => 'checkbox-example',
2198
+                'title'   => 'Checkbox example',
2199
+                'value' =>  '1',
2200
+                'checked'   => true,
2201
+                'required'  => false,
2202
+                'help_text' => 'help text',
2203
+                'label' => 'Checkbox checked'
2204
+            ));
2205
+
2206
+            // checkbox example
2207
+            $output .= aui()->input(array(
2208
+                'type'  =>  'checkbox',
2209
+                'id'    =>  'checkbox-example2',
2210
+                'name'    =>  'checkbox-example2',
2211
+                'placeholder'   => 'checkbox-example',
2212
+                'title'   => 'Checkbox example',
2213
+                'value' =>  '1',
2214
+                'checked'   => false,
2215
+                'required'  => false,
2216
+                'help_text' => 'help text',
2217
+                'label' => 'Checkbox un-checked'
2218
+            ));
2219
+
2220
+            // switch example
2221
+            $output .= aui()->input(array(
2222
+                'type'  =>  'checkbox',
2223
+                'id'    =>  'switch-example',
2224
+                'name'    =>  'switch-example',
2225
+                'placeholder'   => 'checkbox-example',
2226
+                'title'   => 'Switch example',
2227
+                'value' =>  '1',
2228
+                'checked'   => true,
2229
+                'switch'    => true,
2230
+                'required'  => false,
2231
+                'help_text' => 'help text',
2232
+                'label' => 'Switch on'
2233
+            ));
2234
+
2235
+            // switch example
2236
+            $output .= aui()->input(array(
2237
+                'type'  =>  'checkbox',
2238
+                'id'    =>  'switch-example2',
2239
+                'name'    =>  'switch-example2',
2240
+                'placeholder'   => 'checkbox-example',
2241
+                'title'   => 'Switch example',
2242
+                'value' =>  '1',
2243
+                'checked'   => false,
2244
+                'switch'    => true,
2245
+                'required'  => false,
2246
+                'help_text' => 'help text',
2247
+                'label' => 'Switch off'
2248
+            ));
2249
+
2250
+            // close form
2251
+            $output .= "</form>";
2252
+
2253
+            return $output;
2254
+        }
2255
+
2256
+        /**
2257
+         * Calendar params.
2258
+         *
2259
+         * @since 0.1.44
2260
+         *
2261
+         * @return array Calendar params.
2262
+         */
2263
+        public static function calendar_params() {
2264
+            $params = array(
2265
+                'month_long_1' => __( 'January', 'ayecode-connect' ),
2266
+                'month_long_2' => __( 'February', 'ayecode-connect' ),
2267
+                'month_long_3' => __( 'March', 'ayecode-connect' ),
2268
+                'month_long_4' => __( 'April', 'ayecode-connect' ),
2269
+                'month_long_5' => __( 'May', 'ayecode-connect' ),
2270
+                'month_long_6' => __( 'June', 'ayecode-connect' ),
2271
+                'month_long_7' => __( 'July', 'ayecode-connect' ),
2272
+                'month_long_8' => __( 'August', 'ayecode-connect' ),
2273
+                'month_long_9' => __( 'September', 'ayecode-connect' ),
2274
+                'month_long_10' => __( 'October', 'ayecode-connect' ),
2275
+                'month_long_11' => __( 'November', 'ayecode-connect' ),
2276
+                'month_long_12' => __( 'December', 'ayecode-connect' ),
2277
+                'month_s_1' => _x( 'Jan', 'January abbreviation', 'ayecode-connect' ),
2278
+                'month_s_2' => _x( 'Feb', 'February abbreviation', 'ayecode-connect' ),
2279
+                'month_s_3' => _x( 'Mar', 'March abbreviation', 'ayecode-connect' ),
2280
+                'month_s_4' => _x( 'Apr', 'April abbreviation', 'ayecode-connect' ),
2281
+                'month_s_5' => _x( 'May', 'May abbreviation', 'ayecode-connect' ),
2282
+                'month_s_6' => _x( 'Jun', 'June abbreviation', 'ayecode-connect' ),
2283
+                'month_s_7' => _x( 'Jul', 'July abbreviation', 'ayecode-connect' ),
2284
+                'month_s_8' => _x( 'Aug', 'August abbreviation', 'ayecode-connect' ),
2285
+                'month_s_9' => _x( 'Sep', 'September abbreviation', 'ayecode-connect' ),
2286
+                'month_s_10' => _x( 'Oct', 'October abbreviation', 'ayecode-connect' ),
2287
+                'month_s_11' => _x( 'Nov', 'November abbreviation', 'ayecode-connect' ),
2288
+                'month_s_12' => _x( 'Dec', 'December abbreviation', 'ayecode-connect' ),
2289
+                'day_s1_1' => _x( 'S', 'Sunday initial', 'ayecode-connect' ),
2290
+                'day_s1_2' => _x( 'M', 'Monday initial', 'ayecode-connect' ),
2291
+                'day_s1_3' => _x( 'T', 'Tuesday initial', 'ayecode-connect' ),
2292
+                'day_s1_4' => _x( 'W', 'Wednesday initial', 'ayecode-connect' ),
2293
+                'day_s1_5' => _x( 'T', 'Friday initial', 'ayecode-connect' ),
2294
+                'day_s1_6' => _x( 'F', 'Thursday initial', 'ayecode-connect' ),
2295
+                'day_s1_7' => _x( 'S', 'Saturday initial', 'ayecode-connect' ),
2296
+                'day_s2_1' => __( 'Su', 'ayecode-connect' ),
2297
+                'day_s2_2' => __( 'Mo', 'ayecode-connect' ),
2298
+                'day_s2_3' => __( 'Tu', 'ayecode-connect' ),
2299
+                'day_s2_4' => __( 'We', 'ayecode-connect' ),
2300
+                'day_s2_5' => __( 'Th', 'ayecode-connect' ),
2301
+                'day_s2_6' => __( 'Fr', 'ayecode-connect' ),
2302
+                'day_s2_7' => __( 'Sa', 'ayecode-connect' ),
2303
+                'day_s3_1' => __( 'Sun', 'ayecode-connect' ),
2304
+                'day_s3_2' => __( 'Mon', 'ayecode-connect' ),
2305
+                'day_s3_3' => __( 'Tue', 'ayecode-connect' ),
2306
+                'day_s3_4' => __( 'Wed', 'ayecode-connect' ),
2307
+                'day_s3_5' => __( 'Thu', 'ayecode-connect' ),
2308
+                'day_s3_6' => __( 'Fri', 'ayecode-connect' ),
2309
+                'day_s3_7' => __( 'Sat', 'ayecode-connect' ),
2310
+                'day_s5_1' => __( 'Sunday', 'ayecode-connect' ),
2311
+                'day_s5_2' => __( 'Monday', 'ayecode-connect' ),
2312
+                'day_s5_3' => __( 'Tuesday', 'ayecode-connect' ),
2313
+                'day_s5_4' => __( 'Wednesday', 'ayecode-connect' ),
2314
+                'day_s5_5' => __( 'Thursday', 'ayecode-connect' ),
2315
+                'day_s5_6' => __( 'Friday', 'ayecode-connect' ),
2316
+                'day_s5_7' => __( 'Saturday', 'ayecode-connect' ),
2317
+                'am_lower' => __( 'am', 'ayecode-connect' ),
2318
+                'pm_lower' => __( 'pm', 'ayecode-connect' ),
2319
+                'am_upper' => __( 'AM', 'ayecode-connect' ),
2320
+                'pm_upper' => __( 'PM', 'ayecode-connect' ),
2321
+                'firstDayOfWeek' => (int) get_option( 'start_of_week' ),
2322
+                'time_24hr' => false,
2323
+                'year' => __( 'Year', 'ayecode-connect' ),
2324
+                'hour' => __( 'Hour', 'ayecode-connect' ),
2325
+                'minute' => __( 'Minute', 'ayecode-connect' ),
2326
+                'weekAbbreviation' => __( 'Wk', 'ayecode-connect' ),
2327
+                'rangeSeparator' => __( ' to ', 'ayecode-connect' ),
2328
+                'scrollTitle' => __( 'Scroll to increment', 'ayecode-connect' ),
2329
+                'toggleTitle' => __( 'Click to toggle', 'ayecode-connect' )
2330
+            );
2331
+
2332
+            return apply_filters( 'ayecode_ui_calendar_params', $params );
2333
+        }
2334
+
2335
+        /**
2336
+         * Flatpickr calendar localize.
2337
+         *
2338
+         * @since 0.1.44
2339
+         *
2340
+         * @return string Calendar locale.
2341
+         */
2342
+        public static function flatpickr_locale() {
2343
+            $params = self::calendar_params();
2344
+
2345
+            if ( is_string( $params ) ) {
2346
+                $params = html_entity_decode( $params, ENT_QUOTES, 'UTF-8' );
2347
+            } else {
2348
+                foreach ( (array) $params as $key => $value ) {
2349
+                    if ( ! is_scalar( $value ) ) {
2350
+                        continue;
2351
+                    }
2352
+
2353
+                    $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2354
+                }
2355
+            }
2356
+
2357
+            $day_s3 = array();
2358
+            $day_s5 = array();
2359
+
2360
+            for ( $i = 1; $i <= 7; $i ++ ) {
2361
+                $day_s3[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2362
+                $day_s5[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2363
+            }
2364
+
2365
+            $month_s = array();
2366
+            $month_long = array();
2367
+
2368
+            for ( $i = 1; $i <= 12; $i ++ ) {
2369
+                $month_s[] = addslashes( $params[ 'month_s_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2370
+                $month_long[] = addslashes( $params[ 'month_long_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
2371
+            }
2372
+
2373
+            ob_start();
2374
+        if ( 0 ) { ?><script><?php } ?>
2375 2375
                 {
2376 2376
                     weekdays: {
2377 2377
                         shorthand: ['<?php echo implode( "','", $day_s3 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'],
@@ -2410,189 +2410,189 @@  discard block
 block discarded – undo
2410 2410
                 }
2411 2411
 				<?php if ( 0 ) { ?></script><?php } ?>
2412 2412
 			<?php
2413
-			$locale = ob_get_clean();
2414
-
2415
-			return apply_filters( 'ayecode_ui_flatpickr_locale', trim( $locale ) );
2416
-		}
2417
-
2418
-		/**
2419
-		 * Select2 JS params.
2420
-		 *
2421
-		 * @since 0.1.44
2422
-		 *
2423
-		 * @return array Select2 JS params.
2424
-		 */
2425
-		public static function select2_params() {
2426
-			$params = array(
2427
-				'i18n_select_state_text'    => esc_attr__( 'Select an option&hellip;', 'ayecode-connect' ),
2428
-				'i18n_no_matches'           => _x( 'No matches found', 'enhanced select', 'ayecode-connect' ),
2429
-				'i18n_ajax_error'           => _x( 'Loading failed', 'enhanced select', 'ayecode-connect' ),
2430
-				'i18n_input_too_short_1'    => _x( 'Please enter 1 or more characters', 'enhanced select', 'ayecode-connect' ),
2431
-				'i18n_input_too_short_n'    => _x( 'Please enter %item% or more characters', 'enhanced select', 'ayecode-connect' ),
2432
-				'i18n_input_too_long_1'     => _x( 'Please delete 1 character', 'enhanced select', 'ayecode-connect' ),
2433
-				'i18n_input_too_long_n'     => _x( 'Please delete %item% characters', 'enhanced select', 'ayecode-connect' ),
2434
-				'i18n_selection_too_long_1' => _x( 'You can only select 1 item', 'enhanced select', 'ayecode-connect' ),
2435
-				'i18n_selection_too_long_n' => _x( 'You can only select %item% items', 'enhanced select', 'ayecode-connect' ),
2436
-				'i18n_load_more'            => _x( 'Loading more results&hellip;', 'enhanced select', 'ayecode-connect' ),
2437
-				'i18n_searching'            => _x( 'Searching&hellip;', 'enhanced select', 'ayecode-connect' )
2438
-			);
2439
-
2440
-			return apply_filters( 'ayecode_ui_select2_params', $params );
2441
-		}
2442
-
2443
-		/**
2444
-		 * Select2 JS localize.
2445
-		 *
2446
-		 * @since 0.1.44
2447
-		 *
2448
-		 * @return string Select2 JS locale.
2449
-		 */
2450
-		public static function select2_locale() {
2451
-			$params = self::select2_params();
2452
-
2453
-			foreach ( (array) $params as $key => $value ) {
2454
-				if ( ! is_scalar( $value ) ) {
2455
-					continue;
2456
-				}
2413
+            $locale = ob_get_clean();
2457 2414
 
2458
-				$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2459
-			}
2460
-
2461
-			$locale = json_encode( $params );
2462
-
2463
-			return apply_filters( 'ayecode_ui_select2_locale', trim( $locale ) );
2464
-		}
2465
-
2466
-		/**
2467
-		 * Time ago JS localize.
2468
-		 *
2469
-		 * @since 0.1.47
2470
-		 *
2471
-		 * @return string Time ago JS locale.
2472
-		 */
2473
-		public static function timeago_locale() {
2474
-			$params = array(
2475
-				'prefix_ago' => '',
2476
-				'suffix_ago' => ' ' . _x( 'ago', 'time ago', 'ayecode-connect' ),
2477
-				'prefix_after' => _x( 'after', 'time ago', 'ayecode-connect' ) . ' ',
2478
-				'suffix_after' => '',
2479
-				'seconds' => _x( 'less than a minute', 'time ago', 'ayecode-connect' ),
2480
-				'minute' => _x( 'about a minute', 'time ago', 'ayecode-connect' ),
2481
-				'minutes' => _x( '%d minutes', 'time ago', 'ayecode-connect' ),
2482
-				'hour' => _x( 'about an hour', 'time ago', 'ayecode-connect' ),
2483
-				'hours' => _x( 'about %d hours', 'time ago', 'ayecode-connect' ),
2484
-				'day' => _x( 'a day', 'time ago', 'ayecode-connect' ),
2485
-				'days' => _x( '%d days', 'time ago', 'ayecode-connect' ),
2486
-				'month' => _x( 'about a month', 'time ago', 'ayecode-connect' ),
2487
-				'months' => _x( '%d months', 'time ago', 'ayecode-connect' ),
2488
-				'year' => _x( 'about a year', 'time ago', 'ayecode-connect' ),
2489
-				'years' => _x( '%d years', 'time ago', 'ayecode-connect' ),
2490
-			);
2491
-
2492
-			$params = apply_filters( 'ayecode_ui_timeago_params', $params );
2493
-
2494
-			foreach ( (array) $params as $key => $value ) {
2495
-				if ( ! is_scalar( $value ) ) {
2496
-					continue;
2497
-				}
2415
+            return apply_filters( 'ayecode_ui_flatpickr_locale', trim( $locale ) );
2416
+        }
2417
+
2418
+        /**
2419
+         * Select2 JS params.
2420
+         *
2421
+         * @since 0.1.44
2422
+         *
2423
+         * @return array Select2 JS params.
2424
+         */
2425
+        public static function select2_params() {
2426
+            $params = array(
2427
+                'i18n_select_state_text'    => esc_attr__( 'Select an option&hellip;', 'ayecode-connect' ),
2428
+                'i18n_no_matches'           => _x( 'No matches found', 'enhanced select', 'ayecode-connect' ),
2429
+                'i18n_ajax_error'           => _x( 'Loading failed', 'enhanced select', 'ayecode-connect' ),
2430
+                'i18n_input_too_short_1'    => _x( 'Please enter 1 or more characters', 'enhanced select', 'ayecode-connect' ),
2431
+                'i18n_input_too_short_n'    => _x( 'Please enter %item% or more characters', 'enhanced select', 'ayecode-connect' ),
2432
+                'i18n_input_too_long_1'     => _x( 'Please delete 1 character', 'enhanced select', 'ayecode-connect' ),
2433
+                'i18n_input_too_long_n'     => _x( 'Please delete %item% characters', 'enhanced select', 'ayecode-connect' ),
2434
+                'i18n_selection_too_long_1' => _x( 'You can only select 1 item', 'enhanced select', 'ayecode-connect' ),
2435
+                'i18n_selection_too_long_n' => _x( 'You can only select %item% items', 'enhanced select', 'ayecode-connect' ),
2436
+                'i18n_load_more'            => _x( 'Loading more results&hellip;', 'enhanced select', 'ayecode-connect' ),
2437
+                'i18n_searching'            => _x( 'Searching&hellip;', 'enhanced select', 'ayecode-connect' )
2438
+            );
2439
+
2440
+            return apply_filters( 'ayecode_ui_select2_params', $params );
2441
+        }
2442
+
2443
+        /**
2444
+         * Select2 JS localize.
2445
+         *
2446
+         * @since 0.1.44
2447
+         *
2448
+         * @return string Select2 JS locale.
2449
+         */
2450
+        public static function select2_locale() {
2451
+            $params = self::select2_params();
2452
+
2453
+            foreach ( (array) $params as $key => $value ) {
2454
+                if ( ! is_scalar( $value ) ) {
2455
+                    continue;
2456
+                }
2457
+
2458
+                $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2459
+            }
2460
+
2461
+            $locale = json_encode( $params );
2462
+
2463
+            return apply_filters( 'ayecode_ui_select2_locale', trim( $locale ) );
2464
+        }
2465
+
2466
+        /**
2467
+         * Time ago JS localize.
2468
+         *
2469
+         * @since 0.1.47
2470
+         *
2471
+         * @return string Time ago JS locale.
2472
+         */
2473
+        public static function timeago_locale() {
2474
+            $params = array(
2475
+                'prefix_ago' => '',
2476
+                'suffix_ago' => ' ' . _x( 'ago', 'time ago', 'ayecode-connect' ),
2477
+                'prefix_after' => _x( 'after', 'time ago', 'ayecode-connect' ) . ' ',
2478
+                'suffix_after' => '',
2479
+                'seconds' => _x( 'less than a minute', 'time ago', 'ayecode-connect' ),
2480
+                'minute' => _x( 'about a minute', 'time ago', 'ayecode-connect' ),
2481
+                'minutes' => _x( '%d minutes', 'time ago', 'ayecode-connect' ),
2482
+                'hour' => _x( 'about an hour', 'time ago', 'ayecode-connect' ),
2483
+                'hours' => _x( 'about %d hours', 'time ago', 'ayecode-connect' ),
2484
+                'day' => _x( 'a day', 'time ago', 'ayecode-connect' ),
2485
+                'days' => _x( '%d days', 'time ago', 'ayecode-connect' ),
2486
+                'month' => _x( 'about a month', 'time ago', 'ayecode-connect' ),
2487
+                'months' => _x( '%d months', 'time ago', 'ayecode-connect' ),
2488
+                'year' => _x( 'about a year', 'time ago', 'ayecode-connect' ),
2489
+                'years' => _x( '%d years', 'time ago', 'ayecode-connect' ),
2490
+            );
2491
+
2492
+            $params = apply_filters( 'ayecode_ui_timeago_params', $params );
2493
+
2494
+            foreach ( (array) $params as $key => $value ) {
2495
+                if ( ! is_scalar( $value ) ) {
2496
+                    continue;
2497
+                }
2498
+
2499
+                $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2500
+            }
2498 2501
 
2499
-				$params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' );
2500
-			}
2501
-
2502
-			$locale = json_encode( $params );
2503
-
2504
-			return apply_filters( 'ayecode_ui_timeago_locale', trim( $locale ) );
2505
-		}
2506
-
2507
-		/**
2508
-		 * JavaScript Minifier
2509
-		 *
2510
-		 * @param $input
2511
-		 *
2512
-		 * @return mixed
2513
-		 */
2514
-		public static function minify_js($input) {
2515
-			if(trim($input) === "") return $input;
2516
-			return preg_replace(
2517
-				array(
2518
-					// Remove comment(s)
2519
-					'#\s*("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')\s*|\s*\/\*(?!\!|@cc_on)(?>[\s\S]*?\*\/)\s*|\s*(?<![\:\=])\/\/.*(?=[\n\r]|$)|^\s*|\s*$#',
2520
-					// Remove white-space(s) outside the string and regex
2521
-					'#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/)|\/(?!\/)[^\n\r]*?\/(?=[\s.,;]|[gimuy]|$))|\s*([!%&*\(\)\-=+\[\]\{\}|;:,.<>?\/])\s*#s',
2522
-					// Remove the last semicolon
2523
-					'#;+\}#',
2524
-					// Minify object attribute(s) except JSON attribute(s). From `{'foo':'bar'}` to `{foo:'bar'}`
2525
-					'#([\{,])([\'])(\d+|[a-z_][a-z0-9_]*)\2(?=\:)#i',
2526
-					// --ibid. From `foo['bar']` to `foo.bar`
2527
-					'#([a-z0-9_\)\]])\[([\'"])([a-z_][a-z0-9_]*)\2\]#i'
2528
-				),
2529
-				array(
2530
-					'$1',
2531
-					'$1$2',
2532
-					'}',
2533
-					'$1$3',
2534
-					'$1.$3'
2535
-				),
2536
-				$input);
2537
-		}
2538
-
2539
-		/**
2540
-		 * Minify CSS
2541
-		 *
2542
-		 * @param $input
2543
-		 *
2544
-		 * @return mixed
2545
-		 */
2546
-		public static function minify_css($input) {
2547
-			if(trim($input) === "") return $input;
2548
-			return preg_replace(
2549
-				array(
2550
-					// Remove comment(s)
2551
-					'#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')|\/\*(?!\!)(?>.*?\*\/)|^\s*|\s*$#s',
2552
-					// Remove unused white-space(s)
2553
-					'#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/))|\s*+;\s*+(})\s*+|\s*+([*$~^|]?+=|[{};,>~]|\s(?![0-9\.])|!important\b)\s*+|([[(:])\s++|\s++([])])|\s++(:)\s*+(?!(?>[^{}"\']++|"(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')*+{)|^\s++|\s++\z|(\s)\s+#si',
2554
-					// Replace `0(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)` with `0`
2555
-					'#(?<=[\s:])(0)(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)#si',
2556
-					// Replace `:0 0 0 0` with `:0`
2557
-					'#:(0\s+0|0\s+0\s+0\s+0)(?=[;\}]|\!important)#i',
2558
-					// Replace `background-position:0` with `background-position:0 0`
2559
-					'#(background-position):0(?=[;\}])#si',
2560
-					// Replace `0.6` with `.6`, but only when preceded by `:`, `,`, `-` or a white-space
2561
-					'#(?<=[\s:,\-])0+\.(\d+)#s',
2562
-					// Minify string value
2563
-					'#(\/\*(?>.*?\*\/))|(?<!content\:)([\'"])([a-z_][a-z0-9\-_]*?)\2(?=[\s\{\}\];,])#si',
2564
-					'#(\/\*(?>.*?\*\/))|(\burl\()([\'"])([^\s]+?)\3(\))#si',
2565
-					// Minify HEX color code
2566
-					'#(?<=[\s:,\-]\#)([a-f0-6]+)\1([a-f0-6]+)\2([a-f0-6]+)\3#i',
2567
-					// Replace `(border|outline):none` with `(border|outline):0`
2568
-					'#(?<=[\{;])(border|outline):none(?=[;\}\!])#',
2569
-					// Remove empty selector(s)
2570
-					'#(\/\*(?>.*?\*\/))|(^|[\{\}])(?:[^\s\{\}]+)\{\}#s'
2571
-				),
2572
-				array(
2573
-					'$1',
2574
-					'$1$2$3$4$5$6$7',
2575
-					'$1',
2576
-					':0',
2577
-					'$1:0 0',
2578
-					'.$1',
2579
-					'$1$3',
2580
-					'$1$2$4$5',
2581
-					'$1$2$3',
2582
-					'$1:0',
2583
-					'$1$2'
2584
-				),
2585
-				$input);
2586
-		}
2587
-
2588
-		/**
2589
-		 * Get the conditional fields JavaScript.
2590
-		 *
2591
-		 * @return mixed
2592
-		 */
2593
-		public function conditional_fields_js() {
2594
-			ob_start();
2595
-			?>
2502
+            $locale = json_encode( $params );
2503
+
2504
+            return apply_filters( 'ayecode_ui_timeago_locale', trim( $locale ) );
2505
+        }
2506
+
2507
+        /**
2508
+         * JavaScript Minifier
2509
+         *
2510
+         * @param $input
2511
+         *
2512
+         * @return mixed
2513
+         */
2514
+        public static function minify_js($input) {
2515
+            if(trim($input) === "") return $input;
2516
+            return preg_replace(
2517
+                array(
2518
+                    // Remove comment(s)
2519
+                    '#\s*("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')\s*|\s*\/\*(?!\!|@cc_on)(?>[\s\S]*?\*\/)\s*|\s*(?<![\:\=])\/\/.*(?=[\n\r]|$)|^\s*|\s*$#',
2520
+                    // Remove white-space(s) outside the string and regex
2521
+                    '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/)|\/(?!\/)[^\n\r]*?\/(?=[\s.,;]|[gimuy]|$))|\s*([!%&*\(\)\-=+\[\]\{\}|;:,.<>?\/])\s*#s',
2522
+                    // Remove the last semicolon
2523
+                    '#;+\}#',
2524
+                    // Minify object attribute(s) except JSON attribute(s). From `{'foo':'bar'}` to `{foo:'bar'}`
2525
+                    '#([\{,])([\'])(\d+|[a-z_][a-z0-9_]*)\2(?=\:)#i',
2526
+                    // --ibid. From `foo['bar']` to `foo.bar`
2527
+                    '#([a-z0-9_\)\]])\[([\'"])([a-z_][a-z0-9_]*)\2\]#i'
2528
+                ),
2529
+                array(
2530
+                    '$1',
2531
+                    '$1$2',
2532
+                    '}',
2533
+                    '$1$3',
2534
+                    '$1.$3'
2535
+                ),
2536
+                $input);
2537
+        }
2538
+
2539
+        /**
2540
+         * Minify CSS
2541
+         *
2542
+         * @param $input
2543
+         *
2544
+         * @return mixed
2545
+         */
2546
+        public static function minify_css($input) {
2547
+            if(trim($input) === "") return $input;
2548
+            return preg_replace(
2549
+                array(
2550
+                    // Remove comment(s)
2551
+                    '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')|\/\*(?!\!)(?>.*?\*\/)|^\s*|\s*$#s',
2552
+                    // Remove unused white-space(s)
2553
+                    '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/))|\s*+;\s*+(})\s*+|\s*+([*$~^|]?+=|[{};,>~]|\s(?![0-9\.])|!important\b)\s*+|([[(:])\s++|\s++([])])|\s++(:)\s*+(?!(?>[^{}"\']++|"(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')*+{)|^\s++|\s++\z|(\s)\s+#si',
2554
+                    // Replace `0(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)` with `0`
2555
+                    '#(?<=[\s:])(0)(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)#si',
2556
+                    // Replace `:0 0 0 0` with `:0`
2557
+                    '#:(0\s+0|0\s+0\s+0\s+0)(?=[;\}]|\!important)#i',
2558
+                    // Replace `background-position:0` with `background-position:0 0`
2559
+                    '#(background-position):0(?=[;\}])#si',
2560
+                    // Replace `0.6` with `.6`, but only when preceded by `:`, `,`, `-` or a white-space
2561
+                    '#(?<=[\s:,\-])0+\.(\d+)#s',
2562
+                    // Minify string value
2563
+                    '#(\/\*(?>.*?\*\/))|(?<!content\:)([\'"])([a-z_][a-z0-9\-_]*?)\2(?=[\s\{\}\];,])#si',
2564
+                    '#(\/\*(?>.*?\*\/))|(\burl\()([\'"])([^\s]+?)\3(\))#si',
2565
+                    // Minify HEX color code
2566
+                    '#(?<=[\s:,\-]\#)([a-f0-6]+)\1([a-f0-6]+)\2([a-f0-6]+)\3#i',
2567
+                    // Replace `(border|outline):none` with `(border|outline):0`
2568
+                    '#(?<=[\{;])(border|outline):none(?=[;\}\!])#',
2569
+                    // Remove empty selector(s)
2570
+                    '#(\/\*(?>.*?\*\/))|(^|[\{\}])(?:[^\s\{\}]+)\{\}#s'
2571
+                ),
2572
+                array(
2573
+                    '$1',
2574
+                    '$1$2$3$4$5$6$7',
2575
+                    '$1',
2576
+                    ':0',
2577
+                    '$1:0 0',
2578
+                    '.$1',
2579
+                    '$1$3',
2580
+                    '$1$2$4$5',
2581
+                    '$1$2$3',
2582
+                    '$1:0',
2583
+                    '$1$2'
2584
+                ),
2585
+                $input);
2586
+        }
2587
+
2588
+        /**
2589
+         * Get the conditional fields JavaScript.
2590
+         *
2591
+         * @return mixed
2592
+         */
2593
+        public function conditional_fields_js() {
2594
+            ob_start();
2595
+            ?>
2596 2596
             <script>
2597 2597
                 /**
2598 2598
                  * Conditional Fields
@@ -3124,14 +3124,14 @@  discard block
 block discarded – undo
3124 3124
 				<?php do_action( 'aui_conditional_fields_js', $this ); ?>
3125 3125
             </script>
3126 3126
 			<?php
3127
-			$output = ob_get_clean();
3127
+            $output = ob_get_clean();
3128 3128
 
3129
-			return str_replace( array( '<script>', '</script>' ), '', self::minify_js( $output ) );
3130
-		}
3131
-	}
3129
+            return str_replace( array( '<script>', '</script>' ), '', self::minify_js( $output ) );
3130
+        }
3131
+    }
3132 3132
 
3133
-	/**
3134
-	 * Run the class if found.
3135
-	 */
3136
-	AyeCode_UI_Settings::instance();
3133
+    /**
3134
+     * Run the class if found.
3135
+     */
3136
+    AyeCode_UI_Settings::instance();
3137 3137
 }
3138 3138
\ No newline at end of file
Please login to merge, or discard this patch.
includes/class-getpaid-post-types.php 2 patches
Indentation   +295 added lines, -295 removed lines patch added patch discarded remove patch
@@ -15,321 +15,321 @@
 block discarded – undo
15 15
 class GetPaid_Post_Types {
16 16
 
17 17
     /**
18
-	 * Hook in methods.
19
-	 */
20
-	public function __construct() {
21
-		add_action( 'init', array( __CLASS__, 'register_post_types' ), 1 );
22
-		add_action( 'init', array( __CLASS__, 'register_post_status' ), 4 );
23
-		add_action( 'getpaid_flush_rewrite_rules', array( __CLASS__, 'flush_rewrite_rules' ) );
24
-		add_action( 'getpaid_after_register_post_types', array( __CLASS__, 'maybe_flush_rewrite_rules' ) );
25
-	}
18
+     * Hook in methods.
19
+     */
20
+    public function __construct() {
21
+        add_action( 'init', array( __CLASS__, 'register_post_types' ), 1 );
22
+        add_action( 'init', array( __CLASS__, 'register_post_status' ), 4 );
23
+        add_action( 'getpaid_flush_rewrite_rules', array( __CLASS__, 'flush_rewrite_rules' ) );
24
+        add_action( 'getpaid_after_register_post_types', array( __CLASS__, 'maybe_flush_rewrite_rules' ) );
25
+    }
26 26
 
27
-	/**
28
-	 * Register core post types.
29
-	 */
30
-	public static function register_post_types() {
27
+    /**
28
+     * Register core post types.
29
+     */
30
+    public static function register_post_types() {
31 31
 
32
-		if ( ! is_blog_installed() || post_type_exists( 'wpi_item' ) ) {
33
-			return;
34
-		}
32
+        if ( ! is_blog_installed() || post_type_exists( 'wpi_item' ) ) {
33
+            return;
34
+        }
35 35
 
36
-		$capabilities = wpinv_current_user_can_manage_invoicing();
36
+        $capabilities = wpinv_current_user_can_manage_invoicing();
37 37
 
38
-		// Fires before registering post types.
39
-		do_action( 'getpaid_register_post_types' );
38
+        // Fires before registering post types.
39
+        do_action( 'getpaid_register_post_types' );
40 40
 
41
-		// Register item post type.
42
-		register_post_type(
43
-			'wpi_item',
44
-			apply_filters(
45
-				'wpinv_register_post_type_invoice_item',
46
-				array(
47
-					'labels'            => array(
48
-						'name'               => _x( 'Items', 'post type general name', 'invoicing' ),
49
-						'singular_name'      => _x( 'Item', 'post type singular name', 'invoicing' ),
50
-						'menu_name'          => _x( 'Items', 'admin menu', 'invoicing' ),
51
-						'name_admin_bar'     => _x( 'Item', 'add new on admin bar', 'invoicing' ),
52
-						'add_new'            => _x( 'Add New', 'Item', 'invoicing' ),
53
-						'add_new_item'       => __( 'Add New Item', 'invoicing' ),
54
-						'new_item'           => __( 'New Item', 'invoicing' ),
55
-						'edit_item'          => __( 'Edit Item', 'invoicing' ),
56
-						'view_item'          => __( 'View Item', 'invoicing' ),
57
-						'all_items'          => __( 'Items', 'invoicing' ),
58
-						'search_items'       => __( 'Search items', 'invoicing' ),
59
-						'parent_item_colon'  => __( 'Parent item:', 'invoicing' ),
60
-						'not_found'          => __( 'No items found.', 'invoicing' ),
61
-						'not_found_in_trash' => __( 'No items found in trash.', 'invoicing' ),
62
-					),
63
-					'description'       => __( 'This is where you can add new invoice items.', 'invoicing' ),
64
-					'public'            => false,
65
-					'has_archive'       => false,
66
-					'_builtin'          => false,
67
-					'show_ui'           => $capabilities ? true : false,
68
-					'show_in_menu'      => $capabilities ? 'wpinv' : false,
69
-					'show_in_nav_menus' => false,
70
-					'supports'          => array( 'title', 'excerpt', 'thumbnail' ),
71
-					'rewrite'           => false,
72
-					'query_var'         => false,
73
-					'map_meta_cap'      => true,
74
-					'show_in_admin_bar' => $capabilities ? true : false,
75
-					'can_export'        => $capabilities ? true : false
76
-				)
77
-			)
78
-		);
41
+        // Register item post type.
42
+        register_post_type(
43
+            'wpi_item',
44
+            apply_filters(
45
+                'wpinv_register_post_type_invoice_item',
46
+                array(
47
+                    'labels'            => array(
48
+                        'name'               => _x( 'Items', 'post type general name', 'invoicing' ),
49
+                        'singular_name'      => _x( 'Item', 'post type singular name', 'invoicing' ),
50
+                        'menu_name'          => _x( 'Items', 'admin menu', 'invoicing' ),
51
+                        'name_admin_bar'     => _x( 'Item', 'add new on admin bar', 'invoicing' ),
52
+                        'add_new'            => _x( 'Add New', 'Item', 'invoicing' ),
53
+                        'add_new_item'       => __( 'Add New Item', 'invoicing' ),
54
+                        'new_item'           => __( 'New Item', 'invoicing' ),
55
+                        'edit_item'          => __( 'Edit Item', 'invoicing' ),
56
+                        'view_item'          => __( 'View Item', 'invoicing' ),
57
+                        'all_items'          => __( 'Items', 'invoicing' ),
58
+                        'search_items'       => __( 'Search items', 'invoicing' ),
59
+                        'parent_item_colon'  => __( 'Parent item:', 'invoicing' ),
60
+                        'not_found'          => __( 'No items found.', 'invoicing' ),
61
+                        'not_found_in_trash' => __( 'No items found in trash.', 'invoicing' ),
62
+                    ),
63
+                    'description'       => __( 'This is where you can add new invoice items.', 'invoicing' ),
64
+                    'public'            => false,
65
+                    'has_archive'       => false,
66
+                    '_builtin'          => false,
67
+                    'show_ui'           => $capabilities ? true : false,
68
+                    'show_in_menu'      => $capabilities ? 'wpinv' : false,
69
+                    'show_in_nav_menus' => false,
70
+                    'supports'          => array( 'title', 'excerpt', 'thumbnail' ),
71
+                    'rewrite'           => false,
72
+                    'query_var'         => false,
73
+                    'map_meta_cap'      => true,
74
+                    'show_in_admin_bar' => $capabilities ? true : false,
75
+                    'can_export'        => $capabilities ? true : false
76
+                )
77
+            )
78
+        );
79 79
 
80
-		// Register payment form post type.
81
-		register_post_type(
82
-			'wpi_payment_form',
83
-			apply_filters(
84
-				'wpinv_register_post_type_payment_form',
85
-				array(
86
-					'labels'            => array(
87
-						'name'               => _x( 'Payment Forms', 'post type general name', 'invoicing' ),
88
-						'singular_name'      => _x( 'Payment Form', 'post type singular name', 'invoicing' ),
89
-						'menu_name'          => _x( 'Payment Forms', 'admin menu', 'invoicing' ),
90
-						'name_admin_bar'     => _x( 'Payment Form', 'add new on admin bar', 'invoicing' ),
91
-						'add_new'            => _x( 'Add New', 'Payment Form', 'invoicing' ),
92
-						'add_new_item'       => __( 'Add New Payment Form', 'invoicing' ),
93
-						'new_item'           => __( 'New Payment Form', 'invoicing' ),
94
-						'edit_item'          => __( 'Edit Payment Form', 'invoicing' ),
95
-						'view_item'          => __( 'View Payment Form', 'invoicing' ),
96
-						'all_items'          => __( 'Payment Forms', 'invoicing' ),
97
-						'search_items'       => __( 'Search Payment Forms', 'invoicing' ),
98
-						'parent_item_colon'  => __( 'Parent Payment Forms:', 'invoicing' ),
99
-						'not_found'          => __( 'No payment forms found.', 'invoicing' ),
100
-						'not_found_in_trash' => __( 'No payment forms found in trash.', 'invoicing' ),
101
-					),
102
-					'description'       => __( 'Add new payment forms.', 'invoicing' ),
103
-					'public'            => false,
104
-					'show_ui'           => $capabilities ? true : false,
105
-					'show_in_menu'      => $capabilities ? 'wpinv' : false,
106
-					'show_in_nav_menus' => false,
107
-					'query_var'         => false,
108
-					'rewrite'           => true,
109
-					'map_meta_cap'      => true,
110
-					'has_archive'       => false,
111
-					'hierarchical'      => false,
112
-					'menu_position'     => null,
113
-					'supports'          => array( 'title' ),
114
-					'menu_icon'         => 'dashicons-media-form',
115
-				)
116
-			)
117
-		);
80
+        // Register payment form post type.
81
+        register_post_type(
82
+            'wpi_payment_form',
83
+            apply_filters(
84
+                'wpinv_register_post_type_payment_form',
85
+                array(
86
+                    'labels'            => array(
87
+                        'name'               => _x( 'Payment Forms', 'post type general name', 'invoicing' ),
88
+                        'singular_name'      => _x( 'Payment Form', 'post type singular name', 'invoicing' ),
89
+                        'menu_name'          => _x( 'Payment Forms', 'admin menu', 'invoicing' ),
90
+                        'name_admin_bar'     => _x( 'Payment Form', 'add new on admin bar', 'invoicing' ),
91
+                        'add_new'            => _x( 'Add New', 'Payment Form', 'invoicing' ),
92
+                        'add_new_item'       => __( 'Add New Payment Form', 'invoicing' ),
93
+                        'new_item'           => __( 'New Payment Form', 'invoicing' ),
94
+                        'edit_item'          => __( 'Edit Payment Form', 'invoicing' ),
95
+                        'view_item'          => __( 'View Payment Form', 'invoicing' ),
96
+                        'all_items'          => __( 'Payment Forms', 'invoicing' ),
97
+                        'search_items'       => __( 'Search Payment Forms', 'invoicing' ),
98
+                        'parent_item_colon'  => __( 'Parent Payment Forms:', 'invoicing' ),
99
+                        'not_found'          => __( 'No payment forms found.', 'invoicing' ),
100
+                        'not_found_in_trash' => __( 'No payment forms found in trash.', 'invoicing' ),
101
+                    ),
102
+                    'description'       => __( 'Add new payment forms.', 'invoicing' ),
103
+                    'public'            => false,
104
+                    'show_ui'           => $capabilities ? true : false,
105
+                    'show_in_menu'      => $capabilities ? 'wpinv' : false,
106
+                    'show_in_nav_menus' => false,
107
+                    'query_var'         => false,
108
+                    'rewrite'           => true,
109
+                    'map_meta_cap'      => true,
110
+                    'has_archive'       => false,
111
+                    'hierarchical'      => false,
112
+                    'menu_position'     => null,
113
+                    'supports'          => array( 'title' ),
114
+                    'menu_icon'         => 'dashicons-media-form',
115
+                )
116
+            )
117
+        );
118 118
 
119
-		// Register invoice post type.
120
-		register_post_type(
121
-			'wpi_invoice',
122
-			apply_filters(
123
-				'wpinv_register_post_type_invoice',
124
-				array(
125
-					'labels'              => array(
126
-						'name'                  => __( 'Invoices', 'invoicing' ),
127
-						'singular_name'         => __( 'Invoice', 'invoicing' ),
128
-						'all_items'             => __( 'Invoices', 'invoicing' ),
129
-						'menu_name'             => _x( 'Invoices', 'Admin menu name', 'invoicing' ),
130
-						'add_new'               => __( 'Add New', 'invoicing' ),
131
-						'add_new_item'          => __( 'Add new invoice', 'invoicing' ),
132
-						'edit'                  => __( 'Edit', 'invoicing' ),
133
-						'edit_item'             => __( 'Edit invoice', 'invoicing' ),
134
-						'new_item'              => __( 'New invoice', 'invoicing' ),
135
-						'view_item'             => __( 'View invoice', 'invoicing' ),
136
-						'view_items'            => __( 'View Invoices', 'invoicing' ),
137
-						'search_items'          => __( 'Search invoices', 'invoicing' ),
138
-						'not_found'             => __( 'No invoices found', 'invoicing' ),
139
-						'not_found_in_trash'    => __( 'No invoices found in trash', 'invoicing' ),
140
-						'parent'                => __( 'Parent invoice', 'invoicing' ),
141
-						'featured_image'        => __( 'Invoice image', 'invoicing' ),
142
-						'set_featured_image'    => __( 'Set invoice image', 'invoicing' ),
143
-						'remove_featured_image' => __( 'Remove invoice image', 'invoicing' ),
144
-						'use_featured_image'    => __( 'Use as invoice image', 'invoicing' ),
145
-						'insert_into_item'      => __( 'Insert into invoice', 'invoicing' ),
146
-						'uploaded_to_this_item' => __( 'Uploaded to this invoice', 'invoicing' ),
147
-						'filter_items_list'     => __( 'Filter invoices', 'invoicing' ),
148
-						'items_list_navigation' => __( 'Invoices navigation', 'invoicing' ),
149
-						'items_list'            => __( 'Invoices list', 'invoicing' ),
150
-					),
151
-					'description'         => __( 'This is where invoices are stored.', 'invoicing' ),
152
-					'public'              => true,
153
-					'has_archive'         => false,
154
-					'publicly_queryable'  => true,
155
-        			'exclude_from_search' => true,
156
-        			'show_ui'             => $capabilities ? true : false,
157
-					'show_in_menu'        => $capabilities ? 'wpinv' : false,
158
-					'show_in_nav_menus'   => false,
159
-					'supports'            => array( 'title', 'author', 'excerpt' ),
160
-					'rewrite'             => array(
161
-						'slug'       => 'invoice',
162
-						'with_front' => false,
163
-					),
164
-					'query_var'           => false,
165
-					'map_meta_cap'        => true,
166
-					'show_in_admin_bar'   => $capabilities ? true : false,
167
-					'can_export'          => $capabilities ? true : false,
168
-					'hierarchical'        => false,
169
-					'menu_position'       => null,
170
-					'menu_icon'           => 'dashicons-media-spreadsheet',
171
-				)
172
-			)
173
-		);
119
+        // Register invoice post type.
120
+        register_post_type(
121
+            'wpi_invoice',
122
+            apply_filters(
123
+                'wpinv_register_post_type_invoice',
124
+                array(
125
+                    'labels'              => array(
126
+                        'name'                  => __( 'Invoices', 'invoicing' ),
127
+                        'singular_name'         => __( 'Invoice', 'invoicing' ),
128
+                        'all_items'             => __( 'Invoices', 'invoicing' ),
129
+                        'menu_name'             => _x( 'Invoices', 'Admin menu name', 'invoicing' ),
130
+                        'add_new'               => __( 'Add New', 'invoicing' ),
131
+                        'add_new_item'          => __( 'Add new invoice', 'invoicing' ),
132
+                        'edit'                  => __( 'Edit', 'invoicing' ),
133
+                        'edit_item'             => __( 'Edit invoice', 'invoicing' ),
134
+                        'new_item'              => __( 'New invoice', 'invoicing' ),
135
+                        'view_item'             => __( 'View invoice', 'invoicing' ),
136
+                        'view_items'            => __( 'View Invoices', 'invoicing' ),
137
+                        'search_items'          => __( 'Search invoices', 'invoicing' ),
138
+                        'not_found'             => __( 'No invoices found', 'invoicing' ),
139
+                        'not_found_in_trash'    => __( 'No invoices found in trash', 'invoicing' ),
140
+                        'parent'                => __( 'Parent invoice', 'invoicing' ),
141
+                        'featured_image'        => __( 'Invoice image', 'invoicing' ),
142
+                        'set_featured_image'    => __( 'Set invoice image', 'invoicing' ),
143
+                        'remove_featured_image' => __( 'Remove invoice image', 'invoicing' ),
144
+                        'use_featured_image'    => __( 'Use as invoice image', 'invoicing' ),
145
+                        'insert_into_item'      => __( 'Insert into invoice', 'invoicing' ),
146
+                        'uploaded_to_this_item' => __( 'Uploaded to this invoice', 'invoicing' ),
147
+                        'filter_items_list'     => __( 'Filter invoices', 'invoicing' ),
148
+                        'items_list_navigation' => __( 'Invoices navigation', 'invoicing' ),
149
+                        'items_list'            => __( 'Invoices list', 'invoicing' ),
150
+                    ),
151
+                    'description'         => __( 'This is where invoices are stored.', 'invoicing' ),
152
+                    'public'              => true,
153
+                    'has_archive'         => false,
154
+                    'publicly_queryable'  => true,
155
+                    'exclude_from_search' => true,
156
+                    'show_ui'             => $capabilities ? true : false,
157
+                    'show_in_menu'        => $capabilities ? 'wpinv' : false,
158
+                    'show_in_nav_menus'   => false,
159
+                    'supports'            => array( 'title', 'author', 'excerpt' ),
160
+                    'rewrite'             => array(
161
+                        'slug'       => 'invoice',
162
+                        'with_front' => false,
163
+                    ),
164
+                    'query_var'           => false,
165
+                    'map_meta_cap'        => true,
166
+                    'show_in_admin_bar'   => $capabilities ? true : false,
167
+                    'can_export'          => $capabilities ? true : false,
168
+                    'hierarchical'        => false,
169
+                    'menu_position'       => null,
170
+                    'menu_icon'           => 'dashicons-media-spreadsheet',
171
+                )
172
+            )
173
+        );
174 174
 
175
-		// Register discount post type.
176
-		register_post_type(
177
-			'wpi_discount',
178
-			apply_filters(
179
-				'wpinv_register_post_type_discount',
180
-				array(
181
-					'labels'              => array(
182
-						'name'                  => __( 'Discounts', 'invoicing' ),
183
-						'singular_name'         => __( 'Discount', 'invoicing' ),
184
-						'all_items'             => __( 'Discounts', 'invoicing' ),
185
-						'menu_name'             => _x( 'Discounts', 'Admin menu name', 'invoicing' ),
186
-						'add_new'               => __( 'Add New', 'invoicing' ),
187
-						'add_new_item'          => __( 'Add new discount', 'invoicing' ),
188
-						'edit'                  => __( 'Edit', 'invoicing' ),
189
-						'edit_item'             => __( 'Edit discount', 'invoicing' ),
190
-						'new_item'              => __( 'New discount', 'invoicing' ),
191
-						'view_item'             => __( 'View discount', 'invoicing' ),
192
-						'view_items'            => __( 'View Discounts', 'invoicing' ),
193
-						'search_items'          => __( 'Search discounts', 'invoicing' ),
194
-						'not_found'             => __( 'No discounts found', 'invoicing' ),
195
-						'not_found_in_trash'    => __( 'No discounts found in trash', 'invoicing' ),
196
-						'parent'                => __( 'Parent discount', 'invoicing' ),
197
-						'featured_image'        => __( 'Discount image', 'invoicing' ),
198
-						'set_featured_image'    => __( 'Set discount image', 'invoicing' ),
199
-						'remove_featured_image' => __( 'Remove discount image', 'invoicing' ),
200
-						'use_featured_image'    => __( 'Use as discount image', 'invoicing' ),
201
-						'insert_into_item'      => __( 'Insert into discount', 'invoicing' ),
202
-						'uploaded_to_this_item' => __( 'Uploaded to this discount', 'invoicing' ),
203
-						'filter_items_list'     => __( 'Filter discounts', 'invoicing' ),
204
-						'items_list_navigation' => __( 'Discount navigation', 'invoicing' ),
205
-						'items_list'            => __( 'Discounts list', 'invoicing' ),
206
-					),
207
-					'description'         => __( 'This is where you can add new discounts that users can use in invoices.', 'invoicing' ),
208
-					'public'              => false,
209
-					'can_export'          => $capabilities ? true : false,
210
-					'_builtin'            => false,
211
-					'publicly_queryable'  => false,
212
-					'exclude_from_search' => true,
213
-					'show_ui'             => $capabilities ? true : false,
214
-					'show_in_menu'        => $capabilities ? 'wpinv' : false,
215
-					'query_var'           => false,
216
-					'rewrite'             => false,
217
-					'map_meta_cap'        => true,
218
-					'has_archive'         => false,
219
-					'hierarchical'        => false,
220
-					'supports'            => array( 'title', 'excerpt' ),
221
-					'show_in_nav_menus'   => false,
222
-					'show_in_admin_bar'   => $capabilities ? true : false,
223
-					'menu_position'       => null,
224
-				)
225
-			)
226
-		);
175
+        // Register discount post type.
176
+        register_post_type(
177
+            'wpi_discount',
178
+            apply_filters(
179
+                'wpinv_register_post_type_discount',
180
+                array(
181
+                    'labels'              => array(
182
+                        'name'                  => __( 'Discounts', 'invoicing' ),
183
+                        'singular_name'         => __( 'Discount', 'invoicing' ),
184
+                        'all_items'             => __( 'Discounts', 'invoicing' ),
185
+                        'menu_name'             => _x( 'Discounts', 'Admin menu name', 'invoicing' ),
186
+                        'add_new'               => __( 'Add New', 'invoicing' ),
187
+                        'add_new_item'          => __( 'Add new discount', 'invoicing' ),
188
+                        'edit'                  => __( 'Edit', 'invoicing' ),
189
+                        'edit_item'             => __( 'Edit discount', 'invoicing' ),
190
+                        'new_item'              => __( 'New discount', 'invoicing' ),
191
+                        'view_item'             => __( 'View discount', 'invoicing' ),
192
+                        'view_items'            => __( 'View Discounts', 'invoicing' ),
193
+                        'search_items'          => __( 'Search discounts', 'invoicing' ),
194
+                        'not_found'             => __( 'No discounts found', 'invoicing' ),
195
+                        'not_found_in_trash'    => __( 'No discounts found in trash', 'invoicing' ),
196
+                        'parent'                => __( 'Parent discount', 'invoicing' ),
197
+                        'featured_image'        => __( 'Discount image', 'invoicing' ),
198
+                        'set_featured_image'    => __( 'Set discount image', 'invoicing' ),
199
+                        'remove_featured_image' => __( 'Remove discount image', 'invoicing' ),
200
+                        'use_featured_image'    => __( 'Use as discount image', 'invoicing' ),
201
+                        'insert_into_item'      => __( 'Insert into discount', 'invoicing' ),
202
+                        'uploaded_to_this_item' => __( 'Uploaded to this discount', 'invoicing' ),
203
+                        'filter_items_list'     => __( 'Filter discounts', 'invoicing' ),
204
+                        'items_list_navigation' => __( 'Discount navigation', 'invoicing' ),
205
+                        'items_list'            => __( 'Discounts list', 'invoicing' ),
206
+                    ),
207
+                    'description'         => __( 'This is where you can add new discounts that users can use in invoices.', 'invoicing' ),
208
+                    'public'              => false,
209
+                    'can_export'          => $capabilities ? true : false,
210
+                    '_builtin'            => false,
211
+                    'publicly_queryable'  => false,
212
+                    'exclude_from_search' => true,
213
+                    'show_ui'             => $capabilities ? true : false,
214
+                    'show_in_menu'        => $capabilities ? 'wpinv' : false,
215
+                    'query_var'           => false,
216
+                    'rewrite'             => false,
217
+                    'map_meta_cap'        => true,
218
+                    'has_archive'         => false,
219
+                    'hierarchical'        => false,
220
+                    'supports'            => array( 'title', 'excerpt' ),
221
+                    'show_in_nav_menus'   => false,
222
+                    'show_in_admin_bar'   => $capabilities ? true : false,
223
+                    'menu_position'       => null,
224
+                )
225
+            )
226
+        );
227 227
 
228
-		do_action( 'getpaid_after_register_post_types' );
229
-	}
228
+        do_action( 'getpaid_after_register_post_types' );
229
+    }
230 230
 
231
-	/**
232
-	 * Register our custom post statuses.
233
-	 */
234
-	public static function register_post_status() {
231
+    /**
232
+     * Register our custom post statuses.
233
+     */
234
+    public static function register_post_status() {
235 235
 
236
-		$invoice_statuses = apply_filters(
237
-			'getpaid_register_invoice_post_statuses',
238
-			array(
236
+        $invoice_statuses = apply_filters(
237
+            'getpaid_register_invoice_post_statuses',
238
+            array(
239 239
 
240
-				'wpi-pending'    => array(
241
-					'label'                     => _x( 'Pending Payment', 'Invoice status', 'invoicing' ),
242
-        			'public'                    => true,
243
-        			'exclude_from_search'       => true,
244
-        			'show_in_admin_all_list'    => true,
245
-					'show_in_admin_status_list' => true,
246
-					/* translators: %s: number of invoices */
247
-        			'label_count'               => _n_noop( 'Pending Payment <span class="count">(%s)</span>', 'Pending Payment <span class="count">(%s)</span>', 'invoicing' ),
248
-				),
240
+                'wpi-pending'    => array(
241
+                    'label'                     => _x( 'Pending Payment', 'Invoice status', 'invoicing' ),
242
+                    'public'                    => true,
243
+                    'exclude_from_search'       => true,
244
+                    'show_in_admin_all_list'    => true,
245
+                    'show_in_admin_status_list' => true,
246
+                    /* translators: %s: number of invoices */
247
+                    'label_count'               => _n_noop( 'Pending Payment <span class="count">(%s)</span>', 'Pending Payment <span class="count">(%s)</span>', 'invoicing' ),
248
+                ),
249 249
 
250
-				'wpi-processing' => array(
251
-					'label'                     => _x( 'Processing', 'Invoice status', 'invoicing' ),
252
-        			'public'                    => true,
253
-        			'exclude_from_search'       => true,
254
-        			'show_in_admin_all_list'    => true,
255
-					'show_in_admin_status_list' => true,
256
-					/* translators: %s: number of invoices */
257
-        			'label_count'               => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing' ),
258
-				),
250
+                'wpi-processing' => array(
251
+                    'label'                     => _x( 'Processing', 'Invoice status', 'invoicing' ),
252
+                    'public'                    => true,
253
+                    'exclude_from_search'       => true,
254
+                    'show_in_admin_all_list'    => true,
255
+                    'show_in_admin_status_list' => true,
256
+                    /* translators: %s: number of invoices */
257
+                    'label_count'               => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing' ),
258
+                ),
259 259
 
260
-				'wpi-onhold'     => array(
261
-					'label'                     => _x( 'On Hold', 'Invoice status', 'invoicing' ),
262
-        			'public'                    => true,
263
-        			'exclude_from_search'       => true,
264
-        			'show_in_admin_all_list'    => true,
265
-					'show_in_admin_status_list' => true,
266
-					/* translators: %s: number of invoices */
267
-        			'label_count'               => _n_noop( 'On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing' ),
268
-				),
260
+                'wpi-onhold'     => array(
261
+                    'label'                     => _x( 'On Hold', 'Invoice status', 'invoicing' ),
262
+                    'public'                    => true,
263
+                    'exclude_from_search'       => true,
264
+                    'show_in_admin_all_list'    => true,
265
+                    'show_in_admin_status_list' => true,
266
+                    /* translators: %s: number of invoices */
267
+                    'label_count'               => _n_noop( 'On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing' ),
268
+                ),
269 269
 
270
-				'wpi-cancelled'  => array(
271
-					'label'                     => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
272
-        			'public'                    => true,
273
-        			'exclude_from_search'       => true,
274
-        			'show_in_admin_all_list'    => true,
275
-					'show_in_admin_status_list' => true,
276
-					/* translators: %s: number of invoices */
277
-        			'label_count'               => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing' ),
278
-				),
270
+                'wpi-cancelled'  => array(
271
+                    'label'                     => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
272
+                    'public'                    => true,
273
+                    'exclude_from_search'       => true,
274
+                    'show_in_admin_all_list'    => true,
275
+                    'show_in_admin_status_list' => true,
276
+                    /* translators: %s: number of invoices */
277
+                    'label_count'               => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing' ),
278
+                ),
279 279
 
280
-				'wpi-refunded'   => array(
281
-					'label'                     => _x( 'Refunded', 'Invoice status', 'invoicing' ),
282
-        			'public'                    => true,
283
-        			'exclude_from_search'       => true,
284
-        			'show_in_admin_all_list'    => true,
285
-					'show_in_admin_status_list' => true,
286
-					/* translators: %s: number of invoices */
287
-        			'label_count'               => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing' ),
288
-				),
280
+                'wpi-refunded'   => array(
281
+                    'label'                     => _x( 'Refunded', 'Invoice status', 'invoicing' ),
282
+                    'public'                    => true,
283
+                    'exclude_from_search'       => true,
284
+                    'show_in_admin_all_list'    => true,
285
+                    'show_in_admin_status_list' => true,
286
+                    /* translators: %s: number of invoices */
287
+                    'label_count'               => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing' ),
288
+                ),
289 289
 
290
-				'wpi-failed'     => array(
291
-					'label'                     => _x( 'Failed', 'Invoice status', 'invoicing' ),
292
-        			'public'                    => true,
293
-        			'exclude_from_search'       => true,
294
-        			'show_in_admin_all_list'    => true,
295
-					'show_in_admin_status_list' => true,
296
-					/* translators: %s: number of invoices */
297
-        			'label_count'               => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing' ),
298
-				),
290
+                'wpi-failed'     => array(
291
+                    'label'                     => _x( 'Failed', 'Invoice status', 'invoicing' ),
292
+                    'public'                    => true,
293
+                    'exclude_from_search'       => true,
294
+                    'show_in_admin_all_list'    => true,
295
+                    'show_in_admin_status_list' => true,
296
+                    /* translators: %s: number of invoices */
297
+                    'label_count'               => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing' ),
298
+                ),
299 299
 
300
-				'wpi-renewal'    => array(
301
-					'label'                     => _x( 'Renewal', 'Invoice status', 'invoicing' ),
302
-        			'public'                    => true,
303
-        			'exclude_from_search'       => true,
304
-        			'show_in_admin_all_list'    => true,
305
-					'show_in_admin_status_list' => true,
306
-					/* translators: %s: number of invoices */
307
-        			'label_count'               => _n_noop( 'Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing' ),
308
-				),
309
-			)
310
-		);
300
+                'wpi-renewal'    => array(
301
+                    'label'                     => _x( 'Renewal', 'Invoice status', 'invoicing' ),
302
+                    'public'                    => true,
303
+                    'exclude_from_search'       => true,
304
+                    'show_in_admin_all_list'    => true,
305
+                    'show_in_admin_status_list' => true,
306
+                    /* translators: %s: number of invoices */
307
+                    'label_count'               => _n_noop( 'Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing' ),
308
+                ),
309
+            )
310
+        );
311 311
 
312
-		foreach ( $invoice_statuses as $invoice_statuse => $args ) {
313
-			register_post_status( $invoice_statuse, $args );
314
-		}
315
-	}
312
+        foreach ( $invoice_statuses as $invoice_statuse => $args ) {
313
+            register_post_status( $invoice_statuse, $args );
314
+        }
315
+    }
316 316
 
317
-	/**
318
-	 * Flush rewrite rules.
319
-	 */
320
-	public static function flush_rewrite_rules() {
321
-		flush_rewrite_rules();
322
-	}
317
+    /**
318
+     * Flush rewrite rules.
319
+     */
320
+    public static function flush_rewrite_rules() {
321
+        flush_rewrite_rules();
322
+    }
323 323
 
324
-	/**
325
-	 * Flush rules to prevent 404.
326
-	 *
327
-	 */
328
-	public static function maybe_flush_rewrite_rules() {
329
-		if ( ! get_option( 'getpaid_flushed_rewrite_rules' ) ) {
330
-			update_option( 'getpaid_flushed_rewrite_rules', '1' );
331
-			self::flush_rewrite_rules();
332
-		}
333
-	}
324
+    /**
325
+     * Flush rules to prevent 404.
326
+     *
327
+     */
328
+    public static function maybe_flush_rewrite_rules() {
329
+        if ( ! get_option( 'getpaid_flushed_rewrite_rules' ) ) {
330
+            update_option( 'getpaid_flushed_rewrite_rules', '1' );
331
+            self::flush_rewrite_rules();
332
+        }
333
+    }
334 334
 
335 335
 }
Please login to merge, or discard this patch.
Spacing   +110 added lines, -110 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  *
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Post types Class
@@ -18,10 +18,10 @@  discard block
 block discarded – undo
18 18
 	 * Hook in methods.
19 19
 	 */
20 20
 	public function __construct() {
21
-		add_action( 'init', array( __CLASS__, 'register_post_types' ), 1 );
22
-		add_action( 'init', array( __CLASS__, 'register_post_status' ), 4 );
23
-		add_action( 'getpaid_flush_rewrite_rules', array( __CLASS__, 'flush_rewrite_rules' ) );
24
-		add_action( 'getpaid_after_register_post_types', array( __CLASS__, 'maybe_flush_rewrite_rules' ) );
21
+		add_action('init', array(__CLASS__, 'register_post_types'), 1);
22
+		add_action('init', array(__CLASS__, 'register_post_status'), 4);
23
+		add_action('getpaid_flush_rewrite_rules', array(__CLASS__, 'flush_rewrite_rules'));
24
+		add_action('getpaid_after_register_post_types', array(__CLASS__, 'maybe_flush_rewrite_rules'));
25 25
 	}
26 26
 
27 27
 	/**
@@ -29,14 +29,14 @@  discard block
 block discarded – undo
29 29
 	 */
30 30
 	public static function register_post_types() {
31 31
 
32
-		if ( ! is_blog_installed() || post_type_exists( 'wpi_item' ) ) {
32
+		if (!is_blog_installed() || post_type_exists('wpi_item')) {
33 33
 			return;
34 34
 		}
35 35
 
36 36
 		$capabilities = wpinv_current_user_can_manage_invoicing();
37 37
 
38 38
 		// Fires before registering post types.
39
-		do_action( 'getpaid_register_post_types' );
39
+		do_action('getpaid_register_post_types');
40 40
 
41 41
 		// Register item post type.
42 42
 		register_post_type(
@@ -45,29 +45,29 @@  discard block
 block discarded – undo
45 45
 				'wpinv_register_post_type_invoice_item',
46 46
 				array(
47 47
 					'labels'            => array(
48
-						'name'               => _x( 'Items', 'post type general name', 'invoicing' ),
49
-						'singular_name'      => _x( 'Item', 'post type singular name', 'invoicing' ),
50
-						'menu_name'          => _x( 'Items', 'admin menu', 'invoicing' ),
51
-						'name_admin_bar'     => _x( 'Item', 'add new on admin bar', 'invoicing' ),
52
-						'add_new'            => _x( 'Add New', 'Item', 'invoicing' ),
53
-						'add_new_item'       => __( 'Add New Item', 'invoicing' ),
54
-						'new_item'           => __( 'New Item', 'invoicing' ),
55
-						'edit_item'          => __( 'Edit Item', 'invoicing' ),
56
-						'view_item'          => __( 'View Item', 'invoicing' ),
57
-						'all_items'          => __( 'Items', 'invoicing' ),
58
-						'search_items'       => __( 'Search items', 'invoicing' ),
59
-						'parent_item_colon'  => __( 'Parent item:', 'invoicing' ),
60
-						'not_found'          => __( 'No items found.', 'invoicing' ),
61
-						'not_found_in_trash' => __( 'No items found in trash.', 'invoicing' ),
48
+						'name'               => _x('Items', 'post type general name', 'invoicing'),
49
+						'singular_name'      => _x('Item', 'post type singular name', 'invoicing'),
50
+						'menu_name'          => _x('Items', 'admin menu', 'invoicing'),
51
+						'name_admin_bar'     => _x('Item', 'add new on admin bar', 'invoicing'),
52
+						'add_new'            => _x('Add New', 'Item', 'invoicing'),
53
+						'add_new_item'       => __('Add New Item', 'invoicing'),
54
+						'new_item'           => __('New Item', 'invoicing'),
55
+						'edit_item'          => __('Edit Item', 'invoicing'),
56
+						'view_item'          => __('View Item', 'invoicing'),
57
+						'all_items'          => __('Items', 'invoicing'),
58
+						'search_items'       => __('Search items', 'invoicing'),
59
+						'parent_item_colon'  => __('Parent item:', 'invoicing'),
60
+						'not_found'          => __('No items found.', 'invoicing'),
61
+						'not_found_in_trash' => __('No items found in trash.', 'invoicing'),
62 62
 					),
63
-					'description'       => __( 'This is where you can add new invoice items.', 'invoicing' ),
63
+					'description'       => __('This is where you can add new invoice items.', 'invoicing'),
64 64
 					'public'            => false,
65 65
 					'has_archive'       => false,
66 66
 					'_builtin'          => false,
67 67
 					'show_ui'           => $capabilities ? true : false,
68 68
 					'show_in_menu'      => $capabilities ? 'wpinv' : false,
69 69
 					'show_in_nav_menus' => false,
70
-					'supports'          => array( 'title', 'excerpt', 'thumbnail' ),
70
+					'supports'          => array('title', 'excerpt', 'thumbnail'),
71 71
 					'rewrite'           => false,
72 72
 					'query_var'         => false,
73 73
 					'map_meta_cap'      => true,
@@ -84,22 +84,22 @@  discard block
 block discarded – undo
84 84
 				'wpinv_register_post_type_payment_form',
85 85
 				array(
86 86
 					'labels'            => array(
87
-						'name'               => _x( 'Payment Forms', 'post type general name', 'invoicing' ),
88
-						'singular_name'      => _x( 'Payment Form', 'post type singular name', 'invoicing' ),
89
-						'menu_name'          => _x( 'Payment Forms', 'admin menu', 'invoicing' ),
90
-						'name_admin_bar'     => _x( 'Payment Form', 'add new on admin bar', 'invoicing' ),
91
-						'add_new'            => _x( 'Add New', 'Payment Form', 'invoicing' ),
92
-						'add_new_item'       => __( 'Add New Payment Form', 'invoicing' ),
93
-						'new_item'           => __( 'New Payment Form', 'invoicing' ),
94
-						'edit_item'          => __( 'Edit Payment Form', 'invoicing' ),
95
-						'view_item'          => __( 'View Payment Form', 'invoicing' ),
96
-						'all_items'          => __( 'Payment Forms', 'invoicing' ),
97
-						'search_items'       => __( 'Search Payment Forms', 'invoicing' ),
98
-						'parent_item_colon'  => __( 'Parent Payment Forms:', 'invoicing' ),
99
-						'not_found'          => __( 'No payment forms found.', 'invoicing' ),
100
-						'not_found_in_trash' => __( 'No payment forms found in trash.', 'invoicing' ),
87
+						'name'               => _x('Payment Forms', 'post type general name', 'invoicing'),
88
+						'singular_name'      => _x('Payment Form', 'post type singular name', 'invoicing'),
89
+						'menu_name'          => _x('Payment Forms', 'admin menu', 'invoicing'),
90
+						'name_admin_bar'     => _x('Payment Form', 'add new on admin bar', 'invoicing'),
91
+						'add_new'            => _x('Add New', 'Payment Form', 'invoicing'),
92
+						'add_new_item'       => __('Add New Payment Form', 'invoicing'),
93
+						'new_item'           => __('New Payment Form', 'invoicing'),
94
+						'edit_item'          => __('Edit Payment Form', 'invoicing'),
95
+						'view_item'          => __('View Payment Form', 'invoicing'),
96
+						'all_items'          => __('Payment Forms', 'invoicing'),
97
+						'search_items'       => __('Search Payment Forms', 'invoicing'),
98
+						'parent_item_colon'  => __('Parent Payment Forms:', 'invoicing'),
99
+						'not_found'          => __('No payment forms found.', 'invoicing'),
100
+						'not_found_in_trash' => __('No payment forms found in trash.', 'invoicing'),
101 101
 					),
102
-					'description'       => __( 'Add new payment forms.', 'invoicing' ),
102
+					'description'       => __('Add new payment forms.', 'invoicing'),
103 103
 					'public'            => false,
104 104
 					'show_ui'           => $capabilities ? true : false,
105 105
 					'show_in_menu'      => $capabilities ? 'wpinv' : false,
@@ -110,7 +110,7 @@  discard block
 block discarded – undo
110 110
 					'has_archive'       => false,
111 111
 					'hierarchical'      => false,
112 112
 					'menu_position'     => null,
113
-					'supports'          => array( 'title' ),
113
+					'supports'          => array('title'),
114 114
 					'menu_icon'         => 'dashicons-media-form',
115 115
 				)
116 116
 			)
@@ -123,32 +123,32 @@  discard block
 block discarded – undo
123 123
 				'wpinv_register_post_type_invoice',
124 124
 				array(
125 125
 					'labels'              => array(
126
-						'name'                  => __( 'Invoices', 'invoicing' ),
127
-						'singular_name'         => __( 'Invoice', 'invoicing' ),
128
-						'all_items'             => __( 'Invoices', 'invoicing' ),
129
-						'menu_name'             => _x( 'Invoices', 'Admin menu name', 'invoicing' ),
130
-						'add_new'               => __( 'Add New', 'invoicing' ),
131
-						'add_new_item'          => __( 'Add new invoice', 'invoicing' ),
132
-						'edit'                  => __( 'Edit', 'invoicing' ),
133
-						'edit_item'             => __( 'Edit invoice', 'invoicing' ),
134
-						'new_item'              => __( 'New invoice', 'invoicing' ),
135
-						'view_item'             => __( 'View invoice', 'invoicing' ),
136
-						'view_items'            => __( 'View Invoices', 'invoicing' ),
137
-						'search_items'          => __( 'Search invoices', 'invoicing' ),
138
-						'not_found'             => __( 'No invoices found', 'invoicing' ),
139
-						'not_found_in_trash'    => __( 'No invoices found in trash', 'invoicing' ),
140
-						'parent'                => __( 'Parent invoice', 'invoicing' ),
141
-						'featured_image'        => __( 'Invoice image', 'invoicing' ),
142
-						'set_featured_image'    => __( 'Set invoice image', 'invoicing' ),
143
-						'remove_featured_image' => __( 'Remove invoice image', 'invoicing' ),
144
-						'use_featured_image'    => __( 'Use as invoice image', 'invoicing' ),
145
-						'insert_into_item'      => __( 'Insert into invoice', 'invoicing' ),
146
-						'uploaded_to_this_item' => __( 'Uploaded to this invoice', 'invoicing' ),
147
-						'filter_items_list'     => __( 'Filter invoices', 'invoicing' ),
148
-						'items_list_navigation' => __( 'Invoices navigation', 'invoicing' ),
149
-						'items_list'            => __( 'Invoices list', 'invoicing' ),
126
+						'name'                  => __('Invoices', 'invoicing'),
127
+						'singular_name'         => __('Invoice', 'invoicing'),
128
+						'all_items'             => __('Invoices', 'invoicing'),
129
+						'menu_name'             => _x('Invoices', 'Admin menu name', 'invoicing'),
130
+						'add_new'               => __('Add New', 'invoicing'),
131
+						'add_new_item'          => __('Add new invoice', 'invoicing'),
132
+						'edit'                  => __('Edit', 'invoicing'),
133
+						'edit_item'             => __('Edit invoice', 'invoicing'),
134
+						'new_item'              => __('New invoice', 'invoicing'),
135
+						'view_item'             => __('View invoice', 'invoicing'),
136
+						'view_items'            => __('View Invoices', 'invoicing'),
137
+						'search_items'          => __('Search invoices', 'invoicing'),
138
+						'not_found'             => __('No invoices found', 'invoicing'),
139
+						'not_found_in_trash'    => __('No invoices found in trash', 'invoicing'),
140
+						'parent'                => __('Parent invoice', 'invoicing'),
141
+						'featured_image'        => __('Invoice image', 'invoicing'),
142
+						'set_featured_image'    => __('Set invoice image', 'invoicing'),
143
+						'remove_featured_image' => __('Remove invoice image', 'invoicing'),
144
+						'use_featured_image'    => __('Use as invoice image', 'invoicing'),
145
+						'insert_into_item'      => __('Insert into invoice', 'invoicing'),
146
+						'uploaded_to_this_item' => __('Uploaded to this invoice', 'invoicing'),
147
+						'filter_items_list'     => __('Filter invoices', 'invoicing'),
148
+						'items_list_navigation' => __('Invoices navigation', 'invoicing'),
149
+						'items_list'            => __('Invoices list', 'invoicing'),
150 150
 					),
151
-					'description'         => __( 'This is where invoices are stored.', 'invoicing' ),
151
+					'description'         => __('This is where invoices are stored.', 'invoicing'),
152 152
 					'public'              => true,
153 153
 					'has_archive'         => false,
154 154
 					'publicly_queryable'  => true,
@@ -156,7 +156,7 @@  discard block
 block discarded – undo
156 156
         			'show_ui'             => $capabilities ? true : false,
157 157
 					'show_in_menu'        => $capabilities ? 'wpinv' : false,
158 158
 					'show_in_nav_menus'   => false,
159
-					'supports'            => array( 'title', 'author', 'excerpt' ),
159
+					'supports'            => array('title', 'author', 'excerpt'),
160 160
 					'rewrite'             => array(
161 161
 						'slug'       => 'invoice',
162 162
 						'with_front' => false,
@@ -179,32 +179,32 @@  discard block
 block discarded – undo
179 179
 				'wpinv_register_post_type_discount',
180 180
 				array(
181 181
 					'labels'              => array(
182
-						'name'                  => __( 'Discounts', 'invoicing' ),
183
-						'singular_name'         => __( 'Discount', 'invoicing' ),
184
-						'all_items'             => __( 'Discounts', 'invoicing' ),
185
-						'menu_name'             => _x( 'Discounts', 'Admin menu name', 'invoicing' ),
186
-						'add_new'               => __( 'Add New', 'invoicing' ),
187
-						'add_new_item'          => __( 'Add new discount', 'invoicing' ),
188
-						'edit'                  => __( 'Edit', 'invoicing' ),
189
-						'edit_item'             => __( 'Edit discount', 'invoicing' ),
190
-						'new_item'              => __( 'New discount', 'invoicing' ),
191
-						'view_item'             => __( 'View discount', 'invoicing' ),
192
-						'view_items'            => __( 'View Discounts', 'invoicing' ),
193
-						'search_items'          => __( 'Search discounts', 'invoicing' ),
194
-						'not_found'             => __( 'No discounts found', 'invoicing' ),
195
-						'not_found_in_trash'    => __( 'No discounts found in trash', 'invoicing' ),
196
-						'parent'                => __( 'Parent discount', 'invoicing' ),
197
-						'featured_image'        => __( 'Discount image', 'invoicing' ),
198
-						'set_featured_image'    => __( 'Set discount image', 'invoicing' ),
199
-						'remove_featured_image' => __( 'Remove discount image', 'invoicing' ),
200
-						'use_featured_image'    => __( 'Use as discount image', 'invoicing' ),
201
-						'insert_into_item'      => __( 'Insert into discount', 'invoicing' ),
202
-						'uploaded_to_this_item' => __( 'Uploaded to this discount', 'invoicing' ),
203
-						'filter_items_list'     => __( 'Filter discounts', 'invoicing' ),
204
-						'items_list_navigation' => __( 'Discount navigation', 'invoicing' ),
205
-						'items_list'            => __( 'Discounts list', 'invoicing' ),
182
+						'name'                  => __('Discounts', 'invoicing'),
183
+						'singular_name'         => __('Discount', 'invoicing'),
184
+						'all_items'             => __('Discounts', 'invoicing'),
185
+						'menu_name'             => _x('Discounts', 'Admin menu name', 'invoicing'),
186
+						'add_new'               => __('Add New', 'invoicing'),
187
+						'add_new_item'          => __('Add new discount', 'invoicing'),
188
+						'edit'                  => __('Edit', 'invoicing'),
189
+						'edit_item'             => __('Edit discount', 'invoicing'),
190
+						'new_item'              => __('New discount', 'invoicing'),
191
+						'view_item'             => __('View discount', 'invoicing'),
192
+						'view_items'            => __('View Discounts', 'invoicing'),
193
+						'search_items'          => __('Search discounts', 'invoicing'),
194
+						'not_found'             => __('No discounts found', 'invoicing'),
195
+						'not_found_in_trash'    => __('No discounts found in trash', 'invoicing'),
196
+						'parent'                => __('Parent discount', 'invoicing'),
197
+						'featured_image'        => __('Discount image', 'invoicing'),
198
+						'set_featured_image'    => __('Set discount image', 'invoicing'),
199
+						'remove_featured_image' => __('Remove discount image', 'invoicing'),
200
+						'use_featured_image'    => __('Use as discount image', 'invoicing'),
201
+						'insert_into_item'      => __('Insert into discount', 'invoicing'),
202
+						'uploaded_to_this_item' => __('Uploaded to this discount', 'invoicing'),
203
+						'filter_items_list'     => __('Filter discounts', 'invoicing'),
204
+						'items_list_navigation' => __('Discount navigation', 'invoicing'),
205
+						'items_list'            => __('Discounts list', 'invoicing'),
206 206
 					),
207
-					'description'         => __( 'This is where you can add new discounts that users can use in invoices.', 'invoicing' ),
207
+					'description'         => __('This is where you can add new discounts that users can use in invoices.', 'invoicing'),
208 208
 					'public'              => false,
209 209
 					'can_export'          => $capabilities ? true : false,
210 210
 					'_builtin'            => false,
@@ -217,7 +217,7 @@  discard block
 block discarded – undo
217 217
 					'map_meta_cap'        => true,
218 218
 					'has_archive'         => false,
219 219
 					'hierarchical'        => false,
220
-					'supports'            => array( 'title', 'excerpt' ),
220
+					'supports'            => array('title', 'excerpt'),
221 221
 					'show_in_nav_menus'   => false,
222 222
 					'show_in_admin_bar'   => $capabilities ? true : false,
223 223
 					'menu_position'       => null,
@@ -225,7 +225,7 @@  discard block
 block discarded – undo
225 225
 			)
226 226
 		);
227 227
 
228
-		do_action( 'getpaid_after_register_post_types' );
228
+		do_action('getpaid_after_register_post_types');
229 229
 	}
230 230
 
231 231
 	/**
@@ -238,79 +238,79 @@  discard block
 block discarded – undo
238 238
 			array(
239 239
 
240 240
 				'wpi-pending'    => array(
241
-					'label'                     => _x( 'Pending Payment', 'Invoice status', 'invoicing' ),
241
+					'label'                     => _x('Pending Payment', 'Invoice status', 'invoicing'),
242 242
         			'public'                    => true,
243 243
         			'exclude_from_search'       => true,
244 244
         			'show_in_admin_all_list'    => true,
245 245
 					'show_in_admin_status_list' => true,
246 246
 					/* translators: %s: number of invoices */
247
-        			'label_count'               => _n_noop( 'Pending Payment <span class="count">(%s)</span>', 'Pending Payment <span class="count">(%s)</span>', 'invoicing' ),
247
+        			'label_count'               => _n_noop('Pending Payment <span class="count">(%s)</span>', 'Pending Payment <span class="count">(%s)</span>', 'invoicing'),
248 248
 				),
249 249
 
250 250
 				'wpi-processing' => array(
251
-					'label'                     => _x( 'Processing', 'Invoice status', 'invoicing' ),
251
+					'label'                     => _x('Processing', 'Invoice status', 'invoicing'),
252 252
         			'public'                    => true,
253 253
         			'exclude_from_search'       => true,
254 254
         			'show_in_admin_all_list'    => true,
255 255
 					'show_in_admin_status_list' => true,
256 256
 					/* translators: %s: number of invoices */
257
-        			'label_count'               => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing' ),
257
+        			'label_count'               => _n_noop('Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing'),
258 258
 				),
259 259
 
260 260
 				'wpi-onhold'     => array(
261
-					'label'                     => _x( 'On Hold', 'Invoice status', 'invoicing' ),
261
+					'label'                     => _x('On Hold', 'Invoice status', 'invoicing'),
262 262
         			'public'                    => true,
263 263
         			'exclude_from_search'       => true,
264 264
         			'show_in_admin_all_list'    => true,
265 265
 					'show_in_admin_status_list' => true,
266 266
 					/* translators: %s: number of invoices */
267
-        			'label_count'               => _n_noop( 'On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing' ),
267
+        			'label_count'               => _n_noop('On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing'),
268 268
 				),
269 269
 
270 270
 				'wpi-cancelled'  => array(
271
-					'label'                     => _x( 'Cancelled', 'Invoice status', 'invoicing' ),
271
+					'label'                     => _x('Cancelled', 'Invoice status', 'invoicing'),
272 272
         			'public'                    => true,
273 273
         			'exclude_from_search'       => true,
274 274
         			'show_in_admin_all_list'    => true,
275 275
 					'show_in_admin_status_list' => true,
276 276
 					/* translators: %s: number of invoices */
277
-        			'label_count'               => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing' ),
277
+        			'label_count'               => _n_noop('Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing'),
278 278
 				),
279 279
 
280 280
 				'wpi-refunded'   => array(
281
-					'label'                     => _x( 'Refunded', 'Invoice status', 'invoicing' ),
281
+					'label'                     => _x('Refunded', 'Invoice status', 'invoicing'),
282 282
         			'public'                    => true,
283 283
         			'exclude_from_search'       => true,
284 284
         			'show_in_admin_all_list'    => true,
285 285
 					'show_in_admin_status_list' => true,
286 286
 					/* translators: %s: number of invoices */
287
-        			'label_count'               => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing' ),
287
+        			'label_count'               => _n_noop('Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing'),
288 288
 				),
289 289
 
290 290
 				'wpi-failed'     => array(
291
-					'label'                     => _x( 'Failed', 'Invoice status', 'invoicing' ),
291
+					'label'                     => _x('Failed', 'Invoice status', 'invoicing'),
292 292
         			'public'                    => true,
293 293
         			'exclude_from_search'       => true,
294 294
         			'show_in_admin_all_list'    => true,
295 295
 					'show_in_admin_status_list' => true,
296 296
 					/* translators: %s: number of invoices */
297
-        			'label_count'               => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing' ),
297
+        			'label_count'               => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing'),
298 298
 				),
299 299
 
300 300
 				'wpi-renewal'    => array(
301
-					'label'                     => _x( 'Renewal', 'Invoice status', 'invoicing' ),
301
+					'label'                     => _x('Renewal', 'Invoice status', 'invoicing'),
302 302
         			'public'                    => true,
303 303
         			'exclude_from_search'       => true,
304 304
         			'show_in_admin_all_list'    => true,
305 305
 					'show_in_admin_status_list' => true,
306 306
 					/* translators: %s: number of invoices */
307
-        			'label_count'               => _n_noop( 'Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing' ),
307
+        			'label_count'               => _n_noop('Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing'),
308 308
 				),
309 309
 			)
310 310
 		);
311 311
 
312
-		foreach ( $invoice_statuses as $invoice_statuse => $args ) {
313
-			register_post_status( $invoice_statuse, $args );
312
+		foreach ($invoice_statuses as $invoice_statuse => $args) {
313
+			register_post_status($invoice_statuse, $args);
314 314
 		}
315 315
 	}
316 316
 
@@ -326,8 +326,8 @@  discard block
 block discarded – undo
326 326
 	 *
327 327
 	 */
328 328
 	public static function maybe_flush_rewrite_rules() {
329
-		if ( ! get_option( 'getpaid_flushed_rewrite_rules' ) ) {
330
-			update_option( 'getpaid_flushed_rewrite_rules', '1' );
329
+		if (!get_option('getpaid_flushed_rewrite_rules')) {
330
+			update_option('getpaid_flushed_rewrite_rules', '1');
331 331
 			self::flush_rewrite_rules();
332 332
 		}
333 333
 	}
Please login to merge, or discard this patch.
includes/admin/class-wpinv-subscriptions-list-table.php 2 patches
Indentation   +468 added lines, -468 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
 }
9 9
 
10 10
 if ( ! class_exists( 'WP_List_Table' ) ) {
11
-	include_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
11
+    include_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
12 12
 }
13 13
 
14 14
 /**
@@ -16,472 +16,472 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class WPInv_Subscriptions_List_Table extends WP_List_Table {
18 18
 
19
-	/**
20
-	 * URL of this page
21
-	 *
22
-	 * @var   string
23
-	 * @since 1.0.19
24
-	 */
25
-	public $base_url;
26
-
27
-	/**
28
-	 * Query
29
-	 *
30
-	 * @var   GetPaid_Subscriptions_Query
31
-	 * @since 1.0.19
32
-	 */
33
-	public $query;
34
-
35
-	/**
36
-	 * Total subscriptions
37
-	 *
38
-	 * @var   string
39
-	 * @since 1.0.0
40
-	 */
41
-	public $total_count;
42
-
43
-	/**
44
-	 * Current status subscriptions
45
-	 *
46
-	 * @var   string
47
-	 * @since 1.0.0
48
-	 */
49
-	public $current_total_count;
50
-
51
-	/**
52
-	 * Status counts
53
-	 *
54
-	 * @var   array
55
-	 * @since 1.0.19
56
-	 */
57
-	public $status_counts;
58
-
59
-	/**
60
-	 * Number of results to show per page
61
-	 *
62
-	 * @var   int
63
-	 * @since 1.0.0
64
-	 */
65
-	public $per_page = 10;
66
-
67
-	/**
68
-	 *  Constructor function.
69
-	 */
70
-	public function __construct() {
71
-
72
-		parent::__construct(
73
-			array(
74
-				'singular' => 'subscription',
75
-				'plural'   => 'subscriptions',
76
-			)
77
-		);
78
-
79
-		$this->process_bulk_action();
80
-
81
-		$this->prepare_query();
82
-
83
-		$this->base_url = remove_query_arg( 'status' );
84
-
85
-	}
86
-
87
-	/**
88
-	 *  Prepares the display query
89
-	 */
90
-	public function prepare_query() {
91
-
92
-		// Prepare query args.
93
-		$query = array(
94
-			'number'      => $this->per_page,
95
-			'paged'       => $this->get_paged(),
96
-			'status'      => ( isset( $_GET['status'] ) && array_key_exists( $_GET['status'], getpaid_get_subscription_statuses() ) ) ? sanitize_text_field( $_GET['status'] ) : 'all',
97
-			'orderby'     => ( isset( $_GET['orderby'] ) ) ? sanitize_text_field( $_GET['orderby'] ) : 'id',
98
-			'order'       => ( isset( $_GET['order'] ) ) ? sanitize_text_field( $_GET['order'] ) : 'DESC',
99
-			'customer_in' => $this->get_user_in(),
100
-		);
101
-
102
-		if ( is_array( $query['customer_in'] ) && empty( $query['customer_in'] ) ) {
103
-			$this->total_count         = 0;
104
-			$this->current_total_count = 0;
105
-			$this->items               = array();
106
-			$this->status_counts       = array();
107
-			return;
108
-		}
109
-
110
-		// Prepare class properties.
111
-		$this->query               = new GetPaid_Subscriptions_Query( $query );
112
-		$this->total_count         = $this->query->get_total();
113
-		$this->current_total_count = $this->query->get_total();
114
-		$this->items               = $this->query->get_results();
115
-		$this->status_counts       = getpaid_get_subscription_status_counts( $query );
116
-
117
-		if ( 'all' != $query['status'] ) {
118
-			unset( $query['status'] );
119
-			$this->total_count   = getpaid_get_subscriptions( $query, 'count' );
120
-		}
121
-
122
-	}
123
-
124
-	/**
125
-	 * Get user in.
126
-	 *
127
-	 */
128
-	public function get_user_in() {
129
-
130
-		// Abort if no user.
131
-		if ( empty( $_GET['s'] ) ) {
132
-			return null;
133
-		}
134
-
135
-		// Or invalid user.
136
-		$user = wp_unslash( sanitize_text_field( $_REQUEST['s'] ) );
137
-
138
-		if ( empty( $user ) ) {
139
-			return null;
140
-		}
141
-
142
-		// Search matching users.
143
-		$user  = '*' . $user . '*';
144
-		$users = new WP_User_Query(
145
-			array(
146
-				'fields'      => 'ID',
147
-				'search'      => $user,
148
-				'count_total' => false,
149
-			)
150
-		);
151
-
152
-		return $users->get_results();
153
-	}
154
-
155
-	/**
156
-	 * Gets the list of views available on this table.
157
-	 *
158
-	 * The format is an associative array:
159
-	 * - `'id' => 'link'`
160
-	 *
161
-	 * @since 1.0.0
162
-	 *
163
-	 * @return array
164
-	 */
165
-	public function get_views() {
166
-
167
-		$current  = isset( $_GET['status'] ) ? sanitize_text_field( $_GET['status'] ) : 'all';
168
-		$views    = array(
169
-
170
-			'all' => sprintf(
171
-				'<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
172
-				esc_url( add_query_arg( 'status', false, $this->base_url ) ),
173
-				$current === 'all' ? ' class="current"' : '',
174
-				__( 'All', 'invoicing' ),
175
-				$this->total_count
176
-			),
177
-
178
-		);
179
-
180
-		foreach ( array_filter( $this->status_counts ) as $status => $count ) {
181
-
182
-			$views[ $status ] = sprintf(
183
-				'<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
184
-				esc_url( add_query_arg( 'status', urlencode( $status ), $this->base_url ) ),
185
-				$current === $status ? ' class="current"' : '',
186
-				esc_html( getpaid_get_subscription_status_label( $status ) ),
187
-				$count
188
-			);
189
-
190
-		}
191
-
192
-		return $views;
193
-
194
-	}
195
-
196
-	/**
197
-	 * Render most columns
198
-	 *
199
-	 * @access      private
200
-	 * @since       1.0.0
201
-	 * @return      string
202
-	 */
203
-	public function column_default( $item, $column_name ) {
204
-		return apply_filters( "getpaid_subscriptions_table_column_$column_name", $item->$column_name );
205
-	}
206
-
207
-	/**
208
-	 * This is how checkbox column renders.
209
-	 *
210
-	 * @param WPInv_Subscription $item
211
-	 * @return string
212
-	 */
213
-	public function column_cb( $item ) {
214
-		return sprintf( '<input type="checkbox" name="id[]" value="%s" />', esc_html( $item->get_id() ) );
215
-	}
216
-
217
-	/**
218
-	 * Status column
219
-	 *
220
-	 * @param WPInv_Subscription $item
221
-	 * @since       1.0.0
222
-	 * @return      string
223
-	 */
224
-	public function column_status( $item ) {
225
-		return $item->get_status_label_html();
226
-	}
227
-
228
-	/**
229
-	 * Subscription column
230
-	 *
231
-	 * @param WPInv_Subscription $item
232
-	 * @since       1.0.0
233
-	 * @return      string
234
-	 */
235
-	public function column_subscription( $item ) {
236
-
237
-		$username = __( '(Missing User)', 'invoicing' );
238
-
239
-		$user = get_userdata( $item->get_customer_id() );
240
-		$capabilities = wpinv_current_user_can_manage_invoicing();
241
-
242
-		if ( $user ) {
243
-			$username = sprintf(
244
-				'<a href="user-edit.php?user_id=%s">%s</a>',
245
-				absint( $user->ID ),
246
-				! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
247
-			);
248
-		}
249
-
250
-		// translators: $1: is opening link, $2: is subscription id number, $3: is closing link tag, $4: is user's name
251
-		$column_content = sprintf(
252
-			_x( '%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'invoicing' ),
253
-			'<a href="' . esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $item->get_id() ) ) ) . '">',
254
-			'<strong>' . esc_attr( $item->get_id() ) . '</strong>',
255
-			'</a>',
256
-			$username
257
-		);
258
-
259
-		$row_actions = array();
260
-
261
-		// View subscription.
262
-		$view_url    = esc_url( add_query_arg( 'id', $item->get_id(), admin_url( 'admin.php?page=wpinv-subscriptions' ) ) );
263
-		$row_actions['view'] = '<a href="' . $view_url . '">' . __( 'View Subscription', 'invoicing' ) . '</a>';
264
-
265
-		// View invoice.
266
-		$invoice = get_post( $item->get_parent_invoice_id() );
267
-
268
-		if ( ! empty( $invoice ) ) {
269
-			$invoice_url            = get_edit_post_link( $invoice );
270
-			$row_actions['invoice'] = '<a href="' . $invoice_url . '">' . __( 'View Invoice', 'invoicing' ) . '</a>';
271
-		}
272
-
273
-		$delete_url            = esc_url(
274
-			wp_nonce_url(
275
-				add_query_arg(
276
-					array(
277
-						'getpaid-admin-action' => 'subscription_manual_delete',
278
-						'id'                   => $item->get_id(),
279
-					)
280
-				),
281
-				'getpaid-nonce',
282
-				'getpaid-nonce'
283
-			)
284
-		);
285
-		$row_actions['delete'] = '<a class="text-danger" href="' . $delete_url . '">' . __( 'Delete Subscription', 'invoicing' ) . '</a>';
286
-
287
-		if ( ! $capabilities ) {
288
-			$row_actions = array();
289
-		}
290
-
291
-		$row_actions = $this->row_actions( apply_filters( 'getpaid_subscription_table_row_actions', $row_actions, $item ) );
292
-
293
-		return "<strong>$column_content</strong>" . $this->column_amount( $item ) . $row_actions;
294
-	}
295
-
296
-	/**
297
-	 * Renewal date column
298
-	 *
299
-	 * @param WPInv_Subscription $item
300
-	 * @since       1.0.0
301
-	 * @return      string
302
-	 */
303
-	public function column_renewal_date( $item ) {
304
-		return getpaid_format_date_value( $item->get_expiration() );
305
-	}
306
-
307
-	/**
308
-	 * Start date column
309
-	 *
310
-	 * @param WPInv_Subscription $item
311
-	 * @since       1.0.0
312
-	 * @return      string
313
-	 */
314
-	public function column_start_date( $item ) {
315
-
316
-		$gateway = $item->get_parent_invoice()->get_gateway_title();
317
-
318
-		if ( empty( $gateway ) ) {
319
-			return getpaid_format_date_value( $item->get_date_created() );
320
-		}
321
-
322
-		$url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $item );
323
-		if ( ! empty( $url ) ) {
324
-
325
-			return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
326
-				__( 'Via %s', 'invoicing' ),
327
-				'<strong><a href="' . esc_url( $url ) . '" target="_blank">' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</a></strong>'
328
-			);
329
-
330
-		}
331
-
332
-		return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
333
-			__( 'Via %s', 'invoicing' ),
334
-			'<strong>' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</strong>'
335
-		);
336
-
337
-	}
338
-
339
-	/**
340
-	 * Amount column
341
-	 *
342
-	 * @param WPInv_Subscription $item
343
-	 * @since       1.0.19
344
-	 * @return      string
345
-	 */
346
-	public static function column_amount( $item ) {
347
-		$amount = getpaid_get_formatted_subscription_amount( $item );
348
-		return "<span class='text-muted form-text mt-2 mb-2'>$amount</span>";
349
-	}
350
-
351
-	/**
352
-	 * Billing Times column
353
-	 *
354
-	 * @param WPInv_Subscription $item
355
-	 * @since       1.0.0
356
-	 * @return      string
357
-	 */
358
-	public function column_renewals( $item ) {
359
-		$max_bills = $item->get_bill_times();
360
-		return $item->get_times_billed() . ' / ' . ( empty( $max_bills ) ? '&infin;' : $max_bills );
361
-	}
362
-
363
-	/**
364
-	 * Product ID column
365
-	 *
366
-	 * @param WPInv_Subscription $item
367
-	 * @since       1.0.0
368
-	 * @return      string
369
-	 */
370
-	public function column_item( $item ) {
371
-		$subscription_group = getpaid_get_invoice_subscription_group( $item->get_parent_invoice_id(), $item->get_id() );
372
-
373
-		if ( empty( $subscription_group ) ) {
374
-			return $this->generate_item_markup( $item->get_product_id() );
375
-		}
376
-
377
-		$markup = array_map( array( $this, 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
378
-		return implode( ' | ', $markup );
379
-
380
-	}
381
-
382
-	/**
383
-	 * Generates the items markup.
384
-	 *
385
-	 * @param int $item_id
386
-	 * @since       1.0.0
387
-	 * @return      string
388
-	 */
389
-	public static function generate_item_markup( $item_id ) {
390
-		$item = get_post( $item_id );
391
-
392
-		if ( ! empty( $item ) ) {
393
-			$link = get_edit_post_link( $item );
394
-			$link = esc_url( $link );
395
-			$name = esc_html( get_the_title( $item ) );
396
-			return wpinv_current_user_can_manage_invoicing() ? "<a href='$link'>$name</a>" : $name;
397
-		} else {
398
-			return sprintf( __( 'Item #%s', 'invoicing' ), $item_id );
399
-		}
400
-
401
-	}
402
-
403
-	/**
404
-	 * Retrieve the current page number
405
-	 *
406
-	 * @return      int
407
-	 */
408
-	public function get_paged() {
409
-		return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
410
-	}
411
-
412
-	/**
413
-	 * Setup the final data for the table
414
-	 *
415
-	 */
416
-	public function prepare_items() {
417
-
418
-		$columns  = $this->get_columns();
419
-		$hidden   = array();
420
-		$sortable = $this->get_sortable_columns();
421
-
422
-		$this->_column_headers = array( $columns, $hidden, $sortable );
423
-
424
-		$this->set_pagination_args(
425
-			array(
426
-				'total_items' => $this->current_total_count,
427
-				'per_page'    => $this->per_page,
428
-				'total_pages' => ceil( $this->current_total_count / $this->per_page ),
429
-			)
430
-		);
431
-	}
432
-
433
-	/**
434
-	 * Table columns
435
-	 *
436
-	 * @return array
437
-	 */
438
-	public function get_columns() {
439
-		$columns = array(
440
-			'cb'           => '<input type="checkbox" />',
441
-			'subscription' => __( 'Subscription', 'invoicing' ),
442
-			'start_date'   => __( 'Start Date', 'invoicing' ),
443
-			'renewal_date' => __( 'Next Payment', 'invoicing' ),
444
-			'renewals'     => __( 'Payments', 'invoicing' ),
445
-			'item'         => __( 'Items', 'invoicing' ),
446
-			'status'       => __( 'Status', 'invoicing' ),
447
-		);
448
-
449
-		return apply_filters( 'manage_getpaid_subscriptions_table_columns', $columns );
450
-	}
451
-
452
-	/**
453
-	 * Sortable table columns.
454
-	 *
455
-	 * @return array
456
-	 */
457
-	public function get_sortable_columns() {
458
-		$sortable = array(
459
-			'subscription' => array( 'id', true ),
460
-			'start_date'   => array( 'created', true ),
461
-			'renewal_date' => array( 'expiration', true ),
462
-			'renewals'     => array( 'bill_times', true ),
463
-			'item'         => array( 'product_id', true ),
464
-			'status'       => array( 'status', true ),
465
-		);
466
-
467
-		return apply_filters( 'manage_getpaid_subscriptions_sortable_table_columns', $sortable );
468
-	}
469
-
470
-	/**
471
-	 * Whether the table has items to display or not
472
-	 *
473
-	 * @return bool
474
-	 */
475
-	public function has_items() {
476
-		return ! empty( $this->current_total_count );
477
-	}
478
-
479
-	/**
480
-	 * Processes bulk actions.
481
-	 *
482
-	 */
483
-	public function process_bulk_action() {
484
-
485
-	}
19
+    /**
20
+     * URL of this page
21
+     *
22
+     * @var   string
23
+     * @since 1.0.19
24
+     */
25
+    public $base_url;
26
+
27
+    /**
28
+     * Query
29
+     *
30
+     * @var   GetPaid_Subscriptions_Query
31
+     * @since 1.0.19
32
+     */
33
+    public $query;
34
+
35
+    /**
36
+     * Total subscriptions
37
+     *
38
+     * @var   string
39
+     * @since 1.0.0
40
+     */
41
+    public $total_count;
42
+
43
+    /**
44
+     * Current status subscriptions
45
+     *
46
+     * @var   string
47
+     * @since 1.0.0
48
+     */
49
+    public $current_total_count;
50
+
51
+    /**
52
+     * Status counts
53
+     *
54
+     * @var   array
55
+     * @since 1.0.19
56
+     */
57
+    public $status_counts;
58
+
59
+    /**
60
+     * Number of results to show per page
61
+     *
62
+     * @var   int
63
+     * @since 1.0.0
64
+     */
65
+    public $per_page = 10;
66
+
67
+    /**
68
+     *  Constructor function.
69
+     */
70
+    public function __construct() {
71
+
72
+        parent::__construct(
73
+            array(
74
+                'singular' => 'subscription',
75
+                'plural'   => 'subscriptions',
76
+            )
77
+        );
78
+
79
+        $this->process_bulk_action();
80
+
81
+        $this->prepare_query();
82
+
83
+        $this->base_url = remove_query_arg( 'status' );
84
+
85
+    }
86
+
87
+    /**
88
+     *  Prepares the display query
89
+     */
90
+    public function prepare_query() {
91
+
92
+        // Prepare query args.
93
+        $query = array(
94
+            'number'      => $this->per_page,
95
+            'paged'       => $this->get_paged(),
96
+            'status'      => ( isset( $_GET['status'] ) && array_key_exists( $_GET['status'], getpaid_get_subscription_statuses() ) ) ? sanitize_text_field( $_GET['status'] ) : 'all',
97
+            'orderby'     => ( isset( $_GET['orderby'] ) ) ? sanitize_text_field( $_GET['orderby'] ) : 'id',
98
+            'order'       => ( isset( $_GET['order'] ) ) ? sanitize_text_field( $_GET['order'] ) : 'DESC',
99
+            'customer_in' => $this->get_user_in(),
100
+        );
101
+
102
+        if ( is_array( $query['customer_in'] ) && empty( $query['customer_in'] ) ) {
103
+            $this->total_count         = 0;
104
+            $this->current_total_count = 0;
105
+            $this->items               = array();
106
+            $this->status_counts       = array();
107
+            return;
108
+        }
109
+
110
+        // Prepare class properties.
111
+        $this->query               = new GetPaid_Subscriptions_Query( $query );
112
+        $this->total_count         = $this->query->get_total();
113
+        $this->current_total_count = $this->query->get_total();
114
+        $this->items               = $this->query->get_results();
115
+        $this->status_counts       = getpaid_get_subscription_status_counts( $query );
116
+
117
+        if ( 'all' != $query['status'] ) {
118
+            unset( $query['status'] );
119
+            $this->total_count   = getpaid_get_subscriptions( $query, 'count' );
120
+        }
121
+
122
+    }
123
+
124
+    /**
125
+     * Get user in.
126
+     *
127
+     */
128
+    public function get_user_in() {
129
+
130
+        // Abort if no user.
131
+        if ( empty( $_GET['s'] ) ) {
132
+            return null;
133
+        }
134
+
135
+        // Or invalid user.
136
+        $user = wp_unslash( sanitize_text_field( $_REQUEST['s'] ) );
137
+
138
+        if ( empty( $user ) ) {
139
+            return null;
140
+        }
141
+
142
+        // Search matching users.
143
+        $user  = '*' . $user . '*';
144
+        $users = new WP_User_Query(
145
+            array(
146
+                'fields'      => 'ID',
147
+                'search'      => $user,
148
+                'count_total' => false,
149
+            )
150
+        );
151
+
152
+        return $users->get_results();
153
+    }
154
+
155
+    /**
156
+     * Gets the list of views available on this table.
157
+     *
158
+     * The format is an associative array:
159
+     * - `'id' => 'link'`
160
+     *
161
+     * @since 1.0.0
162
+     *
163
+     * @return array
164
+     */
165
+    public function get_views() {
166
+
167
+        $current  = isset( $_GET['status'] ) ? sanitize_text_field( $_GET['status'] ) : 'all';
168
+        $views    = array(
169
+
170
+            'all' => sprintf(
171
+                '<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
172
+                esc_url( add_query_arg( 'status', false, $this->base_url ) ),
173
+                $current === 'all' ? ' class="current"' : '',
174
+                __( 'All', 'invoicing' ),
175
+                $this->total_count
176
+            ),
177
+
178
+        );
179
+
180
+        foreach ( array_filter( $this->status_counts ) as $status => $count ) {
181
+
182
+            $views[ $status ] = sprintf(
183
+                '<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
184
+                esc_url( add_query_arg( 'status', urlencode( $status ), $this->base_url ) ),
185
+                $current === $status ? ' class="current"' : '',
186
+                esc_html( getpaid_get_subscription_status_label( $status ) ),
187
+                $count
188
+            );
189
+
190
+        }
191
+
192
+        return $views;
193
+
194
+    }
195
+
196
+    /**
197
+     * Render most columns
198
+     *
199
+     * @access      private
200
+     * @since       1.0.0
201
+     * @return      string
202
+     */
203
+    public function column_default( $item, $column_name ) {
204
+        return apply_filters( "getpaid_subscriptions_table_column_$column_name", $item->$column_name );
205
+    }
206
+
207
+    /**
208
+     * This is how checkbox column renders.
209
+     *
210
+     * @param WPInv_Subscription $item
211
+     * @return string
212
+     */
213
+    public function column_cb( $item ) {
214
+        return sprintf( '<input type="checkbox" name="id[]" value="%s" />', esc_html( $item->get_id() ) );
215
+    }
216
+
217
+    /**
218
+     * Status column
219
+     *
220
+     * @param WPInv_Subscription $item
221
+     * @since       1.0.0
222
+     * @return      string
223
+     */
224
+    public function column_status( $item ) {
225
+        return $item->get_status_label_html();
226
+    }
227
+
228
+    /**
229
+     * Subscription column
230
+     *
231
+     * @param WPInv_Subscription $item
232
+     * @since       1.0.0
233
+     * @return      string
234
+     */
235
+    public function column_subscription( $item ) {
236
+
237
+        $username = __( '(Missing User)', 'invoicing' );
238
+
239
+        $user = get_userdata( $item->get_customer_id() );
240
+        $capabilities = wpinv_current_user_can_manage_invoicing();
241
+
242
+        if ( $user ) {
243
+            $username = sprintf(
244
+                '<a href="user-edit.php?user_id=%s">%s</a>',
245
+                absint( $user->ID ),
246
+                ! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
247
+            );
248
+        }
249
+
250
+        // translators: $1: is opening link, $2: is subscription id number, $3: is closing link tag, $4: is user's name
251
+        $column_content = sprintf(
252
+            _x( '%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'invoicing' ),
253
+            '<a href="' . esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $item->get_id() ) ) ) . '">',
254
+            '<strong>' . esc_attr( $item->get_id() ) . '</strong>',
255
+            '</a>',
256
+            $username
257
+        );
258
+
259
+        $row_actions = array();
260
+
261
+        // View subscription.
262
+        $view_url    = esc_url( add_query_arg( 'id', $item->get_id(), admin_url( 'admin.php?page=wpinv-subscriptions' ) ) );
263
+        $row_actions['view'] = '<a href="' . $view_url . '">' . __( 'View Subscription', 'invoicing' ) . '</a>';
264
+
265
+        // View invoice.
266
+        $invoice = get_post( $item->get_parent_invoice_id() );
267
+
268
+        if ( ! empty( $invoice ) ) {
269
+            $invoice_url            = get_edit_post_link( $invoice );
270
+            $row_actions['invoice'] = '<a href="' . $invoice_url . '">' . __( 'View Invoice', 'invoicing' ) . '</a>';
271
+        }
272
+
273
+        $delete_url            = esc_url(
274
+            wp_nonce_url(
275
+                add_query_arg(
276
+                    array(
277
+                        'getpaid-admin-action' => 'subscription_manual_delete',
278
+                        'id'                   => $item->get_id(),
279
+                    )
280
+                ),
281
+                'getpaid-nonce',
282
+                'getpaid-nonce'
283
+            )
284
+        );
285
+        $row_actions['delete'] = '<a class="text-danger" href="' . $delete_url . '">' . __( 'Delete Subscription', 'invoicing' ) . '</a>';
286
+
287
+        if ( ! $capabilities ) {
288
+            $row_actions = array();
289
+        }
290
+
291
+        $row_actions = $this->row_actions( apply_filters( 'getpaid_subscription_table_row_actions', $row_actions, $item ) );
292
+
293
+        return "<strong>$column_content</strong>" . $this->column_amount( $item ) . $row_actions;
294
+    }
295
+
296
+    /**
297
+     * Renewal date column
298
+     *
299
+     * @param WPInv_Subscription $item
300
+     * @since       1.0.0
301
+     * @return      string
302
+     */
303
+    public function column_renewal_date( $item ) {
304
+        return getpaid_format_date_value( $item->get_expiration() );
305
+    }
306
+
307
+    /**
308
+     * Start date column
309
+     *
310
+     * @param WPInv_Subscription $item
311
+     * @since       1.0.0
312
+     * @return      string
313
+     */
314
+    public function column_start_date( $item ) {
315
+
316
+        $gateway = $item->get_parent_invoice()->get_gateway_title();
317
+
318
+        if ( empty( $gateway ) ) {
319
+            return getpaid_format_date_value( $item->get_date_created() );
320
+        }
321
+
322
+        $url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $item );
323
+        if ( ! empty( $url ) ) {
324
+
325
+            return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
326
+                __( 'Via %s', 'invoicing' ),
327
+                '<strong><a href="' . esc_url( $url ) . '" target="_blank">' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</a></strong>'
328
+            );
329
+
330
+        }
331
+
332
+        return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
333
+            __( 'Via %s', 'invoicing' ),
334
+            '<strong>' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</strong>'
335
+        );
336
+
337
+    }
338
+
339
+    /**
340
+     * Amount column
341
+     *
342
+     * @param WPInv_Subscription $item
343
+     * @since       1.0.19
344
+     * @return      string
345
+     */
346
+    public static function column_amount( $item ) {
347
+        $amount = getpaid_get_formatted_subscription_amount( $item );
348
+        return "<span class='text-muted form-text mt-2 mb-2'>$amount</span>";
349
+    }
350
+
351
+    /**
352
+     * Billing Times column
353
+     *
354
+     * @param WPInv_Subscription $item
355
+     * @since       1.0.0
356
+     * @return      string
357
+     */
358
+    public function column_renewals( $item ) {
359
+        $max_bills = $item->get_bill_times();
360
+        return $item->get_times_billed() . ' / ' . ( empty( $max_bills ) ? '&infin;' : $max_bills );
361
+    }
362
+
363
+    /**
364
+     * Product ID column
365
+     *
366
+     * @param WPInv_Subscription $item
367
+     * @since       1.0.0
368
+     * @return      string
369
+     */
370
+    public function column_item( $item ) {
371
+        $subscription_group = getpaid_get_invoice_subscription_group( $item->get_parent_invoice_id(), $item->get_id() );
372
+
373
+        if ( empty( $subscription_group ) ) {
374
+            return $this->generate_item_markup( $item->get_product_id() );
375
+        }
376
+
377
+        $markup = array_map( array( $this, 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
378
+        return implode( ' | ', $markup );
379
+
380
+    }
381
+
382
+    /**
383
+     * Generates the items markup.
384
+     *
385
+     * @param int $item_id
386
+     * @since       1.0.0
387
+     * @return      string
388
+     */
389
+    public static function generate_item_markup( $item_id ) {
390
+        $item = get_post( $item_id );
391
+
392
+        if ( ! empty( $item ) ) {
393
+            $link = get_edit_post_link( $item );
394
+            $link = esc_url( $link );
395
+            $name = esc_html( get_the_title( $item ) );
396
+            return wpinv_current_user_can_manage_invoicing() ? "<a href='$link'>$name</a>" : $name;
397
+        } else {
398
+            return sprintf( __( 'Item #%s', 'invoicing' ), $item_id );
399
+        }
400
+
401
+    }
402
+
403
+    /**
404
+     * Retrieve the current page number
405
+     *
406
+     * @return      int
407
+     */
408
+    public function get_paged() {
409
+        return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
410
+    }
411
+
412
+    /**
413
+     * Setup the final data for the table
414
+     *
415
+     */
416
+    public function prepare_items() {
417
+
418
+        $columns  = $this->get_columns();
419
+        $hidden   = array();
420
+        $sortable = $this->get_sortable_columns();
421
+
422
+        $this->_column_headers = array( $columns, $hidden, $sortable );
423
+
424
+        $this->set_pagination_args(
425
+            array(
426
+                'total_items' => $this->current_total_count,
427
+                'per_page'    => $this->per_page,
428
+                'total_pages' => ceil( $this->current_total_count / $this->per_page ),
429
+            )
430
+        );
431
+    }
432
+
433
+    /**
434
+     * Table columns
435
+     *
436
+     * @return array
437
+     */
438
+    public function get_columns() {
439
+        $columns = array(
440
+            'cb'           => '<input type="checkbox" />',
441
+            'subscription' => __( 'Subscription', 'invoicing' ),
442
+            'start_date'   => __( 'Start Date', 'invoicing' ),
443
+            'renewal_date' => __( 'Next Payment', 'invoicing' ),
444
+            'renewals'     => __( 'Payments', 'invoicing' ),
445
+            'item'         => __( 'Items', 'invoicing' ),
446
+            'status'       => __( 'Status', 'invoicing' ),
447
+        );
448
+
449
+        return apply_filters( 'manage_getpaid_subscriptions_table_columns', $columns );
450
+    }
451
+
452
+    /**
453
+     * Sortable table columns.
454
+     *
455
+     * @return array
456
+     */
457
+    public function get_sortable_columns() {
458
+        $sortable = array(
459
+            'subscription' => array( 'id', true ),
460
+            'start_date'   => array( 'created', true ),
461
+            'renewal_date' => array( 'expiration', true ),
462
+            'renewals'     => array( 'bill_times', true ),
463
+            'item'         => array( 'product_id', true ),
464
+            'status'       => array( 'status', true ),
465
+        );
466
+
467
+        return apply_filters( 'manage_getpaid_subscriptions_sortable_table_columns', $sortable );
468
+    }
469
+
470
+    /**
471
+     * Whether the table has items to display or not
472
+     *
473
+     * @return bool
474
+     */
475
+    public function has_items() {
476
+        return ! empty( $this->current_total_count );
477
+    }
478
+
479
+    /**
480
+     * Processes bulk actions.
481
+     *
482
+     */
483
+    public function process_bulk_action() {
484
+
485
+    }
486 486
 
487 487
 }
Please login to merge, or discard this patch.
Spacing   +95 added lines, -95 removed lines patch added patch discarded remove patch
@@ -3,11 +3,11 @@  discard block
 block discarded – undo
3 3
  * Displays a list of all subscriptions rules
4 4
  */
5 5
 
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
 exit;
8 8
 }
9 9
 
10
-if ( ! class_exists( 'WP_List_Table' ) ) {
10
+if (!class_exists('WP_List_Table')) {
11 11
 	include_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
12 12
 }
13 13
 
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
 
81 81
 		$this->prepare_query();
82 82
 
83
-		$this->base_url = remove_query_arg( 'status' );
83
+		$this->base_url = remove_query_arg('status');
84 84
 
85 85
 	}
86 86
 
@@ -93,13 +93,13 @@  discard block
 block discarded – undo
93 93
 		$query = array(
94 94
 			'number'      => $this->per_page,
95 95
 			'paged'       => $this->get_paged(),
96
-			'status'      => ( isset( $_GET['status'] ) && array_key_exists( $_GET['status'], getpaid_get_subscription_statuses() ) ) ? sanitize_text_field( $_GET['status'] ) : 'all',
97
-			'orderby'     => ( isset( $_GET['orderby'] ) ) ? sanitize_text_field( $_GET['orderby'] ) : 'id',
98
-			'order'       => ( isset( $_GET['order'] ) ) ? sanitize_text_field( $_GET['order'] ) : 'DESC',
96
+			'status'      => (isset($_GET['status']) && array_key_exists($_GET['status'], getpaid_get_subscription_statuses())) ? sanitize_text_field($_GET['status']) : 'all',
97
+			'orderby'     => (isset($_GET['orderby'])) ? sanitize_text_field($_GET['orderby']) : 'id',
98
+			'order'       => (isset($_GET['order'])) ? sanitize_text_field($_GET['order']) : 'DESC',
99 99
 			'customer_in' => $this->get_user_in(),
100 100
 		);
101 101
 
102
-		if ( is_array( $query['customer_in'] ) && empty( $query['customer_in'] ) ) {
102
+		if (is_array($query['customer_in']) && empty($query['customer_in'])) {
103 103
 			$this->total_count         = 0;
104 104
 			$this->current_total_count = 0;
105 105
 			$this->items               = array();
@@ -108,15 +108,15 @@  discard block
 block discarded – undo
108 108
 		}
109 109
 
110 110
 		// Prepare class properties.
111
-		$this->query               = new GetPaid_Subscriptions_Query( $query );
111
+		$this->query               = new GetPaid_Subscriptions_Query($query);
112 112
 		$this->total_count         = $this->query->get_total();
113 113
 		$this->current_total_count = $this->query->get_total();
114 114
 		$this->items               = $this->query->get_results();
115
-		$this->status_counts       = getpaid_get_subscription_status_counts( $query );
115
+		$this->status_counts       = getpaid_get_subscription_status_counts($query);
116 116
 
117
-		if ( 'all' != $query['status'] ) {
118
-			unset( $query['status'] );
119
-			$this->total_count   = getpaid_get_subscriptions( $query, 'count' );
117
+		if ('all' != $query['status']) {
118
+			unset($query['status']);
119
+			$this->total_count = getpaid_get_subscriptions($query, 'count');
120 120
 		}
121 121
 
122 122
 	}
@@ -128,14 +128,14 @@  discard block
 block discarded – undo
128 128
 	public function get_user_in() {
129 129
 
130 130
 		// Abort if no user.
131
-		if ( empty( $_GET['s'] ) ) {
131
+		if (empty($_GET['s'])) {
132 132
 			return null;
133 133
 		}
134 134
 
135 135
 		// Or invalid user.
136
-		$user = wp_unslash( sanitize_text_field( $_REQUEST['s'] ) );
136
+		$user = wp_unslash(sanitize_text_field($_REQUEST['s']));
137 137
 
138
-		if ( empty( $user ) ) {
138
+		if (empty($user)) {
139 139
 			return null;
140 140
 		}
141 141
 
@@ -164,26 +164,26 @@  discard block
 block discarded – undo
164 164
 	 */
165 165
 	public function get_views() {
166 166
 
167
-		$current  = isset( $_GET['status'] ) ? sanitize_text_field( $_GET['status'] ) : 'all';
167
+		$current  = isset($_GET['status']) ? sanitize_text_field($_GET['status']) : 'all';
168 168
 		$views    = array(
169 169
 
170 170
 			'all' => sprintf(
171 171
 				'<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
172
-				esc_url( add_query_arg( 'status', false, $this->base_url ) ),
172
+				esc_url(add_query_arg('status', false, $this->base_url)),
173 173
 				$current === 'all' ? ' class="current"' : '',
174
-				__( 'All', 'invoicing' ),
174
+				__('All', 'invoicing'),
175 175
 				$this->total_count
176 176
 			),
177 177
 
178 178
 		);
179 179
 
180
-		foreach ( array_filter( $this->status_counts ) as $status => $count ) {
180
+		foreach (array_filter($this->status_counts) as $status => $count) {
181 181
 
182
-			$views[ $status ] = sprintf(
182
+			$views[$status] = sprintf(
183 183
 				'<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
184
-				esc_url( add_query_arg( 'status', urlencode( $status ), $this->base_url ) ),
184
+				esc_url(add_query_arg('status', urlencode($status), $this->base_url)),
185 185
 				$current === $status ? ' class="current"' : '',
186
-				esc_html( getpaid_get_subscription_status_label( $status ) ),
186
+				esc_html(getpaid_get_subscription_status_label($status)),
187 187
 				$count
188 188
 			);
189 189
 
@@ -200,8 +200,8 @@  discard block
 block discarded – undo
200 200
 	 * @since       1.0.0
201 201
 	 * @return      string
202 202
 	 */
203
-	public function column_default( $item, $column_name ) {
204
-		return apply_filters( "getpaid_subscriptions_table_column_$column_name", $item->$column_name );
203
+	public function column_default($item, $column_name) {
204
+		return apply_filters("getpaid_subscriptions_table_column_$column_name", $item->$column_name);
205 205
 	}
206 206
 
207 207
 	/**
@@ -210,8 +210,8 @@  discard block
 block discarded – undo
210 210
 	 * @param WPInv_Subscription $item
211 211
 	 * @return string
212 212
 	 */
213
-	public function column_cb( $item ) {
214
-		return sprintf( '<input type="checkbox" name="id[]" value="%s" />', esc_html( $item->get_id() ) );
213
+	public function column_cb($item) {
214
+		return sprintf('<input type="checkbox" name="id[]" value="%s" />', esc_html($item->get_id()));
215 215
 	}
216 216
 
217 217
 	/**
@@ -221,7 +221,7 @@  discard block
 block discarded – undo
221 221
 	 * @since       1.0.0
222 222
 	 * @return      string
223 223
 	 */
224
-	public function column_status( $item ) {
224
+	public function column_status($item) {
225 225
 		return $item->get_status_label_html();
226 226
 	}
227 227
 
@@ -232,26 +232,26 @@  discard block
 block discarded – undo
232 232
 	 * @since       1.0.0
233 233
 	 * @return      string
234 234
 	 */
235
-	public function column_subscription( $item ) {
235
+	public function column_subscription($item) {
236 236
 
237
-		$username = __( '(Missing User)', 'invoicing' );
237
+		$username = __('(Missing User)', 'invoicing');
238 238
 
239
-		$user = get_userdata( $item->get_customer_id() );
239
+		$user = get_userdata($item->get_customer_id());
240 240
 		$capabilities = wpinv_current_user_can_manage_invoicing();
241 241
 
242
-		if ( $user ) {
242
+		if ($user) {
243 243
 			$username = sprintf(
244 244
 				'<a href="user-edit.php?user_id=%s">%s</a>',
245
-				absint( $user->ID ),
246
-				! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
245
+				absint($user->ID),
246
+				!empty($user->display_name) ? esc_html($user->display_name) : sanitize_email($user->user_email)
247 247
 			);
248 248
 		}
249 249
 
250 250
 		// translators: $1: is opening link, $2: is subscription id number, $3: is closing link tag, $4: is user's name
251 251
 		$column_content = sprintf(
252
-			_x( '%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'invoicing' ),
253
-			'<a href="' . esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $item->get_id() ) ) ) . '">',
254
-			'<strong>' . esc_attr( $item->get_id() ) . '</strong>',
252
+			_x('%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'invoicing'),
253
+			'<a href="' . esc_url(admin_url('admin.php?page=wpinv-subscriptions&id=' . absint($item->get_id()))) . '">',
254
+			'<strong>' . esc_attr($item->get_id()) . '</strong>',
255 255
 			'</a>',
256 256
 			$username
257 257
 		);
@@ -259,18 +259,18 @@  discard block
 block discarded – undo
259 259
 		$row_actions = array();
260 260
 
261 261
 		// View subscription.
262
-		$view_url    = esc_url( add_query_arg( 'id', $item->get_id(), admin_url( 'admin.php?page=wpinv-subscriptions' ) ) );
263
-		$row_actions['view'] = '<a href="' . $view_url . '">' . __( 'View Subscription', 'invoicing' ) . '</a>';
262
+		$view_url    = esc_url(add_query_arg('id', $item->get_id(), admin_url('admin.php?page=wpinv-subscriptions')));
263
+		$row_actions['view'] = '<a href="' . $view_url . '">' . __('View Subscription', 'invoicing') . '</a>';
264 264
 
265 265
 		// View invoice.
266
-		$invoice = get_post( $item->get_parent_invoice_id() );
266
+		$invoice = get_post($item->get_parent_invoice_id());
267 267
 
268
-		if ( ! empty( $invoice ) ) {
269
-			$invoice_url            = get_edit_post_link( $invoice );
270
-			$row_actions['invoice'] = '<a href="' . $invoice_url . '">' . __( 'View Invoice', 'invoicing' ) . '</a>';
268
+		if (!empty($invoice)) {
269
+			$invoice_url            = get_edit_post_link($invoice);
270
+			$row_actions['invoice'] = '<a href="' . $invoice_url . '">' . __('View Invoice', 'invoicing') . '</a>';
271 271
 		}
272 272
 
273
-		$delete_url            = esc_url(
273
+		$delete_url = esc_url(
274 274
 			wp_nonce_url(
275 275
 				add_query_arg(
276 276
 					array(
@@ -282,15 +282,15 @@  discard block
 block discarded – undo
282 282
 				'getpaid-nonce'
283 283
 			)
284 284
 		);
285
-		$row_actions['delete'] = '<a class="text-danger" href="' . $delete_url . '">' . __( 'Delete Subscription', 'invoicing' ) . '</a>';
285
+		$row_actions['delete'] = '<a class="text-danger" href="' . $delete_url . '">' . __('Delete Subscription', 'invoicing') . '</a>';
286 286
 
287
-		if ( ! $capabilities ) {
287
+		if (!$capabilities) {
288 288
 			$row_actions = array();
289 289
 		}
290 290
 
291
-		$row_actions = $this->row_actions( apply_filters( 'getpaid_subscription_table_row_actions', $row_actions, $item ) );
291
+		$row_actions = $this->row_actions(apply_filters('getpaid_subscription_table_row_actions', $row_actions, $item));
292 292
 
293
-		return "<strong>$column_content</strong>" . $this->column_amount( $item ) . $row_actions;
293
+		return "<strong>$column_content</strong>" . $this->column_amount($item) . $row_actions;
294 294
 	}
295 295
 
296 296
 	/**
@@ -300,8 +300,8 @@  discard block
 block discarded – undo
300 300
 	 * @since       1.0.0
301 301
 	 * @return      string
302 302
 	 */
303
-	public function column_renewal_date( $item ) {
304
-		return getpaid_format_date_value( $item->get_expiration() );
303
+	public function column_renewal_date($item) {
304
+		return getpaid_format_date_value($item->get_expiration());
305 305
 	}
306 306
 
307 307
 	/**
@@ -311,27 +311,27 @@  discard block
 block discarded – undo
311 311
 	 * @since       1.0.0
312 312
 	 * @return      string
313 313
 	 */
314
-	public function column_start_date( $item ) {
314
+	public function column_start_date($item) {
315 315
 
316 316
 		$gateway = $item->get_parent_invoice()->get_gateway_title();
317 317
 
318
-		if ( empty( $gateway ) ) {
319
-			return getpaid_format_date_value( $item->get_date_created() );
318
+		if (empty($gateway)) {
319
+			return getpaid_format_date_value($item->get_date_created());
320 320
 		}
321 321
 
322
-		$url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $item );
323
-		if ( ! empty( $url ) ) {
322
+		$url = apply_filters('getpaid_remote_subscription_profile_url', '', $item);
323
+		if (!empty($url)) {
324 324
 
325
-			return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
326
-				__( 'Via %s', 'invoicing' ),
327
-				'<strong><a href="' . esc_url( $url ) . '" target="_blank">' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</a></strong>'
325
+			return getpaid_format_date_value($item->get_date_created()) . '<br>' . sprintf(
326
+				__('Via %s', 'invoicing'),
327
+				'<strong><a href="' . esc_url($url) . '" target="_blank">' . esc_html($item->get_parent_invoice()->get_gateway_title()) . '</a></strong>'
328 328
 			);
329 329
 
330 330
 		}
331 331
 
332
-		return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
333
-			__( 'Via %s', 'invoicing' ),
334
-			'<strong>' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</strong>'
332
+		return getpaid_format_date_value($item->get_date_created()) . '<br>' . sprintf(
333
+			__('Via %s', 'invoicing'),
334
+			'<strong>' . esc_html($item->get_parent_invoice()->get_gateway_title()) . '</strong>'
335 335
 		);
336 336
 
337 337
 	}
@@ -343,8 +343,8 @@  discard block
 block discarded – undo
343 343
 	 * @since       1.0.19
344 344
 	 * @return      string
345 345
 	 */
346
-	public static function column_amount( $item ) {
347
-		$amount = getpaid_get_formatted_subscription_amount( $item );
346
+	public static function column_amount($item) {
347
+		$amount = getpaid_get_formatted_subscription_amount($item);
348 348
 		return "<span class='text-muted form-text mt-2 mb-2'>$amount</span>";
349 349
 	}
350 350
 
@@ -355,9 +355,9 @@  discard block
 block discarded – undo
355 355
 	 * @since       1.0.0
356 356
 	 * @return      string
357 357
 	 */
358
-	public function column_renewals( $item ) {
358
+	public function column_renewals($item) {
359 359
 		$max_bills = $item->get_bill_times();
360
-		return $item->get_times_billed() . ' / ' . ( empty( $max_bills ) ? '&infin;' : $max_bills );
360
+		return $item->get_times_billed() . ' / ' . (empty($max_bills) ? '&infin;' : $max_bills);
361 361
 	}
362 362
 
363 363
 	/**
@@ -367,15 +367,15 @@  discard block
 block discarded – undo
367 367
 	 * @since       1.0.0
368 368
 	 * @return      string
369 369
 	 */
370
-	public function column_item( $item ) {
371
-		$subscription_group = getpaid_get_invoice_subscription_group( $item->get_parent_invoice_id(), $item->get_id() );
370
+	public function column_item($item) {
371
+		$subscription_group = getpaid_get_invoice_subscription_group($item->get_parent_invoice_id(), $item->get_id());
372 372
 
373
-		if ( empty( $subscription_group ) ) {
374
-			return $this->generate_item_markup( $item->get_product_id() );
373
+		if (empty($subscription_group)) {
374
+			return $this->generate_item_markup($item->get_product_id());
375 375
 		}
376 376
 
377
-		$markup = array_map( array( $this, 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
378
-		return implode( ' | ', $markup );
377
+		$markup = array_map(array($this, 'generate_item_markup'), array_keys($subscription_group['items']));
378
+		return implode(' | ', $markup);
379 379
 
380 380
 	}
381 381
 
@@ -386,16 +386,16 @@  discard block
 block discarded – undo
386 386
 	 * @since       1.0.0
387 387
 	 * @return      string
388 388
 	 */
389
-	public static function generate_item_markup( $item_id ) {
390
-		$item = get_post( $item_id );
389
+	public static function generate_item_markup($item_id) {
390
+		$item = get_post($item_id);
391 391
 
392
-		if ( ! empty( $item ) ) {
393
-			$link = get_edit_post_link( $item );
394
-			$link = esc_url( $link );
395
-			$name = esc_html( get_the_title( $item ) );
392
+		if (!empty($item)) {
393
+			$link = get_edit_post_link($item);
394
+			$link = esc_url($link);
395
+			$name = esc_html(get_the_title($item));
396 396
 			return wpinv_current_user_can_manage_invoicing() ? "<a href='$link'>$name</a>" : $name;
397 397
 		} else {
398
-			return sprintf( __( 'Item #%s', 'invoicing' ), $item_id );
398
+			return sprintf(__('Item #%s', 'invoicing'), $item_id);
399 399
 		}
400 400
 
401 401
 	}
@@ -406,7 +406,7 @@  discard block
 block discarded – undo
406 406
 	 * @return      int
407 407
 	 */
408 408
 	public function get_paged() {
409
-		return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
409
+		return isset($_GET['paged']) ? absint($_GET['paged']) : 1;
410 410
 	}
411 411
 
412 412
 	/**
@@ -419,13 +419,13 @@  discard block
 block discarded – undo
419 419
 		$hidden   = array();
420 420
 		$sortable = $this->get_sortable_columns();
421 421
 
422
-		$this->_column_headers = array( $columns, $hidden, $sortable );
422
+		$this->_column_headers = array($columns, $hidden, $sortable);
423 423
 
424 424
 		$this->set_pagination_args(
425 425
 			array(
426 426
 				'total_items' => $this->current_total_count,
427 427
 				'per_page'    => $this->per_page,
428
-				'total_pages' => ceil( $this->current_total_count / $this->per_page ),
428
+				'total_pages' => ceil($this->current_total_count / $this->per_page),
429 429
 			)
430 430
 		);
431 431
 	}
@@ -438,15 +438,15 @@  discard block
 block discarded – undo
438 438
 	public function get_columns() {
439 439
 		$columns = array(
440 440
 			'cb'           => '<input type="checkbox" />',
441
-			'subscription' => __( 'Subscription', 'invoicing' ),
442
-			'start_date'   => __( 'Start Date', 'invoicing' ),
443
-			'renewal_date' => __( 'Next Payment', 'invoicing' ),
444
-			'renewals'     => __( 'Payments', 'invoicing' ),
445
-			'item'         => __( 'Items', 'invoicing' ),
446
-			'status'       => __( 'Status', 'invoicing' ),
441
+			'subscription' => __('Subscription', 'invoicing'),
442
+			'start_date'   => __('Start Date', 'invoicing'),
443
+			'renewal_date' => __('Next Payment', 'invoicing'),
444
+			'renewals'     => __('Payments', 'invoicing'),
445
+			'item'         => __('Items', 'invoicing'),
446
+			'status'       => __('Status', 'invoicing'),
447 447
 		);
448 448
 
449
-		return apply_filters( 'manage_getpaid_subscriptions_table_columns', $columns );
449
+		return apply_filters('manage_getpaid_subscriptions_table_columns', $columns);
450 450
 	}
451 451
 
452 452
 	/**
@@ -456,15 +456,15 @@  discard block
 block discarded – undo
456 456
 	 */
457 457
 	public function get_sortable_columns() {
458 458
 		$sortable = array(
459
-			'subscription' => array( 'id', true ),
460
-			'start_date'   => array( 'created', true ),
461
-			'renewal_date' => array( 'expiration', true ),
462
-			'renewals'     => array( 'bill_times', true ),
463
-			'item'         => array( 'product_id', true ),
464
-			'status'       => array( 'status', true ),
459
+			'subscription' => array('id', true),
460
+			'start_date'   => array('created', true),
461
+			'renewal_date' => array('expiration', true),
462
+			'renewals'     => array('bill_times', true),
463
+			'item'         => array('product_id', true),
464
+			'status'       => array('status', true),
465 465
 		);
466 466
 
467
-		return apply_filters( 'manage_getpaid_subscriptions_sortable_table_columns', $sortable );
467
+		return apply_filters('manage_getpaid_subscriptions_sortable_table_columns', $sortable);
468 468
 	}
469 469
 
470 470
 	/**
@@ -473,7 +473,7 @@  discard block
 block discarded – undo
473 473
 	 * @return bool
474 474
 	 */
475 475
 	public function has_items() {
476
-		return ! empty( $this->current_total_count );
476
+		return !empty($this->current_total_count);
477 477
 	}
478 478
 
479 479
 	/**
Please login to merge, or discard this patch.
invoicing.php 2 patches
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -19,16 +19,16 @@  discard block
 block discarded – undo
19 19
 
20 20
 // Define constants.
21 21
 if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) {
22
-	define( 'WPINV_PLUGIN_FILE', __FILE__ );
22
+    define( 'WPINV_PLUGIN_FILE', __FILE__ );
23 23
 }
24 24
 
25 25
 if ( ! defined( 'WPINV_VERSION' ) ) {
26
-	define( 'WPINV_VERSION', '2.8.12' );
26
+    define( 'WPINV_VERSION', '2.8.12' );
27 27
 }
28 28
 
29 29
 // Include the main Invoicing class.
30 30
 if ( ! class_exists( 'WPInv_Plugin', false ) ) {
31
-	require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
31
+    require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
32 32
 }
33 33
 
34 34
 /**
@@ -43,7 +43,7 @@  discard block
 block discarded – undo
43 43
         $GLOBALS['invoicing'] = new WPInv_Plugin();
44 44
     }
45 45
 
46
-	return $GLOBALS['invoicing'];
46
+    return $GLOBALS['invoicing'];
47 47
 }
48 48
 
49 49
 /**
Please login to merge, or discard this patch.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -15,20 +15,20 @@  discard block
 block discarded – undo
15 15
  * @package GetPaid
16 16
  */
17 17
 
18
-defined( 'ABSPATH' ) || exit;
18
+defined('ABSPATH') || exit;
19 19
 
20 20
 // Define constants.
21
-if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) {
22
-	define( 'WPINV_PLUGIN_FILE', __FILE__ );
21
+if (!defined('WPINV_PLUGIN_FILE')) {
22
+	define('WPINV_PLUGIN_FILE', __FILE__);
23 23
 }
24 24
 
25
-if ( ! defined( 'WPINV_VERSION' ) ) {
26
-	define( 'WPINV_VERSION', '2.8.12' );
25
+if (!defined('WPINV_VERSION')) {
26
+	define('WPINV_VERSION', '2.8.12');
27 27
 }
28 28
 
29 29
 // Include the main Invoicing class.
30
-if ( ! class_exists( 'WPInv_Plugin', false ) ) {
31
-	require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
30
+if (!class_exists('WPInv_Plugin', false)) {
31
+	require_once plugin_dir_path(WPINV_PLUGIN_FILE) . 'includes/class-wpinv.php';
32 32
 }
33 33
 
34 34
 /**
@@ -39,7 +39,7 @@  discard block
 block discarded – undo
39 39
  */
40 40
 function getpaid() {
41 41
 
42
-    if ( empty( $GLOBALS['invoicing'] ) ) {
42
+    if (empty($GLOBALS['invoicing'])) {
43 43
         $GLOBALS['invoicing'] = new WPInv_Plugin();
44 44
     }
45 45
 
@@ -52,9 +52,9 @@  discard block
 block discarded – undo
52 52
  * @since  2.0.8
53 53
  */
54 54
 function getpaid_deactivation_hook() {
55
-    update_option( 'wpinv_flush_permalinks', 1 );
55
+    update_option('wpinv_flush_permalinks', 1);
56 56
 }
57
-register_deactivation_hook( __FILE__, 'getpaid_deactivation_hook' );
57
+register_deactivation_hook(__FILE__, 'getpaid_deactivation_hook');
58 58
 
59 59
 /**
60 60
  * @deprecated
@@ -64,4 +64,4 @@  discard block
 block discarded – undo
64 64
 }
65 65
 
66 66
 // Kickstart the plugin.
67
-add_action( 'plugins_loaded', 'getpaid', -100 );
67
+add_action('plugins_loaded', 'getpaid', -100);
Please login to merge, or discard this patch.