Can hook into wp_print_scripts and use wp_script_is along with wp_dequeue_script to remove the script. Here’s an example snippet removing a script if it is enqueued: https://nicolamustone.com/2016/01/27/remove-the-password-strength-meter-on-the-checkout-page/
Essentially, you’ll want to dequeue the script unless on the cart page or the shortcode is on the page.
Caleb, thank you for your reply.
I also thought about that method and tried to do that but there is a lot of things going on on that file except of the enqueues so when I’m adding only the js script to my desires page , it doesn’t really work.
This is the file code:
https://github.com/woothemes/woocommerce/blob/master/includes/class-wc-frontend-scripts.php
If you look at line 247, you can see a function there that without it nothing will work even if I will enqeue the script on my theme, the only thing I can think about is to copy the file and add it to my theme, but Im not sure if it is a good practice cause it would not get any updates from woo…. what do you think?
You’re looking to conditional load scripts on any page that are either set as the cart page OR on a page that has that shortcode. To do that, you’ll need some fancy conditionals to check for that shortcode. There’s a good guide at http://scribu.net/wordpress/optimal-script-loading.html to do that sort of things…
Hi Riaan! Thank you for your help.
I want to explain my problem again:
* I have a ‘woocommerce_cart’ shortcode that doesn’t loads the scripts that it needs to work via ajax (like when updating cart and etc…) on other pages than the cart page
* I see that in the class-wc-frontend-scripts.php the enqueue of that script goes only when is_cart() statement.
* I am figuring out that I need to add if(shortcode_exists(‘woccommerce_cart’)) so it would enqueue also when it is a shortcode.
* I am adding that IF and I see that everything works on front end.
* I am thinking that it is not a good idea to put that in the original plugin file because it would be overwritten with the next update.
* I am trying to enqueue the script in my functions.php file with the new IF.
* Nothing works….
* Going back to the original file
* On line 247 (here: https://github.com/woothemes/woocommerce/blob/master/includes/class-wc-frontend-scripts.php) there is a function that adds more functionality to the ajax that without it it wont work…
* Now I am wondering is there a way to add another IF to the same file using a hook? Or should I override all the file? (as I said before I think it is not a good practice because all the functions there wont get any updates).
* So basically I know what I need to do, I just don’t know what is the best way to do it and if it possible doing it with a hook or other function that maybe somebody knows and I’m not familiar with….
Thank you again for your help! 🙂
You shouldn’t need to touch that function. You only need to enqueue the wc-cart script with your own function.
Yeah but nothing is working when I enqeue it from my own functions.php….
You could double check your code to make sure it’s properly set up – alternatively, adding it through a plugin can keep it separate from Theme updates and could work for you.