Aelia - News badge

EU VAT Assistant on WordPress.org – Update 12 December 2018

This post is a follow-up to the one we published on the 10 December 2018, in relation to the removal of our EU VAT Assistant from the WordPress repository.

Analysing the issue with the WordPress Team

As explained in the earlier post, due to technical limitations, the WP.org repository can only be used to host plugins that don’t have external dependencies. Plugins are expected to carry around a copy of all the files they need, even if this may cause conflicts with different versions of the same files, which might be installed on the site. Our EU VAT Assistant relies our Aelia Foundation Classes (or AFC, for short), which is an external framework. Due to that, it didn’t match the described requirement.

We had a long discussion with the WordPress Team, during which we went into the details of the decisions behind the design for our EU VAT Assistant, as well as our other plugins. We proposed several solutions, all of which were technically valid, but they were rejected on the ground of not being fully compliant with the current policies that apply to WordPress.org. The conclusion was our solutions are highly modular (and work well that way), but the public WordPress repository, in its current form, doesn’t support such architecture.

The challenge

The restrictions on the WordPress repository presented a significant challenge. We spent a significant amount of time and effort to create our existing, modular architecture. All our solutions are based on it, and they have been thoroughly tested. The WordPress Team insist that all plugins should carry around their own copy of the required files, while we have enough experience and statistical data to disagree with such statement. Besides, we couldn’t afford to discard years of work to go back to the required “monolithic” design, risking to introduce issues in the process.

The main hurdle came from one of the core principle on which the Aelia Foundation Classes is based. We wrote the AFC Framework with the assumption that there will always be one copy of such framework installed, at any given time. Such requirement can be easily enforced, and it allows to share the same code across multiple plugins. It also avoids having to write a convoluted logic to check if multiple copies of a framework are installed, and which one should be used. Based on our tests and experience, it’s a leaner and more effective approach.

Our challenge was to find a way to reach the following targets:

  1. Allow the EU VAT Assistant to carry around and load its own framework.
  2. Allow plugins that rely on the shared AFC Framework to keep doing so.
  3. Avoid substantial rewriting of any of the plugins, or the framework.

The AFC Framework as the key

After a careful analysis of our options, we realised that the AFC Framework could be the solution to the issue. Like our plugins, the framework is highly modular, and structured so that its components are loosely coupled. Although we designed the framework to be installed as a separate plugin, we were able to extract parts of it, and transform them into an “embedded framework”. This was also made easier by the logic used by our plugins to find the AFC, and interact with it, which allows for good flexibility. In short, we found a way to satisfy all the requirements, while keeping our modular structure and full compatibility with our other products.

The proposed solution

We reviewed the AFC Framework, focusing our attention on its basic, core elements, and we came up with a smart, yet simple solution:

  1. We built a smaller version of the framework, called AFC Embedded, which excludes non-essential features, as well as any feature that is not deemed “appropriate” for inclusion in the WordPress repository.
  2. We added the AFC Embedded framework to the EU VAT Assistant.
  3. We modified the loader logic used by the EU VAT Assistant, to perform the following operations:
    1. When the standalone AFC Framework is active, use that one. In such case, the plugin would behave exactly as it did before.
    2. When the standalone AFC Framework is not active, or not installed, load the embedded AFC Framework.

This approach required only minor changes in both the framework and the EU VAT Assistant, and no changes at all in our other products. It also covers the scenario where the EU VAT plugin is installed first, and the standalone framework at a later stage, e.g. after installing one of our premium WooCommerce plugins. In that case, the EU VAT Assistant switches from the embedded framework to the standalone one, transparently. Simple, yet effective!

Current status

We discussed the above solution with the WordPress Team, and they agreed that it would be within the new guidelines of the WordPress.org repository. We have submitted an updated version of our EU VAT Assistant for their review, and we are waiting for their reply. If all goes well, our solution for EU VAT compliance should be back online very soon.

Any questions? Always happy to answer!

Should you have any questions about the EU VAT Assistant, or the progress with the new version, please feel free to contact us. We will be happy to answer all your questions, and give you any information you might need.

Thanks again for staying with us, we are looking forward to sharing with you some good news soon!

Regards,

The Aelia Team

Aelia - News badge

