New Zenner
- Join Date:
- Nov 2013
- Location:
- United States
- Posts:
- 7
- Plugin Contributions:
- 0
checkout_shipping blank page after installing gift message module
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...