国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

ecshop教程:讓手機(jī)端虛擬商品自動發(fā)貨分析

2024-04-25 20:34:19
字體:
供稿:網(wǎng)友

在ecshop官方模版手機(jī)端的虛擬商品購買后不能像pc端那般直接在付款后出現(xiàn)虛擬商品的卡號,密碼,截止日期,魔客吧提供的解決方法如下:

首 先找到pc端的flow.php文件中的$_REQUEST['act'] = 'done' 這里面是用來處理訂單的最后一步,(具體怎么知道的可以看url后的參數(shù)列表),對應(yīng)手機(jī)端處理訂單的的文件為 mobile/order.php 文件,這里同樣有一個$_REQUEST['act'] = 'done',對比里面的代碼發(fā)現(xiàn)order.php相比flow.php 缺少了一段處理虛擬商品的代碼找到ecshop官方的flow.php文件中大約1677行有一個注釋

/*/* 如果使用庫存,且下訂單時減庫存,則減少庫存 */*/下面的if判斷語句還是相同

這句話上面還有一段代碼(如下),在手機(jī)端不存在,具體功能(追到函數(shù)里這段是說:設(shè)置紅包已經(jīng)使用,和我們現(xiàn)在需求的功能無關(guān))

if ($order['bonus_id'] > 0 && $temp_amout > 0)

{

use_bonus($order['bonus_id'], $new_order_id);

}

下面還有兩端代碼是手機(jī)wap網(wǎng)站端沒有的

/* 給商家發(fā)郵件 ----- 這段或許可以不要,我沒有測試 */

/* 增加是否給客服發(fā)送郵件選項(xiàng) */

if ($_CFG['send_service_email'] && $_CFG['service_email'] != '')

{

$tpl = get_mail_template('remind_of_new_order');

$smarty->assign('order', $order);

$smarty->assign('goods_list', $cart_goods);

$smarty->assign('shop_name', $_CFG['shop_name']);

$smarty->assign('send_date', date($_CFG['time_format']));

$content = $smarty->fetch('str:' . $tpl['template_content']);

send_mail($_CFG['shop_name'], $_CFG['service_email'], $tpl['template_subject'], $content, $tpl['is_html']);

}

/* 如果需要,發(fā)短信 ----- 這段也是沒有的,應(yīng)該也不需要*/

if ($_CFG['sms_order_placed'] == '1' && $_CFG['sms_shop_mobile'] != '')

{

include_once('includes/cls_sms.php');

$sms = new sms();

$msg = $order['pay_status'] == PS_UNPAYED ?

$_LANG['order_placed_sms'] : $_LANG['order_placed_sms'] . '[' . $_LANG['sms_paid'] . ']';

$sms->send($_CFG['sms_shop_mobile'], sprintf($msg, $order['consignee'], $order['tel']),'', 13,1);

}

下面的關(guān)鍵的代碼 ----- 是關(guān)系到我們現(xiàn)在的功能是不是能用

virtual_goods_ship($virtual_goods,$msg, $order['order_sn'], true)這個函數(shù)里面會有一個smarty的assign方法就是這里將虛擬商品的卡號密碼等信息發(fā)送到頁面中,并處理發(fā)貨狀態(tài)等,有興趣的童鞋可以進(jìn) 去看看,

/* 如果訂單金額為0 處理虛擬卡 */

if ($order['order_amount'] <= 0)

{

$sql = "SELECT goods_id, goods_name, goods_number AS num FROM ".

$GLOBALS['ecs']->table('cart') .

" WHERE is_real = 0 AND extension_code = 'virtual_card'".

" AND session_id = '".SESS_ID."' AND rec_type = '$flow_type'";

$res = $GLOBALS['db']->getAll($sql);

$virtual_goods = array();

foreach ($res AS $row)

{

$virtual_goods['virtual_card'][] = array('goods_id' => $row['goods_id'], 'goods_name' => $row['goods_name'], 'num' => $row['num']);

}

if ($virtual_goods AND $flow_type != CART_GROUP_BUY_GOODS)

{

/* 虛擬卡發(fā)貨 */

if (virtual_goods_ship($virtual_goods,$msg, $order['order_sn'], true))

{

/* 如果沒有實(shí)體商品,修改發(fā)貨狀態(tài),送積分和紅包 */

$sql = "SELECT COUNT(*)" .

" FROM " . $ecs->table('order_goods') .

" WHERE order_id = '$order[order_id]' " .

" AND is_real = 1";

if ($db->getOne($sql) <= 0)

{

/* 修改訂單狀態(tài) */

update_order($order['order_id'], array('shipping_status' => SS_SHIPPED, 'shipping_time' => gmtime()));

/* 如果訂單用戶不為空,計(jì)算積分,并發(fā)給用戶;發(fā)紅包 */

if ($order['user_id'] > 0)

{

/* 取得用戶信息 */

$user = user_info($order['user_id']);

/* 計(jì)算并發(fā)放積分 */

$integral = integral_to_give($order);

log_account_change($order['user_id'], 0, 0, intval($integral['rank_points']), intval($integral['custom_points']), sprintf($_LANG['order_gift_integral'], $order['order_sn']));

/* 發(fā)放紅包 by down.vevb.com/info */

send_order_bonus($order['order_id']);

}

}

}

}

}

這里的代碼添加上以后變量已經(jīng)發(fā)送到頁面中了,在手機(jī)模版收是order_done.dwt文件來顯示最后一步的,這里和pc端的flow.dwt里全是判斷的思路不太一樣,找到flow.dwt文件中顯示虛擬商品信息的那段代碼如下(其實(shí)可以自己找找)

<!--{if $virtual_card}-->

<div style="text-align:center;overflow:hidden;border:1px solid #E2C822;background:#FFF9D7;margin:10px;padding:10px 50px 30px;">

<!--{foreach from=$virtual_card item=vgoods}-->

<h3 style="color:#2359B1; font-size:12px;">{$vgoods.goods_name}</h3>

<!--{foreach from=$vgoods.info item=card}-->

<ul style="list-style:none;padding:0;margin:0;clear:both">

<!--{if $card.card_sn}-->

<li style="margin-right:50px;float:left;"> <strong>卡號:</strong><span style="color:red;">{$card.card_sn}</span> </li>

<!--{/if}-->

<!--{if $card.card_password}-->

<li style="margin-right:50px;float:left;"> <strong>密碼:</strong><span style="color:red;">{$card.card_password}</span> </li>

<!--{/if}-->

<!--{if $card.end_date}-->

<li style="float:left;"> <strong>截止日期:</strong>{$card.end_date} </li>

<!--{/if}-->

</ul>

<!--{/foreach}-->

<!--{/foreach}-->

</div>

<!--{/if}-->

放到order_done.dwt里一個合適的位置,到此這個功能大概就完成了

但是目前為止沒有的是支付寶付款是不是能自動的返回這些卡號密碼,都是用余額支付的

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 图们市| 邯郸市| 大理市| 澄迈县| 栾川县| 清远市| 平和县| 南投县| 兴宁市| 新龙县| 大安市| 顺昌县| 威远县| 井研县| 浙江省| 苍山县| 滕州市| 建始县| 阳信县| 广宗县| 巩留县| 临江市| 永宁县| 资阳市| 法库县| 乌鲁木齐市| 安多县| 阿巴嘎旗| 石楼县| 于田县| 罗甸县| 黑龙江省| 遂川县| 临朐县| 衡阳市| 隆化县| 基隆市| 桂东县| 门源| 卓资县| 来宾市|