The EU VAT Assistant for WooCommerce is still “alive and kicking”!

On the 9 December 2018, the WordPress Team removed our popular EU VAT Assistant from the public repository on WordPress.org. In this article, we are going to explain why they took that decision.

Preliminary note

Before explaining the reason for the removal, we would like to clarify that the EU VAT Assistant is still working fine, it’s fully supported and it will be maintained for the foreseeable future. There isn’t any technical issue, we’re just dealing with a minor conflict with the new regulations on WordPress.org.

Why the plugin was closed on WordPress.org

The WordPress Team closed the EU VAT Assistant on the 9th of December, 2018, because that plugin, like (almost) every other Aelia plugin, requires our mini-framework, called Aelia Foundation Classes (or AFC, for short). That mini-framework comes as an independent plugin, which has to be installed separately. We introduced such framework in our development cycle back in 2013, when we realised that the old approach of bundling multiple copies of the same files and libraries in each plugin was inefficient. Since WordPress didn’t include a dependency management system (and still doesn’t), we implemented our own, simple solution. That allowed us to get the result we were looking for:

  1. We were able to the files and libraries common to multiple plugins to a shared framework (the Aelia Foundation Classes).
  2. We were able to leverage the functions offered by WordPress to detect when such plugin is missing, and prompt the administrator to install it.

Thanks to the above, the EU VAT Assistant and our other plugins can detect if the AFC framework is not installed. When that is the case, they ask the administrators if they want to install it manually. To make thins even easier, our plugins also offers a convenient “one click” interface to do that installation. This is how the EU VAT Assistant always worked, ever since we released its first version, back in 2014. Apparently, now this presents an issue.

The issue

The new rules for the WordPress repository indicate that a plugin can’t download another plugin from sources other than WordPress.org. Since the “one click install” downloads the framework from our site, that feature is no longer allowed. Due to that, the WordPress team deemed necessary to close the plugin, and informed us about that closure right after it was performed. Unfortunately, we didn’t receive an advance notice about this, or we would have informed our users about it.

As mentioned, the reason for the plugin closure is not technical. The EU VAT Assistant works perfectly fine as it is, and it’s not affected by bugs or technical issues. More simply, there’s a disagreement about our plugin’s architecture, as the WordPress team deemed such design to no longer conform with the repository guidelines. Due to this, they decided to remove the plugin, despite its popularity and the fact that it has been running smoothly for over 4 years.

Possible solutions

The only reported non-conformity in the EU VAT Assistant is the dependency management that the plugin uses. Our solution allows administrators to download the required AFC mini-framework from our site, which is external to WordPress.org. From a technical perspective, this could be solved easily in a few ways:

  1. The AFC framework could be hosted on WordPress.org.
  2. The framework could be bundled within the EU VAT Assistant, which would then take care of installing it as a separate plugin, without having to download it from an external source.
  3. The “once click install” feature could be removed from the EU VAT Assistant, thus removing the “download from an external site” altogether.

Unfortunately, the WordPress team didn’t accept any of the above:

  1. The first solution won’t be allowed by another regulation, which doesn’t allow to use WordPress.org to host framework plugins.
  2. The third solution would involve “bundling a plugin within a plugin”, which is also not allowed.
  3. The third solution won’t be allowed either. Requiring a manual installation of the framework would imply that the EU VAT Assistant “doesn’t work” straight out of the box (unless the framework is installed first), which is another of the requirements on WordPress.org repository to ensure a smooth user experience.

Feedback from the WordPress Team

The WordPress Team suggested that we change the the EU VAT Assistant so that it doesn’t require the AFC framework, or so that the files from the framework are part of the plugin itself. Unfortunately, that won’t be an option. The decision of having the framework as an external plugin was deliberate, to make our plugins modular and more robust. Such design, fairly common on other platforms, allows to keep modules lean, and greatly reduces the chance of conflicts caused by the presence of multiple copies of the same files. Our target was to move away from the obsolete “monolithic” architecture, and all the bloating that it involves, and have a single, shared framework. Other developers adopted such approach (popular themes like Genesis and Avada also use a framework plugin), and it works well.

Rewriting the EU VAT Assistant to go back to the old “bundle everything” design would be a significant step backward, and it would introduce a high risk of causing conflicts with our other plugins, which are based on current “shared framework” architecture. Regrettably, we can’t redesign all the plugins we developed just to comply with a restriction on WordPress.org, which affects a single plugin.

