Wer physische Produkte im Abo verkauft, konnte Planwechsel bisher nicht anteilig abrechnen – virtuelle Produkte schon. Mit WooCommerce Subscriptions 9.2.0 fällt diese Einschränkung. Das Update, das das WooCommerce-Entwicklerteam Anfang September per Developer Advisory angekündigt hat, überarbeitet außerdem die Einstellungsseite der Extension und ändert an mehreren Stellen Verhalten, von dem Integrationen und Payment-Gateways abhängen.
Was ändert sich bei der Proration physischer Produkte?
Die beiden Optionen „Prorate Recurring Payment“ und „Prorate Subscription Length“ gelten jetzt auch für physische Produkte. Technisch akzeptiert der Filter woocommerce_subscriptions_apportion_recurring_price die neuen Werte physical-upgrade und physical; woocommerce_subscriptions_apportion_length nimmt physical entgegen. Die Upgrade-Variante rechnet nur Hochstufungen anteilig ab, Downgrades bleiben unberührt; physical wirkt in beide Richtungen. Standardwerte und bestehende Filter-Signaturen bleiben unverändert – die Änderung ist rein additiv.
Vorsicht beim Rollback: Version 9.1.0 und älter kennen die neuen Werte nicht und zeigen im Dropdown keine Auswahl an. Speichert ein Admin den Abschnitt in diesem Zustand, überschreibt er den hinterlegten Wert still mit „no“. Wer zurückgeht, sollte die Einstellung danach gezielt neu setzen.
Gifting wird zur Produkt-Einstellung
Die bisherige globale Vorgabe „Enabled/Disabled for all products“ entfällt. Gifting lässt sich jetzt pro Produkt über den Meta-Key _subscription_gifting steuern; eine neue Bulk-Edit-Option schaltet es für viele Produkte gleichzeitig. Stores mit global aktivem Gifting erhalten eine Hintergrund-Migration, die den Wert auf bestehende Produkte schreibt. Diese Migration akzeptiert keinen Filter – wer abweichende Konstellationen braucht, muss die Produkte direkt anpassen.
Was müssen Entwickler und Shopbetreiber jetzt prüfen?
Mehrere Behavior-Fixes betreffen den Shop-Alltag. „Turn off automatic payments“ konnte ein Abo bislang in den manuellen Verlängerungsmodus zwingen, obwohl „Accept Manual Renewals“ deaktiviert war; is_manual_renewal_required() verlangt jetzt beide Einstellungen. Eine einmalige Upgrade-Routine aktiviert „Accept Manual Renewals“ auf betroffenen Stores, damit sich das Verhalten nicht unbemerkt ändert. Wer absichtlich mit dieser Konstellation gearbeitet hat, sollte die Einstellungen nach dem Update kontrollieren.
Auch die Rechteprüfung wird härter: wcs_can_items_be_removed() prüft jetzt die Capability edit_shop_subscription_line_items. Empfänger geschenkter Abos sehen das Entfernen-Steuerelement im Kundenkonto nicht mehr. Aufrufe aus Cron, WP-CLI oder nicht authentifizierten REST-Requests liefern künftig false – bisher konnten sie true zurückgeben. Zudem bekommen Entfernen- und Resubscribe-Links eigene Nonces; Links aus Versionen vor 9.2.0 verifizieren nicht mehr.
Für Integrationen relevant: Der Subscriptions-Settings-Tab registriert sich jetzt über woocommerce_get_settings_pages, und eine neue Settings_Page-Klasse stellt die REST-Felder unter /wc/v3/settings/subscriptions – die bisherige Klasse WC_REST_Subscriptions_Settings ist veraltet. Das Feld für maximale Kunden-Suspensionen wandelt sich von Auswahlliste zu Zahlenfeld; der bisherige Range-Filter wird ignoriert.
Erst auf Staging aktualisieren, dann Upgrade- und Downgrade-Flows eines physischen Abos durchspielen – in dieser Reihenfolge.
Konkret heißt das: Update zuerst auf der Testumgebung, Proration für ein physisches Abo aktivieren und einen Planwechsel simulieren, danach die Einstellungen zu manuellen Verlängerungen und Gifting gegenprüfen. Wer eigene Snippets oder Gateway-Anbindungen auf den genannten Filtern aufsetzt, findet die vollständige Liste der Änderungen in den Versionshinweisen auf der Produktseite von WooCommerce Subscriptions.
