問題の概要
Germanized for WooCommerceとWPMLを使用している環境では、配送クラスの条件を利用する配送方法が、翻訳された商品で利用できないという問題があります。
回避策
この問題は修正されました。 最新バージョンにアップデートするとお使いのサイトで問題が解決するため、この回避策はまだアップデートできない場合にのみ必要です。
続行する前に、サイトの完全なバックアップを取得してください。
- …/wp-content/plugins/woocommerce-germanized/packages/woocommerce-germanized-shipments/src/ShippingMethod/ShippingMethod.phpファイルを開きます。
- 957行目を探します。
- 変更前:
$classes = isset( $condition['classes'] ) && ! empty( $condition['classes'] ) ? array_map( 'absint', (array) $condition['classes'] ) : array();
- 変更後:
$classes = isset( $condition['classes'] ) && ! empty( $condition['classes'] ) ? array_map( 'absint', (array) $condition['classes'] ) : array(); // compsupp-7583 workaround // Assuming $classes is an array of category IDs. $classes = array_map(function($class_id) { // Translate each ID using WPML return apply_filters('wpml_object_id', $class_id, 'category'); }, $classes);