Posts

Shipping Pricing for Currency Switcher – UI Improvements for WooCommerce 2.6.4

WooCommerce Shipping Pricing Integration – What’s new

Our Shipping Pricing Integration Add-on for WooCommerce Currency Switcher has been updated to version 1.2.4.160822. This update brings the following improvements and fixes:

  • Improved Admin User Interface. Fixed bug in user interface on the Shipping Zone page. The bug caused shipping zones to switch to the base currency after saving the settings of a shipping method, when the page content was reloaded via Ajax.

How to get latest version

New customers

Simply place your order and you will get the latest version.

Existing customers

You should be able to download the updated file using the link you received with your order. If the link doesn’t work, please contact Support to receive the latest version. Thanks.

news icon

WooCommerce 2.6 is out – Make sure that your plugins are up to date

WooCommerce 2.6 was released today, 14th June 2016. This update brings several new features, the most remarkable being the introduction of shipping zones, which will make your site more flexible and powerful than ever.

We updated our plugins some weeks ago for compatibility with WooCommerce 2.6, to guarantee compatibility with the latest WooCommerce version on the release date. Please make sure that you update our plugins before installing the new WooCommerce, to ensure that your site will work correctly. This is particularly important if you are using the Shipping Pricing Addon for the Currency Switcher, or the Aelia Currency Switcher itself, which were directly affected.

Should you have any questions, or need assistance, please feel free to contact us. We will get back to you as soon as possible.

The Aelia Team

news icon

WooCommerce and cache – Part 2: new Cache Handler plugin

Read Part 1: WooCommerce Currency Switcher and cache – Making them work together

Some months ago, we wrote about one of the most common issues faced by merchants who run highly dynamic websites, which include multi-currency, multi-pricing, geolocation features: stale content served by rigid caching systems.

In brief, there are quite a few caching systems designed with the assumption that the content of a site is the same for anyone. No matter who is opening a page, they serve the same information. This is correct for relatively static sites, such as blogs, which show the same articles to every member of the audience, or simple e-shops, where the prices are set, and are the same for every customer.

In a few words, many caching systems assume that, given a page on a site, the content of such page will always be the same, without exception. As we explained, this is incorrect when a site is highly dynamic. A shop that handles multiple currencies may be showing different prices to different visitors, or it might need to show a different tax rate (this is actually a requirement in many countries), on the exact same page.

With a static caching system, the result is that users may end up seeing the wrong content. This makes for a worse user experience, and can have an impact on conversion.

After an in-depth analysis, and several experiments, we came to a conclusion: issues caused by the caching system must be solved by the caching system. Based on this approach, we prepared an algorithm for dynamic caching that handles the needs of a multi-currency, multi-pricing, multi-language shop as it should, without compromising on the performance. This, in our opinion, is the correct way to address the issue.

The status of Dynamic Caching today

We keep contacting as many hosting providers as possible, explaining them how they should update their caching systems to bring them up to speed. Our objective is to make it clear that handling highly dynamic caching is a must, not just a “frill”.

Quite a few providers agreed with our approach, and allow their customers to customise the caching logic as required. Others, like the WP Engine team, showed interest in our solution, and are currently reviewing it, for future implementation. There are some who are still “lagging behind”, and there are a few, such as CloudFlare, who only offer dynamic caching on their most expensive plans.

Due to these limitations, imposed by an obsolete architecture, merchants have make a difficult decision:

  • Change hosting/service provider and move to one that handles caching as it should. This would make sense, but it’s not always possible. Besides, merchants might have invested a significant sum in current service.
  • Disable the caching system they are using, and for which they might have been paying a service fee.
  • Abandon the idea of a multi-currency, multi-language site, potentially risking to drive away audience.

While we still maintain that caching issues must be addressed on the caching layer, we wanted to find a solution that would help merchants, at least temporarily, while the service providers update their system.

Welcome our new plugin: WooCommerce Cache Handler

Thanks to our customers’ support, we are happy to announce the release of the WooCommerce Cache Handler plugin (currently in Beta stage). This new plugin can be used as a workaround with rigid caching systems, such as CloudFlare, SiteGround “Dynamic” Cache (which is actually static), as well as plugins that don’t support dynamic caching, such as W3 Total Cache.

Please note that our recommendation is still to consider switching to a more flexible solution, but this plugin will cover you until you are ready for that change.

How it works

The WooCommerce Cache Handler is simple to use. All you have to do after installing the plugin is go to WooCommerce Settings > Cache Handler and choose the handler you prefer.

WooCommerce Cache Handler - Configuration page

Configuring WooCommerce Cache Handler is extremely easy. Simply choose your favourite handler, clear the cache, and you are ready to go!

After that simple selection, the Cache Handler will support our Currency Switcher, Prices by Country, Tax Display by Country, and all our other WooCommerce plugins.

Currently, there are three options available.

1. Disabled

As the name implies, this disable all the features of the plugin. It can be useful for testing.

2. Redirect

This option is an almost exact equivalent of the “caching support” feature implemented by WooCommerce, which is enabled when the Default Customer Address is set to Geolocate (with page caching support).

The major difference from the standard feature is that our handler takes into account details such as the currency, customer’s country, customer’s state, customer’s tax exemption, and so on, ensuring that the correct content is served to customers based on these parameters. Like the original workaround from which it was derived, this handler appends a random string to URLs.

Benefits and drawbacks

+ The Redirect handler is based on the original workaround implemented by WooCommerce.
+ This solution works on a page level, thus it can produce the correct content with any configuration, or 3rd party plugins.
– The URLs look “ugly”, due to the string appended to them to work around the limitations of caching.

3. Ajax Loader

