Passed
Push — master ( 3984cd...e619e9 )
by Brian
04:26
created
vendor/ayecode/wp-ayecode-ui/includes/ayecode-ui-settings.php 1 patch
Indentation   +858 added lines, -858 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,201 +21,201 @@  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 = '1.0.1';
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 = "4.5.3";
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
-		 * Main AyeCode_UI_Settings Instance.
93
-		 *
94
-		 * Ensures only one instance of AyeCode_UI_Settings is loaded or can be loaded.
95
-		 *
96
-		 * @since 1.0.0
97
-		 * @static
98
-		 * @return AyeCode_UI_Settings - Main instance.
99
-		 */
100
-		public static function instance() {
101
-			if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) {
102
-
103
-				self::$instance = new AyeCode_UI_Settings;
104
-
105
-				add_action( 'init', array( self::$instance, 'init' ) ); // set settings
106
-
107
-				if ( is_admin() ) {
108
-					add_action( 'admin_menu', array( self::$instance, 'menu_item' ) );
109
-					add_action( 'admin_init', array( self::$instance, 'register_settings' ) );
110
-
111
-					// Maybe show example page
112
-					add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) );
113
-				}
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 = '1.0.1';
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 = "4.5.3";
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
+         * Main AyeCode_UI_Settings Instance.
93
+         *
94
+         * Ensures only one instance of AyeCode_UI_Settings is loaded or can be loaded.
95
+         *
96
+         * @since 1.0.0
97
+         * @static
98
+         * @return AyeCode_UI_Settings - Main instance.
99
+         */
100
+        public static function instance() {
101
+            if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) {
102
+
103
+                self::$instance = new AyeCode_UI_Settings;
104
+
105
+                add_action( 'init', array( self::$instance, 'init' ) ); // set settings
106
+
107
+                if ( is_admin() ) {
108
+                    add_action( 'admin_menu', array( self::$instance, 'menu_item' ) );
109
+                    add_action( 'admin_init', array( self::$instance, 'register_settings' ) );
110
+
111
+                    // Maybe show example page
112
+                    add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) );
113
+                }
114 114
 
115
-				add_action( 'customize_register', array( self::$instance, 'customizer_settings' ));
116
-
117
-				do_action( 'ayecode_ui_settings_loaded' );
118
-			}
119
-
120
-			return self::$instance;
121
-		}
122
-
123
-		/**
124
-		 * Setup some constants.
125
-		 */
126
-		public function constants(){
127
-			define('AUI_PRIMARY_COLOR_ORIGINAL', "#1e73be");
128
-			define('AUI_SECONDARY_COLOR_ORIGINAL', '#6c757d');
129
-			if (!defined('AUI_PRIMARY_COLOR')) define('AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL);
130
-			if (!defined('AUI_SECONDARY_COLOR')) define('AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL);
131
-		}
132
-
133
-		/**
134
-		 * Initiate the settings and add the required action hooks.
135
-		 */
136
-		public function init() {
137
-			$this->constants();
138
-			$this->settings = $this->get_settings();
139
-			$this->url = $this->get_url();
140
-
141
-			/**
142
-			 * Maybe load CSS
143
-			 *
144
-			 * We load super early in case there is a theme version that might change the colors
145
-			 */
146
-			if ( $this->settings['css'] ) {
147
-				add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), 1 );
148
-			}
149
-			if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) {
150
-				add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 );
151
-			}
152
-
153
-			// maybe load JS
154
-			if ( $this->settings['js'] ) {
155
-				add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 );
156
-			}
157
-			if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) {
158
-				add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 );
159
-			}
160
-
161
-			// Maybe set the HTML font size
162
-			if ( $this->settings['html_font_size'] ) {
163
-				add_action( 'wp_footer', array( $this, 'html_font_size' ), 10 );
164
-			}
165
-
166
-
167
-		}
168
-
169
-		/**
170
-		 * Check if we should load the admin scripts or not.
171
-		 *
172
-		 * @return bool
173
-		 */
174
-		public function load_admin_scripts(){
175
-			$result = true;
176
-
177
-			if(!empty($this->settings['disable_admin'])){
178
-				$url_parts = explode("\n",$this->settings['disable_admin']);
179
-				foreach($url_parts as $part){
180
-					if( strpos($_SERVER['REQUEST_URI'], trim($part)) !== false ){
181
-						return false; // return early, no point checking further
182
-					}
183
-				}
184
-			}
115
+                add_action( 'customize_register', array( self::$instance, 'customizer_settings' ));
116
+
117
+                do_action( 'ayecode_ui_settings_loaded' );
118
+            }
119
+
120
+            return self::$instance;
121
+        }
122
+
123
+        /**
124
+         * Setup some constants.
125
+         */
126
+        public function constants(){
127
+            define('AUI_PRIMARY_COLOR_ORIGINAL', "#1e73be");
128
+            define('AUI_SECONDARY_COLOR_ORIGINAL', '#6c757d');
129
+            if (!defined('AUI_PRIMARY_COLOR')) define('AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL);
130
+            if (!defined('AUI_SECONDARY_COLOR')) define('AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL);
131
+        }
132
+
133
+        /**
134
+         * Initiate the settings and add the required action hooks.
135
+         */
136
+        public function init() {
137
+            $this->constants();
138
+            $this->settings = $this->get_settings();
139
+            $this->url = $this->get_url();
140
+
141
+            /**
142
+             * Maybe load CSS
143
+             *
144
+             * We load super early in case there is a theme version that might change the colors
145
+             */
146
+            if ( $this->settings['css'] ) {
147
+                add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), 1 );
148
+            }
149
+            if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) {
150
+                add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 );
151
+            }
152
+
153
+            // maybe load JS
154
+            if ( $this->settings['js'] ) {
155
+                add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 );
156
+            }
157
+            if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) {
158
+                add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 );
159
+            }
160
+
161
+            // Maybe set the HTML font size
162
+            if ( $this->settings['html_font_size'] ) {
163
+                add_action( 'wp_footer', array( $this, 'html_font_size' ), 10 );
164
+            }
165
+
166
+
167
+        }
168
+
169
+        /**
170
+         * Check if we should load the admin scripts or not.
171
+         *
172
+         * @return bool
173
+         */
174
+        public function load_admin_scripts(){
175
+            $result = true;
176
+
177
+            if(!empty($this->settings['disable_admin'])){
178
+                $url_parts = explode("\n",$this->settings['disable_admin']);
179
+                foreach($url_parts as $part){
180
+                    if( strpos($_SERVER['REQUEST_URI'], trim($part)) !== false ){
181
+                        return false; // return early, no point checking further
182
+                    }
183
+                }
184
+            }
185 185
 
186
-			return $result;
187
-		}
186
+            return $result;
187
+        }
188 188
 
189
-		/**
190
-		 * Add a html font size to the footer.
191
-		 */
192
-		public function html_font_size(){
193
-			$this->settings = $this->get_settings();
194
-			echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>";
195
-		}
189
+        /**
190
+         * Add a html font size to the footer.
191
+         */
192
+        public function html_font_size(){
193
+            $this->settings = $this->get_settings();
194
+            echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>";
195
+        }
196 196
 
197
-		/**
198
-		 * Adds the styles.
199
-		 */
200
-		public function enqueue_style() {
197
+        /**
198
+         * Adds the styles.
199
+         */
200
+        public function enqueue_style() {
201 201
 
202
-			$css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend';
202
+            $css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend';
203 203
 
204
-			$rtl = is_rtl() ? '-rtl' : '';
204
+            $rtl = is_rtl() ? '-rtl' : '';
205 205
 
206
-			if($this->settings[$css_setting]){
207
-				$compatibility = $this->settings[$css_setting]=='core' ? false : true;
208
-				$url = $this->settings[$css_setting]=='core' ? $this->url.'assets/css/ayecode-ui'.$rtl.'.css' : $this->url.'assets/css/ayecode-ui-compatibility'.$rtl.'.css';
209
-				wp_register_style( 'ayecode-ui', $url, array(), $this->latest );
210
-				wp_enqueue_style( 'ayecode-ui' );
206
+            if($this->settings[$css_setting]){
207
+                $compatibility = $this->settings[$css_setting]=='core' ? false : true;
208
+                $url = $this->settings[$css_setting]=='core' ? $this->url.'assets/css/ayecode-ui'.$rtl.'.css' : $this->url.'assets/css/ayecode-ui-compatibility'.$rtl.'.css';
209
+                wp_register_style( 'ayecode-ui', $url, array(), $this->latest );
210
+                wp_enqueue_style( 'ayecode-ui' );
211 211
 
212
-				// flatpickr
213
-				wp_register_style( 'flatpickr', $this->url.'assets/css/flatpickr.min.css', array(), $this->latest );
212
+                // flatpickr
213
+                wp_register_style( 'flatpickr', $this->url.'assets/css/flatpickr.min.css', array(), $this->latest );
214 214
 
215 215
 
216
-				// fix some wp-admin issues
217
-				if(is_admin()){
218
-					$custom_css = "
216
+                // fix some wp-admin issues
217
+                if(is_admin()){
218
+                    $custom_css = "
219 219
                 body{
220 220
                     background-color: #f1f1f1;
221 221
                     font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;
@@ -251,29 +251,29 @@  discard block
 block discarded – undo
251 251
 				}
252 252
                 ";
253 253
 
254
-					// @todo, remove once fixed :: fix for this bug https://github.com/WordPress/gutenberg/issues/14377
255
-					$custom_css .= "
254
+                    // @todo, remove once fixed :: fix for this bug https://github.com/WordPress/gutenberg/issues/14377
255
+                    $custom_css .= "
256 256
 						.edit-post-sidebar input[type=color].components-text-control__input{
257 257
 						    padding: 0;
258 258
 						}
259 259
 					";
260
-					wp_add_inline_style( 'ayecode-ui', $custom_css );
261
-				}
260
+                    wp_add_inline_style( 'ayecode-ui', $custom_css );
261
+                }
262 262
 
263
-				// custom changes
264
-				wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) );
263
+                // custom changes
264
+                wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) );
265 265
 
266
-			}
267
-		}
266
+            }
267
+        }
268 268
 
