assignments
6 years ago
earning
6 years ago
enrolled-courses
6 years ago
instructor
6 years ago
quiz-attempts
6 years ago
reviews
6 years ago
settings
6 years ago
withdraw-method-fields
6 years ago
assignments.php
6 years ago
create-course.php
6 years ago
dashboard.php
6 years ago
earning.php
6 years ago
enrolled-courses.php
6 years ago
index.php
6 years ago
logged-in.php
6 years ago
my-courses.php
6 years ago
my-profile.php
6 years ago
my-quiz-attempts.php
6 years ago
purchase_history.php
6 years ago
quiz-attempts.php
6 years ago
registration.php
6 years ago
reviews.php
6 years ago
settings.php
6 years ago
wishlist.php
6 years ago
withdraw.php
6 years ago
earning.php
182 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Template for displaying instructors earnings |
| 4 | * |
| 5 | * @since v.1.1.2 |
| 6 | * |
| 7 | * @author Themeum |
| 8 | * @url https://themeum.com |
| 9 | * |
| 10 | * @package TutorLMS/Templates |
| 11 | * @version 1.4.3 |
| 12 | */ |
| 13 | |
| 14 | global $wpdb; |
| 15 | |
| 16 | $instructor_id = get_current_user_id(); |
| 17 | |
| 18 | $earning_sum = tutor_utils()->get_earning_sum(); |
| 19 | if ( ! $earning_sum){ |
| 20 | echo '<p>'.__('No Earning info available', 'tutor' ).'</p>'; |
| 21 | return; |
| 22 | } |
| 23 | |
| 24 | $user_id = get_current_user_id(); |
| 25 | $complete_status = tutor_utils()->get_earnings_completed_statuses(); |
| 26 | $complete_status = "'".implode("','", $complete_status)."'"; |
| 27 | |
| 28 | /** |
| 29 | * Getting the last week |
| 30 | */ |
| 31 | $start_date = date("Y-m-01"); |
| 32 | $end_date = date("Y-m-t"); |
| 33 | |
| 34 | /** |
| 35 | * Format Date Name |
| 36 | */ |
| 37 | $begin = new DateTime($start_date); |
| 38 | $end = new DateTime($end_date.' + 1 day'); |
| 39 | $interval = DateInterval::createFromDateString('1 day'); |
| 40 | $period = new DatePeriod($begin, $interval, $end); |
| 41 | |
| 42 | $datesPeriod = array(); |
| 43 | foreach ($period as $dt) { |
| 44 | $datesPeriod[$dt->format("Y-m-d")] = 0; |
| 45 | } |
| 46 | |
| 47 | /** |
| 48 | * Query This Month |
| 49 | */ |
| 50 | |
| 51 | $salesQuery = $wpdb->get_results( " |
| 52 | SELECT SUM(instructor_amount) as total_earning, |
| 53 | DATE(created_at) as date_format |
| 54 | from {$wpdb->prefix}tutor_earnings |
| 55 | WHERE user_id = {$user_id} AND order_status IN({$complete_status}) |
| 56 | AND (created_at BETWEEN '{$start_date}' AND '{$end_date}') |
| 57 | GROUP BY date_format |
| 58 | ORDER BY created_at ASC ;"); |
| 59 | |
| 60 | $total_earning = wp_list_pluck($salesQuery, 'total_earning'); |
| 61 | $queried_date = wp_list_pluck($salesQuery, 'date_format'); |
| 62 | $dateWiseSales = array_combine($queried_date, $total_earning); |
| 63 | |
| 64 | $chartData = array_merge($datesPeriod, $dateWiseSales); |
| 65 | foreach ($chartData as $key => $salesCount){ |
| 66 | unset($chartData[$key]); |
| 67 | $formatDate = date('d M', strtotime($key)); |
| 68 | $chartData[$formatDate] = $salesCount; |
| 69 | } |
| 70 | |
| 71 | ?> |
| 72 | |
| 73 | |
| 74 | <h3><?php _e('Earnings', 'tutor') ?></h3> |
| 75 | |
| 76 | <div class="tutor-dashboard-content-inner"> |
| 77 | |
| 78 | <div class="tutor-dashboard-inline-links"> |
| 79 | <ul> |
| 80 | <li class="active"><a href="<?php echo tutor_utils()->get_tutor_dashboard_page_permalink('earning'); ?>"> <?php _e('Earning'); ?></a> |
| 81 | </li> |
| 82 | <li><a href="<?php echo tutor_utils()->get_tutor_dashboard_page_permalink('earning/report'); ?>"> <?php _e('Report'); ?> </a> |
| 83 | </li> |
| 84 | <li><a href="<?php echo tutor_utils()->get_tutor_dashboard_page_permalink('earning/statements'); ?>"> |
| 85 | <?php _e('Statements'); ?> </a> </li> |
| 86 | </ul> |
| 87 | </div> |
| 88 | |
| 89 | <div class="tutor-dashboard-info-cards"> |
| 90 | <div class="tutor-dashboard-info-card"> |
| 91 | <p> |
| 92 | <span> <?php _e('My Balance', 'tutor'); ?> </span> |
| 93 | <span class="tutor-dashboard-info-val"><?php echo tutor_utils()->tutor_price($earning_sum->balance); ?></span> |
| 94 | </p> |
| 95 | </div> |
| 96 | <div class="tutor-dashboard-info-card" title="<?php _e('All Time', 'tutor'); ?>"> |
| 97 | <p> |
| 98 | <span> <?php _e('My Earning', 'tutor'); ?> </span> |
| 99 | <span class="tutor-dashboard-info-val"><?php echo tutor_utils()->tutor_price($earning_sum->instructor_amount); ?></span> |
| 100 | </p> |
| 101 | </div> |
| 102 | <div class="tutor-dashboard-info-card" title="<?php _e('Based on course price', 'tutor'); ?>"> |
| 103 | <p> |
| 104 | <span> <?php _e('All time sales.', 'tutor'); ?> </span> |
| 105 | <span class="tutor-dashboard-info-val"><?php echo tutor_utils()->tutor_price($earning_sum->course_price_total); ?></span> |
| 106 | </p> |
| 107 | </div> |
| 108 | <div class="tutor-dashboard-info-card" title="<?php _e('All of withdraw type excluding rejected.', 'tutor'); ?>"> |
| 109 | <p> |
| 110 | <span> <?php _e('All time withdraws.', 'tutor'); ?> </span> |
| 111 | <span class="tutor-dashboard-info-val"><?php echo tutor_utils()->tutor_price($earning_sum->withdraws_amount); ?></span> |
| 112 | </p> |
| 113 | </div> |
| 114 | <div class="tutor-dashboard-info-card"> |
| 115 | <p> |
| 116 | <span> <?php _e('Deducted Commissions.', 'tutor'); ?> </span> |
| 117 | <span class="tutor-dashboard-info-val"><?php echo tutor_utils()->tutor_price($earning_sum->admin_amount); ?></span> |
| 118 | </p> |
| 119 | </div> |
| 120 | |
| 121 | <?php if ($earning_sum->deduct_fees_amount > 0){ ?> |
| 122 | <div class="tutor-dashboard-info-card"> |
| 123 | <p> |
| 124 | <span> <?php _e('Deducted Fees.', 'tutor'); ?> </span> |
| 125 | <span class="tutor-dashboard-info-val"><?php echo tutor_utils()->tutor_price($earning_sum->deduct_fees_amount); ?></span> |
| 126 | </p> |
| 127 | </div> |
| 128 | <?php } ?> |
| 129 | </div> |
| 130 | |
| 131 | <div class="tutor-dashboard-item-group"> |
| 132 | <h4><?php _e('Earning Chart for this month', 'tutor') ?> (<?php echo date("F") ?>)</h4> |
| 133 | <canvas id="tutorChart" style="width: 100%; height: 400px;"></canvas> |
| 134 | </div> |
| 135 | |
| 136 | </div> |
| 137 | |
| 138 | |
| 139 | <?php |
| 140 | $tutor_primary_color = tutor_utils()->get_option('tutor_primary_color'); |
| 141 | if ( ! $tutor_primary_color){ |
| 142 | $tutor_primary_color = '#3057D5'; |
| 143 | } |
| 144 | ?> |
| 145 | |
| 146 | <script> |
| 147 | var ctx = document.getElementById("tutorChart").getContext('2d'); |
| 148 | var tutorChart = new Chart(ctx, { |
| 149 | type: 'line', |
| 150 | data: { |
| 151 | labels: <?php echo json_encode(array_keys($chartData)); ?>, |
| 152 | datasets: [{ |
| 153 | label: 'Earning', |
| 154 | backgroundColor: '<?php echo $tutor_primary_color; ?>', |
| 155 | borderColor: '<?php echo $tutor_primary_color; ?>', |
| 156 | data: <?php echo json_encode(array_values($chartData)); ?>, |
| 157 | borderWidth: 2, |
| 158 | fill: false, |
| 159 | lineTension: 0, |
| 160 | }] |
| 161 | }, |
| 162 | options: { |
| 163 | scales: { |
| 164 | yAxes: [{ |
| 165 | ticks: { |
| 166 | min: 0, // it is for ignoring negative step. |
| 167 | beginAtZero: true, |
| 168 | callback: function(value, index, values) { |
| 169 | if (Math.floor(value) === value) { |
| 170 | return value; |
| 171 | } |
| 172 | } |
| 173 | } |
| 174 | }] |
| 175 | }, |
| 176 | |
| 177 | legend: { |
| 178 | display: false |
| 179 | } |
| 180 | } |
| 181 | }); |
| 182 | </script> |