Poorly written, highly incompatible with other plugins
-
A client of mine is using the premium version of this plugin (version 4.1.2, no updates available). They have been faced with several problems, and I’ve been trying to fix the holes in this plugin for a few hours so they can continue using the plugin. I’ve managed to make it work by shutting off/overriding a lot of features but ultimately I am going to suggest finding a different plugin or building one for them myself.
Here are the main issues you will run into if you use this plugin:
1. This plugin uses its own “price html” to display the price on your page. This will probably change the way your price is displayed on your theme. In our case, it duplicated the price.
Worst yet, it does this even if the plugin is not affecting the price of a product (eg, the product has no customer price change).
2. The plugin does not follow WooCommerce standards. The custom price is not applied through normal price filters. This means if you want to display your “Cart Total” like in our case, using the X Theme’s “cart total” widget, the total calculates using the normal product price. I tried debugging this further and discovered the following:
$product->get_price(); — Incorrect value, shows the original price regardless.
$product->get_price_html(); — Correctly shows the user’s discount price.
$cart->get_cart_contents_total(); — Incorrect, calculates the original price of all products3. Mostly because of the above, this plugin is immensely incompatible with other plugins. We are also using “WooCommerce Dynamic Discounts” and “WooCommerce Tiered Pricing” to accomplish other price formats. While all the others work fine together, this one does not. There are too many issues to list – but mainly you don’t get the discount you should, ever.
4. Scalability is a huge problem with this plugin. Our client has thousands of products and hundreds of users and we expect that to keep growing. The interface for choosing specific customers and products to apply discounts for loads all customers and products at once. This makes the page take a long time to load, we had to increase the memory limit.
Updated 4/15/2019
More problems!
5. In class-wdm-apply-usp-product-price.php there is a function applyQuantityPriceInCart which sets the price of every product to the “DBPrice”. This means if you have any other system that changes the product price, that will be reset with the regular price no matter what. In our case, role based pricing was being overwritten. The worst part is this happens even if you do not set a customer-specific price for a user!
- The topic ‘Poorly written, highly incompatible with other plugins’ is closed to new replies.