WPML
Статус
Решено автором

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

Когда Вы пытаетесь перевести контент, созданный с помощью Muffin Builder темы BeTheme, переведенный контент не отображается во фронтенде, или контент закодирован, как показано на скриншоте ниже:

Контент, созданный с помощью Muffin Builder, закодирован

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

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

  1. Обновите Betheme до последней версии
  2. Перейдите в Betheme > Theme Options > Global > Advanced > Muffin Builder data storage и выберите параметр Serialized | Readable format, required by some plugins
  3. Откройте файл wp-content/themes/betheme/functions/theme-functions.php и найдите следующий фрагмент кода:
    /*
     * WPML | Workaround for compsupp-5901
     */
    
    function mfn_wpml_encode_custom_field( $custom_field_val, $custom_field_name ) {
      if ( $custom_field_name === 'mfn-page-items' ) {
    	  $custom_field_val = maybe_unserialize( base64_decode($custom_field_val) );
    	}
    	return $custom_field_val;
    }
    add_filter( 'wpml_encode_custom_field', 'mfn_wpml_encode_custom_field', 10, 2 );
    
    function mfn_wpml_decode_custom_field( $custom_field_val, $custom_field_name ) {
    	if ( $custom_field_name === 'mfn-page-items' ) {
    		$custom_field_val = base64_encode( serialize($custom_field_val) );
    	}
    	return $custom_field_val;
    }
    add_filter( 'wpml_decode_custom_field', 'mfn_wpml_decode_custom_field', 10, 2 );
  4. Замените его на следующий фрагмент:
    /*
     * WPML | Workaround for compsupp-5901
     */
    function mfn_wpml_encode_custom_field( $custom_field_val, $custom_field_name ) {
        if ( $custom_field_name === 'mfn-page-items' ) {
            $custom_field_val = base64_encode( serialize($custom_field_val) );
        }
        return $custom_field_val;	
    }
    add_filter( 'wpml_encode_custom_field', 'mfn_wpml_encode_custom_field', 10, 2 );
    
    function mfn_wpml_decode_custom_field( $custom_field_val, $custom_field_name ) {
    	if ( $custom_field_name === 'mfn-page-items' && is_string($custom_field_val) ) {
    		$custom_field_val = maybe_unserialize( base64_decode($custom_field_val) );
    	}
    	return $custom_field_val;
    }
    add_filter( 'wpml_decode_custom_field', 'mfn_wpml_decode_custom_field', 10, 2 );
  5. Если Вы уже начали переводить свои страницы, измените оригинальную страницу и сохраните её.
  6. Обновите перевод, и теперь контент должен быть доступен.

Дальнейшие действия

Мы связались с разработчиками BeTheme и Muffin Builder, которые внедрят исправление в кратчайшие сроки. В данный момент от Вас не требуется никаких действий!

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