ecshop紅包指定某些商品不能使用 修改步驟

第一步:在goods表格增加一個字段 is_bonus 類型 tinyint 默認爲1 (1是可以使用紅包)

第二步:修改後臺模板頁 goods_info.htm

<tr id=”alone_sale_1″><td id=”alone_sale_2″>{$lang.lab_is_on_sale}</td><td id=”alone_sale_3″><input type=”checkbox” name=”is_on_sale” value=”1″ {if $goods.is_on_sale}checked=”checked”{/if} /> {$lang.on_sale_desc}</td></tr><tr id=”alone_sale_1″><td id=”alone_sale_2″>紅包使用</td><td id=”alone_sale_3″><input type=”checkbox” name=”is_bonus” value=”1″ {if $goods.is_bonus}checked=”checked”{/if} /> 打勾表示允許用使用紅包,否則不允許使用。</td></tr><tr><td>{$lang.lab_is_alone_sale}</td><td><input type=”checkbox” name=”is_alone_sale” value=”1″ {if $goods.is_alone_sale}checked=”checked”{/if} /> {$lang.alone_sale}</td></tr>

<tr id=”alone_sale_1″>            <td id=”alone_sale_2″>{$lang.lab_is_on_sale}</td>            <td id=”alone_sale_3″><input type=”checkbox” name=”is_on_sale” value=”1″ {if $goods.is_on_sale}checked=”checked”{/if} /> {$lang.on_sale_desc}</td>          </tr>

<tr id=”alone_sale_1″>            <td id=”alone_sale_2″>紅包使用</td>            <td id=”alone_sale_3″><input type=”checkbox” name=”is_bonus” value=”1″ {if $goods.is_bonus}checked=”checked”{/if} /> 打勾表示允許用使用紅包,否則不允許使用。</td>          </tr>

<tr>            <td>{$lang.lab_is_alone_sale}</td>            <td><input type=”checkbox” name=”is_alone_sale” value=”1″ {if $goods.is_alone_sale}checked=”checked”{/if} /> {$lang.alone_sale}</td>          </tr>

這個大概在230行左右

*注:我沒有修改語言包,如果你需要可以先去修改語言包,然後這裏調言(呵呵)

第三步:修改後臺goods.php文件

在添加新商品 編輯商品 下面修改

158行和230行左右的 $goods數組加下下面紅色的部分(我這裏默認是可以使用紅包的)

$goods = array(

‘goods_id’      => 0,

‘goods_desc’    => ”,

‘cat_id’        => $last_choose[0],

‘brand_id’      => $last_choose[1],

‘is_on_sale’    => ’1′,

‘is_bonus’      => ’1′,

‘is_alone_sale’ => ’1′,

‘is_shipping’ => ’0′,

‘other_cat’     => array(), // 擴展分類

‘goods_type’    => 0,       // 商品類型

‘shop_price’    => 0,

‘promote_price’ => 0,

‘market_price’  => 0,

‘integral’      => 0,

‘goods_number’  => $_CFG['default_storage'],

‘warn_number’   => 1,

‘promote_start_date’ => local_date(‘Y-m-d’),

‘promote_end_date’   => local_date(‘Y-m-d’, local_strtotime(‘+1 month’)),

‘goods_weight’  => 0,

‘give_integral’ => -1,

‘rank_integral’ => -1

);

插入和修改部份修改的代碼:

805行

$is_on_sale = isset($_POST['is_on_sale']) ? 1 : 0;

$is_bonus = isset($_POST['is_bonus']) ? 1 : 0;

$is_alone_sale = isset($_POST['is_alone_sale']) ? 1 : 0;

/* 入庫 */

if ($is_insert)

