Skip to content

Instantly share code, notes, and snippets.

@magevision
Created May 28, 2025 09:46
Show Gist options
  • Select an option

  • Save magevision/1e98384c73302f2f9ecdb0ac86792fb5 to your computer and use it in GitHub Desktop.

Select an option

Save magevision/1e98384c73302f2f9ecdb0ac86792fb5 to your computer and use it in GitHub Desktop.
GetOrdersByShippingMethod
<?php
declare(strict_types=1);
namespace MageVision\Blog93\Block;
use Magento\Framework\Api\FilterBuilder;
use Magento\Framework\Api\SearchCriteriaBuilder;
use Magento\Framework\View\Element\Template;
use Magento\Framework\View\Element\Template\Context;
use Magento\Sales\Api\OrderRepositoryInterface;
class Orders extends Template
{
private SearchCriteriaBuilder $searchCriteriaBuilder;
private FilterBuilder $filterBuilder;
private OrderRepositoryInterface $orderRepository;
/**
* @param Context $context
* @param SearchCriteriaBuilder $searchCriteriaBuilder
* @param FilterBuilder $filterBuilder
* @param OrderRepositoryInterface $orderRepository
* @param array $data
*/
public function __construct(
Context $context,
SearchCriteriaBuilder $searchCriteriaBuilder,
FilterBuilder $filterBuilder,
OrderRepositoryInterface $orderRepository,
array $data = []
) {
parent::__construct($context, $data);
$this->searchCriteriaBuilder = $searchCriteriaBuilder;
$this->filterBuilder = $filterBuilder;
$this->orderRepository = $orderRepository;
}
/**
* Get orders purchased with flatrate shipping method
*
* @return void
*/
public function getOrderByShippingMethod()
{
$searchCriteria = $this->searchCriteriaBuilder
->addFilters(
[
$this->filterBuilder->setField('shipping_method')->setValue('flatrate_flatrate')->create()
]
)
->create();
$orders = $this->orderRepository->getList($searchCriteria);
foreach ($orders->getItems() as $order) {
//Your logic
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment