- Статус
- Решено
- Заявлено для
- 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 ] ); } }