- 状态
- 已解决
- 报告针对
- WPForms Multilingual 0.3.0
- 解决于
- 0.3.1
- 相关插件/主题
- WP Forms
- 主题标签
- Compatibility
问题概述
如果您有一个使用 WPForms 插件创建的带有复选框的表单,且运行在 PHP 8x 服务器上,当您尝试提交时它将无法正常工作。相反,您将遇到以下致命错误:
[14-Feb-2023 18:43:45 UTC] PHP Fatal error: Uncaught TypeError: array_key_exists(): Argument #1 ($key) must be a valid array offset type in …/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/fp/core/Obj.php:98Stack trace: #5 …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Strings.php(191): WPML\FP\Obj::__callStatic('propOr’, Array)#6 [internal function]: WPML\Forms\Hooks\WpForms\Strings->WPML\Forms\Hooks\WpForms\{closure}(Array, 44)#17 …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Strings.php(197): WPML\FP\Obj::__callStatic('over’, Array)#18 …/wp-includes/class-wp-hook.php(308): WPML\Forms\Hooks\WpForms\Strings->translateEntry(Array, Array)
临时解决方法
在继续操作之前,请务必进行完整备份。
- 打开 …/wp-content/plugins/wpml-wpforms/classes/Hooks/WpForms/Strings.php 文件。
- 找到第 185 行。
- 将:
if ( in_array( Obj::path( [ 'fields', $fieldId, 'type' ], $originalForm ), [ 'checkbox', 'radio', 'select' ], true ) ) {替换为:
if ( in_array( Obj::path( [ 'fields', $fieldId, 'type' ], $originalForm ), [ 'radio', 'select' ], true ) ) {