{

if ($code == ”)

{

$sql = “INSERT INTO ” . $ecs->table(‘goods’) . ” (goods_name, goods_name_style, goods_sn, ” .

“cat_id, brand_id, shop_price, market_price, is_promote, promote_price, ” .

“promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, ” .

“seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, ” .

“is_on_sale, is_bonus,is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, rank_integral, suppliers_id)” .

“VALUES (‘$_POST[goods_name]‘, ‘$goods_name_style’, ‘$goods_sn’, ‘$catgory_id’, ” .

“‘$brand_id’, ‘$shop_price’, ‘$market_price’, ‘$is_promote’,'$promote_price’, “.

“‘$promote_start_date’, ‘$promote_end_date’, ‘$goods_img’, ‘$goods_thumb’, ‘$original_img’, “.

“‘$_POST[keywords]‘, ‘$_POST[goods_brief]‘, ‘$_POST[seller_note]‘, ‘$goods_weight’, ‘$goods_number’,”.

” ‘$warn_number’, ‘$_POST[integral]‘, ‘$give_integral’, ‘$is_best’, ‘$is_new’, ‘$is_hot’, ‘$is_on_sale’,‘$is_bonus’,’$is_alone_sale’, $is_shipping, “.

” ‘$_POST[goods_desc]‘, ‘” . gmtime() . “‘, ‘”. gmtime() .”‘, ‘$goods_type’, ‘$rank_integral’, ‘$suppliers_id’)”;

}

else

{

$sql = “INSERT INTO ” . $ecs->table(‘goods’) . ” (goods_name, goods_name_style, goods_sn, ” .

“cat_id, brand_id, shop_price, market_price, is_promote, promote_price, ” .

“promote_start_date, promote_end_date, goods_img, goods_thumb, original_img, keywords, goods_brief, ” .

“seller_note, goods_weight, goods_number, warn_number, integral, give_integral, is_best, is_new, is_hot, is_real, ” .

“is_on_sale,is_bonus,is_alone_sale, is_shipping, goods_desc, add_time, last_update, goods_type, extension_code, rank_integral)” .

“VALUES (‘$_POST[goods_name]‘, ‘$goods_name_style’, ‘$goods_sn’, ‘$catgory_id’, ” .

“‘$brand_id’, ‘$shop_price’, ‘$market_price’, ‘$is_promote’,'$promote_price’, “.

“‘$promote_start_date’, ‘$promote_end_date’, ‘$goods_img’, ‘$goods_thumb’, ‘$original_img’, “.

“‘$_POST[keywords]‘, ‘$_POST[goods_brief]‘, ‘$_POST[seller_note]‘, ‘$goods_weight’, ‘$goods_number’,”.

” ‘$warn_number’, ‘$_POST[integral]‘, ‘$give_integral’, ‘$is_best’, ‘$is_new’, ‘$is_hot’, 0, ‘$is_on_sale’,‘$is_bonus’,$is_alone_sale’, $is_shipping, “.

” ‘$_POST[goods_desc]‘, ‘” . gmtime() . “‘, ‘”. gmtime() .”‘, ‘$goods_type’, ‘$code’, ‘$rank_integral’)”;

}

}

901行:

$sql .= “keywords = ‘$_POST[keywords]‘, ” .

“goods_brief = ‘$_POST[goods_brief]‘, ” .

“seller_note = ‘$_POST[seller_note]‘, ” .

“goods_weight = ‘$goods_weight’,” .

“goods_number = ‘$goods_number’, ” .

“warn_number = ‘$warn_number’, ” .

“integral = ‘$_POST[integral]‘, ” .

“give_integral = ‘$give_integral’, ” .

“rank_integral = ‘$rank_integral’, ” .

“is_best = ‘$is_best’, ” .

“is_new = ‘$is_new’, ” .

“is_hot = ‘$is_hot’, ” .

“is_bonus = ‘$is_bonus’, ” .

“is_on_sale = ‘$is_on_sale’, ” .

“is_alone_sale = ‘$is_alone_sale’, ” .

“is_shipping = ‘$is_shipping’, ” .

“goods_desc = ‘$_POST[goods_desc]‘, ” .

“last_update = ‘”. gmtime() .”‘, “.

“goods_type = ‘$goods_type’ ” .

“WHERE goods_id = ‘$_REQUEST[goods_id]‘ LIMIT 1″;

第四步:修改後臺模板頁goods_list.htm

25行:

<th><a href=”javascript:listTable.sort(‘is_hot’); “>{$lang.is_hot}</a>{$sort_is_hot}</th>

<th><a href=”javascript:listTable.sort(‘is_bonus’); “>紅包</a>{$sort_is_bonus}</th>

<th><a href=”javascript:listTable.sort(‘sort_order’); “>{$lang.sort_order}</a>{$sort_sort_order}</th>

47行:

<td align=”center”><img src=”images/{if $goods.is_hot}yes{else}no{/if}.gif” οnclick=”listTable.toggle(this, ‘toggle_hot’, {$goods.goods_id})” /></td>

<td align=”center”><img src=”images/{if $goods.is_bonus}yes{else}no{/if}.gif” οnclick=”listTable.toggle(this, ‘toggle_bonus’, {$goods.goods_id})” /></td>

<td align=”center”><span οnclick=”listTable.edit(this, ‘edit_sort_order’, {$goods.goods_id})”>{$goods.sort_order}</span></td>

98行:

<option value=”not_hot”>{$lang.not_hot}</option>

<option value=”bonus”>使用紅包</option>

<option value=”not_bonus”>取消紅包使用</option>

<option value=”move_to”>{$lang.move_to}</option>

