Passed
Pull Request — master (#376)
by Brian
160:47 queued 45:56
created
includes/wpinv-helper-functions.php 1 patch
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -708,13 +708,13 @@  discard block
 block discarded – undo
708 708
  * @param mixed  $value Value.
709 709
  */
710 710
 function getpaid_maybe_define_constant( $name, $value ) {
711
-	if ( ! defined( $name ) ) {
712
-		define( $name, $value );
713
-	}
711
+    if ( ! defined( $name ) ) {
712
+        define( $name, $value );
713
+    }
714 714
 }
715 715
 
716 716
 function wpinv_get_php_arg_separator_output() {
717
-	return ini_get( 'arg_separator.output' );
717
+    return ini_get( 'arg_separator.output' );
718 718
 }
719 719
 
720 720
 function wpinv_rgb_from_hex( $color ) {
@@ -1063,11 +1063,11 @@  discard block
 block discarded – undo
1063 1063
         $list = array();
1064 1064
     }
1065 1065
 
1066
-	if ( ! is_array( $list ) ) {
1067
-		return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
1068
-	}
1066
+    if ( ! is_array( $list ) ) {
1067
+        return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );
1068
+    }
1069 1069
 
1070
-	return $list;
1070
+    return $list;
1071 1071
 }
1072 1072
 
1073 1073
 /**
@@ -1087,9 +1087,9 @@  discard block
 block discarded – undo
1087 1087
     }
1088 1088
 
1089 1089
     $data = apply_filters( "wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php" );
1090
-	wp_cache_set( "wpinv-$key", $data, 'wpinv' );
1090
+    wp_cache_set( "wpinv-$key", $data, 'wpinv' );
1091 1091
 
1092
-	return $data;
1092
+    return $data;
1093 1093
 }
1094 1094
 
1095 1095
 /**
@@ -1118,17 +1118,17 @@  discard block
 block discarded – undo
1118 1118
  */
1119 1119
 function wpinv_clean( $var ) {
1120 1120
 
1121
-	if ( is_array( $var ) ) {
1122
-		return array_map( 'wpinv_clean', $var );
1121
+    if ( is_array( $var ) ) {
1122
+        return array_map( 'wpinv_clean', $var );
1123 1123
     }
1124 1124
 
1125 1125
     if ( is_object( $var ) ) {
1126
-		$object_vars = get_object_vars( $var );
1127
-		foreach ( $object_vars as $property_name => $property_value ) {
1128
-			$var->$property_name = wpinv_clean( $property_value );
1126
+        $object_vars = get_object_vars( $var );
1127
+        foreach ( $object_vars as $property_name => $property_value ) {
1128
+            $var->$property_name = wpinv_clean( $property_value );
1129 1129
         }
1130 1130
         return $var;
1131
-	}
1131
+    }
1132 1132
     
1133 1133
     return is_string( $var ) ? sanitize_text_field( $var ) : $var;
1134 1134
 }
@@ -1141,7 +1141,7 @@  discard block
 block discarded – undo
1141 1141
  */
1142 1142
 function getpaid_convert_price_string_to_options( $str ) {
1143 1143
 
1144
-	$raw_options = array_map( 'trim', explode( ',', $str ) );
1144
+    $raw_options = array_map( 'trim', explode( ',', $str ) );
1145 1145
     $options     = array();
1146 1146
 
1147 1147
     foreach ( $raw_options as $option ) {
Please login to merge, or discard this patch.
includes/data-stores/class-getpaid-discount-data-store.php 1 patch
Indentation   +170 added lines, -170 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 if ( ! defined( 'ABSPATH' ) ) {
8
-	exit;
8
+    exit;
9 9
 }
10 10
 
11 11
 /**
@@ -15,180 +15,180 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class GetPaid_Discount_Data_Store extends GetPaid_Data_Store_WP {
17 17
 
18
-	/**
19
-	 * Data stored in meta keys, but not considered "meta" for a discount.
20
-	 *
21
-	 * @since 1.0.19
22
-	 * @var array
23
-	 */
24
-	protected $internal_meta_keys = array(
25
-		'_wpi_discount_code',
26
-		'_wpi_discount_amount',
27
-		'_wpi_discount_start',
28
-		'_wpi_discount_expiration',
29
-		'_wpi_discount_type',
30
-		'_wpi_discount_uses',
31
-		'_wpi_discount_is_single_use',
32
-		'_wpi_discount_items',
33
-		'_wpi_discount_excluded_items',
34
-		'_wpi_discount_max_uses',
35
-		'_wpi_discount_is_recurring',
36
-		'_wpi_discount_min_total',
37
-		'_wpi_discount_max_total',
38
-	);
39
-
40
-	/**
41
-	 * A map of meta keys to data props.
42
-	 *
43
-	 * @since 1.0.19
44
-	 *
45
-	 * @var array
46
-	 */
47
-	protected $meta_key_to_props = array(
48
-		'_wpi_discount_code'           => 'code',
49
-		'_wpi_discount_amount'         => 'amount',
50
-		'_wpi_discount_start'          => 'start',
51
-		'_wpi_discount_expiration'     => 'expiration',
52
-		'_wpi_discount_type'           => 'type',
53
-		'_wpi_discount_uses'           => 'uses',
54
-		'_wpi_discount_is_single_use'  => 'is_single_use',
55
-		'_wpi_discount_items'          => 'items',
56
-		'_wpi_discount_excluded_items' => 'excluded_items',
57
-		'_wpi_discount_max_uses'       => 'max_uses',
58
-		'_wpi_discount_is_recurring'   => 'is_recurring',
59
-		'_wpi_discount_min_total'      => 'min_total',
60
-		'_wpi_discount_max_total'      => 'max_total',
61
-	);
62
-
63
-	/*
18
+    /**
19
+     * Data stored in meta keys, but not considered "meta" for a discount.
20
+     *
21
+     * @since 1.0.19
22
+     * @var array
23
+     */
24
+    protected $internal_meta_keys = array(
25
+        '_wpi_discount_code',
26
+        '_wpi_discount_amount',
27
+        '_wpi_discount_start',
28
+        '_wpi_discount_expiration',
29
+        '_wpi_discount_type',
30
+        '_wpi_discount_uses',
31
+        '_wpi_discount_is_single_use',
32
+        '_wpi_discount_items',
33
+        '_wpi_discount_excluded_items',
34
+        '_wpi_discount_max_uses',
35
+        '_wpi_discount_is_recurring',
36
+        '_wpi_discount_min_total',
37
+        '_wpi_discount_max_total',
38
+    );
39
+
40
+    /**
41
+     * A map of meta keys to data props.
42
+     *
43
+     * @since 1.0.19
44
+     *
45
+     * @var array
46
+     */
47
+    protected $meta_key_to_props = array(
48
+        '_wpi_discount_code'           => 'code',
49
+        '_wpi_discount_amount'         => 'amount',
50
+        '_wpi_discount_start'          => 'start',
51
+        '_wpi_discount_expiration'     => 'expiration',
52
+        '_wpi_discount_type'           => 'type',
53
+        '_wpi_discount_uses'           => 'uses',
54
+        '_wpi_discount_is_single_use'  => 'is_single_use',
55
+        '_wpi_discount_items'          => 'items',
56
+        '_wpi_discount_excluded_items' => 'excluded_items',
57
+        '_wpi_discount_max_uses'       => 'max_uses',
58
+        '_wpi_discount_is_recurring'   => 'is_recurring',
59
+        '_wpi_discount_min_total'      => 'min_total',
60
+        '_wpi_discount_max_total'      => 'max_total',
61
+    );
62
+
63
+    /*
64 64
 	|--------------------------------------------------------------------------
65 65
 	| CRUD Methods
66 66
 	|--------------------------------------------------------------------------
67 67
 	*/
68 68
 
69
-	/**
70
-	 * Method to create a new discount in the database.
71
-	 *
72
-	 * @param WPInv_Discount $discount Discount object.
73
-	 */
74
-	public function create( &$discount ) {
75
-		$discount->set_version( WPINV_VERSION );
76
-		$discount->set_date_created( current_time('mysql') );
77
-
78
-		// Create a new post.
79
-		$id = wp_insert_post(
80
-			apply_filters(
81
-				'getpaid_new_discount_data',
82
-				array(
83
-					'post_date'     => $discount->get_date_created( 'edit' ),
84
-					'post_type'     => 'wpi_discount',
85
-					'post_status'   => $this->get_post_status( $discount ),
86
-					'ping_status'   => 'closed',
87
-					'post_author'   => $discount->get_author( 'edit' ),
88
-					'post_title'    => $discount->get_name( 'edit' ),
89
-					'post_excerpt'  => $discount->get_description( 'edit' ),
90
-				)
91
-			),
92
-			true
93
-		);
94
-
95
-		if ( $id && ! is_wp_error( $id ) ) {
96
-			$discount->set_id( $id );
97
-			$this->update_post_meta( $discount );
98
-			$discount->save_meta_data();
99
-			$discount->apply_changes();
100
-			$this->clear_caches( $discount );
101
-			return true;
102
-		}
103
-
104
-		if ( is_wp_error( $id ) ) {
105
-			$discount->last_error = $id->get_error_message();
106
-		}
107
-
108
-		return false;
109
-	}
110
-
111
-	/**
112
-	 * Method to read a discount from the database.
113
-	 *
114
-	 * @param WPInv_Discount $discount Discount object.
115
-	 *
116
-	 */
117
-	public function read( &$discount ) {
118
-
119
-		$discount->set_defaults();
120
-		$discount_object = get_post( $discount->get_id() );
121
-
122
-		if ( ! $discount->get_id() || ! $discount_object || $discount_object->post_type != 'wpi_discount' ) {
123
-			$discount->last_error = __( 'Invalid discount.', 'invoicing' );
124
-			return false;
125
-		}
126
-
127
-		$discount->set_props(
128
-			array(
129
-				'date_created'  => 0 < $discount_object->post_date_gmt ? $discount_object->post_date_gmt : null,
130
-				'date_modified' => 0 < $discount_object->post_modified_gmt ? $discount_object->post_modified_gmt : null,
131
-				'status'        => $discount_object->post_status,
132
-				'name'          => $discount_object->post_title,
133
-				'author'        => $discount_object->post_author,
134
-				'description'   => $discount_object->post_excerpt,
135
-			)
136
-		);
137
-
138
-		$this->read_object_data( $discount, $discount_object );
139
-		$discount->read_meta_data();
140
-		$discount->set_object_read( true );
141
-
142
-	}
143
-
144
-	/**
145
-	 * Method to update a discount in the database.
146
-	 *
147
-	 * @param WPInv_Discount $discount Discount object.
148
-	 */
149
-	public function update( &$discount ) {
150
-		$discount->save_meta_data();
151
-		$discount->set_version( WPINV_VERSION );
152
-
153
-		if ( null === $discount->get_date_created( 'edit' ) ) {
154
-			$discount->set_date_created(  current_time('mysql') );
155
-		}
156
-
157
-		$changes = $discount->get_changes();
158
-
159
-		// Only update the post when the post data changes.
160
-		if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'post_excerpt' ), array_keys( $changes ) ) ) {
161
-			$post_data = array(
162
-				'post_date'         => $discount->get_date_created( 'edit' ),
163
-				'post_status'       => $discount->get_status( 'edit' ),
164
-				'post_title'        => $discount->get_name( 'edit' ),
165
-				'post_author'       => $discount->get_author( 'edit' ),
166
-				'post_modified'     => $discount->get_date_modified( 'edit' ),
167
-				'post_excerpt'      => $discount->get_description( 'edit' ),
168
-			);
169
-
170
-			/**
171
-			 * When updating this object, to prevent infinite loops, use $wpdb
172
-			 * to update data, since wp_update_post spawns more calls to the
173
-			 * save_post action.
174
-			 *
175
-			 * This ensures hooks are fired by either WP itself (admin screen save),
176
-			 * or an update purely from CRUD.
177
-			 */
178
-			if ( doing_action( 'save_post' ) ) {
179
-				$GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $discount->get_id() ) );
180
-				clean_post_cache( $discount->get_id() );
181
-			} else {
182
-				wp_update_post( array_merge( array( 'ID' => $discount->get_id() ), $post_data ) );
183
-			}
184
-			$discount->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
185
-		}
186
-		$this->update_post_meta( $discount );
187
-		$discount->apply_changes();
188
-		$this->clear_caches( $discount );
189
-	}
190
-
191
-	/*
69
+    /**
70
+     * Method to create a new discount in the database.
71
+     *
72
+     * @param WPInv_Discount $discount Discount object.
73
+     */
74
+    public function create( &$discount ) {
75
+        $discount->set_version( WPINV_VERSION );
76
+        $discount->set_date_created( current_time('mysql') );
77
+
78
+        // Create a new post.
79
+        $id = wp_insert_post(
80
+            apply_filters(
81
+                'getpaid_new_discount_data',
82
+                array(
83
+                    'post_date'     => $discount->get_date_created( 'edit' ),
84
+                    'post_type'     => 'wpi_discount',
85
+                    'post_status'   => $this->get_post_status( $discount ),
86
+                    'ping_status'   => 'closed',
87
+                    'post_author'   => $discount->get_author( 'edit' ),
88
+                    'post_title'    => $discount->get_name( 'edit' ),
89
+                    'post_excerpt'  => $discount->get_description( 'edit' ),
90
+                )
91
+            ),
92
+            true
93
+        );
94
+
95
+        if ( $id && ! is_wp_error( $id ) ) {
96
+            $discount->set_id( $id );
97
+            $this->update_post_meta( $discount );
98
+            $discount->save_meta_data();
99
+            $discount->apply_changes();
100
+            $this->clear_caches( $discount );
101
+            return true;
102
+        }
103
+
104
+        if ( is_wp_error( $id ) ) {
105
+            $discount->last_error = $id->get_error_message();
106
+        }
107
+
108
+        return false;
109
+    }
110
+
111
+    /**
112
+     * Method to read a discount from the database.
113
+     *
114
+     * @param WPInv_Discount $discount Discount object.
115
+     *
116
+     */
117
+    public function read( &$discount ) {
118
+
119
+        $discount->set_defaults();
120
+        $discount_object = get_post( $discount->get_id() );
121
+
122
+        if ( ! $discount->get_id() || ! $discount_object || $discount_object->post_type != 'wpi_discount' ) {
123
+            $discount->last_error = __( 'Invalid discount.', 'invoicing' );
124
+            return false;
125
+        }
126
+
127
+        $discount->set_props(
128
+            array(
129
+                'date_created'  => 0 < $discount_object->post_date_gmt ? $discount_object->post_date_gmt : null,
130
+                'date_modified' => 0 < $discount_object->post_modified_gmt ? $discount_object->post_modified_gmt : null,
131
+                'status'        => $discount_object->post_status,
132
+                'name'          => $discount_object->post_title,
133
+                'author'        => $discount_object->post_author,
134
+                'description'   => $discount_object->post_excerpt,
135
+            )
136
+        );
137
+
138
+        $this->read_object_data( $discount, $discount_object );
139
+        $discount->read_meta_data();
140
+        $discount->set_object_read( true );
141
+
142
+    }
143
+
144
+    /**
145
+     * Method to update a discount in the database.
146
+     *
147
+     * @param WPInv_Discount $discount Discount object.
148
+     */
149
+    public function update( &$discount ) {
150
+        $discount->save_meta_data();
151
+        $discount->set_version( WPINV_VERSION );
152
+
153
+        if ( null === $discount->get_date_created( 'edit' ) ) {
154
+            $discount->set_date_created(  current_time('mysql') );
155
+        }
156
+
157
+        $changes = $discount->get_changes();
158
+
159
+        // Only update the post when the post data changes.
160
+        if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'post_excerpt' ), array_keys( $changes ) ) ) {
161
+            $post_data = array(
162
+                'post_date'         => $discount->get_date_created( 'edit' ),
163
+                'post_status'       => $discount->get_status( 'edit' ),
164
+                'post_title'        => $discount->get_name( 'edit' ),
165
+                'post_author'       => $discount->get_author( 'edit' ),
166
+                'post_modified'     => $discount->get_date_modified( 'edit' ),
167
+                'post_excerpt'      => $discount->get_description( 'edit' ),
168
+            );
169
+
170
+            /**
171
+             * When updating this object, to prevent infinite loops, use $wpdb
172
+             * to update data, since wp_update_post spawns more calls to the
173
+             * save_post action.
174
+             *
175
+             * This ensures hooks are fired by either WP itself (admin screen save),
176
+             * or an update purely from CRUD.
177
+             */
178
+            if ( doing_action( 'save_post' ) ) {
179
+                $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $discount->get_id() ) );
180
+                clean_post_cache( $discount->get_id() );
181
+            } else {
182
+                wp_update_post( array_merge( array( 'ID' => $discount->get_id() ), $post_data ) );
183
+            }
184
+            $discount->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
185
+        }
186
+        $this->update_post_meta( $discount );
187
+        $discount->apply_changes();
188
+        $this->clear_caches( $discount );
189
+    }
190
+
191
+    /*
192 192
 	|--------------------------------------------------------------------------
193 193
 	| Additional Methods
194 194
 	|--------------------------------------------------------------------------
Please login to merge, or discard this patch.
includes/class-wpinv-discount.php 1 patch
Indentation   +1262 added lines, -1262 removed lines patch added patch discarded remove patch
@@ -15,30 +15,30 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class WPInv_Discount extends GetPaid_Data  {
17 17
 
18
-	/**
19
-	 * Which data store to load.
20
-	 *
21
-	 * @var string
22
-	 */
18
+    /**
19
+     * Which data store to load.
20
+     *
21
+     * @var string
22
+     */
23 23
     protected $data_store_name = 'discount';
24 24
 
