forked from woocommerce/woocommerce
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclass-wc-customer-download-log.php
150 lines (132 loc) · 3.37 KB
/
class-wc-customer-download-log.php
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<?php
/**
* Class for customer download logs.
*
* @package WooCommerce/Classes
* @version 3.3.0
* @since 3.3.0
*/
defined( 'ABSPATH' ) || exit;
/**
* Customer download log class.
*/
class WC_Customer_Download_Log extends WC_Data {
/**
* This is the name of this object type.
*
* @var string
*/
protected $object_type = 'customer_download_log';
/**
* Download Log Data array.
*
* @var array
*/
protected $data = array(
'timestamp' => null,
'permission_id' => 0,
'user_id' => null,
'user_ip_address' => null,
);
/**
* Constructor.
*
* @param int|object|array $download_log Download log ID.
*/
public function __construct( $download_log = 0 ) {
parent::__construct( $download_log );
if ( is_numeric( $download_log ) && $download_log > 0 ) {
$this->set_id( $download_log );
} elseif ( $download_log instanceof self ) {
$this->set_id( $download_log->get_id() );
} elseif ( is_object( $download_log ) && ! empty( $download_log->download_log_id ) ) {
$this->set_id( $download_log->download_log_id );
$this->set_props( (array) $download_log );
$this->set_object_read( true );
} else {
$this->set_object_read( true );
}
$this->data_store = WC_Data_Store::load( 'customer-download-log' );
if ( $this->get_id() > 0 ) {
$this->data_store->read( $this );
}
}
/*
|--------------------------------------------------------------------------
| Getters
|--------------------------------------------------------------------------
*/
/**
* Get timestamp.
*
* @param string $context Get context.
* @return WC_DateTime|null Object if the date is set or null if there is no date.
*/
public function get_timestamp( $context = 'view' ) {
return $this->get_prop( 'timestamp', $context );
}
/**
* Get permission id.
*
* @param string $context Get context.
* @return integer
*/
public function get_permission_id( $context = 'view' ) {
return $this->get_prop( 'permission_id', $context );
}
/**
* Get user id.
*
* @param string $context Get context.
* @return integer
*/
public function get_user_id( $context = 'view' ) {
return $this->get_prop( 'user_id', $context );
}
/**
* Get user ip address.
*
* @param string $context Get context.
* @return string
*/
public function get_user_ip_address( $context = 'view' ) {
return $this->get_prop( 'user_ip_address', $context );
}
/*
|--------------------------------------------------------------------------
| Setters
|--------------------------------------------------------------------------
*/
/**
* Set timestamp.
*
* @param string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if their is no date.
*/
public function set_timestamp( $date = null ) {
$this->set_date_prop( 'timestamp', $date );
}
/**
* Set permission id.
*
* @param int $value Value to set.
*/
public function set_permission_id( $value ) {
$this->set_prop( 'permission_id', absint( $value ) );
}
/**
* Set user id.
*
* @param int $value Value to set.
*/
public function set_user_id( $value ) {
$this->set_prop( 'user_id', absint( $value ) );
}
/**
* Set user ip address.
*
* @param string $value Value to set.
*/
public function set_user_ip_address( $value ) {
$this->set_prop( 'user_ip_address', $value );
}
}