第五步:修改後臺goods.php

在1500行左右加上

/*—————————————————— */

//– 修改紅包使用狀態

/*—————————————————— */

elseif ($_REQUEST['act'] == ‘toggle_bonus’)

{

check_authz_json(‘goods_manage’);

 

$goods_id       = intval($_POST['id']);

$is_bonus         = intval($_POST['val']);

 

if ($exc->edit(“is_bonus = ‘$is_bonus’, last_update=” .gmtime(), $goods_id))

{

clear_cache_files();

make_json_result($is_bonus);

}

}

/*—————————————————— */

//– 修改商品排序

/*—————————————————— */

到此後臺功能已經修改完成

再修改前臺:

首頁在tb_cart表中加一個字段 is_bonus 類型 tinyint 默認爲1 (1是可以使用紅包)

找到includes/lib_order.php 中的 function  addto_cart

1022行:

$sql = “SELECT g.goods_name, g.goods_sn, g.is_on_sale, g.is_real,g.is_bonus, “.

“g.market_price, g.shop_price AS org_price, g.promote_price, g.promote_start_date, “.

“g.promote_end_date, g.goods_weight, g.integral, g.extension_code, “.

“g.goods_number, g.is_alone_sale, g.is_shipping,”.

“IFNULL(mp.user_price, g.shop_price * ‘$_SESSION[discount]‘) AS shop_price “.

” FROM ” .$GLOBALS['ecs']->table(‘goods’). ” AS g “.

” LEFT JOIN ” . $GLOBALS['ecs']->table(‘member_price’) . ” AS mp “.

“ON mp.goods_id = g.goods_id AND mp.user_rank = ‘$_SESSION[user_rank]‘ “.

” WHERE g.goods_id = ‘$goods_id’” .

” AND g.is_delete = 0″;

1117行:

/* 初始化要插入購物車的基本件數據 */

$parent = array(

‘user_id’       => $_SESSION['user_id'],

‘session_id’    => SESS_ID,

‘goods_id’      => $goods_id,

‘goods_sn’      => addslashes($goods['goods_sn']),

‘product_id’    => $product_info['product_id'],

‘goods_name’    => addslashes($goods['goods_name']),

‘market_price’  => $goods['market_price'],

‘goods_attr’    => addslashes($goods_attr),

‘goods_attr_id’ => $goods_attr_id,

‘is_real’       => $goods['is_real'],

‘extension_code’=> $goods['extension_code'],

‘is_gift’       => 0,

‘is_bonus’      => $goods['is_bonus'],

‘is_shipping’   => $goods['is_shipping'],

‘rec_type’      => CART_GENERAL_GOODS

);

再修改:function order_fee 大概在545行

/* 商品總價 */

foreach ($goods AS $val)

{

/* 統計實體商品的個數 */

if ($val['is_real'])

{

$total['real_goods_count']++;

}

if($val['is_bonus'])

{

$total['goods_bonus_price']  += $val['goods_price'] * $val['goods_number'];

}

$total['goods_price']  += $val['goods_price'] * $val['goods_number'];

$total['market_price'] += $val['market_price'] * $val['goods_number'];

}

第六步:修改後臺商品列表顯示頁代碼

找到後臺includes/lib_goods.php 中的 function  goods_list

$sql = “SELECT goods_id, goods_name, goods_type, goods_sn, shop_price, is_on_sale, is_best, is_new, is_hot,is_bonus, sort_order, goods_number, click_count,integral, ” .

” (promote_price > 0 AND promote_start_date <= ‘$today’ AND promote_end_date >= ‘$today’) AS is_promote “.

” FROM ” . $GLOBALS['ecs']->table(‘goods’) . ” AS g WHERE is_delete=’$is_delete’ $where” .

” ORDER BY $filter[sort_by] $filter[sort_order] “.

” LIMIT ” . $filter['start'] . “,$filter[page_size]“;


最後一步就是修改flow.php

大概在686行

/* 如果使用紅包,取得用戶可以使用的紅包及用戶選擇的紅包 */

if ((!isset($_CFG['use_bonus']) || $_CFG['use_bonus'] == ’1′)

&& ($flow_type != CART_GROUP_BUY_GOODS && $flow_type != CART_EXCHANGE_GOODS))

{

// 取得用戶可用紅包

$user_bonus = user_bonus($_SESSION['user_id'], $total['goods_bonus_price']);

此功能有個缺陷就是指定商品不能用紅包,所有的紅包都不能用了

如果有技術問題:請加QQ羣 231552899

轉載請註明: 順子網絡  QQ:57893457 

發佈了99 篇原創文章 · 獲贊 4 · 訪問量 55萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章