Search code examples
phpquickbooks

Get email address of customer with Quickbooks PHP SDK


I am working with Quickbooks and need to access the customer email address. But I get a value like below from $Customer->getPrimaryEmailAddr()

 QuickBooks_IPP_Object_PrimaryEmailAddr Object
(
[_data:protected] => Array
    (
        [Address] => Array
            (
                [0] => [email protected]  
            )

    )

)

How can I get the email address?


Solution

  • For the specific object you posted in your question you want to do this:

    $address = $TheObject->getAddress();

    However, based on your comments to other users, I suspect you're using this code within a loop (e.g. looping through a list of customers), which means that you'll want an additional check to make sure the customer actually has a primary email address at all (otherwise you'll end up seeing errors like Call to a member function getAddress() on null):

    foreach ($customers as $Customer)
    {
      if ($PrimaryEmailAddr = $Customer->getPrimaryEmailAddr())
      {
        $address = $PrimaryEmailAddr->getPrimaryEmailAddr();
      }
    }
    

    Another way to handle this is to use the XPath method, so that you don't need the extra check:

    foreach ($customers as $Customer)
    {
        print('  Email: ' . $Customer->getXPath('//Customer/PrimaryEmailAddr/Address') . "\n\n");
    }