0

是否可以使用 SOAP API 获取当前登录的客户电子邮件地址?
我不会有 CustomerID。

我将从我们的 ExpressionEngine 安装中调用它。

4

1 回答 1

0

/code/core/Mage/Customer/Model/Customer/Api.php 中的此更改应返回当前登录的客户及其所有信息。我目前无法测试,因为我的 PHP 5.2.14 安装中没有安装 SOAP。

public function info($customerId, $attributes = null)
{
    // if we didn't pass a $customerId
    if (!$customerId) {
        // get current customer session
        $custsess = Mage::getSingleton('customer/session');
        // if the customer is logged in
        if($custsess->isLoggedIn() == true) {
            // get their ID to load below
            $customerId = $custsess->getId();
            unset($custsess);
        }
    }

    $customer = Mage::getModel('customer/customer')->load($customerId);

    if (!$customer->getId()) {
        $this->_fault('not_exists');
    }

    if (!is_null($attributes) && !is_array($attributes)) {
        $attributes = array($attributes);
    }

    $result = array();

    foreach ($this->_mapAttributes as $attributeAlias=>$attributeCode) {
        $result[$attributeAlias] = $customer->getData($attributeCode);
    }

    foreach ($this->getAllowedAttributes($customer, $attributes) as $attributeCode=>$attribute) {
        $result[$attributeCode] = $customer->getData($attributeCode);
    }

    return $result;
}
于 2012-07-31T19:23:56.123 回答