So erhalten Sie die Kundenadresse mit der Adress-ID

7

Kann ich eine Kundenadresse wie im Bild unten mit der Adress-ID erhalten ? Wenn ich kann, wie soll ich das machen?

Lieferadresse des Kunden

Edwin Widhiyanto
quelle

Antworten:

7

Sie können die formatierte Adresse address idmit dem folgenden Code erhalten:

public function __construct(
    \Magento\Customer\Api\AddressRepositoryInterface $addressRepository,
    \Magento\Customer\Model\Address\Config $addressConfig,
    \Magento\Customer\Model\Address\Mapper $addressMapper,
) {
    $this->addressRepository = $addressRepository;
    $this->_addressConfig = $addressConfig;
    $this->addressMapper = $addressMapper;
}

public function getFormattedAddress($addressId)
{
    try {
        $addressObject = $this->addressRepository->getById($addressId);
        /** @var \Magento\Customer\Block\Address\Renderer\RendererInterface $renderer */
        $renderer = $this->_addressConfig->getFormatByCode('html')->getRenderer();
        return $renderer->renderArray($this->addressMapper->toFlatArray($addressObject));
    } catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
        return null;
    }
}
Pankaj Pareek
quelle
Kann ich diesen Code zum Blockieren platzieren?
Edwin Widhiyanto
Ja, Sie können den Code in Block hinzufügen
Pankaj Pareek
Ich habe Ihren Code ausprobiert, aber nichts wurde angezeigt, als ich die Funktion in phtml aufrief
Edwin Widhiyanto
1
Ich habe den Code aktualisiert und getestet. bitte prüfe. @max: Ich habe dies verwendet, um nur zu verweisen, um diesen Code mit vorhandenem Konstruktcode hinzuzufügen----
Pankaj Pareek
1
Verwenden Sie lieber //Kommentare anstelle von Code-brechenden Fragmenten. :)
Max
0

Sie können die Reihenfolge wie folgt abrufen, wo immer Sie diese Informationen aufrufen möchten. Fügen Sie im Konstruktor Folgendes hinzu, wenn es nicht bereits verwendet wird.

protected $ checkoutSession; öffentliche Funktion __construct (\ Magento \ Checkout \ Model \ Session $ checkoutSession, \ Psr \ Log \ LoggerInterface $ logger) {

    $this->checkoutSession = $checkoutSession;
    $this->logger = $logger;
}


$order = $session->getLastRealOrder();
$orderdata = $order->getData();
$shipping_address_id = $orderdata['shipping_address_ID'];

Diese Adresse ist die endgültige Versandadresse, die während der Zahlungsphase des Bestellvorgangs ausgewählt wurde.

FarhanS
quelle