Source of file PickUpOrDeliveryModifierForm.php

Size: 1,443 Bytes - Last Modified: 2021-12-23T10:40:43+00:00

/var/www/docs.ssmods.com/process/src/src/Forms/PickUpOrDeliveryModifierForm.php

123456789101112131415161718192021222324252627282930313233343536
<?php

namespace Sunnysideup\EcommerceDelivery\Forms;

use Sunnysideup\Ecommerce\Api\ShoppingCart;
use Sunnysideup\Ecommerce\Forms\OrderModifierForm;
use Sunnysideup\EcommerceDelivery\Model\PickUpOrDeliveryModifierOptions;
use Sunnysideup\EcommerceDelivery\Modifiers\PickUpOrDeliveryModifier;

class PickUpOrDeliveryModifierForm extends OrderModifierForm
{
    public function processOrderModifier($data, $form = null)
    {
        if (isset($data['PickupOrDeliveryType'])) {
            $newOption = (int) $data['PickupOrDeliveryType'];
            $newOptionObj = PickUpOrDeliveryModifierOptions::get_by_id($newOption);
            if ($newOptionObj) {
                $order = ShoppingCart::current_order();
                if ($order) {
                    $modifiers = $order->Modifiers(PickUpOrDeliveryModifier::class);
                    if ($modifiers) {
                        foreach ($modifiers as $modifier) {
                            $modifier->setOption($newOption);
                            $modifier->runUpdate();
                        }

                        return ShoppingCart::singleton()->setMessageAndReturn(_t('PickUpOrDeliveryModifier.UPDATED', 'Delivery option updated'), 'good');
                    }
                }
            }
        }

        return ShoppingCart::singleton()->setMessageAndReturn(_t('PickUpOrDeliveryModifier.UPDATED', 'Delivery option could NOT be updated'), 'bad');
    }
}