Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/tutor/templates/dashboard/withdraw.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
1 -
1 + <?php
2 + /**
3 + * Withdraw Page
4 + *
5 + * @package Tutor\Templates
6 + * @subpackage Dashboard
7 + * @author Themeum <support@themeum.com>
8 + * @link https://themeum.com
9 + * @version 1.4.3
10 + */
11 +
12 + use TUTOR\Input;
13 + use Tutor\Models\WithdrawModel;
14 +
15 + //phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
16 + $per_page = tutor_utils()->get_option( 'pagination_per_page', 20 );
17 + $current_page = max( 1, Input::get( 'current_page', 1, Input::TYPE_INT ) );
18 + $offset = ( $current_page - 1 ) * $per_page;
19 +
20 + $min_withdraw = tutor_utils()->get_option( 'min_withdraw_amount' );
21 + $formatted_min_withdraw_amount = tutor_utils()->tutor_price( $min_withdraw );
22 +
23 + $saved_account = WithdrawModel::get_user_withdraw_method();
24 + $withdraw_method_name = tutor_utils()->avalue_dot( 'withdraw_method_name', $saved_account );
25 +
26 + $user_id = get_current_user_id();
27 + $withdraw_status = array( WithdrawModel::STATUS_PENDING, WithdrawModel::STATUS_APPROVED, WithdrawModel::STATUS_REJECTED );
28 + $all_histories = WithdrawModel::get_withdrawals_history( $user_id, array( 'status' => $withdraw_status ), $offset, $per_page );
29 + $image_base = tutor()->url . '/assets/images/';
30 +
31 + $method_icons = array(
32 + 'bank_transfer_withdraw' => $image_base . 'icon-bank.svg',
33 + 'echeck_withdraw' => $image_base . 'icon-echeck.svg',
34 + 'paypal_withdraw' => $image_base . 'icon-paypal.svg',
35 + );
36 +
37 + $status_message = array(
38 + 'rejected' => __( 'Please contact the site administrator for more information.', 'tutor' ),
39 + 'pending' => __( 'Withdrawal request is pending for approval, please hold tight.', 'tutor' ),
40 + );
41 +
42 + $currency_symbol = '';
43 + if ( function_exists( 'get_woocommerce_currency_symbol' ) ) {
44 + $currency_symbol = get_woocommerce_currency_symbol();
45 + } elseif ( function_exists( 'edd_currency_symbol' ) ) {
46 + $currency_symbol = edd_currency_symbol();
47 + }
48 +
49 + $summary_data = WithdrawModel::get_withdraw_summary( $user_id );
50 + $available_for_withdraw = $summary_data->available_for_withdraw - $summary_data->total_pending;
51 + $is_balance_sufficient = $available_for_withdraw >= $min_withdraw;
52 + $available_for_withdraw_formatted = tutor_utils()->tutor_price( $available_for_withdraw );
53 + $current_balance_formated = tutor_utils()->tutor_price( $summary_data->current_balance );
54 + ?>
55 +
56 + <div class="tutor-dashboard-content-inner tutor-frontend-dashboard-withdrawal tutor-color-black">
57 + <div class="tutor-fs-5 tutor-fw-medium tutor-color-black tutor-mb-24"><?php esc_html_e( 'Withdrawals', 'tutor' ); ?></div>
58 +
59 + <div class="tutor-card tutor-p-24">
60 + <div class="tutor-row tutor-align-lg-center">
61 + <div class="tutor-col-lg-auto tutor-mb-16 tutor-mb-lg-0">
62 + <div class="tutor-round-box tutor-p-8">
63 + <i class="tutor-icon-wallet" area-hidden="true"></i>
64 + </div>
65 + </div>
66 +
67 + <?php //phpcs:disable WordPress.WP.I18n.MissingTranslatorsComment ?>
68 + <div class="tutor-col tutor-mb-16 tutor-mb-lg-0">
69 + <div class="tutor-fs-6 tutor-color-muted tutor-mb-4">
70 + <?php
71 + /* translators: %s: current balance */
72 + echo wp_kses_post( sprintf( esc_html__( 'Current Balance is %s', 'tutor' ), $current_balance_formated ) );
73 + ?>
74 + </div>
75 + <div class="tutor-fs-5 tutor-color-black">
76 + <?php
77 + if ( $is_balance_sufficient ) {
78 + /* translators: %s: available balance */
79 + echo wp_kses_post( sprintf( __( 'You have %s ready to withdraw now', 'tutor' ), "<strong class='available_balance'>" . $available_for_withdraw_formatted . '</strong>' ) );
80 + } else {
81 + /* translators: %s: available balance */
82 + echo wp_kses_post( sprintf( __( 'You have %s and this is insufficient balance to withdraw', 'tutor' ), "<strong class='available_balance'>" . $available_for_withdraw_formatted . '</strong>' ) );
83 + }
84 + ?>
85 + </div>
86 + <?php if ( $summary_data->total_pending > 0 ) : ?>
87 + <div class="tutor-badge-label label-warning tutor-mt-4" style="display: inline-flex; gap: 3px">
88 + <?php
89 + /* translators: %s: total pending withdrawal */
90 + echo wp_kses_post( sprintf( esc_html__( 'Total Pending Withdrawal %s', 'tutor' ), tutor_utils()->tutor_price( $summary_data->total_pending ) ) );
91 + ?>
92 + </div>
93 + <?php endif; ?>
94 + </div>
95 +
96 + <?php
97 + if ( $is_balance_sufficient && $withdraw_method_name ) {
98 + ?>
99 + <div class="tutor-col-lg-auto">
100 + <button class="tutor-btn tutor-btn-primary" data-tutor-modal-target="tutor-earning-withdraw-modal">
101 + <?php esc_html_e( 'Withdrawal Request', 'tutor' ); ?>
102 + </button>
103 + </div>
104 + <?php
105 + }
106 + ?>
107 + </div>
108 + </div>
109 +
110 + <div class="current-withdraw-account-wrap tutor-d-flex tutor-mt-20">
111 + <span class="tutor-svg tutor-fs-4 tutor-mr-8">
112 + <?php echo tutor_utils()->get_svg_icon( 'infoCircle' );//phpcs:ignore ?>
113 + </span>
114 + <span class="tutor-fs-7 tutor-mt-4">
115 + <?php
116 + $my_profile_url = tutor_utils()->get_tutor_dashboard_page_permalink( 'settings/withdraw-settings' );
117 + /* translators: %s: Withdraw Method Name */
118 + echo esc_html( $withdraw_method_name ? sprintf( __( 'The preferred payment method is selected as %s. ', 'tutor' ), $withdraw_method_name ) : '' );
119 + echo wp_kses(
120 + /* translators: %1$s: a tag start, %2$s: a tag end */
121 + sprintf( __( 'You can change your %1$s Withdraw Preference %2$s', 'tutor' ), "<a href='{$my_profile_url}'>", '</a>' ),
122 + array(
123 + 'a' => array( 'href' => true ),
124 + )
125 + );
126 + ?>
127 + </span>
128 + </div>
129 +
130 + <?php
131 + if ( $is_balance_sufficient && $withdraw_method_name ) {
132 + ?>
133 + <div id="tutor-earning-withdraw-modal" class="tutor-modal">
134 + <div class="tutor-modal-overlay"></div>
135 + <div class="tutor-modal-window">
136 + <div class="tutor-modal-content tutor-modal-content-white">
137 + <button class="tutor-iconic-btn tutor-modal-close-o" data-tutor-modal-close>
138 + <span class="tutor-icon-times" area-hidden="true"></span>
139 + </button>
140 +
141 + <div class="tutor-modal-body">
142 + <div class="tutor-py-20 tutor-px-24">
143 + <div class="tutor-round-box tutor-round-box-lg tutor-mb-16">
144 + <span class="tutor-icon-wallet" area-hidden="true"></span>
145 + </div>
146 +
147 + <div class="tutor-fs-4 tutor-fw-medium tutor-color-black tutor-mb-24"><?php esc_html_e( 'Withdrawal Request', 'tutor' ); ?></div>
148 + <div class="tutor-fs-6 tutor-color-muted"><?php esc_html_e( 'Please check your transaction notification on your connected withdrawal method', 'tutor' ); ?></div>
149 +
150 + <div class="tutor-row tutor-mt-32">
151 + <div class="tutor-col">
152 + <div class="tutor-fs-6 tutor-color-secondary tutor-mb-4"><?php esc_html_e( 'Withdrawable Balance', 'tutor' ); ?></div>
153 + <div class="tutor-fs-6 tutor-fw-bold tutor-color-black"><?php echo wp_kses_post( $available_for_withdraw_formatted ); ?></div>
154 + </div>
155 +
156 + <div class="tutor-col">
157 + <div class="tutor-fs-6 tutor-color-secondary tutor-mb-4"><?php esc_html_e( 'Selected Payment Method', 'tutor' ); ?></div>
158 + <div class="tutor-fs-6 tutor-fw-bold tutor-color-black"><?php echo esc_html( $withdraw_method_name ); ?></div>
159 + </div>
160 + </div>
161 + </div>
162 +
163 + <div class="tutor-mx-n32 tutor-my-32"><div class="tutor-hr" area-hidden="true"></div></div>
164 +
165 + <form id="tutor-earning-withdraw-form" method="post">
166 + <div class="tutor-py-20 tutor-px-24">
167 + <div>
168 + <?php wp_nonce_field( tutor()->nonce_action, tutor()->nonce ); ?>
169 + <input type="hidden" value="tutor_make_an_withdraw" name="action" />
170 + <?php do_action( 'tutor_withdraw_form_before' ); ?>
171 +
172 + <label class="tutor-form-label" for="tutor_withdraw_amount"><?php esc_html_e( 'Amount', 'tutor' ); ?></label>
173 + <div class="tutor-form-wrap tutor-mb-16">
174 + <span class="tutor-form-icon"><?php echo esc_attr( $currency_symbol ); ?></span>
175 + <input type="number" class="tutor-form-control" min="<?php echo esc_attr( $min_withdraw ); ?>" name="tutor_withdraw_amount" id="tutor_withdraw_amount" step=".01" required />
176 + </div>
177 +
178 + <div class="tutor-form-help tutor-d-flex tutor-align-center">
179 + <span class="tutor-icon-circle-question-mark tutor-mr-8" area-hidden="true"></span>
180 + <span><?php echo wp_kses( __( 'Minimum withdraw amount is', 'tutor' ) . ' ' . $formatted_min_withdraw_amount, array() ); ?></span>
181 + </div>
182 +
183 + <div class="tutor-withdraw-form-response"></div>
184 +
185 + <?php do_action( 'tutor_withdraw_form_after' ); ?>
186 + </div>
187 +
188 + <div class="tutor-d-flex tutor-mt-48">
189 + <div>
190 + <button class="tutor-btn tutor-btn-outline-primary" data-tutor-modal-close>
191 + <?php esc_html_e( 'Cancel', 'tutor' ); ?>
192 + </button>
193 + </div>
194 +
195 + <div class="tutor-ml-auto">
196 + <button type="submit" name="withdraw-form-submit" id="tutor-earning-withdraw-btn" class="tutor-btn tutor-btn-primary tutor-modal-btn-edit tutor-ml-16">
197 + <?php esc_html_e( 'Submit Request', 'tutor' ); ?>
198 + </button>
199 + </div>
200 + </div>
201 + </form>
202 + </div>
203 + </div>
204 + </div>
205 + </div>
206 + </div>
207 + <?php
208 + }
209 +
210 + if ( is_array( $all_histories->results ) && count( $all_histories->results ) ) {
211 + ?>
212 + <div class="withdraw-history-table-wrap tutor-tooltip-inside tutor-mt-40">
213 + <div class="withdraw-history-table-title">
214 + <div class="tutor-fs-5 tutor-fw-medium tutor-color-black tutor-mb-24">
215 + <?php esc_html_e( 'Withdrawal History', 'tutor' ); ?>
216 + </div>
217 + </div>
218 +
219 + <div class="tutor-table-responsive">
220 + <table class="tutor-table tutor-table-middle">
221 + <thead>
222 + <tr>
223 + <th width="40%">
224 + <?php esc_html_e( 'Withdrawal Method', 'tutor' ); ?>
225 + </th>
226 + <th width="28%">
227 + <?php esc_html_e( 'Requested On', 'tutor' ); ?>
228 + </th>
229 + <th width="13%">
230 + <?php esc_html_e( 'Amount', 'tutor' ); ?>
231 + </th>
232 + <th width="13%">
233 + <?php esc_html_e( 'Status', 'tutor' ); ?>
234 + </th>
235 + <th></th>
236 + </tr>
237 + </thead>
238 +
239 + <tbody>
240 + <?php foreach ( $all_histories->results as $withdraw_history ) : ?>
241 + <tr>
242 + <td>
243 + <?php
244 + $method_data = maybe_unserialize( $withdraw_history->method_data );
245 + $method_key = $method_data['withdraw_method_key'];
246 + $method_title = '';
247 +
248 + switch ( $method_key ) {
249 + case 'bank_transfer_withdraw':
250 + $method_title = $method_data['account_number']['value'];
251 + $method_title = substr_replace( $method_title, '****', 2, strlen( $method_title ) - 4 );
252 + break;
253 + case 'paypal_withdraw':
254 + $method_title = $method_data['paypal_email']['value'];
255 + $email_base = substr( $method_title, 0, strpos( $method_title, '@' ) );
256 + $method_title = substr_replace( $email_base, '****', 2, strlen( $email_base ) - 3 ) . substr( $method_title, strpos( $method_title, '@' ) );
257 + break;
258 + }
259 + ?>
260 + <div class="tutor-withdrawals-method">
261 + <div class="tutor-withdrawals-method-icon">
262 + <img src="<?php echo esc_url( isset( $method_icons[ $method_key ] ) ? $method_icons[ $method_key ] : '' ); ?>" />
263 + </div>
264 + <div class="tutor-withdrawals-method-name">
265 + <div class="withdraw-method-name tutor-fs-6 tutor-fw-medium tutor-color-black">
266 + <?php echo esc_html( tutor_utils()->avalue_dot( 'withdraw_method_name', $method_data ) ); ?>
267 + </div>
268 + <div class="tutor-fs-7 tutor-color-muted">
269 + <?php echo esc_html( $method_title ); ?>
270 + </div>
271 + </div>
272 + </div>
273 + </td>
274 + <td>
275 + <?php echo esc_attr( date_i18n( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $withdraw_history->created_at ) ) ); ?>
276 + </td>
277 + <td>
278 + <?php echo wp_kses_post( tutor_utils()->tutor_price( $withdraw_history->amount ) ); ?>
279 + </td>
280 + <td>
281 + <span class="inline-image-text is-inline-block">
282 + <span class="tutor-badge-label
283 + <?php
284 + if ( 'approved' === $withdraw_history->status ) {
285 + echo 'label-success';
286 + }
287 + ?>
288 + <?php
289 + if ( 'pending' === $withdraw_history->status ) {
290 + echo 'label-warning';
291 + }
292 + ?>
293 + <?php
294 + if ( 'rejected' === $withdraw_history->status ) {
295 + echo 'label-danger';
296 + }
297 + ?>
298 + ">
299 + <?php esc_html_e( ucfirst( $withdraw_history->status ), 'tutor' ); //phpcs:ignore ?>
300 + </span>
301 + </span>
302 + </td>
303 + <td>
304 + <?php if ( 'approved' !== $withdraw_history->status && isset( $status_message[ $withdraw_history->status ] ) ) : ?>
305 + <span class="tool-tip-container">
306 + <div class="tooltip-wrap tooltip-icon">
307 + <span class="tooltip-txt tooltip-left">
308 + <?php echo esc_html( $status_message[ $withdraw_history->status ] ); ?>
309 + </span>
310 + </div>
311 + </span>
312 + <?php endif; ?>
313 + </td>
314 + </tr>
315 + <?php endforeach; ?>
316 + </tbody>
317 + </table>
318 + </div>
319 + </div>
320 + <?php
321 + } else {
322 + tutor_utils()->tutor_empty_state( tutor_utils()->not_found_text() );
323 + }
324 + ?>
325 + </div>
326 +
327 + <?php
328 + if ( $all_histories->count >= $per_page ) {
329 + $pagination_data = array(
330 + 'total_items' => $all_histories->count,
331 + 'per_page' => $per_page,
332 + 'paged' => $current_page,
333 + );
334 +
335 + tutor_load_template_from_custom_path(
336 + tutor()->path . 'templates/dashboard/elements/pagination.php',
337 + $pagination_data
338 + );
339 + }
340 + //phpcs:enable WordPress.WP.I18n.MissingTranslatorsComment
341 + ?>
342 +