Source of file EcommerceSecurityOrderDecoration.php
Size: 2,231 Bytes - Last Modified: 2021-12-23T10:41:15+00:00
/var/www/docs.ssmods.com/process/src/src/Model/Security/EcommerceSecurityOrderDecoration.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | <?php namespace Sunnysideup\EcommerceSecurity\Model\Security; use SilverStripe\Forms\CheckboxField; use SilverStripe\Forms\FieldList; use SilverStripe\ORM\DataExtension; use Sunnysideup\Ecommerce\Model\Process\OrderStep; use Sunnysideup\EcommerceSecurity\Model\Process\OrderStatusLogSecurityCheck; use Sunnysideup\EcommerceSecurity\Model\Process\OrderStepSecurityCheck; class EcommerceSecurityOrderDecoration extends DataExtension { private static $db = [ 'SkipToSecurityChecks' => 'Boolean', ]; public function updateCMSFields(FieldList $fields) { if ($this->getOwner()->IsSubmitted()) { $currentStep = $this->getOwner()->MyStep()->Sort; $securityStep = OrderStep::get()->filter(['ClassName' => OrderStepSecurityCheck::class])->first()->Sort; if ($currentStep < $securityStep) { $fields->addFieldsToTab( 'Root.Process', [ CheckboxField::create( 'SkipToSecurityChecks', 'Lets Skip To Security Checks' )->setDescription( 'Ticking this checkbox will skip the payment step, allowing security checks to be conducted for orders that do not have successful payments.' ), ] ); } } } /** * Event handler called before writing to the database. */ public function onBeforeWrite() { parent::onBeforeWrite(); if ($this->getOwner()->SkipToSecurityChecks) { $logExists = OrderStatusLogSecurityCheck::get()->filter(['OrderID' => $this->getOwner()->ID])->exists(); if (! $logExists) { $securityCheck = OrderStatusLogSecurityCheck::create(); $securityCheck->OrderID = $this->getOwner()->ID; $securityCheck->write(); $securityStepID = OrderStep::get()->filter(['ClassName' => OrderStepSecurityCheck::class])->first()->ID; if ($securityStepID) { $this->getOwner()->StatusID = $securityStepID; } } } } } |