麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 建站經驗 > 正文

ecshop教程:讓手機端虛擬商品自動發貨分析

2024-04-25 20:34:19
字體:
來源:轉載
供稿:網友

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

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

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

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

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

{

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

}

下面還有兩端代碼是手機wap網站端沒有的

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

/* 增加是否給客服發送郵件選項 */

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']);

}

/* 如果需要,發短信 ----- 這段也是沒有的,應該也不需要*/

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);

}

下面的關鍵的代碼 ----- 是關系到我們現在的功能是不是能用

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

/* 如果訂單金額為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)

{

/* 虛擬卡發貨 */

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

{

/* 如果沒有實體商品,修改發貨狀態,送積分和紅包 */

$sql = "SELECT COUNT(*)" .

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

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

" AND is_real = 1";

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

{

/* 修改訂單狀態 */

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

/* 如果訂單用戶不為空,計算積分,并發給用戶;發紅包 */

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

{

/* 取得用戶信息 */

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

/* 計算并發放積分 */

$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']));

/* 發放紅包 by down.vevb.com/info */

send_order_bonus($order['order_id']);

}

}

}

}

}

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

<!--{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里一個合適的位置,到此這個功能大概就完成了

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜爽爽爽男女免费观看hd | 日本精品久久久一区二区三区 | 久久经典国产视频 | 国产精品久久久久av | 在线天堂中文在线资源网 | 操碰在线视频 | 国产成人高清成人av片在线看 | 国产精品视频yy9299一区 | 2级毛片 | 久久精品国产99久久久古代 | 毛片大全在线观看 | 亚洲成人在线视频网站 | 国产小视频一区 | 人人舔人人舔 | 久久999精品| 国产成年人视频网站 | 久久国产综合视频 | xxxxxx视频| 看中国一级毛片 | 欧美一级电影网 | 国产精品自拍啪啪 | 日夜操天天干 | 国产精品久久久久av | 国产日韩免费观看 | 久久国产精品久久久久久电车 | 激情宗合网 | 99麻豆久久久国产精品免费 | 国产91久久久久久 | 国产精品欧美久久久久一区二区 | 中文字幕在线观看www | 黄wwww| 在线看免费观看日本 | 免费特黄 | 日韩中字幕 | 成人午夜在线免费 | 国产精品午夜小视频观看 | 蜜桃视频最新网址 | 深夜激情视频 | 久久久午夜电影 | 最新一级毛片 | 毛片视频大全 |