ecshop给虚拟商品添加出售和未出售的导出xlc,ecshopxlc
ecshop给虚拟商品添加出售和未出售的导出xlc,ecshopxlc
在admin/virtral_card.php文件中找到$_REQUEST['act'] == 'card'
这里是用来显示某一个虚拟商品的出售记录的列表将会发送到replenish_list.htm
在replenish_list.htm 文件中最定部分有个引入的文件叫pageheader.htm的文件这里是用于输出默认模版里的补“货按”钮
在virtral_card.php文件大约180行有
<span>$smarty</span>->assign('action_link', <span>array</span>('text' => <span>$_LANG</span>['replenish'], 'href' => 'virtual_card.php?act=replenish&goods_id='.<span>$_REQUEST</span>['goods_id']));
按照ecshop的习惯,需要修改语言包文件(语言包文件名和对应的这个php文件名相同,只是在语言包目录下)
$_LANG['Notforsale'] = '未出售导出xls';
$_LANG['Hasforsale'] = '已出售导出xls';
在大约180行那句话下面添加如下(主要是修改一下act后的参数,用于到文件中来处理数据)
比较重要的是forsale=has和forsale=not这两个参数,将用来区别是要导出已经出售还是要导出未出售的
<span>$smarty</span>->assign('Notforsale', <span>array</span>('text' => <span>$_LANG</span>['Notforsale'], 'href' => 'virtual_card.php?act=forsale&forsale=not&goods_id='.<span>$_REQUEST</span>['goods_id'<span>])); </span><span>$smarty</span>->assign('Hasforsale', <span>array</span>('text' => <span>$_LANG</span>['Hasforsale'], 'href' => 'virtual_card.php?act=forsale&forsale=has&goods_id='.<span>$_REQUEST</span>['goods_id']));
具体代码如下:
<span>/*</span><span>------------------------------------------------------ </span><span>*/</span> <span>//</span><span>-- 导出未出售或已出售的虚拟商品到xls</span><span> /*</span><span>------------------------------------------------------ </span><span>*/</span> <span>elseif</span> (<span>$_REQUEST</span>['act'] == 'forsale'<span>) { </span><span>$forsale</span> = <span>empty</span>(<span>$_REQUEST</span>['forsale']) ? "" : <span>trim</span>(<span>$_REQUEST</span>['forsale'<span>]); </span><span>//</span><span>首先判断$forsale是否有值被传入</span> <span>if</span>(<span>$forsale</span> != ""<span>){ </span><span>$fielname</span> = ""<span>; </span><span>$goods_id</span> = <span>empty</span>(<span>$_REQUEST</span>['goods_id']) ? 0 : <span>intval</span>(<span>$_REQUEST</span>['goods_id'<span>]); </span><span>//</span><span>has为已出售,not为未出售</span> <span>if</span>(<span>$forsale</span> == 'has'<span>){ </span><span>$fielname</span> = "已出售商品"<span>; </span><span>$getCurrentGoodsListsql</span> = "SELECT card_id, goods_id, card_sn, card_password, end_date, is_saled, order_sn, crc32 FROM " . <span>$GLOBALS</span>['ecs']->table('virtual_card') . " WHERE goods_id = " . <span>$goods_id</span> . " and is_saled = 1"<span> ; } </span><span>else</span> <span>if</span>(<span>$forsale</span> == 'not'<span>){ </span><span>$fielname</span> = "未出售商品"<span>; </span><span>$getCurrentGoodsListsql</span> = "SELECT card_id, goods_id, card_sn, card_password, end_date, is_saled, order_sn, crc32 FROM " . <span>$GLOBALS</span>['ecs']->table('virtual_card') . " WHERE goods_id = " . <span>$goods_id</span> . " and is_saled = 0"<span> ; } </span><span>$currentGoodsList</span> = <span>$GLOBALS</span>['db']->getAll(<span>$getCurrentGoodsListsql</span><span>); </span><span>$arr</span> = <span>array</span><span>(); </span><span>foreach</span> (<span>$currentGoodsList</span> <span>AS</span> <span>$key</span> => <span>$row</span><span>) { </span><span>if</span> (<span>$row</span>['crc32'] == 0 || <span>$row</span>['crc32'] == <span>crc32</span><span>(AUTH_KEY)) { </span><span>$row</span>['card_sn'] = decrypt(<span>$row</span>['card_sn'<span>]); </span><span>$row</span>['card_password'] = decrypt(<span>$row</span>['card_password'<span>]); } </span><span>elseif</span> (<span>$row</span>['crc32'] == <span>crc32</span><span>(OLD_AUTH_KEY)) { </span><span>$row</span>['card_sn'] = decrypt(<span>$row</span>['card_sn'],<span> OLD_AUTH_KEY); </span><span>$row</span>['card_password'] = decrypt(<span>$row</span>['card_password'],<span> OLD_AUTH_KEY); } </span><span>else</span><span> { </span><span>$row</span>['card_sn'] = '***'<span>; </span><span>$row</span>['card_password'] = '***'<span>; } </span><span>$row</span>['end_date'] = <span>$row</span>['end_date'] == 0 ? '' : <span>date</span>(<span>$GLOBALS</span>['_CFG']['date_format'], <span>$row</span>['end_date'<span>]); </span><span>$arr</span>[] = <span>$row</span><span>; } </span><span>header</span>("Content-Type: application/vnd.ms-execl"); <span>//</span><span>定义文件的内容类型</span> <span>header</span>("Content-Disposition: attachment; filename={<span>$fielname</span>}.xls"<span>); </span><span>header</span>("Pragma: no-cache"); <span>//</span><span>不缓存</span> <span>header</span>("Expires: 0");<span>//</span><span>将内容输出到第一个工作簿</span> <span>$data</span> = "数据库编号\t商品编号\t卡片序号\t卡片密码\t截止使用日期\t是否已经出售(1:已经出售0:未出售)\t订单号\t加密编码(客户无用,可删除)\t\n"<span>; </span><span>foreach</span>(<span>$arr</span> <span>as</span> <span>$key</span>=><span>$val</span><span>){ </span><span>foreach</span> (<span>$val</span> <span>as</span> <span>$k</span> => <span>$v</span><span>) { </span><span>$data</span> .= <span>$v</span> . "\t"<span>; } </span><span>$data</span> .= "\n"<span>; } </span><span>echo</span> <span>iconv</span>("UTF-8","GB2312//IGNORE",<span>$data</span><span>); </span><span>//</span><span>echo "<pre class="brush:php;toolbar:false">";var_dump($data);echo "

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