The Ajax Loader is an alternative to the Redirect, and it’s more elegant, as it doesn’t alter page URLs with ugly, random text. This handler loads all pricing elements via Ajax, when the page load is completed. The result is the following:

  1. A visitor connects to your site from the US. He would like to see USD.
  2. The rigid caching system has the page cached in EUR, and serves it to the customer.
  3. The Ajax Loader kicks in as soon as the page is loaded, requesting the updated prices from the server. After a brief moment, all elements that were displayed in EUR are changed to USD, as the visitor would expect.This update is very quick, and, at the moment, it processes the following standard elements :
    – Product prices
    – Currency selectors
    – Price filter widget
    – Custom prices displayed with the Currency Switcher shortcodes.

Benefits and drawbacks

+ The Ajax Loader is a more elegant solution than reloading the page after appending a random string to the URL.
+ Page load is faster, as there is no redirect.
+ URLs are not altered. There is no random text appended to them.
– The Ajax Loader can only process standard elements on the page. If 3rd party plugins add their own pricing elements, such addon prices, custom totals, etc, those won’t be updated. It will be up to the 3rd party plugins’ authors to “hook” into the Ajax Loader and refresh their elements via Ajax.

How to get the WooCommerce Cache Handler

The WooCommerce Cache Handler is available free of charge. Please feel free to download and try it, and see how it works for you. Whether you are using CloudFlare, SiteGround, WP Engine, Flywheel, or any other service with static caching, the Cache Handler got you covered!

Questions? Feedback?

The Cache Handler is still in Beta stage and that, as any free plugin, it’s not covered our free support. We would recommend to try it on a staging copy of your site, so that the live site won’t not affected by bugs that we eventually have to address.

We also would like to encourage you to share your feedback by contacting us. If you wish to contribute to the development of this plugin, you are more than welcome to do so!

Thanks for reading, and see you soon on aelia.co!

The Aelia Team

Shipping Pricing for Currency Switcher – Improvements for WooCommerce 2.6 Beta 2

WooCommerce Shipping Pricing Integration – What’s new

Our Shipping Pricing Integration Add-on for WooCommerce Currency Switcher has been updated to version 1.2.3.160516. This update brings the following improvements and fixes:

  • Added support for new features introduced in WooCommerce 2.6 Beta 2. The Beta 2 of WooCommerce 2.6 introduced a new interface to edit the parameters of a shipping method. When the shop owner click on the Settings link on the Shipping Zone Methods page, a new popup window opens. This window allows to change the settings of a shipping method quickly, without reloading the entire page, like it was done in the past. You can see some screenshots of the new UI below:

    Unfortunately, although this new feature can improve the user experience, it also has significant drawbacks. The new popup window is generated using a JavaScript library called Backbone.js. We are not aware of the reasons behind this choice, but it’s fact that, unlike the traditional WooCommerce architecture, elements built with that library are far more complicated to extend, especially when more than one plugin comes into play.

    This presented a significant challenge to us, for our Shipping Integration was not designed to take into account the presence of such library. Although our plugin worked fine, even in WooCommerce 2.6, with the classic user interface, handling this new popup required a significant amount of work. Backward compatibility is of paramount importance to us, and we couldn’t just rewrite everything using the new library. Basically, we needed to find a solution that would work with WooCommerce 2.6 and earlier versions, seamlessly.
    Needless to say, we found a solution (at least, until new breaking changes are introduced). Our multi-currency selector can now work directly from a Shipping Zone Methods page, as well as on the popup window. We didn’t touch the Backbone code, as we find it too hard to tweak, and relied on a “trick” instead.

    Below you can find the result of our efforts, the new multi-currency interface for shipping methods:

    As you can see, we tried to keep the original interface as much as possible, and added our elements in a separate area. Simplicity is the key!

  • Fixed calculation of currency specific shipping in WC 2.6 Beta 2. The calculation was broken by unexpected changes in how shipping methods are handled when they are assigned to a zone. The new shipping zones are a new concept, and they seem to be a bit of a “moving target”. We will work on fixing all the bugs caused by breaking changes as soon as we discover them.

How to get latest version

New customers

Simply place your order and you will get the latest version.

Existing customers

You should be able to download the updated file using the link you received with your order. If the link doesn’t work, please contact Support to receive the latest version. Thanks.

WooCommerce Shipping Pricing for Currency Switcher – Support for WooCommerce 2.6

WooCommerce Shipping Pricing Integration – What’s new

Our Shipping Pricing Integration Add-on for WooCommerce Currency Switcher has been updated to version 1.2.1.160310. This update brings the following improvements and fixes:

  • Added support for WooCommerce 2.6. Version 2.6 of WooCommerce introduces the concept of shipping zones, and it allows to create multiple instances of each shipping method for each zone. The Shipping Pricing plugin fully supports this new feature. When used with WooCommerce 2.6, our plugin provides a convenient user interface where you can set the shipping costs for each combination of zone, shipping method, and currency. Below you can see the new multi-currency, zone-specific shipping pricing feature in action:

    That’s an amazing improvement!

  • Bug fix – Fixed edge condition that affected the calculation of flat rate shipping in WooCommerce 2.5 and later. The bug caused the message “no shipping method available” to appear if shipping costs were entered for a specific currency, saved and the “manual costs” flag was set to “disabled”.
  • Bug fix – Fixed initialisation of messages controller. The controller now uses the correct text domain.
  • Tweak – Excluded shipping method templates from autoloader’s class maps, to improve performance and reduce the possibility of conflicts.

How to get latest version

New customers

Simply place your order and you will get the latest version.

Existing customers

You should be able to download the updated file using the link you received with your order. If the link doesn’t work, please contact Support to receive the latest version. Thanks.