269
-		/**
270
-		 * Get inline script used if bootstrap enqueued
271
-		 *
272
-		 * If this remains small then its best to use this than to add another JS file.
273
-		 */
274
-		public function inline_script(){
275
-			ob_start();
276
-			?>
269
+        /**
270
+         * Get inline script used if bootstrap enqueued
271
+         *
272
+         * If this remains small then its best to use this than to add another JS file.
273
+         */
274
+        public function inline_script(){
275
+            ob_start();
276
+            ?>
277 277
 			<script>
278 278
 				
279 279
 				/**
@@ -760,25 +760,25 @@  discard block
 block discarded – undo
760 760
 
761 761
 			</script>
762 762
 			<?php
763
-			$output = ob_get_clean();
763
+            $output = ob_get_clean();
764 764
 
765
-			/*
765
+            /*
766 766
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
767 767
 			 */
768
-			return str_replace( array(
769
-				'<script>',
770
-				'</script>'
771
-			), '', $output );
772
-		}
773
-
774
-		/**
775
-		 * Get inline script used if bootstrap file browser enqueued.
776
-		 *
777
-		 * If this remains small then its best to use this than to add another JS file.
778
-		 */
779
-		public function inline_script_file_browser(){
780
-			ob_start();
781
-			?>
768
+            return str_replace( array(
769
+                '<script>',
770
+                '</script>'
771
+            ), '', $output );
772
+        }
773
+
774
+        /**
775
+         * Get inline script used if bootstrap file browser enqueued.
776
+         *
777
+         * If this remains small then its best to use this than to add another JS file.
778
+         */
779
+        public function inline_script_file_browser(){
780
+            ob_start();
781
+            ?>
782 782
 			<script>
783 783
 				// run on doc ready
784 784
 				jQuery(document).ready(function () {
@@ -786,184 +786,184 @@  discard block
 block discarded – undo
786 786
 				});
787 787
 			</script>
788 788
 			<?php
789
-			$output = ob_get_clean();
789
+            $output = ob_get_clean();
790 790
 
791
-			/*
791
+            /*
792 792
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
793 793
 			 */
794
-			return str_replace( array(
795
-				'<script>',
796
-				'</script>'
797
-			), '', $output );
798
-		}
799
-
800
-		/**
801
-		 * Adds the Font Awesome JS.
802
-		 */
803
-		public function enqueue_scripts() {
804
-
805
-			$js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend';
806
-
807
-			// select2
808
-			wp_register_script( 'select2', $this->url.'assets/js/select2.min.js', array('jquery'), $this->select2_version );
809
-
810
-			// flatpickr
811
-			wp_register_script( 'flatpickr', $this->url.'assets/js/flatpickr.min.js', array(), $this->latest );
812
-
813
-			// Bootstrap file browser
814
-			wp_register_script( 'aui-custom-file-input', $url = $this->url.'assets/js/bs-custom-file-input.min.js', array('jquery'), $this->select2_version );
815
-			wp_add_inline_script( 'aui-custom-file-input', $this->inline_script_file_browser() );
816
-
817
-			$load_inline = false;
818
-
819
-			if($this->settings[$js_setting]=='core-popper'){
820
-				// Bootstrap bundle
821
-				$url = $this->url.'assets/js/bootstrap.bundle.min.js';
822
-				wp_register_script( 'bootstrap-js-bundle', $url, array('select2','jquery'), $this->latest );
823
-				// if in admin then add to footer for compatibility.
824
-				is_admin() ? wp_enqueue_script( 'bootstrap-js-bundle', '', null, null, true ) : wp_enqueue_script( 'bootstrap-js-bundle');
825
-				$script = $this->inline_script();
826
-				wp_add_inline_script( 'bootstrap-js-bundle', $script );
827
-			}elseif($this->settings[$js_setting]=='popper'){
828
-				$url = $this->url.'assets/js/popper.min.js';
829
-				wp_register_script( 'bootstrap-js-popper', $url, array('select2','jquery'), $this->latest );
830
-				wp_enqueue_script( 'bootstrap-js-popper' );
831
-				$load_inline = true;
832
-			}else{
833
-				$load_inline = true;
834
-			}
835
-
836
-			// Load needed inline scripts by faking the loading of a script if the main script is not being loaded
837
-			if($load_inline){
838
-				wp_register_script( 'bootstrap-dummy', '',array('select2','jquery') );
839
-				wp_enqueue_script( 'bootstrap-dummy' );
840
-				$script = $this->inline_script();
841
-				wp_add_inline_script( 'bootstrap-dummy', $script  );
842
-			}
843
-
844
-		}
845
-
846
-		/**
847
-		 * Enqueue flatpickr if called.
848
-		 */
849
-		public function enqueue_flatpickr(){
850
-			wp_enqueue_style( 'flatpickr' );
851
-			wp_enqueue_script( 'flatpickr' );
852
-		}
853
-
854
-		/**
855
-		 * Get the url path to the current folder.
856
-		 *
857
-		 * @return string
858
-		 */
859
-		public function get_url() {
860
-
861
-			$url = '';
862
-			// check if we are inside a plugin
863
-			$file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) );
864
-
865
-			// add check in-case user has changed wp-content dir name.
866
-			$wp_content_folder_name = basename(WP_CONTENT_DIR);
867
-			$dir_parts = explode("/$wp_content_folder_name/",$file_dir);
868
-			$url_parts = explode("/$wp_content_folder_name/",plugins_url());
869
-
870
-			if(!empty($url_parts[0]) && !empty($dir_parts[1])){
871
-				$url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] );
872
-			}
873
-
874
-			return $url;
875
-		}
876
-
877
-		/**
878
-		 * Register the database settings with WordPress.
879
-		 */
880
-		public function register_settings() {
881
-			register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' );
882
-		}
883
-
884
-		/**
885
-		 * Add the WordPress settings menu item.
886
-		 * @since 1.0.10 Calling function name direct will fail theme check so we don't.
887
-		 */
888
-		public function menu_item() {
889
-			$menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme
890
-			call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array(
891
-				$this,
892
-				'settings_page'
893
-			) );
894
-		}
895
-
896
-		/**
897
-		 * Get a list of themes and their default JS settings.
898
-		 *
899
-		 * @return array
900
-		 */
901
-		public function theme_js_settings(){
902
-			return array(
903
-				'ayetheme' => 'popper',
904
-				'listimia' => 'required',
905
-				'listimia_backend' => 'core-popper',
906
-				'avada'    => 'required',
907
-			);
908
-		}
909
-
910
-		/**
911
-		 * Get the current Font Awesome output settings.
912
-		 *
913
-		 * @return array The array of settings.
914
-		 */
915
-		public function get_settings() {
916
-
917
-			$db_settings = get_option( 'ayecode-ui-settings' );
918
-			$js_default = 'core-popper';
919
-			$js_default_backend = $js_default;
920
-
921
-			// maybe set defaults (if no settings set)
922
-			if(empty($db_settings)){
923
-				$active_theme = strtolower( get_template() ); // active parent theme.
924
-				$theme_js_settings = self::theme_js_settings();
925
-				if(isset($theme_js_settings[$active_theme])){
926
-					$js_default = $theme_js_settings[$active_theme];
927
-					$js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default;
928
-				}
929
-			}
930
-
931
-			$defaults = array(
932
-				'css'       => 'compatibility', // core, compatibility
933
-				'js'        => $js_default, // js to load, core-popper, popper
934
-				'html_font_size'        => '16', // js to load, core-popper, popper
935
-				'css_backend'       => 'compatibility', // core, compatibility
936
-				'js_backend'        => $js_default_backend, // js to load, core-popper, popper
937
-				'disable_admin'     =>  '', // URL snippets to disable loading on admin
938
-			);
939
-
940
-			$settings = wp_parse_args( $db_settings, $defaults );
941
-
942
-			/**
943
-			 * Filter the Bootstrap settings.
944
-			 *
945
-			 * @todo if we add this filer people might use it and then it defeates the purpose of this class :/
946
-			 */
947
-			return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults );
948
-		}
949
-
950
-
951
-		/**
952
-		 * The settings page html output.
953
-		 */
954
-		public function settings_page() {
955
-			if ( ! current_user_can( 'manage_options' ) ) {
956
-				wp_die( __( 'You do not have sufficient permissions to access this page.', 'aui' ) );
957
-			}
958
-			?>
794
+            return str_replace( array(
795
+                '<script>',
796
+                '</script>'
797
+            ), '', $output );
798
+        }
799
+
800
+        /**
801
+         * Adds the Font Awesome JS.
802
+         */
803
+        public function enqueue_scripts() {
804
+
805
+            $js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend';
806
+
807
+            // select2
808
+            wp_register_script( 'select2', $this->url.'assets/js/select2.min.js', array('jquery'), $this->select2_version );
809
+
810
+            // flatpickr
811
+            wp_register_script( 'flatpickr', $this->url.'assets/js/flatpickr.min.js', array(), $this->latest );
812
+
813
+            // Bootstrap file browser
814
+            wp_register_script( 'aui-custom-file-input', $url = $this->url.'assets/js/bs-custom-file-input.min.js', array('jquery'), $this->select2_version );
815
+            wp_add_inline_script( 'aui-custom-file-input', $this->inline_script_file_browser() );
816
+
817
+            $load_inline = false;
818
+
819
+            if($this->settings[$js_setting]=='core-popper'){
820
+                // Bootstrap bundle
821
+                $url = $this->url.'assets/js/bootstrap.bundle.min.js';
822
+                wp_register_script( 'bootstrap-js-bundle', $url, array('select2','jquery'), $this->latest );
823
+                // if in admin then add to footer for compatibility.
824
+                is_admin() ? wp_enqueue_script( 'bootstrap-js-bundle', '', null, null, true ) : wp_enqueue_script( 'bootstrap-js-bundle');
825
+                $script = $this->inline_script();
826
+                wp_add_inline_script( 'bootstrap-js-bundle', $script );
827
+            }elseif($this->settings[$js_setting]=='popper'){
828
+                $url = $this->url.'assets/js/popper.min.js';
829
+                wp_register_script( 'bootstrap-js-popper', $url, array('select2','jquery'), $this->latest );
830
+                wp_enqueue_script( 'bootstrap-js-popper' );
831
+                $load_inline = true;
832
+            }else{
833
+                $load_inline = true;
834
+            }
835
+
836
+            // Load needed inline scripts by faking the loading of a script if the main script is not being loaded
837
+            if($load_inline){
838
+                wp_register_script( 'bootstrap-dummy', '',array('select2','jquery') );
839
+                wp_enqueue_script( 'bootstrap-dummy' );
840
+                $script = $this->inline_script();
841
+                wp_add_inline_script( 'bootstrap-dummy', $script  );
842
+            }
843
+
844
+        }
845
+
846
+        /**
847
+         * Enqueue flatpickr if called.
848
+         */
849
+        public function enqueue_flatpickr(){
850
+            wp_enqueue_style( 'flatpickr' );
851
+            wp_enqueue_script( 'flatpickr' );
852
+        }
853
+
854
+        /**
855
+         * Get the url path to the current folder.
856
+         *
857
+         * @return string
858
+         */
859
+        public function get_url() {
860
+
861
+            $url = '';
862
+            // check if we are inside a plugin
863
+            $file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) );
864
+
865
+            // add check in-case user has changed wp-content dir name.
866
+            $wp_content_folder_name = basename(WP_CONTENT_DIR);
867
+            $dir_parts = explode("/$wp_content_folder_name/",$file_dir);
868
+            $url_parts = explode("/$wp_content_folder_name/",plugins_url());
869
+
870
+            if(!empty($url_parts[0]) && !empty($dir_parts[1])){
871
+                $url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] );
872
+            }
873
+
874
+            return $url;
875
+        }
876
+
877
+        /**
878
+         * Register the database settings with WordPress.
879
+         */
880
+        public function register_settings() {
881
+            register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' );
882
+        }
883
+
884
+        /**
885
+         * Add the WordPress settings menu item.
886
+         * @since 1.0.10 Calling function name direct will fail theme check so we don't.
887
+         */
888
+        public function menu_item() {
889
+            $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme
890
+            call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array(
891
+                $this,
892
+                'settings_page'
893
+            ) );
894
+        }
895
+
896
+        /**
897
+         * Get a list of themes and their default JS settings.
898
+         *
899
+         * @return array
900
+         */
901
+        public function theme_js_settings(){
902
+            return array(
903
+                'ayetheme' => 'popper',
904
+                'listimia' => 'required',
905
+                'listimia_backend' => 'core-popper',
906
+                'avada'    => 'required',
907
+            );
908
+        }
909
+
910
+        /**
911
+         * Get the current Font Awesome output settings.
912
+         *
913
+         * @return array The array of settings.
914
+         */
915
+        public function get_settings() {
916
+
917
+            $db_settings = get_option( 'ayecode-ui-settings' );
918
+            $js_default = 'core-popper';
919
+            $js_default_backend = $js_default;
920
+
921
+            // maybe set defaults (if no settings set)
922
+            if(empty($db_settings)){
923
+                $active_theme = strtolower( get_template() ); // active parent theme.
924
+                $theme_js_settings = self::theme_js_settings();
925
+                if(isset($theme_js_settings[$active_theme])){
926
+                    $js_default = $theme_js_settings[$active_theme];
927
+                    $js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default;
928
+                }
929
+            }
930
+
931
+            $defaults = array(
932
+                'css'       => 'compatibility', // core, compatibility
933
+                'js'        => $js_default, // js to load, core-popper, popper
934
+                'html_font_size'        => '16', // js to load, core-popper, popper
935
+                'css_backend'       => 'compatibility', // core, compatibility
936
+                'js_backend'        => $js_default_backend, // js to load, core-popper, popper
937
+                'disable_admin'     =>  '', // URL snippets to disable loading on admin
938
+            );
939
+
940
+            $settings = wp_parse_args( $db_settings, $defaults );
941
+
942
+            /**
943
+             * Filter the Bootstrap settings.
944
+             *
945
+             * @todo if we add this filer people might use it and then it defeates the purpose of this class :/
946
+             */
947
+            return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults );
948
+        }
949
+
950
+
951
+        /**
952
+         * The settings page html output.
953
+         */
954
+        public function settings_page() {
955
+            if ( ! current_user_can( 'manage_options' ) ) {
956
+                wp_die( __( 'You do not have sufficient permissions to access this page.', 'aui' ) );
957
+            }
958
+            ?>
959 959
 			<div class="wrap">
960 960
 				<h1><?php echo $this->name; ?></h1>
961 961
 				<p><?php _e("Here you can adjust settings if you are having compatibility issues.","aui");?></p>
962 962
 				<form method="post" action="options.php">
963 963
 					<?php
964
-					settings_fields( 'ayecode-ui-settings' );
965
-					do_settings_sections( 'ayecode-ui-settings' );
966
-					?>
964
+                    settings_fields( 'ayecode-ui-settings' );
965
+                    do_settings_sections( 'ayecode-ui-settings' );
966
+                    ?>
967 967
 
968 968
 					<h2><?php _e( 'Frontend', 'aui' ); ?></h2>
969 969
 					<table class="form-table wpbs-table-settings">
@@ -1043,55 +1043,55 @@  discard block
 block discarded – undo
1043 1043
 					</table>
1044 1044
 
1045 1045
 					<?php
1046
-					submit_button();
1047
-					?>
1046
+                    submit_button();
1047
+                    ?>
1048 1048
 				</form>
1049 1049
 
1050 1050
 				<div id="wpbs-version"><?php echo $this->version; ?></div>
1051 1051
 			</div>
1052 1052
 
1053 1053
 			<?php
1054
-		}
1055
-
1056
-		public function customizer_settings($wp_customize){
1057
-			$wp_customize->add_section('aui_settings', array(
1058
-				'title'    => __('AyeCode UI','aui'),
1059
-				'priority' => 120,
1060
-			));
1061
-
1062
-			//  =============================
1063
-			//  = Color Picker              =
1064
-			//  =============================
1065
-			$wp_customize->add_setting('aui_options[color_primary]', array(
1066
-				'default'           => AUI_PRIMARY_COLOR,
1067
-				'sanitize_callback' => 'sanitize_hex_color',
1068
-				'capability'        => 'edit_theme_options',
1069
-				'type'              => 'option',
1070
-				'transport'         => 'refresh',
1071
-			));
1072
-			$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array(
1073
-				'label'    => __('Primary Color','aui'),
1074
-				'section'  => 'aui_settings',
1075
-				'settings' => 'aui_options[color_primary]',
1076
-			)));
1077
-
1078
-			$wp_customize->add_setting('aui_options[color_secondary]', array(
1079
-				'default'           => '#6c757d',
1080
-				'sanitize_callback' => 'sanitize_hex_color',
1081
-				'capability'        => 'edit_theme_options',
1082
-				'type'              => 'option',
1083
-				'transport'         => 'refresh',
1084
-			));
1085
-			$wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array(
1086
-				'label'    => __('Secondary Color','aui'),
1087
-				'section'  => 'aui_settings',
1088
-				'settings' => 'aui_options[color_secondary]',
1089
-			)));
1090
-		}
1091
-
1092
-		public static function bs3_compat_css() {
1093
-			ob_start();
1094
-			?>
1054
+        }
1055
+
1056
+        public function customizer_settings($wp_customize){
1057
+            $wp_customize->add_section('aui_settings', array(
1058
+                'title'    => __('AyeCode UI','aui'),
1059
+                'priority' => 120,
1060
+            ));
1061
+
1062
+            //  =============================
1063
+            //  = Color Picker              =
1064
+            //  =============================
1065
+            $wp_customize->add_setting('aui_options[color_primary]', array(
1066
+                'default'           => AUI_PRIMARY_COLOR,
1067
+                'sanitize_callback' => 'sanitize_hex_color',
1068
+                'capability'        => 'edit_theme_options',
1069
+                'type'              => 'option',
1070
+                'transport'         => 'refresh',
1071
+            ));
1072
+            $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array(
1073
+                'label'    => __('Primary Color','aui'),
1074
+                'section'  => 'aui_settings',
1075
+                'settings' => 'aui_options[color_primary]',
1076
+            )));
1077
+
1078
+            $wp_customize->add_setting('aui_options[color_secondary]', array(
1079
+                'default'           => '#6c757d',
1080
+                'sanitize_callback' => 'sanitize_hex_color',
1081
+                'capability'        => 'edit_theme_options',
1082
+                'type'              => 'option',
1083
+                'transport'         => 'refresh',
1084
+            ));
1085
+            $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array(
1086
+                'label'    => __('Secondary Color','aui'),
1087
+                'section'  => 'aui_settings',
1088
+                'settings' => 'aui_options[color_secondary]',
1089
+            )));
1090
+        }
1091
+
1092
+        public static function bs3_compat_css() {
1093
+            ob_start();
1094
+            ?>
1095 1095
 			/* Bootstrap 3 compatibility */
1096 1096
 			body.modal-open .modal-backdrop.show:not(.in) {opacity:0.5;}
1097 1097
 			body.modal-open .modal.show:not(.in)  {opacity:1;z-index: 99999}
@@ -1109,453 +1109,453 @@  discard block
 block discarded – undo
1109 1109
 
1110 1110
 			body.modal-open .modal.bsui .modal-dialog{left: auto;}
1111 1111
 			<?php
1112
-			return ob_get_clean();
1113
-		}
1112
+            return ob_get_clean();
1113
+        }
1114 1114
 
1115 1115
 
1116
-		public static function custom_css($compatibility = true) {
1117
-			$settings = get_option('aui_options');
1116
+        public static function custom_css($compatibility = true) {
1117
+            $settings = get_option('aui_options');
1118 1118
 
1119
-			ob_start();
1119
+            ob_start();
1120 1120
 
1121
-			$primary_color = !empty($settings['color_primary']) ? $settings['color_primary'] : AUI_PRIMARY_COLOR;
1122
-			$secondary_color = !empty($settings['color_secondary']) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR;
1123
-				//AUI_PRIMARY_COLOR_ORIGINAL
1124
-			?>
1121
+            $primary_color = !empty($settings['color_primary']) ? $settings['color_primary'] : AUI_PRIMARY_COLOR;
1122
+            $secondary_color = !empty($settings['color_secondary']) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR;
1123
+                //AUI_PRIMARY_COLOR_ORIGINAL
1124
+            ?>
1125 1125
 			<style>
1126 1126
 
1127 1127
 
1128 1128
 
1129 1129
 				<?php
1130 1130
 
1131
-				// BS compat @todo add option check
1132
-				//echo self::bs3_compat_css();
1131
+                // BS compat @todo add option check
1132
+                //echo self::bs3_compat_css();
1133 1133
 
1134
-					if(!is_admin() && $primary_color != AUI_PRIMARY_COLOR_ORIGINAL){
1135
-						echo self::css_primary($primary_color,$compatibility);
1136
-					}
1134
+                    if(!is_admin() && $primary_color != AUI_PRIMARY_COLOR_ORIGINAL){
1135
+                        echo self::css_primary($primary_color,$compatibility);
1136
+                    }
1137 1137
 
1138
-					if(!is_admin() && $secondary_color != AUI_SECONDARY_COLOR_ORIGINAL){
1139
-						echo self::css_secondary($settings['color_secondary'],$compatibility);
1140
-					}
1138
+                    if(!is_admin() && $secondary_color != AUI_SECONDARY_COLOR_ORIGINAL){
1139
+                        echo self::css_secondary($settings['color_secondary'],$compatibility);
1140
+                    }
1141 1141
                 ?>
1142 1142
 			</style>
1143 1143
 			<?php
1144 1144
 
1145 1145
 
1146
-			/*
1146
+            /*
1147 1147
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1148 1148
 			 */
1149
-			return str_replace( array(
1150
-				'<style>',
1151
-				'</style>'
1152
-			), '', ob_get_clean());
1153
-		}
1154
-
1155
-		public static function css_primary($color_code,$compatibility){;
1156
-			$color_code = sanitize_hex_color($color_code);
1157
-			if(!$color_code){return '';}
1158
-			/**
1159
-			 * c = color, b = background color, o = border-color, f = fill
1160
-			 */
1161
-			$selectors = array(
1162
-				'a' => array('c'),
1163
-				'.btn-primary' => array('b','o'),
1164
-				'.btn-primary.disabled' => array('b','o'),
1165
-				'.btn-primary:disabled' => array('b','o'),
1166
-				'.btn-outline-primary' => array('c','o'),
1167
-				'.btn-outline-primary:hover' => array('b','o'),
1168
-				'.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'),
1169
-				'.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'),
1170
-				'.show>.btn-outline-primary.dropdown-toggle' => array('b','o'),
1171
-				'.btn-link' => array('c'),
1172
-				'.dropdown-item.active' => array('b'),
1173
-				'.custom-control-input:checked~.custom-control-label::before' => array('b','o'),
1174
-				'.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'),
1149
+            return str_replace( array(
1150
+                '<style>',
1151
+                '</style>'
1152
+            ), '', ob_get_clean());
1153
+        }
1154
+
1155
+        public static function css_primary($color_code,$compatibility){;
1156
+            $color_code = sanitize_hex_color($color_code);
1157
+            if(!$color_code){return '';}
1158
+            /**
1159
+             * c = color, b = background color, o = border-color, f = fill
1160
+             */
1161
+            $selectors = array(
1162
+                'a' => array('c'),
1163
+                '.btn-primary' => array('b','o'),
1164
+                '.btn-primary.disabled' => array('b','o'),
1165
+                '.btn-primary:disabled' => array('b','o'),
1166
+                '.btn-outline-primary' => array('c','o'),
1167
+                '.btn-outline-primary:hover' => array('b','o'),
1168
+                '.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'),
1169
+                '.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'),
1170
+                '.show>.btn-outline-primary.dropdown-toggle' => array('b','o'),
1171
+                '.btn-link' => array('c'),
1172
+                '.dropdown-item.active' => array('b'),
1173
+                '.custom-control-input:checked~.custom-control-label::before' => array('b','o'),
1174
+                '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'),
1175 1175
 //				'.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules...
1176 1176
 //				'.custom-range::-moz-range-thumb' => array('b'),
1177 1177
 //				'.custom-range::-ms-thumb' => array('b'),