随着社交媒体的不断兴起,抖音作为一款备受欢迎的短视频平台,吸引了大量用户的青睐。在抖音上,用户不仅可以展示自己的生活,还能与其他用户进行互动。在这种互动中,表情包逐渐成为用户们表达情感的重要方式。一、抖音私信表情包怎么弄到微信?首先,要在抖音平台上获取私信表情包,需要登录抖音账号,然后浏览并选择喜欢的表情包,可以选择发送给好友或自己收藏。在抖音收到表情包后,可以通过私信界面长按该表情包,然后选择“添加到表情”功能。这样,就可以将这个表情包添加到抖音的表情库中。3.接下来,我们需要将抖音表情库中的

很多用户们在现代生活中越来越青睐小米智能家居互联的电子生态,那么连接米家APP后,你就可以轻松用手机来控制连接设备,但是很多用户们还不知如何将自己的家居添加米家app中,那么这篇教程攻略就将为大家带来具体连接方法步骤攻略,希望能帮助到各位有需要的小伙伴们。1、下载米家APP后,创建或者登录小米账户。2、添加方法:当全新的设备通电后,将手机靠近设备并打开小米电视,正常情况下会弹出连接提示,选择“确定”即进入设备连接流程。若无提示弹出,也可以手动添加设备,方法是:进入智能家庭APP后,点击左下方第1

xmind是一款非常实用的思维导图软件,它是利用人们的思维和灵感制作出来的导图形式,我们在制作完xmind文件通常会把它转换成pdf文件格式,以方便大家传播使用,那么xmind文件怎么导出为pdf文件呢?下面就是具体操作步骤可以供大家参考。1.首先我们来演示一下如何导出思维导图为PDF文档。选择【文件】-【导出】功能按钮。2.在新出现的界面中选择【PDF文档】并点击【下一步】按钮。3.在导出界面选择设置:纸张尺寸、方向、分辨率和文档存储位置。完成设置后点击【完成】按钮。4.如果点击【完成】按钮后

主板上SPDIFOUT连接线序最近我遇到了一个问题,就是关于电线的接线顺序。我上网查了一下,有些资料说1、2、4对应的是out、+5V、接地;而另一些资料则说1、2、4对应的是out、接地、+5V。最好的办法是查看你的主板说明书,如果找不到说明书,你可以使用万用表进行测量。首先找到接地,然后就可以确定其他的接线顺序了。主板vdg怎么接线连接主板的VDG接线时,您需要将VGA连接线的一端插入显示器的VGA接口,另一端插入电脑的显卡VGA接口。请注意,不要将其插入主板的VGA接口。完成连接后,您可以

1、首先在酷家乐中打开要处理的设计方案,点击上面的图纸清单下的施工图纸。2、然后点击选择全彩平面图。3、接着在图纸中把不要的家具隐藏,只留下需要导出的家具。4、最后点击下载即可。

如何添加PolygonMainnet网络要将MATIC(Polygon)与Metamask链接使用,您需要添加一个名为“PolygonMainnet”的专用网络。使用错误的网络地址进行转入会导致出现问题,所以在转出$MATIC之前,请务必使用“PolygonMainnet”网络。Metamask钱包默认连接到以太坊主网,但是我们可以很简单地添加“PolygonMainnet”并使用$MATIC。只需简单的复制和粘贴几个步骤,就能完成。首先,在Metamask钱包中,点击右上角的网络选项,选择“C

Tampermonkey油猴Chrome扩展是一款用户脚本管理插件,通过脚本提高了用户的效率和浏览体验,那么Tampermonkey怎么添加新脚本?怎么删除脚本呢?下面就让小编给大家解答下吧!Tampermonkey怎么添加新脚本:1、这里拿GreasyFork来举例子,打开GreasyFork网页,输入要按照的脚本,小编这里选择的一键离线下载2、选择一个脚本,进入脚本页面后可以看到安装此脚本的按钮3、点击安装此脚本,来到安装界面。这里点击安装就可以了4、我们可以在以安装的脚本中看到安装好的一键
![Outlook卡在添加帐户[修复]](https://img.php.cn/upload/article/000/887/227/171116770937641.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
当您在Outlook中添加帐户时遇到问题时,可以尝试以下解决方案来解决。通常这可能是由网络连接故障、用户配置文件损坏或其他暂时性问题引起的。通过本文提供的方法,您可以轻松地解决这些问题,确保您的Outlook能够正常运行。Outlook卡在添加帐户如果您的Outlook在添加帐户时卡住,请使用下面提到的这些修复程序:断开并重新连接互联网临时禁用防病毒软件创建新的Outlook配置文件尝试在安全模式下添加帐户禁用IPv6运行Microsoft支持和恢复助手修复办公室应用程序Outlook添加帐户需
