- ステータス
- 解決済み
- 報告対象
- 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_idとterm_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 );
- これらの変更を適用した後、この問題が発生している商品を手動で保存または更新する必要があります。