uGx Posted September 20, 2006 Share Posted September 20, 2006 Newbie here, Have read a few postings. Is this ready to go or are there lots of things to tinker with to get it to work still? It has worked GREAT for me and my fraud has dropped to almost nil !!! The only problem I had was getting it to work with PayPal IPN payments but I have solved that. Things have been busy and to be honest I have been putting off posting my version because I wanted to also see if I can modify and post a revision that will work with the new osC3. If you don't use PayPal IPN then go ahead and use the current posted verison. If you need it to work with IPN then keep checking as I will post it soon. Cheers! Quote Link to comment Share on other sites More sharing options...
DeadDingo Posted September 27, 2006 Share Posted September 27, 2006 I would be very interested in seeing a working version for the paypal IPN. PLease keep us updated Quote Link to comment Share on other sites More sharing options...
Guest Posted October 24, 2006 Share Posted October 24, 2006 I just noticed on the screenshot under customers/oders, there's 'create order'. Does that mean you can manually input orders in the admin? If so, what contribution would that be. Thanks Quote Link to comment Share on other sites More sharing options...
Guest Posted December 22, 2006 Share Posted December 22, 2006 A version that works with PayPal IPN would be wonderful! Even if you can't post the code yet, can you put up some pointers/hints? Quote Link to comment Share on other sites More sharing options...
uGx Posted December 30, 2006 Share Posted December 30, 2006 Credit Card Fraud Detection Service - Maxmind v1.54 Change notes: 24 Dec 2006 01:45:01 V1.54 (1) Added PayPal IPN compatibility for the PayPal_Shopping_Cart_IPN module. (2) Modified the "Everybody else (so far) FIND:" in Step 6 to ALWAYS perform a fraud check even if its not a credit card transaction! Quote Link to comment Share on other sites More sharing options...
kenle Posted January 13, 2007 Share Posted January 13, 2007 I tried to make this work with Authorize.net payment. Everything seems to work fine. However, I just dont see how the credit card number get passed to the module to calculate the risk points. It seems only work with the Credit Card module itself, but not for Authorize.net module. Anyone here has some pointers? Thanks Quote Link to comment Share on other sites More sharing options...
monito Posted September 11, 2007 Share Posted September 11, 2007 Is there an update to have this contribution working with PWA (Purchase Without Account) It always shows me blanks... Thanks Quote Link to comment Share on other sites More sharing options...
nrlatsha Posted December 5, 2007 Author Share Posted December 5, 2007 Is there an update to have this contribution working with PWA (Purchase Without Account) It always shows me blanks... Thanks I'm going to try to get back into this to update it more, I just have to find the time with work, school, kids, wife, etc... Quote 9 times out of 10 its a PEBCAK Error (Problem exists between chair and keyboard) Replace that and you're fine... Link to comment Share on other sites More sharing options...
monito Posted December 12, 2007 Share Posted December 12, 2007 Is there a way to show a progress bar on a page while MaxMind comes back from its site. We get several duplicate orders with impatient customers. Thanks, Pat Quote Link to comment Share on other sites More sharing options...
shartlesville Posted June 19, 2008 Share Posted June 19, 2008 I am having a problem with the query trying to detect fraud in EVERY transaction - even free items. It is using up my limit of queries very quickly. I know there was a change to make it detect fraud for every transaction. It doesn't send any information for any other transaction anyway so this portion is useless to my store. I have tried to download the earlier version 1.53 but I am getting a time out error and it won't download. Does anyone know what to change BACK so that it ONLY looks at Credit Card transactions? I tried commenting out the: if (tep_not_null($sql_data_array['customers_id'])) { require(DIR_WS_MODULES . 'maxmind/maxmind.php'); } but that resulted in the query being blank. I am not an expert in code, lol. So all help is greatly appreciated! Blessings, Krisann Quote Link to comment Share on other sites More sharing options...
shartlesville Posted June 19, 2008 Share Posted June 19, 2008 I am having a problem with the query trying to detect fraud in EVERY transaction - even free items. It is using up my limit of queries very quickly. I know there was a change to make it detect fraud for every transaction. It doesn't send any information for any other transaction anyway so this portion is useless to my store. I have tried to download the earlier version 1.53 but I am getting a time out error and it won't download. Does anyone know what to change BACK so that it ONLY looks at Credit Card transactions? I tried commenting out the: if (tep_not_null($sql_data_array['customers_id'])) { require(DIR_WS_MODULES . 'maxmind/maxmind.php'); } but that resulted in the query being blank. I am not an expert in code, lol. So all help is greatly appreciated! Blessings, Krisann I fixed it by changing the 'cutomers_id' to 'cvvnumber'. Now it only does it for credit cards and nothing is broken, lol. Blessings, K Quote Link to comment Share on other sites More sharing options...
thorazine Posted July 15, 2008 Share Posted July 15, 2008 (edited) Thanks for a great mod. I have one issue with this mod. Everything seems to work fine, except I do not have any information showing under the customers order. The database is being populated and I have triple checked the install. v1.54 I am using oscmax with authorize.net here is my order.php file <?php /* $Id: orders.php 14 2006-07-28 17:42:07Z user $ osCMax Power E-Commerce http://oscdox.com Copyright 2006 osCMax Released under the GNU General Public License */ require('includes/application_top.php'); require(DIR_WS_CLASSES . 'currencies.php'); $currencies = new currencies(); $orders_statuses = array(); $orders_status_array = array(); $orders_status_query = tep_db_query("select orders_status_id, orders_status_name from " . TABLE_ORDERS_STATUS . " where language_id = '" . (int)$languages_id . "'"); while ($orders_status = tep_db_fetch_array($orders_status_query)) { $orders_statuses[] = array('id' => $orders_status['orders_status_id'], 'text' => $orders_status['orders_status_name']); $orders_status_array[$orders_status['orders_status_id']] = $orders_status['orders_status_name']; } $action = (isset($HTTP_GET_VARS['action']) ? $HTTP_GET_VARS['action'] : ''); //Begin code for shipping info $carriers = array(); $carriers_array = array(); $carriers_query = tep_db_query("select carrier_id, carrier_name from " . TABLE_CARRIERS); while ($carrier = tep_db_fetch_array($carriers_query)) { $carriers[] = array('id' => $carrier['carrier_id'], 'text' => $carrier['carrier_name']); $carriers_array[$carrier['carrier_id']] = $carrier['carrier_name']; } //End code for shipping info if (tep_not_null($action)) { switch ($action) { case 'update_order': $oID = tep_db_prepare_input($HTTP_GET_VARS['oID']); $status = tep_db_prepare_input($HTTP_POST_VARS['status']); $comments = tep_db_prepare_input($HTTP_POST_VARS['comments']); // Begin code changes for shipping status $tracking_no = tep_db_prepare_input($HTTP_POST_VARS['tracking_no']); $ship_date= tep_db_prepare_input($HTTP_POST_VARS['ship_date']); $delivery_date = tep_db_prepare_input($HTTP_POST_VARS['delivery_date']); $carrier_id = tep_db_prepare_input($HTTP_POST_VARS['carrier']); $order_updated = false; $check_status_query = tep_db_query("select customers_name, customers_email_address, orders_status, date_purchased, ship_date, tracking_no, carrier_id, delivery_date from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'"); $check_status = tep_db_fetch_array($check_status_query); $tmp_query = ""; if ($check_status['tracking_no'] != $tracking_no) { $tmp_query .= "tracking_no = '" . tep_db_input($tracking_no) . "', "; } if ($check_status['ship_date'] != $ship_date) { $tmp_query .= "ship_date = '" . tep_db_input($ship_date) . "', "; } if ($check_status['delivery_date'] != $delivery_date) { $tmp_query .= "delivery_date = '" . tep_db_input($delivery_date) . "', "; } if ($check_status['carrier_id'] != $carrier_id) { $tmp_query .= "carrier_id = '" . tep_db_input($carrier_id) . "', "; } if ($check_status['orders_status'] != $status) { $tmp_query .= "orders_status = '" . tep_db_input($status) . "', "; } //update the record only if there was a change if (strlen($tmp_query)) { tep_db_query("update " . TABLE_ORDERS . " set " . $tmp_query . " last_modified = now() where orders_id = '" . (int)$oID . "'"); } { // End code changes for shipping status $customer_notified = '0'; if (isset($HTTP_POST_VARS['notify']) && ($HTTP_POST_VARS['notify'] == 'on')) { $notify_comments = ''; if (isset($HTTP_POST_VARS['notify_comments']) && ($HTTP_POST_VARS['notify_comments'] == 'on')) { $notify_comments = sprintf(EMAIL_TEXT_COMMENTS_UPDATE, $comments) . "\n\n"; } $email = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' . $oID . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $oID, 'SSL') . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($check_status['date_purchased']) . "\n\n" . $notify_comments . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]); // Begin code for shipping status // if status is Shipped or Delivered include carrier, tracking number and ship date in e-mail if ((int)$status >= 3) { $email .= "\n\n" . EMAIL_TEXT_SHIP_DATE . $ship_date . "\n\n" . EMAIL_TEXT_CARRIER . $carriers_array[$carrier_id] . "\n\n" . EMAIL_TEXT_TRACKING_NO . $tracking_no; if ($status == '4') { $email .= "\n\n" . EMAIL_TEXT_DELIVERY_DATE . $delivery_date . "\n\n" . EMAIL_TEXT_FEEDBACK; } } $email .= "\n\n" . EMAIL_TEXT_QUESTIONS; // End code for shipping status tep_mail($check_status['customers_name'], $check_status['customers_email_address'], EMAIL_TEXT_SUBJECT, $email, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); $customer_notified = '1'; } tep_db_query("insert into " . TABLE_ORDERS_STATUS_HISTORY . " (orders_id, orders_status_id, date_added, customer_notified, comments) values ('" . (int)$oID . "', '" . tep_db_input($status) . "', now(), '" . tep_db_input($customer_notified) . "', '" . tep_db_input($comments) . "')"); $order_updated = true; } if ($order_updated == true) { $messageStack->add_session(SUCCESS_ORDER_UPDATED, 'success'); } else { $messageStack->add_session(WARNING_ORDER_NOT_UPDATED, 'warning'); } tep_redirect(tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action')) . 'action=edit')); break; case 'deleteconfirm': $oID = tep_db_prepare_input($HTTP_GET_VARS['oID']); tep_remove_order($oID, $HTTP_POST_VARS['restock']); tep_redirect(tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')))); break; } } if (($action == 'edit') && isset($HTTP_GET_VARS['oID'])) { $oID = tep_db_prepare_input($HTTP_GET_VARS['oID']); $orders_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'"); $order_exists = true; if (!tep_db_num_rows($orders_query)) { $order_exists = false; $messageStack->add(sprintf(ERROR_ORDER_DOES_NOT_EXIST, $oID), 'error'); } } // BOF: MOD - Downloads Controller - Extra order info // Look up things in orders $the_extra_query= tep_db_query("select * from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'"); $the_extra= tep_db_fetch_array($the_extra_query); $the_customers_id= $the_extra['customers_id']; // Look up things in customers $the_extra_query= tep_db_query("select * from " . TABLE_CUSTOMERS . " where customers_id = '" . $the_customers_id . "'"); $the_extra= tep_db_fetch_array($the_extra_query); $the_customers_fax= $the_extra['customers_fax']; // EOF: MOD - Downloads Controller - Extra order info include(DIR_WS_CLASSES . 'order.php'); ?> <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> <html <?php echo HTML_PARAMS; ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> <title><?php echo TITLE; ?></title> <link rel="stylesheet" type="text/css" href="includes/stylesheet.css"> <script language="javascript" src="includes/general.js"></script> </head> <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF"> <!-- header //--> <?php require(DIR_WS_INCLUDES . 'header.php'); ?> <!-- header_eof //--> <!-- body //--> <table border="0" width="100%" cellspacing="2" cellpadding="2"> <tr> <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft"> <!-- left_navigation //--> <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?> <!-- left_navigation_eof //--> </table></td> <!-- body_text //--> <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2"> <?php if (($action == 'edit') && ($order_exists == true)) { $order = new order($oID); ?> <tr> <td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading"><?php echo HEADING_TITLE; ?></td> <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td> <?php // BOF: MOD - PayPal IPN if ($order->info['payment_method'] == 'paypal' && isset($HTTP_GET_VARS['refer']) && $HTTP_GET_VARS['refer'] == 'ipn'){ ?> <td class="pageHeading" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_PAYPAL_IPN, tep_get_all_get_params(array('action','oID','refer'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td> <?php } else { ?> <td class="pageHeading" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS_EDIT, 'oID=' . $_GET['oID']) . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $_GET['oID']) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $_GET['oID']) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a> '; ?></td> <?php }//else not paypal // EOF: MOD - PayPal IPN ?> </tr> </table></td> </tr> <tr> <td><table width="100%" border="0" cellspacing="0" cellpadding="2"> <tr> <td colspan="3"><?php echo tep_draw_separator(); ?></td> </tr> <tr> <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2"> <tr> <td class="main" valign="top"><b><?php echo ENTRY_CUSTOMER; ?></b></td> <td class="main"><?php echo tep_address_format($order->customer['format_id'], $order->customer, 1, '', '<br>'); ?></td> </tr> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td> </tr> <tr> <td class="main"><b><?php echo ENTRY_TELEPHONE_NUMBER; ?></b></td> <td class="main"><?php echo $order->customer['telephone']; ?></td> </tr> <?php // BOF: MOD - Downloads Controller - Extra order info ?> <tr> <td class="main"><b><?php echo 'FAX #:'; ?></b></td> <td class="main"><?php echo $the_customers_fax; ?></td> </tr> <?php // EOF: MOD - Downloads Controller - Extra order info ?> <tr> <td class="main"><b><?php echo ENTRY_EMAIL_ADDRESS; ?></b></td> <td class="main"><?php echo '<a href="mailto:' . $order->customer['email_address'] . '"><u>' . $order->customer['email_address'] . '</u></a>'; ?></td> </tr> </table></td> <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2"> <tr> <td class="main" valign="top"><b><?php echo ENTRY_SHIPPING_ADDRESS; ?></b></td> <td class="main"><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 1, '', '<br>'); ?></td> </tr> </table></td> <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2"> <tr> <td class="main" valign="top"><b><?php echo ENTRY_BILLING_ADDRESS; ?></b></td> <td class="main"><?php echo tep_address_format($order->billing['format_id'], $order->billing, 1, '', '<br>'); ?></td> </tr> </table></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td><table border="0" cellspacing="0" cellpadding="2"> <?php // BOF: MOD - Downloads Controller - Extra order info ?> <!-- add Order # // --> <tr> <td class="main"><b>Order # </b></td> <td class="main"><?php echo tep_db_input($oID); ?></td> </tr> <!-- add date/time // --> <tr> <td class="main"><b>Order Date & Time</b></td> <td class="main"><?php echo tep_datetime_short($order->info['date_purchased']); ?></td> </tr> <?php // EOF: MOD - Downloads Controller - Extra order info // BOF: MOD - PayPal IPN if (strtolower($order->info['payment_method']) == 'paypal') { include 'paypal_ipn_order.php'; } else { // EOF: MOD - PayPal IPN ?> <tr> <td class="main"><b><?php echo ENTRY_PAYMENT_METHOD; ?></b></td> <td class="main"><?php echo $order->info['payment_method']; ?></td> </tr> <!-- begin shipping status code --> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <?php include(DIR_FS_CATALOG_LANGUAGES . $language . '/shipping_status.php'); include(DIR_FS_CATALOG . 'includes/shipping_status.php'); ?> <!-- end shipping status code --> <?php }//else not paypal if (tep_not_null($order->info['cc_type']) || tep_not_null($order->info['cc_owner']) || tep_not_null($order->info['cc_number'])) { ?> <tr> <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main"><?php echo ENTRY_CREDIT_CARD_TYPE; ?></td> <td class="main"><?php echo $order->info['cc_type']; ?></td> </tr> <tr> <td class="main"><?php echo ENTRY_CREDIT_CARD_OWNER; ?></td> <td class="main"><?php echo $order->info['cc_owner']; ?></td> </tr> <tr> <td class="main"><?php echo ENTRY_CREDIT_CARD_NUMBER; ?></td> <td class="main"><?php echo $order->info['cc_number']; ?></td> </tr> <tr> <td class="main"><?php echo ENTRY_CREDIT_CARD_EXPIRES; ?></td> <td class="main"><?php echo $order->info['cc_expires']; ?></td> </tr> <?php // Addition for MaxMind CC check Noel Latsha $check_maxmind_query = tep_db_query("select distance, country_match, country_code, free_mail, anonymous_proxy, score, bin_match, bin_country, err, proxy_score, spam_score, bin_name, cust_phone, ip_city, ip_latitude, ip_longitude, ip_region, ip_isp, ip_org, hi_risk from " . TABLE_ORDERS_MAXMIND . " where order_id = '" . (int)$oID . "'"); $maxmind_query = tep_db_fetch_array($check_maxmind_query); $max_score = round($maxmind_query['score']); switch ($max_score) { case 0: $max_comment = '(Extremely Low risk)'; break; case 1: $max_comment = '(Very Low risk)'; break; case 2: $max_comment = '(Low risk)'; break; case 3: $max_comment = '(Low risk)'; break; case 4: $max_comment = '(Low-Medium risk)'; break; case 5: $max_comment = '(Medium risk)'; break; case 6: $max_comment = '(Medium-high risk)'; break; case 7: $max_comment = '(High risk)'; break; case 8: $max_comment = '(Very High risk)'; break; case 9: $max_comment = '(Extremely High risk)'; break; case 10: $max_comment = '(I can smell the fraud from here)'; break; } ?> </table> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td colspan="7" class="main"><?php echo '<br><b>' . MAXMIND_SCORE . ' <font color="red">' . $maxmind_query['score'] . '</font> ' . $max_comment . '</b>'; ?></td> </tr> <tr class="dataTableRow"> <td width="14%" class="dataTableContent"><?php echo MAXMIND_COUNTRY; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['country_match'] . '</b>'; ?></td> <td width="14%" class="dataTableContent"><?php echo MAXMIND_CODE; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['country_code'] . '</b>'; ?></td> <td width="14%" class="dataTableContent"><?php echo MAXMIND_HI_RISK; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['hi_risk'] . '</b>'; ?></td> </tr> <tr> <td width="14%" class="dataTableContent"><?php echo MAXMIND_BIN_MATCH; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['bin_match'] . '</b>'; ?></td> <td width="14%" class="dataTableContent"><?php echo MAXMIND_BIN_COUNTRY; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['bin_country'] . '</b>'; ?></td> <td width="14%" class="dataTableContent"><?php echo MAXMIND_BIN_NAME; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['bin_name'] . '</b>'; ?></td> </tr> <tr class="dataTableRow"> <td width="14%" class="dataTableContent"><?php echo MAXMIND_IP_ISP; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['ip_isp'] . '</b>'; ?></td> <td width="14%" class="dataTableContent"><?php echo MAXMIND_IP_ISP_ORG; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['ip_org'] . '</b>'; ?></td> <td width="14%" class="dataTableContent"><?php echo MAXMIND_DISTANCE; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['distance'] . '</b>'; ?></td> </tr> <tr> <td width="14%" class="dataTableContent"><?php echo MAXMIND_ANONYMOUS; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['anonymous_proxy'] . '</b>'; ?></td> <td width="14%" class="dataTableContent"><?php echo MAXMIND_PROXY_SCORE; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['proxy_score'] . '</b>'; ?></td> <td width="14%" class="dataTableContent"><?php echo MAXMIND_SPAM; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['spam_score'] . '</b>'; ?></td> </tr> <tr class="dataTableRow"> <td width="14%" class="dataTableContent"><?php echo MAXMIND_FREE_EMAIL; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['free_mail'] . '</b>'; ?></td> <td width="14%" class="dataTableContent"><?php echo MAXMIND_CUST_PHONE; ?></td> <td width="18%" class="dataTableContent"><a href="http://www.whitepages.com/search/Reverse_Phone?phone=<?php echo $order->customer['telephone']; ?>" target="_blank"><?php echo '<b>' . $maxmind_query['cust_phone'] . '</b>'; ?></td> <td width="14%" class="dataTableContent"><?php echo MAXMIND_ERR; ?></td> <td width="18%" class="dataTableContent"><?php echo '<b>' . $maxmind_query['err'] . '</b>'; ?></td> </tr> </table> <table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> </tr> <tr> <td colspan="4" class="dataTableContent" width="75%" align="center"><?php echo MAXMIND_DETAILS . ' ' . MAXMIND_MAXMIND; ?></td> </tr> <tr class="dataTableRow"> <td width="25%" class="dataTableContent"><?php echo MAXMIND_IP_CITY . '<b>' . $maxmind_query['ip_city'] . '</b>'; ?></td> <td width="25%" class="dataTableContent"><?php echo MAXMIND_IP_REGION . '<b>' . $maxmind_query['ip_region'] . '</b>'; ?></td> <td width="25%" class="dataTableContent"><?php echo MAXMIND_IP_LATITUDE . '<b>' . $maxmind_query['ip_latitude'] . '</b>'; ?></td> <td width="25%" class="dataTableContent"><?php echo MAXMIND_IP_LONGITUDE . '<b>' . $maxmind_query['ip_longitude'] . '</b>'; ?></td> </tr> <tr> <td colspan="4"><?php echo tep_draw_separator(); ?></td> </tr> <?php // End addition for MaxMind Noel Latsha } ?> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr class="dataTableHeadingRow"> <td class="dataTableHeadingContent" colspan="2"><?php echo TABLE_HEADING_PRODUCTS; ?></td> <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_PRODUCTS_MODEL; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TAX; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRICE_EXCLUDING_TAX; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_PRICE_INCLUDING_TAX; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TOTAL_EXCLUDING_TAX; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_TOTAL_INCLUDING_TAX; ?></td> </tr> <?php for ($i=0, $n=sizeof($order->products); $i<$n; $i++) { echo ' <tr class="dataTableRow">' . "\n" . ' <td class="dataTableContent" valign="top" align="right">' . $order->products[$i]['qty'] . ' x</td>' . "\n" . ' <td class="dataTableContent" valign="top">' . $order->products[$i]['name']; if (isset($order->products[$i]['attributes']) && (sizeof($order->products[$i]['attributes']) > 0)) { for ($j = 0, $k = sizeof($order->products[$i]['attributes']); $j < $k; $j++) { echo '<br><nobr><small> <i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value']; if ($order->products[$i]['attributes'][$j]['price'] != '0') echo ' (' . $order->products[$i]['attributes'][$j]['prefix'] . $currencies->format($order->products[$i]['attributes'][$j]['price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . ')'; echo '</i></small></nobr>'; } } echo ' </td>' . "\n" . ' <td class="dataTableContent" valign="top">' . $order->products[$i]['model'] . '</td>' . "\n" . ' <td class="dataTableContent" align="right" valign="top">' . tep_display_tax_value($order->products[$i]['tax']) . '%</td>' . "\n" . ' <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['final_price'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" . ' <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax']), true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" . ' <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format($order->products[$i]['final_price'] * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n" . ' <td class="dataTableContent" align="right" valign="top"><b>' . $currencies->format(tep_add_tax($order->products[$i]['final_price'], $order->products[$i]['tax']) * $order->products[$i]['qty'], true, $order->info['currency'], $order->info['currency_value']) . '</b></td>' . "\n"; echo ' </tr>' . "\n"; } ?> <tr> <td align="right" colspan="8"><table border="0" cellspacing="0" cellpadding="2"> <?php for ($i = 0, $n = sizeof($order->totals); $i < $n; $i++) { echo ' <tr>' . "\n" . ' <td align="right" class="smallText">' . $order->totals[$i]['title'] . '</td>' . "\n" . ' <td align="right" class="smallText">' . $order->totals[$i]['text'] . '</td>' . "\n" . ' </tr>' . "\n"; } ?> </table></td> </tr> </table></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <td class="main"><table border="1" cellspacing="0" cellpadding="5"> <tr> <td class="smallText" align="center"><b><?php echo TABLE_HEADING_DATE_ADDED; ?></b></td> <td class="smallText" align="center"><b><?php echo TABLE_HEADING_CUSTOMER_NOTIFIED; ?></b></td> <td class="smallText" align="center"><b><?php echo TABLE_HEADING_STATUS; ?></b></td> <td class="smallText" align="center"><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td> </tr> <?php $orders_history_query = tep_db_query("select orders_status_id, date_added, customer_notified, comments from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" . tep_db_input($oID) . "' order by date_added"); if (tep_db_num_rows($orders_history_query)) { while ($orders_history = tep_db_fetch_array($orders_history_query)) { echo ' <tr>' . "\n" . ' <td class="smallText" align="center">' . tep_datetime_short($orders_history['date_added']) . '</td>' . "\n" . ' <td class="smallText" align="center">'; if ($orders_history['customer_notified'] == '1') { echo tep_image(DIR_WS_ICONS . 'tick.gif', ICON_TICK) . "</td>\n"; } else { echo tep_image(DIR_WS_ICONS . 'cross.gif', ICON_CROSS) . "</td>\n"; } echo ' <td class="smallText">' . $orders_status_array[$orders_history['orders_status_id']] . '</td>' . "\n" . ' <td class="smallText">' . nl2br(tep_db_output($orders_history['comments'])) . ' </td>' . "\n" . ' </tr>' . "\n"; } } else { echo ' <tr>' . "\n" . ' <td class="smallText" colspan="5">' . TEXT_NO_ORDER_HISTORY . '</td>' . "\n" . ' </tr>' . "\n"; } ?> </table></td> </tr> <tr> <td class="main"><br><b><?php echo TABLE_HEADING_COMMENTS; ?></b></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '5'); ?></td> </tr> <tr><?php echo tep_draw_form('status', FILENAME_ORDERS, tep_get_all_get_params(array('action')) . 'action=update_order'); ?> <td class="main"><?php echo tep_draw_textarea_field('comments', 'soft', '60', '5'); ?></td> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <!-- begin shipping status code --> <?php if (tep_not_null($order->shipping['tracking_no'])) { ?> <tr> <td class="main"><b><?php echo ENTRY_TRACKING_NO;?><?php echo tep_draw_input_field('tracking_no', $order->shipping['tracking_no'] ); ?></b> <?php echo tep_draw_pull_down_menu('carrier', $carriers, $order->shipping['carrier_id']); ?></b></td> </tr> <?php } else { ?> <tr> <td class="main"><b><?php echo ENTRY_TRACKING_NO;?> <?php echo tep_draw_input_field('tracking_no'); ?> <?php echo ENTRY_CARRIER; ?></b> <?php echo tep_draw_pull_down_menu('carrier', $carriers, $order->shipping['carrier_id']); ?></b></td> </tr> <?php } ?> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '11'); ?></td> </tr> <tr> <?php if (tep_not_null($order->shipping['ship_date'])) {//if 2 ?> <td class="main"><b><?php echo ENTRY_SHIP_DATE;?></b><?php echo tep_draw_input_field('ship_date', $order->shipping['ship_date']); ?></td> <?php } else { $today = date("F d" . ', ' . "Y"); ?> <td class="main"><b><?php echo ENTRY_SHIP_DATE;?></b><?php echo tep_draw_input_field('ship_date'); ?><input type="button" name="set_s_date" value="Today's Date" onClick="document.status.ship_date.value='<?php echo $today ?>'"><input type="button" name="clear_s_date" value="Clear" onClick="document.status.ship_date.value=''"></td> <?php } ?> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <tr> <?php if (tep_not_null($order->shipping['delivery_date'])) {//if 2 ?> <td class="main"><b><?php echo ENTRY_DELIVERY_DATE;?></b><?php echo tep_draw_input_field('delivery_date', $order->shipping['delivery_date']); ?></td> <?php } else { $today = date("F d" . ', ' . "Y"); ?> <td class="main"><b><?php echo ENTRY_DELIVERY_DATE;?></b><?php echo tep_draw_input_field('delivery_date'); ?><input type="button" name="set_d_date" value="Today's Date" onClick="document.status.delivery_date.value='<?php echo $today ?>'" onClick="document.status.status.value='4'"><input type="button" name="clear_d_date" value="Clear" onClick="document.status.delivery_date.value=''"></td> <?php } ?> </tr> <tr> <td><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td> </tr> <!-- end shipping status code --> <tr> <td><table border="0" cellspacing="0" cellpadding="2"> <tr> <td><table border="0" cellspacing="0" cellpadding="2"> <tr> <td class="main"><b><?php echo ENTRY_STATUS; ?></b> <?php echo tep_draw_pull_down_menu('status', $orders_statuses, $order->info['orders_status']); ?></td> </tr> <tr> <td class="main"><b><?php echo ENTRY_NOTIFY_CUSTOMER; ?></b> <?php echo tep_draw_checkbox_field('notify', '', true); ?></td> <td class="main"><b><?php echo ENTRY_NOTIFY_COMMENTS; ?></b> <?php echo tep_draw_checkbox_field('notify_comments', '', true); ?></td> </tr> </table></td> <td valign="top"><?php echo tep_image_submit('button_update.gif', IMAGE_UPDATE); ?></td> </tr> </table></td> </form></tr> <tr> <?php /* BOF: MOD - PayPal IPN */ ?> <?php if ($order->info['payment_method'] == 'paypal' && isset($HTTP_GET_VARS['refer']) && $HTTP_GET_VARS['refer'] == 'ipn'){ ?> <td colspan="2" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $HTTP_GET_VARS['oID']) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $HTTP_GET_VARS['oID']) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a> <a href="' . tep_href_link(FILENAME_PAYPAL_IPN, tep_get_all_get_params(array('action','oID','refer'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a>'; ?></td> <?php } else { ?> <td colspan="2" align="right"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS_EDIT, 'oID=' . $_GET['oID']) . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $_GET['oID']) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $_GET['oID']) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('action'))) . '">' . tep_image_button('button_back.gif', IMAGE_BACK) . '</a> '; ?></td> <?php }//else not paypal // EOF: MOD - PayPal IPN ?> </tr> <?php } else { ?> <tr> <td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td class="pageHeading"><?php echo HEADING_TITLE; ?></td> <td class="pageHeading" align="right"><?php echo tep_draw_separator('pixel_trans.gif', 1, HEADING_IMAGE_HEIGHT); ?></td> <td align="right"><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr><?php echo tep_draw_form('orders', FILENAME_ORDERS, '', 'get'); ?> <td class="smallText" align="right"><?php echo HEADING_TITLE_SEARCH . ' ' . tep_draw_input_field('oID', '', 'size="12"') . tep_draw_hidden_field('action', 'edit'); ?></td> </form></tr> <tr><?php echo tep_draw_form('status', FILENAME_ORDERS, '', 'get'); ?> <td class="smallText" align="right"><?php echo HEADING_TITLE_STATUS . ' ' . tep_draw_pull_down_menu('status', array_merge(array(array('id' => '', 'text' => TEXT_ALL_ORDERS)), $orders_statuses), '', 'onChange="this.form.submit();"'); ?></td> </form></tr> </table></td> </tr> </table></td> </tr> <tr> <td><table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr class="dataTableHeadingRow"> <td class="dataTableHeadingContent"><?php echo TABLE_HEADING_CUSTOMERS; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ORDER_TOTAL; ?></td> <td class="dataTableHeadingContent" align="center"><?php echo TABLE_HEADING_DATE_PURCHASED; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_STATUS; ?></td> <td class="dataTableHeadingContent" align="right"><?php echo TABLE_HEADING_ACTION; ?> </td> </tr> <?php if (isset($HTTP_GET_VARS['cID'])) { $cID = tep_db_prepare_input($HTTP_GET_VARS['cID']); //LINE CHANGED: MOD - fedex added "o.fedex_tracking" $orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, o.fedex_tracking, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$cID . "' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by orders_id DESC"; // LINE CHANGED: MS2 update 501112 // } elseif (isset($HTTP_GET_VARS['status'])) { } elseif (isset($HTTP_GET_VARS['status']) && is_numeric($HTTP_GET_VARS['status']) && ($HTTP_GET_VARS['status'] > 0)) { $status = tep_db_prepare_input($HTTP_GET_VARS['status']); //LINE CHANGED: MOD - fedex added "o.fedex_tracking" $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, o.fedex_tracking, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.orders_status_id = '" . (int)$status . "' and ot.class = 'ot_total' order by o.orders_id DESC"; } else { //LINE CHANGED: MOD - fedex added "o.fedex_tracking" $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, o.fedex_tracking, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by o.orders_id DESC"; } $orders_split = new splitPageResults($HTTP_GET_VARS['page'], MAX_DISPLAY_SEARCH_RESULTS, $orders_query_raw, $orders_query_numrows); $orders_query = tep_db_query($orders_query_raw); while ($orders = tep_db_fetch_array($orders_query)) { if ((!isset($HTTP_GET_VARS['oID']) || (isset($HTTP_GET_VARS['oID']) && ($HTTP_GET_VARS['oID'] == $orders['orders_id']))) && !isset($oInfo)) { $oInfo = new objectInfo($orders); } if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) { echo ' <tr id="defaultSelected" class="dataTableRowSelected" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '\'">' . "\n"; } else { echo ' <tr class="dataTableRow" onmouseover="rowOverEffect(this)" onmouseout="rowOutEffect(this)" onclick="document.location.href=\'' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '\'">' . "\n"; } ?> <td class="dataTableContent"><?php echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $orders['orders_id'] . '&action=edit') . '">' . tep_image(DIR_WS_ICONS . 'preview.gif', ICON_PREVIEW) . '</a> ' . $orders['customers_name']; ?></td> <td class="dataTableContent" align="right"><?php echo strip_tags($orders['order_total']); ?></td> <td class="dataTableContent" align="center"><?php echo tep_datetime_short($orders['date_purchased']); ?></td> <td class="dataTableContent" align="right"><?php echo $orders['orders_status_name']; ?></td> <td class="dataTableContent" align="right"><?php if (isset($oInfo) && is_object($oInfo) && ($orders['orders_id'] == $oInfo->orders_id)) { echo tep_image(DIR_WS_IMAGES . 'icon_arrow_right.gif', ''); } else { echo '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID')) . 'oID=' . $orders['orders_id']) . '">' . tep_image(DIR_WS_IMAGES . 'icon_info.gif', IMAGE_ICON_INFO) . '</a>'; } ?> </td> </tr> <?php } ?> <tr> <td colspan="5"><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td class="smallText" valign="top"><?php echo $orders_split->display_count($orders_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, $HTTP_GET_VARS['page'], TEXT_DISPLAY_NUMBER_OF_ORDERS); ?></td> <td class="smallText" align="right"><?php echo $orders_split->display_links($orders_query_numrows, MAX_DISPLAY_SEARCH_RESULTS, MAX_DISPLAY_PAGE_LINKS, $HTTP_GET_VARS['page'], tep_get_all_get_params(array('page', 'oID', 'action'))); ?></td> </tr> </table></td> </tr> </table></td> <?php $heading = array(); $contents = array(); switch ($action) { case 'delete': $heading[] = array('text' => '<b>' . TEXT_INFO_HEADING_DELETE_ORDER . '</b>'); $contents = array('form' => tep_draw_form('orders', FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=deleteconfirm')); $contents[] = array('text' => TEXT_INFO_DELETE_INTRO . '<br><br><b>' . $cInfo->customers_firstname . ' ' . $cInfo->customers_lastname . '</b>'); $contents[] = array('text' => '<br>' . tep_draw_checkbox_field('restock') . ' ' . TEXT_INFO_RESTOCK_PRODUCT_QUANTITY); $contents[] = array('align' => 'center', 'text' => '<br>' . tep_image_submit('button_delete.gif', IMAGE_DELETE) . ' <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id) . '">' . tep_image_button('button_cancel.gif', IMAGE_CANCEL) . '</a>'); break; default: if (isset($oInfo) && is_object($oInfo)) { $heading[] = array('text' => '<b>[' . $oInfo->orders_id . '] ' . tep_datetime_short($oInfo->date_purchased) . '</b>'); // BOF: MOD - FedEx // first determine whether this is on the test or production server to send // in the url (there may be a better place to do this...) $value_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_FEDEX1_SERVER'"); $value = tep_db_fetch_array($value_query); $fedex_gateway = $value['configuration_value']; // check for a fedex tracking number in the order record // if yes tracking number, show "fedex label," "track" and "cancel" options $fedex_tracking = $oInfo->fedex_tracking; // get the current order status $check_fedex_status_query = tep_db_query("select orders_status from " . TABLE_ORDERS . " where orders_id = '" . $oInfo->orders_id . "'"); $check_fedex_status = tep_db_fetch_array($check_fedex_status_query); if ($fedex_tracking) { // display the label $contents[] = array('align' => 'center', 'text' => '<a href="fedex_popup.php?num=' . $fedex_tracking . '&oID=' . $oInfo->orders_id . '">' . tep_image_button('button_fedex_label.gif', IMAGE_ORDERS_FEDEX_LABEL) . '</a>'); // track the package (no gateway needs to be specified) $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_TRACK_FEDEX, 'oID=' .$oInfo->orders_id . '&num=' . $fedex_tracking) . '&fedex_gateway=track">' . tep_image_button('button_track.gif', IMAGE_ORDERS_TRACK) . '</a>'); // cancel the request $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_SHIP_FEDEX, 'oID=' .$oInfo->orders_id . '&num=' . $fedex_tracking . '&action=cancel&fedex_gateway=' . $fedex_gateway) . '" onClick="return(window.confirm(\'Cancel shipment of order number ' . $oInfo->orders_id . '?\'));">' . tep_image_button('button_cancel_shipment.gif', IMAGE_ORDERS_CANCEL_SHIPMENT) . '</a>'); } // if no fedex tracking number, AND if the order has not been manually marked "delivered," // display the "ship" button elseif ((!$fedex_tracking) && (($check_fedex_status['orders_status']) != 3)) { $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_SHIP_FEDEX, 'oID=' .$oInfo->orders_id . '&action=new&status=3') . '">' . tep_image_button('button_ship.gif', IMAGE_ORDERS_SHIP) . '</a>'); } // EOF: MOD - FedEx $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=edit') . '">' . tep_image_button('button_details.gif', IMAGE_DETAILS) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS, tep_get_all_get_params(array('oID', 'action')) . 'oID=' . $oInfo->orders_id . '&action=delete') . '">' . tep_image_button('button_delete.gif', IMAGE_DELETE) . '</a>'); $contents[] = array('align' => 'center', 'text' => '<a href="' . tep_href_link(FILENAME_ORDERS_INVOICE, 'oID=' . $oInfo->orders_id) . '" TARGET="_blank">' . tep_image_button('button_invoice.gif', IMAGE_ORDERS_INVOICE) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_PACKINGSLIP, 'oID=' . $oInfo->orders_id) . '" TARGET="_blank">' . tep_image_button('button_packingslip.gif', IMAGE_ORDERS_PACKINGSLIP) . '</a> <a href="' . tep_href_link(FILENAME_ORDERS_EDIT, 'oID=' . $oInfo->orders_id) . '">' . tep_image_button('button_edit.gif', IMAGE_EDIT) . '</a>'); $contents[] = array('text' => '<br>' . TEXT_DATE_ORDER_CREATED . ' ' . tep_date_short($oInfo->date_purchased)); if (tep_not_null($oInfo->last_modified)) $contents[] = array('text' => TEXT_DATE_ORDER_LAST_MODIFIED . ' ' . tep_date_short($oInfo->last_modified)); $contents[] = array('text' => '<br>' . TEXT_INFO_PAYMENT_METHOD . ' ' . $oInfo->payment_method); } break; } if ( (tep_not_null($heading)) && (tep_not_null($contents)) ) { echo ' <td width="25%" valign="top">' . "\n"; $box = new box; echo $box->infoBox($heading, $contents); echo ' </td>' . "\n"; } ?> </tr> </table></td> </tr> <?php } ?> </table></td> <!-- body_text_eof //--> </tr> </table> <!-- body_eof //--> <!-- footer //--> <?php require(DIR_WS_INCLUDES . 'footer.php'); ?> <!-- footer_eof //--> <br> </body> </html> <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?> Edited July 15, 2008 by thorazine Quote Link to comment Share on other sites More sharing options...
blessonjdp Posted August 30, 2008 Share Posted August 30, 2008 I'm trying to install MaxMind v1.54 on oscommerce-2.2rc2a following the instructions given in MaxMind v1.54/Install.html Completed all the steps 1 to 6 successfully On STEP 7* i can't find the following code function before_process() { global $HTTP_POST_VARS, $order; if ( (defined('MODULE_PAYMENT_CC_EMAIL')) && (tep_validate_email(MODULE_PAYMENT_CC_EMAIL)) ) { $len = strlen($HTTP_POST_VARS['cc_number']); $this->cc_middle = substr($HTTP_POST_VARS['cc_number'], 4, ($len-8)); $order->info['cc_number'] = substr($HTTP_POST_VARS['cc_number'], 0, 4) . str_repeat('X', (strlen($HTTP_POST_VARS['cc_number']) - 8)) . substr($HTTP_POST_VARS['cc_number'], -4); } instead I find the following function function before_process() { global $HTTP_POST_VARS, $order; include(DIR_WS_CLASSES . 'cc_validation.php'); $cc_validation = new cc_validation(); $result = $cc_validation->validate($HTTP_POST_VARS['cc_number_nh-dns'], $HTTP_POST_VARS['cc_expires_month'], $HTTP_POST_VARS['cc_expires_year']); $error = ''; switch ($result) { case -1: $error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4)); break; case -2: case -3: case -4: $error = TEXT_CCVAL_ERROR_INVALID_DATE; break; case false: $error = TEXT_CCVAL_ERROR_INVALID_NUMBER; break; } if ( ($result == false) || ($result < 1) ) { $payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&cc_owner=' . urlencode($HTTP_POST_VARS['cc_owner']) . '&cc_expires_month=' . $HTTP_POST_VARS['cc_expires_month'] . '&cc_expires_year=' . $HTTP_POST_VARS['cc_expires_year']; tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false)); } $order->info['cc_owner'] = $HTTP_POST_VARS['cc_owner']; $order->info['cc_type'] = $cc_validation->cc_type; $order->info['cc_number'] = $HTTP_POST_VARS['cc_number_nh-dns']; $order->info['cc_expires'] = $HTTP_POST_VARS['cc_expires_month'] . $HTTP_POST_VARS['cc_expires_year']; if ( (defined('MODULE_PAYMENT_CC_EMAIL')) && (tep_validate_email(MODULE_PAYMENT_CC_EMAIL)) ) { $len = strlen($HTTP_POST_VARS['cc_number_nh-dns']); $this->cc_middle = substr($HTTP_POST_VARS['cc_number_nh-dns'], 4, ($len-8)); $order->info['cc_number'] = substr($HTTP_POST_VARS['cc_number_nh-dns'], 0, 4) . str_repeat('X', (strlen($HTTP_POST_VARS['cc_number_nh-dns']) - 8)) . substr($HTTP_POST_VARS['cc_number_nh-dns'], -4); } } Can someone suggest a solution to this problem? Quote Link to comment Share on other sites More sharing options...
eyeonu Posted September 26, 2008 Share Posted September 26, 2008 can i make it work with module moneyorder ? Quote Link to comment Share on other sites More sharing options...
nrlatsha Posted October 29, 2008 Author Share Posted October 29, 2008 I have returned from my short hiatus. I'll be looking over the thread and will make updates/help as soon as I can. Quote 9 times out of 10 its a PEBCAK Error (Problem exists between chair and keyboard) Replace that and you're fine... Link to comment Share on other sites More sharing options...
nrlatsha Posted October 31, 2008 Author Share Posted October 31, 2008 Does anybody know if $REMOTE_ADDR is depreciated? Quote 9 times out of 10 its a PEBCAK Error (Problem exists between chair and keyboard) Replace that and you're fine... Link to comment Share on other sites More sharing options...
nrlatsha Posted November 11, 2008 Author Share Posted November 11, 2008 UPDATED CONTRIBUTION IS IN! - http://addons.oscommerce.com/info/2115 Mostly reworked - if you were having problems, try to install this, then re-state your problem on the thread! It's a little more drag and drop, and I'll continue to work on it to really make it a module... I'll continue to work on this as I code other projects! I'm just happy to see people still using this after all these years. Quote 9 times out of 10 its a PEBCAK Error (Problem exists between chair and keyboard) Replace that and you're fine... Link to comment Share on other sites More sharing options...
crombiecrunch Posted November 12, 2008 Share Posted November 12, 2008 are there new install instructions for ver 2.0? I tried installing this and it is not working. I followed the instructions that came with it that were listed for v1.54. I do not see any links in my admin area to set up any settings Quote Link to comment Share on other sites More sharing options...
nrlatsha Posted November 13, 2008 Author Share Posted November 13, 2008 (edited) are there new install instructions for ver 2.0? I tried installing this and it is not working. I followed the instructions that came with it that were listed for v1.54. I do not see any links in my admin area to set up any settings Is it giving errors? Did you run maxtest? I don't have that level of integration with the admin area finished yet, but perhaps I'll put that on as my very next thing. The only settings are to change the file itself. I'm trying to get it to a point where folks can both upgrade and install fresh. I forgot to update the HTML instructions to indicate 2.0, but they are 2.0 instructions. I'll install a fresh set on my development center and see where I may have made a mistake. Thanks for the update. I take any and all comments seriously and will try to integrate features into a newer release. Edited November 13, 2008 by nrlatsha Quote 9 times out of 10 its a PEBCAK Error (Problem exists between chair and keyboard) Replace that and you're fine... Link to comment Share on other sites More sharing options...
crombiecrunch Posted November 13, 2008 Share Posted November 13, 2008 (edited) Is it giving errors? Did you run maxtest? I don't have that level of integration with the admin area finished yet, but perhaps I'll put that on as my very next thing. The only settings are to change the file itself. I'm trying to get it to a point where folks can both upgrade and install fresh. I forgot to update the HTML instructions to indicate 2.0, but they are 2.0 instructions. I'll install a fresh set on my development center and see where I may have made a mistake. Thanks for the update. I take any and all comments seriously and will try to integrate features into a newer release. Ok I think I may have it working, I dont have a key yet I went to the signup but it says it takes a day to get back. When I run the maxtest everything is blank the first time I ran it it said the table did not exist but it did, and now I dont get that error. I am not good with database stuff so all I did was copied the stuff in step 1 and made a file max.sql and I added it there. When i tried to import the file I got a error on the `risk` float(7); line and I changed it to `risk` float(7), So i dont know if I screwed something up in the database for it? The only other thing that confused me in step 1 it says "Add a new field in products table in database thru MySQL" so is orders_maxmind suppose to be its own table or is it suppose to be under the products table? Sorry if my post is as confusing as I am lol Oh one other thing I am using Super_Download_Shop_v1.1 and in the file catalog/checkout_process.php: I do not have if (tep_not_null($sql_data_array['customers_id'])) { , I dont know if that was something that was removed by the super-download, So i am not sure where to add the, require(DIR_WS_MODULES . 'maxmind/maxmind.php'); so I added it near the top of the file Edited November 13, 2008 by crombiecrunch Quote Link to comment Share on other sites More sharing options...
nrlatsha Posted November 13, 2008 Author Share Posted November 13, 2008 Ok I think I may have it working, I dont have a key yet I went to the signup but it says it takes a day to get back. When I run the maxtest everything is blank the first time I ran it it said the table did not exist but it did, and now I dont get that error. I am not good with database stuff so all I did was copied the stuff in step 1 and made a file max.sql and I added it there. When i tried to import the file I got a error on the `risk` float(7); line and I changed it to `risk` float(7), So i dont know if I screwed something up in the database for it? The only other thing that confused me in step 1 it says "Add a new field in products table in database thru MySQL" so is orders_maxmind suppose to be its own table or is it suppose to be under the products table? Sorry if my post is as confusing as I am lol Oh one other thing I am using Super_Download_Shop_v1.1 and in the file catalog/checkout_process.php: I do not have if (tep_not_null($sql_data_array['customers_id'])) { , I dont know if that was something that was removed by the super-download, So i am not sure where to add the, require(DIR_WS_MODULES . 'maxmind/maxmind.php'); so I added it near the top of the file From the looks of things, it may go better after this: tep_db_perform(TABLE_ORDERS, $sql_data_array); $insert_id = tep_db_insert_id(); so it looks like this: tep_db_perform(TABLE_ORDERS, $sql_data_array); $insert_id = tep_db_insert_id(); require(DIR_WS_MODULES . 'maxmind/maxmind.php'); I haven't tested that yet, but will as soon as I can. I'm looking to add the admin stuff soon too, as that would make my job building the module easier too. I did it for EZier new fields, but I forgot about that contribution until you mentioned the admin thing. Quote 9 times out of 10 its a PEBCAK Error (Problem exists between chair and keyboard) Replace that and you're fine... Link to comment Share on other sites More sharing options...
crombiecrunch Posted November 13, 2008 Share Posted November 13, 2008 From the looks of things, it may go better after this: tep_db_perform(TABLE_ORDERS, $sql_data_array); $insert_id = tep_db_insert_id(); so it looks like this: tep_db_perform(TABLE_ORDERS, $sql_data_array); $insert_id = tep_db_insert_id(); require(DIR_WS_MODULES . 'maxmind/maxmind.php'); I haven't tested that yet, but will as soon as I can. I'm looking to add the admin stuff soon too, as that would make my job building the module easier too. I did it for EZier new fields, but I forgot about that contribution until you mentioned the admin thing. ok i moved that line to were you suggested. I am still waiting on my key so I am not sure if this is 100% working or not. Quote Link to comment Share on other sites More sharing options...
dillie Posted November 14, 2008 Share Posted November 14, 2008 Looks very good, but why don't you show the IP address? Quote Link to comment Share on other sites More sharing options...
crombiecrunch Posted November 14, 2008 Share Posted November 14, 2008 ok I just had me first transaction with the new store front seems this is working correctly. I dont see though were the IP is shown in the screen how do I enable that? Quote Link to comment Share on other sites More sharing options...
nrlatsha Posted November 16, 2008 Author Share Posted November 16, 2008 ok I just had me first transaction with the new store front seems this is working correctly. I dont see though were the IP is shown in the screen how do I enable that? Surprisingly I didn't add that. So I'll have to draw up a new set of instructions to add that to the database. Quote 9 times out of 10 its a PEBCAK Error (Problem exists between chair and keyboard) Replace that and you're fine... Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.