* Fix - Photoswipe action button background style
* Fix - Do not scroll to top after closing PhotoSwipe
* Tweak - Move photoswipe style overides to WooCommerce stylesheet
Closes#12200
* register prettyPhoto but don't enqueue. #10721
* Remove lightbox option. #10721
Also registers the prettyPhoto styles instead of enqueueing
* Stip all prettyPhoto related stuff from the templates and tidy up some logic. #10721
* Add flexslider assets #10721
* styling and re-adds `woocommerce_single_product_image_thumbnail_html`. #10721.
* Add zoom functionality. #10721
* Move js to single-product.js. #10721
* styling of the gallery thumbnails when using the `product_page` shortcode. #10721
* Only enable the zoom if the image is large enough. #10721
* Use a 4 column layout by default. #10721
* Make the carousel options filterable. #10721
* rtl styles for gallery. #10721
* Don't zoom on handheld devices. #10721
* markup tweaks in prep for photoswipe
* disable zoom for now
* Add and enqueue photoswipe assets
* add the photoswipe template
* initialise photoswipe - it's alive!
* tidy up js. add title. add separate trigger. #10721
* Move photoswipe functions to single-product.js. #10721
* reactivate the zoom! #10721
* style the photoswipe trigger. #10721
* disable flexslider animation loop. #10721
* js tidy up. #10721
* Fix jshint
* Abstract the product gallery scripts
* Minify
* Fixed conflict with the admin bar
* Photoswipe conflict with admin bar
* Index. #10721
* photoswipe button styles. #10721
* Styling. #10721
* No animation on zoom
* Image width on mobile
* No shadows please. #10721
Looking at you, Twenty Twelve.
* code tidy and add class to placeholder figure. #10721
* simplify rtl query
* photoswipe button styles
* Comma should not be here
* zoom icon #10721
* gallery thumb styles. #10721
* trigger icon. #10721
* Image margins. #10721
* icon hover states. #10721
* Variation handling
* Fix zoom and heights
* Resize after timeout
* Adds new-style css classes to store notice
* Adds a ‘dismiss’ link to the store notice
* Hide the notice when the ‘dismiss’ link is clicked and set a cookie
to keep it hidden
Fix for issue #11811https://github.com/woothemes/woocommerce/issues/11811
IE handles hitting <ENTER> on an input field differently than
Chrome or Firefox in that it finds the nearest submit button
and fires the event from it instead of the actual text field
from which the user hit <ENTER>.
This commit catches the <ENTER> key event before the submit happens
and forces the cart_submit handling on that event instead.
No issue.
* high traffic site, so wc-cart-fragments are dequeued (#7777)
* variable product with a lot of variations, so stock lookup happens through ajax
* previously the add-to-cart-variation.js used the wc_cart_fragments_params for the ajax URL, which in this case wasn't available, the result was a hung page
* decoupled from cart fragments: added the wc_ajax_url to the params that wc_add_to_cart_variation_params gets, so no more hung pages.
Sometimes it is needed to add "context" to a variations ajax request, in order modify the returned object content. For instance, in cases where the variation is part of a bundled variable product, we may need to modify the price, stock status or the description of the variation according to the "context".
If you have a search widget on the cart page which is wrapped in a div
(the default wrapper for widgets) the ajax cart would try to update on
search submit. This change ensures the search form is excluded on
`submit_click`.
Some themes add internal HTML to links, so this adjusts
to use currentTarget, which should always be the node on which
the event is subscribed instead of the target which triggered
the event.
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.
Fixes#10813
This adds a "clicked" attribute to clicked form buttons,
which augments Safari specifically since it sets activeElement
to the page body when a button is clicked.
The server shows a different page for the cart
when the cart is completely empty. The Cart AJAX
update subverted this and caused issue #10736 as
a result. Not to mention, the page just didn't look
good or functional with no items left in the cart.
This commit forces a reload any time the cart becomes
empty, which shows the empty page generated from
the server.
Fixes#10736
The cart was not getting updated in all cases
when products were removed or shipping was
updated. This ensures those changes update the
cart as well.
Fixes#10734
.wc-tabs-wrapper, .woocommerce-tabs, #rating set as delegated events, so that on ajax loading a product page, we can call
$( '.wc-tabs-wrapper, .woocommerce-tabs, #rating' ).trigger('init'); to make them work.
The previous jQuery selector was on div.woocommerce,
which was also selecting other divs on the page.
This is more specific to the cart table on the page.
This update actually takes the code and refactors it into
two object handlers, cart and cart_shipping.
Also, more block comments are added to each function.
The coupon and update cart logic was tripping on each other
between the click handling and form submit handling.
This commit combines the event handler, then splits off from there.
Since the code is built to use a form submit for all the quanitities
already, I just made this an ajax call instead of a whole page call.
The result is the exactly the same and the .woocommerce div is replaced
with the resulting HTML.
Adds an ajax call for applying coupons while on the cart
screen (not checkout, as it already has this.)
This is the first commit to add ajax calls to the cart update
functions. See issue #6734
Previously both the alt-tag and the title-tag of the variations main image used content from variation.image_title. The alt-tag should use variation.image_alt.
If a plugin or other code produces output during checkout processing,
it breaks the JSON parsing. This commit makes use of jQuery’s Ajax
dataFilter which allow us to sanitize the raw response before it’s
parsed by the Ajax handler.