推56论坛

 找回密码
 立即注册(限中文)

QQ登录

只需一步,快速开始

    查看: 150|回复: 0

    [ECshop教程] ecshop订单管理退货时如何做到不退运费

    [复制链接]
    发表于 2018-4-28 19:02:29 | 显示全部楼层 |阅读模式
    解决ecshop订单管理退货时,如何做到不退邮费,ecshop模板屋提供相关ecshop教程如下:
    打开admin/order.php在大约4468行处找到

    • /**
    • * 退回余额、积分、红包(取消、无效、退货时),把订单使用余额、积分、红包设为0
    • * @param   array   $order  订单信息
    • */
    • function return_user_surplus_integral_bonus($order)
    • {
    •     /* 处理余额、积分、红包 */
    •     if ($order['user_id'] > 0 && $order['surplus'] > 0)
    •     {
    •         $surplus = $order['money_paid'] < 0 ? $order['surplus'] + $order['money_paid']: $order['surplus'];
    •         log_account_change($order['user_id'], $surplus, 0, 0, 0, sprintf($GLOBALS['_LANG']['return_order_surplus'], $order['order_sn']));
    •         $GLOBALS['db']->query("UPDATE ". $GLOBALS['ecs']->table('order_info') . " SET `order_amount` = '0' WHERE `order_id` =". $order['order_id']);
    •     }
    •     if ($order['user_id'] > 0 && $order['integral'] > 0)
    •     {
    •         log_account_change($order['user_id'], 0, 0, 0, $order['integral'], sprintf($GLOBALS['_LANG']['return_order_integral'], $order['order_sn']));
    •     }
    •     if ($order['bonus_id'] > 0)
    •     {
    •         unuse_bonus($order['bonus_id']);
    •     }
    •     /* 修改订单 */
    •     $arr = array(
    •         'bonus_id'  => 0,
    •         'bonus'     => 0,
    •         'integral'  => 0,
    •         'integral_money'    => 0,
    •         'surplus'   => 0
    •     );
    •     update_order($order['order_id'], $arr);
    • }
    改成
    • /**
    • * 退回余额、积分、红包(取消、无效、退货时),把订单使用余额、积分、红包设为0
    • * @param   array   $order  订单信息
    • */
    • function return_user_surplus_integral_bonus($order)
    • {
    •     /* 处理余额、积分、红包 */
    •     if ($order['user_id'] > 0 && $order['surplus'] > 0)
    •     {
    •         $surplus = $order['money_paid'] < 0? $order['surplus'] + $order['money_paid']-
    • $order['shipping_fee'] : $order['surplus'];
    •         log_account_change($order['user_id'], $surplus, 0, 0, 0,
    • sprintf($GLOBALS['_LANG']['return_order_surplus'], $order['order_sn']));
    •         $GLOBALS['db']->query("UPDATE ". $GLOBALS['ecs']->table('order_info') .
    • " SET `order_amount` = '0' WHERE `order_id` =". $order['order_id']);
    •     }
    •     if ($order['user_id'] > 0 && $order['integral'] > 0)
    •     {
    •         log_account_change($order['user_id'], 0, 0, 0, $order['integral'],
    • sprintf($GLOBALS['_LANG']['return_order_integral'], $order['order_sn']));
    •     }
    •     if ($order['bonus_id'] > 0)
    •     {
    •         unuse_bonus($order['bonus_id']);
    •     }
    •     /* 修改订单 */
    •     $arr = array(
    •         'bonus_id'  => 0,
    •         'bonus'     => 0,
    •         'integral'  => 0,
    •         'integral_money'    => 0,
    •         'surplus'   => 0
    •     );
    •     update_order($order['order_id'], $arr);
    • }
    就可以了
    官方默认的是退货时把已付款退到会员的帐中户,而退回的费用中没有减去
    运费
    支付手费费
    包装费
    如果ecshop退货时不退运费应是:
    $surplus = $order['money_paid'] < 0 ? $order['surplus'] + $order['money_paid'] - $order['shipping_fee']: $order['surplus'];
    如果退货时不退动费和支付的手费费应是:
    $surplus = $order['money_paid'] < 0 ? $order['surplus'] + $order['money_paid'] - $order['shipping_fee']- $order['pay_fee']: $order['surplus'];
    如果ecshop退货时不退动费和支付的手费费及包装费应是:
    $surplus = $order['money_paid'] < 0 ? $order['surplus'] + $order['money_paid'] - $order['shipping_fee']- $order['pay_fee']]- $order['pack_fee']: $order['surplus'];
    以此类推可以做到ecshop退货时不退其它费

    学建站、学推广、学赚钱,上56站长论坛就够了!个性签名请到个人资料里面修改……

    本版积分规则

    关闭

    推56站长论坛推荐上一条 /3 下一条

    站长QQ
    在线咨询
    咨询热线
    QQ:405327411
    站长

    QQ|广告合作|关于我们|联系我们|免责声明|网站导航|站长论坛 ( 豫ICP备11018337号-5

    王宝臣旗下网站 推56论坛(www.tui56.com|ask.tui56.com|blog.tui56.com|daohang.tui56.com)

    Powered by Discuz! X3.4 Licensed

    ©2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表