WPML
ステータス
解決済み
報告対象
WPForms Multilingual 0.4.1
解決されたバージョン
WPForms Multilingual 0.5.0
トピックタグ
Compatibility

問題の概要

WPMLおよびWPForms Multilingualアドオンと共にWPFormsを使用する場合、リピーターフィールドを含むフォームでは、通知メールに正しいフィールド名の代わりに誤ったフィールドラベル(例:「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 ] );
        }
    }
            

すべての既知の問題 →