1178
-				'.nav-pills .nav-link.active' => array('b'),
1179
-				'.nav-pills .show>.nav-link' => array('b'),
1180
-				'.page-link' => array('c'),
1181
-				'.page-item.active .page-link' => array('b','o'),
1182
-				'.badge-primary' => array('b'),
1183
-				'.alert-primary' => array('b','o'),
1184
-				'.progress-bar' => array('b'),
1185
-				'.list-group-item.active' => array('b','o'),
1186
-				'.bg-primary' => array('b','f'),
1187
-				'.btn-link.btn-primary' => array('c'),
1188
-				'.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1189
-			);
1190
-
1191
-			$important_selectors = array(
1192
-				'.bg-primary' => array('b','f'),
1193
-				'.border-primary' => array('o'),
1194
-				'.text-primary' => array('c'),
1195
-			);
1196
-
1197
-			$color = array();
1198
-			$color_i = array();
1199
-			$background = array();
1200
-			$background_i = array();
1201
-			$border = array();
1202
-			$border_i = array();
1203
-			$fill = array();
1204
-			$fill_i = array();
1205
-
1206
-			$output = '';
1207
-
1208
-			// build rules into each type
1209
-			foreach($selectors as $selector => $types){
1210
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1211
-				$types = array_combine($types,$types);
1212
-				if(isset($types['c'])){$color[] = $selector;}
1213
-				if(isset($types['b'])){$background[] = $selector;}
1214
-				if(isset($types['o'])){$border[] = $selector;}
1215
-				if(isset($types['f'])){$fill[] = $selector;}
1216
-			}
1217
-
1218
-			// build rules into each type
1219
-			foreach($important_selectors as $selector => $types){
1220
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1221
-				$types = array_combine($types,$types);
1222
-				if(isset($types['c'])){$color_i[] = $selector;}
1223
-				if(isset($types['b'])){$background_i[] = $selector;}
1224
-				if(isset($types['o'])){$border_i[] = $selector;}
1225
-				if(isset($types['f'])){$fill_i[] = $selector;}
1226
-			}
1227
-
1228
-			// add any color rules
1229
-			if(!empty($color)){
1230
-				$output .= implode(",",$color) . "{color: $color_code;} ";
1231
-			}
1232
-			if(!empty($color_i)){
1233
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1234
-			}
1235
-
1236
-			// add any background color rules
1237
-			if(!empty($background)){
1238
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
1239
-			}
1240
-			if(!empty($background_i)){
1241
-				$output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1242
-			}
1243
-
1244
-			// add any border color rules
1245
-			if(!empty($border)){
1246
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
1247
-			}
1248
-			if(!empty($border_i)){
1249
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1250
-			}
1251
-
1252
-			// add any fill color rules
1253
-			if(!empty($fill)){
1254
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
1255
-			}
1256
-			if(!empty($fill_i)){
1257
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1258
-			}
1259
-
1260
-
1261
-			$prefix = $compatibility ? ".bsui " : "";
1262
-
1263
-			// darken
1264
-			$darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1265
-			$darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1266
-			$darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1267
-
1268
-			// lighten
1269
-			$lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1270
-
1271
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
1272
-			$op_25 = $color_code."40"; // 25% opacity
1273
-
1274
-
1275
-			// button states
1276
-			$output .= $prefix ." .btn-primary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1277
-			$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;} ";
1278
-			$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.";} ";
1279
-			$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;} ";
1280
-
1281
-
1282
-			// dropdown's
1283
-			$output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1284
-
1285
-
1286
-			// input states
1287
-			$output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} ";
1288
-
1289
-			// page link
1290
-			$output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1291
-
1292
-			return $output;
1293
-		}
1294
-
1295
-		public static function css_secondary($color_code,$compatibility){;
1296
-			$color_code = sanitize_hex_color($color_code);
1297
-			if(!$color_code){return '';}
1298
-			/**
1299
-			 * c = color, b = background color, o = border-color, f = fill
1300
-			 */
1301
-			$selectors = array(
1302
-				'.btn-secondary' => array('b','o'),
1303
-				'.btn-secondary.disabled' => array('b','o'),
1304
-				'.btn-secondary:disabled' => array('b','o'),
1305
-				'.btn-outline-secondary' => array('c','o'),
1306
-				'.btn-outline-secondary:hover' => array('b','o'),
1307
-				'.btn-outline-secondary.disabled' => array('c'),
1308
-				'.btn-outline-secondary:disabled' => array('c'),
1309
-				'.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'),
1310
-				'.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'),
1311
-				'.btn-outline-secondary.dropdown-toggle' => array('b','o'),
1312
-				'.badge-secondary' => array('b'),
1313
-				'.alert-secondary' => array('b','o'),
1314
-				'.btn-link.btn-secondary' => array('c'),
1315
-			);
1316
-
1317
-			$important_selectors = array(
1318
-				'.bg-secondary' => array('b','f'),
1319
-				'.border-secondary' => array('o'),
1320
-				'.text-secondary' => array('c'),
1321
-			);
1322
-
1323
-			$color = array();
1324
-			$color_i = array();
1325
-			$background = array();
1326
-			$background_i = array();
1327
-			$border = array();
1328
-			$border_i = array();
1329
-			$fill = array();
1330
-			$fill_i = array();
1331
-
1332
-			$output = '';
1333
-
1334
-			// build rules into each type
1335
-			foreach($selectors as $selector => $types){
1336
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1337
-				$types = array_combine($types,$types);
1338
-				if(isset($types['c'])){$color[] = $selector;}
1339
-				if(isset($types['b'])){$background[] = $selector;}
1340
-				if(isset($types['o'])){$border[] = $selector;}
1341
-				if(isset($types['f'])){$fill[] = $selector;}
1342
-			}
1343
-
1344
-			// build rules into each type
1345
-			foreach($important_selectors as $selector => $types){
1346
-				$selector = $compatibility ? ".bsui ".$selector : $selector;
1347
-				$types = array_combine($types,$types);
1348
-				if(isset($types['c'])){$color_i[] = $selector;}
1349
-				if(isset($types['b'])){$background_i[] = $selector;}
1350
-				if(isset($types['o'])){$border_i[] = $selector;}
1351
-				if(isset($types['f'])){$fill_i[] = $selector;}
1352
-			}
1353
-
1354
-			// add any color rules
1355
-			if(!empty($color)){
1356
-				$output .= implode(",",$color) . "{color: $color_code;} ";
1357
-			}
1358
-			if(!empty($color_i)){
1359
-				$output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1360
-			}
1361
-
1362
-			// add any background color rules
1363
-			if(!empty($background)){
1364
-				$output .= implode(",",$background) . "{background-color: $color_code;} ";
1365
-			}
1366
-			if(!empty($background_i)){
1367
-				$output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1368
-			}
1369
-
1370
-			// add any border color rules
1371
-			if(!empty($border)){
1372
-				$output .= implode(",",$border) . "{border-color: $color_code;} ";
1373
-			}
1374
-			if(!empty($border_i)){
1375
-				$output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1376
-			}
1377
-
1378
-			// add any fill color rules
1379
-			if(!empty($fill)){
1380
-				$output .= implode(",",$fill) . "{fill: $color_code;} ";
1381
-			}
1382
-			if(!empty($fill_i)){
1383
-				$output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1384
-			}
1385
-
1386
-
1387
-			$prefix = $compatibility ? ".bsui " : "";
1388
-
1389
-			// darken
1390
-			$darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1391
-			$darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1392
-			$darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1393
-
1394
-			// lighten
1395
-			$lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1396
-
1397
-			// opacity see https://css-tricks.com/8-digit-hex-codes/
1398
-			$op_25 = $color_code."40"; // 25% opacity
1399
-
1400
-
1401
-			// button states
1402
-			$output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1403
-			$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;} ";
1404
-			$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.";} ";
1405
-			$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;} ";
1406
-
1407
-
1408
-			return $output;
1409
-		}
1410
-
1411
-		/**
1412
-		 * Increases or decreases the brightness of a color by a percentage of the current brightness.
1413
-		 *
1414
-		 * @param   string  $hexCode        Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF`
1415
-		 * @param   float   $adjustPercent  A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker.
1416
-		 *
1417
-		 * @return  string
1418
-		 */
1419
-		public static function css_hex_lighten_darken($hexCode, $adjustPercent) {
1420
-			$hexCode = ltrim($hexCode, '#');
1421
-
1422
-			if (strlen($hexCode) == 3) {
1423
-				$hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2];
1424
-			}
1425
-
1426
-			$hexCode = array_map('hexdec', str_split($hexCode, 2));
1427
-
1428
-			foreach ($hexCode as & $color) {
1429
-				$adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color;
1430
-				$adjustAmount = ceil($adjustableLimit * $adjustPercent);
1431
-
1432
-				$color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT);
1433
-			}
1434
-
1435
-			return '#' . implode($hexCode);
1436
-		}
1437
-
1438
-		/**
1439
-		 * Check if we should display examples.
1440
-		 */
1441
-		public function maybe_show_examples(){
1442
-			if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){
1443
-				echo "<head>";
1444
-				wp_head();
1445
-				echo "</head>";
1446
-				echo "<body>";
1447
-				echo $this->get_examples();
1448
-				echo "</body>";
1449
-				exit;
1450
-			}
1451
-		}
1452
-
1453
-		/**
1454
-		 * Get developer examples.
1455
-		 *
1456
-		 * @return string
1457
-		 */
1458
-		public function get_examples(){
1459
-			$output = '';
1460
-
1461
-
1462
-			// open form
1463
-			$output .= "<form class='p-5 m-5 border rounded'>";
1464
-
1465
-			// input example
1466
-			$output .= aui()->input(array(
1467
-				'type'  =>  'text',
1468
-				'id'    =>  'text-example',
1469
-				'name'    =>  'text-example',
1470
-				'placeholder'   => 'text placeholder',
1471
-				'title'   => 'Text input example',
1472
-				'value' =>  '',
1473
-				'required'  => false,
1474
-				'help_text' => 'help text',
1475
-				'label' => 'Text input example label'
1476
-			));
1477
-
1478
-			// input example
1479
-			$output .= aui()->input(array(
1480
-				'type'  =>  'url',
1481
-				'id'    =>  'text-example2',
1482
-				'name'    =>  'text-example',
1483
-				'placeholder'   => 'url placeholder',
1484
-				'title'   => 'Text input example',
1485
-				'value' =>  '',
1486
-				'required'  => false,
1487
-				'help_text' => 'help text',
1488
-				'label' => 'Text input example label'
1489
-			));
1490
-
1491
-			// checkbox example
1492
-			$output .= aui()->input(array(
1493
-				'type'  =>  'checkbox',
1494
-				'id'    =>  'checkbox-example',
1495
-				'name'    =>  'checkbox-example',
1496
-				'placeholder'   => 'checkbox-example',
1497
-				'title'   => 'Checkbox example',
1498
-				'value' =>  '1',
1499
-				'checked'   => true,
1500
-				'required'  => false,
1501
-				'help_text' => 'help text',
1502
-				'label' => 'Checkbox checked'
1503
-			));
1504
-
1505
-			// checkbox example
1506
-			$output .= aui()->input(array(
1507
-				'type'  =>  'checkbox',
1508
-				'id'    =>  'checkbox-example2',
1509
-				'name'    =>  'checkbox-example2',
1510
-				'placeholder'   => 'checkbox-example',
1511
-				'title'   => 'Checkbox example',
1512
-				'value' =>  '1',
1513
-				'checked'   => false,
1514
-				'required'  => false,
1515
-				'help_text' => 'help text',
1516
-				'label' => 'Checkbox un-checked'
1517
-			));
1518
-
1519
-			// switch example
1520
-			$output .= aui()->input(array(
1521
-				'type'  =>  'checkbox',
1522
-				'id'    =>  'switch-example',
1523
-				'name'    =>  'switch-example',
1524
-				'placeholder'   => 'checkbox-example',
1525
-				'title'   => 'Switch example',
1526
-				'value' =>  '1',
1527
-				'checked'   => true,
1528
-				'switch'    => true,
1529
-				'required'  => false,
1530
-				'help_text' => 'help text',
1531
-				'label' => 'Switch on'
1532
-			));
1533
-
1534
-			// switch example
1535
-			$output .= aui()->input(array(
1536
-				'type'  =>  'checkbox',
1537
-				'id'    =>  'switch-example2',
1538
-				'name'    =>  'switch-example2',
1539
-				'placeholder'   => 'checkbox-example',
1540
-				'title'   => 'Switch example',
1541
-				'value' =>  '1',
1542
-				'checked'   => false,
1543
-				'switch'    => true,
1544
-				'required'  => false,
1545
-				'help_text' => 'help text',
1546
-				'label' => 'Switch off'
1547
-			));
1548
-
1549
-			// close form
1550
-			$output .= "</form>";
1551
-
1552
-			return $output;
1553
-		}
1554
-
1555
-	}
1556
-
1557
-	/**
1558
-	 * Run the class if found.
1559
-	 */
1560
-	AyeCode_UI_Settings::instance();
1178
+                '.nav-pills .nav-link.active' => array('b'),
1179
+                '.nav-pills .show>.nav-link' => array('b'),
1180
+                '.page-link' => array('c'),
1181
+                '.page-item.active .page-link' => array('b','o'),
1182
+                '.badge-primary' => array('b'),
1183
+                '.alert-primary' => array('b','o'),
1184
+                '.progress-bar' => array('b'),
1185
+                '.list-group-item.active' => array('b','o'),
1186
+                '.bg-primary' => array('b','f'),
1187
+                '.btn-link.btn-primary' => array('c'),
1188
+                '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'),
1189
+            );
1190
+
1191
+            $important_selectors = array(
1192
+                '.bg-primary' => array('b','f'),
1193
+                '.border-primary' => array('o'),
1194
+                '.text-primary' => array('c'),
1195
+            );
1196
+
1197
+            $color = array();
1198
+            $color_i = array();
1199
+            $background = array();
1200
+            $background_i = array();
1201
+            $border = array();
1202
+            $border_i = array();
1203
+            $fill = array();
1204
+            $fill_i = array();
1205
+
1206
+            $output = '';
1207
+
1208
+            // build rules into each type
1209
+            foreach($selectors as $selector => $types){
1210
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
1211
+                $types = array_combine($types,$types);
1212
+                if(isset($types['c'])){$color[] = $selector;}
1213
+                if(isset($types['b'])){$background[] = $selector;}
1214
+                if(isset($types['o'])){$border[] = $selector;}
1215
+                if(isset($types['f'])){$fill[] = $selector;}
1216
+            }
1217
+
1218
+            // build rules into each type
1219
+            foreach($important_selectors as $selector => $types){
1220
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
1221
+                $types = array_combine($types,$types);
1222
+                if(isset($types['c'])){$color_i[] = $selector;}
1223
+                if(isset($types['b'])){$background_i[] = $selector;}
1224
+                if(isset($types['o'])){$border_i[] = $selector;}
1225
+                if(isset($types['f'])){$fill_i[] = $selector;}
1226
+            }
1227
+
1228
+            // add any color rules
1229
+            if(!empty($color)){
1230
+                $output .= implode(",",$color) . "{color: $color_code;} ";
1231
+            }
1232
+            if(!empty($color_i)){
1233
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1234
+            }
1235
+
1236
+            // add any background color rules
1237
+            if(!empty($background)){
1238
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
1239
+            }
1240
+            if(!empty($background_i)){
1241
+                $output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1242
+            }
1243
+
1244
+            // add any border color rules
1245
+            if(!empty($border)){
1246
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
1247
+            }
1248
+            if(!empty($border_i)){
1249
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1250
+            }
1251
+
1252
+            // add any fill color rules
1253
+            if(!empty($fill)){
1254
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
1255
+            }
1256
+            if(!empty($fill_i)){
1257
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1258
+            }
1259
+
1260
+
1261
+            $prefix = $compatibility ? ".bsui " : "";
1262
+
1263
+            // darken
1264
+            $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1265
+            $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1266
+            $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1267
+
1268
+            // lighten
1269
+            $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1270
+
1271
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
1272
+            $op_25 = $color_code."40"; // 25% opacity
1273
+
1274
+
1275
+            // button states
1276
+            $output .= $prefix ." .btn-primary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1277
+            $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;} ";
1278
+            $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.";} ";
1279
+            $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;} ";
1280
+
1281
+
1282
+            // dropdown's
1283
+            $output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} ";
1284
+
1285
+
1286
+            // input states
1287
+            $output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} ";
1288
+
1289
+            // page link
1290
+            $output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} ";
1291
+
1292
+            return $output;
1293
+        }
1294
+
1295
+        public static function css_secondary($color_code,$compatibility){;
1296
+            $color_code = sanitize_hex_color($color_code);
1297
+            if(!$color_code){return '';}
1298
+            /**
1299
+             * c = color, b = background color, o = border-color, f = fill
1300
+             */
1301
+            $selectors = array(
1302
+                '.btn-secondary' => array('b','o'),
1303
+                '.btn-secondary.disabled' => array('b','o'),
1304
+                '.btn-secondary:disabled' => array('b','o'),
1305
+                '.btn-outline-secondary' => array('c','o'),
1306
+                '.btn-outline-secondary:hover' => array('b','o'),
1307
+                '.btn-outline-secondary.disabled' => array('c'),
1308
+                '.btn-outline-secondary:disabled' => array('c'),
1309
+                '.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'),
1310
+                '.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'),
1311
+                '.btn-outline-secondary.dropdown-toggle' => array('b','o'),
1312
+                '.badge-secondary' => array('b'),
1313
+                '.alert-secondary' => array('b','o'),
1314
+                '.btn-link.btn-secondary' => array('c'),
1315
+            );
1316
+
1317
+            $important_selectors = array(
1318
+                '.bg-secondary' => array('b','f'),
1319
+                '.border-secondary' => array('o'),
1320
+                '.text-secondary' => array('c'),
1321
+            );
1322
+
1323
+            $color = array();
1324
+            $color_i = array();
1325
+            $background = array();
1326
+            $background_i = array();
1327
+            $border = array();
1328
+            $border_i = array();
1329
+            $fill = array();
1330
+            $fill_i = array();
1331
+
1332
+            $output = '';
1333
+
1334
+            // build rules into each type
1335
+            foreach($selectors as $selector => $types){
1336
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
1337
+                $types = array_combine($types,$types);
1338
+                if(isset($types['c'])){$color[] = $selector;}
1339
+                if(isset($types['b'])){$background[] = $selector;}
1340
+                if(isset($types['o'])){$border[] = $selector;}
1341
+                if(isset($types['f'])){$fill[] = $selector;}
1342
+            }
1343
+
1344
+            // build rules into each type
1345
+            foreach($important_selectors as $selector => $types){
1346
+                $selector = $compatibility ? ".bsui ".$selector : $selector;
1347
+                $types = array_combine($types,$types);
1348
+                if(isset($types['c'])){$color_i[] = $selector;}
1349
+                if(isset($types['b'])){$background_i[] = $selector;}
1350
+                if(isset($types['o'])){$border_i[] = $selector;}
1351
+                if(isset($types['f'])){$fill_i[] = $selector;}
1352
+            }
1353
+
1354
+            // add any color rules
1355
+            if(!empty($color)){
1356
+                $output .= implode(",",$color) . "{color: $color_code;} ";
1357
+            }
1358
+            if(!empty($color_i)){
1359
+                $output .= implode(",",$color_i) . "{color: $color_code !important;} ";
1360
+            }
1361
+
1362
+            // add any background color rules
1363
+            if(!empty($background)){
1364
+                $output .= implode(",",$background) . "{background-color: $color_code;} ";
1365
+            }
1366
+            if(!empty($background_i)){
1367
+                $output .= implode(",",$background_i) . "{background-color: $color_code !important;} ";
1368
+            }
1369
+
1370
+            // add any border color rules
1371
+            if(!empty($border)){
1372
+                $output .= implode(",",$border) . "{border-color: $color_code;} ";
1373
+            }
1374
+            if(!empty($border_i)){
1375
+                $output .= implode(",",$border_i) . "{border-color: $color_code !important;} ";
1376
+            }
1377
+
1378
+            // add any fill color rules
1379
+            if(!empty($fill)){
1380
+                $output .= implode(",",$fill) . "{fill: $color_code;} ";
1381
+            }
1382
+            if(!empty($fill_i)){
1383
+                $output .= implode(",",$fill_i) . "{fill: $color_code !important;} ";
1384
+            }
1385
+
1386
+
1387
+            $prefix = $compatibility ? ".bsui " : "";
1388
+
1389
+            // darken
1390
+            $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075");
1391
+            $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10");
1392
+            $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125");
1393
+
1394
+            // lighten
1395
+            $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25");
1396
+
1397
+            // opacity see https://css-tricks.com/8-digit-hex-codes/
1398
+            $op_25 = $color_code."40"; // 25% opacity
1399
+
1400
+
1401
+            // button states
1402
+            $output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075.";    border-color: ".$darker_10.";} ";
1403
+            $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;} ";
1404
+            $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.";} ";
1405
+            $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;} ";
1406
+
1407
+
1408
+            return $output;
1409
+        }
1410
+
1411
+        /**
1412
+         * Increases or decreases the brightness of a color by a percentage of the current brightness.
1413
+         *
1414
+         * @param   string  $hexCode        Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF`
1415
+         * @param   float   $adjustPercent  A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker.
1416
+         *
1417
+         * @return  string
1418
+         */
1419
+        public static function css_hex_lighten_darken($hexCode, $adjustPercent) {
1420
+            $hexCode = ltrim($hexCode, '#');
1421
+
1422
+            if (strlen($hexCode) == 3) {
1423
+                $hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2];
1424
+            }
1425
+
1426
+            $hexCode = array_map('hexdec', str_split($hexCode, 2));
1427
+
1428
+            foreach ($hexCode as & $color) {
1429
+                $adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color;
1430
+                $adjustAmount = ceil($adjustableLimit * $adjustPercent);
1431
+
1432
+                $color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT);
1433
+            }
1434
+
1435
+            return '#' . implode($hexCode);
1436
+        }
1437
+
1438
+        /**
1439
+         * Check if we should display examples.
1440
+         */
1441
+        public function maybe_show_examples(){
1442
+            if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){
1443
+                echo "<head>";
1444
+                wp_head();
1445
+                echo "</head>";
1446
+                echo "<body>";
1447
+                echo $this->get_examples();
1448
+                echo "</body>";
1449
+                exit;
1450
+            }
1451
+        }
1452
+
1453
+        /**
1454
+         * Get developer examples.
1455
+         *
1456
+         * @return string
1457
+         */
1458
+        public function get_examples(){
1459
+            $output = '';
1460
+
1461
+
1462
+            // open form
1463
+            $output .= "<form class='p-5 m-5 border rounded'>";
1464
+
1465
+            // input example
1466
+            $output .= aui()->input(array(
1467
+                'type'  =>  'text',
1468
+                'id'    =>  'text-example',
1469
+                'name'    =>  'text-example',
1470
+                'placeholder'   => 'text placeholder',
1471
+                'title'   => 'Text input example',
1472
+                'value' =>  '',
1473
+                'required'  => false,
1474
+                'help_text' => 'help text',
1475
+                'label' => 'Text input example label'
1476
+            ));
1477
+
1478
+            // input example
1479
+            $output .= aui()->input(array(
1480
+                'type'  =>  'url',
1481
+                'id'    =>  'text-example2',
1482
+                'name'    =>  'text-example',
1483
+                'placeholder'   => 'url placeholder',
1484
+                'title'   => 'Text input example',
1485
+                'value' =>  '',
1486
+                'required'  => false,
1487
+                'help_text' => 'help text',
1488
+                'label' => 'Text input example label'
1489
+            ));
1490
+
1491
+            // checkbox example
1492
+            $output .= aui()->input(array(
1493
+                'type'  =>  'checkbox',
1494
+                'id'    =>  'checkbox-example',
1495
+                'name'    =>  'checkbox-example',
1496
+                'placeholder'   => 'checkbox-example',
1497
+                'title'   => 'Checkbox example',
1498
+                'value' =>  '1',
1499
+                'checked'   => true,
1500
+                'required'  => false,
1501
+                'help_text' => 'help text',
1502
+                'label' => 'Checkbox checked'
1503
+            ));
1504
+
1505
+            // checkbox example
1506
+            $output .= aui()->input(array(
1507
+                'type'  =>  'checkbox',
1508
+                'id'    =>  'checkbox-example2',
1509
+                'name'    =>  'checkbox-example2',
1510
+                'placeholder'   => 'checkbox-example',
1511
+                'title'   => 'Checkbox example',
1512
+                'value' =>  '1',
1513
+                'checked'   => false,
1514
+                'required'  => false,
1515
+                'help_text' => 'help text',
1516
+                'label' => 'Checkbox un-checked'
1517
+            ));
1518
+
1519
+            // switch example
1520
+            $output .= aui()->input(array(
1521
+                'type'  =>  'checkbox',
1522
+                'id'    =>  'switch-example',
1523
+                'name'    =>  'switch-example',
1524
+                'placeholder'   => 'checkbox-example',
1525
+                'title'   => 'Switch example',
1526
+                'value' =>  '1',
1527
+                'checked'   => true,
1528
+                'switch'    => true,
1529
+                'required'  => false,
1530
+                'help_text' => 'help text',
1531
+                'label' => 'Switch on'
1532
+            ));
1533
+
1534
+            // switch example
1535
+            $output .= aui()->input(array(
1536
+                'type'  =>  'checkbox',
1537
+                'id'    =>  'switch-example2',
1538
+                'name'    =>  'switch-example2',
1539
+                'placeholder'   => 'checkbox-example',
1540
+                'title'   => 'Switch example',
1541
+                'value' =>  '1',
1542
+                'checked'   => false,
1543
+                'switch'    => true,
1544
+                'required'  => false,
1545
+                'help_text' => 'help text',
1546
+                'label' => 'Switch off'
1547
+            ));
1548
+
1549
+            // close form
1550
+            $output .= "</form>";
1551
+
1552
+            return $output;
1553
+        }
1554
+
1555
+    }
1556
+
1557
+    /**
1558
+     * Run the class if found.
1559
+     */
1560
+    AyeCode_UI_Settings::instance();
1561 1561
 }
