WPML
Status
Gelöst
Gemeldet für
WPForms Multilingual 0.4.1
Gelöst in
WPForms Multilingual 0.5.0
Themen-Tags
Compatibility

Übersicht über das Problem

Bei der Verwendung von WPForms mit WPML und dem WPForms Multilingual Add-on zeigen Formulare, die Repeater-Felder enthalten, in der Benachrichtigungs-E-Mail falsche Feld-Labels (z. B. „Field ID #6_2“) anstelle der korrekten Feldnamen an. Wenn sich zudem ein Dropdown-Feld innerhalb dieses Repeaters befindet, wird ein Fehler ausgelöst, der verhindert, dass die Benachrichtigungen gesendet werden.

Problemumgehung

Bitte stellen Sie sicher, dass Sie ein vollständiges Website-Backup Ihrer Website haben, bevor Sie fortfahren.


  • Öffnen Sie die Datei …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Notifications.php.

  • Suchen Sie nach Zeile .

  • Ersetzen Sie:
    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 ] );
        }
    }
            


  • Durch:
    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 ] );
        }
    }
            

Alle bekannten Probleme →