Bạn không thể truy xuất địa chỉ dựa trên id khách hàng để mã này sẽ không bao giờ hoạt động:
$address = $this->_addressRepository->getByCustomerId($customerId);//error
Bởi vì getByCustomerId
phương thức không tồn tại trong các lớp hợp đồng dịch vụ.
Những gì bạn có thể làm là sử dụng lớp khách hàng hợp đồng dịch vụ dữ liệu với mã sau:
$customerId = $_POST["customer_id"];
$customer = $this->_customerRepository->getById($customerId);
$addresses = $customer->getAddresses();
Xin lưu ý rằng getAddresses
sẽ trả về một mảng Magento\Customer\Api\Data\AddressInterface
.
Nếu bạn cần địa chỉ thanh toán mặc định, bạn có thể gọi:
$billingAddress = $customer->getDefaultBilling();
$customer->getDefaultBilling();
nó sẽ trả về NULL