Thanks for the update to this plugin - very timely for myself as I am ready for 158.
I did have an issue though.
I actually split some of my postcodes by adding A or B to them on some occasions - generally when a postcode covers a large area and I want to offer different rates to different suburbs with a postcode.
eg, 6056,6056A,6056B,6055b,6112A,6164A,6126,6172,6173,6174,6175,6176,6027,6077,6166A ,6025,6110
And for example if I am looking for 6164A, but 6164 appears earlier in the table, then the function checkForMatch was prematurely finding a match.
This is corrected (for me) by amending this line -
if ($next_zone !== '' && strpos($dest_zipcode, $next_zone) === 0) {
to
if ($next_zone !== '' && strpos($next_zone, $dest_zipcode) === 0) {
v3.1.1 of ZipShip is now available for download: https://www.zen-cart.com/downloads.php?do=file&id=312
This release corrects issue #15 (Intervening whitespace in zipcode lists result in no-match-found, no quote)