vr-shopxo-source/application/plugins/usernotloginhidegoodsprice/Hook.php

151 lines
5.2 KiB
PHP
Executable File

<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2019 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\plugins\usernotloginhidegoodsprice;
use think\Controller;
use app\service\PluginsService;
use app\service\UserService;
/**
* 未登录隐藏商品价格 - 钩子入口
* @author Devil
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-01T21:51:08+0800
*/
class Hook extends Controller
{
// 应用响应入口
public function run($params = [])
{
// 是否控制器钩子
// is_backend 当前为后端业务处理
// hook_name 钩子名称
if(isset($params['is_backend']) && $params['is_backend'] === true && !empty($params['hook_name']))
{
return $this->PriceHandle($params);
// 默认返回视图
} else {
return '';
}
}
/**
* 价格处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-02-14T22:19:08+0800
* @param [array] $params [参数]
*/
private function PriceHandle($params)
{
// 后端访问不处理
if(isset($params['params']['is_admin_access']) && $params['params']['is_admin_access'] == 1)
{
return DataReturn('无需处理', 0);
}
// 用户是否已登录
$user = UserService::LoginUserInfo();
if(!empty($user))
{
// 查询用户状态是否正常
$ret = UserService::UserStatusCheck('id', $user['id']);
if($ret['code'] == 0)
{
return DataReturn('无需处理', 0);
}
}
// 获取应用数据
$ret = PluginsService::PluginsData('usernotloginhidegoodsprice');
if($ret['code'] == 0)
{
// 限制终端
if(!empty($ret['data']['limit_terminal']))
{
$limit_terminal_all = explode(',', $ret['data']['limit_terminal']);
$client_type = APPLICATION_CLIENT_TYPE;
if($client_type == 'pc' && IsMobile())
{
$client_type = 'h5';
}
if(!in_array($client_type, $limit_terminal_all))
{
return DataReturn('无需处理', 0);
}
}
// 原价
$original_price_placeholder = isset($ret['data']['original_price_placeholder']) ? $ret['data']['original_price_placeholder'] : '';
// 销售价
$price_placeholder = empty($ret['data']['price_placeholder']) ? '登录可见' : $ret['data']['price_placeholder'];
switch($params['hook_name'])
{
// 商品数据处理后
case 'plugins_service_goods_handle_end' :
// 商品原价
if(isset($params['goods']['original_price']))
{
$params['goods']['original_price'] = $original_price_placeholder;
}
if(isset($params['goods']['min_original_price']))
{
$params['goods']['min_original_price'] = $original_price_placeholder;
}
if(isset($params['goods']['max_original_price']))
{
$params['goods']['max_original_price'] = $original_price_placeholder;
}
// 销售价
if(isset($params['goods']['price']))
{
$params['goods']['price'] = $price_placeholder;
}
if(isset($params['goods']['min_price']))
{
$params['goods']['min_price'] = $price_placeholder;
}
if(isset($params['goods']['max_price']))
{
$params['goods']['max_price'] = $price_placeholder;
}
break;
// 商品规格基础数据
case 'plugins_service_goods_spec_base' :
if(isset($params['spec_base']['original_price']))
{
$params['spec_base']['original_price'] = $original_price_placeholder;
}
if(isset($params['spec_base']['price']))
{
$params['spec_base']['price'] = $price_placeholder;
}
break;
// 默认
default :
return DataReturn('无需处理', 0);
}
return DataReturn('处理成功', 0);
} else {
return $ret;
}
}
}
?>