$c .= '<td class="' . $md5 . '-item-total totals">' . OnlineStore_numToPrice($totalItemCost) . '</td>'; // } $c .= '</tr>'; if ($item['long_desc']) { $c .= '<tr><td colspan="3" class="products-longdescription">' . $item['long_desc'] . '</td><td></td></tr>'; } } $c .= '<tr class="os_basket_totals subtotal"><td style="text-align: right;" colspa' . 'n="3">' . __('Subtotal', 'core') . '</td>' . '<td class="totals">' . OnlineStore_numToPrice($grandTotal) . '</td></tr>'; if (isset($_REQUEST['os_voucher']) && $_REQUEST['os_voucher'] == '') { unset($_REQUEST['os_voucher']); } if (isset($_REQUEST['os_voucher']) && $_REQUEST['os_voucher']) { require_once dirname(__FILE__) . '/voucher-libs.php'; $email = $_REQUEST['Email']; $code = $_REQUEST['os_voucher']; $voucher_amount = OnlineStore_voucherAmount($code, $email, $grandTotal); if ($voucher_amount) { $c .= '<tr class="os_basket_totals vouchers">' . '<td class="voucher" style="text-align: right;" colspan="3">' . '<span>' . __('Voucher', 'core') . '</span> (' . htmlspecialchars($code) . '<span style="display:inline-block;"' . ' class="ui-icon ui-icon-circle-close online-store-voucher-remove">' . '</span>' . ')</td><td class="totals">-' . OnlineStore_numToPrice($voucher_amount) . '</td></tr>'; $grandTotal -= $voucher_amount; } else { $c .= '<tr class="os_basket_totals vouchers">' . '<td class="voucher" style="text-align: right;" colspan="4">' . '<span>' . __('Voucher has no effect on cart. Removed from cart.', 'core') . '</span></td></tr>'; unset($_REQUEST['os_voucher']); } } if (!isset($_REQUEST['os_voucher']) || !$_REQUEST['os_voucher']) { $siteHasVouchers = Core_cacheLoad('online-store', 'site-has-vouchers', -1); if ($siteHasVouchers === -1) { $siteHasVouchers = dbOne('select count(id) ids from online_store_vouchers', 'ids'); Core_cacheSave('online-store', 'site-has-vouchers', $siteHasVouchers); } if ($siteHasVouchers) {
/** * return the grand total in the checkout * * @return float */ function OnlineStore_getFinalTotal() { $grandTotal = 0; $deliveryTotal = 0; $discountableTotal = 0; $vattable = 0; $has_vatfree = false; $user_is_vat_free = 0; $group_discount = 0; if (@$_SESSION['userdata']['id']) { $user = User::getInstance($_SESSION['userdata']['id']); if ($user) { $user_is_vat_free = $user->isInGroup('_vatfree'); $group_discount = $user->getGroupHighest('discount'); } } if (!isset($_SESSION['online-store']['items'])) { $_SESSION['online-store']['items'] = array(); } foreach ($_SESSION['online-store']['items'] as $md5 => $item) { $totalItemCost = $item['cost'] * $item['amt']; $grandTotal += $totalItemCost; if ($item['vat']) { $vattable += $totalItemCost; } if (!isset($item['delivery_free']) || !$item['delivery_free']) { $deliveryTotal += $totalItemCost; } if (!isset($item['not_discountable']) || !$item['not_discountable']) { $discountableTotal += $totalItemCost; } } if (@$_REQUEST['os_voucher']) { require_once SCRIPTBASE . 'ww.plugins/online-store/frontend/voucher-libs.php'; $email = @$_REQUEST['Email']; $code = $_REQUEST['os_voucher']; $voucher_amount = OnlineStore_voucherAmount($code, $email, $grandTotal); if ($voucher_amount) { $grandTotal -= $voucher_amount; } } if ($group_discount && $discountableTotal) { // group discount $discount_amount = $discountableTotal * ($group_discount / 100); $grandTotal -= $discount_amount; } // { postage $postage = OnlineStore_getPostageAndPackaging($deliveryTotal, '', 0); if ($postage['total']) { $grandTotal += $postage['total']; } // } if ($vattable && !$user_is_vat_free) { $vat = $vattable * ($_SESSION['onlinestore_vat_percent'] / 100); $grandTotal += $vat; } return $grandTotal; }