mvstudio:
No error logs were generated. So I generated one to see what would show, and nothing did.
I removed the two files I've been working on, which I made cosmetic changes to see if maybe the plugin didn't like what I did, and that didn't do anything the behavior is still present.
So I went back to see if maybe I left some clues that would point on why I was having this issue back then. I had installed the wholesale plugin which I didn't install in this one, and the stock by attributes plugin, which I don't have on this one either. So whatever happened then, has to be unrelated to this event. Which means another one of the plugins I have installed could be the culprit.
I switched templates to the classic and the issue persists.
This is the list of all the plugins I have installed. Some of them I was able to turn off from the admin area and the issue still persisted. Do you know of any of these plugins messing with this? That would help me in narrowing down on what to look for.
About us (define page)
Admin order weight (displays the order weight in admin)
Admin notes
Average product rating
Category tab simple dropdown
Google recaptcha
Instafeed (displays an Instagram feed at the bottom of the homepage)
Invoice payment module
New item badge
One page checkout
Order comments boilerplate
Print invoice popup
Returns and refunds define page
Sitemap XML
Snap affiliates
Specials define page
Square payments
User tracking
USPS
UPS
Ultimate URL
TyPackagage tracking
Better together
Dynamic price updater
Zen colorbox
Thank you for taking the time. I truly appreciate it.
Great to have all that information; however, I discovered that by looking at the console when accessing the "problem" product, that the issue is in fact a script related issue. The following error was in the "log":
DPU catch error: TypeError: Cannot use 'in' operator to search for 'id[2]' in
at getPrice (```
https://www.byvalenti.com/ZCBASE/tinted-lip-balms-c-15_30/lip-whip-souffle-tinted-lip-balm-in-6-beautiful-colors-p-33
> at init (```
https://www.byvalenti.com/ZCBASE/tinted-lip-balms-c-15_30/lip-whip-souffle-tinted-lip-balm-in-6-beautiful-colors-p-33
```:562:9)
> at onload (```
https://www.byvalenti.com/ZCBASE/tinted-lip-balms-c-15_30/lip-whip-souffle-tinted-lip-balm-in-6-beautiful-colors-p-33
```:674:3)
May I recommend attempting the following?
Change at/about line 154 of includes/modules/pages/product_info/jscript_dynamic_price_updater.php
from:
if (!(el.name in attributes) && el.name.startsWith("id[")) { // Ensure not to replace an existing value. I.e. drop a duplicate value.
to:
if ((attributes === '' || !(el.name in attributes)) && el.name.startsWith("id[")) { // Ensure not to replace an existing value. I.e. drop a duplicate value.
"Easy" way to modify it so that you "build" up to the final result:
start with:
if (!(el.name in attributes) && el.name.startsWith("id[")) { // Ensure not to replace an existing value. I.e. drop a duplicate value.
add parentheses around the first term:
if ((!(el.name in attributes)) && el.name.startsWith("id[")) { // Ensure not to replace an existing value. I.e. drop a duplicate value.
Then, just before the exclamation point (represents a logical "not" or flip the "truthiness" of the variable that follows. If it was true, then consider it false, if it was false, then consider it true) add the test to see that attributes still is an empty text string (original value) so that if that is true, then there is no need to check for el.name being in the string... (Not that I'm entirely sure that "el.name in attributes" is the right way to perform that test considering I didn't make that change and haven't done *ANY* testing on that version of DPU.)
if ((attributes === '' || !(el.name in attributes)) && el.name.startsWith("id[")) { // Ensure not to replace an existing value. I.e. drop a duplicate value.
Now, all that said, and I was *assuming* that this particular site was a development location, turning off the spinning feature would have at least allowed the base/normal price to be displayed. (I should know the exact configuration switch to change, but am drawing a blank at the moment and need to move on.)
And sorry if it doesn't resolve the issue, there's some action being done/taken in here that I didn't code and wouldn't have used for multiple reasons. I also haven't opened up a tool to test execute and see results of the way the data is being handled... What is considered desired in this line is to determine if the collected data already includes the radio item that has the name it is given where that name *SHOULD* be unique to all other objects within the group (otherwise basically there is a problem with the page) and if that named item is not already captured AND the associated attribute's "name" starts with id[, then go ahead and collect the attributes name and the value assigned to it so that later that data can be decoded to display the price... Something about the process though seems wrong because I would expect the javascript: X in Y to work for any length of text (IF that operator is the correct operator for a string of text... Problem is that the MDN instruction references use of the 'in' operator to search through an object or its prototype chain... I'm not seeing either of those in my "limited vision"... Unfortunately and further, using this method/style of looking through a string of text for matching "text" (assuming that really is what is being done) seems problematic to successfully perform: E.g. the text contains: 'test~5|run~6|test2~7', well when get to a variable that has the name 'ru', it appears that a text search for 'ru' would indicate that it already exists because 'run' is present and 'ru' is a subset of 'run'...
Anyways, I'm showing what I don't know/understand and babbling on further... Again, didn't have this issue in the version I prepared... Post back on success/failure (or at least when it has been incorporated)...
Again, the issue is not with your other plugins but specifically/directly with the javascript/jQuery code associated with a series of attributes only having radio buttons (or perhaps any radio button at all), perhaps change to another selection type if need to support operation? Not really one that does the same thing of showing the picture right in ones face without switching from one to another... Sorry, enough.. :)