Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static function deliveryRestrictions($types): string
- {
- $types = Model_Product::getDeliveryTypeRestriction($types, true);
- $restrictions = [];
- foreach ($types as $type) {
- $restrictions[$type] = $type;
- }
- $countTypes = count($types);
- $courierTypes = [
- Model_Delivery::DELIVERY_TYPE_COURIER_SPSR,
- Model_Delivery::DELIVERY_TYPE_COURIER_DPD,
- Model_Delivery::DELIVERY_TYPE_COURIER_IML,
- Model_Delivery::DELIVERY_TYPE_COURIER_ONLINE,
- ];
- $countCourierTypes = count(array_intersect($types, $courierTypes));
- $mamsyDeliveryZones = '<span class="gray">*Москва и МО, Санкт-Петербург и ЛО, Екатеринбург и СО</span>';
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_COURIER_MAMSY],
- $restrictions[Model_Delivery::DELIVERY_TYPE_PICKUP_MAMSY]
- )) {
- // Комбинации с СПСР(и/или DPD и/или Курьер IML)
- if ($countCourierTypes > 0) {
- if ($countCourierTypes + 2 == $countTypes) {
- // Курьер Мамси + Самовывоз + СПСР(и/или DPD и/или Курьер IML)
- return 'Почтовая пересылка данного товара и доставка в <a target="_blank" href="/siteinfo/delivery/#pickPoint">
- постаматы и пункты выдачи PickPoint</a>, Hermes и IML не осуществляется.';
- }
- if ($countCourierTypes + 3 == $countTypes) {
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_POST_RUSSIANPOST])) {
- // Курьер Мамси + Самовывоз + СПСР(и/или DPD и/или Курьер IML) + Почта России
- return 'Доставка в некоторые <a target="_blank" href="/citys/">города</a> осуществляется только Почтой России.<br>
- Доставка через <a target="_blank" href="/siteinfo/delivery/#pickPoint">постаматы и пункты выдачи PickPoint</a>, Hermes и IML не осуществляется.';
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMES])) {
- // Курьер Мамси + Самовывоз + СПСР(и/или DPD и/или Курьер IML) + Hermes
- return 'Почтовая пересылка данного товара и доставка в <a target="_blank" href="/siteinfo/delivery/#pickPoint">
- постаматы и пункты выдачи PickPoint</a> и IML не осуществляется.';
- }
- }
- if ($countCourierTypes + 4 == $countTypes) {
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_IML],
- $restrictions[Model_Delivery::DELIVERY_TYPE_POST_RUSSIANPOST]
- )) {
- // Курьер Мамси + Самовывоз + СПСР(и/или DPD и/или Курьер IML) + Почта России + ПВЗ IML
- return 'Доставка в некоторые <a target="_blank" href="/citys/">города</a> осуществляется только Почтой России.<br>
- Доставка через <a target="_blank" href="/siteinfo/delivery/#pickPoint">постаматы и пункты выдачи PickPoint</a> и Hermes не осуществляется.';
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_PICKPOINT],
- $restrictions[Model_Delivery::DELIVERY_TYPE_POST_RUSSIANPOST]
- )) {
- // Курьер Мамси + Самовывоз + СПСР(и/или DPD и/или Курьер IML) + Почта России + Pickpoint
- return 'Доставка в некоторые <a target="_blank" href="/citys/">города</a> осуществляется только Почтой России.<br>
- Доставка через пункты выдачи Hermes и IML не осуществляется.';
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMES],
- $restrictions[Model_Delivery::DELIVERY_TYPE_POST_RUSSIANPOST]
- )) {
- // Курьер Мамси + Самовывоз + СПСР(и/или DPD и/или Курьер IML) + Почта России + Hermes
- return 'Доставка в некоторые <a target="_blank" href="/citys/">города</a> осуществляется только Почтой России.<br>
- Доставка через <a target="_blank" href="/siteinfo/delivery/#pickPoint">постаматы и пункты выдачи PickPoint</a> и IML не осуществляется.';
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_COURIER_DHL],
- $restrictions[Model_Delivery::DELIVERY_TYPE_POST_RUSSIANPOST]
- )) {
- // Курьер Мамси + Самовывоз + Почта России + СПСР(и/или DPD и/или Курьер IML) + DHL
- return 'Доставка через <a target="_blank" href="/siteinfo/delivery/#pickPoint">постаматы и пункты выдачи PickPoint</a>, Hermes и IML не осуществляется.';
- }
- }
- if ($countCourierTypes + 6 == $countTypes && isset($restrictions[Model_Delivery::DELIVERY_TYPE_POST_RUSSIANPOST],
- $restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMES],
- $restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_IML],
- $restrictions[Model_Delivery::DELIVERY_TYPE_PICKPOINT]
- )) {
- // Курьер Мамси + Самовывоз + Почта России + СПСР(и/или DPD и/или Курьер IML) + Пикпоинт + ПВЗ IML + Hermes
- return 'Доставка в <a target="_blank" href="/only-russian-post/">некоторые города</a> осуществляется только Почтой России.<br>
- На доставку в другие регионы ограничений нет.';
- }
- }
- switch ($countTypes) {
- case 2:
- // Курьер Мамси + Самовывоз
- return 'Доставка осуществляется только в ряд регионов<span class="gray">*</span>.<br>'
- . $mamsyDeliveryZones;
- break;
- case 3:
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_COURIER_JDE])) {
- // Курьер Мамси + Самовывоз + ЖДЭ
- return 'Почтовая пересылка данного товара невозможна.<br>
- Курьерская доставка осуществляется только в ряд регионов<span class="gray">*</span>.<br>'
- . $mamsyDeliveryZones;
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMES])) {
- // Курьер Мамси + Самовывоз + Hermes
- return 'Доставка в ряд регионов<span class="gray">*</span> - курьерами и через пункты выдачи Mamsy.<br>
- Доставка в другие области - через пункты выдачи Hermes.<br>'
- . $mamsyDeliveryZones;
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_PICKPOINT])) {
- // Курьер Мамси + Самовывоз + Пикпоинт
- return 'Доставка в ряд регионов<span class="gray">*</span> - курьерами и через пункты выдачи Mamsy.<br>
- Доставка в другие области - через <a target="_blank" href="/siteinfo/delivery/#pickPoint">постаматы и пункты выдачи PickPoint.</a><br>'
- . $mamsyDeliveryZones;
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_IML])) {
- // Курьер Мамси + Самовывоз + ПВЗ IML
- return 'Доставка в ряд регионов<span class="gray">*</span> - курьерами и через пункты выдачи Mamsy.<br>
- Доставка в другие области - через пункты выдачи IML.<br>'
- . $mamsyDeliveryZones;
- }
- break;
- case 4:
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMES],
- $restrictions[Model_Delivery::DELIVERY_TYPE_PICKPOINT]
- )) {
- // Курьер Мамси + Самовывоз + Пикпоинт + Hermes
- return 'Доставка в ряд регионов<span class="gray">*</span> - курьерами и через пункты выдачи Mamsy.<br>
- Доставка в другие области - через <a target="_blank" href="/siteinfo/delivery/#pickPoint">постаматы и пункты выдачи PickPoint</a> и Hermes.<br>'
- . $mamsyDeliveryZones;
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_PICKPOINT],
- $restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_IML]
- )) {
- // Курьер Мамси + Самовывоз + Пикпоинт + ПВЗ IML
- return 'Доставка в ряд регионов<span class="gray">*</span> - курьерами и через пункты выдачи Mamsy.<br>
- Доставка в другие области - через <a target="_blank" href="/siteinfo/delivery/#pickPoint">постаматы и пункты выдачи PickPoint</a> и IML.<br>'
- . $mamsyDeliveryZones;
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_IML],
- $restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMES]
- )) {
- // Курьер Мамси + Самовывоз + Hermes + ПВЗ IML
- return 'Доставка в ряд регионов<span class="gray">*</span> - курьерами и через пункты выдачи Mamsy.<br>
- Доставка в другие области - через пункты выдачи Hermes и IML.<br>'
- . $mamsyDeliveryZones;
- }
- break;
- case 5:
- // Курьер Мамси + Самовывоз + Пикпоинт + ПВЗ IML + Hermes
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMES],
- $restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_IML],
- $restrictions[Model_Delivery::DELIVERY_TYPE_PICKPOINT]
- )) {
- return 'Доставка в ряд регионов<span class="gray">*</span> - курьерами и через пункты выдачи Mamsy.<br>
- Доставка в другие области - через <a target="_blank" href="/siteinfo/delivery/#pickPoint">постаматы и пункты выдачи PickPoint</a>, Hermes и IML.<br>'
- . $mamsyDeliveryZones;
- }
- break;
- }
- // Если ничего не подошло, но есть Курьер Мамси + Самовывоз + Почта России
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_POST_RUSSIANPOST])) {
- return 'Доставка в ряд регионов<span class="gray">*</span> - курьерами и через пункты выдачи Mamsy.<br>
- Доставка в другие области - Почтой России.<br>' . $mamsyDeliveryZones;
- }
- } else {
- switch ($countTypes) {
- case 1:
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_COURIER_DPDGS])) {
- return "Внимание! Оплата возможна только при доставке. Доставка осуществляется только курьерами DPD.";
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMESGS])) {
- return "Внимание! Оплата возможна только при доставке. Доставка осуществляется только через пункты выдачи заказов Hermes.";
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_PICKPOINTGS])) {
- return "Внимание! Оплата возможна только при доставке. Доставка осуществляется только через постаматы и пункты выдачи заказов PickPoint.";
- }
- break;
- case 2:
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_COURIER_DPDGS],
- $restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMESGS]
- )) {
- return "Внимание! Оплата возможна только при доставке. Доставка осуществляется только курьерами DPD и через пункты выдачи заказов Hermes.";
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_COURIER_DPDGS],
- $restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_PICKPOINTGS]
- )) {
- return "Внимание! Оплата возможна только при доставке. Доставка осуществляется только курьерами DPD и через пункты выдачи заказов PickPoint.";
- }
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMESGS],
- $restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_PICKPOINTGS]
- )) {
- return "Внимание! Оплата возможна только при доставке. Доставка осуществляется только через постаматы и пункты выдачи заказов PickPoint и Hermes.";
- }
- break;
- case 3:
- if (isset($restrictions[Model_Delivery::DELIVERY_TYPE_COURIER_DPDGS],
- $restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_HERMESGS],
- $restrictions[Model_Delivery::DELIVERY_TYPE_DELIVERYPOINT_PICKPOINTGS]
- )) {
- return "Внимание! Оплата возможна только при доставке. Доставка осуществляется только курьерами DPD, через постаматы и пункты выдачи заказов PickPoint и Hermes.";
- }
- }
- }
- return '';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement