public function uninstall() { // Uninstall if (!parent::uninstall() || !Configuration::deleteByName('COURIERSERVICE_OVERCOST') || !Configuration::deleteByName('DELIVERYPOINTS_OVERCOST') || !$this->unregisterHook('updateCarrier') || !$this->unregisterHook('displayBackOfficeHeader') || !DpdCarrierOptions::uninstallDb() || !DpdDeliveryPoints::uninstallDb() || !DpdOrderOptions::uninstallDb() || !DpdDeliveryPrice::uninstallDb()) { // || !$this->removeBulkActionButtons() //Using this only if Overwrite using already other model! return false; } // Delete External Carrier $carrier1 = new Carrier((int) Configuration::get('COURIERSERVICE_CARRIER_ID')); $carrier2 = new Carrier((int) Configuration::get('DELIVERYPOINTS_CARRIER_ID')); // If external carrier is default set other one as default if (Configuration::get('PS_CARRIER_DEFAULT') == (int) $carrier1->id || Configuration::get('PS_CARRIER_DEFAULT') == (int) $carrier2->id) { $carriers_d = Carrier::getCarriers(Context::getContext()->cookie->id_lang, true, false, false, null, PS_CARRIERS_AND_CARRIER_MODULES_NEED_RANGE); foreach ($carriers_d as $carrier_d) { if ($carrier_d['active'] && !$carrier_d['deleted'] && $carrier_d['name'] != $this->_config['name']) { Configuration::updateValue('PS_CARRIER_DEFAULT', $carrier_d['id_carrier']); } } } // Then delete Carrier $carrier1->deleted = 1; $carrier2->deleted = 1; if (!$carrier1->update() || !$carrier2->update()) { return false; } $settings = array(self::CONST_PREFIX . 'ENABLED', self::CONST_PREFIX . 'SERVICE_USERNAME', self::CONST_PREFIX . 'SERVICE_USERPASS', self::CONST_PREFIX . 'SERVICE_USERID', self::CONST_PREFIX . 'API_URL', self::CONST_PREFIX . 'BTNSUBMIT', self::CONST_PREFIX . 'TAB', self::CONST_PREFIX . 'USERNAME'); foreach ($settings as $setting) { Configuration::deleteByName($setting); } $tab = new Tab(Tab::getIdFromClassName('AdminCallcarrier')); $tab->delete(); return true; }