您现在的位置是:首页 > 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 文件增加或移除钩子后,需要在后台左侧 应用 -> 应用管理里面 重启插件

本文标签:

很赞哦! ()

相关源码

  • (自适应响应式)HTML5幕墙装饰工程建筑装修公司pbootcms模板下载基于PbootCMS开发的响应式模板,为幕墙工程、建筑装饰企业设计,通过数字化展示提升企业专业形象与项目展示能力。结构化数据标记增强项目案例收录,智能URL路由优化,支持每个工程案例独立设置关键词与描述查看源码
  • (自适应)pbootcms家政服务保洁保姆打扫卫生网站模板下载本模板基于PbootCMS内核开发,为家政服务企业量身定制。设计风格温馨亲切,突出家政行业的专业与贴心服务特性,多方位展示企业服务项目与优势。查看源码
  • 自适应电子科技类产品公司pbootcms网站模板基于PbootCMS内核开发,为电子科技类企业设计,适用于电子产品展示、企业官网等场景。该模板采用‌开源架构‌,用户可自由访问和修改源码,灵活适配各类行业需求,无需二次开发成本查看源码
  • (自适应)调节阀门气动球阀控制阀网站模板源码下载为调节阀门、气动球阀等工业设备企业打造的响应式网站模板,基于PbootCMS系统开发。突出产品参数展示与技术文档管理功能,通过专业化的布局设计有效呈现工业设备特性,适配各类终端访问需求。查看源码
  • (自适应)HTML5响应式双语绿色物流运输快递货运pbootcms源码本款基于PbootCMS开发的网站模板为物流运输、快递货运行业设计,采用HTML5技术构建,支持简繁字体切换。模板设计充分考虑了货运物流行业的特点,可专业展示运输服务、物流网络和业务优势等内容。查看源码
  • 响应式pbootcms模板新闻资讯博客自媒体门户网站行业通用解决方案为新闻资讯、自媒体博客打造的响应式网站模板,同时支持企业门户、行业资讯等多场景快速适配。通过简单的图文替换即可实现跨行业转型,显著降低建站成本。查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