Tips on creating a plugin
It is wise to ensure that ALL your PHP plugin files include a line near the top which checks whether
IS_ADMIN_FLAG is defined. This way if you have a file that’s accessed via unauthorized methods then it will just abort. For example:
if (!defined('IS_ADMIN_FLAG')) die();
Other variations for specific use in either admin or catalog might check whether it is set to boolean
Optimizing the use of Overrides
There are built-in override capabilities in Zen Cart to prevent needing to edit some core files which would otherwise need updating.
Some of the commonly-overlooked override capabilities are listed here:
database_tables.php & filenames.php
Combine your extra details for these two files into one file, and then add it to both the storefront and the admin:
(these will auto-load)
(This will auto-load)
Do not auto delete your installer!
Once upon a time someone thought it would be clever to delete the installation script after running it.
A common pattern was to create a script in YOURADMIN/includes/init_includes (or perhaps YOURADMIN/includes/functions/extra_functions) which performed the installation and then deleted itself.
Please note: THIS IS A TERRIBLE IDEA. Don’t do this.
The reason is simple. Frequently people set up a test cart with a test database on their local machine in order to do an upgrade, and install all the files. They will then install the same fileset on their live server at upgrade time. If your installer auto-deletes, it won’t be available for them when their live database is being used.
A better practice is to check the database and see if the install has already been done.
- Check for specific configuration keys you would have added.
If you run into trouble working on your plugin, you can always post your question on the Contribution-Writing Subforum.