Source of file EcommercePaymentController.php
Size: 3,715 Bytes - Last Modified: 2021-12-23T10:39:35+00:00
/var/www/docs.ssmods.com/process/src/src/Control/EcommercePaymentController.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 | <?php namespace Sunnysideup\Ecommerce\Control; use SilverStripe\Control\Controller; use SilverStripe\Control\Director; use SilverStripe\Core\Config\Config; use SilverStripe\Forms\Form; use SilverStripe\View\Requirements; use Sunnysideup\Ecommerce\Config\EcommerceConfig; use Sunnysideup\Ecommerce\Forms\OrderFormPayment; use Sunnysideup\Ecommerce\Model\Order; /** * @description: Used to diplay the payment form. * * @authors: Nicolaas [at] Sunny Side Up .co.nz * @package: ecommerce * @sub-package: control */ class EcommercePaymentController extends Controller { /** * @var Order */ protected $currentOrder; /** * @var string */ protected $errorMessage = ''; /** * @var string */ protected $goodMessage = ''; /** * @var string */ private static $url_segment = 'ecommercepayment'; private static $allowed_actions = [ 'thankyou', 'index', 'pay', 'PaymentForm', ]; /** * @param int|string $orderID * * @return string (Link) */ public static function make_payment_link($orderID) { $urlSegment = EcommerceConfig::get(EcommercePaymentController::class, 'url_segment'); return Controller::join_links( Director::baseURL(), $urlSegment . '/pay/' . $orderID . '/' ); } public function index() { return []; } public function pay() { return []; } /** * @todoTEST!!! */ public function thankyou() { $this->goodMessage = _t('EcommercePaymentController.THANKYOU', 'Thank you for your payment.'); $this->currentOrder = null; return []; } /** * @param string $action * * @return string (Link) */ public function Link($action = null) { $URLSegment = Config::inst()->get(static::class, 'url_segment'); if (! $URLSegment) { $URLSegment = static::class; } return Controller::join_links( Director::baseURL(), $URLSegment, $action ); } /** * @return array|Form (OrderFormPayment) */ public function PaymentForm() { if ($this->currentOrder) { if ($this->currentOrder->canPay()) { Requirements::javascript('sunnysideup/ecommerce: client/javascript/EcomPayment.js'); return OrderFormPayment::create($this, 'PaymentForm', $this->currentOrder, $this->Link('thankyou')); } $this->errorMessage = _t('EcommercePaymentController.CANNOTMAKEPAYMENT', 'You can not make a payment for this order.'); } else { $this->errorMessage = _t('EcommercePaymentController.ORDERCANNOTBEFOUND', 'Order can not be found.'); } return []; } public function ErrorMessage() { return $this->errorMessage; } public function GoodMessage() { return $this->goodMessage; } protected function init() { parent::init(); // isset($project) ? $themeBaseFolder = $project : $themeBaseFolder = 'app'; Requirements::javascript('silverstripe/admin: thirdparty/jquery/jquery.js'); //Requirements::javascript(Director::protocol()."ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"); $id = (int) $this->request->param('ID'); if (! $id && isset($_REQUEST['OrderID'])) { $id = (int) $_REQUEST['OrderID']; } if ($id) { $order = Order::get_by_id_if_can_view($id); if ($order) { $this->currentOrder = $order; } } } } |