class-learndash-coupon-dto.php
2.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?php
/**
* This class provides the easy way to operate data.
*
* @since 4.5.0
*
* @package LearnDash
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
if ( ! class_exists( 'Learndash_Coupon_DTO' ) && class_exists( 'Learndash_DTO' ) ) {
/**
* Coupon DTO class. Used to map the coupon data.
*
* @since 4.5.0
*/
class Learndash_Coupon_DTO extends Learndash_DTO {
const VALID_TYPES = array( LEARNDASH_COUPON_TYPE_FLAT, LEARNDASH_COUPON_TYPE_PERCENTAGE );
/**
* Properties are being cast to the specified type on construction.
*
* @since 4.5.0
*
* @var array<string, string>
*/
protected $cast = array(
'currency' => 'string',
'price' => 'float',
'discount' => 'float',
'discounted_price' => 'float',
'coupon_id' => 'int',
'code' => 'string',
'type' => 'string',
'amount' => 'float',
);
/**
* Coupon ID.
*
* @since 4.5.0
*
* @var int
*/
public $coupon_id = 0;
/**
* Currency.
*
* @since 4.5.0
*
* @var string
*/
public $currency = '';
/**
* Price.
*
* @since 4.5.0
*
* @var float
*/
public $price = 0.0;
/**
* Discount.
*
* @since 4.5.0
*
* @var float
*/
public $discount = 0.0;
/**
* Discounted price.
*
* @since 4.5.0
*
* @var float
*/
public $discounted_price = 0.0;
/**
* Code.
*
* @since 4.5.0
*
* @var string
*/
public $code = '';
/**
* Type. Valid values are LEARNDASH_COUPON_TYPE_FLAT and LEARNDASH_COUPON_TYPE_PERCENTAGE.
*
* @since 4.5.0
*
* @var string
*/
public $type = '';
/**
* Amount.
*
* @since 4.5.0
*
* @var float
*/
public $amount = 0.0;
/**
* Validates properties on construction based on validators.
* Key is a property name, value is an array of validator objects.
*
* @since 4.5.0
*
* @return array<string,mixed>
*/
protected function get_validators(): array {
$validators = parent::get_validators();
if ( ! empty( $this->type ) ) {
$validators['type'] = array(
new Learndash_DTO_Property_Validator_Possible_Values( self::VALID_TYPES ),
);
}
return $validators;
}
}
}