1562 1562
\ No newline at end of file
Please login to merge, or discard this patch.
widgets/getpaid.php 1 patch
Indentation   +102 added lines, -102 removed lines patch added patch discarded remove patch
@@ -36,36 +36,36 @@  discard block
 block discarded – undo
36 36
                     'desc_tip'    => true,
37 37
                     'default'     => '',
38 38
                     'advanced'    => false
39
-				),
39
+                ),
40 40
 
41 41
                 'form'  => array(
42
-	                'title'       => __( 'Form', 'invoicing' ),
43
-	                'desc'        => __( 'Enter a form id in case you want to display a specific payment form', 'invoicing' ),
44
-	                'type'        => 'text',
45
-	                'desc_tip'    => true,
46
-	                'default'     => '',
47
-	                'placeholder' => __('1','invoicing'),
48
-	                'advanced'    => false
49
-				),
50
-
51
-				'item'  => array(
52
-	                'title'       => __( 'Items', 'invoicing' ),
53
-	                'desc'        => __( 'Enter comma separated list of invoicing item id and quantity (item_id|quantity). Ex. 101|2. This will be ignored in case you specify a form above. Enter 0 as the quantity to let users select their own quantities', 'invoicing' ),
54
-	                'type'        => 'text',
55
-	                'desc_tip'    => true,
56
-	                'default'     => '',
57
-	                'placeholder' => __('1','invoicing'),
58
-	                'advanced'    => false
59
-				),
42
+                    'title'       => __( 'Form', 'invoicing' ),
43
+                    'desc'        => __( 'Enter a form id in case you want to display a specific payment form', 'invoicing' ),
44
+                    'type'        => 'text',
45
+                    'desc_tip'    => true,
46
+                    'default'     => '',
47
+                    'placeholder' => __('1','invoicing'),
48
+                    'advanced'    => false
49
+                ),
50
+
51
+                'item'  => array(
52
+                    'title'       => __( 'Items', 'invoicing' ),
53
+                    'desc'        => __( 'Enter comma separated list of invoicing item id and quantity (item_id|quantity). Ex. 101|2. This will be ignored in case you specify a form above. Enter 0 as the quantity to let users select their own quantities', 'invoicing' ),
54
+                    'type'        => 'text',
55
+                    'desc_tip'    => true,
56
+                    'default'     => '',
57
+                    'placeholder' => __('1','invoicing'),
58
+                    'advanced'    => false
59
+                ),
60 60
 
61 61
                 'button'  => array(
62
-	                'title'       => __( 'Button', 'invoicing' ),
63
-	                'desc'        => __( 'Enter button label in case you would like to display the forms in a popup.', 'invoicing' ),
64
-	                'type'        => 'text',
65
-	                'desc_tip'    => true,
66
-	                'default'     => '',
67
-	                'advanced'    => false
68
-				)
62
+                    'title'       => __( 'Button', 'invoicing' ),
63
+                    'desc'        => __( 'Enter button label in case you would like to display the forms in a popup.', 'invoicing' ),
64
+                    'type'        => 'text',
65
+                    'desc_tip'    => true,
66
+                    'default'     => '',
67
+                    'advanced'    => false
68
+                )
69 69
 
70 70
             )
71 71
 
@@ -75,96 +75,96 @@  discard block
 block discarded – undo
75 75
         parent::__construct( $options );
76 76
     }
77 77
 
78
-	/**
79
-	 * The Super block output function.
80
-	 *
81
-	 * @param array $args
82
-	 * @param array $widget_args
83
-	 * @param string $content
84
-	 *
85
-	 * @return string
86
-	 */
78
+    /**
79
+     * The Super block output function.
80
+     *
81
+     * @param array $args
82
+     * @param array $widget_args
83
+     * @param string $content
84
+     *
85
+     * @return string
86
+     */
87 87
     public function output( $args = array(), $widget_args = array(), $content = '' ) {
88 88
 
89
-	    // Is the shortcode set up correctly?
90
-		if ( empty( $args['form'] ) && empty( $args['item'] ) ) {
91
-			return aui()->alert(
92
-				array(
93
-					'type'    => 'warning',
94
-					'content' => __( 'No payment form or item selected', 'invoicing' ),
95
-				)
96
-			);
97
-		}
98
-
99
-		// Payment form or button?
100
-		if ( ! empty( $args['form'] ) ) {
101
-			return $this->handle_payment_form(  $args );
102
-		} else {
103
-			return $this->handle_buy_item(  $args );
104
-		}
105
-
106
-	}
107
-
108
-	/**
109
-	 * Displaying a payment form
110
-	 *
111
-	 * @return string
112
-	 */
89
+        // Is the shortcode set up correctly?
90
+        if ( empty( $args['form'] ) && empty( $args['item'] ) ) {
91
+            return aui()->alert(
92
+                array(
93
+                    'type'    => 'warning',
94
+                    'content' => __( 'No payment form or item selected', 'invoicing' ),
95
+                )
96
+            );
97
+        }
98
+
99
+        // Payment form or button?
100
+        if ( ! empty( $args['form'] ) ) {
101
+            return $this->handle_payment_form(  $args );
102
+        } else {
103
+            return $this->handle_buy_item(  $args );
104
+        }
105
+
106
+    }
107
+
108
+    /**
109
+     * Displaying a payment form
110
+     *
111
+     * @return string
112
+     */
113 113
     protected function handle_payment_form( $args = array() ) {
114 114
 
115
-		if ( empty( $args['button'] ) ) {
116
-			ob_start();
117
-			getpaid_display_payment_form( $args['form'] );
118
-			return ob_get_clean();
119
-		}
115
+        if ( empty( $args['button'] ) ) {
116
+            ob_start();
117
+            getpaid_display_payment_form( $args['form'] );
118
+            return ob_get_clean();
119
+        }
120 120
 
121
-		return $this->payment_form_button( $args['form'], $args['button'] );
122
-	}
121
+        return $this->payment_form_button( $args['form'], $args['button'] );
122
+    }
123 123
 
124
-	/**
125
-	 * Displays a payment form button.
126
-	 *
127
-	 * @return string
128
-	 */
124
+    /**
125
+     * Displays a payment form button.
126
+     *
127
+     * @return string
128
+     */
129 129
     protected function payment_form_button( $form, $button ) {
130
-		return getpaid_get_payment_button( $button, $form );
131
-	}
132
-
133
-	/**
134
-	 * Selling an item
135
-	 *
136
-	 * @return string
137
-	 */
130
+        return getpaid_get_payment_button( $button, $form );
131
+    }
132
+
133
+    /**
134
+     * Selling an item
135
+     *
136
+     * @return string
137
+     */
138 138
     protected function handle_buy_item( $args = array() ) {
139 139
 
140
-		if ( empty( $args['button'] ) ) {
141
-			return $this->buy_item_form( $args['item'] );
142
-		}
140
+        if ( empty( $args['button'] ) ) {
141
+            return $this->buy_item_form( $args['item'] );
142
+        }
143 143
 
144
-		return $this->buy_item_button( $args['item'], $args['button'] );
144
+        return $this->buy_item_button( $args['item'], $args['button'] );
145 145
 
146
-	}
146
+    }
147 147
 
148
-	/**
149
-	 * Displays a buy item form.
150
-	 *
151
-	 * @return string
152
-	 */
148
+    /**
149
+     * Displays a buy item form.
150
+     *
151
+     * @return string
152
+     */
153 153
     protected function buy_item_form( $item ) {
154
-		$items = getpaid_convert_items_to_array( $item );
155
-		ob_start();
156
-		getpaid_display_item_payment_form( $items );
157
-		return ob_get_clean();
158
-	}
159
-
160
-	/**
161
-	 * Displays a buy item button.
162
-	 *
163
-	 * @return string
164
-	 */
154
+        $items = getpaid_convert_items_to_array( $item );
155
+        ob_start();
156
+        getpaid_display_item_payment_form( $items );
157
+        return ob_get_clean();
158
+    }
159
+
160
+    /**
161
+     * Displays a buy item button.
162
+     *
163
+     * @return string
164
+     */
165 165
     protected function buy_item_button( $item, $button ) {
166
-		$button = getpaid_get_payment_button( $button, null, $item );
167
-		return apply_filters( 'getpaid_buy_item_button_widget', $button, $item );
166
+        $button = getpaid_get_payment_button( $button, null, $item );
167
+        return apply_filters( 'getpaid_buy_item_button_widget', $button, $item );
168 168
     }
169 169
 
170 170
 }
