WPML
Статус
Решено
Заявлено для
WPForms Multilingual 0.4.1
Решено в
WPForms Multilingual 0.5.0
Теги темы
Compatibility

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

При использовании WPForms с WPML и дополнением WPForms Multilingual формы, содержащие повторяющиеся поля, отображают в письме с уведомлением некорректные метки полей (например, «Field ID #6_2») вместо правильных названий полей. Кроме того, если внутри такого повторяющегося поля находится поле с выпадающим списком, это вызывает ошибку, из-за которой уведомления не отправляются.

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

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


  • Откройте файл …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Notifications.php.

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

  • Замените:
    foreach ( $fields as $key => &$field ) {
        $field['name'] = $formPostFields[ $key ]['label'];
        $entryFields   = Obj::propOr( [], 'fields', $entry );
        if ( array_key_exists( $key, $entryFields ) ) {
            $field['value'] = $this->getFieldValue( $field, $entry['fields'][ $key ], $formPostFields[ $key ], $translatedFields[ $key ] );
        }
    }
            


  • На:
    foreach ( $fields as $key => &$field ) {
        $key = strpos( $key, '_' ) !== false ? substr( $key, 0, strpos( $key, '_' ) ) : $key;
        $field['name'] = $formPostFields[ $key ]['label'];
        $entryFields   = Obj::propOr( [], 'fields', $entry );
        if ( array_key_exists( $key, $entryFields ) ) {
            $field['value'] = $this->getFieldValue( $field, $entry['fields'][ $key ], $formPostFields[ $key ], $translatedFields[ $key ] );
        }
    }
            

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