WPML
Estado
Resuelto
Notificado para
WPML Multilingual & Multicurrency for WooCommerce 5.3.2
Etiquetas de temática
WCML

Resumen del problema

Si tiene un producto variable en WooCommerce y se agota con un pedido realizado en el idioma secundario, el inventario no se actualiza en los otros idiomas. Por lo tanto, aparecerá como «agotado» en el idioma en el que se realizó el pedido, y disponible en todos los demás idiomas.

Solución alternativa


  • Cree una copia de seguridad de su sitio

  • Abra el archivo wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-synchronize-product-data.php

  • Reemplace
    	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 );
    			}
    		}
    	}

    por:

    	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 );
    			}
    		}
    //	}

Todos los problemas conocidos →