Please consider this is just a note, that can be useful for people with advanced PHP knowledge.
Question:
"What I want to know is how to have access to all the data of the listing object; for now I'm stuck in widgets so I can retrieve just a part of the listing, I want to have all the information about the buyer, the seller, the product in one and only place. So that I could do a shortcode to use it on the entire website. "
Answer:
a) Listing Fields
/** * tdf_fields() return all custom fields */ foreach (tdf_fields() as $field) { /* @var \Tangibledesign\Framework\Models\Field\Field $field */ echo($field->getId() . ' (' . $field->getId() . ')<br>'); } /** * example how to get specific field */ $field = tdf_fields()->find(function ($field) { /* @var \Tangibledesign\Framework\Models\Field\Field $field */ return $field->getId() === 1000; // specific field id }); /** * Check listivo-core/framework/Models/Field/ for specific field type classes * Example for price field */ $priceField = tdf_fields()->find(function ($field) { return $field->getId() === 300; }); $listingId = 10; // example listing id $listing = tdf_post_factory()->create($listingId); if ($listing instanceof \Tangibledesign\Framework\Models\Model && $priceField instanceof \Tangibledesign\Framework\Models\Field\PriceField) { $values = $priceField->getValue($listing); print_r($values); }
b) How to get information about the user: