Magento 2: Đặt trang lịch sử đặt hàng làm mặc định sau khi đăng nhập


7

Tôi đang cố gắng đặt trang lịch sử đặt hàng làm trang mặc định khi khách hàng đăng nhập.

Khi đăng nhập của khách hàng thành công, nó sẽ chuyển hướng đến khách hàng / tài khoản /

Thay vì điều này, chúng tôi có thể hướng đến bán hàng / đặt hàng / lịch sử /

Vì vậy, khi đăng nhập của khách hàng xảy ra, anh ta có thể xem trang lịch sử đặt hàng thay vì trang bảng điều khiển.

Là một cái gì đó như thế có thể đạt được? Ai có thể giúp tôi về vấn đề này, xin vui lòng?

Cảm ơn


kiểm tra này, nó sẽ giúp bạn magento.stackexchange.com/questions/134808/ Ấn
Manashvi Birla

@ManashviBirla, điều này sẽ chỉ hoạt động nếu chúng tôi đăng nhập, tôi đang tìm kiếm ngay cả khi họ mở trang bảng điều khiển, nó sẽ chuyển hướng đến trang lịch sử ..
Manjunath

Câu trả lời:


7

ghi đè bộ điều khiển tài khoản như dưới đây.

Nhà cung cấp \ Module \ etc \ di.xml

 <?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">       
   <preference for="Magento\Customer\Controller\Account\Index" type="Vendor\Module\Controller\Account\ExtendIndex" /> 
</config>

Sau đó, Nhà cung cấp \ Mô-đun \ Trình điều khiển \ Tài khoản \ ExtendIndex.php

<?php
 namespace Vendor\Module\Controller\Account;
 class ExtendIndex extends \Magento\Customer\Controller\Account\Index
 {
   public function execute()
  {
    $resultRedirect = $this->resultRedirectFactory->create();
    $resultRedirect->setPath('sales/order/history');
    return $resultRedirect;
  }
}

Tôi hy vọng điều này sẽ giúp bạn!!


1
Cảm ơn bạn đã làm việc !! @jafar
Manjunath

1
Tôi có một câu hỏi làm thế nào người dùng truy cập vào bảng điều khiển?
Bổ sung

@ Addify, nó không bắt buộc trong yêu cầu của tôi!
Manjunath

4

Ghi đè LoginPostbộ điều khiển và đặt chuyển hướng đến historybộ điều khiển trong plugin

Filepath: Nhà cung cấp / Mô-đun / etc / frontend / di.xml:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
  <type name="\Magento\Customer\Controller\Account\LoginPost">
    <plugin name="vendor_module_loginpostplugin" type="\Vendor\Module\Plugin\LoginPostPlugin" sortOrder="1" />
  </type>
</config>

Filepath: Nhà cung cấp / Mô-đun / Plugin / Đăng nhậpPostPlugin.php:

<?php

namespace Vendor\Module\Plugin;

class LoginPostPlugin
{

    public function afterExecute(
        \Magento\Customer\Controller\Account\LoginPost $subject,
        $result)
    {
        $result->setPath('sales/order/history'); 
        return $result;
    }

}

Lưu ý: Mã đã kiểm tra


3

Bạn có thể thay đổi liên kết Tài khoản của tôi bằng plugin

Thêm mã bên dưới vào ứng dụng / mã / Nhà cung cấp / Mô-đun / etc / di.xml

<type name="Magento\Customer\Model\Url">
    <plugin name="custom_links" type="Vendor\Module\Model\Url" sortOrder="1" />
</type>

ứng dụng / mã / Nhà cung cấp / Mô-đun / Mô hình / Url.php

<?php

namespace Vendor\Module\Model;

use Magento\Framework\UrlInterface;

class Url
{
    /**
     * @var UrlInterface
     */
    protected $urlBuilder;


    /**
     * @param UrlInterface $urlBuilder
     */
    public function __construct(
        UrlInterface $urlBuilder
    ) {
        $this->urlBuilder = $urlBuilder;
    }

    public function afterGetAccountUrl(\Magento\Customer\Model\Url $subject, $result)
    {
        return $this->urlBuilder->getUrl('sales/order/history');
    }
}

2
  1. Tệp event.xml trong thư mục app \ code \ Vendore \ Module \ etc \ frontend
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="customer_login">
        <observer name="customer_login_success_after_order" instance="Vendore\Module\Observer\CustomerLogin" />
    </event>
</config>
  1. Tạo tệp CustomerLogin.php trong thư mục app \ code \ Vendore \ Module \ Observer
<?php

namespace Builderschoice\CustomModule\Observer;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Builderschoice\Company\Model\CompanyFactory;


class CustomerLogin implements ObserverInterface
{
/**
 * @var \Magento\Framework\App\ResponseFactory
 */
protected $responseFactory;

protected $webkulData;

protected $_companyBlock;

protected $_companyFactory;

protected $_storeManagerInterface;

/**
 * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
 * @param \Zend\Validator\Uri $uri
 * @param \Magento\Framework\App\ResponseFactory $responseFactory
 */
public function __construct(
    \Magento\Framework\App\ResponseFactory $responseFactory,
    \Webkul\Marketplace\Helper\Data $webkulData,
    \Builderschoice\Company\Block\Index\Index $companyBlock,
    \Magento\Store\Model\StoreManagerInterface $storeManagerInterface,
    CompanyFactory $companyFactory
) {
    $this->responseFactory = $responseFactory;
    $this->webkulData = $webkulData;
    $this->_companyBlock = $companyBlock;
    $this->_storeManagerInterface = $storeManagerInterface;
    $this->_companyFactory = $companyFactory;
}
/**
 * Handler for 'customer_login' event.
 *
 * @param Observer $observer
 * @return void
 */
public function execute(Observer $observer)
{
    $event = $observer->getEvent();
    $customer = $event->getCustomer();

    $storeManager = $this->_storeManagerInterface->create();
    $baseurl=$storeManager->getStore()->getBaseUrl();
    $url = $baseurl.'sales/order/history';

    $resultRedirect = $this->responseFactory->create();

    $resultRedirect->setRedirect($url)->sendResponse('200');

    exit();
}
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.