jQuery(document).ready(function () { const wooActive = window.yayRecommended.woo_active; if (wooActive === '') { getData('featured'); } else { getData('woocommerce'); } jQuery('.yay-recommended-plugins-layout .plugin-install-tab').on('click', function () { if (jQuery(this).children().hasClass('current') === false) { getData(jQuery(this).attr('data-tab')); jQuery('.yay-recommended-plugins-layout .plugin-install-tab a').each(function () { if (jQuery(this).hasClass('current') === true) { jQuery(this).removeClass('current'); } }); jQuery(this).children().addClass('current'); } }); jQuery('body').on( 'click', '.yay-recommended-plugins-layout .plugin-action-buttons .activate-now', function () { const file = jQuery(this).attr('data-plugin-file'); activatePlugin(jQuery(this), file); }, ); jQuery('body').on( 'click', '.yay-recommended-plugins-layout .plugin-action-buttons .install-now', function () { if (!jQuery(this).hasClass('updating-message')) { const plugin = jQuery(this).attr('data-install-url'); installPlugin(jQuery(this), plugin); } }, ); jQuery('body').on( 'click', '.yay-recommended-plugins-layout .plugin-action-buttons .update-now', function () { if (!jQuery(this).hasClass('updating-message')) { const plugin = jQuery(this).attr('data-plugin'); updatePlugin(jQuery(this), plugin); } }, ); }); function getData(tab) { const loadingHtml = '
'; jQuery('.yay-recommended-plugins-layout #the-list').html(loadingHtml); jQuery('.yay-recommended-plugins-layout .plugin-install-tab').addClass('loading-process'); jQuery.ajax({ url: yayRecommended.admin_ajax, type: 'POST', data: { action: 'yay_recommended_get_plugin_data', tab: tab, nonce: yayRecommended.nonce, }, success: function (response) { if (response.success === true) { const html = response.data.html; jQuery('.yay-recommended-plugins-layout #the-list').html(html); jQuery('.yay-recommended-plugins-layout .plugin-install-tab').removeClass( 'loading-process', ); } }, }); } function activatePlugin(element, file) { element.addClass('button-disabled'); element.attr('disabled', 'disabled'); element.text('Processing...'); jQuery.ajax({ url: yayRecommended.admin_ajax, type: 'POST', data: { action: 'yay_recommended_activate_plugin', file: file, nonce: yayRecommended.nonce, }, success: function (response) { if (response.success === true) { const pluginStatus = jQuery( ".yay-recommended-plugins-layout .plugin-status-inactive[data-plugin-file='" + file + "']", ); pluginStatus.text('Active'); pluginStatus.addClass('plugin-status-active'); pluginStatus.removeClass('plugin-status-inactive'); element.removeClass('active-now'); element.text('Activated'); } else { element.removeClass('button-disabled'); element.prop('disabled', false); element.text('Activated'); } }, }); } function installPlugin(element, plugin) { element.removeClass('button-primary'); element.addClass('updating-message'); element.text('Installing...'); jQuery.ajax({ url: yayRecommended.admin_ajax, type: 'POST', data: { action: 'yay_recommended_upgrade_plugin', type: 'install', plugin: plugin, nonce: yayRecommended.nonce, }, success: function (response) { if (response.success === true) { element.removeClass('updating-message'); element.addClass('updated-message installed button-disabled'); element.attr('disabled', 'disabled'); element.removeAttr('data-install-url'); element.text('Installed!'); setTimeout(() => { const pluginStatus = jQuery( ".yay-recommended-plugins-layout .plugin-status-not-install[data-plugin-url='" + plugin + "']", ); pluginStatus.text('Active'); pluginStatus.addClass('plugin-status-active'); pluginStatus.removeClass('plugin-status-not-install'); pluginStatus.removeAttr('data-install-url'); element.removeClass('install-now updated-message installed'); element.text('Activated'); element.removeAttr('aria-label'); }, 500); } else { element.removeClass('updating-message'); element.addClass('button-primary'); element.text('Install Now'); } }, }); } function updatePlugin(element, plugin) { element.addClass('updating-message'); element.text('Updating...'); jQuery.ajax({ url: yayRecommended.admin_ajax, type: 'POST', data: { action: 'yay_recommended_upgrade_plugin', type: 'update', plugin: plugin, nonce: yayRecommended.nonce, }, success: function (response) { if (response.success === true) { element.removeClass('updating-message'); element.addClass('updated-message button-disabled'); element.attr('disabled', 'disabled'); element.text('Updated!'); if (response.data.active === false) { const pluginStatus = jQuery( ".yay-recommended-plugins-layout .plugin-status-inactive[data-plugin-file='" + plugin + "']", ); pluginStatus.text('Active'); pluginStatus.addClass('plugin-status-active'); pluginStatus.removeClass('plugin-status-inactive'); pluginStatus.removeAttr('data-plugin-file'); } } else { element.removeClass('updating-message'); element.text('Update Now'); } }, }); }