Conflict with FME: Shop as a Customer
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday. If you have problems with registration ask help on contact us page pleaseIf you not got email within 24~36 business hours, firstly check your spam box, and if no any email from the support there - back to the forum and read answer here. DO NOT ANSWER ON EMAILS [noreply@pluginus.net] FROM THE FORUM!! Emails are just for your info, all answers should be published only here.
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday.
Quote from costumevault on March 27, 2023, 20:36Through trial and error, I believe the conflict is the following plugin: FME: Shop as a Customer for WooCommerce. by fmeaddons.com
When I go to WooCommerce > Settings > Products Filter tab, the 'loading icon' just keeps turning and the page doesn't load. But, after disable and enabling plug-ins, it doesn't happen when the above plugin is disabled. I'm sorry I don't have more to go on than that. Because I'm actively working on the site, the plugin is disabled. https://thecostumevault.ca.
Through trial and error, I believe the conflict is the following plugin: FME: Shop as a Customer for WooCommerce. by fmeaddons.com
When I go to WooCommerce > Settings > Products Filter tab, the 'loading icon' just keeps turning and the page doesn't load. But, after disable and enabling plug-ins, it doesn't happen when the above plugin is disabled. I'm sorry I don't have more to go on than that. Because I'm actively working on the site, the plugin is disabled. https://thecostumevault.ca.
Quote from Pablo Borysenco on March 28, 2023, 11:16Hello
Please check the browser console[F12] - maybe it's a JS error
Hello
Please check the browser console[F12] - maybe it's a JS error
Quote from costumevault on April 1, 2023, 23:32Great. I can do that, but I don't know how to read and interpret the result. I can open the Developer Console (using chrome on a MAC), then make sure console is selected. I've attached an example of what I see. Please advise.
Great. I can do that, but I don't know how to read and interpret the result. I can open the Developer Console (using chrome on a MAC), then make sure console is selected. I've attached an example of what I see. Please advise.
Quote from Pablo Borysenco on April 3, 2023, 11:34Hello
Yes, as you noticed you have JS errors and this may affect the loading of the plugin settings page
You can try to find the source of these errors (plugin or current theme). hover your mouse over the file and you will see the full path to this file - https://share.pluginus.net/image/i20230403123327.png - so by the name of the folder you can determine the source of errors
What version number of the filter are you using?
Hello
Yes, as you noticed you have JS errors and this may affect the loading of the plugin settings page
You can try to find the source of these errors (plugin or current theme). hover your mouse over the file and you will see the full path to this file - https://share.pluginus.net/image/i20230403123327.png - so by the name of the folder you can determine the source of errors
What version number of the filter are you using?
Quote from costumevault on April 4, 2023, 02:38I'm using v. 3.3.2. When I go to WooCommerce > Settings > General with the developer console open, it appears that the errors point to https://domain.com/wp-includes/js/jquery/ui/........ further down the page I hover and can see https://code.jquery.com/jquery-3.5.1.js?ver=1.0:4055 if I've actually typed that accurately. Unfortunately, neither of those file paths, means anything to me.
Now, when I go to the WooCommerce Settings > Products Filter it seems to be the same root folder wp-includes at the top of the list for about 15 entries.
Now, when I continue to poke around and use the developer tools, Sources > Page and follow the filepath, I can see a red X see below copy/paste although I don't think it shows the colors correctly:
/*!
* jQuery UI Button 1.13.2
* http://jqueryui.com
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/
!function(t) {
"use strict";
"function" == typeof define && define.amd ? define(["jquery", "./controlgroup", "./checkboxradio", "./core"], t) : t(jQuery)
}(function(e) {
"use strict";
var h;
return e.widget("ui.button", {
version: "1.13.2",
defaultElement: "<button>",
options: {
classes: {
"ui-button": "ui-corner-all"
},
disabled: null,
icon: null,
iconPosition: "beginning",
label: null,
showLabel: !0
},
_getCreateOptions: function() {
var t, i = this._super() || {};
return this.isInput = this.element.is("input"),
null != (t = this.element[0].disabled) && (i.disabled = t),
this.originalLabel = this.isInput ? this.element.val() : this.element.html(),
this.originalLabel && (i.label = this.originalLabel),
i
},
_create: function() {
!this.option.showLabel & !this.options.icon && (this.options.showLabel = !0),
null == this.options.disabled && (this.options.disabled = this.element[0].disabled || !1),
this.hasTitle = !!this.element.attr("title"),
this.options.label && this.options.label !== this.originalLabel && (this.isInput ? this.element.val(this.options.label) : this.element.html(this.options.label)),
this._addClass("ui-button", "ui-widget"),
this._setOption("disabled", this.options.disabled),
this._enhance(),
this.element.is("a") && this._on({
keyup: function(t) {
t.keyCode === e.ui.keyCode.SPACE && (t.preventDefault(),
this.element[0].click ? this.element[0].click() : this.element.trigger("click"))
}
})
},
_enhance: function() {
this.element.is("button") || this.element.attr("role", "button"),
this.options.icon && (this._updateIcon("icon", this.options.icon),
this._updateTooltip())
},
_updateTooltip: function() {
this.title = this.element.attr("title"),
this.options.showLabel || this.title || this.element.attr("title", this.options.label)
},
_updateIcon: function(t, i) {
var t = "iconPosition" !== t
, o = t ? this.options.iconPosition : i
, s = "top" === o || "bottom" === o;
this.icon ? t && this._removeClass(this.icon, null, this.options.icon) : (this.icon = e("<span>"),
this._addClass(this.icon, "ui-button-icon", "ui-icon"),
this.options.showLabel || this._addClass("ui-button-icon-only")),
t && this._addClass(this.icon, null, i),
this._attachIcon(o),
s ? (this._addClass(this.icon, null, "ui-widget-icon-block"),
this.iconSpace && this.iconSpace.remove()) : (this.iconSpace || (this.iconSpace = e("<span> </span>"),
this._addClass(this.iconSpace, "ui-button-icon-space")),
this._removeClass(this.icon, null, "ui-wiget-icon-block"),
this._attachIconSpace(o))
},
_destroy: function() {
this.element.removeAttr("role"),
this.icon && this.icon.remove(),
this.iconSpace && this.iconSpace.remove(),
this.hasTitle || this.element.removeAttr("title")
},
_attachIconSpace: function(t) {
this.icon[/^(?:end|bottom)/.test(t) ? "before" : "after"](this.iconSpace)
},
_attachIcon: function(t) {
this.element[/^(?:end|bottom)/.test(t) ? "append" : "prepend"](this.icon)
},
_setOptions: function(t) {
var i = (void 0 === t.showLabel ? this.options : t).showLabel
, o = (void 0 === t.icon ? this.options : t).icon;
i || o || (t.showLabel = !0),
this._super(t)
},
_setOption: function(t, i) {
"icon" === t && (i ? this._updateIcon(t, i) : this.icon && (this.icon.remove(),
this.iconSpace && this.iconSpace.remove())),
"iconPosition" === t && this._updateIcon(t, i),
"showLabel" === t && (this._toggleClass("ui-button-icon-only", null, !i),
this._updateTooltip()),
"label" === t && (this.isInput ? this.element.val(i) : (this.element.html(i),
this.icon && (this._attachIcon(this.options.iconPosition),
this._attachIconSpace(this.options.iconPosition)))),
this._super(t, i),
"disabled" === t && (this._toggleClass(null, "ui-state-disabled", i),
(this.element[0].disabled = i) && this.element.trigger("blur"))
},
refresh: function() {
var t = this.element.is("input, button") ? this.element[0].disabled : this.element.hasClass("ui-button-disabled");
t !== this.options.disabled && this._setOptions({
disabled: t
}),
this._updateTooltip()
}
}),
!1 !== e.uiBackCompat && (e.widget("ui.button", e.ui.button, {
options: {
text: !0,
icons: {
primary: null,
secondary: null
}
},
_create: function() {
this.options.showLabel && !this.options.text && (this.options.showLabel = this.options.text),
!this.options.showLabel && this.options.text && (this.options.text = this.options.showLabel),
this.options.icon || !this.options.icons.primary && !this.options.icons.secondary ? this.options.icon && (this.options.icons.primary = this.options.icon) : this.options.icons.primary ? this.options.icon = this.options.icons.primary : (this.options.icon = this.options.icons.secondary,
this.options.iconPosition = "end"),
this._super()
},
_setOption: function(t, i) {
"text" === t ? this._super("showLabel", i) : ("showLabel" === t && (this.options.text = i),
"icon" === t && (this.options.icons.primary = i),
"icons" === t && (i.primary ? (this._super("icon", i.primary),
this._super("iconPosition", "beginning")) : i.secondary && (this._super("icon", i.secondary),
this._super("iconPosition", "end"))),
this._superApply(arguments))
}
}),
e.fn.button = (h = e.fn.button,
function(o) {
var t = "string" == typeof o
, s = Array.prototype.slice.call(arguments, 1)
, n = this;
return t ? this.length || "instance" !== o ? this.each(function() {
var t, i = e(this).attr("type"), i = e.data(this, "ui-" + ("checkbox" !== i && "radio" !== i ? "button" : "checkboxradio"));
return "instance" === o ? (n = i,
!1) : i ? "function" != typeof i[o] || "_" === o.charAt(0) ? e.error("no such method '" + o + "' for button widget instance") : (t = i[o].apply(i, s)) !== i && void 0 !== t ? (n = t && t.jquery ? n.pushStack(t.get()) : t,
!1) : void 0 : e.error("cannot call methods on button prior to initialization; attempted to call method '" + o + "'")
}) : n = void 0 : (s.length && (o = e.widget.extend.apply(null, [o].concat(s))),
this.each(function() {
var t = e(this).attr("type")
, t = "checkbox" !== t && "radio" !== t ? "button" : "checkboxradio"
, i = e.data(this, "ui-" + t);
i ? (i.option(o || {}),
i._init && i._init()) : "button" == t ? h.call(e(this), o) : e(this).checkboxradio(e.extend({
icon: !1
}, o))
})),
n
}
),
e.fn.buttonset = function() {
return e.ui.controlgroup || e.error("Controlgroup widget missing"),
"option" === arguments[0] && "items" === arguments[1] && arguments[2] ? this.controlgroup.apply(this, [arguments[0], "items.button", arguments[2]]) : "option" === arguments[0] && "items" === arguments[1] ? this.controlgroup.apply(this, [arguments[0], "items.button"]) : ("object" == typeof arguments[0] && arguments[0].items && (arguments[0].items = {
button: arguments[0].items
}),
this.controlgroup.apply(this, arguments))
}
),
e.ui.button
});
I'm using v. 3.3.2. When I go to WooCommerce > Settings > General with the developer console open, it appears that the errors point to https://domain.com/wp-includes/js/jquery/ui/........ further down the page I hover and can see https://code.jquery.com/jquery-3.5.1.js?ver=1.0:4055 if I've actually typed that accurately. Unfortunately, neither of those file paths, means anything to me.
Now, when I go to the WooCommerce Settings > Products Filter it seems to be the same root folder wp-includes at the top of the list for about 15 entries.
Now, when I continue to poke around and use the developer tools, Sources > Page and follow the filepath, I can see a red X see below copy/paste although I don't think it shows the colors correctly:
/*!
* jQuery UI Button 1.13.2
* http://jqueryui.com
*
* Copyright jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/
!function(t) {
"use strict";
"function" == typeof define && define.amd ? define(["jquery","./controlgroup","./checkboxradio","./core"], t) : t(jQuery)
}(function(e) {
"use strict";
var h;
return e.widget("ui.button", {
version:"1.13.2",
defaultElement:"<button>",
options: {
classes: {
"ui-button":"ui-corner-all"
},
disabled: null,
icon: null,
iconPosition:"beginning",
label: null,
showLabel: !0
},
_getCreateOptions: function() {
var t, i = this._super() || {};
return this.isInput = this.element.is("input"),
null != (t = this.element[0].disabled) && (i.disabled = t),
this.originalLabel = this.isInput ? this.element.val() : this.element.html(),
this.originalLabel && (i.label = this.originalLabel),
i
},
_create: function() {
!this.option.showLabel & !this.options.icon && (this.options.showLabel = !0),
null == this.options.disabled && (this.options.disabled = this.element[0].disabled || !1),
this.hasTitle = !!this.element.attr("title"),
this.options.label && this.options.label !== this.originalLabel && (this.isInput ? this.element.val(this.options.label) : this.element.html(this.options.label)),
this._addClass("ui-button","ui-widget"),
this._setOption("disabled", this.options.disabled),
this._enhance(),
this.element.is("a") && this._on({
keyup: function(t) {
t.keyCode === e.ui.keyCode.SPACE && (t.preventDefault(),
this.element[0].click ? this.element[0].click() : this.element.trigger("click"))
}
})
},
_enhance: function() {
this.element.is("button") || this.element.attr("role","button"),
this.options.icon && (this._updateIcon("icon", this.options.icon),
this._updateTooltip())
},
_updateTooltip: function() {
this.title = this.element.attr("title"),
this.options.showLabel || this.title || this.element.attr("title", this.options.label)
},
_updateIcon: function(t, i) {
var t ="iconPosition" !== t
, o = t ? this.options.iconPosition : i
, s ="top" === o ||"bottom" === o;
this.icon ? t && this._removeClass(this.icon, null, this.options.icon) : (this.icon = e("<span>"),
this._addClass(this.icon,"ui-button-icon","ui-icon"),
this.options.showLabel || this._addClass("ui-button-icon-only")),
t && this._addClass(this.icon, null, i),
this._attachIcon(o),
s ? (this._addClass(this.icon, null,"ui-widget-icon-block"),
this.iconSpace && this.iconSpace.remove()) : (this.iconSpace || (this.iconSpace = e("<span> </span>"),
this._addClass(this.iconSpace,"ui-button-icon-space")),
this._removeClass(this.icon, null,"ui-wiget-icon-block"),
this._attachIconSpace(o))
},
_destroy: function() {
this.element.removeAttr("role"),
this.icon && this.icon.remove(),
this.iconSpace && this.iconSpace.remove(),
this.hasTitle || this.element.removeAttr("title")
},
_attachIconSpace: function(t) {
this.icon[/^(?:end|bottom)/.test(t) ?"before" :"after"](this.iconSpace)
},
_attachIcon: function(t) {
this.element[/^(?:end|bottom)/.test(t) ?"append" :"prepend"](this.icon)
},
_setOptions: function(t) {
var i = (void 0 === t.showLabel ? this.options : t).showLabel
, o = (void 0 === t.icon ? this.options : t).icon;
i || o || (t.showLabel = !0),
this._super(t)
},
_setOption: function(t, i) {
"icon" === t && (i ? this._updateIcon(t, i) : this.icon && (this.icon.remove(),
this.iconSpace && this.iconSpace.remove())),
"iconPosition" === t && this._updateIcon(t, i),
"showLabel" === t && (this._toggleClass("ui-button-icon-only", null, !i),
this._updateTooltip()),
"label" === t && (this.isInput ? this.element.val(i) : (this.element.html(i),
this.icon && (this._attachIcon(this.options.iconPosition),
this._attachIconSpace(this.options.iconPosition)))),
this._super(t, i),
"disabled" === t && (this._toggleClass(null,"ui-state-disabled", i),
(this.element[0].disabled = i) && this.element.trigger("blur"))
},
refresh: function() {
var t = this.element.is("input, button") ? this.element[0].disabled : this.element.hasClass("ui-button-disabled");
t !== this.options.disabled && this._setOptions({
disabled: t
}),
this._updateTooltip()
}
}),
!1 !== e.uiBackCompat && (e.widget("ui.button", e.ui.button, {
options: {
text: !0,
icons: {
primary: null,
secondary: null
}
},
_create: function() {
this.options.showLabel && !this.options.text && (this.options.showLabel = this.options.text),
!this.options.showLabel && this.options.text && (this.options.text = this.options.showLabel),
this.options.icon || !this.options.icons.primary && !this.options.icons.secondary ? this.options.icon && (this.options.icons.primary = this.options.icon) : this.options.icons.primary ? this.options.icon = this.options.icons.primary : (this.options.icon = this.options.icons.secondary,
this.options.iconPosition ="end"),
this._super()
},
_setOption: function(t, i) {
"text" === t ? this._super("showLabel", i) : ("showLabel" === t && (this.options.text = i),
"icon" === t && (this.options.icons.primary = i),
"icons" === t && (i.primary ? (this._super("icon", i.primary),
this._super("iconPosition","beginning")) : i.secondary && (this._super("icon", i.secondary),
this._super("iconPosition","end"))),
this._superApply(arguments))
}
}),
e.fn.button = (h = e.fn.button,
function(o) {
var t ="string" == typeof o
, s = Array.prototype.slice.call(arguments, 1)
, n = this;
return t ? this.length ||"instance" !== o ? this.each(function() {
var t, i = e(this).attr("type"), i = e.data(this,"ui-" + ("checkbox" !== i &&"radio" !== i ?"button" :"checkboxradio"));
return"instance" === o ? (n = i,
!1) : i ?"function" != typeof i[o] ||"_" === o.charAt(0) ? e.error("no such method '" + o +"' for button widget instance") : (t = i[o].apply(i, s)) !== i && void 0 !== t ? (n = t && t.jquery ? n.pushStack(t.get()) : t,
!1) : void 0 : e.error("cannot call methods on button prior to initialization; attempted to call method '" + o +"'")
}) : n = void 0 : (s.length && (o = e.widget.extend.apply(null, [o].concat(s))),
this.each(function() {
var t = e(this).attr("type")
, t ="checkbox" !== t &&"radio" !== t ?"button" :"checkboxradio"
, i = e.data(this,"ui-" + t);
i ? (i.option(o || {}),
i._init && i._init()) :"button" == t ? h.call(e(this), o) : e(this).checkboxradio(e.extend({
icon: !1
}, o))
})),
n
}
),
e.fn.buttonset = function() {
return e.ui.controlgroup || e.error("Controlgroup widget missing"),
"option" === arguments[0] &&"items" === arguments[1] && arguments[2] ? this.controlgroup.apply(this, [arguments[0],"items.button", arguments[2]]) :"option" === arguments[0] &&"items" === arguments[1] ? this.controlgroup.apply(this, [arguments[0],"items.button"]) : ("object" == typeof arguments[0] && arguments[0].items && (arguments[0].items = {
button: arguments[0].items
}),
this.controlgroup.apply(this, arguments))
}
),
e.ui.button
});
Quote from Pablo Borysenco on April 4, 2023, 11:27Hello
Please paste your license key here - https://share.pluginus.net/image/i20230222134241.png -> https://share.pluginus.net/image/i20230222134511.png and wp-admin access - https://share.pluginus.net/image/i20230222134615.png - I will check it
Can I disable plugins/theme to test?
Hello
Please paste your license key here - https://share.pluginus.net/image/i20230222134241.png -> https://share.pluginus.net/image/i20230222134511.png and wp-admin access - https://share.pluginus.net/image/i20230222134615.png - I will check it
Can I disable plugins/theme to test?
Quote from costumevault on April 5, 2023, 20:54done and yes, you can disable items to test. A complete backup is completed every night.
done and yes, you can disable items to test. A complete backup is completed every night.
Quote from Pablo Borysenco on April 6, 2023, 12:03Hello
Please do a test
I have installed this plugin - https://c2n.me/4if6k1D.png
Hello
Please do a test
I have installed this plugin - https://c2n.me/4if6k1D.png
Quote from costumevault on April 11, 2023, 05:06It's helping, but the site is terribly slow and seeing all the jquery migration errors is making me anxious. I don't understand how to fix.
It's helping, but the site is terribly slow and seeing all the jquery migration errors is making me anxious. I don't understand how to fix.
Quote from Pablo Borysenco on April 11, 2023, 10:42Hello
This third party plugin cannot slow down your site.
I also checked your site, it looks like the pages load quickly, how do you measure the speed of the site?
seeing all the jquery migration errors is making me anxious. - If you mean it - https://c2n.me/4ihflwo.png - This migration plugin points out deprecated JQ functions on your site. It looks like you updated jquery incorrectly.
Hello
This third party plugin cannot slow down your site.
I also checked your site, it looks like the pages load quickly, how do you measure the speed of the site?
seeing all the jquery migration errors is making me anxious. - If you mean it - https://c2n.me/4ihflwo.png - This migration plugin points out deprecated JQ functions on your site. It looks like you updated jquery incorrectly.