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