The Zen Cart v1.5.4 admin-level scripts (e.g. the popular ones like customers.php and orders.php) are now sprinkled with calls (for PCI compliance) to a new function named zen_record_admin_activity.

I've created a compatibility script so that anyone who supports a plugin that modifies admin-level core files can merge their plugin's changes with the Zen Cart v1.5.4 version of the file and have that version continue to operate on Zen Cart versions v1.5.0 through v1.5.3.

I'd like to request that anyone using these scripts keep the name that I've assigned to them. That way, if a store owner installs multiple plugins that use the compatibility script, there's only one version of the script actually installed in their store.

The script is simple in nature; it's auto-loaded just after the admin-level class file that defines the function in Zen Cart v1.5.4. When the script loads, it defines a dummy function with the same name/interface if that function is not already defined (i.e. you're not running Zen Cart v1.5.4). That way, the v1.5.4 changes you merge into your plugin's scripts will operate on earlier versions.

Two files are needed:

1 - /YOUR_ADMIN/includes/auto_loaders/config.zc154_compatibility.php
Code:
<?php
// -----
// Load the Zen Cart v1.5.4 compatibility module.
// Copyright (c) 2014 Vinos de Frutas Tropicales
//
$autoLoadConfig[65][]  = array ('autoType' => 'init_script',
                                'loadFile' => 'init_zc154_compatibility.php');
2- /YOUR_ADMIN/incudes/init_includes/init_zc154_compatibility.php
Code:
<?php
// -----
// Common Module (used by many of my plugins) to provide downward compatibility to Zen Cart v1.5.4 admin-level changes.
// Copyright (c) 2014 Vinos de Frutas Tropicales
//
if (!defined('IS_ADMIN_FLAG')) {
    die('Illegal Access');
}
// -----
// This plugin uses a Zen Cart v1.5.4 "core-file base".  One or more files overwritten for this plugin make
// use of a function (zen_record_admin_activity) that was introduced in Zen Cart v1.5.4.  That function (present in
// /admin/includes/classes/class.admin.zcObserverLogEventListener.php) loads at checkpoint 65.
//
// This init-file, also loaded at CP-65, provides the definition for the zen_record_admin_activity function IF IT IS
// NOT PREVIOUSLY DEFINED.  That way, the various functions in the overwritten corre files will have their function-interface
// satisfied.
//
if (!function_exists ('zen_record_admin_activity')) {
  function zen_record_admin_activity ($message, $severity) {
  }
}