public function hookUpdateCarrier($params) { $id_reference = (int) DpdGroupCarrier::getReferenceByIdCarrier((int) $params['id_carrier']); $id_carrier = (int) $params['carrier']->id; $dpdgroup_carrier = new DpdGroupCarrier(); $dpdgroup_carrier->id_carrier = (int) $id_carrier; $dpdgroup_carrier->id_reference = (int) $id_reference; $dpdgroup_carrier->save(); }
public static function install($carrier_type, $carrier_name) { $id_carrier = (int) Configuration::get($carrier_type); if (version_compare(_PS_VERSION_, '1.5', '<')) { $id_carrier = (int) DpdGroupCarrier::getIdCarrierByReference((int) $id_carrier); $carrier = new Carrier((int) $id_carrier); } else { $carrier = Carrier::getCarrierByReference($id_carrier); } if ($id_carrier && Validate::isLoadedObject($carrier)) { if (!$carrier->deleted) { return true; } else { $carrier->deleted = 0; return (bool) $carrier->save(); } } $service = new DpdGroupService(); $carrier = new Carrier(); $carrier->name = $carrier_name; $carrier->active = 1; $carrier->is_free = 0; $carrier->shipping_handling = 1; $carrier->shipping_external = 1; $carrier->shipping_method = 1; $carrier->max_width = 0; $carrier->max_height = 0; $carrier->max_weight = 0; $carrier->grade = 0; $carrier->is_module = 1; $carrier->need_range = 1; $carrier->range_behavior = 1; $carrier->external_module_name = $service->module_instance->name; $carrier->url = _DPDGROUP_TRACKING_URL_; $delay = array(); foreach (Language::getLanguages(false) as $language) { $delay[$language['id_lang']] = $carrier_name; } $carrier->delay = $delay; if (!$carrier->save()) { return false; } $dpdgroup_carrier = new DpdGroupCarrier(); $dpdgroup_carrier->id_carrier = (int) $carrier->id; $dpdgroup_carrier->id_reference = (int) $carrier->id; if (!$dpdgroup_carrier->save()) { return false; } foreach ($service->continents as $continent => $value) { if ($value && !$carrier->addZone($continent)) { return false; } } $groups = array(); foreach (Group::getGroups((int) Context::getContext()->language->id) as $group) { $groups[] = $group['id_group']; } if (version_compare(_PS_VERSION_, '1.5.5', '<')) { if (!self::setGroups14((int) $carrier->id, $groups)) { return false; } } else { if (!$carrier->setGroups($groups)) { return false; } } if (!Configuration::updateValue($carrier_type, (int) $carrier->id)) { return false; } return true; }