I know there is a mod to ban PO boxes altogether, but is there a way to disable a specific shipping method when the address is a po box?
TIA!
I know there is a mod to ban PO boxes altogether, but is there a way to disable a specific shipping method when the address is a po box?
TIA!
You could try customizing the code in:
/includes/modules/shipping/ups.php
with the code in RED:
Code:// disable only when entire cart is free shipping if (zen_get_shipping_enabled($this->code)) { $this->enabled = ((MODULE_SHIPPING_UPS_STATUS == 'True') ? true : false); } // bof: block PO BOX addresses in $order->delivery['street_address'] or $order->delivery['suburb'] if (!IS_ADMIN_FLAG) { global $order; $street_address = $order->delivery['street_address']; // BEGIN PO Box Ban street address if ( preg_match('/PO BOX/si', $street_address) ) { $error = true; } else if ( preg_match('/BOX/si', $street_address) ) { $error = true; } else if ( preg_match('/POBOX/si', $street_address) ) { $error = true; } else if ( preg_match('/P\.O\./si', $street_address) ) { $error = true; } else if ( preg_match('/P\.O/si', $street_address) ) { $error = true; } else if ( preg_match('/PO\./si', $street_address) ) { $error = true; } $suburb = $order->delivery['suburb']; // BEGIN PO Box Ban suburb if ( preg_match('/PO BOX/si', $suburb) ) { $error = true; } else if ( preg_match('/BOX/si', $suburb) ) { $error = true; } else if ( preg_match('/POBOX/si', $suburb) ) { $error = true; } else if ( preg_match('/P\.O\./si', $suburb) ) { $error = true; } else if ( preg_match('/P\.O/si', $suburb) ) { $error = true; } else if ( preg_match('/PO\./si', $suburb) ) { $error = true; } if ($error) { $this->enabled = false; } } // eof: block PO BOX addresses in $order->delivery['street_address'] or $order->delivery['suburb'] if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_UPS_ZONE > 0) ) {
Linda McGrath
If you have to think ... you haven't been zenned ...
Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!
Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
Officially PayPal-Certified! Just click here
Try our Zen Cart Recommended Services - Hosting, Payment and more ...
Signup for our Announcements Forums to stay up to date on important changes and updates!
Thank you, I tried it in flat.php as a test because UPS isn't actually installed yet, and kept getting this log error:
This is that section of code in flat.php, with line 69 highlighted in red:PHP Parse error: syntax error, unexpected 'if' (T_IF), expecting function (T_FUNCTION) in /***/public_html/includes/modules/shipping/flat.php on line 69
Code:// disable only when entire cart is free shipping if (zen_get_shipping_enabled($this->code)) { $this->enabled = ((MODULE_SHIPPING_FLAT_STATUS == 'True') ? true : false); } // bof: block PO BOX addresses in $order->delivery['street_address'] or $order->delivery['suburb'] if (!IS_ADMIN_FLAG) { global $order; $street_address = $order->delivery['street_address']; // BEGIN PO Box Ban street address if ( preg_match('/PO BOX/si', $street_address) ) { $error = true; } else if ( preg_match('/BOX/si', $street_address) ) { $error = true; } else if ( preg_match('/POBOX/si', $street_address) ) { $error = true; } else if ( preg_match('/P\.O\./si', $street_address) ) { $error = true; } else if ( preg_match('/P\.O/si', $street_address) ) { $error = true; } else if ( preg_match('/PO\./si', $street_address) ) { $error = true; } $suburb = $order->delivery['suburb']; // BEGIN PO Box Ban suburb if ( preg_match('/PO BOX/si', $suburb) ) { $error = true; } else if ( preg_match('/BOX/si', $suburb) ) { $error = true; } else if ( preg_match('/POBOX/si', $suburb) ) { $error = true; } else if ( preg_match('/P\.O\./si', $suburb) ) { $error = true; } else if ( preg_match('/P\.O/si', $suburb) ) { $error = true; } else if ( preg_match('/PO\./si', $suburb) ) { $error = true; } if ($error) { $this->enabled = false; } } // eof: block PO BOX addresses in $order->delivery['street_address'] or $order->delivery['suburb'] if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FLAT_ZONE > 0) ) {
Last edited by Danielle; 6 Aug 2014 at 06:08 PM.
Check the code that I posted as your code looks like you missed a chunk ...
Linda McGrath
If you have to think ... you haven't been zenned ...
Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!
Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
Officially PayPal-Certified! Just click here
Try our Zen Cart Recommended Services - Hosting, Payment and more ...
Signup for our Announcements Forums to stay up to date on important changes and updates!
I see what looks so odd, you have all the code on 1 line for:
Try putting the code like I have it as it looks like you have turned the start of the code into a comment ...Code:// bof: block PO BOX addresses in $order->delivery['street_address'] or $order->delivery['suburb'] if (!IS_ADMIN_FLAG) { global $order; $street_address = $order->delivery['street_address'];
Linda McGrath
If you have to think ... you haven't been zenned ...
Did YOU buy the Zen Cart Team a cup of coffee and a donut today? Just click here to support the Zen Cart Team!!
Are you using the latest? Perhaps you've a problem that's fixed in the latest version: [Upgrade today!]
Officially PayPal-Certified! Just click here
Try our Zen Cart Recommended Services - Hosting, Payment and more ...
Signup for our Announcements Forums to stay up to date on important changes and updates!