Kann ich eine Kundenadresse wie im Bild unten mit der Adress-ID erhalten ? Wenn ich kann, wie soll ich das machen?
Kann ich eine Kundenadresse wie im Bild unten mit der Adress-ID erhalten ? Wenn ich kann, wie soll ich das machen?
Antworten:
Sie können die formatierte Adresse address id
mit 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;
}
}
----
//
Kommentare anstelle von Code-brechenden Fragmenten. :)
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.