| @@ -14,26 +14,25 @@ | ||
| 14 | 14 | ) { |
| 15 | 15 | return; |
| 16 | 16 | } |
| 17 | 17 | wp_enqueue_style('ima-google-font', plugins_url('assets/css/google-font.css', __FILE__)); |
| 18 | - wp_enqueue_style('imh-6310-style', plugins_url('assets/css/style-pro.css', __FILE__)); | |
| 18 | + wp_enqueue_style('imh-6310-style', plugins_url('assets/css/style.css', __FILE__)); | |
| 19 | 19 | wp_enqueue_style('imh-6310-color-style', plugins_url('assets/css/jquery.minicolors.css', __FILE__)); |
| 20 | 20 | wp_enqueue_style('imh-6310-font-select-style', plugins_url('assets/css/fontselect.css', __FILE__)); |
| 21 | - wp_enqueue_style('imh-font-awesome-all', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css'); | |
| 21 | + wp_enqueue_style('imh-font-awesome-new', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css'); | |
| 22 | + wp_enqueue_style('imh-font-awesome-old', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/v4-shims.min.css'); | |
| 22 | 23 | wp_enqueue_style('imh-6310-codemirror-style', plugins_url('assets/css/codemirror.min.css', __FILE__)); |
| 23 | 24 | wp_enqueue_style('imh-6310-color-style', plugins_url('assets/css/jquery.minicolors.min.css', __FILE__)); |
| 24 | 25 | wp_enqueue_style('imh-6310-jquery-ui-css', plugins_url('assets/css/jquery-ui.min.css', __FILE__)); |
| 25 | - wp_enqueue_style('imh-6310-select2', plugins_url('assets/css/select2.min.css', __FILE__)); | |
| 26 | 26 | |
| 27 | 27 | wp_enqueue_script('imh-6310-font-select-js', plugins_url('assets/js/fontselect.js', __FILE__), array('jquery')); |
| 28 | 28 | wp_enqueue_script('imh-6310-jquery-ui-js', plugins_url('assets/js/jquery-ui.min.js', __FILE__), array('jquery')); |
| 29 | 29 | wp_enqueue_script('imh-6310-color-js', plugins_url('assets/js/jquery.minicolors.min.js', __FILE__), array('jquery')); |
| 30 | 30 | wp_enqueue_script('imh-6310-codemirror-js', plugins_url('assets/js/codemirror.min.js', __FILE__), array('jquery')); |
| 31 | - wp_enqueue_script('imh-6310-select2', plugins_url('assets/js/select2.min.js', __FILE__), array('jquery')); | |
| 32 | - wp_enqueue_script('imh-6310-common', plugins_url('assets/js/imh-6310-common-pro.js', __FILE__), array('jquery')); | |
| 33 | - wp_enqueue_script('imh-6310-json-js', plugins_url('assets/js/json-data-pro.js', __FILE__), array('jquery')); | |
| 34 | - wp_enqueue_script('imh-6310-admin-js', plugins_url('assets/js/imh-6310-admin-script-pro.js', __FILE__), array('jquery')); | |
| 35 | - wp_enqueue_script('imh-6310-modal-js', plugins_url('assets/js/imh-6310-admin-modal-pro.js', __FILE__), array('jquery')); | |
| 31 | + wp_enqueue_script('imh-6310-common', plugins_url('assets/js/imh-6310-common.js', __FILE__), array('jquery')); | |
| 32 | + wp_enqueue_script('imh-6310-json-js', plugins_url('assets/js/json-data.js', __FILE__), array('jquery')); | |
| 33 | + wp_enqueue_script('imh-6310-admin-js', plugins_url('assets/js/imh-6310-admin-script.js', __FILE__), array('jquery')); | |
| 34 | + wp_enqueue_script('imh-6310-modal-js', plugins_url('assets/js/imh-6310-admin-modal.js', __FILE__), array('jquery')); | |
| 36 | 35 | } |
| 37 | 36 | |
| 38 | 37 | function imh_6310_replace($data) { |
| 39 | 38 | if($data == '') return ''; |
| @@ -40,11 +39,8 @@ | ||
| 40 | 39 | else if(strlen($data) == 0) return ''; |
| 41 | 40 | while(strpos($data, "\\") !== false) { |
| 42 | 41 | $data = str_replace("\\", "", $data); |
| 43 | 42 | } |
| 44 | - while(strpos($data, "@@##!!@@") !== false) { | |
| 45 | - $data = str_replace("@@##!!@@", "'", $data); | |
| 46 | - } | |
| 47 | 43 | return $data; |
| 48 | 44 | } |
| 49 | 45 | |
| 50 | 46 | function imh_6310_get_user_roles(){ |
| @@ -89,20 +85,8 @@ | ||
| 89 | 85 | </div> |
| 90 | 86 | <?php |
| 91 | 87 | } |
| 92 | 88 | |
| 93 | -function imh_6310_check_field_exists(){ | |
| 94 | - global $wpdb; | |
| 95 | - $style_table = $wpdb->prefix . 'imh_6310_style'; | |
| 96 | - $charset_collate = $wpdb->get_charset_collate(); | |
| 97 | - | |
| 98 | - $wpdb->query("SHOW COLUMNS FROM {$style_table} LIKE 'display_type'"); | |
| 99 | - if(!($wpdb->num_rows)){ | |
| 100 | - $wpdb->query("alter table {$style_table} add (display_type int DEFAULT 0)"); | |
| 101 | - } | |
| 102 | - | |
| 103 | -} | |
| 104 | - | |
| 105 | 89 | function imh_6310_image_map_install() |
| 106 | 90 | { |
| 107 | 91 | global $wpdb; |
| 108 | 92 | |
| @@ -111,9 +95,8 @@ | ||
| 111 | 95 | |
| 112 | 96 | $sql = "CREATE TABLE IF NOT EXISTS $style_table ( |
| 113 | 97 | id int UNSIGNED NOT NULL AUTO_INCREMENT, |
| 114 | 98 | name varchar(100) DEFAULT NULL, |
| 115 | - display_type int DEFAULT 0, | |
| 116 | 99 | css LONGTEXT DEFAULT NULL, |
| 117 | 100 | PRIMARY KEY (id) |
| 118 | 101 | ) $charset_collate;"; |
| 119 | 102 | |
| @@ -129,15 +112,8 @@ | ||
| 129 | 112 | } |
| 130 | 113 | |
| 131 | 114 | function imh_6310_version_status() { |
| 132 | 115 | global $wpdb; |
| 133 | - $imh_6310_textarea_updated = imh_6310_get_option('imh_6310_textarea_updated'); | |
| 134 | - if(!$imh_6310_textarea_updated){ | |
| 135 | - $wpdb->query("DELETE FROM {$wpdb->prefix}options where option_name='imh_6310_textarea_updated'"); | |
| 136 | - $wpdb->query("INSERT INTO {$wpdb->prefix}options(option_name, option_value) VALUES ('imh_6310_textarea_updated', '1')"); | |
| 137 | - $wpdb->query("ALTER TABLE {$wpdb->prefix}imh_6310_style MODIFY css LONGTEXT"); | |
| 138 | - } | |
| 139 | - | |
| 140 | 116 | $db_version = imh_6310_get_option('imh_6310_version_info'); |
| 141 | 117 | if(!$db_version){ |
| 142 | 118 | $wpdb->query("DELETE FROM {$wpdb->prefix}options where option_name='imh_6310_version_info'"); |
| 143 | 119 | $wpdb->query("INSERT INTO {$wpdb->prefix}options(option_name, option_value) VALUES ('imh_6310_version_info', '".imh_6310_PLUGIN_CURRENT_VERSION."')"); |
| @@ -152,96 +128,156 @@ | ||
| 152 | 128 | } |
| 153 | 129 | } |
| 154 | 130 | } |
| 155 | 131 | |
| 156 | - function imh_6310_check_license($key, $autoUpdate = false) { | |
| 132 | + function imh_6310_check_license($key, $autoUpdate = false) | |
| 133 | + { | |
| 157 | 134 | global $wpdb; |
| 158 | - | |
| 159 | - // Use WordPress options API for retrieving/storing options | |
| 160 | - $db_key = sanitize_text_field(get_option('imh_6310_license_key')); | |
| 161 | - | |
| 162 | - if (!$db_key) { | |
| 163 | - update_option('imh_6310_license_key', sanitize_text_field($key)); | |
| 164 | - } elseif ($db_key !== $key) { | |
| 165 | - update_option('imh_6310_license_key', sanitize_text_field($key)); | |
| 135 | + | |
| 136 | + $db_key = imh_6310_get_option('imh_6310_license_key'); | |
| 137 | + if(!$db_key){ | |
| 138 | + $wpdb->query("DELETE FROM {$wpdb->prefix}options where option_name='imh_6310_license_key'"); | |
| 139 | + $wpdb->query($wpdb->prepare("INSERT INTO {$wpdb->prefix}options SET option_name = %s, option_value = %s", 'imh_6310_license_key', "{$key}")); | |
| 140 | + if(!$wpdb->insert_id) { | |
| 141 | + $wpdb->query($wpdb->prepare("UPDATE {$wpdb->prefix}options SET option_value = %s where option_name = %s", "{$key}", 'imh_6310_license_key')); | |
| 142 | + } | |
| 143 | + }else if($db_key != $key){ | |
| 144 | + $wpdb->query($wpdb->prepare("UPDATE {$wpdb->prefix}options SET option_value = %s where option_name = %s", "{$key}", 'imh_6310_license_key')); | |
| 166 | 145 | } |
| 167 | - | |
| 168 | - // Ensure ZipArchive is available | |
| 169 | - if (!class_exists('ZipArchive')) { | |
| 170 | - echo "<p style='font-size: 16px; color: red;'><b>Activation Error: </b> ZipArchive extension is not activated in your cPanel. Please check the video on how to activate it.</p>"; | |
| 171 | - echo '<iframe width="560" height="315" src="https://www.youtube.com/watch?v=TGx4-it1ons" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <br /><br />'; | |
| 172 | - return; | |
| 146 | + | |
| 147 | + $imh_6310_selected_server = imh_6310_get_option('imh_6310_selected_server'); | |
| 148 | + $url = $imh_6310_selected_server == 2 || $imh_6310_selected_server == '2' ? "http://demo.tcsesoft2.com/" : "http://demo.tcsesoft.com/"; | |
| 149 | + if(!class_exists('ZipArchive')){ | |
| 150 | + $api_params = array( | |
| 151 | + 'edd_action' => 'activate_license', | |
| 152 | + 'license' => $key, | |
| 153 | + 'item_name' => urlencode('Image map hotspot'), | |
| 154 | + 'url' => home_url(), | |
| 155 | + 'type' => 'imh' | |
| 156 | + ); | |
| 157 | + | |
| 158 | + $response = wp_remote_post($url, array("body" => $api_params)); | |
| 159 | + $license_data = json_decode(wp_remote_retrieve_body($response)); | |
| 160 | + | |
| 161 | + if (is_wp_error($response) || 200 !== wp_remote_retrieve_response_code($response)) { | |
| 162 | + if (is_wp_error($response)) { | |
| 163 | + $message = $response->get_error_message(); | |
| 164 | + } else { | |
| 165 | + $message = __('An error occurred, please try again.'); | |
| 166 | + } | |
| 167 | + } else { | |
| 168 | + if (false === $license_data->success) { | |
| 169 | + switch ($license_data->error) { | |
| 170 | + case 'invalid_key': | |
| 171 | + $message = __('<p class="imh-6310-error-message">Your have enter invalid license key.</p>'); | |
| 172 | + break; | |
| 173 | + case 'site_inactive': | |
| 174 | + $message = __('<p class="imh-6310-error-message">Your license is not active for this URL.</p>'); | |
| 175 | + break; | |
| 176 | + default: | |
| 177 | + $message = __('<p class="imh-6310-error-message">An error occurred, please try again.</p>'); | |
| 178 | + break; | |
| 179 | + } | |
| 180 | + return; | |
| 181 | + } | |
| 182 | + } | |
| 183 | + | |
| 184 | + if (!empty($message)) { | |
| 185 | + echo $message; | |
| 186 | + return; | |
| 187 | + } | |
| 188 | + | |
| 189 | + if (!function_exists('download_url')) { | |
| 190 | + require_once ABSPATH . 'wp-admin/includes/file.php'; | |
| 191 | + require_once(ABSPATH . 'wp-includes/pluggable.php'); | |
| 192 | + } | |
| 193 | + | |
| 194 | + $file_url = $license_data->download_url; | |
| 195 | + $tmp_file = download_url($file_url); | |
| 196 | + $filepath = ABSPATH . 'wp-content/plugins'; | |
| 197 | + WP_Filesystem(); | |
| 198 | + $unzipfile = unzip_file($tmp_file, $filepath); | |
| 199 | + | |
| 200 | + if (is_wp_error($unzipfile)) { | |
| 201 | + echo '<p class="imh-6310-error-message">There was an error unzipping the file.</p>'; | |
| 202 | + return; | |
| 203 | + } else { | |
| 204 | + | |
| 205 | + if(!$autoUpdate){ | |
| 206 | + echo "<p class='imh-6310-success-message'>Congratulations! Your license activated successfully.</p>"; | |
| 207 | + wp_remote_post($url, array("body" => ['file_name' => $license_data->file_name])); | |
| 208 | + return; | |
| 209 | + } | |
| 210 | + } | |
| 211 | + | |
| 212 | + echo "<p style='font-size: 16px; color: red;'><b>Activation Error: </b> ZipArchive extension is not activated in your cPanel. Please check the video on how to activate it.</p>"; | |
| 213 | + echo '<iframe width="560" height="315" src="https://www.youtube.com/embed/XQMLA_F_CYs" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <br /><br />'; | |
| 214 | + return; | |
| 173 | 215 | } |
| 174 | - | |
| 175 | - // Set up API parameters securely | |
| 216 | + | |
| 176 | 217 | $api_params = array( |
| 177 | - 'edd_action' => 'activate_license', | |
| 178 | - 'license' => sanitize_text_field($key), | |
| 179 | - 'item_name' => urlencode('Image map hotspot'), | |
| 180 | - 'url' => esc_url(home_url()), | |
| 181 | - 'type' => 'imh' | |
| 218 | + 'edd_action' => 'activate_license', | |
| 219 | + 'license' => $key, | |
| 220 | + 'item_name' => urlencode('Image map hotspot'), | |
| 221 | + 'url' => home_url(), | |
| 222 | + 'type' => 'imh' | |
| 182 | 223 | ); |
| 183 | - | |
| 184 | - $url = "https://demo.tcsesoft.com/"; | |
| 224 | + | |
| 185 | 225 | $response = wp_remote_post($url, array("body" => $api_params)); |
| 186 | - | |
| 187 | - if (is_wp_error($response)) { | |
| 188 | - echo "<p class='imh-6310-error-message'>" . esc_html($response->get_error_message()) . "</p>"; | |
| 189 | - return; | |
| 226 | + $license_data = json_decode(wp_remote_retrieve_body($response)); | |
| 227 | + | |
| 228 | + if (is_wp_error($response) || 200 !== wp_remote_retrieve_response_code($response)) { | |
| 229 | + if (is_wp_error($response)) { | |
| 230 | + $message = $response->get_error_message(); | |
| 231 | + } else { | |
| 232 | + $message = __('An error occurred, please try again.'); | |
| 233 | + } | |
| 234 | + } else { | |
| 235 | + if (false === $license_data->success) { | |
| 236 | + switch ($license_data->error) { | |
| 237 | + case 'invalid_key': | |
| 238 | + $message = __('<p class="imh-6310-error-message">Your have enter invalid license key.</p>'); | |
| 239 | + break; | |
| 240 | + case 'site_inactive': | |
| 241 | + $message = __('<p class="imh-6310-error-message">Your license is not active for this URL.</p>'); | |
| 242 | + break; | |
| 243 | + default: | |
| 244 | + $message = __('<p class="imh-6310-error-message">An error occurred, please try again.</p>'); | |
| 245 | + break; | |
| 246 | + } | |
| 247 | + } | |
| 190 | 248 | } |
| 191 | - | |
| 192 | - $license_data = json_decode(wp_remote_retrieve_body($response)); | |
| 193 | - if (!isset($license_data->success) || !$license_data->success) { | |
| 194 | - $message = '<p class="imh-6310-error-message">An error occurred, please try again.</p>'; | |
| 195 | - if (isset($license_data->error)) { | |
| 196 | - switch ($license_data->error) { | |
| 197 | - case 'invalid_key': | |
| 198 | - $message = '<p class="imh-6310-error-message">You have entered an invalid license key.</p>'; | |
| 199 | - break; | |
| 200 | - case 'site_inactive': | |
| 201 | - $message = '<p class="imh-6310-error-message">Your license is not active for this URL.</p>'; | |
| 202 | - break; | |
| 203 | - } | |
| 204 | - } | |
| 205 | - echo $message; | |
| 206 | - return; | |
| 249 | + | |
| 250 | + if (!empty($message)) { | |
| 251 | + echo $message; | |
| 252 | + return; | |
| 207 | 253 | } |
| 208 | - | |
| 209 | - // Ensure necessary functions are available for download/unzipping | |
| 254 | + | |
| 210 | 255 | if (!function_exists('download_url')) { |
| 211 | - require_once ABSPATH . 'wp-admin/includes/file.php'; | |
| 256 | + require_once ABSPATH . 'wp-admin/includes/file.php'; | |
| 257 | + require_once(ABSPATH . 'wp-includes/pluggable.php'); | |
| 212 | 258 | } |
| 213 | - if (!function_exists('wp_handle_sideload')) { | |
| 214 | - require_once ABSPATH . 'wp-admin/includes/file.php'; | |
| 215 | - } | |
| 216 | - | |
| 217 | - // Download and unzip the file securely | |
| 218 | - $file_url = esc_url($license_data->download_url); | |
| 259 | + $file_url = $license_data->download_url; | |
| 219 | 260 | $tmp_file = download_url($file_url); |
| 220 | - | |
| 221 | - if (is_wp_error($tmp_file)) { | |
| 222 | - echo '<p class="imh-6310-error-message">Error downloading the file.</p>'; | |
| 223 | - return; | |
| 224 | - } | |
| 225 | - | |
| 226 | - $plugin_dir = WP_CONTENT_DIR . '/plugins/'; | |
| 227 | - $file_name = sanitize_file_name($license_data->file_name); | |
| 228 | - $file_path = $plugin_dir . $file_name; | |
| 229 | - | |
| 261 | + $filepath = WP_CONTENT_DIR . '/plugins'; | |
| 262 | + WP_Filesystem(); | |
| 263 | + copy($tmp_file, $filepath . "/{$license_data->file_name}"); | |
| 264 | + @unlink($tmp_file); | |
| 265 | + | |
| 230 | 266 | $zip = new ZipArchive; |
| 231 | - if ($zip->open($tmp_file) === true) { | |
| 232 | - $zip->extractTo($plugin_dir); | |
| 233 | - $zip->close(); | |
| 234 | - @unlink($tmp_file); | |
| 235 | - | |
| 236 | - if (!$autoUpdate) { | |
| 237 | - echo "<p class='imh-6310-success-message'>Congratulations! Your license activated successfully.</p>"; | |
| 238 | - } | |
| 267 | + $res = $zip->open($filepath . "/{$license_data->file_name}"); | |
| 268 | + if (!$res) { | |
| 269 | + echo '<p class="imh-6310-error-message">There was an error unzipping the file.</p>'; | |
| 239 | 270 | } else { |
| 240 | - echo '<p class="imh-6310-error-message">There was an error unzipping the file.</p>'; | |
| 271 | + $zip->extractTo($filepath . "/"); | |
| 272 | + $zip->close(); | |
| 273 | + | |
| 274 | + if(!$autoUpdate){ | |
| 275 | + echo "<p class='imh-6310-success-message'>Congratulations! Your license activated successfully.</p>"; | |
| 276 | + } | |
| 241 | 277 | } |
| 242 | - } | |
| 243 | - | |
| 278 | + wp_remote_post($url, array("body" => ['file_name' => $license_data->file_name])); | |
| 279 | + } | |
| 244 | 280 | |
| 245 | 281 | function imh_6310_fa_icon_list($startTag, $endTag) { |
| 246 | 282 | $iconArray = array ( |
| 247 | 283 | 'fab fa-500px' => ['500px', '\f26e'], |
| @@ -326,8 +362,9 @@ | ||
| 326 | 362 | 'fas fa-baby-carriage' => ['buggy, carrier, infant, push, stroller, transportation, walk, wheels', '\f77d'], |
| 327 | 363 | 'fas fa-backspace' => ['command, delete, erase, keyboard, undo', '\f55a'], |
| 328 | 364 | 'fas fa-backward' => ['previous, rewind', '\f04a'], |
| 329 | 365 | 'fas fa-bacon' => ['blt, breakfast, ham, lard, meat, pancetta, pork, rasher', '\f7e5'], |
| 366 | + 'fas fa-bahai' => ["bahai, bahá'í, star", '\f666'], | |
| 330 | 367 | 'fas fa-balance-scale' => ['balanced, justice, legal, measure, weight', '\f24e'], |
| 331 | 368 | 'fas fa-balance-scale-left' => ['justice, legal, measure, unbalanced, weight', '\f515'], |
| 332 | 369 | 'fas fa-balance-scale-right' => ['justice, legal, measure, unbalanced, weight', '\f516'], |
| 333 | 370 | 'fas fa-ban' => ['abort, ban, block, cancel, delete, hide, prohibit, remove, stop, trash', '\f05e'], |
| @@ -388,8 +425,9 @@ | ||
| 388 | 425 | 'fas fa-border-style' => ['Border Style', '\f853'], |
| 389 | 426 | 'fas fa-bowling-ball' => ['alley, candlepin, gutter, lane, strike, tenpin', '\f436'], |
| 390 | 427 | 'fas fa-box' => ['archive, container, package, storage', '\f466'], |
| 391 | 428 | 'fas fa-box-open' => ['archive, container, package, storage, unpack', '\f49e'], |
| 429 | + 'fas fa-box-tissue' => ['cough, covid-19, kleenex, mucus, nose, sneeze, snot', '\f95b'], | |
| 392 | 430 | 'fas fa-boxes' => ['archives, inventory, storage, warehouse', '\f468'], |
| 393 | 431 | 'fas fa-braille' => ['alphabet, blind, dots, raised, vision', '\f2a1'], |
| 394 | 432 | 'fas fa-brain' => ['cerebellum, gray matter, intellect, medulla oblongata, mind, noodle, wit', '\f5dc'], |
| 395 | 433 | 'fas fa-bread-slice' => ['bake, bakery, baking, dough, flour, gluten, grain, sandwich, sourdough, toast, wheat, yeast', '\f7ec'], |
| @@ -408,8 +446,9 @@ | ||
| 408 | 446 | 'fab fa-buromobelexperte' => ['Büromöbel-Experte GmbH & Co. KG.', '\f37f'], |
| 409 | 447 | 'fas fa-bus' => ['public transportation, transportation, travel, vehicle', '\f207'], |
| 410 | 448 | 'fas fa-bus-alt' => ['mta, public transportation, transportation, travel, vehicle', '\f55e'], |
| 411 | 449 | 'fas fa-business-time' => ['alarm, briefcase, business socks, clock, flight of the conchords, reminder, wednesday', '\f64a'], |
| 450 | + 'fab fa-buy-n-large' => ['Buy n Large', '\f8a6'], | |
| 412 | 451 | 'fab fa-buysellads' => ['BuySellAds', '\f20d'], |
| 413 | 452 | 'fas fa-calculator' => ['abacus, addition, arithmetic, counting, math, multiplication, subtraction', '\f1ec'], |
| 414 | 453 | 'fas fa-calendar' => ['calendar-o, date, event, schedule, time, when', '\f133'], |
| 415 | 454 | 'fas fa-calendar-alt' => ['calendar, date, event, schedule, time, when', '\f073'], |
| @@ -430,8 +469,9 @@ | ||
| 430 | 469 | 'fas fa-car-alt' => ['auto, automobile, sedan, transportation, travel, vehicle', '\f5de'], |
| 431 | 470 | 'fas fa-car-battery' => ['auto, electric, mechanic, power', '\f5df'], |
| 432 | 471 | 'fas fa-car-crash' => ['accident, auto, automobile, insurance, sedan, transportation, vehicle, wreck', '\f5e1'], |
| 433 | 472 | 'fas fa-car-side' => ['auto, automobile, sedan, transportation, travel, vehicle', '\f5e4'], |
| 473 | + 'fas fa-caravan' => ['camper, motor home, rv, trailer, travel', '\f8ff'], | |
| 434 | 474 | 'fas fa-caret-down' => ['arrow, dropdown, expand, menu, more, triangle', '\f0d7'], |
| 435 | 475 | 'fas fa-caret-left' => ['arrow, back, previous, triangle', '\f0d9'], |
| 436 | 476 | 'fas fa-caret-right' => ['arrow, forward, next, triangle', '\f0da'], |
| 437 | 477 | 'fas fa-caret-square-down' => ['arrow, caret-square-o-down, dropdown, expand, menu, more, triangle', '\f150'], |
| @@ -533,8 +573,9 @@ | ||
| 533 | 573 | 'fas fa-comments-dollar' => ['bubble, chat, commenting, conversation, feedback, message, money, note, notification, pay, sms, speech, spend, texting, transfer', '\f653'], |
| 534 | 574 | 'fas fa-compact-disc' => ['album, bluray, cd, disc, dvd, media, movie, music, record, video, vinyl', '\f420'], |
| 535 | 575 | 'fas fa-compass' => ['directions, directory, location, menu, navigation, safari, travel', '\f14e'], |
| 536 | 576 | 'fas fa-compress' => ['collapse, fullscreen, minimize, move, resize, shrink, smaller', '\f066'], |
| 577 | + 'fas fa-compress-alt' => ['collapse, fullscreen, minimize, move, resize, shrink, smaller', '\f422'], | |
| 537 | 578 | 'fas fa-compress-arrows-alt ' => ['collapse, fullscreen, minimize, move, resize, shrink, smaller', '\f78c'], |
| 538 | 579 | 'fas fa-concierge-bell' => ['attention, hotel, receptionist, service, support', '\f562'], |
| 539 | 580 | ' fab fa-confluence' => ['atlassian', '\f78d'], |
| 540 | 581 | 'fab fa-connectdevelop' => ['Connect Develop', '\f20e'], |
| @@ -543,11 +584,17 @@ | ||
| 543 | 584 | |
| 544 | 585 | 'fas fa-cookie-bite' => ['baked good, bitten, chips, chocolate, eat, snack, sweet, treat', '\f564'], |
| 545 | 586 | 'fas fa-copy' => ['clone, duplicate, file, files-o, paper, paste', '\f0c5'], |
| 546 | 587 | 'fas fa-copyright' => ['brand, mark, register, trademark', '\f1f9'], |
| 588 | + 'fab fa-cotton-bureau' => ['clothing, t-shirts, tshirts', '\f89e'], | |
| 547 | 589 | 'fas fa-couch' => ['chair, cushion, furniture, relax, sofa', '\f4b8'], |
| 548 | 590 | 'fab fa-cpanel' => ['cPanel ', '\f388'], |
| 549 | 591 | 'fab fa-creative-commons' => ['Creative Commons', '\f25e'], |
| 592 | + 'fab fa-creative-commons-by' => ['Creative Commons Attribution', '\f4e7'], | |
| 593 | + 'fab fa-creative-commons-nc' => ['Creative Commons Noncommercial', '\f4e8'], | |
| 594 | + 'fab fa-creative-commons-nc-eu' => ['Creative Commons Noncommercial (Euro Sign)', '\f4e9'], | |
| 595 | + 'fab fa-creative-commons-nc-jp' => ['Creative Commons Noncommercial (Yen Sign)', '\f4ea'], | |
| 596 | + 'fab fa-creative-commons-nd' => ['Creative Commons No Derivative Works', '\f4eb'], | |
| 550 | 597 | 'fab fa-creative-commons-pd' => ['Creative Commons Public Domain', '\f4ec'], |
| 551 | 598 | 'fab fa-creative-commons-pd-alt' => ['Alternate Creative Commons Public Domain', '\f4ed'], |
| 552 | 599 | 'fab fa-creative-commons-remix' => ['Creative Commons Remix', '\f4ee'], |
| 553 | 600 | 'fab fa-creative-commons-sa' => ['Creative Commons Share Alike', '\f4ef'], |
| @@ -571,8 +618,9 @@ | ||
| 571 | 618 | 'fas fa-cut' => ['clip, scissors, snip', '\f0c4'], |
| 572 | 619 | 'fab fa-cuttlefish' => ['Cuttlefish ', '\f38c'], |
| 573 | 620 | 'fab fa-d-and-d' => ['Dungeons & Dragons', '\f38d'], |
| 574 | 621 | 'fab fa-d-and-d-beyond' => ['Dungeons & Dragons, d&d, dnd, fantasy, gaming, tabletop', '\f6ca'], |
| 622 | + 'fab fa-dailymotion' => ['dailymotion', '\f952'], | |
| 575 | 623 | 'fab fa-dashcube' => ['DashCube', '\f210'], |
| 576 | 624 | 'fas fa-database' => ['computer, development, directory, memory, storage', '\f1c0'], |
| 577 | 625 | 'fas fa-deaf' => ['ear, hearing, sign language', '\f2a4'], |
| 578 | 626 | 'fab fa-delicious' => ['Delicious', '\f1a5'], |
| @@ -600,8 +648,9 @@ | ||
| 600 | 648 | 'fas fa-digital-tachograph' => ['data, distance, speed, tachometer', '\f566'], |
| 601 | 649 | 'fas fa-directions' => ['map, navigation, sign, turn', '\f5eb'], |
| 602 | 650 | 'fab fa-discord' => ['Discord', '\f392'], |
| 603 | 651 | 'fab fa-discourse' => ['Discourse', '\f393'], |
| 652 | + 'fas fa-disease' => ['bacteria, cancer, covid-19, illness, infection, sickness, virus', '\f7fa'], | |
| 604 | 653 | 'fas fa-divide' => ['arithmetic, calculus, division, math', '\f529'], |
| 605 | 654 | 'fas fa-dizzy' => ['dazed, dead, disapprove, emoticon, face', '\f567'], |
| 606 | 655 | 'fas fa-dna' => ['double helix, genetic, helix, molecule, protein', '\f471'], |
| 607 | 656 | 'fab fa-dochub' => ['DocHub', '\f394'], |
| @@ -659,8 +708,9 @@ | ||
| 659 | 708 | 'fas fa-exchange-alt' => ['arrow, arrows, exchange, reciprocate, return, swap, transfer', '\f362'], |
| 660 | 709 | 'fas fa-exclamation' => ['alert, danger, error, important, notice, notification, notify, problem, warning', '\f12a'], |
| 661 | 710 | 'fas fa-exclamation-circle' => ['alert, danger, error, important, notice, notification, notify, problem, warning', '\f06a'], |
| 662 | 711 | 'fas fa-expand' => ['bigger, enlarge, fullscreen, resize', '\f065'], |
| 712 | + 'fas fa-expand-alt' => ['arrows, bigger, enlarge, fullscreen, resize', '\f424'], | |
| 663 | 713 | 'fas fa-expand-arrows-alt' => ['bigger, enlarge, fullscreen, move, resize', '\f31e'], |
| 664 | 714 | 'fab fa-expeditedssl' => ['ExpeditedSSL ', '\f23e'], |
| 665 | 715 | 'fas fa-external-link-alt' => ['external-link, new, open, share', '\f35d'], |
| 666 | 716 | 'fas fa-external-link-square-alt' => ['external-link-square, new, open, share', '\f360'], |
| @@ -674,8 +724,9 @@ | ||
| 674 | 724 | 'fas fa-fan' => ['ac, air conditioning, blade, blower, cool, hot', '\f863'], |
| 675 | 725 | 'fab fa-fantasy-flight-games' => ['Dungeons & Dragons, d&d, dnd, fantasy, game, gaming, tabletop', '\f6dc'], |
| 676 | 726 | 'fas fa-fast-backward' => ['beginning, first, previous, rewind, start', '\f049'], |
| 677 | 727 | 'fas fa-fast-forward' => ['end, last, next', '\f050'], |
| 728 | + 'fas fa-faucet' => ['covid-19, drip, house, hygiene, kitchen, sink, water', '\f905'], | |
| 678 | 729 | 'fas fa-fax' => ['business, communicate, copy, facsimile, send', '\f1ac'], |
| 679 | 730 | 'fas fa-feather' => ['bird, light, plucked, quill, write', '\f52d'], |
| 680 | 731 | 'fas fa-feather-alt' => ['bird, light, plucked, quill, write', '\f56b'], |
| 681 | 732 | 'fab fa-fedex' => ['Federal Express, package, shipping', '\f797'], |
| @@ -714,8 +765,9 @@ | ||
| 714 | 765 | 'fas fa-fire' => ['burn, caliente, flame, heat, hot, popular', '\f06d'], |
| 715 | 766 | 'fas fa-fire-alt' => ['burn, caliente, flame, heat, hot, popular', '\f7e4'], |
| 716 | 767 | 'fas fa-fire-extinguisher' => ['burn, caliente, fire fighter, flame, heat, hot, rescue', '\f134'], |
| 717 | 768 | 'fab fa-firefox' => ['browser', '\f269'], |
| 769 | + 'fab fa-firefox-browser' => ['browser', '\f907'], | |
| 718 | 770 | 'fas fa-first-aid' => ['emergency, emt, health, medical, rescue', '\f479'], |
| 719 | 771 | 'fab fa-first-order' => ['First Order', '\f2b0'], |
| 720 | 772 | 'fab fa-first-order-alt' => ['Alternate First Order', '\f50a'], |
| 721 | 773 | 'fab fa-firstdraft' => ['firstdraft', '\f3a1'], |
| @@ -834,9 +886,11 @@ | ||
| 834 | 886 | 'fas fa-hammer' => ['admin, fix, repair, settings, tool', '\f6e3'], |
| 835 | 887 | 'fas fa-hamsa' => ['fas fa-hamsa', '\f665'], |
| 836 | 888 | 'fas fa-hand-holding' => ['carry, lift', '\f4bd'], |
| 837 | 889 | 'fas fa-hand-holding-heart' => ['carry, charity, gift, lift, package', '\f4be'], |
| 890 | + 'fas fa-hand-holding-medical' => ['care, covid-19, donate, help', '\f95c'], | |
| 838 | 891 | 'fas fa-hand-holding-usd' => ['$, carry, dollar sign, donation, giving, lift, money, price', '\f4c0'], |
| 892 | + 'fas fa-hand-holding-water' => ['carry, covid-19, drought, grow, lift', '\f4c1'], | |
| 839 | 893 | 'fas fa-hand-lizard' => ['game, roshambo', '\f258'], |
| 840 | 894 | 'fas fa-hand-middle-finger' => ['flip the bird, gesture, hate, rude', '\f806'], |
| 841 | 895 | 'fas fa-hand-paper' => ['game, halt, roshambo, stop', '\f256'], |
| 842 | 896 | 'fas fa-hand-peace' => ['rest, truce', '\f25b'], |
| @@ -846,17 +900,27 @@ | ||
| 846 | 900 | 'fas fa-hand-point-up' => ['finger, hand-o-up, point', '\f0a6'], |
| 847 | 901 | 'fas fa-hand-pointer' => ['arrow, cursor, select', '\f25a'], |
| 848 | 902 | 'fas fa-hand-rock' => ['fist, game, roshambo', '\f255'], |
| 849 | 903 | 'fas fa-hand-scissors' => ['cut, game, roshambo', '\f257'], |
| 904 | + 'fas fa-hand-sparkles' => ['clean, covid-19, hygiene, magic, soap, wash', '\f95d'], | |
| 850 | 905 | 'fas fa-hand-spock' => ['live long, prosper, salute, star trek, vulcan', '\f259'], |
| 851 | 906 | 'fas fa-hands' => ['carry, hold, lift', '\f4c2'], |
| 852 | 907 | 'fas fa-hands-helping' => ['aid, assistance, handshake, partnership, volunteering', '\f4c4'], |
| 908 | + 'fas fa-hands-wash' => ['covid-19, hygiene, soap, wash', '\f95e'], | |
| 853 | 909 | 'fas fa-handshake' => ['agreement, greeting, meeting, partnership', '\f2b5'], |
| 910 | + 'fas fa-handshake-alt-slash' => ['broken, covid-19, social distance', '\f95f'], | |
| 911 | + 'fas fa-handshake-slash' => ['broken, covid-19, social distance', '\f960'], | |
| 854 | 912 | 'fas fa-hanukiah' => ['candle, hanukkah, jewish, judaism, light', '\f6e6'], |
| 855 | 913 | 'fas fa-hard-hat' => ['construction, hardhat, helmet, safety', '\f807'], |
| 856 | 914 | 'fas fa-hashtag' => ['Twitter, instagram, pound, social media, tag', '\f292'], |
| 915 | + 'fas fa-hat-cowboy' => ['buckaroo, horse, jackeroo, john b., old west, pardner, ranch, rancher, rodeo, western, wrangler', '\f8c0'], | |
| 916 | + 'fas fa-hat-cowboy-side' => ['buckaroo, horse, jackeroo, john b., old west, pardner, ranch, rancher, rodeo, western, wrangler', '\f8c1'], | |
| 857 | 917 | 'fas fa-hat-wizard' => ['Dungeons & Dragons, accessory, buckle, clothing, d&d, dnd, fantasy, halloween, head, holiday, mage, magic, pointy, witch', '\f6e8'], |
| 858 | 918 | 'fas fa-hdd' => ['cpu, hard drive, harddrive, machine, save, storage', '\f0a0'], |
| 919 | + 'fas fa-head-side-cough' => ['cough, covid-19, germs, lungs, respiratory, sick', '\f961'], | |
| 920 | + 'fas fa-head-side-cough-slash' => ['cough, covid-19, germs, lungs, respiratory, sick', '\f962'], | |
| 921 | + 'fas fa-head-side-mask' => ['breath, covid-19, filter, respirator, virus', '\f963'], | |
| 922 | + 'fas fa-head-side-virus' => ['cold, covid-19, flu, sick', '\f964'], | |
| 859 | 923 | 'fas fa-heading' => ['format, header, text, title', '\f1dc'], |
| 860 | 924 | 'fas fa-headphones' => ['audio, listen, music, sound, speaker', '\f025'], |
| 861 | 925 | 'fas fa-headphones-alt' => ['audio, listen, music, sound, speaker', '\f58f'], |
| 862 | 926 | 'fas fa-headset' => ['audio, gamer, gaming, listen, live chat, microphone, shot caller, sound, support, telemarketer', '\f590'], |
| @@ -879,8 +943,9 @@ | ||
| 879 | 943 | 'fas fa-horse-head' => ['equus, fauna, mammmal, mare, neigh, pony', '\f7ab'], |
| 880 | 944 | 'fas fa-hospital' => ['building, covid-19, emergency room, medical center', '\f0f8'], |
| 881 | 945 | 'fas fa-hospital-alt' => ['building, covid-19, emergency room, medical center', '\f47d'], |
| 882 | 946 | 'fas fa-hospital-symbol' => ['clinic, covid-19, emergency, map', '\f47e'], |
| 947 | + 'fas fa-hospital-user' => ['covid-19, doctor, network, patient, primary care', '\f80d'], | |
| 883 | 948 | 'fas fa-hot-tub' => ['bath, jacuzzi, massage, sauna, spa', '\f593'], |
| 884 | 949 | 'fas fa-hotdog' => ['bun, chili, frankfurt, frankfurter, kosher, polish, sandwich, sausage, vienna, weiner', '\f80f'], |
| 885 | 950 | 'fas fa-hotel' => ['building, inn, lodging, motel, resort, travel', '\f594'], |
| 886 | 951 | 'fab fa-hotjar' => ['Hotjar', '\f3b1'], |
| @@ -888,8 +953,9 @@ | ||
| 888 | 953 | 'fas fa-hourglass-end' => ['hour, minute, sand, stopwatch, time', '\f253'], |
| 889 | 954 | 'fas fa-hourglass-half' => ['hour, minute, sand, stopwatch, time', '\f252'], |
| 890 | 955 | 'fas fa-hourglass-start' => ['hour, minute, sand, stopwatch, time', '\f251'], |
| 891 | 956 | 'fas fa-house-damage' => ['building, devastation, disaster, home, insurance', '\f6f1'], |
| 957 | + 'fas fa-house-user' => ['covid-19, home, isolation, quarantine', '\f965'], | |
| 892 | 958 | 'fab fa-houzz' => ['Houzz', '\f27c'], |
| 893 | 959 | 'fas fa-hryvnia' => ['currency, money, ukraine, ukrainian', '\f6f2'], |
| 894 | 960 | 'fab fa-html5' => ['HTML 5 Logo', '\f13b'], |
| 895 | 961 | 'fab fa-hubspot' => ['HubSpot', '\f3b2'], |
| @@ -899,8 +965,9 @@ | ||
| 899 | 965 | 'fas fa-icons' => ['bolt, emoji, heart, image, music, photo, symbols', '\f86d'], |
| 900 | 966 | 'fas fa-id-badge' => ['address, contact, identification, license, profile', '\f2c1'], |
| 901 | 967 | 'fas fa-id-card' => ['contact, demographics, document, identification, issued, profile', '\f2c2'], |
| 902 | 968 | 'fas fa-id-card-alt' => ['ontact, demographics, document, identification, issued, profile', '\f47f'], |
| 969 | + 'fab fa-ideal' => ['iDeal', '\f913'], | |
| 903 | 970 | 'fas fa-igloo' => ['dome, dwelling, eskimo, home, house, ice, snow', '\f7ae'], |
| 904 | 971 | 'fas fa-image' => ['album, landscape, photo, picture', '\f03e'], |
| 905 | 972 | 'fas fa-images' => ['album, landscape, photo, picture', '\f302'], |
| 906 | 973 | 'fab fa-imdb' => ['IMDB', '\f2d8'], |
| @@ -949,8 +1016,9 @@ | ||
| 949 | 1016 | 'fas fa-landmark' => ['building, historic, memorable, monument, politics', '\f66f'], |
| 950 | 1017 | 'fas fa-language' => ['dialect, idiom, localize, speech, translate, vernacular', '\f1ab'], |
| 951 | 1018 | 'fas fa-laptop' => ['computer, cpu, dell, demo, device, mac, macbook, machine, pc', '\f109'], |
| 952 | 1019 | 'fas fa-laptop-code' => ['computer, cpu, dell, demo, develop, device, mac, macbook, machine, pc', '\f5fc'], |
| 1020 | + 'fas fa-laptop-house' => ['computer, covid-19, device, office, remote, work from home', '\f966'], | |
| 953 | 1021 | 'fas fa-laptop-medical' => ['computer, device, ehr, electronic health records, history', '\f812'], |
| 954 | 1022 | 'fab fa-laravel' => ['Laravel', '\f3bd'], |
| 955 | 1023 | 'fab fa-lastfm' => ['last.fm', '\f202'], |
| 956 | 1024 | 'fab fa-lastfm-square' => ['last.fm Square', '\f203'], |
| @@ -988,8 +1056,10 @@ | ||
| 988 | 1056 | 'fas fa-long-arrow-alt-right' => ['forward, long-arrow-right, next', '\f30b'], |
| 989 | 1057 | 'fas fa-long-arrow-alt-up' => ['long-arrow-up, upload', '\f30c'], |
| 990 | 1058 | 'fas fa-low-vision' => ['blind, eye, sight', '\f2a8'], |
| 991 | 1059 | 'fas fa-luggage-cart' => ['bag, baggage, suitcase, travel', '\f59d'], |
| 1060 | + 'fas fa-lungs' => ['air, breath, covid-19, organ, respiratory', '\f604'], | |
| 1061 | + 'fas fa-lungs-virus' => ['breath, covid-19, respiratory, sick', '\f967'], | |
| 992 | 1062 | 'fab fa-lyft' => ['lyft', '\f3c3'], |
| 993 | 1063 | 'fab fa-magento' => ['Magento', '\f3c4'], |
| 994 | 1064 | 'fas fa-magic' => ['autocomplete, automatic, mage, magic, spell, wand, witch, wizard', '\f0d0'], |
| 995 | 1065 | 'fas fa-magnet' => ['Attract, lodestone, tool', '\f076'], |
| @@ -1013,8 +1083,9 @@ | ||
| 1013 | 1083 | 'fas fa-mars-stroke-v' => ['Mars Stroke Vertical', '\f22a'], |
| 1014 | 1084 | 'fas fa-mask' => ['carnivale, costume, disguise, halloween, secret, super hero', '\f6fa'], |
| 1015 | 1085 | 'fab fa-mastodon' => ['Mastodon', '\f4f6'], |
| 1016 | 1086 | 'fab fa-maxcdn' => ['MaxCDN', '\f136'], |
| 1087 | + 'fab fa-mdb' => ['Material Design for Bootstrap', '\f8ca'], | |
| 1017 | 1088 | 'fas fa-medal' => ['award, ribbon, star, trophy', '\f5a2'], |
| 1018 | 1089 | 'fab fa-medapps' => ['MedApps', '\f3c6'], |
| 1019 | 1090 | 'fab fa-medium' => ['Medium ', '\f23a'], |
| 1020 | 1091 | 'fab fa-medium-m' => ['Medium M', '\f3c7'], |
| @@ -1029,8 +1100,9 @@ | ||
| 1029 | 1100 | 'fab fa-mendeley' => ['Mendeley', '\f7b3'], |
| 1030 | 1101 | 'fas fa-menorah' => ['candle, hanukkah, jewish, judaism, light', '\f676'], |
| 1031 | 1102 | 'fas fa-mercury' => ['transgender', '\f223'], |
| 1032 | 1103 | 'fas fa-meteor' => ['armageddon, asteroid, comet, shooting star, space', '\f753'], |
| 1104 | + 'fab fa-microblog' => ['Micro.blog', '\f91a'], | |
| 1033 | 1105 | 'fas fa-microchip' => ['cpu, hardware, processor, technology', '\f2db'], |
| 1034 | 1106 | 'fas fa-microphone' => ['audio, podcast, record, sing, sound, voice', '\f130'], |
| 1035 | 1107 | 'fas fa-microphone-alt' => ['audio, podcast, record, sing, sound, voice', '\f3c9'], |
| 1036 | 1108 | 'fas fa-microphone-alt-slash' => ['audio, disable, mute, podcast, record, sing, sound, voice', '\f539'], |
| @@ -1042,8 +1114,9 @@ | ||
| 1042 | 1114 | 'fas fa-minus-square' => ['collapse, delete, hide, minify, negative, remove, shape, trash', '\f146'], |
| 1043 | 1115 | 'fas fa-mitten' => ['clothing, cold, glove, hands, knitted, seasonal, warmth', '\f7b5'], |
| 1044 | 1116 | 'fab fa-mix' => ['Mix', '\f3cb'], |
| 1045 | 1117 | 'fab fa-mixcloud' => ['Mixcloud', '\f289'], |
| 1118 | + 'fab fa-mixer' => ['Mixer', '\f956'], | |
| 1046 | 1119 | 'fab fa-mizuni' => ['Mizuni', '\f3cc'], |
| 1047 | 1120 | 'fas fa-mobile' => ['pple, call, cell phone, cellphone, device, iphone, number, screen, telephone', '\f10b'], |
| 1048 | 1121 | 'fas fa-mobile-alt' => ['apple, call, cell phone, cellphone, device, iphone, number, screen, telephone', '\f3cd'], |
| 1049 | 1122 | 'fab fa-modx' => ['MODX', '\f285'], |
| @@ -1059,8 +1132,9 @@ | ||
| 1059 | 1132 | 'fas fa-mortar-pestle' => ['crush, culinary, grind, medical, mix, pharmacy, prescription, spices', '\f5a7'], |
| 1060 | 1133 | 'fas fa-mosque' => ['building, islam, landmark, muslim', '\f678'], |
| 1061 | 1134 | 'fas fa-motorcycle' => ['bike, machine, transportation, vehicle', '\f21c'], |
| 1062 | 1135 | 'fas fa-mountain' => ['glacier, hiking, hill, landscape, travel, view', '\f6fc'], |
| 1136 | + 'fas fa-mouse' => ['click, computer, cursor, input, peripheral', '\f8cc'], | |
| 1063 | 1137 | 'fas fa-mouse-pointer' => ['arrow, cursor, select', '\f245'], |
| 1064 | 1138 | 'fas fa-mug-hot' => ['caliente, cocoa, coffee, cup, drink, holiday, hot chocolate, steam, tea, warmth', '\f7b6'], |
| 1065 | 1139 | 'fas fa-music' => ['lyrics, melody, note, sing, sound', '\f001'], |
| 1066 | 1140 | 'fab fa-napster' => ['Napster', '\f3d2'], |
| @@ -1086,8 +1160,9 @@ | ||
| 1086 | 1160 | 'fab fa-opencart' => ['OpenCart', '\f23d'], |
| 1087 | 1161 | 'fab fa-openid' => ['OpenID', '\f19b'], |
| 1088 | 1162 | 'fab fa-opera' => ['Opera', '\f26a'], |
| 1089 | 1163 | 'fab fa-optin-monster' => ['Optin Monster', '\f23c'], |
| 1164 | + 'fab fa-orcid' => ['ORCID', '\f8d2'], | |
| 1090 | 1165 | 'fab fa-osi' => ['Open Source Initiative', '\f41a'], |
| 1091 | 1166 | 'fas fa-otter' => ['animal, badger, fauna, fur, mammal, marten', '\f700'], |
| 1092 | 1167 | 'fas fa-outdent' => ['lign, justify, paragraph, tab', '\f03b'], |
| 1093 | 1168 | 'fab fa-page4' => ['page4 Corporation', '\f3d7'], |
| @@ -1119,8 +1194,9 @@ | ||
| 1119 | 1194 | 'fas fa-pen-square' => ['edit, pencil-square, update, write', '\f14b'], |
| 1120 | 1195 | 'fas fa-pencil-alt' => ['design, edit, pencil, update, write', '\f303'], |
| 1121 | 1196 | 'fas fa-pencil-ruler' => ['design, draft, draw, pencil', '\f5ae'], |
| 1122 | 1197 | 'fab fa-penny-arcade' => ['Dungeons & Dragons, d&d, dnd, fantasy, game, gaming, pax, tabletop', '\f704'], |
| 1198 | + 'fas fa-people-arrows' => ['covid-19, personal space, social distance, space, spread, users', '\f968'], | |
| 1123 | 1199 | 'fas fa-people-carry' => ['box, carry, fragile, help, movers, package', '\f4ce'], |
| 1124 | 1200 | 'fas fa-pepper-hot' => ['buffalo wings, capsicum, chili, chilli, habanero, jalapeno, mexican, spicy, tabasco, vegetable', '\f816'], |
| 1125 | 1201 | 'fas fa-percent' => ['discount, fraction, proportion, rate, ratio', '\f295'], |
| 1126 | 1202 | 'fas fa-percentage' => ['discount, fraction, proportion, rate, ratio', '\f541'], |
| @@ -1140,8 +1216,9 @@ | ||
| 1140 | 1216 | 'fab fa-pied-piper' => ['Pied Piper Logo', '\f2ae'], |
| 1141 | 1217 | 'fab fa-pied-piper-alt' => ['Alternate Pied Piper Logo (Old)', '\f1a8'], |
| 1142 | 1218 | 'fab fa-pied-piper-hat' => ['clothing', '\f4e5'], |
| 1143 | 1219 | 'fab fa-pied-piper-pp' => ['Pied Piper PP Logo (Old)', '\f1a7'], |
| 1220 | + 'fab fa-pied-piper-square' => ['Pied Piper Square Logo (Old)', '\f91e'], | |
| 1144 | 1221 | 'fas fa-piggy-bank' => ['bank, save, savings', '\f4d3'], |
| 1145 | 1222 | 'fas fa-pills' => ['drugs, medicine, prescription, tablets', '\f484'], |
| 1146 | 1223 | 'fab fa-pinterest' => ['Pinterest', '\f0d2'], |
| 1147 | 1224 | 'fab fa-pinterest-p' => ['Pinterest P', '\f231'], |
| @@ -1150,8 +1227,9 @@ | ||
| 1150 | 1227 | 'fas fa-place-of-worship' => ['building, church, holy, mosque, synagogue', '\f67f'], |
| 1151 | 1228 | 'fas fa-plane' => ['airplane, destination, fly, location, mode, travel, trip', '\f072'], |
| 1152 | 1229 | 'fas fa-plane-arrival' => ['airplane, arriving, destination, fly, land, landing, location, mode, travel, trip', '\f5af'], |
| 1153 | 1230 | 'fas fa-plane-departure' => ['airplane, departing, destination, fly, location, mode, take off, taking off, travel, trip', '\f5b0'], |
| 1231 | + 'fas fa-plane-slash' => ['airplane mode, canceled, covid-19, delayed, grounded, travel', '\f969'], | |
| 1154 | 1232 | 'fas fa-play' => ['audio, music, playing, sound, start, video', '\f04b'], |
| 1155 | 1233 | 'fas fa-play-circle' => ['audio, music, playing, sound, start, video', '\f144'], |
| 1156 | 1234 | 'fab fa-playstation' => ['PlayStation', '\f3df'], |
| 1157 | 1235 | 'fas fa-plug' => ['connect, electric, online, power', '\f1e6'], |
| @@ -1175,8 +1253,10 @@ | ||
| 1175 | 1253 | 'fas fa-print' => ['business, copy, document, office, paper', '\f02f'], |
| 1176 | 1254 | 'fas fa-procedures' => ['EKG, bed, electrocardiogram, health, hospital, life, patient, vital', '\f487'], |
| 1177 | 1255 | 'fab fa-product-hunt' => ['Product Hunt', '\f288'], |
| 1178 | 1256 | 'fas fa-project-diagram' => ['chart, graph, network, pert', '\f542'], |
| 1257 | + 'fas fa-pump-medical' => ['anti-bacterial, clean, covid-19, disinfect, hygiene, medical grade, sanitizer, soap', '\f96a'], | |
| 1258 | + 'fas fa-pump-soap' => ['anti-bacterial, clean, covid-19, disinfect, hygiene, sanitizer, soap', '\f96b'], | |
| 1179 | 1259 | 'fab fa-pushed' => ['Pushed', '\f3e1'], |
| 1180 | 1260 | 'fas fa-puzzle-piece' => ['add-on, addon, game, section', '\f12e'], |
| 1181 | 1261 | 'fab fa-python' => ['Python', '\f3e2'], |
| 1182 | 1262 | 'fab fa-qq' => ['QQ', '\f1d6'], |
| @@ -1200,8 +1280,9 @@ | ||
| 1200 | 1280 | 'fab fa-reacteurope' => ['ReactEurope', '\f75d'], |
| 1201 | 1281 | 'fab fa-readme' => ['ReadMe', '\f4d5'], |
| 1202 | 1282 | 'fab fa-rebel' => ['Rebel Alliance', '\f1d0'], |
| 1203 | 1283 | 'fas fa-receipt' => ['check, invoice, money, pay, table', '\f543'], |
| 1284 | + 'fas fa-record-vinyl' => ['LP, album, analog, music, phonograph, sound', '\f8d9'], | |
| 1204 | 1285 | 'fas fa-recycle' => ['Waste, compost, garbage, reuse, trash', '\f1b8'], |
| 1205 | 1286 | 'fab fa-red-river' => ['red river', '\f3e3'], |
| 1206 | 1287 | 'fab fa-reddit' => ['reddit Logo', '\f1a1'], |
| 1207 | 1288 | 'fab fa-reddit-alien' => ['reddit Alien', '\f281'], |
| @@ -1217,8 +1298,9 @@ | ||
| 1217 | 1298 | 'fab fa-replyd' => ['replyd', '\f3e6'], |
| 1218 | 1299 | 'fas fa-republican' => ['american, conservative, election, elephant, politics, republican party, right, right-wing, usa', '\f75e'], |
| 1219 | 1300 | 'fab fa-researchgate' => ['Researchgate', '\f4f8'], |
| 1220 | 1301 | 'fab fa-resolving' => ['Resolving', '\f3e7'], |
| 1302 | + 'fas fa-restroom' => ['bathroom, john, loo, potty, washroom, waste, wc', '\f7bd'], | |
| 1221 | 1303 | 'fas fa-retweet' => ['refresh, reload, share, swap', '\f079'], |
| 1222 | 1304 | 'fab fa-rev' => ['Rev.io', '\f5b2'], |
| 1223 | 1305 | 'fas fa-ribbon' => ['badge, cause, lapel, pin', '\f4d6'], |
| 1224 | 1306 | 'fas fa-ring' => ['Dungeons & Dragons, Gollum, band, binding, d&d, dnd, engagement, fantasy, gold, jewelry, marriage, precious', '\f70b'], |
| @@ -1268,12 +1350,14 @@ | ||
| 1268 | 1350 | 'fas fa-share-alt-square' => ['forward, save, send, social', '\f1e1'], |
| 1269 | 1351 | 'fas fa-share-square' => ['forward, save, send, social', '\f14d'], |
| 1270 | 1352 | 'fas fa-shekel-sign' => ['currency, ils, money', '\f20b'], |
| 1271 | 1353 | 'fas fa-shield-alt' => ['achievement, award, block, defend, security, winner', '\f3ed'], |
| 1354 | + 'fas fa-shield-virus' => ['antibodies, barrier, covid-19, health, protect', '\f96c'], | |
| 1272 | 1355 | 'fas fa-ship' => ['boat, sea, water', '\f21a'], |
| 1273 | 1356 | 'fas fa-shipping-fast' => ['express, fedex, mail, overnight, package, ups', '\f48b'], |
| 1274 | 1357 | 'fab fa-shirtsinbulk' => ['Shirts in Bulk', '\f214'], |
| 1275 | 1358 | 'fas fa-shoe-prints' => ['feet, footprints, steps, walk', '\f54b'], |
| 1359 | + 'fab fa-shopify' => ['Shopify', '\f957'], | |
| 1276 | 1360 | 'fas fa-shopping-bag' => ['buy, checkout, grocery, payment, purchase', '\f290'], |
| 1277 | 1361 | 'fas fa-shopping-basket' => ['buy, checkout, grocery, payment, purchase', '\f291'], |
| 1278 | 1362 | 'fas fa-shopping-cart' => ['buy, checkout, grocery, payment, purchase', '\f07a'], |
| 1279 | 1363 | 'fab fa-shopware' => ['Shopware', '\f5b5'], |
| @@ -1317,8 +1401,9 @@ | ||
| 1317 | 1401 | 'fas fa-snowboarding' => ['activity, fitness, olympics, outdoors, person', '\f7ce'], |
| 1318 | 1402 | 'fas fa-snowflake' => ['precipitation, rain, winter', '\f2dc'], |
| 1319 | 1403 | 'fas fa-snowman' => ['decoration, frost, frosty, holiday', '\f7d0'], |
| 1320 | 1404 | 'fas fa-snowplow' => ['clean up, cold, road, storm, winter', '\f7d2'], |
| 1405 | + 'fas fa-soap' => ['bubbles, clean, covid-19, hygiene, wash', '\f96e'], | |
| 1321 | 1406 | 'fas fa-socks' => ['business socks, business time, clothing, feet, flight of the conchords, wednesday', '\f696'], |
| 1322 | 1407 | 'fas fa-solar-panel' => ['clean, eco-friendly, energy, green, sun', '\f5ba'], |
| 1323 | 1408 | 'fas fa-sort' => ['filter, order', '\f0dc'], |
| 1324 | 1409 | 'fas fa-sort-alpha-down' => ['alphabetical, arrange, filter, order, sort-alpha-asc', '\f15d'], |
| @@ -1372,10 +1457,13 @@ | ||
| 1372 | 1457 | 'fas fa-sticky-note' => ['message, note, paper, reminder, sticker', '\f249'], |
| 1373 | 1458 | 'fas fa-stop' => ['block, box, square', '\f04d'], |
| 1374 | 1459 | 'fas fa-stop-circle' => ['block, box, circle, square', '\f28d'], |
| 1375 | 1460 | 'fas fa-stopwatch' => ['clock, reminder, time', '\f2f2'], |
| 1461 | + 'fas fa-stopwatch-20' => ['ABCs, countdown, covid-19, happy birthday, i will survive, reminder, seconds, time, timer', '\f96f'], | |
| 1376 | 1462 | 'fas fa-store' => ['building, buy, purchase, shopping', '\f54e'], |
| 1377 | 1463 | 'fas fa-store-alt' => ['building, buy, purchase, shopping', '\f54f'], |
| 1464 | + 'fas fa-store-alt-slash' => ['building, buy, closed, covid-19, purchase, shopping', '\f970'], | |
| 1465 | + 'fas fa-store-slash' => ['building, buy, closed, covid-19, purchase, shopping', '\f971'], | |
| 1378 | 1466 | 'fab fa-strava' => ['Strava', '\f428'], |
| 1379 | 1467 | 'fas fa-stream' => ['flow, list, timeline', '\f550'], |
| 1380 | 1468 | 'fas fa-street-view' => ['directions, location, map, navigation', '\f21d'], |
| 1381 | 1469 | 'fas fa-strikethrough' => ['cancel, edit, font, format, text, type', '\f0cc'], |
| @@ -1395,8 +1483,9 @@ | ||
| 1395 | 1483 | 'fab fa-supple' => ['Supple', '\f3f9'], |
| 1396 | 1484 | 'fas fa-surprise' => ['emoticon, face, shocked', '\f5c2'], |
| 1397 | 1485 | 'fab fa-suse' => ['linux, operating system, os', '\f7d6'], |
| 1398 | 1486 | 'fas fa-swatchbook' => ['Pantone, color, design, hue, palette', '\f5c3'], |
| 1487 | + 'fab fa-swift' => ['Swift', '\f8e1'], | |
| 1399 | 1488 | 'fas fa-swimmer' => ['athlete, head, man, olympics, person, pool, water', '\f5c4'], |
| 1400 | 1489 | 'fas fa-swimming-pool' => ['ladder, recreation, swim, water', '\f5c5'], |
| 1401 | 1490 | 'fab fa-symfony' => ['Symfony', '\f83d'], |
| 1402 | 1491 | 'fas fa-synagogue' => ['building, jewish, judaism, religion, star of david, temple', '\f69b'], |
| @@ -1452,8 +1541,9 @@ | ||
| 1452 | 1541 | 'fas fa-toggle-off' => ['switch', '\f204'], |
| 1453 | 1542 | 'fas fa-toggle-on' => ['switch', '\f205'], |
| 1454 | 1543 | 'fas fa-toilet' => ['bathroom, flush, john, loo, pee, plumbing, poop, porcelain, potty, restroom, throne, washroom, waste, wc', '\f7d8'], |
| 1455 | 1544 | 'fas fa-toilet-paper' => ['bathroom, covid-19, halloween, holiday, lavatory, prank, restroom, roll', '\f71e'], |
| 1545 | + 'fas fa-toilet-paper-slash' => ['bathroom, covid-19, halloween, holiday, lavatory, leaves, prank, restroom, roll, trouble, ut oh', '\f972'], | |
| 1456 | 1546 | 'fas fa-toolbox' => ['admin, container, fix, repair, settings, tools', '\f552'], |
| 1457 | 1547 | 'fas fa-tools' => ['admin, fix, repair, screwdriver, settings, tools, wrench', '\f7d9'], |
| 1458 | 1548 | 'fas fa-tooth' => ['bicuspid, dental, dentist, molar, mouth, teeth', '\f5c9'], |
| 1459 | 1549 | 'fas fa-torah' => ['book, jewish, judaism, religion, scroll', '\f6a0'], |
| @@ -1461,8 +1551,9 @@ | ||
| 1461 | 1551 | 'fas fa-tractor' => ['agriculture, farm, vehicle', '\f722'], |
| 1462 | 1552 | 'fab fa-trade-federation' => ['Trade Federation', '\f513'], |
| 1463 | 1553 | 'fas fa-trademark' => ['copyright, register, symbol', '\f25c'], |
| 1464 | 1554 | 'fas fa-traffic-light' => ['direction, road, signal, travel', '\f637'], |
| 1555 | + 'fas fa-trailer' => ['carry, haul, moving, travel', '\f941'], | |
| 1465 | 1556 | 'fas fa-train' => ['bullet, commute, locomotive, railway, subway', '\f238'], |
| 1466 | 1557 | 'fas fa-tram' => ['crossing, machine, mountains, seasonal, transportation', '\f7da'], |
| 1467 | 1558 | 'fas fa-transgender' => ['intersex', '\f224'], |
| 1468 | 1559 | 'fas fa-transgender-alt' => ['intersex', '\f225'], |
| @@ -1490,8 +1581,9 @@ | ||
| 1490 | 1581 | 'fab fa-typo3' => ['Typo3', '\f42b'], |
| 1491 | 1582 | 'fab fa-uber' => ['Uber', '\f402'], |
| 1492 | 1583 | 'fab fa-ubuntu' => ['linux, operating system, os', '\f7df'], |
| 1493 | 1584 | 'fab fa-uikit' => ['UIkit', '\f403'], |
| 1585 | + 'fab fa-umbraco' => ['Umbraco', '\f8e8'], | |
| 1494 | 1586 | 'fas fa-umbrella' => ['protection, rain, storm, wet', '\f0e9'], |
| 1495 | 1587 | 'fas fa-umbrella-beach' => ['protection, recreation, sand, shade, summer, sun', '\f5ca'], |
| 1496 | 1588 | 'fas fa-underline' => ['edit, emphasis, format, text, writing', '\f0cd'], |
| 1497 | 1589 | 'fas fa-undo' => ['back, control z, exchange, oops, return, rotate, swap', '\f0e2'], |
| @@ -1496,8 +1588,9 @@ | ||
| 1496 | 1588 | 'fas fa-underline' => ['edit, emphasis, format, text, writing', '\f0cd'], |
| 1497 | 1589 | 'fas fa-undo' => ['back, control z, exchange, oops, return, rotate, swap', '\f0e2'], |
| 1498 | 1590 | 'fas fa-undo-alt' => ['back, control z, exchange, oops, return, swap', '\f2ea'], |
| 1499 | 1591 | 'fab fa-uniregistry' => ['Uniregistry', '\f404'], |
| 1592 | + 'fab fa-unity' => ['Unity 3D', '\f949'], | |
| 1500 | 1593 | 'fas fa-universal-access' => ['accessibility, hearing, person, seeing, visual impairment', '\f29a'], |
| 1501 | 1594 | 'fas fa-university' => ['bank, building, college, higher education - students, institution', '\f19c'], |
| 1502 | 1595 | 'fas fa-unlink' => ['attachment, chain, chain-broken, remove', '\f127'], |
| 1503 | 1596 | 'fas fa-unlock' => ['admin, lock, password, private, protect', '\f09c'], |
| @@ -1553,8 +1646,11 @@ | ||
| 1553 | 1646 | 'fab fa-vimeo' => ['Vimeo', '\f40a'], |
| 1554 | 1647 | 'fab fa-vimeo-square' => ['Vimeo Square', '\f194'], |
| 1555 | 1648 | 'fab fa-vimeo-v' => ['vimeo', '\f27d'], |
| 1556 | 1649 | 'fab fa-vine' => ['Vine', '\f1ca'], |
| 1650 | + 'fas fa-virus' => ['bug, covid-19, flu, health, sick, viral', '\f974'], | |
| 1651 | + 'fas fa-virus-slash' => ['bug, covid-19, cure, eliminate, flu, health, sick, viral', '\f975'], | |
| 1652 | + 'fas fa-viruses' => ['bugs, covid-19, flu, health, multiply, sick, spread, viral', '\f976'], | |
| 1557 | 1653 | 'fab fa-vk' => ['VK', '\f189'], |
| 1558 | 1654 | 'fab fa-vnv' => ['VNV', '\f40b'], |
| 1559 | 1655 | 'fas fa-voicemail' => ['answer, inbox, message, phone', '\f897'], |
| 1560 | 1656 | 'fas fa-volleyball-ball' => ['beach, olympics, sport', '\f45f'], |
| @@ -1769,9 +1865,10 @@ | ||
| 1769 | 1865 | |
| 1770 | 1866 | // Save the SQL statements to a file |
| 1771 | 1867 | file_put_contents($fileName, $file_content); |
| 1772 | 1868 | echo '<a href="'. $path['url'].$name .'" target="_blank" id="export-image-map-hotspot-plugin">Download</a>'; |
| 1773 | - } else { | |
| 1869 | + } | |
| 1870 | + else{ | |
| 1774 | 1871 | echo '<a href="#" id="export-image-map-hotspot-plugin">Download</a>'; |
| 1775 | 1872 | } |
| 1776 | 1873 | } |
| 1777 | 1874 | |
| @@ -1789,39 +1886,24 @@ | ||
| 1789 | 1886 | $style_table = $wpdb->prefix . 'imh_6310_style'; |
| 1790 | 1887 | |
| 1791 | 1888 | $wpdb->query("TRUNCATE {$style_table}"); |
| 1792 | 1889 | |
| 1793 | - $sql = ''; | |
| 1794 | - $prefix = explode('image-map-hotspot-backup', basename($url))[0]; | |
| 1795 | - $handle = fopen($url, 'r'); | |
| 1796 | - if ($handle) { | |
| 1797 | - while (($line = fgets($handle)) !== false) { | |
| 1798 | - $sql .= $line; | |
| 1799 | - | |
| 1800 | - // Check if the line ends with a semicolon (end of a SQL statement) | |
| 1801 | - if (substr(trim($line), -1) == ';') { | |
| 1802 | - // Replace the prefix in the SQL command | |
| 1803 | - $sql = str_replace($prefix, $wpdb->prefix, $sql); | |
| 1804 | - | |
| 1805 | - // Execute the SQL statement | |
| 1806 | - $result = $wpdb->query($sql); | |
| 1807 | - | |
| 1808 | - if ($result === false) { | |
| 1809 | - echo '<div class="notice notice-error"><p>Error executing SQL: ' . $wpdb->last_error . '</p></div>'; | |
| 1810 | - } | |
| 1811 | - | |
| 1812 | - $sql = ''; // Reset for the next statement | |
| 1813 | - } | |
| 1814 | - } | |
| 1815 | - fclose($handle); | |
| 1816 | - } else { | |
| 1817 | - echo '<div class="notice notice-error"><p>Could not open the SQL file for reading.</p></div>'; | |
| 1818 | - return; | |
| 1819 | - } | |
| 1820 | - | |
| 1821 | - echo '<div class="notice notice-success"><p>Data imported successfully from SQL file.</p></div>'; | |
| 1822 | -} | |
| 1823 | - | |
| 1890 | + $result = ''; | |
| 1891 | + $file = fopen($url, "r"); | |
| 1892 | + while(! feof($file)) { | |
| 1893 | + $result .= fgets($file); | |
| 1894 | + } | |
| 1895 | + fclose($file); | |
| 1896 | + if(strlen($result)) { | |
| 1897 | + $result = explode('!@#$$#@!', $result); | |
| 1898 | + foreach($result as $value) { | |
| 1899 | + if(strlen(trim($value)) > 3) { | |
| 1900 | + $wpdb->query(trim($value)); | |
| 1901 | + } | |
| 1902 | + } | |
| 1903 | + } | |
| 1904 | + echo "<p style='color: green; font-size: 14px;'>Data import successfully.</p>"; | |
| 1905 | + } | |
| 1824 | 1906 | function imh_6310_validate_url($url){ |
| 1825 | 1907 | if ($url != '' && substr($url, 0, 7) != "http://" && substr($url, 0, 8) != "https://"){ |
| 1826 | 1908 | $url = "http://{$url}"; |
| 1827 | 1909 | } |
| @@ -1826,544 +1908,63 @@ | ||
| 1826 | 1908 | $url = "http://{$url}"; |
| 1827 | 1909 | } |
| 1828 | 1910 | return $url; |
| 1829 | 1911 | } |
| 1830 | - | |
| 1831 | 1912 | function imh_6310_load_templates($js, $counter, $ids) { |
| 1832 | - $desktopSize = imh_6310_get_option('imh_6310_desktop_size'); | |
| 1833 | - $iPadSize = imh_6310_get_option('imh_6310_ipad_size'); | |
| 1834 | - $mobileSize = imh_6310_get_option('imh_6310_mobile_size'); | |
| 1835 | - | |
| 1836 | - $desktopSize = $desktopSize ? $desktopSize : 30; | |
| 1837 | - $mobileSize = $mobileSize ? $mobileSize : 20; | |
| 1838 | - $iPadSize = $iPadSize ? $iPadSize : $mobileSize; | |
| 1839 | - | |
| 1913 | + $html = ""; | |
| 1840 | 1914 | $customCSS = ""; |
| 1841 | - $always_show = isset($js->alwaysShow) && $js->alwaysShow == 1 ? 1 : 0; | |
| 1915 | + | |
| 1916 | + $customCSS .= " | |
| 1917 | + .imh-6310-annotation-box-{$ids} .imh-6310-point-{$counter} .imh-6310-pin-main-img { | |
| 1918 | + color: ".esc_attr($js->fontAwesomeIconColor)."; | |
| 1919 | + font-size: ".esc_attr($js->fontAwesomIconSize)."px; | |
| 1920 | + } | |
| 1921 | + .imh-6310-annotation-box-{$ids} .imh-6310-point-{$counter} .imh-6310-pin-hover-img { | |
| 1922 | + color: ".esc_attr($js->fontAwesomeIconHoverColor)."; | |
| 1923 | + font-size: ".esc_attr($js->fontAwesomIconSize)."px; | |
| 1924 | + } | |
| 1925 | + | |
| 1926 | + "; | |
| 1842 | 1927 | |
| 1843 | - if($js->iconType == 1) { | |
| 1928 | + $target = $js->openNewTab == '1' ? "target='_blank'" : ''; | |
| 1929 | + $anchorStart = $js->customIconLinkType == '1' ? "<a href='".imh_6310_validate_url(esc_attr($js->linkURL))."' {$target}>" : ''; | |
| 1930 | + $anchorEnd = $anchorStart ? '</a>' : ''; | |
| 1931 | + echo " | |
| 1932 | + <div class='imh-6310-hover-content imh-6310-hover-content-{$ids}-{$counter}'> | |
| 1933 | + {$anchorStart} | |
| 1934 | + <div class='imh-6310-template-01-hover-content'>".esc_attr(str_replace("@@##!!@@", "'", $js->linkText))."</div> | |
| 1935 | + {$anchorEnd} | |
| 1936 | + </div> | |
| 1937 | + "; | |
| 1844 | 1938 | $customCSS .= " |
| 1845 | - .imh-6310-annotation-box-{$ids} .imh-6310-point-{$counter} .imh-6310-pin-main-img { | |
| 1846 | - color: ".esc_attr($js->fontAwesomeIconColor)."; | |
| 1847 | - font-size: ".esc_attr($js->fontAwesomIconSize)."px; | |
| 1848 | - } | |
| 1849 | - .imh-6310-annotation-box-{$ids} .imh-6310-point-{$counter} .imh-6310-pin-hover-img { | |
| 1850 | - color: ".esc_attr($js->fontAwesomeIconHoverColor)."; | |
| 1851 | - font-size: ".esc_attr($js->fontAwesomIconSize)."px; | |
| 1852 | - } | |
| 1853 | - "; | |
| 1854 | - } else if($js->iconType == 2){ | |
| 1855 | - $customCSS .= " | |
| 1856 | - .imh-6310-annotation-box-{$ids} .imh-6310-point-{$counter} .imh-6310-pin-main-img { | |
| 1857 | - width: ".esc_attr($js->imgOrIconSize)."px; | |
| 1858 | - height: ".esc_attr($js->imgOrIconSize)."px; | |
| 1859 | - border-radius: 50%; | |
| 1860 | - } | |
| 1861 | - .imh-6310-annotation-box-{$ids} .imh-6310-point-{$counter} .imh-6310-pin-hover-img { | |
| 1862 | - width: ".esc_attr($js->imgOrIconSize)."px; | |
| 1863 | - height: ".esc_attr($js->imgOrIconSize)."px; | |
| 1864 | - border-radius: 50%; | |
| 1865 | - } | |
| 1866 | - "; | |
| 1867 | - } else if($js->iconType == 3){ | |
| 1868 | - $customCSS .= " | |
| 1869 | - .imh-6310-annotation-box-{$ids} .imh-6310-point-{$counter} .imh-6310-customtext { | |
| 1870 | - color: ".esc_attr($js->customTextColor)."; | |
| 1871 | - font-size: ".esc_attr($js->customTextSize)."px; | |
| 1872 | - background-color: ".esc_attr($js->customTextBgColor)."; | |
| 1873 | - z-index:-1; | |
| 1874 | - } | |
| 1875 | - "; | |
| 1876 | - } | |
| 1877 | - | |
| 1878 | - if($js->elementType == '1' || $js->elementType == '2'){ | |
| 1879 | - $target = $js->openNewTab == '1' ? "target='_blank'" : ''; | |
| 1880 | - $linkStatus = false; | |
| 1881 | - if($js->customIconLinkType == '1'){ | |
| 1882 | - if(isset($js->linkPosition) && $js->linkPosition == '1'){ | |
| 1883 | - $linkStatus = true; | |
| 1884 | - } else if(!isset($js->linkPosition)){ | |
| 1885 | - $linkStatus = true; | |
| 1886 | - } | |
| 1887 | - } | |
| 1888 | - | |
| 1889 | - $anchorStart = $linkStatus ? "<a href='".imh_6310_validate_url(esc_attr($js->linkURL))."' {$target}>" : ''; | |
| 1890 | - $anchorEnd = $anchorStart ? '</a>' : ''; | |
| 1891 | - | |
| 1892 | - if($js->selectedTemplate == '01') { | |
| 1893 | - echo " | |
| 1894 | - <div class='imh-6310-hover-content imh-6310-hover-content-{$ids}-{$counter}' data-always-show='{$always_show}' data-imh-6310-id='{$ids}-{$counter}' style='display:none;'> | |
| 1895 | - {$anchorStart} | |
| 1896 | - ". | |
| 1897 | - ($js->linkText ? "<div class='imh-6310-template-01-hover-content'><div class='imh-6310-close-button imh-6310-close-button-mobile'></div>".imh_6310_replace(esc_attr($js->linkText))."</div>" : '') | |
| 1898 | - ." | |
| 1899 | - {$anchorEnd} | |
| 1900 | - </div> | |
| 1901 | - "; | |
| 1902 | - $customCSS .= " | |
| 1903 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-01-hover-content{ | |
| 1904 | - background-color: ".esc_attr($js->tempCommonBgColor)." !important; | |
| 1905 | - color: ".esc_attr($js->tempCommonFontColor)."; | |
| 1906 | - font-size: ".esc_attr($js->tempCommonFontSize)."px; | |
| 1907 | - line-height: ".esc_attr((isset($js->tempCommonFontSize) && $js->tempCommonFontSize ? $js->tempCommonFontSize: 0) + 6)."px; | |
| 1908 | - padding: 5px 10px; | |
| 1909 | - border-radius: 10px; | |
| 1910 | - max-width: 200px !important; | |
| 1911 | - } | |
| 1912 | - @media screen and (min-width: 100px) and (max-width: 1366px) { | |
| 1913 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-01-hover-content { | |
| 1914 | - font-size:".esc_attr(isset($js->tempCommonFontSizeMobile) ? $js->tempCommonFontSizeMobile : $js->tempCommonFontSize)."px; | |
| 1915 | - line-height:".esc_attr((isset($js->tempCommonFontSizeMobile) && $js->tempCommonFontSizeMobile ? $js->tempCommonFontSizeMobile : $js->tempCommonFontSize) + 6)."px; | |
| 1916 | - } | |
| 1917 | - } | |
| 1918 | - "; | |
| 1919 | - } | |
| 1920 | - else if($js->selectedTemplate == '02') { | |
| 1921 | - echo " | |
| 1922 | - <div class='imh-6310-hover-content imh-6310-hover-content-{$ids}-{$counter}' | |
| 1923 | - data-always-show='{$always_show}' data-imh-6310-id='{$ids}-{$counter}' style='display:none;'> | |
| 1924 | - <div class='imh-6310-tooltip imh-6310-template-02'> | |
| 1925 | - <div class='imh-6310-template-02-hover-content'> | |
| 1926 | - <div class='imh-6310-template-01-hover-content'> | |
| 1927 | - <div class='imh-6310-close-button imh-6310-close-button-mobile'></div> | |
| 1928 | - <div class='imh-6310-template-02-content'> | |
| 1929 | - ".imh_6310_create_embedded_code($js->tem02EmbeddedLink)." | |
| 1930 | - </div> | |
| 1931 | - </div> | |
| 1932 | - </div> | |
| 1933 | - </div> | |
| 1934 | - </div> | |
| 1935 | - "; | |
| 1936 | - } | |
| 1937 | - else if($js->selectedTemplate == '03') { | |
| 1938 | - echo " | |
| 1939 | - <div class='imh-6310-hover-content imh-6310-hover-content-{$ids}-{$counter}' | |
| 1940 | - data-always-show='{$always_show}' data-imh-6310-id='{$ids}-{$counter}' style='display:none;'> | |
| 1941 | - {$anchorStart} | |
| 1942 | - <div class='imh-6310-template-03-hover-content'> | |
| 1943 | - <div class='imh-6310-template-01-hover-content'> | |
| 1944 | - <div class='imh-6310-close-button imh-6310-close-button-mobile'></div> | |
| 1945 | - <div class='imh-6310-template-03-tooltip-testimonial'> | |
| 1946 | - <div class='imh-6310-template-03-tooltip-pic'> | |
| 1947 | - <img src='{$js->openDesImg}' alt=''> | |
| 1948 | - </div> | |
| 1949 | - <div class='imh-6310-template-03-tooltip-testimonial-content'> | |
| 1950 | - <div class='imh-6310-template-03-tooltip-testimonial-title'>".imh_6310_replace(esc_attr($js->linkText))."</div> | |
| 1951 | - <div class='imh-6310-template-03-tooltip-description'> | |
| 1952 | - ".esc_attr($js->openDescription)." | |
| 1953 | - </div> | |
| 1954 | - </div> | |
| 1955 | - </div> | |
| 1956 | - </div> | |
| 1957 | - </div> | |
| 1958 | - {$anchorEnd} | |
| 1959 | - </div> | |
| 1960 | - "; | |
| 1961 | - $customCSS .= " | |
| 1962 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-03-hover-content{ | |
| 1963 | - width: ".esc_attr(isset($js->tooltipWidth) ? $js->tooltipWidth : 400)."px; | |
| 1964 | - } | |
| 1965 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-03-tooltip-testimonial{ | |
| 1966 | - background-color: ".esc_attr($js->tempCommonBgColor)."; | |
| 1967 | - } | |
| 1968 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-03-tooltip-testimonial .imh-6310-template-03-tooltip-testimonial-title{ | |
| 1969 | - font-size: ".esc_attr($js->tempCommonFontSize)."px; | |
| 1970 | - line-height: ".esc_attr((isset($js->tempCommonFontSize) && $js->tempCommonFontSize ? $js->tempCommonFontSize: 0) + 6)."px; | |
| 1971 | - color: ".esc_attr($js->tempCommonFontColor)."; | |
| 1972 | - padding-bottom:5px; | |
| 1973 | - } | |
| 1974 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-03-tooltip-testimonial .imh-6310-template-03-tooltip-description{ | |
| 1975 | - color: ".esc_attr($js->openDesFontColor)."; | |
| 1976 | - font-size:".esc_attr($js->openDesFontSize)."px; | |
| 1977 | - line-height:".esc_attr((isset($js->openDesFontSize) && $js->openDesFontSize ? $js->openDesFontSize: 0) + 6)."px; | |
| 1978 | - } | |
| 1979 | - @media screen and (min-width: 100px) and (max-width: 1366px) { | |
| 1980 | - .imh-6310-template-03-tooltip-testimonial-title{margin-top: 40px !important;} | |
| 1981 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-03-tooltip-testimonial .imh-6310-template-03-tooltip-description{ | |
| 1982 | - font-size:".esc_attr(isset($js->openDesFontSizeMobile) ? $js->openDesFontSizeMobile : $js->openDesFontSize)."px; | |
| 1983 | - } | |
| 1984 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-03-tooltip-testimonial .imh-6310-template-03-tooltip-testimonial-title{ | |
| 1985 | - font-size:".esc_attr(isset($js->tempCommonFontSizeMobile) ? $js->tempCommonFontSizeMobile : $js->tempCommonFontSize)."px; | |
| 1986 | - line-height:".esc_attr((isset($js->tempCommonFontSizeMobile) && $js->tempCommonFontSizeMobile ? $js->tempCommonFontSizeMobile : $js->tempCommonFontSize) + 6)."px; | |
| 1987 | - } | |
| 1988 | - } | |
| 1989 | - "; | |
| 1990 | - } | |
| 1991 | - else if($js->selectedTemplate == '04') { | |
| 1992 | - echo "<div class='imh-6310-hover-content imh-6310-hover-content-{$ids}-{$counter}' | |
| 1993 | - data-always-show='{$always_show}' data-imh-6310-id='{$ids}-{$counter}' style='display:none;'> | |
| 1994 | - {$anchorStart} | |
| 1995 | - <div class='imh-6310-template-01-hover-content'> | |
| 1996 | - <div class='imh-6310-close-button imh-6310-close-button-mobile'></div> | |
| 1997 | - <div class='imh-6310-template-04-tooltip-testimonial'> | |
| 1998 | - <div class='imh-6310-template-04-tooltip-testimonial-content'> | |
| 1999 | - <div class='imh-6310-template-04-tooltip-pic'> | |
| 2000 | - <img src='{$js->openDesImg}'> | |
| 2001 | - </div> | |
| 2002 | - <div class='imh-6310-template-04-tooltip-title'>". | |
| 2003 | - imh_6310_replace(esc_attr($js->linkText))." | |
| 2004 | - </div> | |
| 2005 | - <div class='imh-6310-template-04-tooltip-description'> | |
| 2006 | - ".imh_6310_replace(esc_attr($js->openDescription))." | |
| 2007 | - </div> | |
| 2008 | - </div> | |
| 2009 | - </div> | |
| 2010 | - </div> | |
| 2011 | - {$anchorEnd} | |
| 2012 | - </div>"; | |
| 1939 | + .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-01-hover-content{ | |
| 1940 | + color: ".esc_attr($js->tempCommonFontColor)."; | |
| 1941 | + font-size: ".esc_attr($js->tempCommonFontSize)."px; | |
| 1942 | + line-height: ".esc_attr($js->tempCommonFontSize + 6)."px; | |
| 1943 | + padding: 5px 10px; | |
| 1944 | + border-radius: 10px; | |
| 1945 | + max-width: 200px !important; | |
| 1946 | + } | |
| 1947 | + | |
| 1948 | + "; | |
| 2013 | 1949 | |
| 2014 | - $customCSS .= " | |
| 2015 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-04-tooltip-testimonial{ | |
| 2016 | - width: ".esc_attr(isset($js->tooltipWidth) ? $js->tooltipWidth : 400)."px; | |
| 2017 | - background: ".esc_attr($js->tempCommonBgColor)."; | |
| 2018 | - text-decoration: none !important; | |
| 2019 | - } | |
| 2020 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-04-tooltip-title{ | |
| 2021 | - color: ".esc_attr($js->tempCommonFontColor)."; | |
| 2022 | - font-size:".esc_attr($js->tempCommonFontSize)."px; | |
| 2023 | - line-height:".esc_attr((isset($js->tempCommonFontSize) && $js->tempCommonFontSize ? $js->tempCommonFontSize: 0) + 6)."px; | |
| 2024 | - text-decoration: none !important; ; | |
| 2025 | - } | |
| 2026 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-04-tooltip-description{ | |
| 2027 | - color: ".esc_attr($js->openDesFontColor)."; | |
| 2028 | - font-size:".esc_attr($js->openDesFontSize)."px; | |
| 2029 | - line-height:".esc_attr((isset($js->openDesFontSize) && $js->openDesFontSize ? $js->openDesFontSize: 0) + 6)."px; | |
| 2030 | - text-decoration:none !important; | |
| 2031 | - } | |
| 2032 | - @media screen and (min-width: 100px) and (max-width: 1366px) { | |
| 2033 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-04-tooltip-title{ | |
| 2034 | - font-size:".esc_attr(isset($js->tempCommonFontSizeMobile) ? $js->tempCommonFontSizeMobile : $js->tempCommonFontSize)."px; | |
| 2035 | - line-height:".esc_attr((isset($js->tempCommonFontSizeMobile) && $js->tempCommonFontSizeMobile ? $js->tempCommonFontSizeMobile : $js->tempCommonFontSize) + 6)."px; | |
| 2036 | - } | |
| 2037 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-04-tooltip-description{ | |
| 2038 | - font-size:".esc_attr(isset($js->openDesFontSizeMobile) ? $js->openDesFontSizeMobile : $js->openDesFontSize)."px; | |
| 2039 | - } | |
| 2040 | - } | |
| 2041 | - "; | |
| 2042 | - } | |
| 2043 | - else if($js->selectedTemplate == '05') { | |
| 2044 | - echo " | |
| 2045 | - <div class='imh-6310-hover-content imh-6310-hover-content-{$ids}-{$counter}' | |
| 2046 | - data-always-show='{$always_show}' data-imh-6310-id='{$ids}-{$counter}' style='display:none;'> | |
| 2047 | - {$anchorStart} | |
| 2048 | - <div class='imh-6310-template-05-hover-content'> | |
| 2049 | - <div class='imh-6310-template-01-hover-content'> | |
| 2050 | - <div class='imh-6310-close-button imh-6310-close-button-mobile'></div> | |
| 2051 | - <div class='imh-6310-template-05-tooltip-testimonial'> | |
| 2052 | - <div class='imh-6310-template-05-tooltip-testimonial-content'> | |
| 2053 | - <div class='imh-6310-template-05-tooltip-pic'> | |
| 2054 | - <img src='".esc_attr($js->openDesImg)."'> | |
| 2055 | - </div> | |
| 2056 | - <div class='imh-6310-template-05-tooltip-title'>".imh_6310_replace(esc_attr($js->linkText))."</div> | |
| 2057 | - </div> | |
| 2058 | - <div class='imh-6310-template-05-tooltip-description'> | |
| 2059 | - ".imh_6310_replace(esc_attr($js->openDescription))." | |
| 2060 | - </div> | |
| 2061 | - </div> | |
| 2062 | - </div> | |
| 2063 | - </div> | |
| 2064 | - {$anchorEnd} | |
| 2065 | - </div> | |
| 2066 | - "; | |
| 2067 | - $customCSS .= " | |
| 2068 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-05-hover-content{ | |
| 2069 | - width: ".esc_attr(isset($js->tooltipWidth) ? $js->tooltipWidth : 400)."px; | |
| 2070 | - background: ".esc_attr($js->tempCommonBgColor)."; | |
| 2071 | - } | |
| 2072 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-05-tooltip-testimonial-content .imh-6310-template-05-tooltip-title { | |
| 2073 | - color: ".esc_attr($js->tempCommonFontColor)."; | |
| 2074 | - font-size:".esc_attr($js->tempCommonFontSize)."px; | |
| 2075 | - line-height:".esc_attr((isset($js->tempCommonFontSize) && $js->tempCommonFontSize ? $js->tempCommonFontSize: 0) + 6)."px; | |
| 2076 | - } | |
| 1950 | + | |
| 2077 | 1951 | |
| 2078 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-05-tooltip-description { | |
| 2079 | - color: ".esc_attr($js->openDesFontColor)."; | |
| 2080 | - font-size:".esc_attr($js->openDesFontSize)."px; | |
| 2081 | - line-height:".esc_attr((isset($js->openDesFontSize) && $js->openDesFontSize ? $js->openDesFontSize: 0) + 6)."px; | |
| 2082 | - } | |
| 2083 | - @media screen and (min-width: 100px) and (max-width: 1366px) { | |
| 2084 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-05-tooltip-testimonial-content .imh-6310-template-05-tooltip-title { | |
| 2085 | - font-size:".esc_attr(isset($js->tempCommonFontSizeMobile) ? $js->tempCommonFontSizeMobile : $js->tempCommonFontSize)."px; | |
| 2086 | - line-height:".esc_attr((isset($js->tempCommonFontSizeMobile) && $js->tempCommonFontSizeMobile ? $js->tempCommonFontSizeMobile : $js->tempCommonFontSize) + 6)."px; | |
| 2087 | - } | |
| 2088 | - .imh-6310-template-05-tooltip-description{width: calc(100% - 16px) !important;} | |
| 2089 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-05-tooltip-description { | |
| 2090 | - font-size:".esc_attr(isset($js->openDesFontSizeMobile) ? $js->openDesFontSizeMobile : $js->openDesFontSize)."px; | |
| 2091 | - } | |
| 2092 | - } | |
| 2093 | - "; | |
| 2094 | - | |
| 2095 | - } | |
| 2096 | - } else if( $js->elementType == '3' ){ | |
| 2097 | - echo " | |
| 2098 | - <div class='imh-6310-hover-content imh-6310-hover-content-{$ids}-{$counter}' | |
| 2099 | - data-always-show='{$always_show}' data-imh-6310-id='{$ids}-{$counter}' style='display:none;'> | |
| 2100 | - <div class='imh-6310-template-01-hover-content'> | |
| 2101 | - <div class='imh-6310-close-button imh-6310-close-button-mobile'></div> | |
| 2102 | - ".imh_6310_replace($js->customeHtmlCode)." | |
| 2103 | - </div> | |
| 2104 | - </div>"; | |
| 2105 | - | |
| 2106 | - $customCSS .= imh_6310_replace($js->customeCssCode); | |
| 2107 | - } | |
| 1952 | + wp_register_style("imh-6310-custom-" . esc_attr($ids) . "-" . esc_attr($counter) . "-css", ""); | |
| 1953 | + wp_enqueue_style("imh-6310-custom-" . esc_attr($ids) . "-" . esc_attr($counter) . "-css"); | |
| 1954 | + wp_add_inline_style("imh-6310-custom-" . esc_attr($ids) . "-" . esc_attr($counter) . "-css", $customCSS); | |
| 2108 | 1955 | |
| 2109 | - | |
| 2110 | - if(isset($js->selectedTemplate) && $js->selectedTemplate != '02' && $js->openPopup == '2' && $js->elementType != '3'){ | |
| 2111 | - echo "<div class='imh-6310-modal imh-6310-popup-{$ids}-{$counter}' style='display:none;'> | |
| 2112 | - <div class='imh-6310-modal-content imh-6310-modal-xl'> | |
| 2113 | - <div class='imh-6310-popup'> | |
| 2114 | - <div class='imh-6310-close-button'></div> | |
| 2115 | - ".imh_6310_create_embedded_code($js->customeCodePopup)." | |
| 2116 | - </div> | |
| 2117 | - </div> | |
| 2118 | - </div>"; | |
| 2119 | - | |
| 2120 | - $customCSS .= "@media screen and (min-width: 100px) and (max-width: 1366px) {.imh-6310-hover-content-{$ids}-{$counter}{display: none}}"; | |
| 2121 | - } else if(isset($js->selectedTemplate) && $js->selectedTemplate != '02' && $js->openPopup == '3' && $js->elementType != '3'){ | |
| 2122 | - echo " | |
| 2123 | - <div class='imh-6310-modal imh-6310-popup-{$ids}-{$counter}' style='display:none;'> | |
| 2124 | - <div class='imh-6310-modal-content imh-6310-modal-xl'> | |
| 2125 | - <div class='imh-6310-popup'> | |
| 2126 | - <div class='imh-6310-template-01-hover-content'> | |
| 2127 | - <div class='imh-6310-close-button'></div> | |
| 2128 | - ".imh_6310_replace($js->popupCustomHtml)." | |
| 2129 | - </div> | |
| 2130 | - </div> | |
| 2131 | - </div> | |
| 2132 | - </div> | |
| 2133 | - "; | |
| 2134 | - | |
| 2135 | - $customCSS .= " | |
| 2136 | - .imh-6310-popup-{$ids}-{$counter} { | |
| 2137 | - box-sizing: border-box !important; | |
| 2138 | - } | |
| 2139 | - .imh-6310-popup-{$ids}-{$counter} .imh-6310-modal-content{ | |
| 2140 | - width: 100% !important; | |
| 2141 | - max-width: 350px !important; | |
| 2142 | - height: auto !important | |
| 2143 | - }"; | |
| 2144 | - $customCSS .= imh_6310_replace($js->popupCustomCss); | |
| 2145 | - $customCSS .= "@media screen and (min-width: 100px) and (max-width: 1366px) {.imh-6310-hover-content-{$ids}-{$counter}{display: none}}"; | |
| 2146 | - } else if($js->elementType == '5') { | |
| 2147 | - echo " | |
| 2148 | - <div class='imh-6310-hover-content imh-6310-hover-content-{$ids}-{$counter}' | |
| 2149 | - data-always-show='{$always_show}' data-imh-6310-id='{$ids}-{$counter}' style='display:none;'> | |
| 2150 | - <div class='imh-6310-woocommerce-product'> | |
| 2151 | - <div class='imh-6310-close-button imh-6310-close-button-mobile'></div>"; | |
| 2152 | - imh_6310_woocommerce_product($js->productIds); | |
| 2153 | - | |
| 2154 | - echo "</div> | |
| 2155 | - </div>"; | |
| 2156 | - | |
| 2157 | - $customCSS .= " | |
| 2158 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-woocommerce-product{ | |
| 2159 | - width: ".esc_attr(isset($js->productBoxWidth) ? $js->productBoxWidth : 500)."px; | |
| 2160 | - background: ".esc_attr(isset($js->productBoxBgColor) ? $js->productBoxBgColor : 'rgb(255, 255, 255)')."; | |
| 2161 | - padding: 15px 15px 10px; | |
| 2162 | - border-radius: 5px; | |
| 2163 | - display: grid; | |
| 2164 | - grid-template-columns: repeat(".esc_attr(isset($js->productPerRowDesk)&&$js->productPerRowDesk ? $js->productPerRowDesk : 3).", 1fr); | |
| 2165 | - gap: 15px; | |
| 2166 | - box-shadow: 0 0 10px #aaa; | |
| 2167 | - } | |
| 2168 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-woocommerce-product-col{ | |
| 2169 | - position: relative; | |
| 2170 | - display: flex; | |
| 2171 | - flex-direction: column; | |
| 2172 | - justify-content: space-between; | |
| 2173 | - align-items: center; | |
| 2174 | - border: 1px solid #ccc; | |
| 2175 | - padding: 15px; | |
| 2176 | - box-sizing: border-box; | |
| 2177 | - border-radius: 5px; | |
| 2178 | - overflow: hidden; | |
| 2179 | - transition: all 0.5s ease 0s; | |
| 2180 | - } | |
| 2181 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-woocommerce-product-col:hover{ | |
| 2182 | - background: ".esc_attr(isset($js->productBoxHoverColor) && $js->productBoxHoverColor ? $js->productBoxHoverColor : 'rgb(240, 240, 240)')."; | |
| 2183 | - } | |
| 2184 | - .imh-6310-hover-content-{$ids}-{$counter} .woocommerce-loop-product__title{ | |
| 2185 | - font-size: ".esc_attr(isset($js->productTitleFontSize) && $js->productTitleFontSize ? $js->productTitleFontSize : 18)."px; | |
| 2186 | - color: ".esc_attr(isset($js->productTitleColor) ? $js->productTitleColor : '#000')."; | |
| 2187 | - } | |
| 2188 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-woocommerce-product-col:hover .woocommerce-loop-product__title{ | |
| 2189 | - color: ".esc_attr(isset($js->productTitleHoverColor) ? $js->productTitleHoverColor : '#423831')."; | |
| 2190 | - } | |
| 2191 | - .imh-6310-hover-content-{$ids}-{$counter} .button{ | |
| 2192 | - padding: 10px 15px !important; | |
| 2193 | - font-size: .8rem; | |
| 2194 | - } | |
| 2195 | - .imh-6310-hover-content-{$ids}-{$counter} del .woocommerce-Price-amount bdi{ | |
| 2196 | - font-size: ".esc_attr(isset($js->productPriceFontSize) ? $js->productPriceFontSize : 16)."px !important; | |
| 2197 | - line-height: ".(esc_attr(isset($js->productPriceFontSize) && $js->productPriceFontSize ? $js->productPriceFontSize : 16) + 6)."px !important; | |
| 2198 | - color: ".esc_attr(isset($js->productDisPriceColor) ? $js->productDisPriceColor : 'rgb(255, 0, 0)')." !important; | |
| 2199 | - text-decoration: line-through !important; | |
| 2200 | - text-decoration-color: ".esc_attr(isset($js->productDisPriceColor) ? $js->productDisPriceColor : 'rgb(255, 0, 0)')." !important; | |
| 2201 | - text-decoration-thickness: 3px; | |
| 2202 | - } | |
| 2203 | - .imh-6310-hover-content-{$ids}-{$counter} ins .woocommerce-Price-amount *{ | |
| 2204 | - font-size: ".esc_attr(isset($js->productPriceFontSize) ? $js->productPriceFontSize : 16)."px !important; | |
| 2205 | - color: ".esc_attr(isset($js->productPriceColor) ? $js->productPriceColor : 'rgb(4, 107, 210)')." !important; | |
| 2206 | - } | |
| 2207 | - .imh-6310-hover-content-{$ids}-{$counter} .sip-product-control-container a{ | |
| 2208 | - font-size: ".esc_attr(isset($js->productBtnFontSize) ? $js->productBtnFontSize : 18)."px !important; | |
| 2209 | - color: ".esc_attr(isset($js->productBtnColor) ? $js->productBtnColor : 'rgb(255, 255, 255)')." !important; | |
| 2210 | - border-color: ".esc_attr(isset($js->productBtnBgColor) ? $js->productBtnBgColor : 'rgb(4, 107, 210)')." !important; | |
| 2211 | - background-color: ".esc_attr(isset($js->productBtnBgColor) ? $js->productBtnBgColor : 'rgb(4, 107, 210)')." !important; | |
| 2212 | - margin-top: 7px; | |
| 2213 | - } | |
| 2214 | - .imh-6310-hover-content-{$ids}-{$counter} .sip-product-control-container .added_to_cart{ | |
| 2215 | - padding: 7px 15px 6px !important; | |
| 2216 | - margin-left: 7px !important; | |
| 2217 | - display: inline-block !important; | |
| 2218 | - border-radius: 5px !important; | |
| 2219 | - } | |
| 2220 | - .imh-6310-hover-content-{$ids}-{$counter} .sip-product-control-container a:hover{ | |
| 2221 | - color: ".esc_attr(isset($js->productBtnHoverColor) ? $js->productBtnHoverColor : 'rgb(245, 245, 245)')." !important; | |
| 2222 | - border-color: ".esc_attr(isset($js->productBtnBgHoverColor) ? $js->productBtnBgHoverColor : 'rgb(210, 100, 72)')." !important; | |
| 2223 | - background-color: ".esc_attr(isset($js->productBtnBgHoverColor) ? $js->productBtnBgHoverColor : 'rgb(210, 100, 72)')." !important; | |
| 2224 | - } | |
| 2225 | - | |
| 2226 | - | |
| 2227 | - "; | |
| 2228 | - $customCSS .= imh_6310_replace($js->popupCustomCss); | |
| 2229 | - $customCSS .= "@media screen and (min-width: 100px) and (max-width: 1366px) { | |
| 2230 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-woocommerce-product{ | |
| 2231 | - width: calc(98% - {$iPadSize}px); | |
| 2232 | - margin: 0 calc(1% + ".($iPadSize/2)."px); | |
| 2233 | - box-sizing: border-box; | |
| 2234 | - grid-template-columns: repeat(".esc_attr(isset($js->productPerRowMob) && $js->productPerRowMob ? $js->productPerRowMob : 2).", 1fr); | |
| 2235 | - } | |
| 2236 | - .imh-6310-hover-content-{$ids}-{$counter} .woocommerce-loop-product__title{ | |
| 2237 | - font-size: ".(esc_attr(isset($js->productTitleFontSize) && $js->productTitleFontSize ? $js->productTitleFontSize : 18) * .8)."px; | |
| 2238 | - } | |
| 2239 | - .imh-6310-hover-content-{$ids}-{$counter} .button{ | |
| 2240 | - margin-top: 7px !important; | |
| 2241 | - } | |
| 2242 | - .imh-6310-hover-content-{$ids}-{$counter} .add_to_cart_button{ | |
| 2243 | - font-size: ".(esc_attr(isset($js->productBtnFontSize) && $js->productBtnFontSize ? $js->productBtnFontSize : 18) * .8)."px !important; | |
| 2244 | - } | |
| 2245 | - }"; | |
| 2246 | - }else if($js->elementType == '6') { | |
| 2247 | - //Shortcode | |
| 2248 | - echo " | |
| 2249 | - <div class='imh-6310-hover-content imh-6310-plugin-shortcode imh-6310-hover-content-{$ids}-{$counter}' | |
| 2250 | - data-always-show='{$always_show}' data-imh-6310-id='{$ids}-{$counter}' style='display:none;'> | |
| 2251 | - <div class='imh-6310-template-06-hover-content'> | |
| 2252 | - <div class='imh-6310-close-button imh-6310-close-button-mobile'></div> | |
| 2253 | - ". | |
| 2254 | - (isset($js->pluginShortCode) && $js->pluginShortCode ? do_shortcode($js->pluginShortCode) : 'No ShortCode found') | |
| 2255 | - ." | |
| 2256 | - </div> | |
| 2257 | - </div>"; | |
| 2258 | - | |
| 2259 | - $customCSS .= " | |
| 2260 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-06-hover-content{ | |
| 2261 | - width: 600px; | |
| 2262 | - background: #FFF; | |
| 2263 | - padding: 15px; | |
| 2264 | - } | |
| 2265 | - @media screen and (max-width: 1366px) { | |
| 2266 | - .imh-6310-hover-content-{$ids}-{$counter} .imh-6310-template-06-hover-content{ | |
| 2267 | - width: 370px; | |
| 2268 | - } | |
| 2269 | - } | |
| 2270 | - "; | |
| 2271 | - | |
| 2272 | - } | |
| 2273 | - | |
| 2274 | - | |
| 2275 | - wp_register_style("imh-6310-custom-" . esc_attr($ids) . "-" . esc_attr($counter) . "-css", ""); | |
| 2276 | - wp_enqueue_style("imh-6310-custom-" . esc_attr($ids) . "-" . esc_attr($counter) . "-css"); | |
| 2277 | - wp_add_inline_style("imh-6310-custom-" . esc_attr($ids) . "-" . esc_attr($counter) . "-css", $customCSS); | |
| 1956 | + wp_register_script("imh-6310-template-" . esc_attr($counter) . "-js", ""); | |
| 1957 | + wp_enqueue_script("imh-6310-template-" . esc_attr($counter) . "-js"); | |
| 1958 | + wp_add_inline_script("imh-6310-template-" . esc_attr($counter) . "-js", $html); | |
| 2278 | 1959 | } |
| 2279 | 1960 | |
| 2280 | 1961 | |
| 2281 | - function imh_6310_create_embedded_code($embeddedCode) { | |
| 2282 | - if (!$embeddedCode) return; | |
| 2283 | - $embeddedCode = explode("AABBAA", $embeddedCode); | |
| 2284 | - $allAttrName = explode("XXYYXX", $embeddedCode[0]); | |
| 2285 | - $allAttrValue = explode("XXYYXX", $embeddedCode[1]); | |
| 2286 | - | |
| 2287 | - $htmlCode = ""; | |
| 2288 | - if ( | |
| 2289 | - count($allAttrName) && | |
| 2290 | - count($allAttrValue) && | |
| 2291 | - count($allAttrName) == count($allAttrValue) | |
| 2292 | - ) { | |
| 2293 | - for ($i = 0; $i < count($allAttrName); $i++) { | |
| 2294 | - $htmlCode .= " " . $allAttrName[$i] . '="' . $allAttrValue[$i] . '"'; | |
| 2295 | - } | |
| 2296 | - } | |
| 2297 | - | |
| 2298 | - if ($htmlCode) { | |
| 2299 | - $htmlCode = "<iframe" . $htmlCode . " style='border: 2px solid #FFF !important'></iframe>"; | |
| 2300 | - } | |
| 2301 | - return $htmlCode; | |
| 2302 | - } | |
| 2303 | - | |
| 2304 | - function imh_6310_woocommerce_product($ids){ | |
| 2305 | - if(!$ids){ | |
| 2306 | - echo "<h3>No product found.</h3>"; | |
| 2307 | - return; | |
| 2308 | - } | |
| 2309 | - $ids = explode(',', $ids); | |
| 2310 | - global $post; | |
| 2311 | - foreach($ids as $id){ | |
| 2312 | - echo "<div class='imh-6310-woocommerce-product-col'>"; | |
| 2313 | - $post = get_post($id, OBJECT); | |
| 2314 | - setup_postdata($post); | |
| 1962 | + function imh_6310_check_field_exists(){ | |
| 1963 | + global $wpdb; | |
| 2315 | 1964 | |
| 2316 | - global $product; | |
| 2317 | - | |
| 2318 | - woocommerce_template_loop_product_link_open(); | |
| 2319 | - | |
| 2320 | - woocommerce_show_product_loop_sale_flash(); | |
| 2321 | - woocommerce_template_loop_product_thumbnail(); | |
| 2322 | - | |
| 2323 | - woocommerce_template_loop_product_title(); | |
| 2324 | - | |
| 2325 | - woocommerce_template_loop_price(); | |
| 2326 | - | |
| 2327 | - woocommerce_template_loop_product_link_close(); | |
| 2328 | - | |
| 2329 | - echo '<div class="sip-product-control-container">'; | |
| 2330 | - woocommerce_template_loop_add_to_cart(); | |
| 2331 | - echo '<a href="' . get_the_permalink() . '" class="button">' . esc_html('Details', 'image-point') . '</a>'; | |
| 2332 | - echo '</div>'; | |
| 2333 | - echo '</div>'; | |
| 1965 | + $imh_6310_selected_server = imh_6310_get_option('imh_6310_selected_server'); | |
| 1966 | + if(!$imh_6310_selected_server){ | |
| 1967 | + $wpdb->query("DELETE FROM {$wpdb->prefix}options where option_name='imh_6310_selected_server'"); | |
| 1968 | + $wpdb->query("INSERT INTO {$wpdb->prefix}options(option_name, option_value) VALUES ('imh_6310_selected_server', '1')"); | |
| 2334 | 1969 | } |
| 2335 | - | |
| 2336 | - wp_reset_postdata(); | |
| 2337 | - } | |
| 2338 | - | |
| 2339 | - function imh_6310_render_products() { | |
| 2340 | - if (!class_exists('WooCommerce')) { | |
| 2341 | - echo '<p>WooCommerce is not active.</p>'; | |
| 2342 | - return; | |
| 2343 | - } | |
| 2344 | - | |
| 2345 | - $products = wc_get_products(['limit' => -1]); | |
| 2346 | - | |
| 2347 | - if (empty($products)) { | |
| 2348 | - echo '<p>No products found.</p>'; | |
| 2349 | - return; | |
| 2350 | - } | |
| 2351 | - | |
| 2352 | - echo '<div class="imh-6310-search-container">'; | |
| 2353 | - echo '<input type="text" id="imh-6310-product-search" placeholder="Type to search for products">'; | |
| 2354 | - echo '<div class="imh-6310-suggestion-list imh-6310-hidden">'; | |
| 2355 | - | |
| 2356 | - foreach ($products as $product) { | |
| 2357 | - $image_url = wp_get_attachment_image_url($product->get_image_id(), 'full'); | |
| 2358 | - | |
| 2359 | - echo "<div class='imh-6310-product-list imh-6310-hidden' | |
| 2360 | - data-product-id='{$product->get_id()}' | |
| 2361 | - data-product-img='{$image_url}'> | |
| 2362 | - {$product->get_name()} | |
| 2363 | - </div>"; | |
| 2364 | - } | |
| 2365 | - | |
| 2366 | - echo '</div>'; | |
| 2367 | - echo '<div class="imh-6310-no-product imh-6310-hidden">No product found.</div>'; | |
| 2368 | - echo '</div>'; | |
| 2369 | - } | |
| 1970 | + } | |