您现在的位置是:首页 > 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+WAP)盆栽绿植观赏植物花卉租赁免费pbootcms网站模板为花卉盆栽租赁、园林绿化企业打造的PbootCMS网站模板,采用较新内核开发,PC与移动端数据实时同步。通过清新自然的视觉设计,精准展现植物养护、花卉展示等业务场景,帮助用户快速建立专业级行业网站。查看源码
  • (自适应响应式)绿色环保材料设备科技类营销型网站pbootcms源码下载本模板基于PbootCMS开发,主要面向环保设备、环保材料及相关科技企业。采用HTML5+CSS3技术构建,具备响应式特性,确保在各类设备上均有良好展示效果。查看源码
  • (PC+WAP)绿色产品环保设备垃圾桶厂家公司网站pbootcms模板为垃圾桶生产商、环保设备企业打造的高端响应式门户模板,基于PbootCMS开源内核深度开发。采用HTML5自适应架构,无缝实现PC与手机端数据实时同步与交互优化查看源码
  • (自适应)驾校培训学车活动免费pbootcms源码下载本模板基于PbootCMS内核开发,为驾校培训行业打造,具备完善的招生展示、课程预约、教练团队展示等功能模块。响应式设计适配各类移动终端,数据实时同步管理,助您高效开展线上业务。查看源码
  • 帝国cms7.5奇闻异事末解之谜模板免费下载带数据本模板基于帝国CMS7.5系统开发,为神秘现象、未解之谜类主题网站设计。包含完整的PC端、移动端及百度MIP站同步生成功能,内置火车头采集规则模块,可快速采集目标站内容资源。整体设计风格神秘大气,符合主题定位。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