- Statut
- Résolu
- Signalé pour
- WPML Multilingual & Multicurrency for WooCommerce 5.3.2
- Étiquettes de sujet
- WCML
Aperçu de l’anomalie
Si vous avez un produit variable dans WooCommerce, et qu’il se retrouve en rupture de stock suite à une commande passée dans la langue secondaire, le stock n’est pas mis à jour dans les autres langues. Par conséquent, il apparaîtra comme « en rupture de stock » dans la langue où la commande a été passée, et disponible dans toutes les autres langues.
Solution de contournement
- Créez une sauvegarde de votre site
- Ouvrez le fichier wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-synchronize-product-data.php
- Remplacez
public function sync_stock_status_for_translations( $product_id, $status ) { if ( $this->woocommerce_wpml->products->is_original_product( $product_id ) ) { $translations = $this->post_translations->get_element_translations( $product_id, false, true ); foreach ( $translations as $translation ) { $this->woocommerce_wpml->products->update_stock_status( $translation, $status ); $this->wc_taxonomies_recount_after_stock_change( $translation ); } } }par :
public function sync_stock_status_for_translations( $product_id, $status ) { // if ( $this->woocommerce_wpml->products->is_original_product( $product_id ) ) { $translations = $this->post_translations->get_element_translations( $product_id, false, false ); foreach ( $translations as $translation ) { $this->woocommerce_wpml->products->update_stock_status( $translation, $status ); $this->wc_taxonomies_recount_after_stock_change( $translation ); } } // }