sujithsam 0 Posted August 13, 2015 I am building a module to display shipping carriers based on users's zipcode on checkout. I don't want to show carriers that do not have delivery in that zipcode. I am using "hookDisplayBeforeCarrier" hook and modify delivery_option_list variable.But this is not working.. still it shows all carriers. Here is my code.. <?php public function hookDisplayBeforeCarrier($params) { $address_id = $params['cart']->id_address_delivery; $zip = CheckCode::getZipAddress($address_id); $res = CheckCode::my_checkCode($zip); $crr= array(); foreach($res as $r){ $crr[] = $r['id_carrier']; } $carriers = $this->context->smarty->getVariable('carriers'); unset($carriers->value[1]); $delivery = $this->context->smarty->getVariable('delivery_option_list'); $delivery_option_list = $delivery->value; foreach($delivery_option_list as $id_address => $carrier_list_raw) { foreach($carrier_list_raw as $key => $carrier_list) { foreach($carrier_list['carrier_list'] as $id_carrier => $carrier) { $car = &$delivery_option_list[$id_address]; if(!in_array($id_carrier,$crr)){ unset($car[$key]); } } } } $this->context->smarty->assign('carriers', $carriers); $this->context->smarty->assign('delivery_option_list', $delivery); } ?> Share this post Link to post Share on other sites