PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.15
Tutor LMS – eLearning and online course solution v3.9.15
4.0.1 4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / views / pages / ecommerce / coupon-list.php
tutor / views / pages / ecommerce Last commit date
coupon-list.php 2 months ago order-list.php 6 months ago
coupon-list.php
263 lines
1 <?php
2 /**
3 * Course List Template.
4 *
5 * @package Tutor\Views
6 * @author Themeum <support@themeum.com>
7 * @link https://themeum.com
8 * @since 2.0.0
9 */
10
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit;
13 }
14
15 use Tutor\Ecommerce\CouponController;
16 use Tutor\Ecommerce\OptionKeys;
17 use Tutor\Ecommerce\Settings;
18 use TUTOR\Input;
19 use Tutor\Models\CouponModel;
20
21 /**
22 * Determine active tab
23 */
24 $active_tab = Input::get( 'data', 'all' );
25
26 /**
27 * Pagination data
28 */
29 $paged_filter = Input::get( 'paged', 1, Input::TYPE_INT );
30 $limit = (int) tutor_utils()->get_option( 'pagination_per_page', 10 );
31 $offset = ( $limit * $paged_filter ) - $limit;
32
33 $coupon_controller = new CouponController( false );
34
35 $get_coupons = $coupon_controller->get_coupons( $limit, $offset );
36 $coupons = $get_coupons['results'];
37 $total_items = $get_coupons['total_count'];
38 /**
39 * Navbar data to make nav menu
40 */
41 $page_slug = $coupon_controller::PAGE_SLUG;
42 $coupon_page_url = $coupon_controller::get_coupon_page_url();
43
44 $navbar_data = array(
45 'page_title' => $coupon_controller->page_title,
46 'tabs' => $coupon_controller->tabs_key_value(),
47 'active' => $active_tab,
48 'add_button' => true,
49 'button_title' => __( 'Add New', 'tutor' ),
50 'button_url' => $coupon_controller::get_coupon_page_url() . '&action=add_new',
51 );
52
53 $applies_to_options = array(
54 array(
55 'key' => '',
56 'title' => __( 'Select', 'tutor' ),
57 ),
58 );
59
60 $applies_to = array_map(
61 function ( $val, $key ) {
62 return array(
63 'key' => $key,
64 'title' => $val,
65 );
66 },
67 CouponModel::get_coupon_applies_to(),
68 array_keys( CouponModel::get_coupon_applies_to() )
69 );
70
71 $applies_to_options = array_merge( $applies_to_options, $applies_to );
72
73 /**
74 * Bulk action & filters
75 */
76 $filters = array(
77 'bulk_action' => $coupon_controller->bulk_action,
78 'bulk_actions' => $coupon_controller->prepare_bulk_actions(),
79 'ajax_action' => 'tutor_coupon_bulk_action',
80 'filters' => array(
81 array(
82 'label' => __( 'Status', 'tutor' ),
83 'field_type' => 'select',
84 'field_name' => 'data',
85 'options' => $coupon_controller->tabs_key_value(),
86 'searchable' => false,
87 'value' => Input::get( 'data', '' ),
88 ),
89 array(
90 'label' => __( 'Applies To', 'tutor' ),
91 'field_type' => 'select',
92 'field_name' => 'applies_to',
93 'options' => $applies_to_options,
94 'show_label' => true,
95 'value' => Input::get( 'applies_to', '' ),
96 ),
97 ),
98 );
99
100 ?>
101
102 <div class="tutor-admin-wrap">
103 <?php
104 /**
105 * Load Templates with data.
106 */
107 $navbar_template = tutor()->path . 'views/elements/list-navbar.php';
108 $filters_template = tutor()->path . 'views/elements/list-filters.php';
109 tutor_load_template_from_custom_path( $navbar_template, $navbar_data );
110 tutor_load_template_from_custom_path( $filters_template, $filters );
111 $currency_symbol = Settings::get_currency_symbol_by_code( tutor_utils()->get_option( OptionKeys::CURRENCY_CODE, 'USD' ) );
112 ?>
113 <div class="tutor-admin-container tutor-admin-container-lg">
114 <div class="tutor-mt-24 tutor-dashboard-list-table">
115 <div class="tutor-table-responsive">
116 <?php if ( is_array( $coupons ) && count( $coupons ) ) : ?>
117 <table class="tutor-table tutor-table-middle">
118 <thead class="tutor-text-sm tutor-text-400">
119 <tr>
120 <th>
121 <div class="tutor-d-flex">
122 <input type="checkbox" id="tutor-bulk-checkbox-all" class="tutor-form-check-input" />
123 </div>
124 </th>
125 <th class="tutor-table-rows-sorting">
126 <?php esc_html_e( 'Name', 'tutor' ); ?>
127 </th>
128 <th>
129 <?php esc_html_e( 'Applies to', 'tutor' ); ?>
130 </th>
131 <th>
132 <?php esc_html_e( 'Discount', 'tutor' ); ?>
133 </th>
134 <th>
135 <?php esc_html_e( 'Type', 'tutor' ); ?>
136 </th>
137 <th>
138 <?php esc_html_e( 'Code', 'tutor' ); ?>
139 </th>
140 <th>
141 <?php esc_html_e( 'Status', 'tutor' ); ?>
142 </th>
143 <th colspan="2">
144 <?php esc_html_e( 'Usage', 'tutor' ); ?>
145 </th>
146 </tr>
147 </thead>
148
149 <tbody>
150
151 <?php
152 foreach ( $coupons as $key => $coupon ) :
153 ?>
154 <tr>
155 <td>
156 <div class="td-checkbox tutor-d-flex ">
157 <input type="checkbox" class="tutor-form-check-input tutor-bulk-checkbox" name="tutor-bulk-checkbox-all" value="<?php echo esc_attr( $coupon->id ); ?>" />
158 </div>
159 </td>
160
161 <td>
162 <a href="<?php echo esc_url( $coupon_page_url . '&action=edit&coupon_id=' . $coupon->id ); ?>" class="tutor-table-link tutor-fs-7">
163 <?php echo esc_html( $coupon->coupon_title ); ?>
164 </a>
165 </td>
166
167 <td>
168 <div class="tutor-fs-7">
169 <?php echo esc_html( CouponModel::get_coupon_applies_to_label( $coupon->applies_to ) ); ?>
170 </div>
171 </td>
172
173 <td>
174 <div class="tutor-fs-7">
175 <?php echo wp_kses_post( ( 'flat' === $coupon->discount_type ? tutor_utils()->tutor_price( $coupon->discount_amount ) : $coupon->discount_amount . '%' ) ); ?>
176 </div>
177 </td>
178 <td>
179 <div class="tutor-fs-7">
180 <?php echo esc_html( 'flat' === $coupon->discount_type ? __( 'Amount', 'tutor' ) : __( 'Percent', 'tutor' ) ); ?>
181 </div>
182 </td>
183
184 <td>
185 <div class="tutor-fs-7">
186 <?php echo esc_html( 'automatic' === $coupon->coupon_type ? __( 'Automatic', 'tutor' ) : $coupon->coupon_code ); ?>
187 </div>
188 </td>
189
190 <td>
191 <?php
192 $coupon_status = $coupon->coupon_status;
193 if ( CouponModel::STATUS_ACTIVE === $coupon_status ) {
194 $coupon_status = $coupon_controller->model->has_coupon_validity( $coupon ) ? $coupon->coupon_status : 'expired';
195 }
196 echo wp_kses_post( tutor_utils()->translate_dynamic_text( $coupon_status, true ) );
197 ?>
198 </td>
199
200 <td>
201 <?php echo esc_html( $coupon->usage_count ); ?>
202 </td>
203 <td>
204 <div class="tutor-d-flex tutor-align-center tutor-justify-end tutor-gap-2">
205 <a href="<?php echo esc_url( $coupon_page_url . '&action=edit&coupon_id=' . $coupon->id ); ?>" class="tutor-btn tutor-btn-outline-primary tutor-btn-sm">
206 <?php esc_html_e( 'Edit', 'tutor' ); ?>
207 </a>
208 <?php if ( 'trash' === $active_tab ) : ?>
209 <div class="tutor-dropdown-parent">
210 <button type="button" class="tutor-iconic-btn" action-tutor-dropdown="toggle">
211 <span class="tutor-icon-kebab-menu" aria-hidden="true"></span>
212 </button>
213 <div id="table-dashboard-coupon-list-<?php echo esc_attr( $coupon->id ); ?>" class="tutor-dropdown tutor-dropdown-dark tutor-text-left">
214 <a href="javascript:void(0)" class="tutor-dropdown-item tutor-delete-permanently"
215 data-tutor-modal-target="tutor-common-confirmation-modal" data-action="tutor_coupon_permanent_delete" data-id="<?php echo esc_attr( $coupon->id ); ?>">
216 <i class="tutor-icon-trash-can-bold tutor-mr-8" aria-hidden="true"></i>
217 <span>
218 <?php esc_html_e( 'Delete Permanently', 'tutor' ); ?>
219 </span>
220 </a>
221 </div>
222 </div>
223 <?php endif ?>
224 </div>
225 </td>
226 </tr>
227 <?php endforeach; ?>
228 </tbody>
229 </table>
230 <?php else : ?>
231 <?php tutils()->render_list_empty_state(); ?>
232 <?php endif; ?>
233
234 <div class="tutor-admin-page-pagination-wrapper tutor-mt-32">
235 <?php
236 /**
237 * Prepare pagination data & load template
238 */
239 if ( $total_items > $limit ) {
240 $pagination_data = array(
241 'total_items' => $total_items,
242 'per_page' => $limit,
243 'paged' => $paged_filter,
244 );
245 $pagination_template = tutor()->path . 'views/elements/pagination.php';
246 tutor_load_template_from_custom_path( $pagination_template, $pagination_data );
247 }
248 ?>
249 </div>
250 </div>
251 <!-- end table responsive -->
252 </div>
253 </div>
254 </div>
255
256 <?php
257 tutor_load_template_from_custom_path(
258 tutor()->path . 'views/elements/common-confirm-popup.php',
259 array(
260 'message' => __( 'Deletion of the course will erase all its topics, lessons, quizzes, events, and other information. Please confirm your choice.', 'tutor' ),
261 )
262 );
263