Magento 2: Legen Sie die Seite mit dem Bestellverlauf nach der Anmeldung als Standard fest

7

Ich versuche, die Bestellverlaufsseite als Standardseite festzulegen, wenn der Kunde angemeldet ist.

Wenn die Kundenanmeldung erfolgreich ist, wird sie zu Kunde / Konto / weitergeleitet.

Stattdessen können wir direkt zu Verkauf / Auftrag / Geschichte /

Wenn sich der Kunde anmeldet, kann er anstelle der Dashboard-Seite die Bestellverlaufsseite anzeigen.

Kann so etwas erreicht werden? Kann mir bitte jemand in dieser Angelegenheit helfen?

Vielen Dank

Manjunath
quelle
Überprüfen Sie dies, es wird Ihnen helfen. magento.stackexchange.com/questions/134808/…
Manashvi Birla
@ManashviBirla, dies wird nur funktionieren, wenn wir uns anmelden, ich suche, auch wenn sie Dashboard-Seite öffnen, sollte es auf Verlaufsseite umleiten ..
Manjunath

Antworten:

7

Überschreiben Sie den Account Controller wie unten beschrieben.

Hersteller \ Modul \ 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>

Dann Vendor \ Module \ Controller \ Account \ 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;
  }
}

Ich hoffe, dies wird dir helfen!!

Jafar Pinjar
quelle
1
Danke, es hat funktioniert !! @ Jafar
Manjunath
1
Ich habe eine Frage, wie Benutzer auf das Dashboard zugreifen.
Addify
@ Addify, es ist in meiner Anforderung nicht erforderlich!
Manjunath
4

Überschreiben Sie den LoginPostController und stellen Sie die Umleitung zum historyController im Plugin ein

Dateipfad: Vendor / Module / 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>

Dateipfad: Vendor / Module / Plugin / LoginPostPlugin.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;
    }

}

Hinweis: Code getestet

Arunprabakaran M.
quelle
3

Sie können den Link Mein Konto per Plugin ändern

Fügen Sie den folgenden Code zu app / code / Vendor / Module / etc / di.xml hinzu

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

app / code / Vendor / Module / Model / 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');
    }
}
Manashvi Birla
quelle
2
  1. Datei events.xml im Ordner 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. Erstellen Sie die Datei CustomerLogin.php im Ordner 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();
}
}
Sweety Masmiya
quelle