您现在的位置是:首页 > cms教程 > shopxo教程shopxo教程
shopxo怎么使用后端钩子
阿灿2025-07-25shopxo教程已有人查阅
导读我们再来使用一个后端的钩子改变商品的价格和名称,我们这里使用商品处理钩子 plugins_service_goods_handle_end这个钩子名称怎么得到的?
我们再来使用一个后端的钩子改变商品的价格和名称,我们这里使用商品处理钩子 plugins_service_goods_handle_end
这个钩子名称怎么得到的? 继续往下看 -> 当前教程最后面有说明!
先在config.json文件中定义钩子的使用
我们可以看见 名称和售价已经变成我们刚才在插件里面设置的名称和售价了
1. 我们可以在源码里面全局搜索 MyEventTrigger 方法,前后端所有预埋的钩子都会通过这个方法实现。
2. 钩子是ShopXO官方预埋的,您也可以自己预埋实现小量修改源码的方式,然后插件里面某些环节做一些实现自己业务的需求。
3. 如有好的场景,系统没有的钩子,也可以联系我们客服提建议,让我们在新版本上增加钩子的预埋。
PS:config.json 文件增加或移除钩子后,需要在后台左侧 应用 -> 应用管理里面 重启插件
这个钩子名称怎么得到的? 继续往下看 -> 当前教程最后面有说明!
先在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 文件增加或移除钩子后,需要在后台左侧 应用 -> 应用管理里面 重启插件
本文标签:
很赞哦! ()
相关教程
图文教程
Nginx+LVS+Tomcat+MGR+Nexus+NFS配置shopxo
Nginx+Tomcat+Mysql综合实验1、环境准备2、数据库配置MGR3、配置PMM服务端4、配置PMM-Client5、PMM监控MRG6、配置proxysql7、部署shopxo
shopxo插件开发URL生成方法和参数介绍
生成前端首页 PluginsHomeUrl('test_xxx', 'index', 'index')生成后端首页 PluginsAdminUrl('test_xxx', 'index', 'index
shopxo怎么创建插件
开启开发者模式后,插件会多出额外的功能、创建、编辑、下载 等操作项,商城管理后台左侧 应用 -> 应用管理页面 左上角 点击新增
shopxo后台文件上传漏洞分析
1、进入/admin.php后台地址2、使用默认默认账号密码登录管理员账号(admin、shopxo)3、进入应用中心->应用商店->搜索主题,下载免费主题压缩包4、在下载过来的压缩包中的_static_路径中加入一句话木马
相关源码
-
(自适应)大型农业机械设备水稻玉米收割机网站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站同步生成功能,内置火车头采集规则模块,可快速采集目标站内容资源。整体设计风格神秘大气,符合主题定位。查看源码
| 分享笔记 (共有 篇笔记) |
