WPML
Статус
Решено
Заявлено для
Advanced Custom Fields Multilingual 2.0.5
Решено в
Advanced Custom Fields Multilingual 2.1.0
Связанный плагин/тема
Advanced Custom Fields (ACF)
Теги темы
Bug, Compatibility

Обзор проблемы

Если Вы используете плагин Advanced Custom Fields с WPML, Вы можете столкнуться со следующей фатальной ошибкой PHP:


PHP Fatal error: Uncaught TypeError: md5(): Argument #1 ($string) must be of type string, array given in .../wp-content/plugins/acfml/classes/Strings/Package.php:97

Обходное решение

Перед продолжением убедитесь, что у Вас есть полная резервная копия сайта.


  • Откройте файл …/wp-content/plugins/acfml/classes/Strings/Traversable/Field.php.

  • Найдите строку 24.

  • Замените:
    	protected function transform( Transformer $transformer, $value, $config ) {
    		if ( is_array( $value ) ) {
    			foreach ( $value as $key => $label ) {
    				$value[ $key ] = $transformer->transform( $label, $config );
    			}
    		} else {
    			$value = $transformer->transform( $value, $config );
    		}
    
    		return $value;
    	}

  • На:
    	protected function transform( Transformer $transformer, $value, $config ) {
    		if ( is_array( $value ) ) {
    			foreach ( $value as $key => $label ) {
            if ( is_string( $label ) ) {
        				$value[ $key ] = $transformer->transform( $label, $config );
            }
    			}
    		} else {
    			$value = $transformer->transform( $value, $config );
    		}
    
    		return $value;
    	}

Все известные проблемы →