如何获取magento2中的所有订单付款方式信息

我尝试获取订单状态,总金额,付款方式等订单相关信息.我获得了订单状态

$_order->getStatusLabel();

但是我如何在magento2中获得与支付方法相关的信息.

最佳答案

In Block file

/** @var \Magento\Sales\Model\ResourceModel\Order\Payment\Collection    */
protected $_paymentCollectionFactory;
 /** @var \Magento\Sales\Model\ResourceModel\Order\CollectionFactory */
protected $_orderCollectionFactory;
/** @var \Magento\Sales\Model\ResourceModel\Order\Collection */
protected $orders;

 public function __construct(
\Magento\Framework\View\Element\Template\Context $context,\Magento\Sales\Model\ResourceModel\Order\CollectionFactory $orderCollectionFactory, \Magento\Sales\Model\ResourceModel\Order\Payment\CollectionFactory $paymentCollectionFactory, array $data = []
) {
    $this->_orderCollectionFactory = $orderCollectionFactory;
    $this->_paymentCollectionFactory = $paymentCollectionFactory;
    parent::__construct($context, $data);
}
 public function getPaymentsCollection() {
    $collection = $this->_paymentCollectionFactory->create()->addFieldToSelect('*');
    return $collection;
}
public function getOrders($storeId) {
if (!$this->orders) {
            $this->orders = $this->_orderCollectionFactory->create()->addFieldToSelect('*');
        }
 return $this->orders;
}

In phtml file

$_orders = $block->getOrders();

if ($_orders && count($_orders)) {

$payments = $block->getPaymentsCollection();
$chekmo = $cod = $free = $bank = $paypalgrp = 0;
foreach ($payments as $_payment) {
    $method = $_payment->getMethod();
    switch ($method) {
        case 'checkmo' : $chekmo++;
            break;
        case 'cashondelivery' : $cod++;
            break;
        case 'free' : $free++;
            break;
        case 'banktransfer' : $bank++;
            break;
        case 'paypal_group_all_in_one' : $paypalgrp++;
            break;
    }
  }

    echo "Payment Methods<br>";
    echo "Check / Money Order Methods " . $ckeckmo;
    echo "Cash on Delivery Methods " . $cod;
    echo "Free Methods " . $free;
    echo "Bank Transfer Methods " . $bank;
    echo "Paypal group all in one Methods " . $paypalgrp;
}
else{
 echo "You have no Orders";
}
点赞