I need to get order collection between specific date range passing start date and end date in Magento 2. For that I used filter created_at field using addAttributeToFilter().
First create Block file By default created_at field in sales_order table represent the time of order creation:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php namespace Vender\Modulename\Block; class OrderRange extends \Magento\Framework\View\Element\Template { public function __construct( \Magento\Framework\View\Element\Template\Context $context, \Magento\Sales\Model\ResourceModel\Order\CollectionFactory $orderCollectionFactory, array $data = [] ) { $this->orderCollectionFactory = $orderCollectionFactory; parent::__construct($context, $data); } /* Here Create Function For Order collection between start and end date */ public function getOrderCollectionByDateRange(){ $startDate = date("Y-m-d h:i:s",strtotime('0000-00-00')); // start date $endDate = date("Y-m-d h:i:s", strtotime('0000-00-00')); // end date $orders = $this->orderCollectionFactory->create() ->addAttributeToFilter('created_at', array('from'=>$startDate, 'to'=>$endDate)); return $orders; } ?> |
After do this You need to call this function in any custom template file or any exsting template,
1 2 3 4 5 |
if($orders->getTotalCount() > 0) { foreach($orders as $_order) { echo "<pre>";print_r($_order); echo "</pre>"; } } |
Now you can get Order collection by date range.
If you want get query string params in controller file,...
Create di.xml and add the below code Magemonkey/Redirect/etc/frontend/di.xml [crayon-628657ab70f1e683425122/] Create...
You can try below code to change local date to...
Step 1: First you need to add registration.php file in...
Step1 : Override message.js in current theme file on the...