Commit Graph

32 Commits

Author SHA1 Message Date
Mike Jolley 747a6d51d1 Update mini cart after back button page load
Fixes #11646
2016-08-10 11:35:44 +01:00
Mike Jolley 99f6540fe9 Trigger fragment refresh after updating ajax cart
Fixes #11064
2016-06-08 12:06:40 +01:00
Kevin Killingsworth 543e091c2c Fix for #10940 - wc_cart_hash
wc_cart_hash was used as a key for localStorage
for all WooCommerce sites. If you were to load your
cart for two different sites in the same browser,
the two WooCommerce pages would contend over this key
and loop on trying to set this key in the localStorage

This commit prepends the site's ajax URL onto the wc_cart_hash
key name in localStorage, providing a unique key for each
WooCommerce site. This ends contention over the keys.
2016-05-24 14:36:43 -05:00
Mike Bronner de85e5be25 Add tests for localStorage
Some spiders will not error out on sessions storage, but will throw an exception on localstorage. For example, my site has been hit with the following almost on an hourly basis:

```
TypeError: Cannot call method 'setItem' of null
1
File https://maureentaylor.com/app/plugins/woocommerce/assets/js/frontend/cart-fragments.min.js line 1 in [anonymous]
```
2016-03-13 08:42:35 -07:00
Mike Jolley 7012ef5608 When updating cart hash, refresh all open tabs
Closes #8708
2015-10-26 11:50:25 +00:00
Jeff Stieler 55dae383af Use named cart fragment refresh callback. 2015-10-06 12:16:15 -06:00
Jeff Stieler 61e6f708d5 Set timers to refresh cart fragments before they expire. 2015-10-06 12:14:17 -06:00
Jeff Stieler e94969f5dd Expire the mini cart fragment if it’s more than a day old. 2015-10-06 11:12:18 -06:00
Jeff Stieler b2cbae6508 Assume we need to refresh a mini cart with items if there is no session creation timestamp. 2015-10-06 10:04:21 -06:00
Jeff Stieler da573be59a Store the cart session creation timestamp for expiration purposes.
Consider the cart session “created” when it’s refreshed and has items, or when the first item is added to cart.
2015-10-06 09:54:06 -06:00
Mike Jolley d0c2c10c47 Made the linter happy 2015-07-27 17:55:37 +01:00
Mike Jolley 0ab151562a Fix issues with trailing slashes on permalinks
Closes #8658
2015-07-27 11:56:07 +01:00
Mike Jolley 65f19d5ca7 Ajax variation handling
If there are more variations than the threshold allows (set to 20
currently) this loads the matching variation via ajax instead of inline
in the HTML. #8477
2015-07-09 15:56:20 +01:00
Shiva Poudel 8aff509ed7 Tweaks JSHint for cart and cart fragments 2015-06-10 23:11:21 +05:45
Claudio Sanches 1dadbb2842 Fixed coding standards for #7879 2015-04-13 12:37:22 -03:00
Danny van Kooten 88f2e690bb Changing all inefficient selectors of $('body') to $(document.body), which is about 80% faster (and even more on mobile, see https://jsperf.com/jquery-body-vs-document-body-selector/2 ). 2015-04-03 14:21:47 +02:00
Mike Jolley 21c5513526 Added endpoint for faster ajax requests 2015-03-20 12:28:26 +00:00
Joe Flynn 652a66e3d1 ensure storage is writable when setting support flag. fixes #6755 2014-11-14 14:14:56 -05:00
Mike Jolley 2b4906bf4c Prevent security error with try catch block Closes #5275 2014-04-07 14:34:47 +01:00
splashingpixels 6d2aa8b3c3 cart-fragments jshinted and standard coding fixes 2014-03-17 19:56:31 -07:00
toddlahman 13c24b410e Removed (document).ready from jQuery scripts
jQuery(document).ready(function($) { is equivalent to calling
jQuery(function($) {.

http://api.jquery.com/ready/
2014-01-30 18:44:17 -08:00
Jared Cobb 9fc47db17f Make frontend scripts safe to run on non WC pages (check for objects)
For a more detailed explaination of why this is helpful, see
Issue #4202. In short, from a dev ops perspective, if we want to build /
concatonate our front end scripts into a single application.js file, we
need to ensure scripts first check for dependent global object helpers
before trying to use them. For example, there are several objects
(created via PHP using `wp_localize_script`) which generate objects such
as `wc_single_product_params`. These objects will not exist on most
other pages, however these scripts attempt to execute code that
references these objects.
2013-12-04 12:15:24 -07:00
Mike Jolley cc40557077 filter for cart fragment #4132 2013-11-20 16:31:28 +00:00
Scott Basgaard f3b2854638 woocommerce_json_search_products() is now a method of WC_AJAX. Use $this->json_search_products() instead. 2013-11-19 14:44:28 +01:00
Scott Basgaard bee41fb7e5 woocommerce_get_refreshed_fragments() is no longer. Update where it was called to new Ajax class method. 2013-11-19 13:33:26 +01:00
Mike Jolley 34624fa4ca Rather than check if cart has contents, standardize cart hash adn cookie so its refreshed once. Closes #3505.
@coenjacobs for .14
2013-07-30 15:23:08 +01:00
Mike Jolley feb8d759a8 Only refresh fragment when cart cookie > 0 2013-07-10 17:07:25 +01:00
Mike Jolley 4f0320fdb2 Refactor frontend scripts #3165 2013-06-11 13:31:41 +01:00
Mike Jolley d0ee67d9e1 Trigger when loading fragments Closes #2985. 2013-04-23 15:37:19 +01:00
Mike Jolley 422b07b262 Reveal cart on adding_to_cart action 2013-04-09 09:38:55 +01:00
Mike Jolley 9977031a5d Nonces cannot be used on all pages with cache - removed them for add to cart actions + fixed caching for hiding the cart 2013-04-08 18:43:07 +01:00
Mike Jolley d403f4d9bc Split out fragment code into wc-cart-fragments Closes #2528 2013-02-26 12:15:12 +00:00