30 lines
870 B
PHP
30 lines
870 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace Esun\CustomerMessage\Plugin\Adminhtml;
|
|
|
|
use Magento\Backend\Model\UrlInterface;
|
|
use Magento\Framework\View\LayoutInterface;
|
|
use Magento\Sales\Block\Adminhtml\Order\View;
|
|
|
|
class OrderViewMessagesButton
|
|
{
|
|
public function __construct(private readonly UrlInterface $url)
|
|
{
|
|
}
|
|
|
|
public function beforeSetLayout(View $subject, LayoutInterface $layout): array
|
|
{
|
|
$order = $subject->getOrder();
|
|
if ($order && (int)$order->getCustomerId()) {
|
|
$subject->addButton('esun_order_messages', [
|
|
'label' => __('Messages'),
|
|
'class' => 'esun-order-messages',
|
|
'onclick' => "setLocation('" . $this->url->getUrl('esun_customer_message/message/index', ['order_id' => (int)$order->getId()]) . "')",
|
|
]);
|
|
}
|
|
|
|
return [$layout];
|
|
}
|
|
}
|