os_user Posted December 11, 2009 Share Posted December 11, 2009 I am interested in adding data text fields to the bottom of the Order Information page (account_history_info.php). The data entered into these fields needs to be unique per order, saved to the database, and editable by the customer. Therefore once data is entered and saved to the database, it will show up the next time the same order history page is accessed. I would also like to receive an email each time one of these fields is changed. Can someone please help me out in creating this? I did a search of the forums and did not see anything like this, so if there is already something for this please let me know. Thanks. Link to comment Share on other sites More sharing options...
os_user Posted December 18, 2009 Author Share Posted December 18, 2009 I have come a long way in coding this, however I have reached an impasse. The account_history_info.php page shows information on a particular customer order. Code in the original account_history_info.php identifies the order number with “$HTTP_GET_VARS['order_id']”. I can use this code to populate my data fields, but it does not work when used in tep_db_perform to save to the database. Can someone help me code this correctly? Here is the full php code I am working with: <?php /* $Id: account_history_info.php 1739 2007-12-20 00:52:16Z hpdl $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2007 osCommerce Released under the GNU General Public License */ require('includes/application_top.php'); if (!tep_session_is_registered('customer_id')) { $navigation->set_snapshot(); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_ACCOUNT_HISTORY_INFO); require(DIR_WS_CLASSES . 'order.php'); $order = new order($HTTP_GET_VARS['order_id']); if (isset($HTTP_POST_VARS['action']) && ($HTTP_POST_VARS['action'] == 'process')) { $primary = tep_db_prepare_input($HTTP_POST_VARS['primary']); $secondary = tep_db_prepare_input($HTTP_POST_VARS['secondary']); $website_address = tep_db_prepare_input($HTTP_POST_VARS['website_address']); $color_scheme = tep_db_prepare_input($HTTP_POST_VARS['color_scheme']); $files = tep_db_prepare_input($HTTP_POST_VARS['style']); $style = tep_db_prepare_input($HTTP_POST_VARS['files']); $other = tep_db_prepare_input($HTTP_POST_VARS['other']); { $sql_data_array = array('orders_primary' => $primary, 'orders_secondary' => $secondary, 'orders_website_address' => $website_address, 'orders_color_scheme' => $color_scheme, 'orders_style' => $style, 'orders_files' => $files, 'orders_other' => $other); tep_db_perform(TABLE_ORDERS, $sql_data_array, 'update', "orders_id = '". (int)$HTTP_GET_VARS['order_id'] . "'"); // reset the session variables $messageStack->add_session('account', SUCCESS_ACCOUNT_UPDATED, 'success'); tep_redirect(tep_href_link(FILENAME_ACCOUNT, '', 'SSL')); } } $account_query = tep_db_query("select orders_primary, orders_secondary, orders_website_address, orders_color_scheme, orders_style, orders_files, orders_other from " . TABLE_ORDERS . " where customers_id = '" . (int)$customer_id . "' and orders_id = '". (int)$HTTP_GET_VARS['order_id'] . "'"); $account = tep_db_fetch_array($account_query); ?> Link to comment Share on other sites More sharing options...
os_user Posted December 21, 2009 Author Share Posted December 21, 2009 It appears to me that "(int)$HTTP_GET_VARS['order_id']" no longer holds the orders_id value when the tep_db_perform statement runs. I looked at 'includes/application_top.php' and 'includes/classes/order.php' to see if there was anything that could account for this. I even tried to equal $HTTP_GET_VARS['order_id'] to a variable and replaced, but this did not work either. I tested by changing tep_db_perform(TABLE_ORDERS, $sql_data_array, 'update', "orders_id = '". (int)$HTTP_GET_VARS['order_id'] . "'"); with tep_db_perform(TABLE_ORDERS, $sql_data_array, 'update', "customers_id = '" . (int)$customer_id . "'"); and all of the particular customer's order information in the database was changed, so I know the rest of the code is not the issue. I'm sure the answer is simple, I'm just new to php scripting. So could someone throw a php newb a bone here? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.