public static function order($name, $email = '', $phone = '', $address = '', $comment = '', $adminNotifyTplID = 'admin_purchase_notify', $customerNotifyTplID = 'user_purchase_notify') { global $db; $user = \cf\User::getLoggedIn(); $productList = ''; $products = \cf\api\cart\getList(); if (!array_key_exists('contents', $products) || !count($products['contents'])) { return false; } $tpl = new MailTemplate('order'); execQuery("\n\t\t\tINSERT INTO cf_orders (created,customer_name, customer_email, customer_phone, customer_address, customer_comments, comments)\n\t\t\tVALUES(NOW(),:name, :email, :phone, :address, :comments, :contents)", array('name' => $name, 'email' => $email, 'phone' => $phone, 'address' => $address, 'comments' => $comment, 'contents' => $tpl->parseBody(array('cart' => $products)))); $orderId = $db->lastInsertId(); $msgParams = array('name' => $name, 'email' => $email, 'phone' => $phone, 'address' => $address, 'comment' => $comment, 'order' => $orderId, 'total' => $products['total'], 'products' => $products['contents']); \cf\api\cart\clear(); $mail = new \PHPMailer(); $mail->CharSet = 'UTF-8'; if ($adminNotifyTplID) { $tpl = new MailTemplate($adminNotifyTplID); $mail->Subject = $tpl->parseSubject($msgParams); $mail->MsgHTML($tpl->parseBody($msgParams)); foreach ($tpl->recipients() as $address) { $mail->addAddress($address); } $mail->Send(); } $mail->clearAddresses(); if ($customerNotifyTplID && $email) { $tpl = new MailTemplate($customerNotifyTplID); $mail->Subject = $tpl->parseSubject($msgParams); $mail->MsgHTML($tpl->parseBody($msgParams)); $mail->addAddress($email); $mail->Send(); } return $orderId; }
public static function order($name, $email = '', $phone = '', $address = '', $comment = '', $notifyGroup = 'admin', $notifyCustomer = true) { global $db; $user = \cf\User::getLoggedIn(); $productList = ''; $products = \cf\api\cart\getList(); if (count($products) < 2) { return false; } for ($i = 1; $i < count($products); ++$i) { $productList .= "{$products[$i]['id']} {$products[$i]['name']} [{$products[$i]['price']}] - {$products[$i]['amount']} <br>"; } $productList .= "<br><strong>Итого</strong>: {$products[0]['total_price']}"; execQuery("\n\t\t\tINSERT INTO cf_orders (created,customer_name, customer_email, customer_phone, customer_address, customer_comments, comments)\n\t\t\tVALUES(NOW(),:name, :email, :phone, :address, :comments, :products)", array('name' => $name, 'email' => $email, 'phone' => $phone, 'address' => $address, 'comments' => $comment, 'products' => $productList)); $orderId = $db->lastInsertId(); \cf\api\cart\clear(); $msgParams = array('name' => $name, 'email' => $email, 'phone' => $phone, 'address' => $address, 'comment' => $comment, 'order' => $orderId, 'total' => array_shift($products), 'products' => $products); if ($notifyGroup) { $emails = query2vector("SELECT email FROM cf_users INNER JOIN cf_user_roles ON cf_users.id=cf_user_roles.user_id WHERE cf_user_roles.role_id=:id", array('id' => $notifyGroup)); if (!empty($emails)) { $tpl = new MailTemplate('admin_purchase_notify'); $mail = new \PHPMailer(); $mail->CharSet = 'UTF-8'; $mail->Subject = $tpl->parseSubject($msgParams); $mail->MsgHTML($tpl->parseBody($msgParams)); foreach ($emails as $a) { $mail->AddAddress($a); } $mail->Send(); } } if ($notifyCustomer && $email) { $tpl = new MailTemplate('user_purchase_notify'); $mail = new \PHPMailer(); $mail->CharSet = 'UTF-8'; $mail->Subject = $tpl->parseSubject($msgParams); $mail->MsgHTML($tpl->parseBody($msgParams)); $mail->AddAddress($email); @$mail->Send(); } return $orderId; }
<?php require_once cf\Config::path . 'api/form.php'; require_once cf\Config::path . 'cart.php'; $orderform = cf\api\form\get('order'); $clientInfo = cf\api\form\results($orderform); if ($clientInfo) { $products = \cf\api\cart\getList(); $sum = $products['total']; $orderId = cf\Cart::order($clientInfo['name'], $clientInfo['email'], $clientInfo['phone'], $clientInfo['address'], $clientInfo['comments']); echo json_encode(array('id' => $orderId, 'text' => cf\query2Var("SELECT comments FROM cf_orders WHERE id=:id", array('id' => $orderId)), 'sum' => $sum['sum'])); exit; } $smarty->assign('orderform', $orderform);
} } } catch (Exception $e) { $pid = 'error'; } $page = cf\Page::get($pid); $pageText = cf\api\page\getText($page['id']); $crumbs = array(); foreach ($page['branch'] as $p) { $crumbs[] = array('name' => $p['menu_name'], 'link' => $p['path']); } if (cf\Page::isDescendantOf($page, 'catalog')) { $page['template'] = $productId ? 'product' : 'category'; } if (strlen($page['template']) && file_exists($_SERVER['DOCUMENT_ROOT'] . '/' . $page['template'] . '.php')) { require_once $_SERVER['DOCUMENT_ROOT'] . '/' . $page['template'] . '.php'; } $tpl = 'page'; if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/templates/' . $page['code'] . '.tpl')) { $tpl = $page['code']; } $smarty->assign('page', $page); $smarty->assign('pageText', $pageText); $smarty->assign('crumbs', $crumbs); $smarty->assign('cart', cf\api\cart\getList()); $smarty->display((strlen($page['template']) ? $page['template'] : $tpl) . '.tpl'); } catch (Exception $e) { print_r($e); //header("Location: /error"); exit; }