WPML
الحالة
محلولة
أُبلغ عنها لـ
WPML Multilingual & Multicurrency for WooCommerce 5.3.2
وسوم الموضوع
WCML

نظرة عامة على المشكلة

إذا كان لديك منتج متغير في WooCommerce، وأصبح غير متوفر في المخزون بسبب طلب تم إجراؤه باللغة الثانية، فلا يتم تحديث المخزون في اللغات الأخرى. لذلك، سيظهر بحالة «غير متوفر في المخزون» في اللغة التي تم إجراء الطلب بها، ومتوفراً في جميع اللغات الأخرى.

حل بديل مؤقت


  • أنشئ نسخة احتياطية لموقعك

  • افتح الملف wp-content/plugins/woocommerce-multilingual/inc/translation-editor/class-wcml-synchronize-product-data.php

  • استبدل
    	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 );
    			}
    		}
    	}

    بـ:

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

جميع المشاكل المعروفة →