Current status (updated 10 December 2018)

We had an extensive conversation with the WordPress Team about the removal of the EU VAT Assistant from the repository, and how it could be restored. As of the the 10th of December, we haven’t reached an agreement. We proposed a few solutions that would not require a radical changes in the plugin’s architecture. They would also avoid a cascade effect with other plugins based on the same design. Unfortunately, the WP Team keeps insisting that the only solution they deem acceptable by them is to rewrite the plugin and bundle the framework in it. As explained above, that’s basically the only approach we can’t follow. It’s simply not feasible.

We are aware that this sudden change could cause alarm among the merchants who are using our EU VAT Assistant. We received several enquiries, from our customers, asking what the future of the our VAT plugin is going to be. All of them expressed their support to us, and were puzzled by such sudden decision about an established and useful solution. You can read the conversation on the plugin’s public support forum, available here: https://wordpress.org/support/topic/plugin-removed-from-wordpress-repository/.

As anticipated, the EU VAT Assistant is still fully functional and supported, still free and it will be maintained for the time being. We will keep checking with the WordPress Team if we can find a compromise that can allow to restore our plugin on the WordPress repository. In the meantime, the EU VAT Assistant will still be available, free of charge, directly from our website. We will also take care of serving updates for our solution directly, while the files hosted on WordPress.org are offline.

Any questions? Always happy to answer!

Should you have any questions about the EU VAT Assistant, please feel free to contact us. We will get back to you as soon as possible.

Thanks for reading this long post, and apologies for the inconvenience caused by the sudden change, which was outside our control.

Regards,

The Aelia Team

Aelia - Product update badge

WooCommerce Currency Switcher – WC 3.5 version update, October 2018

WooCommerce Currency Switcher – What’s new

Currency Switcher for WooCommerce has been updated to version 4.6.6.181004. This update brings the following improvements and fixes:

  • Updated supported WooCommerce versions. We tested the plugin with WooCommerce 3.5 and we haven’t encountered any issue with that new version. Of course, should you need assistance, please feel free to contact us.

How to get latest version

New customers

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

Existing customers

If you activated your licence in WooCommerce > Setttings > Aelia, you will see a notification informing you about the update. You will then be able to install it automatically.

If you haven’t activated your licence, you can 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.

Aelia - Product update badge

WooCommerce Currency Switcher – Minor update, August 2018

WooCommerce Currency Switcher – What’s new

Currency Switcher for WooCommerce has been updated to version 4.6.5.180828. This update brings the following improvements and fixes:

  • Added display of orders net total in base currency on the Orders List page. The net total is calculated as the order total minus refunds, and it’s displayed next to the order’s original total in base currency.

    Aelia Currency Switcher - Order net totals in base currency

    The Order List page now shows the order totals and the order net totals in base currency.

  • Added support for exchange rates markups expressed as a percentage. It’s now possible to enter a markup such as “10%”, and have the exchange rate increased by that factor.

    Aelia Currency Switcher - Percentage markups

    The exchange rates settings page now accepts markups expressed as a percentage.

How to get latest version

New customers

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

Existing customers

If you activated your licence in WooCommerce > Setttings > Aelia, you will see a notification informing you about the update. You will then be able to install it automatically.

If you haven’t activated your licence, you can 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.

Aelia - Product update badge

WooCommerce Currency Switcher – Minor update, July 2018

WooCommerce Currency Switcher – What’s new

Currency Switcher for WooCommerce has been updated to version 4.6.1.180716. This update brings the following improvements and fixes:

  • Fixed bug that caused the exchange rates settings to be lost after removing a currency.
  • Implemented workaround to prevent the Memberships plugin from triggering notices during the conversion of product prices.
  • Added logic to ensure that shipping costs are calculated with the correct amount of decimals, before they are converted.
  • Fixed currency for Latvia to EUR (funny, how nobody noticed that until now). 🙂

How to get latest version

New customers

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

Existing customers

If you activated your licence in WooCommerce > Setttings > Aelia, you will see a notification informing you about the update. You will then be able to install it automatically.

If you haven’t activated your licence, you can 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.