WPML
ステータス
解決済み
報告対象
WPML Multilingual & Multicurrency for WooCommerce 5.5.2.1
解決されたバージョン
WooCommerce Multilingual & Multicurrency 5.5.2.2
トピックタグ
WCML

問題の概要

WPML Multilingual & Multicurrency for WooCommerceでは、バリエーションのある商品を翻訳する際、第2言語でのデフォルトのバリエーションが欠落しているか、誤って0に設定される場合があります。

これはterm_idterm_taxonomy_idの値が異なる場合に発生し、グローバル商品属性で起こる可能性があります。

回避策

続行する前に、必ずサイトの完全なサイトバックアップを作成してください。


  • …/woocommerce-multilingual/classes/Synchronization/Component/Attributes.phpファイルを開きます。

  • 137行目を探します。

  • 以下のコードを置き換えます。
    $defaultTermIdTranslations = $this->elementTranslations->get_element_translations( $defaultTermId, false, true );


  • 置き換え後のコード:
    $defaultTermIdTranslations = [];


  • 同じファイルで149行目を探し、以下のコードを置き換えます。
    $translatedDefaultTermId = $this->elementTranslations->element_id_in( $defaultTermId, $language );


  • 置き換え後のコード:
    $translatedDefaultTermId = apply_filters( 'wpml_object_id', $defaultTermId, $sanitizedAttributeName, false, $language );


  • これらの変更を適用した後、この問題が発生している商品を手動で保存または更新する必要があります。

すべての既知の問題 →