Source of file ToastOrderExtension.php
Size: 3,036 Bytes - Last Modified: 2021-12-23T10:52:26+00:00
/var/www/docs.ssmods.com/process/src/code/ToastConfig/code/extensions/ToastOrderExtension.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | <?php /** * Class ToastCartExtension */ class ToastCartExtension extends DataExtension { /** * @param Address $address * @throws ValidationException * @throws null */ public function onSetShippingAddress($address) { /** ========================================= * @var SignUpMessage $record * ========================================*/ if ($recordID = Session::get('Toast.SignUpRecord')) { $record = SignUpMessage::get()->byID($recordID); if ($record && $record->exists()) { $record->setField('CartID', $this->owner->ID); if ($record->isChanged('CartID')) { $record->write(); } } } else { $postVars = Controller::curr()->getRequest()->postVars(); if (isset($postVars['FirstName']) && isset($postVars['Email'])) { $record = SignUpMessage::create(array( 'Name' => $postVars['FirstName'], 'Email' => $postVars['Email'], 'CartID' => $this->owner->ID )); $record->write(); } } } public function onAfterWrite() { parent::onAfterWrite(); /** ----------------------------------------- * Create Record * ----------------------------------------*/ /** ----------------------------------------- * Clear Abandoned Cart * ----------------------------------------*/ if ($this->owner->Status != 'Cart') { $record = SignUpMessage::get()->filter(array( 'Status' => 'New', 'CartID' => $this->owner->ID ))->first(); if ($record && $record->exists()) { $record->setField('Status', 'Processed'); $record->write(); } } if ($this->owner->Status == 'Cart') { if ($recordID = Session::get('Toast.SignUpRecord')) { $record = SignUpMessage::get()->byID($recordID); if ($record && $record->exists()) { $record->setField('CartID', $this->owner->ID); if ($record->isChanged('CartID')) { $record->write(); } } } elseif ($this->owner->Email) { if (!SignUpMessage::get()->filter(array( 'CartID' => $this->owner->ID ))->first() ) { $record = SignUpMessage::create(array( 'Email' => $this->owner->Email, 'Name' => $this->owner->FirstName, 'Status' => 'New', 'CartID' => $this->owner->ID )); $recordID = $record->write(); Session::set('Toast.SignUpRecord', $recordID); } } } } } |