Magento在结账时获取客户送货地址


Magento Get Customer Shipping Address During Checkout

我正在尝试在结账时获取客户的发货地址。我们试图做的是,如果他们试图通过UPS运送到邮政信箱,它会输出一个错误页面。在签出页面中,有一个复选框,他们可以在其中检查保存到帐户中的不同地址。我已经把它放在正确检测他们是否使用UPS的地方,但我无法正确获取客户的地址。无论我做什么,它都会记录默认的发货地址,即使他们选择了另一个。我的问题是,我该怎么做才能使它选择地址2而不是地址1?这是我的密码。错误输出$street的原因是,我可以看到变量$street中包含的内容。

        $quote = $this->getOnepage()->getQuote();
        $shippingAddress = $quote->getShippingAddress();
        $street = $shippingAddress->getStreet1();
        //Check to see if customer is trying to use UPS to ship to a PO Box.
        if (preg_match("/p'.* *o'.* *box/i", $street)){
            if ((($shippingMethod=="tablerate3_bestway") || ($shippingMethod=="tablerate_bestway") || ($shippingMethod=="tablerate2_bestway"))){
                $result = array (
                    'error' => -1,
                    'message' => $this->__($street)
                );
                $this->getResponse()->setBody(Zend_Json::encode($result));
            }
        }

对于运输地址

Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->getData();

对于账单地址

Mage::getSingleton('checkout/session')->getQuote()->getBillingAddress()->getData();