WPML
Trạng thái
Đã giải quyết
Được báo cáo cho
WPML Multilingual & Multicurrency for WooCommerce 5.3.2
Thẻ chủ đề
WCML

Tổng quan về lỗi

Nếu bạn có một sản phẩm có biến thể trong WooCommerce và sản phẩm đó hết hàng do một đơn hàng được đặt bằng ngôn ngữ phụ, số lượng tồn kho sẽ không được cập nhật trong các ngôn ngữ khác. Do đó, sản phẩm sẽ hiển thị là “hết hàng” trong ngôn ngữ mà đơn hàng được đặt, và có sẵn trong tất cả ngôn ngữ khác.

Giải pháp tạm thời


  • Tạo bản sao lưu cho trang web của bạn

  • Mở tệp wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-synchronize-product-data.php

  • Thay thế
    	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 );
    			}
    		}
    	}

    bằng:

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

Tất cả các lỗi đã ghi nhận →