官方微博: 腾讯  
首页 > ECSHOP教程 > ECSHOP二次开发 > ECSHOP二次开发教程 > ecshop订单快递单批量打印二次开发教程

ecshop订单快递单批量打印二次开发教程

ECSHOP教程 / ecshop 教程网(www.ecshop119.com) 2015-08-22

ECSHOP本身是有打印快递单功能的,但是需要一个一个订单的打印,如果订单多了就烦了

通过本教程可以实现批量打印快递单

教程开始:

1.admin\templates\order_list.htm,在

1
<input name="print" type="submit" id="btnSubmit4" value="{$lang.print_order}" class="button" disabled="true" onclick="this.form.target = '_blank'" />

后,添加

1
<input name="print_shopping" type="submit" id="btnSubmit6" value="批量打印快递单" class="button" disabled="true" onclick="this.form.target = '_blank'" />

2.admin\order.php,在

1
2
    /* 去发货 */
    elseif (isset($_POST['to_delivery']))

前,添加

//批量打印快递单
elseif (isset($_POST['print_shopping'])){
    $region_array array();
    $region_id = !empty($_CFG['shop_country']) ? $_CFG['shop_country'] . ',' '';
    $region_id .= !empty($_CFG['shop_province']) ? $_CFG['shop_province'] . ',' '';
    $region_id .= !empty($_CFG['shop_city']) ? $_CFG['shop_city'] . ',' '';
    $region_id substr($region_id, 0, -1);
    $region $db->getAll("SELECT region_id, region_name FROM " $ecs->table("region") . " WHERE region_id IN ($region_id)");
     
    if (!empty($region))
    {
        foreach($region as $region_data)
        {
            $region_array[$region_data['region_id']] = $region_data['region_name'];
        }
    }
    $smarty->assign('shop_name'$_CFG['shop_name']);
    $smarty->assign('province'$region_array[$_CFG['shop_province']]);
    $smarty->assign('city'$region_array[$_CFG['shop_city']]);
    $smarty->assign('shop_address'$_CFG['shop_address']);
    $smarty->assign('service_phone',$_CFG['service_phone']);
     
    //以上是系统参数
    $order_sn_list array();
    $order_sn_list explode(','$_POST['order_id']);
    foreach ($order_sn_list as $order_sn)
    {
        /* 取得订单信息 */
        $order = order_info(0, $order_sn);
        $smarty -> assign('order',$order);
        $shipping $db->getOne("SELECT * FROM " $ecs->table("shipping") . " WHERE shipping_id=" $order['shipping_id']);
 
        if (empty($shipping['shipping_print']))
        {
            echo $smarty->fetch("str:" $shipping['shipping_print']);
        }
        else
        {
            $shipping_code $db->getOne("SELECT shipping_code FROM " $ecs->table('shipping') . " WHERE shipping_id=" $order['shipping_id']);
            if ($shipping_code){
                include_once(ROOT_PATH . 'includes/modules/shipping/' $shipping_code '.php');
            }
            if (!empty($_LANG['shipping_print']))
            {
                echo $smarty->fetch("str:$_LANG[shipping_print]");
            }
            else
            {
                echo $_LANG['no_print_shipping'];
            }
        }
    }
    exit;
}

3.这是最重要的一点,其他地方根本没说过,害得作者君我折腾了两三天。闲话不多说,切入正题,如果你使用过 系统设置→配送方式→对应模板下的‘编辑打印模板’那么你可能会发现,你的‘批量打印快递单’按钮打印出来的内容和详情里面的‘打印快递单’打印出来的内容不一样,这是因为我们新设置的打印快单使用的模版并不是新编辑过的模板,而是系统默认的老模板,解决的方法也很简单,将老模板也改成新模板的样式就好了。

具体在languages\zh_cn\shipping中对应的php文件里

$_LANG['shipping_print']         =‘’;

这一句,将‘’中的内容样式修改过来就好了。至于取页面样式,只要在对应页面Ctrl+S一下就好了,批量打印快递单就是这么简单,小伙伴们快去试试吧!


转载请注明:ECshop119模板屋-ECshop教程网(全国最专业的ECSHOP插件制作商-专业ECSHOP二次开发)

帮助目录

在线反馈

可以将问题或建议反馈给我们。

提交在线反馈

与网友交流ECSHOP开发修改。

加入QQ群交流