<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Customer\Block\Adminhtml\Edit; use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface; /** * Class OrderButton */ class OrderButton extends GenericButton implements ButtonProviderInterface { /** * @var \Magento\Framework\AuthorizationInterface */ protected $authorization; /** * Constructor * * @param \Magento\Backend\Block\Widget\Context $context * @param \Magento\Framework\Registry $registry */ public function __construct( \Magento\Backend\Block\Widget\Context $context, \Magento\Framework\Registry $registry ) { $this->authorization = $context->getAuthorization(); parent::__construct($context, $registry); } /** * @return array */ public function getButtonData() { $customerId = $this->getCustomerId(); $data = []; if ($customerId && $this->authorization->isAllowed('Magento_Sales::create')) { $data = [ 'label' => __('Create Order'), 'on_click' => sprintf("location.href = '%s';", $this->getCreateOrderUrl()), 'class' => 'add', 'sort_order' => 40, ]; } return $data; } /** * Retrieve the Url for creating an order. * * @return string */ public function getCreateOrderUrl() { return $this->getUrl('sales/order_create/start', ['customer_id' => $this->getCustomerId()]); } }