PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.1.5
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.1.5
4.7.2 4.7.1 4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 All 281 releases
surecart / app / src / Models / Variant.php
Variant.php
76 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SureCart\Models;
4
5 use SureCart\Support\Currency;
6
7 /**
8 * Variant model
9 */
10
11 class Variant extends Model {
12 /**
13 * Rest API endpoint
14 *
15 * @var string
16 */
17 protected $endpoint = 'variants';
18
19 /**
20 * Object name
21 *
22 * @var string
23 */
24 protected $object_name = 'variant';
25
26 /**
27 * Set the product attribute
28 *
29 * @param string $value Product properties.
30 * @return void
31 */
32 public function setProductAttribute( $value ) {
33 $this->setRelation( 'product', $value, Product::class );
34 }
35
36 /**
37 * Set the image attribute
38 *
39 * @param string $value Image properties.
40 * @return void
41 */
42 public function setImageAttribute( $value ) {
43 $this->setRelation( 'image', $value, Media::class );
44 }
45
46 /**
47 * Get the display amount attribute
48 *
49 * @return string
50 */
51 public function getDisplayAmountAttribute() {
52 return empty( $this->amount ) ? '' : Currency::format( $this->amount, $this->currency );
53 }
54
55 /**
56 * Get the featured image attribute.
57 *
58 * @return object
59 */
60 public function getLineItemImageAttribute() {
61 // we have wp media.
62 if ( ! empty( $this->metadata->wp_media ) ) {
63 $item = new GalleryItemAttachment( $this->metadata->wp_media );
64 return $item->attributes( 'thumbnail' );
65 }
66
67 // we have a fallback model from the platform.
68 if ( is_a( $this->image, \SureCart\Models\Media::class ) ) {
69 return $this->image->attributes( 'thumbnail' );
70 }
71
72 // always return an empty object.
73 return (object) [];
74 }
75 }
76