1999 posts
  • Elite Author
  • Sold between 250 000 and 1 000 000 dollars
  • Author had a File in an Envato Bundle
  • Has been a member for 5-6 years
  • Author had a Free File of the Month
  • Won a Competition
  • Bought between 10 and 49 items
+4 more
bitfade says

As you might already know, this introduces a compatibility issues: Starting with jQuery 1.9, all previously deprecated methods have been removed, therefore it might break old code relying on those deprecated methods.
imho, you should remove the jQuery part, even if optional. Inexperienced buyers would still enable that option without knowing the implications, some plugins would break, and they’re going to require support from either you or the plugin author.
11 posts Performance Experts
  • Elite Author
  • Referred between 1 and 9 users
  • Bought between 1 and 9 items
  • Exclusive Author
  • Has been a member for 3-4 years
  • Sold between 50 000 and 100 000 dollars
  • Europe
JoNa says


As you might already know, this introduces a compatibility issues: Starting with jQuery 1.9, all previously deprecated methods have been removed, therefore it might break old code relying on those deprecated methods.
imho, you should remove the jQuery part, even if optional. Inexperienced buyers would still enable that option without knowing the implications, some plugins would break, and they’re going to require support from either you or the plugin author.

Most buyers purchase my themes for their PageSpeed performance, and I can say after a few thousands sales that I received very few support requests related to the Speed Mode or the jQuery options. I believe that the very clear documentation included straight in the backend and displayed next to each option helps a lot! :)

Inexperienced buyers would still enable that option without knowing the implications
By the way, it’s the other way around: currently all my themes and templates come with the most recent version of jQuery, with both the jQuery Migrate plugin and noConflict() mode disabled by default.
607 posts
  • Envato Staff
  • Senior Reviewer
  • Blog Editor
  • Repeatedly Helped protect Envato Marketplaces against copyright violations
  • Forum Moderator
  • Author had a File in an Envato Bundle
  • Envato Studio (Microlancer) Beta Tester
  • Sold between 10 000 and 50 000 dollars
+9 more
Siddharth Reviewer says


In the mean time, Sid, our Review Projects Lead and CodeCanyon Senior Reviewer, will be available for awhile longer to answer questions.
BRAAAIIINNSSSS ….. i mean, glad we’ll had somebody fresh to tortur … i mean to answer our questions.
Poor experimental goat reporting in.


As the user can choose to use the default version of jQuery included in WordPress, does that make my themes acceptable? Leaving the option for the users to go beyond the limitations of an old and locally-hosted version of jQuery is an important key for speeding up the page-load performance and provide the best experience possible.

Making sure the default version isn’t swapped by default is a good start. Having said that, I have some reservations.

Going from version 1.9 to 2.0, jQuery has dropped lots of legacy code that might be a deal breaker for other plugins that the buyers might be using which will break browser compatibility. Not to mention other breaking and/or API changes that plugins may rely on which will break it outright. Using migrate is a good choice here, as you’ve done so but I’d advice judicious use of this feature you’ve built as there could be lots of pain points in the future.

As long as the default behavior isn’t breaking and this behavior is documented pre-sales, it should be good to go.

158 posts
  • Exclusive Author
  • Has been a member for 5-6 years
  • Referred between 50 and 99 users
  • Sold between 1 000 and 5 000 dollars
  • United States
greenshady says

You have a mistake in the PHP section #5, which conflicts with the “child theme” rule. Your code:

<img src="<?php echo get_stylesheet_directory_uri(); ?>/images/filename.png" />

Instead of using get_stylesheet_directory_uri(), themes should almost always use get_template_directory_uri().

I know this is just an example, but if you want to facilitate the use of child themes, the themes here need to be referencing the correct directory.

1999 posts
  • Elite Author
  • Sold between 250 000 and 1 000 000 dollars
  • Author had a File in an Envato Bundle
  • Has been a member for 5-6 years
  • Author had a Free File of the Month
  • Won a Competition
  • Bought between 10 and 49 items
+4 more
bitfade says

By the way, it’s the other way around: currently all my themes and templates come with the most recent version of jQuery, with both the jQuery Migrate plugin and noConflict() mode disabled by default.
nothing against your page speed optimizations, we do ship with minified css/js as well but jQuery is wp core and shouldn’t be altered in any way, most recent version could still break 3rd party plugins.
235 posts themesdepot.org
  • Elite Author
  • Most Wanted Bounty Winner
  • Sold between 100 000 and 250 000 dollars
  • Repeatedly Helped protect Envato Marketplaces against copyright violations
  • Has been a member for 4-5 years
  • Referred between 10 and 49 users
  • Bought between 50 and 99 items
  • Exclusive Author
