Install

Works with Drupal: ^11

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 267.29 KB
MD5: f7a8cd287ab03ba2dcdcff88e1c4621b
SHA-1: 8910403a8500242c7093d0e3310e0fe8315adacc
SHA-256: f084a70fd69b872c85e995984679ac4a7b8239eac0fbea91ad010d8a7e48767b
Download zip 416.23 KB
MD5: f114c9a305098d8a55bbf5612043a499
SHA-1: 2986ab7ad07fb432718411f176a190cf9c18b531
SHA-256: defcf633fdcf3453f3f8d14bd34efb5801330da776a5239c5ca944ca02c60f20

Release notes

# WT Commerce 1.4.1 — release notes

Covers all three modules. Drupal 11, PHP 8.1+. **Run `drush cr` after updating** (see Upgrade notes). There are no database updates.

## Security

**The Viva webhook token is no longer written to logs.** Viva sends the token in the webhook URL, and Drupal logs the URL of each request, so entries logged during a webhook call contained your `webhook_token`. The token is now removed before anything is logged, and it is compared in constant time.

**What you should do if you use Viva Wallet.** Older log entries and your web server's access logs may still contain the token:

1. **Rotate the token.** Set a new `webhook_token` in `settings.php` and update the webhook URL in your Viva dashboard (`https://yourdomain.com/wtpay/webhook?token=…`).
2. **Clear the old log entries.** `drush watchdog:delete all` removes the **entire site log**, not just these entries, and cannot be undone. To remove only the entries with the token:

```bash
drush sql:query "DELETE FROM watchdog WHERE location LIKE '%/wtpay/webhook?token=%'"
```

3. **Check your web server's access logs** and those of your hosting panel. The token stays in the URL, so your server can still record it. This release cannot change that, and rotating it protects you from the old entries.

## Bug fixes

- **A missing Stripe library no longer breaks checkout.** Paying with Stripe could end in a fatal error (`Class "Stripe\StripeClient" not found`), leaving an unpaid order behind. Without the library, Stripe is now hidden at checkout, unless it is your only payment method. In that case the buyer gets a clear message and no order is created. The status report warns you on Drupal 11.2 and later.
- **Composer now installs the dependencies.** Earlier releases did not pull in `stripe/stripe-php` or `drupal/paragraphs`, so both had to be installed by hand.
- **A missing Stripe secret key leaves no unpaid order.** Checkout now refuses Stripe before the order is created.
- **Stripe orders are completed only when paid.** A Stripe session that is not paid no longer completes an order. Stripe payments are card payments: other methods enabled in your Stripe Dashboard, such as bank debits, are not offered.
- **Views integration moved out of the `*.views.inc` files** (Drupal 12 readiness), because Drupal 12 no longer loads hooks from them. The hooks are now in each module's `.module` file, as plain functions rather than `#[Hook]` classes. These modules support all of Drupal 11, and Drupal 11.0 does not discover `#[Hook]` classes, so views would otherwise lose the add-to-cart and booking fields and the order date filter there. Nothing changes in your views.

## Features

No new features in this release.

## Upgrade notes

1. Back up the database and update the code (`composer update drupal/wt_commerce`).
2. Run `drush cr`. This is required: checkout needs a new service, and the Views data must be rebuilt. Until caches are rebuilt, checkout fails.
3. If you added `stripe/stripe-php` or `drupal/paragraphs` to your own `composer.json`, you can keep them. Versions 16 to 21 of the Stripe library are supported.
4. If you use Viva Wallet, follow the steps under **Security**.
5. On multilingual sites, translate the new message "Card payment is temporarily unavailable. Please choose another payment method or contact us."

## Tested on

To be filled in at the release check, including the CI pipeline and `composer show drupal/wt_commerce 1.4.1 --all`, which must confirm that Composer installs the dependencies.

Created by: alexpertsi
Created on: 30 Oct 2026 at 15:39 UTC
Last updated: 30 Oct 2026 at 15:39 UTC
Bug fixes

Other releases