Using Version 1.5 >> Today I installed the Gift Message Module. Seemed like a fairly easy install. Only a couple of files and .sql update with one statement. Still, made a backup of my database and files. To test I added a product to my cart. When clicking the button to advance to the checkout_shipping page --- it is blank.
I checked the checkout_shipping language file to make sure there were no spaces at the bottom (even though it was not a file that was touched or added during the module install).
I tried to backtrack and reinstalled my original files... but I still have the same problem.
I can actually type in the checking_confirmation URL from the blank shipping page and see the correct results for the confirmation. The checkout_shipping page is also completely blank in the source code.
The error I am receiving is this:
[18-Dec-2013 20:30:46 America/Phoenix] PHP Fatal error: Cannot redeclare class order in <...path...>welcome/includes/classes/order.php on line 1057
I've searched using DevTools and cannot find a redeclaration anywhere. Line 1057 is the last line (I'm sure this is a clue, but I don't know what it is!)Below is the code to this file. Any ideas? Thanks in advance to anyone who can point me in some sort of direction!
<?php
/**
* File contains the order-processing class ("order")
*
* @package classes
* @copyright Copyright 2003-2012 Zen Cart Development Team
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version GIT: $Id: Author: Ian Wilson Fri Jun 1 14:21:21 2012 +0000 Modified in v1.5.1 $
*/
/**
* order class
*
* Handles all order-processing functions
*
* @package classes
*/
if (!defined('IS_ADMIN_FLAG')) {
die('Illegal Access');
}
class order extends base {
var $info, $totals, $products, $customer, $delivery, $content_type, $email_low_stock, $products_ordered_attributes,
$products_ordered, $products_ordered_email, $attachArray;
function order($order_id = '') {
$this->info = array();
$this->totals = array();
$this->products = array();
$this->customer = array();
$this->delivery = array();
if (zen_not_null($order_id)) {
$this->query($order_id);
} else {
$this->cart();
}
}
function query($order_id) {
global $db;
$order_id = zen_db_prepare_input($order_id);
$order_query = "select customers_id, customers_name, customers_company,
customers_street_address, customers_suburb, customers_city,
customers_postcode, customers_state, customers_country,
customers_telephone, customers_email_address, customers_address_format_id,
delivery_name, delivery_company, delivery_street_address, delivery_suburb,
delivery_city, delivery_postcode, delivery_state, delivery_country,
delivery_address_format_id, billing_name, billing_company,
billing_street_address, billing_suburb, billing_city, billing_postcode,
billing_state, billing_country, billing_address_format_id,
payment_method, payment_module_code, shipping_method, shipping_module_code,
coupon_code, cc_type, cc_owner, cc_number, cc_expires, currency, currency_value,
date_purchased, orders_status, last_modified, order_total, order_tax, gift_message, ip_address
from " . TABLE_ORDERS . "
where orders_id = '" . (int)$order_id . "'";
$order = $db->Execute($order_query);
$totals_query = "select title, text, class
from " . TABLE_ORDERS_TOTAL . "
where orders_id = '" . (int)$order_id . "'
order by sort_order";
$totals = $db->Execute($totals_query);
while (!$totals->EOF) {
if ($totals->fields['class'] == 'ot_coupon') {
$coupon_link_query = "SELECT coupon_id
from " . TABLE_COUPONS . "
where coupon_code ='" . $order->fields['coupon_code'] . "'";
$coupon_link = $db->Execute($coupon_link_query);
$zc_coupon_link = '<a href="javascript:couponpopupWindow(\'' . zen_href_link(FILENAME_POPUP_COUPON_HELP, 'cID=' . $coupon_link->fields['coupon_id']) . '\')">';
}
$this->totals[] = array('title' => ($totals->fields['class'] == 'ot_coupon' ? $zc_coupon_link . $totals->fields['title'] . '</a>' : $totals->fields['title']),
'text' => $totals->fields['text'],
'class' => $totals->fields['class']);
$totals->MoveNext();
}
$order_total_query = "select text, value
from " . TABLE_ORDERS_TOTAL . "
where orders_id = '" . (int)$order_id . "'
and class = 'ot_total'";
$order_total = $db->Execute($order_total_query);
$shipping_method_query = "select title, value
from " . TABLE_ORDERS_TOTAL . "
where orders_id = '" . (int)$order_id . "'
and class = 'ot_shipping'";
$shipping_method = $db->Execute($shipping_method_query);
$order_status_query = "select orders_status_name
from " . TABLE_ORDERS_STATUS . "
where orders_status_id = '" . $order->fields['orders_status'] . "'
and language_id = '" . (int)$_SESSION['languages_id'] . "'";
$order_status = $db->Execute($order_status_query);
$this->info = array('currency' => $order->fields['currency'],
'currency_value' => $order->fields['currency_value'],
'payment_method' => $order->fields['payment_method'],
'payment_module_code' => $order->fields['payment_module_code'],
'shipping_method' => $order->fields['shipping_method'],
'shipping_module_code' => $order->fields['shipping_module_code'],
'coupon_code' => $order->fields['coupon_code'],
'cc_type' => $order->fields['cc_type'],
'cc_owner' => $order->fields['cc_owner'],
'cc_number' => $order->fields['cc_number'],
'cc_expires' => $order->fields['cc_expires'],
'date_purchased' => $order->fields['date_purchased'],
'orders_status' => $order_status->fields['orders_status_name'],
'last_modified' => $order->fields['last_modified'],
'total' => $order->fields['order_total'],
'tax' => $order->fields['order_tax'],
'gift_message' => $order->fields['gift_message'],
'ip_address' => $order->fields['ip_address']
);
$this->customer = array('id' => $order->fields['customers_id'],
'name' => $order->fields['customers_name'],
'company' => $order->fields['customers_company'],
'street_address' => $order->fields['customers_street_address'],
'suburb' => $order->fields['customers_suburb'],
'city' => $order->fields['customers_city'],
'postcode' => $order->fields['customers_postcode'],
'state' => $order->fields['customers_state'],
'country' => $order->fields['customers_country'],
'format_id' => $order->fields['customers_address_format_id'],
'telephone' => $order->fields['customers_telephone'],
'email_address' => $order->fields['customers_email_address']);
$this->delivery = array('name' => $order->fields['delivery_name'],
'company' => $order->fields['delivery_company'],
'street_address' => $order->fields['delivery_street_address'],
'suburb' => $order->fields['delivery_suburb'],
'city' => $order->fields['delivery_city'],
'postcode' => $order->fields['delivery_postcode'],
'state' => $order->fields['delivery_state'],
'country' => $order->fields['delivery_country'],
'format_id' => $order->fields['delivery_address_format_id']);
if (empty($this->delivery['name']) && empty($this->delivery['street_address'])) {
$this->delivery = false;
}
$this->billing = array('name' => $order->fields['billing_name'],
'company' => $order->fields['billing_company'],
'street_address' => $order->fields['billing_street_address'],
'suburb' => $order->fields['billing_suburb'],
'city' => $order->fields['billing_city'],
'postcode' => $order->fields['billing_postcode'],
'state' => $order->fields['billing_state'],
'country' => $order->fields['billing_country'],
'format_id' => $order->fields['billing_address_format_id']);
$index = 0;
$orders_products_query = "select orders_products_id, products_id, products_name,
products_model, products_price, products_tax,
products_quantity, final_price,
onetime_charges,
products_priced_by_attribute, product_is_free, products_discount_type,
products_discount_type_from
from " . TABLE_ORDERS_PRODUCTS . "
where orders_id = '" . (int)$order_id . "'
order by orders_products_id";
$orders_products = $db->Execute($orders_products_query);
while (!$orders_products->EOF) {
// convert quantity to proper decimals - account history
if (QUANTITY_DECIMALS != 0) {
$fix_qty = $orders_products->fields['products_quantity'];
switch (true) {
case (!strstr($fix_qty, '.')):
$new_qty = $fix_qty;
break;
default:
$new_qty = preg_replace('/[0]+$/', '', $orders_products->fields['products_quantity']);
break;
}
} else {
$new_qty = $orders_products->fields['products_quantity'];
}
$new_qty = round($new_qty, QUANTITY_DECIMALS);
if ($new_qty == (int)$new_qty) {
$new_qty = (int)$new_qty;
}
$this->products[$index] = array('qty' => $new_qty,
'id' => $orders_products->fields['products_id'],
'name' => $orders_products->fields['products_name'],
'model' => $orders_products->fields['products_model'],
'tax' => $orders_products->fields['products_tax'],
'price' => $orders_products->fields['products_price'],
'final_price' => $orders_products->fields['final_price'],
'onetime_charges' => $orders_products->fields['onetime_charges'],
'products_priced_by_attribute' => $orders_products->fields['products_priced_by_attribute'],
'product_is_free' => $orders_products->fields['product_is_free'],
'products_discount_type' => $orders_products->fields['products_discount_type'],
'products_discount_type_from' => $orders_products->fields['products_discount_type_from']);
$subindex = 0;
$attributes_query = "select products_options_id, products_options_values_id, products_options, products_options_values,
options_values_price, price_prefix from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . "
where orders_id = '" . (int)$order_id . "'
and orders_products_id = '" . (int)$orders_products->fields['orders_products_id'] . "'";
$attributes = $db->Execute($attributes_query);
if ($attributes->RecordCount()) {
while (!$attributes->EOF) {
$this->products[$index]['attributes'][$subindex] = array('option' => $attributes->fields['products_options'],
'value' => $attributes->fields['products_options_values'],
'option_id' => $attributes->fields['products_options_id'],
'value_id' => $attributes->fields['products_options_values_id'],
'prefix' => $attributes->fields['price_prefix'],
'price' => $attributes->fields['options_values_price']);
$subindex++;
$attributes->MoveNext();
}
}
$this->info['tax_groups']["{$this->products[$index]['tax']}"] = '1';
$index++;
$orders_products->MoveNext();
}
}
function cart() {
global $db, $currencies;
$decimals = $currencies->get_decimal_places($_SESSION['currency']);
$this->content_type = $_SESSION['cart']->get_content_type();
$customer_address_query = "select c.customers_firstname, c.customers_lastname, c.customers_telephone,
c.customers_email_address, ab.entry_company, ab.entry_street_address,
ab.entry_suburb, ab.entry_postcode, ab.entry_city, ab.entry_zone_id,
z.zone_name, co.countries_id, co.countries_name,
co.countries_iso_code_2, co.countries_iso_code_3,
co.address_format_id, ab.entry_state
from (" . TABLE_CUSTOMERS . " c, " . TABLE_ADDRESS_BOOK . " ab )
left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id)
left join " . TABLE_COUNTRIES . " co on (ab.entry_country_id = co.countries_id)
where c.customers_id = '" . (int)$_SESSION['customer_id'] . "'
and ab.customers_id = '" . (int)$_SESSION['customer_id'] . "'
and c.customers_default_address_id = ab.address_book_id";
$customer_address = $db->Execute($customer_address_query);
$shipping_address_query = "select ab.entry_firstname, ab.entry_lastname, ab.entry_company,
ab.entry_street_address, ab.entry_suburb, ab.entry_postcode,
ab.entry_city, ab.entry_zone_id, z.zone_name, ab.entry_country_id,
c.countries_id, c.countries_name, c.countries_iso_code_2,
c.countries_iso_code_3, c.address_format_id, ab.entry_state
from " . TABLE_ADDRESS_BOOK . " ab
left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id)
left join " . TABLE_COUNTRIES . " c on (ab.entry_country_id = c.countries_id)
where ab.customers_id = '" . (int)$_SESSION['customer_id'] . "'
and ab.address_book_id = '" . (int)$_SESSION['sendto'] . "'";
$shipping_address = $db->Execute($shipping_address_query);
$billing_address_query = "select ab.entry_firstname, ab.entry_lastname, ab.entry_company,
ab.entry_street_address, ab.entry_suburb, ab.entry_postcode,
ab.entry_city, ab.entry_zone_id, z.zone_name, ab.entry_country_id,
c.countries_id, c.countries_name, c.countries_iso_code_2,
c.countries_iso_code_3, c.address_format_id, ab.entry_state
from " . TABLE_ADDRESS_BOOK . " ab
left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id)
left join " . TABLE_COUNTRIES . " c on (ab.entry_country_id = c.countries_id)
where ab.customers_id = '" . (int)$_SESSION['customer_id'] . "'
and ab.address_book_id = '" . (int)$_SESSION['billto'] . "'";
$billing_address = $db->Execute($billing_address_query);
// set default tax calculation for not-logged-in visitors
$taxCountryId = $taxZoneId = -1;
$tax_address_query = '';
switch (STORE_PRODUCT_TAX_BASIS) {
case 'Shipping':
$tax_address_query = "select ab.entry_country_id, ab.entry_zone_id
from " . TABLE_ADDRESS_BOOK . " ab
left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id)
where ab.customers_id = '" . (int)$_SESSION['customer_id'] . "'
and ab.address_book_id = '" . (int)($this->content_type == 'virtual' ? $_SESSION['billto'] : $_SESSION['sendto']) . "'";
break;
case 'Billing':
$tax_address_query = "select ab.entry_country_id, ab.entry_zone_id
from " . TABLE_ADDRESS_BOOK . " ab
left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id)
where ab.customers_id = '" . (int)$_SESSION['customer_id'] . "'
and ab.address_book_id = '" . (int)$_SESSION['billto'] . "'";
break;
case 'Store':
if ($billing_address->fields['entry_zone_id'] == STORE_ZONE) {
$tax_address_query = "select ab.entry_country_id, ab.entry_zone_id
from " . TABLE_ADDRESS_BOOK . " ab
left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id)
where ab.customers_id = '" . (int)$_SESSION['customer_id'] . "'
and ab.address_book_id = '" . (int)$_SESSION['billto'] . "'";
} else {
$tax_address_query = "select ab.entry_country_id, ab.entry_zone_id
from " . TABLE_ADDRESS_BOOK . " ab
left join " . TABLE_ZONES . " z on (ab.entry_zone_id = z.zone_id)
where ab.customers_id = '" . (int)$_SESSION['customer_id'] . "'
and ab.address_book_id = '" . (int)($this->content_type == 'virtual' ? $_SESSION['billto'] : $_SESSION['sendto']) . "'";
}
}
if ($tax_address_query != '') {
$tax_address = $db->Execute($tax_address_query);
if ($tax_address->recordCount() > 0) {
$taxCountryId = $tax_address->fields['entry_country_id'];
$taxZoneId = $tax_address->fields['entry_zone_id'];
}
}
cont...
Bookmarks