August 5, 2022

2.0.18, Woocommerce and AffiliateWP

lucas.carvalho

lucas.carvalho

Share on facebook
Share on linkedin
Share on twitter
Share on pinterest
Share on email

Today we release WP Ultimo 2.0.18.

It took us more than we thought it would, but we believe it was for a good reason since we added various improvements. We will detail the most important ones in this article.

As always, you can find the complete changelog at the end of this post.

An overview of fixes and improvements

The way form sessions are handled was rewritten from scratch, so we can assure better usability and a smaller rate of errors, mostly in multi-step forms.

Memberships with trial period now are correctly identified and, if the email confirmation is mandatory, it will be put at pending status until the confirmation happens. Besides, also to this part, we added an automatic status change for trialing in case this membership meets the requirements for this state.

For customers that use Redis for object cache, some inconsistencies were reported during publishing pending sites, mainly among WPMUDEV users. This issue was solved in this version, ensuring that cache values are always updated.

The order subtotal value, passed in places like the order overview, has also been fixed.

Finally, among the most important topics of this part, we have fixed the multiple account system to correct the WooCommerce functioning that was adding the email address incorrectly.

Forms and limits system improvements

One of the big improvements we bring with this version is the addition of notices according to the network settings and limits available to the user, as well as a form for pending payments.

Now to allow your customer to complete a payment, just access any form and add the query string ?payment=XXXX to the page url (eg: mysite.com/register?payment=DF4XPK).

This way we added in this version a warning regarding the pending payment in the form, in case the customer has not completed the payment but the account has been generated (eg: Stripe Checkout and PayPal).

Through this addition, it will also be possible to add forms to change the payment method in a similar way and we will be able to add warnings for expired memberships.

A warning was also added in case the “enable multiple memberships” is deactivated in the network. In this case, we inform that the user already has an account and we insert a button for the user to go to their account on one of their existing websites.

In addition to a fix implemented to not present the site creation form to users who have already reached the limit of sites, we also added conditionals for the site creation form and button so we can better target your customer according to the available options, being that:

  • If the option to allow multiple sites per membership is not enabled, we direct the customer to the page with the registration form, so they can buy a new membership.
  • If the user has reached the limit of sites in their account and the network allows the purchase of multiple memberships, we present a button to direct the customer to the registration page.
  • If the user has reached the limit of sites in his account and the network allows the creation of multiple sites per membership, a button is presented to direct the client to upgrade his membership.

All these warnings can be changed in a simple way via code, allowing greater customization of the message and the addition of custom html. This are the filters we added to change the message:

  • wu_checkout_pending_payment_error_message – Fired when is a new customer with a pending payment;
  • wu_checkout_single_membership_message – Fired when its only possible to have a single membership per customer;
  • wu_checkout_customer_error_message – Fired when customer is not allowed to change this membership;
  • wu_checkout_membership_limit_message – Fired when a limit is reached as the sites limit

Each of these hooks gets different values ​​according to the purpose of the message. Here’s a simple example to use in the case of the warning about the existing membership:

add_filter('wu_checkout_single_membership_message', function ($message, $customer) {
 
  $image = '<img style="display: block;" src="https://mynetwork.com/my-image.png" width="270px" />';
 
  return $image . '<div style="text-align: center;">' . $message . '</div>';
}, 10, 2);

Stripe payments

This update also takes care of a series of improvements for Stripe gateways (Stripe and Stripe Checkout).

Although it is already a functional integration in most of the cases, we got some reports about this gateways not working.

With this in mind, we added a series of internal improvements to handle better the answers in case of error,

With this in mind, we added a series of internal improvements targeting key points in the identification of problems, such as responses passed by Stripe and verifications of API keys passed, in addition to ensuring the use of the correct key for each gateway according to the selected method (live or sandbox) and the use of separated webhooks for Stripe and Stripe Checkout, avoiding processing errors.

This also makes mandatory that the correct webhook for each gateway is active on your Stripe account. Otherwise, the webhooks won’t work.

To minimize this issue, saving any change to the gateway in question (a change of mode for example) will trigger a request for us to try to configure this automatically, but in case of any error, it is worth first checking that the webhooks are added as shown in your WP Ultimo settings page.

Add-ons

Along with this release, we ended the beta versions of WP Ultimo – AffiliateWP Integration e WP Ultimo – WooCommerce Integration. Now they are fully functional add-ons of WP Ultimo v2.

In this version, the AffiliateWP integration addon has been completely reformulated, responding to AffiliateWP according to the status of each payment issued, ensuring correct operation in case of recurrence and the correct capture of the amount after payment is completed.

The WooCommerce gateway has been through several improvements since its beta version, allowing its correct operation in cases of account updates.

A point to pay attention to here is the general functioning of the integration when the WooComemrce Subscriptions is being used. As in the Stripe and Stripe Checkout gateways, we generate the subscription in the payment gateway to ensure the correct recurrence and in case of a subscription update, we delete the old subscription and create a new one afterwards as a way to ensure that the products and values are always correct.

Changelog

WP Ultimo Version 2.0.18 - Released on 2022-08-05

* Added: Current currency in use on Stripe and StripeCheckout product gateway;
* Added: wu_pre_save_settings filter to allow data change before save settings;
* Added: Stripe and Stripe Checkout api keys verification on save settings;
* Added: Show messages to customer on forms according sistem and account limitations;
* Added: Current membership selected on Current class;
* Improvement: Set trial status according membership data on save process;
* Improvement: Delete object cache key of a model after save process;
* Improvement: Non recurring coupon value on stripe checkout;
* Improvement: New session system on forms;
* Improvement: Stripe and Stripe Checkout calls, ensuring correct API keys in use;
* Improvement: Create new payment with Stripe and Stripe Checkout only on "charge.succeeded" webhook event;
* Improvement: Check if membership uses Stripe or Stripe Checkout gateway on webhook calls to prevent duplicated processes which can cause subscription cancelation on gateway;
* Improvement: Public API load order to by present on setup wizard;
* Improvement: get_broadcast_targets method return on class Broadcast;
* Improvement: Multiple account with woocomerce billing_address value;
* Fix: Subtotal value on cart items;;
* Fix: Stripe card input styles;
* Fix: Check the available template sites for selected products;
* Fix: Correct build the cart with trial period on checkout process;
* Fix: Template switch form;
* Fix: Stripe and Stripe Checkout error code on WP_Error;
* Fix: Stripe and Stripe Checkout webhook listener url shown in payment settings;
* Fix: Stripe and Stripe Checkout production mode setting value on save;
WP Ultimo - AffiliateWP Version: 2.0.0 - Released on 2022-08-05

* Plugin rebuild to work based on ultimo payments
WP Ultimo - Woocommerce Version: 2.0.0 - Released on 2022-08-05

* Added: Process cancelation method to remove woo subscription when changing the gateway or canceling the membership;
* Added: Handler to downgrade and upgrade memberships;
* Improvement: Load woocommerce dependencies on customer update form in subsites to allow account update;
* Improvement: Correct load Woocommerce cart if not exist;
* Improvement: Ensure we are on main site tables when process a checkout;
* Improvement: Make Ultimo renewal order based on Woocommerce subscription order value and not from last payment;
* Fix: Go to WU Membership button link;
* Fix: Set Ultimo order as paid when Woocommerce subscriptions renewal has paid;
* Build: Add MPB as builder

 

1 Comment
ldoherty August 7, 2022
|

With version 2.0.18 there is a bug with the multistep checkout. When selecting a template the page does not go to the next part of the form, that is, clikcing select template just reloads the page so the user is unable to move through the form. Rolling back to the previous version resolves the issue.