With proper caching, WooCommerce can be sped up, but dynamic database queries remain slow, especially for sites with a large number of SKUs. Because of a flaw in how WordPress handles meta data,  searching can come to a crawl at critical moments, such as during the checkout of large orders.

Mit einem geeigneten Caching lässt sich WooCommerce beschleunigen, doch dynamische Datenbankabfragen bleiben langsam, insbesondere bei Websites mit einer großen Anzahl von SKUs. Aufgrund eines Fehlers in der Art und Weise, wie WordPress Metadaten verarbeitet, kann die Suche in kritischen Momenten, beispielsweise beim Auschecken großer Bestellungen, fast zum Stillstand kommen.

The slowdown is caused by ajax being required to wait for the product quanities and other data to finish before giving the customer feedback that the order has been completed. In the backend the order almost immediately shows.

Die Verzögerung entsteht, weil Ajax warten muss, bis die Produktmengen und andere Daten vollständig sind, bevor der Kunde darüber informiert werden kann, dass die Bestellung abgeschlossen ist. Im Backend wird die Bestellung fast sofort angezeigt.

Using the javascript hooks in the original checkout code, I was able to bypass most of the heavy lifting.

Mithilfe der JavaScript-Hooks im ursprünglichen Checkout-Code konnte ich den Großteil der mühsamen Arbeit umgehen.

Copy to Clipboard

The order success events also needed to be overridden.

Die Ereignisse zum Bestellungserfolg mussten ebenfalls überschrieben werden.

Copy to Clipboard

Because the processing is still happening in the background, it was necessary to temporarily cache the quantity changes, so that other customers wouldn't be able to purchase them, too.

Da die Verarbeitung noch im Hintergrund läuft, war es notwendig, die Mengenänderungen vorübergehend zwischenzuspeichern, damit andere Kunden sie nicht ebenfalls kaufen konnten.

Copy to Clipboard