PluginProbe
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.2.2
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.2.2
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
88 lines 1.8 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 * Set the current_release_download attribute
48 *
49 * @param mixed $value Download properties.
50 * @return void
51 */
52 public function setCurrentReleaseDownloadAttribute( $value ) {
53 $this->setRelation( 'current_release_download', $value, Download::class );
54 }
55
56 /**
57 * Get the display amount attribute
58 *
59 * @return string
60 */
61 public function getDisplayAmountAttribute() {
62 return empty( $this->amount ) ? '' : Currency::format( $this->amount, $this->currency );
63 }
64
65 /**
66 * Get the featured image attribute.
67 *
68 * @return object
69 */
70 public function getLineItemImageAttribute() {
71 // we have wp media.
72 if ( ! empty( $this->metadata->wp_media ) ) {
73 $item = GalleryItemAttachment::create( $this->metadata->wp_media );
74 if ( ! empty( $item ) && $item->exists() ) {
75 return sc_sanitize_image_attributes( $item->attributes( 'thumbnail' ) );
76 }
77 }
78
79 // we have a fallback model from the platform.
80 if ( is_a( $this->image, \SureCart\Models\Media::class ) ) {
81 return sc_sanitize_image_attributes( $this->image->attributes( 'thumbnail' ) );
82 }
83
84 // always return an empty object.
85 return (object) [];
86 }
87 }
88