- 状态
- 已解决
- 报告针对
- 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 ] ); } }