
修改\application\common\fun\shop.php下get_price方法;
商品多属性可以设置不同的价格,但多属性中的价格对vip无效,下面稍作修改,先计算vip价格与促销价格的比例,比如0.9,若在商品属性一中设置的价格为200的话,vip会员最终下单价格为200*0.9=180元;
/**
* 取得商品的实际价格,商品第一个属性1可以自定商品价格
* 务必注意: 第二项,取得商品的实际价格,因为属性1可以定义价格, 如果从购物车取出的数据,数组下标要减1,因为购物车入库时加了1
* @param array $info 商品信息
* @param number $key 用户选中属性1的具体某项 如果从购物车取出的数据,数组下标要减1,因为购物车入库时加了1
*/
public static function get_showprice($info = [], $key = 0)
{
$value = self::type_get_title_price('type1', $info, $key, 'price');
if ($value > 0) {
if (isset($info['vip_price']) && $info['vip_price'] > 0) { //存在VIP价格
$discount = round($info['vip_price'] / $info['price'], 2);//计算vip折扣
if ($value > 0) {
$info['vip_price'] = round($value * $discount, 2); //享受VIP价
}
return $info['vip_price']; //享受VIP价
} else {
return $value;
}
}
return $info['price'];
}
public static function get_price($info = [], $key = 0)
{
// $value = self::type_get_title_price('type1',$info,$key,'price');
// if($value>0){
// return $value;
// }else{
// if (isset($info['vip_price']) && $info['vip_price']>0) { //存在VIP价格
// $webdb = config('webdb');
// $gid = login_user('groupid');
// if ($webdb['group_vip_price'] && in_array($gid, $webdb['group_vip_price'])) {
// return $info['vip_price']; //享受VIP价
// }
// }
// return $info['price'];
// }
$value = self::type_get_title_price('type1',$info,$key,'price');
if($value>0) {
if (isset($info['vip_price']) && $info['vip_price'] > 0) { //存在VIP价格
$discount = round($info['vip_price'] / $info['price'], 2);//计算vip折扣
$webdb = config('webdb');
$gid = login_user('groupid');
if ($webdb['group_vip_price'] && in_array($gid, $webdb['group_vip_price'])) {
if ($value > 0) {
$info['vip_price'] = round($value * $discount, 2); //享受VIP价
}
return $info['vip_price']; //享受VIP价
}else {
return $value;
}
}
}
return $info['price'];
}使用jq获取data-vipprice的值即可;
模板联动方法:
{notempty name="array1"}
<ul class="shoptype1">
<ol>{$field_array.type1.title}</ol>
<li>
{volist name="array1" id="rs"}
{:fun('shop@get_price',$info,$key)}
<div data-price="{$rs.price}" data-num="{$rs.num===null?-1:$rs.num}" data-vipprice="{:fun('shop@get_showprice',$info,$key)}">{$rs.title}</div>
{/volist}
</li>
</ul>
{/notempty}下载附件覆盖\application\common\fun\shop.php
意思是VIP价格也可以随多属性价格变动了