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

所有已知问题 →