+1 more
ThemesDepot says

if custom post type must be in plugin so metabox, template page and single page also because to make compatibility when switch other theme.

It’s good, but sounds like selling plugin. CMIIW

What i’m wondering is, why would we need to include metaboxes in plugins ? Once switched theme, those values can’t be used by new theme anyways, unless i’m missing something.

17 posts
  • Author had a File in a Mini Bundle
  • Europe
  • Has been a member for 1-2 years
  • Exclusive Author
  • Sold between 10 000 and 50 000 dollars
  • Referred between 10 and 49 users
  • Bought between 10 and 49 items
prestahome says


if custom post type must be in plugin so metabox, template page and single page also because to make compatibility when switch other theme.

It’s good, but sounds like selling plugin. CMIIW
What i’m wondering is, why would we need to include metaboxes in plugins ? Once switched theme, those values can’t be used by new theme anyways, unless i’m missing something.

That’s the point… some elements must be in plugin but without any rational explanation :|

1320 posts
  • Elite Author
  • Has been a member for 5-6 years
  • Sold between 250 000 and 1 000 000 dollars
  • Author had a Free File of the Month
  • Referred between 200 and 499 users
  • Bought between 10 and 49 items
  • Europe
  • Exclusive Author
+1 more
fuelthemes says

I think moving the shortcodes & metaboxes to a plugin is unnecessary.

11 posts Performance Experts
  • Elite Author
  • Referred between 1 and 9 users
  • Bought between 1 and 9 items
  • Exclusive Author
  • Has been a member for 3-4 years
  • Sold between 50 000 and 100 000 dollars
  • Europe
JoNa says


As the user can choose to use the default version of jQuery included in WordPress, does that make my themes acceptable? Leaving the option for the users to go beyond the limitations of an old and locally-hosted version of jQuery is an important key for speeding up the page-load performance and provide the best experience possible.

Making sure the default version isn’t swapped by default is a good start. Having said that, I have some reservations.

Going from version 1.9 to 2.0, jQuery has dropped lots of legacy code that might be a deal breaker for other plugins that the buyers might be using which will break browser compatibility. Not to mention other breaking and/or API changes that plugins may rely on which will break it outright. Using migrate is a good choice here, as you’ve done so but I’d advice judicious use of this feature you’ve built as there could be lots of pain points in the future.

As long as the default behavior isn’t breaking and this behavior is documented pre-sales, it should be good to go.

Awesome, thanks for the detailed reply!


nothing against your page speed optimizations, we do ship with minified css/js as well but jQuery is wp core and shouldn’t be altered in any way, most recent version could still break 3rd party plugins.

The jQuery Migrate plugin is here to keep compatibility with old third-party plugins, please take a look at the jQuery site for more information: http://jquery.com/upgrade-guide/1.9/#jquery-migrate-plugin

And if that’s not enough, the users of my themes can simply select to restore the default, older version of jQuery included in WordPress via a simple checkbox in the backend ;)

I truly believe in giving the choice to the users. Letting them choose which version of jQuery they want to use for their site, and if they want a recent one but also need to keep compatibility with old plugins, then they simply enable the jQuery Migrate plugin. This is all optional and up to the user, nothing is imposed, they can very well use the old version of jQuery packaged with WordPress. This is all the beauty of giving the ability to choose and not being restricted to our choice.

Now if you’re concerned about the added complexity and the eventual confusion added by those advanced options, I can prove otherwise with good backend structure and documentation, let me quote a recent comment I’ve received recently:

The most simple wordpress theme i have ever used, superb.
sunlife2000

:sunglasses:

1999 posts
  • Elite Author
  • Sold between 250 000 and 1 000 000 dollars
  • Author had a File in an Envato Bundle
  • Has been a member for 5-6 years
  • Author had a Free File of the Month
  • Won a Competition
  • Bought between 10 and 49 items
+4 more
bitfade says

The jQuery Migrate plugin is here to keep compatibility with old third-party plugins, please take a look at the jQuery site for more information: http://jquery.com/upgrade-guide/1.9/#jquery-migrate-plugin
i know what it is, what i’m saying is that in 3.6, when you enqueue jquery, you also enqueue migrate. A 3rd party plugin could rely on this and break when a buyer would turn it off by using your custom option.

Even not considering migrate, a minor jQuery version bump could still cause issues.

by
by
by
by
by
by