您现在的位置是:首页 > 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 文件增加或移除钩子后,需要在后台左侧 应用 -> 应用管理里面 重启插件
本文标签:
很赞哦! ()
相关教程
图文教程
shopxo目录结构分析
ShopXO v2.2.0+www WEB部署目录(或者子目录)─app应用目录─admin 后台管理目录─common.php 函数文件controller控制器目录
shopxo支付宝支付申请步骤流程
进入支付应用创建网页应用点击 创建网页应用,或者点击已经创建好的应用进去设置公钥(再获取支付宝公钥)用于接口签名使用,第一次操作可能需要短信验证码
shopxo支付宝小程序上传方法
支付宝小程序工具 打开项目 导入编译后的源源代码目录下载支付宝小程序开发者工具 https://opendocs.alipay.com/mini/ide/download源码编译好的目录一般在导入的包位置 shopxo-uniapp/unpackage/dist/build/mp-alipay
shopxo支付宝小程序注册步骤
开发者登录 支付宝开放平台,点击 注册 按钮,进入注册页面。如果已经有支付宝账号,点击 立即登录 ,使用支付宝账号登录开放平台。如果没有支付宝账号,可以使用手机号注册成为开发者。
相关源码
-
响应式高端家居家具装修类pbootcms模板网站源码家居装修、空间设计企业打造的营销型网站解决方案,基于PbootCMS内核深度开发。采用前沿响应式架构,适配手机端与PC端浏览体验查看源码 -
(自适应)调节阀门气动球阀控制阀网站模板源码下载为调节阀门、气动球阀等工业设备企业打造的响应式网站模板,基于PbootCMS系统开发。突出产品参数展示与技术文档管理功能,通过专业化的布局设计有效呈现工业设备特性,适配各类终端访问需求。查看源码 -
pbootcms响应式蓝色旅游旅行社pbootcms网站源码下载为旅游公司、旅行社定制的响应式网站模板,聚焦旅游线路展示、景点推荐及预约服务场景。采用PbootCMS内核开发,自适应技术确保PC与手机端数据实时同步查看源码 -
(自适应)橙色家政服务清洁保洁服务pbootcms网站模板源码下载模板核心价值:基于PbootCMS内核开发的家政服务类网站模板,通过模块化设计展现服务项目、团队风采、服务案例等核心板块,突出时效预约、服务标准化展示等家政行业特性。查看源码 -
(自适应响应式)超市仓储仓库货架展架网站pbootcms源码下载本模板为货架展架、仓储货架行业量身打造,采用PbootCMS内核开发,充分考虑了货架产品展示和企业形象展示的需求。模板设计简洁大方,突出产品特点,能够有效展示各类货架产品的规格参数和应用场景,帮助访客快速了解企业核心业务和产品优势。查看源码 -
(自适应响应式)宠物经验资讯咨询博客pbootcms网站源码下载除宠物资讯领域外,通过内容替换可快速适配宠物用品商城、宠物医疗咨询平台、宠物训练教程网站、动物保护组织官网、水族爱好者社区等垂直领域。查看源码
| 分享笔记 (共有 篇笔记) |
