| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.4/wp-content/themes/woodmart/js/scripts/menu/ |
Upload File : |
/* global woodmart_settings */
(function($) {
woodmartThemeModule.menuDropdownsAJAX = function() {
window.addEventListener('wdEventStarted', function() {
$('.menu').has('.dropdown-load-ajax').each(function() {
var $menu = $(this);
if ($menu.hasClass('dropdowns-loading') || $menu.hasClass('dropdowns-loaded')) {
return;
}
if (woodmartThemeModule.windowWidth <= 1024) {
setTimeout(function() {
loadDropdowns($menu);
}, 500);
} else {
loadDropdowns($menu);
}
});
});
function loadDropdowns($menu) {
$menu.addClass('dropdowns-loading');
var storageKey = woodmart_settings.menu_storage_key + '_' + $menu.attr('id');
var storedData = false;
var $items = $menu.find('.dropdown-load-ajax'),
ids = [];
$items.each(function() {
var $placeholder = $(this).find('.dropdown-html-placeholder');
if ($placeholder.length > 0) {
ids.push($placeholder.data('id'));
}
});
if (woodmart_settings.ajax_dropdowns_save && woodmartThemeModule.supports_html5_storage) {
var unparsedData = localStorage.getItem(storageKey);
try {
storedData = JSON.parse(unparsedData);
}
catch (e) {
console.log('cant parse Json', e);
}
}
if (storedData) {
renderResults(storedData);
} else {
if (ids.length === 0) {
$menu.addClass('dropdowns-loaded');
$menu.removeClass('dropdowns-loading');
return;
}
$.ajax({
url : woodmart_settings.ajaxurl,
data : {
action: 'woodmart_load_html_dropdowns',
ids : ids
},
dataType: 'json',
method : 'POST',
success : function(response) {
if (response.status === 'success') {
renderResults(response.data);
// Save to localStorage only if not already saved (avoid overwriting with stripped CSS).
if (woodmart_settings.ajax_dropdowns_save && woodmartThemeModule.supports_html5_storage) {
var existingData = localStorage.getItem(storageKey);
if (!existingData) {
try {
localStorage.setItem(storageKey, JSON.stringify(response.data));
} catch (e) {}
}
}
} else {
console.log('loading html dropdowns returns wrong data - ', response.message);
}
},
error : function() {
console.log('loading html dropdowns ajax error');
}
});
}
function renderResults(data) {
Object.keys(data).forEach(function(id) {
woodmartThemeModule.removeDuplicatedStylesFromHTML(data[id], function(html) {
$menu.find('[data-id="' + id + '"]').replaceWith(html);
$menu.addClass('dropdowns-loaded');
setTimeout(function() {
$menu.removeClass('dropdowns-loading');
}, 1000);
});
});
setTimeout(function() {
woodmartThemeModule.$document.trigger('wdLoadDropdownsSuccess');
}, 500);
}
}
};
$(document).ready(function() {
woodmartThemeModule.menuDropdownsAJAX();
});
})(jQuery);