- 상태
- 해결됨
- 보고된 제품
- 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 ); } } // }