I have a custom shipping module that passes some information into the Sales Order and the email. The problem is that it shows the data even when the shipping method isn't used. How can I get the shipping method so I can use it to only display the information if that shipping method is chosen?
This adds my data into the Sales Order in the Admin - view/adminhtml/templates/order/view
<?php
$formFields = $block->getOrderFormFields();
// Get Shipping Method or Code
$shippingMethod = $order->getShippingMethod();
?>
<?php if($shippingMethod == 'shippingmethod_shippingmethod'): ?>
<section class="admin__page-section">
<div class="admin__page-section-title">
<span class="title"><?php /* @escapeNotVerified */ echo __('Shipping Option') ?></span>
</div>
<div class="admin__page-section-content">
<div class="order-information">
<div class="box">
<strong class="box-title"><span><?php /* @escapeNotVerified */ echo __('Building Address') ?></span></strong>
<div class="box-content">
<?php echo $this->escapeHtml($formFields->getCheckoutBuildingAddress()); ?>
</div>
</div>
<div class="box">
<strong class="box-title"><span><?php /* @escapeNotVerified */ echo __('Floor Number') ?></span></strong>
<div class="box-content">
<?php echo $this->escapeHtml($formFields->getCheckoutFloorNumber()); ?>
</div>
</div>
<div class="box">
<strong class="box-title"><span><?php /* @escapeNotVerified */ echo __('Room Number') ?></span></strong>
<div class="box-content">
<?php echo $this->escapeHtml($formFields->getCheckoutRoomNumber()); ?>
</div>
</div>
</div>
</div>
</section>
<?php endif; ?>
This is in Block/Order
namespace Vendor\Module\Block\Order;
use Magento\Framework\View\Element\Template;
use Magento\Framework\View\Element\Template\Context;
use Magento\Framework\Registry;
use Magento\Sales\Model\Order;
/**
* Class CustomFields
*
* @category Block/Order
* @package Vendor\Module\Block
*/
class OrderItems extends \Magento\Backend\Block\Template
{
protected $order;
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Sales\Model\Order $order,
array $data = []
) {
$this->order = $order;
parent::__construct($context, $data);
}
/**
* Get current order
*
* @return Order
*/
public function _prepareLayout()
{
return parent::_prepareLayout();
}
public function getOrder()
{
$order = $this->order->loadByIncrementId($orderId);
return $order;
}
}
I get this error:
Undefined variable: order
How can I get the shipping code or method from the order?
Thanks, Stan