New Query examples added to Zen Cart Delete Spam Customers

I updated the documentation for Zen Cart Delete Spam Customers to provide more examples for common spam hints that I am seeing from my support clients. If you are suffering from a deluge of spam from Russia, Ukraine or another country, please know that help is on the way! In addition to Delete Spam Customers, I highly recommend these mods for spam prevention:

Also, I’m working on a mod that will block account creation requests based on a variety of factors. It’s called JerkBlocker, and it will be available in August!

Blogs I’m following

Like many people, I got out of the blog habit when Google killed Google Reader, but I recently started using Reader (with Feedbin) so that I could enjoy blogs once again. Here’s what I’m reading these days:

What are you reading?

Zen Cart 1.5.6 – Upgrade Drivers

There’s a new release of Zen Cart – but why should you upgrade?  I’ll review some of the key reasons in this post.

  • Compatibility with PHP 7.2 and 7.3: PHP is constantly changing, and as new versions are introduced, older ones fall by the wayside.  This means they no longer receive bug fixes or even security patches for issues which are discovered by researchers and hackers.  If you look at the PHP supported versions page, you’ll see that versions prior to PHP7 won’t even receive security patches after January 2019.  To stay secure, you must update your PHP, which means you must update your Zen Cart software.
  • All security patches released in Zen Cart 1.5.5 and before included: if your Zen Cart hasn’t been actively maintained, you may have missed the PHPMailer security patch, the Trustwave patch, or any of the other Zen Cart security patches which has been released in the last few years.  Upgrading to Zen Cart 1.5.6 gets you all those patches without any extra work.
  • All prior bugfixes from ZenCart 1.5.5 and below are included: how many times have you struggled with an issue, only to find that it has been resolved in a newer release? Upgrading means you’re using the latest fixes.
  •  Improved admin appearance: the Zen Cart 1.5.6 admin is much easier on the eyes than the older versions.  Works great on mobile too!  
Mobile product editing in Zen Cart 1.5.6
Product Editor Screen in Zen Cart 1.5.6 on Mobile
Mobile customer edit screen in Zen Cart 1.5.6
Customer Editor Screen in Zen Cart 1.5.6 on Mobile
Zen Cart 1.5.6 Product/Category creation screen
Looks good on the desktop too! 

Google Customer Reviews by Numinix

I recently installed Google Customer Reviews on my Zen Cart plugins store.  I used the Google Customer Reviews integration from Numinix, which I found quite satisfactory.

Google Customer Reviews basically takes over from Trusted Stores (which was sunsetted).  You need to have a Google Merchant Center account to use it, and the threshold for having your reviews show up is pretty high (150 reviews), but I think it could be useful for some web shops.

One change I needed to make because my store is downloads-only: the file


checks the delivery_country field in the orders object.  I changed this to check the billing_country.

If you get prompted to take this Google survey after making a purchase from my store, I would appreciate you filling it out!  Thank you.

CSS Button Fixes for Zen Cart Buy Both Now and Buy The Set

When I created Buy Both Now and Buy The Set for Zen Cart, I never took account of the possibility that templates would use the CSS buttons feature, which is available in Admin->Configuration->Layout Settings.

I have updated the help for these mods to show how they can be adopted to use CSS buttons too.  It’s easy – for Buy Both Now, just modify


and change

$bbn_string_end = '<input type="image" src="' . $button . '" alt="Buy both now" title="Buy both now" /></form>'; 


$bbn_string_end = "  " . zen_image_submit($image, "Buy Both Now") . "</form>"; 

and similarly, for Buy the Set, just modify


and change

$bts_string_end = '<input type="image" src="' . $button . '" alt="Buy the set" title="Buy the set" /></form>'; 


$bts_string_end = "  " . zen_image_submit($image, "Buy the set") . "</form>"; 

Better Together for Zen Cart Updates

Back in 2013 I extended the one-to-one linkage concept in Zen Cart Better Together with the One-to-Many feature.  This addition of three new radio buttons in the Zen Cart admin panel effectively tripled the number of permutations of computed discounts.  What could go wrong?

Well, as it turned out, a number of things!  Freed from the classic one-to-one constraint, the configuration


would discount a *single* product 3, because it miscounted the number of items in the cart.  You can see this error in the screenshot above.

This bug is fixed in Better Together 2.5.3 for Zen Cart, which is available in the Plugins area.