Mettre à jour les produits en stock après de nouvelles commandes Woocommerce

Si vous utilisez Woocommerce pour votre e-commerce et que vous remarquez que les produits en stock ne sont pas correctement mis à jour, vous pouvez utiliser ce MU-plugin pour vider le cache WP Rocket chaque fois qu'une nouvelle commande est terminée.

Vider le cache via un MU-Plugin:

Suivez les instructions générales de cet article : 
Comment créer un MU-plugin

1
Créez un dossier nommé mu-plugins dans votre dossier /wp-content.
Dans le cas où un dossier mu-plugins existe déjà, n'en créez pas un nouveau, il suffit d'utiliser celui existant.
2
À l'aide d'un éditeur de texte de base, créez un nouveau fichier et insérez le code suivant :
<?php
defined( 'ABSPATH' ) or die( 'No direct access here, kiddo.' );
/**
 * Plugin Name: WP Rocket | Clean Post 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
Sauvegardez le fichier avec le nom wp-rocket-wc-clean-product-cache.php
4
Envoyez ce fichier dans le dossier mu-plugins créé à l'étape 1
5
Enfin, désactivez et réactivez WP Rocket.