Please login to merge, or discard this patch.
includes/gateways/class-getpaid-authorize-net-gateway.php 1 patch
Indentation   +226 added lines, -226 removed lines patch added patch discarded remove patch
@@ -13,58 +13,58 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Authorize_Net_Gateway extends GetPaid_Authorize_Net_Legacy_Gateway {
14 14
 
15 15
     /**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20 20
     public $id = 'authorizenet';
21 21
 
22 22
     /**
23
-	 * An array of features that this gateway supports.
24
-	 *
25
-	 * @var array
26
-	 */
23
+     * An array of features that this gateway supports.
24
+     *
25
+     * @var array
26
+     */
27 27
     protected $supports = array( 'subscription', 'sandbox', 'tokens', 'addons' );
28 28
 
29 29
     /**
30
-	 * Payment method order.
31
-	 *
32
-	 * @var int
33
-	 */
30
+     * Payment method order.
31
+     *
32
+     * @var int
33
+     */
34 34
     public $order = 4;
35 35
 
36 36
     /**
37
-	 * Endpoint for requests from Authorize.net.
38
-	 *
39
-	 * @var string
40
-	 */
41
-	protected $notify_url;
42
-
43
-	/**
44
-	 * Endpoint for requests to Authorize.net.
45
-	 *
46
-	 * @var string
47
-	 */
37
+     * Endpoint for requests from Authorize.net.
38
+     *
39
+     * @var string
40
+     */
41
+    protected $notify_url;
42
+
43
+    /**
44
+     * Endpoint for requests to Authorize.net.
45
+     *
46
+     * @var string
47
+     */
48 48
     protected $endpoint;
49 49
 
50 50
     /**
51
-	 * Currencies this gateway is allowed for.
52
-	 *
53
-	 * @var array
54
-	 */
55
-	public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' );
51
+     * Currencies this gateway is allowed for.
52
+     *
53
+     * @var array
54
+     */
55
+    public $currencies = array( 'USD', 'CAD', 'GBP', 'DKK', 'NOK', 'PLN', 'SEK', 'AUD', 'EUR', 'NZD' );
56 56
 
57 57
     /**
58
-	 * URL to view a transaction.
59
-	 *
60
-	 * @var string
61
-	 */
58
+     * URL to view a transaction.
59
+     *
60
+     * @var string
61
+     */
62 62
     public $view_transaction_url = 'https://{sandbox}authorize.net/ui/themes/sandbox/Transaction/TransactionReceipt.aspx?transid=%s';
63 63
 
64 64
     /**
65
-	 * Class constructor.
66
-	 */
67
-	public function __construct() {
65
+     * Class constructor.
66
+     */
67
+    public function __construct() {
68 68
 
69 69
         $this->title                = __( 'Credit Card / Debit Card', 'invoicing' );
70 70
         $this->method_title         = __( 'Authorize.Net', 'invoicing' );
@@ -76,11 +76,11 @@  discard block
 block discarded – undo
76 76
     }
77 77
 
78 78
     /**
79
-	 * Displays the payment method select field.
80
-	 *
81
-	 * @param int $invoice_id 0 or invoice id.
82
-	 * @param GetPaid_Payment_Form $form Current payment form.
83
-	 */
79
+     * Displays the payment method select field.
80
+     *
81
+     * @param int $invoice_id 0 or invoice id.
82
+     * @param GetPaid_Payment_Form $form Current payment form.
83
+     */
84 84
     public function payment_fields( $invoice_id, $form ) {
85 85
 
86 86
         // Let the user select a payment method.
@@ -91,16 +91,16 @@  discard block
 block discarded – undo
91 91
     }
92 92
 
93 93
     /**
94
-	 * Creates a customer profile.
95
-	 *
96
-	 *
97
-	 * @param WPInv_Invoice $invoice Invoice.
94
+     * Creates a customer profile.
95
+     *
96
+     *
97
+     * @param WPInv_Invoice $invoice Invoice.
98 98
      * @param array $submission_data Posted checkout fields.
99 99
      * @param bool $save Whether or not to save the payment as a token.
100 100
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile
101
-	 * @return string|WP_Error Payment profile id.
102
-	 */
103
-	public function create_customer_profile( $invoice, $submission_data, $save = true ) {
101
+     * @return string|WP_Error Payment profile id.
102
+     */
103
+    public function create_customer_profile( $invoice, $submission_data, $save = true ) {
104 104
 
105 105
         // Remove non-digits from the number
106 106
         $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] );
@@ -167,14 +167,14 @@  discard block
 block discarded – undo
167 167
     }
168 168
 
169 169
     /**
170
-	 * Retrieves a customer profile.
171
-	 *
172
-	 *
173
-	 * @param string $profile_id profile id.
174
-	 * @return string|WP_Error Profile id.
170
+     * Retrieves a customer profile.
171
+     *
172
+     *
173
+     * @param string $profile_id profile id.
174
+     * @return string|WP_Error Profile id.
175 175
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-profile
176
-	 */
177
-	public function get_customer_profile( $profile_id ) {
176
+     */
177
+    public function get_customer_profile( $profile_id ) {
178 178
 
179 179
         // Generate args.
180 180
         $args = array(
@@ -189,17 +189,17 @@  discard block
 block discarded – undo
189 189
     }
190 190
 
191 191
     /**
192
-	 * Creates a customer profile.
193
-	 *
194
-	 *
192
+     * Creates a customer profile.
193
+     *
194
+     *
195 195
      * @param string $profile_id profile id.
196
-	 * @param WPInv_Invoice $invoice Invoice.
196
+     * @param WPInv_Invoice $invoice Invoice.
197 197
      * @param array $submission_data Posted checkout fields.
198 198
      * @param bool $save Whether or not to save the payment as a token.
199 199
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-create-customer-profile
200
-	 * @return string|WP_Error Profile id.
201
-	 */
202
-	public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) {
200
+     * @return string|WP_Error Profile id.
201
+     */
202
+    public function create_customer_payment_profile( $customer_profile, $invoice, $submission_data, $save ) {
203 203
 
204 204
         // Remove non-digits from the number
205 205
         $submission_data['authorizenet']['cc_number'] = preg_replace('/\D/', '', $submission_data['authorizenet']['cc_number'] );
@@ -259,15 +259,15 @@  discard block
 block discarded – undo
259 259
     }
260 260
 
261 261
     /**
262
-	 * Retrieves a customer payment profile.
263
-	 *
264
-	 *
265
-	 * @param string $customer_profile_id customer profile id.
262
+     * Retrieves a customer payment profile.
263
+     *
264
+     *
265
+     * @param string $customer_profile_id customer profile id.
266 266
      * @param string $payment_profile_id payment profile id.
267
-	 * @return string|WP_Error Profile id.
267
+     * @return string|WP_Error Profile id.
268 268
      * @link https://developer.authorize.net/api/reference/index.html#customer-profiles-get-customer-payment-profile
269
-	 */
270
-	public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) {
269
+     */
270
+    public function get_customer_payment_profile( $customer_profile_id, $payment_profile_id ) {
271 271
 
272 272
         // Generate args.
273 273
         $args = array(
@@ -283,15 +283,15 @@  discard block
 block discarded – undo
283 283
     }
284 284
 
285 285
     /**
286
-	 * Charges a customer payment profile.
287
-	 *
286
+     * Charges a customer payment profile.
287
+     *
288 288
      * @param string $customer_profile_id customer profile id.
289 289
      * @param string $payment_profile_id payment profile id.
290
-	 * @param WPInv_Invoice $invoice Invoice.
290
+     * @param WPInv_Invoice $invoice Invoice.
291 291
      * @link https://developer.authorize.net/api/reference/index.html#payment-transactions-charge-a-customer-profile
292
-	 * @return WP_Error|object
293
-	 */
294
-	public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) {
292
+     * @return WP_Error|object
293
+     */
294
+    public function charge_customer_payment_profile( $customer_profile_id, $payment_profile_id, $invoice ) {
295 295
 
296 296
         // Generate args.
297 297
         $args = array(
@@ -337,41 +337,41 @@  discard block
 block discarded – undo
337 337
     }
338 338
 
339 339
     /**
340
-	 * Processes a customer charge.
341
-	 *
340
+     * Processes a customer charge.
341
+     *
342 342
      * @param stdClass $result Api response.
343
-	 * @param WPInv_Invoice $invoice Invoice.
344
-	 */
345
-	public function process_charge_response( $result, $invoice ) {
343
+     * @param WPInv_Invoice $invoice Invoice.
344
+     */
345
+    public function process_charge_response( $result, $invoice ) {
346 346
 
347 347
         wpinv_clear_errors();
348
-		$response_code = (int) $result->transactionResponse->responseCode;
348
+        $response_code = (int) $result->transactionResponse->responseCode;
349 349
 
350
-		// Succeeded.
351
-		if ( 1 == $response_code || 4 == $response_code ) {
350
+        // Succeeded.
351
+        if ( 1 == $response_code || 4 == $response_code ) {
352 352
 
353
-			// Maybe set a transaction id.
354
-			if ( ! empty( $result->transactionResponse->transId ) ) {
355
-				$invoice->set_transaction_id( $result->transactionResponse->transId );
356
-			}
353
+            // Maybe set a transaction id.
354
+            if ( ! empty( $result->transactionResponse->transId ) ) {
355
+                $invoice->set_transaction_id( $result->transactionResponse->transId );
356
+            }
357 357
 
358
-			$invoice->add_note( sprintf( __( 'Authentication code: %s (%s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true );
358
+            $invoice->add_note( sprintf( __( 'Authentication code: %s (%s).', 'invoicing' ), $result->transactionResponse->authCode, $result->transactionResponse->accountNumber ), false, false, true );
359 359
 
360
-			if ( 1 == $response_code ) {
361
-				return $invoice->mark_paid();
362
-			}
360
+            if ( 1 == $response_code ) {
361
+                return $invoice->mark_paid();
362
+            }
363 363
 
364
-			$invoice->set_status( 'wpi-onhold' );
365
-        	$invoice->add_note(
364
+            $invoice->set_status( 'wpi-onhold' );
365
+            $invoice->add_note(
366 366
                 sprintf(
367 367
                     __( 'Held for review: %s', 'invoicing' ),
368 368
                     $result->transactionResponse->messages->message[0]->description
369 369
                 )
370
-			);
370
+            );
371 371
 
372
-			return $invoice->save();
372
+            return $invoice->save();
373 373
 
374
-		}
374
+        }
375 375
 
376 376
         wpinv_set_error( 'card_declined', __( 'Credit card declined.', 'invoicing' ) );
377 377
 
@@ -383,13 +383,13 @@  discard block
 block discarded – undo
383 383
     }
384 384
 
385 385
     /**
386
-	 * Returns payment information.
387
-	 *
388
-	 *
389
-	 * @param array $card Card details.
390
-	 * @return array
391
-	 */
392
-	public function get_payment_information( $card ) {
386
+     * Returns payment information.
387
+     *
388
+     *
389
+     * @param array $card Card details.
390
+     * @return array
391
+     */
392
+    public function get_payment_information( $card ) {
393 393
         return array(
394 394
 
395 395
             'creditCard'         => array (
@@ -402,25 +402,25 @@  discard block
 block discarded – undo
402 402
     }
403 403
 
404 404
     /**
405
-	 * Returns the customer profile meta name.
406
-	 *
407
-	 *
408
-	 * @param WPInv_Invoice $invoice Invoice.
409
-	 * @return string
410
-	 */
411
-	public function get_customer_profile_meta_name( $invoice ) {
405
+     * Returns the customer profile meta name.
406
+     *
407
+     *
408
+     * @param WPInv_Invoice $invoice Invoice.
409
+     * @return string
410
+     */
411
+    public function get_customer_profile_meta_name( $invoice ) {
412 412
         return $this->is_sandbox( $invoice ) ? 'getpaid_authorizenet_sandbox_customer_profile_id' : 'getpaid_authorizenet_customer_profile_id';
413 413
     }
414 414
 
415 415
     /**
416
-	 * Validates the submitted data.
417
-	 *
418
-	 *
419
-	 * @param array $submission_data Posted checkout fields.
416
+     * Validates the submitted data.
417
+     *
418
+     *
419
+     * @param array $submission_data Posted checkout fields.
420 420
      * @param WPInv_Invoice $invoice
421
-	 * @return WP_Error|string The payment profile id
422
-	 */
423
-	public function validate_submission_data( $submission_data, $invoice ) {
421
+     * @return WP_Error|string The payment profile id
422
+     */
423
+    public function validate_submission_data( $submission_data, $invoice ) {
424 424
 
425 425
         // Validate authentication details.
426 426
         $auth = $this->get_auth_params();
@@ -452,13 +452,13 @@  discard block
 block discarded – undo
452 452
     }
453 453
 
454 454
     /**
455
-	 * Returns invoice line items.
456
-	 *
457
-	 *
458
-	 * @param WPInv_Invoice $invoice Invoice.
459
-	 * @return array
460
-	 */
461
-	public function get_line_items( $invoice ) {
455
+     * Returns invoice line items.
456
+     *
457
+     *
458
+     * @param WPInv_Invoice $invoice Invoice.
459
+     * @return array
460
+     */
461
+    public function get_line_items( $invoice ) {
462 462
         $items = array();
463 463
 
464 464
         foreach ( $invoice->get_items() as $item ) {
@@ -496,15 +496,15 @@  discard block
 block discarded – undo
496 496
     }
497 497
 
498 498
     /**
499
-	 * Process Payment.
500
-	 *
501
-	 *
502
-	 * @param WPInv_Invoice $invoice Invoice.
503
-	 * @param array $submission_data Posted checkout fields.
504
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
505
-	 * @return array
506
-	 */
507
-	public function process_payment( $invoice, $submission_data, $submission ) {
499
+     * Process Payment.
500
+     *
501
+     *
502
+     * @param WPInv_Invoice $invoice Invoice.
503
+     * @param array $submission_data Posted checkout fields.
504
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
505
+     * @return array
506
+     */
507
+    public function process_payment( $invoice, $submission_data, $submission ) {
508 508
 
509 509
         // Validate the submitted data.
510 510
         $payment_profile_id = $this->validate_submission_data( $submission_data, $invoice );
@@ -537,69 +537,69 @@  discard block
 block discarded – undo
537 537
 
538 538
         exit;
539 539
 
540
-	}
540
+    }
541 541
 	
542
-	/**
543
-	 * Processes the initial payment.
544
-	 *
542
+    /**
543
+     * Processes the initial payment.
544
+     *
545 545
      * @param WPInv_Invoice $invoice Invoice.
546
-	 */
547
-	protected function process_initial_payment( $invoice ) {
546
+     */
547
+    protected function process_initial_payment( $invoice ) {
548 548
 
549
-		$payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
549
+        $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
550 550
         $customer_profile   = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true );
551
-		$result             = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice );
551
+        $result             = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice );
552 552
 
553
-		// Do we have an error?
554
-		if ( is_wp_error( $result ) ) {
555
-			wpinv_set_error( $result->get_error_code(), $result->get_error_message() );
556
-			wpinv_send_back_to_checkout( $invoice );
557
-		}
553
+        // Do we have an error?
554
+        if ( is_wp_error( $result ) ) {
555
+            wpinv_set_error( $result->get_error_code(), $result->get_error_message() );
556
+            wpinv_send_back_to_checkout( $invoice );
557
+        }
558 558
 
559
-		// Process the response.
560
-		$this->process_charge_response( $result, $invoice );
559
+        // Process the response.
560
+        $this->process_charge_response( $result, $invoice );
561 561
 
562
-		if ( wpinv_get_errors() ) {
563
-			wpinv_send_back_to_checkout( $invoice );
564
-		}
562
+        if ( wpinv_get_errors() ) {
563
+            wpinv_send_back_to_checkout( $invoice );
564
+        }
565 565
 
566
-	}
566
+    }
567 567
 
568 568
     /**
569
-	 * Processes recurring payments.
570
-	 *
569
+     * Processes recurring payments.
570
+     *
571 571
      * @param WPInv_Invoice $invoice Invoice.
572 572
      * @param WPInv_Subscription $subscription Subscription.
573
-	 */
574
-	public function process_subscription( $invoice, $subscription ) {
573
+     */
574
+    public function process_subscription( $invoice, $subscription ) {
575 575
 
576 576
         // Check if there is an initial amount to charge.
577 577
         if ( (float) $invoice->get_total() > 0 ) {
578
-			$this->process_initial_payment( $invoice );
578
+            $this->process_initial_payment( $invoice );
579 579
         }
580 580
 
581 581
         // Activate the subscription.
582 582
         $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
583 583
         $expiry   = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) );
584 584
 
585
-		$subscription->set_next_renewal_date( $expiry );
586
-		$subscription->set_date_created( current_time( 'mysql' ) );
587
-		$subscription->set_profile_id( $invoice->generate_key() );
588
-		$subscription->activate();
585
+        $subscription->set_next_renewal_date( $expiry );
586
+        $subscription->set_date_created( current_time( 'mysql' ) );
587
+        $subscription->set_profile_id( $invoice->generate_key() );
588
+        $subscription->activate();
589 589
 
590
-		// Redirect to the success page.
590
+        // Redirect to the success page.
591 591
         wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) );
592 592
 
593 593
     }
594 594
 
595
-	/**
596
-	 * (Maybe) renews an authorize.net subscription profile.
597
-	 *
598
-	 *
599
-	 * @param bool $should_expire
595
+    /**
596
+     * (Maybe) renews an authorize.net subscription profile.
597
+     *
598
+     *
599
+     * @param bool $should_expire
600 600
      * @param WPInv_Subscription $subscription
601
-	 */
602
-	public function maybe_renew_subscription( $should_expire, $subscription ) {
601
+     */
602
+    public function maybe_renew_subscription( $should_expire, $subscription ) {
603 603
 
604 604
         // Ensure its our subscription && it's active.
605 605
         if ( $this->id != $subscription->get_gateway() || ! $subscription->has_status( 'active trialling' ) ) {
@@ -616,18 +616,18 @@  discard block
 block discarded – undo
616 616
 
617 617
         return false;
618 618
 
619
-	}
619
+    }
620 620
 
621 621
     /**
622
-	 * Renews a subscription.
623
-	 *
622
+     * Renews a subscription.
623
+     *
624 624
      * @param WPInv_Subscription $subscription
625
-	 */
626
-	public function renew_subscription( $subscription ) {
625
+     */
626
+    public function renew_subscription( $subscription ) {
627 627
 
628
-		// Generate the renewal invoice.
629
-		$new_invoice = $subscription->create_payment();
630
-		$old_invoice = $subscription->get_parent_payment();
628
+        // Generate the renewal invoice.
629
+        $new_invoice = $subscription->create_payment();
630
+        $old_invoice = $subscription->get_parent_payment();
631 631
 
632 632
         if ( empty( $new_invoice ) ) {
633 633
             $old_invoice->add_note( __( 'Error generating a renewal invoice.', 'invoicing' ), false, false, false );
@@ -636,37 +636,37 @@  discard block
 block discarded – undo
636 636
         }
637 637
 
638 638
         // Charge the payment method.
639
-		$payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
640
-		$customer_profile   = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true );
641
-		$result             = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice );
642
-
643
-		// Do we have an error?
644
-		if ( is_wp_error( $result ) ) {
645
-
646
-			$old_invoice->add_note(
647
-				sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ),
648
-				true,
649
-				false,
650
-				true
651
-			);
652
-			$subscription->failing();
653
-			return;
654
-
655
-		}
656
-
657
-		// Process the response.
658
-		$this->process_charge_response( $result, $new_invoice );
659
-
660
-		if ( wpinv_get_errors() ) {
661
-
662
-			$old_invoice->add_note(
663
-				sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ),
664
-				true,
665
-				false,
666
-				true
667
-			);
668
-			$subscription->failing();
669
-			return;
639
+        $payment_profile_id = get_post_meta( $old_invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
640
+        $customer_profile   = get_user_meta( $old_invoice->get_user_id(), $this->get_customer_profile_meta_name( $old_invoice ), true );
641
+        $result             = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $new_invoice );
642
+
643
+        // Do we have an error?
644
+        if ( is_wp_error( $result ) ) {
645
+
646
+            $old_invoice->add_note(
647
+                sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), $result->get_error_message() ),
648
+                true,
649
+                false,
650
+                true
651
+            );
652
+            $subscription->failing();
653
+            return;
654
+
655
+        }
656
+
657
+        // Process the response.
658
+        $this->process_charge_response( $result, $new_invoice );
659
+
660
+        if ( wpinv_get_errors() ) {
661
+
662
+            $old_invoice->add_note(
663
+                sprintf( __( 'Error renewing subscription : ( %s ).', 'invoicing' ), getpaid_get_errors_html() ),
664
+                true,
665
+                false,
666
+                true
667
+            );
668
+            $subscription->failing();
669
+            return;
670 670
 
671 671
         }
672 672
 
@@ -675,13 +675,13 @@  discard block
 block discarded – undo
675 675
     }
676 676
 
677 677
     /**
678
-	 * Processes invoice addons.
679
-	 *
680
-	 * @param WPInv_Invoice $invoice
681
-	 * @param GetPaid_Form_Item[] $items
682
-	 * @return WPInv_Invoice
683
-	 */
684
-	public function process_addons( $invoice, $items ) {
678
+     * Processes invoice addons.
679
+     *
680
+     * @param WPInv_Invoice $invoice
681
+     * @param GetPaid_Form_Item[] $items
682
+     * @return WPInv_Invoice
683
+     */
684
+    public function process_addons( $invoice, $items ) {
685 685
 
686 686
         global $getpaid_authorize_addons;
687 687
 
@@ -701,7 +701,7 @@  discard block
 block discarded – undo
701 701
         $invoice->recalculate_total();
702 702
 
703 703
         $payment_profile_id = get_post_meta( $invoice->get_id(), 'getpaid_authorizenet_profile_id', true );
704
-		$customer_profile   = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true );
704
+        $customer_profile   = get_user_meta( $invoice->get_user_id(), $this->get_customer_profile_meta_name( $invoice ), true );
705 705
 
706 706
         add_filter( 'getpaid_authorizenet_charge_customer_payment_profile_args', array( $this, 'filter_addons_request' ), 10, 2 );
707 707
         $result = $this->charge_customer_payment_profile( $customer_profile, $payment_profile_id, $invoice );
@@ -716,11 +716,11 @@  discard block
 block discarded – undo
716 716
     }
717 717
 
718 718
     /**
719
-	 * Processes invoice addons.
720
-	 *
719
+     * Processes invoice addons.
720
+     *
721 721
      * @param array $args
722
-	 * @return array
723
-	 */
722
+     * @return array
723
+     */
724 724
     public function filter_addons_request( $args ) {
725 725
 
726 726
         global $getpaid_authorize_addons;
@@ -754,11 +754,11 @@  discard block
 block discarded – undo
754 754
     }
755 755
 
756 756
     /**
757
-	 * Filters the gateway settings.
758
-	 *
759
-	 * @param array $admin_settings
760
-	 */
761
-	public function admin_settings( $admin_settings ) {
757
+     * Filters the gateway settings.
758
+     *
759
+     * @param array $admin_settings
760
+     */
761
+    public function admin_settings( $admin_settings ) {
762 762
 
763 763
         $currencies = sprintf(
764 764
             __( 'Supported Currencies: %s', 'invoicing' ),
@@ -798,7 +798,7 @@  discard block
 block discarded – undo
798 798
             'readonly' => true,
799 799
         );
800 800
 
801
-		return $admin_settings;
802
-	}
801
+        return $admin_settings;
802
+    }
803 803
 
804 804
 }
Please login to merge, or discard this patch.
includes/wpinv-payment-functions.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -235,7 +235,7 @@
 block discarded – undo
235 235
         do_action( 'getpaid_checkout_invoice_exception', $invoice );
236 236
     }
237 237
 
238
-	// Do we have any errors?
238
+    // Do we have any errors?
239 239
     if ( wpinv_get_errors() ) {
240 240
         wp_send_json_error( getpaid_get_errors_html( true, false ) );
241 241
     }
Please login to merge, or discard this patch.
includes/class-wpinv-ajax.php 1 patch
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -14,70 +14,70 @@  discard block
 block discarded – undo
14 14
 class WPInv_Ajax {
15 15
 
16 16
     /**
17
-	 * Hook in ajax handlers.
18
-	 */
19
-	public static function init() {
20
-		add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
-		add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
22
-		self::add_ajax_events();
17
+     * Hook in ajax handlers.
18
+     */
19
+    public static function init() {
20
+        add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
+        add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
22
+        self::add_ajax_events();
23 23
     }
24 24
 
25 25
     /**
26
-	 * Set GetPaid AJAX constant and headers.
27
-	 */
28
-	public static function define_ajax() {
29
-
30
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
-			getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
-			getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
-			if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
-				/** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
35
-			}
36
-			$GLOBALS['wpdb']->hide_errors();
37
-		}
26
+     * Set GetPaid AJAX constant and headers.
27
+     */
28
+    public static function define_ajax() {
29
+
30
+        if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
+            getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
+            getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
+            if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
+                /** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
35
+            }
36
+            $GLOBALS['wpdb']->hide_errors();
37
+        }
38 38
 
39 39
     }
40 40
     
41 41
     /**
42
-	 * Send headers for GetPaid Ajax Requests.
43
-	 *
44
-	 * @since 1.0.18
45
-	 */
46
-	private static function wpinv_ajax_headers() {
47
-		if ( ! headers_sent() ) {
48
-			send_origin_headers();
49
-			send_nosniff_header();
50
-			nocache_headers();
51
-			header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
-			header( 'X-Robots-Tag: noindex' );
53
-			status_header( 200 );
54
-		}
42
+     * Send headers for GetPaid Ajax Requests.
43
+     *
44
+     * @since 1.0.18
45
+     */
46
+    private static function wpinv_ajax_headers() {
47
+        if ( ! headers_sent() ) {
48
+            send_origin_headers();
49
+            send_nosniff_header();
50
+            nocache_headers();
51
+            header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
+            header( 'X-Robots-Tag: noindex' );
53
+            status_header( 200 );
54
+        }
55 55
     }
56 56
     
57 57
     /**
58
-	 * Check for GetPaid Ajax request and fire action.
59
-	 */
60
-	public static function do_wpinv_ajax() {
61
-		global $wp_query;
58
+     * Check for GetPaid Ajax request and fire action.
59
+     */
60
+    public static function do_wpinv_ajax() {
61
+        global $wp_query;
62 62
 
63
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
-			$wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
65
-		}
63
+        if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
+            $wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
65
+        }
66 66
 
67
-		$action = $wp_query->get( 'wpinv-ajax' );
67
+        $action = $wp_query->get( 'wpinv-ajax' );
68 68
 
69
-		if ( $action ) {
70
-			self::wpinv_ajax_headers();
71
-			$action = sanitize_text_field( $action );
72
-			do_action( 'wpinv_ajax_' . $action );
73
-			wp_die();
74
-		}
69
+        if ( $action ) {
70
+            self::wpinv_ajax_headers();
71
+            $action = sanitize_text_field( $action );
72
+            do_action( 'wpinv_ajax_' . $action );
73
+            wp_die();
74
+        }
75 75
 
76 76
     }
77 77
 
78 78
     /**
79
-	 * Hook in ajax methods.
80
-	 */
79
+     * Hook in ajax methods.
80
+     */
81 81
     public static function add_ajax_events() {
82 82
 
83 83
         // array( 'event' => is_frontend )
@@ -255,24 +255,24 @@  discard block
 block discarded – undo
255 255
         check_ajax_referer( 'getpaid_form_nonce' );
256 256
 
257 257
         // Is the request set up correctly?
258
-		if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) {
259
-			echo aui()->alert(
260
-				array(
261
-					'type'    => 'warning',
262
-					'content' => __( 'No payment form or item provided', 'invoicing' ),
263
-				)
258
+        if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) {
259
+            echo aui()->alert(
260
+                array(
261
+                    'type'    => 'warning',
262
+                    'content' => __( 'No payment form or item provided', 'invoicing' ),
263
+                )
264 264
             );
265 265
             exit;
266 266
         }
267 267
 
268 268
         // Payment form or button?
269
-		if ( ! empty( $_GET['form'] ) ) {
269
+        if ( ! empty( $_GET['form'] ) ) {
270 270
             getpaid_display_payment_form( urldecode( $_GET['form'] ) );
271
-		} else if( ! empty( $_GET['invoice'] ) ) {
272
-		    getpaid_display_invoice_payment_form( urldecode( $_GET['invoice'] ) );
271
+        } else if( ! empty( $_GET['invoice'] ) ) {
272
+            getpaid_display_invoice_payment_form( urldecode( $_GET['invoice'] ) );
273 273
         } else {
274
-			$items = getpaid_convert_items_to_array( urldecode( $_GET['item'] ) );
275
-		    getpaid_display_item_payment_form( $items );
274
+            $items = getpaid_convert_items_to_array( urldecode( $_GET['item'] ) );
275
+            getpaid_display_item_payment_form( $items );
276 276
         }
277 277
 
278 278
         exit;
Please login to merge, or discard this patch.
includes/user-functions.php 1 patch
Indentation   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -159,11 +159,11 @@  discard block
 block discarded – undo
159 159
  */
160 160
 function wpinv_get_capability( $capalibilty = 'manage_invoicing' ) {
161 161
 
162
-	if ( current_user_can( 'manage_options' ) ) {
163
-		return 'manage_options';
164
-	};
162
+    if ( current_user_can( 'manage_options' ) ) {
163
+        return 'manage_options';
164
+    };
165 165
 
166
-	return $capalibilty;
166
+    return $capalibilty;
167 167
 }
168 168
 
169 169
 /**
@@ -185,10 +185,10 @@  discard block
 block discarded – undo
185 185
 function wpinv_create_user( $email ) {
186 186
 
187 187
     // Prepare user values.
188
-	$args = array(
189
-		'user_login' => wpinv_generate_user_name( $email ),
190
-		'user_pass'  => wp_generate_password(),
191
-		'user_email' => $email,
188
+    $args = array(
189
+        'user_login' => wpinv_generate_user_name( $email ),
190
+        'user_pass'  => wp_generate_password(),
191
+        'user_email' => $email,
192 192
         'role'       => 'subscriber',
193 193
     );
194 194
 
@@ -205,20 +205,20 @@  discard block
 block discarded – undo
205 205
 function wpinv_generate_user_name( $prefix = '' ) {
206 206
 
207 207
     // If prefix is an email, retrieve the part before the email.
208
-	$prefix = strtok( $prefix, '@' );
208
+    $prefix = strtok( $prefix, '@' );
209 209
 
210
-	// Trim to 4 characters max.
211
-	$prefix = sanitize_user( $prefix );
210
+    // Trim to 4 characters max.
211
+    $prefix = sanitize_user( $prefix );
212 212
 
213
-	$illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
214
-	if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) {
215
-		$prefix = 'gtp';
216
-	}
213
+    $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() );
214
+    if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) {
215
+        $prefix = 'gtp';
216
+    }
217 217
 
218
-	$username = $prefix . '_' . zeroise( wp_rand( 0, 9999 ), 4 );
219
-	if ( username_exists( $username ) ) {
220
-		return wpinv_generate_user_name( $username );
221
-	}
218
+    $username = $prefix . '_' . zeroise( wp_rand( 0, 9999 ), 4 );
219
+    if ( username_exists( $username ) ) {
220
+        return wpinv_generate_user_name( $username );
221
+    }
222 222
 
223 223
     return $username;
224 224
 }
Please login to merge, or discard this patch.
widgets/subscriptions.php 1 patch
Indentation   +332 added lines, -332 removed lines patch added patch discarded remove patch
@@ -14,144 +14,144 @@  discard block
 block discarded – undo
14 14
  */
15 15
 class WPInv_Subscriptions_Widget extends WP_Super_Duper {
16 16
 
17
-	/**
18
-	 * Register the widget with WordPress.
19
-	 *
20
-	 */
21
-	public function __construct() {
22
-
23
-		$options = array(
24
-			'textdomain'    => 'invoicing',
25
-			'block-icon'    => 'controls-repeat',
26
-			'block-category'=> 'widgets',
27
-			'block-keywords'=> "['invoicing','subscriptions', 'getpaid']",
28
-			'class_name'     => __CLASS__,
29
-			'base_id'       => 'wpinv_subscriptions',
30
-			'name'          => __( 'GetPaid > Subscriptions', 'invoicing' ),
31
-			'widget_ops'    => array(
32
-				'classname'   => 'getpaid-subscriptions bsui',
33
-				'description' => esc_html__( "Displays the current user's subscriptions.", 'invoicing' ),
34
-			),
35
-			'arguments'     => array(
36
-				'title'  => array(
37
-					'title'       => __( 'Widget title', 'invoicing' ),
38
-					'desc'        => __( 'Enter widget title.', 'invoicing' ),
39
-					'type'        => 'text',
40
-					'desc_tip'    => true,
41
-					'default'     => '',
42
-					'advanced'    => false
43
-				),
44
-			)
45
-
46
-		);
47
-
48
-
49
-		parent::__construct( $options );
50
-	}
51
-
52
-	/**
53
-	 * Retrieves current user's subscriptions.
54
-	 *
55
-	 * @return GetPaid_Subscriptions_Query
56
-	 */
57
-	public function get_subscriptions() {
58
-
59
-		// Prepare license args.
60
-		$args  = array(
61
-			'customer_in' => get_current_user_id(),
62
-			'paged'       => ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1,
63
-		);
64
-
65
-		return new GetPaid_Subscriptions_Query( $args );
66
-
67
-	}
68
-
69
-	/**
70
-	 * The Super block output function.
71
-	 *
72
-	 * @param array $args
73
-	 * @param array $widget_args
74
-	 * @param string $content
75
-	 *
76
-	 * @return mixed|string|bool
77
-	 */
78
-	public function output( $args = array(), $widget_args = array(), $content = '' ) {
79
-
80
-		// Ensure that the user is logged in.
81
-		if ( ! is_user_logged_in() ) {
82
-
83
-			return aui()->alert(
84
-				array(
85
-					'content' => wp_kses_post( __( 'You need to log-in or create an account to view this section.', 'invoicing' ) ),
86
-					'type'    => 'error',
87
-				)
88
-			);
89
-
90
-		}
91
-
92
-		// Are we displaying a single subscription?
93
-		if ( isset( $_GET['subscription'] ) ) {
94
-			return $this->display_single_subscription( trim( $_GET['subscription'] ) );
95
-		}
96
-
97
-		// Retrieve the user's subscriptions.
98
-		$subscriptions = $this->get_subscriptions();
99
-
100
-		// Start the output buffer.
101
-		ob_start();
102
-
103
-		// Backwards compatibility.
104
-		do_action( 'wpinv_before_user_subscriptions' );
105
-
106
-		// Display errors and notices.
107
-		wpinv_print_errors();
108
-
109
-		do_action( 'getpaid_license_manager_before_subscriptions', $subscriptions );
110
-
111
-		// Print the table header.
112
-		$this->print_table_header();
113
-
114
-		// Print table body.
115
-		$this->print_table_body( $subscriptions->get_results() );
116
-
117
-		// Print table footer.
118
-		$this->print_table_footer();
119
-
120
-		// Print the navigation.
121
-		$this->print_navigation( $subscriptions->get_total() );
122
-
123
-		// Backwards compatibility.
124
-		do_action( 'wpinv_after_user_subscriptions' );
125
-
126
-		// Return the output.
127
-		return ob_get_clean();
128
-
129
-	}
130
-
131
-	/**
132
-	 * Retrieves the subscription columns.
133
-	 *
134
-	 * @return array
135
-	 */
136
-	public function get_subscriptions_table_columns() {
17
+    /**
18
+     * Register the widget with WordPress.
19
+     *
20
+     */
21
+    public function __construct() {
22
+
23
+        $options = array(
24
+            'textdomain'    => 'invoicing',
25
+            'block-icon'    => 'controls-repeat',
26
+            'block-category'=> 'widgets',
27
+            'block-keywords'=> "['invoicing','subscriptions', 'getpaid']",
28
+            'class_name'     => __CLASS__,
29
+            'base_id'       => 'wpinv_subscriptions',
30
+            'name'          => __( 'GetPaid > Subscriptions', 'invoicing' ),
31
+            'widget_ops'    => array(
32
+                'classname'   => 'getpaid-subscriptions bsui',
33
+                'description' => esc_html__( "Displays the current user's subscriptions.", 'invoicing' ),
34
+            ),
35
+            'arguments'     => array(
36
+                'title'  => array(
37
+                    'title'       => __( 'Widget title', 'invoicing' ),
38
+                    'desc'        => __( 'Enter widget title.', 'invoicing' ),
39
+                    'type'        => 'text',
40
+                    'desc_tip'    => true,
41
+                    'default'     => '',
42
+                    'advanced'    => false
43
+                ),
44
+            )
45
+
46
+        );
47
+
48
+
49
+        parent::__construct( $options );
50
+    }
51
+
52
+    /**
53
+     * Retrieves current user's subscriptions.
54
+     *
55
+     * @return GetPaid_Subscriptions_Query
56
+     */
57
+    public function get_subscriptions() {
58
+
59
+        // Prepare license args.
60
+        $args  = array(
61
+            'customer_in' => get_current_user_id(),
62
+            'paged'       => ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1,
63
+        );
64
+
65
+        return new GetPaid_Subscriptions_Query( $args );
66
+
67
+    }
68
+
69
+    /**
70
+     * The Super block output function.
71
+     *
72
+     * @param array $args
73
+     * @param array $widget_args
74
+     * @param string $content
75
+     *
76
+     * @return mixed|string|bool
77
+     */
78
+    public function output( $args = array(), $widget_args = array(), $content = '' ) {
79
+
80
+        // Ensure that the user is logged in.
81
+        if ( ! is_user_logged_in() ) {
82
+
83
+            return aui()->alert(
84
+                array(
85
+                    'content' => wp_kses_post( __( 'You need to log-in or create an account to view this section.', 'invoicing' ) ),
86
+                    'type'    => 'error',
87
+                )
88
+            );
89
+
90
+        }
91
+
92
+        // Are we displaying a single subscription?
93
+        if ( isset( $_GET['subscription'] ) ) {
94
+            return $this->display_single_subscription( trim( $_GET['subscription'] ) );
95
+        }
96
+
97
+        // Retrieve the user's subscriptions.
98
+        $subscriptions = $this->get_subscriptions();
99
+
100
+        // Start the output buffer.
101
+        ob_start();
102
+
103
+        // Backwards compatibility.
104
+        do_action( 'wpinv_before_user_subscriptions' );
105
+
106
+        // Display errors and notices.
107
+        wpinv_print_errors();
108
+
109
+        do_action( 'getpaid_license_manager_before_subscriptions', $subscriptions );
110
+
111
+        // Print the table header.
112
+        $this->print_table_header();
113
+
114
+        // Print table body.
115
+        $this->print_table_body( $subscriptions->get_results() );
116
+
117
+        // Print table footer.
118
+        $this->print_table_footer();
119
+
120
+        // Print the navigation.
121
+        $this->print_navigation( $subscriptions->get_total() );
122
+
123
+        // Backwards compatibility.
124
+        do_action( 'wpinv_after_user_subscriptions' );
125
+
126
+        // Return the output.
127
+        return ob_get_clean();
128
+
129
+    }
130
+
131
+    /**
132
+     * Retrieves the subscription columns.
133
+     *
134
+     * @return array
135
+     */
136
+    public function get_subscriptions_table_columns() {
137 137
 
138
-		$columns = array(
139
-			'subscription'   => __( 'Subscription', 'invoicing' ),
140
-			'amount'         => __( 'Amount', 'invoicing' ),
141
-			'renewal-date'   => __( 'Next payment', 'invoicing' ),
142
-			'status'         => __( 'Status', 'invoicing' ),
143
-		);
138
+        $columns = array(
139
+            'subscription'   => __( 'Subscription', 'invoicing' ),
140
+            'amount'         => __( 'Amount', 'invoicing' ),
141
+            'renewal-date'   => __( 'Next payment', 'invoicing' ),
142
+            'status'         => __( 'Status', 'invoicing' ),
143
+        );
144 144
 
145
-		return apply_filters( 'getpaid_frontend_subscriptions_table_columns', $columns );
146
-	}
145
+        return apply_filters( 'getpaid_frontend_subscriptions_table_columns', $columns );
146
+    }
147 147
 
148
-	/**
149
-	 * Displays the table header.
150
-	 *
151
-	 */
152
-	public function print_table_header() {
148
+    /**
149
+     * Displays the table header.
150
+     *
151
+     */
152
+    public function print_table_header() {
153 153
 
154
-		?>
154
+        ?>
155 155
 
156 156
 			<table class="table table-bordered table-striped">
157 157
 
@@ -167,121 +167,121 @@  discard block
 block discarded – undo
167 167
 
168 168
 		<?php
169 169
 
170
-	}
170
+    }
171 171
 
172
-	/**
173
-	 * Displays the table body.
174
-	 *
175
-	 * @param WPInv_Subscription[] $subscriptions
176
-	 */
177
-	public function print_table_body( $subscriptions ) {
172
+    /**
173
+     * Displays the table body.
174
+     *
175
+     * @param WPInv_Subscription[] $subscriptions
176
+     */
177
+    public function print_table_body( $subscriptions ) {
178 178
 
179
-		if ( empty( $subscriptions ) ) {
180
-			$this->print_table_body_no_subscriptions();
181
-		} else {
182
-			$this->print_table_body_subscriptions( $subscriptions );
183
-		}
179
+        if ( empty( $subscriptions ) ) {
180
+            $this->print_table_body_no_subscriptions();
181
+        } else {
182
+            $this->print_table_body_subscriptions( $subscriptions );
183
+        }
184 184
 
185
-	}
185
+    }
186 186
 
187
-	/**
188
-	 * Displays the table body if no subscriptions were found.
189
-	 *
190
-	 */
191
-	public function print_table_body_no_subscriptions() {
187
+    /**
188
+     * Displays the table body if no subscriptions were found.
189
+     *
190
+     */
191
+    public function print_table_body_no_subscriptions() {
192 192
 
193
-		?>
193
+        ?>
194 194
 		<tbody>
195 195
 
196 196
 			<tr>
197 197
 				<td colspan="<?php echo count( $this->get_subscriptions_table_columns() ); ?>">
198 198
 
199 199
 					<?php
200
-						echo aui()->alert(
201
-							array(
202
-								'content' => wp_kses_post( __( 'No subscriptions found.', 'invoicing' ) ),
203
-								'type'    => 'warning',
204
-							)
205
-						);
206
-					?>
200
+                        echo aui()->alert(
201
+                            array(
202
+                                'content' => wp_kses_post( __( 'No subscriptions found.', 'invoicing' ) ),
203
+                                'type'    => 'warning',
204
+                            )
205
+                        );
206
+                    ?>
207 207
 
208 208
 				</td>
209 209
 			</tr>
210 210
 
211 211
 		</tbody>
212 212
 		<?php
213
-	}
213
+    }
214 214
 
215
-	/**
216
-	 * Displays the table body if subscriptions were found.
217
-	 *
218
-	 * @param WPInv_Subscription[] $subscriptions
219
-	 */
220
-	public function print_table_body_subscriptions( $subscriptions ) {
215
+    /**
216
+     * Displays the table body if subscriptions were found.
217
+     *
218
+     * @param WPInv_Subscription[] $subscriptions
219
+     */
220
+    public function print_table_body_subscriptions( $subscriptions ) {
221 221
 
222
-		?>
222
+        ?>
223 223
 		<tbody>
224 224
 
225 225
 			<?php foreach ( $subscriptions as $subscription ) : ?>
226 226
 				<tr class="getpaid-subscriptions-table-row subscription-<?php echo (int) $subscription->get_id(); ?>">
227 227
 					<?php
228
-						wpinv_get_template(
229
-							'subscriptions/subscriptions-table-row.php',
230
-							array(
231
-								'subscription' => $subscription,
232
-								'widget'       => $this
233
-							)
234
-						);
235
-					?>
228
+                        wpinv_get_template(
229
+                            'subscriptions/subscriptions-table-row.php',
230
+                            array(
231
+                                'subscription' => $subscription,
232
+                                'widget'       => $this
233
+                            )
234
+                        );
235
+                    ?>
236 236
 				</tr>
237 237
 			<?php endforeach; ?>
238 238
 
239 239
 		</tbody>
240 240
 		<?php
241
-	}
242
-
243
-	/**
244
-	 * Adds row actions to a column
245
-	 *
246
-	 * @param string $content column content
247
-	 * @param WPInv_Subscription $subscription
248
-	 * @since       1.0.0
249
-	 * @return      string
250
-	 */
251
-	public function add_row_actions( $content, $subscription ) {
252
-
253
-		// Prepare row actions.
254
-		$actions = array();
255
-
256
-		// View subscription action.
257
-		$view_url        = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
258
-		$view_url        = esc_url( add_query_arg( 'subscription', (int) $subscription->get_id(), $view_url ) );
259
-		$actions['view'] = "<a href='$view_url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>';
260
-
261
-		// Filter the actions.
262
-		$actions = apply_filters( 'getpaid_subscriptions_table_subscription_actions', $actions, $subscription );
263
-
264
-		$sanitized  = array();
265
-		foreach ( $actions as $key => $action ) {
266
-			$key         = sanitize_html_class( $key );
267
-			$action      = wp_kses_post( $action );
268
-			$sanitized[] = "<span class='$key'>$action</span>";
269
-		}
270
-
271
-		$row_actions  = "<small class='form-text getpaid-subscription-item-actions'>";
272
-		$row_actions .= implode( ' | ', $sanitized );
273
-		$row_actions .= '</small>';
274
-
275
-		return $content . $row_actions;
276
-	}
277
-
278
-	/**
279
-	 * Displays the table footer.
280
-	 *
281
-	 */
282
-	public function print_table_footer() {
283
-
284
-		?>
241
+    }
242
+
243
+    /**
244
+     * Adds row actions to a column
245
+     *
246
+     * @param string $content column content
247
+     * @param WPInv_Subscription $subscription
248
+     * @since       1.0.0
249
+     * @return      string
250
+     */
251
+    public function add_row_actions( $content, $subscription ) {
252
+
253
+        // Prepare row actions.
254
+        $actions = array();
255
+
256
+        // View subscription action.
257
+        $view_url        = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
258
+        $view_url        = esc_url( add_query_arg( 'subscription', (int) $subscription->get_id(), $view_url ) );
259
+        $actions['view'] = "<a href='$view_url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>';
260
+
261
+        // Filter the actions.
262
+        $actions = apply_filters( 'getpaid_subscriptions_table_subscription_actions', $actions, $subscription );
263
+
264
+        $sanitized  = array();
265
+        foreach ( $actions as $key => $action ) {
266
+            $key         = sanitize_html_class( $key );
267
+            $action      = wp_kses_post( $action );
268
+            $sanitized[] = "<span class='$key'>$action</span>";
269
+        }
270
+
271
+        $row_actions  = "<small class='form-text getpaid-subscription-item-actions'>";
272
+        $row_actions .= implode( ' | ', $sanitized );
273
+        $row_actions .= '</small>';
274
+
275
+        return $content . $row_actions;
276
+    }
277
+
278
+    /**
279
+     * Displays the table footer.
280
+     *
281
+     */
282
+    public function print_table_footer() {
283
+
284
+        ?>
285 285
 
286 286
 				<tfoot>
287 287
 					<tr>
@@ -296,129 +296,129 @@  discard block
 block discarded – undo
296 296
 			</table>
297 297
 		<?php
298 298
 
299
-	}
299
+    }
300 300
 
301
-	/**
302
-	 * Displays the navigation.
303
-	 *
304
-	 * @param int $total
305
-	 */
306
-	public function print_navigation( $total ) {
301
+    /**
302
+     * Displays the navigation.
303
+     *
304
+     * @param int $total
305
+     */
306
+    public function print_navigation( $total ) {
307 307
 
308
-		if ( $total < 1 ) {
308
+        if ( $total < 1 ) {
309 309
 
310
-			// Out-of-bounds, run the query again without LIMIT for total count.
311
-			$args  = array(
312
-				'customer_in' => get_current_user_id(),
313
-				'fields'      => 'id',
314
-			);
310
+            // Out-of-bounds, run the query again without LIMIT for total count.
311
+            $args  = array(
312
+                'customer_in' => get_current_user_id(),
313
+                'fields'      => 'id',
314
+            );
315 315
 
316
-			$count_query = new GetPaid_Subscriptions_Query( $args );
317
-			$total       = $count_query->get_total();
318
-		}
316
+            $count_query = new GetPaid_Subscriptions_Query( $args );
317
+            $total       = $count_query->get_total();
318
+        }
319 319
 
320
-		// Abort if we do not have pages.
321
-		if ( 2 > $total ) {
322
-			return;
323
-		}
320
+        // Abort if we do not have pages.
321
+        if ( 2 > $total ) {
322
+            return;
323
+        }
324 324
 
325
-		?>
325
+        ?>
326 326
 
327 327
 		<div class="getpaid-subscriptions-pagination">
328 328
 			<?php
329
-				$big = 999999;
330
-
331
-				echo getpaid_paginate_links(
332
-					array(
333
-						'base'    => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
334
-						'format'  => '?paged=%#%',
335
-						'total'   => (int) ceil( $total / 10 ),
336
-					)
337
-				);
338
-			?>
329
+                $big = 999999;
330
+
331
+                echo getpaid_paginate_links(
332
+                    array(
333
+                        'base'    => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
334
+                        'format'  => '?paged=%#%',
335
+                        'total'   => (int) ceil( $total / 10 ),
336
+                    )
337
+                );
338
+            ?>
339 339
 		</div>
340 340
 
341 341
 		<?php
342
-	}
343
-
344
-	/**
345
-	 * Returns a single subscription's columns.
346
-	 *
347
-	 * @param WPInv_Subscription $subscription
348
-	 *
349
-	 * @return array
350
-	 */
351
-	public function get_single_subscription_columns( $subscription ) {
352
-
353
-		// Prepare subscription detail columns.
354
-		$fields = apply_filters(
355
-			'getpaid_single_subscription_details_fields',
356
-			array(
357
-				'status'           => __( 'Status', 'invoicing' ),
358
-				'initial_amount'   => __( 'Initial amount', 'invoicing' ),
359
-				'recurring_amount' => __( 'Recurring amount', 'invoicing' ),
360
-				'start_date'       => __( 'Start date', 'invoicing' ),
361
-				'expiry_date'      => __( 'Next payment', 'invoicing' ),
362
-				'payments'         => __( 'Payments', 'invoicing' ),
363
-				'item'             => __( 'Item', 'invoicing' ),
364
-			),
365
-			$subscription
366
-		);
367
-
368
-		if ( ! $subscription->is_active() || $subscription->is_last_renewal() ) {
369
-			$fields['expiry_date'] = __( 'End date', 'invoicing' );
370
-		}
371
-
372
-		if ( $subscription->get_initial_amount() == $subscription->get_recurring_amount() ) {
373
-			unset( $fields['initial_amount'] );
374
-		}
375
-
376
-		return $fields;
377
-	}
378
-
379
-	/**
380
-	 * Displays a single subscription.
381
-	 *
382
-	 * @param string $subscription
383
-	 *
384
-	 * @return string
385
-	 */
386
-	public function display_single_subscription( $subscription ) {
387
-
388
-		// Fetch the subscription.
389
-		$subscription = new WPInv_Subscription( (int) $subscription );
390
-
391
-		if ( ! $subscription->get_id() ) {
392
-
393
-			return aui()->alert(
394
-				array(
395
-					'content' => wp_kses_post( __( 'Subscription not found.', 'invoicing' ) ),
396
-					'type'    => 'error',
397
-				)
398
-			);
399
-
400
-		}
401
-
402
-		// Ensure that the user owns this subscription key.
403
-		if ( get_current_user_id() != $subscription->get_customer_id() ) {
404
-
405
-			return aui()->alert(
406
-				array(
407
-					'content' => wp_kses_post( __( 'You do not have permission to view this subscription. Ensure that you are logged in to the account that owns the subscription.', 'invoicing' ) ),
408
-					'type'    => 'error',
409
-				)
410
-			);
411
-
412
-		}
413
-
414
-		return wpinv_get_template_html(
415
-			'subscriptions/subscription-details.php',
416
-			array(
417
-				'subscription' => $subscription,
418
-				'widget'       => $this
419
-			)
420
-		);
421
-
422
-	}
342
+    }
343
+
344
+    /**
345
+     * Returns a single subscription's columns.
346
+     *
347
+     * @param WPInv_Subscription $subscription
348
+     *
349
+     * @return array
350
+     */
351
+    public function get_single_subscription_columns( $subscription ) {
352
+
353
+        // Prepare subscription detail columns.
354
+        $fields = apply_filters(
355
+            'getpaid_single_subscription_details_fields',
356
+            array(
357
+                'status'           => __( 'Status', 'invoicing' ),
358
+                'initial_amount'   => __( 'Initial amount', 'invoicing' ),
359
+                'recurring_amount' => __( 'Recurring amount', 'invoicing' ),
360
+                'start_date'       => __( 'Start date', 'invoicing' ),
361
+                'expiry_date'      => __( 'Next payment', 'invoicing' ),
362
+                'payments'         => __( 'Payments', 'invoicing' ),
363
+                'item'             => __( 'Item', 'invoicing' ),
364
+            ),
365
+            $subscription
366
+        );
367
+
368
+        if ( ! $subscription->is_active() || $subscription->is_last_renewal() ) {
369
+            $fields['expiry_date'] = __( 'End date', 'invoicing' );
370
+        }
371
+
372
+        if ( $subscription->get_initial_amount() == $subscription->get_recurring_amount() ) {
373
+            unset( $fields['initial_amount'] );
374
+        }
375
+
376
+        return $fields;
377
+    }
378
+
379
+    /**
380
+     * Displays a single subscription.
381
+     *
382
+     * @param string $subscription
383
+     *
384
+     * @return string
385
+     */
386
+    public function display_single_subscription( $subscription ) {
387
+
388
+        // Fetch the subscription.
389
+        $subscription = new WPInv_Subscription( (int) $subscription );
390
+
391
+        if ( ! $subscription->get_id() ) {
392
+
393
+            return aui()->alert(
394
+                array(
395
+                    'content' => wp_kses_post( __( 'Subscription not found.', 'invoicing' ) ),
396
+                    'type'    => 'error',
397
+                )
398
+            );
399
+
400
+        }
401
+
402
+        // Ensure that the user owns this subscription key.
403
+        if ( get_current_user_id() != $subscription->get_customer_id() ) {
404
+
405
+            return aui()->alert(
406
+                array(
407
+                    'content' => wp_kses_post( __( 'You do not have permission to view this subscription. Ensure that you are logged in to the account that owns the subscription.', 'invoicing' ) ),
408
+                    'type'    => 'error',
409
+                )
410
+            );
411
+
412
+        }
413
+
414
+        return wpinv_get_template_html(
415
+            'subscriptions/subscription-details.php',
416
+            array(
417
+                'subscription' => $subscription,
418
+                'widget'       => $this
419
+            )
420
+        );
421
+
422
+    }
423 423
 
424 424
 }
Please login to merge, or discard this patch.
includes/invoice-functions.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
  * Checks if the current user cna view an invoice receipt.
68 68
  */
69 69
 function wpinv_can_view_receipt( $invoice ) {
70
-	return (bool) apply_filters( 'wpinv_can_view_receipt', wpinv_user_can_view_invoice( $invoice ), $invoice );
70
+    return (bool) apply_filters( 'wpinv_can_view_receipt', wpinv_user_can_view_invoice( $invoice ), $invoice );
71 71
 }
72 72
 
73 73
 /**
@@ -1256,21 +1256,21 @@  discard block
 block discarded – undo
1256 1256
  */
1257 1257
 function getpaid_get_invoice_status_classes() {
1258 1258
 
1259
-	return apply_filters(
1260
-		'getpaid_get_invoice_status_classes',
1261
-		array(
1259
+    return apply_filters(
1260
+        'getpaid_get_invoice_status_classes',
1261
+        array(
1262 1262
             'wpi-quote-declined' => 'badge-danger',
1263 1263
             'wpi-failed'         => 'badge-danger',
1264
-			'wpi-processing'     => 'badge-info',
1265
-			'wpi-onhold'         => 'badge-warning',
1266
-			'wpi-quote-accepted' => 'badge-success',
1267
-			'publish'            => 'badge-success',
1268
-			'wpi-renewal'        => 'badge-primary',
1264
+            'wpi-processing'     => 'badge-info',
1265
+            'wpi-onhold'         => 'badge-warning',
1266
+            'wpi-quote-accepted' => 'badge-success',
1267
+            'publish'            => 'badge-success',
1268
+            'wpi-renewal'        => 'badge-primary',
1269 1269
             'wpi-cancelled'      => 'badge-secondary',
1270 1270
             'wpi-pending'        => 'badge-dark',
1271 1271
             'wpi-quote-pending'  => 'badge-dark',
1272 1272
             'wpi-refunded'       => 'badge-secondary',
1273
-		)
1274
-	);
1273
+        )
1274
+    );
1275 1275
 
1276 1276
 }
Please login to merge, or discard this patch.
includes/gateways/class-getpaid-bank-transfer-gateway.php 1 patch
Indentation   +175 added lines, -175 removed lines patch added patch discarded remove patch
@@ -13,30 +13,30 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Bank_Transfer_Gateway extends GetPaid_Payment_Gateway {
14 14
 
15 15
     /**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20 20
     public $id = 'bank_transfer';
21 21
 
22
-	/**
23
-	 * An array of features that this gateway supports.
24
-	 *
25
-	 * @var array
26
-	 */
27
-	protected $supports = array( 'addons' );
22
+    /**
23
+     * An array of features that this gateway supports.
24
+     *
25
+     * @var array
26
+     */
27
+    protected $supports = array( 'addons' );
28 28
 
29 29
     /**
30
-	 * Payment method order.
31
-	 *
32
-	 * @var int
33
-	 */
34
-	public $order = 8;
30
+     * Payment method order.
31
+     *
32
+     * @var int
33
+     */
34
+    public $order = 8;
35 35
 
36 36
     /**
37
-	 * Class constructor.
38
-	 */
39
-	public function __construct() {
37
+     * Class constructor.
38
+     */
39
+    public function __construct() {
40 40
         parent::__construct();
41 41
 
42 42
         $this->title                = __( 'Direct bank transfer', 'invoicing' );
@@ -44,23 +44,23 @@  discard block
 block discarded – undo
44 44
         $this->checkout_button_text = __( 'Proceed', 'invoicing' );
45 45
         $this->instructions         = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) );
46 46
 
47
-		add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
48
-		add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
49
-		add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 );
50
-		add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
47
+        add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
48
+        add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
49
+        add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 );
50
+        add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
51 51
 
52 52
     }
53 53
 
54 54
     /**
55
-	 * Process Payment.
56
-	 *
57
-	 *
58
-	 * @param WPInv_Invoice $invoice Invoice.
59
-	 * @param array $submission_data Posted checkout fields.
60
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
61
-	 * @return array
62
-	 */
63
-	public function process_payment( $invoice, $submission_data, $submission ) {
55
+     * Process Payment.
56
+     *
57
+     *
58
+     * @param WPInv_Invoice $invoice Invoice.
59
+     * @param array $submission_data Posted checkout fields.
60
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
61
+     * @return array
62
+     */
63
+    public function process_payment( $invoice, $submission_data, $submission ) {
64 64
 
65 65
         // Add a transaction id.
66 66
         $invoice->set_transaction_id( $invoice->generate_key('trans_') );
@@ -81,66 +81,66 @@  discard block
 block discarded – undo
81 81
     }
82 82
 
83 83
     /**
84
-	 * Output for the order received page.
85
-	 *
86
-	 * @param WPInv_Invoice $invoice Invoice.
87
-	 */
88
-	public function thankyou_page( $invoice ) {
84
+     * Output for the order received page.
85
+     *
86
+     * @param WPInv_Invoice $invoice Invoice.
87
+     */
88
+    public function thankyou_page( $invoice ) {
89 89
 
90 90
         if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
91 91
 
92
-			echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
92
+            echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
93 93
 
94 94
             if ( ! empty( $this->instructions ) ) {
95 95
                 echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) );
96
-			}
96
+            }
97 97
 
98
-			$this->bank_details( $invoice );
98
+            $this->bank_details( $invoice );
99 99
 
100
-			echo '</div>';
100
+            echo '</div>';
101 101
 
102 102
         }
103 103
 
104
-	}
104
+    }
105 105
 
106 106
     /**
107
-	 * Add content to the WPI emails.
108
-	 *
109
-	 * @param WPInv_Invoice $invoice Invoice.
110
-	 * @param string     $email_type Email format: plain text or HTML.
111
-	 * @param bool     $sent_to_admin Sent to admin.
112
-	 */
113
-	public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
107
+     * Add content to the WPI emails.
108
+     *
109
+     * @param WPInv_Invoice $invoice Invoice.
110
+     * @param string     $email_type Email format: plain text or HTML.
111
+     * @param bool     $sent_to_admin Sent to admin.
112
+     */
113
+    public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
114 114
 
115
-		if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
115
+        if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
116 116
 
117
-			echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
117
+            echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
118 118
 
119
-			if ( $this->instructions ) {
120
-				echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
119
+            if ( $this->instructions ) {
120
+                echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
121 121
             }
122 122
 
123
-			$this->bank_details( $invoice );
123
+            $this->bank_details( $invoice );
124 124
 			
125
-			echo '</div>';
125
+            echo '</div>';
126 126
 
127
-		}
127
+        }
128 128
 
129 129
     }
130 130
     
131 131
     /**
132
-	 * Get bank details and place into a list format.
133
-	 *
134
-	 * @param WPInv_Invoice $invoice Invoice.
135
-	 */
136
-	protected function bank_details( $invoice ) {
132
+     * Get bank details and place into a list format.
133
+     *
134
+     * @param WPInv_Invoice $invoice Invoice.
135
+     */
136
+    protected function bank_details( $invoice ) {
137 137
 
138
-		// Get the invoice country and country $locale.
139
-		$country = $invoice->get_country();
140
-		$locale  = $this->get_country_locale();
138
+        // Get the invoice country and country $locale.
139
+        $country = $invoice->get_country();
140
+        $locale  = $this->get_country_locale();
141 141
 
142
-		// Get sortcode label in the $locale array and use appropriate one.
143
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
142
+        // Get sortcode label in the $locale array and use appropriate one.
143
+        $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
144 144
 
145 145
         $bank_fields = array(
146 146
             'ac_name'     => __( 'Account Name', 'invoicing' ),
@@ -169,144 +169,144 @@  discard block
 block discarded – undo
169 169
             return;
170 170
         }
171 171
 
172
-		echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL;
172
+        echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL;
173 173
 
174
-		echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
174
+        echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
175 175
 
176
-		foreach ( $bank_info as $key => $data ) {
176
+        foreach ( $bank_info as $key => $data ) {
177 177
 
178
-			$key   = sanitize_html_class( $key );
179
-			$label = wp_kses_post( $data['label'] );
180
-			$value = wp_kses_post( wptexturize( $data['value'] ) );
178
+            $key   = sanitize_html_class( $key );
179
+            $label = wp_kses_post( $data['label'] );
180
+            $value = wp_kses_post( wptexturize( $data['value'] ) );
181 181
 
182
-			echo "<tr class='getpaid-bank-transfer-$key'><th>$label</th><td>$value</td></tr>" . PHP_EOL;
183
-		}
182
+            echo "<tr class='getpaid-bank-transfer-$key'><th>$label</th><td>$value</td></tr>" . PHP_EOL;
183
+        }
184 184
 
185
-		echo '</table>';
185
+        echo '</table>';
186 186
 
187 187
     }
188 188
     
189 189
     /**
190
-	 * Get country locale if localized.
191
-	 *
192
-	 * @return array
193
-	 */
194
-	public function get_country_locale() {
195
-
196
-		if ( empty( $this->locale ) ) {
197
-
198
-			// Locale information to be used - only those that are not 'Sort Code'.
199
-			$this->locale = apply_filters(
200
-				'getpaid_get_bank_transfer_locale',
201
-				array(
202
-					'AU' => array(
203
-						'sortcode' => array(
204
-							'label' => __( 'BSB', 'invoicing' ),
205
-						),
206
-					),
207
-					'CA' => array(
208
-						'sortcode' => array(
209
-							'label' => __( 'Bank transit number', 'invoicing' ),
210
-						),
211
-					),
212
-					'IN' => array(
213
-						'sortcode' => array(
214
-							'label' => __( 'IFSC', 'invoicing' ),
215
-						),
216
-					),
217
-					'IT' => array(
218
-						'sortcode' => array(
219
-							'label' => __( 'Branch sort', 'invoicing' ),
220
-						),
221
-					),
222
-					'NZ' => array(
223
-						'sortcode' => array(
224
-							'label' => __( 'Bank code', 'invoicing' ),
225
-						),
226
-					),
227
-					'SE' => array(
228
-						'sortcode' => array(
229
-							'label' => __( 'Bank code', 'invoicing' ),
230
-						),
231
-					),
232
-					'US' => array(
233
-						'sortcode' => array(
234
-							'label' => __( 'Routing number', 'invoicing' ),
235
-						),
236
-					),
237
-					'ZA' => array(
238
-						'sortcode' => array(
239
-							'label' => __( 'Branch code', 'invoicing' ),
240
-						),
241
-					),
242
-				)
243
-			);
244
-
245
-		}
246
-
247
-		return $this->locale;
248
-
249
-	}
250
-
251
-	/**
252
-	 * Filters the gateway settings.
253
-	 * 
254
-	 * @param array $admin_settings
255
-	 */
256
-	public function admin_settings( $admin_settings ) {
190
+     * Get country locale if localized.
191
+     *
192
+     * @return array
193
+     */
194
+    public function get_country_locale() {
195
+
196
+        if ( empty( $this->locale ) ) {
197
+
198
+            // Locale information to be used - only those that are not 'Sort Code'.
199
+            $this->locale = apply_filters(
200
+                'getpaid_get_bank_transfer_locale',
201
+                array(
202
+                    'AU' => array(
203
+                        'sortcode' => array(
204
+                            'label' => __( 'BSB', 'invoicing' ),
205
+                        ),
206
+                    ),
207
+                    'CA' => array(
208
+                        'sortcode' => array(
209
+                            'label' => __( 'Bank transit number', 'invoicing' ),
210
+                        ),
211
+                    ),
212
+                    'IN' => array(
213
+                        'sortcode' => array(
214
+                            'label' => __( 'IFSC', 'invoicing' ),
215
+                        ),
216
+                    ),
217
+                    'IT' => array(
218
+                        'sortcode' => array(
219
+                            'label' => __( 'Branch sort', 'invoicing' ),
220
+                        ),
221
+                    ),
222
+                    'NZ' => array(
223
+                        'sortcode' => array(
224
+                            'label' => __( 'Bank code', 'invoicing' ),
225
+                        ),
226
+                    ),
227
+                    'SE' => array(
228
+                        'sortcode' => array(
229
+                            'label' => __( 'Bank code', 'invoicing' ),
230
+                        ),
231
+                    ),
232
+                    'US' => array(
233
+                        'sortcode' => array(
234
+                            'label' => __( 'Routing number', 'invoicing' ),
235
+                        ),
236
+                    ),
237
+                    'ZA' => array(
238
+                        'sortcode' => array(
239
+                            'label' => __( 'Branch code', 'invoicing' ),
240
+                        ),
241
+                    ),
242
+                )
243
+            );
244
+
245
+        }
246
+
247
+        return $this->locale;
248
+
249
+    }
250
+
251
+    /**
252
+     * Filters the gateway settings.
253
+     * 
254
+     * @param array $admin_settings
255
+     */
256
+    public function admin_settings( $admin_settings ) {
257 257
 
258 258
         $admin_settings['bank_transfer_desc']['std']    = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' );
259
-		$admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
259
+        $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
260 260
 
261
-		$locale  = $this->get_country_locale();
261
+        $locale  = $this->get_country_locale();
262 262
 
263
-		// Get sortcode label in the $locale array and use appropriate one.
264
-		$country  = wpinv_default_billing_country();
265
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
263
+        // Get sortcode label in the $locale array and use appropriate one.
264
+        $country  = wpinv_default_billing_country();
265
+        $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
266 266
 
267
-		$admin_settings['bank_transfer_ac_name'] = array(
267
+        $admin_settings['bank_transfer_ac_name'] = array(
268 268
             'type' => 'text',
269 269
             'id'   => 'bank_transfer_ac_name',
270 270
             'name' => __( 'Account Name', 'invoicing' ),
271
-		);
271
+        );
272 272
 		
273
-		$admin_settings['bank_transfer_ac_no'] = array(
273
+        $admin_settings['bank_transfer_ac_no'] = array(
274 274
             'type' => 'text',
275 275
             'id'   => 'bank_transfer_ac_no',
276 276
             'name' => __( 'Account Number', 'invoicing' ),
277
-		);
277
+        );
278 278
 		
279
-		$admin_settings['bank_transfer_bank_name'] = array(
279
+        $admin_settings['bank_transfer_bank_name'] = array(
280 280
             'type' => 'text',
281 281
             'id'   => 'bank_transfer_bank_name',
282 282
             'name' => __( 'Bank Name', 'invoicing' ),
283
-		);
283
+        );
284 284
 
285
-		$admin_settings['bank_transfer_ifsc'] = array(
285
+        $admin_settings['bank_transfer_ifsc'] = array(
286 286
             'type' => 'text',
287 287
             'id'   => 'bank_transfer_ifsc',
288 288
             'name' => __( 'IFSC Code', 'invoicing' ),
289
-		);
289
+        );
290 290
 
291
-		$admin_settings['bank_transfer_iban'] = array(
291
+        $admin_settings['bank_transfer_iban'] = array(
292 292
             'type' => 'text',
293 293
             'id'   => 'bank_transfer_iban',
294 294
             'name' => __( 'IBAN', 'invoicing' ),
295
-		);
295
+        );
296 296
 
297
-		$admin_settings['bank_transfer_bic'] = array(
297
+        $admin_settings['bank_transfer_bic'] = array(
298 298
             'type' => 'text',
299 299
             'id'   => 'bank_transfer_bic',
300 300
             'name' => __( 'BIC/Swift Code', 'invoicing' ),
301
-		);
301
+        );
302 302
 		
303
-		$admin_settings['bank_transfer_sort_code'] = array(
304
-			'type' => 'text',
305
-			'id'   => 'bank_transfer_sort_code',
306
-			'name' => $sortcode,
307
-		);
303
+        $admin_settings['bank_transfer_sort_code'] = array(
304
+            'type' => 'text',
305
+            'id'   => 'bank_transfer_sort_code',
306
+            'name' => $sortcode,
307
+        );
308 308
 
309
-		$admin_settings['bank_transfer_info'] = array(
309
+        $admin_settings['bank_transfer_info'] = array(
310 310
             'id'   => 'bank_transfer_info',
311 311
             'name' => __( 'Instructions', 'invoicing' ),
312 312
             'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ),
@@ -316,17 +316,17 @@  discard block
 block discarded – undo
316 316
             'rows' => 5
317 317
         );
318 318
 
319
-		return $admin_settings;
320
-	}
319
+        return $admin_settings;
320
+    }
321 321
 
322
-	/**
323
-	 * Processes invoice addons.
324
-	 *
325
-	 * @param WPInv_Invoice $invoice
326
-	 * @param GetPaid_Form_Item[] $items
327
-	 * @return WPInv_Invoice
328
-	 */
329
-	public function process_addons( $invoice, $items ) {
322
+    /**
323
+     * Processes invoice addons.
324
+     *
325
+     * @param WPInv_Invoice $invoice
326
+     * @param GetPaid_Form_Item[] $items
327
+     * @return WPInv_Invoice
328
+     */
329
+    public function process_addons( $invoice, $items ) {
330 330
 
331 331
         foreach ( $items as $item ) {
332 332
             $invoice->add_item( $item );
@@ -334,6 +334,6 @@  discard block
 block discarded – undo
334 334
 
335 335
         $invoice->recalculate_total();
336 336
         $invoice->save();
337
-	}
337
+    }
338 338
 
339 339
 }
Please login to merge, or discard this patch.