Changeset 3206298
- Timestamp:
- 12/11/2024 11:38:05 AM (16 months ago)
- Location:
- woo-variation-swatches
- Files:
-
- 62 added
- 10 edited
-
tags/2.1.3 (added)
-
tags/2.1.3/README.txt (added)
-
tags/2.1.3/assets (added)
-
tags/2.1.3/assets/css (added)
-
tags/2.1.3/assets/css/admin.css (added)
-
tags/2.1.3/assets/css/admin.min.css (added)
-
tags/2.1.3/assets/css/frontend.css (added)
-
tags/2.1.3/assets/css/frontend.min.css (added)
-
tags/2.1.3/assets/js (added)
-
tags/2.1.3/assets/js/admin.js (added)
-
tags/2.1.3/assets/js/admin.min.js (added)
-
tags/2.1.3/assets/js/frontend.js (added)
-
tags/2.1.3/assets/js/frontend.min.js (added)
-
tags/2.1.3/assets/js/jquery.serializejson.js (added)
-
tags/2.1.3/assets/js/jquery.serializejson.min.js (added)
-
tags/2.1.3/assets/js/wp-color-picker-alpha.js (added)
-
tags/2.1.3/assets/js/wp-color-picker-alpha.min.js (added)
-
tags/2.1.3/changelog.txt (added)
-
tags/2.1.3/images (added)
-
tags/2.1.3/images/placeholder.png (added)
-
tags/2.1.3/includes (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-backend.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-blocks.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-cache.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-compatibility.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-deactivate-feedback.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-export-import.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-frontend.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-manage-cache.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-product-edit-panel.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-product-page.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-settings.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-term-meta.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches-wc-api-response.php (added)
-
tags/2.1.3/includes/class-woo-variation-swatches.php (added)
-
tags/2.1.3/includes/functions.php (added)
-
tags/2.1.3/includes/getwooplugins (added)
-
tags/2.1.3/includes/getwooplugins/class-getwooplugins-admin-menus.php (added)
-
tags/2.1.3/includes/getwooplugins/class-getwooplugins-admin-settings.php (added)
-
tags/2.1.3/includes/getwooplugins/class-getwooplugins-plugin-deactivate-feedback.php (added)
-
tags/2.1.3/includes/getwooplugins/class-getwooplugins-settings-page.php (added)
-
tags/2.1.3/includes/getwooplugins/css (added)
-
tags/2.1.3/includes/getwooplugins/css/getwooplugins-settings.css (added)
-
tags/2.1.3/includes/getwooplugins/html (added)
-
tags/2.1.3/includes/getwooplugins/html/deactive-feedback-dialog.php (added)
-
tags/2.1.3/includes/getwooplugins/html/dialog.php (added)
-
tags/2.1.3/includes/getwooplugins/html/settings-page.php (added)
-
tags/2.1.3/includes/getwooplugins/js (added)
-
tags/2.1.3/includes/getwooplugins/js/getwooplugins-form-field-dependency.js (added)
-
tags/2.1.3/includes/getwooplugins/js/getwooplugins-settings.js (added)
-
tags/2.1.3/includes/getwooplugins/js/jquery.tipTip.js (added)
-
tags/2.1.3/includes/getwooplugins/js/wp-color-picker-alpha.js (added)
-
tags/2.1.3/includes/html-product-settings-panel.php (added)
-
tags/2.1.3/includes/html-settings-group.php (added)
-
tags/2.1.3/includes/html-settings-sidebar.php (added)
-
tags/2.1.3/includes/html-settings-tutorial.php (added)
-
tags/2.1.3/includes/themes-support.php (added)
-
tags/2.1.3/languages (added)
-
tags/2.1.3/languages/woo-variation-swatches.pot (added)
-
tags/2.1.3/uninstall.php (added)
-
tags/2.1.3/woo-variation-swatches.php (added)
-
tags/2.1.3/wpml-config.xml (added)
-
trunk/README.txt (modified) (3 diffs)
-
trunk/assets/css/admin.css (modified) (1 diff)
-
trunk/assets/css/frontend.css (modified) (1 diff)
-
trunk/assets/js/admin.js (modified) (1 diff)
-
trunk/assets/js/frontend.js (modified) (1 diff)
-
trunk/assets/js/wp-color-picker-alpha.js (modified) (1 diff)
-
trunk/changelog.txt (modified) (1 diff)
-
trunk/includes/getwooplugins/js/getwooplugins-settings.js (modified) (1 diff)
-
trunk/languages/woo-variation-swatches.pot (modified) (1 diff)
-
trunk/woo-variation-swatches.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
woo-variation-swatches/trunk/README.txt
r3143748 r3206298 4 4 Requires PHP: 7.4 5 5 Requires at least: 5.9 6 Tested up to: 6. 66 Tested up to: 6.7 7 7 WC requires at least: 7.5 8 WC tested up to: 9. 29 Stable tag: 2.1. 28 WC tested up to: 9.4 9 Stable tag: 2.1.3 10 10 License: GPLv3 or later 11 11 License URI: http://www.gnu.org/licenses/gpl-3.0.html … … 19 19 [youtube https://www.youtube.com/watch?v=4uIZjvWiSf0] 20 20 21 Variation Swatches is easy to use WooCommerce product variation swatches plugin. It offers an aesthetic and professional experience to select attributes for variation products. It turns the product variation select options fields into radio images, colors, and label. It means with the help of this powerful WooCommerce color or image variation swatches plugin, you can show product variation items in images, colors, and label. So, you can say goodbye to dropdown product attribute fields. 22 23 Variation Swatches for WooCommerce not only offers the color, image and label attributes in the single WooCommerce product. It also enables them in product quick view. If you're using WooCommerce themes like Flatsome that comes with default Quick View option, you don’t need to hassle to load color and image swatches for variable product attributes in quick view separately. 24 25 In the free WooCommerce attribute variation plugin, besides creating size, brand, image, color, and label variation swatches, you can handle the swatches shape style <strong>Rounded and Circle</strong>. On top of that, it allows you beautiful tooltips on variation swatch hover. Based on your requirement you enable and disable hover from the settings. To maximize and personalize your development process, the product attributes swatches comes an option to disable default plugin stylesheet so that you can personally write your own CSS. 21 WooCommerce Variation Swatches makes selecting product options easier and more enjoyable. Say goodbye to dull dropdown menus—your customers can now choose sizes, colors, styles, and more using vibrant swatches, images, and labels. 22 23 This transformation turns the shopping experience into something fun and visually appealing while efficiently supporting popular WordPress themes. Plus, it seamlessly integrates with product quick views, allows you to customize shapes into <strong>round or square</strong>, and even enables you to disable the plugin’s CSS to tailor it to your theme’s stylesheet. 24 25 The best part? WooCommerce Variation Swatches automatically convert all variation select dropdowns into buttons right after installation—only a quick two-step configuration is needed for color and image swatches. 26 26 27 27 28 ## Key Feature Comes with Variation Swatches For WooCommerce Plugin ## … … 615 616 == Changelog == 616 617 618 = 2.1.3 - 11-12-2024 = 619 620 * Fixed: JS Setting update warning trigger issue. 621 * Added: WP 6.7+ compatibility. 622 * Added: WC 9.4+ compatibility. 623 617 624 = 2.1.2 - 29-08-2024 = 618 625 -
woo-variation-swatches/trunk/assets/css/admin.css
r3143748 r3206298 3 3 * 4 4 * Author: Emran Ahmed ( emran.bd.08@gmail.com ) 5 * Date: 8/29/2024, 6:38:28PM5 * Date: 12/11/2024, 5:29:50 PM 6 6 * Released under the GPLv3 license. 7 7 */ -
woo-variation-swatches/trunk/assets/css/frontend.css
r3143748 r3206298 3 3 * 4 4 * Author: Emran Ahmed ( emran.bd.08@gmail.com ) 5 * Date: 8/29/2024, 6:38:28PM5 * Date: 12/11/2024, 5:29:50 PM 6 6 * Released under the GPLv3 license. 7 7 */ -
woo-variation-swatches/trunk/assets/js/admin.js
r3143748 r3206298 3 3 * 4 4 * Author: Emran Ahmed ( emran.bd.08@gmail.com ) 5 * Date: 8/29/2024, 6:38:28PM5 * Date: 12/11/2024, 5:29:50 PM 6 6 * Released under the GPLv3 license. 7 7 */ -
woo-variation-swatches/trunk/assets/js/frontend.js
r3143748 r3206298 3 3 * 4 4 * Author: Emran Ahmed ( emran.bd.08@gmail.com ) 5 * Date: 8/29/2024, 6:38:28PM5 * Date: 12/11/2024, 5:29:50 PM 6 6 * Released under the GPLv3 license. 7 7 */ -
woo-variation-swatches/trunk/assets/js/wp-color-picker-alpha.js
r3143748 r3206298 3 3 * 4 4 * Author: Emran Ahmed ( emran.bd.08@gmail.com ) 5 * Date: 8/29/2024, 6:38:28PM5 * Date: 12/11/2024, 5:29:50 PM 6 6 * Released under the GPLv3 license. 7 7 */ -
woo-variation-swatches/trunk/changelog.txt
r3143748 r3206298 1 1 *** Variation Swatches for WooCommerce *** 2 3 2024-10-11 - version 2.1.3 4 5 * Fixed - JS Setting update warning trigger issue. 6 * Added - WP 6.7+ compatibility. 7 * Added - WC 9.4+ compatibility. 2 8 3 9 2024-08-29 - version 2.1.2 -
woo-variation-swatches/trunk/includes/getwooplugins/js/getwooplugins-settings.js
r2776679 r3206298 2 2 3 3 (function ($, Backbone, _) { 4 'use strict' 5 6 /** 7 * GWP Backbone Modal plugin 8 * 9 * @param {object} options 10 */ 11 $.fn.GWPBackboneModal = function (options) { 12 return this.each(function () { 13 (new $.GWPBackboneModal($(this), options)) 14 }) 15 } 16 17 /** 18 * Initialize the Backbone Modal 19 * 20 * @param {object} element [description] 21 * @param {object} options [description] 22 */ 23 $.GWPBackboneModal = function (element, options) { 24 // Set settings 25 let settings = $.extend({}, $.GWPBackboneModal.defaultOptions, options) 26 27 if (settings.template) { 28 new $.GWPBackboneModal.View({ 29 target : settings.template, 30 string : settings.data 31 }) 32 } 33 } 34 35 /** 36 * Set default options 37 * 38 * @type {object} 39 */ 40 $.GWPBackboneModal.defaultOptions = { 41 template : '', 42 data : {} 43 } 44 45 /** 46 * Create the Backbone Modal 47 * 48 * @return {null} 49 */ 50 $.GWPBackboneModal.View = Backbone.View.extend({ 51 tagName : 'div', 52 id : 'gwp-backbone-modal-dialog', 53 _target : undefined, 54 _string : undefined, 55 events : { 56 'click .modal-close' : 'closeButton', 57 'click #btn-ok' : 'addButton', 58 'click #send-ajax' : 'sendAjax', 59 'touchstart #btn-ok' : 'addButton', 60 'keydown' : 'keyboardActions', 61 'change :radio' : 'optionChange' 62 }, 63 resizeContent : function () { 64 let $content = $('.gwp-backbone-modal-content').find('article') 65 let max_h = $(window).height() * 0.75 66 67 $content.css({ 68 'max-height' : max_h + 'px' 69 }) 70 }, 71 initialize : function (data) { 72 let view = this 73 this._target = data.target 74 this._string = data.string 75 _.bindAll(this, 'render') 76 this.render() 77 78 $(window).resize(function () { 79 view.resizeContent() 80 }) 81 }, 82 render : function () { 83 var template = wp.template(this._target) 84 85 this.$el.append( 86 template(this._string) 87 ) 88 89 $(document.body).css({ 90 'overflow' : 'hidden' 91 }).append(this.$el) 92 93 this.resizeContent() 94 this.$('.gwp-backbone-modal-content').attr('tabindex', '0').focus() 95 96 // $( document.body ).trigger( 'init_tooltips' ); 97 98 $(document.body).trigger('gwp_backbone_modal_loaded', this._target) 99 }, 100 closeButton : function (e) { 101 e.preventDefault() 102 $(document.body).trigger('gwp_backbone_modal_before_remove', this._target) 103 this.undelegateEvents() 104 $(document).off('focusin') 105 $(document.body).css({ 106 'overflow' : 'auto' 107 }) 108 this.remove() 109 $(document.body).trigger('gwp_backbone_modal_removed', this._target) 110 }, 111 112 addButton : function (e) { 113 $(document.body).trigger('gwp_backbone_modal_response', [this._target, this.getFormData()]) 114 this.closeButton(e) 115 }, 116 117 sendAjax : function (event) { 118 119 event.preventDefault() 120 121 let form = this.getFormData() 122 let data = this._string 123 let action = `${form.action}_by_${form.plugin}` 124 125 if (typeof form['reason_type'] === 'undefined') { 126 this.closeButton(event) 127 return 128 } 129 130 $(event.target).prop('disabled', true).text($(event.target).data('deactivating')).next().addClass('visible') 131 132 wp.ajax.send(action, { 133 data : form, 134 success : (response) => { 135 window.location.replace(data.deactivate_link) 136 this.closeButton(event) 137 }, 138 error : () => { 139 console.error('Deactivation Not logged.') 140 window.location.replace(data.deactivate_link) 141 this.closeButton(event) 142 } 143 }) 144 }, 145 146 optionChange : function (event) { 147 148 $(event.target).closest('.feedback-dialog-form-body').find('.feedback-text').prop('disabled', true).hide() 149 150 $(event.target).nextAll('.feedback-text').prop('disabled', false).show().focus() 151 152 }, 153 154 getFormData : function () { 155 let data = {} 156 157 $(document.body).trigger('gwp_backbone_modal_before_update', this._target) 158 159 $.each($('form', this.$el).serializeArray(), function (index, item) { 160 if (item.name.indexOf('[]') !== -1) { 161 item.name = item.name.replace('[]', '') 162 data[item.name] = $.makeArray(data[item.name]) 163 data[item.name].push(item.value) 164 } 165 else { 166 data[item.name] = item.value 167 } 168 }) 169 170 return data 171 }, 172 keyboardActions : function (e) { 173 let button = e.keyCode || e.which 174 175 // Enter key 176 if (13 === button && !(e.target.tagName && (e.target.tagName.toLowerCase() === 'input' || e.target.tagName.toLowerCase() === 'textarea'))) { 177 this.addButton(e) 178 } 179 180 // ESC key 181 if (27 === button) { 182 this.closeButton(e) 183 } 184 } 185 }) 4 'use strict' 5 6 /** 7 * GWP Backbone Modal plugin 8 * 9 * @param {object} options 10 */ 11 $.fn.GWPBackboneModal = function (options) { 12 return this.each(function () { 13 (new $.GWPBackboneModal($(this), options)) 14 }) 15 } 16 17 /** 18 * Initialize the Backbone Modal 19 * 20 * @param {object} element [description] 21 * @param {object} options [description] 22 */ 23 $.GWPBackboneModal = function (element, options) { 24 // Set settings 25 let settings = $.extend({}, $.GWPBackboneModal.defaultOptions, options) 26 27 if (settings.template) { 28 new $.GWPBackboneModal.View({ 29 target: settings.template, 30 string: settings.data, 31 }) 32 } 33 } 34 35 /** 36 * Set default options 37 * 38 * @type {object} 39 */ 40 $.GWPBackboneModal.defaultOptions = { 41 template: '', 42 data: {}, 43 } 44 45 /** 46 * Create the Backbone Modal 47 * 48 * @return {null} 49 */ 50 $.GWPBackboneModal.View = Backbone.View.extend({ 51 tagName: 'div', 52 id: 'gwp-backbone-modal-dialog', 53 _target: undefined, 54 _string: undefined, 55 events: { 56 'click .modal-close': 'closeButton', 57 'click #btn-ok': 'addButton', 58 'click #send-ajax': 'sendAjax', 59 'touchstart #btn-ok': 'addButton', 60 'keydown': 'keyboardActions', 61 'change :radio': 'optionChange', 62 }, 63 resizeContent: function () { 64 let $content = $('.gwp-backbone-modal-content').find('article') 65 let max_h = $(window).height() * 0.75 66 67 $content.css({ 68 'max-height': max_h + 'px', 69 }) 70 }, 71 initialize: function (data) { 72 let view = this 73 this._target = data.target 74 this._string = data.string 75 _.bindAll(this, 'render') 76 this.render() 77 78 $(window).resize(function () { 79 view.resizeContent() 80 }) 81 }, 82 render: function () { 83 var template = wp.template(this._target) 84 85 this.$el.append( 86 template(this._string), 87 ) 88 89 $(document.body).css({ 90 'overflow': 'hidden', 91 }).append(this.$el) 92 93 this.resizeContent() 94 this.$('.gwp-backbone-modal-content').attr('tabindex', '0').focus() 95 96 // $( document.body ).trigger( 'init_tooltips' ); 97 98 $(document.body).trigger('gwp_backbone_modal_loaded', this._target) 99 }, 100 closeButton: function (e) { 101 e.preventDefault() 102 $(document.body).trigger('gwp_backbone_modal_before_remove', this._target) 103 this.undelegateEvents() 104 $(document).off('focusin') 105 $(document.body).css({ 106 'overflow': 'auto', 107 }) 108 this.remove() 109 $(document.body).trigger('gwp_backbone_modal_removed', this._target) 110 }, 111 112 addButton: function (e) { 113 $(document.body).trigger('gwp_backbone_modal_response', [this._target, this.getFormData()]) 114 this.closeButton(e) 115 }, 116 117 sendAjax: function (event) { 118 119 event.preventDefault() 120 121 let form = this.getFormData() 122 let data = this._string 123 let action = `${form.action}_by_${form.plugin}` 124 125 if (typeof form['reason_type'] === 'undefined') { 126 this.closeButton(event) 127 return 128 } 129 130 $(event.target).prop('disabled', true).text($(event.target).data('deactivating')).next().addClass('visible') 131 132 wp.ajax.send(action, { 133 data: form, 134 success: (response) => { 135 window.location.replace(data.deactivate_link) 136 this.closeButton(event) 137 }, 138 error: () => { 139 console.error('Deactivation Not logged.') 140 window.location.replace(data.deactivate_link) 141 this.closeButton(event) 142 }, 143 }) 144 }, 145 146 optionChange: function (event) { 147 148 $(event.target).closest('.feedback-dialog-form-body').find('.feedback-text').prop('disabled', true).hide() 149 150 $(event.target).nextAll('.feedback-text').prop('disabled', false).show().focus() 151 152 }, 153 154 getFormData: function () { 155 let data = {} 156 157 $(document.body).trigger('gwp_backbone_modal_before_update', this._target) 158 159 $.each($('form', this.$el).serializeArray(), function (index, item) { 160 if (item.name.indexOf('[]') !== -1) { 161 item.name = item.name.replace('[]', '') 162 data[item.name] = $.makeArray(data[item.name]) 163 data[item.name].push(item.value) 164 } else { 165 data[item.name] = item.value 166 } 167 }) 168 169 return data 170 }, 171 keyboardActions: function (e) { 172 let button = e.keyCode || e.which 173 174 // Enter key 175 if (13 === button && !(e.target.tagName && (e.target.tagName.toLowerCase() === 'input' || e.target.tagName.toLowerCase() === 'textarea'))) { 176 this.addButton(e) 177 } 178 179 // ESC key 180 if (27 === button) { 181 this.closeButton(e) 182 } 183 }, 184 }) 186 185 187 186 }(jQuery, Backbone, _)) 188 187 189 188 const GWPAdminHelper = (($) => { 190 return class GWPAdminHelper { 191 192 static ResetPopupData(pluginslug) { 193 let id = `#gwp-plugin-deactivate-feedback-dialog-wrapper-${pluginslug}` 194 let $button = $('.feedback-dialog-form-button-send', id) 195 $button.prop('disabled', false).text($button.data('defaultvalue')).next().removeClass('visible') 196 } 197 198 static DeactivatePopup(pluginslug) { 199 200 let id = `#gwp-plugin-deactivate-feedback-dialog-wrapper-${pluginslug}` 201 202 $('.wp-list-table.plugins').find('[data-slug="' + pluginslug + '"].active').each(function () { 203 204 let deactivate_link = $(this).find('.deactivate a').prop('href') 205 206 $(this).data('deactivate_link', deactivate_link) 207 208 $(this).find('.deactivate a').on('click', (event) => { 209 event.preventDefault() 210 211 $(this).GWPBackboneModal({ 212 template : `gwp-deactive-feedback-dialog-${pluginslug}`, 213 data : { 214 deactivate_link : deactivate_link, 215 plugin : pluginslug 216 } 217 }) 218 }) 219 }) 220 } 221 222 static ProPopup() { 223 224 // let id = `#gwp-pro-dialog-wrapper-${pluginslug}`; 225 $('.getwooplugins-admin-form-table .is-pro a.pro-modal, .getwooplugins-admin-form-table a.help-modal').each(function () { 226 227 $(this).on('click', (event) => { 228 event.preventDefault() 229 // event.stopPropagation(); 230 231 let template_id = $(this).data('template') 232 //let template = `#${template_id}` 233 234 $(this).GWPBackboneModal({ 235 template : template_id, 236 data : {} 237 }) 238 239 }) 240 }) 241 } 242 243 } 244 })(jQuery); 189 return class GWPAdminHelper { 190 191 static ResetPopupData (pluginslug) { 192 let id = `#gwp-plugin-deactivate-feedback-dialog-wrapper-${pluginslug}` 193 let $button = $('.feedback-dialog-form-button-send', id) 194 $button.prop('disabled', false).text($button.data('defaultvalue')).next().removeClass('visible') 195 } 196 197 static DeactivatePopup (pluginslug) { 198 199 let id = `#gwp-plugin-deactivate-feedback-dialog-wrapper-${pluginslug}` 200 201 $('.wp-list-table.plugins').find('[data-slug="' + pluginslug + '"].active').each(function () { 202 203 let deactivate_link = $(this).find('.deactivate a').prop('href') 204 205 $(this).data('deactivate_link', deactivate_link) 206 207 $(this).find('.deactivate a').on('click', (event) => { 208 event.preventDefault() 209 210 $(this).GWPBackboneModal({ 211 template: `gwp-deactive-feedback-dialog-${pluginslug}`, 212 data: { 213 deactivate_link: deactivate_link, 214 plugin: pluginslug, 215 }, 216 }) 217 }) 218 }) 219 } 220 221 static ProPopup () { 222 223 // let id = `#gwp-pro-dialog-wrapper-${pluginslug}`; 224 $('.getwooplugins-admin-form-table .is-pro a.pro-modal, .getwooplugins-admin-form-table a.help-modal').each(function () { 225 226 $(this).on('click', (event) => { 227 event.preventDefault() 228 // event.stopPropagation(); 229 230 let template_id = $(this).data('template') 231 //let template = `#${template_id}` 232 233 $(this).GWPBackboneModal({ 234 template: template_id, 235 data: {}, 236 }) 237 238 }) 239 }) 240 } 241 242 } 243 })(jQuery) 244 245 const GWPDirtySettingSaveWarningHandler = (event) => { 246 // Recommended 247 event.preventDefault() 248 249 event.returnValue = getwooplugins_settings_params.i18n_nav_warning 250 return getwooplugins_settings_params.i18n_nav_warning 251 } 245 252 246 253 (function ($, params, wp) { 247 $(function () { 248 249 // Color picker with alpha support 250 if ($().wpColorPicker) { 251 $('.color-picker-alpha').wpColorPicker({ 252 change : function (event, ui) { 253 window.onbeforeunload = function () { 254 return params.i18n_nav_warning 255 } 256 }, 257 }) 258 } 259 260 // Edit prompt 261 $(function () { 262 var changed = false 263 264 $(':input:not(.no-track)').on('change', function () { 265 if (!changed) { 266 window.onbeforeunload = function () { 267 return params.i18n_nav_warning 268 } 269 changed = true 270 } 271 }) 272 273 $('.submit :input').on('click', function () { 274 window.onbeforeunload = '' 275 }) 276 }) 277 278 $(document.body).on('init_tooltips', function () { 279 280 if (!jQuery().tipTip) { 281 return false; 282 } 283 284 $('.tips, .help_tip, .woocommerce-help-tip, .getwooplugins-help-tip').tipTip({ 285 'attribute' : 'data-tip', 286 'fadeIn' : 50, 287 'fadeOut' : 50, 288 'delay' : 200, 289 'keepAlive' : true 290 }) 291 292 $('.column-wc_actions .wc-action-button').tipTip({ 293 'fadeIn' : 50, 294 'fadeOut' : 50, 295 'delay' : 200 296 }) 297 298 // Add tiptip to parent element for widefat tables 299 $('.parent-tips').each(function () { 300 $(this).closest('a, th').attr('data-tip', $(this).data('tip')).tipTip({ 301 'attribute' : 'data-tip', 302 'fadeIn' : 50, 303 'fadeOut' : 50, 304 'delay' : 200, 305 'keepAlive' : true 306 }).css('cursor', 'help') 307 }) 308 }) 309 310 // Tooltips 311 $(document.body).trigger('init_tooltips') 312 313 try { 314 $(document.body).on('init_form_field_dependency', function () { 315 $('[data-gwp_dependency]').GWPFormFieldDependency() 316 }).trigger('init_form_field_dependency') 317 318 } 319 catch (err) { 320 // If failed (conflict?) log the error but don't stop other scripts breaking. 321 window.console.log(err); 322 } 323 324 GWPAdminHelper.ProPopup() 325 326 }) 254 $(function () { 255 256 // Color picker with alpha support 257 if ($().wpColorPicker) { 258 $('.color-picker-alpha').wpColorPicker({ 259 change: function (event, ui) { 260 window.onbeforeunload = function () { 261 return params.i18n_nav_warning 262 } 263 }, 264 }) 265 } 266 267 // Edit prompt 268 $(function () { 269 let changed = false 270 271 $('.getwooplugins-settings-form :input:not(.no-track)').on('change', function () { 272 if (!changed) { 273 274 window.addEventListener('beforeunload', GWPDirtySettingSaveWarningHandler) 275 changed = true 276 } 277 }) 278 279 $('.submit :input').on('click', function () { 280 window.removeEventListener('beforeunload', GWPDirtySettingSaveWarningHandler) 281 }) 282 }) 283 284 $(document.body).on('init_tooltips', function () { 285 286 if (!jQuery().tipTip) { 287 return false 288 } 289 290 $('.tips, .help_tip, .woocommerce-help-tip, .getwooplugins-help-tip').tipTip({ 291 'attribute': 'data-tip', 292 'fadeIn': 50, 293 'fadeOut': 50, 294 'delay': 200, 295 'keepAlive': true, 296 }) 297 298 $('.column-wc_actions .wc-action-button').tipTip({ 299 'fadeIn': 50, 300 'fadeOut': 50, 301 'delay': 200, 302 }) 303 304 // Add tiptip to parent element for widefat tables 305 $('.parent-tips').each(function () { 306 $(this).closest('a, th').attr('data-tip', $(this).data('tip')).tipTip({ 307 'attribute': 'data-tip', 308 'fadeIn': 50, 309 'fadeOut': 50, 310 'delay': 200, 311 'keepAlive': true, 312 }).css('cursor', 'help') 313 }) 314 }) 315 316 // Tooltips 317 $(document.body).trigger('init_tooltips') 318 319 try { 320 $(document.body).on('init_form_field_dependency', function () { 321 $('[data-gwp_dependency]').GWPFormFieldDependency() 322 }).trigger('init_form_field_dependency') 323 324 } catch (err) { 325 // If failed (conflict?) log the error but don't stop other scripts breaking. 326 window.console.log(err) 327 } 328 329 GWPAdminHelper.ProPopup() 330 331 }) 327 332 })(jQuery, getwooplugins_settings_params, wp) -
woo-variation-swatches/trunk/languages/woo-variation-swatches.pot
r3143748 r3206298 8 8 "Content-Transfer-Encoding: 8bit\n" 9 9 "Language-Team: Emran Ahmed <emran.bd.08@gmail.com>\n" 10 "POT-Creation-Date: 2024- 08-29 12:38+0000\n"10 "POT-Creation-Date: 2024-12-11 11:29+0000\n" 11 11 "X-Poedit-Basepath: ..\n" 12 12 "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" -
woo-variation-swatches/trunk/woo-variation-swatches.php
r3143748 r3206298 5 5 * Description: Beautiful colors, images and buttons variation swatches for woocommerce product attributes. Requires WooCommerce 7.5+ 6 6 * Author: Emran Ahmed 7 * Version: 2.1. 27 * Version: 2.1.3 8 8 * Requires PHP: 7.4 9 9 * Requires at least: 5.9 10 * Tested up to: 6. 610 * Tested up to: 6.7 11 11 * WC requires at least: 7.5 12 * WC tested up to: 9. 212 * WC tested up to: 9.4 13 13 * Text Domain: woo-variation-swatches 14 14 * Domain Path: /languages … … 22 22 23 23 if ( ! defined( 'WOO_VARIATION_SWATCHES_PLUGIN_VERSION' ) ) { 24 define( 'WOO_VARIATION_SWATCHES_PLUGIN_VERSION', '2.1. 2' );24 define( 'WOO_VARIATION_SWATCHES_PLUGIN_VERSION', '2.1.3' ); 25 25 } 26 26
Note: See TracChangeset
for help on using the changeset viewer.