Skip to main content

2.0.20 Release Notes

Version 2.0.20 is a minor release with three new features, one update, two bug fixes.


Additions

Server-Side Shipping Callbacks

PayPal and Venmo now use server-side callbacks for shipping-related events by default for new installs. When a customer changes their shipping address or selects a shipping option inside the PayPal popup, PayPal sends the request directly to your server to recalculate shipping options and order totals — instead of relying on browser-based JavaScript events.

This approach is more reliable across native browsers and platforms like Facebook, where client-side JS-SDK callbacks may not be available. The feature can be disabled on the PayPal Settings page. If disabled, shipping events will fall back to the onShippingChange browser-based event supported by PayPal.

info

For existing installs, this feature must be manually enabled on the PayPal Settings page. This is intentional — if your site uses a security plugin, you should whitelist the REST API endpoint below before enabling the feature to avoid shipping callbacks being blocked.

warning

The server-side callback uses the WordPress REST API. If your site uses a security plugin (such as Wordfence, iThemes Security, or similar), make sure the following endpoint is whitelisted to allow requests from PayPal:

/wp-json/wc-ppcp/v1/cart/order-update-callback

Blocking this endpoint will prevent shipping options and order totals from updating correctly inside the PayPal popup.

Venmo Shipping Support

Venmo now supports shipping option selection and shipping address changes inside the PayPal popup. To enable this, turn on the Server-Side Shipping Callback option on the PayPal Settings page. Because Venmo is incompatible with the client-side onShippingChange event, server-side callbacks are required for this feature.

reCAPTCHA Low Score Log Entry

A log entry is now written when reCAPTCHA verification fails due to a low score. This makes it easier to identify and diagnose reCAPTCHA-related rejections when reviewing the debug log.


Updates

ExperienceContext Replaces ApplicationContext

The deprecated ApplicationContext object has been replaced with the new ExperienceContext object in the checkout flow. If you have custom code or integrations that reference ApplicationContext, update those references to use ExperienceContext instead.


Bug Fixes

Debug Log Entries Written When Logging Was Disabled

When the debug log was disabled in settings, some log entries were still being written. Logging now fully respects the enabled/disabled setting.