Passed
Push — master ( a83567...99d634 )
by Stiofan
05:05
created
includes/libraries/wpinv-euvat/class-wpinv-euvat.php 2 patches
Spacing   +723 added lines, -723 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 // Exit if accessed directly.
3
-if (!defined( 'ABSPATH' ) ) exit;
3
+if (!defined('ABSPATH')) exit;
4 4
 
5 5
 class WPInv_EUVat {
6 6
     private static $is_ajax = false;
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
     private static $instance = false;
9 9
     
10 10
     public static function get_instance() {
11
-        if ( !self::$instance ) {
11
+        if (!self::$instance) {
12 12
             self::$instance = new self();
13 13
             self::$instance->actions();
14 14
         }
@@ -17,137 +17,137 @@  discard block
 block discarded – undo
17 17
     }
18 18
     
19 19
     public function __construct() {
20
-        self::$is_ajax          = defined( 'DOING_AJAX' ) && DOING_AJAX;
20
+        self::$is_ajax          = defined('DOING_AJAX') && DOING_AJAX;
21 21
         self::$default_country  = wpinv_get_default_country();
22 22
     }
23 23
     
24 24
     public static function actions() {
25
-        if ( is_admin() ) {
26
-            add_action( 'admin_enqueue_scripts', array( self::$instance, 'enqueue_admin_scripts' ) );
27
-            add_action( 'wpinv_settings_sections_taxes', array( self::$instance, 'section_vat_settings' ) ); 
28
-            add_action( 'wpinv_settings_taxes', array( self::$instance, 'vat_settings' ) );
29
-            add_filter( 'wpinv_settings_taxes-vat_sanitize', array( self::$instance, 'sanitize_vat_settings' ) );
30
-            add_filter( 'wpinv_settings_taxes-vat_rates_sanitize', array( self::$instance, 'sanitize_vat_rates' ) );
31
-            add_action( 'wp_ajax_wpinv_add_vat_class', array( self::$instance, 'add_class' ) );
32
-            add_action( 'wp_ajax_nopriv_wpinv_add_vat_class', array( self::$instance, 'add_class' ) );
33
-            add_action( 'wp_ajax_wpinv_delete_vat_class', array( self::$instance, 'delete_class' ) );
34
-            add_action( 'wp_ajax_nopriv_wpinv_delete_vat_class', array( self::$instance, 'delete_class' ) );
35
-            add_action( 'wp_ajax_wpinv_update_vat_rates', array( self::$instance, 'update_eu_rates' ) );
36
-            add_action( 'wp_ajax_nopriv_wpinv_update_vat_rates', array( self::$instance, 'update_eu_rates' ) );
37
-            add_action( 'wp_ajax_wpinv_geoip2', array( self::$instance, 'geoip2_download_database' ) );
38
-            add_action( 'wp_ajax_nopriv_wpinv_geoip2', array( self::$instance, 'geoip2_download_database' ) );
39
-        }
40
-        
41
-        add_action( 'wp_enqueue_scripts', array( self::$instance, 'enqueue_vat_scripts' ) );
42
-        add_filter( 'wpinv_default_billing_country', array( self::$instance, 'get_user_country' ), 10 );
43
-        add_filter( 'wpinv_get_user_country', array( self::$instance, 'set_user_country' ), 10 );
44
-        add_action( 'wp_ajax_wpinv_vat_validate', array( self::$instance, 'ajax_vat_validate' ) );
45
-        add_action( 'wp_ajax_nopriv_wpinv_vat_validate', array( self::$instance, 'ajax_vat_validate' ) );
46
-        add_action( 'wp_ajax_wpinv_vat_reset', array( self::$instance, 'ajax_vat_reset' ) );
47
-        add_action( 'wp_ajax_nopriv_wpinv_vat_reset', array( self::$instance, 'ajax_vat_reset' ) );
48
-        add_action( 'wpinv_invoice_print_after_line_items', array( self::$instance, 'show_vat_notice' ), 999, 1 );
49
-        if ( wpinv_use_taxes() ) {
50
-            add_action( 'wpinv_after_billing_fields', array( self::$instance, 'checkout_vat_fields' ) );
51
-            if ( self::allow_vat_rules() ) {
52
-                add_action( 'wpinv_checkout_error_checks', array( self::$instance, 'checkout_vat_validate' ), 10, 2 );
53
-                add_filter( 'wpinv_tax_rate', array( self::$instance, 'get_rate' ), 10, 4 );
25
+        if (is_admin()) {
26
+            add_action('admin_enqueue_scripts', array(self::$instance, 'enqueue_admin_scripts'));
27
+            add_action('wpinv_settings_sections_taxes', array(self::$instance, 'section_vat_settings')); 
28
+            add_action('wpinv_settings_taxes', array(self::$instance, 'vat_settings'));
29
+            add_filter('wpinv_settings_taxes-vat_sanitize', array(self::$instance, 'sanitize_vat_settings'));
30
+            add_filter('wpinv_settings_taxes-vat_rates_sanitize', array(self::$instance, 'sanitize_vat_rates'));
31
+            add_action('wp_ajax_wpinv_add_vat_class', array(self::$instance, 'add_class'));
32
+            add_action('wp_ajax_nopriv_wpinv_add_vat_class', array(self::$instance, 'add_class'));
33
+            add_action('wp_ajax_wpinv_delete_vat_class', array(self::$instance, 'delete_class'));
34
+            add_action('wp_ajax_nopriv_wpinv_delete_vat_class', array(self::$instance, 'delete_class'));
35
+            add_action('wp_ajax_wpinv_update_vat_rates', array(self::$instance, 'update_eu_rates'));
36
+            add_action('wp_ajax_nopriv_wpinv_update_vat_rates', array(self::$instance, 'update_eu_rates'));
37
+            add_action('wp_ajax_wpinv_geoip2', array(self::$instance, 'geoip2_download_database'));
38
+            add_action('wp_ajax_nopriv_wpinv_geoip2', array(self::$instance, 'geoip2_download_database'));
39
+        }
40
+        
41
+        add_action('wp_enqueue_scripts', array(self::$instance, 'enqueue_vat_scripts'));
42
+        add_filter('wpinv_default_billing_country', array(self::$instance, 'get_user_country'), 10);
43
+        add_filter('wpinv_get_user_country', array(self::$instance, 'set_user_country'), 10);
44
+        add_action('wp_ajax_wpinv_vat_validate', array(self::$instance, 'ajax_vat_validate'));
45
+        add_action('wp_ajax_nopriv_wpinv_vat_validate', array(self::$instance, 'ajax_vat_validate'));
46
+        add_action('wp_ajax_wpinv_vat_reset', array(self::$instance, 'ajax_vat_reset'));
47
+        add_action('wp_ajax_nopriv_wpinv_vat_reset', array(self::$instance, 'ajax_vat_reset'));
48
+        add_action('wpinv_invoice_print_after_line_items', array(self::$instance, 'show_vat_notice'), 999, 1);
49
+        if (wpinv_use_taxes()) {
50
+            add_action('wpinv_after_billing_fields', array(self::$instance, 'checkout_vat_fields'));
51
+            if (self::allow_vat_rules()) {
52
+                add_action('wpinv_checkout_error_checks', array(self::$instance, 'checkout_vat_validate'), 10, 2);
53
+                add_filter('wpinv_tax_rate', array(self::$instance, 'get_rate'), 10, 4);
54 54
             }
55 55
         }
56 56
     }        
57 57
     
58
-    public static function get_eu_states( $sort = true ) {
59
-        $eu_states = array( 'AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GB', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE' );
60
-        if ( $sort ) {
61
-            $sort = sort( $eu_states );
58
+    public static function get_eu_states($sort = true) {
59
+        $eu_states = array('AT', 'BE', 'BG', 'HR', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GB', 'GR', 'HU', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'PL', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE');
60
+        if ($sort) {
61
+            $sort = sort($eu_states);
62 62
         }
63 63
         
64
-        return apply_filters( 'wpinv_get_eu_states', $eu_states, $sort );
64
+        return apply_filters('wpinv_get_eu_states', $eu_states, $sort);
65 65
     }
66 66
     
67
-    public static function get_gst_countries( $sort = true ) {
68
-        $gst_countries  = array( 'AU', 'NZ', 'CA', 'CN' );
67
+    public static function get_gst_countries($sort = true) {
68
+        $gst_countries = array('AU', 'NZ', 'CA', 'CN');
69 69
         
70
-        if ( $sort ) {
71
-            $sort = sort( $gst_countries );
70
+        if ($sort) {
71
+            $sort = sort($gst_countries);
72 72
         }
73 73
         
74
-        return apply_filters( 'wpinv_get_gst_countries', $gst_countries, $sort );
74
+        return apply_filters('wpinv_get_gst_countries', $gst_countries, $sort);
75 75
     }
76 76
     
77
-    public static function is_eu_state( $country_code ) {
78
-        $return = !empty( $country_code ) && in_array( strtoupper( $country_code ), self::get_eu_states() ) ? true : false;
77
+    public static function is_eu_state($country_code) {
78
+        $return = !empty($country_code) && in_array(strtoupper($country_code), self::get_eu_states()) ? true : false;
79 79
                 
80
-        return apply_filters( 'wpinv_is_eu_state', $return, $country_code );
80
+        return apply_filters('wpinv_is_eu_state', $return, $country_code);
81 81
     }
82 82
     
83
-    public static function is_gst_country( $country_code ) {
84
-        $return = !empty( $country_code ) && in_array( strtoupper( $country_code ), self::get_gst_countries() ) ? true : false;
83
+    public static function is_gst_country($country_code) {
84
+        $return = !empty($country_code) && in_array(strtoupper($country_code), self::get_gst_countries()) ? true : false;
85 85
                 
86
-        return apply_filters( 'wpinv_is_gst_country', $return, $country_code );
86
+        return apply_filters('wpinv_is_gst_country', $return, $country_code);
87 87
     }
88 88
     
89 89
     public static function enqueue_vat_scripts() {
90
-        if( wpinv_use_taxes() && wpinv_get_option( 'apply_vat_rules' ) ) {
90
+        if (wpinv_use_taxes() && wpinv_get_option('apply_vat_rules')) {
91 91
             self::load_vat_scripts();
92 92
         }
93 93
     }
94 94
 
95
-    public static function load_vat_scripts(){
96
-        $suffix     = '';//defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
95
+    public static function load_vat_scripts() {
96
+        $suffix = ''; //defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
97 97
 
98
-        wp_register_script( 'wpinv-vat-validation-script', WPINV_PLUGIN_URL . 'assets/js/jsvat' . $suffix . '.js', array( 'jquery' ),  WPINV_VERSION );
99
-        wp_register_script( 'wpinv-vat-script', WPINV_PLUGIN_URL . 'assets/js/euvat' . $suffix . '.js', array( 'jquery' ),  WPINV_VERSION );
98
+        wp_register_script('wpinv-vat-validation-script', WPINV_PLUGIN_URL . 'assets/js/jsvat' . $suffix . '.js', array('jquery'), WPINV_VERSION);
99
+        wp_register_script('wpinv-vat-script', WPINV_PLUGIN_URL . 'assets/js/euvat' . $suffix . '.js', array('jquery'), WPINV_VERSION);
100 100
 
101
-        $vat_name   = self::get_vat_name();
101
+        $vat_name = self::get_vat_name();
102 102
 
103 103
         $vars = array();
104 104
         $vars['UseTaxes'] = wpinv_use_taxes();
105 105
         $vars['EUStates'] = self::get_eu_states();
106
-        $vars['NoRateSet'] = __( 'You have not set a rate. Do you want to continue?', 'invoicing' );
107
-        $vars['EmptyCompany'] = __( 'Please enter your registered company name!', 'invoicing' );
108
-        $vars['EmptyVAT'] = wp_sprintf( __( 'Please enter your %s number!', 'invoicing' ), $vat_name );
109
-        $vars['TotalsRefreshed'] = wp_sprintf( __( 'The invoice totals will be refreshed to update the %s.', 'invoicing' ), $vat_name );
110
-        $vars['ErrValidateVAT'] = wp_sprintf( __( 'Fail to validate the %s number!', 'invoicing' ), $vat_name );
111
-        $vars['ErrResetVAT'] = wp_sprintf( __( 'Fail to reset the %s number!', 'invoicing' ), $vat_name );
112
-        $vars['ErrInvalidVat'] = wp_sprintf( __( 'The %s number supplied does not have a valid format!', 'invoicing' ), $vat_name );
113
-        $vars['ErrInvalidResponse'] = __( 'An invalid response has been received from the server!', 'invoicing' );
106
+        $vars['NoRateSet'] = __('You have not set a rate. Do you want to continue?', 'invoicing');
107
+        $vars['EmptyCompany'] = __('Please enter your registered company name!', 'invoicing');
108
+        $vars['EmptyVAT'] = wp_sprintf(__('Please enter your %s number!', 'invoicing'), $vat_name);
109
+        $vars['TotalsRefreshed'] = wp_sprintf(__('The invoice totals will be refreshed to update the %s.', 'invoicing'), $vat_name);
110
+        $vars['ErrValidateVAT'] = wp_sprintf(__('Fail to validate the %s number!', 'invoicing'), $vat_name);
111
+        $vars['ErrResetVAT'] = wp_sprintf(__('Fail to reset the %s number!', 'invoicing'), $vat_name);
112
+        $vars['ErrInvalidVat'] = wp_sprintf(__('The %s number supplied does not have a valid format!', 'invoicing'), $vat_name);
113
+        $vars['ErrInvalidResponse'] = __('An invalid response has been received from the server!', 'invoicing');
114 114
         $vars['ApplyVATRules'] = $vars['UseTaxes'] ? self::allow_vat_rules() : false;
115 115
         $vars['HideVatFields'] = $vars['ApplyVATRules'] ? self::hide_vat_fields() : true;
116
-        $vars['ErrResponse'] = __( 'The request response is invalid!', 'invoicing' );
117
-        $vars['ErrRateResponse'] = __( 'The get rate request response is invalid', 'invoicing' );
118
-        $vars['PageRefresh'] = __( 'The page will be refreshed in 10 seconds to show the new options.', 'invoicing' );
119
-        $vars['RequestResponseNotValidJSON'] = __( 'The get rate request response is not valid JSON', 'invoicing' );
120
-        $vars['GetRateRequestFailed'] = __( 'The get rate request failed: ', 'invoicing' );
121
-        $vars['NoRateInformationInResponse'] = __( 'The get rate request response does not contain any rate information', 'invoicing' );
122
-        $vars['RatesUpdated'] = __( 'The rates have been updated. Press the save button to record these new rates.', 'invoicing' );
123
-        $vars['IPAddressInformation'] = __( 'IP Address Information', 'invoicing' );
124
-        $vars['VatValidating'] = wp_sprintf( __( 'Validating %s number...', 'invoicing' ), $vat_name );
125
-        $vars['VatReseting'] = __( 'Reseting...', 'invoicing' );
126
-        $vars['VatValidated'] = wp_sprintf( __( '%s number validated', 'invoicing' ), $vat_name );
127
-        $vars['VatNotValidated'] = wp_sprintf( __( '%s number not validated', 'invoicing' ), $vat_name );
128
-        $vars['ConfirmDeleteClass'] = __( 'Are you sure you wish to delete this rates class?', 'invoicing' );
116
+        $vars['ErrResponse'] = __('The request response is invalid!', 'invoicing');
117
+        $vars['ErrRateResponse'] = __('The get rate request response is invalid', 'invoicing');
118
+        $vars['PageRefresh'] = __('The page will be refreshed in 10 seconds to show the new options.', 'invoicing');
119
+        $vars['RequestResponseNotValidJSON'] = __('The get rate request response is not valid JSON', 'invoicing');
120
+        $vars['GetRateRequestFailed'] = __('The get rate request failed: ', 'invoicing');
121
+        $vars['NoRateInformationInResponse'] = __('The get rate request response does not contain any rate information', 'invoicing');
122
+        $vars['RatesUpdated'] = __('The rates have been updated. Press the save button to record these new rates.', 'invoicing');
123
+        $vars['IPAddressInformation'] = __('IP Address Information', 'invoicing');
124
+        $vars['VatValidating'] = wp_sprintf(__('Validating %s number...', 'invoicing'), $vat_name);
125
+        $vars['VatReseting'] = __('Reseting...', 'invoicing');
126
+        $vars['VatValidated'] = wp_sprintf(__('%s number validated', 'invoicing'), $vat_name);
127
+        $vars['VatNotValidated'] = wp_sprintf(__('%s number not validated', 'invoicing'), $vat_name);
128
+        $vars['ConfirmDeleteClass'] = __('Are you sure you wish to delete this rates class?', 'invoicing');
129 129
         $vars['isFront'] = is_admin() ? false : true;
130 130
         $vars['baseCountry'] = wpinv_get_default_country();
131
-        $vars['disableVATSameCountry'] = ( self::same_country_rule() == 'no' ? true : false );
132
-        $vars['disableVATSimpleCheck'] = wpinv_get_option( 'vat_offline_check' ) ? true : false;
131
+        $vars['disableVATSameCountry'] = (self::same_country_rule() == 'no' ? true : false);
132
+        $vars['disableVATSimpleCheck'] = wpinv_get_option('vat_offline_check') ? true : false;
133 133
 
134
-        wp_enqueue_script( 'wpinv-vat-validation-script' );
135
-        wp_enqueue_script( 'wpinv-vat-script' );
136
-        wp_localize_script( 'wpinv-vat-script', 'WPInv_VAT_Vars', $vars );
134
+        wp_enqueue_script('wpinv-vat-validation-script');
135
+        wp_enqueue_script('wpinv-vat-script');
136
+        wp_localize_script('wpinv-vat-script', 'WPInv_VAT_Vars', $vars);
137 137
     }
138 138
 
139 139
     public static function enqueue_admin_scripts() {
140
-        if( isset( $_GET['page'] ) && 'wpinv-settings' == $_GET['page'] ) {
140
+        if (isset($_GET['page']) && 'wpinv-settings' == $_GET['page']) {
141 141
             self::load_vat_scripts();
142 142
         }
143 143
     }
144 144
     
145
-    public static function section_vat_settings( $sections ) {
146
-        if ( !empty( $sections ) ) {
147
-            $sections['vat'] = __( 'EU VAT Settings', 'invoicing' );
145
+    public static function section_vat_settings($sections) {
146
+        if (!empty($sections)) {
147
+            $sections['vat'] = __('EU VAT Settings', 'invoicing');
148 148
             
149
-            if ( self::allow_vat_classes() ) {
150
-                $sections['vat_rates'] = __( 'EU VAT Rates', 'invoicing' );
149
+            if (self::allow_vat_classes()) {
150
+                $sections['vat_rates'] = __('EU VAT Rates', 'invoicing');
151 151
             }
152 152
         }
153 153
         return $sections;
@@ -156,52 +156,52 @@  discard block
 block discarded – undo
156 156
     public static function vat_rates_settings() {
157 157
         $vat_classes = self::get_rate_classes();
158 158
         $vat_rates = array();
159
-        $vat_class = isset( $_REQUEST['wpi_sub'] ) && $_REQUEST['wpi_sub'] !== '' && isset( $vat_classes[$_REQUEST['wpi_sub']] )? sanitize_text_field( $_REQUEST['wpi_sub'] ) : '_new';
160
-        $current_url = remove_query_arg( 'wpi_sub' );
159
+        $vat_class = isset($_REQUEST['wpi_sub']) && $_REQUEST['wpi_sub'] !== '' && isset($vat_classes[$_REQUEST['wpi_sub']]) ? sanitize_text_field($_REQUEST['wpi_sub']) : '_new';
160
+        $current_url = remove_query_arg('wpi_sub');
161 161
         
162 162
         $vat_rates['vat_rates_header'] = array(
163 163
             'id' => 'vat_rates_header',
164
-            'name' => '<h3>' . __( 'Manage VAT Rates', 'invoicing' ) . '</h3>',
164
+            'name' => '<h3>' . __('Manage VAT Rates', 'invoicing') . '</h3>',
165 165
             'desc' => '',
166 166
             'type' => 'header',
167 167
             'size' => 'regular'
168 168
         );
169 169
         $vat_rates['vat_rates_class'] = array(
170 170
             'id'          => 'vat_rates_class',
171
-            'name'        => __( 'Edit VAT Rates', 'invoicing' ),
172
-            'desc'        => __( 'The standard rate will apply where no explicit rate is provided.', 'invoicing' ),
171
+            'name'        => __('Edit VAT Rates', 'invoicing'),
172
+            'desc'        => __('The standard rate will apply where no explicit rate is provided.', 'invoicing'),
173 173
             'type'        => 'select',
174
-            'options'     => array_merge( $vat_classes, array( '_new' => __( 'Add New Rate Class', 'invoicing' ) ) ),
175
-            'placeholder' => __( 'Select a VAT Rate', 'invoicing' ),
174
+            'options'     => array_merge($vat_classes, array('_new' => __('Add New Rate Class', 'invoicing'))),
175
+            'placeholder' => __('Select a VAT Rate', 'invoicing'),
176 176
             'selected'    => $vat_class,
177 177
             'class'       => 'wpi_select2',
178 178
             'onchange'    => 'document.location.href="' . $current_url . '&wpi_sub=" + this.value;',
179 179
         );
180 180
         
181
-        if ( $vat_class != '_standard' && $vat_class != '_new' ) {
181
+        if ($vat_class != '_standard' && $vat_class != '_new') {
182 182
             $vat_rates['vat_rate_delete'] = array(
183 183
                 'id'   => 'vat_rate_delete',
184 184
                 'type' => 'vat_rate_delete',
185 185
             );
186 186
         }
187 187
                     
188
-        if ( $vat_class == '_new' ) {
188
+        if ($vat_class == '_new') {
189 189
             $vat_rates['vat_rates_settings'] = array(
190 190
                 'id' => 'vat_rates_settings',
191
-                'name' => '<h3>' . __( 'Add New Rate Class', 'invoicing' ) . '</h3>',
191
+                'name' => '<h3>' . __('Add New Rate Class', 'invoicing') . '</h3>',
192 192
                 'type' => 'header',
193 193
             );
194 194
             $vat_rates['vat_rate_name'] = array(
195 195
                 'id'   => 'vat_rate_name',
196
-                'name' => __( 'Name', 'invoicing' ),
197
-                'desc' => __( 'A short name for the new VAT Rate class', 'invoicing' ),
196
+                'name' => __('Name', 'invoicing'),
197
+                'desc' => __('A short name for the new VAT Rate class', 'invoicing'),
198 198
                 'type' => 'text',
199 199
                 'size' => 'regular',
200 200
             );
201 201
             $vat_rates['vat_rate_desc'] = array(
202 202
                 'id'   => 'vat_rate_desc',
203
-                'name' => __( 'Description', 'invoicing' ),
204
-                'desc' => __( 'Manage VAT Rate class', 'invoicing' ),
203
+                'name' => __('Description', 'invoicing'),
204
+                'desc' => __('Manage VAT Rate class', 'invoicing'),
205 205
                 'type' => 'text',
206 206
                 'size' => 'regular',
207 207
             );
@@ -213,7 +213,7 @@  discard block
 block discarded – undo
213 213
             $vat_rates['vat_rates'] = array(
214 214
                 'id'   => 'vat_rates',
215 215
                 'name' => '<h3>' . $vat_classes[$vat_class] . '</h3>',
216
-                'desc' => self::get_class_desc( $vat_class ),
216
+                'desc' => self::get_class_desc($vat_class),
217 217
                 'type' => 'vat_rates',
218 218
             );
219 219
         }
@@ -221,12 +221,12 @@  discard block
 block discarded – undo
221 221
         return $vat_rates;
222 222
     }
223 223
     
224
-    public static function vat_settings( $settings ) {
225
-        if ( !empty( $settings ) ) {    
224
+    public static function vat_settings($settings) {
225
+        if (!empty($settings)) {    
226 226
             $vat_settings = array();
227 227
             $vat_settings['vat_company_title'] = array(
228 228
                 'id' => 'vat_company_title',
229
-                'name' => '<h3>' . __( 'Your Company Details', 'invoicing' ) . '</h3>',
229
+                'name' => '<h3>' . __('Your Company Details', 'invoicing') . '</h3>',
230 230
                 'desc' => '',
231 231
                 'type' => 'header',
232 232
                 'size' => 'regular'
@@ -234,22 +234,22 @@  discard block
 block discarded – undo
234 234
             
235 235
             $vat_settings['vat_company_name'] = array(
236 236
                 'id' => 'vat_company_name',
237
-                'name' => __( 'Your Company Name', 'invoicing' ),
238
-                'desc' => wp_sprintf(__( 'Your company name as it appears on your VAT return, you can verify it via your VAT ID on the %sEU VIES System.%s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ),
237
+                'name' => __('Your Company Name', 'invoicing'),
238
+                'desc' => wp_sprintf(__('Your company name as it appears on your VAT return, you can verify it via your VAT ID on the %sEU VIES System.%s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'),
239 239
                 'type' => 'text',
240 240
                 'size' => 'regular',
241 241
             );
242 242
             
243 243
             $vat_settings['vat_number'] = array(
244 244
                 'id'   => 'vat_number',
245
-                'name' => __( 'Your VAT Number', 'invoicing' ),
245
+                'name' => __('Your VAT Number', 'invoicing'),
246 246
                 'type' => 'vat_number',
247 247
                 'size' => 'regular',
248 248
             );
249 249
 
250 250
             $vat_settings['vat_settings_title'] = array(
251 251
                 'id' => 'vat_settings_title',
252
-                'name' => '<h3>' . __( 'Apply VAT Settings', 'invoicing' ) . '</h3>',
252
+                'name' => '<h3>' . __('Apply VAT Settings', 'invoicing') . '</h3>',
253 253
                 'desc' => '',
254 254
                 'type' => 'header',
255 255
                 'size' => 'regular'
@@ -257,8 +257,8 @@  discard block
 block discarded – undo
257 257
 
258 258
             $vat_settings['apply_vat_rules'] = array(
259 259
                 'id' => 'apply_vat_rules',
260
-                'name' => __( 'Enable VAT Rules', 'invoicing' ),
261
-                'desc' => __( 'Apply VAT to consumer sales from IP addresses within the EU, even if the billing address is outside the EU.', 'invoicing' ) . '<br><font style="color:red">' . __( 'Do not disable unless you know what you are doing.', 'invoicing' ) . '</font>',
260
+                'name' => __('Enable VAT Rules', 'invoicing'),
261
+                'desc' => __('Apply VAT to consumer sales from IP addresses within the EU, even if the billing address is outside the EU.', 'invoicing') . '<br><font style="color:red">' . __('Do not disable unless you know what you are doing.', 'invoicing') . '</font>',
262 262
                 'type' => 'checkbox',
263 263
                 'std' => '1'
264 264
             );
@@ -274,8 +274,8 @@  discard block
 block discarded – undo
274 274
 
275 275
             $vat_settings['vat_prevent_b2c_purchase'] = array(
276 276
                 'id' => 'vat_prevent_b2c_purchase',
277
-                'name' => __( 'Prevent EU B2C Sales', 'invoicing' ),
278
-                'desc' => __( 'Enable this option if you are not registered for VAT in the EU.', 'invoicing' ),
277
+                'name' => __('Prevent EU B2C Sales', 'invoicing'),
278
+                'desc' => __('Enable this option if you are not registered for VAT in the EU.', 'invoicing'),
279 279
                 'type' => 'checkbox'
280 280
             );
281 281
 
@@ -283,22 +283,22 @@  discard block
 block discarded – undo
283 283
 
284 284
             $vat_settings['vat_same_country_rule'] = array(
285 285
                 'id'          => 'vat_same_country_rule',
286
-                'name'        => __( 'Same Country Rule', 'invoicing' ),
287
-                'desc'        => __( 'Select how you want to handle VAT charge if sales are in the same country as the base country.', 'invoicing' ),
286
+                'name'        => __('Same Country Rule', 'invoicing'),
287
+                'desc'        => __('Select how you want to handle VAT charge if sales are in the same country as the base country.', 'invoicing'),
288 288
                 'type'        => 'select',
289 289
                 'options'     => array(
290
-                    ''          => __( 'Normal', 'invoicing' ),
291
-                    'no'        => __( 'No VAT', 'invoicing' ),
292
-                    'always'    => __( 'Always apply VAT', 'invoicing' ),
290
+                    ''          => __('Normal', 'invoicing'),
291
+                    'no'        => __('No VAT', 'invoicing'),
292
+                    'always'    => __('Always apply VAT', 'invoicing'),
293 293
                 ),
294
-                'placeholder' => __( 'Select an option', 'invoicing' ),
294
+                'placeholder' => __('Select an option', 'invoicing'),
295 295
                 'std'         => '',
296 296
                 'class'   => 'wpi_select2',
297 297
             );
298 298
 
299 299
             $vat_settings['vat_checkout_title'] = array(
300 300
                 'id' => 'vat_checkout_title',
301
-                'name' => '<h3>' . __( 'Checkout Fields', 'invoicing' ) . '</h3>',
301
+                'name' => '<h3>' . __('Checkout Fields', 'invoicing') . '</h3>',
302 302
                 'desc' => '',
303 303
                 'type' => 'header',
304 304
                 'size' => 'regular'
@@ -306,14 +306,14 @@  discard block
 block discarded – undo
306 306
 
307 307
             $vat_settings['vat_disable_fields'] = array(
308 308
                 'id' => 'vat_disable_fields',
309
-                'name' => __( 'Disable VAT Fields', 'invoicing' ),
310
-                'desc' => __( 'Disable VAT fields if Invoicing is being used for GST.', 'invoicing' ) . '<br><font style="color:red">' . __( 'Do not disable if you have enabled Prevent EU B2C sales, otherwise Prevent EU B2C sales setting will not work.', 'invoicing' ) . '</font>',
309
+                'name' => __('Disable VAT Fields', 'invoicing'),
310
+                'desc' => __('Disable VAT fields if Invoicing is being used for GST.', 'invoicing') . '<br><font style="color:red">' . __('Do not disable if you have enabled Prevent EU B2C sales, otherwise Prevent EU B2C sales setting will not work.', 'invoicing') . '</font>',
311 311
                 'type' => 'checkbox'
312 312
             );
313 313
 
314 314
             $vat_settings['vat_ip_lookup'] = array(
315 315
                 'id'   => 'vat_ip_lookup',
316
-                'name' => __( 'IP Country Look-up', 'invoicing' ),
316
+                'name' => __('IP Country Look-up', 'invoicing'),
317 317
                 'type' => 'vat_ip_lookup',
318 318
                 'size' => 'regular',
319 319
                 'std' => 'default',
@@ -322,21 +322,21 @@  discard block
 block discarded – undo
322 322
 
323 323
             $vat_settings['hide_ip_address'] = array(
324 324
                 'id' => 'hide_ip_address',
325
-                'name' => __( 'Hide IP Info at Checkout', 'invoicing' ),
326
-                'desc' => __( 'Hide the user IP info at checkout.', 'invoicing' ),
325
+                'name' => __('Hide IP Info at Checkout', 'invoicing'),
326
+                'desc' => __('Hide the user IP info at checkout.', 'invoicing'),
327 327
                 'type' => 'checkbox'
328 328
             );
329 329
 
330 330
             $vat_settings['vat_ip_country_default'] = array(
331 331
                 'id' => 'vat_ip_country_default',
332
-                'name' => __( 'Enable IP Country as Default', 'invoicing' ),
333
-                'desc' => __( 'Show the country of the users IP as the default country, otherwise the site default country will be used.', 'invoicing' ),
332
+                'name' => __('Enable IP Country as Default', 'invoicing'),
333
+                'desc' => __('Show the country of the users IP as the default country, otherwise the site default country will be used.', 'invoicing'),
334 334
                 'type' => 'checkbox'
335 335
             );
336 336
 
337 337
             $vat_settings['vies_validation_title'] = array(
338 338
                 'id' => 'vies_validation_title',
339
-                'name' => '<h3>' . __( 'VIES Validation', 'invoicing' ) . '</h3>',
339
+                'name' => '<h3>' . __('VIES Validation', 'invoicing') . '</h3>',
340 340
                 'desc' => '',
341 341
                 'type' => 'header',
342 342
                 'size' => 'regular'
@@ -344,37 +344,37 @@  discard block
 block discarded – undo
344 344
 
345 345
             $vat_settings['vat_vies_check'] = array(
346 346
                 'id' => 'vat_vies_check',
347
-                'name' => __( 'Disable VIES VAT ID Check', 'invoicing' ),
348
-                'desc' => wp_sprintf( __( 'Prevent VAT numbers from being validated by the %sEU VIES System.%s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ),
347
+                'name' => __('Disable VIES VAT ID Check', 'invoicing'),
348
+                'desc' => wp_sprintf(__('Prevent VAT numbers from being validated by the %sEU VIES System.%s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'),
349 349
                 'type' => 'checkbox'
350 350
             );
351 351
 
352 352
             $vat_settings['vat_disable_company_name_check'] = array(
353 353
                 'id' => 'vat_disable_company_name_check',
354
-                'name' => __( 'Disable VIES Name Check', 'invoicing' ),
355
-                'desc' => wp_sprintf( __( 'Prevent company name from being validated by the %sEU VIES System.%s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ),
354
+                'name' => __('Disable VIES Name Check', 'invoicing'),
355
+                'desc' => wp_sprintf(__('Prevent company name from being validated by the %sEU VIES System.%s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'),
356 356
                 'type' => 'checkbox'
357 357
             );
358 358
 
359 359
             $vat_settings['vat_offline_check'] = array(
360 360
                 'id' => 'vat_offline_check',
361
-                'name' => __( 'Disable Basic Checks', 'invoicing' ),
362
-                'desc' => __( 'Disable basic JS checks for correct format of VAT number. (Not Recommended)', 'invoicing' ),
361
+                'name' => __('Disable Basic Checks', 'invoicing'),
362
+                'desc' => __('Disable basic JS checks for correct format of VAT number. (Not Recommended)', 'invoicing'),
363 363
                 'type' => 'checkbox'
364 364
             );
365 365
             
366 366
 
367 367
             $settings['vat'] = $vat_settings;
368 368
             
369
-            if ( self::allow_vat_classes() ) {
369
+            if (self::allow_vat_classes()) {
370 370
                 $settings['vat_rates'] = self::vat_rates_settings();
371 371
             }
372 372
             
373 373
             $eu_fallback_rate = array(
374 374
                 'id'   => 'eu_fallback_rate',
375
-                'name' => '<h3>' . __( 'VAT rate for EU member states', 'invoicing' ) . '</h3>',
375
+                'name' => '<h3>' . __('VAT rate for EU member states', 'invoicing') . '</h3>',
376 376
                 'type' => 'eu_fallback_rate',
377
-                'desc' => __( 'Enter the VAT rate to be charged for EU member states. You can edit the rates for each member state when a country rate has been set up by pressing this button.', 'invoicing' ),
377
+                'desc' => __('Enter the VAT rate to be charged for EU member states. You can edit the rates for each member state when a country rate has been set up by pressing this button.', 'invoicing'),
378 378
                 'std'  => '20',
379 379
                 'size' => 'small'
380 380
             );
@@ -390,11 +390,11 @@  discard block
 block discarded – undo
390 390
         $database_url       = 'http' . (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] === 'on' ? 's' : '') . '://geolite.maxmind.com/download/geoip/database/';
391 391
         $destination_dir    = $upload_dir['basedir'] . '/invoicing';
392 392
         
393
-        if ( !is_dir( $destination_dir ) ) { 
394
-            mkdir( $destination_dir );
393
+        if (!is_dir($destination_dir)) { 
394
+            mkdir($destination_dir);
395 395
         }
396 396
         
397
-        $database_files     = array(
397
+        $database_files = array(
398 398
             'country'   => array(
399 399
                 'source'        => $database_url . 'GeoLite2-Country.mmdb.gz',
400 400
                 'destination'   => $destination_dir . '/GeoLite2-Country.mmdb',
@@ -405,57 +405,57 @@  discard block
 block discarded – undo
405 405
             )
406 406
         );
407 407
 
408
-        foreach( $database_files as $database => $files ) {
409
-            $result = self::geoip2_download_file( $files['source'], $files['destination'] );
408
+        foreach ($database_files as $database => $files) {
409
+            $result = self::geoip2_download_file($files['source'], $files['destination']);
410 410
             
411
-            if ( empty( $result['success'] ) ) {
411
+            if (empty($result['success'])) {
412 412
                 echo $result['message'];
413 413
                 exit;
414 414
             }
415 415
             
416
-            wpinv_update_option( 'wpinv_geoip2_date_updated', current_time( 'timestamp' ) );
417
-            echo sprintf(__( 'GeoIP2 %s database updated successfully.', 'invoicing' ), $database ) . ' ';
416
+            wpinv_update_option('wpinv_geoip2_date_updated', current_time('timestamp'));
417
+            echo sprintf(__('GeoIP2 %s database updated successfully.', 'invoicing'), $database) . ' ';
418 418
         }
419 419
         
420 420
         exit;
421 421
     }
422 422
     
423
-    public static function geoip2_download_file( $source_url, $destination_file ) {
423
+    public static function geoip2_download_file($source_url, $destination_file) {
424 424
         $success    = false;
425 425
         $message    = '';
426 426
         
427
-        if ( !function_exists( 'download_url' ) ) {
428
-            require_once( ABSPATH . 'wp-admin/includes/file.php' );
427
+        if (!function_exists('download_url')) {
428
+            require_once(ABSPATH . 'wp-admin/includes/file.php');
429 429
         }
430 430
 
431
-        $temp_file  = download_url( $source_url );
431
+        $temp_file = download_url($source_url);
432 432
         
433
-        if ( is_wp_error( $temp_file ) ) {
434
-            $message = sprintf( __( 'Error while downloading GeoIp2 database( %s ): %s', 'invoicing' ), $source_url, $temp_file->get_error_message() );
433
+        if (is_wp_error($temp_file)) {
434
+            $message = sprintf(__('Error while downloading GeoIp2 database( %s ): %s', 'invoicing'), $source_url, $temp_file->get_error_message());
435 435
         } else {
436
-            $handle = gzopen( $temp_file, 'rb' );
436
+            $handle = gzopen($temp_file, 'rb');
437 437
             
438
-            if ( $handle ) {
439
-                $fopen  = fopen( $destination_file, 'wb' );
440
-                if ( $fopen ) {
441
-                    while ( ( $data = gzread( $handle, 4096 ) ) != false ) {
442
-                        fwrite( $fopen, $data );
438
+            if ($handle) {
439
+                $fopen = fopen($destination_file, 'wb');
440
+                if ($fopen) {
441
+                    while (($data = gzread($handle, 4096)) != false) {
442
+                        fwrite($fopen, $data);
443 443
                     }
444 444
 
445
-                    gzclose( $handle );
446
-                    fclose( $fopen );
445
+                    gzclose($handle);
446
+                    fclose($fopen);
447 447
                         
448 448
                     $success = true;
449 449
                 } else {
450
-                    gzclose( $handle );
451
-                    $message = sprintf( __( 'Error could not open destination GeoIp2 database file for writing: %s', 'invoicing' ), $destination_file );
450
+                    gzclose($handle);
451
+                    $message = sprintf(__('Error could not open destination GeoIp2 database file for writing: %s', 'invoicing'), $destination_file);
452 452
                 }
453 453
             } else {
454
-                $message = sprintf( __( 'Error could not open GeoIp2 database file for reading: %s', 'invoicing' ), $temp_file );
454
+                $message = sprintf(__('Error could not open GeoIp2 database file for reading: %s', 'invoicing'), $temp_file);
455 455
             }
456 456
             
457
-            if ( file_exists( $temp_file ) ) {
458
-                unlink( $temp_file );
457
+            if (file_exists($temp_file)) {
458
+                unlink($temp_file);
459 459
             }
460 460
         }
461 461
         
@@ -467,11 +467,11 @@  discard block
 block discarded – undo
467 467
     }
468 468
     
469 469
     public static function load_geoip2() {
470
-        if ( defined( 'WPINV_GEOIP2_LODDED' ) ) {
470
+        if (defined('WPINV_GEOIP2_LODDED')) {
471 471
             return;
472 472
         }
473 473
         
474
-        if ( !class_exists( '\MaxMind\Db\Reader' ) ) {
474
+        if (!class_exists('\MaxMind\Db\Reader')) {
475 475
             $maxmind_db_files = array(
476 476
                 'Reader/Decoder.php',
477 477
                 'Reader/InvalidDatabaseException.php',
@@ -480,12 +480,12 @@  discard block
 block discarded – undo
480 480
                 'Reader.php',
481 481
             );
482 482
             
483
-            foreach ( $maxmind_db_files as $key => $file ) {
484
-                require_once( WPINV_PLUGIN_DIR . 'includes/libraries/MaxMind/Db/' . $file );
483
+            foreach ($maxmind_db_files as $key => $file) {
484
+                require_once(WPINV_PLUGIN_DIR . 'includes/libraries/MaxMind/Db/' . $file);
485 485
             }
486 486
         }
487 487
         
488
-        if ( !class_exists( '\GeoIp2\Database\Reader' ) ) {        
488
+        if (!class_exists('\GeoIp2\Database\Reader')) {        
489 489
             $geoip2_files = array(
490 490
                 'ProviderInterface.php',
491 491
                 'Compat/JsonSerializable.php',
@@ -519,23 +519,23 @@  discard block
 block discarded – undo
519 519
                 'WebService/Client.php',
520 520
             );
521 521
             
522
-            foreach ( $geoip2_files as $key => $file ) {
523
-                require_once( WPINV_PLUGIN_DIR . 'includes/libraries/GeoIp2/' . $file );
522
+            foreach ($geoip2_files as $key => $file) {
523
+                require_once(WPINV_PLUGIN_DIR . 'includes/libraries/GeoIp2/' . $file);
524 524
             }
525 525
         }
526 526
 
527
-        define( 'WPINV_GEOIP2_LODDED', true );
527
+        define('WPINV_GEOIP2_LODDED', true);
528 528
     }
529 529
 
530 530
     public static function geoip2_country_dbfile() {
531 531
         $upload_dir = wp_upload_dir();
532 532
 
533
-        if ( !isset( $upload_dir['basedir'] ) ) {
533
+        if (!isset($upload_dir['basedir'])) {
534 534
             return false;
535 535
         }
536 536
 
537 537
         $filename = $upload_dir['basedir'] . '/invoicing/GeoLite2-Country.mmdb';
538
-        if ( !file_exists( $filename ) ) {
538
+        if (!file_exists($filename)) {
539 539
             return false;
540 540
         }
541 541
         
@@ -545,12 +545,12 @@  discard block
 block discarded – undo
545 545
     public static function geoip2_city_dbfile() {
546 546
         $upload_dir = wp_upload_dir();
547 547
 
548
-        if ( !isset( $upload_dir['basedir'] ) ) {
548
+        if (!isset($upload_dir['basedir'])) {
549 549
             return false;
550 550
         }
551 551
 
552 552
         $filename = $upload_dir['basedir'] . '/invoicing/GeoLite2-City.mmdb';
553
-        if ( !file_exists( $filename ) ) {
553
+        if (!file_exists($filename)) {
554 554
             return false;
555 555
         }
556 556
         
@@ -561,10 +561,10 @@  discard block
 block discarded – undo
561 561
         try {
562 562
             self::load_geoip2();
563 563
 
564
-            if ( $filename = self::geoip2_country_dbfile() ) {
565
-                return new \GeoIp2\Database\Reader( $filename );
564
+            if ($filename = self::geoip2_country_dbfile()) {
565
+                return new \GeoIp2\Database\Reader($filename);
566 566
             }
567
-        } catch( Exception $e ) {
567
+        } catch (Exception $e) {
568 568
             return false;
569 569
         }
570 570
         
@@ -575,183 +575,183 @@  discard block
 block discarded – undo
575 575
         try {
576 576
             self::load_geoip2();
577 577
 
578
-            if ( $filename = self::geoip2_city_dbfile() ) {
579
-                return new \GeoIp2\Database\Reader( $filename );
578
+            if ($filename = self::geoip2_city_dbfile()) {
579
+                return new \GeoIp2\Database\Reader($filename);
580 580
             }
581
-        } catch( Exception $e ) {
581
+        } catch (Exception $e) {
582 582
             return false;
583 583
         }
584 584
         
585 585
         return false;
586 586
     }
587 587
 
588
-    public static function geoip2_country_record( $ip_address ) {
588
+    public static function geoip2_country_record($ip_address) {
589 589
         try {
590 590
             $reader = self::geoip2_country_reader();
591 591
 
592
-            if ( $reader ) {
593
-                $record = $reader->country( $ip_address );
592
+            if ($reader) {
593
+                $record = $reader->country($ip_address);
594 594
                 
595
-                if ( !empty( $record->country->isoCode ) ) {
595
+                if (!empty($record->country->isoCode)) {
596 596
                     return $record;
597 597
                 }
598 598
             }
599
-        } catch(\InvalidArgumentException $e) {
600
-            wpinv_error_log( $e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )' );
599
+        } catch (\InvalidArgumentException $e) {
600
+            wpinv_error_log($e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )');
601 601
             
602 602
             return false;
603
-        } catch(\GeoIp2\Exception\AddressNotFoundException $e) {
604
-            wpinv_error_log( $e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )' );
603
+        } catch (\GeoIp2\Exception\AddressNotFoundException $e) {
604
+            wpinv_error_log($e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )');
605 605
             
606 606
             return false;
607
-        } catch( Exception $e ) {
607
+        } catch (Exception $e) {
608 608
             return false;
609 609
         }
610 610
         
611 611
         return false;
612 612
     }
613 613
 
614
-    public static function geoip2_city_record( $ip_address ) {
614
+    public static function geoip2_city_record($ip_address) {
615 615
         try {
616 616
             $reader = self::geoip2_city_reader();
617 617
 
618
-            if ( $reader ) {
619
-                $record = $reader->city( $ip_address );
618
+            if ($reader) {
619
+                $record = $reader->city($ip_address);
620 620
                 
621
-                if ( !empty( $record->country->isoCode ) ) {
621
+                if (!empty($record->country->isoCode)) {
622 622
                     return $record;
623 623
                 }
624 624
             }
625
-        } catch(\InvalidArgumentException $e) {
626
-            wpinv_error_log( $e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )' );
625
+        } catch (\InvalidArgumentException $e) {
626
+            wpinv_error_log($e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )');
627 627
             
628 628
             return false;
629
-        } catch(\GeoIp2\Exception\AddressNotFoundException $e) {
630
-            wpinv_error_log( $e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )' );
629
+        } catch (\GeoIp2\Exception\AddressNotFoundException $e) {
630
+            wpinv_error_log($e->getMessage(), 'GeoIp2 Lookup( ' . $ip_address . ' )');
631 631
             
632 632
             return false;
633
-        } catch( Exception $e ) {
633
+        } catch (Exception $e) {
634 634
             return false;
635 635
         }
636 636
         
637 637
         return false;
638 638
     }
639 639
 
640
-    public static function geoip2_country_code( $ip_address ) {
641
-        $record = self::geoip2_country_record( $ip_address );
642
-        return !empty( $record->country->isoCode ) ? $record->country->isoCode : wpinv_get_default_country();
640
+    public static function geoip2_country_code($ip_address) {
641
+        $record = self::geoip2_country_record($ip_address);
642
+        return !empty($record->country->isoCode) ? $record->country->isoCode : wpinv_get_default_country();
643 643
     }
644 644
 
645 645
     // Find country by IP address.
646
-    public static function get_country_by_ip( $ip = '' ) {
646
+    public static function get_country_by_ip($ip = '') {
647 647
         global $wpinv_ip_address_country;
648 648
         
649
-        if ( !empty( $wpinv_ip_address_country ) ) {
649
+        if (!empty($wpinv_ip_address_country)) {
650 650
             return $wpinv_ip_address_country;
651 651
         }
652 652
         
653
-        if ( empty( $ip ) ) {
653
+        if (empty($ip)) {
654 654
             $ip = wpinv_get_ip();
655 655
         }
656 656
 
657
-        $ip_country_service = wpinv_get_option( 'vat_ip_lookup' );
658
-        $is_default         = empty( $ip_country_service ) || $ip_country_service === 'default' ? true : false;
657
+        $ip_country_service = wpinv_get_option('vat_ip_lookup');
658
+        $is_default         = empty($ip_country_service) || $ip_country_service === 'default' ? true : false;
659 659
 
660
-        if ( !empty( $ip ) && $ip !== '127.0.0.1' ) { // For 127.0.0.1(localhost) use default country.
661
-            if ( function_exists( 'geoip_country_code_by_name') && ( $ip_country_service === 'geoip' || $is_default ) ) {
660
+        if (!empty($ip) && $ip !== '127.0.0.1') { // For 127.0.0.1(localhost) use default country.
661
+            if (function_exists('geoip_country_code_by_name') && ($ip_country_service === 'geoip' || $is_default)) {
662 662
                 try {
663
-                    $wpinv_ip_address_country = geoip_country_code_by_name( $ip );
664
-                } catch( Exception $e ) {
665
-                    wpinv_error_log( $e->getMessage(), 'GeoIP Lookup( ' . $ip . ' )' );
663
+                    $wpinv_ip_address_country = geoip_country_code_by_name($ip);
664
+                } catch (Exception $e) {
665
+                    wpinv_error_log($e->getMessage(), 'GeoIP Lookup( ' . $ip . ' )');
666 666
                 }
667
-            } else if ( self::geoip2_country_dbfile() && ( $ip_country_service === 'geoip2' || $is_default ) ) {
668
-                $wpinv_ip_address_country = self::geoip2_country_code( $ip );
669
-            } else if ( function_exists( 'simplexml_load_file' ) && ini_get('allow_url_fopen') && ( $ip_country_service === 'geoplugin' || $is_default ) ) {
670
-                $load_xml = simplexml_load_file( 'http://www.geoplugin.net/xml.gp?ip=' . $ip );
667
+            } else if (self::geoip2_country_dbfile() && ($ip_country_service === 'geoip2' || $is_default)) {
668
+                $wpinv_ip_address_country = self::geoip2_country_code($ip);
669
+            } else if (function_exists('simplexml_load_file') && ini_get('allow_url_fopen') && ($ip_country_service === 'geoplugin' || $is_default)) {
670
+                $load_xml = simplexml_load_file('http://www.geoplugin.net/xml.gp?ip=' . $ip);
671 671
                 
672
-                if ( !empty( $load_xml ) && !empty( $load_xml->geoplugin_countryCode ) ) {
673
-                    $wpinv_ip_address_country = (string)$load_xml->geoplugin_countryCode;
672
+                if (!empty($load_xml) && !empty($load_xml->geoplugin_countryCode)) {
673
+                    $wpinv_ip_address_country = (string) $load_xml->geoplugin_countryCode;
674 674
                 }
675
-            }elseif(!empty( $ip )){
675
+            }elseif (!empty($ip)) {
676 676
                 $url = 'http://ip-api.com/json/' . $ip;
677 677
                 $response = wp_remote_get($url);
678 678
 
679
-                if ( is_array( $response ) && wp_remote_retrieve_response_code( $response ) == '200' ) {
680
-                    $data = json_decode(wp_remote_retrieve_body( $response ),true);
681
-                    if(!empty($data['countryCode'])){
682
-                        $wpinv_ip_address_country = (string)$data['countryCode'];
679
+                if (is_array($response) && wp_remote_retrieve_response_code($response) == '200') {
680
+                    $data = json_decode(wp_remote_retrieve_body($response), true);
681
+                    if (!empty($data['countryCode'])) {
682
+                        $wpinv_ip_address_country = (string) $data['countryCode'];
683 683
                     }
684 684
                 }
685 685
             }
686 686
         }
687 687
 
688
-        if ( empty( $wpinv_ip_address_country ) ) {
688
+        if (empty($wpinv_ip_address_country)) {
689 689
             $wpinv_ip_address_country = wpinv_get_default_country();
690 690
         }
691 691
 
692 692
         return $wpinv_ip_address_country;
693 693
     }
694 694
     
695
-    public static function sanitize_vat_settings( $input ) {
695
+    public static function sanitize_vat_settings($input) {
696 696
         global $wpinv_options;
697 697
         
698 698
         $valid      = false;
699 699
         $message    = '';
700 700
         
701
-        if ( !empty( $wpinv_options['vat_vies_check'] ) ) {
702
-            if ( empty( $wpinv_options['vat_offline_check'] ) ) {
703
-                $valid = self::offline_check( $input['vat_number'] );
701
+        if (!empty($wpinv_options['vat_vies_check'])) {
702
+            if (empty($wpinv_options['vat_offline_check'])) {
703
+                $valid = self::offline_check($input['vat_number']);
704 704
             } else {
705 705
                 $valid = true;
706 706
             }
707 707
             
708
-            $message = $valid ? '' : __( 'VAT number not validated', 'invoicing' );
708
+            $message = $valid ? '' : __('VAT number not validated', 'invoicing');
709 709
         } else {
710
-            $result = self::check_vat( $input['vat_number'] );
710
+            $result = self::check_vat($input['vat_number']);
711 711
             
712
-            if ( empty( $result['valid'] ) ) {
712
+            if (empty($result['valid'])) {
713 713
                 $valid      = false;
714 714
                 $message    = $result['message'];
715 715
             } else {
716
-                $valid      = ( isset( $result['company'] ) && ( $result['company'] == '---' || ( strcasecmp( trim( $result['company'] ), trim( $input['vat_company_name'] ) ) == 0 ) ) ) || !empty( $wpinv_options['vat_disable_company_name_check'] );
717
-                $message    = $valid ? '' : __( 'The company name associated with the VAT number provided is not the same as the company name provided.', 'invoicing' );
716
+                $valid      = (isset($result['company']) && ($result['company'] == '---' || (strcasecmp(trim($result['company']), trim($input['vat_company_name'])) == 0))) || !empty($wpinv_options['vat_disable_company_name_check']);
717
+                $message    = $valid ? '' : __('The company name associated with the VAT number provided is not the same as the company name provided.', 'invoicing');
718 718
             }
719 719
         }
720 720
 
721
-        if ( $message && self::is_vat_validated() != $valid ) {
722
-            add_settings_error( 'wpinv-notices', '', $message, ( $valid ? 'updated' : 'error' ) );
721
+        if ($message && self::is_vat_validated() != $valid) {
722
+            add_settings_error('wpinv-notices', '', $message, ($valid ? 'updated' : 'error'));
723 723
         }
724 724
 
725 725
         $input['vat_valid'] = $valid;
726 726
         return $input;
727 727
     }
728 728
     
729
-    public static function sanitize_vat_rates( $input ) {
730
-        if( !wpinv_current_user_can_manage_invoicing() ) {
731
-            add_settings_error( 'wpinv-notices', '', __( 'Your account does not have permission to add rate classes.', 'invoicing' ), 'error' );
729
+    public static function sanitize_vat_rates($input) {
730
+        if (!wpinv_current_user_can_manage_invoicing()) {
731
+            add_settings_error('wpinv-notices', '', __('Your account does not have permission to add rate classes.', 'invoicing'), 'error');
732 732
             return $input;
733 733
         }
734 734
         
735 735
         $vat_classes = self::get_rate_classes();
736
-        $vat_class = !empty( $_REQUEST['wpi_vat_class'] ) && isset( $vat_classes[$_REQUEST['wpi_vat_class']] )? sanitize_text_field( $_REQUEST['wpi_vat_class'] ) : '';
736
+        $vat_class = !empty($_REQUEST['wpi_vat_class']) && isset($vat_classes[$_REQUEST['wpi_vat_class']]) ? sanitize_text_field($_REQUEST['wpi_vat_class']) : '';
737 737
         
738
-        if ( empty( $vat_class ) ) {
739
-            add_settings_error( 'wpinv-notices', '', __( 'No valid VAT rates class contained in the request to save rates.', 'invoicing' ), 'error' );
738
+        if (empty($vat_class)) {
739
+            add_settings_error('wpinv-notices', '', __('No valid VAT rates class contained in the request to save rates.', 'invoicing'), 'error');
740 740
             
741 741
             return $input;
742 742
         }
743 743
 
744
-        $new_rates = ! empty( $_POST['vat_rates'] ) ? array_values( $_POST['vat_rates'] ) : array();
744
+        $new_rates = !empty($_POST['vat_rates']) ? array_values($_POST['vat_rates']) : array();
745 745
 
746
-        if ( $vat_class === '_standard' ) {
746
+        if ($vat_class === '_standard') {
747 747
             // Save the active rates in the invoice settings
748
-            update_option( 'wpinv_tax_rates', $new_rates );
748
+            update_option('wpinv_tax_rates', $new_rates);
749 749
         } else {
750 750
             // Get the existing set of rates
751 751
             $rates = self::get_non_standard_rates();
752 752
             $rates[$vat_class] = $new_rates;
753 753
 
754
-            update_option( 'wpinv_vat_rates', $rates );
754
+            update_option('wpinv_vat_rates', $rates);
755 755
         }
756 756
         
757 757
         return $input;
@@ -761,71 +761,71 @@  discard block
 block discarded – undo
761 761
         $response = array();
762 762
         $response['success'] = false;
763 763
         
764
-        if ( !wpinv_current_user_can_manage_invoicing() ) {
765
-            $response['error'] = __( 'Invalid access!', 'invoicing' );
766
-            wp_send_json( $response );
764
+        if (!wpinv_current_user_can_manage_invoicing()) {
765
+            $response['error'] = __('Invalid access!', 'invoicing');
766
+            wp_send_json($response);
767 767
         }
768 768
         
769
-        $vat_class_name = !empty( $_POST['name'] ) ? sanitize_text_field( $_POST['name'] ) : false;
770
-        $vat_class_desc = !empty( $_POST['desc'] ) ? sanitize_text_field( $_POST['desc'] ) : false;
769
+        $vat_class_name = !empty($_POST['name']) ? sanitize_text_field($_POST['name']) : false;
770
+        $vat_class_desc = !empty($_POST['desc']) ? sanitize_text_field($_POST['desc']) : false;
771 771
         
772
-        if ( empty( $vat_class_name ) ) {
773
-            $response['error'] = __( 'Select the VAT rate name', 'invoicing' );
774
-            wp_send_json( $response );
772
+        if (empty($vat_class_name)) {
773
+            $response['error'] = __('Select the VAT rate name', 'invoicing');
774
+            wp_send_json($response);
775 775
         }
776 776
         
777
-        $vat_classes = (array)self::get_rate_classes();
777
+        $vat_classes = (array) self::get_rate_classes();
778 778
 
779
-        if ( !empty( $vat_classes ) && in_array( strtolower( $vat_class_name ), array_map( 'strtolower', array_values( $vat_classes ) ) ) ) {
780
-            $response['error'] = wp_sprintf( __( 'A VAT Rate name "%s" already exists', 'invoicing' ), $vat_class_name );
781
-            wp_send_json( $response );
779
+        if (!empty($vat_classes) && in_array(strtolower($vat_class_name), array_map('strtolower', array_values($vat_classes)))) {
780
+            $response['error'] = wp_sprintf(__('A VAT Rate name "%s" already exists', 'invoicing'), $vat_class_name);
781
+            wp_send_json($response);
782 782
         }
783 783
         
784
-        $rate_class_key = normalize_whitespace( 'wpi-' . $vat_class_name );
785
-        $rate_class_key = sanitize_key( str_replace( " ", "-", $rate_class_key ) );
784
+        $rate_class_key = normalize_whitespace('wpi-' . $vat_class_name);
785
+        $rate_class_key = sanitize_key(str_replace(" ", "-", $rate_class_key));
786 786
         
787
-        $vat_classes = (array)self::get_rate_classes( true );
788
-        $vat_classes[$rate_class_key] = array( 'name' => $vat_class_name, 'desc' => $vat_class_desc );
787
+        $vat_classes = (array) self::get_rate_classes(true);
788
+        $vat_classes[$rate_class_key] = array('name' => $vat_class_name, 'desc' => $vat_class_desc);
789 789
         
790
-        update_option( '_wpinv_vat_rate_classes', $vat_classes );
790
+        update_option('_wpinv_vat_rate_classes', $vat_classes);
791 791
         
792 792
         $response['success'] = true;
793
-        $response['redirect'] = admin_url( 'admin.php?page=wpinv-settings&tab=taxes&section=vat_rates&wpi_sub=' . $rate_class_key );
793
+        $response['redirect'] = admin_url('admin.php?page=wpinv-settings&tab=taxes&section=vat_rates&wpi_sub=' . $rate_class_key);
794 794
         
795
-        wp_send_json( $response );
795
+        wp_send_json($response);
796 796
     }
797 797
     
798 798
     public static function delete_class() {
799 799
         $response = array();
800 800
         $response['success'] = false;
801 801
         
802
-        if ( !wpinv_current_user_can_manage_invoicing() || !isset( $_POST['class'] ) ) {
803
-            $response['error'] = __( 'Invalid access!', 'invoicing' );
804
-            wp_send_json( $response );
802
+        if (!wpinv_current_user_can_manage_invoicing() || !isset($_POST['class'])) {
803
+            $response['error'] = __('Invalid access!', 'invoicing');
804
+            wp_send_json($response);
805 805
         }
806 806
         
807
-        $vat_class = isset( $_POST['class'] ) && $_POST['class'] !== '' ? sanitize_text_field( $_POST['class'] ) : false;
808
-        $vat_classes = (array)self::get_rate_classes();
807
+        $vat_class = isset($_POST['class']) && $_POST['class'] !== '' ? sanitize_text_field($_POST['class']) : false;
808
+        $vat_classes = (array) self::get_rate_classes();
809 809
 
810
-        if ( !isset( $vat_classes[$vat_class] ) ) {
811
-            $response['error'] = __( 'Requested class does not exists', 'invoicing' );
812
-            wp_send_json( $response );
810
+        if (!isset($vat_classes[$vat_class])) {
811
+            $response['error'] = __('Requested class does not exists', 'invoicing');
812
+            wp_send_json($response);
813 813
         }
814 814
         
815
-        if ( $vat_class == '_new' || $vat_class == '_standard' ) {
816
-            $response['error'] = __( 'You can not delete standard rates class', 'invoicing' );
817
-            wp_send_json( $response );
815
+        if ($vat_class == '_new' || $vat_class == '_standard') {
816
+            $response['error'] = __('You can not delete standard rates class', 'invoicing');
817
+            wp_send_json($response);
818 818
         }
819 819
             
820
-        $vat_classes = (array)self::get_rate_classes( true );
821
-        unset( $vat_classes[$vat_class] );
820
+        $vat_classes = (array) self::get_rate_classes(true);
821
+        unset($vat_classes[$vat_class]);
822 822
         
823
-        update_option( '_wpinv_vat_rate_classes', $vat_classes );
823
+        update_option('_wpinv_vat_rate_classes', $vat_classes);
824 824
         
825 825
         $response['success'] = true;
826
-        $response['redirect'] = admin_url( 'admin.php?page=wpinv-settings&tab=taxes&section=vat_rates&wpi_sub=_new' );
826
+        $response['redirect'] = admin_url('admin.php?page=wpinv-settings&tab=taxes&section=vat_rates&wpi_sub=_new');
827 827
         
828
-        wp_send_json( $response );
828
+        wp_send_json($response);
829 829
     }
830 830
     
831 831
     public static function update_eu_rates() {        
@@ -834,72 +834,72 @@  discard block
 block discarded – undo
834 834
         $response['error']      = null;
835 835
         $response['data']       = null;
836 836
         
837
-        if ( !wpinv_current_user_can_manage_invoicing() ) {
838
-            $response['error'] = __( 'Invalid access!', 'invoicing' );
839
-            wp_send_json( $response );
837
+        if (!wpinv_current_user_can_manage_invoicing()) {
838
+            $response['error'] = __('Invalid access!', 'invoicing');
839
+            wp_send_json($response);
840 840
         }
841 841
         
842
-        $group      = !empty( $_POST['group'] ) ? sanitize_text_field( $_POST['group'] ) : '';
843
-        $euvatrates = self::request_euvatrates( $group );
842
+        $group      = !empty($_POST['group']) ? sanitize_text_field($_POST['group']) : '';
843
+        $euvatrates = self::request_euvatrates($group);
844 844
         
845
-        if ( !empty( $euvatrates ) ) {
846
-            if ( !empty( $euvatrates['success'] ) && !empty( $euvatrates['rates'] ) ) {
845
+        if (!empty($euvatrates)) {
846
+            if (!empty($euvatrates['success']) && !empty($euvatrates['rates'])) {
847 847
                 $response['success']        = true;
848 848
                 $response['data']['rates']  = $euvatrates['rates'];
849
-            } else if ( !empty( $euvatrates['error'] ) ) {
849
+            } else if (!empty($euvatrates['error'])) {
850 850
                 $response['error']          = $euvatrates['error'];
851 851
             }
852 852
         }
853 853
             
854
-        wp_send_json( $response );
854
+        wp_send_json($response);
855 855
     }
856 856
     
857 857
     public static function hide_vat_fields() {
858
-        $hide = wpinv_get_option( 'vat_disable_fields' );
858
+        $hide = wpinv_get_option('vat_disable_fields');
859 859
         
860
-        return apply_filters( 'wpinv_hide_vat_fields', $hide );
860
+        return apply_filters('wpinv_hide_vat_fields', $hide);
861 861
     }
862 862
     
863 863
     public static function same_country_rule() {
864
-        $same_country_rule = wpinv_get_option( 'vat_same_country_rule' );
864
+        $same_country_rule = wpinv_get_option('vat_same_country_rule');
865 865
         
866
-        return apply_filters( 'wpinv_vat_same_country_rule', $same_country_rule );
866
+        return apply_filters('wpinv_vat_same_country_rule', $same_country_rule);
867 867
     }
868 868
     
869 869
     public static function get_vat_name() {
870
-        $vat_name   = wpinv_get_option( 'vat_name' );
871
-        $vat_name   = !empty( $vat_name ) ? $vat_name : 'VAT';
870
+        $vat_name   = wpinv_get_option('vat_name');
871
+        $vat_name   = !empty($vat_name) ? $vat_name : 'VAT';
872 872
         
873
-        return apply_filters( 'wpinv_get_owner_vat_name', $vat_name );
873
+        return apply_filters('wpinv_get_owner_vat_name', $vat_name);
874 874
     }
875 875
     
876 876
     public static function get_company_name() {
877
-        $company_name = wpinv_get_option( 'vat_company_name' );
877
+        $company_name = wpinv_get_option('vat_company_name');
878 878
         
879
-        return apply_filters( 'wpinv_get_owner_company_name', $company_name );
879
+        return apply_filters('wpinv_get_owner_company_name', $company_name);
880 880
     }
881 881
     
882 882
     public static function get_vat_number() {
883
-        $vat_number = wpinv_get_option( 'vat_number' );
883
+        $vat_number = wpinv_get_option('vat_number');
884 884
         
885
-        return apply_filters( 'wpinv_get_owner_vat_number', $vat_number );
885
+        return apply_filters('wpinv_get_owner_vat_number', $vat_number);
886 886
     }
887 887
     
888 888
     public static function is_vat_validated() {
889
-        $validated = self::get_vat_number() && wpinv_get_option( 'vat_valid' );
889
+        $validated = self::get_vat_number() && wpinv_get_option('vat_valid');
890 890
         
891
-        return apply_filters( 'wpinv_is_owner_vat_validated', $validated );
891
+        return apply_filters('wpinv_is_owner_vat_validated', $validated);
892 892
     }
893 893
     
894
-    public static function sanitize_vat( $vat_number, $country_code = '' ) {        
895
-        $vat_number = str_replace( array(' ', '.', '-', '_', ',' ), '', strtoupper( trim( $vat_number ) ) );
894
+    public static function sanitize_vat($vat_number, $country_code = '') {        
895
+        $vat_number = str_replace(array(' ', '.', '-', '_', ','), '', strtoupper(trim($vat_number)));
896 896
         
897
-        if ( empty( $country_code ) ) {
898
-            $country_code = substr( $vat_number, 0, 2 );
897
+        if (empty($country_code)) {
898
+            $country_code = substr($vat_number, 0, 2);
899 899
         }
900 900
         
901
-        if ( strpos( $vat_number , $country_code ) === 0 ) {
902
-            $vat = str_replace( $country_code, '', $vat_number );
901
+        if (strpos($vat_number, $country_code) === 0) {
902
+            $vat = str_replace($country_code, '', $vat_number);
903 903
         } else {
904 904
             $vat = $country_code . $vat_number;
905 905
         }
@@ -912,140 +912,140 @@  discard block
 block discarded – undo
912 912
         return $return;
913 913
     }
914 914
     
915
-    public static function offline_check( $vat_number, $country_code = '', $formatted = false ) {
916
-        $vat            = self::sanitize_vat( $vat_number, $country_code );
915
+    public static function offline_check($vat_number, $country_code = '', $formatted = false) {
916
+        $vat            = self::sanitize_vat($vat_number, $country_code);
917 917
         $vat_number     = $vat['vat_number'];
918 918
         $country_code   = $vat['iso'];
919 919
         $regex          = array();
920 920
         
921
-        switch ( $country_code ) {
921
+        switch ($country_code) {
922 922
             case 'AT':
923
-                $regex[] = '/^(AT)U(\d{8})$/';                           // Austria
923
+                $regex[] = '/^(AT)U(\d{8})$/'; // Austria
924 924
                 break;
925 925
             case 'BE':
926
-                $regex[] = '/^(BE)(0?\d{9})$/';                          // Belgium
926
+                $regex[] = '/^(BE)(0?\d{9})$/'; // Belgium
927 927
                 break;
928 928
             case 'BG':
929
-                $regex[] = '/^(BG)(\d{9,10})$/';                         // Bulgaria
929
+                $regex[] = '/^(BG)(\d{9,10})$/'; // Bulgaria
930 930
                 break;
931 931
             case 'CH':
932 932
             case 'CHE':
933
-                $regex[] = '/^(CHE)(\d{9})MWST$/';                       // Switzerland (Not EU)
933
+                $regex[] = '/^(CHE)(\d{9})MWST$/'; // Switzerland (Not EU)
934 934
                 break;
935 935
             case 'CY':
936
-                $regex[] = '/^(CY)([0-5|9]\d{7}[A-Z])$/';                // Cyprus
936
+                $regex[] = '/^(CY)([0-5|9]\d{7}[A-Z])$/'; // Cyprus
937 937
                 break;
938 938
             case 'CZ':
939
-                $regex[] = '/^(CZ)(\d{8,13})$/';                         // Czech Republic
939
+                $regex[] = '/^(CZ)(\d{8,13})$/'; // Czech Republic
940 940
                 break;
941 941
             case 'DE':
942
-                $regex[] = '/^(DE)([1-9]\d{8})$/';                       // Germany
942
+                $regex[] = '/^(DE)([1-9]\d{8})$/'; // Germany
943 943
                 break;
944 944
             case 'DK':
945
-                $regex[] = '/^(DK)(\d{8})$/';                            // Denmark
945
+                $regex[] = '/^(DK)(\d{8})$/'; // Denmark
946 946
                 break;
947 947
             case 'EE':
948
-                $regex[] = '/^(EE)(10\d{7})$/';                          // Estonia
948
+                $regex[] = '/^(EE)(10\d{7})$/'; // Estonia
949 949
                 break;
950 950
             case 'EL':
951
-                $regex[] = '/^(EL)(\d{9})$/';                            // Greece
951
+                $regex[] = '/^(EL)(\d{9})$/'; // Greece
952 952
                 break;
953 953
             case 'ES':
954
-                $regex[] = '/^(ES)([A-Z]\d{8})$/';                       // Spain (National juridical entities)
955
-                $regex[] = '/^(ES)([A-H|N-S|W]\d{7}[A-J])$/';            // Spain (Other juridical entities)
956
-                $regex[] = '/^(ES)([0-9|Y|Z]\d{7}[A-Z])$/';              // Spain (Personal entities type 1)
957
-                $regex[] = '/^(ES)([K|L|M|X]\d{7}[A-Z])$/';              // Spain (Personal entities type 2)
954
+                $regex[] = '/^(ES)([A-Z]\d{8})$/'; // Spain (National juridical entities)
955
+                $regex[] = '/^(ES)([A-H|N-S|W]\d{7}[A-J])$/'; // Spain (Other juridical entities)
956
+                $regex[] = '/^(ES)([0-9|Y|Z]\d{7}[A-Z])$/'; // Spain (Personal entities type 1)
957
+                $regex[] = '/^(ES)([K|L|M|X]\d{7}[A-Z])$/'; // Spain (Personal entities type 2)
958 958
                 break;
959 959
             case 'EU':
960
-                $regex[] = '/^(EU)(\d{9})$/';                            // EU-type
960
+                $regex[] = '/^(EU)(\d{9})$/'; // EU-type
961 961
                 break;
962 962
             case 'FI':
963
-                $regex[] = '/^(FI)(\d{8})$/';                            // Finland
963
+                $regex[] = '/^(FI)(\d{8})$/'; // Finland
964 964
                 break;
965 965
             case 'FR':
966
-                $regex[] = '/^(FR)(\d{11})$/';                           // France (1)
967
-                $regex[] = '/^(FR)[(A-H)|(J-N)|(P-Z)](\d{10})$/';        // France (2)
968
-                $regex[] = '/^(FR)\d[(A-H)|(J-N)|(P-Z)](\d{9})$/';       // France (3)
969
-                $regex[] = '/^(FR)[(A-H)|(J-N)|(P-Z)]{2}(\d{9})$/';      // France (4)
966
+                $regex[] = '/^(FR)(\d{11})$/'; // France (1)
967
+                $regex[] = '/^(FR)[(A-H)|(J-N)|(P-Z)](\d{10})$/'; // France (2)
968
+                $regex[] = '/^(FR)\d[(A-H)|(J-N)|(P-Z)](\d{9})$/'; // France (3)
969
+                $regex[] = '/^(FR)[(A-H)|(J-N)|(P-Z)]{2}(\d{9})$/'; // France (4)
970 970
                 break;
971 971
             case 'GB':
972
-                $regex[] = '/^(GB)?(\d{9})$/';                           // UK (Standard)
973
-                $regex[] = '/^(GB)?(\d{12})$/';                          // UK (Branches)
974
-                $regex[] = '/^(GB)?(GD\d{3})$/';                         // UK (Government)
975
-                $regex[] = '/^(GB)?(HA\d{3})$/';                         // UK (Health authority)
972
+                $regex[] = '/^(GB)?(\d{9})$/'; // UK (Standard)
973
+                $regex[] = '/^(GB)?(\d{12})$/'; // UK (Branches)
974
+                $regex[] = '/^(GB)?(GD\d{3})$/'; // UK (Government)
975
+                $regex[] = '/^(GB)?(HA\d{3})$/'; // UK (Health authority)
976 976
                 break;
977 977
             case 'GR':
978
-                $regex[] = '/^(GR)(\d{8,9})$/';                          // Greece
978
+                $regex[] = '/^(GR)(\d{8,9})$/'; // Greece
979 979
                 break;
980 980
             case 'HR':
981
-                $regex[] = '/^(HR)(\d{11})$/';                           // Croatia
981
+                $regex[] = '/^(HR)(\d{11})$/'; // Croatia
982 982
                 break;
983 983
             case 'HU':
984
-                $regex[] = '/^(HU)(\d{8})$/';                            // Hungary
984
+                $regex[] = '/^(HU)(\d{8})$/'; // Hungary
985 985
                 break;
986 986
             case 'IE':
987
-                $regex[] = '/^(IE)(\d{7}[A-W])$/';                       // Ireland (1)
988
-                $regex[] = '/^(IE)([7-9][A-Z\*\+)]\d{5}[A-W])$/';        // Ireland (2)
989
-                $regex[] = '/^(IE)(\d{7}[A-Z][AH])$/';                   // Ireland (3) (new format from 1 Jan 2013)
987
+                $regex[] = '/^(IE)(\d{7}[A-W])$/'; // Ireland (1)
988
+                $regex[] = '/^(IE)([7-9][A-Z\*\+)]\d{5}[A-W])$/'; // Ireland (2)
989
+                $regex[] = '/^(IE)(\d{7}[A-Z][AH])$/'; // Ireland (3) (new format from 1 Jan 2013)
990 990
                 break;
991 991
             case 'IT':
992
-                $regex[] = '/^(IT)(\d{11})$/';                           // Italy
992
+                $regex[] = '/^(IT)(\d{11})$/'; // Italy
993 993
                 break;
994 994
             case 'LV':
995
-                $regex[] = '/^(LV)(\d{11})$/';                           // Latvia
995
+                $regex[] = '/^(LV)(\d{11})$/'; // Latvia
996 996
                 break;
997 997
             case 'LT':
998
-                $regex[] = '/^(LT)(\d{9}|\d{12})$/';                     // Lithuania
998
+                $regex[] = '/^(LT)(\d{9}|\d{12})$/'; // Lithuania
999 999
                 break;
1000 1000
             case 'LU':
1001
-                $regex[] = '/^(LU)(\d{8})$/';                            // Luxembourg
1001
+                $regex[] = '/^(LU)(\d{8})$/'; // Luxembourg
1002 1002
                 break;
1003 1003
             case 'MT':
1004
-                $regex[] = '/^(MT)([1-9]\d{7})$/';                       // Malta
1004
+                $regex[] = '/^(MT)([1-9]\d{7})$/'; // Malta
1005 1005
                 break;
1006 1006
             case 'NL':
1007
-                $regex[] = '/^(NL)(\d{9})B\d{2}$/';                      // Netherlands
1007
+                $regex[] = '/^(NL)(\d{9})B\d{2}$/'; // Netherlands
1008 1008
                 break;
1009 1009
             case 'NO':
1010
-                $regex[] = '/^(NO)(\d{9})$/';                            // Norway (Not EU)
1010
+                $regex[] = '/^(NO)(\d{9})$/'; // Norway (Not EU)
1011 1011
                 break;
1012 1012
             case 'PL':
1013
-                $regex[] = '/^(PL)(\d{10})$/';                           // Poland
1013
+                $regex[] = '/^(PL)(\d{10})$/'; // Poland
1014 1014
                 break;
1015 1015
             case 'PT':
1016
-                $regex[] = '/^(PT)(\d{9})$/';                            // Portugal
1016
+                $regex[] = '/^(PT)(\d{9})$/'; // Portugal
1017 1017
                 break;
1018 1018
             case 'RO':
1019
-                $regex[] = '/^(RO)([1-9]\d{1,9})$/';                     // Romania
1019
+                $regex[] = '/^(RO)([1-9]\d{1,9})$/'; // Romania
1020 1020
                 break;
1021 1021
             case 'RS':
1022
-                $regex[] = '/^(RS)(\d{9})$/';                            // Serbia (Not EU)
1022
+                $regex[] = '/^(RS)(\d{9})$/'; // Serbia (Not EU)
1023 1023
                 break;
1024 1024
             case 'SI':
1025
-                $regex[] = '/^(SI)([1-9]\d{7})$/';                       // Slovenia
1025
+                $regex[] = '/^(SI)([1-9]\d{7})$/'; // Slovenia
1026 1026
                 break;
1027 1027
             case 'SK':
1028
-                $regex[] = '/^(SK)([1-9]\d[(2-4)|(6-9)]\d{7})$/';        // Slovakia Republic
1028
+                $regex[] = '/^(SK)([1-9]\d[(2-4)|(6-9)]\d{7})$/'; // Slovakia Republic
1029 1029
                 break;
1030 1030
             case 'SE':
1031
-                $regex[] = '/^(SE)(\d{10}01)$/';                         // Sweden
1031
+                $regex[] = '/^(SE)(\d{10}01)$/'; // Sweden
1032 1032
                 break;
1033 1033
             default:
1034 1034
                 $regex = array();
1035 1035
             break;
1036 1036
         }
1037 1037
         
1038
-        if ( empty( $regex ) ) {
1038
+        if (empty($regex)) {
1039 1039
             return false;
1040 1040
         }
1041 1041
         
1042
-        foreach ( $regex as $pattern ) {
1042
+        foreach ($regex as $pattern) {
1043 1043
             $matches = null;
1044
-            preg_match_all( $pattern, $vat_number, $matches );
1044
+            preg_match_all($pattern, $vat_number, $matches);
1045 1045
             
1046
-            if ( !empty( $matches[1][0] ) && !empty( $matches[2][0] ) ) {
1047
-                if ( $formatted ) {
1048
-                    return array( 'code' => $matches[1][0], 'number' => $matches[2][0] );
1046
+            if (!empty($matches[1][0]) && !empty($matches[2][0])) {
1047
+                if ($formatted) {
1048
+                    return array('code' => $matches[1][0], 'number' => $matches[2][0]);
1049 1049
                 } else {
1050 1050
                     return true;
1051 1051
                 }
@@ -1055,75 +1055,75 @@  discard block
 block discarded – undo
1055 1055
         return false;
1056 1056
     }
1057 1057
     
1058
-    public static function vies_check( $vat_number, $country_code = '', $result = false ) {
1059
-        $vat            = self::sanitize_vat( $vat_number, $country_code );
1058
+    public static function vies_check($vat_number, $country_code = '', $result = false) {
1059
+        $vat            = self::sanitize_vat($vat_number, $country_code);
1060 1060
         $vat_number     = $vat['vat'];
1061 1061
         $iso            = $vat['iso'];
1062 1062
         
1063
-        $url = 'http://ec.europa.eu/taxation_customs/vies/viesquer.do?ms=' . urlencode( $iso ) . '&iso=' . urlencode( $iso ) . '&vat=' . urlencode( $vat_number );
1063
+        $url = 'http://ec.europa.eu/taxation_customs/vies/viesquer.do?ms=' . urlencode($iso) . '&iso=' . urlencode($iso) . '&vat=' . urlencode($vat_number);
1064 1064
         
1065
-        if ( ini_get( 'allow_url_fopen' ) ) {
1066
-            $response = file_get_contents( $url );
1067
-        } else if ( function_exists( 'curl_init' ) ) {
1065
+        if (ini_get('allow_url_fopen')) {
1066
+            $response = file_get_contents($url);
1067
+        } else if (function_exists('curl_init')) {
1068 1068
             $ch = curl_init();
1069 1069
             
1070
-            curl_setopt( $ch, CURLOPT_URL, $url );
1071
-            curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 30 );
1072
-            curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
1073
-            curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
1074
-            curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
1070
+            curl_setopt($ch, CURLOPT_URL, $url);
1071
+            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
1072
+            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
1073
+            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
1074
+            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
1075 1075
             
1076
-            $response = curl_exec( $ch );
1076
+            $response = curl_exec($ch);
1077 1077
             
1078
-            if ( curl_errno( $ch ) ) {
1079
-                wpinv_error_log( curl_error( $ch ), 'VIES CHECK ERROR' );
1078
+            if (curl_errno($ch)) {
1079
+                wpinv_error_log(curl_error($ch), 'VIES CHECK ERROR');
1080 1080
                 $response = '';
1081 1081
             }
1082 1082
             
1083
-            curl_close( $ch );
1083
+            curl_close($ch);
1084 1084
         } else {
1085
-            wpinv_error_log( 'To use VIES CHECK you must have allow_url_fopen is ON or cURL installed & active on your server.', 'VIES CHECK ERROR' );
1085
+            wpinv_error_log('To use VIES CHECK you must have allow_url_fopen is ON or cURL installed & active on your server.', 'VIES CHECK ERROR');
1086 1086
         }
1087 1087
         
1088
-        if ( empty( $response ) ) {
1088
+        if (empty($response)) {
1089 1089
             return $result;
1090 1090
         }
1091 1091
 
1092
-        if ( preg_match( '/invalid VAT number/i', $response ) ) {
1092
+        if (preg_match('/invalid VAT number/i', $response)) {
1093 1093
             return false;
1094
-        } else if ( preg_match( '/valid VAT number/i', $response, $matches ) ) {
1095
-            $content = explode( "valid VAT number", htmlentities( $response ) );
1094
+        } else if (preg_match('/valid VAT number/i', $response, $matches)) {
1095
+            $content = explode("valid VAT number", htmlentities($response));
1096 1096
             
1097
-            if ( !empty( $content[1] ) ) {
1098
-                preg_match_all( '/<tr>(.*?)<td.*?>(.*?)<\/td>(.*?)<\/tr>/si', html_entity_decode( $content[1] ), $matches );
1097
+            if (!empty($content[1])) {
1098
+                preg_match_all('/<tr>(.*?)<td.*?>(.*?)<\/td>(.*?)<\/tr>/si', html_entity_decode($content[1]), $matches);
1099 1099
                 
1100
-                if ( !empty( $matches[2] ) && $matches[3] ) {
1100
+                if (!empty($matches[2]) && $matches[3]) {
1101 1101
                     $return = array();
1102 1102
                     
1103
-                    foreach ( $matches[2] as $key => $label ) {
1104
-                        $label = trim( $label );
1103
+                    foreach ($matches[2] as $key => $label) {
1104
+                        $label = trim($label);
1105 1105
                         
1106
-                        switch ( strtolower( $label ) ) {
1106
+                        switch (strtolower($label)) {
1107 1107
                             case 'member state':
1108
-                                $return['state'] = trim( strip_tags( $matches[3][$key] ) );
1108
+                                $return['state'] = trim(strip_tags($matches[3][$key]));
1109 1109
                             break;
1110 1110
                             case 'vat number':
1111
-                                $return['number'] = trim( strip_tags( $matches[3][$key] ) );
1111
+                                $return['number'] = trim(strip_tags($matches[3][$key]));
1112 1112
                             break;
1113 1113
                             case 'name':
1114
-                                $return['company'] = trim( strip_tags( $matches[3][$key] ) );
1114
+                                $return['company'] = trim(strip_tags($matches[3][$key]));
1115 1115
                             break;
1116 1116
                             case 'address':
1117
-                                $address           = str_replace( array( "<br><br>", "<br /><br />", "<br/><br/>" ), "<br>", html_entity_decode( trim( $matches[3][$key] ) ) );
1118
-                                $return['address'] = trim( strip_tags( $address, '<br>' ) );
1117
+                                $address           = str_replace(array("<br><br>", "<br /><br />", "<br/><br/>"), "<br>", html_entity_decode(trim($matches[3][$key])));
1118
+                                $return['address'] = trim(strip_tags($address, '<br>'));
1119 1119
                             break;
1120 1120
                             case 'consultation number':
1121
-                                $return['consultation'] = trim( strip_tags( $matches[3][$key] ) );
1121
+                                $return['consultation'] = trim(strip_tags($matches[3][$key]));
1122 1122
                             break;
1123 1123
                         }
1124 1124
                     }
1125 1125
                     
1126
-                    if ( !empty( $return ) ) {
1126
+                    if (!empty($return)) {
1127 1127
                         return $return;
1128 1128
                     }
1129 1129
                 }
@@ -1135,63 +1135,63 @@  discard block
 block discarded – undo
1135 1135
         }
1136 1136
     }
1137 1137
     
1138
-    public static function check_vat( $vat_number, $country_code = '' ) {        
1138
+    public static function check_vat($vat_number, $country_code = '') {        
1139 1139
         $vat_name           = self::get_vat_name();
1140 1140
         
1141 1141
         $return             = array();
1142 1142
         $return['valid']    = false;
1143
-        $return['message']  = wp_sprintf( __( '%s number not validated', 'invoicing' ), $vat_name );
1143
+        $return['message']  = wp_sprintf(__('%s number not validated', 'invoicing'), $vat_name);
1144 1144
                 
1145
-        if ( !wpinv_get_option( 'vat_offline_check' ) && !self::offline_check( $vat_number, $country_code ) ) {
1145
+        if (!wpinv_get_option('vat_offline_check') && !self::offline_check($vat_number, $country_code)) {
1146 1146
             return $return;
1147 1147
         }
1148 1148
             
1149
-        $response = self::vies_check( $vat_number, $country_code );
1149
+        $response = self::vies_check($vat_number, $country_code);
1150 1150
         
1151
-        if ( $response ) {
1152
-            $return['valid']    = true;
1151
+        if ($response) {
1152
+            $return['valid'] = true;
1153 1153
             
1154
-            if ( is_array( $response ) ) {
1155
-                $return['company'] = isset( $response['company'] ) ? $response['company'] : '';
1156
-                $return['address'] = isset( $response['address'] ) ? $response['address'] : '';
1154
+            if (is_array($response)) {
1155
+                $return['company'] = isset($response['company']) ? $response['company'] : '';
1156
+                $return['address'] = isset($response['address']) ? $response['address'] : '';
1157 1157
                 $return['message'] = $return['company'] . '<br/>' . $return['address'];
1158 1158
             }
1159 1159
         } else {
1160 1160
             $return['valid']    = false;
1161
-            $return['message']  = wp_sprintf( __( 'Fail to validate the %s number: EU Commission VAT server (VIES) check fails.', 'invoicing' ), $vat_name );
1161
+            $return['message']  = wp_sprintf(__('Fail to validate the %s number: EU Commission VAT server (VIES) check fails.', 'invoicing'), $vat_name);
1162 1162
         }
1163 1163
         
1164 1164
         return $return;
1165 1165
     }
1166 1166
     
1167
-    public static function request_euvatrates( $group ) {
1167
+    public static function request_euvatrates($group) {
1168 1168
         $response               = array();
1169 1169
         $response['success']    = false;
1170 1170
         $response['error']      = null;
1171 1171
         $response['eurates']    = null;
1172 1172
         
1173 1173
         $euvatrates_url = 'https://euvatrates.com/rates.json';
1174
-        $euvatrates_url = apply_filters( 'wpinv_euvatrates_url', $euvatrates_url );
1175
-        $api_response   = wp_remote_get( $euvatrates_url );
1174
+        $euvatrates_url = apply_filters('wpinv_euvatrates_url', $euvatrates_url);
1175
+        $api_response   = wp_remote_get($euvatrates_url);
1176 1176
     
1177 1177
         try {
1178
-            if ( is_wp_error( $api_response ) ) {
1179
-                $response['error']      = __( $api_response->get_error_message(), 'invoicing' );
1178
+            if (is_wp_error($api_response)) {
1179
+                $response['error'] = __($api_response->get_error_message(), 'invoicing');
1180 1180
             } else {
1181
-                $body = json_decode( $api_response['body'] );
1181
+                $body = json_decode($api_response['body']);
1182 1182
                 
1183
-                if ( isset( $body->rates ) ) {
1183
+                if (isset($body->rates)) {
1184 1184
                     $rates = array();
1185 1185
                     
1186
-                    foreach ( $body->rates as $country_code => $rate ) {
1186
+                    foreach ($body->rates as $country_code => $rate) {
1187 1187
                         $vat_rate = array();
1188 1188
                         $vat_rate['country']        = $rate->country;
1189
-                        $vat_rate['standard']       = (float)$rate->standard_rate;
1190
-                        $vat_rate['reduced']        = (float)$rate->reduced_rate;
1191
-                        $vat_rate['superreduced']   = (float)$rate->super_reduced_rate;
1192
-                        $vat_rate['parking']        = (float)$rate->parking_rate;
1189
+                        $vat_rate['standard']       = (float) $rate->standard_rate;
1190
+                        $vat_rate['reduced']        = (float) $rate->reduced_rate;
1191
+                        $vat_rate['superreduced']   = (float) $rate->super_reduced_rate;
1192
+                        $vat_rate['parking']        = (float) $rate->parking_rate;
1193 1193
                         
1194
-                        if ( $group !== '' && in_array( $group, array( 'standard', 'reduced', 'superreduced', 'parking' ) ) ) {
1194
+                        if ($group !== '' && in_array($group, array('standard', 'reduced', 'superreduced', 'parking'))) {
1195 1195
                             $vat_rate_group = array();
1196 1196
                             $vat_rate_group['country'] = $rate->country;
1197 1197
                             $vat_rate_group[$group]    = $vat_rate[$group];
@@ -1203,79 +1203,79 @@  discard block
 block discarded – undo
1203 1203
                     }
1204 1204
                     
1205 1205
                     $response['success']    = true;                                
1206
-                    $response['rates']      = apply_filters( 'wpinv_process_euvatrates', $rates, $api_response, $group );
1206
+                    $response['rates']      = apply_filters('wpinv_process_euvatrates', $rates, $api_response, $group);
1207 1207
                 } else {
1208
-                    $response['error']      = __( 'No EU rates found!', 'invoicing' );
1208
+                    $response['error']      = __('No EU rates found!', 'invoicing');
1209 1209
                 }
1210 1210
             }
1211
-        } catch ( Exception $e ) {
1212
-            $response['error'] = __( $e->getMessage(), 'invoicing' );
1211
+        } catch (Exception $e) {
1212
+            $response['error'] = __($e->getMessage(), 'invoicing');
1213 1213
         }
1214 1214
         
1215
-        return apply_filters( 'wpinv_response_euvatrates', $response, $group );
1215
+        return apply_filters('wpinv_response_euvatrates', $response, $group);
1216 1216
     }    
1217 1217
     
1218
-    public static function requires_vat( $requires_vat = false, $user_id = 0, $is_digital = null ) {
1218
+    public static function requires_vat($requires_vat = false, $user_id = 0, $is_digital = null) {
1219 1219
         global $wpi_item_id, $wpi_country;
1220 1220
         
1221
-        if ( !empty( $_POST['wpinv_country'] ) ) {
1222
-            $country_code = trim( $_POST['wpinv_country'] );
1223
-        } else if ( !empty( $_POST['country'] ) ) {
1224
-            $country_code = trim( $_POST['country'] );
1225
-        } else if ( !empty( $wpi_country ) ) {
1221
+        if (!empty($_POST['wpinv_country'])) {
1222
+            $country_code = trim($_POST['wpinv_country']);
1223
+        } else if (!empty($_POST['country'])) {
1224
+            $country_code = trim($_POST['country']);
1225
+        } else if (!empty($wpi_country)) {
1226 1226
             $country_code = $wpi_country;
1227 1227
         } else {
1228
-            $country_code = self::get_user_country( '', $user_id );
1228
+            $country_code = self::get_user_country('', $user_id);
1229 1229
         }
1230 1230
         
1231
-        if ( $is_digital === null && $wpi_item_id ) {
1232
-            $is_digital = $wpi_item_id ? self::item_has_digital_rule( $wpi_item_id ) : self::allow_vat_rules();
1231
+        if ($is_digital === null && $wpi_item_id) {
1232
+            $is_digital = $wpi_item_id ? self::item_has_digital_rule($wpi_item_id) : self::allow_vat_rules();
1233 1233
         }
1234 1234
         
1235
-        if ( !empty( $country_code ) ) {
1236
-            $requires_vat = ( self::is_eu_state( $country_code ) && ( self::is_eu_state( self::$default_country ) || $is_digital ) ) || ( self::is_gst_country( $country_code ) && self::is_gst_country( self::$default_country ) );
1235
+        if (!empty($country_code)) {
1236
+            $requires_vat = (self::is_eu_state($country_code) && (self::is_eu_state(self::$default_country) || $is_digital)) || (self::is_gst_country($country_code) && self::is_gst_country(self::$default_country));
1237 1237
         }
1238 1238
         
1239
-        return apply_filters( 'wpinv_requires_vat', $requires_vat, $user_id );
1239
+        return apply_filters('wpinv_requires_vat', $requires_vat, $user_id);
1240 1240
     }
1241 1241
     
1242
-    public static function tax_label( $label = '' ) {
1242
+    public static function tax_label($label = '') {
1243 1243
         global $wpi_requires_vat;
1244 1244
         
1245
-        if ( !( $wpi_requires_vat !== 0 && $wpi_requires_vat ) ) {
1246
-            $wpi_requires_vat = self::requires_vat( 0, false );
1245
+        if (!($wpi_requires_vat !== 0 && $wpi_requires_vat)) {
1246
+            $wpi_requires_vat = self::requires_vat(0, false);
1247 1247
         }
1248 1248
         
1249
-        return $wpi_requires_vat ? __( self::get_vat_name(), 'invoicing' ) : ( $label ? $label : __( 'Tax', 'invoicing' ) );
1249
+        return $wpi_requires_vat ? __(self::get_vat_name(), 'invoicing') : ($label ? $label : __('Tax', 'invoicing'));
1250 1250
     }
1251 1251
     
1252 1252
     public static function standard_rates_label() {
1253
-        return __( 'Standard Rates', 'invoicing' );
1253
+        return __('Standard Rates', 'invoicing');
1254 1254
     }
1255 1255
     
1256
-    public static function get_rate_classes( $with_desc = false ) {        
1257
-        $rate_classes_option = get_option( '_wpinv_vat_rate_classes', true );
1258
-        $classes = maybe_unserialize( $rate_classes_option );
1256
+    public static function get_rate_classes($with_desc = false) {        
1257
+        $rate_classes_option = get_option('_wpinv_vat_rate_classes', true);
1258
+        $classes = maybe_unserialize($rate_classes_option);
1259 1259
         
1260
-        if ( empty( $classes ) || !is_array( $classes ) ) {
1260
+        if (empty($classes) || !is_array($classes)) {
1261 1261
             $classes = array();
1262 1262
         }
1263 1263
 
1264 1264
         $rate_classes = array();
1265
-        if ( !array_key_exists( '_standard', $classes ) ) {
1266
-            if ( $with_desc ) {
1267
-                $rate_classes['_standard'] = array( 'name' => self::standard_rates_label(), 'desc' => __( 'EU member states standard VAT rates', 'invoicing' ) );
1265
+        if (!array_key_exists('_standard', $classes)) {
1266
+            if ($with_desc) {
1267
+                $rate_classes['_standard'] = array('name' => self::standard_rates_label(), 'desc' => __('EU member states standard VAT rates', 'invoicing'));
1268 1268
             } else {
1269 1269
                 $rate_classes['_standard'] = self::standard_rates_label();
1270 1270
             }
1271 1271
         }
1272 1272
         
1273
-        foreach ( $classes as $key => $class ) {
1274
-            $name = !empty( $class['name'] ) ? __( $class['name'], 'invoicing' ) : $key;
1275
-            $desc = !empty( $class['desc'] ) ? __( $class['desc'], 'invoicing' ) : '';
1273
+        foreach ($classes as $key => $class) {
1274
+            $name = !empty($class['name']) ? __($class['name'], 'invoicing') : $key;
1275
+            $desc = !empty($class['desc']) ? __($class['desc'], 'invoicing') : '';
1276 1276
             
1277
-            if ( $with_desc ) {
1278
-                $rate_classes[$key] = array( 'name' => $name, 'desc' => $desc );
1277
+            if ($with_desc) {
1278
+                $rate_classes[$key] = array('name' => $name, 'desc' => $desc);
1279 1279
             } else {
1280 1280
                 $rate_classes[$key] = $name;
1281 1281
             }
@@ -1286,15 +1286,15 @@  discard block
 block discarded – undo
1286 1286
     
1287 1287
     public static function get_all_classes() {        
1288 1288
         $classes            = self::get_rate_classes();
1289
-        $classes['_exempt'] = __( 'Exempt (0%)', 'invoicing' );
1289
+        $classes['_exempt'] = __('Exempt (0%)', 'invoicing');
1290 1290
         
1291
-        return apply_filters( 'wpinv_vat_get_all_classes', $classes );
1291
+        return apply_filters('wpinv_vat_get_all_classes', $classes);
1292 1292
     }
1293 1293
     
1294
-    public static function get_class_desc( $rate_class ) {        
1295
-        $rate_classes = self::get_rate_classes( true );
1294
+    public static function get_class_desc($rate_class) {        
1295
+        $rate_classes = self::get_rate_classes(true);
1296 1296
 
1297
-        if ( !empty( $rate_classes ) && isset( $rate_classes[$rate_class] ) && isset( $rate_classes[$rate_class]['desc'] ) ) {
1297
+        if (!empty($rate_classes) && isset($rate_classes[$rate_class]) && isset($rate_classes[$rate_class]['desc'])) {
1298 1298
             return $rate_classes[$rate_class]['desc'];
1299 1299
         }
1300 1300
         
@@ -1310,106 +1310,106 @@  discard block
 block discarded – undo
1310 1310
             'increased'     => 'Increased'
1311 1311
         );
1312 1312
         
1313
-        return apply_filters( 'wpinv_get_vat_groups', $vat_groups );
1313
+        return apply_filters('wpinv_get_vat_groups', $vat_groups);
1314 1314
     }
1315 1315
 
1316 1316
     public static function get_rules() {
1317 1317
         $vat_rules = array(
1318
-            'digital' => __( 'Digital Product', 'invoicing' ),
1319
-            'physical' => __( 'Physical Product', 'invoicing' )
1318
+            'digital' => __('Digital Product', 'invoicing'),
1319
+            'physical' => __('Physical Product', 'invoicing')
1320 1320
         );
1321
-        return apply_filters( 'wpinv_get_vat_rules', $vat_rules );
1321
+        return apply_filters('wpinv_get_vat_rules', $vat_rules);
1322 1322
     }
1323 1323
 
1324
-    public static function get_vat_rates( $class ) {
1325
-        if ( $class === '_standard' ) {
1324
+    public static function get_vat_rates($class) {
1325
+        if ($class === '_standard') {
1326 1326
             return wpinv_get_tax_rates();
1327 1327
         }
1328 1328
 
1329 1329
         $rates = self::get_non_standard_rates();
1330 1330
 
1331
-        return array_key_exists( $class, $rates ) ? $rates[$class] : array();
1331
+        return array_key_exists($class, $rates) ? $rates[$class] : array();
1332 1332
     }
1333 1333
 
1334 1334
     public static function get_non_standard_rates() {
1335
-        $option = get_option( 'wpinv_vat_rates', array());
1336
-        return is_array( $option ) ? $option : array();
1335
+        $option = get_option('wpinv_vat_rates', array());
1336
+        return is_array($option) ? $option : array();
1337 1337
     }
1338 1338
     
1339 1339
     public static function allow_vat_rules() {
1340
-        return ( wpinv_use_taxes() && wpinv_get_option( 'apply_vat_rules' ) ? true : false );
1340
+        return (wpinv_use_taxes() && wpinv_get_option('apply_vat_rules') ? true : false);
1341 1341
     }
1342 1342
     
1343 1343
     public static function allow_vat_classes() {
1344 1344
         return false; // TODO
1345
-        return ( wpinv_get_option( 'vat_allow_classes' ) ? true : false );
1345
+        return (wpinv_get_option('vat_allow_classes') ? true : false);
1346 1346
     }
1347 1347
     
1348
-    public static function get_item_class( $postID ) {
1349
-        $class = get_post_meta( $postID, '_wpinv_vat_class', true );
1348
+    public static function get_item_class($postID) {
1349
+        $class = get_post_meta($postID, '_wpinv_vat_class', true);
1350 1350
 
1351
-        if ( empty( $class ) ) {
1351
+        if (empty($class)) {
1352 1352
             $class = '_standard';
1353 1353
         }
1354 1354
         
1355
-        return apply_filters( 'wpinv_get_item_vat_class', $class, $postID );
1355
+        return apply_filters('wpinv_get_item_vat_class', $class, $postID);
1356 1356
     }
1357 1357
     
1358
-    public static function item_class_label( $postID ) {        
1358
+    public static function item_class_label($postID) {        
1359 1359
         $vat_classes = self::get_all_classes();
1360 1360
         
1361
-        $class = self::get_item_class( $postID );
1362
-        $class = isset( $vat_classes[$class] ) ? $vat_classes[$class] : __( $class, 'invoicing' );
1361
+        $class = self::get_item_class($postID);
1362
+        $class = isset($vat_classes[$class]) ? $vat_classes[$class] : __($class, 'invoicing');
1363 1363
         
1364
-        return apply_filters( 'wpinv_item_class_label', $class, $postID );
1364
+        return apply_filters('wpinv_item_class_label', $class, $postID);
1365 1365
     }
1366 1366
     
1367
-    public static function get_item_rule( $postID ) {        
1368
-        $rule_type = get_post_meta( $postID, '_wpinv_vat_rule', true );
1367
+    public static function get_item_rule($postID) {        
1368
+        $rule_type = get_post_meta($postID, '_wpinv_vat_rule', true);
1369 1369
         
1370
-        if ( empty( $rule_type ) ) {        
1370
+        if (empty($rule_type)) {        
1371 1371
             $rule_type = self::allow_vat_rules() ? 'digital' : 'physical';
1372 1372
         }
1373 1373
         
1374
-        return apply_filters( 'wpinv_item_get_vat_rule', $rule_type, $postID );
1374
+        return apply_filters('wpinv_item_get_vat_rule', $rule_type, $postID);
1375 1375
     }
1376 1376
     
1377
-    public static function item_rule_label( $postID ) {
1377
+    public static function item_rule_label($postID) {
1378 1378
         $vat_rules  = self::get_rules();
1379
-        $vat_rule   = self::get_item_rule( $postID );
1380
-        $vat_rule   = isset( $vat_rules[$vat_rule] ) ? $vat_rules[$vat_rule] : $vat_rule;
1379
+        $vat_rule   = self::get_item_rule($postID);
1380
+        $vat_rule   = isset($vat_rules[$vat_rule]) ? $vat_rules[$vat_rule] : $vat_rule;
1381 1381
         
1382
-        return apply_filters( 'wpinv_item_rule_label', $vat_rule, $postID );
1382
+        return apply_filters('wpinv_item_rule_label', $vat_rule, $postID);
1383 1383
     }
1384 1384
     
1385
-    public static function item_has_digital_rule( $item_id = 0 ) {        
1386
-        return self::get_item_rule( $item_id ) == 'digital' ? true : false;
1385
+    public static function item_has_digital_rule($item_id = 0) {        
1386
+        return self::get_item_rule($item_id) == 'digital' ? true : false;
1387 1387
     }
1388 1388
     
1389
-    public static function invoice_has_digital_rule( $invoice = 0 ) {        
1390
-        if ( !self::allow_vat_rules() ) {
1389
+    public static function invoice_has_digital_rule($invoice = 0) {        
1390
+        if (!self::allow_vat_rules()) {
1391 1391
             return false;
1392 1392
         }
1393 1393
         
1394
-        if ( empty( $invoice ) ) {
1394
+        if (empty($invoice)) {
1395 1395
             return true;
1396 1396
         }
1397 1397
         
1398
-        if ( is_int( $invoice ) ) {
1399
-            $invoice = new WPInv_Invoice( $invoice );
1398
+        if (is_int($invoice)) {
1399
+            $invoice = new WPInv_Invoice($invoice);
1400 1400
         }
1401 1401
         
1402
-        if ( !( is_object( $invoice ) && is_a( $invoice, 'WPInv_Invoice' ) ) ) {
1402
+        if (!(is_object($invoice) && is_a($invoice, 'WPInv_Invoice'))) {
1403 1403
             return true;
1404 1404
         }
1405 1405
         
1406
-        $cart_items  = $invoice->get_cart_details();
1406
+        $cart_items = $invoice->get_cart_details();
1407 1407
         
1408
-        if ( !empty( $cart_items ) ) {
1408
+        if (!empty($cart_items)) {
1409 1409
             $has_digital_rule = false;
1410 1410
             
1411
-            foreach ( $cart_items as $key => $item ) {
1412
-                if ( self::item_has_digital_rule( $item['id'] ) ) {
1411
+            foreach ($cart_items as $key => $item) {
1412
+                if (self::item_has_digital_rule($item['id'])) {
1413 1413
                     $has_digital_rule = true;
1414 1414
                     break;
1415 1415
                 }
@@ -1421,67 +1421,67 @@  discard block
 block discarded – undo
1421 1421
         return $has_digital_rule;
1422 1422
     }
1423 1423
     
1424
-    public static function item_is_taxable( $item_id = 0, $country = false, $state = false ) {        
1425
-        if ( !wpinv_use_taxes() ) {
1424
+    public static function item_is_taxable($item_id = 0, $country = false, $state = false) {        
1425
+        if (!wpinv_use_taxes()) {
1426 1426
             return false;
1427 1427
         }
1428 1428
         
1429 1429
         $is_taxable = true;
1430 1430
 
1431
-        if ( !empty( $item_id ) && self::get_item_class( $item_id ) == '_exempt' ) {
1431
+        if (!empty($item_id) && self::get_item_class($item_id) == '_exempt') {
1432 1432
             $is_taxable = false;
1433 1433
         }
1434 1434
         
1435
-        return apply_filters( 'wpinv_item_is_taxable', $is_taxable, $item_id, $country , $state );
1435
+        return apply_filters('wpinv_item_is_taxable', $is_taxable, $item_id, $country, $state);
1436 1436
     }
1437 1437
     
1438
-    public static function find_rate( $country, $state, $rate, $class ) {
1438
+    public static function find_rate($country, $state, $rate, $class) {
1439 1439
         global $wpi_zero_tax;
1440 1440
 
1441
-        if ( $class === '_exempt' || $wpi_zero_tax ) {
1441
+        if ($class === '_exempt' || $wpi_zero_tax) {
1442 1442
             return 0;
1443 1443
         }
1444 1444
 
1445
-        $tax_rates   = wpinv_get_tax_rates();
1445
+        $tax_rates = wpinv_get_tax_rates();
1446 1446
         
1447
-        if ( $class !== '_standard' ) {
1448
-            $class_rates = self::get_vat_rates( $class );
1447
+        if ($class !== '_standard') {
1448
+            $class_rates = self::get_vat_rates($class);
1449 1449
             
1450
-            if ( is_array( $class_rates ) ) {
1450
+            if (is_array($class_rates)) {
1451 1451
                 $indexed_class_rates = array();
1452 1452
                 
1453
-                foreach ( $class_rates as $key => $cr ) {
1453
+                foreach ($class_rates as $key => $cr) {
1454 1454
                     $indexed_class_rates[$cr['country']] = $cr;
1455 1455
                 }
1456 1456
 
1457
-                $tax_rates = array_map( function( $tr ) use( $indexed_class_rates ) {
1457
+                $tax_rates = array_map(function($tr) use($indexed_class_rates) {
1458 1458
                     $tr_country = $tr['country'];
1459
-                    if ( !isset( $indexed_class_rates[$tr_country] ) ) {
1459
+                    if (!isset($indexed_class_rates[$tr_country])) {
1460 1460
                         return $tr;
1461 1461
                     }
1462 1462
                     $icr = $indexed_class_rates[$tr_country];
1463
-                    return ( empty( $icr['rate'] ) && $icr['rate'] !== '0' ) ? $tr : $icr;
1463
+                    return (empty($icr['rate']) && $icr['rate'] !== '0') ? $tr : $icr;
1464 1464
 
1465
-                }, $tax_rates, $class_rates );
1465
+                }, $tax_rates, $class_rates);
1466 1466
             }
1467 1467
         }
1468 1468
 
1469
-        if ( !empty( $tax_rates ) ) {
1470
-            foreach ( $tax_rates as $key => $tax_rate ) {
1471
-                if ( $country != $tax_rate['country'] )
1469
+        if (!empty($tax_rates)) {
1470
+            foreach ($tax_rates as $key => $tax_rate) {
1471
+                if ($country != $tax_rate['country'])
1472 1472
                     continue;
1473 1473
 
1474
-                if ( !empty( $tax_rate['global'] ) ) {
1475
-                    if ( 0 !== $tax_rate['rate'] || !empty( $tax_rate['rate'] ) ) {
1476
-                        $rate = number_format( $tax_rate['rate'], 4 );
1474
+                if (!empty($tax_rate['global'])) {
1475
+                    if (0 !== $tax_rate['rate'] || !empty($tax_rate['rate'])) {
1476
+                        $rate = number_format($tax_rate['rate'], 4);
1477 1477
                     }
1478 1478
                 } else {
1479
-                    if ( empty( $tax_rate['state'] ) || strtolower( $state ) != strtolower( $tax_rate['state'] ) )
1479
+                    if (empty($tax_rate['state']) || strtolower($state) != strtolower($tax_rate['state']))
1480 1480
                         continue;
1481 1481
 
1482 1482
                     $state_rate = $tax_rate['rate'];
1483
-                    if ( 0 !== $state_rate || !empty( $state_rate ) ) {
1484
-                        $rate = number_format( $state_rate, 4 );
1483
+                    if (0 !== $state_rate || !empty($state_rate)) {
1484
+                        $rate = number_format($state_rate, 4);
1485 1485
                     }
1486 1486
                 }
1487 1487
             }
@@ -1490,84 +1490,84 @@  discard block
 block discarded – undo
1490 1490
         return $rate;
1491 1491
     }
1492 1492
     
1493
-    public static function get_rate( $rate = 1, $country = '', $state = '', $item_id = 0 ) {
1493
+    public static function get_rate($rate = 1, $country = '', $state = '', $item_id = 0) {
1494 1494
         global $wpinv_options, $wpi_session, $wpi_item_id, $wpi_zero_tax;
1495 1495
         
1496 1496
         $item_id = $item_id > 0 ? $item_id : $wpi_item_id;
1497 1497
         $allow_vat_classes = self::allow_vat_classes();
1498
-        $class = $item_id ? self::get_item_class( $item_id ) : '_standard';
1498
+        $class = $item_id ? self::get_item_class($item_id) : '_standard';
1499 1499
 
1500
-        if ( $class === '_exempt' || $wpi_zero_tax ) {
1500
+        if ($class === '_exempt' || $wpi_zero_tax) {
1501 1501
             return 0;
1502
-        } else if ( !$allow_vat_classes ) {
1502
+        } else if (!$allow_vat_classes) {
1503 1503
             $class = '_standard';
1504 1504
         }
1505 1505
 
1506
-        if( !empty( $_POST['wpinv_country'] ) ) {
1506
+        if (!empty($_POST['wpinv_country'])) {
1507 1507
             $post_country = $_POST['wpinv_country'];
1508
-        } elseif( !empty( $_POST['wpinv_country'] ) ) {
1508
+        } elseif (!empty($_POST['wpinv_country'])) {
1509 1509
             $post_country = $_POST['wpinv_country'];
1510
-        } elseif( !empty( $_POST['country'] ) ) {
1510
+        } elseif (!empty($_POST['country'])) {
1511 1511
             $post_country = $_POST['country'];
1512 1512
         } else {
1513 1513
             $post_country = '';
1514 1514
         }
1515 1515
 
1516
-        $country        = !empty( $post_country ) ? $post_country : wpinv_default_billing_country( $country );
1517
-        $base_country   = wpinv_is_base_country( $country );
1516
+        $country        = !empty($post_country) ? $post_country : wpinv_default_billing_country($country);
1517
+        $base_country   = wpinv_is_base_country($country);
1518 1518
         
1519
-        $requires_vat   = self::requires_vat( 0, false );
1520
-        $is_digital     = self::get_item_rule( $item_id ) == 'digital' ;
1521
-        $rate           = $requires_vat && isset( $wpinv_options['eu_fallback_rate'] ) ? $wpinv_options['eu_fallback_rate'] : $rate;
1519
+        $requires_vat   = self::requires_vat(0, false);
1520
+        $is_digital     = self::get_item_rule($item_id) == 'digital';
1521
+        $rate           = $requires_vat && isset($wpinv_options['eu_fallback_rate']) ? $wpinv_options['eu_fallback_rate'] : $rate;
1522 1522
           
1523
-        if ( self::same_country_rule() == 'no' && $base_country ) { // Disable VAT to same country
1523
+        if (self::same_country_rule() == 'no' && $base_country) { // Disable VAT to same country
1524 1524
             $rate = 0;
1525
-        } else if ( $requires_vat ) {
1526
-            $vat_number = self::get_user_vat_number( '', 0, true );
1525
+        } else if ($requires_vat) {
1526
+            $vat_number = self::get_user_vat_number('', 0, true);
1527 1527
             $vat_info   = self::current_vat_data();
1528 1528
             
1529
-            if ( is_array( $vat_info ) ) {
1530
-                $vat_number = isset( $vat_info['number'] ) && !empty( $vat_info['valid'] ) ? $vat_info['number'] : "";
1529
+            if (is_array($vat_info)) {
1530
+                $vat_number = isset($vat_info['number']) && !empty($vat_info['valid']) ? $vat_info['number'] : "";
1531 1531
             }
1532 1532
             
1533
-            if ( $country == 'UK' ) {
1533
+            if ($country == 'UK') {
1534 1534
                 $country = 'GB';
1535 1535
             }
1536 1536
 
1537
-            if ( !empty( $vat_number ) ) {
1537
+            if (!empty($vat_number)) {
1538 1538
                 $rate = 0;
1539 1539
             } else {
1540
-                $rate = self::find_rate( $country, $state, $rate, $class ); // Fix if there are no tax rated and you try to pay an invoice it does not add the fallback tax rate
1540
+                $rate = self::find_rate($country, $state, $rate, $class); // Fix if there are no tax rated and you try to pay an invoice it does not add the fallback tax rate
1541 1541
             }
1542 1542
 
1543
-            if ( empty( $vat_number ) && !$is_digital ) {
1544
-                if ( $base_country ) {
1545
-                    $rate = self::find_rate( $country, null, $rate, $class );
1543
+            if (empty($vat_number) && !$is_digital) {
1544
+                if ($base_country) {
1545
+                    $rate = self::find_rate($country, null, $rate, $class);
1546 1546
                 } else {
1547
-                    if ( empty( $country ) && isset( $wpinv_options['eu_fallback_rate'] ) ) {
1547
+                    if (empty($country) && isset($wpinv_options['eu_fallback_rate'])) {
1548 1548
                         $rate = $wpinv_options['eu_fallback_rate'];
1549
-                    } else if( !empty( $country ) ) {
1550
-                        $rate = self::find_rate( $country, $state, $rate, $class );
1549
+                    } else if (!empty($country)) {
1550
+                        $rate = self::find_rate($country, $state, $rate, $class);
1551 1551
                     }
1552 1552
                 }
1553
-            } else if ( empty( $vat_number ) || ( self::same_country_rule() == 'always' && $base_country ) ) {
1554
-                if ( empty( $country ) && isset( $wpinv_options['eu_fallback_rate'] ) ) {
1553
+            } else if (empty($vat_number) || (self::same_country_rule() == 'always' && $base_country)) {
1554
+                if (empty($country) && isset($wpinv_options['eu_fallback_rate'])) {
1555 1555
                     $rate = $wpinv_options['eu_fallback_rate'];
1556
-                } else if( !empty( $country ) ) {
1557
-                    $rate = self::find_rate( $country, $state, $rate, $class );
1556
+                } else if (!empty($country)) {
1557
+                    $rate = self::find_rate($country, $state, $rate, $class);
1558 1558
                 }
1559 1559
             }
1560 1560
         } else {
1561
-            if ( $is_digital ) {
1561
+            if ($is_digital) {
1562 1562
                 $ip_country_code = self::get_country_by_ip();
1563 1563
                 
1564
-                if ( $ip_country_code && self::is_eu_state( $ip_country_code ) ) {
1565
-                    $rate = self::find_rate( $ip_country_code, '', 0, $class );
1564
+                if ($ip_country_code && self::is_eu_state($ip_country_code)) {
1565
+                    $rate = self::find_rate($ip_country_code, '', 0, $class);
1566 1566
                 } else {
1567
-                    $rate = self::find_rate( $country, $state, $rate, $class );
1567
+                    $rate = self::find_rate($country, $state, $rate, $class);
1568 1568
                 }
1569 1569
             } else {
1570
-                $rate = self::find_rate( $country, $state, $rate, $class );
1570
+                $rate = self::find_rate($country, $state, $rate, $class);
1571 1571
             }
1572 1572
         }
1573 1573
 
@@ -1577,48 +1577,48 @@  discard block
 block discarded – undo
1577 1577
     public static function current_vat_data() {
1578 1578
         global $wpi_session;
1579 1579
         
1580
-        return $wpi_session->get( 'user_vat_data' );
1580
+        return $wpi_session->get('user_vat_data');
1581 1581
     }
1582 1582
     
1583
-    public static function get_user_country( $country = '', $user_id = 0 ) {
1584
-        $user_address = wpinv_get_user_address( $user_id, false );
1583
+    public static function get_user_country($country = '', $user_id = 0) {
1584
+        $user_address = wpinv_get_user_address($user_id, false);
1585 1585
         
1586
-        if ( wpinv_get_option( 'vat_ip_country_default' ) ) {
1586
+        if (wpinv_get_option('vat_ip_country_default')) {
1587 1587
             $country = '';
1588 1588
         }
1589 1589
         
1590
-        $country    = empty( $user_address ) || !isset( $user_address['country'] ) || empty( $user_address['country'] ) ? $country : $user_address['country'];
1591
-        $result     = apply_filters( 'wpinv_get_user_country', $country, $user_id );
1590
+        $country    = empty($user_address) || !isset($user_address['country']) || empty($user_address['country']) ? $country : $user_address['country'];
1591
+        $result     = apply_filters('wpinv_get_user_country', $country, $user_id);
1592 1592
 
1593
-        if ( empty( $result ) ) {
1593
+        if (empty($result)) {
1594 1594
             $result = self::get_country_by_ip();
1595 1595
         }
1596 1596
 
1597 1597
         return $result;
1598 1598
     }
1599 1599
     
1600
-    public static function set_user_country( $country = '', $user_id = 0 ) {
1600
+    public static function set_user_country($country = '', $user_id = 0) {
1601 1601
         global $wpi_userID;
1602 1602
         
1603
-        if ( empty($country) && !empty($wpi_userID) && get_current_user_id() != $wpi_userID ) {
1603
+        if (empty($country) && !empty($wpi_userID) && get_current_user_id() != $wpi_userID) {
1604 1604
             $country = wpinv_get_default_country();
1605 1605
         }
1606 1606
         
1607 1607
         return $country;
1608 1608
     }
1609 1609
     
1610
-    public static function get_user_vat_number( $vat_number = '', $user_id = 0, $is_valid = false ) {
1610
+    public static function get_user_vat_number($vat_number = '', $user_id = 0, $is_valid = false) {
1611 1611
         global $wpi_current_id, $wpi_userID;
1612 1612
         
1613
-        if ( !empty( $_POST['new_user'] ) ) {
1613
+        if (!empty($_POST['new_user'])) {
1614 1614
             return '';
1615 1615
         }
1616 1616
         
1617
-        if ( empty( $user_id ) ) {
1618
-            $user_id = !empty( $wpi_userID ) ? $wpi_userID : ( $wpi_current_id ? wpinv_get_user_id( $wpi_current_id ) : get_current_user_id() );
1617
+        if (empty($user_id)) {
1618
+            $user_id = !empty($wpi_userID) ? $wpi_userID : ($wpi_current_id ? wpinv_get_user_id($wpi_current_id) : get_current_user_id());
1619 1619
         }
1620 1620
 
1621
-        $vat_number = empty( $user_id ) ? '' : get_user_meta( $user_id, '_wpinv_vat_number', true );
1621
+        $vat_number = empty($user_id) ? '' : get_user_meta($user_id, '_wpinv_vat_number', true);
1622 1622
         
1623 1623
         /* TODO
1624 1624
         if ( $is_valid && $vat_number ) {
@@ -1629,38 +1629,38 @@  discard block
 block discarded – undo
1629 1629
         }
1630 1630
         */
1631 1631
 
1632
-        return apply_filters('wpinv_get_user_vat_number', $vat_number, $user_id, $is_valid );
1632
+        return apply_filters('wpinv_get_user_vat_number', $vat_number, $user_id, $is_valid);
1633 1633
     }
1634 1634
     
1635
-    public static function get_user_company( $company = '', $user_id = 0 ) {
1635
+    public static function get_user_company($company = '', $user_id = 0) {
1636 1636
         global $wpi_current_id, $wpi_userID;
1637 1637
         
1638
-        if ( empty( $user_id ) ) {
1639
-            $user_id = !empty( $wpi_userID ) ? $wpi_userID : ( $wpi_current_id ? wpinv_get_user_id( $wpi_current_id ) : get_current_user_id() );
1638
+        if (empty($user_id)) {
1639
+            $user_id = !empty($wpi_userID) ? $wpi_userID : ($wpi_current_id ? wpinv_get_user_id($wpi_current_id) : get_current_user_id());
1640 1640
         }
1641 1641
 
1642
-        $company = empty( $user_id ) ? "" : get_user_meta( $user_id, '_wpinv_company', true );
1642
+        $company = empty($user_id) ? "" : get_user_meta($user_id, '_wpinv_company', true);
1643 1643
 
1644
-        return apply_filters( 'wpinv_user_company', $company, $user_id );
1644
+        return apply_filters('wpinv_user_company', $company, $user_id);
1645 1645
     }
1646 1646
     
1647
-    public static function save_user_vat_details( $company = '', $vat_number = '' ) {
1648
-        $save = apply_filters( 'wpinv_allow_save_user_vat_details', true );
1647
+    public static function save_user_vat_details($company = '', $vat_number = '') {
1648
+        $save = apply_filters('wpinv_allow_save_user_vat_details', true);
1649 1649
 
1650
-        if ( is_user_logged_in() && $save ) {
1650
+        if (is_user_logged_in() && $save) {
1651 1651
             $user_id = get_current_user_id();
1652 1652
 
1653
-            if ( !empty( $vat_number ) ) {
1654
-                update_user_meta( $user_id, '_wpinv_vat_number', $vat_number );
1653
+            if (!empty($vat_number)) {
1654
+                update_user_meta($user_id, '_wpinv_vat_number', $vat_number);
1655 1655
             } else {
1656
-                delete_user_meta( $user_id, '_wpinv_vat_number');
1656
+                delete_user_meta($user_id, '_wpinv_vat_number');
1657 1657
             }
1658 1658
 
1659
-            if ( !empty( $company ) ) {
1660
-                update_user_meta( $user_id, '_wpinv_company', $company );
1659
+            if (!empty($company)) {
1660
+                update_user_meta($user_id, '_wpinv_company', $company);
1661 1661
             } else {
1662
-                delete_user_meta( $user_id, '_wpinv_company');
1663
-                delete_user_meta( $user_id, '_wpinv_vat_number');
1662
+                delete_user_meta($user_id, '_wpinv_company');
1663
+                delete_user_meta($user_id, '_wpinv_vat_number');
1664 1664
             }
1665 1665
         }
1666 1666
 
@@ -1670,113 +1670,113 @@  discard block
 block discarded – undo
1670 1670
     public static function ajax_vat_validate() {
1671 1671
         global $wpinv_options, $wpi_session;
1672 1672
         
1673
-        $is_checkout            = ( !empty( $_POST['source'] ) && $_POST['source'] == 'checkout' ) ? true : false;
1673
+        $is_checkout            = (!empty($_POST['source']) && $_POST['source'] == 'checkout') ? true : false;
1674 1674
         $response               = array();
1675 1675
         $response['success']    = false;
1676 1676
         
1677
-        if ( empty( $_REQUEST['_wpi_nonce'] ) || ( !empty( $_REQUEST['_wpi_nonce'] ) && !wp_verify_nonce( $_REQUEST['_wpi_nonce'], 'vat_validation' ) ) ) {
1678
-            $response['error'] = __( 'Invalid security nonce', 'invoicing' );
1679
-            wp_send_json( $response );
1677
+        if (empty($_REQUEST['_wpi_nonce']) || (!empty($_REQUEST['_wpi_nonce']) && !wp_verify_nonce($_REQUEST['_wpi_nonce'], 'vat_validation'))) {
1678
+            $response['error'] = __('Invalid security nonce', 'invoicing');
1679
+            wp_send_json($response);
1680 1680
         }
1681 1681
         
1682
-        $vat_name   = self::get_vat_name();
1682
+        $vat_name = self::get_vat_name();
1683 1683
         
1684
-        if ( $is_checkout ) {
1684
+        if ($is_checkout) {
1685 1685
             $invoice = wpinv_get_invoice_cart();
1686 1686
             
1687
-            if ( !self::requires_vat( false, 0, self::invoice_has_digital_rule( $invoice ) ) ) {
1687
+            if (!self::requires_vat(false, 0, self::invoice_has_digital_rule($invoice))) {
1688 1688
                 $vat_info = array();
1689
-                $wpi_session->set( 'user_vat_data', $vat_info );
1689
+                $wpi_session->set('user_vat_data', $vat_info);
1690 1690
 
1691 1691
                 self::save_user_vat_details();
1692 1692
                 
1693 1693
                 $response['success'] = true;
1694
-                $response['message'] = wp_sprintf( __( 'Ignore %s', 'invoicing' ), $vat_name );
1695
-                wp_send_json( $response );
1694
+                $response['message'] = wp_sprintf(__('Ignore %s', 'invoicing'), $vat_name);
1695
+                wp_send_json($response);
1696 1696
             }
1697 1697
         }
1698 1698
         
1699
-        $company    = !empty( $_POST['company'] ) ? sanitize_text_field( $_POST['company'] ) : '';
1700
-        $vat_number = !empty( $_POST['number'] ) ? sanitize_text_field( $_POST['number'] ) : '';
1699
+        $company    = !empty($_POST['company']) ? sanitize_text_field($_POST['company']) : '';
1700
+        $vat_number = !empty($_POST['number']) ? sanitize_text_field($_POST['number']) : '';
1701 1701
         
1702
-        $vat_info = $wpi_session->get( 'user_vat_data' );
1703
-        if ( !is_array( $vat_info ) || empty( $vat_info ) ) {
1704
-            $vat_info = array( 'company'=> $company, 'number' => '', 'valid' => true );
1702
+        $vat_info = $wpi_session->get('user_vat_data');
1703
+        if (!is_array($vat_info) || empty($vat_info)) {
1704
+            $vat_info = array('company'=> $company, 'number' => '', 'valid' => true);
1705 1705
         }
1706 1706
         
1707
-        if ( empty( $vat_number ) ) {
1708
-            if ( $is_checkout ) {
1707
+        if (empty($vat_number)) {
1708
+            if ($is_checkout) {
1709 1709
                 $response['success'] = true;
1710
-                $response['message'] = wp_sprintf( __( 'No %s number has been applied. %s will be added to invoice totals', 'invoicing' ), $vat_name, $vat_name );
1710
+                $response['message'] = wp_sprintf(__('No %s number has been applied. %s will be added to invoice totals', 'invoicing'), $vat_name, $vat_name);
1711 1711
                 
1712
-                $vat_info = $wpi_session->get( 'user_vat_data' );
1712
+                $vat_info = $wpi_session->get('user_vat_data');
1713 1713
                 $vat_info['number'] = "";
1714 1714
                 $vat_info['valid'] = true;
1715 1715
                 
1716
-                self::save_user_vat_details( $company );
1716
+                self::save_user_vat_details($company);
1717 1717
             } else {
1718
-                $response['error'] = wp_sprintf( __( 'Please enter your %s number!', 'invoicing' ), $vat_name );
1718
+                $response['error'] = wp_sprintf(__('Please enter your %s number!', 'invoicing'), $vat_name);
1719 1719
                 
1720 1720
                 $vat_info['valid'] = false;
1721 1721
             }
1722 1722
 
1723
-            $wpi_session->set( 'user_vat_data', $vat_info );
1724
-            wp_send_json( $response );
1723
+            $wpi_session->set('user_vat_data', $vat_info);
1724
+            wp_send_json($response);
1725 1725
         }
1726 1726
         
1727
-        if ( empty( $company ) ) {
1727
+        if (empty($company)) {
1728 1728
             $vat_info['valid'] = false;
1729
-            $wpi_session->set( 'user_vat_data', $vat_info );
1729
+            $wpi_session->set('user_vat_data', $vat_info);
1730 1730
             
1731
-            $response['error'] = __( 'Please enter your registered company name!', 'invoicing' );
1732
-            wp_send_json( $response );
1731
+            $response['error'] = __('Please enter your registered company name!', 'invoicing');
1732
+            wp_send_json($response);
1733 1733
         }
1734 1734
         
1735
-        if ( !empty( $wpinv_options['vat_vies_check'] ) ) {
1736
-            if ( empty( $wpinv_options['vat_offline_check'] ) && !self::offline_check( $vat_number ) ) {
1735
+        if (!empty($wpinv_options['vat_vies_check'])) {
1736
+            if (empty($wpinv_options['vat_offline_check']) && !self::offline_check($vat_number)) {
1737 1737
                 $vat_info['valid'] = false;
1738
-                $wpi_session->set( 'user_vat_data', $vat_info );
1738
+                $wpi_session->set('user_vat_data', $vat_info);
1739 1739
                 
1740
-                $response['error'] = wp_sprintf( __( '%s number not validated', 'invoicing' ), $vat_name );
1741
-                wp_send_json( $response );
1740
+                $response['error'] = wp_sprintf(__('%s number not validated', 'invoicing'), $vat_name);
1741
+                wp_send_json($response);
1742 1742
             }
1743 1743
             
1744 1744
             $response['success'] = true;
1745
-            $response['message'] = wp_sprintf( __( '%s number validated', 'invoicing' ), $vat_name );
1745
+            $response['message'] = wp_sprintf(__('%s number validated', 'invoicing'), $vat_name);
1746 1746
         } else {
1747
-            $result = self::check_vat( $vat_number );
1747
+            $result = self::check_vat($vat_number);
1748 1748
             
1749
-            if ( empty( $result['valid'] ) ) {
1749
+            if (empty($result['valid'])) {
1750 1750
                 $response['error'] = $result['message'];
1751
-                wp_send_json( $response );
1751
+                wp_send_json($response);
1752 1752
             }
1753 1753
             
1754
-            $vies_company = !empty( $result['company'] ) ? $result['company'] : '';
1755
-            $vies_company = apply_filters( 'wpinv_vies_company_name', $vies_company );
1754
+            $vies_company = !empty($result['company']) ? $result['company'] : '';
1755
+            $vies_company = apply_filters('wpinv_vies_company_name', $vies_company);
1756 1756
             
1757
-            $valid_company = $vies_company && $company && ( $vies_company == '---' || strcasecmp( trim( $vies_company ), trim( $company ) ) == 0 ) ? true : false;
1757
+            $valid_company = $vies_company && $company && ($vies_company == '---' || strcasecmp(trim($vies_company), trim($company)) == 0) ? true : false;
1758 1758
 
1759
-            if ( !empty( $wpinv_options['vat_disable_company_name_check'] ) || $valid_company ) {
1759
+            if (!empty($wpinv_options['vat_disable_company_name_check']) || $valid_company) {
1760 1760
                 $response['success'] = true;
1761
-                $response['message'] = wp_sprintf( __( '%s number validated', 'invoicing' ), $vat_name );
1761
+                $response['message'] = wp_sprintf(__('%s number validated', 'invoicing'), $vat_name);
1762 1762
             } else {           
1763 1763
                 $vat_info['valid'] = false;
1764
-                $wpi_session->set( 'user_vat_data', $vat_info );
1764
+                $wpi_session->set('user_vat_data', $vat_info);
1765 1765
                 
1766 1766
                 $response['success'] = false;
1767
-                $response['message'] = wp_sprintf( __( 'The company name associated with the %s number provided is not the same as the company name provided.', 'invoicing' ), $vat_name );
1768
-                wp_send_json( $response );
1767
+                $response['message'] = wp_sprintf(__('The company name associated with the %s number provided is not the same as the company name provided.', 'invoicing'), $vat_name);
1768
+                wp_send_json($response);
1769 1769
             }
1770 1770
         }
1771 1771
         
1772
-        if ( $is_checkout ) {
1773
-            self::save_user_vat_details( $company, $vat_number );
1772
+        if ($is_checkout) {
1773
+            self::save_user_vat_details($company, $vat_number);
1774 1774
 
1775
-            $vat_info = array('company' => $company, 'number' => $vat_number, 'valid' => true );
1776
-            $wpi_session->set( 'user_vat_data', $vat_info );
1775
+            $vat_info = array('company' => $company, 'number' => $vat_number, 'valid' => true);
1776
+            $wpi_session->set('user_vat_data', $vat_info);
1777 1777
         }
1778 1778
 
1779
-        wp_send_json( $response );
1779
+        wp_send_json($response);
1780 1780
     }
1781 1781
     
1782 1782
     public static function ajax_vat_reset() {
@@ -1785,161 +1785,161 @@  discard block
 block discarded – undo
1785 1785
         $company    = is_user_logged_in() ? self::get_user_company() : '';
1786 1786
         $vat_number = self::get_user_vat_number();
1787 1787
         
1788
-        $vat_info   = array('company' => $company, 'number' => $vat_number, 'valid' => false );
1789
-        $wpi_session->set( 'user_vat_data', $vat_info );
1788
+        $vat_info   = array('company' => $company, 'number' => $vat_number, 'valid' => false);
1789
+        $wpi_session->set('user_vat_data', $vat_info);
1790 1790
         
1791 1791
         $response                       = array();
1792 1792
         $response['success']            = true;
1793 1793
         $response['data']['company']    = $company;
1794 1794
         $response['data']['number']     = $vat_number;
1795 1795
         
1796
-        wp_send_json( $response );
1796
+        wp_send_json($response);
1797 1797
     }
1798 1798
     
1799
-    public static function checkout_vat_validate( $valid_data, $post ) {
1799
+    public static function checkout_vat_validate($valid_data, $post) {
1800 1800
         global $wpinv_options, $wpi_session;
1801 1801
         
1802
-        $vat_name  = __( self::get_vat_name(), 'invoicing' );
1802
+        $vat_name = __(self::get_vat_name(), 'invoicing');
1803 1803
         
1804
-        if ( !isset( $_POST['_wpi_nonce'] ) || !wp_verify_nonce( $_POST['_wpi_nonce'], 'vat_validation' ) ) {
1805
-            wpinv_set_error( 'vat_validation', wp_sprintf( __( "Invalid %s validation request.", 'invoicing' ), $vat_name ) );
1804
+        if (!isset($_POST['_wpi_nonce']) || !wp_verify_nonce($_POST['_wpi_nonce'], 'vat_validation')) {
1805
+            wpinv_set_error('vat_validation', wp_sprintf(__("Invalid %s validation request.", 'invoicing'), $vat_name));
1806 1806
             return;
1807 1807
         }
1808 1808
         
1809
-        $vat_saved = $wpi_session->get( 'user_vat_data' );
1810
-        $wpi_session->set( 'user_vat_data', null );
1809
+        $vat_saved = $wpi_session->get('user_vat_data');
1810
+        $wpi_session->set('user_vat_data', null);
1811 1811
         
1812 1812
         $invoice        = wpinv_get_invoice_cart();
1813 1813
         $amount         = $invoice->get_total();
1814
-        $is_digital     = self::invoice_has_digital_rule( $invoice );
1815
-        $no_vat         = !self::requires_vat( 0, false, $is_digital );
1814
+        $is_digital     = self::invoice_has_digital_rule($invoice);
1815
+        $no_vat         = !self::requires_vat(0, false, $is_digital);
1816 1816
         
1817
-        $company        = !empty( $_POST['wpinv_company'] ) ? $_POST['wpinv_company'] : null;
1818
-        $vat_number     = !empty( $_POST['wpinv_vat_number'] ) ? $_POST['wpinv_vat_number'] : null;
1819
-        $country        = !empty( $_POST['wpinv_country'] ) ? $_POST['wpinv_country'] : $invoice->country;
1820
-        if ( empty( $country ) ) {
1817
+        $company        = !empty($_POST['wpinv_company']) ? $_POST['wpinv_company'] : null;
1818
+        $vat_number     = !empty($_POST['wpinv_vat_number']) ? $_POST['wpinv_vat_number'] : null;
1819
+        $country        = !empty($_POST['wpinv_country']) ? $_POST['wpinv_country'] : $invoice->country;
1820
+        if (empty($country)) {
1821 1821
             $country = wpinv_default_billing_country();
1822 1822
         }
1823 1823
         
1824
-        if ( !$is_digital && $no_vat ) {
1824
+        if (!$is_digital && $no_vat) {
1825 1825
             return;
1826 1826
         }
1827 1827
             
1828
-        $vat_data           = array( 'company' => '', 'number' => '', 'valid' => false );
1828
+        $vat_data           = array('company' => '', 'number' => '', 'valid' => false);
1829 1829
         
1830 1830
         $ip_country_code    = self::get_country_by_ip();
1831
-        $is_eu_state        = self::is_eu_state( $country );
1832
-        $is_eu_state_ip     = self::is_eu_state( $ip_country_code );
1831
+        $is_eu_state        = self::is_eu_state($country);
1832
+        $is_eu_state_ip     = self::is_eu_state($ip_country_code);
1833 1833
         $is_non_eu_user     = !$is_eu_state && !$is_eu_state_ip;
1834 1834
         
1835
-        if ( $is_digital && !$is_non_eu_user && empty( $vat_number ) && apply_filters( 'wpinv_checkout_requires_country', true, $amount ) ) {
1835
+        if ($is_digital && !$is_non_eu_user && empty($vat_number) && apply_filters('wpinv_checkout_requires_country', true, $amount)) {
1836 1836
             $vat_data['adddress_confirmed'] = false;
1837 1837
             
1838
-            if ( !isset( $_POST['wpinv_adddress_confirmed'] ) ) {
1839
-                if ( $ip_country_code != $country ) {
1840
-                    wpinv_set_error( 'vat_validation', sprintf( __( 'The country of your current location must be the same as the country of your billing location or you must %s confirm %s the billing address is your home country.', 'invoicing' ), '<a href="#wpinv_adddress_confirm">', '</a>' ) );
1838
+            if (!isset($_POST['wpinv_adddress_confirmed'])) {
1839
+                if ($ip_country_code != $country) {
1840
+                    wpinv_set_error('vat_validation', sprintf(__('The country of your current location must be the same as the country of your billing location or you must %s confirm %s the billing address is your home country.', 'invoicing'), '<a href="#wpinv_adddress_confirm">', '</a>'));
1841 1841
                 }
1842 1842
             } else {
1843 1843
                 $vat_data['adddress_confirmed'] = true;
1844 1844
             }
1845 1845
         }
1846 1846
         
1847
-        if ( !empty( $wpinv_options['vat_prevent_b2c_purchase'] ) && !$is_non_eu_user && ( empty( $vat_number ) || $no_vat ) ) {
1848
-            if ( $is_eu_state ) {
1849
-                wpinv_set_error( 'vat_validation', wp_sprintf( __( 'Please enter and validate your %s number to verify your purchase is by an EU business.', 'invoicing' ), $vat_name ) );
1850
-            } else if ( $is_digital && $is_eu_state_ip ) {
1851
-                wpinv_set_error( 'vat_validation', wp_sprintf( __( 'Sales to non-EU countries cannot be completed because %s must be applied.', 'invoicing' ), $vat_name ) );
1847
+        if (!empty($wpinv_options['vat_prevent_b2c_purchase']) && !$is_non_eu_user && (empty($vat_number) || $no_vat)) {
1848
+            if ($is_eu_state) {
1849
+                wpinv_set_error('vat_validation', wp_sprintf(__('Please enter and validate your %s number to verify your purchase is by an EU business.', 'invoicing'), $vat_name));
1850
+            } else if ($is_digital && $is_eu_state_ip) {
1851
+                wpinv_set_error('vat_validation', wp_sprintf(__('Sales to non-EU countries cannot be completed because %s must be applied.', 'invoicing'), $vat_name));
1852 1852
             }
1853 1853
         }
1854 1854
         
1855
-        if ( !$is_eu_state || $no_vat || empty( $vat_number ) ) {
1855
+        if (!$is_eu_state || $no_vat || empty($vat_number)) {
1856 1856
             return;
1857 1857
         }
1858 1858
 
1859
-        if ( !empty( $vat_saved ) && isset( $vat_saved['valid'] ) ) {
1860
-            $vat_data['valid']  = $vat_saved['valid'];
1859
+        if (!empty($vat_saved) && isset($vat_saved['valid'])) {
1860
+            $vat_data['valid'] = $vat_saved['valid'];
1861 1861
         }
1862 1862
             
1863
-        if ( $company !== null ) {
1863
+        if ($company !== null) {
1864 1864
             $vat_data['company'] = $company;
1865 1865
         }
1866 1866
 
1867 1867
         $message = '';
1868
-        if ( $vat_number !== null ) {
1868
+        if ($vat_number !== null) {
1869 1869
             $vat_data['number'] = $vat_number;
1870 1870
             
1871
-            if ( !$vat_data['valid'] || ( $vat_saved['number'] !== $vat_data['number'] ) || ( $vat_saved['company'] !== $vat_data['company'] ) ) {
1872
-                if ( !empty( $wpinv_options['vat_vies_check'] ) ) {            
1873
-                    if ( empty( $wpinv_options['vat_offline_check'] ) && !self::offline_check( $vat_number ) ) {
1871
+            if (!$vat_data['valid'] || ($vat_saved['number'] !== $vat_data['number']) || ($vat_saved['company'] !== $vat_data['company'])) {
1872
+                if (!empty($wpinv_options['vat_vies_check'])) {            
1873
+                    if (empty($wpinv_options['vat_offline_check']) && !self::offline_check($vat_number)) {
1874 1874
                         $vat_data['valid'] = false;
1875 1875
                     }
1876 1876
                 } else {
1877
-                    $result = self::check_vat( $vat_number );
1877
+                    $result = self::check_vat($vat_number);
1878 1878
                     
1879
-                    if ( !empty( $result['valid'] ) ) {                
1879
+                    if (!empty($result['valid'])) {                
1880 1880
                         $vat_data['valid'] = true;
1881
-                        $vies_company = !empty( $result['company'] ) ? $result['company'] : '';
1882
-                        $vies_company = apply_filters( 'wpinv_vies_company_name', $vies_company );
1881
+                        $vies_company = !empty($result['company']) ? $result['company'] : '';
1882
+                        $vies_company = apply_filters('wpinv_vies_company_name', $vies_company);
1883 1883
                     
1884
-                        $valid_company = $vies_company && $company && ( $vies_company == '---' || strcasecmp( trim( $vies_company ), trim( $company ) ) == 0 ) ? true : false;
1884
+                        $valid_company = $vies_company && $company && ($vies_company == '---' || strcasecmp(trim($vies_company), trim($company)) == 0) ? true : false;
1885 1885
 
1886
-                        if ( !( !empty( $wpinv_options['vat_disable_company_name_check'] ) || $valid_company ) ) {         
1886
+                        if (!(!empty($wpinv_options['vat_disable_company_name_check']) || $valid_company)) {         
1887 1887
                             $vat_data['valid'] = false;
1888 1888
                             
1889
-                            $message = wp_sprintf( __( 'The company name associated with the %s number provided is not the same as the company name provided.', 'invoicing' ), $vat_name );
1889
+                            $message = wp_sprintf(__('The company name associated with the %s number provided is not the same as the company name provided.', 'invoicing'), $vat_name);
1890 1890
                         }
1891 1891
                     } else {
1892
-                        $message = wp_sprintf( __( 'Fail to validate the %s number: EU Commission VAT server (VIES) check fails.', 'invoicing' ), $vat_name );
1892
+                        $message = wp_sprintf(__('Fail to validate the %s number: EU Commission VAT server (VIES) check fails.', 'invoicing'), $vat_name);
1893 1893
                     }
1894 1894
                 }
1895 1895
                 
1896
-                if ( !$vat_data['valid'] ) {
1897
-                    $error = wp_sprintf( __( 'The %s %s number %s you have entered has not been validated', 'invoicing' ), '<a href="#wpi-vat-details">', $vat_name, '</a>' ) . ( $message ? ' ( ' . $message . ' )' : '' );
1898
-                    wpinv_set_error( 'vat_validation', $error );
1896
+                if (!$vat_data['valid']) {
1897
+                    $error = wp_sprintf(__('The %s %s number %s you have entered has not been validated', 'invoicing'), '<a href="#wpi-vat-details">', $vat_name, '</a>') . ($message ? ' ( ' . $message . ' )' : '');
1898
+                    wpinv_set_error('vat_validation', $error);
1899 1899
                 }
1900 1900
             }
1901 1901
         }
1902 1902
 
1903
-        $wpi_session->set( 'user_vat_data', $vat_data );
1903
+        $wpi_session->set('user_vat_data', $vat_data);
1904 1904
     }
1905 1905
     
1906
-    public static function checkout_vat_fields( $billing_details ) {
1906
+    public static function checkout_vat_fields($billing_details) {
1907 1907
         global $wpi_session, $wpinv_options, $wpi_country, $wpi_requires_vat;
1908 1908
         
1909 1909
         $ip_address         = wpinv_get_ip();
1910 1910
         $ip_country_code    = self::get_country_by_ip();
1911 1911
         
1912
-        $tax_label          = __( self::get_vat_name(), 'invoicing' );
1912
+        $tax_label          = __(self::get_vat_name(), 'invoicing');
1913 1913
         $invoice            = wpinv_get_invoice_cart();
1914
-        $is_digital         = self::invoice_has_digital_rule( $invoice );
1914
+        $is_digital         = self::invoice_has_digital_rule($invoice);
1915 1915
         $wpi_country        = $invoice->country;
1916 1916
         
1917
-        $requires_vat       = !self::hide_vat_fields() && !$invoice->is_free() && self::requires_vat( 0, false, $is_digital );
1917
+        $requires_vat       = !self::hide_vat_fields() && !$invoice->is_free() && self::requires_vat(0, false, $is_digital);
1918 1918
         $wpi_requires_vat   = $requires_vat;
1919 1919
         
1920 1920
         $company            = self::get_user_company();
1921 1921
         $vat_number         = self::get_user_vat_number();
1922 1922
         
1923
-        $validated          = $vat_number ? self::get_user_vat_number( '', 0, true ) : 1;
1924
-        $vat_info           = $wpi_session->get( 'user_vat_data' );
1923
+        $validated          = $vat_number ? self::get_user_vat_number('', 0, true) : 1;
1924
+        $vat_info           = $wpi_session->get('user_vat_data');
1925 1925
 
1926
-        if ( is_array( $vat_info ) ) {
1927
-            $company    = isset( $vat_info['company'] ) ? $vat_info['company'] : '';
1928
-            $vat_number = isset( $vat_info['number'] ) ? $vat_info['number'] : '';
1929
-            $validated  = isset( $vat_info['valid'] ) ? $vat_info['valid'] : false;
1926
+        if (is_array($vat_info)) {
1927
+            $company    = isset($vat_info['company']) ? $vat_info['company'] : '';
1928
+            $vat_number = isset($vat_info['number']) ? $vat_info['number'] : '';
1929
+            $validated  = isset($vat_info['valid']) ? $vat_info['valid'] : false;
1930 1930
         }
1931 1931
         
1932 1932
         $selected_country = $invoice->country ? $invoice->country : wpinv_default_billing_country();
1933 1933
 
1934
-        if ( $ip_country_code == 'UK' ) {
1934
+        if ($ip_country_code == 'UK') {
1935 1935
             $ip_country_code = 'GB';
1936 1936
         }
1937 1937
         
1938
-        if ( $selected_country == 'UK' ) {
1938
+        if ($selected_country == 'UK') {
1939 1939
             $selected_country = 'GB';
1940 1940
         }
1941 1941
         
1942
-        if ( $requires_vat && ( self::same_country_rule() == 'no' && wpinv_is_base_country( $selected_country ) || !self::allow_vat_rules() ) ) {
1942
+        if ($requires_vat && (self::same_country_rule() == 'no' && wpinv_is_base_country($selected_country) || !self::allow_vat_rules())) {
1943 1943
             $requires_vat = false;
1944 1944
         }
1945 1945
 
@@ -1947,52 +1947,52 @@  discard block
 block discarded – undo
1947 1947
         $display_validate_btn   = 'none';
1948 1948
         $display_reset_btn      = 'none';
1949 1949
         
1950
-        if ( !empty( $vat_number ) && $validated ) {
1951
-            $vat_vailidated_text    = wp_sprintf( __( '%s number validated', 'invoicing' ), $tax_label );
1950
+        if (!empty($vat_number) && $validated) {
1951
+            $vat_vailidated_text    = wp_sprintf(__('%s number validated', 'invoicing'), $tax_label);
1952 1952
             $vat_vailidated_class   = 'wpinv-vat-stat-1';
1953 1953
             $display_reset_btn      = 'block';
1954 1954
         } else {
1955
-            $vat_vailidated_text    = empty( $vat_number ) ? '' : wp_sprintf( __( '%s number not validated', 'invoicing' ), $tax_label );
1956
-            $vat_vailidated_class   = empty( $vat_number ) ? '' : 'wpinv-vat-stat-0';
1955
+            $vat_vailidated_text    = empty($vat_number) ? '' : wp_sprintf(__('%s number not validated', 'invoicing'), $tax_label);
1956
+            $vat_vailidated_class   = empty($vat_number) ? '' : 'wpinv-vat-stat-0';
1957 1957
             $display_validate_btn   = 'block';
1958 1958
         }
1959 1959
         
1960
-        $show_ip_country        = $is_digital && ( empty( $vat_number ) || !$requires_vat ) && $ip_country_code != $selected_country ? 'block' : 'none';
1960
+        $show_ip_country = $is_digital && (empty($vat_number) || !$requires_vat) && $ip_country_code != $selected_country ? 'block' : 'none';
1961 1961
         ?>
1962 1962
         <div id="wpi-vat-details" class="wpi-vat-details clearfix" style="display:<?php echo $display_vat_details; ?>">
1963 1963
             <div id="wpi_vat_info" class="clearfix panel panel-default">
1964
-                <div class="panel-heading"><h3 class="panel-title"><?php echo wp_sprintf( __( '%s Details', 'invoicing' ), $tax_label );?></h3></div>
1964
+                <div class="panel-heading"><h3 class="panel-title"><?php echo wp_sprintf(__('%s Details', 'invoicing'), $tax_label); ?></h3></div>
1965 1965
                 <div id="wpinv-fields-box" class="panel-body">
1966 1966
                     <p id="wpi_show_vat_note">
1967
-                        <?php echo wp_sprintf( __( 'Validate your registered %s number to exclude tax.', 'invoicing' ), $tax_label ); ?>
1967
+                        <?php echo wp_sprintf(__('Validate your registered %s number to exclude tax.', 'invoicing'), $tax_label); ?>
1968 1968
                     </p>
1969 1969
                     <div id="wpi_vat_fields" class="wpi_vat_info">
1970 1970
                         <p class="wpi-cart-field wpi-col2 wpi-colf">
1971
-                            <label for="wpinv_company" class="wpi-label"><?php _e( 'Company Name', 'invoicing' );?></label>
1971
+                            <label for="wpinv_company" class="wpi-label"><?php _e('Company Name', 'invoicing'); ?></label>
1972 1972
                             <?php
1973
-                            echo wpinv_html_text( array(
1973
+                            echo wpinv_html_text(array(
1974 1974
                                     'id'            => 'wpinv_company',
1975 1975
                                     'name'          => 'wpinv_company',
1976 1976
                                     'value'         => $company,
1977 1977
                                     'class'         => 'wpi-input form-control',
1978
-                                    'placeholder'   => __( 'Company name', 'invoicing' ),
1979
-                                ) );
1978
+                                    'placeholder'   => __('Company name', 'invoicing'),
1979
+                                ));
1980 1980
                             ?>
1981 1981
                         </p>
1982 1982
                         <p class="wpi-cart-field wpi-col2 wpi-coll wpi-cart-field-vat">
1983
-                            <label for="wpinv_vat_number" class="wpi-label"><?php echo wp_sprintf( __( '%s Number', 'invoicing' ), $tax_label );?></label>
1983
+                            <label for="wpinv_vat_number" class="wpi-label"><?php echo wp_sprintf(__('%s Number', 'invoicing'), $tax_label); ?></label>
1984 1984
                             <span id="wpinv_vat_number-wrap">
1985 1985
                                 <label for="wpinv_vat_number" class="wpinv-label"></label>
1986
-                                <input type="text" class="wpi-input form-control" placeholder="<?php echo esc_attr( wp_sprintf( __( '%s number', 'invoicing' ), $tax_label ) );?>" value="<?php esc_attr_e( $vat_number );?>" id="wpinv_vat_number" name="wpinv_vat_number">
1987
-                                <span class="wpinv-vat-stat <?php echo $vat_vailidated_class;?>"><i class="fa"></i>&nbsp;<font><?php echo $vat_vailidated_text;?></font></span>
1986
+                                <input type="text" class="wpi-input form-control" placeholder="<?php echo esc_attr(wp_sprintf(__('%s number', 'invoicing'), $tax_label)); ?>" value="<?php esc_attr_e($vat_number); ?>" id="wpinv_vat_number" name="wpinv_vat_number">
1987
+                                <span class="wpinv-vat-stat <?php echo $vat_vailidated_class; ?>"><i class="fa"></i>&nbsp;<font><?php echo $vat_vailidated_text; ?></font></span>
1988 1988
                             </span>
1989 1989
                         </p>
1990 1990
                         <p class="wpi-cart-field wpi-col wpi-colf wpi-cart-field-actions">
1991
-                            <button class="btn btn-success btn-sm wpinv-vat-validate" type="button" id="wpinv_vat_validate" style="display:<?php echo $display_validate_btn; ?>"><?php echo wp_sprintf( __("Validate %s Number", 'invoicing'), $tax_label ); ?></button>
1992
-                            <button class="btn btn-danger btn-sm wpinv-vat-reset" type="button" id="wpinv_vat_reset" style="display:<?php echo $display_reset_btn; ?>"><?php echo wp_sprintf( __("Reset %s", 'invoicing'), $tax_label ); ?></button>
1991
+                            <button class="btn btn-success btn-sm wpinv-vat-validate" type="button" id="wpinv_vat_validate" style="display:<?php echo $display_validate_btn; ?>"><?php echo wp_sprintf(__("Validate %s Number", 'invoicing'), $tax_label); ?></button>
1992
+                            <button class="btn btn-danger btn-sm wpinv-vat-reset" type="button" id="wpinv_vat_reset" style="display:<?php echo $display_reset_btn; ?>"><?php echo wp_sprintf(__("Reset %s", 'invoicing'), $tax_label); ?></button>
1993 1993
                             <span class="wpi-vat-box wpi-vat-box-info"><span id="text"></span></span>
1994 1994
                             <span class="wpi-vat-box wpi-vat-box-error"><span id="text"></span></span>
1995
-                            <input type="hidden" name="_wpi_nonce" value="<?php echo wp_create_nonce( 'vat_validation' ) ?>" />
1995
+                            <input type="hidden" name="_wpi_nonce" value="<?php echo wp_create_nonce('vat_validation') ?>" />
1996 1996
                         </p>
1997 1997
                     </div>
1998 1998
                 </div>
@@ -2006,32 +2006,32 @@  discard block
 block discarded – undo
2006 2006
                 </span>
2007 2007
             </div>
2008 2008
         </div>
2009
-        <?php if ( empty( $wpinv_options['hide_ip_address'] ) ) { 
2010
-            $ip_link = '<a title="' . esc_attr( __( 'View more details on map', 'invoicing' ) ) . '" target="_blank" href="' . esc_url( admin_url( 'admin-ajax.php?action=wpinv_ip_geolocation&ip=' . $ip_address ) ) . '" class="wpi-ip-address-link">' . $ip_address . '&nbsp;&nbsp;<i class="fa fa-external-link-square" aria-hidden="true"></i></a>';
2009
+        <?php if (empty($wpinv_options['hide_ip_address'])) { 
2010
+            $ip_link = '<a title="' . esc_attr(__('View more details on map', 'invoicing')) . '" target="_blank" href="' . esc_url(admin_url('admin-ajax.php?action=wpinv_ip_geolocation&ip=' . $ip_address)) . '" class="wpi-ip-address-link">' . $ip_address . '&nbsp;&nbsp;<i class="fa fa-external-link-square" aria-hidden="true"></i></a>';
2011 2011
         ?>
2012 2012
         <div class="wpi-ip-info clearfix panel panel-info">
2013 2013
             <div id="wpinv-fields-box" class="panel-body">
2014
-                <span><?php echo wp_sprintf( __( "Your IP address is: %s", 'invoicing' ), $ip_link ); ?></span>
2014
+                <span><?php echo wp_sprintf(__("Your IP address is: %s", 'invoicing'), $ip_link); ?></span>
2015 2015
             </div>
2016 2016
         </div>
2017 2017
         <?php }
2018 2018
     }
2019 2019
     
2020
-    public static function show_vat_notice( $invoice ) {
2021
-        if ( empty( $invoice ) ) {
2020
+    public static function show_vat_notice($invoice) {
2021
+        if (empty($invoice)) {
2022 2022
             return NULL;
2023 2023
         }
2024 2024
         
2025
-        $label      = wpinv_get_option( 'vat_invoice_notice_label' );
2026
-        $notice     = wpinv_get_option( 'vat_invoice_notice' );
2027
-        if ( $label || $notice ) {
2025
+        $label      = wpinv_get_option('vat_invoice_notice_label');
2026
+        $notice     = wpinv_get_option('vat_invoice_notice');
2027
+        if ($label || $notice) {
2028 2028
         ?>
2029 2029
         <div class="row wpinv-vat-notice">
2030 2030
             <div class="col-sm-12">
2031
-                <?php if ( $label ) { ?>
2032
-                <strong><?php _e( $label, 'invoicing' ); ?></strong>
2033
-                <?php } if ( $notice ) { ?>
2034
-                <?php echo wpautop( wptexturize( __( $notice, 'invoicing' ) ) ) ?>
2031
+                <?php if ($label) { ?>
2032
+                <strong><?php _e($label, 'invoicing'); ?></strong>
2033
+                <?php } if ($notice) { ?>
2034
+                <?php echo wpautop(wptexturize(__($notice, 'invoicing'))) ?>
2035 2035
                 <?php } ?>
2036 2036
             </div>
2037 2037
         </div>
Please login to merge, or discard this patch.
Braces   +10 added lines, -6 removed lines patch added patch discarded remove patch
@@ -1,6 +1,8 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 // Exit if accessed directly.
3
-if (!defined( 'ABSPATH' ) ) exit;
3
+if (!defined( 'ABSPATH' ) ) {
4
+    exit;
5
+}
4 6
 
5 7
 class WPInv_EUVat {
6 8
     private static $is_ajax = false;
@@ -672,7 +674,7 @@  discard block
 block discarded – undo
672 674
                 if ( !empty( $load_xml ) && !empty( $load_xml->geoplugin_countryCode ) ) {
673 675
                     $wpinv_ip_address_country = (string)$load_xml->geoplugin_countryCode;
674 676
                 }
675
-            }elseif(!empty( $ip )){
677
+            } elseif(!empty( $ip )){
676 678
                 $url = 'http://ip-api.com/json/' . $ip;
677 679
                 $response = wp_remote_get($url);
678 680
 
@@ -1468,16 +1470,18 @@  discard block
 block discarded – undo
1468 1470
 
1469 1471
         if ( !empty( $tax_rates ) ) {
1470 1472
             foreach ( $tax_rates as $key => $tax_rate ) {
1471
-                if ( $country != $tax_rate['country'] )
1472
-                    continue;
1473
+                if ( $country != $tax_rate['country'] ) {
1474
+                                    continue;
1475
+                }
1473 1476
 
1474 1477
                 if ( !empty( $tax_rate['global'] ) ) {
1475 1478
                     if ( 0 !== $tax_rate['rate'] || !empty( $tax_rate['rate'] ) ) {
1476 1479
                         $rate = number_format( $tax_rate['rate'], 4 );
1477 1480
                     }
1478 1481
                 } else {
1479
-                    if ( empty( $tax_rate['state'] ) || strtolower( $state ) != strtolower( $tax_rate['state'] ) )
1480
-                        continue;
1482
+                    if ( empty( $tax_rate['state'] ) || strtolower( $state ) != strtolower( $tax_rate['state'] ) ) {
1483
+                                            continue;
1484
+                    }
1481 1485
 
1482 1486
                     $state_rate = $tax_rate['rate'];
1483 1487
                     if ( 0 !== $state_rate || !empty( $state_rate ) ) {
Please login to merge, or discard this patch.
vendor/ayecode/wp-super-duper/wp-super-duper.php 3 patches
Indentation   +1661 added lines, -1661 removed lines patch added patch discarded remove patch
@@ -1,243 +1,243 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined( 'ABSPATH' ) ) {
3
-	exit;
3
+    exit;
4 4
 }
5 5
 
6 6
 if ( ! class_exists( 'WP_Super_Duper' ) ) {
7 7
 
8 8
 
9
-	/**
10
-	 * A Class to be able to create a Widget, Shortcode or Block to be able to output content for WordPress.
11
-	 *
12
-	 * Should not be called direct but extended instead.
13
-	 *
14
-	 * Class WP_Super_Duper
15
-	 * @since 1.0.16 change log moved to file change-log.txt - CHANGED
16
-	 * @ver 1.0.16
17
-	 */
18
-	class WP_Super_Duper extends WP_Widget {
19
-
20
-		public $version = "1.0.16";
21
-		public $font_awesome_icon_version = "5.11.2";
22
-		public $block_code;
23
-		public $options;
24
-		public $base_id;
25
-		public $arguments = array();
26
-		public $instance = array();
27
-		private $class_name;
28
-
29
-		/**
30
-		 * The relative url to the current folder.
31
-		 *
32
-		 * @var string
33
-		 */
34
-		public $url = '';
35
-
36
-		/**
37
-		 * Take the array options and use them to build.
38
-		 */
39
-		public function __construct( $options ) {
40
-			global $sd_widgets;
41
-
42
-			$sd_widgets[ $options['base_id'] ] = array(
43
-				'name'       => $options['name'],
44
-				'class_name' => $options['class_name']
45
-			);
46
-			$this->base_id                     = $options['base_id'];
47
-			// lets filter the options before we do anything
48
-			$options       = apply_filters( "wp_super_duper_options", $options );
49
-			$options       = apply_filters( "wp_super_duper_options_{$this->base_id}", $options );
50
-			$options       = $this->add_name_from_key( $options );
51
-			$this->options = $options;
52
-
53
-			$this->base_id   = $options['base_id'];
54
-			$this->arguments = isset( $options['arguments'] ) ? $options['arguments'] : array();
55
-
56
-			// init parent
57
-			parent::__construct( $options['base_id'], $options['name'], $options['widget_ops'] );
58
-
59
-			if ( isset( $options['class_name'] ) ) {
60
-				// register widget
61
-				$this->class_name = $options['class_name'];
62
-
63
-				// register shortcode
64
-				$this->register_shortcode();
65
-
66
-				// Fusion Builder (avada) support
67
-				if( function_exists('fusion_builder_map') ){ $this->register_fusion_element(); }
68
-
69
-				// register block
70
-				add_action( 'admin_enqueue_scripts', array( $this, 'register_block' ) );
71
-			}
72
-
73
-			// add the CSS and JS we need ONCE
74
-			global $sd_widget_scripts;
75
-
76
-			if ( ! $sd_widget_scripts ) {
77
-				wp_add_inline_script( 'admin-widgets', $this->widget_js() );
78
-				wp_add_inline_script( 'customize-controls', $this->widget_js() );
79
-				wp_add_inline_style( 'widgets', $this->widget_css() );
80
-
81
-				$sd_widget_scripts = true;
82
-
83
-				// add shortcode insert button once
84
-				add_action( 'media_buttons', array( $this, 'shortcode_insert_button' ) );
85
-				// generatepress theme sections compatibility
86
-				if ( function_exists( 'generate_sections_sections_metabox' ) ) {
87
-					add_action( 'generate_sections_metabox', array( $this, 'shortcode_insert_button_script' ) );
88
-				}
89
-				if ( $this->is_preview() ) {
90
-					add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) );
91
-					// this makes the insert button work for elementor
92
-					add_action( 'elementor/editor/after_enqueue_scripts', array(
93
-						$this,
94
-						'shortcode_insert_button_script'
95
-					) ); // for elementor
96
-				}
97
-				// this makes the insert button work for cornerstone
98
-				add_action('wp_print_footer_scripts',array( __CLASS__, 'maybe_cornerstone_builder' ));
99
-
100
-				add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) );
101
-				add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) );
102
-
103
-				// add generator text to admin head
104
-				add_action( 'admin_head', array( $this, 'generator' ) );
105
-			}
106
-
107
-			do_action( 'wp_super_duper_widget_init', $options, $this );
108
-		}
109
-
110
-		public function register_fusion_element(){
111
-
112
-			$options = $this->options;
113
-
114
-			if($this->base_id){
115
-
116
-				$params = $this->get_fusion_params();
117
-
118
-				$args = array(
119
-					'name'            => $options['name'],
120
-					'shortcode'       => $this->base_id,
121
-					'icon'            => $options['block-icon'] ? $options['block-icon'] : 'far fa-square',
122
-					'allow_generator' => true,
123
-				);
124
-
125
-				if(!empty($params)){
126
-					$args['params'] = $params;
127
-				}
128
-
129
-				fusion_builder_map($args);
130
-			}
131
-
132
-		}
133
-
134
-		public function get_fusion_params(){
135
-			$params = array();
136
-			$arguments = $this->get_arguments();
137
-
138
-			if(!empty($arguments)){
139
-				foreach($arguments as $key => $val){
140
-					$param = array();
141
-					// type
142
-					$param['type'] = str_replace(
143
-						array(
144
-							"text",
145
-							"number",
146
-							"email",
147
-							"color",
148
-							"checkbox"
149
-						),
150
-						array(
151
-							"textfield",
152
-							"textfield",
153
-							"textfield",
154
-							"colorpicker",
155
-							"select",
156
-
157
-						),
158
-						$val['type']);
159
-
160
-					// heading
161
-					$param['heading'] = $val['title'];
162
-
163
-					// description
164
-					$param['description'] = isset($val['desc']) ? $val['desc'] : '';
165
-
166
-					// param_name
167
-					$param['param_name'] = $key;
168
-
169
-					// Default 
170
-					$param['default'] = isset($val['default']) ? $val['default'] : '';
171
-
172
-					// Group
173
-					if(isset($val['group'])){
174
-						$param['group'] = $val['group'];
175
-					}
176
-
177
-					// value
178
-					if($val['type'] == 'checkbox'){
179
-						if(isset($val['default']) && $val['default'] == '0'){
180
-							unset($param['default']);
181
-						}
182
-						$param['value'] = array(''=>__("No"),'1'=>__("Yes"));
183
-					}elseif($param['type'] == 'select'){
184
-						$param['value'] = isset($val['options']) ? $val['options'] : array();
185
-					}else{
186
-						$param['value'] = isset($val['default']) ? $val['default'] : '';
187
-					}
188
-
189
-					// setup the param
190
-					$params[] = $param;
191
-
192
-				}
193
-			}
194
-
195
-
196
-			return $params;
197
-		}
198
-
199
-		/**
200
-		 * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder
201
-		 */
202
-		public static function maybe_cornerstone_builder(){
203
-			if(did_action('cornerstone_before_boot_app')){
204
-				self::shortcode_insert_button_script();
205
-			}
206
-		}
207
-
208
-		/**
209
-		 * A function to ge the shortcode builder picker html.
210
-		 *
211
-		 * @param string $editor_id
212
-		 *
213
-		 * @return string
214
-		 */
215
-		public static function get_picker( $editor_id = '' ) {
216
-
217
-			ob_start();
218
-			if ( isset( $_POST['editor_id'] ) ) {
219
-				$editor_id = esc_attr( $_POST['editor_id'] );
220
-			} elseif ( isset( $_REQUEST['et_fb'] ) ) {
221
-				$editor_id = 'main_content_content_vb_tiny_mce';
222
-			}
223
-
224
-			global $sd_widgets;
225
-			?>
9
+    /**
10
+     * A Class to be able to create a Widget, Shortcode or Block to be able to output content for WordPress.
11
+     *
12
+     * Should not be called direct but extended instead.
13
+     *
14
+     * Class WP_Super_Duper
15
+     * @since 1.0.16 change log moved to file change-log.txt - CHANGED
16
+     * @ver 1.0.16
17
+     */
18
+    class WP_Super_Duper extends WP_Widget {
19
+
20
+        public $version = "1.0.16";
21
+        public $font_awesome_icon_version = "5.11.2";
22
+        public $block_code;
23
+        public $options;
24
+        public $base_id;
25
+        public $arguments = array();
26
+        public $instance = array();
27
+        private $class_name;
28
+
29
+        /**
30
+         * The relative url to the current folder.
31
+         *
32
+         * @var string
33
+         */
34
+        public $url = '';
35
+
36
+        /**
37
+         * Take the array options and use them to build.
38
+         */
39
+        public function __construct( $options ) {
40
+            global $sd_widgets;
41
+
42
+            $sd_widgets[ $options['base_id'] ] = array(
43
+                'name'       => $options['name'],
44
+                'class_name' => $options['class_name']
45
+            );
46
+            $this->base_id                     = $options['base_id'];
47
+            // lets filter the options before we do anything
48
+            $options       = apply_filters( "wp_super_duper_options", $options );
49
+            $options       = apply_filters( "wp_super_duper_options_{$this->base_id}", $options );
50
+            $options       = $this->add_name_from_key( $options );
51
+            $this->options = $options;
52
+
53
+            $this->base_id   = $options['base_id'];
54
+            $this->arguments = isset( $options['arguments'] ) ? $options['arguments'] : array();
55
+
56
+            // init parent
57
+            parent::__construct( $options['base_id'], $options['name'], $options['widget_ops'] );
58
+
59
+            if ( isset( $options['class_name'] ) ) {
60
+                // register widget
61
+                $this->class_name = $options['class_name'];
62
+
63
+                // register shortcode
64
+                $this->register_shortcode();
65
+
66
+                // Fusion Builder (avada) support
67
+                if( function_exists('fusion_builder_map') ){ $this->register_fusion_element(); }
68
+
69
+                // register block
70
+                add_action( 'admin_enqueue_scripts', array( $this, 'register_block' ) );
71
+            }
72
+
73
+            // add the CSS and JS we need ONCE
74
+            global $sd_widget_scripts;
75
+
76
+            if ( ! $sd_widget_scripts ) {
77
+                wp_add_inline_script( 'admin-widgets', $this->widget_js() );
78
+                wp_add_inline_script( 'customize-controls', $this->widget_js() );
79
+                wp_add_inline_style( 'widgets', $this->widget_css() );
80
+
81
+                $sd_widget_scripts = true;
82
+
83
+                // add shortcode insert button once
84
+                add_action( 'media_buttons', array( $this, 'shortcode_insert_button' ) );
85
+                // generatepress theme sections compatibility
86
+                if ( function_exists( 'generate_sections_sections_metabox' ) ) {
87
+                    add_action( 'generate_sections_metabox', array( $this, 'shortcode_insert_button_script' ) );
88
+                }
89
+                if ( $this->is_preview() ) {
90
+                    add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) );
91
+                    // this makes the insert button work for elementor
92
+                    add_action( 'elementor/editor/after_enqueue_scripts', array(
93
+                        $this,
94
+                        'shortcode_insert_button_script'
95
+                    ) ); // for elementor
96
+                }
97
+                // this makes the insert button work for cornerstone
98
+                add_action('wp_print_footer_scripts',array( __CLASS__, 'maybe_cornerstone_builder' ));
99
+
100
+                add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) );
101
+                add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) );
102
+
103
+                // add generator text to admin head
104
+                add_action( 'admin_head', array( $this, 'generator' ) );
105
+            }
106
+
107
+            do_action( 'wp_super_duper_widget_init', $options, $this );
108
+        }
109
+
110
+        public function register_fusion_element(){
111
+
112
+            $options = $this->options;
113
+
114
+            if($this->base_id){
115
+
116
+                $params = $this->get_fusion_params();
117
+
118
+                $args = array(
119
+                    'name'            => $options['name'],
120
+                    'shortcode'       => $this->base_id,
121
+                    'icon'            => $options['block-icon'] ? $options['block-icon'] : 'far fa-square',
122
+                    'allow_generator' => true,
123
+                );
124
+
125
+                if(!empty($params)){
126
+                    $args['params'] = $params;
127
+                }
128
+
129
+                fusion_builder_map($args);
130
+            }
131
+
132
+        }
133
+
134
+        public function get_fusion_params(){
135
+            $params = array();
136
+            $arguments = $this->get_arguments();
137
+
138
+            if(!empty($arguments)){
139
+                foreach($arguments as $key => $val){
140
+                    $param = array();
141
+                    // type
142
+                    $param['type'] = str_replace(
143
+                        array(
144
+                            "text",
145
+                            "number",
146
+                            "email",
147
+                            "color",
148
+                            "checkbox"
149
+                        ),
150
+                        array(
151
+                            "textfield",
152
+                            "textfield",
153
+                            "textfield",
154
+                            "colorpicker",
155
+                            "select",
156
+
157
+                        ),
158
+                        $val['type']);
159
+
160
+                    // heading
161
+                    $param['heading'] = $val['title'];
162
+
163
+                    // description
164
+                    $param['description'] = isset($val['desc']) ? $val['desc'] : '';
165
+
166
+                    // param_name
167
+                    $param['param_name'] = $key;
168
+
169
+                    // Default 
170
+                    $param['default'] = isset($val['default']) ? $val['default'] : '';
171
+
172
+                    // Group
173
+                    if(isset($val['group'])){
174
+                        $param['group'] = $val['group'];
175
+                    }
176
+
177
+                    // value
178
+                    if($val['type'] == 'checkbox'){
179
+                        if(isset($val['default']) && $val['default'] == '0'){
180
+                            unset($param['default']);
181
+                        }
182
+                        $param['value'] = array(''=>__("No"),'1'=>__("Yes"));
183
+                    }elseif($param['type'] == 'select'){
184
+                        $param['value'] = isset($val['options']) ? $val['options'] : array();
185
+                    }else{
186
+                        $param['value'] = isset($val['default']) ? $val['default'] : '';
187
+                    }
188
+
189
+                    // setup the param
190
+                    $params[] = $param;
191
+
192
+                }
193
+            }
194
+
195
+
196
+            return $params;
197
+        }
198
+
199
+        /**
200
+         * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder
201
+         */
202
+        public static function maybe_cornerstone_builder(){
203
+            if(did_action('cornerstone_before_boot_app')){
204
+                self::shortcode_insert_button_script();
205
+            }
206
+        }
207
+
208
+        /**
209
+         * A function to ge the shortcode builder picker html.
210
+         *
211
+         * @param string $editor_id
212
+         *
213
+         * @return string
214
+         */
215
+        public static function get_picker( $editor_id = '' ) {
216
+
217
+            ob_start();
218
+            if ( isset( $_POST['editor_id'] ) ) {
219
+                $editor_id = esc_attr( $_POST['editor_id'] );
220
+            } elseif ( isset( $_REQUEST['et_fb'] ) ) {
221
+                $editor_id = 'main_content_content_vb_tiny_mce';
222
+            }
223
+
224
+            global $sd_widgets;
225
+            ?>
226 226
 
227 227
 			<div class="sd-shortcode-left-wrap">
228 228
 				<?php
229
-				ksort( $sd_widgets );
230
-				//				print_r($sd_widgets);exit;
231
-				if ( ! empty( $sd_widgets ) ) {
232
-					echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">';
233
-					echo "<option>" . __( 'Select shortcode' ) . "</option>";
234
-					foreach ( $sd_widgets as $shortcode => $class ) {
235
-						echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>";
236
-					}
237
-					echo "</select>";
238
-
239
-				}
240
-				?>
229
+                ksort( $sd_widgets );
230
+                //				print_r($sd_widgets);exit;
231
+                if ( ! empty( $sd_widgets ) ) {
232
+                    echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">';
233
+                    echo "<option>" . __( 'Select shortcode' ) . "</option>";
234
+                    foreach ( $sd_widgets as $shortcode => $class ) {
235
+                        echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>";
236
+                    }
237
+                    echo "</select>";
238
+
239
+                }
240
+                ?>
241 241
 				<div class="sd-shortcode-settings"></div>
242 242
 
243 243
 			</div>
@@ -248,8 +248,8 @@  discard block
 block discarded – undo
248 248
 					<?php if ( $editor_id != '' ) { ?>
249 249
 						<button class="button sd-insert-shortcode-button"
250 250
 						        onclick="sd_insert_shortcode(<?php if ( ! empty( $editor_id ) ) {
251
-							        echo "'" . $editor_id . "'";
252
-						        } ?>)"><?php _e( 'Insert shortcode' ); ?></button>
251
+                                    echo "'" . $editor_id . "'";
252
+                                } ?>)"><?php _e( 'Insert shortcode' ); ?></button>
253 253
 					<?php } ?>
254 254
 					<button class="button"
255 255
 					        onclick="sd_copy_to_clipboard()"><?php _e( 'Copy shortcode' ); ?></button>
@@ -257,134 +257,134 @@  discard block
 block discarded – undo
257 257
 			</div>
258 258
 			<?php
259 259
 
260
-			$html = ob_get_clean();
261
-
262
-			if ( wp_doing_ajax() ) {
263
-				echo $html;
264
-				$should_die = true;
265
-
266
-				// some builder get the editor via ajax so we should not die on those ocasions
267
-				$dont_die = array(
268
-					'parent_tag',// WP Bakery
269
-					'avia_request' // enfold
270
-				);
271
-
272
-				foreach ( $dont_die as $request ) {
273
-					if ( isset( $_REQUEST[ $request ] ) ) {
274
-						$should_die = false;
275
-					}
276
-				}
277
-
278
-				if ( $should_die ) {
279
-					wp_die();
280
-				}
281
-
282
-			} else {
283
-				return $html;
284
-			}
285
-
286
-			return '';
287
-
288
-		}
289
-
290
-		/**
291
-		 * Output the version in the admin header.
292
-		 */
293
-		public function generator() {
294
-			echo '<meta name="generator" content="WP Super Duper v' . $this->version . '" />';
295
-		}
296
-
297
-		/**
298
-		 * Get widget settings.
299
-		 *
300
-		 * @since 1.0.0
301
-		 */
302
-		public static function get_widget_settings() {
303
-			global $sd_widgets;
304
-
305
-			$shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : '';
306
-			if ( ! $shortcode ) {
307
-				wp_die();
308
-			}
309
-			$widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : '';
310
-			if ( ! $widget_args ) {
311
-				wp_die();
312
-			}
313
-			$class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : '';
314
-			if ( ! $class_name ) {
315
-				wp_die();
316
-			}
317
-
318
-			// invoke an instance method
319
-			$widget = new $class_name;
320
-
321
-			ob_start();
322
-			$widget->form( array() );
323
-			$form = ob_get_clean();
324
-			echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>";
325
-			echo "<style>" . $widget->widget_css() . "</style>";
326
-			echo "<script>" . $widget->widget_js() . "</script>";
327
-			?>
260
+            $html = ob_get_clean();
261
+
262
+            if ( wp_doing_ajax() ) {
263
+                echo $html;
264
+                $should_die = true;
265
+
266
+                // some builder get the editor via ajax so we should not die on those ocasions
267
+                $dont_die = array(
268
+                    'parent_tag',// WP Bakery
269
+                    'avia_request' // enfold
270
+                );
271
+
272
+                foreach ( $dont_die as $request ) {
273
+                    if ( isset( $_REQUEST[ $request ] ) ) {
274
+                        $should_die = false;
275
+                    }
276
+                }
277
+
278
+                if ( $should_die ) {
279
+                    wp_die();
280
+                }
281
+
282
+            } else {
283
+                return $html;
284
+            }
285
+
286
+            return '';
287
+
288
+        }
289
+
290
+        /**
291
+         * Output the version in the admin header.
292
+         */
293
+        public function generator() {
294
+            echo '<meta name="generator" content="WP Super Duper v' . $this->version . '" />';
295
+        }
296
+
297
+        /**
298
+         * Get widget settings.
299
+         *
300
+         * @since 1.0.0
301
+         */
302
+        public static function get_widget_settings() {
303
+            global $sd_widgets;
304
+
305
+            $shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : '';
306
+            if ( ! $shortcode ) {
307
+                wp_die();
308
+            }
309
+            $widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : '';
310
+            if ( ! $widget_args ) {
311
+                wp_die();
312
+            }
313
+            $class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : '';
314
+            if ( ! $class_name ) {
315
+                wp_die();
316
+            }
317
+
318
+            // invoke an instance method
319
+            $widget = new $class_name;
320
+
321
+            ob_start();
322
+            $widget->form( array() );
323
+            $form = ob_get_clean();
324
+            echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>";
325
+            echo "<style>" . $widget->widget_css() . "</style>";
326
+            echo "<script>" . $widget->widget_js() . "</script>";
327
+            ?>
328 328
 			<?php
329
-			wp_die();
330
-		}
331
-
332
-		/**
333
-		 * Insert shortcode builder button to classic editor (not inside Gutenberg, not needed).
334
-		 *
335
-		 * @since 1.0.0
336
-		 *
337
-		 * @param string $editor_id Optional. Shortcode editor id. Default null.
338
-		 * @param string $insert_shortcode_function Optional. Insert shotcode function. Default null.
339
-		 */
340
-		public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) {
341
-			global $sd_widgets, $shortcode_insert_button_once;
342
-			if ( $shortcode_insert_button_once ) {
343
-				return;
344
-			}
345
-			add_thickbox();
346
-
347
-
348
-			/**
349
-			 * Cornerstone makes us play dirty tricks :/
350
-			 * All media_buttons are removed via JS unless they are two specific id's so we wrap our content in this ID so it is not removed.
351
-			 */
352
-			if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
353
-				echo '<span id="insert-media-button">';
354
-			}
355
-
356
-			echo self::shortcode_button( 'this', 'true' );
357
-
358
-			// see opening note
359
-			if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
360
-				echo '</span>'; // end #insert-media-button
361
-			}
362
-
363
-			// Add separate script for generatepress theme sections
364
-			if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) {
365
-			} else {
366
-				self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function );
367
-			}
368
-
369
-			$shortcode_insert_button_once = true;
370
-		}
371
-
372
-		/**
373
-		 * Gets the shortcode insert button html.
374
-		 *
375
-		 * @param string $id
376
-		 * @param string $search_for_id
377
-		 *
378
-		 * @return mixed
379
-		 */
380
-		public static function shortcode_button( $id = '', $search_for_id = '' ) {
381
-			ob_start();
382
-			?>
329
+            wp_die();
330
+        }
331
+
332
+        /**
333
+         * Insert shortcode builder button to classic editor (not inside Gutenberg, not needed).
334
+         *
335
+         * @since 1.0.0
336
+         *
337
+         * @param string $editor_id Optional. Shortcode editor id. Default null.
338
+         * @param string $insert_shortcode_function Optional. Insert shotcode function. Default null.
339
+         */
340
+        public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) {
341
+            global $sd_widgets, $shortcode_insert_button_once;
342
+            if ( $shortcode_insert_button_once ) {
343
+                return;
344
+            }
345
+            add_thickbox();
346
+
347
+
348
+            /**
349
+             * Cornerstone makes us play dirty tricks :/
350
+             * All media_buttons are removed via JS unless they are two specific id's so we wrap our content in this ID so it is not removed.
351
+             */
352
+            if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
353
+                echo '<span id="insert-media-button">';
354
+            }
355
+
356
+            echo self::shortcode_button( 'this', 'true' );
357
+
358
+            // see opening note
359
+            if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
360
+                echo '</span>'; // end #insert-media-button
361
+            }
362
+
363
+            // Add separate script for generatepress theme sections
364
+            if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) {
365
+            } else {
366
+                self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function );
367
+            }
368
+
369
+            $shortcode_insert_button_once = true;
370
+        }
371
+
372
+        /**
373
+         * Gets the shortcode insert button html.
374
+         *
375
+         * @param string $id
376
+         * @param string $search_for_id
377
+         *
378
+         * @return mixed
379
+         */
380
+        public static function shortcode_button( $id = '', $search_for_id = '' ) {
381
+            ob_start();
382
+            ?>
383 383
 			<span class="sd-lable-shortcode-inserter">
384 384
 				<a onclick="sd_ajax_get_picker(<?php echo $id;
385
-				if ( $search_for_id ) {
386
-					echo "," . $search_for_id;
387
-				} ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed"
385
+                if ( $search_for_id ) {
386
+                    echo "," . $search_for_id;
387
+                } ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed"
388 388
 				   class="thickbox button super-duper-content-open" title="Add Shortcode">
389 389
 					<span style="vertical-align: middle;line-height: 18px;font-size: 20px;"
390 390
 					      class="dashicons dashicons-screenoptions"></span>
@@ -395,21 +395,21 @@  discard block
 block discarded – undo
395 395
 			</span>
396 396
 
397 397
 			<?php
398
-			$html = ob_get_clean();
399
-
400
-			// remove line breaks so we can use it in js
401
-			return preg_replace( "/\r|\n/", "", trim( $html ) );
402
-		}
403
-
404
-		/**
405
-		 * Makes SD work with the siteOrigin page builder.
406
-		 *
407
-		 * @since 1.0.6
408
-		 * @return mixed
409
-		 */
410
-		public static function siteorigin_js() {
411
-			ob_start();
412
-			?>
398
+            $html = ob_get_clean();
399
+
400
+            // remove line breaks so we can use it in js
401
+            return preg_replace( "/\r|\n/", "", trim( $html ) );
402
+        }
403
+
404
+        /**
405
+         * Makes SD work with the siteOrigin page builder.
406
+         *
407
+         * @since 1.0.6
408
+         * @return mixed
409
+         */
410
+        public static function siteorigin_js() {
411
+            ob_start();
412
+            ?>
413 413
 			<script>
414 414
 				/**
415 415
 				 * Check a form to see what items shoudl be shown or hidden.
@@ -487,28 +487,28 @@  discard block
 block discarded – undo
487 487
 				});
488 488
 			</script>
489 489
 			<?php
490
-			$output = ob_get_clean();
490
+            $output = ob_get_clean();
491 491
 
492
-			/*
492
+            /*
493 493
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
494 494
 			 */
495 495
 
496
-			return str_replace( array(
497
-				'<script>',
498
-				'</script>'
499
-			), '', $output );
500
-		}
501
-
502
-		/**
503
-		 * Output the JS and CSS for the shortcode insert button.
504
-		 *
505
-		 * @since 1.0.6
506
-		 *
507
-		 * @param string $editor_id
508
-		 * @param string $insert_shortcode_function
509
-		 */
510
-		public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) {
511
-			?>
496
+            return str_replace( array(
497
+                '<script>',
498
+                '</script>'
499
+            ), '', $output );
500
+        }
501
+
502
+        /**
503
+         * Output the JS and CSS for the shortcode insert button.
504
+         *
505
+         * @since 1.0.6
506
+         *
507
+         * @param string $editor_id
508
+         * @param string $insert_shortcode_function
509
+         */
510
+        public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) {
511
+            ?>
512 512
 			<style>
513 513
 				.sd-shortcode-left-wrap {
514 514
 					float: left;
@@ -632,35 +632,35 @@  discard block
 block discarded – undo
632 632
 				<?php } ?>
633 633
 			</style>
634 634
 			<?php
635
-			if ( class_exists( 'SiteOrigin_Panels' ) ) {
636
-				echo "<script>" . self::siteorigin_js() . "</script>";
637
-			}
638
-			?>
635
+            if ( class_exists( 'SiteOrigin_Panels' ) ) {
636
+                echo "<script>" . self::siteorigin_js() . "</script>";
637
+            }
638
+            ?>
639 639
 			<script>
640 640
 				<?php
641
-				if(! empty( $insert_shortcode_function )){
642
-					echo $insert_shortcode_function;
643
-				}else{
644
-
645
-				/**
646
-				 * Function for super duper insert shortcode.
647
-				 *
648
-				 * @since 1.0.0
649
-				 */
650
-				?>
641
+                if(! empty( $insert_shortcode_function )){
642
+                    echo $insert_shortcode_function;
643
+                }else{
644
+
645
+                /**
646
+                 * Function for super duper insert shortcode.
647
+                 *
648
+                 * @since 1.0.0
649
+                 */
650
+                ?>
651 651
 				function sd_insert_shortcode($editor_id) {
652 652
 					$shortcode = jQuery('#TB_ajaxContent #sd-shortcode-output').val();
653 653
 					if ($shortcode) {
654 654
 						if (!$editor_id) {
655 655
 							<?php
656
-							if ( isset( $_REQUEST['et_fb'] ) ) {
657
-								echo '$editor_id = "#main_content_content_vb_tiny_mce";';
658
-							} elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) {
659
-								echo '$editor_id = "#elementor-controls .wp-editor-container textarea";';
660
-							} else {
661
-								echo '$editor_id = "#wp-content-editor-container textarea";';
662
-							}
663
-							?>
656
+                            if ( isset( $_REQUEST['et_fb'] ) ) {
657
+                                echo '$editor_id = "#main_content_content_vb_tiny_mce";';
658
+                            } elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) {
659
+                                echo '$editor_id = "#elementor-controls .wp-editor-container textarea";';
660
+                            } else {
661
+                                echo '$editor_id = "#wp-content-editor-container textarea";';
662
+                            }
663
+                            ?>
664 664
 						} else {
665 665
 							$editor_id = '#' + $editor_id;
666 666
 						}
@@ -986,16 +986,16 @@  discard block
 block discarded – undo
986 986
 
987 987
 			</script>
988 988
 			<?php
989
-		}
990
-
991
-		/**
992
-		 * Gets some CSS for the widgets screen.
993
-		 *
994
-		 * @return mixed
995
-		 */
996
-		public function widget_css() {
997
-			ob_start();
998
-			?>
989
+        }
990
+
991
+        /**
992
+         * Gets some CSS for the widgets screen.
993
+         *
994
+         * @return mixed
995
+         */
996
+        public function widget_css() {
997
+            ob_start();
998
+            ?>
999 999
 			<style>
1000 1000
 				.sd-advanced-setting {
1001 1001
 					display: none;
@@ -1030,26 +1030,26 @@  discard block
 block discarded – undo
1030 1030
 				}
1031 1031
 			</style>
1032 1032
 			<?php
1033
-			$output = ob_get_clean();
1033
+            $output = ob_get_clean();
1034 1034
 
1035
-			/*
1035
+            /*
1036 1036
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1037 1037
 			 */
1038 1038
 
1039
-			return str_replace( array(
1040
-				'<style>',
1041
-				'</style>'
1042
-			), '', $output );
1043
-		}
1044
-
1045
-		/**
1046
-		 * Gets some JS for the widgets screen.
1047
-		 *
1048
-		 * @return mixed
1049
-		 */
1050
-		public function widget_js() {
1051
-			ob_start();
1052
-			?>
1039
+            return str_replace( array(
1040
+                '<style>',
1041
+                '</style>'
1042
+            ), '', $output );
1043
+        }
1044
+
1045
+        /**
1046
+         * Gets some JS for the widgets screen.
1047
+         *
1048
+         * @return mixed
1049
+         */
1050
+        public function widget_js() {
1051
+            ob_start();
1052
+            ?>
1053 1053
 			<script>
1054 1054
 
1055 1055
 				/**
@@ -1204,397 +1204,397 @@  discard block
 block discarded – undo
1204 1204
 				<?php do_action( 'wp_super_duper_widget_js', $this ); ?>
1205 1205
 			</script>
1206 1206
 			<?php
1207
-			$output = ob_get_clean();
1207
+            $output = ob_get_clean();
1208 1208
 
1209
-			/*
1209
+            /*
1210 1210
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1211 1211
 			 */
1212 1212
 
1213
-			return str_replace( array(
1214
-				'<script>',
1215
-				'</script>'
1216
-			), '', $output );
1217
-		}
1218
-
1219
-
1220
-		/**
1221
-		 * Set the name from the argument key.
1222
-		 *
1223
-		 * @param $options
1224
-		 *
1225
-		 * @return mixed
1226
-		 */
1227
-		private function add_name_from_key( $options, $arguments = false ) {
1228
-			if ( ! empty( $options['arguments'] ) ) {
1229
-				foreach ( $options['arguments'] as $key => $val ) {
1230
-					$options['arguments'][ $key ]['name'] = $key;
1231
-				}
1232
-			} elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) {
1233
-				foreach ( $options as $key => $val ) {
1234
-					$options[ $key ]['name'] = $key;
1235
-				}
1236
-			}
1237
-
1238
-			return $options;
1239
-		}
1240
-
1241
-		/**
1242
-		 * Register the parent shortcode.
1243
-		 *
1244
-		 * @since 1.0.0
1245
-		 */
1246
-		public function register_shortcode() {
1247
-			add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) );
1248
-			add_action( 'wp_ajax_super_duper_output_shortcode', array( __CLASS__, 'render_shortcode' ) );
1249
-		}
1250
-
1251
-		/**
1252
-		 * Render the shortcode via ajax so we can return it to Gutenberg.
1253
-		 *
1254
-		 * @since 1.0.0
1255
-		 */
1256
-		public static function render_shortcode() {
1257
-
1258
-			check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true );
1259
-			if ( ! current_user_can( 'manage_options' ) ) {
1260
-				wp_die();
1261
-			}
1262
-
1263
-			// we might need the $post value here so lets set it.
1264
-			if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) {
1265
-				$post_obj = get_post( absint( $_POST['post_id'] ) );
1266
-				if ( ! empty( $post_obj ) && empty( $post ) ) {
1267
-					global $post;
1268
-					$post = $post_obj;
1269
-				}
1270
-			}
1271
-
1272
-			if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) {
1273
-				$shortcode_name   = sanitize_title_with_dashes( $_POST['shortcode'] );
1274
-				$attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array();
1275
-				$attributes       = '';
1276
-				if ( ! empty( $attributes_array ) ) {
1277
-					foreach ( $attributes_array as $key => $value ) {
1278
-						$attributes .= " " . sanitize_title_with_dashes( $key ) . "='" . wp_slash( $value ) . "' ";
1279
-					}
1280
-				}
1281
-
1282
-				$shortcode = "[" . $shortcode_name . " " . $attributes . "]";
1283
-
1284
-				echo do_shortcode( $shortcode );
1285
-
1286
-			}
1287
-			wp_die();
1288
-		}
1289
-
1290
-		/**
1291
-		 * Output the shortcode.
1292
-		 *
1293
-		 * @param array $args
1294
-		 * @param string $content
1295
-		 *
1296
-		 * @return string
1297
-		 */
1298
-		public function shortcode_output( $args = array(), $content = '' ) {
1299
-			$args = self::argument_values( $args );
1300
-
1301
-			// add extra argument so we know its a output to gutenberg
1302
-			//$args
1303
-			$args = $this->string_to_bool( $args );
1304
-
1305
-			// if we have a enclosed shortcode we add it to the special `html` argument
1306
-			if(!empty($content)){
1307
-				$args['html'] = $content;
1308
-			}
1309
-
1310
-			$class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : '';
1311
-
1312
-			$class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
1313
-			$class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
1314
-
1315
-			$attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
1316
-			$attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this ); //@todo this does not seem right @kiran?
1317
-
1318
-			$shortcode_args = array();
1319
-			$output         = '';
1320
-			$no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1321
-			if( isset( $args['no_wrap'] ) && $args['no_wrap'] ){ $no_wrap = true; }
1322
-			$main_content   = $this->output( $args, $shortcode_args, $content );
1323
-			if ( $main_content && ! $no_wrap ) {
1324
-				// wrap the shortcode in a div with the same class as the widget
1325
-				$output .= '<div class="' . $class . '" ' . $attrs . '>';
1326
-				if ( ! empty( $args['title'] ) ) {
1327
-					// if its a shortcode and there is a title try to grab the title wrappers
1328
-					$shortcode_args = array( 'before_title' => '', 'after_title' => '' );
1329
-					if ( empty( $instance ) ) {
1330
-						global $wp_registered_sidebars;
1331
-						if ( ! empty( $wp_registered_sidebars ) ) {
1332
-							foreach ( $wp_registered_sidebars as $sidebar ) {
1333
-								if ( ! empty( $sidebar['before_title'] ) ) {
1334
-									$shortcode_args['before_title'] = $sidebar['before_title'];
1335
-									$shortcode_args['after_title']  = $sidebar['after_title'];
1336
-									break;
1337
-								}
1338
-							}
1339
-						}
1340
-					}
1341
-					$output .= $this->output_title( $shortcode_args, $args );
1342
-				}
1343
-				$output .= $main_content;
1344
-				$output .= '</div>';
1345
-			} elseif ( $main_content && $no_wrap ) {
1346
-				$output .= $main_content;
1347
-			}
1348
-
1349
-			// if preview show a placeholder if empty
1350
-			if ( $this->is_preview() && $output == '' ) {
1351
-				$output = $this->preview_placeholder_text( "[{" . $this->base_id . "}]" );
1352
-			}
1353
-
1354
-			return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this );
1355
-		}
1356
-
1357
-		/**
1358
-		 * Placeholder text to show if output is empty and we are on a preview/builder page.
1359
-		 *
1360
-		 * @param string $name
1361
-		 *
1362
-		 * @return string
1363
-		 */
1364
-		public function preview_placeholder_text( $name = '' ) {
1365
-			return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . sprintf( __( 'Placeholder for: %s' ), $name ) . "</div>";
1366
-		}
1367
-
1368
-		/**
1369
-		 * Sometimes booleans values can be turned to strings, so we fix that.
1370
-		 *
1371
-		 * @param $options
1372
-		 *
1373
-		 * @return mixed
1374
-		 */
1375
-		public function string_to_bool( $options ) {
1376
-			// convert bool strings to booleans
1377
-			foreach ( $options as $key => $val ) {
1378
-				if ( $val == 'false' ) {
1379
-					$options[ $key ] = false;
1380
-				} elseif ( $val == 'true' ) {
1381
-					$options[ $key ] = true;
1382
-				}
1383
-			}
1384
-
1385
-			return $options;
1386
-		}
1387
-
1388
-		/**
1389
-		 * Get the argument values that are also filterable.
1390
-		 *
1391
-		 * @param $instance
1392
-		 *
1393
-		 * @since 1.0.12 Don't set checkbox default value if the value is empty.
1394
-		 *
1395
-		 * @return array
1396
-		 */
1397
-		public function argument_values( $instance ) {
1398
-			$argument_values = array();
1399
-
1400
-			// set widget instance
1401
-			$this->instance = $instance;
1402
-
1403
-			if ( empty( $this->arguments ) ) {
1404
-				$this->arguments = $this->get_arguments();
1405
-			}
1406
-
1407
-			if ( ! empty( $this->arguments ) ) {
1408
-				foreach ( $this->arguments as $key => $args ) {
1409
-					// set the input name from the key
1410
-					$args['name'] = $key;
1411
-					//
1412
-					$argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : '';
1413
-					if($args['type']=='checkbox' && $argument_values[ $key ] == ''){
1414
-						// don't set default for an empty checkbox
1415
-					}
1416
-					elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) {
1417
-						$argument_values[ $key ] = $args['default'];
1418
-					}
1419
-				}
1420
-			}
1421
-
1422
-			return $argument_values;
1423
-		}
1424
-
1425
-		/**
1426
-		 * Set arguments in super duper.
1427
-		 *
1428
-		 * @since 1.0.0
1429
-		 *
1430
-		 * @return array Set arguments.
1431
-		 */
1432
-		public function set_arguments() {
1433
-			return $this->arguments;
1434
-		}
1435
-
1436
-		/**
1437
-		 * Get arguments in super duper.
1438
-		 *
1439
-		 * @since 1.0.0
1440
-		 *
1441
-		 * @return array Get arguments.
1442
-		 */
1443
-		public function get_arguments() {
1444
-			if ( empty( $this->arguments ) ) {
1445
-				$this->arguments = $this->set_arguments();
1446
-			}
1447
-
1448
-			$this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance );
1449
-			$this->arguments = $this->add_name_from_key( $this->arguments, true );
1450
-
1451
-			return $this->arguments;
1452
-		}
1453
-
1454
-		/**
1455
-		 * This is the main output class for all 3 items, widget, shortcode and block, it is extended in the calling class.
1456
-		 *
1457
-		 * @param array $args
1458
-		 * @param array $widget_args
1459
-		 * @param string $content
1460
-		 */
1461
-		public function output( $args = array(), $widget_args = array(), $content = '' ) {
1462
-
1463
-		}
1464
-
1465
-		/**
1466
-		 * Add the dynamic block code inline when the wp-block in enqueued.
1467
-		 */
1468
-		public function register_block() {
1469
-			wp_add_inline_script( 'wp-blocks', $this->block() );
1470
-			if ( class_exists( 'SiteOrigin_Panels' ) ) {
1471
-
1472
-				wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() );
1473
-
1474
-			}
1475
-		}
1476
-
1477
-		/**
1478
-		 * Check if we need to show advanced options.
1479
-		 *
1480
-		 * @return bool
1481
-		 */
1482
-		public function block_show_advanced() {
1483
-
1484
-			$show      = false;
1485
-			$arguments = $this->arguments;
1486
-
1487
-			if ( empty( $arguments ) ) {
1488
-				$arguments = $this->get_arguments();
1489
-			}
1490
-
1491
-			if ( ! empty( $arguments ) ) {
1492
-				foreach ( $arguments as $argument ) {
1493
-					if ( isset( $argument['advanced'] ) && $argument['advanced'] ) {
1494
-						$show = true;
1495
-						break; // no need to continue if we know we have it
1496
-					}
1497
-				}
1498
-			}
1499
-
1500
-			return $show;
1501
-		}
1502
-
1503
-		/**
1504
-		 * Get the url path to the current folder.
1505
-		 *
1506
-		 * @return string
1507
-		 */
1508
-		public function get_url() {
1509
-
1510
-			$url = $this->url;
1511
-
1512
-			if(!$url){
1513
-				// check if we are inside a plugin
1514
-				$file_dir = str_replace("/includes","", dirname( __FILE__ ));
1515
-
1516
-				$dir_parts = explode("/wp-content/",$file_dir);
1517
-				$url_parts = explode("/wp-content/",plugins_url());
1518
-
1519
-				if(!empty($url_parts[0]) && !empty($dir_parts[1])){
1520
-					$url = trailingslashit( $url_parts[0]."/wp-content/".$dir_parts[1] );
1521
-					$this->url = $url;
1522
-				}
1523
-			}
1524
-
1525
-
1526
-			return $url;
1527
-		}
1528
-
1529
-		/**
1530
-		 * Generate the block icon.
1531
-		 *
1532
-		 * Enables the use of Font Awesome icons.
1533
-		 *
1534
-		 * @note xlink:href is actually deprecated but href is not supported by all so we use both.
1535
-		 * @param $icon
1536
-		 * @since 1.1.0
1537
-		 * @return string
1538
-		 */
1539
-		public function get_block_icon($icon){
1540
-
1541
-			// check if we have a Font Awesome icon
1542
-			$fa_type = '';
1543
-			if(substr( $icon, 0, 7 ) === "fas fa-"){
1544
-				$fa_type = 'solid';
1545
-			}elseif(substr( $icon, 0, 7 ) === "far fa-"){
1546
-				$fa_type = 'regular';
1547
-			}elseif(substr( $icon, 0, 7 ) === "fab fa-"){
1548
-				$fa_type = 'brands';
1549
-			}else{
1550
-				$icon = "'".$icon."'";
1551
-			}
1552
-
1553
-			// set the icon if we found one
1554
-			if($fa_type){
1555
-				$fa_icon = str_replace(array("fas fa-","far fa-","fab fa-"),"",$icon);
1556
-				$icon  = "el('svg',{width: 20, height: 20, viewBox: '0 0 20 20'},el('use', {'xlink:href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."','href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."'}))";
1557
-			}
1558
-
1559
-			return $icon;
1560
-		}
1561
-
1562
-		public function group_arguments($arguments){
1213
+            return str_replace( array(
1214
+                '<script>',
1215
+                '</script>'
1216
+            ), '', $output );
1217
+        }
1218
+
1219
+
1220
+        /**
1221
+         * Set the name from the argument key.
1222
+         *
1223
+         * @param $options
1224
+         *
1225
+         * @return mixed
1226
+         */
1227
+        private function add_name_from_key( $options, $arguments = false ) {
1228
+            if ( ! empty( $options['arguments'] ) ) {
1229
+                foreach ( $options['arguments'] as $key => $val ) {
1230
+                    $options['arguments'][ $key ]['name'] = $key;
1231
+                }
1232
+            } elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) {
1233
+                foreach ( $options as $key => $val ) {
1234
+                    $options[ $key ]['name'] = $key;
1235
+                }
1236
+            }
1237
+
1238
+            return $options;
1239
+        }
1240
+
1241
+        /**
1242
+         * Register the parent shortcode.
1243
+         *
1244
+         * @since 1.0.0
1245
+         */
1246
+        public function register_shortcode() {
1247
+            add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) );
1248
+            add_action( 'wp_ajax_super_duper_output_shortcode', array( __CLASS__, 'render_shortcode' ) );
1249
+        }
1250
+
1251
+        /**
1252
+         * Render the shortcode via ajax so we can return it to Gutenberg.
1253
+         *
1254
+         * @since 1.0.0
1255
+         */
1256
+        public static function render_shortcode() {
1257
+
1258
+            check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true );
1259
+            if ( ! current_user_can( 'manage_options' ) ) {
1260
+                wp_die();
1261
+            }
1262
+
1263
+            // we might need the $post value here so lets set it.
1264
+            if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) {
1265
+                $post_obj = get_post( absint( $_POST['post_id'] ) );
1266
+                if ( ! empty( $post_obj ) && empty( $post ) ) {
1267
+                    global $post;
1268
+                    $post = $post_obj;
1269
+                }
1270
+            }
1271
+
1272
+            if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) {
1273
+                $shortcode_name   = sanitize_title_with_dashes( $_POST['shortcode'] );
1274
+                $attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array();
1275
+                $attributes       = '';
1276
+                if ( ! empty( $attributes_array ) ) {
1277
+                    foreach ( $attributes_array as $key => $value ) {
1278
+                        $attributes .= " " . sanitize_title_with_dashes( $key ) . "='" . wp_slash( $value ) . "' ";
1279
+                    }
1280
+                }
1281
+
1282
+                $shortcode = "[" . $shortcode_name . " " . $attributes . "]";
1283
+
1284
+                echo do_shortcode( $shortcode );
1285
+
1286
+            }
1287
+            wp_die();
1288
+        }
1289
+
1290
+        /**
1291
+         * Output the shortcode.
1292
+         *
1293
+         * @param array $args
1294
+         * @param string $content
1295
+         *
1296
+         * @return string
1297
+         */
1298
+        public function shortcode_output( $args = array(), $content = '' ) {
1299
+            $args = self::argument_values( $args );
1300
+
1301
+            // add extra argument so we know its a output to gutenberg
1302
+            //$args
1303
+            $args = $this->string_to_bool( $args );
1304
+
1305
+            // if we have a enclosed shortcode we add it to the special `html` argument
1306
+            if(!empty($content)){
1307
+                $args['html'] = $content;
1308
+            }
1309
+
1310
+            $class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : '';
1311
+
1312
+            $class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
1313
+            $class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
1314
+
1315
+            $attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
1316
+            $attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this ); //@todo this does not seem right @kiran?
1317
+
1318
+            $shortcode_args = array();
1319
+            $output         = '';
1320
+            $no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1321
+            if( isset( $args['no_wrap'] ) && $args['no_wrap'] ){ $no_wrap = true; }
1322
+            $main_content   = $this->output( $args, $shortcode_args, $content );
1323
+            if ( $main_content && ! $no_wrap ) {
1324
+                // wrap the shortcode in a div with the same class as the widget
1325
+                $output .= '<div class="' . $class . '" ' . $attrs . '>';
1326
+                if ( ! empty( $args['title'] ) ) {
1327
+                    // if its a shortcode and there is a title try to grab the title wrappers
1328
+                    $shortcode_args = array( 'before_title' => '', 'after_title' => '' );
1329
+                    if ( empty( $instance ) ) {
1330
+                        global $wp_registered_sidebars;
1331
+                        if ( ! empty( $wp_registered_sidebars ) ) {
1332
+                            foreach ( $wp_registered_sidebars as $sidebar ) {
1333
+                                if ( ! empty( $sidebar['before_title'] ) ) {
1334
+                                    $shortcode_args['before_title'] = $sidebar['before_title'];
1335
+                                    $shortcode_args['after_title']  = $sidebar['after_title'];
1336
+                                    break;
1337
+                                }
1338
+                            }
1339
+                        }
1340
+                    }
1341
+                    $output .= $this->output_title( $shortcode_args, $args );
1342
+                }
1343
+                $output .= $main_content;
1344
+                $output .= '</div>';
1345
+            } elseif ( $main_content && $no_wrap ) {
1346
+                $output .= $main_content;
1347
+            }
1348
+
1349
+            // if preview show a placeholder if empty
1350
+            if ( $this->is_preview() && $output == '' ) {
1351
+                $output = $this->preview_placeholder_text( "[{" . $this->base_id . "}]" );
1352
+            }
1353
+
1354
+            return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this );
1355
+        }
1356
+
1357
+        /**
1358
+         * Placeholder text to show if output is empty and we are on a preview/builder page.
1359
+         *
1360
+         * @param string $name
1361
+         *
1362
+         * @return string
1363
+         */
1364
+        public function preview_placeholder_text( $name = '' ) {
1365
+            return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . sprintf( __( 'Placeholder for: %s' ), $name ) . "</div>";
1366
+        }
1367
+
1368
+        /**
1369
+         * Sometimes booleans values can be turned to strings, so we fix that.
1370
+         *
1371
+         * @param $options
1372
+         *
1373
+         * @return mixed
1374
+         */
1375
+        public function string_to_bool( $options ) {
1376
+            // convert bool strings to booleans
1377
+            foreach ( $options as $key => $val ) {
1378
+                if ( $val == 'false' ) {
1379
+                    $options[ $key ] = false;
1380
+                } elseif ( $val == 'true' ) {
1381
+                    $options[ $key ] = true;
1382
+                }
1383
+            }
1384
+
1385
+            return $options;
1386
+        }
1387
+
1388
+        /**
1389
+         * Get the argument values that are also filterable.
1390
+         *
1391
+         * @param $instance
1392
+         *
1393
+         * @since 1.0.12 Don't set checkbox default value if the value is empty.
1394
+         *
1395
+         * @return array
1396
+         */
1397
+        public function argument_values( $instance ) {
1398
+            $argument_values = array();
1399
+
1400
+            // set widget instance
1401
+            $this->instance = $instance;
1402
+
1403
+            if ( empty( $this->arguments ) ) {
1404
+                $this->arguments = $this->get_arguments();
1405
+            }
1406
+
1407
+            if ( ! empty( $this->arguments ) ) {
1408
+                foreach ( $this->arguments as $key => $args ) {
1409
+                    // set the input name from the key
1410
+                    $args['name'] = $key;
1411
+                    //
1412
+                    $argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : '';
1413
+                    if($args['type']=='checkbox' && $argument_values[ $key ] == ''){
1414
+                        // don't set default for an empty checkbox
1415
+                    }
1416
+                    elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) {
1417
+                        $argument_values[ $key ] = $args['default'];
1418
+                    }
1419
+                }
1420
+            }
1421
+
1422
+            return $argument_values;
1423
+        }
1424
+
1425
+        /**
1426
+         * Set arguments in super duper.
1427
+         *
1428
+         * @since 1.0.0
1429
+         *
1430
+         * @return array Set arguments.
1431
+         */
1432
+        public function set_arguments() {
1433
+            return $this->arguments;
1434
+        }
1435
+
1436
+        /**
1437
+         * Get arguments in super duper.
1438
+         *
1439
+         * @since 1.0.0
1440
+         *
1441
+         * @return array Get arguments.
1442
+         */
1443
+        public function get_arguments() {
1444
+            if ( empty( $this->arguments ) ) {
1445
+                $this->arguments = $this->set_arguments();
1446
+            }
1447
+
1448
+            $this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance );
1449
+            $this->arguments = $this->add_name_from_key( $this->arguments, true );
1450
+
1451
+            return $this->arguments;
1452
+        }
1453
+
1454
+        /**
1455
+         * This is the main output class for all 3 items, widget, shortcode and block, it is extended in the calling class.
1456
+         *
1457
+         * @param array $args
1458
+         * @param array $widget_args
1459
+         * @param string $content
1460
+         */
1461
+        public function output( $args = array(), $widget_args = array(), $content = '' ) {
1462
+
1463
+        }
1464
+
1465
+        /**
1466
+         * Add the dynamic block code inline when the wp-block in enqueued.
1467
+         */
1468
+        public function register_block() {
1469
+            wp_add_inline_script( 'wp-blocks', $this->block() );
1470
+            if ( class_exists( 'SiteOrigin_Panels' ) ) {
1471
+
1472
+                wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() );
1473
+
1474
+            }
1475
+        }
1476
+
1477
+        /**
1478
+         * Check if we need to show advanced options.
1479
+         *
1480
+         * @return bool
1481
+         */
1482
+        public function block_show_advanced() {
1483
+
1484
+            $show      = false;
1485
+            $arguments = $this->arguments;
1486
+
1487
+            if ( empty( $arguments ) ) {
1488
+                $arguments = $this->get_arguments();
1489
+            }
1490
+
1491
+            if ( ! empty( $arguments ) ) {
1492
+                foreach ( $arguments as $argument ) {
1493
+                    if ( isset( $argument['advanced'] ) && $argument['advanced'] ) {
1494
+                        $show = true;
1495
+                        break; // no need to continue if we know we have it
1496
+                    }
1497
+                }
1498
+            }
1499
+
1500
+            return $show;
1501
+        }
1502
+
1503
+        /**
1504
+         * Get the url path to the current folder.
1505
+         *
1506
+         * @return string
1507
+         */
1508
+        public function get_url() {
1509
+
1510
+            $url = $this->url;
1511
+
1512
+            if(!$url){
1513
+                // check if we are inside a plugin
1514
+                $file_dir = str_replace("/includes","", dirname( __FILE__ ));
1515
+
1516
+                $dir_parts = explode("/wp-content/",$file_dir);
1517
+                $url_parts = explode("/wp-content/",plugins_url());
1518
+
1519
+                if(!empty($url_parts[0]) && !empty($dir_parts[1])){
1520
+                    $url = trailingslashit( $url_parts[0]."/wp-content/".$dir_parts[1] );
1521
+                    $this->url = $url;
1522
+                }
1523
+            }
1524
+
1525
+
1526
+            return $url;
1527
+        }
1528
+
1529
+        /**
1530
+         * Generate the block icon.
1531
+         *
1532
+         * Enables the use of Font Awesome icons.
1533
+         *
1534
+         * @note xlink:href is actually deprecated but href is not supported by all so we use both.
1535
+         * @param $icon
1536
+         * @since 1.1.0
1537
+         * @return string
1538
+         */
1539
+        public function get_block_icon($icon){
1540
+
1541
+            // check if we have a Font Awesome icon
1542
+            $fa_type = '';
1543
+            if(substr( $icon, 0, 7 ) === "fas fa-"){
1544
+                $fa_type = 'solid';
1545
+            }elseif(substr( $icon, 0, 7 ) === "far fa-"){
1546
+                $fa_type = 'regular';
1547
+            }elseif(substr( $icon, 0, 7 ) === "fab fa-"){
1548
+                $fa_type = 'brands';
1549
+            }else{
1550
+                $icon = "'".$icon."'";
1551
+            }
1552
+
1553
+            // set the icon if we found one
1554
+            if($fa_type){
1555
+                $fa_icon = str_replace(array("fas fa-","far fa-","fab fa-"),"",$icon);
1556
+                $icon  = "el('svg',{width: 20, height: 20, viewBox: '0 0 20 20'},el('use', {'xlink:href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."','href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."'}))";
1557
+            }
1558
+
1559
+            return $icon;
1560
+        }
1561
+
1562
+        public function group_arguments($arguments){
1563 1563
 //			echo '###';print_r($arguments);
1564
-			if(!empty($arguments)){
1565
-				$temp_arguments = array();
1566
-				$general = __("General");
1567
-				$add_sections = false;
1568
-				foreach($arguments as $key => $args){
1569
-					if(isset($args['group'])){
1570
-						$temp_arguments[$args['group']][$key] = $args;
1571
-						$add_sections = true;
1572
-					}else{
1573
-						$temp_arguments[$general][$key] = $args;
1574
-					}
1575
-				}
1576
-
1577
-				// only add sections if more than one
1578
-				if($add_sections){
1579
-					$arguments = $temp_arguments;
1580
-				}
1581
-			}
1564
+            if(!empty($arguments)){
1565
+                $temp_arguments = array();
1566
+                $general = __("General");
1567
+                $add_sections = false;
1568
+                foreach($arguments as $key => $args){
1569
+                    if(isset($args['group'])){
1570
+                        $temp_arguments[$args['group']][$key] = $args;
1571
+                        $add_sections = true;
1572
+                    }else{
1573
+                        $temp_arguments[$general][$key] = $args;
1574
+                    }
1575
+                }
1576
+
1577
+                // only add sections if more than one
1578
+                if($add_sections){
1579
+                    $arguments = $temp_arguments;
1580
+                }
1581
+            }
1582 1582
 //			echo '###';print_r($arguments);
1583
-			return $arguments;
1584
-		}
1585
-
1586
-
1587
-		/**
1588
-		 * Output the JS for building the dynamic Guntenberg block.
1589
-		 *
1590
-		 * @since 1.0.4 Added block_wrap property which will set the block wrapping output element ie: div, span, p or empty for no wrap.
1591
-		 * @since 1.0.9 Save numbers as numbers and not strings.
1592
-		 * @since 1.1.0 Font Awesome classes can be used for icons.
1593
-		 * @return mixed
1594
-		 */
1595
-		public function block() {
1596
-			ob_start();
1597
-			?>
1583
+            return $arguments;
1584
+        }
1585
+
1586
+
1587
+        /**
1588
+         * Output the JS for building the dynamic Guntenberg block.
1589
+         *
1590
+         * @since 1.0.4 Added block_wrap property which will set the block wrapping output element ie: div, span, p or empty for no wrap.
1591
+         * @since 1.0.9 Save numbers as numbers and not strings.
1592
+         * @since 1.1.0 Font Awesome classes can be used for icons.
1593
+         * @return mixed
1594
+         */
1595
+        public function block() {
1596
+            ob_start();
1597
+            ?>
1598 1598
 			<script>
1599 1599
 				/**
1600 1600
 				 * BLOCK: Basic
@@ -1633,93 +1633,93 @@  discard block
 block discarded – undo
1633 1633
 						icon: <?php echo $this->get_block_icon($this->options['block-icon']);?>,//'<?php echo isset( $this->options['block-icon'] ) ? esc_attr( $this->options['block-icon'] ) : 'shield-alt';?>', // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.
1634 1634
 						supports: {
1635 1635
 							<?php
1636
-							if(isset($this->options['block-supports'])){
1637
-								echo $this->array_to_attributes( $this->options['block-supports'] );
1638
-							}
1639
-							?>
1636
+                            if(isset($this->options['block-supports'])){
1637
+                                echo $this->array_to_attributes( $this->options['block-supports'] );
1638
+                            }
1639
+                            ?>
1640 1640
 						},
1641 1641
 						category: '<?php echo isset( $this->options['block-category'] ) ? esc_attr( $this->options['block-category'] ) : 'common';?>', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.
1642 1642
 						<?php if ( isset( $this->options['block-keywords'] ) ) {
1643
-						echo "keywords : " . $this->options['block-keywords'] . ",";
1644
-					}?>
1643
+                        echo "keywords : " . $this->options['block-keywords'] . ",";
1644
+                    }?>
1645 1645
 
1646 1646
 						<?php
1647 1647
 
1648
-						// maybe set no_wrap
1649
-						$no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1650
-						if( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ){ $no_wrap = true; }
1651
-						if( $no_wrap ){ $this->options['block-wrap'] = ''; }
1648
+                        // maybe set no_wrap
1649
+                        $no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1650
+                        if( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ){ $no_wrap = true; }
1651
+                        if( $no_wrap ){ $this->options['block-wrap'] = ''; }
1652 1652
 
1653
-						$show_advanced = $this->block_show_advanced();
1653
+                        $show_advanced = $this->block_show_advanced();
1654 1654
 
1655
-						$show_alignment = false;
1656
-						// align feature
1657
-						/*echo "supports: {";
1655
+                        $show_alignment = false;
1656
+                        // align feature
1657
+                        /*echo "supports: {";
1658 1658
 						echo "	align: true,";
1659 1659
 						echo "  html: false";
1660 1660
 						echo "},";*/
1661 1661
 
1662
-						if ( ! empty( $this->arguments ) ) {
1663
-							echo "attributes : {";
1664
-
1665
-							if ( $show_advanced ) {
1666
-								echo "show_advanced: {";
1667
-								echo "	type: 'boolean',";
1668
-								echo "  default: false,";
1669
-								echo "},";
1670
-							}
1671
-
1672
-							// block wrap element
1673
-							if ( !empty( $this->options['block-wrap'] ) ) { //@todo we should validate this?
1674
-								echo "block_wrap: {";
1675
-								echo "	type: 'string',";
1676
-								echo "  default: '" . esc_attr( $this->options['block-wrap'] ) . "',";
1677
-								echo "},";
1678
-							}
1679
-
1680
-							foreach ( $this->arguments as $key => $args ) {
1681
-
1682
-								// set if we should show alignment
1683
-								if ( $key == 'alignment' ) {
1684
-									$show_alignment = true;
1685
-								}
1686
-
1687
-								$extra = '';
1688
-
1689
-								if ( $args['type'] == 'checkbox' ) {
1690
-									$type    = 'boolean';
1691
-									$default = isset( $args['default'] ) && $args['default'] ? 'true' : 'false';
1692
-								} elseif ( $args['type'] == 'number' ) {
1693
-									$type    = 'number';
1694
-									$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1695
-								} elseif ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) {
1696
-									$type = 'array';
1697
-									if ( is_array( $args['default'] ) ) {
1698
-										$default = isset( $args['default'] ) ? "['" . implode( "','", $args['default'] ) . "']" : "[]";
1699
-									} else {
1700
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1701
-									}
1702
-								} elseif ( $args['type'] == 'multiselect' ) {
1703
-									$type    = 'array';
1704
-									$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1705
-								} else {
1706
-									$type    = 'string';
1707
-									$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1708
-								}
1709
-								echo $key . " : {";
1710
-								echo "type : '$type',";
1711
-								echo "default : $default,";
1712
-								echo "},";
1713
-							}
1714
-
1715
-							echo "content : {type : 'string',default: 'Please select the attributes in the block settings'},";
1716
-							echo "className: { type: 'string', default: '' },";
1717
-
1718
-							echo "},";
1719
-
1720
-						}
1721
-
1722
-						?>
1662
+                        if ( ! empty( $this->arguments ) ) {
1663
+                            echo "attributes : {";
1664
+
1665
+                            if ( $show_advanced ) {
1666
+                                echo "show_advanced: {";
1667
+                                echo "	type: 'boolean',";
1668
+                                echo "  default: false,";
1669
+                                echo "},";
1670
+                            }
1671
+
1672
+                            // block wrap element
1673
+                            if ( !empty( $this->options['block-wrap'] ) ) { //@todo we should validate this?
1674
+                                echo "block_wrap: {";
1675
+                                echo "	type: 'string',";
1676
+                                echo "  default: '" . esc_attr( $this->options['block-wrap'] ) . "',";
1677
+                                echo "},";
1678
+                            }
1679
+
1680
+                            foreach ( $this->arguments as $key => $args ) {
1681
+
1682
+                                // set if we should show alignment
1683
+                                if ( $key == 'alignment' ) {
1684
+                                    $show_alignment = true;
1685
+                                }
1686
+
1687
+                                $extra = '';
1688
+
1689
+                                if ( $args['type'] == 'checkbox' ) {
1690
+                                    $type    = 'boolean';
1691
+                                    $default = isset( $args['default'] ) && $args['default'] ? 'true' : 'false';
1692
+                                } elseif ( $args['type'] == 'number' ) {
1693
+                                    $type    = 'number';
1694
+                                    $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1695
+                                } elseif ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) {
1696
+                                    $type = 'array';
1697
+                                    if ( is_array( $args['default'] ) ) {
1698
+                                        $default = isset( $args['default'] ) ? "['" . implode( "','", $args['default'] ) . "']" : "[]";
1699
+                                    } else {
1700
+                                        $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1701
+                                    }
1702
+                                } elseif ( $args['type'] == 'multiselect' ) {
1703
+                                    $type    = 'array';
1704
+                                    $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1705
+                                } else {
1706
+                                    $type    = 'string';
1707
+                                    $default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1708
+                                }
1709
+                                echo $key . " : {";
1710
+                                echo "type : '$type',";
1711
+                                echo "default : $default,";
1712
+                                echo "},";
1713
+                            }
1714
+
1715
+                            echo "content : {type : 'string',default: 'Please select the attributes in the block settings'},";
1716
+                            echo "className: { type: 'string', default: '' },";
1717
+
1718
+                            echo "},";
1719
+
1720
+                        }
1721
+
1722
+                        ?>
1723 1723
 
1724 1724
 						// The "edit" property must be a valid function.
1725 1725
 						edit: function (props) {
@@ -1738,8 +1738,8 @@  discard block
 block discarded – undo
1738 1738
 										'shortcode': '<?php echo $this->options['base_id'];?>',
1739 1739
 										'attributes': props.attributes,
1740 1740
 										'post_id': <?php global $post; if ( isset( $post->ID ) ) {
1741
-										echo $post->ID;
1742
-									}?>,
1741
+                                        echo $post->ID;
1742
+                                    }?>,
1743 1743
 										'_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_output_shortcode' );?>'
1744 1744
 									};
1745 1745
 
@@ -1786,10 +1786,10 @@  discard block
 block discarded – undo
1786 1786
 
1787 1787
 									<?php
1788 1788
 
1789
-									if(! empty( $this->arguments )){
1789
+                                    if(! empty( $this->arguments )){
1790 1790
 
1791
-									if ( $show_advanced ) {
1792
-									?>
1791
+                                    if ( $show_advanced ) {
1792
+                                    ?>
1793 1793
 									el(
1794 1794
 										wp.components.ToggleControl,
1795 1795
 										{
@@ -1802,61 +1802,61 @@  discard block
 block discarded – undo
1802 1802
 									),
1803 1803
 									<?php
1804 1804
 
1805
-									}
1805
+                                    }
1806 1806
 
1807
-									$arguments = $this->group_arguments($this->arguments);
1807
+                                    $arguments = $this->group_arguments($this->arguments);
1808 1808
 
1809
-									// Do we have sections?
1810
-									$has_sections = $arguments == $this->arguments ? false : true;
1809
+                                    // Do we have sections?
1810
+                                    $has_sections = $arguments == $this->arguments ? false : true;
1811 1811
 
1812 1812
 
1813
-									if($has_sections){
1814
-									$panel_count = 0;
1815
-									foreach($arguments as $key => $args){
1816
-									?>
1813
+                                    if($has_sections){
1814
+                                    $panel_count = 0;
1815
+                                    foreach($arguments as $key => $args){
1816
+                                    ?>
1817 1817
 									el(wp.components.PanelBody, {
1818 1818
 											title: '<?php esc_attr_e($key); ?>',
1819 1819
 											initialOpen: <?php if($panel_count){echo "false";}else{echo "true";}?>
1820 1820
 										},
1821 1821
 										<?php
1822 1822
 
1823
-										foreach($args as $k => $a){
1824
-											$this->build_block_arguments($k, $a);
1825
-										}
1826
-										?>
1823
+                                        foreach($args as $k => $a){
1824
+                                            $this->build_block_arguments($k, $a);
1825
+                                        }
1826
+                                        ?>
1827 1827
 									),
1828 1828
 									<?php
1829
-									$panel_count++;
1829
+                                    $panel_count++;
1830 1830
 
1831
-									}
1832
-									}else{
1833
-										foreach($this->arguments as $key => $args){
1834
-											$this->build_block_arguments($key, $args);
1835
-										}
1836
-									}
1831
+                                    }
1832
+                                    }else{
1833
+                                        foreach($this->arguments as $key => $args){
1834
+                                            $this->build_block_arguments($key, $args);
1835
+                                        }
1836
+                                    }
1837 1837
 
1838 1838
 
1839 1839
 
1840
-									}
1841
-									?>
1840
+                                    }
1841
+                                    ?>
1842 1842
 
1843 1843
 								),
1844 1844
 
1845 1845
 								<?php
1846
-								// If the user sets block-output array then build it
1847
-								if ( ! empty( $this->options['block-output'] ) ) {
1848
-								$this->block_element( $this->options['block-output'] );
1849
-							}else{
1850
-								// if no block-output is set then we try and get the shortcode html output via ajax.
1851
-								?>
1846
+                                // If the user sets block-output array then build it
1847
+                                if ( ! empty( $this->options['block-output'] ) ) {
1848
+                                $this->block_element( $this->options['block-output'] );
1849
+                            }else{
1850
+                                // if no block-output is set then we try and get the shortcode html output via ajax.
1851
+                                ?>
1852 1852
 								el('div', {
1853 1853
 									dangerouslySetInnerHTML: {__html: onChangeContent()},
1854 1854
 									className: props.className,
1855 1855
 									style: {'min-height': '30px'}
1856 1856
 								})
1857 1857
 								<?php
1858
-								}
1859
-								?>
1858
+                                }
1859
+                                ?>
1860 1860
 							]; // end return
1861 1861
 						},
1862 1862
 
@@ -1874,10 +1874,10 @@  discard block
 block discarded – undo
1874 1874
 							$html = '';
1875 1875
 							<?php
1876 1876
 
1877
-							if(! empty( $this->arguments )){
1877
+                            if(! empty( $this->arguments )){
1878 1878
 
1879
-							foreach($this->arguments as $key => $args){
1880
-							?>
1879
+                            foreach($this->arguments as $key => $args){
1880
+                            ?>
1881 1881
 							if (attr.hasOwnProperty("<?php echo esc_attr( $key );?>")) {
1882 1882
 								if('<?php echo esc_attr( $key );?>' == 'html'){
1883 1883
 									$html = attr.<?php echo esc_attr( $key );?>;
@@ -1886,10 +1886,10 @@  discard block
 block discarded – undo
1886 1886
 								}
1887 1887
 							}
1888 1888
 							<?php
1889
-							}
1890
-							}
1889
+                            }
1890
+                            }
1891 1891
 
1892
-							?>
1892
+                            ?>
1893 1893
 							content += "]";
1894 1894
 							
1895 1895
 							// if has html element
@@ -1912,20 +1912,20 @@  discard block
 block discarded – undo
1912 1912
 							}
1913 1913
 
1914 1914
 							<?php
1915
-							if(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){
1916
-							?>
1915
+                            if(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){
1916
+                            ?>
1917 1917
 							return content;
1918 1918
 							<?php
1919
-							}else{
1920
-							?>
1919
+                            }else{
1920
+                            ?>
1921 1921
 							var block_wrap = 'div';
1922 1922
 							if (attr.hasOwnProperty("block_wrap")) {
1923 1923
 								block_wrap = attr.block_wrap;
1924 1924
 							}
1925 1925
 							return el(block_wrap, {dangerouslySetInnerHTML: {__html: content}, className: align});
1926 1926
 							<?php
1927
-							}
1928
-							?>
1927
+                            }
1928
+                            ?>
1929 1929
 
1930 1930
 
1931 1931
 						}
@@ -1933,89 +1933,89 @@  discard block
 block discarded – undo
1933 1933
 				})();
1934 1934
 			</script>
1935 1935
 			<?php
1936
-			$output = ob_get_clean();
1936
+            $output = ob_get_clean();
1937 1937
 
1938
-			/*
1938
+            /*
1939 1939
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1940 1940
 			 */
1941 1941
 
1942
-			return str_replace( array(
1943
-				'<script>',
1944
-				'</script>'
1945
-			), '', $output );
1946
-		}
1947
-
1948
-		public function build_block_arguments($key,$args){
1949
-			$custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : '';
1950
-			$options = '';
1951
-			$extra = '';
1952
-			$require = '';
1953
-
1954
-			// `content` is a protected and special argument
1955
-			if($key == 'content'){return;}
1956
-
1957
-			$onchange = "props.setAttributes({ $key: $key } )";
1958
-			$value = "props.attributes.$key";
1959
-			$text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'color' );
1960
-			if ( in_array( $args['type'], $text_type ) ) {
1961
-				$type = 'TextControl';
1962
-				// Save numbers as numbers and not strings
1963
-				if ( $args['type'] == 'number' ) {
1964
-					$onchange = "props.setAttributes({ $key: Number($key) } )";
1965
-				}
1966
-			}
1967
-			//									elseif ( $args['type'] == 'color' ) { //@todo ColorPicker labels are not shown yet, we use html5 color input for now https://github.com/WordPress/gutenberg/issues/14378
1968
-			//										$type = 'ColorPicker';
1969
-			//									}
1970
-			elseif ( $args['type'] == 'checkbox' ) {
1971
-				$type = 'CheckboxControl';
1972
-				$extra .= "checked: props.attributes.$key,";
1973
-				$onchange = "props.setAttributes({ $key: ! props.attributes.$key } )";
1974
-			}elseif ( $args['type'] == 'textarea' ) {
1975
-				$type = 'TextareaControl';
1976
-			} elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) {
1977
-				$type = 'SelectControl';
1978
-				if ( ! empty( $args['options'] ) ) {
1979
-					$options .= "options  : [";
1980
-					foreach ( $args['options'] as $option_val => $option_label ) {
1981
-						$options .= "{ value : '" . esc_attr( $option_val ) . "',     label : '" . esc_attr( $option_label ) . "'     },";
1982
-					}
1983
-					$options .= "],";
1984
-				}
1985
-				if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550
1986
-					$extra .= ' multiple: true, ';
1987
-					//$onchange = "props.setAttributes({ $key: ['edit'] } )";
1988
-					//$value = "['edit', 'delete']";
1989
-				}
1990
-			} elseif ( $args['type'] == 'alignment' ) {
1991
-				$type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example
1992
-			} else {
1993
-				return;// if we have not implemented the control then don't break the JS.
1994
-			}
1995
-
1996
-			// add show only if advanced
1997
-			if ( ! empty( $args['advanced'] ) ) {
1998
-				echo "props.attributes.show_advanced && ";
1999
-			}
2000
-			// add setting require if defined
2001
-			if ( ! empty( $args['element_require'] ) ) {
2002
-				echo $this->block_props_replace( $args['element_require'], true ) . " && ";
2003
-			}
2004
-			?>
1942
+            return str_replace( array(
1943
+                '<script>',
1944
+                '</script>'
1945
+            ), '', $output );
1946
+        }
1947
+
1948
+        public function build_block_arguments($key,$args){
1949
+            $custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : '';
1950
+            $options = '';
1951
+            $extra = '';
1952
+            $require = '';
1953
+
1954
+            // `content` is a protected and special argument
1955
+            if($key == 'content'){return;}
1956
+
1957
+            $onchange = "props.setAttributes({ $key: $key } )";
1958
+            $value = "props.attributes.$key";
1959
+            $text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'color' );
1960
+            if ( in_array( $args['type'], $text_type ) ) {
1961
+                $type = 'TextControl';
1962
+                // Save numbers as numbers and not strings
1963
+                if ( $args['type'] == 'number' ) {
1964
+                    $onchange = "props.setAttributes({ $key: Number($key) } )";
1965
+                }
1966
+            }
1967
+            //									elseif ( $args['type'] == 'color' ) { //@todo ColorPicker labels are not shown yet, we use html5 color input for now https://github.com/WordPress/gutenberg/issues/14378
1968
+            //										$type = 'ColorPicker';
1969
+            //									}
1970
+            elseif ( $args['type'] == 'checkbox' ) {
1971
+                $type = 'CheckboxControl';
1972
+                $extra .= "checked: props.attributes.$key,";
1973
+                $onchange = "props.setAttributes({ $key: ! props.attributes.$key } )";
1974
+            }elseif ( $args['type'] == 'textarea' ) {
1975
+                $type = 'TextareaControl';
1976
+            } elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) {
1977
+                $type = 'SelectControl';
1978
+                if ( ! empty( $args['options'] ) ) {
1979
+                    $options .= "options  : [";
1980
+                    foreach ( $args['options'] as $option_val => $option_label ) {
1981
+                        $options .= "{ value : '" . esc_attr( $option_val ) . "',     label : '" . esc_attr( $option_label ) . "'     },";
1982
+                    }
1983
+                    $options .= "],";
1984
+                }
1985
+                if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550
1986
+                    $extra .= ' multiple: true, ';
1987
+                    //$onchange = "props.setAttributes({ $key: ['edit'] } )";
1988
+                    //$value = "['edit', 'delete']";
1989
+                }
1990
+            } elseif ( $args['type'] == 'alignment' ) {
1991
+                $type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example
1992
+            } else {
1993
+                return;// if we have not implemented the control then don't break the JS.
1994
+            }
1995
+
1996
+            // add show only if advanced
1997
+            if ( ! empty( $args['advanced'] ) ) {
1998
+                echo "props.attributes.show_advanced && ";
1999
+            }
2000
+            // add setting require if defined
2001
+            if ( ! empty( $args['element_require'] ) ) {
2002
+                echo $this->block_props_replace( $args['element_require'], true ) . " && ";
2003
+            }
2004
+            ?>
2005 2005
 			el(
2006 2006
 			wp.components.<?php echo esc_attr( $type );?>,
2007 2007
 			{
2008 2008
 			label: '<?php echo esc_attr( $args['title'] );?>',
2009 2009
 			help: '<?php if ( isset( $args['desc'] ) ) {
2010
-				echo esc_attr( $args['desc'] );
2011
-			}?>',
2010
+                echo esc_attr( $args['desc'] );
2011
+            }?>',
2012 2012
 			value: <?php echo $value;?>,
2013 2013
 			<?php if ( $type == 'TextControl' && $args['type'] != 'text' ) {
2014
-				echo "type: '" . esc_attr( $args['type'] ) . "',";
2015
-			}?>
2014
+                echo "type: '" . esc_attr( $args['type'] ) . "',";
2015
+            }?>
2016 2016
 			<?php if ( ! empty( $args['placeholder'] ) ) {
2017
-				echo "placeholder: '" . esc_attr( $args['placeholder'] ) . "',";
2018
-			}?>
2017
+                echo "placeholder: '" . esc_attr( $args['placeholder'] ) . "',";
2018
+            }?>
2019 2019
 			<?php echo $options;?>
2020 2020
 			<?php echo $extra;?>
2021 2021
 			<?php echo $custom_attributes;?>
@@ -2025,508 +2025,508 @@  discard block
 block discarded – undo
2025 2025
 			}
2026 2026
 			),
2027 2027
 			<?php
2028
-		}
2029
-
2030
-		/**
2031
-		 * Convert an array of attributes to block string.
2032
-		 *
2033
-		 * @todo there is prob a faster way to do this, also we could add some validation here.
2034
-		 *
2035
-		 * @param $custom_attributes
2036
-		 *
2037
-		 * @return string
2038
-		 */
2039
-		public function array_to_attributes( $custom_attributes, $html = false ) {
2040
-			$attributes = '';
2041
-			if ( ! empty( $custom_attributes ) ) {
2042
-
2043
-				if ( $html ) {
2044
-					foreach ( $custom_attributes as $key => $val ) {
2045
-						$attributes .= " $key='$val' ";
2046
-					}
2047
-				} else {
2048
-					foreach ( $custom_attributes as $key => $val ) {
2049
-						$attributes .= "'$key': '$val',";
2050
-					}
2051
-				}
2052
-			}
2053
-
2054
-			return $attributes;
2055
-		}
2056
-
2057
-		/**
2058
-		 * A self looping function to create the output for JS block elements.
2059
-		 *
2060
-		 * This is what is output in the WP Editor visual view.
2061
-		 *
2062
-		 * @param $args
2063
-		 */
2064
-		public function block_element( $args ) {
2065
-
2066
-
2067
-			if ( ! empty( $args ) ) {
2068
-				foreach ( $args as $element => $new_args ) {
2069
-
2070
-					if ( is_array( $new_args ) ) { // its an element
2071
-
2072
-
2073
-						if ( isset( $new_args['element'] ) ) {
2074
-
2075
-							if ( isset( $new_args['element_require'] ) ) {
2076
-								echo str_replace( array(
2077
-										"'+",
2078
-										"+'"
2079
-									), '', $this->block_props_replace( $new_args['element_require'] ) ) . " &&  ";
2080
-								unset( $new_args['element_require'] );
2081
-							}
2082
-
2083
-							echo "\n el( '" . $new_args['element'] . "', {";
2084
-
2085
-							// get the attributes
2086
-							foreach ( $new_args as $new_key => $new_value ) {
2087
-
2088
-
2089
-								if ( $new_key == 'element' || $new_key == 'content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) {
2090
-									// do nothing
2091
-								} else {
2092
-									echo $this->block_element( array( $new_key => $new_value ) );
2093
-								}
2094
-							}
2095
-
2096
-							echo "},";// end attributes
2097
-
2098
-							// get the content
2099
-							$first_item = 0;
2100
-							foreach ( $new_args as $new_key => $new_value ) {
2101
-								if ( $new_key === 'content' || is_array( $new_value ) ) {
2102
-
2103
-									if ( $new_key === 'content' ) {
2104
-										echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'";
2105
-									}
2106
-
2107
-									if ( is_array( $new_value ) ) {
2108
-
2109
-										if ( isset( $new_value['element_require'] ) ) {
2110
-											echo str_replace( array(
2111
-													"'+",
2112
-													"+'"
2113
-												), '', $this->block_props_replace( $new_value['element_require'] ) ) . " &&  ";
2114
-											unset( $new_value['element_require'] );
2115
-										}
2116
-
2117
-										if ( isset( $new_value['element_repeat'] ) ) {
2118
-											$x = 1;
2119
-											while ( $x <= absint( $new_value['element_repeat'] ) ) {
2120
-												$this->block_element( array( '' => $new_value ) );
2121
-												$x ++;
2122
-											}
2123
-										} else {
2124
-											$this->block_element( array( '' => $new_value ) );
2125
-										}
2126
-									}
2127
-									$first_item ++;
2128
-								}
2129
-							}
2130
-
2131
-							echo ")";// end content
2132
-
2133
-							echo ", \n";
2134
-
2135
-						}
2136
-					} else {
2137
-
2138
-						if ( substr( $element, 0, 3 ) === "if_" ) {
2139
-							echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ",";
2140
-						} elseif ( $element == 'style' ) {
2141
-							echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
2142
-						} else {
2143
-							echo $element . ": '" . $this->block_props_replace( $new_args ) . "',";
2144
-						}
2145
-
2146
-					}
2147
-				}
2148
-			}
2149
-		}
2150
-
2151
-		/**
2152
-		 * Replace block attributes placeholders with the proper naming.
2153
-		 *
2154
-		 * @param $string
2155
-		 *
2156
-		 * @return mixed
2157
-		 */
2158
-		public function block_props_replace( $string, $no_wrap = false ) {
2159
-
2160
-			if ( $no_wrap ) {
2161
-				$string = str_replace( array( "[%", "%]" ), array( "props.attributes.", "" ), $string );
2162
-			} else {
2163
-				$string = str_replace( array( "[%", "%]" ), array( "'+props.attributes.", "+'" ), $string );
2164
-			}
2165
-
2166
-			return $string;
2167
-		}
2168
-
2169
-		/**
2170
-		 * Outputs the content of the widget
2171
-		 *
2172
-		 * @param array $args
2173
-		 * @param array $instance
2174
-		 */
2175
-		public function widget( $args, $instance ) {
2176
-
2177
-			// get the filtered values
2178
-			$argument_values = $this->argument_values( $instance );
2179
-			$argument_values = $this->string_to_bool( $argument_values );
2180
-			$output          = $this->output( $argument_values, $args );
2181
-
2182
-			$no_wrap = false;
2183
-			if( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ){ $no_wrap = true; }
2184
-
2185
-			ob_start();
2186
-			if ( $output && !$no_wrap) {
2187
-				// Before widget
2188
-				$before_widget = $args['before_widget'];
2189
-				$before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this );
2190
-				$before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this );
2191
-
2192
-				// After widget
2193
-				$after_widget = $args['after_widget'];
2194
-				$after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this );
2195
-				$after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this );
2196
-
2197
-				echo $before_widget;
2198
-				// elementor strips the widget wrapping div so we check for and add it back if needed
2199
-				if ( $this->is_elementor_widget_output() ) {
2200
-					echo ! empty( $this->options['widget_ops']['classname'] ) ? "<span class='" . esc_attr( $this->options['widget_ops']['classname'] ) . "'>" : '';
2201
-				}
2202
-				echo $this->output_title( $args, $instance );
2203
-				echo $output;
2204
-				if ( $this->is_elementor_widget_output() ) {
2205
-					echo ! empty( $this->options['widget_ops']['classname'] ) ? "</span>" : '';
2206
-				}
2207
-				echo $after_widget;
2208
-			} elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty
2209
-				$output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
2210
-				echo $output;
2211
-			} elseif($output && $no_wrap){
2212
-				echo $output;
2213
-			}
2214
-			$output = ob_get_clean();
2215
-
2216
-			$output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this );
2217
-
2218
-			echo $output;
2219
-		}
2220
-
2221
-		/**
2222
-		 * Tests if the current output is inside a elementor container.
2223
-		 *
2224
-		 * @since 1.0.4
2225
-		 * @return bool
2226
-		 */
2227
-		public function is_elementor_widget_output() {
2228
-			$result = false;
2229
-			if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) {
2230
-				$result = true;
2231
-			}
2232
-
2233
-			return $result;
2234
-		}
2235
-
2236
-		/**
2237
-		 * Tests if the current output is inside a elementor preview.
2238
-		 *
2239
-		 * @since 1.0.4
2240
-		 * @return bool
2241
-		 */
2242
-		public function is_elementor_preview() {
2243
-			$result = false;
2244
-			if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
2245
-				$result = true;
2246
-			}
2247
-
2248
-			return $result;
2249
-		}
2250
-
2251
-		/**
2252
-		 * Tests if the current output is inside a Divi preview.
2253
-		 *
2254
-		 * @since 1.0.6
2255
-		 * @return bool
2256
-		 */
2257
-		public function is_divi_preview() {
2258
-			$result = false;
2259
-			if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
2260
-				$result = true;
2261
-			}
2262
-
2263
-			return $result;
2264
-		}
2265
-
2266
-		/**
2267
-		 * Tests if the current output is inside a Beaver builder preview.
2268
-		 *
2269
-		 * @since 1.0.6
2270
-		 * @return bool
2271
-		 */
2272
-		public function is_beaver_preview() {
2273
-			$result = false;
2274
-			if ( isset( $_REQUEST['fl_builder'] ) ) {
2275
-				$result = true;
2276
-			}
2277
-
2278
-			return $result;
2279
-		}
2280
-
2281
-		/**
2282
-		 * Tests if the current output is inside a siteorigin builder preview.
2283
-		 *
2284
-		 * @since 1.0.6
2285
-		 * @return bool
2286
-		 */
2287
-		public function is_siteorigin_preview() {
2288
-			$result = false;
2289
-			if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
2290
-				$result = true;
2291
-			}
2292
-
2293
-			return $result;
2294
-		}
2295
-
2296
-		/**
2297
-		 * Tests if the current output is inside a cornerstone builder preview.
2298
-		 *
2299
-		 * @since 1.0.8
2300
-		 * @return bool
2301
-		 */
2302
-		public function is_cornerstone_preview() {
2303
-			$result = false;
2304
-			if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
2305
-				$result = true;
2306
-			}
2307
-
2308
-			return $result;
2309
-		}
2310
-
2311
-		/**
2312
-		 * Tests if the current output is inside a fusion builder preview.
2313
-		 *
2314
-		 * @since 1.1.0
2315
-		 * @return bool
2316
-		 */
2317
-		public function is_fusion_preview() {
2318
-			$result = false;
2319
-			if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
2320
-				$result = true;
2321
-			}
2322
-
2323
-			return $result;
2324
-		}
2325
-
2326
-		/**
2327
-		 * General function to check if we are in a preview situation.
2328
-		 *
2329
-		 * @since 1.0.6
2330
-		 * @return bool
2331
-		 */
2332
-		public function is_preview() {
2333
-			$preview = false;
2334
-			if ( $this->is_divi_preview() ) {
2335
-				$preview = true;
2336
-			} elseif ( $this->is_elementor_preview() ) {
2337
-				$preview = true;
2338
-			} elseif ( $this->is_beaver_preview() ) {
2339
-				$preview = true;
2340
-			} elseif ( $this->is_siteorigin_preview() ) {
2341
-				$preview = true;
2342
-			} elseif ( $this->is_cornerstone_preview() ) {
2343
-				$preview = true;
2344
-			} elseif ( $this->is_fusion_preview() ) {
2345
-				$preview = true;
2346
-			}
2347
-
2348
-			return $preview;
2349
-		}
2350
-
2351
-		/**
2352
-		 * Output the super title.
2353
-		 *
2354
-		 * @param $args
2355
-		 * @param array $instance
2356
-		 *
2357
-		 * @return string
2358
-		 */
2359
-		public function output_title( $args, $instance = array() ) {
2360
-			$output = '';
2361
-			if ( ! empty( $instance['title'] ) ) {
2362
-				/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
2363
-				$title  = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
2364
-				$output = $args['before_title'] . $title . $args['after_title'];
2365
-			}
2366
-
2367
-			return $output;
2368
-		}
2369
-
2370
-		/**
2371
-		 * Outputs the options form inputs for the widget.
2372
-		 *
2373
-		 * @param array $instance The widget options.
2374
-		 */
2375
-		public function form( $instance ) {
2376
-
2377
-			// set widget instance
2378
-			$this->instance = $instance;
2379
-
2380
-			// set it as a SD widget
2381
-			echo $this->widget_advanced_toggle();
2382
-
2383
-			echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>";
2384
-			$arguments_raw = $this->get_arguments();
2385
-
2386
-			if ( is_array( $arguments_raw ) ) {
2387
-
2388
-				$arguments = $this->group_arguments($arguments_raw);
2389
-
2390
-				// Do we have sections?
2391
-				$has_sections = $arguments == $arguments_raw ? false : true;
2392
-
2393
-
2394
-				if($has_sections){
2395
-					$panel_count = 0;
2396
-					foreach($arguments as $key => $args){
2397
-
2398
-						?>
2028
+        }
2029
+
2030
+        /**
2031
+         * Convert an array of attributes to block string.
2032
+         *
2033
+         * @todo there is prob a faster way to do this, also we could add some validation here.
2034
+         *
2035
+         * @param $custom_attributes
2036
+         *
2037
+         * @return string
2038
+         */
2039
+        public function array_to_attributes( $custom_attributes, $html = false ) {
2040
+            $attributes = '';
2041
+            if ( ! empty( $custom_attributes ) ) {
2042
+
2043
+                if ( $html ) {
2044
+                    foreach ( $custom_attributes as $key => $val ) {
2045
+                        $attributes .= " $key='$val' ";
2046
+                    }
2047
+                } else {
2048
+                    foreach ( $custom_attributes as $key => $val ) {
2049
+                        $attributes .= "'$key': '$val',";
2050
+                    }
2051
+                }
2052
+            }
2053
+
2054
+            return $attributes;
2055
+        }
2056
+
2057
+        /**
2058
+         * A self looping function to create the output for JS block elements.
2059
+         *
2060
+         * This is what is output in the WP Editor visual view.
2061
+         *
2062
+         * @param $args
2063
+         */
2064
+        public function block_element( $args ) {
2065
+
2066
+
2067
+            if ( ! empty( $args ) ) {
2068
+                foreach ( $args as $element => $new_args ) {
2069
+
2070
+                    if ( is_array( $new_args ) ) { // its an element
2071
+
2072
+
2073
+                        if ( isset( $new_args['element'] ) ) {
2074
+
2075
+                            if ( isset( $new_args['element_require'] ) ) {
2076
+                                echo str_replace( array(
2077
+                                        "'+",
2078
+                                        "+'"
2079
+                                    ), '', $this->block_props_replace( $new_args['element_require'] ) ) . " &&  ";
2080
+                                unset( $new_args['element_require'] );
2081
+                            }
2082
+
2083
+                            echo "\n el( '" . $new_args['element'] . "', {";
2084
+
2085
+                            // get the attributes
2086
+                            foreach ( $new_args as $new_key => $new_value ) {
2087
+
2088
+
2089
+                                if ( $new_key == 'element' || $new_key == 'content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) {
2090
+                                    // do nothing
2091
+                                } else {
2092
+                                    echo $this->block_element( array( $new_key => $new_value ) );
2093
+                                }
2094
+                            }
2095
+
2096
+                            echo "},";// end attributes
2097
+
2098
+                            // get the content
2099
+                            $first_item = 0;
2100
+                            foreach ( $new_args as $new_key => $new_value ) {
2101
+                                if ( $new_key === 'content' || is_array( $new_value ) ) {
2102
+
2103
+                                    if ( $new_key === 'content' ) {
2104
+                                        echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'";
2105
+                                    }
2106
+
2107
+                                    if ( is_array( $new_value ) ) {
2108
+
2109
+                                        if ( isset( $new_value['element_require'] ) ) {
2110
+                                            echo str_replace( array(
2111
+                                                    "'+",
2112
+                                                    "+'"
2113
+                                                ), '', $this->block_props_replace( $new_value['element_require'] ) ) . " &&  ";
2114
+                                            unset( $new_value['element_require'] );
2115
+                                        }
2116
+
2117
+                                        if ( isset( $new_value['element_repeat'] ) ) {
2118
+                                            $x = 1;
2119
+                                            while ( $x <= absint( $new_value['element_repeat'] ) ) {
2120
+                                                $this->block_element( array( '' => $new_value ) );
2121
+                                                $x ++;
2122
+                                            }
2123
+                                        } else {
2124
+                                            $this->block_element( array( '' => $new_value ) );
2125
+                                        }
2126
+                                    }
2127
+                                    $first_item ++;
2128
+                                }
2129
+                            }
2130
+
2131
+                            echo ")";// end content
2132
+
2133
+                            echo ", \n";
2134
+
2135
+                        }
2136
+                    } else {
2137
+
2138
+                        if ( substr( $element, 0, 3 ) === "if_" ) {
2139
+                            echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ",";
2140
+                        } elseif ( $element == 'style' ) {
2141
+                            echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
2142
+                        } else {
2143
+                            echo $element . ": '" . $this->block_props_replace( $new_args ) . "',";
2144
+                        }
2145
+
2146
+                    }
2147
+                }
2148
+            }
2149
+        }
2150
+
2151
+        /**
2152
+         * Replace block attributes placeholders with the proper naming.
2153
+         *
2154
+         * @param $string
2155
+         *
2156
+         * @return mixed
2157
+         */
2158
+        public function block_props_replace( $string, $no_wrap = false ) {
2159
+
2160
+            if ( $no_wrap ) {
2161
+                $string = str_replace( array( "[%", "%]" ), array( "props.attributes.", "" ), $string );
2162
+            } else {
2163
+                $string = str_replace( array( "[%", "%]" ), array( "'+props.attributes.", "+'" ), $string );
2164
+            }
2165
+
2166
+            return $string;
2167
+        }
2168
+
2169
+        /**
2170
+         * Outputs the content of the widget
2171
+         *
2172
+         * @param array $args
2173
+         * @param array $instance
2174
+         */
2175
+        public function widget( $args, $instance ) {
2176
+
2177
+            // get the filtered values
2178
+            $argument_values = $this->argument_values( $instance );
2179
+            $argument_values = $this->string_to_bool( $argument_values );
2180
+            $output          = $this->output( $argument_values, $args );
2181
+
2182
+            $no_wrap = false;
2183
+            if( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ){ $no_wrap = true; }
2184
+
2185
+            ob_start();
2186
+            if ( $output && !$no_wrap) {
2187
+                // Before widget
2188
+                $before_widget = $args['before_widget'];
2189
+                $before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this );
2190
+                $before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this );
2191
+
2192
+                // After widget
2193
+                $after_widget = $args['after_widget'];
2194
+                $after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this );
2195
+                $after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this );
2196
+
2197
+                echo $before_widget;
2198
+                // elementor strips the widget wrapping div so we check for and add it back if needed
2199
+                if ( $this->is_elementor_widget_output() ) {
2200
+                    echo ! empty( $this->options['widget_ops']['classname'] ) ? "<span class='" . esc_attr( $this->options['widget_ops']['classname'] ) . "'>" : '';
2201
+                }
2202
+                echo $this->output_title( $args, $instance );
2203
+                echo $output;
2204
+                if ( $this->is_elementor_widget_output() ) {
2205
+                    echo ! empty( $this->options['widget_ops']['classname'] ) ? "</span>" : '';
2206
+                }
2207
+                echo $after_widget;
2208
+            } elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty
2209
+                $output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
2210
+                echo $output;
2211
+            } elseif($output && $no_wrap){
2212
+                echo $output;
2213
+            }
2214
+            $output = ob_get_clean();
2215
+
2216
+            $output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this );
2217
+
2218
+            echo $output;
2219
+        }
2220
+
2221
+        /**
2222
+         * Tests if the current output is inside a elementor container.
2223
+         *
2224
+         * @since 1.0.4
2225
+         * @return bool
2226
+         */
2227
+        public function is_elementor_widget_output() {
2228
+            $result = false;
2229
+            if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) {
2230
+                $result = true;
2231
+            }
2232
+
2233
+            return $result;
2234
+        }
2235
+
2236
+        /**
2237
+         * Tests if the current output is inside a elementor preview.
2238
+         *
2239
+         * @since 1.0.4
2240
+         * @return bool
2241
+         */
2242
+        public function is_elementor_preview() {
2243
+            $result = false;
2244
+            if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
2245
+                $result = true;
2246
+            }
2247
+
2248
+            return $result;
2249
+        }
2250
+
2251
+        /**
2252
+         * Tests if the current output is inside a Divi preview.
2253
+         *
2254
+         * @since 1.0.6
2255
+         * @return bool
2256
+         */
2257
+        public function is_divi_preview() {
2258
+            $result = false;
2259
+            if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
2260
+                $result = true;
2261
+            }
2262
+
2263
+            return $result;
2264
+        }
2265
+
2266
+        /**
2267
+         * Tests if the current output is inside a Beaver builder preview.
2268
+         *
2269
+         * @since 1.0.6
2270
+         * @return bool
2271
+         */
2272
+        public function is_beaver_preview() {
2273
+            $result = false;
2274
+            if ( isset( $_REQUEST['fl_builder'] ) ) {
2275
+                $result = true;
2276
+            }
2277
+
2278
+            return $result;
2279
+        }
2280
+
2281
+        /**
2282
+         * Tests if the current output is inside a siteorigin builder preview.
2283
+         *
2284
+         * @since 1.0.6
2285
+         * @return bool
2286
+         */
2287
+        public function is_siteorigin_preview() {
2288
+            $result = false;
2289
+            if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
2290
+                $result = true;
2291
+            }
2292
+
2293
+            return $result;
2294
+        }
2295
+
2296
+        /**
2297
+         * Tests if the current output is inside a cornerstone builder preview.
2298
+         *
2299
+         * @since 1.0.8
2300
+         * @return bool
2301
+         */
2302
+        public function is_cornerstone_preview() {
2303
+            $result = false;
2304
+            if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
2305
+                $result = true;
2306
+            }
2307
+
2308
+            return $result;
2309
+        }
2310
+
2311
+        /**
2312
+         * Tests if the current output is inside a fusion builder preview.
2313
+         *
2314
+         * @since 1.1.0
2315
+         * @return bool
2316
+         */
2317
+        public function is_fusion_preview() {
2318
+            $result = false;
2319
+            if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
2320
+                $result = true;
2321
+            }
2322
+
2323
+            return $result;
2324
+        }
2325
+
2326
+        /**
2327
+         * General function to check if we are in a preview situation.
2328
+         *
2329
+         * @since 1.0.6
2330
+         * @return bool
2331
+         */
2332
+        public function is_preview() {
2333
+            $preview = false;
2334
+            if ( $this->is_divi_preview() ) {
2335
+                $preview = true;
2336
+            } elseif ( $this->is_elementor_preview() ) {
2337
+                $preview = true;
2338
+            } elseif ( $this->is_beaver_preview() ) {
2339
+                $preview = true;
2340
+            } elseif ( $this->is_siteorigin_preview() ) {
2341
+                $preview = true;
2342
+            } elseif ( $this->is_cornerstone_preview() ) {
2343
+                $preview = true;
2344
+            } elseif ( $this->is_fusion_preview() ) {
2345
+                $preview = true;
2346
+            }
2347
+
2348
+            return $preview;
2349
+        }
2350
+
2351
+        /**
2352
+         * Output the super title.
2353
+         *
2354
+         * @param $args
2355
+         * @param array $instance
2356
+         *
2357
+         * @return string
2358
+         */
2359
+        public function output_title( $args, $instance = array() ) {
2360
+            $output = '';
2361
+            if ( ! empty( $instance['title'] ) ) {
2362
+                /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
2363
+                $title  = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
2364
+                $output = $args['before_title'] . $title . $args['after_title'];
2365
+            }
2366
+
2367
+            return $output;
2368
+        }
2369
+
2370
+        /**
2371
+         * Outputs the options form inputs for the widget.
2372
+         *
2373
+         * @param array $instance The widget options.
2374
+         */
2375
+        public function form( $instance ) {
2376
+
2377
+            // set widget instance
2378
+            $this->instance = $instance;
2379
+
2380
+            // set it as a SD widget
2381
+            echo $this->widget_advanced_toggle();
2382
+
2383
+            echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>";
2384
+            $arguments_raw = $this->get_arguments();
2385
+
2386
+            if ( is_array( $arguments_raw ) ) {
2387
+
2388
+                $arguments = $this->group_arguments($arguments_raw);
2389
+
2390
+                // Do we have sections?
2391
+                $has_sections = $arguments == $arguments_raw ? false : true;
2392
+
2393
+
2394
+                if($has_sections){
2395
+                    $panel_count = 0;
2396
+                    foreach($arguments as $key => $args){
2397
+
2398
+                        ?>
2399 2399
 						<script>
2400 2400
 							//							jQuery(this).find("i").toggleClass("fas fa-chevron-up fas fa-chevron-down");jQuery(this).next().toggle();
2401 2401
 						</script>
2402 2402
 						<?php
2403 2403
 
2404
-						$hide = $panel_count ? ' style="display:none;" ' : '';
2405
-						$icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
2406
-						echo "<button onclick='jQuery(this).find(\"i\").toggleClass(\"fas fa-chevron-up fas fa-chevron-down\");jQuery(this).next().slideToggle();' type='button' class='sd-toggle-group-button sd-input-group-toggle".sanitize_title_with_dashes($key)."'>".esc_attr($key)." <i style='float:right;' class='".$icon_class."'></i></button>";
2407
-						echo "<div class='sd-toggle-group sd-input-group-".sanitize_title_with_dashes($key)."' $hide>";
2408
-
2409
-						foreach($args as $k => $a){
2410
-							$this->widget_inputs($a, $instance);
2411
-						}
2412
-
2413
-						echo "</div>";
2414
-
2415
-						$panel_count++;
2416
-
2417
-					}
2418
-				}else{
2419
-					foreach ( $arguments as $key => $args ) {
2420
-						$this->widget_inputs( $args, $instance );
2421
-					}
2422
-				}
2423
-
2424
-			}
2425
-		}
2426
-
2427
-		/**
2428
-		 * Get the hidden input that when added makes the advanced button show on widget settings.
2429
-		 *
2430
-		 * @return string
2431
-		 */
2432
-		public function widget_advanced_toggle() {
2433
-
2434
-			$output = '';
2435
-			if ( $this->block_show_advanced() ) {
2436
-				$val = 1;
2437
-			} else {
2438
-				$val = 0;
2439
-			}
2440
-
2441
-			$output .= "<input type='hidden'  class='sd-show-advanced' value='$val' />";
2442
-
2443
-			return $output;
2444
-		}
2445
-
2446
-		/**
2447
-		 * Convert require element.
2448
-		 *
2449
-		 * @since 1.0.0
2450
-		 *
2451
-		 * @param string $input Input element.
2452
-		 *
2453
-		 * @return string $output
2454
-		 */
2455
-		public function convert_element_require( $input ) {
2456
-
2457
-			$input = str_replace( "'", '"', $input );// we only want double quotes
2458
-
2459
-			$output = esc_attr( str_replace( array( "[%", "%]" ), array(
2460
-				"jQuery(form).find('[data-argument=\"",
2461
-				"\"]').find('input,select,textarea').val()"
2462
-			), $input ) );
2463
-
2464
-			return $output;
2465
-		}
2466
-
2467
-		/**
2468
-		 * Builds the inputs for the widget options.
2469
-		 *
2470
-		 * @param $args
2471
-		 * @param $instance
2472
-		 */
2473
-		public function widget_inputs( $args, $instance ) {
2474
-
2475
-			$class             = "";
2476
-			$element_require   = "";
2477
-			$custom_attributes = "";
2478
-
2479
-			// get value
2480
-			if ( isset( $instance[ $args['name'] ] ) ) {
2481
-				$value = $instance[ $args['name'] ];
2482
-			} elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) {
2483
-				$value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] );
2484
-			} else {
2485
-				$value = '';
2486
-			}
2487
-
2488
-			// get placeholder
2489
-			if ( ! empty( $args['placeholder'] ) ) {
2490
-				$placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'";
2491
-			} else {
2492
-				$placeholder = '';
2493
-			}
2494
-
2495
-			// get if advanced
2496
-			if ( isset( $args['advanced'] ) && $args['advanced'] ) {
2497
-				$class .= " sd-advanced-setting ";
2498
-			}
2499
-
2500
-			// element_require
2501
-			if ( isset( $args['element_require'] ) && $args['element_require'] ) {
2502
-				$element_require = $args['element_require'];
2503
-			}
2504
-
2505
-			// custom_attributes
2506
-			if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) {
2507
-				$custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true );
2508
-			}
2509
-
2510
-			// before wrapper
2511
-			?>
2404
+                        $hide = $panel_count ? ' style="display:none;" ' : '';
2405
+                        $icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
2406
+                        echo "<button onclick='jQuery(this).find(\"i\").toggleClass(\"fas fa-chevron-up fas fa-chevron-down\");jQuery(this).next().slideToggle();' type='button' class='sd-toggle-group-button sd-input-group-toggle".sanitize_title_with_dashes($key)."'>".esc_attr($key)." <i style='float:right;' class='".$icon_class."'></i></button>";
2407
+                        echo "<div class='sd-toggle-group sd-input-group-".sanitize_title_with_dashes($key)."' $hide>";
2408
+
2409
+                        foreach($args as $k => $a){
2410
+                            $this->widget_inputs($a, $instance);
2411
+                        }
2412
+
2413
+                        echo "</div>";
2414
+
2415
+                        $panel_count++;
2416
+
2417
+                    }
2418
+                }else{
2419
+                    foreach ( $arguments as $key => $args ) {
2420
+                        $this->widget_inputs( $args, $instance );
2421
+                    }
2422
+                }
2423
+
2424
+            }
2425
+        }
2426
+
2427
+        /**
2428
+         * Get the hidden input that when added makes the advanced button show on widget settings.
2429
+         *
2430
+         * @return string
2431
+         */
2432
+        public function widget_advanced_toggle() {
2433
+
2434
+            $output = '';
2435
+            if ( $this->block_show_advanced() ) {
2436
+                $val = 1;
2437
+            } else {
2438
+                $val = 0;
2439
+            }
2440
+
2441
+            $output .= "<input type='hidden'  class='sd-show-advanced' value='$val' />";
2442
+
2443
+            return $output;
2444
+        }
2445
+
2446
+        /**
2447
+         * Convert require element.
2448
+         *
2449
+         * @since 1.0.0
2450
+         *
2451
+         * @param string $input Input element.
2452
+         *
2453
+         * @return string $output
2454
+         */
2455
+        public function convert_element_require( $input ) {
2456
+
2457
+            $input = str_replace( "'", '"', $input );// we only want double quotes
2458
+
2459
+            $output = esc_attr( str_replace( array( "[%", "%]" ), array(
2460
+                "jQuery(form).find('[data-argument=\"",
2461
+                "\"]').find('input,select,textarea').val()"
2462
+            ), $input ) );
2463
+
2464
+            return $output;
2465
+        }
2466
+
2467
+        /**
2468
+         * Builds the inputs for the widget options.
2469
+         *
2470
+         * @param $args
2471
+         * @param $instance
2472
+         */
2473
+        public function widget_inputs( $args, $instance ) {
2474
+
2475
+            $class             = "";
2476
+            $element_require   = "";
2477
+            $custom_attributes = "";
2478
+
2479
+            // get value
2480
+            if ( isset( $instance[ $args['name'] ] ) ) {
2481
+                $value = $instance[ $args['name'] ];
2482
+            } elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) {
2483
+                $value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] );
2484
+            } else {
2485
+                $value = '';
2486
+            }
2487
+
2488
+            // get placeholder
2489
+            if ( ! empty( $args['placeholder'] ) ) {
2490
+                $placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'";
2491
+            } else {
2492
+                $placeholder = '';
2493
+            }
2494
+
2495
+            // get if advanced
2496
+            if ( isset( $args['advanced'] ) && $args['advanced'] ) {
2497
+                $class .= " sd-advanced-setting ";
2498
+            }
2499
+
2500
+            // element_require
2501
+            if ( isset( $args['element_require'] ) && $args['element_require'] ) {
2502
+                $element_require = $args['element_require'];
2503
+            }
2504
+
2505
+            // custom_attributes
2506
+            if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) {
2507
+                $custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true );
2508
+            }
2509
+
2510
+            // before wrapper
2511
+            ?>
2512 2512
 			<p class="sd-argument <?php echo esc_attr( $class ); ?>"
2513 2513
 			   data-argument='<?php echo esc_attr( $args['name'] ); ?>'
2514 2514
 			   data-element_require='<?php if ( $element_require ) {
2515
-				   echo $this->convert_element_require( $element_require );
2516
-			   } ?>'
2515
+                    echo $this->convert_element_require( $element_require );
2516
+                } ?>'
2517 2517
 			>
2518 2518
 				<?php
2519 2519
 
2520
-				switch ( $args['type'] ) {
2521
-					//array('text','password','number','email','tel','url','color')
2522
-					case "text":
2523
-					case "password":
2524
-					case "number":
2525
-					case "email":
2526
-					case "tel":
2527
-					case "url":
2528
-					case "color":
2529
-						?>
2520
+                switch ( $args['type'] ) {
2521
+                    //array('text','password','number','email','tel','url','color')
2522
+                    case "text":
2523
+                    case "password":
2524
+                    case "number":
2525
+                    case "email":
2526
+                    case "tel":
2527
+                    case "url":
2528
+                    case "color":
2529
+                        ?>
2530 2530
 						<label
2531 2531
 							for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label>
2532 2532
 						<input <?php echo $placeholder; ?> class="widefat"
@@ -2537,47 +2537,47 @@  discard block
 block discarded – undo
2537 2537
 							                               value="<?php echo esc_attr( $value ); ?>">
2538 2538
 						<?php
2539 2539
 
2540
-						break;
2541
-					case "select":
2542
-						$multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false;
2543
-						if ( $multiple ) {
2544
-							if ( empty( $value ) ) {
2545
-								$value = array();
2546
-							}
2547
-						}
2548
-						?>
2540
+                        break;
2541
+                    case "select":
2542
+                        $multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false;
2543
+                        if ( $multiple ) {
2544
+                            if ( empty( $value ) ) {
2545
+                                $value = array();
2546
+                            }
2547
+                        }
2548
+                        ?>
2549 2549
 						<label
2550 2550
 							for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label>
2551 2551
 						<select <?php echo $placeholder; ?> class="widefat"
2552 2552
 							<?php echo $custom_attributes; ?>
2553 2553
 							                                id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"
2554 2554
 							                                name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) );
2555
-							                                if ( $multiple ) {
2556
-								                                echo "[]";
2557
-							                                } ?>"
2555
+                                                            if ( $multiple ) {
2556
+                                                                echo "[]";
2557
+                                                            } ?>"
2558 2558
 							<?php if ( $multiple ) {
2559
-								echo "multiple";
2560
-							} //@todo not implemented yet due to gutenberg not supporting it
2561
-							?>
2559
+                                echo "multiple";
2560
+                            } //@todo not implemented yet due to gutenberg not supporting it
2561
+                            ?>
2562 2562
 						>
2563 2563
 							<?php
2564 2564
 
2565
-							if ( ! empty( $args['options'] ) ) {
2566
-								foreach ( $args['options'] as $val => $label ) {
2567
-									if ( $multiple ) {
2568
-										$selected = in_array( $val, $value ) ? 'selected="selected"' : '';
2569
-									} else {
2570
-										$selected = selected( $value, $val, false );
2571
-									}
2572
-									echo "<option value='$val' " . $selected . ">$label</option>";
2573
-								}
2574
-							}
2575
-							?>
2565
+                            if ( ! empty( $args['options'] ) ) {
2566
+                                foreach ( $args['options'] as $val => $label ) {
2567
+                                    if ( $multiple ) {
2568
+                                        $selected = in_array( $val, $value ) ? 'selected="selected"' : '';
2569
+                                    } else {
2570
+                                        $selected = selected( $value, $val, false );
2571
+                                    }
2572
+                                    echo "<option value='$val' " . $selected . ">$label</option>";
2573
+                                }
2574
+                            }
2575
+                            ?>
2576 2576
 						</select>
2577 2577
 						<?php
2578
-						break;
2579
-					case "checkbox":
2580
-						?>
2578
+                        break;
2579
+                    case "checkbox":
2580
+                        ?>
2581 2581
 						<input <?php echo $placeholder; ?>
2582 2582
 							<?php checked( 1, $value, true ) ?>
2583 2583
 							<?php echo $custom_attributes; ?>
@@ -2587,9 +2587,9 @@  discard block
 block discarded – undo
2587 2587
 						<label
2588 2588
 							for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label>
2589 2589
 						<?php
2590
-						break;
2591
-					case "textarea":
2592
-						?>
2590
+                        break;
2591
+                    case "textarea":
2592
+                        ?>
2593 2593
 						<label
2594 2594
 							for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label>
2595 2595
 						<textarea <?php echo $placeholder; ?> class="widefat"
@@ -2599,136 +2599,136 @@  discard block
 block discarded – undo
2599 2599
 							                               ><?php echo esc_attr( $value ); ?></textarea>
2600 2600
 						<?php
2601 2601
 
2602
-						break;
2603
-					case "hidden":
2604
-						?>
2602
+                        break;
2603
+                    case "hidden":
2604
+                        ?>
2605 2605
 						<input id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"
2606 2606
 						       name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" type="hidden"
2607 2607
 						       value="<?php echo esc_attr( $value ); ?>">
2608 2608
 						<?php
2609
-						break;
2610
-					default:
2611
-						echo "No input type found!"; // @todo we need to add more input types.
2612
-				}
2609
+                        break;
2610
+                    default:
2611
+                        echo "No input type found!"; // @todo we need to add more input types.
2612
+                }
2613 2613
 
2614
-				// after wrapper
2615
-				?>
2614
+                // after wrapper
2615
+                ?>
2616 2616
 			</p>
2617 2617
 			<?php
2618 2618
 
2619
-		}
2620
-
2621
-		/**
2622
-		 * Get the widget input description html.
2623
-		 *
2624
-		 * @param $args
2625
-		 *
2626
-		 * @return string
2627
-		 * @todo, need to make its own tooltip script
2628
-		 */
2629
-		public function widget_field_desc( $args ) {
2630
-
2631
-			$description = '';
2632
-			if ( isset( $args['desc'] ) && $args['desc'] ) {
2633
-				if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) {
2634
-					$description = $this->desc_tip( $args['desc'] );
2635
-				} else {
2636
-					$description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>';
2637
-				}
2638
-			}
2639
-
2640
-			return $description;
2641
-		}
2642
-
2643
-		/**
2644
-		 * Get the tool tip html.
2645
-		 *
2646
-		 * @param $tip
2647
-		 * @param bool $allow_html
2648
-		 *
2649
-		 * @return string
2650
-		 */
2651
-		function desc_tip( $tip, $allow_html = false ) {
2652
-			if ( $allow_html ) {
2653
-				$tip = $this->sanitize_tooltip( $tip );
2654
-			} else {
2655
-				$tip = esc_attr( $tip );
2656
-			}
2657
-
2658
-			return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>';
2659
-		}
2660
-
2661
-		/**
2662
-		 * Sanitize a string destined to be a tooltip.
2663
-		 *
2664
-		 * @param string $var
2665
-		 *
2666
-		 * @return string
2667
-		 */
2668
-		public function sanitize_tooltip( $var ) {
2669
-			return htmlspecialchars( wp_kses( html_entity_decode( $var ), array(
2670
-				'br'     => array(),
2671
-				'em'     => array(),
2672
-				'strong' => array(),
2673
-				'small'  => array(),
2674
-				'span'   => array(),
2675
-				'ul'     => array(),
2676
-				'li'     => array(),
2677
-				'ol'     => array(),
2678
-				'p'      => array(),
2679
-			) ) );
2680
-		}
2681
-
2682
-		/**
2683
-		 * Processing widget options on save
2684
-		 *
2685
-		 * @param array $new_instance The new options
2686
-		 * @param array $old_instance The previous options
2687
-		 *
2688
-		 * @return array
2689
-		 * @todo we should add some sanitation here.
2690
-		 */
2691
-		public function update( $new_instance, $old_instance ) {
2692
-
2693
-			//save the widget
2694
-			$instance = array_merge( (array) $old_instance, (array) $new_instance );
2695
-
2696
-			// set widget instance
2697
-			$this->instance = $instance;
2698
-
2699
-			if ( empty( $this->arguments ) ) {
2700
-				$this->get_arguments();
2701
-			}
2702
-
2703
-			// check for checkboxes
2704
-			if ( ! empty( $this->arguments ) ) {
2705
-				foreach ( $this->arguments as $argument ) {
2706
-					if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) {
2707
-						$instance[ $argument['name'] ] = '0';
2708
-					}
2709
-				}
2710
-			}
2711
-
2712
-			return $instance;
2713
-		}
2714
-
2715
-		/**
2716
-		 * Checks if the current call is a ajax call to get the block content.
2717
-		 *
2718
-		 * This can be used in your widget to return different content as the block content.
2719
-		 *
2720
-		 * @since 1.0.3
2721
-		 * @return bool
2722
-		 */
2723
-		public function is_block_content_call() {
2724
-			$result = false;
2725
-			if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
2726
-				$result = true;
2727
-			}
2728
-
2729
-			return $result;
2730
-		}
2731
-
2732
-	}
2619
+        }
2620
+
2621
+        /**
2622
+         * Get the widget input description html.
2623
+         *
2624
+         * @param $args
2625
+         *
2626
+         * @return string
2627
+         * @todo, need to make its own tooltip script
2628
+         */
2629
+        public function widget_field_desc( $args ) {
2630
+
2631
+            $description = '';
2632
+            if ( isset( $args['desc'] ) && $args['desc'] ) {
2633
+                if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) {
2634
+                    $description = $this->desc_tip( $args['desc'] );
2635
+                } else {
2636
+                    $description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>';
2637
+                }
2638
+            }
2639
+
2640
+            return $description;
2641
+        }
2642
+
2643
+        /**
2644
+         * Get the tool tip html.
2645
+         *
2646
+         * @param $tip
2647
+         * @param bool $allow_html
2648
+         *
2649
+         * @return string
2650
+         */
2651
+        function desc_tip( $tip, $allow_html = false ) {
2652
+            if ( $allow_html ) {
2653
+                $tip = $this->sanitize_tooltip( $tip );
2654
+            } else {
2655
+                $tip = esc_attr( $tip );
2656
+            }
2657
+
2658
+            return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>';
2659
+        }
2660
+
2661
+        /**
2662
+         * Sanitize a string destined to be a tooltip.
2663
+         *
2664
+         * @param string $var
2665
+         *
2666
+         * @return string
2667
+         */
2668
+        public function sanitize_tooltip( $var ) {
2669
+            return htmlspecialchars( wp_kses( html_entity_decode( $var ), array(
2670
+                'br'     => array(),
2671
+                'em'     => array(),
2672
+                'strong' => array(),
2673
+                'small'  => array(),
2674
+                'span'   => array(),
2675
+                'ul'     => array(),
2676
+                'li'     => array(),
2677
+                'ol'     => array(),
2678
+                'p'      => array(),
2679
+            ) ) );
2680
+        }
2681
+
2682
+        /**
2683
+         * Processing widget options on save
2684
+         *
2685
+         * @param array $new_instance The new options
2686
+         * @param array $old_instance The previous options
2687
+         *
2688
+         * @return array
2689
+         * @todo we should add some sanitation here.
2690
+         */
2691
+        public function update( $new_instance, $old_instance ) {
2692
+
2693
+            //save the widget
2694
+            $instance = array_merge( (array) $old_instance, (array) $new_instance );
2695
+
2696
+            // set widget instance
2697
+            $this->instance = $instance;
2698
+
2699
+            if ( empty( $this->arguments ) ) {
2700
+                $this->get_arguments();
2701
+            }
2702
+
2703
+            // check for checkboxes
2704
+            if ( ! empty( $this->arguments ) ) {
2705
+                foreach ( $this->arguments as $argument ) {
2706
+                    if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) {
2707
+                        $instance[ $argument['name'] ] = '0';
2708
+                    }
2709
+                }
2710
+            }
2711
+
2712
+            return $instance;
2713
+        }
2714
+
2715
+        /**
2716
+         * Checks if the current call is a ajax call to get the block content.
2717
+         *
2718
+         * This can be used in your widget to return different content as the block content.
2719
+         *
2720
+         * @since 1.0.3
2721
+         * @return bool
2722
+         */
2723
+        public function is_block_content_call() {
2724
+            $result = false;
2725
+            if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
2726
+                $result = true;
2727
+            }
2728
+
2729
+            return $result;
2730
+        }
2731
+
2732
+    }
2733 2733
 
2734 2734
 }
2735 2735
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +440 added lines, -440 removed lines patch added patch discarded remove patch
@@ -1,9 +1,9 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) {
2
+if (!defined('ABSPATH')) {
3 3
 	exit;
4 4
 }
5 5
 
6
-if ( ! class_exists( 'WP_Super_Duper' ) ) {
6
+if (!class_exists('WP_Super_Duper')) {
7 7
 
8 8
 
9 9
 	/**
@@ -36,27 +36,27 @@  discard block
 block discarded – undo
36 36
 		/**
37 37
 		 * Take the array options and use them to build.
38 38
 		 */
39
-		public function __construct( $options ) {
39
+		public function __construct($options) {
40 40
 			global $sd_widgets;
41 41
 
42
-			$sd_widgets[ $options['base_id'] ] = array(
42
+			$sd_widgets[$options['base_id']] = array(
43 43
 				'name'       => $options['name'],
44 44
 				'class_name' => $options['class_name']
45 45
 			);
46
-			$this->base_id                     = $options['base_id'];
46
+			$this->base_id = $options['base_id'];
47 47
 			// lets filter the options before we do anything
48
-			$options       = apply_filters( "wp_super_duper_options", $options );
49
-			$options       = apply_filters( "wp_super_duper_options_{$this->base_id}", $options );
50
-			$options       = $this->add_name_from_key( $options );
48
+			$options       = apply_filters("wp_super_duper_options", $options);
49
+			$options       = apply_filters("wp_super_duper_options_{$this->base_id}", $options);
50
+			$options       = $this->add_name_from_key($options);
51 51
 			$this->options = $options;
52 52
 
53 53
 			$this->base_id   = $options['base_id'];
54
-			$this->arguments = isset( $options['arguments'] ) ? $options['arguments'] : array();
54
+			$this->arguments = isset($options['arguments']) ? $options['arguments'] : array();
55 55
 
56 56
 			// init parent
57
-			parent::__construct( $options['base_id'], $options['name'], $options['widget_ops'] );
57
+			parent::__construct($options['base_id'], $options['name'], $options['widget_ops']);
58 58
 
59
-			if ( isset( $options['class_name'] ) ) {
59
+			if (isset($options['class_name'])) {
60 60
 				// register widget
61 61
 				$this->class_name = $options['class_name'];
62 62
 
@@ -64,54 +64,54 @@  discard block
 block discarded – undo
64 64
 				$this->register_shortcode();
65 65
 
66 66
 				// Fusion Builder (avada) support
67
-				if( function_exists('fusion_builder_map') ){ $this->register_fusion_element(); }
67
+				if (function_exists('fusion_builder_map')) { $this->register_fusion_element(); }
68 68
 
69 69
 				// register block
70
-				add_action( 'admin_enqueue_scripts', array( $this, 'register_block' ) );
70
+				add_action('admin_enqueue_scripts', array($this, 'register_block'));
71 71
 			}
72 72
 
73 73
 			// add the CSS and JS we need ONCE
74 74
 			global $sd_widget_scripts;
75 75
 
76
-			if ( ! $sd_widget_scripts ) {
77
-				wp_add_inline_script( 'admin-widgets', $this->widget_js() );
78
-				wp_add_inline_script( 'customize-controls', $this->widget_js() );
79
-				wp_add_inline_style( 'widgets', $this->widget_css() );
76
+			if (!$sd_widget_scripts) {
77
+				wp_add_inline_script('admin-widgets', $this->widget_js());
78
+				wp_add_inline_script('customize-controls', $this->widget_js());
79
+				wp_add_inline_style('widgets', $this->widget_css());
80 80
 
81 81
 				$sd_widget_scripts = true;
82 82
 
83 83
 				// add shortcode insert button once
84
-				add_action( 'media_buttons', array( $this, 'shortcode_insert_button' ) );
84
+				add_action('media_buttons', array($this, 'shortcode_insert_button'));
85 85
 				// generatepress theme sections compatibility
86
-				if ( function_exists( 'generate_sections_sections_metabox' ) ) {
87
-					add_action( 'generate_sections_metabox', array( $this, 'shortcode_insert_button_script' ) );
86
+				if (function_exists('generate_sections_sections_metabox')) {
87
+					add_action('generate_sections_metabox', array($this, 'shortcode_insert_button_script'));
88 88
 				}
89
-				if ( $this->is_preview() ) {
90
-					add_action( 'wp_footer', array( $this, 'shortcode_insert_button_script' ) );
89
+				if ($this->is_preview()) {
90
+					add_action('wp_footer', array($this, 'shortcode_insert_button_script'));
91 91
 					// this makes the insert button work for elementor
92
-					add_action( 'elementor/editor/after_enqueue_scripts', array(
92
+					add_action('elementor/editor/after_enqueue_scripts', array(
93 93
 						$this,
94 94
 						'shortcode_insert_button_script'
95
-					) ); // for elementor
95
+					)); // for elementor
96 96
 				}
97 97
 				// this makes the insert button work for cornerstone
98
-				add_action('wp_print_footer_scripts',array( __CLASS__, 'maybe_cornerstone_builder' ));
98
+				add_action('wp_print_footer_scripts', array(__CLASS__, 'maybe_cornerstone_builder'));
99 99
 
100
-				add_action( 'wp_ajax_super_duper_get_widget_settings', array( __CLASS__, 'get_widget_settings' ) );
101
-				add_action( 'wp_ajax_super_duper_get_picker', array( __CLASS__, 'get_picker' ) );
100
+				add_action('wp_ajax_super_duper_get_widget_settings', array(__CLASS__, 'get_widget_settings'));
101
+				add_action('wp_ajax_super_duper_get_picker', array(__CLASS__, 'get_picker'));
102 102
 
103 103
 				// add generator text to admin head
104
-				add_action( 'admin_head', array( $this, 'generator' ) );
104
+				add_action('admin_head', array($this, 'generator'));
105 105
 			}
106 106
 
107
-			do_action( 'wp_super_duper_widget_init', $options, $this );
107
+			do_action('wp_super_duper_widget_init', $options, $this);
108 108
 		}
109 109
 
110
-		public function register_fusion_element(){
110
+		public function register_fusion_element() {
111 111
 
112 112
 			$options = $this->options;
113 113
 
114
-			if($this->base_id){
114
+			if ($this->base_id) {
115 115
 
116 116
 				$params = $this->get_fusion_params();
117 117
 
@@ -122,7 +122,7 @@  discard block
 block discarded – undo
122 122
 					'allow_generator' => true,
123 123
 				);
124 124
 
125
-				if(!empty($params)){
125
+				if (!empty($params)) {
126 126
 					$args['params'] = $params;
127 127
 				}
128 128
 
@@ -131,12 +131,12 @@  discard block
 block discarded – undo
131 131
 
132 132
 		}
133 133
 
134
-		public function get_fusion_params(){
134
+		public function get_fusion_params() {
135 135
 			$params = array();
136 136
 			$arguments = $this->get_arguments();
137 137
 
138
-			if(!empty($arguments)){
139
-				foreach($arguments as $key => $val){
138
+			if (!empty($arguments)) {
139
+				foreach ($arguments as $key => $val) {
140 140
 					$param = array();
141 141
 					// type
142 142
 					$param['type'] = str_replace(
@@ -170,19 +170,19 @@  discard block
 block discarded – undo
170 170
 					$param['default'] = isset($val['default']) ? $val['default'] : '';
171 171
 
172 172
 					// Group
173
-					if(isset($val['group'])){
173
+					if (isset($val['group'])) {
174 174
 						$param['group'] = $val['group'];
175 175
 					}
176 176
 
177 177
 					// value
178
-					if($val['type'] == 'checkbox'){
179
-						if(isset($val['default']) && $val['default'] == '0'){
178
+					if ($val['type'] == 'checkbox') {
179
+						if (isset($val['default']) && $val['default'] == '0') {
180 180
 							unset($param['default']);
181 181
 						}
182
-						$param['value'] = array(''=>__("No"),'1'=>__("Yes"));
183
-					}elseif($param['type'] == 'select'){
182
+						$param['value'] = array(''=>__("No"), '1'=>__("Yes"));
183
+					}elseif ($param['type'] == 'select') {
184 184
 						$param['value'] = isset($val['options']) ? $val['options'] : array();
185
-					}else{
185
+					} else {
186 186
 						$param['value'] = isset($val['default']) ? $val['default'] : '';
187 187
 					}
188 188
 
@@ -199,8 +199,8 @@  discard block
 block discarded – undo
199 199
 		/**
200 200
 		 * Maybe insert the shortcode inserter button in the footer if we are in the cornerstone builder
201 201
 		 */
202
-		public static function maybe_cornerstone_builder(){
203
-			if(did_action('cornerstone_before_boot_app')){
202
+		public static function maybe_cornerstone_builder() {
203
+			if (did_action('cornerstone_before_boot_app')) {
204 204
 				self::shortcode_insert_button_script();
205 205
 			}
206 206
 		}
@@ -212,12 +212,12 @@  discard block
 block discarded – undo
212 212
 		 *
213 213
 		 * @return string
214 214
 		 */
215
-		public static function get_picker( $editor_id = '' ) {
215
+		public static function get_picker($editor_id = '') {
216 216
 
217 217
 			ob_start();
218
-			if ( isset( $_POST['editor_id'] ) ) {
219
-				$editor_id = esc_attr( $_POST['editor_id'] );
220
-			} elseif ( isset( $_REQUEST['et_fb'] ) ) {
218
+			if (isset($_POST['editor_id'])) {
219
+				$editor_id = esc_attr($_POST['editor_id']);
220
+			} elseif (isset($_REQUEST['et_fb'])) {
221 221
 				$editor_id = 'main_content_content_vb_tiny_mce';
222 222
 			}
223 223
 
@@ -226,13 +226,13 @@  discard block
 block discarded – undo
226 226
 
227 227
 			<div class="sd-shortcode-left-wrap">
228 228
 				<?php
229
-				ksort( $sd_widgets );
229
+				ksort($sd_widgets);
230 230
 				//				print_r($sd_widgets);exit;
231
-				if ( ! empty( $sd_widgets ) ) {
231
+				if (!empty($sd_widgets)) {
232 232
 					echo '<select class="widefat" onchange="sd_get_shortcode_options(this);">';
233
-					echo "<option>" . __( 'Select shortcode' ) . "</option>";
234
-					foreach ( $sd_widgets as $shortcode => $class ) {
235
-						echo "<option value='" . esc_attr( $shortcode ) . "'>" . esc_attr( $shortcode ) . " (" . esc_attr( $class['name'] ) . ")</option>";
233
+					echo "<option>" . __('Select shortcode') . "</option>";
234
+					foreach ($sd_widgets as $shortcode => $class) {
235
+						echo "<option value='" . esc_attr($shortcode) . "'>" . esc_attr($shortcode) . " (" . esc_attr($class['name']) . ")</option>";
236 236
 					}
237 237
 					echo "</select>";
238 238
 
@@ -245,37 +245,37 @@  discard block
 block discarded – undo
245 245
 			<div class="sd-shortcode-right-wrap">
246 246
 				<textarea id='sd-shortcode-output' disabled></textarea>
247 247
 				<div id='sd-shortcode-output-actions'>
248
-					<?php if ( $editor_id != '' ) { ?>
248
+					<?php if ($editor_id != '') { ?>
249 249
 						<button class="button sd-insert-shortcode-button"
250
-						        onclick="sd_insert_shortcode(<?php if ( ! empty( $editor_id ) ) {
250
+						        onclick="sd_insert_shortcode(<?php if (!empty($editor_id)) {
251 251
 							        echo "'" . $editor_id . "'";
252
-						        } ?>)"><?php _e( 'Insert shortcode' ); ?></button>
252
+						        } ?>)"><?php _e('Insert shortcode'); ?></button>
253 253
 					<?php } ?>
254 254
 					<button class="button"
255
-					        onclick="sd_copy_to_clipboard()"><?php _e( 'Copy shortcode' ); ?></button>
255
+					        onclick="sd_copy_to_clipboard()"><?php _e('Copy shortcode'); ?></button>
256 256
 				</div>
257 257
 			</div>
258 258
 			<?php
259 259
 
260 260
 			$html = ob_get_clean();
261 261
 
262
-			if ( wp_doing_ajax() ) {
262
+			if (wp_doing_ajax()) {
263 263
 				echo $html;
264 264
 				$should_die = true;
265 265
 
266 266
 				// some builder get the editor via ajax so we should not die on those ocasions
267 267
 				$dont_die = array(
268
-					'parent_tag',// WP Bakery
268
+					'parent_tag', // WP Bakery
269 269
 					'avia_request' // enfold
270 270
 				);
271 271
 
272
-				foreach ( $dont_die as $request ) {
273
-					if ( isset( $_REQUEST[ $request ] ) ) {
272
+				foreach ($dont_die as $request) {
273
+					if (isset($_REQUEST[$request])) {
274 274
 						$should_die = false;
275 275
 					}
276 276
 				}
277 277
 
278
-				if ( $should_die ) {
278
+				if ($should_die) {
279 279
 					wp_die();
280 280
 				}
281 281
 
@@ -302,16 +302,16 @@  discard block
 block discarded – undo
302 302
 		public static function get_widget_settings() {
303 303
 			global $sd_widgets;
304 304
 
305
-			$shortcode = isset( $_REQUEST['shortcode'] ) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes( $_REQUEST['shortcode'] ) : '';
306
-			if ( ! $shortcode ) {
305
+			$shortcode = isset($_REQUEST['shortcode']) && $_REQUEST['shortcode'] ? sanitize_title_with_dashes($_REQUEST['shortcode']) : '';
306
+			if (!$shortcode) {
307 307
 				wp_die();
308 308
 			}
309
-			$widget_args = isset( $sd_widgets[ $shortcode ] ) ? $sd_widgets[ $shortcode ] : '';
310
-			if ( ! $widget_args ) {
309
+			$widget_args = isset($sd_widgets[$shortcode]) ? $sd_widgets[$shortcode] : '';
310
+			if (!$widget_args) {
311 311
 				wp_die();
312 312
 			}
313
-			$class_name = isset( $widget_args['class_name'] ) && $widget_args['class_name'] ? $widget_args['class_name'] : '';
314
-			if ( ! $class_name ) {
313
+			$class_name = isset($widget_args['class_name']) && $widget_args['class_name'] ? $widget_args['class_name'] : '';
314
+			if (!$class_name) {
315 315
 				wp_die();
316 316
 			}
317 317
 
@@ -319,7 +319,7 @@  discard block
 block discarded – undo
319 319
 			$widget = new $class_name;
320 320
 
321 321
 			ob_start();
322
-			$widget->form( array() );
322
+			$widget->form(array());
323 323
 			$form = ob_get_clean();
324 324
 			echo "<form id='$shortcode'>" . $form . "<div class=\"widget-control-save\"></div></form>";
325 325
 			echo "<style>" . $widget->widget_css() . "</style>";
@@ -337,9 +337,9 @@  discard block
 block discarded – undo
337 337
 		 * @param string $editor_id Optional. Shortcode editor id. Default null.
338 338
 		 * @param string $insert_shortcode_function Optional. Insert shotcode function. Default null.
339 339
 		 */
340
-		public static function shortcode_insert_button( $editor_id = '', $insert_shortcode_function = '' ) {
340
+		public static function shortcode_insert_button($editor_id = '', $insert_shortcode_function = '') {
341 341
 			global $sd_widgets, $shortcode_insert_button_once;
342
-			if ( $shortcode_insert_button_once ) {
342
+			if ($shortcode_insert_button_once) {
343 343
 				return;
344 344
 			}
345 345
 			add_thickbox();
@@ -349,21 +349,21 @@  discard block
 block discarded – undo
349 349
 			 * Cornerstone makes us play dirty tricks :/
350 350
 			 * All media_buttons are removed via JS unless they are two specific id's so we wrap our content in this ID so it is not removed.
351 351
 			 */
352
-			if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
352
+			if (function_exists('cornerstone_plugin_init') && !is_admin()) {
353 353
 				echo '<span id="insert-media-button">';
354 354
 			}
355 355
 
356
-			echo self::shortcode_button( 'this', 'true' );
356
+			echo self::shortcode_button('this', 'true');
357 357
 
358 358
 			// see opening note
359
-			if ( function_exists( 'cornerstone_plugin_init' ) && ! is_admin() ) {
359
+			if (function_exists('cornerstone_plugin_init') && !is_admin()) {
360 360
 				echo '</span>'; // end #insert-media-button
361 361
 			}
362 362
 
363 363
 			// Add separate script for generatepress theme sections
364
-			if ( function_exists( 'generate_sections_sections_metabox' ) && did_action( 'generate_sections_metabox' ) ) {
364
+			if (function_exists('generate_sections_sections_metabox') && did_action('generate_sections_metabox')) {
365 365
 			} else {
366
-				self::shortcode_insert_button_script( $editor_id, $insert_shortcode_function );
366
+				self::shortcode_insert_button_script($editor_id, $insert_shortcode_function);
367 367
 			}
368 368
 
369 369
 			$shortcode_insert_button_once = true;
@@ -377,12 +377,12 @@  discard block
 block discarded – undo
377 377
 		 *
378 378
 		 * @return mixed
379 379
 		 */
380
-		public static function shortcode_button( $id = '', $search_for_id = '' ) {
380
+		public static function shortcode_button($id = '', $search_for_id = '') {
381 381
 			ob_start();
382 382
 			?>
383 383
 			<span class="sd-lable-shortcode-inserter">
384 384
 				<a onclick="sd_ajax_get_picker(<?php echo $id;
385
-				if ( $search_for_id ) {
385
+				if ($search_for_id) {
386 386
 					echo "," . $search_for_id;
387 387
 				} ?>);" href="#TB_inline?width=100%&height=550&inlineId=super-duper-content-ajaxed"
388 388
 				   class="thickbox button super-duper-content-open" title="Add Shortcode">
@@ -398,7 +398,7 @@  discard block
 block discarded – undo
398 398
 			$html = ob_get_clean();
399 399
 
400 400
 			// remove line breaks so we can use it in js
401
-			return preg_replace( "/\r|\n/", "", trim( $html ) );
401
+			return preg_replace("/\r|\n/", "", trim($html));
402 402
 		}
403 403
 
404 404
 		/**
@@ -456,7 +456,7 @@  discard block
 block discarded – undo
456 456
 						jQuery($this).data('sd-widget-enabled', true);
457 457
 					}
458 458
 
459
-					var $button = '<button title="<?php _e( 'Advanced Settings' );?>" class="button button-primary right sd-advanced-button" onclick="sd_so_toggle_advanced(this);return false;"><i class="fas fa-sliders-h" aria-hidden="true"></i></button>';
459
+					var $button = '<button title="<?php _e('Advanced Settings'); ?>" class="button button-primary right sd-advanced-button" onclick="sd_so_toggle_advanced(this);return false;"><i class="fas fa-sliders-h" aria-hidden="true"></i></button>';
460 460
 					var form = jQuery($this).parents('' + $selector + '');
461 461
 
462 462
 					if (jQuery($this).val() == '1' && jQuery(form).find('.sd-advanced-button').length == 0) {
@@ -493,10 +493,10 @@  discard block
 block discarded – undo
493 493
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
494 494
 			 */
495 495
 
496
-			return str_replace( array(
496
+			return str_replace(array(
497 497
 				'<script>',
498 498
 				'</script>'
499
-			), '', $output );
499
+			), '', $output);
500 500
 		}
501 501
 
502 502
 		/**
@@ -507,7 +507,7 @@  discard block
 block discarded – undo
507 507
 		 * @param string $editor_id
508 508
 		 * @param string $insert_shortcode_function
509 509
 		 */
510
-		public static function shortcode_insert_button_script( $editor_id = '', $insert_shortcode_function = '' ) {
510
+		public static function shortcode_insert_button_script($editor_id = '', $insert_shortcode_function = '') {
511 511
 			?>
512 512
 			<style>
513 513
 				.sd-shortcode-left-wrap {
@@ -625,22 +625,22 @@  discard block
 block discarded – undo
625 625
 					height: 250px;
626 626
 					width: 100%;
627 627
 				}
628
-				<?php if ( function_exists( 'generate_sections_sections_metabox' ) ) { ?>
628
+				<?php if (function_exists('generate_sections_sections_metabox')) { ?>
629 629
 				.generate-sections-modal #custom-media-buttons > .sd-lable-shortcode-inserter {
630 630
 					display: inline;
631 631
 				}
632 632
 				<?php } ?>
633 633
 			</style>
634 634
 			<?php
635
-			if ( class_exists( 'SiteOrigin_Panels' ) ) {
635
+			if (class_exists('SiteOrigin_Panels')) {
636 636
 				echo "<script>" . self::siteorigin_js() . "</script>";
637 637
 			}
638 638
 			?>
639 639
 			<script>
640 640
 				<?php
641
-				if(! empty( $insert_shortcode_function )){
641
+				if (!empty($insert_shortcode_function)) {
642 642
 					echo $insert_shortcode_function;
643
-				}else{
643
+				} else {
644 644
 
645 645
 				/**
646 646
 				 * Function for super duper insert shortcode.
@@ -653,9 +653,9 @@  discard block
 block discarded – undo
653 653
 					if ($shortcode) {
654 654
 						if (!$editor_id) {
655 655
 							<?php
656
-							if ( isset( $_REQUEST['et_fb'] ) ) {
656
+							if (isset($_REQUEST['et_fb'])) {
657 657
 								echo '$editor_id = "#main_content_content_vb_tiny_mce";';
658
-							} elseif ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) {
658
+							} elseif (isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor') {
659 659
 								echo '$editor_id = "#elementor-controls .wp-editor-container textarea";';
660 660
 							} else {
661 661
 								echo '$editor_id = "#wp-content-editor-container textarea";';
@@ -740,11 +740,11 @@  discard block
 block discarded – undo
740 740
 							'shortcode': $short_code,
741 741
 							'attributes': 123,
742 742
 							'post_id': 321,
743
-							'_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_output_shortcode' );?>'
743
+							'_ajax_nonce': '<?php echo wp_create_nonce('super_duper_output_shortcode'); ?>'
744 744
 						};
745 745
 
746 746
 						if (typeof ajaxurl === 'undefined') {
747
-							var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' );?>";
747
+							var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
748 748
 						}
749 749
 
750 750
 						jQuery.post(ajaxurl, data, function (response) {
@@ -953,11 +953,11 @@  discard block
 block discarded – undo
953 953
 					var data = {
954 954
 						'action': 'super_duper_get_picker',
955 955
 						'editor_id': $id,
956
-						'_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_picker' );?>'
956
+						'_ajax_nonce': '<?php echo wp_create_nonce('super_duper_picker'); ?>'
957 957
 					};
958 958
 
959 959
 					if (!ajaxurl) {
960
-						var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>";
960
+						var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
961 961
 					}
962 962
 
963 963
 					jQuery.post(ajaxurl, data, function (response) {
@@ -978,9 +978,9 @@  discard block
 block discarded – undo
978 978
 				 */
979 979
 				function sd_shortcode_button($id) {
980 980
 					if ($id) {
981
-						return '<?php echo self::shortcode_button( "\\''+\$id+'\\'" );?>';
981
+						return '<?php echo self::shortcode_button("\\''+\$id+'\\'"); ?>';
982 982
 					} else {
983
-						return '<?php echo self::shortcode_button();?>';
983
+						return '<?php echo self::shortcode_button(); ?>';
984 984
 					}
985 985
 				}
986 986
 
@@ -1036,10 +1036,10 @@  discard block
 block discarded – undo
1036 1036
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1037 1037
 			 */
1038 1038
 
1039
-			return str_replace( array(
1039
+			return str_replace(array(
1040 1040
 				'<style>',
1041 1041
 				'</style>'
1042
-			), '', $output );
1042
+			), '', $output);
1043 1043
 		}
1044 1044
 
1045 1045
 		/**
@@ -1109,7 +1109,7 @@  discard block
 block discarded – undo
1109 1109
 						jQuery($this).data('sd-widget-enabled', true);
1110 1110
 					}
1111 1111
 
1112
-					var $button = '<button title="<?php _e( 'Advanced Settings' );?>" class="button button-primary right sd-advanced-button" onclick="sd_toggle_advanced(this);return false;"><span class="dashicons dashicons-admin-settings" style="width: 28px;font-size: 28px;"></span></button>';
1112
+					var $button = '<button title="<?php _e('Advanced Settings'); ?>" class="button button-primary right sd-advanced-button" onclick="sd_toggle_advanced(this);return false;"><span class="dashicons dashicons-admin-settings" style="width: 28px;font-size: 28px;"></span></button>';
1113 1113
 					var form = jQuery($this).parents('' + $selector + '');
1114 1114
 
1115 1115
 					if (jQuery($this).val() == '1' && jQuery(form).find('.sd-advanced-button').length == 0) {
@@ -1201,7 +1201,7 @@  discard block
 block discarded – undo
1201 1201
 					});
1202 1202
 
1203 1203
 				}
1204
-				<?php do_action( 'wp_super_duper_widget_js', $this ); ?>
1204
+				<?php do_action('wp_super_duper_widget_js', $this); ?>
1205 1205
 			</script>
1206 1206
 			<?php
1207 1207
 			$output = ob_get_clean();
@@ -1210,10 +1210,10 @@  discard block
 block discarded – undo
1210 1210
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1211 1211
 			 */
1212 1212
 
1213
-			return str_replace( array(
1213
+			return str_replace(array(
1214 1214
 				'<script>',
1215 1215
 				'</script>'
1216
-			), '', $output );
1216
+			), '', $output);
1217 1217
 		}
1218 1218
 
1219 1219
 
@@ -1224,14 +1224,14 @@  discard block
 block discarded – undo
1224 1224
 		 *
1225 1225
 		 * @return mixed
1226 1226
 		 */
1227
-		private function add_name_from_key( $options, $arguments = false ) {
1228
-			if ( ! empty( $options['arguments'] ) ) {
1229
-				foreach ( $options['arguments'] as $key => $val ) {
1230
-					$options['arguments'][ $key ]['name'] = $key;
1227
+		private function add_name_from_key($options, $arguments = false) {
1228
+			if (!empty($options['arguments'])) {
1229
+				foreach ($options['arguments'] as $key => $val) {
1230
+					$options['arguments'][$key]['name'] = $key;
1231 1231
 				}
1232
-			} elseif ( $arguments && is_array( $options ) && ! empty( $options ) ) {
1233
-				foreach ( $options as $key => $val ) {
1234
-					$options[ $key ]['name'] = $key;
1232
+			} elseif ($arguments && is_array($options) && !empty($options)) {
1233
+				foreach ($options as $key => $val) {
1234
+					$options[$key]['name'] = $key;
1235 1235
 				}
1236 1236
 			}
1237 1237
 
@@ -1244,8 +1244,8 @@  discard block
 block discarded – undo
1244 1244
 		 * @since 1.0.0
1245 1245
 		 */
1246 1246
 		public function register_shortcode() {
1247
-			add_shortcode( $this->base_id, array( $this, 'shortcode_output' ) );
1248
-			add_action( 'wp_ajax_super_duper_output_shortcode', array( __CLASS__, 'render_shortcode' ) );
1247
+			add_shortcode($this->base_id, array($this, 'shortcode_output'));
1248
+			add_action('wp_ajax_super_duper_output_shortcode', array(__CLASS__, 'render_shortcode'));
1249 1249
 		}
1250 1250
 
1251 1251
 		/**
@@ -1255,33 +1255,33 @@  discard block
 block discarded – undo
1255 1255
 		 */
1256 1256
 		public static function render_shortcode() {
1257 1257
 
1258
-			check_ajax_referer( 'super_duper_output_shortcode', '_ajax_nonce', true );
1259
-			if ( ! current_user_can( 'manage_options' ) ) {
1258
+			check_ajax_referer('super_duper_output_shortcode', '_ajax_nonce', true);
1259
+			if (!current_user_can('manage_options')) {
1260 1260
 				wp_die();
1261 1261
 			}
1262 1262
 
1263 1263
 			// we might need the $post value here so lets set it.
1264
-			if ( isset( $_POST['post_id'] ) && $_POST['post_id'] ) {
1265
-				$post_obj = get_post( absint( $_POST['post_id'] ) );
1266
-				if ( ! empty( $post_obj ) && empty( $post ) ) {
1264
+			if (isset($_POST['post_id']) && $_POST['post_id']) {
1265
+				$post_obj = get_post(absint($_POST['post_id']));
1266
+				if (!empty($post_obj) && empty($post)) {
1267 1267
 					global $post;
1268 1268
 					$post = $post_obj;
1269 1269
 				}
1270 1270
 			}
1271 1271
 
1272
-			if ( isset( $_POST['shortcode'] ) && $_POST['shortcode'] ) {
1273
-				$shortcode_name   = sanitize_title_with_dashes( $_POST['shortcode'] );
1274
-				$attributes_array = isset( $_POST['attributes'] ) && $_POST['attributes'] ? $_POST['attributes'] : array();
1272
+			if (isset($_POST['shortcode']) && $_POST['shortcode']) {
1273
+				$shortcode_name   = sanitize_title_with_dashes($_POST['shortcode']);
1274
+				$attributes_array = isset($_POST['attributes']) && $_POST['attributes'] ? $_POST['attributes'] : array();
1275 1275
 				$attributes       = '';
1276
-				if ( ! empty( $attributes_array ) ) {
1277
-					foreach ( $attributes_array as $key => $value ) {
1278
-						$attributes .= " " . sanitize_title_with_dashes( $key ) . "='" . wp_slash( $value ) . "' ";
1276
+				if (!empty($attributes_array)) {
1277
+					foreach ($attributes_array as $key => $value) {
1278
+						$attributes .= " " . sanitize_title_with_dashes($key) . "='" . wp_slash($value) . "' ";
1279 1279
 					}
1280 1280
 				}
1281 1281
 
1282 1282
 				$shortcode = "[" . $shortcode_name . " " . $attributes . "]";
1283 1283
 
1284
-				echo do_shortcode( $shortcode );
1284
+				echo do_shortcode($shortcode);
1285 1285
 
1286 1286
 			}
1287 1287
 			wp_die();
@@ -1295,42 +1295,42 @@  discard block
 block discarded – undo
1295 1295
 		 *
1296 1296
 		 * @return string
1297 1297
 		 */
1298
-		public function shortcode_output( $args = array(), $content = '' ) {
1299
-			$args = self::argument_values( $args );
1298
+		public function shortcode_output($args = array(), $content = '') {
1299
+			$args = self::argument_values($args);
1300 1300
 
1301 1301
 			// add extra argument so we know its a output to gutenberg
1302 1302
 			//$args
1303
-			$args = $this->string_to_bool( $args );
1303
+			$args = $this->string_to_bool($args);
1304 1304
 
1305 1305
 			// if we have a enclosed shortcode we add it to the special `html` argument
1306
-			if(!empty($content)){
1306
+			if (!empty($content)) {
1307 1307
 				$args['html'] = $content;
1308 1308
 			}
1309 1309
 
1310
-			$class = isset( $this->options['widget_ops']['classname'] ) ? esc_attr( $this->options['widget_ops']['classname'] ) : '';
1310
+			$class = isset($this->options['widget_ops']['classname']) ? esc_attr($this->options['widget_ops']['classname']) : '';
1311 1311
 
1312
-			$class = apply_filters( 'wp_super_duper_div_classname', $class, $args, $this );
1313
-			$class = apply_filters( 'wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this );
1312
+			$class = apply_filters('wp_super_duper_div_classname', $class, $args, $this);
1313
+			$class = apply_filters('wp_super_duper_div_classname_' . $this->base_id, $class, $args, $this);
1314 1314
 
1315
-			$attrs = apply_filters( 'wp_super_duper_div_attrs', '', $args, $this );
1316
-			$attrs = apply_filters( 'wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this ); //@todo this does not seem right @kiran?
1315
+			$attrs = apply_filters('wp_super_duper_div_attrs', '', $args, $this);
1316
+			$attrs = apply_filters('wp_super_duper_div_attrs_' . $this->base_id, '', $args, $this); //@todo this does not seem right @kiran?
1317 1317
 
1318 1318
 			$shortcode_args = array();
1319 1319
 			$output         = '';
1320
-			$no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1321
-			if( isset( $args['no_wrap'] ) && $args['no_wrap'] ){ $no_wrap = true; }
1322
-			$main_content   = $this->output( $args, $shortcode_args, $content );
1323
-			if ( $main_content && ! $no_wrap ) {
1320
+			$no_wrap        = isset($this->options['no_wrap']) && $this->options['no_wrap'] ? true : false;
1321
+			if (isset($args['no_wrap']) && $args['no_wrap']) { $no_wrap = true; }
1322
+			$main_content   = $this->output($args, $shortcode_args, $content);
1323
+			if ($main_content && !$no_wrap) {
1324 1324
 				// wrap the shortcode in a div with the same class as the widget
1325 1325
 				$output .= '<div class="' . $class . '" ' . $attrs . '>';
1326
-				if ( ! empty( $args['title'] ) ) {
1326
+				if (!empty($args['title'])) {
1327 1327
 					// if its a shortcode and there is a title try to grab the title wrappers
1328
-					$shortcode_args = array( 'before_title' => '', 'after_title' => '' );
1329
-					if ( empty( $instance ) ) {
1328
+					$shortcode_args = array('before_title' => '', 'after_title' => '');
1329
+					if (empty($instance)) {
1330 1330
 						global $wp_registered_sidebars;
1331
-						if ( ! empty( $wp_registered_sidebars ) ) {
1332
-							foreach ( $wp_registered_sidebars as $sidebar ) {
1333
-								if ( ! empty( $sidebar['before_title'] ) ) {
1331
+						if (!empty($wp_registered_sidebars)) {
1332
+							foreach ($wp_registered_sidebars as $sidebar) {
1333
+								if (!empty($sidebar['before_title'])) {
1334 1334
 									$shortcode_args['before_title'] = $sidebar['before_title'];
1335 1335
 									$shortcode_args['after_title']  = $sidebar['after_title'];
1336 1336
 									break;
@@ -1338,20 +1338,20 @@  discard block
 block discarded – undo
1338 1338
 							}
1339 1339
 						}
1340 1340
 					}
1341
-					$output .= $this->output_title( $shortcode_args, $args );
1341
+					$output .= $this->output_title($shortcode_args, $args);
1342 1342
 				}
1343 1343
 				$output .= $main_content;
1344 1344
 				$output .= '</div>';
1345
-			} elseif ( $main_content && $no_wrap ) {
1345
+			} elseif ($main_content && $no_wrap) {
1346 1346
 				$output .= $main_content;
1347 1347
 			}
1348 1348
 
1349 1349
 			// if preview show a placeholder if empty
1350
-			if ( $this->is_preview() && $output == '' ) {
1351
-				$output = $this->preview_placeholder_text( "[{" . $this->base_id . "}]" );
1350
+			if ($this->is_preview() && $output == '') {
1351
+				$output = $this->preview_placeholder_text("[{" . $this->base_id . "}]");
1352 1352
 			}
1353 1353
 
1354
-			return apply_filters( 'wp_super_duper_widget_output', $output, $args, $shortcode_args, $this );
1354
+			return apply_filters('wp_super_duper_widget_output', $output, $args, $shortcode_args, $this);
1355 1355
 		}
1356 1356
 
1357 1357
 		/**
@@ -1361,8 +1361,8 @@  discard block
 block discarded – undo
1361 1361
 		 *
1362 1362
 		 * @return string
1363 1363
 		 */
1364
-		public function preview_placeholder_text( $name = '' ) {
1365
-			return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . sprintf( __( 'Placeholder for: %s' ), $name ) . "</div>";
1364
+		public function preview_placeholder_text($name = '') {
1365
+			return "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" . sprintf(__('Placeholder for: %s'), $name) . "</div>";
1366 1366
 		}
1367 1367
 
1368 1368
 		/**
@@ -1372,13 +1372,13 @@  discard block
 block discarded – undo
1372 1372
 		 *
1373 1373
 		 * @return mixed
1374 1374
 		 */
1375
-		public function string_to_bool( $options ) {
1375
+		public function string_to_bool($options) {
1376 1376
 			// convert bool strings to booleans
1377
-			foreach ( $options as $key => $val ) {
1378
-				if ( $val == 'false' ) {
1379
-					$options[ $key ] = false;
1380
-				} elseif ( $val == 'true' ) {
1381
-					$options[ $key ] = true;
1377
+			foreach ($options as $key => $val) {
1378
+				if ($val == 'false') {
1379
+					$options[$key] = false;
1380
+				} elseif ($val == 'true') {
1381
+					$options[$key] = true;
1382 1382
 				}
1383 1383
 			}
1384 1384
 
@@ -1394,27 +1394,27 @@  discard block
 block discarded – undo
1394 1394
 		 *
1395 1395
 		 * @return array
1396 1396
 		 */
1397
-		public function argument_values( $instance ) {
1397
+		public function argument_values($instance) {
1398 1398
 			$argument_values = array();
1399 1399
 
1400 1400
 			// set widget instance
1401 1401
 			$this->instance = $instance;
1402 1402
 
1403
-			if ( empty( $this->arguments ) ) {
1403
+			if (empty($this->arguments)) {
1404 1404
 				$this->arguments = $this->get_arguments();
1405 1405
 			}
1406 1406
 
1407
-			if ( ! empty( $this->arguments ) ) {
1408
-				foreach ( $this->arguments as $key => $args ) {
1407
+			if (!empty($this->arguments)) {
1408
+				foreach ($this->arguments as $key => $args) {
1409 1409
 					// set the input name from the key
1410 1410
 					$args['name'] = $key;
1411 1411
 					//
1412
-					$argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : '';
1413
-					if($args['type']=='checkbox' && $argument_values[ $key ] == ''){
1412
+					$argument_values[$key] = isset($instance[$key]) ? $instance[$key] : '';
1413
+					if ($args['type'] == 'checkbox' && $argument_values[$key] == '') {
1414 1414
 						// don't set default for an empty checkbox
1415 1415
 					}
1416
-					elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) {
1417
-						$argument_values[ $key ] = $args['default'];
1416
+					elseif ($argument_values[$key] == '' && isset($args['default'])) {
1417
+						$argument_values[$key] = $args['default'];
1418 1418
 					}
1419 1419
 				}
1420 1420
 			}
@@ -1441,12 +1441,12 @@  discard block
 block discarded – undo
1441 1441
 		 * @return array Get arguments.
1442 1442
 		 */
1443 1443
 		public function get_arguments() {
1444
-			if ( empty( $this->arguments ) ) {
1444
+			if (empty($this->arguments)) {
1445 1445
 				$this->arguments = $this->set_arguments();
1446 1446
 			}
1447 1447
 
1448
-			$this->arguments = apply_filters( 'wp_super_duper_arguments', $this->arguments, $this->options, $this->instance );
1449
-			$this->arguments = $this->add_name_from_key( $this->arguments, true );
1448
+			$this->arguments = apply_filters('wp_super_duper_arguments', $this->arguments, $this->options, $this->instance);
1449
+			$this->arguments = $this->add_name_from_key($this->arguments, true);
1450 1450
 
1451 1451
 			return $this->arguments;
1452 1452
 		}
@@ -1458,7 +1458,7 @@  discard block
 block discarded – undo
1458 1458
 		 * @param array $widget_args
1459 1459
 		 * @param string $content
1460 1460
 		 */
1461
-		public function output( $args = array(), $widget_args = array(), $content = '' ) {
1461
+		public function output($args = array(), $widget_args = array(), $content = '') {
1462 1462
 
1463 1463
 		}
1464 1464
 
@@ -1466,10 +1466,10 @@  discard block
 block discarded – undo
1466 1466
 		 * Add the dynamic block code inline when the wp-block in enqueued.
1467 1467
 		 */
1468 1468
 		public function register_block() {
1469
-			wp_add_inline_script( 'wp-blocks', $this->block() );
1470
-			if ( class_exists( 'SiteOrigin_Panels' ) ) {
1469
+			wp_add_inline_script('wp-blocks', $this->block());
1470
+			if (class_exists('SiteOrigin_Panels')) {
1471 1471
 
1472
-				wp_add_inline_script( 'wp-blocks', $this->siteorigin_js() );
1472
+				wp_add_inline_script('wp-blocks', $this->siteorigin_js());
1473 1473
 
1474 1474
 			}
1475 1475
 		}
@@ -1484,13 +1484,13 @@  discard block
 block discarded – undo
1484 1484
 			$show      = false;
1485 1485
 			$arguments = $this->arguments;
1486 1486
 
1487
-			if ( empty( $arguments ) ) {
1487
+			if (empty($arguments)) {
1488 1488
 				$arguments = $this->get_arguments();
1489 1489
 			}
1490 1490
 
1491
-			if ( ! empty( $arguments ) ) {
1492
-				foreach ( $arguments as $argument ) {
1493
-					if ( isset( $argument['advanced'] ) && $argument['advanced'] ) {
1491
+			if (!empty($arguments)) {
1492
+				foreach ($arguments as $argument) {
1493
+					if (isset($argument['advanced']) && $argument['advanced']) {
1494 1494
 						$show = true;
1495 1495
 						break; // no need to continue if we know we have it
1496 1496
 					}
@@ -1509,15 +1509,15 @@  discard block
 block discarded – undo
1509 1509
 
1510 1510
 			$url = $this->url;
1511 1511
 
1512
-			if(!$url){
1512
+			if (!$url) {
1513 1513
 				// check if we are inside a plugin
1514
-				$file_dir = str_replace("/includes","", dirname( __FILE__ ));
1514
+				$file_dir = str_replace("/includes", "", dirname(__FILE__));
1515 1515
 
1516
-				$dir_parts = explode("/wp-content/",$file_dir);
1517
-				$url_parts = explode("/wp-content/",plugins_url());
1516
+				$dir_parts = explode("/wp-content/", $file_dir);
1517
+				$url_parts = explode("/wp-content/", plugins_url());
1518 1518
 
1519
-				if(!empty($url_parts[0]) && !empty($dir_parts[1])){
1520
-					$url = trailingslashit( $url_parts[0]."/wp-content/".$dir_parts[1] );
1519
+				if (!empty($url_parts[0]) && !empty($dir_parts[1])) {
1520
+					$url = trailingslashit($url_parts[0] . "/wp-content/" . $dir_parts[1]);
1521 1521
 					$this->url = $url;
1522 1522
 				}
1523 1523
 			}
@@ -1536,46 +1536,46 @@  discard block
 block discarded – undo
1536 1536
 		 * @since 1.1.0
1537 1537
 		 * @return string
1538 1538
 		 */
1539
-		public function get_block_icon($icon){
1539
+		public function get_block_icon($icon) {
1540 1540
 
1541 1541
 			// check if we have a Font Awesome icon
1542 1542
 			$fa_type = '';
1543
-			if(substr( $icon, 0, 7 ) === "fas fa-"){
1543
+			if (substr($icon, 0, 7) === "fas fa-") {
1544 1544
 				$fa_type = 'solid';
1545
-			}elseif(substr( $icon, 0, 7 ) === "far fa-"){
1545
+			}elseif (substr($icon, 0, 7) === "far fa-") {
1546 1546
 				$fa_type = 'regular';
1547
-			}elseif(substr( $icon, 0, 7 ) === "fab fa-"){
1547
+			}elseif (substr($icon, 0, 7) === "fab fa-") {
1548 1548
 				$fa_type = 'brands';
1549
-			}else{
1550
-				$icon = "'".$icon."'";
1549
+			} else {
1550
+				$icon = "'" . $icon . "'";
1551 1551
 			}
1552 1552
 
1553 1553
 			// set the icon if we found one
1554
-			if($fa_type){
1555
-				$fa_icon = str_replace(array("fas fa-","far fa-","fab fa-"),"",$icon);
1556
-				$icon  = "el('svg',{width: 20, height: 20, viewBox: '0 0 20 20'},el('use', {'xlink:href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."','href': '".$this->get_url()."icons/".$fa_type.".svg#".$fa_icon."'}))";
1554
+			if ($fa_type) {
1555
+				$fa_icon = str_replace(array("fas fa-", "far fa-", "fab fa-"), "", $icon);
1556
+				$icon = "el('svg',{width: 20, height: 20, viewBox: '0 0 20 20'},el('use', {'xlink:href': '" . $this->get_url() . "icons/" . $fa_type . ".svg#" . $fa_icon . "','href': '" . $this->get_url() . "icons/" . $fa_type . ".svg#" . $fa_icon . "'}))";
1557 1557
 			}
1558 1558
 
1559 1559
 			return $icon;
1560 1560
 		}
1561 1561
 
1562
-		public function group_arguments($arguments){
1562
+		public function group_arguments($arguments) {
1563 1563
 //			echo '###';print_r($arguments);
1564
-			if(!empty($arguments)){
1564
+			if (!empty($arguments)) {
1565 1565
 				$temp_arguments = array();
1566 1566
 				$general = __("General");
1567 1567
 				$add_sections = false;
1568
-				foreach($arguments as $key => $args){
1569
-					if(isset($args['group'])){
1568
+				foreach ($arguments as $key => $args) {
1569
+					if (isset($args['group'])) {
1570 1570
 						$temp_arguments[$args['group']][$key] = $args;
1571 1571
 						$add_sections = true;
1572
-					}else{
1572
+					} else {
1573 1573
 						$temp_arguments[$general][$key] = $args;
1574 1574
 					}
1575 1575
 				}
1576 1576
 
1577 1577
 				// only add sections if more than one
1578
-				if($add_sections){
1578
+				if ($add_sections) {
1579 1579
 					$arguments = $temp_arguments;
1580 1580
 				}
1581 1581
 			}
@@ -1627,28 +1627,28 @@  discard block
 block discarded – undo
1627 1627
 					 * @return {?WPBlock}          The block, if it has been successfully
1628 1628
 					 *                             registered; otherwise `undefined`.
1629 1629
 					 */
1630
-					registerBlockType('<?php echo str_replace( "_", "-", sanitize_title_with_dashes( $this->options['textdomain'] ) . '/' . sanitize_title_with_dashes( $this->options['class_name'] ) );  ?>', { // Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.
1631
-						title: '<?php echo $this->options['name'];?>', // Block title.
1632
-						description: '<?php echo esc_attr( $this->options['widget_ops']['description'] )?>', // Block title.
1633
-						icon: <?php echo $this->get_block_icon($this->options['block-icon']);?>,//'<?php echo isset( $this->options['block-icon'] ) ? esc_attr( $this->options['block-icon'] ) : 'shield-alt';?>', // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.
1630
+					registerBlockType('<?php echo str_replace("_", "-", sanitize_title_with_dashes($this->options['textdomain']) . '/' . sanitize_title_with_dashes($this->options['class_name'])); ?>', { // Block name. Block names must be string that contains a namespace prefix. Example: my-plugin/my-custom-block.
1631
+						title: '<?php echo $this->options['name']; ?>', // Block title.
1632
+						description: '<?php echo esc_attr($this->options['widget_ops']['description'])?>', // Block title.
1633
+						icon: <?php echo $this->get_block_icon($this->options['block-icon']); ?>,//'<?php echo isset($this->options['block-icon']) ? esc_attr($this->options['block-icon']) : 'shield-alt'; ?>', // Block icon from Dashicons → https://developer.wordpress.org/resource/dashicons/.
1634 1634
 						supports: {
1635 1635
 							<?php
1636
-							if(isset($this->options['block-supports'])){
1637
-								echo $this->array_to_attributes( $this->options['block-supports'] );
1636
+							if (isset($this->options['block-supports'])) {
1637
+								echo $this->array_to_attributes($this->options['block-supports']);
1638 1638
 							}
1639 1639
 							?>
1640 1640
 						},
1641
-						category: '<?php echo isset( $this->options['block-category'] ) ? esc_attr( $this->options['block-category'] ) : 'common';?>', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.
1642
-						<?php if ( isset( $this->options['block-keywords'] ) ) {
1641
+						category: '<?php echo isset($this->options['block-category']) ? esc_attr($this->options['block-category']) : 'common'; ?>', // Block category — Group blocks together based on common traits E.g. common, formatting, layout widgets, embed.
1642
+						<?php if (isset($this->options['block-keywords'])) {
1643 1643
 						echo "keywords : " . $this->options['block-keywords'] . ",";
1644 1644
 					}?>
1645 1645
 
1646 1646
 						<?php
1647 1647
 
1648 1648
 						// maybe set no_wrap
1649
-						$no_wrap        = isset( $this->options['no_wrap'] ) && $this->options['no_wrap'] ? true : false;
1650
-						if( isset( $this->arguments['no_wrap'] ) && $this->arguments['no_wrap'] ){ $no_wrap = true; }
1651
-						if( $no_wrap ){ $this->options['block-wrap'] = ''; }
1649
+						$no_wrap = isset($this->options['no_wrap']) && $this->options['no_wrap'] ? true : false;
1650
+						if (isset($this->arguments['no_wrap']) && $this->arguments['no_wrap']) { $no_wrap = true; }
1651
+						if ($no_wrap) { $this->options['block-wrap'] = ''; }
1652 1652
 
1653 1653
 						$show_advanced = $this->block_show_advanced();
1654 1654
 
@@ -1659,10 +1659,10 @@  discard block
 block discarded – undo
1659 1659
 						echo "  html: false";
1660 1660
 						echo "},";*/
1661 1661
 
1662
-						if ( ! empty( $this->arguments ) ) {
1662
+						if (!empty($this->arguments)) {
1663 1663
 							echo "attributes : {";
1664 1664
 
1665
-							if ( $show_advanced ) {
1665
+							if ($show_advanced) {
1666 1666
 								echo "show_advanced: {";
1667 1667
 								echo "	type: 'boolean',";
1668 1668
 								echo "  default: false,";
@@ -1670,41 +1670,41 @@  discard block
 block discarded – undo
1670 1670
 							}
1671 1671
 
1672 1672
 							// block wrap element
1673
-							if ( !empty( $this->options['block-wrap'] ) ) { //@todo we should validate this?
1673
+							if (!empty($this->options['block-wrap'])) { //@todo we should validate this?
1674 1674
 								echo "block_wrap: {";
1675 1675
 								echo "	type: 'string',";
1676
-								echo "  default: '" . esc_attr( $this->options['block-wrap'] ) . "',";
1676
+								echo "  default: '" . esc_attr($this->options['block-wrap']) . "',";
1677 1677
 								echo "},";
1678 1678
 							}
1679 1679
 
1680
-							foreach ( $this->arguments as $key => $args ) {
1680
+							foreach ($this->arguments as $key => $args) {
1681 1681
 
1682 1682
 								// set if we should show alignment
1683
-								if ( $key == 'alignment' ) {
1683
+								if ($key == 'alignment') {
1684 1684
 									$show_alignment = true;
1685 1685
 								}
1686 1686
 
1687 1687
 								$extra = '';
1688 1688
 
1689
-								if ( $args['type'] == 'checkbox' ) {
1689
+								if ($args['type'] == 'checkbox') {
1690 1690
 									$type    = 'boolean';
1691
-									$default = isset( $args['default'] ) && $args['default'] ? 'true' : 'false';
1692
-								} elseif ( $args['type'] == 'number' ) {
1691
+									$default = isset($args['default']) && $args['default'] ? 'true' : 'false';
1692
+								} elseif ($args['type'] == 'number') {
1693 1693
 									$type    = 'number';
1694
-									$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1695
-								} elseif ( $args['type'] == 'select' && ! empty( $args['multiple'] ) ) {
1694
+									$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
1695
+								} elseif ($args['type'] == 'select' && !empty($args['multiple'])) {
1696 1696
 									$type = 'array';
1697
-									if ( is_array( $args['default'] ) ) {
1698
-										$default = isset( $args['default'] ) ? "['" . implode( "','", $args['default'] ) . "']" : "[]";
1697
+									if (is_array($args['default'])) {
1698
+										$default = isset($args['default']) ? "['" . implode("','", $args['default']) . "']" : "[]";
1699 1699
 									} else {
1700
-										$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1700
+										$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
1701 1701
 									}
1702
-								} elseif ( $args['type'] == 'multiselect' ) {
1702
+								} elseif ($args['type'] == 'multiselect') {
1703 1703
 									$type    = 'array';
1704
-									$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1704
+									$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
1705 1705
 								} else {
1706 1706
 									$type    = 'string';
1707
-									$default = isset( $args['default'] ) ? "'" . $args['default'] . "'" : "''";
1707
+									$default = isset($args['default']) ? "'" . $args['default'] . "'" : "''";
1708 1708
 								}
1709 1709
 								echo $key . " : {";
1710 1710
 								echo "type : '$type',";
@@ -1735,12 +1735,12 @@  discard block
 block discarded – undo
1735 1735
 									is_fetching = true;
1736 1736
 									var data = {
1737 1737
 										'action': 'super_duper_output_shortcode',
1738
-										'shortcode': '<?php echo $this->options['base_id'];?>',
1738
+										'shortcode': '<?php echo $this->options['base_id']; ?>',
1739 1739
 										'attributes': props.attributes,
1740
-										'post_id': <?php global $post; if ( isset( $post->ID ) ) {
1740
+										'post_id': <?php global $post; if (isset($post->ID)) {
1741 1741
 										echo $post->ID;
1742 1742
 									}?>,
1743
-										'_ajax_nonce': '<?php echo wp_create_nonce( 'super_duper_output_shortcode' );?>'
1743
+										'_ajax_nonce': '<?php echo wp_create_nonce('super_duper_output_shortcode'); ?>'
1744 1744
 									};
1745 1745
 
1746 1746
 									jQuery.post(ajaxurl, data, function (response) {
@@ -1749,7 +1749,7 @@  discard block
 block discarded – undo
1749 1749
 
1750 1750
 										// if the content is empty then we place some placeholder text
1751 1751
 										if (env == '') {
1752
-											env = "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" + "<?php _e( 'Placeholder for: ' );?>" + props.name + "</div>";
1752
+											env = "<div style='background:#0185ba33;padding: 10px;border: 4px #ccc dashed;'>" + "<?php _e('Placeholder for: '); ?>" + props.name + "</div>";
1753 1753
 										}
1754 1754
 
1755 1755
 										props.setAttributes({content: env});
@@ -1768,7 +1768,7 @@  discard block
 block discarded – undo
1768 1768
 
1769 1769
 								el(wp.blockEditor.BlockControls, {key: 'controls'},
1770 1770
 
1771
-									<?php if($show_alignment){?>
1771
+									<?php if ($show_alignment) {?>
1772 1772
 									el(
1773 1773
 										wp.blockEditor.AlignmentToolbar,
1774 1774
 										{
@@ -1786,9 +1786,9 @@  discard block
 block discarded – undo
1786 1786
 
1787 1787
 									<?php
1788 1788
 
1789
-									if(! empty( $this->arguments )){
1789
+									if (!empty($this->arguments)) {
1790 1790
 
1791
-									if ( $show_advanced ) {
1791
+									if ($show_advanced) {
1792 1792
 									?>
1793 1793
 									el(
1794 1794
 										wp.components.ToggleControl,
@@ -1810,17 +1810,17 @@  discard block
 block discarded – undo
1810 1810
 									$has_sections = $arguments == $this->arguments ? false : true;
1811 1811
 
1812 1812
 
1813
-									if($has_sections){
1813
+									if ($has_sections) {
1814 1814
 									$panel_count = 0;
1815
-									foreach($arguments as $key => $args){
1815
+									foreach ($arguments as $key => $args) {
1816 1816
 									?>
1817 1817
 									el(wp.components.PanelBody, {
1818 1818
 											title: '<?php esc_attr_e($key); ?>',
1819
-											initialOpen: <?php if($panel_count){echo "false";}else{echo "true";}?>
1819
+											initialOpen: <?php if ($panel_count) {echo "false"; } else {echo "true"; }?>
1820 1820
 										},
1821 1821
 										<?php
1822 1822
 
1823
-										foreach($args as $k => $a){
1823
+										foreach ($args as $k => $a) {
1824 1824
 											$this->build_block_arguments($k, $a);
1825 1825
 										}
1826 1826
 										?>
@@ -1829,8 +1829,8 @@  discard block
 block discarded – undo
1829 1829
 									$panel_count++;
1830 1830
 
1831 1831
 									}
1832
-									}else{
1833
-										foreach($this->arguments as $key => $args){
1832
+									} else {
1833
+										foreach ($this->arguments as $key => $args) {
1834 1834
 											$this->build_block_arguments($key, $args);
1835 1835
 										}
1836 1836
 									}
@@ -1844,9 +1844,9 @@  discard block
 block discarded – undo
1844 1844
 
1845 1845
 								<?php
1846 1846
 								// If the user sets block-output array then build it
1847
-								if ( ! empty( $this->options['block-output'] ) ) {
1848
-								$this->block_element( $this->options['block-output'] );
1849
-							}else{
1847
+								if (!empty($this->options['block-output'])) {
1848
+								$this->block_element($this->options['block-output']);
1849
+							} else {
1850 1850
 								// if no block-output is set then we try and get the shortcode html output via ajax.
1851 1851
 								?>
1852 1852
 								el('div', {
@@ -1870,19 +1870,19 @@  discard block
 block discarded – undo
1870 1870
 							var align = '';
1871 1871
 
1872 1872
 							// build the shortcode.
1873
-							var content = "[<?php echo $this->options['base_id'];?>";
1873
+							var content = "[<?php echo $this->options['base_id']; ?>";
1874 1874
 							$html = '';
1875 1875
 							<?php
1876 1876
 
1877
-							if(! empty( $this->arguments )){
1877
+							if (!empty($this->arguments)) {
1878 1878
 
1879
-							foreach($this->arguments as $key => $args){
1879
+							foreach ($this->arguments as $key => $args) {
1880 1880
 							?>
1881
-							if (attr.hasOwnProperty("<?php echo esc_attr( $key );?>")) {
1882
-								if('<?php echo esc_attr( $key );?>' == 'html'){
1883
-									$html = attr.<?php echo esc_attr( $key );?>;
1881
+							if (attr.hasOwnProperty("<?php echo esc_attr($key); ?>")) {
1882
+								if('<?php echo esc_attr($key); ?>' == 'html'){
1883
+									$html = attr.<?php echo esc_attr($key); ?>;
1884 1884
 								}else{
1885
-									content += " <?php echo esc_attr( $key );?>='" + attr.<?php echo esc_attr( $key );?>+ "' ";
1885
+									content += " <?php echo esc_attr($key); ?>='" + attr.<?php echo esc_attr($key); ?>+ "' ";
1886 1886
 								}
1887 1887
 							}
1888 1888
 							<?php
@@ -1894,7 +1894,7 @@  discard block
 block discarded – undo
1894 1894
 							
1895 1895
 							// if has html element
1896 1896
 							if($html){
1897
-								content += $html + "[/<?php echo $this->options['base_id'];?>]";
1897
+								content += $html + "[/<?php echo $this->options['base_id']; ?>]";
1898 1898
 							}
1899 1899
 
1900 1900
 
@@ -1912,11 +1912,11 @@  discard block
 block discarded – undo
1912 1912
 							}
1913 1913
 
1914 1914
 							<?php
1915
-							if(isset( $this->options['block-wrap'] ) && $this->options['block-wrap'] == ''){
1915
+							if (isset($this->options['block-wrap']) && $this->options['block-wrap'] == '') {
1916 1916
 							?>
1917 1917
 							return content;
1918 1918
 							<?php
1919
-							}else{
1919
+							} else {
1920 1920
 							?>
1921 1921
 							var block_wrap = 'div';
1922 1922
 							if (attr.hasOwnProperty("block_wrap")) {
@@ -1939,88 +1939,88 @@  discard block
 block discarded – undo
1939 1939
 			 * We only add the <script> tags for code highlighting, so we strip them from the output.
1940 1940
 			 */
1941 1941
 
1942
-			return str_replace( array(
1942
+			return str_replace(array(
1943 1943
 				'<script>',
1944 1944
 				'</script>'
1945
-			), '', $output );
1945
+			), '', $output);
1946 1946
 		}
1947 1947
 
1948
-		public function build_block_arguments($key,$args){
1949
-			$custom_attributes = ! empty( $args['custom_attributes'] ) ? $this->array_to_attributes( $args['custom_attributes'] ) : '';
1948
+		public function build_block_arguments($key, $args) {
1949
+			$custom_attributes = !empty($args['custom_attributes']) ? $this->array_to_attributes($args['custom_attributes']) : '';
1950 1950
 			$options = '';
1951 1951
 			$extra = '';
1952 1952
 			$require = '';
1953 1953
 
1954 1954
 			// `content` is a protected and special argument
1955
-			if($key == 'content'){return;}
1955
+			if ($key == 'content') {return; }
1956 1956
 
1957 1957
 			$onchange = "props.setAttributes({ $key: $key } )";
1958 1958
 			$value = "props.attributes.$key";
1959
-			$text_type = array( 'text', 'password', 'number', 'email', 'tel', 'url', 'color' );
1960
-			if ( in_array( $args['type'], $text_type ) ) {
1959
+			$text_type = array('text', 'password', 'number', 'email', 'tel', 'url', 'color');
1960
+			if (in_array($args['type'], $text_type)) {
1961 1961
 				$type = 'TextControl';
1962 1962
 				// Save numbers as numbers and not strings
1963
-				if ( $args['type'] == 'number' ) {
1963
+				if ($args['type'] == 'number') {
1964 1964
 					$onchange = "props.setAttributes({ $key: Number($key) } )";
1965 1965
 				}
1966 1966
 			}
1967 1967
 			//									elseif ( $args['type'] == 'color' ) { //@todo ColorPicker labels are not shown yet, we use html5 color input for now https://github.com/WordPress/gutenberg/issues/14378
1968 1968
 			//										$type = 'ColorPicker';
1969 1969
 			//									}
1970
-			elseif ( $args['type'] == 'checkbox' ) {
1970
+			elseif ($args['type'] == 'checkbox') {
1971 1971
 				$type = 'CheckboxControl';
1972 1972
 				$extra .= "checked: props.attributes.$key,";
1973 1973
 				$onchange = "props.setAttributes({ $key: ! props.attributes.$key } )";
1974
-			}elseif ( $args['type'] == 'textarea' ) {
1974
+			}elseif ($args['type'] == 'textarea') {
1975 1975
 				$type = 'TextareaControl';
1976
-			} elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) {
1976
+			} elseif ($args['type'] == 'select' || $args['type'] == 'multiselect') {
1977 1977
 				$type = 'SelectControl';
1978
-				if ( ! empty( $args['options'] ) ) {
1978
+				if (!empty($args['options'])) {
1979 1979
 					$options .= "options  : [";
1980
-					foreach ( $args['options'] as $option_val => $option_label ) {
1981
-						$options .= "{ value : '" . esc_attr( $option_val ) . "',     label : '" . esc_attr( $option_label ) . "'     },";
1980
+					foreach ($args['options'] as $option_val => $option_label) {
1981
+						$options .= "{ value : '" . esc_attr($option_val) . "',     label : '" . esc_attr($option_label) . "'     },";
1982 1982
 					}
1983 1983
 					$options .= "],";
1984 1984
 				}
1985
-				if ( isset( $args['multiple'] ) && $args['multiple'] ) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550
1985
+				if (isset($args['multiple']) && $args['multiple']) { //@todo multiselect does not work at the moment: https://github.com/WordPress/gutenberg/issues/5550
1986 1986
 					$extra .= ' multiple: true, ';
1987 1987
 					//$onchange = "props.setAttributes({ $key: ['edit'] } )";
1988 1988
 					//$value = "['edit', 'delete']";
1989 1989
 				}
1990
-			} elseif ( $args['type'] == 'alignment' ) {
1990
+			} elseif ($args['type'] == 'alignment') {
1991 1991
 				$type = 'AlignmentToolbar'; // @todo this does not seem to work but cant find a example
1992 1992
 			} else {
1993
-				return;// if we have not implemented the control then don't break the JS.
1993
+				return; // if we have not implemented the control then don't break the JS.
1994 1994
 			}
1995 1995
 
1996 1996
 			// add show only if advanced
1997
-			if ( ! empty( $args['advanced'] ) ) {
1997
+			if (!empty($args['advanced'])) {
1998 1998
 				echo "props.attributes.show_advanced && ";
1999 1999
 			}
2000 2000
 			// add setting require if defined
2001
-			if ( ! empty( $args['element_require'] ) ) {
2002
-				echo $this->block_props_replace( $args['element_require'], true ) . " && ";
2001
+			if (!empty($args['element_require'])) {
2002
+				echo $this->block_props_replace($args['element_require'], true) . " && ";
2003 2003
 			}
2004 2004
 			?>
2005 2005
 			el(
2006
-			wp.components.<?php echo esc_attr( $type );?>,
2006
+			wp.components.<?php echo esc_attr($type); ?>,
2007 2007
 			{
2008
-			label: '<?php echo esc_attr( $args['title'] );?>',
2009
-			help: '<?php if ( isset( $args['desc'] ) ) {
2010
-				echo esc_attr( $args['desc'] );
2008
+			label: '<?php echo esc_attr($args['title']); ?>',
2009
+			help: '<?php if (isset($args['desc'])) {
2010
+				echo esc_attr($args['desc']);
2011 2011
 			}?>',
2012
-			value: <?php echo $value;?>,
2013
-			<?php if ( $type == 'TextControl' && $args['type'] != 'text' ) {
2014
-				echo "type: '" . esc_attr( $args['type'] ) . "',";
2012
+			value: <?php echo $value; ?>,
2013
+			<?php if ($type == 'TextControl' && $args['type'] != 'text') {
2014
+				echo "type: '" . esc_attr($args['type']) . "',";
2015 2015
 			}?>
2016
-			<?php if ( ! empty( $args['placeholder'] ) ) {
2017
-				echo "placeholder: '" . esc_attr( $args['placeholder'] ) . "',";
2016
+			<?php if (!empty($args['placeholder'])) {
2017
+				echo "placeholder: '" . esc_attr($args['placeholder']) . "',";
2018 2018
 			}?>
2019
-			<?php echo $options;?>
2020
-			<?php echo $extra;?>
2021
-			<?php echo $custom_attributes;?>
2022
-			onChange: function ( <?php echo $key;?> ) {
2023
-			<?php echo $onchange;?>
2019
+			<?php echo $options; ?>
2020
+			<?php echo $extra; ?>
2021
+			<?php echo $custom_attributes; ?>
2022
+			onChange: function ( <?php echo $key; ?> ) {
2023
+			<?php echo $onchange; ?>
2024 2024
 			}
2025 2025
 			}
2026 2026
 			),
@@ -2036,16 +2036,16 @@  discard block
 block discarded – undo
2036 2036
 		 *
2037 2037
 		 * @return string
2038 2038
 		 */
2039
-		public function array_to_attributes( $custom_attributes, $html = false ) {
2039
+		public function array_to_attributes($custom_attributes, $html = false) {
2040 2040
 			$attributes = '';
2041
-			if ( ! empty( $custom_attributes ) ) {
2041
+			if (!empty($custom_attributes)) {
2042 2042
 
2043
-				if ( $html ) {
2044
-					foreach ( $custom_attributes as $key => $val ) {
2043
+				if ($html) {
2044
+					foreach ($custom_attributes as $key => $val) {
2045 2045
 						$attributes .= " $key='$val' ";
2046 2046
 					}
2047 2047
 				} else {
2048
-					foreach ( $custom_attributes as $key => $val ) {
2048
+					foreach ($custom_attributes as $key => $val) {
2049 2049
 						$attributes .= "'$key': '$val',";
2050 2050
 					}
2051 2051
 				}
@@ -2061,86 +2061,86 @@  discard block
 block discarded – undo
2061 2061
 		 *
2062 2062
 		 * @param $args
2063 2063
 		 */
2064
-		public function block_element( $args ) {
2064
+		public function block_element($args) {
2065 2065
 
2066 2066
 
2067
-			if ( ! empty( $args ) ) {
2068
-				foreach ( $args as $element => $new_args ) {
2067
+			if (!empty($args)) {
2068
+				foreach ($args as $element => $new_args) {
2069 2069
 
2070
-					if ( is_array( $new_args ) ) { // its an element
2070
+					if (is_array($new_args)) { // its an element
2071 2071
 
2072 2072
 
2073
-						if ( isset( $new_args['element'] ) ) {
2073
+						if (isset($new_args['element'])) {
2074 2074
 
2075
-							if ( isset( $new_args['element_require'] ) ) {
2076
-								echo str_replace( array(
2075
+							if (isset($new_args['element_require'])) {
2076
+								echo str_replace(array(
2077 2077
 										"'+",
2078 2078
 										"+'"
2079
-									), '', $this->block_props_replace( $new_args['element_require'] ) ) . " &&  ";
2080
-								unset( $new_args['element_require'] );
2079
+									), '', $this->block_props_replace($new_args['element_require'])) . " &&  ";
2080
+								unset($new_args['element_require']);
2081 2081
 							}
2082 2082
 
2083 2083
 							echo "\n el( '" . $new_args['element'] . "', {";
2084 2084
 
2085 2085
 							// get the attributes
2086
-							foreach ( $new_args as $new_key => $new_value ) {
2086
+							foreach ($new_args as $new_key => $new_value) {
2087 2087
 
2088 2088
 
2089
-								if ( $new_key == 'element' || $new_key == 'content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array( $new_value ) ) {
2089
+								if ($new_key == 'element' || $new_key == 'content' || $new_key == 'element_require' || $new_key == 'element_repeat' || is_array($new_value)) {
2090 2090
 									// do nothing
2091 2091
 								} else {
2092
-									echo $this->block_element( array( $new_key => $new_value ) );
2092
+									echo $this->block_element(array($new_key => $new_value));
2093 2093
 								}
2094 2094
 							}
2095 2095
 
2096
-							echo "},";// end attributes
2096
+							echo "},"; // end attributes
2097 2097
 
2098 2098
 							// get the content
2099 2099
 							$first_item = 0;
2100
-							foreach ( $new_args as $new_key => $new_value ) {
2101
-								if ( $new_key === 'content' || is_array( $new_value ) ) {
2100
+							foreach ($new_args as $new_key => $new_value) {
2101
+								if ($new_key === 'content' || is_array($new_value)) {
2102 2102
 
2103
-									if ( $new_key === 'content' ) {
2104
-										echo "'" . $this->block_props_replace( wp_slash( $new_value ) ) . "'";
2103
+									if ($new_key === 'content') {
2104
+										echo "'" . $this->block_props_replace(wp_slash($new_value)) . "'";
2105 2105
 									}
2106 2106
 
2107
-									if ( is_array( $new_value ) ) {
2107
+									if (is_array($new_value)) {
2108 2108
 
2109
-										if ( isset( $new_value['element_require'] ) ) {
2110
-											echo str_replace( array(
2109
+										if (isset($new_value['element_require'])) {
2110
+											echo str_replace(array(
2111 2111
 													"'+",
2112 2112
 													"+'"
2113
-												), '', $this->block_props_replace( $new_value['element_require'] ) ) . " &&  ";
2114
-											unset( $new_value['element_require'] );
2113
+												), '', $this->block_props_replace($new_value['element_require'])) . " &&  ";
2114
+											unset($new_value['element_require']);
2115 2115
 										}
2116 2116
 
2117
-										if ( isset( $new_value['element_repeat'] ) ) {
2117
+										if (isset($new_value['element_repeat'])) {
2118 2118
 											$x = 1;
2119
-											while ( $x <= absint( $new_value['element_repeat'] ) ) {
2120
-												$this->block_element( array( '' => $new_value ) );
2121
-												$x ++;
2119
+											while ($x <= absint($new_value['element_repeat'])) {
2120
+												$this->block_element(array('' => $new_value));
2121
+												$x++;
2122 2122
 											}
2123 2123
 										} else {
2124
-											$this->block_element( array( '' => $new_value ) );
2124
+											$this->block_element(array('' => $new_value));
2125 2125
 										}
2126 2126
 									}
2127
-									$first_item ++;
2127
+									$first_item++;
2128 2128
 								}
2129 2129
 							}
2130 2130
 
2131
-							echo ")";// end content
2131
+							echo ")"; // end content
2132 2132
 
2133 2133
 							echo ", \n";
2134 2134
 
2135 2135
 						}
2136 2136
 					} else {
2137 2137
 
2138
-						if ( substr( $element, 0, 3 ) === "if_" ) {
2139
-							echo str_replace( "if_", "", $element ) . ": " . $this->block_props_replace( $new_args, true ) . ",";
2140
-						} elseif ( $element == 'style' ) {
2141
-							echo $element . ": " . $this->block_props_replace( $new_args ) . ",";
2138
+						if (substr($element, 0, 3) === "if_") {
2139
+							echo str_replace("if_", "", $element) . ": " . $this->block_props_replace($new_args, true) . ",";
2140
+						} elseif ($element == 'style') {
2141
+							echo $element . ": " . $this->block_props_replace($new_args) . ",";
2142 2142
 						} else {
2143
-							echo $element . ": '" . $this->block_props_replace( $new_args ) . "',";
2143
+							echo $element . ": '" . $this->block_props_replace($new_args) . "',";
2144 2144
 						}
2145 2145
 
2146 2146
 					}
@@ -2155,12 +2155,12 @@  discard block
 block discarded – undo
2155 2155
 		 *
2156 2156
 		 * @return mixed
2157 2157
 		 */
2158
-		public function block_props_replace( $string, $no_wrap = false ) {
2158
+		public function block_props_replace($string, $no_wrap = false) {
2159 2159
 
2160
-			if ( $no_wrap ) {
2161
-				$string = str_replace( array( "[%", "%]" ), array( "props.attributes.", "" ), $string );
2160
+			if ($no_wrap) {
2161
+				$string = str_replace(array("[%", "%]"), array("props.attributes.", ""), $string);
2162 2162
 			} else {
2163
-				$string = str_replace( array( "[%", "%]" ), array( "'+props.attributes.", "+'" ), $string );
2163
+				$string = str_replace(array("[%", "%]"), array("'+props.attributes.", "+'"), $string);
2164 2164
 			}
2165 2165
 
2166 2166
 			return $string;
@@ -2172,48 +2172,48 @@  discard block
 block discarded – undo
2172 2172
 		 * @param array $args
2173 2173
 		 * @param array $instance
2174 2174
 		 */
2175
-		public function widget( $args, $instance ) {
2175
+		public function widget($args, $instance) {
2176 2176
 
2177 2177
 			// get the filtered values
2178
-			$argument_values = $this->argument_values( $instance );
2179
-			$argument_values = $this->string_to_bool( $argument_values );
2180
-			$output          = $this->output( $argument_values, $args );
2178
+			$argument_values = $this->argument_values($instance);
2179
+			$argument_values = $this->string_to_bool($argument_values);
2180
+			$output          = $this->output($argument_values, $args);
2181 2181
 
2182 2182
 			$no_wrap = false;
2183
-			if( isset( $argument_values['no_wrap'] ) && $argument_values['no_wrap'] ){ $no_wrap = true; }
2183
+			if (isset($argument_values['no_wrap']) && $argument_values['no_wrap']) { $no_wrap = true; }
2184 2184
 
2185 2185
 			ob_start();
2186
-			if ( $output && !$no_wrap) {
2186
+			if ($output && !$no_wrap) {
2187 2187
 				// Before widget
2188 2188
 				$before_widget = $args['before_widget'];
2189
-				$before_widget = apply_filters( 'wp_super_duper_before_widget', $before_widget, $args, $instance, $this );
2190
-				$before_widget = apply_filters( 'wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this );
2189
+				$before_widget = apply_filters('wp_super_duper_before_widget', $before_widget, $args, $instance, $this);
2190
+				$before_widget = apply_filters('wp_super_duper_before_widget_' . $this->base_id, $before_widget, $args, $instance, $this);
2191 2191
 
2192 2192
 				// After widget
2193 2193
 				$after_widget = $args['after_widget'];
2194
-				$after_widget = apply_filters( 'wp_super_duper_after_widget', $after_widget, $args, $instance, $this );
2195
-				$after_widget = apply_filters( 'wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this );
2194
+				$after_widget = apply_filters('wp_super_duper_after_widget', $after_widget, $args, $instance, $this);
2195
+				$after_widget = apply_filters('wp_super_duper_after_widget_' . $this->base_id, $after_widget, $args, $instance, $this);
2196 2196
 
2197 2197
 				echo $before_widget;
2198 2198
 				// elementor strips the widget wrapping div so we check for and add it back if needed
2199
-				if ( $this->is_elementor_widget_output() ) {
2200
-					echo ! empty( $this->options['widget_ops']['classname'] ) ? "<span class='" . esc_attr( $this->options['widget_ops']['classname'] ) . "'>" : '';
2199
+				if ($this->is_elementor_widget_output()) {
2200
+					echo !empty($this->options['widget_ops']['classname']) ? "<span class='" . esc_attr($this->options['widget_ops']['classname']) . "'>" : '';
2201 2201
 				}
2202
-				echo $this->output_title( $args, $instance );
2202
+				echo $this->output_title($args, $instance);
2203 2203
 				echo $output;
2204
-				if ( $this->is_elementor_widget_output() ) {
2205
-					echo ! empty( $this->options['widget_ops']['classname'] ) ? "</span>" : '';
2204
+				if ($this->is_elementor_widget_output()) {
2205
+					echo !empty($this->options['widget_ops']['classname']) ? "</span>" : '';
2206 2206
 				}
2207 2207
 				echo $after_widget;
2208
-			} elseif ( $this->is_preview() && $output == '' ) {// if preview show a placeholder if empty
2209
-				$output = $this->preview_placeholder_text( "{{" . $this->base_id . "}}" );
2208
+			} elseif ($this->is_preview() && $output == '') {// if preview show a placeholder if empty
2209
+				$output = $this->preview_placeholder_text("{{" . $this->base_id . "}}");
2210 2210
 				echo $output;
2211
-			} elseif($output && $no_wrap){
2211
+			} elseif ($output && $no_wrap) {
2212 2212
 				echo $output;
2213 2213
 			}
2214 2214
 			$output = ob_get_clean();
2215 2215
 
2216
-			$output = apply_filters( 'wp_super_duper_widget_output', $output, $instance, $args, $this );
2216
+			$output = apply_filters('wp_super_duper_widget_output', $output, $instance, $args, $this);
2217 2217
 
2218 2218
 			echo $output;
2219 2219
 		}
@@ -2226,7 +2226,7 @@  discard block
 block discarded – undo
2226 2226
 		 */
2227 2227
 		public function is_elementor_widget_output() {
2228 2228
 			$result = false;
2229
-			if ( defined( 'ELEMENTOR_VERSION' ) && isset( $this->number ) && $this->number == 'REPLACE_TO_ID' ) {
2229
+			if (defined('ELEMENTOR_VERSION') && isset($this->number) && $this->number == 'REPLACE_TO_ID') {
2230 2230
 				$result = true;
2231 2231
 			}
2232 2232
 
@@ -2241,7 +2241,7 @@  discard block
 block discarded – undo
2241 2241
 		 */
2242 2242
 		public function is_elementor_preview() {
2243 2243
 			$result = false;
2244
-			if ( isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ) ) {
2244
+			if (isset($_REQUEST['elementor-preview']) || (is_admin() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor') || (isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor_ajax')) {
2245 2245
 				$result = true;
2246 2246
 			}
2247 2247
 
@@ -2256,7 +2256,7 @@  discard block
 block discarded – undo
2256 2256
 		 */
2257 2257
 		public function is_divi_preview() {
2258 2258
 			$result = false;
2259
-			if ( isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) ) {
2259
+			if (isset($_REQUEST['et_fb']) || isset($_REQUEST['et_pb_preview']) || (is_admin() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor')) {
2260 2260
 				$result = true;
2261 2261
 			}
2262 2262
 
@@ -2271,7 +2271,7 @@  discard block
 block discarded – undo
2271 2271
 		 */
2272 2272
 		public function is_beaver_preview() {
2273 2273
 			$result = false;
2274
-			if ( isset( $_REQUEST['fl_builder'] ) ) {
2274
+			if (isset($_REQUEST['fl_builder'])) {
2275 2275
 				$result = true;
2276 2276
 			}
2277 2277
 
@@ -2286,7 +2286,7 @@  discard block
 block discarded – undo
2286 2286
 		 */
2287 2287
 		public function is_siteorigin_preview() {
2288 2288
 			$result = false;
2289
-			if ( ! empty( $_REQUEST['siteorigin_panels_live_editor'] ) ) {
2289
+			if (!empty($_REQUEST['siteorigin_panels_live_editor'])) {
2290 2290
 				$result = true;
2291 2291
 			}
2292 2292
 
@@ -2301,7 +2301,7 @@  discard block
 block discarded – undo
2301 2301
 		 */
2302 2302
 		public function is_cornerstone_preview() {
2303 2303
 			$result = false;
2304
-			if ( ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint' ) {
2304
+			if (!empty($_REQUEST['cornerstone_preview']) || basename($_SERVER['REQUEST_URI']) == 'cornerstone-endpoint') {
2305 2305
 				$result = true;
2306 2306
 			}
2307 2307
 
@@ -2316,7 +2316,7 @@  discard block
 block discarded – undo
2316 2316
 		 */
2317 2317
 		public function is_fusion_preview() {
2318 2318
 			$result = false;
2319
-			if ( ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ) ) {
2319
+			if (!empty($_REQUEST['fb-edit']) || !empty($_REQUEST['fusion_load_nonce'])) {
2320 2320
 				$result = true;
2321 2321
 			}
2322 2322
 
@@ -2331,17 +2331,17 @@  discard block
 block discarded – undo
2331 2331
 		 */
2332 2332
 		public function is_preview() {
2333 2333
 			$preview = false;
2334
-			if ( $this->is_divi_preview() ) {
2334
+			if ($this->is_divi_preview()) {
2335 2335
 				$preview = true;
2336
-			} elseif ( $this->is_elementor_preview() ) {
2336
+			} elseif ($this->is_elementor_preview()) {
2337 2337
 				$preview = true;
2338
-			} elseif ( $this->is_beaver_preview() ) {
2338
+			} elseif ($this->is_beaver_preview()) {
2339 2339
 				$preview = true;
2340
-			} elseif ( $this->is_siteorigin_preview() ) {
2340
+			} elseif ($this->is_siteorigin_preview()) {
2341 2341
 				$preview = true;
2342
-			} elseif ( $this->is_cornerstone_preview() ) {
2342
+			} elseif ($this->is_cornerstone_preview()) {
2343 2343
 				$preview = true;
2344
-			} elseif ( $this->is_fusion_preview() ) {
2344
+			} elseif ($this->is_fusion_preview()) {
2345 2345
 				$preview = true;
2346 2346
 			}
2347 2347
 
@@ -2356,11 +2356,11 @@  discard block
 block discarded – undo
2356 2356
 		 *
2357 2357
 		 * @return string
2358 2358
 		 */
2359
-		public function output_title( $args, $instance = array() ) {
2359
+		public function output_title($args, $instance = array()) {
2360 2360
 			$output = '';
2361
-			if ( ! empty( $instance['title'] ) ) {
2361
+			if (!empty($instance['title'])) {
2362 2362
 				/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
2363
-				$title  = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
2363
+				$title  = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);
2364 2364
 				$output = $args['before_title'] . $title . $args['after_title'];
2365 2365
 			}
2366 2366
 
@@ -2372,7 +2372,7 @@  discard block
 block discarded – undo
2372 2372
 		 *
2373 2373
 		 * @param array $instance The widget options.
2374 2374
 		 */
2375
-		public function form( $instance ) {
2375
+		public function form($instance) {
2376 2376
 
2377 2377
 			// set widget instance
2378 2378
 			$this->instance = $instance;
@@ -2380,10 +2380,10 @@  discard block
 block discarded – undo
2380 2380
 			// set it as a SD widget
2381 2381
 			echo $this->widget_advanced_toggle();
2382 2382
 
2383
-			echo "<p>" . esc_attr( $this->options['widget_ops']['description'] ) . "</p>";
2383
+			echo "<p>" . esc_attr($this->options['widget_ops']['description']) . "</p>";
2384 2384
 			$arguments_raw = $this->get_arguments();
2385 2385
 
2386
-			if ( is_array( $arguments_raw ) ) {
2386
+			if (is_array($arguments_raw)) {
2387 2387
 
2388 2388
 				$arguments = $this->group_arguments($arguments_raw);
2389 2389
 
@@ -2391,9 +2391,9 @@  discard block
 block discarded – undo
2391 2391
 				$has_sections = $arguments == $arguments_raw ? false : true;
2392 2392
 
2393 2393
 
2394
-				if($has_sections){
2394
+				if ($has_sections) {
2395 2395
 					$panel_count = 0;
2396
-					foreach($arguments as $key => $args){
2396
+					foreach ($arguments as $key => $args) {
2397 2397
 
2398 2398
 						?>
2399 2399
 						<script>
@@ -2403,10 +2403,10 @@  discard block
 block discarded – undo
2403 2403
 
2404 2404
 						$hide = $panel_count ? ' style="display:none;" ' : '';
2405 2405
 						$icon_class = $panel_count ? 'fas fa-chevron-up' : 'fas fa-chevron-down';
2406
-						echo "<button onclick='jQuery(this).find(\"i\").toggleClass(\"fas fa-chevron-up fas fa-chevron-down\");jQuery(this).next().slideToggle();' type='button' class='sd-toggle-group-button sd-input-group-toggle".sanitize_title_with_dashes($key)."'>".esc_attr($key)." <i style='float:right;' class='".$icon_class."'></i></button>";
2407
-						echo "<div class='sd-toggle-group sd-input-group-".sanitize_title_with_dashes($key)."' $hide>";
2406
+						echo "<button onclick='jQuery(this).find(\"i\").toggleClass(\"fas fa-chevron-up fas fa-chevron-down\");jQuery(this).next().slideToggle();' type='button' class='sd-toggle-group-button sd-input-group-toggle" . sanitize_title_with_dashes($key) . "'>" . esc_attr($key) . " <i style='float:right;' class='" . $icon_class . "'></i></button>";
2407
+						echo "<div class='sd-toggle-group sd-input-group-" . sanitize_title_with_dashes($key) . "' $hide>";
2408 2408
 
2409
-						foreach($args as $k => $a){
2409
+						foreach ($args as $k => $a) {
2410 2410
 							$this->widget_inputs($a, $instance);
2411 2411
 						}
2412 2412
 
@@ -2415,9 +2415,9 @@  discard block
 block discarded – undo
2415 2415
 						$panel_count++;
2416 2416
 
2417 2417
 					}
2418
-				}else{
2419
-					foreach ( $arguments as $key => $args ) {
2420
-						$this->widget_inputs( $args, $instance );
2418
+				} else {
2419
+					foreach ($arguments as $key => $args) {
2420
+						$this->widget_inputs($args, $instance);
2421 2421
 					}
2422 2422
 				}
2423 2423
 
@@ -2432,7 +2432,7 @@  discard block
 block discarded – undo
2432 2432
 		public function widget_advanced_toggle() {
2433 2433
 
2434 2434
 			$output = '';
2435
-			if ( $this->block_show_advanced() ) {
2435
+			if ($this->block_show_advanced()) {
2436 2436
 				$val = 1;
2437 2437
 			} else {
2438 2438
 				$val = 0;
@@ -2452,14 +2452,14 @@  discard block
 block discarded – undo
2452 2452
 		 *
2453 2453
 		 * @return string $output
2454 2454
 		 */
2455
-		public function convert_element_require( $input ) {
2455
+		public function convert_element_require($input) {
2456 2456
 
2457
-			$input = str_replace( "'", '"', $input );// we only want double quotes
2457
+			$input = str_replace("'", '"', $input); // we only want double quotes
2458 2458
 
2459
-			$output = esc_attr( str_replace( array( "[%", "%]" ), array(
2459
+			$output = esc_attr(str_replace(array("[%", "%]"), array(
2460 2460
 				"jQuery(form).find('[data-argument=\"",
2461 2461
 				"\"]').find('input,select,textarea').val()"
2462
-			), $input ) );
2462
+			), $input));
2463 2463
 
2464 2464
 			return $output;
2465 2465
 		}
@@ -2470,54 +2470,54 @@  discard block
 block discarded – undo
2470 2470
 		 * @param $args
2471 2471
 		 * @param $instance
2472 2472
 		 */
2473
-		public function widget_inputs( $args, $instance ) {
2473
+		public function widget_inputs($args, $instance) {
2474 2474
 
2475 2475
 			$class             = "";
2476 2476
 			$element_require   = "";
2477 2477
 			$custom_attributes = "";
2478 2478
 
2479 2479
 			// get value
2480
-			if ( isset( $instance[ $args['name'] ] ) ) {
2481
-				$value = $instance[ $args['name'] ];
2482
-			} elseif ( ! isset( $instance[ $args['name'] ] ) && ! empty( $args['default'] ) ) {
2483
-				$value = is_array( $args['default'] ) ? array_map( "esc_html", $args['default'] ) : esc_html( $args['default'] );
2480
+			if (isset($instance[$args['name']])) {
2481
+				$value = $instance[$args['name']];
2482
+			} elseif (!isset($instance[$args['name']]) && !empty($args['default'])) {
2483
+				$value = is_array($args['default']) ? array_map("esc_html", $args['default']) : esc_html($args['default']);
2484 2484
 			} else {
2485 2485
 				$value = '';
2486 2486
 			}
2487 2487
 
2488 2488
 			// get placeholder
2489
-			if ( ! empty( $args['placeholder'] ) ) {
2490
-				$placeholder = "placeholder='" . esc_html( $args['placeholder'] ) . "'";
2489
+			if (!empty($args['placeholder'])) {
2490
+				$placeholder = "placeholder='" . esc_html($args['placeholder']) . "'";
2491 2491
 			} else {
2492 2492
 				$placeholder = '';
2493 2493
 			}
2494 2494
 
2495 2495
 			// get if advanced
2496
-			if ( isset( $args['advanced'] ) && $args['advanced'] ) {
2496
+			if (isset($args['advanced']) && $args['advanced']) {
2497 2497
 				$class .= " sd-advanced-setting ";
2498 2498
 			}
2499 2499
 
2500 2500
 			// element_require
2501
-			if ( isset( $args['element_require'] ) && $args['element_require'] ) {
2501
+			if (isset($args['element_require']) && $args['element_require']) {
2502 2502
 				$element_require = $args['element_require'];
2503 2503
 			}
2504 2504
 
2505 2505
 			// custom_attributes
2506
-			if ( isset( $args['custom_attributes'] ) && $args['custom_attributes'] ) {
2507
-				$custom_attributes = $this->array_to_attributes( $args['custom_attributes'], true );
2506
+			if (isset($args['custom_attributes']) && $args['custom_attributes']) {
2507
+				$custom_attributes = $this->array_to_attributes($args['custom_attributes'], true);
2508 2508
 			}
2509 2509
 
2510 2510
 			// before wrapper
2511 2511
 			?>
2512
-			<p class="sd-argument <?php echo esc_attr( $class ); ?>"
2513
-			   data-argument='<?php echo esc_attr( $args['name'] ); ?>'
2514
-			   data-element_require='<?php if ( $element_require ) {
2515
-				   echo $this->convert_element_require( $element_require );
2512
+			<p class="sd-argument <?php echo esc_attr($class); ?>"
2513
+			   data-argument='<?php echo esc_attr($args['name']); ?>'
2514
+			   data-element_require='<?php if ($element_require) {
2515
+				   echo $this->convert_element_require($element_require);
2516 2516
 			   } ?>'
2517 2517
 			>
2518 2518
 				<?php
2519 2519
 
2520
-				switch ( $args['type'] ) {
2520
+				switch ($args['type']) {
2521 2521
 					//array('text','password','number','email','tel','url','color')
2522 2522
 					case "text":
2523 2523
 					case "password":
@@ -2528,46 +2528,46 @@  discard block
 block discarded – undo
2528 2528
 					case "color":
2529 2529
 						?>
2530 2530
 						<label
2531
-							for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label>
2531
+							for="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"><?php echo esc_attr($args['title']); ?><?php echo $this->widget_field_desc($args); ?></label>
2532 2532
 						<input <?php echo $placeholder; ?> class="widefat"
2533 2533
 							<?php echo $custom_attributes; ?>
2534
-							                               id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"
2535
-							                               name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>"
2536
-							                               type="<?php echo esc_attr( $args['type'] ); ?>"
2537
-							                               value="<?php echo esc_attr( $value ); ?>">
2534
+							                               id="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"
2535
+							                               name="<?php echo esc_attr($this->get_field_name($args['name'])); ?>"
2536
+							                               type="<?php echo esc_attr($args['type']); ?>"
2537
+							                               value="<?php echo esc_attr($value); ?>">
2538 2538
 						<?php
2539 2539
 
2540 2540
 						break;
2541 2541
 					case "select":
2542
-						$multiple = isset( $args['multiple'] ) && $args['multiple'] ? true : false;
2543
-						if ( $multiple ) {
2544
-							if ( empty( $value ) ) {
2542
+						$multiple = isset($args['multiple']) && $args['multiple'] ? true : false;
2543
+						if ($multiple) {
2544
+							if (empty($value)) {
2545 2545
 								$value = array();
2546 2546
 							}
2547 2547
 						}
2548 2548
 						?>
2549 2549
 						<label
2550
-							for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label>
2550
+							for="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"><?php echo esc_attr($args['title']); ?><?php echo $this->widget_field_desc($args); ?></label>
2551 2551
 						<select <?php echo $placeholder; ?> class="widefat"
2552 2552
 							<?php echo $custom_attributes; ?>
2553
-							                                id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"
2554
-							                                name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) );
2555
-							                                if ( $multiple ) {
2553
+							                                id="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"
2554
+							                                name="<?php echo esc_attr($this->get_field_name($args['name']));
2555
+							                                if ($multiple) {
2556 2556
 								                                echo "[]";
2557 2557
 							                                } ?>"
2558
-							<?php if ( $multiple ) {
2558
+							<?php if ($multiple) {
2559 2559
 								echo "multiple";
2560 2560
 							} //@todo not implemented yet due to gutenberg not supporting it
2561 2561
 							?>
2562 2562
 						>
2563 2563
 							<?php
2564 2564
 
2565
-							if ( ! empty( $args['options'] ) ) {
2566
-								foreach ( $args['options'] as $val => $label ) {
2567
-									if ( $multiple ) {
2568
-										$selected = in_array( $val, $value ) ? 'selected="selected"' : '';
2565
+							if (!empty($args['options'])) {
2566
+								foreach ($args['options'] as $val => $label) {
2567
+									if ($multiple) {
2568
+										$selected = in_array($val, $value) ? 'selected="selected"' : '';
2569 2569
 									} else {
2570
-										$selected = selected( $value, $val, false );
2570
+										$selected = selected($value, $val, false);
2571 2571
 									}
2572 2572
 									echo "<option value='$val' " . $selected . ">$label</option>";
2573 2573
 								}
@@ -2579,32 +2579,32 @@  discard block
 block discarded – undo
2579 2579
 					case "checkbox":
2580 2580
 						?>
2581 2581
 						<input <?php echo $placeholder; ?>
2582
-							<?php checked( 1, $value, true ) ?>
2582
+							<?php checked(1, $value, true) ?>
2583 2583
 							<?php echo $custom_attributes; ?>
2584
-							class="widefat" id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"
2585
-							name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" type="checkbox"
2584
+							class="widefat" id="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"
2585
+							name="<?php echo esc_attr($this->get_field_name($args['name'])); ?>" type="checkbox"
2586 2586
 							value="1">
2587 2587
 						<label
2588
-							for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label>
2588
+							for="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"><?php echo esc_attr($args['title']); ?><?php echo $this->widget_field_desc($args); ?></label>
2589 2589
 						<?php
2590 2590
 						break;
2591 2591
 					case "textarea":
2592 2592
 						?>
2593 2593
 						<label
2594
-							for="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"><?php echo esc_attr( $args['title'] ); ?><?php echo $this->widget_field_desc( $args ); ?></label>
2594
+							for="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"><?php echo esc_attr($args['title']); ?><?php echo $this->widget_field_desc($args); ?></label>
2595 2595
 						<textarea <?php echo $placeholder; ?> class="widefat"
2596 2596
 							<?php echo $custom_attributes; ?>
2597
-							                               id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"
2598
-							                               name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>"
2599
-							                               ><?php echo esc_attr( $value ); ?></textarea>
2597
+							                               id="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"
2598
+							                               name="<?php echo esc_attr($this->get_field_name($args['name'])); ?>"
2599
+							                               ><?php echo esc_attr($value); ?></textarea>
2600 2600
 						<?php
2601 2601
 
2602 2602
 						break;
2603 2603
 					case "hidden":
2604 2604
 						?>
2605
-						<input id="<?php echo esc_attr( $this->get_field_id( $args['name'] ) ); ?>"
2606
-						       name="<?php echo esc_attr( $this->get_field_name( $args['name'] ) ); ?>" type="hidden"
2607
-						       value="<?php echo esc_attr( $value ); ?>">
2605
+						<input id="<?php echo esc_attr($this->get_field_id($args['name'])); ?>"
2606
+						       name="<?php echo esc_attr($this->get_field_name($args['name'])); ?>" type="hidden"
2607
+						       value="<?php echo esc_attr($value); ?>">
2608 2608
 						<?php
2609 2609
 						break;
2610 2610
 					default:
@@ -2626,14 +2626,14 @@  discard block
 block discarded – undo
2626 2626
 		 * @return string
2627 2627
 		 * @todo, need to make its own tooltip script
2628 2628
 		 */
2629
-		public function widget_field_desc( $args ) {
2629
+		public function widget_field_desc($args) {
2630 2630
 
2631 2631
 			$description = '';
2632
-			if ( isset( $args['desc'] ) && $args['desc'] ) {
2633
-				if ( isset( $args['desc_tip'] ) && $args['desc_tip'] ) {
2634
-					$description = $this->desc_tip( $args['desc'] );
2632
+			if (isset($args['desc']) && $args['desc']) {
2633
+				if (isset($args['desc_tip']) && $args['desc_tip']) {
2634
+					$description = $this->desc_tip($args['desc']);
2635 2635
 				} else {
2636
-					$description = '<span class="description">' . wp_kses_post( $args['desc'] ) . '</span>';
2636
+					$description = '<span class="description">' . wp_kses_post($args['desc']) . '</span>';
2637 2637
 				}
2638 2638
 			}
2639 2639
 
@@ -2648,11 +2648,11 @@  discard block
 block discarded – undo
2648 2648
 		 *
2649 2649
 		 * @return string
2650 2650
 		 */
2651
-		function desc_tip( $tip, $allow_html = false ) {
2652
-			if ( $allow_html ) {
2653
-				$tip = $this->sanitize_tooltip( $tip );
2651
+		function desc_tip($tip, $allow_html = false) {
2652
+			if ($allow_html) {
2653
+				$tip = $this->sanitize_tooltip($tip);
2654 2654
 			} else {
2655
-				$tip = esc_attr( $tip );
2655
+				$tip = esc_attr($tip);
2656 2656
 			}
2657 2657
 
2658 2658
 			return '<span class="gd-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>';
@@ -2665,8 +2665,8 @@  discard block
 block discarded – undo
2665 2665
 		 *
2666 2666
 		 * @return string
2667 2667
 		 */
2668
-		public function sanitize_tooltip( $var ) {
2669
-			return htmlspecialchars( wp_kses( html_entity_decode( $var ), array(
2668
+		public function sanitize_tooltip($var) {
2669
+			return htmlspecialchars(wp_kses(html_entity_decode($var), array(
2670 2670
 				'br'     => array(),
2671 2671
 				'em'     => array(),
2672 2672
 				'strong' => array(),
@@ -2676,7 +2676,7 @@  discard block
 block discarded – undo
2676 2676
 				'li'     => array(),
2677 2677
 				'ol'     => array(),
2678 2678
 				'p'      => array(),
2679
-			) ) );
2679
+			)));
2680 2680
 		}
2681 2681
 
2682 2682
 		/**
@@ -2688,23 +2688,23 @@  discard block
 block discarded – undo
2688 2688
 		 * @return array
2689 2689
 		 * @todo we should add some sanitation here.
2690 2690
 		 */
2691
-		public function update( $new_instance, $old_instance ) {
2691
+		public function update($new_instance, $old_instance) {
2692 2692
 
2693 2693
 			//save the widget
2694
-			$instance = array_merge( (array) $old_instance, (array) $new_instance );
2694
+			$instance = array_merge((array) $old_instance, (array) $new_instance);
2695 2695
 
2696 2696
 			// set widget instance
2697 2697
 			$this->instance = $instance;
2698 2698
 
2699
-			if ( empty( $this->arguments ) ) {
2699
+			if (empty($this->arguments)) {
2700 2700
 				$this->get_arguments();
2701 2701
 			}
2702 2702
 
2703 2703
 			// check for checkboxes
2704
-			if ( ! empty( $this->arguments ) ) {
2705
-				foreach ( $this->arguments as $argument ) {
2706
-					if ( isset( $argument['type'] ) && $argument['type'] == 'checkbox' && ! isset( $new_instance[ $argument['name'] ] ) ) {
2707
-						$instance[ $argument['name'] ] = '0';
2704
+			if (!empty($this->arguments)) {
2705
+				foreach ($this->arguments as $argument) {
2706
+					if (isset($argument['type']) && $argument['type'] == 'checkbox' && !isset($new_instance[$argument['name']])) {
2707
+						$instance[$argument['name']] = '0';
2708 2708
 					}
2709 2709
 				}
2710 2710
 			}
@@ -2722,7 +2722,7 @@  discard block
 block discarded – undo
2722 2722
 		 */
2723 2723
 		public function is_block_content_call() {
2724 2724
 			$result = false;
2725
-			if ( wp_doing_ajax() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'super_duper_output_shortcode' ) {
2725
+			if (wp_doing_ajax() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'super_duper_output_shortcode') {
2726 2726
 				$result = true;
2727 2727
 			}
2728 2728
 
Please login to merge, or discard this patch.
Braces   +14 added lines, -15 removed lines patch added patch discarded remove patch
@@ -180,9 +180,9 @@  discard block
 block discarded – undo
180 180
 							unset($param['default']);
181 181
 						}
182 182
 						$param['value'] = array(''=>__("No"),'1'=>__("Yes"));
183
-					}elseif($param['type'] == 'select'){
183
+					} elseif($param['type'] == 'select'){
184 184
 						$param['value'] = isset($val['options']) ? $val['options'] : array();
185
-					}else{
185
+					} else{
186 186
 						$param['value'] = isset($val['default']) ? $val['default'] : '';
187 187
 					}
188 188
 
@@ -640,7 +640,7 @@  discard block
 block discarded – undo
640 640
 				<?php
641 641
 				if(! empty( $insert_shortcode_function )){
642 642
 					echo $insert_shortcode_function;
643
-				}else{
643
+				} else{
644 644
 
645 645
 				/**
646 646
 				 * Function for super duper insert shortcode.
@@ -1412,8 +1412,7 @@  discard block
 block discarded – undo
1412 1412
 					$argument_values[ $key ] = isset( $instance[ $key ] ) ? $instance[ $key ] : '';
1413 1413
 					if($args['type']=='checkbox' && $argument_values[ $key ] == ''){
1414 1414
 						// don't set default for an empty checkbox
1415
-					}
1416
-					elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) {
1415
+					} elseif ( $argument_values[ $key ] == '' && isset( $args['default'] ) ) {
1417 1416
 						$argument_values[ $key ] = $args['default'];
1418 1417
 					}
1419 1418
 				}
@@ -1542,11 +1541,11 @@  discard block
 block discarded – undo
1542 1541
 			$fa_type = '';
1543 1542
 			if(substr( $icon, 0, 7 ) === "fas fa-"){
1544 1543
 				$fa_type = 'solid';
1545
-			}elseif(substr( $icon, 0, 7 ) === "far fa-"){
1544
+			} elseif(substr( $icon, 0, 7 ) === "far fa-"){
1546 1545
 				$fa_type = 'regular';
1547
-			}elseif(substr( $icon, 0, 7 ) === "fab fa-"){
1546
+			} elseif(substr( $icon, 0, 7 ) === "fab fa-"){
1548 1547
 				$fa_type = 'brands';
1549
-			}else{
1548
+			} else{
1550 1549
 				$icon = "'".$icon."'";
1551 1550
 			}
1552 1551
 
@@ -1569,7 +1568,7 @@  discard block
 block discarded – undo
1569 1568
 					if(isset($args['group'])){
1570 1569
 						$temp_arguments[$args['group']][$key] = $args;
1571 1570
 						$add_sections = true;
1572
-					}else{
1571
+					} else{
1573 1572
 						$temp_arguments[$general][$key] = $args;
1574 1573
 					}
1575 1574
 				}
@@ -1816,7 +1815,7 @@  discard block
 block discarded – undo
1816 1815
 									?>
1817 1816
 									el(wp.components.PanelBody, {
1818 1817
 											title: '<?php esc_attr_e($key); ?>',
1819
-											initialOpen: <?php if($panel_count){echo "false";}else{echo "true";}?>
1818
+											initialOpen: <?php if($panel_count){echo "false";} else{echo "true";}?>
1820 1819
 										},
1821 1820
 										<?php
1822 1821
 
@@ -1829,7 +1828,7 @@  discard block
 block discarded – undo
1829 1828
 									$panel_count++;
1830 1829
 
1831 1830
 									}
1832
-									}else{
1831
+									} else{
1833 1832
 										foreach($this->arguments as $key => $args){
1834 1833
 											$this->build_block_arguments($key, $args);
1835 1834
 										}
@@ -1846,7 +1845,7 @@  discard block
 block discarded – undo
1846 1845
 								// If the user sets block-output array then build it
1847 1846
 								if ( ! empty( $this->options['block-output'] ) ) {
1848 1847
 								$this->block_element( $this->options['block-output'] );
1849
-							}else{
1848
+							} else{
1850 1849
 								// if no block-output is set then we try and get the shortcode html output via ajax.
1851 1850
 								?>
1852 1851
 								el('div', {
@@ -1916,7 +1915,7 @@  discard block
 block discarded – undo
1916 1915
 							?>
1917 1916
 							return content;
1918 1917
 							<?php
1919
-							}else{
1918
+							} else{
1920 1919
 							?>
1921 1920
 							var block_wrap = 'div';
1922 1921
 							if (attr.hasOwnProperty("block_wrap")) {
@@ -1971,7 +1970,7 @@  discard block
 block discarded – undo
1971 1970
 				$type = 'CheckboxControl';
1972 1971
 				$extra .= "checked: props.attributes.$key,";
1973 1972
 				$onchange = "props.setAttributes({ $key: ! props.attributes.$key } )";
1974
-			}elseif ( $args['type'] == 'textarea' ) {
1973
+			} elseif ( $args['type'] == 'textarea' ) {
1975 1974
 				$type = 'TextareaControl';
1976 1975
 			} elseif ( $args['type'] == 'select' || $args['type'] == 'multiselect' ) {
1977 1976
 				$type = 'SelectControl';
@@ -2415,7 +2414,7 @@  discard block
 block discarded – undo
2415 2414
 						$panel_count++;
2416 2415
 
2417 2416
 					}
2418
-				}else{
2417
+				} else{
2419 2418
 					foreach ( $arguments as $key => $args ) {
2420 2419
 						$this->widget_inputs( $args, $instance );
2421 2420
 					}
Please login to merge, or discard this patch.