magento2 - 如何在magento2中获取所有订单支付方式信息

标签 magento2 payment payment-method

我尝试获取订单相关信息,例如订单状态、总金额、付款方式等。

我使用了订单状态

$_order->getStatusLabel();

但是我如何在 Magento 2 中获取与付款方式相关的信息。

最佳答案

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";
}

关于magento2 - 如何在magento2中获取所有订单支付方式信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38389840/

相关文章:

php - 其他用户无法访问 Magento 2 自定义模块

php - grunt magento2 警告标志显示 magento 命令

javascript - 通过 Forte 支付处理、一次性 token 和 REST API 进行 ACH 电子支票支付

php - 获取自定义支付网关数据作为 Woocommerce 3 中的设置

php - 隐藏 Woocommerce 中延期交货的购物车商品的货到付款付款方式

php - 根据 WooCommerce 结账中的分类术语限制支付网关

php - Redis session disable_locking 为真

mysql - Magento 2 安装失败 - SQLSTATE[HY000] [1045] 用户访问被拒绝

node.js - Paypal 定期付款重定向到 Paypal 的主页

paypal - 如何将 PayPal 添加到我的 Web 应用程序并在付款后公开其他功能?