25 25
     /**
26
-	 * This is the name of this object type.
27
-	 *
28
-	 * @var string
29
-	 */
30
-	protected $object_type = 'discount';
31
-
32
-	/**
33
-	 * Discount Data array. This is the core item data exposed in APIs.
34
-	 *
35
-	 * @since 1.0.19
36
-	 * @var array
37
-	 */
38
-	protected $data = array(
39
-		'status'               => 'draft',
40
-		'version'              => '',
41
-		'date_created'         => null,
26
+     * This is the name of this object type.
27
+     *
28
+     * @var string
29
+     */
30
+    protected $object_type = 'discount';
31
+
32
+    /**
33
+     * Discount Data array. This is the core item data exposed in APIs.
34
+     *
35
+     * @since 1.0.19
36
+     * @var array
37
+     */
38
+    protected $data = array(
39
+        'status'               => 'draft',
40
+        'version'              => '',
41
+        'date_created'         => null,
42 42
         'date_modified'        => null,
43 43
         'name'                 => 'no-name',
44 44
         'description'          => null,
@@ -58,144 +58,144 @@  discard block
 block discarded – undo
58 58
         'amount'               => null,
59 59
     );
60 60
 
61
-	/**
62
-	 * Stores meta in cache for future reads.
63
-	 *
64
-	 * A group must be set to to enable caching.
65
-	 *
66
-	 * @var string
67
-	 */
68
-	protected $cache_group = 'getpaid_discounts';
61
+    /**
62
+     * Stores meta in cache for future reads.
63
+     *
64
+     * A group must be set to to enable caching.
65
+     *
66
+     * @var string
67
+     */
68
+    protected $cache_group = 'getpaid_discounts';
69 69
 
70 70
     /**
71 71
      * Stores a reference to the original WP_Post object
72 72
      *
73 73
      * @var WP_Post
74 74
      */
75
-	protected $post = null;
76
-
77
-	/**
78
-	 * Get the discount if ID is passed, otherwise the discount is new and empty.
79
-	 *
80
-	 * @param int|array|string|WPInv_Discount|WP_Post $discount discount data, object, ID or code.
81
-	 */
82
-	public function __construct( $discount = 0 ) {
83
-		parent::__construct( $discount );
84
-
85
-		if ( is_numeric( $discount ) && 'wpi_discount' === get_post_type( $discount ) ) {
86
-			$this->set_id( $discount );
87
-		} elseif ( $discount instanceof self ) {
88
-			$this->set_id( $discount->get_id() );
89
-		} elseif ( ! empty( $discount->ID ) ) {
90
-			$this->set_id( $discount->ID );
91
-		} elseif ( is_array( $discount ) ) {
92
-			$this->set_props( $discount );
93
-
94
-			if ( isset( $discount['ID'] ) ) {
95
-				$this->set_id( $discount['ID'] );
96
-			}
97
-
98
-		} elseif ( is_scalar( $discount ) && $discount = self::get_discount_id_by_code( $discount ) ) {
99
-			$this->set_id( $discount );
100
-		} else {
101
-			$this->set_object_read( true );
102
-		}
75
+    protected $post = null;
76
+
77
+    /**
78
+     * Get the discount if ID is passed, otherwise the discount is new and empty.
79
+     *
80
+     * @param int|array|string|WPInv_Discount|WP_Post $discount discount data, object, ID or code.
81
+     */
82
+    public function __construct( $discount = 0 ) {
83
+        parent::__construct( $discount );
84
+
85
+        if ( is_numeric( $discount ) && 'wpi_discount' === get_post_type( $discount ) ) {
86
+            $this->set_id( $discount );
87
+        } elseif ( $discount instanceof self ) {
88
+            $this->set_id( $discount->get_id() );
89
+        } elseif ( ! empty( $discount->ID ) ) {
90
+            $this->set_id( $discount->ID );
91
+        } elseif ( is_array( $discount ) ) {
92
+            $this->set_props( $discount );
93
+
94
+            if ( isset( $discount['ID'] ) ) {
95
+                $this->set_id( $discount['ID'] );
96
+            }
97
+
98
+        } elseif ( is_scalar( $discount ) && $discount = self::get_discount_id_by_code( $discount ) ) {
99
+            $this->set_id( $discount );
100
+        } else {
101
+            $this->set_object_read( true );
102
+        }
103 103
 
104 104
         // Load the datastore.
105
-		$this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
105
+        $this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
106 106
 
107
-		if ( $this->get_id() > 0 ) {
107
+        if ( $this->get_id() > 0 ) {
108 108
             $this->post = get_post( $this->get_id() );
109 109
             $this->ID   = $this->get_id();
110
-			$this->data_store->read( $this );
110
+            $this->data_store->read( $this );
111
+        }
112
+
113
+    }
114
+
115
+    /**
116
+     * Fetch a discount from the db/cache
117
+     *
118
+     *
119
+     * @static
120
+     * @param string $field The field to query against: 'ID', 'discount_code'
121
+     * @param string|int $value The field value
122
+     * @deprecated
123
+     * @since 1.0.15
124
+     * @return array|bool array of discount details on success. False otherwise.
125
+     */
126
+    public static function get_data_by( $field, $value ) {
127
+
128
+        if ( 'id' == strtolower( $field ) ) {
129
+            // Make sure the value is numeric to avoid casting objects, for example,
130
+            // to int 1.
131
+            if ( ! is_numeric( $value ) )
132
+                return false;
133
+            $value = intval( $value );
134
+            if ( $value < 1 )
135
+                return false;
136
+        }
137
+
138
+        if ( ! $value || ! is_string( $field ) ) {
139
+            return false;
140
+        }
141
+
142
+        $field = trim( $field );
143
+
144
+        // prepare query args
145
+        switch ( strtolower( $field ) ) {
146
+            case 'id':
147
+                $discount_id = $value;
148
+                $args		 = array( 'include' => array( $value ) );
149
+                break;
150
+            case 'discount_code':
151
+            case 'code':
152
+                $value       = trim( $value );
153
+                $discount_id = wp_cache_get( $value, 'WPInv_Discount_Codes' );
154
+                $args		 = array( 'meta_key' => '_wpi_discount_code', 'meta_value' => $value );
155
+                break;
156
+            case 'name':
157
+                $discount_id = 0;
158
+                $args		 = array( 'name' => trim( $value ) );
159
+                break;
160
+            default:
161
+                $args		 = apply_filters( "wpinv_discount_get_data_by_{$field}_args", null, $value );
162
+                if ( ! is_array( $args ) ) {
163
+                    return apply_filters( "wpinv_discount_get_data_by_$field", false, $value );
164
+                }
165
+
166
+        }
167
+
168
+        // Check if there is a cached value.
169
+        if ( ! empty( $discount_id ) && $discount = wp_cache_get( (int) $discount_id, 'WPInv_Discounts' ) ) {
170
+            return $discount;
171
+        }
172
+
173
+        $args = array_merge(
174
+            $args,
175
+            array(
176
+                'post_type'      => 'wpi_discount',
177
+                'posts_per_page' => 1,
178
+                'post_status'    => array( 'publish', 'pending', 'draft', 'expired' )
179
+            )
180
+        );
181
+
182
+        $discount = get_posts( $args );
183
+
184
+        if( empty( $discount ) ) {
185
+            return false;
111 186
         }
112 187
 
113
-	}
114
-
115
-	/**
116
-	 * Fetch a discount from the db/cache
117
-	 *
118
-	 *
119
-	 * @static
120
-	 * @param string $field The field to query against: 'ID', 'discount_code'
121
-	 * @param string|int $value The field value
122
-	 * @deprecated
123
-	 * @since 1.0.15
124
-	 * @return array|bool array of discount details on success. False otherwise.
125
-	 */
126
-	public static function get_data_by( $field, $value ) {
127
-
128
-		if ( 'id' == strtolower( $field ) ) {
129
-			// Make sure the value is numeric to avoid casting objects, for example,
130
-			// to int 1.
131
-			if ( ! is_numeric( $value ) )
132
-				return false;
133
-			$value = intval( $value );
134
-			if ( $value < 1 )
135
-				return false;
136
-		}
137
-
138
-		if ( ! $value || ! is_string( $field ) ) {
139
-			return false;
140
-		}
141
-
142
-		$field = trim( $field );
143
-
144
-		// prepare query args
145
-		switch ( strtolower( $field ) ) {
146
-			case 'id':
147
-				$discount_id = $value;
148
-				$args		 = array( 'include' => array( $value ) );
149
-				break;
150
-			case 'discount_code':
151
-			case 'code':
152
-				$value       = trim( $value );
153
-				$discount_id = wp_cache_get( $value, 'WPInv_Discount_Codes' );
154
-				$args		 = array( 'meta_key' => '_wpi_discount_code', 'meta_value' => $value );
155
-				break;
156
-			case 'name':
157
-				$discount_id = 0;
158
-				$args		 = array( 'name' => trim( $value ) );
159
-				break;
160
-			default:
161
-				$args		 = apply_filters( "wpinv_discount_get_data_by_{$field}_args", null, $value );
162
-				if ( ! is_array( $args ) ) {
163
-					return apply_filters( "wpinv_discount_get_data_by_$field", false, $value );
164
-				}
165
-
166
-		}
167
-
168
-		// Check if there is a cached value.
169
-		if ( ! empty( $discount_id ) && $discount = wp_cache_get( (int) $discount_id, 'WPInv_Discounts' ) ) {
170
-			return $discount;
171
-		}
172
-
173
-		$args = array_merge(
174
-			$args,
175
-			array(
176
-				'post_type'      => 'wpi_discount',
177
-				'posts_per_page' => 1,
178
-				'post_status'    => array( 'publish', 'pending', 'draft', 'expired' )
179
-			)
180
-		);
181
-
182
-		$discount = get_posts( $args );
183
-
184
-		if( empty( $discount ) ) {
185
-			return false;
186
-		}
187
-
188
-		$discount = $discount[0];
189
-
190
-		// Prepare the return data.
191
-		$return = array(
188
+        $discount = $discount[0];
189
+
190
+        // Prepare the return data.
191
+        $return = array(
192 192
             'ID'                          => $discount->ID,
193 193
             'code'                        => get_post_meta( $discount->ID, '_wpi_discount_code', true ),
194 194
             'amount'                      => get_post_meta( $discount->ID, '_wpi_discount_amount', true ),
195 195
             'date_created'                => $discount->post_date,
196
-			'date_modified'               => $discount->post_modified,
197
-			'status'               		  => $discount->post_status,
198
-			'start'                  	  => get_post_meta( $discount->ID, '_wpi_discount_start', true ),
196
+            'date_modified'               => $discount->post_modified,
197
+            'status'               		  => $discount->post_status,
198
+            'start'                  	  => get_post_meta( $discount->ID, '_wpi_discount_start', true ),
199 199
             'expiration'                  => get_post_meta( $discount->ID, '_wpi_discount_expiration', true ),
200 200
             'type'               		  => get_post_meta( $discount->ID, '_wpi_discount_type', true ),
201 201
             'description'                 => $discount->post_excerpt,
@@ -209,77 +209,77 @@  discard block
 block discarded – undo
209 209
             'max_total'                   => get_post_meta( $discount->ID, '_wpi_discount_max_total', true ),
210 210
         );
211 211
 
212
-		$return = apply_filters( 'wpinv_discount_properties', $return );
213
-
214
-		// Update the cache with our data
215
-		wp_cache_add( $discount->ID, $return, 'WPInv_Discounts' );
216
-		wp_cache_add( $return['code'], $discount->ID, 'WPInv_Discount_Codes' );
217
-
218
-		return $return;
219
-	}
220
-
221
-	/**
222
-	 * Given a discount code, it returns a discount id.
223
-	 *
224
-	 *
225
-	 * @static
226
-	 * @param string $discount_code
227
-	 * @since 1.0.15
228
-	 * @return int
229
-	 */
230
-	public static function get_discount_id_by_code( $discount_code ) {
231
-
232
-		// Trim the code.
233
-		$discount_code = trim( $discount_code );
234
-
235
-		// Ensure a value has been passed.
236
-		if ( empty( $discount_code ) ) {
237
-			return 0;
238
-		}
239
-
240
-		// Maybe retrieve from the cache.
241
-		$discount_id   = wp_cache_get( $discount_code, 'getpaid_discount_codes' );
242
-		if ( ! empty( $discount_id ) ) {
243
-			return $discount_id;
244
-		}
245
-
246
-		// Fetch the first discount codes.
247
-		$discounts = get_posts(
248
-			array(
249
-				'meta_key'       => '_wpi_discount_code',
250
-				'meta_value'     => $discount_code,
251
-				'post_type'      => 'wpi_discount',
252
-				'posts_per_page' => 1,
253
-				'post_status'    => array( 'publish', 'pending', 'draft', 'expired' ),
254
-				'fields'         => 'ids',
255
-			)
256
-		);
257
-
258
-		if ( empty( $discounts ) ) {
259
-			return 0;
260
-		}
261
-
262
-		$discount_id = $discounts[0];
263
-
264
-		// Update the cache with our data
265
-		wp_cache_add( get_post_meta( $discount_id, '_wpi_discount_code', true ), $discount_id, 'getpaid_discount_codes' );
266
-
267
-		return $discount_id;
268
-	}
269
-
270
-	/**
271
-	 * Magic method for checking the existence of a certain custom field.
272
-	 *
273
-	 * @since 1.0.15
274
-	 * @access public
275
-	 *
276
-	 * @return bool Whether the given discount field is set.
277
-	 */
278
-	public function __isset( $key ){
279
-		return isset( $this->data[$key] ) || method_exists( $this, "get_$key");
280
-	}
281
-
282
-	/*
212
+        $return = apply_filters( 'wpinv_discount_properties', $return );
213
+
214
+        // Update the cache with our data
215
+        wp_cache_add( $discount->ID, $return, 'WPInv_Discounts' );
216
+        wp_cache_add( $return['code'], $discount->ID, 'WPInv_Discount_Codes' );
217
+
218
+        return $return;
219
+    }
220
+
221
+    /**
222
+     * Given a discount code, it returns a discount id.
223
+     *
224
+     *
225
+     * @static
226
+     * @param string $discount_code
227
+     * @since 1.0.15
228
+     * @return int
229
+     */
230
+    public static function get_discount_id_by_code( $discount_code ) {
231
+
232
+        // Trim the code.
233
+        $discount_code = trim( $discount_code );
234
+
235
+        // Ensure a value has been passed.
236
+        if ( empty( $discount_code ) ) {
237
+            return 0;
238
+        }
239
+
240
+        // Maybe retrieve from the cache.
241
+        $discount_id   = wp_cache_get( $discount_code, 'getpaid_discount_codes' );
242
+        if ( ! empty( $discount_id ) ) {
243
+            return $discount_id;
244
+        }
245
+
246
+        // Fetch the first discount codes.
247
+        $discounts = get_posts(
248
+            array(
249
+                'meta_key'       => '_wpi_discount_code',
250
+                'meta_value'     => $discount_code,
251
+                'post_type'      => 'wpi_discount',
252
+                'posts_per_page' => 1,
253
+                'post_status'    => array( 'publish', 'pending', 'draft', 'expired' ),
254
+                'fields'         => 'ids',
255
+            )
256
+        );
257
+
258
+        if ( empty( $discounts ) ) {
259
+            return 0;
260
+        }
261
+
262
+        $discount_id = $discounts[0];
263
+
264
+        // Update the cache with our data
265
+        wp_cache_add( get_post_meta( $discount_id, '_wpi_discount_code', true ), $discount_id, 'getpaid_discount_codes' );
266
+
267
+        return $discount_id;
268
+    }
269
+
270
+    /**
271
+     * Magic method for checking the existence of a certain custom field.
272
+     *
273
+     * @since 1.0.15
274
+     * @access public
275
+     *
276
+     * @return bool Whether the given discount field is set.
277
+     */
278
+    public function __isset( $key ){
279
+        return isset( $this->data[$key] ) || method_exists( $this, "get_$key");
280
+    }
281
+
282
+    /*
283 283
 	|--------------------------------------------------------------------------
284 284
 	| CRUD methods
285 285
 	|--------------------------------------------------------------------------
@@ -294,399 +294,399 @@  discard block
 block discarded – undo
294 294
 	|--------------------------------------------------------------------------
295 295
 	*/
296 296
 
297
-	/**
298
-	 * Get discount status.
299
-	 *
300
-	 * @since 1.0.19
301
-	 * @param  string $context View or edit context.
302
-	 * @return string
303
-	 */
304
-	public function get_status( $context = 'view' ) {
305
-		return $this->get_prop( 'status', $context );
297
+    /**
298
+     * Get discount status.
299
+     *
300
+     * @since 1.0.19
301
+     * @param  string $context View or edit context.
302
+     * @return string
303
+     */
304
+    public function get_status( $context = 'view' ) {
305
+        return $this->get_prop( 'status', $context );
306 306
     }
307 307
 
308 308
     /**
309
-	 * Get plugin version when the discount was created.
310
-	 *
311
-	 * @since 1.0.19
312
-	 * @param  string $context View or edit context.
313
-	 * @return string
314
-	 */
315
-	public function get_version( $context = 'view' ) {
316
-		return $this->get_prop( 'version', $context );
309
+     * Get plugin version when the discount was created.
310
+     *
311
+     * @since 1.0.19
312
+     * @param  string $context View or edit context.
313
+     * @return string
314
+     */
315
+    public function get_version( $context = 'view' ) {
316
+        return $this->get_prop( 'version', $context );
317 317
     }
318 318
 
319 319
     /**
320
-	 * Get date when the discount was created.
321
-	 *
322
-	 * @since 1.0.19
323
-	 * @param  string $context View or edit context.
324
-	 * @return string
325
-	 */
326
-	public function get_date_created( $context = 'view' ) {
327
-		return $this->get_prop( 'date_created', $context );
320
+     * Get date when the discount was created.
321
+     *
322
+     * @since 1.0.19
323
+     * @param  string $context View or edit context.
324
+     * @return string
325
+     */
326
+    public function get_date_created( $context = 'view' ) {
327
+        return $this->get_prop( 'date_created', $context );
328 328
     }
329 329
 
330 330
     /**
331
-	 * Get GMT date when the discount was created.
332
-	 *
333
-	 * @since 1.0.19
334
-	 * @param  string $context View or edit context.
335
-	 * @return string
336
-	 */
337
-	public function get_date_created_gmt( $context = 'view' ) {
331
+     * Get GMT date when the discount was created.
332
+     *
333
+     * @since 1.0.19
334
+     * @param  string $context View or edit context.
335
+     * @return string
336
+     */
337
+    public function get_date_created_gmt( $context = 'view' ) {
338 338
         $date = $this->get_date_created( $context );
339 339
 
340 340
         if ( $date ) {
341 341
             $date = get_gmt_from_date( $date );
342 342
         }
343
-		return $date;
343
+        return $date;
344 344
     }
345 345
 
346 346
     /**
347
-	 * Get date when the discount was last modified.
348
-	 *
349
-	 * @since 1.0.19
350
-	 * @param  string $context View or edit context.
351
-	 * @return string
352
-	 */
353
-	public function get_date_modified( $context = 'view' ) {
354
-		return $this->get_prop( 'date_modified', $context );
347
+     * Get date when the discount was last modified.
348
+     *
349
+     * @since 1.0.19
350
+     * @param  string $context View or edit context.
351
+     * @return string
352
+     */
353
+    public function get_date_modified( $context = 'view' ) {
354
+        return $this->get_prop( 'date_modified', $context );
355 355
     }
356 356
 
357 357
     /**
358
-	 * Get GMT date when the discount was last modified.
359
-	 *
360
-	 * @since 1.0.19
361
-	 * @param  string $context View or edit context.
362
-	 * @return string
363
-	 */
364
-	public function get_date_modified_gmt( $context = 'view' ) {
358
+     * Get GMT date when the discount was last modified.
359
+     *
360
+     * @since 1.0.19
361
+     * @param  string $context View or edit context.
362
+     * @return string
363
+     */
364
+    public function get_date_modified_gmt( $context = 'view' ) {
365 365
         $date = $this->get_date_modified( $context );
366 366
 
367 367
         if ( $date ) {
368 368
             $date = get_gmt_from_date( $date );
369 369
         }
370
-		return $date;
370
+        return $date;
371 371
     }
372 372
 
373 373
     /**
374
-	 * Get the discount name.
375
-	 *
376
-	 * @since 1.0.19
377
-	 * @param  string $context View or edit context.
378
-	 * @return string
379
-	 */
380
-	public function get_name( $context = 'view' ) {
381
-		return $this->get_prop( 'name', $context );
374
+     * Get the discount name.
375
+     *
376
+     * @since 1.0.19
377
+     * @param  string $context View or edit context.
378
+     * @return string
379
+     */
380
+    public function get_name( $context = 'view' ) {
381
+        return $this->get_prop( 'name', $context );
382 382
     }
383 383
 
384 384
     /**
385
-	 * Alias of self::get_name().
386
-	 *
387
-	 * @since 1.0.19
388
-	 * @param  string $context View or edit context.
389
-	 * @return string
390
-	 */
391
-	public function get_title( $context = 'view' ) {
392
-		return $this->get_name( $context );
385
+     * Alias of self::get_name().
386
+     *
387
+     * @since 1.0.19
388
+     * @param  string $context View or edit context.
389
+     * @return string
390
+     */
391
+    public function get_title( $context = 'view' ) {
392
+        return $this->get_name( $context );
393 393
     }
394 394
 
395 395
     /**
396
-	 * Get the discount description.
397
-	 *
398
-	 * @since 1.0.19
399
-	 * @param  string $context View or edit context.
400
-	 * @return string
401
-	 */
402
-	public function get_description( $context = 'view' ) {
403
-		return $this->get_prop( 'description', $context );
396
+     * Get the discount description.
397
+     *
398
+     * @since 1.0.19
399
+     * @param  string $context View or edit context.
400
+     * @return string
401
+     */
402
+    public function get_description( $context = 'view' ) {
403
+        return $this->get_prop( 'description', $context );
404 404
     }
405 405
 
406 406
     /**
407
-	 * Alias of self::get_description().
408
-	 *
409
-	 * @since 1.0.19
410
-	 * @param  string $context View or edit context.
411
-	 * @return string
412
-	 */
413
-	public function get_excerpt( $context = 'view' ) {
414
-		return $this->get_description( $context );
407
+     * Alias of self::get_description().
408
+     *
409
+     * @since 1.0.19
410
+     * @param  string $context View or edit context.
411
+     * @return string
412
+     */
413
+    public function get_excerpt( $context = 'view' ) {
414
+        return $this->get_description( $context );
415 415
     }
416 416
 
417 417
     /**
418
-	 * Alias of self::get_description().
419
-	 *
420
-	 * @since 1.0.19
421
-	 * @param  string $context View or edit context.
422
-	 * @return string
423
-	 */
424
-	public function get_summary( $context = 'view' ) {
425
-		return $this->get_description( $context );
418
+     * Alias of self::get_description().
419
+     *
420
+     * @since 1.0.19
421
+     * @param  string $context View or edit context.
422
+     * @return string
423
+     */
424
+    public function get_summary( $context = 'view' ) {
425
+        return $this->get_description( $context );
426 426
     }
427 427
 
428 428
     /**
429
-	 * Get the owner of the discount.
430
-	 *
431
-	 * @since 1.0.19
432
-	 * @param  string $context View or edit context.
433
-	 * @return string
434
-	 */
435
-	public function get_author( $context = 'view' ) {
436
-		return (int) $this->get_prop( 'author', $context );
437
-	}
429
+     * Get the owner of the discount.
430
+     *
431
+     * @since 1.0.19
432
+     * @param  string $context View or edit context.
433
+     * @return string
434
+     */
435
+    public function get_author( $context = 'view' ) {
436
+        return (int) $this->get_prop( 'author', $context );
437
+    }
438 438
 	
439
-	/**
440
-	 * Get the discount code.
441
-	 *
442
-	 * @since 1.0.19
443
-	 * @param  string $context View or edit context.
444
-	 * @return string
445
-	 */
446
-	public function get_code( $context = 'view' ) {
447
-		return $this->get_prop( 'code', $context );
448
-	}
439
+    /**
440
+     * Get the discount code.
441
+     *
442
+     * @since 1.0.19
443
+     * @param  string $context View or edit context.
444
+     * @return string
445
+     */
446
+    public function get_code( $context = 'view' ) {
447
+        return $this->get_prop( 'code', $context );
448
+    }
449 449
 	
450
-	/**
451
-	 * Alias for self::get_code().
452
-	 *
453
-	 * @since 1.0.19
454
-	 * @param  string $context View or edit context.
455
-	 * @return string
456
-	 */
457
-	public function get_coupon_code( $context = 'view' ) {
458
-		return $this->get_code( $context );
459
-	}
450
+    /**
451
+     * Alias for self::get_code().
452
+     *
453
+     * @since 1.0.19
454
+     * @param  string $context View or edit context.
455
+     * @return string
456
+     */
457
+    public function get_coupon_code( $context = 'view' ) {
458
+        return $this->get_code( $context );
459
+    }
460 460
 	
461
-	/**
462
-	 * Alias for self::get_code().
463
-	 *
464
-	 * @since 1.0.19
465
-	 * @param  string $context View or edit context.
466
-	 * @return string
467
-	 */
468
-	public function get_discount_code( $context = 'view' ) {
469
-		return $this->get_code( $context );
470
-	}
461
+    /**
462
+     * Alias for self::get_code().
463
+     *
464
+     * @since 1.0.19
465
+     * @param  string $context View or edit context.
466
+     * @return string
467
+     */
468
+    public function get_discount_code( $context = 'view' ) {
469
+        return $this->get_code( $context );
470
+    }
471 471
 	
472
-	/**
473
-	 * Get the discount's amount.
474
-	 *
475
-	 * @since 1.0.19
476
-	 * @param  string $context View or edit context.
477
-	 * @return float
478
-	 */
479
-	public function get_amount( $context = 'view' ) {
480
-		return $this->get_prop( 'amount', $context );
481
-	}
472
+    /**
473
+     * Get the discount's amount.
474
+     *
475
+     * @since 1.0.19
476
+     * @param  string $context View or edit context.
477
+     * @return float
478
+     */
479
+    public function get_amount( $context = 'view' ) {
480
+        return $this->get_prop( 'amount', $context );
481
+    }
482 482
 	
483
-	/**
484
-	 * Get the discount's start date.
485
-	 *
486
-	 * @since 1.0.19
487
-	 * @param  string $context View or edit context.
488
-	 * @return string
489
-	 */
490
-	public function get_start( $context = 'view' ) {
491
-		return $this->get_prop( 'start', $context );
492
-	}
483
+    /**
484
+     * Get the discount's start date.
485
+     *
486
+     * @since 1.0.19
487
+     * @param  string $context View or edit context.
488
+     * @return string
489
+     */
490
+    public function get_start( $context = 'view' ) {
491
+        return $this->get_prop( 'start', $context );
492
+    }
493 493
 	
494
-	/**
495
-	 * Alias for self::get_start().
496
-	 *
497
-	 * @since 1.0.19
498
-	 * @param  string $context View or edit context.
499
-	 * @return string
500
-	 */
501
-	public function get_start_date( $context = 'view' ) {
502
-		return $this->get_start( $context );
503
-	}
494
+    /**
495
+     * Alias for self::get_start().
496
+     *
497
+     * @since 1.0.19
498
+     * @param  string $context View or edit context.
499
+     * @return string
500
+     */
501
+    public function get_start_date( $context = 'view' ) {
502
+        return $this->get_start( $context );
503
+    }
504 504
 	
505
-	/**
506
-	 * Get the discount's expiration date.
507
-	 *
508
-	 * @since 1.0.19
509
-	 * @param  string $context View or edit context.
510
-	 * @return string
511
-	 */
512
-	public function get_expiration( $context = 'view' ) {
513
-		return $this->get_prop( 'expiration', $context );
514
-	}
505
+    /**
506
+     * Get the discount's expiration date.
507
+     *
508
+     * @since 1.0.19
509
+     * @param  string $context View or edit context.
510
+     * @return string
511
+     */
512
+    public function get_expiration( $context = 'view' ) {
513
+        return $this->get_prop( 'expiration', $context );
514
+    }
515 515
 	
516
-	/**
517
-	 * Alias for self::get_expiration().
518
-	 *
519
-	 * @since 1.0.19
520
-	 * @param  string $context View or edit context.
521
-	 * @return string
522
-	 */
523
-	public function get_expiration_date( $context = 'view' ) {
524
-		return $this->get_expiration( $context );
525
-	}
526
-
527
-	/**
528
-	 * Alias for self::get_expiration().
529
-	 *
530
-	 * @since 1.0.19
531
-	 * @param  string $context View or edit context.
532
-	 * @return string
533
-	 */
534
-	public function get_end_date( $context = 'view' ) {
535
-		return $this->get_expiration( $context );
536
-	}
516
+    /**
517
+     * Alias for self::get_expiration().
518
+     *
519
+     * @since 1.0.19
520
+     * @param  string $context View or edit context.
521
+     * @return string
522
+     */
523
+    public function get_expiration_date( $context = 'view' ) {
524
+        return $this->get_expiration( $context );
525
+    }
526
+
527
+    /**
528
+     * Alias for self::get_expiration().
529
+     *
530
+     * @since 1.0.19
531
+     * @param  string $context View or edit context.
532
+     * @return string
533
+     */
534
+    public function get_end_date( $context = 'view' ) {
535
+        return $this->get_expiration( $context );
536
+    }
537 537
 	
538
-	/**
539
-	 * Get the discount's type.
540
-	 *
541
-	 * @since 1.0.19
542
-	 * @param  string $context View or edit context.
543
-	 * @return string
544
-	 */
545
-	public function get_type( $context = 'view' ) {
546
-		return $this->get_prop( 'type', $context );
547
-	}
548
-
549
-	/**
550
-	 * Get the number of times a discount has been used.
551
-	 *
552
-	 * @since 1.0.19
553
-	 * @param  string $context View or edit context.
554
-	 * @return int
555
-	 */
556
-	public function get_uses( $context = 'view' ) {
557
-		return (int) $this->get_prop( 'uses', $context );
558
-	}
559
-
560
-	/**
561
-	 * Get the maximum number of time a discount can be used.
562
-	 *
563
-	 * @since 1.0.19
564
-	 * @param  string $context View or edit context.
565
-	 * @return int
566
-	 */
567
-	public function get_max_uses( $context = 'view' ) {
568
-		return $this->get_prop( 'max_uses', $context );
569
-	}
570
-
571
-	/**
572
-	 * Checks if this is a single use discount or not.
573
-	 *
574
-	 * @since 1.0.19
575
-	 * @param  string $context View or edit context.
576
-	 * @return bool
577
-	 */
578
-	public function get_is_single_use( $context = 'view' ) {
579
-		return $this->get_prop( 'is_single_use', $context );
580
-	}
581
-
582
-	/**
583
-	 * Get the items that can be used with this discount.
584
-	 *
585
-	 * @since 1.0.19
586
-	 * @param  string $context View or edit context.
587
-	 * @return array
588
-	 */
589
-	public function get_items( $context = 'view' ) {
590
-		return wpinv_parse_list( $this->get_prop( 'items', $context ) );
591
-	}
592
-
593
-	/**
594
-	 * Alias for self::get_items().
595
-	 *
596
-	 * @since 1.0.19
597
-	 * @param  string $context View or edit context.
598
-	 * @return array
599
-	 */
600
-	public function get_allowed_items( $context = 'view' ) {
601
-		return $this->get_items( $context );
602
-	}
603
-
604
-	/**
605
-	 * Get the items that are not allowed to use this discount.
606
-	 *
607
-	 * @since 1.0.19
608
-	 * @param  string $context View or edit context.
609
-	 * @return array
610
-	 */
611
-	public function get_excluded_items( $context = 'view' ) {
612
-		return wpinv_parse_list( $this->get_prop( 'excluded_items', $context ) );
613
-	}
614
-
615
-	/**
616
-	 * Checks if this is a recurring discount or not.
617
-	 *
618
-	 * @since 1.0.19
619
-	 * @param  string $context View or edit context.
620
-	 * @return int|string|bool
621
-	 */
622
-	public function get_is_recurring( $context = 'view' ) {
623
-		return $this->get_prop( 'is_recurring', $context );
624
-	}
625
-
626
-	/**
627
-	 * Get's the minimum total amount allowed for this discount.
628
-	 *
629
-	 * @since 1.0.19
630
-	 * @param  string $context View or edit context.
631
-	 * @return float
632
-	 */
633
-	public function get_min_total( $context = 'view' ) {
634
-		return $this->get_prop( 'min_total', $context );
635
-	}
636
-
637
-	/**
638
-	 * Alias for self::get_min_total().
639
-	 *
640
-	 * @since 1.0.19
641
-	 * @param  string $context View or edit context.
642
-	 * @return float
643
-	 */
644
-	public function get_minimum_total( $context = 'view' ) {
645
-		return $this->get_min_total( $context );
646
-	}
647
-
648
-	/**
649
-	 * Get's the maximum total amount allowed for this discount.
650
-	 *
651
-	 * @since 1.0.19
652
-	 * @param  string $context View or edit context.
653
-	 * @return float
654
-	 */
655
-	public function get_max_total( $context = 'view' ) {
656
-		return $this->get_prop( 'max_total', $context );
657
-	}
658
-
659
-	/**
660
-	 * Alias for self::get_max_total().
661
-	 *
662
-	 * @since 1.0.19
663
-	 * @param  string $context View or edit context.
664
-	 * @return float
665
-	 */
666
-	public function get_maximum_total( $context = 'view' ) {
667
-		return $this->get_max_total( $context );
668
-	}
669
-
670
-	/**
538
+    /**
539
+     * Get the discount's type.
540
+     *
541
+     * @since 1.0.19
542
+     * @param  string $context View or edit context.
543
+     * @return string
544
+     */
545
+    public function get_type( $context = 'view' ) {
546
+        return $this->get_prop( 'type', $context );
547
+    }
548
+
549
+    /**
550
+     * Get the number of times a discount has been used.
551
+     *
552
+     * @since 1.0.19
553
+     * @param  string $context View or edit context.
554
+     * @return int
555
+     */
556
+    public function get_uses( $context = 'view' ) {
557
+        return (int) $this->get_prop( 'uses', $context );
558
+    }
559
+
560
+    /**
561
+     * Get the maximum number of time a discount can be used.
562
+     *
563
+     * @since 1.0.19
564
+     * @param  string $context View or edit context.
565
+     * @return int
566
+     */
567
+    public function get_max_uses( $context = 'view' ) {
568
+        return $this->get_prop( 'max_uses', $context );
569
+    }
570
+
571
+    /**
572
+     * Checks if this is a single use discount or not.
573
+     *
574
+     * @since 1.0.19
575
+     * @param  string $context View or edit context.
576
+     * @return bool
577
+     */
578
+    public function get_is_single_use( $context = 'view' ) {
579
+        return $this->get_prop( 'is_single_use', $context );
580
+    }
581
+
582
+    /**
583
+     * Get the items that can be used with this discount.
584
+     *
585
+     * @since 1.0.19
586
+     * @param  string $context View or edit context.
587
+     * @return array
588
+     */
589
+    public function get_items( $context = 'view' ) {
590
+        return wpinv_parse_list( $this->get_prop( 'items', $context ) );
591
+    }
592
+
593
+    /**
594
+     * Alias for self::get_items().
595
+     *
596
+     * @since 1.0.19
597
+     * @param  string $context View or edit context.
598
+     * @return array
599
+     */
600
+    public function get_allowed_items( $context = 'view' ) {
601
+        return $this->get_items( $context );
602
+    }
603
+
604
+    /**
605
+     * Get the items that are not allowed to use this discount.
606
+     *
607
+     * @since 1.0.19
608
+     * @param  string $context View or edit context.
609
+     * @return array
610
+     */
611
+    public function get_excluded_items( $context = 'view' ) {
612
+        return wpinv_parse_list( $this->get_prop( 'excluded_items', $context ) );
613
+    }
614
+
615
+    /**
616
+     * Checks if this is a recurring discount or not.
617
+     *
618
+     * @since 1.0.19
619
+     * @param  string $context View or edit context.
620
+     * @return int|string|bool
621
+     */
622
+    public function get_is_recurring( $context = 'view' ) {
623
+        return $this->get_prop( 'is_recurring', $context );
624
+    }
625
+
626
+    /**
627
+     * Get's the minimum total amount allowed for this discount.
628
+     *
629
+     * @since 1.0.19
630
+     * @param  string $context View or edit context.
631
+     * @return float
632
+     */
633
+    public function get_min_total( $context = 'view' ) {
634
+        return $this->get_prop( 'min_total', $context );
635
+    }
636
+
637
+    /**
638
+     * Alias for self::get_min_total().
639
+     *
640
+     * @since 1.0.19
641
+     * @param  string $context View or edit context.
642
+     * @return float
643
+     */
644
+    public function get_minimum_total( $context = 'view' ) {
645
+        return $this->get_min_total( $context );
646
+    }
647
+
648
+    /**
649
+     * Get's the maximum total amount allowed for this discount.
650
+     *
651
+     * @since 1.0.19
652
+     * @param  string $context View or edit context.
653
+     * @return float
654
+     */
655
+    public function get_max_total( $context = 'view' ) {
656
+        return $this->get_prop( 'max_total', $context );
657
+    }
658
+
659
+    /**
660
+     * Alias for self::get_max_total().
661
+     *
662
+     * @since 1.0.19
663
+     * @param  string $context View or edit context.
664
+     * @return float
665
+     */
666
+    public function get_maximum_total( $context = 'view' ) {
667
+        return $this->get_max_total( $context );
668
+    }
669
+
670
+    /**
671 671
      * Margic method for retrieving a property.
672 672
      */
673 673
     public function __get( $key ) {
674 674
         return $this->get( $key );
675 675
     }
676 676
 
677
-	/**
678
-	 * Magic method for accessing discount properties.
679
-	 *
680
-	 * @since 1.0.15
681
-	 * @access public
682
-	 *
683
-	 * @param string $key Discount data to retrieve
684
-	 * @param  string $context View or edit context.
685
-	 * @return mixed Value of the given discount property (if set).
686
-	 */
687
-	public function get( $key, $context = 'view' ) {
677
+    /**
678
+     * Magic method for accessing discount properties.
679
+     *
680
+     * @since 1.0.15
681
+     * @access public
682
+     *
683
+     * @param string $key Discount data to retrieve
684
+     * @param  string $context View or edit context.
685
+     * @return mixed Value of the given discount property (if set).
686
+     */
687
+    public function get( $key, $context = 'view' ) {
688 688
 
689
-		// Check if we have a helper method for that.
689
+        // Check if we have a helper method for that.
690 690
         if ( method_exists( $this, 'get_' . $key ) ) {
691 691
             return call_user_func( array( $this, 'get_' . $key ), $context );
692 692
         }
@@ -698,9 +698,9 @@  discard block
 block discarded – undo
698 698
 
699 699
         return $this->get_prop( $key, $context );
700 700
 
701
-	}
701
+    }
702 702
 
703
-	/*
703
+    /*
704 704
 	|--------------------------------------------------------------------------
705 705
 	| Setters
706 706
 	|--------------------------------------------------------------------------
@@ -710,41 +710,41 @@  discard block
 block discarded – undo
710 710
 	| object.
711 711
 	*/
712 712
 	
713
-	/**
714
-	 * Sets discount status.
715
-	 *
716
-	 * @since 1.0.19
717
-	 * @param  string $status New status.
718
-	 * @return array details of change.
719
-	 */
720
-	public function set_status( $status ) {
713
+    /**
714
+     * Sets discount status.
715
+     *
716
+     * @since 1.0.19
717
+     * @param  string $status New status.
718
+     * @return array details of change.
719
+     */
720
+    public function set_status( $status ) {
721 721
         $old_status = $this->get_status();
722 722
 
723 723
         $this->set_prop( 'status', $status );
724 724
 
725
-		return array(
726
-			'from' => $old_status,
727
-			'to'   => $status,
728
-		);
725
+        return array(
726
+            'from' => $old_status,
727
+            'to'   => $status,
728
+        );
729 729
     }
730 730
 
731 731
     /**
732
-	 * Set plugin version when the discount was created.
733
-	 *
734
-	 * @since 1.0.19
735
-	 */
736
-	public function set_version( $value ) {
737
-		$this->set_prop( 'version', $value );
732
+     * Set plugin version when the discount was created.
733
+     *
734
+     * @since 1.0.19
735
+     */
736
+    public function set_version( $value ) {
737
+        $this->set_prop( 'version', $value );
738 738
     }
739 739
 
740 740
     /**
741
-	 * Set date when the discount was created.
742
-	 *
743
-	 * @since 1.0.19
744
-	 * @param string $value Value to set.
741
+     * Set date when the discount was created.
742
+     *
743
+     * @since 1.0.19
744
+     * @param string $value Value to set.
745 745
      * @return bool Whether or not the date was set.
746
-	 */
747
-	public function set_date_created( $value ) {
746
+     */
747
+    public function set_date_created( $value ) {
748 748
         $date = strtotime( $value );
749 749
 
750 750
         if ( $date ) {
@@ -757,13 +757,13 @@  discard block
 block discarded – undo
757 757
     }
758 758
 
759 759
     /**
760
-	 * Set date when the discount was last modified.
761
-	 *
762
-	 * @since 1.0.19
763
-	 * @param string $value Value to set.
760
+     * Set date when the discount was last modified.
761
+     *
762
+     * @since 1.0.19
763
+     * @param string $value Value to set.
764 764
      * @return bool Whether or not the date was set.
765
-	 */
766
-	public function set_date_modified( $value ) {
765
+     */
766
+    public function set_date_modified( $value ) {
767 767
         $date = strtotime( $value );
768 768
 
769 769
         if ( $date ) {
@@ -776,345 +776,345 @@  discard block
 block discarded – undo
776 776
     }
777 777
 
778 778
     /**
779
-	 * Set the discount name.
780
-	 *
781
-	 * @since 1.0.19
782
-	 * @param  string $value New name.
783
-	 */
784
-	public function set_name( $value ) {
779
+     * Set the discount name.
780
+     *
781
+     * @since 1.0.19
782
+     * @param  string $value New name.
783
+     */
784
+    public function set_name( $value ) {
785 785
         $name = sanitize_text_field( $value );
786
-		$this->set_prop( 'name', $name );
786
+        $this->set_prop( 'name', $name );
787 787
     }
788 788
 
789 789
     /**
790
-	 * Alias of self::set_name().
791
-	 *
792
-	 * @since 1.0.19
793
-	 * @param  string $value New name.
794
-	 */
795
-	public function set_title( $value ) {
796
-		$this->set_name( $value );
790
+     * Alias of self::set_name().
791
+     *
792
+     * @since 1.0.19
793
+     * @param  string $value New name.
794
+     */
795
+    public function set_title( $value ) {
796
+        $this->set_name( $value );
797 797
     }
798 798
 
799 799
     /**
800
-	 * Set the discount description.
801
-	 *
802
-	 * @since 1.0.19
803
-	 * @param  string $value New description.
804
-	 */
805
-	public function set_description( $value ) {
800
+     * Set the discount description.
801
+     *
802
+     * @since 1.0.19
803
+     * @param  string $value New description.
804
+     */
805
+    public function set_description( $value ) {
806 806
         $description = wp_kses_post( $value );
807
-		return $this->set_prop( 'description', $description );
807
+        return $this->set_prop( 'description', $description );
808 808
     }
809 809
 
810 810
     /**
811
-	 * Alias of self::set_description().
812
-	 *
813
-	 * @since 1.0.19
814
-	 * @param  string $value New description.
815
-	 */
816
-	public function set_excerpt( $value ) {
817
-		$this->set_description( $value );
811
+     * Alias of self::set_description().
812
+     *
813
+     * @since 1.0.19
814
+     * @param  string $value New description.
815
+     */
816
+    public function set_excerpt( $value ) {
817
+        $this->set_description( $value );
818 818
     }
819 819
 
820 820
     /**
821
-	 * Alias of self::set_description().
822
-	 *
823
-	 * @since 1.0.19
824
-	 * @param  string $value New description.
825
-	 */
826
-	public function set_summary( $value ) {
827
-		$this->set_description( $value );
821
+     * Alias of self::set_description().
822
+     *
823
+     * @since 1.0.19
824
+     * @param  string $value New description.
825
+     */
826
+    public function set_summary( $value ) {
827
+        $this->set_description( $value );
828 828
     }
829 829
 
830 830
     /**
831
-	 * Set the owner of the discount.
832
-	 *
833
-	 * @since 1.0.19
834
-	 * @param  int $value New author.
835
-	 */
836
-	public function set_author( $value ) {
837
-		$this->set_prop( 'author', (int) $value );
838
-	}
831
+     * Set the owner of the discount.
832
+     *
833
+     * @since 1.0.19
834
+     * @param  int $value New author.
835
+     */
836
+    public function set_author( $value ) {
837
+        $this->set_prop( 'author', (int) $value );
838
+    }
839 839
 	
840
-	/**
841
-	 * Sets the discount code.
842
-	 *
843
-	 * @since 1.0.19
844
-	 * @param string $value New discount code.
845
-	 */
846
-	public function set_code( $value ) {
847
-		$code = sanitize_text_field( $value );
848
-		$this->set_prop( 'author', $code );
849
-	}
840
+    /**
841
+     * Sets the discount code.
842
+     *
843
+     * @since 1.0.19
844
+     * @param string $value New discount code.
845
+     */
846
+    public function set_code( $value ) {
847
+        $code = sanitize_text_field( $value );
848
+        $this->set_prop( 'author', $code );
849
+    }
850 850
 	
851
-	/**
852
-	 * Alias of self::set_code().
853
-	 *
854
-	 * @since 1.0.19
855
-	 * @param string $value New discount code.
856
-	 */
857
-	public function set_coupon_code( $value ) {
858
-		$this->set_code( $value );
859
-	}
851
+    /**
852
+     * Alias of self::set_code().
853
+     *
854
+     * @since 1.0.19
855
+     * @param string $value New discount code.
856
+     */
857
+    public function set_coupon_code( $value ) {
858
+        $this->set_code( $value );
859
+    }
860 860
 	
861
-	/**
862
-	 * Alias of self::set_code().
863
-	 *
864
-	 * @since 1.0.19
865
-	 * @param string $value New discount code.
866
-	 */
867
-	public function set_discount_code( $value ) {
868
-		$this->set_code( $value );
869
-	}
861
+    /**
862
+     * Alias of self::set_code().
863
+     *
864
+     * @since 1.0.19
865
+     * @param string $value New discount code.
866
+     */
867
+    public function set_discount_code( $value ) {
868
+        $this->set_code( $value );
869
+    }
870 870
 	
871
-	/**
872
-	 * Sets the discount amount.
873
-	 *
874
-	 * @since 1.0.19
875
-	 * @param float $value New discount code.
876
-	 */
877
-	public function set_amount( $value ) {
878
-		$amount = floatval( wpinv_sanitize_amount( $value ) );
879
-		$this->set_prop( 'amount', $amount );
880
-	}
881
-
882
-	/**
883
-	 * Sets the discount's start date.
884
-	 *
885
-	 * @since 1.0.19
886
-	 * @param float $value New start date.
887
-	 */
888
-	public function set_start( $value ) {
889
-		$date = strtotime( $value );
871
+    /**
872
+     * Sets the discount amount.
873
+     *
874
+     * @since 1.0.19
875
+     * @param float $value New discount code.
876
+     */
877
+    public function set_amount( $value ) {
878
+        $amount = floatval( wpinv_sanitize_amount( $value ) );
879
+        $this->set_prop( 'amount', $amount );
880
+    }
881
+
882
+    /**
883
+     * Sets the discount's start date.
884
+     *
885
+     * @since 1.0.19
886
+     * @param float $value New start date.
887
+     */
888
+    public function set_start( $value ) {
889
+        $date = strtotime( $value );
890 890
 
891 891
         if ( $date ) {
892 892
             $this->set_prop( 'start', date( 'Y-m-d H:i:s', $date ) );
893 893
             return true;
894
-		}
894
+        }
895 895
 		
896
-		$this->set_prop( 'expiration', '' );
896
+        $this->set_prop( 'expiration', '' );
897 897
 
898 898
         return false;
899
-	}
900
-
901
-	/**
902
-	 * Alias of self::set_start().
903
-	 *
904
-	 * @since 1.0.19
905
-	 * @param string $value New start date.
906
-	 */
907
-	public function set_start_date( $value ) {
908
-		$this->set_start( $value );
909
-	}
910
-
911
-	/**
912
-	 * Sets the discount's expiration date.
913
-	 *
914
-	 * @since 1.0.19
915
-	 * @param float $value New expiration date.
916
-	 */
917
-	public function set_expiration( $value ) {
918
-		$date = strtotime( $value );
899
+    }
900
+
901
+    /**
902
+     * Alias of self::set_start().
903
+     *
904
+     * @since 1.0.19
905
+     * @param string $value New start date.
906
+     */
907
+    public function set_start_date( $value ) {
908
+        $this->set_start( $value );
909
+    }
910
+
911
+    /**
912
+     * Sets the discount's expiration date.
913
+     *
914
+     * @since 1.0.19
915
+     * @param float $value New expiration date.
916
+     */
917
+    public function set_expiration( $value ) {
918
+        $date = strtotime( $value );
919 919
 
920 920
         if ( $date ) {
921 921
             $this->set_prop( 'expiration', date( 'Y-m-d H:i:s', $date ) );
922 922
             return true;
923 923
         }
924 924
 
925
-		$this->set_prop( 'expiration', '' );
925
+        $this->set_prop( 'expiration', '' );
926 926
         return false;
927
-	}
928
-
929
-	/**
930
-	 * Alias of self::set_expiration().
931
-	 *
932
-	 * @since 1.0.19
933
-	 * @param string $value New expiration date.
934
-	 */
935
-	public function set_expiration_date( $value ) {
936
-		$this->set_expiration( $value );
937
-	}
938
-
939
-	/**
940
-	 * Alias of self::set_expiration().
941
-	 *
942
-	 * @since 1.0.19
943
-	 * @param string $value New expiration date.
944
-	 */
945
-	public function set_end_date( $value ) {
946
-		$this->set_expiration( $value );
947
-	}
948
-
949
-	/**
950
-	 * Sets the discount type.
951
-	 *
952
-	 * @since 1.0.19
953
-	 * @param string $value New discount type.
954
-	 */
955
-	public function set_type( $value ) {
956
-		$this->set_prop( 'type', $value );
957
-	}
958
-
959
-	/**
960
-	 * Sets the number of times a discount has been used.
961
-	 *
962
-	 * @since 1.0.19
963
-	 * @param int $value usage count.
964
-	 */
965
-	public function set_uses( $value ) {
966
-
967
-		$value = (int) $value;
968
-
969
-		if ( $value < 0 ) {
970
-			$value = 0;
971
-		}
972
-
973
-		$this->set_prop( 'uses', (int) $value );
974
-	}
975
-
976
-	/**
977
-	 * Sets the maximum number of times a discount can be used.
978
-	 *
979
-	 * @since 1.0.19
980
-	 * @param int $value maximum usage count.
981
-	 */
982
-	public function set_max_uses( $value ) {
983
-		$this->set_prop( 'max_uses', (int) $value );
984
-	}
985
-
986
-	/**
987
-	 * Sets if this is a single use discount or not.
988
-	 *
989
-	 * @since 1.0.19
990
-	 * @param int|bool $value is single use.
991
-	 */
992
-	public function set_is_single_use( $value ) {
993
-		$this->set_prop( 'is_single_use', (bool) $value );
994
-	}
995
-
996
-	/**
997
-	 * Sets the items that can be used with this discount.
998
-	 *
999
-	 * @since 1.0.19
1000
-	 * @param array $value items.
1001
-	 */
1002
-	public function set_items( $value ) {
1003
-		$this->set_prop( 'items', wpinv_parse_list( $value ) );
1004
-	}
1005
-
1006
-	/**
1007
-	 * Alias for self::set_items().
1008
-	 *
1009
-	 * @since 1.0.19
1010
-	 * @param array $value items.
1011
-	 */
1012
-	public function set_allowed_items( $value ) {
1013
-		$this->set_items( $value );
1014
-	}
1015
-
1016
-	/**
1017
-	 * Sets the items that can not be used with this discount.
1018
-	 *
1019
-	 * @since 1.0.19
1020
-	 * @param array $value items.
1021
-	 */
1022
-	public function set_excluded_items( $value ) {
1023
-		$this->set_prop( 'excluded_items', wpinv_parse_list( $value ) );
1024
-	}
1025
-
1026
-	/**
1027
-	 * Sets if this is a recurring discounts or not.
1028
-	 *
1029
-	 * @since 1.0.19
1030
-	 * @param int|bool $value is recurring.
1031
-	 */
1032
-	public function set_is_recurring( $value ) {
1033
-		$this->set_prop( 'is_recurring', (bool) $value );
1034
-	}
1035
-
1036
-	/**
1037
-	 * Sets the minimum total that can not be used with this discount.
1038
-	 *
1039
-	 * @since 1.0.19
1040
-	 * @param float $value minimum total.
1041
-	 */
1042
-	public function set_min_total( $value ) {
1043
-		$this->set_prop( 'min_total', (float) wpinv_sanitize_amount( $value ) );
1044
-	}
1045
-
1046
-	/**
1047
-	 * Alias for self::set_min_total().
1048
-	 *
1049
-	 * @since 1.0.19
1050
-	 * @param float $value minimum total.
1051
-	 */
1052
-	public function set_minimum_total( $value ) {
1053
-		$this->set_min_total( $value );
1054
-	}
1055
-
1056
-	/**
1057
-	 * Sets the maximum total that can not be used with this discount.
1058
-	 *
1059
-	 * @since 1.0.19
1060
-	 * @param float $value maximum total.
1061
-	 */
1062
-	public function set_max_total( $value ) {
1063
-		$this->set_prop( 'max_total', (float) wpinv_sanitize_amount( $value ) );
1064
-	}
1065
-
1066
-	/**
1067
-	 * Alias for self::set_max_total().
1068
-	 *
1069
-	 * @since 1.0.19
1070
-	 * @param float $value maximum total.
1071
-	 */
1072
-	public function set_maximum_total( $value ) {
1073
-		$this->set_max_total( $value );
1074
-	}
1075
-
1076
-	/**
1077
-	 * Magic method for setting discount fields.
1078
-	 *
1079
-	 * This method does not update custom fields in the database.
1080
-	 *
1081
-	 * @since 1.0.15
1082
-	 * @access public
1083
-	 *
1084
-	 */
1085
-	public function __set( $key, $value ) {
1086
-
1087
-		if ( 'id' == strtolower( $key ) ) {
1088
-			return $this->set_id( $value );
1089
-		}
1090
-
1091
-		if ( method_exists( $this, "set_$key") ) {
1092
-			call_user_func( array( $this, "set_$key" ), $value );
1093
-		} else {
1094
-			$this->set_prop( $key, $value );
1095
-		}
1096
-
1097
-	}
1098
-
1099
-	/**
1100
-	 * @deprecated
1101
-	 */
1102
-	public function refresh(){}
1103
-
1104
-	/**
1105
-	 * @deprecated
1106
-	 *
1107
-	 */
1108
-	public function update_status( $status = 'publish' ){
1109
-
1110
-		if ( $this->exists() && $this->get_status() != $status ) {
1111
-			$this->set_status( $status );
1112
-			$this->save();
1113
-		}
1114
-
1115
-	}
1116
-
1117
-	/*
927
+    }
928
+
929
+    /**
930
+     * Alias of self::set_expiration().
931
+     *
932
+     * @since 1.0.19
933
+     * @param string $value New expiration date.
934
+     */
935
+    public function set_expiration_date( $value ) {
936
+        $this->set_expiration( $value );
937
+    }
938
+
939
+    /**
940
+     * Alias of self::set_expiration().
941
+     *
942
+     * @since 1.0.19
943
+     * @param string $value New expiration date.
944
+     */
945
+    public function set_end_date( $value ) {
946
+        $this->set_expiration( $value );
947
+    }
948
+
949
+    /**
950
+     * Sets the discount type.
951
+     *
952
+     * @since 1.0.19
953
+     * @param string $value New discount type.
954
+     */
955
+    public function set_type( $value ) {
956
+        $this->set_prop( 'type', $value );
957
+    }
958
+
959
+    /**
960
+     * Sets the number of times a discount has been used.
961
+     *
962
+     * @since 1.0.19
963
+     * @param int $value usage count.
964
+     */
965
+    public function set_uses( $value ) {
966
+
967
+        $value = (int) $value;
968
+
969
+        if ( $value < 0 ) {
970
+            $value = 0;
971
+        }
972
+
973
+        $this->set_prop( 'uses', (int) $value );
974
+    }
975
+
976
+    /**
977
+     * Sets the maximum number of times a discount can be used.
978
+     *
979
+     * @since 1.0.19
980
+     * @param int $value maximum usage count.
981
+     */
982
+    public function set_max_uses( $value ) {
983
+        $this->set_prop( 'max_uses', (int) $value );
984
+    }
985
+
986
+    /**
987
+     * Sets if this is a single use discount or not.
988
+     *
989
+     * @since 1.0.19
990
+     * @param int|bool $value is single use.
991
+     */
992
+    public function set_is_single_use( $value ) {
993
+        $this->set_prop( 'is_single_use', (bool) $value );
994
+    }
995
+
996
+    /**
997
+     * Sets the items that can be used with this discount.
998
+     *
999
+     * @since 1.0.19
1000
+     * @param array $value items.
1001
+     */
1002
+    public function set_items( $value ) {
1003
+        $this->set_prop( 'items', wpinv_parse_list( $value ) );
1004
+    }
1005
+
1006
+    /**
1007
+     * Alias for self::set_items().
1008
+     *
1009
+     * @since 1.0.19
1010
+     * @param array $value items.
1011
+     */
1012
+    public function set_allowed_items( $value ) {
1013
+        $this->set_items( $value );
1014
+    }
1015
+
1016
+    /**
1017
+     * Sets the items that can not be used with this discount.
1018
+     *
1019
+     * @since 1.0.19
1020
+     * @param array $value items.
1021
+     */
1022
+    public function set_excluded_items( $value ) {
1023
+        $this->set_prop( 'excluded_items', wpinv_parse_list( $value ) );
1024
+    }
1025
+
1026
+    /**
1027
+     * Sets if this is a recurring discounts or not.
1028
+     *
1029
+     * @since 1.0.19
1030
+     * @param int|bool $value is recurring.
1031
+     */
1032
+    public function set_is_recurring( $value ) {
1033
+        $this->set_prop( 'is_recurring', (bool) $value );
1034
+    }
1035
+
1036
+    /**
1037
+     * Sets the minimum total that can not be used with this discount.
1038
+     *
1039
+     * @since 1.0.19
1040
+     * @param float $value minimum total.
1041
+     */
1042
+    public function set_min_total( $value ) {
1043
+        $this->set_prop( 'min_total', (float) wpinv_sanitize_amount( $value ) );
1044
+    }
1045
+
1046
+    /**
1047
+     * Alias for self::set_min_total().
1048
+     *
1049
+     * @since 1.0.19
1050
+     * @param float $value minimum total.
1051
+     */
1052
+    public function set_minimum_total( $value ) {
1053
+        $this->set_min_total( $value );
1054
+    }
1055
+
1056
+    /**
1057
+     * Sets the maximum total that can not be used with this discount.
1058
+     *
1059
+     * @since 1.0.19
1060
+     * @param float $value maximum total.
1061
+     */
1062
+    public function set_max_total( $value ) {
1063
+        $this->set_prop( 'max_total', (float) wpinv_sanitize_amount( $value ) );
1064
+    }
1065
+
1066
+    /**
1067
+     * Alias for self::set_max_total().
1068
+     *
1069
+     * @since 1.0.19
1070
+     * @param float $value maximum total.
1071
+     */
1072
+    public function set_maximum_total( $value ) {
1073
+        $this->set_max_total( $value );
1074
+    }
1075
+
1076
+    /**
1077
+     * Magic method for setting discount fields.
1078
+     *
1079
+     * This method does not update custom fields in the database.
1080
+     *
1081
+     * @since 1.0.15
1082
+     * @access public
1083
+     *
1084
+     */
1085
+    public function __set( $key, $value ) {
1086
+
1087
+        if ( 'id' == strtolower( $key ) ) {
1088
+            return $this->set_id( $value );
1089
+        }
1090
+
1091
+        if ( method_exists( $this, "set_$key") ) {
1092
+            call_user_func( array( $this, "set_$key" ), $value );
1093
+        } else {
1094
+            $this->set_prop( $key, $value );
1095
+        }
1096
+
1097
+    }
1098
+
1099
+    /**
1100
+     * @deprecated
1101
+     */
1102
+    public function refresh(){}
1103
+
1104
+    /**
1105
+     * @deprecated
1106
+     *
1107
+     */
1108
+    public function update_status( $status = 'publish' ){
1109
+
1110
+        if ( $this->exists() && $this->get_status() != $status ) {
1111
+            $this->set_status( $status );
1112
+            $this->save();
1113
+        }
1114
+
1115
+    }
1116
+
1117
+    /*
1118 1118
 	|--------------------------------------------------------------------------
1119 1119
 	| Conditionals
1120 1120
 	|--------------------------------------------------------------------------
@@ -1123,263 +1123,263 @@  discard block
 block discarded – undo
1123 1123
 	|
1124 1124
 	*/
1125 1125
 
1126
-	/**
1127
-	 * Checks whether a discount exists in the database or not
1128
-	 *
1129
-	 * @since 1.0.15
1130
-	 */
1131
-	public function exists(){
1132
-		$id = $this->get_id();
1133
-		return ! empty( $id );
1134
-	}
1135
-
1136
-	/**
1137
-	 * Checks the discount type.
1138
-	 *
1139
-	 *
1140
-	 * @param  string $type the discount type to check against
1141
-	 * @since 1.0.15
1142
-	 * @return bool
1143
-	 */
1144
-	public function is_type( $type ) {
1145
-		return $this->get_type() == $type;
1146
-	}
1147
-
1148
-	/**
1149
-	 * Checks whether the discount is published or not
1150
-	 *
1151
-	 * @since 1.0.15
1152
-	 * @return bool
1153
-	 */
1154
-	public function is_active() {
1155
-		return $this->get_status() == 'publish';
1156
-	}
1157
-
1158
-	/**
1159
-	 * Checks whether the discount has max uses
1160
-	 *
1161
-	 * @since 1.0.15
1162
-	 * @return bool
1163
-	 */
1164
-	public function has_limit() {
1165
-		$limit = $this->get_max_uses();
1166
-		return ! empty( $limit );
1167
-	}
1168
-
1169
-	/**
1170
-	 * Checks whether the discount has ever been used.
1171
-	 *
1172
-	 * @since 1.0.15
1173
-	 * @return bool
1174
-	 */
1175
-	public function has_uses() {
1176
-		return $this->get_uses() > 0;
1177
-	}
1178
-
1179
-	/**
1180
-	 * Checks whether the discount is has exided the usage limit or not
1181
-	 *
1182
-	 * @since 1.0.15
1183
-	 * @return bool
1184
-	 */
1185
-	public function has_exceeded_limit() {
1186
-
1187
-		if ( ! $this->has_limit() || ! $this->has_uses() ) {
1188
-			$exceeded = false ;
1189
-		} else {
1190
-			$exceeded = ! ( (int) $this->get_max_uses() < $this->get_uses() );
1191
-		}
1192
-
1193
-		return apply_filters( 'wpinv_is_discount_maxed_out', $exceeded, $this->ID, $this, $this->code );
1194
-	}
1195
-
1196
-	/**
1197
-	 * Checks whether the discount has an expiration date.
1198
-	 *
1199
-	 * @since 1.0.15
1200
-	 * @return bool
1201
-	 */
1202
-	public function has_expiration_date() {
1203
-		$date = $this->get_expiration_date();
1204
-		return ! empty( $date );
1205
-	}
1206
-
1207
-	/**
1208
-	 * Checks if the discount is expired
1209
-	 *
1210
-	 * @since 1.0.15
1211
-	 * @return bool
1212
-	 */
1213
-	public function is_expired() {
1214
-		$expired = $this->has_expiration_date() ? false : current_time( 'timestamp' ) > strtotime( $this->get_expiration_date() );
1215
-		return apply_filters( 'wpinv_is_discount_expired', $expired, $this->ID, $this, $this->code );
1216
-	}
1217
-
1218
-	/**
1219
-	 * Checks whether the discount has a start date.
1220
-	 *
1221
-	 * @since 1.0.15
1222
-	 * @return bool
1223
-	 */
1224
-	public function has_start_date() {
1225
-		$date = $this->get_start_date();
1226
-		return ! empty( $date );
1227
-	}
1228
-
1229
-	/**
1230
-	 * Checks the discount start date.
1231
-	 *
1232
-	 * @since 1.0.15
1233
-	 * @return bool
1234
-	 */
1235
-	public function has_started() {
1236
-		$started = $this->has_start_date() ? true : current_time( 'timestamp' ) > strtotime( $this->get_start_date() );
1237
-		return apply_filters( 'wpinv_is_discount_started', $started, $this->ID, $this, $this->code );
1238
-	}
1239
-
1240
-	/**
1241
-	 * Checks the discount has allowed items or not.
1242
-	 *
1243
-	 * @since 1.0.15
1244
-	 * @return bool
1245
-	 */
1246
-	public function has_allowed_items() {
1247
-		$allowed_items = $this->get_allowed_items();
1248
-		return empty( $allowed_items );
1249
-	}
1250
-
1251
-	/**
1252
-	 * Checks the discount has excluded items or not.
1253
-	 *
1254
-	 * @since 1.0.15
1255
-	 * @return bool
1256
-	 */
1257
-	public function has_excluded_items() {
1258
-		$excluded_items = $this->get_excluded_items();
1259
-		return empty( $excluded_items );
1260
-	}
1261
-
1262
-	/**
1263
-	 * Check if a discount is valid for a given item id.
1264
-	 *
1265
-	 * @param  int|int[]  $item_ids
1266
-	 * @since 1.0.15
1267
-	 * @return boolean
1268
-	 */
1269
-	public function is_valid_for_items( $item_ids ) {
1270
-
1271
-		$item_ids = array_map( 'intval',  wpinv_parse_list( $item_ids ) );
1272
-		$included = array_intersect( $item_ids, $this->get_allowed_items() );
1273
-		$excluded = array_intersect( $item_ids, $this->get_excluded_items() );
1274
-
1275
-		if ( $this->has_excluded_items() && ! empty( $excluded ) ) {
1276
-			return false;
1277
-		}
1278
-
1279
-		if ( $this->has_allowed_items() && empty( $included ) ) {
1280
-			return false;
1281
-		}
1282
-		return true;
1283
-	}
1284
-
1285
-	/**
1286
-	 * Check if a discount is valid for the given amount
1287
-	 *
1288
-	 * @param  float  $amount The amount to check against
1289
-	 * @since 1.0.15
1290
-	 * @return boolean
1291
-	 */
1292
-	public function is_valid_for_amount( $amount ) {
1293
-		return $this->is_minimum_amount_met( $amount ) && $this->is_maximum_amount_met( $amount );
1294
-	}
1295
-
1296
-	/**
1297
-	 * Checks if the minimum amount is set
1298
-	 *
1299
-	 * @since 1.0.15
1300
-	 * @return boolean
1301
-	 */
1302
-	public function has_minimum_amount() {
1303
-		$minimum = $this->get_minimum_total();
1304
-		return ! empty( $minimum );
1305
-	}
1306
-
1307
-	/**
1308
-	 * Checks if the minimum amount is met
1309
-	 *
1310
-	 * @param  float  $amount The amount to check against
1311
-	 * @since 1.0.15
1312
-	 * @return boolean
1313
-	 */
1314
-	public function is_minimum_amount_met( $amount ) {
1315
-		$amount = floatval( wpinv_sanitize_amount( $amount ) );
1316
-		$min_met= ! ( $this->has_minimum_amount() && $amount < floatval( wpinv_sanitize_amount( $this->get_minimum_total() ) ) );
1317
-		return apply_filters( 'wpinv_is_discount_min_met', $min_met, $this->ID, $this, $this->code, $amount );
1318
-	}
1319
-
1320
-	/**
1321
-	 * Checks if the maximum amount is set
1322
-	 *
1323
-	 * @since 1.0.15
1324
-	 * @return boolean
1325
-	 */
1326
-	public function has_maximum_amount() {
1327
-		$maximum = $this->get_maximum_total();
1328
-		return ! empty( $maximum );
1329
-	}
1330
-
1331
-	/**
1332
-	 * Checks if the maximum amount is met
1333
-	 *
1334
-	 * @param  float  $amount The amount to check against
1335
-	 * @since 1.0.15
1336
-	 * @return boolean
1337
-	 */
1338
-	public function is_maximum_amount_met( $amount ) {
1339
-		$amount = floatval( wpinv_sanitize_amount( $amount ) );
1340
-		$max_met= ! ( $this->has_maximum_amount() && $amount > floatval( wpinv_sanitize_amount( $this->get_maximum_total() ) ) );
1341
-		return apply_filters( 'wpinv_is_discount_max_met', $max_met, $this->ID, $this, $this->code, $amount );
1342
-	}
1343
-
1344
-	/**
1345
-	 * Checks if the discount is recurring.
1346
-	 *
1347
-	 * @since 1.0.15
1348
-	 * @return boolean
1349
-	 */
1350
-	public function is_recurring() {
1351
-		$recurring = $this->get_is_recurring();
1352
-		return ! empty( $recurring );
1353
-	}
1354
-
1355
-	/**
1356
-	 * Checks if the discount is single use.
1357
-	 *
1358
-	 * @since 1.0.15
1359
-	 * @return boolean
1360
-	 */
1361
-	public function is_single_use() {
1362
-		$usage = $this->get_is_single_use();
1363
-		return ! empty( $usage );
1364
-	}
1365
-
1366
-	/**
1367
-	 * Check if a discount is valid for the given user
1368
-	 *
1369
-	 * @param  int|string  $user
1370
-	 * @since 1.0.15
1371
-	 * @return boolean
1372
-	 */
1373
-	public function is_valid_for_user( $user ) {
1374
-		global $wpi_checkout_id;
1375
-
1376
-		// Ensure that the discount is single use.
1377
-		if ( empty( $user ) || ! $this->is_single_use() ) {
1378
-			return true;
1379
-		}
1380
-
1381
-		// Prepare the user id.
1382
-		$user_id = 0;
1126
+    /**
1127
+     * Checks whether a discount exists in the database or not
1128
+     *
1129
+     * @since 1.0.15
1130
+     */
1131
+    public function exists(){
1132
+        $id = $this->get_id();
1133
+        return ! empty( $id );
1134
+    }
1135
+
1136
+    /**
1137
+     * Checks the discount type.
1138
+     *
1139
+     *
1140
+     * @param  string $type the discount type to check against
1141
+     * @since 1.0.15
1142
+     * @return bool
1143
+     */
1144
+    public function is_type( $type ) {
1145
+        return $this->get_type() == $type;
1146
+    }
1147
+
1148
+    /**
1149
+     * Checks whether the discount is published or not
1150
+     *
1151
+     * @since 1.0.15
1152
+     * @return bool
1153
+     */
1154
+    public function is_active() {
1155
+        return $this->get_status() == 'publish';
1156
+    }
1157
+
1158
+    /**
1159
+     * Checks whether the discount has max uses
1160
+     *
1161
+     * @since 1.0.15
1162
+     * @return bool
1163
+     */
1164
+    public function has_limit() {
1165
+        $limit = $this->get_max_uses();
1166
+        return ! empty( $limit );
1167
+    }
1168
+
1169
+    /**
1170
+     * Checks whether the discount has ever been used.
1171
+     *
1172
+     * @since 1.0.15
1173
+     * @return bool
1174
+     */
1175
+    public function has_uses() {
1176
+        return $this->get_uses() > 0;
1177
+    }
1178
+
1179
+    /**
1180
+     * Checks whether the discount is has exided the usage limit or not
1181
+     *
1182
+     * @since 1.0.15
1183
+     * @return bool
1184
+     */
1185
+    public function has_exceeded_limit() {
1186
+
1187
+        if ( ! $this->has_limit() || ! $this->has_uses() ) {
1188
+            $exceeded = false ;
1189
+        } else {
1190
+            $exceeded = ! ( (int) $this->get_max_uses() < $this->get_uses() );
1191
+        }
1192
+
1193
+        return apply_filters( 'wpinv_is_discount_maxed_out', $exceeded, $this->ID, $this, $this->code );
1194
+    }
1195
+
1196
+    /**
1197
+     * Checks whether the discount has an expiration date.
1198
+     *
1199
+     * @since 1.0.15
1200
+     * @return bool
1201
+     */
1202
+    public function has_expiration_date() {
1203
+        $date = $this->get_expiration_date();
1204
+        return ! empty( $date );
1205
+    }
1206
+
1207
+    /**
1208
+     * Checks if the discount is expired
1209
+     *
1210
+     * @since 1.0.15
1211
+     * @return bool
1212
+     */
1213
+    public function is_expired() {
1214
+        $expired = $this->has_expiration_date() ? false : current_time( 'timestamp' ) > strtotime( $this->get_expiration_date() );
1215
+        return apply_filters( 'wpinv_is_discount_expired', $expired, $this->ID, $this, $this->code );
1216
+    }
1217
+
1218
+    /**
1219
+     * Checks whether the discount has a start date.
1220
+     *
1221
+     * @since 1.0.15
1222
+     * @return bool
1223
+     */
1224
+    public function has_start_date() {
1225
+        $date = $this->get_start_date();
1226
+        return ! empty( $date );
1227
+    }
1228
+
1229
+    /**
1230
+     * Checks the discount start date.
1231
+     *
1232
+     * @since 1.0.15
1233
+     * @return bool
1234
+     */
1235
+    public function has_started() {
1236
+        $started = $this->has_start_date() ? true : current_time( 'timestamp' ) > strtotime( $this->get_start_date() );
1237
+        return apply_filters( 'wpinv_is_discount_started', $started, $this->ID, $this, $this->code );
1238
+    }
1239
+
1240
+    /**
1241
+     * Checks the discount has allowed items or not.
1242
+     *
1243
+     * @since 1.0.15
1244
+     * @return bool
1245
+     */
1246
+    public function has_allowed_items() {
1247
+        $allowed_items = $this->get_allowed_items();
1248
+        return empty( $allowed_items );
1249
+    }
1250
+
1251
+    /**
1252
+     * Checks the discount has excluded items or not.
1253
+     *
1254
+     * @since 1.0.15
1255
+     * @return bool
1256
+     */
1257
+    public function has_excluded_items() {
1258
+        $excluded_items = $this->get_excluded_items();
1259
+        return empty( $excluded_items );
1260
+    }
1261
+
1262
+    /**
1263
+     * Check if a discount is valid for a given item id.
1264
+     *
1265
+     * @param  int|int[]  $item_ids
1266
+     * @since 1.0.15
1267
+     * @return boolean
1268
+     */
1269
+    public function is_valid_for_items( $item_ids ) {
1270
+
1271
+        $item_ids = array_map( 'intval',  wpinv_parse_list( $item_ids ) );
1272
+        $included = array_intersect( $item_ids, $this->get_allowed_items() );
1273
+        $excluded = array_intersect( $item_ids, $this->get_excluded_items() );
1274
+
1275
+        if ( $this->has_excluded_items() && ! empty( $excluded ) ) {
1276
+            return false;
1277
+        }
1278
+
1279
+        if ( $this->has_allowed_items() && empty( $included ) ) {
1280
+            return false;
1281
+        }
1282
+        return true;
1283
+    }
1284
+
1285
+    /**
1286
+     * Check if a discount is valid for the given amount
1287
+     *
1288
+     * @param  float  $amount The amount to check against
1289
+     * @since 1.0.15
1290
+     * @return boolean
1291
+     */
1292
+    public function is_valid_for_amount( $amount ) {
1293
+        return $this->is_minimum_amount_met( $amount ) && $this->is_maximum_amount_met( $amount );
1294
+    }
1295
+
1296
+    /**
1297
+     * Checks if the minimum amount is set
1298
+     *
1299
+     * @since 1.0.15
1300
+     * @return boolean
1301
+     */
1302
+    public function has_minimum_amount() {
1303
+        $minimum = $this->get_minimum_total();
1304
+        return ! empty( $minimum );
1305
+    }
1306
+
1307
+    /**
1308
+     * Checks if the minimum amount is met
1309
+     *
1310
+     * @param  float  $amount The amount to check against
1311
+     * @since 1.0.15
1312
+     * @return boolean
1313
+     */
1314
+    public function is_minimum_amount_met( $amount ) {
1315
+        $amount = floatval( wpinv_sanitize_amount( $amount ) );
1316
+        $min_met= ! ( $this->has_minimum_amount() && $amount < floatval( wpinv_sanitize_amount( $this->get_minimum_total() ) ) );
1317
+        return apply_filters( 'wpinv_is_discount_min_met', $min_met, $this->ID, $this, $this->code, $amount );
1318
+    }
1319
+
1320
+    /**
1321
+     * Checks if the maximum amount is set
1322
+     *
1323
+     * @since 1.0.15
1324
+     * @return boolean
1325
+     */
1326
+    public function has_maximum_amount() {
1327
+        $maximum = $this->get_maximum_total();
1328
+        return ! empty( $maximum );
1329
+    }
1330
+
1331
+    /**
1332
+     * Checks if the maximum amount is met
1333
+     *
1334
+     * @param  float  $amount The amount to check against
1335
+     * @since 1.0.15
1336
+     * @return boolean
1337
+     */
1338
+    public function is_maximum_amount_met( $amount ) {
1339
+        $amount = floatval( wpinv_sanitize_amount( $amount ) );
1340
+        $max_met= ! ( $this->has_maximum_amount() && $amount > floatval( wpinv_sanitize_amount( $this->get_maximum_total() ) ) );
1341
+        return apply_filters( 'wpinv_is_discount_max_met', $max_met, $this->ID, $this, $this->code, $amount );
1342
+    }
1343
+
1344
+    /**
1345
+     * Checks if the discount is recurring.
1346
+     *
1347
+     * @since 1.0.15
1348
+     * @return boolean
1349
+     */
1350
+    public function is_recurring() {
1351
+        $recurring = $this->get_is_recurring();
1352
+        return ! empty( $recurring );
1353
+    }
1354
+
1355
+    /**
1356
+     * Checks if the discount is single use.
1357
+     *
1358
+     * @since 1.0.15
1359
+     * @return boolean
1360
+     */
1361
+    public function is_single_use() {
1362
+        $usage = $this->get_is_single_use();
1363
+        return ! empty( $usage );
1364
+    }
1365
+
1366
+    /**
1367
+     * Check if a discount is valid for the given user
1368
+     *
1369
+     * @param  int|string  $user
1370
+     * @since 1.0.15
1371
+     * @return boolean
1372
+     */
1373
+    public function is_valid_for_user( $user ) {
1374
+        global $wpi_checkout_id;
1375
+
1376
+        // Ensure that the discount is single use.
1377
+        if ( empty( $user ) || ! $this->is_single_use() ) {
1378
+            return true;
1379
+        }
1380
+
1381
+        // Prepare the user id.
1382
+        $user_id = 0;
1383 1383
         if ( is_int( $user ) ) {
1384 1384
             $user_id = absint( $user );
1385 1385
         } else if ( is_email( $user ) && $user_data = get_user_by( 'email', $user ) ) {
@@ -1388,135 +1388,135 @@  discard block
 block discarded – undo
1388 1388
             $user_id = $user_data->ID;
1389 1389
         } else if ( absint( $user ) > 0 ) {
1390 1390
             $user_id = absint( $user );
1391
-		}
1391
+        }
1392 1392
 
1393
-		// Ensure that we have a user.
1394
-		if ( empty( $user_id ) ) {
1395
-			return true;
1396
-		}
1393
+        // Ensure that we have a user.
1394
+        if ( empty( $user_id ) ) {
1395
+            return true;
1396
+        }
1397 1397
 
1398
-		// Get all payments with matching user id.
1398
+        // Get all payments with matching user id.
1399 1399
         $payments = wpinv_get_invoices( array( 'user' => $user_id, 'limit' => false ) );
1400
-		$code     = strtolower( $this->get_code() );
1401
-
1402
-		// For each payment...
1403
-		foreach ( $payments as $payment ) {
1404
-
1405
-			// ... skip the current payment.
1406
-			if ( ! empty( $wpi_checkout_id ) && $wpi_checkout_id == $payment->ID ) {
1407
-				continue;
1408
-			}
1409
-
1410
-			// And failed payments.
1411
-			if ( $payment->has_status( array( 'wpi-cancelled', 'wpi-failed' ) ) ) {
1412
-				continue;
1413
-			}
1414
-
1415
-			// Retrieve all the discounts for the payment.
1416
-			$discounts = $payment->get_discounts( true );
1417
-			if ( empty( $discounts ) ) {
1418
-				continue;
1419
-			}
1420
-
1421
-			// And check if the current discount is amongst them.
1422
-			$discounts = array_map( 'strtolower', wpinv_parse_list( $discounts ) );
1423
-			if ( ! empty( $discounts ) && in_array( $code, $discounts ) ) {
1424
-				return false;
1425
-			}
1426
-		}
1427
-
1428
-		return true;
1429
-	}
1430
-
1431
-	/**
1432
-	 * Deletes the discount from the database
1433
-	 *
1434
-	 * @since 1.0.15
1435
-	 * @return boolean
1436
-	 */
1437
-	public function remove() {
1438
-		return $this->delete();
1439
-	}
1440
-
1441
-	/**
1442
-	 * Increases a discount's usage.
1443
-	 *
1444
-	 * @since 1.0.15
1445
-	 * @param int $by The number of usages to increas by.
1446
-	 * @return int
1447
-	 */
1448
-	public function increase_usage( $by = 1 ) {
1449
-
1450
-		// Abort if zero.
1451
-		if ( empty( $by ) ) {
1452
-			return;
1453
-		}
1454
-
1455
-		// Increase the usage.
1456
-		$this->set_uses( $this->get_uses() + (int) $by );
1457
-
1458
-		// Save the discount.
1459
-		$this->save();
1460
-
1461
-		// Fire relevant hooks.
1462
-		if( (int) $by > 0 ) {
1463
-			do_action( 'wpinv_discount_increase_use_count', $this->uses, $this->ID, $this->code,  absint( $by ) );
1464
-		} else {
1465
-			do_action( 'wpinv_discount_decrease_use_count', $this->uses, $this->ID, $this->code, absint( $by ) );
1466
-		}
1467
-
1468
-		// Return the number of times the discount has been used.
1469
-		return $this->get_uses();
1470
-	}
1471
-
1472
-	/**
1473
-	 * Alias of self::__toString()
1474
-	 *
1475
-	 * @since 1.0.15
1476
-	 * @return string|false
1477
-	 */
1478
-	public function get_data_as_json() {
1479
-		return $this->__toString();
1480
-	}
1481
-
1482
-	/**
1483
-	 * Returns a discount's discounted amount.
1484
-	 *
1485
-	 * @since 1.0.15
1486
-	 * @param float $amount
1487
-	 * @return float
1488
-	 */
1489
-	public function get_discounted_amount( $amount ) {
1490
-
1491
-		// Convert amount to float.
1492
-		$amount = (float) $amount;
1493
-
1494
-		// Get discount amount.
1495
-		$discount_amount = $this->get_amount();
1496
-
1497
-		if ( empty( $discount_amount ) ) {
1498
-			return 0;
1499
-		}
1500
-
1501
-		// Format the amount.
1502
-		$discount_amount = floatval( wpinv_sanitize_amount( $discount_amount ) );
1400
+        $code     = strtolower( $this->get_code() );
1401
+
1402
+        // For each payment...
1403
+        foreach ( $payments as $payment ) {
1404
+
1405
+            // ... skip the current payment.
1406
+            if ( ! empty( $wpi_checkout_id ) && $wpi_checkout_id == $payment->ID ) {
1407
+                continue;
1408
+            }
1409
+
1410
+            // And failed payments.
1411
+            if ( $payment->has_status( array( 'wpi-cancelled', 'wpi-failed' ) ) ) {
1412
+                continue;
1413
+            }
1414
+
1415
+            // Retrieve all the discounts for the payment.
1416
+            $discounts = $payment->get_discounts( true );
1417
+            if ( empty( $discounts ) ) {
1418
+                continue;
1419
+            }
1420
+
1421
+            // And check if the current discount is amongst them.
1422
+            $discounts = array_map( 'strtolower', wpinv_parse_list( $discounts ) );
1423
+            if ( ! empty( $discounts ) && in_array( $code, $discounts ) ) {
1424
+                return false;
1425
+            }
1426
+        }
1427
+
1428
+        return true;
1429
+    }
1430
+
1431
+    /**
1432
+     * Deletes the discount from the database
1433
+     *
1434
+     * @since 1.0.15
1435
+     * @return boolean
1436
+     */
1437
+    public function remove() {
1438
+        return $this->delete();
1439
+    }
1440
+
1441
+    /**
1442
+     * Increases a discount's usage.
1443
+     *
1444
+     * @since 1.0.15
1445
+     * @param int $by The number of usages to increas by.
1446
+     * @return int
1447
+     */
1448
+    public function increase_usage( $by = 1 ) {
1449
+
1450
+        // Abort if zero.
1451
+        if ( empty( $by ) ) {
1452
+            return;
1453
+        }
1454
+
1455
+        // Increase the usage.
1456
+        $this->set_uses( $this->get_uses() + (int) $by );
1457
+
1458
+        // Save the discount.
1459
+        $this->save();
1460
+
1461
+        // Fire relevant hooks.
1462
+        if( (int) $by > 0 ) {
1463
+            do_action( 'wpinv_discount_increase_use_count', $this->uses, $this->ID, $this->code,  absint( $by ) );
1464
+        } else {
1465
+            do_action( 'wpinv_discount_decrease_use_count', $this->uses, $this->ID, $this->code, absint( $by ) );
1466
+        }
1467
+
1468
+        // Return the number of times the discount has been used.
1469
+        return $this->get_uses();
1470
+    }
1471
+
1472
+    /**
1473
+     * Alias of self::__toString()
1474
+     *
1475
+     * @since 1.0.15
1476
+     * @return string|false
1477
+     */
1478
+    public function get_data_as_json() {
1479
+        return $this->__toString();
1480
+    }
1481
+
1482
+    /**
1483
+     * Returns a discount's discounted amount.
1484
+     *
1485
+     * @since 1.0.15
1486
+     * @param float $amount
1487
+     * @return float
1488
+     */
1489
+    public function get_discounted_amount( $amount ) {
1490
+
1491
+        // Convert amount to float.
1492
+        $amount = (float) $amount;
1493
+
1494
+        // Get discount amount.
1495
+        $discount_amount = $this->get_amount();
1496
+
1497
+        if ( empty( $discount_amount ) ) {
1498
+            return 0;
1499
+        }
1500
+
1501
+        // Format the amount.
1502
+        $discount_amount = floatval( wpinv_sanitize_amount( $discount_amount ) );
1503 1503
 		
1504
-		// If this is a percentage discount.
1505
-		if ( $this->is_type( 'percent' ) ) {
1504
+        // If this is a percentage discount.
1505
+        if ( $this->is_type( 'percent' ) ) {
1506 1506
             $discount_amount = $amount * ( $discount_amount / 100 );
1507
-		}
1507
+        }
1508 1508
 
1509
-		// Discount can not be less than zero...
1510
-		if ( $discount_amount < 0 ) {
1511
-			$discount_amount = 0;
1512
-		}
1509
+        // Discount can not be less than zero...
1510
+        if ( $discount_amount < 0 ) {
1511
+            $discount_amount = 0;
1512
+        }
1513 1513
 
1514
-		// ... or more than the amount.
1515
-		if ( $discount_amount > $amount ) {
1516
-			$discount_amount = $amount;
1517
-		}
1514
+        // ... or more than the amount.
1515
+        if ( $discount_amount > $amount ) {
1516
+            $discount_amount = $amount;
1517
+        }
1518 1518
 
1519
-		return apply_filters( 'wpinv_discount_total_discount_amount', $discount_amount, $amount, $this );
1520
-	}
1519
+        return apply_filters( 'wpinv_discount_total_discount_amount', $discount_amount, $amount, $this );
1520
+    }
1521 1521
 
1522 1522
 }
Please login to merge, or discard this patch.
includes/class-wpinv-item.php 1 patch
Indentation   +605 added lines, -605 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined( 'ABSPATH' ) ) {
3
-	exit;
3
+    exit;
4 4
 }
5 5
 
6 6
 /**
@@ -10,30 +10,30 @@  discard block
 block discarded – undo
10 10
 class WPInv_Item  extends GetPaid_Data {
11 11
 
12 12
     /**
13
-	 * Which data store to load.
14
-	 *
15
-	 * @var string
16
-	 */
13
+     * Which data store to load.
14
+     *
15
+     * @var string
16
+     */
17 17
     protected $data_store_name = 'item';
18 18
 
19 19
     /**
20
-	 * This is the name of this object type.
21
-	 *
22
-	 * @var string
23
-	 */
24
-	protected $object_type = 'item';
20
+     * This is the name of this object type.
21
+     *
22
+     * @var string
23
+     */
24
+    protected $object_type = 'item';
25 25
 
26 26
     /**
27
-	 * Item Data array. This is the core item data exposed in APIs.
28
-	 *
29
-	 * @since 1.0.19
30
-	 * @var array
31
-	 */
32
-	protected $data = array(
33
-		'parent_id'            => 0,
34
-		'status'               => 'draft',
35
-		'version'              => '',
36
-		'date_created'         => null,
27
+     * Item Data array. This is the core item data exposed in APIs.
28
+     *
29
+     * @since 1.0.19
30
+     * @var array
31
+     */
32
+    protected $data = array(
33
+        'parent_id'            => 0,
34
+        'status'               => 'draft',
35
+        'version'              => '',
36
+        'date_created'         => null,
37 37
         'date_modified'        => null,
38 38
         'name'                 => '',
39 39
         'description'          => '',
@@ -58,13 +58,13 @@  discard block
 block discarded – undo
58 58
     );
59 59
 
60 60
     /**
61
-	 * Stores meta in cache for future reads.
62
-	 *
63
-	 * A group must be set to to enable caching.
64
-	 *
65
-	 * @var string
66
-	 */
67
-	protected $cache_group = 'getpaid_items';
61
+     * Stores meta in cache for future reads.
62
+     *
63
+     * A group must be set to to enable caching.
64
+     *
65
+     * @var string
66
+     */
67
+    protected $cache_group = 'getpaid_items';
68 68
 
69 69
     /**
70 70
      * Stores a reference to the original WP_Post object
@@ -74,33 +74,33 @@  discard block
 block discarded – undo
74 74
     protected $post = null;
75 75
 
76 76
     /**
77
-	 * Get the item if ID is passed, otherwise the item is new and empty.
78
-	 *
79
-	 * @param  int|object|WPInv_Item|WP_Post $item Item to read.
80
-	 */
81
-	public function __construct( $item = 0 ) {
82
-		parent::__construct( $item );
83
-
84
-		if ( is_numeric( $item ) && $item > 0 ) {
85
-			$this->set_id( $item );
86
-		} elseif ( $item instanceof self ) {
87
-			$this->set_id( $item->get_id() );
88
-		} elseif ( ! empty( $item->ID ) ) {
89
-			$this->set_id( $item->ID );
90
-		} else {
91
-			$this->set_object_read( true );
92
-		}
77
+     * Get the item if ID is passed, otherwise the item is new and empty.
78
+     *
79
+     * @param  int|object|WPInv_Item|WP_Post $item Item to read.
80
+     */
81
+    public function __construct( $item = 0 ) {
82
+        parent::__construct( $item );
83
+
84
+        if ( is_numeric( $item ) && $item > 0 ) {
85
+            $this->set_id( $item );
86
+        } elseif ( $item instanceof self ) {
87
+            $this->set_id( $item->get_id() );
88
+        } elseif ( ! empty( $item->ID ) ) {
89
+            $this->set_id( $item->ID );
90
+        } else {
91
+            $this->set_object_read( true );
92
+        }
93 93
 
94 94
         // Load the datastore.
95
-		$this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
95
+        $this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
96 96
 
97
-		if ( $this->get_id() > 0 ) {
97
+        if ( $this->get_id() > 0 ) {
98 98
             $this->post = get_post( $this->get_id() );
99 99
             $this->ID   = $this->get_id();
100
-			$this->data_store->read( $this );
100
+            $this->data_store->read( $this );
101 101
         }
102 102
 
103
-	}
103
+    }
104 104
 
105 105
     /*
106 106
 	|--------------------------------------------------------------------------
@@ -118,193 +118,193 @@  discard block
 block discarded – undo
118 118
     */
119 119
 
120 120
     /**
121
-	 * Get parent item ID.
122
-	 *
123
-	 * @since 1.0.19
124
-	 * @param  string $context View or edit context.
125
-	 * @return int
126
-	 */
127
-	public function get_parent_id( $context = 'view' ) {
128
-		return (int) $this->get_prop( 'parent_id', $context );
121
+     * Get parent item ID.
122
+     *
123
+     * @since 1.0.19
124
+     * @param  string $context View or edit context.
125
+     * @return int
126
+     */
127
+    public function get_parent_id( $context = 'view' ) {
128
+        return (int) $this->get_prop( 'parent_id', $context );
129 129
     }
130 130
 
131 131
     /**
132
-	 * Get item status.
133
-	 *
134
-	 * @since 1.0.19
135
-	 * @param  string $context View or edit context.
136
-	 * @return string
137
-	 */
138
-	public function get_status( $context = 'view' ) {
139
-		return $this->get_prop( 'status', $context );
132
+     * Get item status.
133
+     *
134
+     * @since 1.0.19
135
+     * @param  string $context View or edit context.
136
+     * @return string
137
+     */
138
+    public function get_status( $context = 'view' ) {
139
+        return $this->get_prop( 'status', $context );
140 140
     }
141 141
 
142 142
     /**
143
-	 * Get plugin version when the item was created.
144
-	 *
145
-	 * @since 1.0.19
146
-	 * @param  string $context View or edit context.
147
-	 * @return string
148
-	 */
149
-	public function get_version( $context = 'view' ) {
150
-		return $this->get_prop( 'version', $context );
143
+     * Get plugin version when the item was created.
144
+     *
145
+     * @since 1.0.19
146
+     * @param  string $context View or edit context.
147
+     * @return string
148
+     */
149
+    public function get_version( $context = 'view' ) {
150
+        return $this->get_prop( 'version', $context );
151 151
     }
152 152
 
153 153
     /**
154
-	 * Get date when the item was created.
155
-	 *
156
-	 * @since 1.0.19
157
-	 * @param  string $context View or edit context.
158
-	 * @return string
159
-	 */
160
-	public function get_date_created( $context = 'view' ) {
161
-		return $this->get_prop( 'date_created', $context );
154
+     * Get date when the item was created.
155
+     *
156
+     * @since 1.0.19
157
+     * @param  string $context View or edit context.
158
+     * @return string
159
+     */
160
+    public function get_date_created( $context = 'view' ) {
161
+        return $this->get_prop( 'date_created', $context );
162 162
     }
163 163
 
164 164
     /**
165
-	 * Get GMT date when the item was created.
166
-	 *
167
-	 * @since 1.0.19
168
-	 * @param  string $context View or edit context.
169
-	 * @return string
170
-	 */
171
-	public function get_date_created_gmt( $context = 'view' ) {
165
+     * Get GMT date when the item was created.
166
+     *
167
+     * @since 1.0.19
168
+     * @param  string $context View or edit context.
169
+     * @return string
170
+     */
171
+    public function get_date_created_gmt( $context = 'view' ) {
172 172
         $date = $this->get_date_created( $context );
173 173
 
174 174
         if ( $date ) {
175 175
             $date = get_gmt_from_date( $date );
176 176
         }
177
-		return $date;
177
+        return $date;
178 178
     }
179 179
 
180 180
     /**
181
-	 * Get date when the item was last modified.
182
-	 *
183
-	 * @since 1.0.19
184
-	 * @param  string $context View or edit context.
185
-	 * @return string
186
-	 */
187
-	public function get_date_modified( $context = 'view' ) {
188
-		return $this->get_prop( 'date_modified', $context );
181
+     * Get date when the item was last modified.
182
+     *
183
+     * @since 1.0.19
184
+     * @param  string $context View or edit context.
185
+     * @return string
186
+     */
187
+    public function get_date_modified( $context = 'view' ) {
188
+        return $this->get_prop( 'date_modified', $context );
189 189
     }
190 190
 
191 191
     /**
192
-	 * Get GMT date when the item was last modified.
193
-	 *
194
-	 * @since 1.0.19
195
-	 * @param  string $context View or edit context.
196
-	 * @return string
197
-	 */
198
-	public function get_date_modified_gmt( $context = 'view' ) {
192
+     * Get GMT date when the item was last modified.
193
+     *
194
+     * @since 1.0.19
195
+     * @param  string $context View or edit context.
196
+     * @return string
197
+     */
198
+    public function get_date_modified_gmt( $context = 'view' ) {
199 199
         $date = $this->get_date_modified( $context );
200 200
 
201 201
         if ( $date ) {
202 202
             $date = get_gmt_from_date( $date );
203 203
         }
204
-		return $date;
204
+        return $date;
205 205
     }
206 206
 
207 207
     /**
208
-	 * Get the item name.
209
-	 *
210
-	 * @since 1.0.19
211
-	 * @param  string $context View or edit context.
212
-	 * @return string
213
-	 */
214
-	public function get_name( $context = 'view' ) {
215
-		return $this->get_prop( 'name', $context );
208
+     * Get the item name.
209
+     *
210
+     * @since 1.0.19
211
+     * @param  string $context View or edit context.
212
+     * @return string
213
+     */
214
+    public function get_name( $context = 'view' ) {
215
+        return $this->get_prop( 'name', $context );
216 216
     }
217 217
 
218 218
     /**
219
-	 * Alias of self::get_name().
220
-	 *
221
-	 * @since 1.0.19
222
-	 * @param  string $context View or edit context.
223
-	 * @return string
224
-	 */
225
-	public function get_title( $context = 'view' ) {
226
-		return $this->get_name( $context );
219
+     * Alias of self::get_name().
220
+     *
221
+     * @since 1.0.19
222
+     * @param  string $context View or edit context.
223
+     * @return string
224
+     */
225
+    public function get_title( $context = 'view' ) {
226
+        return $this->get_name( $context );
227 227
     }
228 228
 
229 229
     /**
230
-	 * Get the item description.
231
-	 *
232
-	 * @since 1.0.19
233
-	 * @param  string $context View or edit context.
234
-	 * @return string
235
-	 */
236
-	public function get_description( $context = 'view' ) {
237
-		return $this->get_prop( 'description', $context );
230
+     * Get the item description.
231
+     *
232
+     * @since 1.0.19
233
+     * @param  string $context View or edit context.
234
+     * @return string
235
+     */
236
+    public function get_description( $context = 'view' ) {
237
+        return $this->get_prop( 'description', $context );
238 238
     }
239 239
 
240 240
     /**
241
-	 * Alias of self::get_description().
242
-	 *
243
-	 * @since 1.0.19
244
-	 * @param  string $context View or edit context.
245
-	 * @return string
246
-	 */
247
-	public function get_excerpt( $context = 'view' ) {
248
-		return $this->get_description( $context );
241
+     * Alias of self::get_description().
242
+     *
243
+     * @since 1.0.19
244
+     * @param  string $context View or edit context.
245
+     * @return string
246
+     */
247
+    public function get_excerpt( $context = 'view' ) {
248
+        return $this->get_description( $context );
249 249
     }
250 250
 
251 251
     /**
252
-	 * Alias of self::get_description().
253
-	 *
254
-	 * @since 1.0.19
255
-	 * @param  string $context View or edit context.
256
-	 * @return string
257
-	 */
258
-	public function get_summary( $context = 'view' ) {
259
-		return $this->get_description( $context );
252
+     * Alias of self::get_description().
253
+     *
254
+     * @since 1.0.19
255
+     * @param  string $context View or edit context.
256
+     * @return string
257
+     */
258
+    public function get_summary( $context = 'view' ) {
259
+        return $this->get_description( $context );
260 260
     }
261 261
 
262 262
     /**
263
-	 * Get the owner of the item.
264
-	 *
265
-	 * @since 1.0.19
266
-	 * @param  string $context View or edit context.
267
-	 * @return string
268
-	 */
269
-	public function get_author( $context = 'view' ) {
270
-		return (int) $this->get_prop( 'author', $context );
263
+     * Get the owner of the item.
264
+     *
265
+     * @since 1.0.19
266
+     * @param  string $context View or edit context.
267
+     * @return string
268
+     */
269
+    public function get_author( $context = 'view' ) {
270
+        return (int) $this->get_prop( 'author', $context );
271 271
     }
272 272
 
273 273
     /**
274
-	 * Get the price of the item.
275
-	 *
276
-	 * @since 1.0.19
277
-	 * @param  string $context View or edit context.
278
-	 * @return float
279
-	 */
280
-	public function get_price( $context = 'view' ) {
274
+     * Get the price of the item.
275
+     *
276
+     * @since 1.0.19
277
+     * @param  string $context View or edit context.
278
+     * @return float
279
+     */
280
+    public function get_price( $context = 'view' ) {
281 281
         return wpinv_sanitize_amount( $this->get_prop( 'price', $context ) );
282
-	}
282
+    }
283 283
 	
284
-	/**
285
-	 * Get the inital price of the item.
286
-	 *
287
-	 * @since 1.0.19
288
-	 * @param  string $context View or edit context.
289
-	 * @return float
290
-	 */
291
-	public function get_initial_price( $context = 'view' ) {
292
-
293
-		$price = $this->get_price( $context );
294
-
295
-		if ( $this->has_free_trial() ) {
296
-			$price = wpinv_sanitize_amount( 0 );
297
-		}
284
+    /**
285
+     * Get the inital price of the item.
286
+     *
287
+     * @since 1.0.19
288
+     * @param  string $context View or edit context.
289
+     * @return float
290
+     */
291
+    public function get_initial_price( $context = 'view' ) {
292
+
293
+        $price = $this->get_price( $context );
294
+
295
+        if ( $this->has_free_trial() ) {
296
+            $price = wpinv_sanitize_amount( 0 );
297
+        }
298 298
         return apply_filters( 'wpinv_get_initial_item_price', $price, $this );
299 299
     }
300 300
 
301 301
     /**
302
-	 * Returns a formated price.
303
-	 *
304
-	 * @since 1.0.19
305
-	 * @param  string $context View or edit context.
306
-	 * @return string
307
-	 */
302
+     * Returns a formated price.
303
+     *
304
+     * @since 1.0.19
305
+     * @param  string $context View or edit context.
306
+     * @return string
307
+     */
308 308
     public function get_the_price() {
309 309
         $item_price = wpinv_price( $this->get_price() );
310 310
 
@@ -312,175 +312,175 @@  discard block
 block discarded – undo
312 312
     }
313 313
 
314 314
     /**
315
-	 * Get the VAT rule of the item.
316
-	 *
317
-	 * @since 1.0.19
318
-	 * @param  string $context View or edit context.
319
-	 * @return string
320
-	 */
321
-	public function get_vat_rule( $context = 'view' ) {
315
+     * Get the VAT rule of the item.
316
+     *
317
+     * @since 1.0.19
318
+     * @param  string $context View or edit context.
319
+     * @return string
320
+     */
321
+    public function get_vat_rule( $context = 'view' ) {
322 322
         return $this->get_prop( 'vat_rule', $context );
323 323
     }
324 324
 
325 325
     /**
326
-	 * Get the VAT class of the item.
327
-	 *
328
-	 * @since 1.0.19
329
-	 * @param  string $context View or edit context.
330
-	 * @return string
331
-	 */
332
-	public function get_vat_class( $context = 'view' ) {
326
+     * Get the VAT class of the item.
327
+     *
328
+     * @since 1.0.19
329
+     * @param  string $context View or edit context.
330
+     * @return string
331
+     */
332
+    public function get_vat_class( $context = 'view' ) {
333 333
         return $this->get_prop( 'vat_class', $context );
334 334
     }
335 335
 
336 336
     /**
337
-	 * Get the type of the item.
338
-	 *
339
-	 * @since 1.0.19
340
-	 * @param  string $context View or edit context.
341
-	 * @return string
342
-	 */
343
-	public function get_type( $context = 'view' ) {
337
+     * Get the type of the item.
338
+     *
339
+     * @since 1.0.19
340
+     * @param  string $context View or edit context.
341
+     * @return string
342
+     */
343
+    public function get_type( $context = 'view' ) {
344 344
         return $this->get_prop( 'type', $context );
345 345
     }
346 346
 
347 347
     /**
348
-	 * Get the custom id of the item.
349
-	 *
350
-	 * @since 1.0.19
351
-	 * @param  string $context View or edit context.
352
-	 * @return string
353
-	 */
354
-	public function get_custom_id( $context = 'view' ) {
348
+     * Get the custom id of the item.
349
+     *
350
+     * @since 1.0.19
351
+     * @param  string $context View or edit context.
352
+     * @return string
353
+     */
354
+    public function get_custom_id( $context = 'view' ) {
355 355
         return $this->get_prop( 'custom_id', $context );
356 356
     }
357 357
 
358 358
     /**
359
-	 * Get the custom name of the item.
360
-	 *
361
-	 * @since 1.0.19
362
-	 * @param  string $context View or edit context.
363
-	 * @return string
364
-	 */
365
-	public function get_custom_name( $context = 'view' ) {
359
+     * Get the custom name of the item.
360
+     *
361
+     * @since 1.0.19
362
+     * @param  string $context View or edit context.
363
+     * @return string
364
+     */
365
+    public function get_custom_name( $context = 'view' ) {
366 366
         return $this->get_prop( 'custom_name', $context );
367 367
     }
368 368
 
369 369
     /**
370
-	 * Get the custom singular name of the item.
371
-	 *
372
-	 * @since 1.0.19
373
-	 * @param  string $context View or edit context.
374
-	 * @return string
375
-	 */
376
-	public function get_custom_singular_name( $context = 'view' ) {
370
+     * Get the custom singular name of the item.
371
+     *
372
+     * @since 1.0.19
373
+     * @param  string $context View or edit context.
374
+     * @return string
375
+     */
376
+    public function get_custom_singular_name( $context = 'view' ) {
377 377
         return $this->get_prop( 'custom_singular_name', $context );
378 378
     }
379 379
 
380 380
     /**
381
-	 * Checks if an item is editable..
382
-	 *
383
-	 * @since 1.0.19
384
-	 * @param  string $context View or edit context.
385
-	 * @return int
386
-	 */
387
-	public function get_is_editable( $context = 'view' ) {
381
+     * Checks if an item is editable..
382
+     *
383
+     * @since 1.0.19
384
+     * @param  string $context View or edit context.
385
+     * @return int
386
+     */
387
+    public function get_is_editable( $context = 'view' ) {
388 388
         return (int) $this->get_prop( 'is_editable', $context );
389 389
     }
390 390
 
391 391
     /**
392
-	 * Alias of self::get_is_editable().
393
-	 *
394
-	 * @since 1.0.19
395
-	 * @param  string $context View or edit context.
396
-	 * @return int
397
-	 */
398
-	public function get_editable( $context = 'view' ) {
399
-		return $this->get_is_editable( $context );
392
+     * Alias of self::get_is_editable().
393
+     *
394
+     * @since 1.0.19
395
+     * @param  string $context View or edit context.
396
+     * @return int
397
+     */
398
+    public function get_editable( $context = 'view' ) {
399
+        return $this->get_is_editable( $context );
400 400
     }
401 401
 
402 402
     /**
403
-	 * Checks if dynamic pricing is enabled.
404
-	 *
405
-	 * @since 1.0.19
406
-	 * @param  string $context View or edit context.
407
-	 * @return int
408
-	 */
409
-	public function get_is_dynamic_pricing( $context = 'view' ) {
403
+     * Checks if dynamic pricing is enabled.
404
+     *
405
+     * @since 1.0.19
406
+     * @param  string $context View or edit context.
407
+     * @return int
408
+     */
409
+    public function get_is_dynamic_pricing( $context = 'view' ) {
410 410
         return (int) $this->get_prop( 'is_dynamic_pricing', $context );
411 411
     }
412 412
 
413 413
     /**
414
-	 * Returns the minimum price if dynamic pricing is enabled.
415
-	 *
416
-	 * @since 1.0.19
417
-	 * @param  string $context View or edit context.
418
-	 * @return float
419
-	 */
420
-	public function get_minimum_price( $context = 'view' ) {
414
+     * Returns the minimum price if dynamic pricing is enabled.
415
+     *
416
+     * @since 1.0.19
417
+     * @param  string $context View or edit context.
418
+     * @return float
419
+     */
420
+    public function get_minimum_price( $context = 'view' ) {
421 421
         return wpinv_sanitize_amount( $this->get_prop( 'minimum_price', $context ) );
422 422
     }
423 423
 
424 424
     /**
425
-	 * Checks if this is a recurring item.
426
-	 *
427
-	 * @since 1.0.19
428
-	 * @param  string $context View or edit context.
429
-	 * @return int
430
-	 */
431
-	public function get_is_recurring( $context = 'view' ) {
425
+     * Checks if this is a recurring item.
426
+     *
427
+     * @since 1.0.19
428
+     * @param  string $context View or edit context.
429
+     * @return int
430
+     */
431
+    public function get_is_recurring( $context = 'view' ) {
432 432
         return (int) $this->get_prop( 'is_recurring', $context );
433
-	}
433
+    }
434 434
 	
435
-	/**
436
-	 * Get the recurring price of the item.
437
-	 *
438
-	 * @since 1.0.19
439
-	 * @param  string $context View or edit context.
440
-	 * @return float
441
-	 */
442
-	public function get_recurring_price( $context = 'view' ) {
443
-		$price = $this->get_price( $context );
435
+    /**
436
+     * Get the recurring price of the item.
437
+     *
438
+     * @since 1.0.19
439
+     * @param  string $context View or edit context.
440
+     * @return float
441
+     */
442
+    public function get_recurring_price( $context = 'view' ) {
443
+        $price = $this->get_price( $context );
444 444
         return wpinv_sanitize_amount( apply_filters( 'wpinv_get_recurring_item_price', $price, $this->ID ) );
445
-	}
446
-
447
-	/**
448
-	 * Get the first renewal date (in timestamps) of the item.
449
-	 *
450
-	 * @since 1.0.19
451
-	 * @return int
452
-	 */
453
-	public function get_first_renewal_date() {
454
-
455
-		$periods = array(
456
-			'D' => 'days',
457
-			'W' => 'weeks',
458
-			'M' => 'months',
459
-			'Y' => 'years',
460
-		);
461
-
462
-		$period   = $this->get_recurring_period();
463
-		$interval = $this->get_recurring_interval();
464
-
465
-		if ( $this->has_free_trial() ) {
466
-			$period   = $this->get_trial_period();
467
-			$interval = $this->get_trial_interval();
468
-		}
469
-
470
-		$period       = $periods[ $period ];
471
-		$interval     = empty( $interval ) ? 1 : $interval;
472
-		$next_renewal = strtotime( "+$interval $period", current_time( 'timestamp' ) );
445
+    }
446
+
447
+    /**
448
+     * Get the first renewal date (in timestamps) of the item.
449
+     *
450
+     * @since 1.0.19
451
+     * @return int
452
+     */
453
+    public function get_first_renewal_date() {
454
+
455
+        $periods = array(
456
+            'D' => 'days',
457
+            'W' => 'weeks',
458
+            'M' => 'months',
459
+            'Y' => 'years',
460
+        );
461
+
462
+        $period   = $this->get_recurring_period();
463
+        $interval = $this->get_recurring_interval();
464
+
465
+        if ( $this->has_free_trial() ) {
466
+            $period   = $this->get_trial_period();
467
+            $interval = $this->get_trial_interval();
468
+        }
469
+
470
+        $period       = $periods[ $period ];
471
+        $interval     = empty( $interval ) ? 1 : $interval;
472
+        $next_renewal = strtotime( "+$interval $period", current_time( 'timestamp' ) );
473 473
         return apply_filters( 'wpinv_get_first_renewal_date', $next_renewal, $this );
474 474
     }
475 475
 
476 476
     /**
477
-	 * Get the recurring period.
478
-	 *
479
-	 * @since 1.0.19
480
-	 * @param  bool $full Return abbreviation or in full.
481
-	 * @return string
482
-	 */
483
-	public function get_recurring_period( $full = false ) {
477
+     * Get the recurring period.
478
+     *
479
+     * @since 1.0.19
480
+     * @param  bool $full Return abbreviation or in full.
481
+     * @return string
482
+     */
483
+    public function get_recurring_period( $full = false ) {
484 484
         $period = $this->get_prop( 'recurring_period', 'view' );
485 485
 
486 486
         if ( $full && ! is_bool( $full ) ) {
@@ -491,63 +491,63 @@  discard block
 block discarded – undo
491 491
     }
492 492
 
493 493
     /**
494
-	 * Get the recurring interval.
495
-	 *
496
-	 * @since 1.0.19
497
-	 * @param  string $context View or edit context.
498
-	 * @return int
499
-	 */
500
-	public function get_recurring_interval( $context = 'view' ) {
501
-		$interval = absint( $this->get_prop( 'recurring_interval', $context ) );
494
+     * Get the recurring interval.
495
+     *
496
+     * @since 1.0.19
497
+     * @param  string $context View or edit context.
498
+     * @return int
499
+     */
500
+    public function get_recurring_interval( $context = 'view' ) {
501
+        $interval = absint( $this->get_prop( 'recurring_interval', $context ) );
502 502
 
503
-		if ( $interval < 1 ) {
504
-			$interval = 1;
505
-		}
503
+        if ( $interval < 1 ) {
504
+            $interval = 1;
505
+        }
506 506
 
507 507
         return $interval;
508 508
     }
509 509
 
510 510
     /**
511
-	 * Get the recurring limit.
512
-	 *
513
-	 * @since 1.0.19
514
-	 * @param  string $context View or edit context.
515
-	 * @return int
516
-	 */
517
-	public function get_recurring_limit( $context = 'view' ) {
511
+     * Get the recurring limit.
512
+     *
513
+     * @since 1.0.19
514
+     * @param  string $context View or edit context.
515
+     * @return int
516
+     */
517
+    public function get_recurring_limit( $context = 'view' ) {
518 518
         return (int) $this->get_prop( 'recurring_limit', $context );
519 519
     }
520 520
 
521 521
     /**
522
-	 * Checks if we have a free trial.
523
-	 *
524
-	 * @since 1.0.19
525
-	 * @param  string $context View or edit context.
526
-	 * @return int
527
-	 */
528
-	public function get_is_free_trial( $context = 'view' ) {
522
+     * Checks if we have a free trial.
523
+     *
524
+     * @since 1.0.19
525
+     * @param  string $context View or edit context.
526
+     * @return int
527
+     */
528
+    public function get_is_free_trial( $context = 'view' ) {
529 529
         return (int) $this->get_prop( 'is_free_trial', $context );
530 530
     }
531 531
 
532 532
     /**
533
-	 * Alias for self::get_is_free_trial().
534
-	 *
535
-	 * @since 1.0.19
536
-	 * @param  string $context View or edit context.
537
-	 * @return int
538
-	 */
539
-	public function get_free_trial( $context = 'view' ) {
533
+     * Alias for self::get_is_free_trial().
534
+     *
535
+     * @since 1.0.19
536
+     * @param  string $context View or edit context.
537
+     * @return int
538
+     */
539
+    public function get_free_trial( $context = 'view' ) {
540 540
         return $this->get_is_free_trial( $context );
541 541
     }
542 542
 
543 543
     /**
544
-	 * Get the trial period.
545
-	 *
546
-	 * @since 1.0.19
547
-	 * @param  bool $full Return abbreviation or in full.
548
-	 * @return string
549
-	 */
550
-	public function get_trial_period( $full = false ) {
544
+     * Get the trial period.
545
+     *
546
+     * @since 1.0.19
547
+     * @param  bool $full Return abbreviation or in full.
548
+     * @return string
549
+     */
550
+    public function get_trial_period( $full = false ) {
551 551
         $period = $this->get_prop( 'trial_period', 'view' );
552 552
 
553 553
         if ( $full && ! is_bool( $full ) ) {
@@ -558,13 +558,13 @@  discard block
 block discarded – undo
558 558
     }
559 559
 
560 560
     /**
561
-	 * Get the trial interval.
562
-	 *
563
-	 * @since 1.0.19
564
-	 * @param  string $context View or edit context.
565
-	 * @return int
566
-	 */
567
-	public function get_trial_interval( $context = 'view' ) {
561
+     * Get the trial interval.
562
+     *
563
+     * @since 1.0.19
564
+     * @param  string $context View or edit context.
565
+     * @return int
566
+     */
567
+    public function get_trial_interval( $context = 'view' ) {
568 568
         return (int) $this->get_prop( 'trial_interval', $context );
569 569
     }
570 570
 
@@ -598,52 +598,52 @@  discard block
 block discarded – undo
598 598
     */
599 599
 
600 600
     /**
601
-	 * Set parent order ID.
602
-	 *
603
-	 * @since 1.0.19
604
-	 */
605
-	public function set_parent_id( $value ) {
606
-		if ( $value && ( $value === $this->get_id() || ! get_post( $value ) ) ) {
607
-			return;
608
-		}
609
-		$this->set_prop( 'parent_id', absint( $value ) );
610
-	}
611
-
612
-    /**
613
-	 * Sets item status.
614
-	 *
615
-	 * @since 1.0.19
616
-	 * @param  string $status New status.
617
-	 * @return array details of change.
618
-	 */
619
-	public function set_status( $status ) {
601
+     * Set parent order ID.
602
+     *
603
+     * @since 1.0.19
604
+     */
605
+    public function set_parent_id( $value ) {
606
+        if ( $value && ( $value === $this->get_id() || ! get_post( $value ) ) ) {
607
+            return;
608
+        }
609
+        $this->set_prop( 'parent_id', absint( $value ) );
610
+    }
611
+
612
+    /**
613
+     * Sets item status.
614
+     *
615
+     * @since 1.0.19
616
+     * @param  string $status New status.
617
+     * @return array details of change.
618
+     */
619
+    public function set_status( $status ) {
620 620
         $old_status = $this->get_status();
621 621
 
622 622
         $this->set_prop( 'status', $status );
623 623
 
624
-		return array(
625
-			'from' => $old_status,
626
-			'to'   => $status,
627
-		);
624
+        return array(
625
+            'from' => $old_status,
626
+            'to'   => $status,
627
+        );
628 628
     }
629 629
 
630 630
     /**
631
-	 * Set plugin version when the item was created.
632
-	 *
633
-	 * @since 1.0.19
634
-	 */
635
-	public function set_version( $value ) {
636
-		$this->set_prop( 'version', $value );
631
+     * Set plugin version when the item was created.
632
+     *
633
+     * @since 1.0.19
634
+     */
635
+    public function set_version( $value ) {
636
+        $this->set_prop( 'version', $value );
637 637
     }
638 638
 
639 639
     /**
640
-	 * Set date when the item was created.
641
-	 *
642
-	 * @since 1.0.19
643
-	 * @param string $value Value to set.
640
+     * Set date when the item was created.
641
+     *
642
+     * @since 1.0.19
643
+     * @param string $value Value to set.
644 644
      * @return bool Whether or not the date was set.
645
-	 */
646
-	public function set_date_created( $value ) {
645
+     */
646
+    public function set_date_created( $value ) {
647 647
         $date = strtotime( $value );
648 648
 
649 649
         if ( $date ) {
@@ -656,13 +656,13 @@  discard block
 block discarded – undo
656 656
     }
657 657
 
658 658
     /**
659
-	 * Set date when the item was last modified.
660
-	 *
661
-	 * @since 1.0.19
662
-	 * @param string $value Value to set.
659
+     * Set date when the item was last modified.
660
+     *
661
+     * @since 1.0.19
662
+     * @param string $value Value to set.
663 663
      * @return bool Whether or not the date was set.
664
-	 */
665
-	public function set_date_modified( $value ) {
664
+     */
665
+    public function set_date_modified( $value ) {
666 666
         $date = strtotime( $value );
667 667
 
668 668
         if ( $date ) {
@@ -675,105 +675,105 @@  discard block
 block discarded – undo
675 675
     }
676 676
 
677 677
     /**
678
-	 * Set the item name.
679
-	 *
680
-	 * @since 1.0.19
681
-	 * @param  string $value New name.
682
-	 */
683
-	public function set_name( $value ) {
678
+     * Set the item name.
679
+     *
680
+     * @since 1.0.19
681
+     * @param  string $value New name.
682
+     */
683
+    public function set_name( $value ) {
684 684
         $name = sanitize_text_field( $value );
685
-		$this->set_prop( 'name', $name );
685
+        $this->set_prop( 'name', $name );
686 686
     }
687 687
 
688 688
     /**
689
-	 * Alias of self::set_name().
690
-	 *
691
-	 * @since 1.0.19
692
-	 * @param  string $value New name.
693
-	 */
694
-	public function set_title( $value ) {
695
-		$this->set_name( $value );
689
+     * Alias of self::set_name().
690
+     *
691
+     * @since 1.0.19
692
+     * @param  string $value New name.
693
+     */
694
+    public function set_title( $value ) {
695
+        $this->set_name( $value );
696 696
     }
697 697
 
698 698
     /**
699
-	 * Set the item description.
700
-	 *
701
-	 * @since 1.0.19
702
-	 * @param  string $value New description.
703
-	 */
704
-	public function set_description( $value ) {
699
+     * Set the item description.
700
+     *
701
+     * @since 1.0.19
702
+     * @param  string $value New description.
703
+     */
704
+    public function set_description( $value ) {
705 705
         $description = wp_kses_post( $value );
706
-		return $this->set_prop( 'description', $description );
706
+        return $this->set_prop( 'description', $description );
707 707
     }
708 708
 
709 709
     /**
710
-	 * Alias of self::set_description().
711
-	 *
712
-	 * @since 1.0.19
713
-	 * @param  string $value New description.
714
-	 */
715
-	public function set_excerpt( $value ) {
716
-		$this->set_description( $value );
710
+     * Alias of self::set_description().
711
+     *
712
+     * @since 1.0.19
713
+     * @param  string $value New description.
714
+     */
715
+    public function set_excerpt( $value ) {
716
+        $this->set_description( $value );
717 717
     }
718 718
 
719 719
     /**
720
-	 * Alias of self::set_description().
721
-	 *
722
-	 * @since 1.0.19
723
-	 * @param  string $value New description.
724
-	 */
725
-	public function set_summary( $value ) {
726
-		$this->set_description( $value );
720
+     * Alias of self::set_description().
721
+     *
722
+     * @since 1.0.19
723
+     * @param  string $value New description.
724
+     */
725
+    public function set_summary( $value ) {
726
+        $this->set_description( $value );
727 727
     }
728 728
 
729 729
     /**
730
-	 * Set the owner of the item.
731
-	 *
732
-	 * @since 1.0.19
733
-	 * @param  int $value New author.
734
-	 */
735
-	public function set_author( $value ) {
736
-		$this->set_prop( 'author', (int) $value );
730
+     * Set the owner of the item.
731
+     *
732
+     * @since 1.0.19
733
+     * @param  int $value New author.
734
+     */
735
+    public function set_author( $value ) {
736
+        $this->set_prop( 'author', (int) $value );
737 737
     }
738 738
 
739 739
     /**
740
-	 * Set the price of the item.
741
-	 *
742
-	 * @since 1.0.19
743
-	 * @param  float $value New price.
740
+     * Set the price of the item.
741
+     *
742
+     * @since 1.0.19
743
+     * @param  float $value New price.
744 744
 ]	 */
745
-	public function set_price( $value ) {
745
+    public function set_price( $value ) {
746 746
         $this->set_prop( 'price', (float) wpinv_sanitize_amount( $value ) );
747 747
     }
748 748
 
749 749
     /**
750
-	 * Set the VAT rule of the item.
751
-	 *
752
-	 * @since 1.0.19
753
-	 * @param  string $value new rule.
754
-	 */
755
-	public function set_vat_rule( $value ) {
750
+     * Set the VAT rule of the item.
751
+     *
752
+     * @since 1.0.19
753
+     * @param  string $value new rule.
754
+     */
755
+    public function set_vat_rule( $value ) {
756 756
         $this->set_prop( 'vat_rule', $value );
757 757
     }
758 758
 
759 759
     /**
760
-	 * Set the VAT class of the item.
761
-	 *
762
-	 * @since 1.0.19
763
-	 * @param  string $value new class.
764
-	 */
765
-	public function set_vat_class( $value ) {
760
+     * Set the VAT class of the item.
761
+     *
762
+     * @since 1.0.19
763
+     * @param  string $value new class.
764
+     */
765
+    public function set_vat_class( $value ) {
766 766
         $this->set_prop( 'vat_class', $value );
767 767
     }
768 768
 
769 769
     /**
770
-	 * Set the type of the item.
771
-	 *
772
-	 * @since 1.0.19
773
-	 * @param  string $value new item type.
774
-	 * @return string
775
-	 */
776
-	public function set_type( $value ) {
770
+     * Set the type of the item.
771
+     *
772
+     * @since 1.0.19
773
+     * @param  string $value new item type.
774
+     * @return string
775
+     */
776
+    public function set_type( $value ) {
777 777
 
778 778
         if ( empty( $value ) ) {
779 779
             $value = 'custom';
@@ -783,134 +783,134 @@  discard block
 block discarded – undo
783 783
     }
784 784
 
785 785
     /**
786
-	 * Set the custom id of the item.
787
-	 *
788
-	 * @since 1.0.19
789
-	 * @param  string $value new custom id.
790
-	 */
791
-	public function set_custom_id( $value ) {
786
+     * Set the custom id of the item.
787
+     *
788
+     * @since 1.0.19
789
+     * @param  string $value new custom id.
790
+     */
791
+    public function set_custom_id( $value ) {
792 792
         $this->set_prop( 'custom_id', $value );
793 793
     }
794 794
 
795 795
     /**
796
-	 * Set the custom name of the item.
797
-	 *
798
-	 * @since 1.0.19
799
-	 * @param  string $value new custom name.
800
-	 */
801
-	public function set_custom_name( $value ) {
796
+     * Set the custom name of the item.
797
+     *
798
+     * @since 1.0.19
799
+     * @param  string $value new custom name.
800
+     */
801
+    public function set_custom_name( $value ) {
802 802
         $this->set_prop( 'custom_name', $value );
803 803
     }
804 804
 
805 805
     /**
806
-	 * Set the custom singular name of the item.
807
-	 *
808
-	 * @since 1.0.19
809
-	 * @param  string $value new custom singular name.
810
-	 */
811
-	public function set_custom_singular_name( $value ) {
806
+     * Set the custom singular name of the item.
807
+     *
808
+     * @since 1.0.19
809
+     * @param  string $value new custom singular name.
810
+     */
811
+    public function set_custom_singular_name( $value ) {
812 812
         $this->set_prop( 'custom_singular_name', $value );
813 813
     }
814 814
 
815 815
     /**
816
-	 * Sets if an item is editable..
817
-	 *
818
-	 * @since 1.0.19
819
-	 * @param  int|bool $value whether or not the item is editable.
820
-	 */
821
-	public function set_is_editable( $value ) {
822
-		if ( is_numeric( $value ) ) {
823
-			$this->set_prop( 'is_editable', (int) $value );
824
-		}
816
+     * Sets if an item is editable..
817
+     *
818
+     * @since 1.0.19
819
+     * @param  int|bool $value whether or not the item is editable.
820
+     */
821
+    public function set_is_editable( $value ) {
822
+        if ( is_numeric( $value ) ) {
823
+            $this->set_prop( 'is_editable', (int) $value );
824
+        }
825 825
     }
826 826
 
827 827
     /**
828
-	 * Sets if dynamic pricing is enabled.
829
-	 *
830
-	 * @since 1.0.19
831
-	 * @param  int|bool $value whether or not dynamic pricing is allowed.
832
-	 */
833
-	public function set_is_dynamic_pricing( $value ) {
828
+     * Sets if dynamic pricing is enabled.
829
+     *
830
+     * @since 1.0.19
831
+     * @param  int|bool $value whether or not dynamic pricing is allowed.
832
+     */
833
+    public function set_is_dynamic_pricing( $value ) {
834 834
         $this->set_prop( 'is_dynamic_pricing', (int) $value );
835 835
     }
836 836
 
837 837
     /**
838
-	 * Sets the minimum price if dynamic pricing is enabled.
839
-	 *
840
-	 * @since 1.0.19
841
-	 * @param  float $value minimum price.
842
-	 */
843
-	public function set_minimum_price( $value ) {
838
+     * Sets the minimum price if dynamic pricing is enabled.
839
+     *
840
+     * @since 1.0.19
841
+     * @param  float $value minimum price.
842
+     */
843
+    public function set_minimum_price( $value ) {
844 844
         $this->set_prop( 'minimum_price',  (float) wpinv_sanitize_amount( $value ) );
845 845
     }
846 846
 
847 847
     /**
848
-	 * Sets if this is a recurring item.
849
-	 *
850
-	 * @since 1.0.19
851
-	 * @param  int|bool $value whether or not dynamic pricing is allowed.
852
-	 */
853
-	public function set_is_recurring( $value ) {
848
+     * Sets if this is a recurring item.
849
+     *
850
+     * @since 1.0.19
851
+     * @param  int|bool $value whether or not dynamic pricing is allowed.
852
+     */
853
+    public function set_is_recurring( $value ) {
854 854
         $this->set_prop( 'is_recurring', (int) $value );
855 855
     }
856 856
 
857 857
     /**
858
-	 * Set the recurring period.
859
-	 *
860
-	 * @since 1.0.19
861
-	 * @param  string $value new period.
862
-	 */
863
-	public function set_recurring_period( $value ) {
858
+     * Set the recurring period.
859
+     *
860
+     * @since 1.0.19
861
+     * @param  string $value new period.
862
+     */
863
+    public function set_recurring_period( $value ) {
864 864
         $this->set_prop( 'recurring_period', $value );
865 865
     }
866 866
 
867 867
     /**
868
-	 * Set the recurring interval.
869
-	 *
870
-	 * @since 1.0.19
871
-	 * @param  int $value recurring interval.
872
-	 */
873
-	public function set_recurring_interval( $value ) {
868
+     * Set the recurring interval.
869
+     *
870
+     * @since 1.0.19
871
+     * @param  int $value recurring interval.
872
+     */
873
+    public function set_recurring_interval( $value ) {
874 874
         return $this->set_prop( 'recurring_interval', (int) $value );
875 875
     }
876 876
 
877 877
     /**
878
-	 * Get the recurring limit.
879
-	 * @since 1.0.19
880
-	 * @param  int $value The recurring limit.
881
-	 * @return int
882
-	 */
883
-	public function set_recurring_limit( $value ) {
878
+     * Get the recurring limit.
879
+     * @since 1.0.19
880
+     * @param  int $value The recurring limit.
881
+     * @return int
882
+     */
883
+    public function set_recurring_limit( $value ) {
884 884
         $this->set_prop( 'recurring_limit', (int) $value );
885 885
     }
886 886
 
887 887
     /**
888
-	 * Checks if we have a free trial.
889
-	 *
890
-	 * @since 1.0.19
891
-	 * @param  int|bool $value whether or not it has a free trial.
892
-	 */
893
-	public function set_is_free_trial( $value ) {
888
+     * Checks if we have a free trial.
889
+     *
890
+     * @since 1.0.19
891
+     * @param  int|bool $value whether or not it has a free trial.
892
+     */
893
+    public function set_is_free_trial( $value ) {
894 894
         $this->set_prop( 'is_free_trial', (int) $value );
895 895
     }
896 896
 
897 897
     /**
898
-	 * Set the trial period.
899
-	 *
900
-	 * @since 1.0.19
901
-	 * @param  string $value trial period.
902
-	 */
903
-	public function set_trial_period( $value ) {
898
+     * Set the trial period.
899
+     *
900
+     * @since 1.0.19
901
+     * @param  string $value trial period.
902
+     */
903
+    public function set_trial_period( $value ) {
904 904
         $this->set_prop( 'trial_period', $value );
905 905
     }
906 906
 
907 907
     /**
908
-	 * Set the trial interval.
909
-	 *
910
-	 * @since 1.0.19
911
-	 * @param  int $value trial interval.
912
-	 */
913
-	public function set_trial_interval( $value ) {
908
+     * Set the trial interval.
909
+     *
910
+     * @since 1.0.19
911
+     * @param  int $value trial interval.
912
+     */
913
+    public function set_trial_interval( $value ) {
914 914
         $this->set_prop( 'trial_interval', $value );
915 915
     }
916 916
 
@@ -918,17 +918,17 @@  discard block
 block discarded – undo
918 918
      * Create an item. For backwards compatibilty.
919 919
      * 
920 920
      * @deprecated
921
-	 * @return int item id
921
+     * @return int item id
922 922
      */
923 923
     public function create( $data = array() ) {
924 924
 
925
-		// Set the properties.
926
-		if ( is_array( $data ) ) {
927
-			$this->set_props( $data );
928
-		}
925
+        // Set the properties.
926
+        if ( is_array( $data ) ) {
927
+            $this->set_props( $data );
928
+        }
929 929
 
930
-		// Save the item.
931
-		return $this->save();
930
+        // Save the item.
931
+        return $this->save();
932 932
 
933 933
     }
934 934
 
@@ -936,7 +936,7 @@  discard block
 block discarded – undo
936 936
      * Updates an item. For backwards compatibilty.
937 937
      * 
938 938
      * @deprecated
939
-	 * @return int item id
939
+     * @return int item id
940 940
      */
941 941
     public function update( $data = array() ) {
942 942
         return $this->create( $data );
@@ -952,84 +952,84 @@  discard block
 block discarded – undo
952 952
 	*/
953 953
 
954 954
     /**
955
-	 * Checks whether the item has enabled dynamic pricing.
956
-	 *
957
-	 * @since 1.0.19
958
-	 * @return bool
959
-	 */
960
-	public function user_can_set_their_price() {
955
+     * Checks whether the item has enabled dynamic pricing.
956
+     *
957
+     * @since 1.0.19
958
+     * @return bool
959
+     */
960
+    public function user_can_set_their_price() {
961 961
         return (bool) $this->get_is_dynamic_pricing();
962
-	}
962
+    }
963 963
 	
964
-	/**
965
-	 * Checks whether the item is recurring.
966
-	 *
967
-	 * @since 1.0.19
968
-	 * @return bool
969
-	 */
970
-	public function is_recurring() {
964
+    /**
965
+     * Checks whether the item is recurring.
966
+     *
967
+     * @since 1.0.19
968
+     * @return bool
969
+     */
970
+    public function is_recurring() {
971 971
         return (bool) $this->get_is_recurring();
972 972
     }
973 973
 
974 974
     /**
975
-	 * Checks whether the item has a free trial.
976
-	 *
977
-	 * @since 1.0.19
978
-	 * @return bool
979
-	 */
975
+     * Checks whether the item has a free trial.
976
+     *
977
+     * @since 1.0.19
978
+     * @return bool
979
+     */
980 980
     public function has_free_trial() {
981 981
         $has_trial = $this->is_recurring() && (bool) $this->get_free_trial() ? true : false;
982 982
         return (bool) apply_filters( 'wpinv_item_has_free_trial', $has_trial, $this->ID, $this );
983 983
     }
984 984
 
985 985
     /**
986
-	 * Checks whether the item is free.
987
-	 *
988
-	 * @since 1.0.19
989
-	 * @return bool
990
-	 */
986
+     * Checks whether the item is free.
987
+     *
988
+     * @since 1.0.19
989
+     * @return bool
990
+     */
991 991
     public function is_free() {
992 992
         $is_free   = $this->get_price() == 0;
993 993
         return (bool) apply_filters( 'wpinv_is_free_item', $is_free, $this->ID, $this );
994 994
     }
995 995
 
996 996
     /**
997
-	 * Checks the item status against a passed in status.
998
-	 *
999
-	 * @param array|string $status Status to check.
1000
-	 * @return bool
1001
-	 */
1002
-	public function has_status( $status ) {
1003
-		$has_status = ( is_array( $status ) && in_array( $this->get_status(), $status, true ) ) || $this->get_status() === $status;
1004
-		return (bool) apply_filters( 'getpaid_item_has_status', $has_status, $this, $status );
997
+     * Checks the item status against a passed in status.
998
+     *
999
+     * @param array|string $status Status to check.
1000
+     * @return bool
1001
+     */
1002
+    public function has_status( $status ) {
1003
+        $has_status = ( is_array( $status ) && in_array( $this->get_status(), $status, true ) ) || $this->get_status() === $status;
1004
+        return (bool) apply_filters( 'getpaid_item_has_status', $has_status, $this, $status );
1005 1005
     }
1006 1006
 
1007 1007
     /**
1008
-	 * Checks the item type against a passed in types.
1009
-	 *
1010
-	 * @param array|string $type Type to check.
1011
-	 * @return bool
1012
-	 */
1013
-	public function is_type( $type ) {
1014
-		$is_type = ( is_array( $type ) && in_array( $this->get_type(), $type, true ) ) || $this->get_type() === $type;
1015
-		return (bool) apply_filters( 'getpaid_item_is_type', $is_type, $this, $type );
1016
-	}
1008
+     * Checks the item type against a passed in types.
1009
+     *
1010
+     * @param array|string $type Type to check.
1011
+     * @return bool
1012
+     */
1013
+    public function is_type( $type ) {
1014
+        $is_type = ( is_array( $type ) && in_array( $this->get_type(), $type, true ) ) || $this->get_type() === $type;
1015
+        return (bool) apply_filters( 'getpaid_item_is_type', $is_type, $this, $type );
1016
+    }
1017 1017
 
1018 1018
     /**
1019
-	 * Checks whether the item is editable.
1020
-	 *
1021
-	 * @since 1.0.19
1022
-	 * @return bool
1023
-	 */
1019
+     * Checks whether the item is editable.
1020
+     *
1021
+     * @since 1.0.19
1022
+     * @return bool
1023
+     */
1024 1024
     public function is_editable() {
1025 1025
         $is_editable = $this->get_is_editable();
1026 1026
         return (bool) apply_filters( 'wpinv_item_is_editable', $is_editable, $this->ID, $this );
1027
-	}
1027
+    }
1028 1028
 
1029
-	/**
1030
-	 * Returns an array of cart fees.
1031
-	 */
1032
-	public function get_fees( $type = 'fee', $item_id = 0 ) {
1029
+    /**
1030
+     * Returns an array of cart fees.
1031
+     */
1032
+    public function get_fees( $type = 'fee', $item_id = 0 ) {
1033 1033
         global $wpi_session;
1034 1034
         
1035 1035
         $fees = $wpi_session->get( 'wpi_cart_fees' );
@@ -1073,11 +1073,11 @@  discard block
 block discarded – undo
1073 1073
     }
1074 1074
 
1075 1075
     /**
1076
-	 * Checks whether the item is purchasable.
1077
-	 *
1078
-	 * @since 1.0.19
1079
-	 * @return bool
1080
-	 */
1076
+     * Checks whether the item is purchasable.
1077
+     *
1078
+     * @since 1.0.19
1079
+     * @return bool
1080
+     */
1081 1081
     public function can_purchase() {
1082 1082
         $can_purchase = null !== $this->get_id();
1083 1083
 
@@ -1089,11 +1089,11 @@  discard block
 block discarded – undo
1089 1089
     }
1090 1090
 
1091 1091
     /**
1092
-	 * Checks whether the item supports dynamic pricing.
1093
-	 *
1094
-	 * @since 1.0.19
1095
-	 * @return bool
1096
-	 */
1092
+     * Checks whether the item supports dynamic pricing.
1093
+     *
1094
+     * @since 1.0.19
1095
+     * @return bool
1096
+     */
1097 1097
     public function supports_dynamic_pricing() {
1098 1098
         return (bool) apply_filters( 'wpinv_item_supports_dynamic_pricing', true, $this );
1099 1099
     }
Please login to merge, or discard this patch.