Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Bob Terveuren

Members
  • Posts

    496
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by Bob Terveuren

  1. Hello Looking at http://addons.oscommerce.com/info/8568 ??? I've not used this at all but looking at the code - there are two files in the folder ext/modules/payment/icepay - one is notify.php and the other result.php If a customer is getting sent to checkout_success OK then we can assume the folder is readable - if not then that may be your problem. If they are then your problem lies within the file notify.php. Try opening it directly in a browser - it should display 'Postback script properly installed' If you get that then it means Icepay can send data to your server so just start working down through the code. The module seems to weave in and out of osCommerce code a lot probably as it has been ported over from icepay standard code so it is tricky to pin down what's where - what is visible is a line at line 54 $payment_module->doLogging("IP not in range"); I'd use that throughout the file to log any screw ups e.g. line 58 //Check postback if (!$payment_module->OnPostback()) die("Invalid postback data"); change to //Check postback if (!$payment_module->OnPostback()) { $payment_module->doLogging("Invalid postback data); die("Invalid postback data"); } or you could wrap each chunk of code in try{} catch{} pairs and use $payment_module->doLogging in the catch{} to log the exception
  2. Hi - click the link that says 'show 3more downloads' and you'll get to see the stuff you need
  3. Hi - given that UK shipping runs by postcode and county names are pretty superfluous then you could try setting up UK addresses with no county - that may fix it - I've experimented with this in a vanilla store and it looks OK but I did not commit to complete the sale; go to Locations/Taxes -> Countries -> United Kingdom change the address format to 5 Config -> Customers Details -> make state false See if that works, if it does then you could look for a way of making state not required or maybe rename suburb to state in the create account page for non paypal express punters (or just live without it - I don't know if any couriers require or need it 100%)
  4. Hi there Just managed to lose a load of typing here so excuse me for being brief. I do not know of anything that does this 'out there'- here's a back of the envelope thing to try... Pop two config entries into the database: INSERT INTO `configuration` (`configuration_id`, `configuration_title`, `configuration_key`, `configuration_value`, `configuration_description`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES (NULL, 'Store pickup only amount', 'SPU_SHIPPING_ONLY', '0', 'Disable shipping for orders total below this amount ', 7, 6, now(), '0000-00-00 00:00:00', NULL, NULL), (NULL, 'Store pickup filename', 'SPU_FILENAME', 'flat.php', 'The full filename of the module you want to enforce', 7, 7, now(), '0000-00-00 00:00:00', NULL, NULL); Leave the first one at zero to make no changes or set to the value below which you want to force SPU or whatever. The second one you need to enter the full filename of the module you want to enforce. (I'm using flat.php to test). then you need to edit includes/classes/shipping.php - you could pop something similar into checkout_shipping.php instead - in the class file make $order a global then add in the extra code - this will look to see if (1) your module filename entered is in the list of modules (2) the order amount is not zero (3)the order amount is below your setting - if so then it will leave the proposed module in the list by itself. It'll also add a message using the line $_GET['info_message']='Sorry you have to come and collect it'; but that is a total hack as (1) it'll overwrite any $_GET['info_message'] that may have been out there and (2) it needs to have a proper language definition built in (even better something like 'To qualify for home delivery you need to spend over DK 99999') - or something like that. Finally - experiment offline someplace ;-) class shipping { var $modules; // class constructor function shipping($module = '') { global $language, $PHP_SELF, $order;//<----- add $order here ########### if (defined('MODULE_SHIPPING_INSTALLED') && tep_not_null(MODULE_SHIPPING_INSTALLED)) { $this->modules = explode(';', MODULE_SHIPPING_INSTALLED); ##################################### new code ################################### //we have an array of the shipping files so if(defined('SPU_SHIPPING_ONLY') && defined('SPU_FILENAME') && SPU_SHIPPING_ONLY >0 && in_array(trim(SPU_FILENAME),$this->modules) && $order->info['total']<SPU_SHIPPING_ONLY){ //we have a match, kill all others //setup a single value array $module_to_keep=array(trim(SPU_FILENAME)); //intersect// $this->modules=array_intersect($module_to_keep,$this->modules); //hack the $_GET $_GET['info_message']='Sorry you have to come and collect it';//<-- be better to have a proper language file definition here } #################################### end new code ##################################
  5. Hi all No experience of Braintree but I have written Stripe modules for various carts: 1) You should get an SSL https://stripe.com/help/ssl - their take is about half way down and my personal take is that I would not input card data on a page that was not SSL (stripe.js gets around the 'nothing hits your server' by working 100% within the clients' browsers and you should not have a name attribute on the form field) 2) OK - up to you on the SSL - Stripe are cheaper that payPal but they will 'sit' on your money for 7 days before passing it onto your bank account - if that causes problems for you then bear that in mind
  6. Hi - I think both modules (certainly Stripe) use the onbject $order->info[total] to calculate how much to charge, in turn that is composed in the orders class using the order_total modules. Couple of things - check that whichever coupon system you have installed (there is no native one so you have an addon of some sort) - there would have been an edit someplace into the orders class - make sure that's done and also the ot_coupon module should be installed under admin > modules > order total (may be called summat else but ot_coupon stars in the kgt coupons) addon Check the order totals are in the correct sort order - there's usully some blurb in the documents for the payment module Is the total on checkout_confirmation what you would expect to see?
  7. Hi If the ncludes/languages/english/modules/payment/paypal_express.php file is on the server (regardless of contents) then it should be accessible from the orders class - it would not throw the original error that you highlighted above though. I'm not au fait with the new module but there must be some way that it calls the new language file, if not then you could try a sticking plaster in the includes/languages file: <?php /* $Id$ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2014 osCommerce Released under the GNU General Public License */ // language definitions have been moved to: // catalog/includes/apps/paypal/languages/english/modules/EC/EC.php include_once(DIR_FS_CATALOG.'includes/apps/paypal/languages/english/modules/EC/EC.php'); ?>
  8. Hi - the $include_modules[$i]['file'] bit is maybe coming up empty for some reason - I'd expect to see an error message like: Warning: include_once(/srv/disk2/951263/www/admiralredbeard.com/catalog/includes/languages/english/modules/payment/paypal_std.php): failed to open stream: Success in /srv/disk2/951263/www/admiralredbeard.com/catalog/includes/classes/payment.php on line 38 rather than Warning: include_once(/srv/disk2/951263/www/admiralredbeard.com/catalog/includes/languages/english/modules/payment): failed to open stream: Success in /srv/disk2/951263/www/admiralredbeard.com/catalog/includes/classes/payment.php on line 38 Have a look at the $include_modules array and see what you have there
  9. Hi No sppc here so not able to verify but how about; $order_query = tep_db_query("select orders_status_name, customers_name, customers_company, customers_street_address, customers_suburb, customers_city, customers_postcode, customers_state, customers_country, o.customers_telephone, o.customers_email_address, orders_status, customers_address_format_id, customers_group_name, delivery_name, delivery_company, delivery_street_address, delivery_suburb, delivery_city, delivery_postcode, delivery_state, delivery_country, delivery_address_format_id, billing_name, billing_company, billing_street_address, billing_suburb, billing_city, billing_postcode, billing_state, billing_country, billing_address_format_id, payment_method, cc_type, cc_owner, cc_number, cc_expires, currency, currency_value, purchase_order_number, date_purchased, orders_status, last_modified from " . TABLE_ORDERS . " o left join " . TABLE_CUSTOMERS . " using(customers_id) left join " . TABLE_CUSTOMERS_GROUPS . " using(customers_group_id) left join " . TABLE_ORDERS_STATUS . " s on (s.orders_status_id=orders_id) where orders_id = '" . (int)$order_id . "' and s.language_id = '" . (int)$languages_id . "'");
  10. Hi there Jack @@Psytanium Here's the code I use on a 2.3.4 site - has the mysqli stuff in there <?php /* Auto Update Currencies v 1.0 by Jack_mcs - oscommerce-solution.com osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ ///////CONFIGURABLE VARIABLES/////////// define('DEFAULT_CURRENCY', 'GBP'); define('HOURS_BETWEEN_UPDATES' , '24'); //if more than one day, multiply days by hours so the setting for two days would be 2 * 24 = 48 define('REPORT_NO_UPDATE', true); //if the currencies are not updated since they have already been updated, don't report it. Set to false to always receive this message define('NO_REPORT', 0); define('SCREEN', 1); define('EMAIL', 2); define('SCREEN_EMAIL', 3); $output_report = EMAIL; ///////////////END////////////////////// define('CURRENCY_SERVER_PRIMARY', 'xe'); define('CURRENCY_SERVER_BACKUP', 'oanda'); require_once('includes/configure.php'); require_once(DIR_WS_FUNCTIONS . 'localization.php'); $link = mysqli_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD,DB_DATABASE) or die("Unable to connect to database server!"); //mysql_select_db(DB_DATABASE); $report = ''; $updated = array(); $rate = ''; $today = date("Y-m-d H:i:s"); // The exact time $currency_query = mysqli_query($link,"select currencies_id, code, title, last_updated from currencies" ) or die(mysql_error()); while ($currency = mysqli_fetch_array($currency_query, MYSQL_ASSOC)) { { $quote_function = 'quote_' . CURRENCY_SERVER_PRIMARY . '_currency'; $rate = $quote_function($currency['code']); if (empty($rate)) { $quote_function = 'quote_' . CURRENCY_SERVER_BACKUP . '_currency'; $rate = $quote_function($currency['code']); } if (!empty($rate)) { $updated[] = 'The exchange rate for ' . $currency['title'] . ' <b>WAS</b> successfully updated.' . "\n"; //if ($rate !=1){$rate=$rate*1.02;} mysqli_query($link,"update currencies set value = '" . $rate . "', last_updated = now() where currencies_id = '" . (int)$currency['currencies_id'] . "'"); } else $updated[] = 'The exchange rate for ' . $currency['title'] . ' <b>WAS NOT</b> successfully updated. It was last updated on ' . $currency['last_updated'] . "\n"; } } if ($output_report > NO_REPORT) { $report = 'Currencies Update Report' . "\n\n"; $configuration_query = mysqli_query($link,"select configuration_value as store_name from configuration where configuration_key = 'STORE_NAME' limit 1") or die(mysqli_error()); $configuration = mysqli_fetch_array($configuration_query, MYSQL_ASSOC); $report .= 'Currencies for ' . $configuration['store_name'] . ' updated on ' . date("D M j G:i:s Y") . "\n\n"; foreach ($updated as $changed) $report .= $changed; { echo str_replace("\n", '<br>', $report); } } mysqli_close($link); ?> n.b I have an extra quick and dirty line in there (if ($rate !=1){$rate=$rate*1.02;}) that adds 2% markup on the exchange rate as my payment processor adds that in as their premium over and above the bank rates. edit: commented out that line but left it in there FYI
  11. Hi Chris Go to admin -> configuration -> My Store -> you'll see country and zone there for editing (and also display prices with tax)
  12. Hi I think your set_function column in the configuration table has been set to 'not NULL' somewhere along the line - you could either swith it back to a default NULL (as it is in a vanilla install) or edit the sql query to: INSERT INTO configuration ( configuration_id , configuration_title , configuration_key , configuration_value , configuration_description , configuration_group_id , sort_order , last_modified , date_added , use_function ) VALUES ( '', 'Max Wish List', 'MAX_DISPLAY_WISHLIST_PRODUCTS', '12', 'How many wish list items to show per page on the main wishlist.php file', '12954', '', now(), now(), NULL ) On my local copy the NULL can be changed using ALTER TABLE `configuration` CHANGE `set_function` `set_function` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL;
  13. Hi I've had another look at the code and these variables: 'x_account_number' => $raw[50], 'x_card_type' => $raw[51], 'x_split_tender_id' => $raw[52], 'x_prepaid_requested_amount' => $raw[53], 'x_prepaid_balance_on_card' => $raw[54]); that are taken from $raw[50] - $raw[54] are not actually used anywhere within the payment module (or, indeed anywhere else in a stock osCommerce) so removing them should not cause any problem
  14. Hi You could just change that section of the code to remove any mention of $raw[50] to [54] if ( count($raw) > 39 ) {//I'd even consider just making this if(count($raw){ $response = array('x_response_code' => $raw[0], 'x_response_subcode' => $raw[1], 'x_response_reason_code' => $raw[2], 'x_response_reason_text' => $raw[3], 'x_auth_code' => $raw[4], 'x_avs_code' => $raw[5], 'x_trans_id' => $raw[6], 'x_invoice_num' => $raw[7], 'x_description' => $raw[8], 'x_amount' => $raw[9], 'x_method' => $raw[10], 'x_type' => $raw[11], 'x_cust_id' => $raw[12], 'x_first_name' => $raw[13], 'x_last_name' => $raw[14], 'x_company' => $raw[15], 'x_address' => $raw[16], 'x_city' => $raw[17], 'x_state' => $raw[18], 'x_zip' => $raw[19], 'x_country' => $raw[20], 'x_phone' => $raw[21], 'x_fax' => $raw[22], 'x_email' => $raw[23], 'x_ship_to_first_name' => $raw[24], 'x_ship_to_last_name' => $raw[25], 'x_ship_to_company' => $raw[26], 'x_ship_to_address' => $raw[27], 'x_ship_to_city' => $raw[28], 'x_ship_to_state' => $raw[29], 'x_ship_to_zip' => $raw[30], 'x_ship_to_country' => $raw[31], 'x_tax' => $raw[32], 'x_duty' => $raw[33], 'x_freight' => $raw[34], 'x_tax_exempt' => $raw[35], 'x_po_num' => $raw[36], 'x_MD5_Hash' => $raw[37], 'x_cvv2_resp_code' => $raw[38], 'x_cavv_response' => $raw[39]; unset($raw); } } Reading this http://www.authorize.net/support/AIM_apiupdates.pdf mentions that you can force a partial authorisation - see if there's someplace in the AIM merchant dashboard that you can do so?
  15. Hi there I can tell you why maybe this is happening and I have a quick sticking plaster 'fix' that may help PayPal will send your customers to their 'new' mobile express checkout - in turn that will send your customers back to your site via an HTTP GET method. The desktop checkout at PayPal will use a HTTP POST return The PayPal Standard module file in osCommerce traps the return in the before_process() function: function before_process() { global $customer_id, $order, $order_totals, $sendto, $billto, $languages_id, $payment, $currencies, $cart, $cart_PayPal_Standard_ID, $payment, $HTTP_GET_VARS, $HTTP_POST_VARS, $messageStack; $result = false; if ( isset($HTTP_POST_VARS['receiver_email']) && (($HTTP_POST_VARS['receiver_email'] == MODULE_PAYMENT_PAYPAL_STANDARD_ID) || (defined('MODULE_PAYMENT_PAYPAL_STANDARD_PRIMARY_ID') && tep_not_null(MODULE_PAYMENT_PAYPAL_STANDARD_PRIMARY_ID) && ($HTTP_POST_VARS['receiver_email'] == MODULE_PAYMENT_PAYPAL_STANDARD_PRIMARY_ID))) ) { $parameters = 'cmd=_notify-validate'; foreach ($HTTP_POST_VARS as $key => $value) { $parameters .= '&' . $key . '=' . urlencode(stripslashes($value)); } $result = $this->sendTransactionToGateway($this->form_action_url, $parameters); } if ($result != 'VERIFIED') { if (defined('MODULE_PAYMENT_PAYPAL_STANDARD_TEXT_INVALID_TRANSACTION')) { $messageStack->add_session('header', MODULE_PAYMENT_PAYPAL_STANDARD_TEXT_INVALID_TRANSACTION); } $this->sendDebugEmail($result); tep_redirect(tep_href_link(FILENAME_SHOPPING_CART)); } as there is no POST data to check line 512 above will always see a GET return as !='VERIFIED' so your customer gets booted back to the shopping cart despite having paid It is possible to get some data returned from PayPal by GET (you setup PDT on your account) however that does not hold the same values as a POST return (instead it sends back a token that you need to verify) Attached is some new code that replaces the stock includes/modules/payment/paypal_standard.php - you will need to go to your store admin, uninstall Paypal, then replace the file and reinstall. There is a new field in the admin that wants you to enter a PDT code - get that code by following the advice here (or Google it) When you setup the PDT you'll need to set the auto return to 'on' and enter a valid looking url at PayPal (it can be anything - the osCommerce code over rides it but PayPal will insist you pop something in there) If properly setup this will send your customers back with a PDT GET url which includes a token - there's some new code in the file that checks that for you and will update the order. It will add a comment that an order total does not match PayPal e.g. PayPal Verified [Transaction ID: 4LR5883905582730T; Completed (Verified; $1,313.37); PayPal transaction value (1313.37) does not match order value (1,313.37)] Just ignore that bit! This is a patch on the standard file - it is used at your own risk and the code really needs tidying up by one of the Core Team. I have tested this on the PayPal Sandbox only. Using Chrome on a desktop you can spoof a user agent for a mobile to check what happens paypal_standard.php
  16. Hi I don't see anything added that would interfere with Stripe unless UPS/USPS 'does' something at checkout_confirmation. You could try switching them 'off' and see if it works. I've ran a test through on a vanilla 2.3.4 using Stripe with no tokens and payment went OK - here's the data collected using Developer Tools in a Chrome browser - it may help if you could do something similar and see what you get - I have tried all flavours of the module token/no token etc etc and they all work 1. Click 'confirm order' on checkout_confirmation: Remote Address:50.18.212.157:443 Request URL:https://api.stripe.com/v1/tokens?card[name]=Test+Developer&card[number]=4242424242424242&card[cvc]=123&card[address_line1]=1234+NOwhere&card[address_city]=nowhere&card[address_zip]=65757&card[address_state]=Texas&card[address_country]=US&card[exp_month]=01&card[exp_year]=2015&key=pk_test_IxZRbLVTHQ2YYGRg1q4kUMrB&callback=sjsonp1409857382443&_method=POST Request Method:GET Status Code:200 OK Request Headersview source Accept:*/* Accept-Encoding:gzip,deflate Accept-Language:en-US,en;q=0.8 Connection:keep-alive Host:api.stripe.com Referer:http://localhost/osc234/checkout_confirmation.php User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.103 Safari/537.36 Query String Parametersview sourceview URL encoded card[name]:Test Developer card[number]:4242424242424242 card[cvc]:123 card[address_line1]:1234 NOwhere card[address_city]:nowhere card[address_zip]:65757 card[address_state]:Texas card[address_country]:US card[exp_month]:01 card[exp_year]:2015 key:pk_test_IxZRbLVTHQ2YYGRg1q4kUMrB callback:sjsonp1409857382443 _method:POST Response Headersview source Access-Control-Allow-Credentials:true Access-Control-Allow-Methods:GET, POST, HEAD, OPTIONS, DELETE Access-Control-Max-Age:300 Cache-Control:no-cache, no-store Content-Encoding:gzip Content-Type:application/javascript;charset=utf-8 Date:Thu, 04 Sep 2014 19:03:40 GMT Server:nginx Strict-Transport-Security:max-age=31556926; includeSubDomains Stripe-Version:2014-05-19 Transfer-Encoding:chunked Vary:Accept-Encoding Stripe sends back 'OK' and this gets sent to checkout_process: Remote Address:127.0.0.1:80 Request URL:http://localhost/osc234/checkout_process.php Request Method:POST Status Code:302 Found Request Headersview source Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip,deflate Accept-Language:en-US,en;q=0.8 Cache-Control:max-age=0 Connection:keep-alive Content-Length:30 Content-Type:application/x-www-form-urlencoded Cookie:osCsid=aikn3047kks0398nf0cem6cg01 Host:localhost Origin:http://localhost Referer:http://localhost/osc234/checkout_confirmation.php User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.103 Safari/537.36 Form Dataview sourceview URL encoded stripeToken:tok_4iWZJ5v9AseUTF Response Headersview source Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Connection:Keep-Alive Content-Length:0 Content-Type:text/html Date:Thu, 04 Sep 2014 19:03:37 GMT Expires:Thu, 19 Nov 1981 08:52:00 GMT Keep-Alive:timeout=5, max=100 Location:http://localhost/osc234/checkout_success.php Pragma:no-cache Server:Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.19 X-Powered-By:PHP/5.4.19
  17. Hi Go to Stripe, find your dashboard for live or test mode (depending what your store is using) and then look for 'Logs' in the left column (at the foot under Requests) You'll maybe find some useful info in there
  18. Hi - you could try using $_REQUEST in place of $_GET/$_POST - not as secure maybe but may do the trick http://php.net/manual/en/reserved.variables.request.php
  19. Hi You'll have something like this installed: http://addons.oscommerce.com/info/3698 Assuming that works and the only problem is that the MD5 needs changing to SHA then you need to go to the includes/modules/payment/luttokundo.php file - in the package above you'll find this: $tarkiste = MODULE_PAYMENT_LUOTTOKUNTA_USER_ID. $order_number . $price . '1' . MODULE_PAYMENT_LUOTTOKUNTA_SALAINEN_AVAIN; $mac=strtoupper(md5($tarkiste)); change that final line to $mac = hash('sha256', $tarkiste)
  20. Hi Thanks for getting back - sure enough I'd missed the part of http://addons.oscommerce.com/info/8578 that I should have imported for this - thanks
  21. Hi Rainer I've hit a snag with the latest iosc and Ultimate Seo Urls 5 Pro (http://addons.oscommerce.com/info/7704/v,23) both requested by a client (along with a large number of other add-ons but I thought to get these two running first) On a vanilla 2.3.4 oSC I was unable to get the mobile links operating correctly regardless of which add-on I installed first - the /mobile/ folder files would always lose a the '/mobile/' from the href value. I've gone through all the docs you supplied and this thread and couldn't find a solution - (knowing me I have overlooked something) however if the file includes/modules/ultimate_seo_urls5/includes/usu_general_functions.php is edited as shown below then the links will work (copying the changes you provide to the standard tep_href_link() function into the similar function with the SEO code If I have missed something in the docs - apologies. Changes below start at line 41 in the USU code: #### changes to href_link copied from the iOsc add-on ###### #### comment out the following seven lines ###### // if ($connection == 'NONSSL') { // $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG; // } elseif ($connection == 'SSL') { // if (ENABLE_SSL == true) { // $link = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG; // } else { // $link = HTTP_SERVER . DIR_WS_HTTP_CATALOG; #### new code as supplied by iosc (Raiwa) ##### defined('MOBILE_SESSION') ? $mobile_directory = HTTP_MOBILE_SERVER . DIR_WS_HTTP_MOBILE : $mobile_directory = HTTP_SERVER . DIR_WS_HTTP_CATALOG; defined('MOBILE_SESSION') ? $mobile_secure_directory = HTTPS_MOBILE_SERVER . DIR_WS_HTTPS_MOBILE : $mobile_secure_directory = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG; if ($connection == 'NONSSL') { $link = $mobile_directory; } elseif ($connection == 'SSL') { if (ENABLE_SSL == true) { $link = $mobile_secure_directory; } else { $link = $mobile_directory; ##### end changes #######
  22. Hi I think NETS is the old BBS? They had an old addon (five years ago) which may (or may not) still work - have a look here: http://addons.oscommerce.com/info/6999
  23. Hi there - on a vanilla 2.3.3.4 I cannot get it to do anything other than return to checkout_payment.php after editing or adding or changing an address - however on that page there is no option to edit products - any chance that you have an add-on that's conflicting?
  24. Hi You could try adding it in with a little edit before the line: if($free_pass == true) so that it switched free_pass to false // for free ship AK HA fix if ($order->delivery['country_id'] != STORE_COUNTRY && FREE_SHIPPING_TO_ALL_COUNTRIES == "false") { $free_pass = false; } elseif ($order->delivery['country_id'] == STORE_COUNTRY && $order->delivery['state'] == "Hawaii"){ $free_pass = false; } elseif ($order->delivery['country_id'] == STORE_COUNTRY && $order->delivery['state'] == "Alaska"){ $free_pass = false; } // End for free ship AK HA fix Alternatively try putting your original AK/HA fix in above the line if ( (tep_count_shipping_modules() > 0) || ($free_shipping == true) ) {
×
×
  • Create New...