WooCommerce: Warenbestand nach Bestellung nicht aktualisiert

Problem:

Der Warenbestand auf einer Produktseite erscheint nicht aktualisiert, nachdem das Produkt bestellt wurde.

Lösung:

Eigenes MU-Plugin erstellen

Folge den allgemeinen Anweisungen in diesem Artikel:
Eigenes (MU-)Plugin für Anpassungen erstellen

1
Lege einen neuen Ordner mu-plugins innerhalb von wp-content an.
Falls der Ordner mu-plugins dort schon existiert, verwende den existierenden.
2
Lege eine neue Datei an und speichere die folgenden Code-Zeilen darin. Nutze dafür einen Code- oder Texteditor:
<?php
defined( 'ABSPATH' ) or die( 'No direct access here, kiddo.' );
/**
 * Plugin Name: WP Rocket | Clean Product Cache after WooCommerce Order
 * Description: Cleans the cache for each product ordered after a WooCommerce order has been completed.
 * Plugin URI:  http://docs.wp-rocket.me/article/881-update-products-on-stock-after-new-woocommerce-orders
 * Author:      WP Rocket Support Team
 * Author URI:  http://wp-rocket.me/
 * License:     GNU General Public License v3 or later
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 */


/**
 * Clean post cache after order has been completed.
 * 
 * @param  int $order_id Order ID
 * @return void
 */
function wp_rocket_wc_clean_product_cache_after_order( $order_id ) {

	$order = new WC_Order( $order_id );
	$items = $order->get_items();

	foreach ( $items as $item ) {
		$post_id = absint( $item['product_id'] );
		rocket_clean_post( $post_id );
	}
}
add_action( 'woocommerce_payment_complete', 'wp_rocket_wc_clean_product_cache_after_order', 10 );
	
3
Speichere die Datei unter einem beliebigen Namen, aber nutze ausschließlich lateinische Kleinbuchstaben, Ziffern, und Bindestriche im Dateinamen. Zum Beispiel:
wp-rocket-wc-clean-product-cache.php
4
Lade die Datei in den Ordner mu-plugins aus Schritt 1 hoch.
5
Zuletzt deaktiviere und re-aktiviere WP Rocket einmal.