Emerson F
Emerson F

Reputation: 845

Freshbooks API show details

I am using the php library from here and I have a small problem.

To get some info for a invoice 118868, I can do this

<?php
$invoice_id=118868;

$invoice=$freshbooks->invoiceGet($invoice_id);
print_r($invoice);
?>

This is the output for print_r

Class Object ( [@attributes] => stdClass Object ( [status] => ok ) [invoice] => stdClass Object ( [invoice_id] => 00000219023 [estimate_id] => stdClass Object ( ) [number] => 8822 [client_id] => 83 [contacts] => stdClass Object ( [contact] => stdClass Object ( [contact_id] => 0 ) ) [recurring_id] => stdClass Object ( ) [organization] => Jimmy Thwart [first_name] => stdClass Object ( ) [last_name] => stdClass Object ( ) [p_street1] => stdClass Object ( ) [p_street2] => stdClass Object ( ) [p_city] => stdClass Object ( ) [p_state] => stdClass Object ( ) [p_country] => stdClass Object ( ) [p_code] => stdClass Object ( ) [po_number] => 10002 [status] => sent [amount] => 16.90 [amount_outstanding] => 16.90 [paid] => 0.00 [date] => 2013-01-31 00:00:00 [notes] => stdClass Object ( ) [terms] => Your slot can only be secured upon payment. Any reservation made before payment will only be guaranteed for 2 days. [discount] => 0 [url] => https://example.freshbooks.com/view/vgPb2TNGCR7n8JV [auth_url] => https://example.freshbooks.com/invoices/219023 [links] => stdClass Object ( [client_view] => https://example.freshbooks.com/view/vgPb2TNGCR7n8JV [view] => https://example.freshbooks.com/invoices/219023 [edit] => https://example.freshbooks.com/invoices/219023/edit ) [return_uri] => stdClass Object ( ) [updated] => 2013-01-31 02:25:13 [currency_code] => SGD [language] => en [vat_name] => stdClass Object ( ) [vat_number] => stdClass Object ( ) [folder] => active [staff_id] => 1 [lines] => stdClass Object ( [line] => stdClass Object ( [line_id] => 1 [name] => Lady 1pax [description] => Services (1 pax) [unit_cost] => 16.90 [quantity] => 1 [amount] => 16.90 [tax1_name] => stdClass Object ( ) [tax2_name] => stdClass Object ( ) [tax1_percent] => 0 [tax2_percent] => 0 [compound_tax] => 0 [type] => Item ) ) [gateways] => stdClass Object ( [gateway] => stdClass Object ( [name] => PayPal ) ) ) ) 

I hope the output can only be the URL and not this whole chunk of code. Output wanted:

https://example.freshbooks.com/view/vgPb2TNGCR7n8JV

However, it lists all information of the invoice. How do I get only the invoice URL?

Upvotes: 0

Views: 1019

Answers (2)

KennyPowers
KennyPowers

Reputation: 5015

Invoice is an instane of a class. You should treat it like all instances.

To get URL value you can do the next:

<?php
$invoice_id=118868;

$invoice=$freshbooks->invoiceGet($invoice_id);
print $invoice->url;
?>

or there's another possible value you're looking for:

<?php
$invoice_id=118868;

$invoice=$freshbooks->invoiceGet($invoice_id);
print $invoice->links->client_view;
?>

According to official API doc <url> is not supporting any more, so you should use <links> "element to provide your customers with direct links to the invoice for editing, viewing by the client and viewing by an administrator."

Upvotes: 0

Lightness Races in Orbit
Lightness Races in Orbit

Reputation: 385274

Well, using the output of your code, you can see what the elements of $invoice are. Use the one that you need.

Upvotes: 0

Related Questions