自动分成功能在ecshop系统自带是没有的,如果我们需要对一单添加分成功能我们是需要进入二次开发的,下面小编来为各位介绍一个例子。
大概逻辑:
后台操作一个订单发货的时候进行自动分成,后台取消发货,退货,改为未发货的时候去掉自动分成部分。
核心代码:lib_common.php
//分成积分计算
<?php function fenchenjifen($usertype = 3, $point) { $affiliate = unserialize($GLOBALS['_CFG']['affiliate']); if ($usertype == 3) { //采购 if ($affiliate['config']['level_register_up']) { $affiliate['config']['level_register_up']/= 100; } $point_cg = round($affiliate['config']['level_register_up'] * intval($point) , 0); return $point_cg; } if ($usertype == 1) { //经销商 if ($affiliate['config']['level_money_all']) { $affiliate['config']['level_money_all']/= 100; } $point_cg = round($affiliate['config']['level_money_all'] * intval($point) , 0); return $point_cg; } if ($usertype == 2) { //财务 if ($affiliate['config']['level_register_all']) { $affiliate['config']['level_register_all']/= 100; } $point_cg = round($affiliate['config']['level_register_all'] * intval($point) , 0); return $point_cg; } } /** * * @param undefined $order 订单信息 * @param undefined $buyuser 购买者信息 * @param undefined $integral 计算积分 * $type = 1 增加 $type=-1 撤销 * 分成log状态99 */ function fun_fencheng_change($order, $buyuser, $integral = array() , $type = 1) { //店铺分成计算 if (intval($order['parent_shopid']) == 0) return false; if (!is_array($buyuser)) return false; $order_id = $order['order_id']; $separate_by = 99; switch ($buyuser['usertype']) { case '0': //购买者类型 $row = $GLOBALS['db']->getRow("SELECT * from " . $GLOBALS['ecs']->table('users') . " u " . " WHERE u.shopid =" . $order['parent_shopid'] . " and u.usertype=1"); //获取pid $up_uid = $row['user_id']; if (!empty($up_uid) && $up_uid > 0) { $money = $point = 0; $point = fenchenjifen(1, $integral['custom_points']); // $info = sprintf($GLOBALS['_LANG']['separate_info'], $order['order_sn'], $money, $point); $info = "订单" . $order['order_sn'] . "分成获得积分:" . $point; log_account_change($up_uid, $money, 0, ($type) * $point, ($type) * $point, $info); //var_dump($info); if ($type == 1) { write_affiliate_log1($order_id, $up_uid, $row['user_name'], $money, $point, $separate_by); } else { rollback_affiliate_log($order_id); } $orderupdate['is_separate'] = $type == 1 ? $separate_by : 0; $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info') , $orderupdate, 'UPDATE', "order_id = '$order_id'"); } break; case '3': $row = $GLOBALS['db']->getAll("SELECT u.shopid,u.user_id,u.usertype, u.user_name FROM " . $GLOBALS['ecs']->table('users') . " u " . " WHERE u.shopid= " . $order['parent_shopid'] . " and u.usertype in (1,2)"); foreach ($row as $val) { // 经销商和财务获得分成 if ($val['usertype'] == 1) { $pointf = fenchenjifen(1, $integral['custom_points']); } if ($val['usertype'] == 2) { $pointf = fenchenjifen(2, $integral['custom_points']); } $up_uid = $val['user_id']; //$info = sprintf($GLOBALS['_LANG']['separate_info'], $order['order_sn'], $money, $pointf); $info = "订单" . $order['order_sn'] . "分成获得积分:" . $pointf; log_account_change($up_uid, $money, 0, ($type) * $pointf, ($type) * $pointf, $info); if ($type == 1) { write_affiliate_log1($order_id, $up_uid, $val['user_name'], $money, $pointf, $separate_by); } else { rollback_affiliate_log($order_id); } $orderupdate['is_separate'] = $type == 1 ? $separate_by : 0; $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info') , $orderupdate, 'UPDATE', "order_id = '$order_id'"); } break; } return true; } /** * * @param undefined $oid * @param undefined $uid * @param undefined $username * @param undefined $money * @param undefined $point * @param undefined $separate_by * 写入订单分成 log */ function write_affiliate_log1($oid, $uid, $username, $money, $point, $separate_by) { $time = gmtime(); $sql = "INSERT INTO " . $GLOBALS['ecs']->table('affiliate_log') . "( order_id, user_id, user_name, time, money, point, separate_type)" . " VALUES ( '$oid', '$uid', '$username', '$time', '$money', '$point', $separate_by)"; if ($oid) { $GLOBALS['db']->query($sql); } } //撤销订单分成 function rollback_affiliate_log($order_id, $falg = - 2) { $sql = "UPDATE " . $GLOBALS['ecs']->table('affiliate_log') . " SET separate_type = '$falg'" . " WHERE order_id = '$order_id'"; $GLOBALS['db']->query($sql); }
需要注意的点:后台发货程序在admin / order . php需要修改的地方有:发货866行,取消发货1035行改为未发货3961行退货4132行。本代码只计算分成部分。自己下单部分另外。这个代码是按照店铺ID分成,多商户的。为ecshop二次开发版。无法用于原版。调用分成:fun_fencheng_change($order, $user, $integral, 1);
取消分成:fun_fencheng_change($order, $user, $integral, -1);
永久地址:
转载随意~请带上教程地址吧^^

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung