Motopress Appointment Booking Plugin关键错误技术求助
WordPress Appointment Booking插件触发E_ERROR:Call to a member function getPrice() on array
环境信息
- WordPress版本:6.4.3
- 激活主题:Lotus Spa(1.2.2)
- 问题插件:Appointment Booking(1.18.0)
- PHP版本:7.4.33
错误详情
错误类型:E_ERROR
触发位置:/home/penadpaw/public_html/wp-content/plugins/motopress-appointment/includes/entities/Service.php第168行
错误信息:Uncaught Error: Call to a member function getPrice() on array
堆栈追踪
#0 /home/penadpaw/public_html/wp-content/plugins/motopress-appointment/includes/admin-pages/manage/ManageServicesPage.php(37): MotoPress\Appointment\Entities\Service->getPrice() #1 /home/penadpaw/public_html/wp-content/plugins/motopress-appointment/includes/admin-pages/manage/ManagePostsPage.php(113): MotoPress\Appointment\AdminPages\Manage\ManageServicesPage->displayValue('price', Object(MotoPress\Appointment\Entities\Service)) #2 /home/penadpaw/public_html/wp-includes/class-wp-hook.php(324): MotoPress\Appointment\AdminPages\Manage\ManagePostsPage->manageCustomColumn('price', 879) #3 /home/penadpaw/public_html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array) #4 /home/penadpaw/public_html/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #5 /home/penadpaw/public_html/wp-admin/includes/class-wp-posts-list-ta
解决方案
1. 检查目标服务数据
错误指向ID为879的服务,先进入后台服务管理页面:
- 找到ID为879的服务,检查价格字段是否为空、格式异常;
- 尝试重新保存该服务,修复可能损坏的数据结构。
2. 临时代码修复(应急)
打开Service.php第168行,给调用getPrice()的变量增加类型判断,避免直接在数组上调用方法:
// 替换原第168行代码(需根据实际变量名调整) if (is_object($yourVariable)) { $price = $yourVariable->getPrice(); } else { $price = 0; // 或设置符合业务逻辑的默认值 }
3. 版本兼容排查
- 更新Appointment Booking插件到最新稳定版,确认是否修复了与WordPress 6.4.3的兼容问题;
- 检查Lotus Spa主题1.2.2版本是否适配当前插件版本,必要时更新主题。
4. 冲突排查
- 暂时禁用所有其他插件,仅保留Appointment Booking,验证错误是否消失;
- 切换到WordPress默认主题(如Twenty Twenty-Four),排查主题与插件的兼容性问题。
内容的提问来源于stack exchange,提问作者JUSTIN KPAKPA
相关产品推荐
相关产品推荐

