您现在的位置是:首页 > cms教程 > shopxo教程shopxo教程

shopxo怎么使用后端钩子

阿灿2025-07-25shopxo教程已有人查阅

导读我们再来使用一个后端的钩子改变商品的价格和名称,我们这里使用商品处理钩子 plugins_service_goods_handle_end这个钩子名称怎么得到的?

我们再来使用一个后端的钩子改变商品的价格和名称,我们这里使用商品处理钩子 plugins_service_goods_handle_end
这个钩子名称怎么得到的? 继续往下看  ->  当前教程最后面有说明!
先在config.json文件中定义钩子的使用
{
"base":{
"plugins":"test_xxx",
"name":"测试插件",
"logo":"\/static\/upload\/images\/plugins_test_xxx\/2025\/04\/21\/1745219584289850.jpg",
"author":"Devil",
"author_url":"https:\/\/shopxo.net\/",
"version":"1.0.0",
"desc":"测试插件的开发",
"apply_terminal":[
"pc",
"h5"
],
"apply_version":[
"6.5.0"
],
"is_home":false
},
"extend":"",
"hook":{
"plugins_view_home_floor_top":[
"app\\plugins\\test_xxx\\Hook"
],
"plugins_service_goods_handle_end":[
"app\\plugins\\test_xxx\\Hook"
]
}
}
然后Hook.php文件中使用钩子
<?php
namespace app\plugins\test_xxx;
// 测试插件 - 钩子入口
class Hook
{
// 应用响应入口
public function handle($params = [])
{
// 钩子名称
if(!empty($params['hook_name']))
{
// 走钩子
$ret = '';
switch($params['hook_name'])
{
// 首页轮播下面页面钩子使用测试
case 'plugins_view_home_floor_top' :
$ret = $this->TestViewHandle($params);
break;
// 商品数据处理钩子
case 'plugins_service_goods_handle_end' :
$this->GoodsDataHandle($params);
break;
}
return $ret;
}
}
// 商品数据处理钩子,这些参数是当前钩子传过来的,变量带 &的表示引用可以更改数据
// 'hook_name'     => $hook_name,
// 'is_backend'    => true,
// 'params'        => &$params,
// 'goods'         => &$v,
// 'goods_id'      => isset($data_id) ? $data_id : 0,
public function GoodsDataHandle($params = [])
{
if($params['goods_id'] == 7)
{
$params['goods']['title'] = '商品名称自定义了,测试的插件!';
$params['goods']['price'] = '设置一个无效的价格,测试插件!';
}
}
// 单独定义一个text处理方法
public function TestTextHandle($params = [])
{
// 直接返回内容会在页面上显示出来
// 或者通过view方法渲染后的内容
return '我是 plugins_view_home_floor_top 页面钩子测试返回的内容!';
}
// 单独定义一个view处理方法,模板引擎处理数据
public function TestViewHandle($params = [])
{
// 加一个变量view层接收使用
MyViewAssign('test_txt', 'Hello Word!');
return MyView('../../../plugins/test_xxx/view/index/public/home_test', [
// 局部变量
'name'  => '我是ShopXO测试插件'
]);
}
}
?>
去商品页面看效果
我们可以看见 名称和售价已经变成我们刚才在插件里面设置的名称和售价了
1. 我们可以在源码里面全局搜索 MyEventTrigger 方法,前后端所有预埋的钩子都会通过这个方法实现。
2. 钩子是ShopXO官方预埋的,您也可以自己预埋实现小量修改源码的方式,然后插件里面某些环节做一些实现自己业务的需求。
3. 如有好的场景,系统没有的钩子,也可以联系我们客服提建议,让我们在新版本上增加钩子的预埋。
PS:config.json 文件增加或移除钩子后,需要在后台左侧 应用 -> 应用管理里面 重启插件

本文标签:

很赞哦! ()

相关源码

  • pbootcms网站网络公司个人作品展示类网站源码(自适应)为网站建设公司、网络服务企业打造的响应式门户解决方案,基于PbootCMS内核深度开发。采用前沿自适应架构,无缝适配手机端交互与PC端展示需求。查看源码
  • (自适应)双语网络电子摄像头设备pbootcms网站模板下载核心功能定位:基于PbootCMS开发的双语摄像头企业官网模板,深度适配产品规格书展示、实时监控演示、解决方案呈现等业务场景,支持中英文内容一键切换。查看源码
  • pbootcms模板(PC+WAP)APP应用软件下载类官网源码为APP应用软件官网打造的响应式解决方案,PC端与移动端(WAP)数据实时同步,一次更新全网生效,满足多终端用户无缝体验需求。查看源码
  • (自适应)蓝色建材亚克力板材装饰材料pbootcms网站模板这款基于PbootCMS开发的响应式模板为建材板材行业优化设计,适用于亚克力板材、建筑装饰材料等企业展示需求。采用HTML5技术实现手机/PC跨终端适配,管理员通过统一后台即可同步查看源码
  • (PC+WAP)房屋建造建筑工程房地产建材行pbootcms网站模板下载本模板基于PbootCMS内核开发,为房屋建造、建筑工程及房地产建材类企业设计。通过本模板可快速搭建具有行业特色的企业官网,只需替换文字与图片内容即可适配其他行业使用。查看源码
  • (PC模板)工商公司注册会计财务记账pbootcms模板源码下载基于PbootCMS的工商财税行业网站系统,手工编写前端代码确保执行效率,双端自适应设计,支持后台实时更新服务价格和政策文件。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