Version Description
17 May, 2019 =
Added: Flash Msg ability to show flash msg in a different view or different action
Added: Styling, change default color scheme
Added: return at tutor_course_loop_thumbnail() based on $echo condition
Added: Purchase history from the dashboard
Added: Become Instructor Button on student dashboard based on settings
Added: Enable Disable Course Market place, default Tutor LMS will be single instructor format.
Fixed: a template div closing/return issue in dashboard > reviews menu
Fixed: Tutor course content export-import in WordPress way
Fixed: Some responsive issue in course details and lesson page
Reduced: Instructor and Student Registration form field. removed phone number and profile bio filed from the registration page.
Moved: tutor icon CSS file from tutor-front.css file to individually
Release Info
Developer | themeum |
Plugin | Tutor LMS – eLearning and online course solution |
Version | 1.3.0 |
Comparing to | |
See all releases |
Code changes from version 1.2.20 to 1.3.0
- assets/css/tutor-front.css +159 -61
- assets/js/tutor-admin.js +8 -0
- classes/Assets.php +38 -2
- classes/Course.php +6 -2
- classes/Instructor.php +0 -7
- classes/Options.php +46 -0
- classes/Post_types.php +15 -1
- classes/Student.php +2 -7
- classes/Tools.php +2 -0
- classes/Utils.php +87 -6
- includes/theme-compatibility/storefront/assets/css/style.css +1 -0
- includes/tutor-template-functions.php +62 -5
- readme.txt +15 -1
- templates/dashboard.php +14 -13
- templates/dashboard/instructor/registration.php +8 -28
- templates/dashboard/purchase_history.php +45 -0
- templates/dashboard/registration.php +7 -27
- templates/dashboard/reviews.php +1 -1
- templates/dashboard/settings/profile.php +4 -9
- templates/dashboard/settings/reset-password.php +46 -35
- templates/single-course-enrolled.php +1 -1
- templates/single-course.php +1 -1
- tutor.php +2 -2
- views/metabox/course-additional-data.php +3 -1
- views/options/field-types/color.php +7 -0
@@ -1,5 +1,3 @@
|
|
1 |
-
@import "../icons/css/tutor-icon.css";
|
2 |
-
|
3 |
:root{
|
4 |
--tutor-primary-color: #1B52D8;
|
5 |
--tutor-primary-hover-color: #1b52a9;
|
@@ -108,6 +106,12 @@ Most Important CSS
|
|
108 |
flex: 0 0 50%;
|
109 |
max-width: 50%;
|
110 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
}
|
112 |
@media (max-width: 767px) {
|
113 |
.tutor-col-auto, .tutor-col, .tutor-col-3, .tutor-col-4, .tutor-col-6, .tutor-col-8, .tutor-col-9{
|
@@ -737,12 +741,10 @@ div[class*="tutor-course-col"] {
|
|
737 |
margin-right: 5px;
|
738 |
}
|
739 |
|
740 |
-
|
741 |
.tutor-loop-course-footer .tutor-loop-cart-btn-wrap a.added_to_cart:before{
|
742 |
display: none;
|
743 |
}
|
744 |
|
745 |
-
|
746 |
/* Standard syntax */
|
747 |
@-webkit-keyframes mymove {
|
748 |
from {
|
@@ -812,6 +814,7 @@ div[class*="tutor-course-col"] {
|
|
812 |
}
|
813 |
|
814 |
.tutor-course-loop-title h2{
|
|
|
815 |
font-size: 16px;
|
816 |
font-size: 16px;
|
817 |
font-size: 1rem;
|
@@ -950,11 +953,11 @@ Alert Box Css
|
|
950 |
border-radius: 3px 3px 3px 3px;
|
951 |
}
|
952 |
.tutor-info-msg {
|
953 |
-
color:
|
954 |
background-color: #BEF;
|
955 |
}
|
956 |
.tutor-success-msg {
|
957 |
-
color:
|
958 |
background-color: #DFF2BF;
|
959 |
}
|
960 |
.tutor-warning-msg {
|
@@ -1109,6 +1112,7 @@ a.tutor-btn.bordered-btn:hover,
|
|
1109 |
border-collapse: collapse;
|
1110 |
border: 1px solid #DCDFE5;
|
1111 |
border-radius: 4px;
|
|
|
1112 |
}
|
1113 |
.tutor-dashboard-info-table thead{
|
1114 |
background: #FAFBFC;
|
@@ -1173,7 +1177,7 @@ a.tutor-btn.bordered-btn:hover,
|
|
1173 |
}
|
1174 |
.tutor-dashboard-review-title a{
|
1175 |
font-weight: 500;
|
1176 |
-
color:
|
1177 |
}
|
1178 |
|
1179 |
.tutor-dashboard-review-links{
|
@@ -1230,6 +1234,7 @@ a.tutor-btn.bordered-btn:hover,
|
|
1230 |
display: block;
|
1231 |
font-weight: 700;
|
1232 |
font-size: 30px;
|
|
|
1233 |
}
|
1234 |
.tutor-dashboard-info-cards .tutor-dashboard-info-card p span span{
|
1235 |
display: inline-block;
|
@@ -1248,7 +1253,7 @@ a.tutor-btn.bordered-btn:hover,
|
|
1248 |
padding: 15px 13px !important;
|
1249 |
}
|
1250 |
.tutor-dashboard-content .tutor-quiz-attempt-history tr.pass{
|
1251 |
-
border-left: 3px solid
|
1252 |
}
|
1253 |
.tutor-dashboard-content .tutor-quiz-attempt-history tr.fail{
|
1254 |
border-left: 3px solid #D71830;
|
@@ -1263,7 +1268,7 @@ a.tutor-btn.bordered-btn:hover,
|
|
1263 |
}
|
1264 |
|
1265 |
.tutor-dashboard-content .tutor-quiz-attempt-history table a{
|
1266 |
-
color:
|
1267 |
font-weight: 700;
|
1268 |
font-size: 14px;
|
1269 |
line-height: 24px;
|
@@ -1283,7 +1288,7 @@ a.tutor-btn.bordered-btn:hover,
|
|
1283 |
|
1284 |
.tutor-dashboard-item-group > h4{
|
1285 |
font-size: 20px;
|
1286 |
-
color:
|
1287 |
font-weight: 500;
|
1288 |
}
|
1289 |
|
@@ -1292,6 +1297,8 @@ a.tutor-btn.bordered-btn:hover,
|
|
1292 |
/* dashboard profile*/
|
1293 |
|
1294 |
.tutor-dashboard-profile .tutor-dashboard-profile-item{
|
|
|
|
|
1295 |
display: flex;
|
1296 |
}
|
1297 |
.tutor-dashboard-profile .tutor-dashboard-profile-item .heading{
|
@@ -1299,6 +1306,8 @@ a.tutor-btn.bordered-btn:hover,
|
|
1299 |
}
|
1300 |
|
1301 |
.tutor-dashboard-profile .tutor-dashboard-profile-item .content{
|
|
|
|
|
1302 |
flex-grow: 1;
|
1303 |
}
|
1304 |
|
@@ -1359,13 +1368,13 @@ a.tutor-btn.bordered-btn:hover,
|
|
1359 |
.tutor-dashboard-inline-links ul li a{
|
1360 |
display: block;
|
1361 |
padding: 5px 10px;
|
1362 |
-
color:
|
1363 |
margin-bottom: -1px;
|
1364 |
line-height: 40px;
|
1365 |
}
|
1366 |
.tutor-dashboard-inline-links ul li a:hover, .tutor-dashboard-inline-links ul li.active a {
|
1367 |
-
color:
|
1368 |
-
border-bottom: 1px solid
|
1369 |
padding-bottom: 4px;
|
1370 |
}
|
1371 |
.tutor-dashboard-student-meta ul li:first-child{
|
@@ -1408,7 +1417,7 @@ a.tutor-btn.bordered-btn:hover,
|
|
1408 |
background-color: #EDF0F9;
|
1409 |
}
|
1410 |
.tutor-dashboard-permalinks li.active a{
|
1411 |
-
background-color:
|
1412 |
color: #ffffff;
|
1413 |
}
|
1414 |
|
@@ -1437,7 +1446,7 @@ a.tutor-btn.bordered-btn:hover,
|
|
1437 |
line-height: 28px;
|
1438 |
}
|
1439 |
|
1440 |
-
.tutor-dashboard-permalinks a
|
1441 |
content: "\e968";
|
1442 |
font-family: 'tutor' !important;
|
1443 |
speak: none;
|
@@ -1452,55 +1461,61 @@ a.tutor-btn.bordered-btn:hover,
|
|
1452 |
vertical-align: middle;
|
1453 |
color: var(--tutor-primary-color);
|
1454 |
opacity: .6;
|
|
|
1455 |
font-size: 17px;
|
1456 |
}
|
1457 |
-
.tutor-dashboard-permalinks a:hover
|
1458 |
opacity: 1;
|
|
|
1459 |
}
|
1460 |
|
1461 |
-
.tutor-dashboard-permalinks li.active a
|
1462 |
opacity: 1;
|
|
|
1463 |
color: #fff;
|
1464 |
}
|
1465 |
|
1466 |
-
.tutor-dashboard-menu-my-profile a
|
1467 |
content: "\e963";
|
1468 |
}
|
1469 |
|
1470 |
-
.tutor-dashboard-menu-enrolled-courses a
|
1471 |
content: "\e969";
|
1472 |
}
|
1473 |
|
1474 |
-
.tutor-dashboard-menu-my-courses a
|
1475 |
content: "\e965";
|
1476 |
}
|
1477 |
|
1478 |
-
.tutor-dashboard-menu-wishlist a
|
1479 |
content: "\e908";
|
1480 |
}
|
1481 |
|
1482 |
-
.tutor-dashboard-menu-reviews a
|
1483 |
content: "\e917";
|
1484 |
}
|
1485 |
|
1486 |
-
.tutor-dashboard-menu-quiz-attempts a
|
1487 |
content: "\e948";
|
1488 |
}
|
1489 |
|
1490 |
-
.tutor-dashboard-menu-earning a
|
1491 |
content: "\e96b";
|
1492 |
}
|
1493 |
|
1494 |
-
.tutor-dashboard-menu-withdraw a
|
1495 |
content: "\e960";
|
1496 |
}
|
1497 |
-
.tutor-dashboard-menu-settings a
|
1498 |
content: "\e961";
|
1499 |
}
|
1500 |
-
.tutor-dashboard-menu-logout a
|
1501 |
content: "\e962";
|
1502 |
}
|
1503 |
|
|
|
|
|
|
|
1504 |
.tutor-dashboard-content{
|
1505 |
padding-top: 30px;
|
1506 |
}
|
@@ -1527,6 +1542,8 @@ a.tutor-btn.bordered-btn:hover,
|
|
1527 |
-webkit-box-flex: 1;
|
1528 |
-ms-flex: 1;
|
1529 |
flex: 1;
|
|
|
|
|
1530 |
display: flex;
|
1531 |
}
|
1532 |
.report-top-sub-menu a{
|
@@ -1540,9 +1557,9 @@ a.tutor-btn.bordered-btn:hover,
|
|
1540 |
color: #333;
|
1541 |
}
|
1542 |
.report-top-sub-menu a.active {
|
1543 |
-
background-color:
|
1544 |
color: #ffffff;
|
1545 |
-
border: 1px solid
|
1546 |
}
|
1547 |
|
1548 |
.report-top-sub-menu a:not(:last-child){
|
@@ -1577,7 +1594,7 @@ a.tutor-btn.bordered-btn:hover,
|
|
1577 |
top: 7px;
|
1578 |
}
|
1579 |
.date-range-input button{
|
1580 |
-
background-color:
|
1581 |
color: #ffffff;
|
1582 |
border: none;
|
1583 |
line-height: 30px;
|
@@ -1605,12 +1622,17 @@ Withdraw Method
|
|
1605 |
|
1606 |
|
1607 |
.withdraw-method-select-wrap{
|
|
|
|
|
1608 |
display: flex;
|
|
|
1609 |
flex-wrap: wrap;
|
1610 |
margin: 0 -15px 50px;
|
1611 |
}
|
1612 |
|
1613 |
.withdraw-method-select-wrap .withdraw-method-select{
|
|
|
|
|
1614 |
flex-grow: 1;
|
1615 |
padding: 0 15px;
|
1616 |
}
|
@@ -1628,7 +1650,7 @@ Withdraw Method
|
|
1628 |
border-color: var(--tutor-success-button-color);
|
1629 |
box-shadow: 0 0 0 1px var(--tutor-success-button-color);
|
1630 |
}
|
1631 |
-
.withdraw-method-select-wrap .withdraw-method-select label
|
1632 |
content: '\e90f';
|
1633 |
position: absolute;
|
1634 |
right: -1px;
|
@@ -1640,7 +1662,7 @@ Withdraw Method
|
|
1640 |
line-height: 22px;
|
1641 |
color: transparent;
|
1642 |
}
|
1643 |
-
.withdraw-method-select-wrap .withdraw-method-select input:checked + label
|
1644 |
color: #fff;
|
1645 |
background: var(--tutor-success-button-color);
|
1646 |
border-color: var(--tutor-success-button-color);
|
@@ -1659,7 +1681,7 @@ Withdraw Method
|
|
1659 |
.withdraw-method-select-wrap .withdraw-method-select label > p{
|
1660 |
font-size: 20px;
|
1661 |
font-weight: 600;
|
1662 |
-
color:
|
1663 |
}
|
1664 |
.withdraw-method-select-wrap .withdraw-method-select label span{
|
1665 |
color: #B0B6C8;
|
@@ -1668,13 +1690,18 @@ Withdraw Method
|
|
1668 |
}
|
1669 |
|
1670 |
.withdraw-method-form{
|
|
|
|
|
1671 |
display: flex;
|
|
|
1672 |
flex-wrap: wrap;
|
1673 |
margin: 0 -15px;
|
1674 |
}
|
1675 |
|
1676 |
|
1677 |
.withdraw-method-form > div{
|
|
|
|
|
1678 |
flex-grow: 1;
|
1679 |
min-width: 50%;
|
1680 |
padding: 0 15px 20px;
|
@@ -1751,7 +1778,7 @@ DatePicker
|
|
1751 |
}
|
1752 |
.ui-datepicker a:hover,
|
1753 |
.ui-datepicker td:hover a {
|
1754 |
-
color:
|
1755 |
-webkit-transition: color 0.1s ease-in-out;
|
1756 |
transition: color 0.1s ease-in-out;
|
1757 |
}
|
@@ -1813,7 +1840,7 @@ DatePicker
|
|
1813 |
text-decoration: none;
|
1814 |
}
|
1815 |
.ui-datepicker .ui-datepicker-current-day {
|
1816 |
-
background-color:
|
1817 |
}
|
1818 |
.ui-datepicker .ui-datepicker-current-day a {
|
1819 |
color: #fff
|
@@ -2005,6 +2032,7 @@ DatePicker
|
|
2005 |
min-width: 220px;
|
2006 |
text-align: center;
|
2007 |
text-transform: uppercase;
|
|
|
2008 |
transition: 300ms;
|
2009 |
}
|
2010 |
|
@@ -2058,11 +2086,15 @@ a.tutor-profile-photo-upload-btn {
|
|
2058 |
top: 10px;
|
2059 |
}
|
2060 |
.tutor-reset-password-form-wrap .tutor-form-group{
|
|
|
|
|
2061 |
display: flex;
|
2062 |
max-width: 500px;
|
2063 |
}
|
2064 |
|
2065 |
.tutor-reset-password-form-wrap .tutor-form-group label{
|
|
|
|
|
2066 |
flex: 0 0 200px;
|
2067 |
}
|
2068 |
/**
|
@@ -2075,18 +2107,36 @@ Instructor
|
|
2075 |
border-radius: 4px;
|
2076 |
}
|
2077 |
.single-instructor-wrap .single-instructor-top{
|
2078 |
-
overflow: hidden;
|
2079 |
padding: 20px;
|
2080 |
border-bottom: 1px solid #e8eff1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2081 |
}
|
|
|
2082 |
.single-instructor-wrap .single-instructor-top h3,
|
2083 |
.single-instructor-wrap .single-instructor-top h4 {
|
2084 |
margin: 0;
|
2085 |
padding: 0;
|
2086 |
}
|
2087 |
.single-instructor-wrap .tutor-instructor-left{
|
2088 |
-
|
2089 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2090 |
}
|
2091 |
.single-instructor-wrap .instructor-avatar{
|
2092 |
float: left;
|
@@ -2116,9 +2166,10 @@ Instructor
|
|
2116 |
color: var(--tutor-light-color);
|
2117 |
}
|
2118 |
.single-instructor-wrap .instructor-bio{
|
2119 |
-
padding-left: 260px;
|
2120 |
font-size: 14px;
|
2121 |
}
|
|
|
|
|
2122 |
.single-instructor-wrap .single-instructor-bottom{
|
2123 |
padding: 15px 20px;
|
2124 |
text-align: right;
|
@@ -2170,8 +2221,8 @@ Instructor
|
|
2170 |
}
|
2171 |
.tutor-pagination .page-numbers.current,
|
2172 |
a.page-numbers:hover {
|
2173 |
-
background:
|
2174 |
-
border: 1px solid
|
2175 |
color: #ffffff;
|
2176 |
}
|
2177 |
.tutor-dashboard-pagination-results-stats{
|
@@ -2183,7 +2234,7 @@ a.page-numbers:hover {
|
|
2183 |
color: #555;
|
2184 |
}
|
2185 |
.statement-order-completed {
|
2186 |
-
background:
|
2187 |
color: #fff;
|
2188 |
padding: 2px 5px;
|
2189 |
border: none;
|
@@ -2209,10 +2260,19 @@ a.page-numbers:hover {
|
|
2209 |
-ms-flex: 0 0 400px;
|
2210 |
flex: 0 0 400px;
|
2211 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2212 |
.tutor-single-entry-content {
|
2213 |
-
-webkit-box-flex:
|
2214 |
-
-ms-flex:
|
2215 |
-
flex:
|
2216 |
}
|
2217 |
.tutor-single-lesson-button-group .tutor-single-lesson-button a,
|
2218 |
.tutor-topics-in-single-lesson .tutor-single-lesson-items a{
|
@@ -2332,12 +2392,15 @@ a.page-numbers:hover {
|
|
2332 |
-webkit-box-pack: justify;
|
2333 |
-ms-flex-pack: justify;
|
2334 |
justify-content: space-between;
|
|
|
2335 |
}
|
2336 |
|
|
|
2337 |
.tutor-single-page-top-bar .tutor-single-lesson-segment{
|
2338 |
margin-bottom: 0;
|
2339 |
}
|
2340 |
|
|
|
2341 |
.tutor-single-page-top-bar a{
|
2342 |
color: #ffffff;
|
2343 |
}
|
@@ -2349,8 +2412,6 @@ a.page-numbers:hover {
|
|
2349 |
.tutor-single-page-top-bar .tutor-single-lesson-segment button.course-complete-button{
|
2350 |
background: #fff;
|
2351 |
color: var(--tutor-primary-color);
|
2352 |
-
margin-right: 15px;
|
2353 |
-
padding-top: 13px;
|
2354 |
padding-bottom: 13px;
|
2355 |
cursor: pointer;
|
2356 |
}
|
@@ -2367,11 +2428,34 @@ a.page-numbers:hover {
|
|
2367 |
|
2368 |
.tutor-single-page-top-bar .tutor-topbar-content-title-wrap{
|
2369 |
text-align: center;
|
2370 |
-
max-width: 600px;
|
2371 |
white-space: nowrap;
|
2372 |
overflow: hidden;
|
2373 |
text-overflow: ellipsis;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2374 |
}
|
|
|
|
|
2375 |
.tutor-single-page-top-bar .tutor-topbar-content-title-wrap i{
|
2376 |
vertical-align: middle;
|
2377 |
line-height: 1;
|
@@ -2380,6 +2464,12 @@ a.page-numbers:hover {
|
|
2380 |
.tutor-lesson-content-area, .tutor-quiz-single-wrap {
|
2381 |
margin: 0 100px;
|
2382 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2383 |
.tutor-lesson-sidebar-hide-bar{
|
2384 |
background-color: var(--tutor-primary-hover-color);
|
2385 |
color: #ffffff;
|
@@ -2459,6 +2549,7 @@ a.page-numbers:hover {
|
|
2459 |
.tutor-lesson-sidebar-emptyqa-wrap i{
|
2460 |
font-size: 150px;
|
2461 |
color: #E8EFF1;
|
|
|
2462 |
}
|
2463 |
|
2464 |
/*attachment*/
|
@@ -3117,12 +3208,12 @@ Course question and answer
|
|
3117 |
}
|
3118 |
|
3119 |
.tutor-quiz-attempt-history table span.result-pass{
|
3120 |
-
background:
|
3121 |
}
|
3122 |
/*.attempt-reviewed-text {*/
|
3123 |
-
|
3124 |
-
|
3125 |
-
|
3126 |
/*}*/
|
3127 |
.quiz-head-meta-info{
|
3128 |
font-size: 14px;
|
@@ -3404,7 +3495,7 @@ Course question and answer
|
|
3404 |
font-size: 14px;
|
3405 |
}
|
3406 |
.tutor-quiz-questions-pagination ul li a:hover, .tutor-quiz-questions-pagination ul li a.active {
|
3407 |
-
background-color:
|
3408 |
}
|
3409 |
|
3410 |
.quiz-image-answering-wrap {
|
@@ -3555,8 +3646,8 @@ Course question and answer
|
|
3555 |
}
|
3556 |
.tutor-login-form-wrap input[type="submit"]:hover{
|
3557 |
color: #fff;
|
3558 |
-
background-color:
|
3559 |
-
border-color:
|
3560 |
}
|
3561 |
.tutor-login-form-wrap input[type="checkbox"]{
|
3562 |
margin-right: 4px;
|
@@ -3797,7 +3888,7 @@ Course question and answer
|
|
3797 |
}
|
3798 |
}
|
3799 |
|
3800 |
-
@media (max-width:
|
3801 |
.tutor-single-course-sidebar{
|
3802 |
margin-top: 30px;
|
3803 |
}
|
@@ -3886,7 +3977,9 @@ Course question and answer
|
|
3886 |
height: 5px;
|
3887 |
width: 100%;
|
3888 |
background: #E8EFF1;
|
3889 |
-
margin-top:
|
|
|
|
|
3890 |
}
|
3891 |
.rating-meter-fill-bar {
|
3892 |
background: #F8C51C;
|
@@ -3966,7 +4059,7 @@ Course question and answer
|
|
3966 |
margin-bottom: 20px;
|
3967 |
border-radius: 4px;
|
3968 |
font-weight: 500;
|
3969 |
-
color:
|
3970 |
font-size: 16px;
|
3971 |
}
|
3972 |
|
@@ -4038,7 +4131,7 @@ Course question and answer
|
|
4038 |
margin-right: 3px;
|
4039 |
}
|
4040 |
.prerequisites-course-checkmark.is-complete i{
|
4041 |
-
background:
|
4042 |
color: #fff;
|
4043 |
}
|
4044 |
|
@@ -4130,8 +4223,7 @@ social share
|
|
4130 |
}
|
4131 |
|
4132 |
.rtl .single-instructor-wrap .instructor-name,
|
4133 |
-
.rtl .single-instructor-wrap .instructor-avatar,
|
4134 |
-
.rtl .single-instructor-wrap .tutor-instructor-left{
|
4135 |
float: right;
|
4136 |
}
|
4137 |
|
@@ -4188,8 +4280,14 @@ social share
|
|
4188 |
height: 100%;
|
4189 |
left: 0;
|
4190 |
top: 0;
|
|
|
|
|
4191 |
display: flex;
|
|
|
|
|
4192 |
align-items: center;
|
|
|
|
|
4193 |
justify-content: center;
|
4194 |
z-index: 999999;
|
4195 |
}
|
|
|
|
|
1 |
:root{
|
2 |
--tutor-primary-color: #1B52D8;
|
3 |
--tutor-primary-hover-color: #1b52a9;
|
106 |
flex: 0 0 50%;
|
107 |
max-width: 50%;
|
108 |
}
|
109 |
+
.tutor-col-md-100{
|
110 |
+
-ms-flex: 100%;
|
111 |
+
-webkit-box-flex: 0;
|
112 |
+
flex: 0 0 100%;
|
113 |
+
max-width: 100%;
|
114 |
+
}
|
115 |
}
|
116 |
@media (max-width: 767px) {
|
117 |
.tutor-col-auto, .tutor-col, .tutor-col-3, .tutor-col-4, .tutor-col-6, .tutor-col-8, .tutor-col-9{
|
741 |
margin-right: 5px;
|
742 |
}
|
743 |
|
|
|
744 |
.tutor-loop-course-footer .tutor-loop-cart-btn-wrap a.added_to_cart:before{
|
745 |
display: none;
|
746 |
}
|
747 |
|
|
|
748 |
/* Standard syntax */
|
749 |
@-webkit-keyframes mymove {
|
750 |
from {
|
814 |
}
|
815 |
|
816 |
.tutor-course-loop-title h2{
|
817 |
+
font-size: 16px;
|
818 |
font-size: 16px;
|
819 |
font-size: 16px;
|
820 |
font-size: 1rem;
|
953 |
border-radius: 3px 3px 3px 3px;
|
954 |
}
|
955 |
.tutor-info-msg {
|
956 |
+
color: var(--tutor-primary-color);
|
957 |
background-color: #BEF;
|
958 |
}
|
959 |
.tutor-success-msg {
|
960 |
+
color: var(--tutor-success-button-color);
|
961 |
background-color: #DFF2BF;
|
962 |
}
|
963 |
.tutor-warning-msg {
|
1112 |
border-collapse: collapse;
|
1113 |
border: 1px solid #DCDFE5;
|
1114 |
border-radius: 4px;
|
1115 |
+
width: 100%;
|
1116 |
}
|
1117 |
.tutor-dashboard-info-table thead{
|
1118 |
background: #FAFBFC;
|
1177 |
}
|
1178 |
.tutor-dashboard-review-title a{
|
1179 |
font-weight: 500;
|
1180 |
+
color: var(--tutor-primary-color);
|
1181 |
}
|
1182 |
|
1183 |
.tutor-dashboard-review-links{
|
1234 |
display: block;
|
1235 |
font-weight: 700;
|
1236 |
font-size: 30px;
|
1237 |
+
line-height: 1.618;
|
1238 |
}
|
1239 |
.tutor-dashboard-info-cards .tutor-dashboard-info-card p span span{
|
1240 |
display: inline-block;
|
1253 |
padding: 15px 13px !important;
|
1254 |
}
|
1255 |
.tutor-dashboard-content .tutor-quiz-attempt-history tr.pass{
|
1256 |
+
border-left: 3px solid var(--tutor-success-button-color);
|
1257 |
}
|
1258 |
.tutor-dashboard-content .tutor-quiz-attempt-history tr.fail{
|
1259 |
border-left: 3px solid #D71830;
|
1268 |
}
|
1269 |
|
1270 |
.tutor-dashboard-content .tutor-quiz-attempt-history table a{
|
1271 |
+
color: var(--tutor-primary-color);
|
1272 |
font-weight: 700;
|
1273 |
font-size: 14px;
|
1274 |
line-height: 24px;
|
1288 |
|
1289 |
.tutor-dashboard-item-group > h4{
|
1290 |
font-size: 20px;
|
1291 |
+
color: var(--tutor-primary-color);
|
1292 |
font-weight: 500;
|
1293 |
}
|
1294 |
|
1297 |
/* dashboard profile*/
|
1298 |
|
1299 |
.tutor-dashboard-profile .tutor-dashboard-profile-item{
|
1300 |
+
display: -webkit-box;
|
1301 |
+
display: -ms-flexbox;
|
1302 |
display: flex;
|
1303 |
}
|
1304 |
.tutor-dashboard-profile .tutor-dashboard-profile-item .heading{
|
1306 |
}
|
1307 |
|
1308 |
.tutor-dashboard-profile .tutor-dashboard-profile-item .content{
|
1309 |
+
-webkit-box-flex: 1;
|
1310 |
+
-ms-flex-positive: 1;
|
1311 |
flex-grow: 1;
|
1312 |
}
|
1313 |
|
1368 |
.tutor-dashboard-inline-links ul li a{
|
1369 |
display: block;
|
1370 |
padding: 5px 10px;
|
1371 |
+
color: var(--tutor-primary-color);
|
1372 |
margin-bottom: -1px;
|
1373 |
line-height: 40px;
|
1374 |
}
|
1375 |
.tutor-dashboard-inline-links ul li a:hover, .tutor-dashboard-inline-links ul li.active a {
|
1376 |
+
color: var(--tutor-primary-color);
|
1377 |
+
border-bottom: 1px solid var(--tutor-primary-color);
|
1378 |
padding-bottom: 4px;
|
1379 |
}
|
1380 |
.tutor-dashboard-student-meta ul li:first-child{
|
1417 |
background-color: #EDF0F9;
|
1418 |
}
|
1419 |
.tutor-dashboard-permalinks li.active a{
|
1420 |
+
background-color: var(--tutor-primary-color);
|
1421 |
color: #ffffff;
|
1422 |
}
|
1423 |
|
1446 |
line-height: 28px;
|
1447 |
}
|
1448 |
|
1449 |
+
.tutor-dashboard-permalinks a:before{
|
1450 |
content: "\e968";
|
1451 |
font-family: 'tutor' !important;
|
1452 |
speak: none;
|
1461 |
vertical-align: middle;
|
1462 |
color: var(--tutor-primary-color);
|
1463 |
opacity: .6;
|
1464 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
|
1465 |
font-size: 17px;
|
1466 |
}
|
1467 |
+
.tutor-dashboard-permalinks a:hover:before{
|
1468 |
opacity: 1;
|
1469 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
1470 |
}
|
1471 |
|
1472 |
+
.tutor-dashboard-permalinks li.active a:before{
|
1473 |
opacity: 1;
|
1474 |
+
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
|
1475 |
color: #fff;
|
1476 |
}
|
1477 |
|
1478 |
+
.tutor-dashboard-menu-my-profile a:before{
|
1479 |
content: "\e963";
|
1480 |
}
|
1481 |
|
1482 |
+
.tutor-dashboard-menu-enrolled-courses a:before{
|
1483 |
content: "\e969";
|
1484 |
}
|
1485 |
|
1486 |
+
.tutor-dashboard-menu-my-courses a:before{
|
1487 |
content: "\e965";
|
1488 |
}
|
1489 |
|
1490 |
+
.tutor-dashboard-menu-wishlist a:before{
|
1491 |
content: "\e908";
|
1492 |
}
|
1493 |
|
1494 |
+
.tutor-dashboard-menu-reviews a:before{
|
1495 |
content: "\e917";
|
1496 |
}
|
1497 |
|
1498 |
+
.tutor-dashboard-menu-quiz-attempts a:before{
|
1499 |
content: "\e948";
|
1500 |
}
|
1501 |
|
1502 |
+
.tutor-dashboard-menu-earning a:before{
|
1503 |
content: "\e96b";
|
1504 |
}
|
1505 |
|
1506 |
+
.tutor-dashboard-menu-withdraw a:before{
|
1507 |
content: "\e960";
|
1508 |
}
|
1509 |
+
.tutor-dashboard-menu-settings a:before{
|
1510 |
content: "\e961";
|
1511 |
}
|
1512 |
+
.tutor-dashboard-menu-logout a:before{
|
1513 |
content: "\e962";
|
1514 |
}
|
1515 |
|
1516 |
+
.tutor-dashboard-menu-purchase_history a:before{
|
1517 |
+
content: "\e964";
|
1518 |
+
}
|
1519 |
.tutor-dashboard-content{
|
1520 |
padding-top: 30px;
|
1521 |
}
|
1542 |
-webkit-box-flex: 1;
|
1543 |
-ms-flex: 1;
|
1544 |
flex: 1;
|
1545 |
+
display: -webkit-box;
|
1546 |
+
display: -ms-flexbox;
|
1547 |
display: flex;
|
1548 |
}
|
1549 |
.report-top-sub-menu a{
|
1557 |
color: #333;
|
1558 |
}
|
1559 |
.report-top-sub-menu a.active {
|
1560 |
+
background-color: var(--tutor-primary-color);
|
1561 |
color: #ffffff;
|
1562 |
+
border: 1px solid var(--tutor-primary-hover-color);
|
1563 |
}
|
1564 |
|
1565 |
.report-top-sub-menu a:not(:last-child){
|
1594 |
top: 7px;
|
1595 |
}
|
1596 |
.date-range-input button{
|
1597 |
+
background-color: var(--tutor-primary-color);
|
1598 |
color: #ffffff;
|
1599 |
border: none;
|
1600 |
line-height: 30px;
|
1622 |
|
1623 |
|
1624 |
.withdraw-method-select-wrap{
|
1625 |
+
display: -webkit-box;
|
1626 |
+
display: -ms-flexbox;
|
1627 |
display: flex;
|
1628 |
+
-ms-flex-wrap: wrap;
|
1629 |
flex-wrap: wrap;
|
1630 |
margin: 0 -15px 50px;
|
1631 |
}
|
1632 |
|
1633 |
.withdraw-method-select-wrap .withdraw-method-select{
|
1634 |
+
-webkit-box-flex: 1;
|
1635 |
+
-ms-flex-positive: 1;
|
1636 |
flex-grow: 1;
|
1637 |
padding: 0 15px;
|
1638 |
}
|
1650 |
border-color: var(--tutor-success-button-color);
|
1651 |
box-shadow: 0 0 0 1px var(--tutor-success-button-color);
|
1652 |
}
|
1653 |
+
.withdraw-method-select-wrap .withdraw-method-select label:after{
|
1654 |
content: '\e90f';
|
1655 |
position: absolute;
|
1656 |
right: -1px;
|
1662 |
line-height: 22px;
|
1663 |
color: transparent;
|
1664 |
}
|
1665 |
+
.withdraw-method-select-wrap .withdraw-method-select input:checked + label:after{
|
1666 |
color: #fff;
|
1667 |
background: var(--tutor-success-button-color);
|
1668 |
border-color: var(--tutor-success-button-color);
|
1681 |
.withdraw-method-select-wrap .withdraw-method-select label > p{
|
1682 |
font-size: 20px;
|
1683 |
font-weight: 600;
|
1684 |
+
color: var(--tutor-primary-color);
|
1685 |
}
|
1686 |
.withdraw-method-select-wrap .withdraw-method-select label span{
|
1687 |
color: #B0B6C8;
|
1690 |
}
|
1691 |
|
1692 |
.withdraw-method-form{
|
1693 |
+
display: -webkit-box;
|
1694 |
+
display: -ms-flexbox;
|
1695 |
display: flex;
|
1696 |
+
-ms-flex-wrap: wrap;
|
1697 |
flex-wrap: wrap;
|
1698 |
margin: 0 -15px;
|
1699 |
}
|
1700 |
|
1701 |
|
1702 |
.withdraw-method-form > div{
|
1703 |
+
-webkit-box-flex: 1;
|
1704 |
+
-ms-flex-positive: 1;
|
1705 |
flex-grow: 1;
|
1706 |
min-width: 50%;
|
1707 |
padding: 0 15px 20px;
|
1778 |
}
|
1779 |
.ui-datepicker a:hover,
|
1780 |
.ui-datepicker td:hover a {
|
1781 |
+
color: var(--tutor-primary-hover-color);
|
1782 |
-webkit-transition: color 0.1s ease-in-out;
|
1783 |
transition: color 0.1s ease-in-out;
|
1784 |
}
|
1840 |
text-decoration: none;
|
1841 |
}
|
1842 |
.ui-datepicker .ui-datepicker-current-day {
|
1843 |
+
background-color: var( --tutor-primary-hover-color);
|
1844 |
}
|
1845 |
.ui-datepicker .ui-datepicker-current-day a {
|
1846 |
color: #fff
|
2032 |
min-width: 220px;
|
2033 |
text-align: center;
|
2034 |
text-transform: uppercase;
|
2035 |
+
-webkit-transition: 300ms;
|
2036 |
transition: 300ms;
|
2037 |
}
|
2038 |
|
2086 |
top: 10px;
|
2087 |
}
|
2088 |
.tutor-reset-password-form-wrap .tutor-form-group{
|
2089 |
+
display: -webkit-box;
|
2090 |
+
display: -ms-flexbox;
|
2091 |
display: flex;
|
2092 |
max-width: 500px;
|
2093 |
}
|
2094 |
|
2095 |
.tutor-reset-password-form-wrap .tutor-form-group label{
|
2096 |
+
-webkit-box-flex: 0;
|
2097 |
+
-ms-flex: 0 0 200px;
|
2098 |
flex: 0 0 200px;
|
2099 |
}
|
2100 |
/**
|
2107 |
border-radius: 4px;
|
2108 |
}
|
2109 |
.single-instructor-wrap .single-instructor-top{
|
|
|
2110 |
padding: 20px;
|
2111 |
border-bottom: 1px solid #e8eff1;
|
2112 |
+
display: -webkit-box;
|
2113 |
+
display: -ms-flexbox;
|
2114 |
+
display: flex;
|
2115 |
+
}
|
2116 |
+
|
2117 |
+
@media (max-width: 767px) {
|
2118 |
+
.single-instructor-wrap .single-instructor-top{
|
2119 |
+
-ms-flex-wrap: wrap;
|
2120 |
+
flex-wrap: wrap;
|
2121 |
+
}
|
2122 |
}
|
2123 |
+
|
2124 |
.single-instructor-wrap .single-instructor-top h3,
|
2125 |
.single-instructor-wrap .single-instructor-top h4 {
|
2126 |
margin: 0;
|
2127 |
padding: 0;
|
2128 |
}
|
2129 |
.single-instructor-wrap .tutor-instructor-left{
|
2130 |
+
-webkit-box-flex: 0;
|
2131 |
+
-ms-flex: 0 0 auto;
|
2132 |
+
flex: 0 0 auto;
|
2133 |
+
padding-right: 30px;
|
2134 |
+
}
|
2135 |
+
@media (max-width: 767px) {
|
2136 |
+
.single-instructor-wrap .tutor-instructor-left{
|
2137 |
+
width: 100%;
|
2138 |
+
margin-bottom: 15px;
|
2139 |
+
}
|
2140 |
}
|
2141 |
.single-instructor-wrap .instructor-avatar{
|
2142 |
float: left;
|
2166 |
color: var(--tutor-light-color);
|
2167 |
}
|
2168 |
.single-instructor-wrap .instructor-bio{
|
|
|
2169 |
font-size: 14px;
|
2170 |
}
|
2171 |
+
|
2172 |
+
|
2173 |
.single-instructor-wrap .single-instructor-bottom{
|
2174 |
padding: 15px 20px;
|
2175 |
text-align: right;
|
2221 |
}
|
2222 |
.tutor-pagination .page-numbers.current,
|
2223 |
a.page-numbers:hover {
|
2224 |
+
background: var( --tutor-primary-hover-color);
|
2225 |
+
border: 1px solid var(--tutor-primary-color);
|
2226 |
color: #ffffff;
|
2227 |
}
|
2228 |
.tutor-dashboard-pagination-results-stats{
|
2234 |
color: #555;
|
2235 |
}
|
2236 |
.statement-order-completed {
|
2237 |
+
background: var(--tutor-success-button-color);
|
2238 |
color: #fff;
|
2239 |
padding: 2px 5px;
|
2240 |
border: none;
|
2260 |
-ms-flex: 0 0 400px;
|
2261 |
flex: 0 0 400px;
|
2262 |
}
|
2263 |
+
|
2264 |
+
@media (max-width: 991px) {
|
2265 |
+
.tutor-lesson-sidebar{
|
2266 |
+
-webkit-box-flex: 0;
|
2267 |
+
-ms-flex: 0 0 300px;
|
2268 |
+
flex: 0 0 300px;
|
2269 |
+
}
|
2270 |
+
}
|
2271 |
+
|
2272 |
.tutor-single-entry-content {
|
2273 |
+
-webkit-box-flex: 999;
|
2274 |
+
-ms-flex-positive: 999;
|
2275 |
+
flex-grow: 999;
|
2276 |
}
|
2277 |
.tutor-single-lesson-button-group .tutor-single-lesson-button a,
|
2278 |
.tutor-topics-in-single-lesson .tutor-single-lesson-items a{
|
2392 |
-webkit-box-pack: justify;
|
2393 |
-ms-flex-pack: justify;
|
2394 |
justify-content: space-between;
|
2395 |
+
padding-right: 15px;
|
2396 |
}
|
2397 |
|
2398 |
+
.tutor-single-page-top-bar .tutor-single-lesson-segment form,
|
2399 |
.tutor-single-page-top-bar .tutor-single-lesson-segment{
|
2400 |
margin-bottom: 0;
|
2401 |
}
|
2402 |
|
2403 |
+
|
2404 |
.tutor-single-page-top-bar a{
|
2405 |
color: #ffffff;
|
2406 |
}
|
2412 |
.tutor-single-page-top-bar .tutor-single-lesson-segment button.course-complete-button{
|
2413 |
background: #fff;
|
2414 |
color: var(--tutor-primary-color);
|
|
|
|
|
2415 |
padding-bottom: 13px;
|
2416 |
cursor: pointer;
|
2417 |
}
|
2428 |
|
2429 |
.tutor-single-page-top-bar .tutor-topbar-content-title-wrap{
|
2430 |
text-align: center;
|
|
|
2431 |
white-space: nowrap;
|
2432 |
overflow: hidden;
|
2433 |
text-overflow: ellipsis;
|
2434 |
+
-webkit-box-flex: 999999;
|
2435 |
+
-ms-flex-positive: 999999;
|
2436 |
+
flex-grow: 999999;
|
2437 |
+
}
|
2438 |
+
|
2439 |
+
.tutor-single-page-top-bar .tutor-hide-sidebar-bar{
|
2440 |
+
-webkit-box-flex: 0;
|
2441 |
+
-ms-flex: 0 0 auto;
|
2442 |
+
flex: 0 0 auto;
|
2443 |
+
}
|
2444 |
+
.tutor-single-page-top-bar .tutor-topbar-mark-to-done{
|
2445 |
+
-webkit-box-flex: 0;
|
2446 |
+
-ms-flex: 0 0 auto;
|
2447 |
+
flex: 0 0 auto;
|
2448 |
+
}
|
2449 |
+
|
2450 |
+
@media (max-width: 767px) {
|
2451 |
+
|
2452 |
+
.tutor-single-page-top-bar .tutor-topbar-content-title-wrap,
|
2453 |
+
.tutor-single-page-top-bar .tutor-topbar-mark-to-done{
|
2454 |
+
display: none;
|
2455 |
+
}
|
2456 |
}
|
2457 |
+
|
2458 |
+
|
2459 |
.tutor-single-page-top-bar .tutor-topbar-content-title-wrap i{
|
2460 |
vertical-align: middle;
|
2461 |
line-height: 1;
|
2464 |
.tutor-lesson-content-area, .tutor-quiz-single-wrap {
|
2465 |
margin: 0 100px;
|
2466 |
}
|
2467 |
+
@media (max-width: 991px) {
|
2468 |
+
.tutor-lesson-content-area,
|
2469 |
+
.tutor-quiz-single-wrap{
|
2470 |
+
margin: 0 40px;
|
2471 |
+
}
|
2472 |
+
}
|
2473 |
.tutor-lesson-sidebar-hide-bar{
|
2474 |
background-color: var(--tutor-primary-hover-color);
|
2475 |
color: #ffffff;
|
2549 |
.tutor-lesson-sidebar-emptyqa-wrap i{
|
2550 |
font-size: 150px;
|
2551 |
color: #E8EFF1;
|
2552 |
+
line-height: 0.8;
|
2553 |
}
|
2554 |
|
2555 |
/*attachment*/
|
3208 |
}
|
3209 |
|
3210 |
.tutor-quiz-attempt-history table span.result-pass{
|
3211 |
+
background: var(--tutor-success-button-color);
|
3212 |
}
|
3213 |
/*.attempt-reviewed-text {*/
|
3214 |
+
/*color: #777;*/
|
3215 |
+
/*font-size: 12px;*/
|
3216 |
+
/*margin-top: 10px;*/
|
3217 |
/*}*/
|
3218 |
.quiz-head-meta-info{
|
3219 |
font-size: 14px;
|
3495 |
font-size: 14px;
|
3496 |
}
|
3497 |
.tutor-quiz-questions-pagination ul li a:hover, .tutor-quiz-questions-pagination ul li a.active {
|
3498 |
+
background-color: var(--tutor-primary-color);
|
3499 |
}
|
3500 |
|
3501 |
.quiz-image-answering-wrap {
|
3646 |
}
|
3647 |
.tutor-login-form-wrap input[type="submit"]:hover{
|
3648 |
color: #fff;
|
3649 |
+
background-color: var(--tutor-success-button-color);
|
3650 |
+
border-color: var(--tutor-success-button-color);
|
3651 |
}
|
3652 |
.tutor-login-form-wrap input[type="checkbox"]{
|
3653 |
margin-right: 4px;
|
3888 |
}
|
3889 |
}
|
3890 |
|
3891 |
+
@media (max-width: 991px) {
|
3892 |
.tutor-single-course-sidebar{
|
3893 |
margin-top: 30px;
|
3894 |
}
|
3977 |
height: 5px;
|
3978 |
width: 100%;
|
3979 |
background: #E8EFF1;
|
3980 |
+
margin-top: 11px;
|
3981 |
+
border-radius: 15px;
|
3982 |
+
overflow: hidden;
|
3983 |
}
|
3984 |
.rating-meter-fill-bar {
|
3985 |
background: #F8C51C;
|
4059 |
margin-bottom: 20px;
|
4060 |
border-radius: 4px;
|
4061 |
font-weight: 500;
|
4062 |
+
color: var(--tutor-primary-color);
|
4063 |
font-size: 16px;
|
4064 |
}
|
4065 |
|
4131 |
margin-right: 3px;
|
4132 |
}
|
4133 |
.prerequisites-course-checkmark.is-complete i{
|
4134 |
+
background: var(--tutor-success-button-color);
|
4135 |
color: #fff;
|
4136 |
}
|
4137 |
|
4223 |
}
|
4224 |
|
4225 |
.rtl .single-instructor-wrap .instructor-name,
|
4226 |
+
.rtl .single-instructor-wrap .instructor-avatar,{
|
|
|
4227 |
float: right;
|
4228 |
}
|
4229 |
|
4280 |
height: 100%;
|
4281 |
left: 0;
|
4282 |
top: 0;
|
4283 |
+
display: -webkit-box;
|
4284 |
+
display: -ms-flexbox;
|
4285 |
display: flex;
|
4286 |
+
-webkit-box-align: center;
|
4287 |
+
-ms-flex-align: center;
|
4288 |
align-items: center;
|
4289 |
+
-webkit-box-pack: center;
|
4290 |
+
-ms-flex-pack: center;
|
4291 |
justify-content: center;
|
4292 |
z-index: 999999;
|
4293 |
}
|
@@ -1,6 +1,14 @@
|
|
1 |
jQuery(document).ready(function($){
|
2 |
'use strict';
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
if (jQuery().select2){
|
5 |
$('.tutor_select2').select2();
|
6 |
}
|
1 |
jQuery(document).ready(function($){
|
2 |
'use strict';
|
3 |
|
4 |
+
/**
|
5 |
+
* Color Picker
|
6 |
+
* @since v.1.2.21
|
7 |
+
*/
|
8 |
+
if (jQuery().wpColorPicker) {
|
9 |
+
$('.tutor_colorpicker').wpColorPicker();
|
10 |
+
}
|
11 |
+
|
12 |
if (jQuery().select2){
|
13 |
$('.tutor_select2').select2();
|
14 |
}
|
@@ -23,9 +23,13 @@ class Assets{
|
|
23 |
* Scripts
|
24 |
*/
|
25 |
wp_enqueue_media();
|
|
|
|
|
|
|
|
|
26 |
wp_enqueue_script('jquery-ui-slider');
|
27 |
wp_enqueue_script('tutor-select2', tutor()->url.'assets/packages/select2/select2.min.js', array('jquery'), tutor()->version, true );
|
28 |
-
wp_enqueue_script('tutor-admin', tutor()->url.'assets/js/tutor-admin.js', array('jquery'), tutor()->version, true );
|
29 |
|
30 |
$tutor_localize_data = array();
|
31 |
if ( ! empty($_GET['taxonomy']) && ( $_GET['taxonomy'] === 'course-category' || $_GET['taxonomy'] === 'course-tag') ){
|
@@ -66,6 +70,11 @@ class Assets{
|
|
66 |
* Enabling Sorting, draggable, droppable...
|
67 |
*/
|
68 |
wp_enqueue_script('jquery-ui-sortable');
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
//Plyr
|
71 |
wp_enqueue_style( 'tutor-plyr', tutor()->url . 'assets/packages/plyr/plyr.css', array(), tutor()->version );
|
@@ -96,7 +105,6 @@ class Assets{
|
|
96 |
//End: chart data
|
97 |
|
98 |
$localize_data = apply_filters('tutor_localize_data', $localize_data);
|
99 |
-
|
100 |
if (tutor_utils()->get_option('load_tutor_css')){
|
101 |
wp_enqueue_style('tutor-frontend', tutor()->url.'assets/css/tutor-front.css', array(), tutor()->version);
|
102 |
}
|
@@ -104,6 +112,34 @@ class Assets{
|
|
104 |
wp_enqueue_script( 'tutor-frontend', tutor()->url . 'assets/js/tutor-front.js', array( 'jquery' ), tutor()->version, true );
|
105 |
wp_localize_script('tutor-frontend', '_tutorobject', $localize_data);
|
106 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
}
|
108 |
|
109 |
/**
|
23 |
* Scripts
|
24 |
*/
|
25 |
wp_enqueue_media();
|
26 |
+
|
27 |
+
wp_enqueue_script( 'wp-color-picker' );
|
28 |
+
wp_enqueue_style( 'wp-color-picker' );
|
29 |
+
|
30 |
wp_enqueue_script('jquery-ui-slider');
|
31 |
wp_enqueue_script('tutor-select2', tutor()->url.'assets/packages/select2/select2.min.js', array('jquery'), tutor()->version, true );
|
32 |
+
wp_enqueue_script('tutor-admin', tutor()->url.'assets/js/tutor-admin.js', array('jquery', 'wp-color-picker'), tutor()->version, true );
|
33 |
|
34 |
$tutor_localize_data = array();
|
35 |
if ( ! empty($_GET['taxonomy']) && ( $_GET['taxonomy'] === 'course-category' || $_GET['taxonomy'] === 'course-tag') ){
|
70 |
* Enabling Sorting, draggable, droppable...
|
71 |
*/
|
72 |
wp_enqueue_script('jquery-ui-sortable');
|
73 |
+
/**
|
74 |
+
* Tutor Icon
|
75 |
+
*/
|
76 |
+
wp_enqueue_style('tutor-icon', tutor()->url.'assets/icons/css/tutor-icon.css', array(), tutor()->version);
|
77 |
+
|
78 |
|
79 |
//Plyr
|
80 |
wp_enqueue_style( 'tutor-plyr', tutor()->url . 'assets/packages/plyr/plyr.css', array(), tutor()->version );
|
105 |
//End: chart data
|
106 |
|
107 |
$localize_data = apply_filters('tutor_localize_data', $localize_data);
|
|
|
108 |
if (tutor_utils()->get_option('load_tutor_css')){
|
109 |
wp_enqueue_style('tutor-frontend', tutor()->url.'assets/css/tutor-front.css', array(), tutor()->version);
|
110 |
}
|
112 |
wp_enqueue_script( 'tutor-frontend', tutor()->url . 'assets/js/tutor-front.js', array( 'jquery' ), tutor()->version, true );
|
113 |
wp_localize_script('tutor-frontend', '_tutorobject', $localize_data);
|
114 |
}
|
115 |
+
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Default Color
|
119 |
+
*/
|
120 |
+
$tutor_css = ":root{";
|
121 |
+
$tutor_primary_color = tutor_utils()->get_option('tutor_primary_color');
|
122 |
+
$tutor_primary_hover_color = tutor_utils()->get_option('tutor_primary_hover_color');
|
123 |
+
$tutor_text_color = tutor_utils()->get_option('tutor_text_color');
|
124 |
+
$tutor_light_color = tutor_utils()->get_option('tutor_light_color');
|
125 |
+
|
126 |
+
if ($tutor_primary_color){
|
127 |
+
$tutor_css .= " --tutor-primary-color: {$tutor_primary_color};";
|
128 |
+
}
|
129 |
+
if ($tutor_primary_hover_color){
|
130 |
+
$tutor_css .= " --tutor-primary-hover-color: {$tutor_primary_hover_color};";
|
131 |
+
}
|
132 |
+
if ($tutor_text_color){
|
133 |
+
$tutor_css .= " --tutor-text-color: {$tutor_text_color};";
|
134 |
+
}
|
135 |
+
if ($tutor_light_color){
|
136 |
+
$tutor_css .= " --tutor-light-color: {$tutor_light_color};";
|
137 |
+
}
|
138 |
+
|
139 |
+
$tutor_css .= "}";
|
140 |
+
wp_add_inline_style( 'tutor-frontend', $tutor_css );
|
141 |
+
//END: Default Color
|
142 |
+
|
143 |
}
|
144 |
|
145 |
/**
|
@@ -40,11 +40,15 @@ class Course extends Tutor_Base {
|
|
40 |
*/
|
41 |
public function register_meta_box(){
|
42 |
$coursePostType = tutor()->course_post_type;
|
|
|
43 |
|
44 |
add_meta_box( 'tutor-course-topics', __( 'Course Builder', 'tutor' ), array($this, 'course_meta_box'), $coursePostType );
|
45 |
add_meta_box( 'tutor-course-additional-data', __( 'Additional Data', 'tutor' ), array($this, 'course_additional_data_meta_box'), $coursePostType );
|
46 |
add_meta_box( 'tutor-course-videos', __( 'Video', 'tutor' ), array($this, 'video_metabox'), $coursePostType );
|
47 |
-
|
|
|
|
|
|
|
48 |
add_meta_box( 'tutor-announcements', __( 'Announcements', 'tutor' ), array($this, 'announcements_metabox'), $coursePostType );
|
49 |
}
|
50 |
public function course_meta_box(){
|
@@ -62,7 +66,7 @@ class Course extends Tutor_Base {
|
|
62 |
}
|
63 |
|
64 |
public function instructors_metabox(){
|
65 |
-
include
|
66 |
}
|
67 |
|
68 |
/**
|
40 |
*/
|
41 |
public function register_meta_box(){
|
42 |
$coursePostType = tutor()->course_post_type;
|
43 |
+
$course_marketplace = tutor_utils()->get_option('enable_course_marketplace');
|
44 |
|
45 |
add_meta_box( 'tutor-course-topics', __( 'Course Builder', 'tutor' ), array($this, 'course_meta_box'), $coursePostType );
|
46 |
add_meta_box( 'tutor-course-additional-data', __( 'Additional Data', 'tutor' ), array($this, 'course_additional_data_meta_box'), $coursePostType );
|
47 |
add_meta_box( 'tutor-course-videos', __( 'Video', 'tutor' ), array($this, 'video_metabox'), $coursePostType );
|
48 |
+
|
49 |
+
if ($course_marketplace) {
|
50 |
+
add_meta_box( 'tutor-instructors', __( 'Instructors', 'tutor' ), array( $this, 'instructors_metabox' ), $coursePostType );
|
51 |
+
}
|
52 |
add_meta_box( 'tutor-announcements', __( 'Announcements', 'tutor' ), array($this, 'announcements_metabox'), $coursePostType );
|
53 |
}
|
54 |
public function course_meta_box(){
|
66 |
}
|
67 |
|
68 |
public function instructors_metabox(){
|
69 |
+
include tutor()->path . 'views/metabox/instructors-metabox.php';
|
70 |
}
|
71 |
|
72 |
/**
|
@@ -38,7 +38,6 @@ class Instructor {
|
|
38 |
'last_name' => __('Last name field is required', 'tutor'),
|
39 |
'email' => __('E-Mail field is required', 'tutor'),
|
40 |
'user_login' => __('User Name field is required', 'tutor'),
|
41 |
-
'phone_number' => __('Phone Number field is required', 'tutor'),
|
42 |
'password' => __('Password field is required', 'tutor'),
|
43 |
'password_confirmation' => __('Password Confirmation field is required', 'tutor'),
|
44 |
));
|
@@ -67,9 +66,7 @@ class Instructor {
|
|
67 |
$last_name = sanitize_text_field(tutor_utils()->input_old('last_name'));
|
68 |
$email = sanitize_text_field(tutor_utils()->input_old('email'));
|
69 |
$user_login = sanitize_text_field(tutor_utils()->input_old('user_login'));
|
70 |
-
$phone_number = sanitize_text_field(tutor_utils()->input_old('phone_number'));
|
71 |
$password = sanitize_text_field(tutor_utils()->input_old('password'));
|
72 |
-
$tutor_profile_bio = wp_kses_post(tutor_utils()->input_old('tutor_profile_bio'));
|
73 |
|
74 |
$userdata = array(
|
75 |
'user_login' => $user_login,
|
@@ -82,10 +79,6 @@ class Instructor {
|
|
82 |
|
83 |
$user_id = wp_insert_user( $userdata ) ;
|
84 |
if ( ! is_wp_error($user_id)){
|
85 |
-
update_user_meta($user_id, 'phone_number', $phone_number);
|
86 |
-
update_user_meta($user_id, 'description', $tutor_profile_bio);
|
87 |
-
update_user_meta($user_id, '_tutor_profile_bio', $tutor_profile_bio);
|
88 |
-
|
89 |
update_user_meta($user_id, '_is_tutor_instructor', time());
|
90 |
update_user_meta($user_id, '_tutor_instructor_status', apply_filters('tutor_initial_instructor_status', 'pending'));
|
91 |
|
38 |
'last_name' => __('Last name field is required', 'tutor'),
|
39 |
'email' => __('E-Mail field is required', 'tutor'),
|
40 |
'user_login' => __('User Name field is required', 'tutor'),
|
|
|
41 |
'password' => __('Password field is required', 'tutor'),
|
42 |
'password_confirmation' => __('Password Confirmation field is required', 'tutor'),
|
43 |
));
|
66 |
$last_name = sanitize_text_field(tutor_utils()->input_old('last_name'));
|
67 |
$email = sanitize_text_field(tutor_utils()->input_old('email'));
|
68 |
$user_login = sanitize_text_field(tutor_utils()->input_old('user_login'));
|
|
|
69 |
$password = sanitize_text_field(tutor_utils()->input_old('password'));
|
|
|
70 |
|
71 |
$userdata = array(
|
72 |
'user_login' => $user_login,
|
79 |
|
80 |
$user_id = wp_insert_user( $userdata ) ;
|
81 |
if ( ! is_wp_error($user_id)){
|
|
|
|
|
|
|
|
|
82 |
update_user_meta($user_id, '_is_tutor_instructor', time());
|
83 |
update_user_meta($user_id, '_tutor_instructor_status', apply_filters('tutor_initial_instructor_status', 'pending'));
|
84 |
|
@@ -256,6 +256,12 @@ class Options {
|
|
256 |
'label' => __('Instructor Profile Settings', 'tutor'),
|
257 |
'desc' => __('Enable Disable Option to on/off notification on various event', 'tutor'),
|
258 |
'fields' => array(
|
|
|
|
|
|
|
|
|
|
|
|
|
259 |
'instructor_register_page' => array(
|
260 |
'type' => 'select',
|
261 |
'label' => __('Instructor Register Page', 'tutor'),
|
@@ -269,6 +275,12 @@ class Options {
|
|
269 |
'default' => '0',
|
270 |
'desc' => __('Define if a instructor can publish his courses directly or not, if unchecked, they can still add courses, but it will go to admin for review', 'tutor'),
|
271 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
),
|
273 |
),
|
274 |
),
|
@@ -394,6 +406,40 @@ class Options {
|
|
394 |
),
|
395 |
),
|
396 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
397 |
);
|
398 |
|
399 |
return apply_filters('tutor/options/attr', $attr);
|
256 |
'label' => __('Instructor Profile Settings', 'tutor'),
|
257 |
'desc' => __('Enable Disable Option to on/off notification on various event', 'tutor'),
|
258 |
'fields' => array(
|
259 |
+
'enable_course_marketplace' => array(
|
260 |
+
'type' => 'checkbox',
|
261 |
+
'label' => __('Enable Course Marketplace', 'tutor'),
|
262 |
+
'default' => '0',
|
263 |
+
'desc' => __('By enabling this settings will allow multiple instructors can upload their course.', 'tutor'),
|
264 |
+
),
|
265 |
'instructor_register_page' => array(
|
266 |
'type' => 'select',
|
267 |
'label' => __('Instructor Register Page', 'tutor'),
|
275 |
'default' => '0',
|
276 |
'desc' => __('Define if a instructor can publish his courses directly or not, if unchecked, they can still add courses, but it will go to admin for review', 'tutor'),
|
277 |
),
|
278 |
+
'enable_become_instructor_btn' => array(
|
279 |
+
'type' => 'checkbox',
|
280 |
+
'label' => __('Enable Become Instructor Button', 'tutor'),
|
281 |
+
'default' => '0',
|
282 |
+
'desc' => __('It will show an Button to go Instructor registration form in student dashboard', 'tutor'),
|
283 |
+
),
|
284 |
),
|
285 |
),
|
286 |
),
|
406 |
),
|
407 |
),
|
408 |
),
|
409 |
+
|
410 |
+
'tutor_style' => array(
|
411 |
+
'label' => __('Style', 'tutor'),
|
412 |
+
'sections' => array(
|
413 |
+
'general' => array(
|
414 |
+
'label' => __('Color Style', 'tutor'),
|
415 |
+
'fields' => array(
|
416 |
+
'tutor_primary_color' => array(
|
417 |
+
'type' => 'color',
|
418 |
+
'label' => __('Primary Color', 'tutor'),
|
419 |
+
'default' => '',
|
420 |
+
),
|
421 |
+
'tutor_primary_hover_color' => array(
|
422 |
+
'type' => 'color',
|
423 |
+
'label' => __('Primary Hover Color', 'tutor'),
|
424 |
+
'default' => '',
|
425 |
+
),
|
426 |
+
'tutor_text_color' => array(
|
427 |
+
'type' => 'color',
|
428 |
+
'label' => __('Text color', 'tutor'),
|
429 |
+
'default' => '',
|
430 |
+
),
|
431 |
+
'tutor_light_color' => array(
|
432 |
+
'type' => 'color',
|
433 |
+
'label' => __('Light color', 'tutor'),
|
434 |
+
'default' => '',
|
435 |
+
),
|
436 |
+
),
|
437 |
+
),
|
438 |
+
|
439 |
+
),
|
440 |
+
),
|
441 |
+
|
442 |
+
|
443 |
);
|
444 |
|
445 |
return apply_filters('tutor/options/attr', $attr);
|
@@ -15,6 +15,7 @@ class Post_types{
|
|
15 |
add_action( 'init', array($this, 'register_course_post_types') );
|
16 |
add_action( 'init', array($this, 'register_lesson_post_types') );
|
17 |
add_action( 'init', array($this, 'register_quiz_post_types') );
|
|
|
18 |
|
19 |
|
20 |
/**
|
@@ -237,7 +238,20 @@ class Post_types{
|
|
237 |
register_post_type( 'tutor_quiz', $args );
|
238 |
}
|
239 |
|
240 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
|
242 |
function course_updated_messages( $messages ) {
|
243 |
$post = get_post();
|
15 |
add_action( 'init', array($this, 'register_course_post_types') );
|
16 |
add_action( 'init', array($this, 'register_lesson_post_types') );
|
17 |
add_action( 'init', array($this, 'register_quiz_post_types') );
|
18 |
+
add_action( 'init', array($this, 'register_topic_post_types') );
|
19 |
|
20 |
|
21 |
/**
|
238 |
register_post_type( 'tutor_quiz', $args );
|
239 |
}
|
240 |
|
241 |
+
public function register_topic_post_types(){
|
242 |
+
$args = array(
|
243 |
+
'label' => 'Topics',
|
244 |
+
'description' => __( 'Description.', 'tutor' ),
|
245 |
+
'public' => false,
|
246 |
+
'publicly_queryable' => false,
|
247 |
+
'show_ui' => false,
|
248 |
+
'query_var' => false,
|
249 |
+
'has_archive' => false,
|
250 |
+
'hierarchical' => false,
|
251 |
+
'menu_position' => null,
|
252 |
+
);
|
253 |
+
register_post_type( 'topics', $args );
|
254 |
+
}
|
255 |
|
256 |
function course_updated_messages( $messages ) {
|
257 |
$post = get_post();
|
@@ -39,7 +39,6 @@ class Student {
|
|
39 |
'last_name' => __('Last name field is required', 'tutor'),
|
40 |
'email' => __('E-Mail field is required', 'tutor'),
|
41 |
'user_login' => __('User Name field is required', 'tutor'),
|
42 |
-
'phone_number' => __('Phone Number field is required', 'tutor'),
|
43 |
'password' => __('Password field is required', 'tutor'),
|
44 |
'password_confirmation' => __('Password Confirmation field is required', 'tutor'),
|
45 |
));
|
@@ -68,9 +67,7 @@ class Student {
|
|
68 |
$last_name = sanitize_text_field(tutor_utils()->input_old('last_name'));
|
69 |
$email = sanitize_text_field(tutor_utils()->input_old('email'));
|
70 |
$user_login = sanitize_text_field(tutor_utils()->input_old('user_login'));
|
71 |
-
$phone_number = sanitize_text_field(tutor_utils()->input_old('phone_number'));
|
72 |
$password = sanitize_text_field(tutor_utils()->input_old('password'));
|
73 |
-
$tutor_profile_bio = wp_kses_post(tutor_utils()->input_old('tutor_profile_bio'));
|
74 |
|
75 |
$userdata = array(
|
76 |
'user_login' => $user_login,
|
@@ -83,10 +80,6 @@ class Student {
|
|
83 |
|
84 |
$user_id = wp_insert_user( $userdata ) ;
|
85 |
if ( ! is_wp_error($user_id)){
|
86 |
-
update_user_meta($user_id, 'phone_number', $phone_number);
|
87 |
-
update_user_meta($user_id, 'description', $tutor_profile_bio);
|
88 |
-
update_user_meta($user_id, '_tutor_profile_bio', $tutor_profile_bio);
|
89 |
-
|
90 |
$user = get_user_by( 'id', $user_id );
|
91 |
if( $user ) {
|
92 |
wp_set_current_user( $user_id, $user->user_login );
|
@@ -220,10 +213,12 @@ class Student {
|
|
220 |
|
221 |
if ($previous_password_checked && ! empty($new_password) && $new_password === $confirm_new_password){
|
222 |
wp_set_password($new_password, $user->ID);
|
|
|
223 |
}
|
224 |
|
225 |
wp_redirect(wp_get_raw_referer());
|
226 |
die();
|
227 |
}
|
228 |
|
|
|
229 |
}
|
39 |
'last_name' => __('Last name field is required', 'tutor'),
|
40 |
'email' => __('E-Mail field is required', 'tutor'),
|
41 |
'user_login' => __('User Name field is required', 'tutor'),
|
|
|
42 |
'password' => __('Password field is required', 'tutor'),
|
43 |
'password_confirmation' => __('Password Confirmation field is required', 'tutor'),
|
44 |
));
|
67 |
$last_name = sanitize_text_field(tutor_utils()->input_old('last_name'));
|
68 |
$email = sanitize_text_field(tutor_utils()->input_old('email'));
|
69 |
$user_login = sanitize_text_field(tutor_utils()->input_old('user_login'));
|
|
|
70 |
$password = sanitize_text_field(tutor_utils()->input_old('password'));
|
|
|
71 |
|
72 |
$userdata = array(
|
73 |
'user_login' => $user_login,
|
80 |
|
81 |
$user_id = wp_insert_user( $userdata ) ;
|
82 |
if ( ! is_wp_error($user_id)){
|
|
|
|
|
|
|
|
|
83 |
$user = get_user_by( 'id', $user_id );
|
84 |
if( $user ) {
|
85 |
wp_set_current_user( $user_id, $user->user_login );
|
213 |
|
214 |
if ($previous_password_checked && ! empty($new_password) && $new_password === $confirm_new_password){
|
215 |
wp_set_password($new_password, $user->ID);
|
216 |
+
tutor_utils()->set_flash_msg('Password set successfully');
|
217 |
}
|
218 |
|
219 |
wp_redirect(wp_get_raw_referer());
|
220 |
die();
|
221 |
}
|
222 |
|
223 |
+
|
224 |
}
|
@@ -23,4 +23,6 @@ class Tools {
|
|
23 |
}
|
24 |
}
|
25 |
|
|
|
|
|
26 |
}
|
23 |
}
|
24 |
}
|
25 |
|
26 |
+
|
27 |
+
|
28 |
}
|
@@ -1939,17 +1939,18 @@ class Utils {
|
|
1939 |
|
1940 |
if (current_user_can(tutor()->instructor_role)) {
|
1941 |
$instructor_items = array(
|
1942 |
-
'my-courses'
|
1943 |
-
'quiz-attempts'
|
1944 |
-
'earning'
|
1945 |
-
'withdraw'
|
1946 |
);
|
1947 |
|
1948 |
$nav_items = array_merge($nav_items, $instructor_items);
|
1949 |
}
|
1950 |
|
1951 |
-
$nav_items['
|
1952 |
-
$nav_items['
|
|
|
1953 |
|
1954 |
return apply_filters('tutor_dashboard/nav_items', $nav_items);
|
1955 |
}
|
@@ -4105,6 +4106,11 @@ class Utils {
|
|
4105 |
|
4106 |
}
|
4107 |
|
|
|
|
|
|
|
|
|
|
|
4108 |
public function add_instructor_role($instructor_id = 0){
|
4109 |
if ( ! $instructor_id){
|
4110 |
return;
|
@@ -4120,6 +4126,11 @@ class Utils {
|
|
4120 |
do_action('tutor_after_approved_instructor', $instructor_id);
|
4121 |
}
|
4122 |
|
|
|
|
|
|
|
|
|
|
|
4123 |
public function remove_instructor_role($instructor_id = 0){
|
4124 |
if ( ! $instructor_id){
|
4125 |
return;
|
@@ -4133,4 +4144,74 @@ class Utils {
|
|
4133 |
do_action('tutor_after_blocked_instructor', $instructor_id);
|
4134 |
}
|
4135 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4136 |
}
|
1939 |
|
1940 |
if (current_user_can(tutor()->instructor_role)) {
|
1941 |
$instructor_items = array(
|
1942 |
+
'my-courses' => __('My Courses', 'tutor'),
|
1943 |
+
'quiz-attempts' => __('Quiz Attempts', 'tutor'),
|
1944 |
+
'earning' => __('Earning', 'tutor'),
|
1945 |
+
'withdraw' => __('Withdraw', 'tutor'),
|
1946 |
);
|
1947 |
|
1948 |
$nav_items = array_merge($nav_items, $instructor_items);
|
1949 |
}
|
1950 |
|
1951 |
+
$nav_items['purchase_history'] = __('Purchase History', 'tutor');
|
1952 |
+
$nav_items['settings'] = __('Settings', 'tutor');
|
1953 |
+
$nav_items['logout'] = __('Logout', 'tutor');
|
1954 |
|
1955 |
return apply_filters('tutor_dashboard/nav_items', $nav_items);
|
1956 |
}
|
4106 |
|
4107 |
}
|
4108 |
|
4109 |
+
/**
|
4110 |
+
* @param int $instructor_id
|
4111 |
+
*
|
4112 |
+
* Add Instructor role to any user by user iD
|
4113 |
+
*/
|
4114 |
public function add_instructor_role($instructor_id = 0){
|
4115 |
if ( ! $instructor_id){
|
4116 |
return;
|
4126 |
do_action('tutor_after_approved_instructor', $instructor_id);
|
4127 |
}
|
4128 |
|
4129 |
+
/**
|
4130 |
+
* @param int $instructor_id
|
4131 |
+
*
|
4132 |
+
* Remove instructor role by instructor id
|
4133 |
+
*/
|
4134 |
public function remove_instructor_role($instructor_id = 0){
|
4135 |
if ( ! $instructor_id){
|
4136 |
return;
|
4144 |
do_action('tutor_after_blocked_instructor', $instructor_id);
|
4145 |
}
|
4146 |
|
4147 |
+
/**
|
4148 |
+
* @param string $msg
|
4149 |
+
* @param string $name
|
4150 |
+
*
|
4151 |
+
* Set Flash Message to view in next action / route
|
4152 |
+
*/
|
4153 |
+
public function set_flash_msg($msg = '', $name = 'success'){
|
4154 |
+
global $wp_filesystem;
|
4155 |
+
if ( ! $wp_filesystem ) {
|
4156 |
+
require_once( ABSPATH . 'wp-admin/includes/file.php' );
|
4157 |
+
}
|
4158 |
+
|
4159 |
+
$filename = "tutor_flash_msg_{$name}.txt";
|
4160 |
+
$upload_dir = wp_upload_dir();
|
4161 |
+
$dir = trailingslashit($upload_dir['basedir']) . 'tutor/';
|
4162 |
+
|
4163 |
+
WP_Filesystem( false, $upload_dir['basedir'], true );
|
4164 |
+
|
4165 |
+
if( ! $wp_filesystem->is_dir( $dir ) ) {
|
4166 |
+
$wp_filesystem->mkdir( $dir );
|
4167 |
+
}
|
4168 |
+
$wp_filesystem->put_contents( $dir . $filename, $msg );
|
4169 |
+
}
|
4170 |
+
|
4171 |
+
/**
|
4172 |
+
* @param null $name
|
4173 |
+
*
|
4174 |
+
* @return mixed|string|void
|
4175 |
+
*
|
4176 |
+
* Get Flash Message
|
4177 |
+
*/
|
4178 |
+
public function get_flash_msg($name = null){
|
4179 |
+
if ( ! $name){
|
4180 |
+
return '';
|
4181 |
+
}
|
4182 |
+
|
4183 |
+
$upload_dir = wp_get_upload_dir();
|
4184 |
+
$upload_dir = trailingslashit($upload_dir['basedir']);
|
4185 |
+
$msg_name = 'tutor_flash_msg_'.$name;
|
4186 |
+
|
4187 |
+
$msg = '';
|
4188 |
+
$flash_msg_file_name = $upload_dir."tutor/{$msg_name}.txt";
|
4189 |
+
if (file_exists($flash_msg_file_name)){
|
4190 |
+
$msg = file_get_contents($flash_msg_file_name);
|
4191 |
+
unlink($flash_msg_file_name);
|
4192 |
+
}
|
4193 |
+
|
4194 |
+
return apply_filters('tutor_get_flash_msg', $msg, $name);
|
4195 |
+
}
|
4196 |
+
|
4197 |
+
/**
|
4198 |
+
* @param int $user_id
|
4199 |
+
*
|
4200 |
+
* @return array|null|object
|
4201 |
+
*
|
4202 |
+
* Get purchase history by customer id
|
4203 |
+
*/
|
4204 |
+
|
4205 |
+
public function get_orders_by_user_id($user_id = 0){
|
4206 |
+
global $wpdb;
|
4207 |
+
|
4208 |
+
$user_id = $this->get_user_id();
|
4209 |
+
|
4210 |
+
$query = $wpdb->get_results("SELECT {$wpdb->posts}.* FROM {$wpdb->posts}
|
4211 |
+
INNER JOIN {$wpdb->postmeta} customer ON ID = customer.post_id AND customer.meta_key = '_customer_user'
|
4212 |
+
INNER JOIN {$wpdb->postmeta} tutor_order ON ID = tutor_order.post_id AND tutor_order.meta_key = '_is_tutor_order_for_course'
|
4213 |
+
where post_type = 'shop_order' AND customer.meta_value = {$user_id} ");
|
4214 |
+
return $query;
|
4215 |
+
}
|
4216 |
+
|
4217 |
}
|
@@ -2,6 +2,7 @@ body.single-lesson #content .col-full{
|
|
2 |
width: 100%;
|
3 |
max-width: 100%;
|
4 |
padding: 0;
|
|
|
5 |
}
|
6 |
.tutor-container{
|
7 |
max-width: 100%;
|
2 |
width: 100%;
|
3 |
max-width: 100%;
|
4 |
padding: 0;
|
5 |
+
margin: 0;
|
6 |
}
|
7 |
.tutor-container{
|
8 |
max-width: 100%;
|
@@ -167,12 +167,16 @@ if ( ! function_exists('tutor_course_loop_end_content_wrap')) {
|
|
167 |
}
|
168 |
|
169 |
if ( ! function_exists('tutor_course_loop_thumbnail')) {
|
170 |
-
function tutor_course_loop_thumbnail() {
|
171 |
ob_start();
|
172 |
tutor_load_template( 'loop.thumbnail' );
|
173 |
$output = apply_filters( 'tutor_course_loop_thumbnail', ob_get_clean() );
|
174 |
|
175 |
-
|
|
|
|
|
|
|
|
|
176 |
}
|
177 |
}
|
178 |
|
@@ -323,6 +327,10 @@ if ( ! function_exists('tutor_course_loop_author')) {
|
|
323 |
}
|
324 |
}
|
325 |
|
|
|
|
|
|
|
|
|
326 |
if ( ! function_exists('tutor_course_loop_price')) {
|
327 |
function tutor_course_loop_price() {
|
328 |
ob_start();
|
@@ -339,6 +347,9 @@ if ( ! function_exists('tutor_course_loop_price')) {
|
|
339 |
}
|
340 |
}
|
341 |
|
|
|
|
|
|
|
342 |
if ( ! function_exists('tutor_course_loop_rating')) {
|
343 |
function tutor_course_loop_rating() {
|
344 |
ob_start();
|
@@ -349,6 +360,14 @@ if ( ! function_exists('tutor_course_loop_rating')) {
|
|
349 |
}
|
350 |
}
|
351 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
352 |
if ( ! function_exists('tutor_course_loop_add_to_cart')) {
|
353 |
function tutor_course_loop_add_to_cart($echo = true) {
|
354 |
ob_start();
|
@@ -367,8 +386,6 @@ if ( ! function_exists('tutor_course_loop_add_to_cart')) {
|
|
367 |
}
|
368 |
}
|
369 |
|
370 |
-
|
371 |
-
|
372 |
if ( ! function_exists('tutor_course_price')) {
|
373 |
function tutor_course_price() {
|
374 |
ob_start();
|
@@ -379,7 +396,6 @@ if ( ! function_exists('tutor_course_price')) {
|
|
379 |
}
|
380 |
}
|
381 |
|
382 |
-
|
383 |
/**
|
384 |
* @param int $post_id
|
385 |
*
|
@@ -832,6 +848,14 @@ if ( ! function_exists('tutor_course_enroll_box')) {
|
|
832 |
}
|
833 |
}
|
834 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
835 |
function tutor_single_course_add_to_cart($echo = true){
|
836 |
ob_start();
|
837 |
|
@@ -1166,6 +1190,15 @@ if ( ! function_exists('get_tutor_course_categories')){
|
|
1166 |
return $terms;
|
1167 |
}
|
1168 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1169 |
if ( ! function_exists('get_tutor_course_tags')){
|
1170 |
function get_tutor_course_tags($course_id = 0){
|
1171 |
if ( ! $course_id ) {
|
@@ -1177,6 +1210,14 @@ if ( ! function_exists('get_tutor_course_tags')){
|
|
1177 |
}
|
1178 |
}
|
1179 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1180 |
if ( ! function_exists('tutor_course_tags_html')) {
|
1181 |
function tutor_course_tags_html( $echo = true ) {
|
1182 |
ob_start();
|
@@ -1191,6 +1232,14 @@ if ( ! function_exists('tutor_course_tags_html')) {
|
|
1191 |
}
|
1192 |
}
|
1193 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1194 |
if ( ! function_exists('tutor_lesson_sidebar_question_and_answer')) {
|
1195 |
function tutor_lesson_sidebar_question_and_answer( $echo = true ) {
|
1196 |
ob_start();
|
@@ -1205,6 +1254,14 @@ if ( ! function_exists('tutor_lesson_sidebar_question_and_answer')) {
|
|
1205 |
}
|
1206 |
}
|
1207 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1208 |
if ( ! function_exists('tutor_social_share')) {
|
1209 |
function tutor_social_share( $echo = true ) {
|
1210 |
ob_start();
|
167 |
}
|
168 |
|
169 |
if ( ! function_exists('tutor_course_loop_thumbnail')) {
|
170 |
+
function tutor_course_loop_thumbnail($echo = true) {
|
171 |
ob_start();
|
172 |
tutor_load_template( 'loop.thumbnail' );
|
173 |
$output = apply_filters( 'tutor_course_loop_thumbnail', ob_get_clean() );
|
174 |
|
175 |
+
if ($echo){
|
176 |
+
echo $output;
|
177 |
+
}else{
|
178 |
+
return $output;
|
179 |
+
}
|
180 |
}
|
181 |
}
|
182 |
|
327 |
}
|
328 |
}
|
329 |
|
330 |
+
/**
|
331 |
+
* Get formatted price with cart form
|
332 |
+
*/
|
333 |
+
|
334 |
if ( ! function_exists('tutor_course_loop_price')) {
|
335 |
function tutor_course_loop_price() {
|
336 |
ob_start();
|
347 |
}
|
348 |
}
|
349 |
|
350 |
+
/**
|
351 |
+
* Get Course rating
|
352 |
+
*/
|
353 |
if ( ! function_exists('tutor_course_loop_rating')) {
|
354 |
function tutor_course_loop_rating() {
|
355 |
ob_start();
|
360 |
}
|
361 |
}
|
362 |
|
363 |
+
/**
|
364 |
+
* @param bool $echo
|
365 |
+
*
|
366 |
+
* @return mixed|void
|
367 |
+
*
|
368 |
+
* Get add to cart form
|
369 |
+
*/
|
370 |
+
|
371 |
if ( ! function_exists('tutor_course_loop_add_to_cart')) {
|
372 |
function tutor_course_loop_add_to_cart($echo = true) {
|
373 |
ob_start();
|
386 |
}
|
387 |
}
|
388 |
|
|
|
|
|
389 |
if ( ! function_exists('tutor_course_price')) {
|
390 |
function tutor_course_price() {
|
391 |
ob_start();
|
396 |
}
|
397 |
}
|
398 |
|
|
|
399 |
/**
|
400 |
* @param int $post_id
|
401 |
*
|
848 |
}
|
849 |
}
|
850 |
|
851 |
+
/**
|
852 |
+
* @param bool $echo
|
853 |
+
*
|
854 |
+
* @return string
|
855 |
+
*
|
856 |
+
* Get Only add to cart form
|
857 |
+
*/
|
858 |
+
|
859 |
function tutor_single_course_add_to_cart($echo = true){
|
860 |
ob_start();
|
861 |
|
1190 |
return $terms;
|
1191 |
}
|
1192 |
}
|
1193 |
+
|
1194 |
+
/**
|
1195 |
+
* @param int $course_id
|
1196 |
+
*
|
1197 |
+
* @return array|false|WP_Error
|
1198 |
+
*
|
1199 |
+
* Get course tags
|
1200 |
+
*/
|
1201 |
+
|
1202 |
if ( ! function_exists('get_tutor_course_tags')){
|
1203 |
function get_tutor_course_tags($course_id = 0){
|
1204 |
if ( ! $course_id ) {
|
1210 |
}
|
1211 |
}
|
1212 |
|
1213 |
+
/**
|
1214 |
+
* @param bool $echo
|
1215 |
+
*
|
1216 |
+
* @return mixed|void
|
1217 |
+
*
|
1218 |
+
* Template for course tags html
|
1219 |
+
*/
|
1220 |
+
|
1221 |
if ( ! function_exists('tutor_course_tags_html')) {
|
1222 |
function tutor_course_tags_html( $echo = true ) {
|
1223 |
ob_start();
|
1232 |
}
|
1233 |
}
|
1234 |
|
1235 |
+
/**
|
1236 |
+
* @param bool $echo
|
1237 |
+
*
|
1238 |
+
* @return mixed
|
1239 |
+
*
|
1240 |
+
* Get Q&A in lesson sidebar
|
1241 |
+
*/
|
1242 |
+
|
1243 |
if ( ! function_exists('tutor_lesson_sidebar_question_and_answer')) {
|
1244 |
function tutor_lesson_sidebar_question_and_answer( $echo = true ) {
|
1245 |
ob_start();
|
1254 |
}
|
1255 |
}
|
1256 |
|
1257 |
+
/**
|
1258 |
+
* @param bool $echo
|
1259 |
+
*
|
1260 |
+
* @return mixed|void
|
1261 |
+
*
|
1262 |
+
* Get Social Share button to share on social media
|
1263 |
+
*/
|
1264 |
+
|
1265 |
if ( ! function_exists('tutor_social_share')) {
|
1266 |
function tutor_social_share( $echo = true ) {
|
1267 |
ob_start();
|
@@ -5,7 +5,7 @@ Tags: lms, course, elearning, education, quiz, training, sell courses, courses,
|
|
5 |
Requires at least: 4.5
|
6 |
Tested up to: 5.2
|
7 |
Requires PHP: 5.4.0
|
8 |
-
Stable tag: 1.
|
9 |
License: GPLv3
|
10 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
@@ -206,6 +206,20 @@ Tutor enables you to use any third party plugins without facing any compatibilit
|
|
206 |
|
207 |
== Changelog ==
|
208 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
= 1.2.20 - 10 May, 2019 =
|
210 |
|
211 |
* Added: Reset Password from Tutor dashboard
|
5 |
Requires at least: 4.5
|
6 |
Tested up to: 5.2
|
7 |
Requires PHP: 5.4.0
|
8 |
+
Stable tag: 1.3.0
|
9 |
License: GPLv3
|
10 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
11 |
|
206 |
|
207 |
== Changelog ==
|
208 |
|
209 |
+
= 1.3.0 - 17 May, 2019 =
|
210 |
+
|
211 |
+
* Added: Flash Msg ability to show flash msg in a different view or different action
|
212 |
+
* Added: Styling, change default color scheme
|
213 |
+
* Added: return at tutor_course_loop_thumbnail() based on $echo condition
|
214 |
+
* Added: Purchase history from the dashboard
|
215 |
+
* Added: Become Instructor Button on student dashboard based on settings
|
216 |
+
* Added: Enable Disable Course Market place, default Tutor LMS will be single instructor format.
|
217 |
+
* Fixed: a template div closing/return issue in dashboard > reviews menu
|
218 |
+
* Fixed: Tutor course content export-import in WordPress way
|
219 |
+
* Fixed: Some responsive issue in course details and lesson page
|
220 |
+
* Reduced: Instructor and Student Registration form field. removed phone number and profile bio filed from the registration page.
|
221 |
+
* Moved: tutor icon CSS file from tutor-front.css file to individually
|
222 |
+
|
223 |
= 1.2.20 - 10 May, 2019 =
|
224 |
|
225 |
* Added: Reset Password from Tutor dashboard
|
@@ -77,20 +77,23 @@ do_action('tutor_dashboard/before/wrap'); ?>
|
|
77 |
<?php
|
78 |
|
79 |
if(current_user_can(tutor()->instructor_role)){
|
80 |
-
|
81 |
-
|
|
|
|
|
|
|
|
|
82 |
}else{
|
83 |
-
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
85 |
}
|
86 |
?>
|
87 |
|
88 |
-
<?php if (! current_user_can(tutor()->instructor_role)){ ?>
|
89 |
-
<a class="tutor-btn bordered-btn" href="<?php echo esc_url($button_page_url); ?>">
|
90 |
-
<?php echo $buton_text; ?>
|
91 |
-
</a>
|
92 |
-
<?php } ?>
|
93 |
-
|
94 |
</div>
|
95 |
|
96 |
</div>
|
@@ -107,6 +110,7 @@ do_action('tutor_dashboard/before/wrap'); ?>
|
|
107 |
if ($dashboard_key === 'index')
|
108 |
$dashboard_key = '';
|
109 |
$active_class = $dashboard_key == $dashboard_page_slug ? 'active' : '';
|
|
|
110 |
echo "<li class='{$li_class} {$active_class}'><a href='".tutor_utils()->get_tutor_dashboard_page_permalink($dashboard_key)."'> {$dashboard_page} </a> </li>";
|
111 |
}
|
112 |
?>
|
@@ -130,9 +134,6 @@ do_action('tutor_dashboard/before/wrap'); ?>
|
|
130 |
</div>
|
131 |
|
132 |
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
<?php do_action('tutor_dashboard/after/wrap'); ?>
|
137 |
|
138 |
<?php
|
77 |
<?php
|
78 |
|
79 |
if(current_user_can(tutor()->instructor_role)){
|
80 |
+
?>
|
81 |
+
<a class="tutor-btn bordered-btn" href="<?php echo esc_url(add_query_arg(array('post_type'=>'course'),admin_url('post-new.php'))); ?>">
|
82 |
+
<?php _e('<i class="tutor-icon-video-camera"></i> Upload A Course', 'tutor'); ?>
|
83 |
+
</a>
|
84 |
+
<?php
|
85 |
+
|
86 |
}else{
|
87 |
+
if (tutor_utils()->get_option('enable_become_instructor_btn')) {
|
88 |
+
?>
|
89 |
+
<a class="tutor-btn bordered-btn" href="<?php echo esc_url(tutor_utils()->instructor_register_url()); ?>">
|
90 |
+
<?php _e( '<i class="tutor-icon-man-user"></i> Become an instructor', 'tutor' ); ?>
|
91 |
+
</a>
|
92 |
+
<?php
|
93 |
+
}
|
94 |
}
|
95 |
?>
|
96 |
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
</div>
|
98 |
|
99 |
</div>
|
110 |
if ($dashboard_key === 'index')
|
111 |
$dashboard_key = '';
|
112 |
$active_class = $dashboard_key == $dashboard_page_slug ? 'active' : '';
|
113 |
+
|
114 |
echo "<li class='{$li_class} {$active_class}'><a href='".tutor_utils()->get_tutor_dashboard_page_permalink($dashboard_key)."'> {$dashboard_page} </a> </li>";
|
115 |
}
|
116 |
?>
|
134 |
</div>
|
135 |
|
136 |
|
|
|
|
|
|
|
137 |
<?php do_action('tutor_dashboard/after/wrap'); ?>
|
138 |
|
139 |
<?php
|
@@ -14,7 +14,7 @@
|
|
14 |
?>
|
15 |
|
16 |
<div class="tutor-form-row">
|
17 |
-
<div class="tutor-form-col-
|
18 |
<div class="tutor-form-group">
|
19 |
<label>
|
20 |
<?php _e('First Name', 'tutor'); ?>
|
@@ -24,7 +24,7 @@
|
|
24 |
</div>
|
25 |
</div>
|
26 |
|
27 |
-
<div class="tutor-form-col-
|
28 |
<div class="tutor-form-group">
|
29 |
<label>
|
30 |
<?php _e('Last Name', 'tutor'); ?>
|
@@ -34,36 +34,28 @@
|
|
34 |
</div>
|
35 |
</div>
|
36 |
|
37 |
-
<div class="tutor-form-col-4">
|
38 |
-
<div class="tutor-form-group">
|
39 |
-
<label>
|
40 |
-
<?php _e('User Name', 'tutor'); ?>
|
41 |
-
</label>
|
42 |
|
43 |
-
<input type="text" name="user_login" class="tutor_user_name" value="<?php echo tutor_utils()->input_old('user_login'); ?>" placeholder="<?php _e('User Name', 'tutor'); ?>">
|
44 |
-
</div>
|
45 |
-
</div>
|
46 |
</div>
|
47 |
|
48 |
<div class="tutor-form-row">
|
|
|
49 |
<div class="tutor-form-col-6">
|
50 |
<div class="tutor-form-group">
|
51 |
<label>
|
52 |
-
|
53 |
</label>
|
54 |
|
55 |
-
<input type="text" name="
|
56 |
</div>
|
57 |
</div>
|
58 |
|
59 |
-
|
60 |
<div class="tutor-form-col-6">
|
61 |
<div class="tutor-form-group">
|
62 |
<label>
|
63 |
-
|
64 |
</label>
|
65 |
|
66 |
-
<input type="text" name="
|
67 |
</div>
|
68 |
</div>
|
69 |
|
@@ -91,22 +83,10 @@
|
|
91 |
</div>
|
92 |
</div>
|
93 |
|
94 |
-
<div class="tutor-form-row">
|
95 |
-
<div class="tutor-form-col-12">
|
96 |
-
<div class="tutor-form-group">
|
97 |
-
<label>
|
98 |
-
<?php _e('Bio', 'tutor'); ?>
|
99 |
-
</label>
|
100 |
-
|
101 |
-
<textarea name="tutor_profile_bio"><?php echo tutor_utils()->input_old('tutor_profile_bio'); ?></textarea>
|
102 |
-
</div>
|
103 |
-
</div>
|
104 |
-
</div>
|
105 |
-
|
106 |
<div class="tutor-form-row">
|
107 |
<div class="tutor-form-col-12">
|
108 |
<div class="tutor-form-group tutor-reg-form-btn-wrap">
|
109 |
-
<button type="submit" name="tutor_register_instructor_btn" value="register" class="tutor-button"><?php _e('
|
110 |
</div>
|
111 |
</div>
|
112 |
</div>
|
14 |
?>
|
15 |
|
16 |
<div class="tutor-form-row">
|
17 |
+
<div class="tutor-form-col-6">
|
18 |
<div class="tutor-form-group">
|
19 |
<label>
|
20 |
<?php _e('First Name', 'tutor'); ?>
|
24 |
</div>
|
25 |
</div>
|
26 |
|
27 |
+
<div class="tutor-form-col-6">
|
28 |
<div class="tutor-form-group">
|
29 |
<label>
|
30 |
<?php _e('Last Name', 'tutor'); ?>
|
34 |
</div>
|
35 |
</div>
|
36 |
|
|
|
|
|
|
|
|
|
|
|
37 |
|
|
|
|
|
|
|
38 |
</div>
|
39 |
|
40 |
<div class="tutor-form-row">
|
41 |
+
|
42 |
<div class="tutor-form-col-6">
|
43 |
<div class="tutor-form-group">
|
44 |
<label>
|
45 |
+
<?php _e('User Name', 'tutor'); ?>
|
46 |
</label>
|
47 |
|
48 |
+
<input type="text" name="user_login" class="tutor_user_name" value="<?php echo tutor_utils()->input_old('user_login'); ?>" placeholder="<?php _e('User Name', 'tutor'); ?>">
|
49 |
</div>
|
50 |
</div>
|
51 |
|
|
|
52 |
<div class="tutor-form-col-6">
|
53 |
<div class="tutor-form-group">
|
54 |
<label>
|
55 |
+
<?php _e('E-Mail', 'tutor'); ?>
|
56 |
</label>
|
57 |
|
58 |
+
<input type="text" name="email" value="<?php echo tutor_utils()->input_old('email'); ?>" placeholder="<?php _e('E-Mail', 'tutor'); ?>">
|
59 |
</div>
|
60 |
</div>
|
61 |
|
83 |
</div>
|
84 |
</div>
|
85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
<div class="tutor-form-row">
|
87 |
<div class="tutor-form-col-12">
|
88 |
<div class="tutor-form-group tutor-reg-form-btn-wrap">
|
89 |
+
<button type="submit" name="tutor_register_instructor_btn" value="register" class="tutor-button"><?php _e('Register as instructor', 'tutor'); ?></button>
|
90 |
</div>
|
91 |
</div>
|
92 |
</div>
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<h2>Purchase History</h2>
|
2 |
+
|
3 |
+
<?php
|
4 |
+
$orders = tutor_utils()->get_orders_by_user_id();
|
5 |
+
|
6 |
+
if (tutor_utils()->count($orders)){
|
7 |
+
?>
|
8 |
+
<table>
|
9 |
+
<tr>
|
10 |
+
<th>ID</th>
|
11 |
+
<th>Courses</th>
|
12 |
+
<th>Amount</th>
|
13 |
+
<th>Date</th>
|
14 |
+
</tr>
|
15 |
+
<?php
|
16 |
+
foreach ($orders as $order){
|
17 |
+
$wc_order = wc_get_order($order->ID);
|
18 |
+
?>
|
19 |
+
<tr>
|
20 |
+
<td>#<?php echo $order->ID; ?></td>
|
21 |
+
<td>
|
22 |
+
<?php
|
23 |
+
$courses = tutor_utils()->get_course_enrolled_ids_by_order_id($order->ID);
|
24 |
+
if (tutor_utils()->count($courses)){
|
25 |
+
foreach ($courses as $course){
|
26 |
+
echo '<p>'.get_the_title($course['course_id']).'</p>';
|
27 |
+
}
|
28 |
+
}
|
29 |
+
?>
|
30 |
+
</td>
|
31 |
+
<td><?php echo tutor_utils()->tutor_price($wc_order->get_total()); ?></td>
|
32 |
+
<td>
|
33 |
+
<?php echo date_i18n(get_option('date_format'), strtotime($order->post_date)) ?>
|
34 |
+
</td>
|
35 |
+
</tr>
|
36 |
+
<?php
|
37 |
+
}
|
38 |
+
?>
|
39 |
+
</table>
|
40 |
+
<?php
|
41 |
+
}else{
|
42 |
+
echo _e('No purchase history available', 'tutor');
|
43 |
+
}
|
44 |
+
|
45 |
+
?>
|
@@ -14,7 +14,7 @@
|
|
14 |
?>
|
15 |
|
16 |
<div class="tutor-form-row">
|
17 |
-
<div class="tutor-form-col-
|
18 |
<div class="tutor-form-group">
|
19 |
<label>
|
20 |
<?php _e('First Name', 'tutor'); ?>
|
@@ -24,7 +24,7 @@
|
|
24 |
</div>
|
25 |
</div>
|
26 |
|
27 |
-
<div class="tutor-form-col-
|
28 |
<div class="tutor-form-group">
|
29 |
<label>
|
30 |
<?php _e('Last Name', 'tutor'); ?>
|
@@ -34,38 +34,29 @@
|
|
34 |
</div>
|
35 |
</div>
|
36 |
|
37 |
-
<div class="tutor-form-col-4">
|
38 |
-
<div class="tutor-form-group">
|
39 |
-
<label>
|
40 |
-
<?php _e('User Name', 'tutor'); ?>
|
41 |
-
</label>
|
42 |
-
|
43 |
-
<input type="text" name="user_login" class="tutor_user_name" value="<?php echo tutor_utils()->input_old('user_login'); ?>" placeholder="<?php _e('User Name', 'tutor'); ?>">
|
44 |
-
</div>
|
45 |
-
</div>
|
46 |
</div>
|
47 |
|
48 |
<div class="tutor-form-row">
|
49 |
<div class="tutor-form-col-6">
|
50 |
<div class="tutor-form-group">
|
51 |
<label>
|
52 |
-
|
53 |
</label>
|
54 |
|
55 |
-
<input type="text" name="
|
56 |
</div>
|
57 |
</div>
|
58 |
|
59 |
-
|
60 |
<div class="tutor-form-col-6">
|
61 |
<div class="tutor-form-group">
|
62 |
<label>
|
63 |
-
|
64 |
</label>
|
65 |
|
66 |
-
<input type="text" name="
|
67 |
</div>
|
68 |
</div>
|
|
|
69 |
</div>
|
70 |
|
71 |
<div class="tutor-form-row">
|
@@ -90,17 +81,6 @@
|
|
90 |
</div>
|
91 |
</div>
|
92 |
|
93 |
-
<div class="tutor-form-row">
|
94 |
-
<div class="tutor-form-col-12">
|
95 |
-
<div class="tutor-form-group">
|
96 |
-
<label>
|
97 |
-
<?php _e('Bio', 'tutor'); ?>
|
98 |
-
</label>
|
99 |
-
|
100 |
-
<textarea name="tutor_profile_bio"><?php echo tutor_utils()->input_old('tutor_profile_bio'); ?></textarea>
|
101 |
-
</div>
|
102 |
-
</div>
|
103 |
-
</div>
|
104 |
|
105 |
<div class="tutor-form-row">
|
106 |
<div class="tutor-form-col-12">
|
14 |
?>
|
15 |
|
16 |
<div class="tutor-form-row">
|
17 |
+
<div class="tutor-form-col-6">
|
18 |
<div class="tutor-form-group">
|
19 |
<label>
|
20 |
<?php _e('First Name', 'tutor'); ?>
|
24 |
</div>
|
25 |
</div>
|
26 |
|
27 |
+
<div class="tutor-form-col-6">
|
28 |
<div class="tutor-form-group">
|
29 |
<label>
|
30 |
<?php _e('Last Name', 'tutor'); ?>
|
34 |
</div>
|
35 |
</div>
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
</div>
|
38 |
|
39 |
<div class="tutor-form-row">
|
40 |
<div class="tutor-form-col-6">
|
41 |
<div class="tutor-form-group">
|
42 |
<label>
|
43 |
+
<?php _e('User Name', 'tutor'); ?>
|
44 |
</label>
|
45 |
|
46 |
+
<input type="text" name="user_login" class="tutor_user_name" value="<?php echo tutor_utils()->input_old('user_login'); ?>" placeholder="<?php _e('User Name', 'tutor'); ?>">
|
47 |
</div>
|
48 |
</div>
|
49 |
|
|
|
50 |
<div class="tutor-form-col-6">
|
51 |
<div class="tutor-form-group">
|
52 |
<label>
|
53 |
+
<?php _e('E-Mail', 'tutor'); ?>
|
54 |
</label>
|
55 |
|
56 |
+
<input type="text" name="email" value="<?php echo tutor_utils()->input_old('email'); ?>" placeholder="<?php _e('E-Mail', 'tutor'); ?>">
|
57 |
</div>
|
58 |
</div>
|
59 |
+
|
60 |
</div>
|
61 |
|
62 |
<div class="tutor-form-row">
|
81 |
</div>
|
82 |
</div>
|
83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
|
85 |
<div class="tutor-form-row">
|
86 |
<div class="tutor-form-col-12">
|
@@ -30,7 +30,7 @@ $reviews = tutor_utils()->get_reviews_by_user();
|
|
30 |
<div class="tutor-dashboard-content-inner">
|
31 |
<p><?php _e("Sorry, but you are looking for something that isn't here." , 'tutor'); ?></p>
|
32 |
</div>
|
33 |
-
<?php
|
34 |
}
|
35 |
?>
|
36 |
|
30 |
<div class="tutor-dashboard-content-inner">
|
31 |
<p><?php _e("Sorry, but you are looking for something that isn't here." , 'tutor'); ?></p>
|
32 |
</div>
|
33 |
+
<?php
|
34 |
}
|
35 |
?>
|
36 |
|
@@ -1,6 +1,5 @@
|
|
1 |
<?php
|
2 |
$user = wp_get_current_user();
|
3 |
-
|
4 |
?>
|
5 |
|
6 |
<div class="tutor-dashboard-content-inner">
|
@@ -25,7 +24,7 @@ $user = wp_get_current_user();
|
|
25 |
<?php do_action('tutor_profile_edit_input_before'); ?>
|
26 |
|
27 |
<div class="tutor-form-row">
|
28 |
-
<div class="tutor-form-col-
|
29 |
<div class="tutor-form-group">
|
30 |
<label>
|
31 |
<?php _e('First Name', 'tutor'); ?>
|
@@ -35,7 +34,7 @@ $user = wp_get_current_user();
|
|
35 |
</div>
|
36 |
</div>
|
37 |
|
38 |
-
<div class="tutor-form-col-
|
39 |
<div class="tutor-form-group">
|
40 |
<label>
|
41 |
<?php _e('Last Name', 'tutor'); ?>
|
@@ -45,14 +44,10 @@ $user = wp_get_current_user();
|
|
45 |
</div>
|
46 |
</div>
|
47 |
|
48 |
-
|
49 |
-
|
50 |
-
<div class="tutor-form-row">
|
51 |
-
|
52 |
-
<div class="tutor-form-col-6">
|
53 |
<div class="tutor-form-group">
|
54 |
<label>
|
55 |
-
|
56 |
</label>
|
57 |
|
58 |
<input type="text" name="phone_number" value="<?php echo get_user_meta($user->ID,'phone_number',true); ?>" placeholder="<?php _e('Phone Number', 'tutor'); ?>">
|
1 |
<?php
|
2 |
$user = wp_get_current_user();
|
|
|
3 |
?>
|
4 |
|
5 |
<div class="tutor-dashboard-content-inner">
|
24 |
<?php do_action('tutor_profile_edit_input_before'); ?>
|
25 |
|
26 |
<div class="tutor-form-row">
|
27 |
+
<div class="tutor-form-col-4">
|
28 |
<div class="tutor-form-group">
|
29 |
<label>
|
30 |
<?php _e('First Name', 'tutor'); ?>
|
34 |
</div>
|
35 |
</div>
|
36 |
|
37 |
+
<div class="tutor-form-col-4">
|
38 |
<div class="tutor-form-group">
|
39 |
<label>
|
40 |
<?php _e('Last Name', 'tutor'); ?>
|
44 |
</div>
|
45 |
</div>
|
46 |
|
47 |
+
<div class="tutor-form-col-4">
|
|
|
|
|
|
|
|
|
48 |
<div class="tutor-form-group">
|
49 |
<label>
|
50 |
+
<?php _e('Phone Number', 'tutor'); ?>
|
51 |
</label>
|
52 |
|
53 |
<input type="text" name="phone_number" value="<?php echo get_user_meta($user->ID,'phone_number',true); ?>" placeholder="<?php _e('Phone Number', 'tutor'); ?>">
|
@@ -2,38 +2,49 @@
|
|
2 |
|
3 |
<div class="tutor-dashboard-content-inner">
|
4 |
|
5 |
-
|
6 |
<?php
|
7 |
$settings_url = tutor_utils()->get_tutor_dashboard_page_permalink('settings');
|
8 |
$withdraw = tutor_utils()->get_tutor_dashboard_page_permalink('settings/withdraw-settings');
|
9 |
$reset_password = tutor_utils()->get_tutor_dashboard_page_permalink('settings/reset-password');
|
10 |
?>
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
|
22 |
-
|
23 |
-
|
24 |
|
25 |
|
26 |
-
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
|
34 |
-
|
35 |
<?php wp_nonce_field( tutor()->nonce_action, tutor()->nonce ); ?>
|
36 |
-
|
37 |
|
38 |
<?php
|
39 |
$errors = apply_filters('tutor_reset_password_validation_errors', array());
|
@@ -48,31 +59,31 @@
|
|
48 |
|
49 |
<?php do_action('tutor_reset_password_input_before') ?>
|
50 |
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
|
71 |
<?php do_action('tutor_reset_password_input_after') ?>
|
72 |
|
73 |
-
|
74 |
|
75 |
-
|
76 |
|
77 |
|
78 |
|
2 |
|
3 |
<div class="tutor-dashboard-content-inner">
|
4 |
|
5 |
+
<div class="tutor-dashboard-inline-links">
|
6 |
<?php
|
7 |
$settings_url = tutor_utils()->get_tutor_dashboard_page_permalink('settings');
|
8 |
$withdraw = tutor_utils()->get_tutor_dashboard_page_permalink('settings/withdraw-settings');
|
9 |
$reset_password = tutor_utils()->get_tutor_dashboard_page_permalink('settings/reset-password');
|
10 |
?>
|
11 |
+
<ul>
|
12 |
+
<li>
|
13 |
+
<a href="<?php echo esc_url($settings_url); ?>"> <?php _e('Profile', 'tutor'); ?></a>
|
14 |
+
</li>
|
15 |
+
<li class="active">
|
16 |
+
<a href="<?php echo esc_url($reset_password); ?>"> <?php _e('Reset Password', 'tutor'); ?></a>
|
17 |
+
</li>
|
18 |
+
<li>
|
19 |
+
<a href="<?php echo esc_url($withdraw); ?>"> <?php _e('Withdraw', 'tutor'); ?></a>
|
20 |
+
</li>
|
21 |
|
22 |
+
</ul>
|
23 |
+
</div>
|
24 |
|
25 |
|
26 |
+
<h3><?php _e('Reset Password', 'tutor') ?></h3>
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
+
<div class="tutor-reset-password-form-wrap">
|
32 |
+
|
33 |
+
<?php
|
34 |
+
$success_msg = tutor_utils()->get_flash_msg('success');
|
35 |
+
if ($success_msg){
|
36 |
+
?>
|
37 |
+
<div class="tutor-success-msg">
|
38 |
+
<?php echo $success_msg; ?>
|
39 |
+
</div>
|
40 |
+
<?php
|
41 |
+
}
|
42 |
+
?>
|
43 |
|
44 |
|
45 |
+
<form action="" method="post" enctype="multipart/form-data">
|
46 |
<?php wp_nonce_field( tutor()->nonce_action, tutor()->nonce ); ?>
|
47 |
+
<input type="hidden" value="tutor_reset_password" name="tutor_action" />
|
48 |
|
49 |
<?php
|
50 |
$errors = apply_filters('tutor_reset_password_validation_errors', array());
|
59 |
|
60 |
<?php do_action('tutor_reset_password_input_before') ?>
|
61 |
|
62 |
+
<div class="tutor-form-group">
|
63 |
+
<label class="tutor-form-col-3"> <?php _e('Previous Password', 'tutor'); ?> </label>
|
64 |
+
<input type="password" name="previous_password">
|
65 |
+
</div>
|
66 |
|
67 |
+
<div class="tutor-form-group">
|
68 |
+
<label><?php _e('New Password', 'tutor'); ?></label>
|
69 |
+
<input type="password" name="new_password">
|
70 |
+
</div>
|
71 |
|
72 |
+
<div class="tutor-form-group">
|
73 |
+
<label><?php _e('Confirm New Password', 'tutor'); ?></label>
|
74 |
+
<input type="password" name="confirm_new_password">
|
75 |
+
</div>
|
76 |
|
77 |
+
<div class="tutor-form-group">
|
78 |
+
<label> </label>
|
79 |
+
<button type="submit" class="tutor-button" name="tutor_password_reset_btn"><?php _e('Reset Password', 'tutor'); ?></button>
|
80 |
+
</div>
|
81 |
|
82 |
<?php do_action('tutor_reset_password_input_after') ?>
|
83 |
|
84 |
+
</form>
|
85 |
|
86 |
+
</div>
|
87 |
|
88 |
|
89 |
|
@@ -17,7 +17,7 @@ do_action('tutor_course/single/enrolled/before/wrap');
|
|
17 |
<div <?php tutor_post_class('tutor-full-width-course-top tutor-course-top-info tutor-page-wrap'); ?>>
|
18 |
<div class="tutor-container">
|
19 |
<div class="tutor-row">
|
20 |
-
<div class="tutor-col-8">
|
21 |
<?php do_action('tutor_course/single/enrolled/before/inner-wrap'); ?>
|
22 |
<?php tutor_course_enrolled_lead_info(); ?>
|
23 |
<?php tutor_course_enrolled_nav(); ?>
|
17 |
<div <?php tutor_post_class('tutor-full-width-course-top tutor-course-top-info tutor-page-wrap'); ?>>
|
18 |
<div class="tutor-container">
|
19 |
<div class="tutor-row">
|
20 |
+
<div class="tutor-col-8 tutor-col-md-100">
|
21 |
<?php do_action('tutor_course/single/enrolled/before/inner-wrap'); ?>
|
22 |
<?php tutor_course_enrolled_lead_info(); ?>
|
23 |
<?php tutor_course_enrolled_nav(); ?>
|
@@ -18,7 +18,7 @@ get_header();
|
|
18 |
<div <?php tutor_post_class('tutor-full-width-course-top tutor-course-top-info tutor-page-wrap'); ?>>
|
19 |
<div class="tutor-container">
|
20 |
<div class="tutor-row">
|
21 |
-
<div class="tutor-col-8">
|
22 |
|
23 |
<?php do_action('tutor_course/single/before/inner-wrap'); ?>
|
24 |
|
18 |
<div <?php tutor_post_class('tutor-full-width-course-top tutor-course-top-info tutor-page-wrap'); ?>>
|
19 |
<div class="tutor-container">
|
20 |
<div class="tutor-row">
|
21 |
+
<div class="tutor-col-8 tutor-col-md-100">
|
22 |
|
23 |
<?php do_action('tutor_course/single/before/inner-wrap'); ?>
|
24 |
|
@@ -4,7 +4,7 @@ Plugin Name: Tutor LMS
|
|
4 |
Plugin URI: https://www.themeum.com/product/tutor-lms/
|
5 |
Description: Tutor is a complete solution for creating a Learning Management System in WordPress way. It can help you to create small to large scale online education site very conveniently. Power features like report, certificate, course preview, private file sharing make Tutor a robust plugin for any educational institutes.
|
6 |
Author: Themeum
|
7 |
-
Version: 1.
|
8 |
Author URI: http://themeum.com
|
9 |
Requires at least: 4.5
|
10 |
Tested up to: 5.2
|
@@ -17,7 +17,7 @@ if ( ! defined( 'ABSPATH' ) )
|
|
17 |
/**
|
18 |
* Defined the tutor main file
|
19 |
*/
|
20 |
-
define('TUTOR_VERSION', '1.
|
21 |
define('TUTOR_FILE', __FILE__);
|
22 |
|
23 |
|
4 |
Plugin URI: https://www.themeum.com/product/tutor-lms/
|
5 |
Description: Tutor is a complete solution for creating a Learning Management System in WordPress way. It can help you to create small to large scale online education site very conveniently. Power features like report, certificate, course preview, private file sharing make Tutor a robust plugin for any educational institutes.
|
6 |
Author: Themeum
|
7 |
+
Version: 1.3.0
|
8 |
Author URI: http://themeum.com
|
9 |
Requires at least: 4.5
|
10 |
Tested up to: 5.2
|
17 |
/**
|
18 |
* Defined the tutor main file
|
19 |
*/
|
20 |
+
define('TUTOR_VERSION', '1.3.0');
|
21 |
define('TUTOR_FILE', __FILE__);
|
22 |
|
23 |
|
@@ -58,7 +58,9 @@ $material_includes = get_post_meta($course_id, '_tutor_course_material_includes'
|
|
58 |
<?php
|
59 |
foreach ($levels as $level_key => $level){
|
60 |
?>
|
61 |
-
<label> <input type="radio" name="course_level" value="<?php echo $level_key; ?>" <?php checked($level_key,
|
|
|
|
|
62 |
$level; ?> </label>
|
63 |
<?php
|
64 |
}
|
58 |
<?php
|
59 |
foreach ($levels as $level_key => $level){
|
60 |
?>
|
61 |
+
<label> <input type="radio" name="course_level" value="<?php echo $level_key; ?>" <?php $course_level ? checked($level_key,
|
62 |
+
$course_level) : $level_key === 'intermediate' ? checked(1, 1): ''; ?> > <?php
|
63 |
+
echo
|
64 |
$level; ?> </label>
|
65 |
<?php
|
66 |
}
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$value = $this->get($field['field_key']);
|
3 |
+
if ( ! $value && isset($field['default'])){
|
4 |
+
$value = $field['default'];
|
5 |
+
}
|
6 |
+
?>
|
7 |
+
<input type="text" class="tutor_colorpicker" name="tutor_option[<?php echo $field['field_key']; ?>]" value="<?php echo $value; ?>" >
|