WPML
Статус
Открыто
Связанный плагин/тема
Advanced Custom Fields
Теги темы
Compatibility

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

При использовании ACF – Advanced Custom Fields с плагином ACFML, если для поля Clone установлено значение Копировать один раз, значения поля невозможно получить на языке оригинала на фронтенде. Проблема возникает, когда для группы полей, содержащей поле Clone, выбрана настройка Разные поля для разных языков, либо когда для поля вручную задано значение Копировать один раз в режиме «Эксперт».

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

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


  • Откройте файл …wp-content/plugins/acfml/classes/class-wpml-acf-custom-fields-sync.php.

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

  • Замените:
    public function clean_empty_values_for_copy_once_field( $value, $post_id, $field ) {
    	if ( '' === $value
    		&& ! $this->value_has_been_emptied( $field )
    		&& isset( $field['wpml_cf_preferences'] )
    		&& WPML_COPY_ONCE_CUSTOM_FIELD === $field['wpml_cf_preferences']
    		&& ! $this->isFieldType( $field, 'group' )
    	) {
    		$value = null;
    	}
    	return $value;
    }

  • На:
    // WPML Workaround for compsupp-7767
    public function clean_empty_values_for_copy_once_field( $value, $post_id, $field ) {
    	if ( '' === $value
    		&& ! $this->value_has_been_emptied( $field )
    		&& isset( $field['wpml_cf_preferences'] )
    		&& WPML_COPY_ONCE_CUSTOM_FIELD === $field['wpml_cf_preferences']
    		&& ! $this->isFieldType( $field, 'group' )
    		&& ! $this->isFieldType( $field, 'clone' )
    	) {
    		$value = null;
    	}
    	return $value;
    }

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