Page 1 of 1

Card Start Date

PostPosted: October 27th, 2011, 6:26 am
by pwidder
My site shows the field Card Start Date and it does not apply and will leave many people confused.

I read this post
In your case though, it appears that s2Member's JavaScript and CSS libraries that deal with overall layout and functionality of Pro Form integrations is not loading properly on your site. I would start by taking a look at your site in Firefox; go up to the Tools -> Error Console -> Errors panel and see if you have another plugin introducing errors.

Here is the URL where I have my form https://1ofthebestin.ca/qualification-fee/?s2-ssl=yes
Can you have a look and recommend how to fix

My strength indicator also does not work.

Thak you

Re: Card Start Date

PostPosted: October 27th, 2011, 10:47 pm
by Cristián Lávaque
The strength indicator not working confirms there's something wrong with your JS.

Please watch this video and see if it helps you find the reason: http://www.s2member.com/options-page-di ... ing-video/

When loading your page, the error console shows "Jquery is not defined". It's probably that another plugin or your theme are conflicting. As a test change to the default theme or deactivate other plugins one by one until the problem goes away.

Re: Card Start Date

PostPosted: October 28th, 2011, 8:15 am
by pwidder
Thanks for the reply.
It appears there are multiple issues with JQuery and I think it is within the theme. The problem is
my whole site is built arount that particular theme, and the help form the theme developers is less than desirable.
Not that you will fix the problem for me, but can you point me to some resources so that I may be able to rectify the issues. It appears almost every plugin has a confict or jQuery is not defined.

Any help is appreciated

Re: Card Start Date

PostPosted: October 29th, 2011, 11:45 pm
by Cristián Lávaque
This is part of a conversation I had with Jason some months ago regarding JavaScript conflicts.

Cristián: I still don't understand how the JS conflicts work... If the library is the same in both plugins, why is there a conflict? Same var names?

Jason Caldwell: Well, I call it a conflict. Sometimes it's a conflict in jQuery because of a bad plugin, which attempts to load jQuery on it's own, instead of doing it the WP way. Or sometimes, it just a bad plugin that causes a JavaScript error, which may result in all JavaScript failing ( the nature of JavaScript ). Not really a "conflict" in that case, really an error due to a bad plugin/theme.

Jason Caldwell: I've also see some conflicts between frameworks. That's rare, but there are some plugins that use the ProtoType framework, and combined with another framework like MooTools, there is a possibility for a conflict to arise. Rare though, and it's usually attributed to the way their loaded ( i.e. by a bad plugin/theme ).

Cristián: Does WP load JQuery already? If so, why do plugins load it too?

Jason Caldwell: Yea, WP already loads it. But some plugin authors don't know that, or they just hard code it into their plugin not realizing that. Other times they'll try to include a dependency on jQuery, but they name it wrong, and WordPress gets confused.

Cristián: Does s2Member load it again or uses WP's?

Jason Caldwell: Hmm, not really, because in the Dashboard, it's already loaded by WordPress. s2Member enques scripts that is uses, which rely on jQuery being present. In the call to wp_enqueue_script(), s2Member will list jQuery as a dependency, which forces WP to load it, though it's already loaded in the Dashboard anyway. That's the proper way to handle it.

On the front-end of a site, s2Member will load jQuery if it's not already loaded, but again, using the same technique. A call to wp_enqueue_script() with a dependency on jQuery forces WP to load jQuery. If 10 plugins all do it this way ( i.e. the right way ), WordPress loads jQuery in the proper order and only one time.

Cristián: Ah, got it. I understand WP has a QC team, don't they check this?

Jason Caldwell: Not in my experience. They look mostly for security issues and really bad code. They usually don't catch minute details like this.

Cristián: I see. Well, they do look at how the db is used, iirc.

Cristián: I see, but these details do cause trouble for the users. Maybe it'd be good to write an article about JS conflicts as you explained above and post it in the forums, and then show it to the QC guys for consideration to include in their quality checklist.

Jason Caldwell: Yea, that's a good idea. On the WP side though, they're aware of this problem, and that's why they created the wp_enqueue_script() wp_enqueue_style() functions. Although, I wish this were more prominent in this article: http://codex.wordpress.org/Writing_a_Pl ... uggestions

It is mentioned, but it's all the way at the bottom:

Try not to echo <script> and <style> tags directly - instead use the recommended wp_enqueue_style() and wp_enqueue_script() functions. They help eliminate including duplicate scripts and styles as well as introduce dependency support. See posts by the following people for more info: Ozh Richard, Artem Russakovskii, and Vladimir Prelovac.


I hope it helps you recognize what the theme is doing wrong and fix it. :)