I recently discovered that osCommerce does not automatically remove credit card information for old orders. Here is a little script that I dropped into admin/orders.php that silently masks credit card numbers for orders older than 14 days. One day, I will learn how to create a legitimate module.
$cc_numbers_query = tep_db_query("select orders_id, cc_number from " . TABLE_ORDERS . " where orders_status=3 AND last_modified < (DATE_ADD(NOW(), INTERVAL -14 DAY))");
while ($cc_num = tep_db_fetch_array($cc_numbers_query)) {
$fullcc = $cc_num['cc_number'];
if ($fullcc && (!strstr($fullcc, 'x'))) { // hasn't previously been processed
$newcc='';
for ($a=0;$a<(strlen($fullcc)-4);$a++) {
$newcc .= 'x';
}
$newcc .= substr($fullcc,-4);
$editcc_query = tep_db_query("update " . TABLE_ORDERS . " set cc_number = '" . $newcc . "' where orders_id = " . $cc_num['orders_id']);
}
}






Richard Kassissieh is Director of Technology and Learning Innovation at