Changeset 3458914
- Timestamp:
- 02/11/2026 11:21:12 AM (7 days ago)
- Location:
- masterstudy-lms-learning-management-system/trunk
- Files:
-
- 8 added
- 7 deleted
- 37 edited
-
_core/assets/css/components/buy-button.css (modified) (1 diff)
-
_core/assets/icons/fonts/stmlms.woff (modified) (previous)
-
_core/assets/icons/fonts/stmlms.woff2 (modified) (previous)
-
_core/init.php (modified) (1 diff)
-
_core/lms/classes/instructors.php (modified) (1 diff)
-
_core/lms/classes/user.php (modified) (1 diff)
-
_core/lms/classes/vendor/LmsUpdateCallbacks.php (modified) (2 diffs)
-
_core/lms/classes/vendor/LmsUpdates.php (modified) (1 diff)
-
_core/lms/helpers.php (modified) (11 diffs)
-
_core/lms/widgets/popular.widget.php (modified) (1 diff)
-
_core/stm-lms-templates/components/buy-button/buy-button.php (modified) (4 diffs)
-
_core/stm-lms-templates/components/buy-button/free-courses/free-courses.php (modified) (4 diffs)
-
_core/stm-lms-templates/components/buy-button/paid-courses/paid-courses.php (modified) (11 diffs)
-
_core/stm-lms-templates/components/course/card/global/popup-price.php (modified) (1 diff)
-
_core/stm-lms-templates/components/course/card/global/price.php (modified) (1 diff)
-
_core/stm-lms-templates/components/course/popular-courses.php (modified) (1 diff)
-
_core/stm-lms-templates/components/course/price-info.php (modified) (1 diff)
-
_core/stm-lms-templates/components/course/related-courses.php (modified) (1 diff)
-
_core/stm-lms-templates/course.php (modified) (1 diff)
-
_core/stm-lms-templates/elementor-widgets/courses/card/card-style-3/price.php (modified) (1 diff)
-
_core/stm-lms-templates/elementor-widgets/courses/card/card-style-4/price.php (modified) (1 diff)
-
_core/stm-lms-templates/elementor-widgets/courses/card/card-style-5/price.php (modified) (1 diff)
-
_core/stm-lms-templates/elementor-widgets/courses/card/global/popup-price.php (modified) (1 diff)
-
_core/stm-lms-templates/elementor-widgets/courses/card/global/price.php (modified) (1 diff)
-
_core/stm-lms-templates/global/price.php (modified) (1 diff)
-
assets/course-builder/css/203.cbb86c7e.chunk.css (added)
-
assets/course-builder/css/499.cbb86c7e.chunk.css (deleted)
-
assets/course-builder/js/203.138d5e1f.chunk.js (added)
-
assets/course-builder/js/321.af3883b7.chunk.js (deleted)
-
assets/course-builder/js/321.e79fbf4d.chunk.js (added)
-
assets/course-builder/js/499.0b0e3a52.chunk.js (deleted)
-
assets/course-builder/js/586.13fb79ec.chunk.js (deleted)
-
assets/course-builder/js/586.ce07b339.chunk.js (added)
-
assets/course-builder/js/791.46d5e526.chunk.js (deleted)
-
assets/course-builder/js/791.e2e7013f.chunk.js (added)
-
assets/course-builder/js/856.8964540d.chunk.js (added)
-
assets/course-builder/js/856.b941dd7f.chunk.js (deleted)
-
assets/course-builder/js/926.02d5412f.chunk.js (added)
-
assets/course-builder/js/926.760e4d87.chunk.js (deleted)
-
assets/course-builder/js/i18n-translations.js (modified) (1 diff)
-
assets/course-builder/js/main.js (modified) (1 diff)
-
includes/Enums/PricingMode.php (added)
-
includes/Http/Controllers/Course/UpdatePricingSettingsController.php (modified) (2 diffs)
-
includes/Models/Course.php (modified) (1 diff)
-
includes/Repositories/CoursePlayerRepository.php (modified) (3 diffs)
-
includes/Repositories/CourseRepository.php (modified) (1 diff)
-
includes/Repositories/PricingRepository.php (modified) (3 diffs)
-
includes/Routing/Swagger/Routes/Course/UpdatePricingSettings.php (modified) (3 diffs)
-
masterstudy-lms-learning-management-system.php (modified) (2 diffs)
-
readme.txt (modified) (3 diffs)
-
vendor/composer/autoload_classmap.php (modified) (1 diff)
-
vendor/composer/autoload_static.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
masterstudy-lms-learning-management-system/trunk/_core/assets/css/components/buy-button.css
r3392871 r3458914 1 @-webkit-keyframes pulse{0%{-webkit-transform:scale(.1,.1);transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);transform:scale(1.2,1.2);opacity:0}}@keyframes pulse{0%{-webkit-transform:scale(.1,.1);transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);transform:scale(1.2,1.2);opacity:0}}@-webkit-keyframes loading-pulse{0%{-webkit-transform:translate(-50%,-50%) scale(.1,.1);transform:translate(-50%,-50%) scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:translate(-50%,-50%) scale(1.2,1.2);transform:translate(-50%,-50%) scale(1.2,1.2);opacity:0}}@keyframes loading-pulse{0%{-webkit-transform:translate(-50%,-50%) scale(.1,.1);transform:translate(-50%,-50%) scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:translate(-50%,-50%) scale(1.2,1.2);transform:translate(-50%,-50%) scale(1.2,1.2);opacity:0}}@-webkit-keyframes rotate360{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate360{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}body .masterstudy-buy-button {display:inline-block;vertical-align:top;white-space:nowrap;min-width:100%;outline:0;border:none;background:var(--accent-100);position:relative;border-radius:8px;transition:.2s;color:#fff;cursor:pointer}body .masterstudy-buy-button:active,body .masterstudy-buy-button:focus,body .masterstudy-buy-button:hover{background-color:var(--accent-hover)}body .masterstudy-buy-button>a.masterstudy-buy-button__link{display:flex;min-height:60px;padding:14px 20px;justify-content:space-between;align-items:center;text-align:center;text-decoration:none;color:#fff}body .masterstudy-buy-button>a.masterstudy-buy-button__link.masterstudy-buy-button__link_disabled:hover{cursor:default}body .masterstudy-buy-button>a.masterstudy-buy-button__link.loading:before{top:auto;left:50%;border:2px solid #fff;margin:0 0 0 -15px;padding:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-animation:pulse 1.5s ease-out;animation:pulse 1.5s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;height:30px;width:30px;z-index:99}body .masterstudy-buy-button>a.masterstudy-buy-button__link:hover{color:#fff}body .masterstudy-buy-button__link.masterstudy-buy-button__link_centered{justify-content:center}body .masterstudy-buy-button__link.masterstudy-buy-button__link_centered .masterstudy-buy-button__title{text-align:center}body .masterstudy-buy-button-centred>a{justify-content:center}body .masterstudy-buy-button__title{width:100%;text-align:left;font-size:16px;line-height:18px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;transition:background .2s;position:relative}body .masterstudy-buy-button__title.masterstudy-buy-button__loading{font-size:0}body .masterstudy-buy-button__title.masterstudy-buy-button__loading:before{content:"";position:absolute;top:-25%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:30px;height:30px;margin-left:20px;border:2px solid #fff;border-radius:50%;-webkit-animation:pulse 1.5s ease-out;animation:pulse 1.5s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;z-index:1}body .masterstudy-buy-button__separator{display:block;width:1px;height:30px;margin:0 20px;background-color:rgba(255,255,255,.1)}body .masterstudy-buy-button__price{display:inline-block;vertical-align:top;text-align:right;position:relative;line-height:28px;font-weight:700;font-size:16px}body .masterstudy-buy-button__price_sale{display:block;line-height:16px}body .masterstudy-buy-button__price.has_sale{line-height:16px}body .masterstudy-buy-button__price.has_sale .masterstudy-buy-button__price_regular{text-decoration:line-through;line-height:14px;font-weight:500;font-size:14px;color:rgba(255,255,255,.7)}body .masterstudy-buy-button_dropdown{padding-right:25px}body .masterstudy-buy-button_dropdown:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer}body .masterstudy-buy-button_dropdown:after{content:"";position:absolute;top:50%;right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%);border-style:solid;border-width:6px 5px 0;border-color:#fff transparent transparent;box-shadow:none;cursor:pointer}body .masterstudy-buy-button-dropdown{display:none;position:absolute;top:100%;right:0;left:0;padding:0;margin-top:14px;border-radius:8px;background:#fff;box-shadow:0 10px 40px 0 rgba(0,0,0,.25);text-align:left;visibility:hidden;opacity:0;z-index:10;cursor:default}body .masterstudy-buy-button-dropdown>a,body .masterstudy-buy-button-dropdown>button{display:flex;width:100%;justify-content:space-between;min-height:38px;padding:10px 20px;text-align:left;border:0;transition:all .3s;border-radius:4px;background:var(--accent-10);margin-bottom:10px}body .masterstudy-buy-button-dropdown>a:last-child,body .masterstudy-buy-button-dropdown>button:last-child{margin-bottom:0}body .masterstudy-buy-button-dropdown>a.loading:before,body .masterstudy-buy-button-dropdown>button.loading:before{margin-left:auto}body .masterstudy-buy-button-dropdown>a:active,body .masterstudy-buy-button-dropdown>a:focus,body .masterstudy-buy-button-dropdown>a:hover,body .masterstudy-buy-button-dropdown>button:active,body .masterstudy-buy-button-dropdown>button:focus,body .masterstudy-buy-button-dropdown>button:hover{outline-offset:0;border:0;background-color:var(--accent-100);color:#fff}body .masterstudy-buy-button-dropdown>a:active span,body .masterstudy-buy-button-dropdown>a:focus span,body .masterstudy-buy-button-dropdown>a:hover span,body .masterstudy-buy-button-dropdown>button:active span,body .masterstudy-buy-button-dropdown>button:focus span,body .masterstudy-buy-button-dropdown>button:hover span{color:#fff}body .masterstudy-buy-button-dropdown__title{display:block;margin:10px 0;font-weight:500;font-size:14px;color:#4d5e6f}body .masterstudy-buy-button-dropdown__label{width:100%;text-transform:none;font-weight:700;font-size:14px;color:var(--accent-100)}body .masterstudy-buy-button-dropdown a.masterstudy-purchase-button{display:flex;width:100%;height:40px;align-items:center;justify-content:center;background:var(--accent-100);text-decoration:none;transition:.3s;border-radius:4px;margin-top:20px;position:relative}body .masterstudy-buy-button-dropdown a.masterstudy-purchase-button.masterstudy-purchase-button__loading .masterstudy-purchase-button__title{display:none}body .masterstudy-buy-button-dropdown a.masterstudy-purchase-button.masterstudy-purchase-button__loading::before{content:"";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:25px;height:25px;border:2px solid #fff;border-radius:50%;margin:0;-webkit-animation:loading-pulse 1.5s ease-out;animation:loading-pulse 1.5s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;z-index:2}body .masterstudy-buy-button-dropdown a.masterstudy-purchase-button:hover{background:var(--accent-hover)}body .masterstudy-buy-button-dropdown a.masterstudy-purchase-button .masterstudy-purchase-button__title{display:flex;text-transform:capitalize;color:#fff;font-weight:700;font-size:14px;font-style:normal;line-height:normal}body .masterstudy-buy-button-dropdown .masterstudy-membership-button{display:flex;width:100%;height:40px;align-items:center;justify-content:center;background:var(--accent-100);text-decoration:none;transition:.3s;border-radius:4px;position:relative}body .masterstudy-buy-button-dropdown .masterstudy-membership-button:hover{background:var(--accent-hover)}body .masterstudy-buy-button-dropdown .masterstudy-membership-button .masterstudy-membership-button__title{display:flex;color:#fff;font-weight:700;font-size:14px;font-style:normal;line-height:normal}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan-link{display:flex;flex-direction:column;width:100%;padding:15px 20px;border-radius:10px;border:1px solid #dbe0e9;background:#fff;transition:.3s;box-shadow:0 1px 3px 0 rgba(0,0,0,.07);margin-bottom:10px}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan-link:last-child{margin-bottom:0}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan-link:hover{cursor:pointer;border-color:var(--accent-100)}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan-link.masterstudy-membership-plan-link_use{background:var(--accent-10);border-color:var(--accent-100)}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__label{display:flex;width:100%;white-space:normal;font-size:16px;font-style:normal;font-weight:600;line-height:normal;color:#001931;margin-bottom:10px}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__label-featured{display:flex;align-self:flex-start;justify-content:center;align-items:center;padding:3px 5px;margin-bottom:5px;border-radius:4px;background:var(--accent-100);font-size:10px;font-style:normal;font-weight:700;line-height:normal;letter-spacing:1px;text-transform:uppercase;text-align:center;color:#fff}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__price{display:flex;width:100%;font-size:18px;font-style:normal;font-weight:700;line-height:normal;color:#001931;align-items:center}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__old-price{display:flex;width:100%;font-size:14px;font-style:normal;font-weight:400;color:#4d5e6f;line-height:normal;-webkit-text-decoration-line:line-through;text-decoration-line:line-through}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__period{display:flex;align-items:flex-end;width:100%;font-size:12px;font-style:normal;font-weight:400;line-height:normal;color:#4d5e6f;text-transform:lowercase;margin-left:5px;margin-top:2px}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__features{display:flex;width:100%;flex-direction:column;margin-top:10px}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__features-item{display:flex;width:100%;white-space:normal;font-size:14px;font-style:normal;font-weight:400;line-height:140%;color:#4d5e6f}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button{display:flex;width:100%;height:40px;min-height:40px;align-items:center;justify-content:center;background:var(--accent-100);transition:.3s;border-radius:4px;margin-top:10px;margin-bottom:5px;position:relative}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button.masterstudy-membership-plan__button_disabled{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;pointer-events:none;opacity:.7}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button.masterstudy-membership-plan__button_loading .masterstudy-membership-plan__button-title{display:none}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button.masterstudy-membership-plan__button_loading::before{content:"";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:25px;height:25px;border:2px solid #fff;border-radius:50%;margin:0;-webkit-animation:loading-pulse 1.5s ease-out;animation:loading-pulse 1.5s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;z-index:2}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button:hover{cursor:pointer;background:var(--accent-hover)}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button .masterstudy-membership-plan__button-title{display:flex;text-transform:capitalize;color:#fff;font-weight:700;font-size:14px;font-style:normal;line-height:normal}body .masterstudy-buy-button-dropdown__price{font-weight:500;font-size:14px;color:#808c98}body .masterstudy-buy-button-dropdown .masterstudy-buy-button__price-info{display:flex;width:100%;flex-direction:column}body .masterstudy-buy-button-dropdown .masterstudy-buy-button__price-info .masterstudy-buy-button__price-value{display:flex;width:100%;font-size:18px;font-style:normal;font-weight:700;line-height:normal;color:#001931}body .masterstudy-buy-button-dropdown .masterstudy-buy-button__price-info .masterstudy-buy-button__price-value.masterstudy-buy-button__price-value_sale{font-size:14px;font-style:normal;font-weight:500;line-height:normal;-webkit-text-decoration-line:line-through;text-decoration-line:line-through;color:#4d5e6f}body .masterstudy-buy-button-dropdown__section{display:flex;width:100%;flex-direction:column}body .masterstudy-buy-button-dropdown__section.masterstudy-buy-button-dropdown__section_open{background:#eef1f7}body .masterstudy-buy-button-dropdown__section.masterstudy-buy-button-dropdown__section_open .masterstudy-buy-button-dropdown__head-checkbox{background:#fff;border-color:var(--accent-100)}body .masterstudy-buy-button-dropdown__section.masterstudy-buy-button-dropdown__section_open .masterstudy-buy-button-dropdown__head-checkbox::before{opacity:1;visibility:visible}body .masterstudy-buy-button-dropdown__section.masterstudy-buy-button-dropdown__section_open .masterstudy-buy-button-dropdown__body{max-height:500px}body .masterstudy-buy-button-dropdown__section:first-child{border-top-left-radius:8px;border-top-right-radius:8px}body .masterstudy-buy-button-dropdown__section:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}body .masterstudy-buy-button-dropdown__section:last-child .masterstudy-buy-button-dropdown__body{border-bottom:none}body .masterstudy-buy-button-dropdown__head{display:flex;width:100%;justify-content:space-between;align-items:center;padding:15px 20px}body .masterstudy-buy-button-dropdown__head:hover{cursor:pointer}body .masterstudy-buy-button-dropdown__head-title{display:flex;width:auto;font-size:15px;font-style:normal;font-weight:500;line-height:normal;color:#001931}body .masterstudy-buy-button-dropdown__head-checkbox{display:flex;width:20px;height:20px;border-radius:50%;border:2px solid #dbe0e9;transition:.3s}body .masterstudy-buy-button-dropdown__head-checkbox::before{content:"";display:flex;margin:auto;width:9px;height:9px;border-radius:50%;background-color:var(--accent-100);opacity:0;visibility:hidden}body .masterstudy-buy-button-dropdown__body{display:flex;width:100%;flex-direction:column;max-height:0;overflow:hidden;transition:max-height .3s;border-bottom:1px solid #dbe0e9;padding:0}body .masterstudy-buy-button-dropdown__body-wrapper{display:flex;flex-direction:column;width:100%;padding:0 20px 15px;overflow-y:auto}body .masterstudy-buy-button-dropdown__body-wrapper::-webkit-scrollbar{width:5px}body .masterstudy-buy-button-dropdown__body-wrapper::-webkit-scrollbar-thumb{background:var(--accent-100);border-radius:4px}body .masterstudy-buy-button-dropdown__body-wrapper::-webkit-scrollbar-thumb:hover{background:var(--accent-hover)}body .masterstudy-buy-button-dropdown__body-wrapper::-webkit-scrollbar-track{background:#eef1f7;border-radius:4px}body .masterstudy-buy-button.dropdown-show{z-index:100}body .masterstudy-buy-button.dropdown-show .masterstudy-buy-button-dropdown{display:block;-webkit-transform:translateY(-4px);transform:translateY(-4px);transition:.3s;visibility:visible;opacity:1}body .masterstudy-buy-button.dropdown-show:after{margin-top:-6px;-webkit-transform:rotate(180deg) translateY(-50%);transform:rotate(180deg) translateY(-50%)}body .masterstudy-buy-button_style-dark-mode .masterstudy-buy-button-dropdown{background-color:#1e1e1e;box-shadow:0 10px 40px 0 rgba(0,0,0,.25)}body .masterstudy-buy-button_style-dark-mode .masterstudy-buy-button-dropdown__price,body .masterstudy-buy-button_style-dark-mode .masterstudy-buy-button-dropdown__title{color:rgba(255,255,255,.7)}body.rtl .masterstudy-buy-button.masterstudy-buy-button_dropdown{padding-right:0;padding-left:25px}body.rtl .masterstudy-buy-button.masterstudy-buy-button_dropdown::after{left:20px;right:auto}body.rtl .masterstudy-buy-button__title{text-align:right}1 @-webkit-keyframes pulse{0%{-webkit-transform:scale(.1,.1);transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);transform:scale(1.2,1.2);opacity:0}}@keyframes pulse{0%{-webkit-transform:scale(.1,.1);transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);transform:scale(1.2,1.2);opacity:0}}@-webkit-keyframes loading-pulse{0%{-webkit-transform:translate(-50%,-50%) scale(.1,.1);transform:translate(-50%,-50%) scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:translate(-50%,-50%) scale(1.2,1.2);transform:translate(-50%,-50%) scale(1.2,1.2);opacity:0}}@keyframes loading-pulse{0%{-webkit-transform:translate(-50%,-50%) scale(.1,.1);transform:translate(-50%,-50%) scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:translate(-50%,-50%) scale(1.2,1.2);transform:translate(-50%,-50%) scale(1.2,1.2);opacity:0}}@-webkit-keyframes rotate360{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate360{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}body .masterstudy-buy-button__single-price-info-text{font-size:12px;color:#808c98;font-weight:500;margin-top:10px;line-height:normal}body .masterstudy-buy-button{display:inline-block;vertical-align:top;white-space:nowrap;min-width:100%;outline:0;border:none;background:var(--accent-100);position:relative;border-radius:8px;transition:.2s;color:#fff;cursor:pointer}body .masterstudy-buy-button:active,body .masterstudy-buy-button:focus,body .masterstudy-buy-button:hover{background-color:var(--accent-hover)}body .masterstudy-buy-button>a.masterstudy-buy-button__link{display:flex;min-height:60px;padding:14px 20px;justify-content:space-between;align-items:center;text-align:center;text-decoration:none;color:#fff}body .masterstudy-buy-button>a.masterstudy-buy-button__link.masterstudy-buy-button__link_disabled:hover{cursor:default}body .masterstudy-buy-button>a.masterstudy-buy-button__link.loading:before{top:auto;left:50%;border:2px solid #fff;margin:0 0 0 -15px;padding:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-animation:pulse 1.5s ease-out;animation:pulse 1.5s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;height:30px;width:30px;z-index:99}body .masterstudy-buy-button>a.masterstudy-buy-button__link:hover{color:#fff}body .masterstudy-buy-button__link.masterstudy-buy-button__link_centered{justify-content:center}body .masterstudy-buy-button__link.masterstudy-buy-button__link_centered .masterstudy-buy-button__title{text-align:center}body .masterstudy-buy-button-centred>a{justify-content:center}body .masterstudy-buy-button__title{width:100%;text-align:left;font-size:16px;line-height:18px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;transition:background .2s;position:relative}body .masterstudy-buy-button__title.masterstudy-buy-button__loading{font-size:0}body .masterstudy-buy-button__title.masterstudy-buy-button__loading:before{content:"";position:absolute;top:-25%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:30px;height:30px;margin-left:20px;border:2px solid #fff;border-radius:50%;-webkit-animation:pulse 1.5s ease-out;animation:pulse 1.5s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;z-index:1}body .masterstudy-buy-button__separator{display:block;width:1px;height:30px;margin:0 20px;background-color:rgba(255,255,255,.1)}body .masterstudy-buy-button__price{display:inline-block;vertical-align:top;text-align:right;position:relative;line-height:28px;font-weight:700;font-size:16px}body .masterstudy-buy-button__price_sale{display:block;line-height:16px}body .masterstudy-buy-button__price.has_sale{line-height:16px}body .masterstudy-buy-button__price.has_sale .masterstudy-buy-button__price_regular{text-decoration:line-through;line-height:14px;font-weight:500;font-size:14px;color:rgba(255,255,255,.7)}body .masterstudy-buy-button_dropdown{padding-right:25px}body .masterstudy-buy-button_dropdown:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer}body .masterstudy-buy-button_dropdown:after{content:"";position:absolute;top:50%;right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%);border-style:solid;border-width:6px 5px 0;border-color:#fff transparent transparent;box-shadow:none;cursor:pointer}body .masterstudy-buy-button-dropdown{display:none;position:absolute;top:100%;right:0;left:0;padding:0;margin-top:14px;border-radius:8px;background:#fff;box-shadow:0 10px 40px 0 rgba(0,0,0,.25);text-align:left;visibility:hidden;opacity:0;z-index:10;cursor:default}body .masterstudy-buy-button-dropdown>a,body .masterstudy-buy-button-dropdown>button{display:flex;width:100%;justify-content:space-between;min-height:38px;padding:10px 20px;text-align:left;border:0;transition:all .3s;border-radius:4px;background:var(--accent-10);margin-bottom:10px}body .masterstudy-buy-button-dropdown>a:last-child,body .masterstudy-buy-button-dropdown>button:last-child{margin-bottom:0}body .masterstudy-buy-button-dropdown>a.loading:before,body .masterstudy-buy-button-dropdown>button.loading:before{margin-left:auto}body .masterstudy-buy-button-dropdown>a:active,body .masterstudy-buy-button-dropdown>a:focus,body .masterstudy-buy-button-dropdown>a:hover,body .masterstudy-buy-button-dropdown>button:active,body .masterstudy-buy-button-dropdown>button:focus,body .masterstudy-buy-button-dropdown>button:hover{outline-offset:0;border:0;background-color:var(--accent-100);color:#fff}body .masterstudy-buy-button-dropdown>a:active span,body .masterstudy-buy-button-dropdown>a:focus span,body .masterstudy-buy-button-dropdown>a:hover span,body .masterstudy-buy-button-dropdown>button:active span,body .masterstudy-buy-button-dropdown>button:focus span,body .masterstudy-buy-button-dropdown>button:hover span{color:#fff}body .masterstudy-buy-button-dropdown__title{display:block;margin:10px 0;font-weight:500;font-size:14px;color:#4d5e6f}body .masterstudy-buy-button-dropdown__label{width:100%;text-transform:none;font-weight:700;font-size:14px;color:var(--accent-100)}body .masterstudy-buy-button-dropdown a.masterstudy-purchase-button{display:flex;width:100%;height:40px;align-items:center;justify-content:center;background:var(--accent-100);text-decoration:none;transition:.3s;border-radius:4px;margin-top:20px;position:relative}body .masterstudy-buy-button-dropdown a.masterstudy-purchase-button.masterstudy-purchase-button__loading .masterstudy-purchase-button__title{display:none}body .masterstudy-buy-button-dropdown a.masterstudy-purchase-button.masterstudy-purchase-button__loading::before{content:"";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:25px;height:25px;border:2px solid #fff;border-radius:50%;margin:0;-webkit-animation:loading-pulse 1.5s ease-out;animation:loading-pulse 1.5s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;z-index:2}body .masterstudy-buy-button-dropdown a.masterstudy-purchase-button:hover{background:var(--accent-hover)}body .masterstudy-buy-button-dropdown a.masterstudy-purchase-button .masterstudy-purchase-button__title{display:flex;text-transform:capitalize;color:#fff;font-weight:700;font-size:14px;font-style:normal;line-height:normal}body .masterstudy-buy-button-dropdown .masterstudy-membership-button{display:flex;width:100%;height:40px;align-items:center;justify-content:center;background:var(--accent-100);text-decoration:none;transition:.3s;border-radius:4px;position:relative}body .masterstudy-buy-button-dropdown .masterstudy-membership-button:hover{background:var(--accent-hover)}body .masterstudy-buy-button-dropdown .masterstudy-membership-button .masterstudy-membership-button__title{display:flex;color:#fff;font-weight:700;font-size:14px;font-style:normal;line-height:normal}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan-link{display:flex;flex-direction:column;width:100%;padding:15px 20px;border-radius:10px;border:1px solid #dbe0e9;background:#fff;transition:.3s;box-shadow:0 1px 3px 0 rgba(0,0,0,.07);margin-bottom:10px}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan-link:last-child{margin-bottom:0}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan-link:hover{cursor:pointer;border-color:var(--accent-100)}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan-link.masterstudy-membership-plan-link_use{background:var(--accent-10);border-color:var(--accent-100)}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__label{display:flex;width:100%;white-space:normal;font-size:16px;font-style:normal;font-weight:600;line-height:normal;color:#001931;margin-bottom:10px}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__label-featured{display:flex;align-self:flex-start;justify-content:center;align-items:center;padding:3px 5px;margin-bottom:5px;border-radius:4px;background:var(--accent-100);font-size:10px;font-style:normal;font-weight:700;line-height:normal;letter-spacing:1px;text-transform:uppercase;text-align:center;color:#fff}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__price{display:flex;width:100%;font-size:18px;font-style:normal;font-weight:700;line-height:normal;color:#001931;align-items:center}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__old-price{display:flex;width:100%;font-size:14px;font-style:normal;font-weight:400;color:#4d5e6f;line-height:normal;-webkit-text-decoration-line:line-through;text-decoration-line:line-through}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__period{display:flex;align-items:flex-end;width:100%;font-size:12px;font-style:normal;font-weight:400;line-height:normal;color:#4d5e6f;text-transform:lowercase;margin-left:5px;margin-top:2px}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__features{display:flex;width:100%;flex-direction:column;margin-top:10px}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__features-item{display:flex;width:100%;white-space:normal;font-size:14px;font-style:normal;font-weight:400;line-height:140%;color:#4d5e6f}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button{display:flex;width:100%;height:40px;min-height:40px;align-items:center;justify-content:center;background:var(--accent-100);transition:.3s;border-radius:4px;margin-top:10px;margin-bottom:0;position:relative}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button.masterstudy-membership-plan__button_disabled{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;pointer-events:none;opacity:.7}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button.masterstudy-membership-plan__button_loading .masterstudy-membership-plan__button-title{display:none}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button.masterstudy-membership-plan__button_loading::before{content:"";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:25px;height:25px;border:2px solid #fff;border-radius:50%;margin:0;-webkit-animation:loading-pulse 1.5s ease-out;animation:loading-pulse 1.5s ease-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;z-index:2}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button:hover{cursor:pointer;background:var(--accent-hover)}body .masterstudy-buy-button-dropdown .masterstudy-membership-plan__button .masterstudy-membership-plan__button-title{display:flex;text-transform:capitalize;color:#fff;font-weight:700;font-size:14px;font-style:normal;line-height:normal}body .masterstudy-buy-button-dropdown__price{font-weight:500;font-size:14px;color:#808c98}body .masterstudy-buy-button-dropdown .masterstudy-buy-button__price-info-text{font-size:12px;color:#808c98;font-weight:500;margin-top:10px;line-height:normal}body .masterstudy-buy-button-dropdown .masterstudy-buy-button__price-info{display:flex;width:100%;flex-direction:column}body .masterstudy-buy-button-dropdown .masterstudy-buy-button__price-info .masterstudy-buy-button__price-value{display:flex;width:100%;font-size:18px;font-style:normal;font-weight:700;line-height:normal;color:#001931}body .masterstudy-buy-button-dropdown .masterstudy-buy-button__price-info .masterstudy-buy-button__price-value.masterstudy-buy-button__price-value_sale{font-size:14px;font-style:normal;font-weight:500;line-height:normal;-webkit-text-decoration-line:line-through;text-decoration-line:line-through;color:#4d5e6f}body .masterstudy-buy-button-dropdown__section{display:flex;width:100%;flex-direction:column}body .masterstudy-buy-button-dropdown__section.masterstudy-buy-button-dropdown__section_open{background:#eef1f7}body .masterstudy-buy-button-dropdown__section.masterstudy-buy-button-dropdown__section_open .masterstudy-buy-button-dropdown__head-checkbox{background:#fff;border-color:var(--accent-100)}body .masterstudy-buy-button-dropdown__section.masterstudy-buy-button-dropdown__section_open .masterstudy-buy-button-dropdown__head-checkbox::before{opacity:1;visibility:visible}body .masterstudy-buy-button-dropdown__section.masterstudy-buy-button-dropdown__section_open .masterstudy-buy-button-dropdown__body{max-height:500px}body .masterstudy-buy-button-dropdown__section:first-child{border-top-left-radius:8px;border-top-right-radius:8px}body .masterstudy-buy-button-dropdown__section:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}body .masterstudy-buy-button-dropdown__section:last-child .masterstudy-buy-button-dropdown__body{border-bottom:none}body .masterstudy-buy-button-dropdown__head{display:flex;width:100%;justify-content:space-between;align-items:center;padding:15px 20px}body .masterstudy-buy-button-dropdown__head:hover{cursor:pointer}body .masterstudy-buy-button-dropdown__head-title{display:flex;width:auto;font-size:15px;font-style:normal;font-weight:500;line-height:normal;color:#001931}body .masterstudy-buy-button-dropdown__head-checkbox{display:flex;width:20px;height:20px;border-radius:50%;border:2px solid #dbe0e9;transition:.3s}body .masterstudy-buy-button-dropdown__head-checkbox::before{content:"";display:flex;margin:auto;width:9px;height:9px;border-radius:50%;background-color:var(--accent-100);opacity:0;visibility:hidden}body .masterstudy-buy-button-dropdown__body{display:flex;width:100%;flex-direction:column;max-height:0;overflow:hidden;transition:max-height .3s;border-bottom:1px solid #dbe0e9;padding:0}body .masterstudy-buy-button-dropdown__body-wrapper{display:flex;flex-direction:column;width:100%;padding:0 20px 15px;overflow-y:auto}body .masterstudy-buy-button-dropdown__body-wrapper::-webkit-scrollbar{width:5px}body .masterstudy-buy-button-dropdown__body-wrapper::-webkit-scrollbar-thumb{background:var(--accent-100);border-radius:4px}body .masterstudy-buy-button-dropdown__body-wrapper::-webkit-scrollbar-thumb:hover{background:var(--accent-hover)}body .masterstudy-buy-button-dropdown__body-wrapper::-webkit-scrollbar-track{background:#eef1f7;border-radius:4px}body .masterstudy-buy-button.dropdown-show{z-index:100}body .masterstudy-buy-button.dropdown-show .masterstudy-buy-button-dropdown{display:block;-webkit-transform:translateY(-4px);transform:translateY(-4px);transition:.3s;visibility:visible;opacity:1}body .masterstudy-buy-button.dropdown-show:after{margin-top:-6px;-webkit-transform:rotate(180deg) translateY(-50%);transform:rotate(180deg) translateY(-50%)}body .masterstudy-buy-button_style-dark-mode .masterstudy-buy-button-dropdown{background-color:#1e1e1e;box-shadow:0 10px 40px 0 rgba(0,0,0,.25)}body .masterstudy-buy-button_style-dark-mode .masterstudy-buy-button-dropdown__price,body .masterstudy-buy-button_style-dark-mode .masterstudy-buy-button-dropdown__title{color:rgba(255,255,255,.7)}body.rtl .masterstudy-buy-button.masterstudy-buy-button_dropdown{padding-right:0;padding-left:25px}body.rtl .masterstudy-buy-button.masterstudy-buy-button_dropdown::after{left:20px;right:auto}body.rtl .masterstudy-buy-button__title{text-align:right} -
masterstudy-lms-learning-management-system/trunk/_core/init.php
r3449418 r3458914 4 4 define( 'STM_LMS_PATH', dirname( STM_LMS_FILE ) ); 5 5 define( 'STM_LMS_URL', plugin_dir_url( STM_LMS_FILE ) ); 6 define( 'STM_LMS_VERSION', '3.7.1 4' );6 define( 'STM_LMS_VERSION', '3.7.15' ); 7 7 define( 'STM_LMS_DB_VERSION', '3.7.5' ); 8 8 define( 'STM_LMS_BASE_API_URL', '/wp-json/lms' ); -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/instructors.php
r3427267 r3458914 485 485 $single_sale = get_post_meta( $id, 'single_sale', true ); 486 486 $not_in_membership = get_post_meta( $id, 'not_membership', true ); 487 $course_free_status = masterstudy_lms_course_free_status( $ single_sale, $price );487 $course_free_status = masterstudy_lms_course_free_status( $id, $price ); 488 488 489 489 switch ( $status ) { -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/user.php
r3422825 r3458914 976 976 if ( is_ms_lms_addon_enabled( Addons::SUBSCRIPTIONS ) ) { 977 977 $subscription_info = ( new CourseService() )->has_access_to_course( $user_id, $course, $course_id, $add ); 978 $condition = $add ? $subscription_info['only_for_membership'] && $subscription_info['bought_by_membership'] : $subscription_info['only_for_membership'] ;978 $condition = $add ? $subscription_info['only_for_membership'] && $subscription_info['bought_by_membership'] : $subscription_info['only_for_membership'] && ! empty( $subscription_info['subscription_id'] ); 979 979 if ( $condition ) { 980 980 return apply_filters( 'stm_lms_has_course_access', $subscription_info['has_access'], $course_id, $item_id ); -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/vendor/LmsUpdateCallbacks.php
r3410526 r3458914 6 6 use MasterStudy\Lms\Database\CurriculumMaterial; 7 7 use MasterStudy\Lms\Database\CurriculumSection; 8 use MasterStudy\Lms\Enums\PricingMode; 8 9 use MasterStudy\Lms\Plugin\PostType; 10 use MasterStudy\Lms\Pro\AddonsPlus\Subscriptions\Enums\SubscriptionPlanType; 9 11 use MasterStudy\Lms\Repositories\CurriculumMaterialRepository; 10 12 use MasterStudy\Lms\Repositories\CurriculumSectionRepository; 11 13 use MasterStudy\Lms\Utility\CourseGrade; 12 14 use Automattic\WooCommerce\Utilities\OrderUtil; 13 use WP_Query;14 15 15 16 abstract class LmsUpdateCallbacks { … … 970 971 } 971 972 } 973 974 public static function lms_update_pricing() { 975 global $wpdb; 976 977 $subscriptions_join = ''; 978 $subscriptions_select = ''; 979 $prepare_args = array(); 980 981 if ( is_ms_lms_addon_enabled( 'subscriptions' ) ) { 982 $subscription_plans_table = stm_lms_subscription_plans_table_name( $wpdb ); 983 $plan_items_table = stm_lms_subscription_plan_items_table_name( $wpdb ); 984 985 $subscriptions_join = " 986 LEFT JOIN ( 987 SELECT pi.object_id, COUNT(*) AS total_plans 988 FROM {$subscription_plans_table} AS p 989 INNER JOIN {$plan_items_table} AS pi ON pi.plan_id = p.id 990 WHERE p.type = %s AND p.is_enabled = 1 991 GROUP BY pi.object_id 992 ) AS sp ON sp.object_id = posts.ID 993 "; 994 995 $subscriptions_select = ', 996 MAX(COALESCE(sp.total_plans, 0)) AS total_plans 997 '; 998 999 $prepare_args[] = SubscriptionPlanType::COURSE; 1000 } 1001 1002 $sql = " 1003 SELECT posts.ID AS course_id, 1004 1005 MAX(CASE WHEN pm.meta_key = 'pricing_mode' THEN pm.meta_value END) AS pricing_mode, 1006 MAX(CASE WHEN pm.meta_key = 'affiliate_course' THEN pm.meta_value END) AS affiliate_course, 1007 MAX(CASE WHEN pm.meta_key = 'affiliate_course_link' THEN pm.meta_value END) AS affiliate_course_link, 1008 MAX(CASE WHEN pm.meta_key = 'affiliate_course_text' THEN pm.meta_value END) AS affiliate_course_text, 1009 MAX(CASE WHEN pm.meta_key = 'single_sale' THEN pm.meta_value END) AS single_sale, 1010 MAX(CASE WHEN pm.meta_key = 'price' THEN pm.meta_value END) AS price, 1011 MAX(CASE WHEN pm.meta_key = 'enterprise_price' THEN pm.meta_value END) AS enterprise_price, 1012 MAX(CASE WHEN pm.meta_key = 'points_price' THEN pm.meta_value END) AS points_price, 1013 MAX(CASE WHEN pm.meta_key = 'subscriptions' THEN pm.meta_value END) AS subscriptions, 1014 MAX(CASE WHEN pm.meta_key = 'not_membership' THEN pm.meta_value END) AS not_membership, 1015 MAX(CASE WHEN pm.meta_key = 'price_info' THEN pm.meta_value END) AS price_info 1016 1017 {$subscriptions_select} 1018 1019 FROM {$wpdb->posts} AS posts 1020 1021 LEFT JOIN {$wpdb->postmeta} AS pm 1022 ON pm.post_id = posts.ID 1023 AND pm.meta_key IN ( 1024 'pricing_mode', 1025 'affiliate_course', 1026 'affiliate_course_link', 1027 'affiliate_course_text', 1028 'single_sale', 1029 'price', 1030 'enterprise_price', 1031 'points_price', 1032 'subscriptions', 1033 'not_membership', 1034 'price_info' 1035 ) 1036 1037 {$subscriptions_join} 1038 1039 WHERE posts.post_type = 'stm-courses' GROUP BY posts.ID 1040 "; 1041 1042 if ( ! empty( $prepare_args ) ) { 1043 // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- prepared before 1044 $sql = $wpdb->prepare( $sql, $prepare_args ); 1045 } 1046 1047 // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared -- prepared before 1048 $rows = $wpdb->get_results( $sql, ARRAY_A ); 1049 1050 if ( empty( $rows ) ) { 1051 return; 1052 } 1053 1054 foreach ( $rows as $row ) { 1055 $course_id = (int) $row['course_id']; 1056 $pricing_info = $row['price_info'] ?? ''; 1057 1058 // Pricing is affiliate 1059 if ( 1060 ! empty( $row['affiliate_course'] ) && 1061 ! empty( $row['affiliate_course_link'] ) && 1062 ! empty( $row['affiliate_course_text'] ) 1063 ) { 1064 update_post_meta( $course_id, 'pricing_mode', PricingMode::AFFILIATE ); 1065 1066 if ( ! empty( $row['price'] ) ) { 1067 update_post_meta( $course_id, 'affiliate_course_price', $row['price'] ); 1068 } 1069 continue; 1070 } 1071 1072 $total_plans = isset( $row['total_plans'] ) ? (int) $row['total_plans'] : 0; 1073 1074 // Pricing is paid 1075 $has_single_sale_price = ! empty( $row['single_sale'] ) && ! empty( $row['price'] ); 1076 $has_enterprise_price = ! empty( $row['enterprise_price'] ); 1077 $has_points_price = ! empty( $row['points_price'] ); 1078 $has_subscriptions_plans = ! empty( $total_plans ) && ! empty( $row['subscriptions'] ); 1079 $has_membership_enabled = empty( $row['not_membership'] ) && ( is_ms_lms_addon_enabled( 'subscriptions' ) || defined( 'PMPRO_VERSION' ) ); 1080 $is_zero_price = '0' === $row['price']; 1081 1082 if ( $has_enterprise_price ) { 1083 update_post_meta( $course_id, 'enterprise', 'on' ); 1084 } 1085 1086 if ( $has_points_price ) { 1087 update_post_meta( $course_id, 'points', 'on' ); 1088 } 1089 1090 if ( ! $is_zero_price && ( $has_single_sale_price || $has_enterprise_price || $has_points_price || $has_membership_enabled || $has_subscriptions_plans ) ) { 1091 update_post_meta( $course_id, 'pricing_mode', PricingMode::PAID ); 1092 update_post_meta( $course_id, 'single_sale_price_info', $pricing_info ); 1093 update_post_meta( $course_id, 'enterprise_price_info', $pricing_info ); 1094 update_post_meta( $course_id, 'points_price_info', $pricing_info ); 1095 update_post_meta( $course_id, 'subscriptions_price_info', $pricing_info ); 1096 update_post_meta( $course_id, 'membership_price_info', $pricing_info ); 1097 1098 continue; 1099 } 1100 1101 // Pricing is free 1102 update_post_meta( $course_id, 'pricing_mode', PricingMode::FREE ); 1103 update_post_meta( $course_id, 'free_price_info', $pricing_info ); 1104 } 1105 } 972 1106 } -
masterstudy-lms-learning-management-system/trunk/_core/lms/classes/vendor/LmsUpdates.php
r3410526 r3458914 60 60 '3.7.3' => array( 'lms_update_zero_sale_price' ), // If user had sale_price 0 then make it an empty string, otherwise keep the value, 61 61 '3.7.5' => array( 'lms_add_course_statuses' ), // Add default course statuses 62 '3.7.15' => array( 'lms_update_pricing' ), // Update old pricing to new separated pricing 62 63 ); 63 64 -
masterstudy-lms-learning-management-system/trunk/_core/lms/helpers.php
r3449418 r3458914 1 1 <?php 2 2 3 use MasterStudy\Lms\Enums\PricingMode; 3 4 use MasterStudy\Lms\Plugin\PostType; 4 5 use MasterStudy\Lms\Pro\addons\CourseBundle\Repository\CourseBundleRepository; … … 11 12 } 12 13 13 use \MasterStudy\Lms\Repositories\CurriculumMaterialRepository;14 use MasterStudy\Lms\Repositories\CurriculumMaterialRepository; 14 15 15 16 function stm_lms_str_replace_once( $str_pattern, $str_replacement, $string ) { … … 145 146 146 147 return $translate ? sprintf( $translate, $number ) : $translate; 147 148 148 } 149 149 … … 438 438 $content = preg_replace_callback( 439 439 $pattern, 440 function ( $matches ) {440 function ( $matches ) { 441 441 $pre_text = wp_kses_post( trim( $matches[1] ) ); 442 442 $timecode = $matches[2]; … … 516 516 $lang['url'] = $lang['url'] . $sub_path; 517 517 } 518 } ;518 } 519 519 520 520 return $langs; 521 522 521 } 523 522 ); … … 640 639 if ( function_exists( 'stm_lms_get_VC_img' ) && function_exists( 'wpb_getImageBySize' ) && ! empty( $size_1 ) ) { 641 640 $image = stm_lms_get_VC_img( $attachment_id, $size_1, $url ); 641 } elseif ( $url ) { 642 $image = stm_lms_get_image_url( $attachment_id, $size_2 ); 642 643 } else { 643 if ( $url ) { 644 $image = stm_lms_get_image_url( $attachment_id, $size_2 ); 645 } else { 646 $image = wp_get_attachment_image( $attachment_id, $size_2 ); 647 } 644 $image = wp_get_attachment_image( $attachment_id, $size_2 ); 648 645 } 649 646 if ( false === $retina && strpos( $image, 'srcset' ) !== false ) { … … 922 919 foreach ( $post_types as $post_type ) { 923 920 if ( isset( $post_type['args']['show_in_menu'] ) && 'admin.php?page=stm-lms-settings' === $post_type['args']['show_in_menu'] ) { 924 $menu_position ++;921 ++$menu_position; 925 922 } 926 923 } … … 1004 1001 $select[ $term_child_id ] = "- {$term_child->name}"; 1005 1002 } 1006 }; 1007 1003 } 1008 1004 } 1009 1005 … … 1492 1488 global $wpdb; 1493 1489 1494 if ( is_ms_lms_addon_enabled( Addons::SUBSCRIPTIONS) ) {1490 if ( class_exists( 'MasterStudy\Lms\Pro\AddonsPlus\Subscriptions\Services\CourseService' ) ) { 1495 1491 $is_provided = ( new CourseService() )->is_certificate_provided( get_current_user_id(), $course_id ); 1496 1492 if ( ! $is_provided ) { … … 1578 1574 return false; 1579 1575 } 1580 } ;1576 } 1581 1577 1582 1578 function masterstudy_course_header_meta_data() { … … 1602 1598 add_action( 'wp_head', 'masterstudy_course_header_meta_data' ); 1603 1599 1604 function masterstudy_lms_course_free_status( $single_sale, $price ) { 1600 function masterstudy_lms_course_free_status( $course_id, $price ) { 1601 $pricing_mode = get_post_meta( $course_id, 'pricing_mode', true ) ?? false; 1605 1602 return array( 1606 'is_free' => $single_sale && 0.0 === floatval( $price ),1603 'is_free' => PricingMode::FREE === $pricing_mode, 1607 1604 'zero_price' => empty( $price ) || 0.0 === floatval( $price ), 1608 1605 ); -
masterstudy-lms-learning-management-system/trunk/_core/lms/widgets/popular.widget.php
r3427267 r3458914 66 66 $single_sale = get_post_meta( $post_id, 'single_sale', true ); 67 67 $not_in_membership = get_post_meta( $post_id, 'not_membership', true ); 68 $course_free_status = masterstudy_lms_course_free_status( $ single_sale, $price );68 $course_free_status = masterstudy_lms_course_free_status( $post_id, $price ); 69 69 $content = ''; 70 70 if ( ! $single_sale && ! $not_in_membership ) { -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/components/buy-button/buy-button.php
r3392871 r3458914 9 9 * @var bool $dark_mode 10 10 */ 11 12 use MasterStudy\Lms\Enums\PricingMode; 11 13 12 14 wp_enqueue_style( 'masterstudy-buy-button' ); … … 25 27 $course_price = STM_LMS_Course::get_course_price( $post_id ); 26 28 $single_sale = get_post_meta( $post_id, 'single_sale', true ); 29 $pricing_mode = get_post_meta( $post_id, 'pricing_mode', true ); 27 30 $has_access = isset( $has_access ) ? $has_access : STM_LMS_User::has_course_access( $post_id, '', false ); 28 31 $prerequisite_passed = true; … … 49 52 } 50 53 51 if ( class_exists( 'STM_LMS_Courses_Pro' ) && method_exists( 'STM_LMS_Courses_Pro', 'affiliate_course' ) ) { 52 $is_affiliate = STM_LMS_Courses_Pro::affiliate_course( $post_id ); 53 } else { 54 $is_affiliate = false; 55 } 56 57 if ( ! $is_affiliate ) { 58 if ( ( $has_access || ( empty( $course_price ) && $single_sale ) ) && $prerequisite_passed ) : 54 if ( PricingMode::AFFILIATE !== $pricing_mode || ! class_exists( 'STM_LMS_Courses_Pro' ) ) { 55 if ( ( $has_access || PricingMode::FREE === $pricing_mode ) && $prerequisite_passed ) : 59 56 /* Including the button template for free courses */ 60 57 STM_LMS_Templates::show_lms_template( … … 81 78 ); 82 79 endif; 80 } else { 81 STM_LMS_Templates::show_lms_template( 82 'components/buy-button/paid-courses/affiliate', 83 array( 84 'course_id' => $post_id, 85 ) 86 ); 83 87 } -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/components/buy-button/free-courses/free-courses.php
r3198820 r3458914 9 9 <div class="<?php echo esc_attr( implode( ' ', $button_classes ) ); ?>"> 10 10 <?php 11 $course = STM_LMS_Helpers::simplify_db_array( stm_lms_get_user_course( $user_id, $post_id, array( 'current_lesson_id', 'progress_percent' ) ) ); 12 $current_lesson = $course['current_lesson_id'] ?? '0'; 13 $progress = intval( $course['progress_percent'] ?? 0 ); 14 $lesson_url = STM_LMS_Lesson::get_lesson_url( $post_id, $current_lesson ); 15 $btn_label = esc_html__( 'Start course', 'masterstudy-lms-learning-management-system' ); 16 $trial_addon = is_ms_lms_addon_enabled( 'shareware' ); 17 $guest_trial_enabled = false; 11 $course = STM_LMS_Helpers::simplify_db_array( 12 stm_lms_get_user_course( 13 $user_id, 14 $post_id, 15 array( 16 'current_lesson_id', 17 'progress_percent', 18 ) 19 ) 20 ); 21 $current_lesson = $course['current_lesson_id'] ?? '0'; 22 $progress = intval( $course['progress_percent'] ?? 0 ); 23 $lesson_url = STM_LMS_Lesson::get_lesson_url( $post_id, $current_lesson ); 24 $btn_label = esc_html__( 'Start course', 'masterstudy-lms-learning-management-system' ); 25 $trial_addon = is_ms_lms_addon_enabled( 'shareware' ); 26 $guest_trial_enabled = false; 27 $is_certificate_enabled = \MasterStudy\Lms\Repositories\PricingRepository::is_certificate_enabled( $post_id ); 28 $price_info = get_post_meta( $post_id, 'free_price_info', true ); 29 $cert_info = empty( get_post_meta( $post_id, 'free_do_not_provide_certificate', true ) ) && $is_certificate_enabled; 30 31 if ( ! function_exists( 'concat_info' ) ) { 32 function concat_info( array $strings ): string { 33 return implode( ' • ', array_filter( $strings ) ); 34 } 35 } 36 18 37 19 38 if ( $trial_addon ) { … … 27 46 if ( empty( $user_id ) && $trial_addon && $guest_trial_enabled ) { 28 47 ?> 29 <a class="masterstudy-buy-button__link masterstudy-buy-button__link_centered" href="<?php echo esc_url( $lesson_url ); ?>"> 30 <span class="masterstudy-buy-button__title"><?php echo esc_html( sanitize_text_field( $btn_label ) ); ?></span> 48 <a class="masterstudy-buy-button__link masterstudy-buy-button__link_centered" 49 href="<?php echo esc_url( $lesson_url ); ?>"> 50 <span 51 class="masterstudy-buy-button__title"><?php echo esc_html( sanitize_text_field( $btn_label ) ); ?></span> 31 52 </a> 32 53 <?php 33 54 } elseif ( empty( $user_id ) ) { 34 55 ?> 35 <a class="masterstudy-buy-button__link masterstudy-buy-button__link_centered" href="#" data-authorization-modal="login"> 36 <span class="masterstudy-buy-button__title"><?php echo esc_html__( 'Enroll course', 'masterstudy-lms-learning-management-system' ); ?></span> 56 <a class="masterstudy-buy-button__link masterstudy-buy-button__link_centered" href="#" 57 data-authorization-modal="login"> 58 <span 59 class="masterstudy-buy-button__title"><?php echo esc_html__( 'Enroll course', 'masterstudy-lms-learning-management-system' ); ?></span> 37 60 </a> 38 61 <?php … … 44 67 if ( $is_course_coming_soon ) { 45 68 ?> 46 <a href="#" class="masterstudy-buy-button__link masterstudy-buy-button__link_centered masterstudy-buy-button__link_disabled"> 47 <span class="masterstudy-buy-button__title"><?php echo esc_html__( 'Coming soon', 'masterstudy-lms-learning-management-system' ); ?></span> 69 <a href="#" 70 class="masterstudy-buy-button__link masterstudy-buy-button__link_centered masterstudy-buy-button__link_disabled"> 71 <span 72 class="masterstudy-buy-button__title"><?php echo esc_html__( 'Coming soon', 'masterstudy-lms-learning-management-system' ); ?></span> 48 73 </a> 49 74 <?php 50 75 } else { 51 76 ?> 52 <a class="masterstudy-buy-button__link masterstudy-buy-button__link_centered" href="<?php echo esc_url( $lesson_url ); ?>"> 53 <span class="masterstudy-buy-button__title"><?php echo esc_html( sanitize_text_field( $btn_label ) ); ?></span> 77 <a class="masterstudy-buy-button__link masterstudy-buy-button__link_centered" 78 href="<?php echo esc_url( $lesson_url ); ?>"> 79 <span 80 class="masterstudy-buy-button__title"><?php echo esc_html( sanitize_text_field( $btn_label ) ); ?></span> 54 81 </a> 55 82 <?php … … 58 85 ?> 59 86 </div> 87 <?php if ( ( ! empty( $price_info ) || $cert_info ) && empty( $course ) ) : ?> 88 <span class="masterstudy-buy-button__single-price-info-text"> 89 <?php 90 echo esc_html( 91 concat_info( 92 array( 93 $price_info ?? '', 94 $cert_info ? esc_html__( 'Certificate included', 'masterstudy-lms-learning-management-system' ) : null, 95 ) 96 ) 97 ); 98 ?> 99 </span> 100 <?php endif ?> -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/components/buy-button/paid-courses/paid-courses.php
r3422825 r3458914 11 11 use MasterStudy\Lms\Plugin\Addons; 12 12 use MasterStudy\Lms\Pro\AddonsPlus\Subscriptions\Repositories\SubscriptionPlanRepository; 13 use MasterStudy\Lms\Repositories\PricingRepository; 13 14 14 15 wp_enqueue_style( 'masterstudy-button' ); … … 20 21 $not_in_membership = get_post_meta( $post_id, 'not_membership', true ); 21 22 $is_subscriptions_enabled = get_post_meta( $post_id, 'subscriptions', true ); 23 $price_info = PricingRepository::get_price_info( $post_id ); 24 $cert_info = PricingRepository::get_certificates_info( $post_id ); 22 25 $points_price = class_exists( 'STM_LMS_Point_System' ) ? STM_LMS_Point_System::course_price( $post_id ) : null; 26 $points_enabled = get_post_meta( $post_id, 'points', true ); 23 27 $enterprise_price = class_exists( 'STM_LMS_Enterprise_Courses' ) ? STM_LMS_Enterprise_Courses::get_enterprise_price( $post_id ) : null; 24 $group_course_show = $prerequisite_passed && empty( $hide_group_course ) && ! empty( $enterprise_price ) && $logged_in; 28 $enterprise_enabled = get_post_meta( $post_id, 'enterprise', true ); 29 $group_course_show = $prerequisite_passed && empty( $hide_group_course ) && ! empty( $enterprise_enabled ) && $logged_in; 25 30 $show_buttons = apply_filters( 'stm_lms_pro_show_button', true, $post_id ); 26 31 $sale_price_active = STM_LMS_Helpers::is_sale_price_active( $post_id ); 27 32 $is_sale = ! empty( $sale_price ) && ! empty( $sale_price_active ); 28 33 $guest_checkout = STM_LMS_Options::get_option( 'guest_checkout', false ); 34 $cert_included_text = esc_html__( 'Certificate included', 'masterstudy-lms-learning-management-system' ); 29 35 30 36 $pmpro_plans_courses = array(); … … 98 104 $dropdown_enabled = ( 99 105 ( ! empty( $pmpro_plans_courses ) && ! $not_in_membership ) 100 || ( ! empty( $points_ price) && $logged_in )106 || ( ! empty( $points_enabled ) && $logged_in ) 101 107 || ( $group_course_show && $logged_in ) 102 108 || ( ! empty( $ms_membership_plans ) && ! $not_in_membership ) … … 123 129 } 124 130 131 if ( ! function_exists( 'concat_info' ) ) { 132 function concat_info( array $strings ): string { 133 return implode( ' • ', array_filter( $strings ) ); 134 } 135 } 136 125 137 if ( $show_buttons ) { 126 138 ?> … … 134 146 'sale_price' => 'on' !== $single_sale ? '' : $sale_price, 135 147 'sale_price_active' => $sale_price_active, 148 'price_info' => $price_info, 136 149 ) 137 150 ); 151 $single_price_info = $price_info['single_sale_price_info']; 138 152 if ( $dropdown_enabled ) { 139 153 ?> 154 140 155 <div class="masterstudy-buy-button-dropdown"> 141 156 <?php … … 167 182 </span> 168 183 </a> 184 <?php if ( ! empty( $price_info['single_sale_price_info'] ) || $cert_info['single_sale'] ) : ?> 185 <span class="masterstudy-buy-button__price-info-text"> 186 <?php echo esc_html( concat_info( array( $price_info['single_sale_price_info'] ?? '', $cert_info['single_sale'] ? $cert_included_text : null ) ) ); ?> 187 </span> 188 <?php endif; ?> 169 189 </div> 170 190 </div> … … 194 214 ); 195 215 ?> 216 217 <?php if ( ! empty( $price_info['membership_price_info'] ) || $cert_info['pmpro'] ) : ?> 218 <span class="masterstudy-buy-button__price-info-text"> 219 <?php echo esc_html( concat_info( array( $price_info['membership_price_info'] ?? '', $cert_info['pmpro'] ? $cert_included_text : null ) ) ); ?> 220 </span> 221 <?php endif; ?> 196 222 </div> 197 223 </div> … … 218 244 'logged_in' => $logged_in, 219 245 'guest_checkout' => $guest_checkout, 246 'course_id' => $post_id, 220 247 ) 221 248 ); 222 249 ?> 250 <?php if ( ! empty( $price_info['membership_price_info'] ) ) : ?> 251 <span class="masterstudy-buy-button__price-info-text"><?php echo esc_html( $price_info['membership_price_info'] ); ?></span> 252 <?php endif; ?> 223 253 </div> 224 254 </div> … … 245 275 'logged_in' => $logged_in, 246 276 'guest_checkout' => $guest_checkout, 277 'course_id' => $post_id, 247 278 ) 248 279 ); 249 280 ?> 250 </div> 251 </div> 252 </div> 253 <?php 254 } 255 256 if ( ! empty( $points_price ) && $logged_in ) { 281 <?php if ( ! empty( $price_info['subscriptions_price_info'] ) ) : ?> 282 <span class="masterstudy-buy-button__price-info-text"><?php echo esc_html( $price_info['subscriptions_price_info'] ); ?></span> 283 <?php endif; ?> 284 </div> 285 </div> 286 </div> 287 <?php 288 } 289 290 if ( $group_course_show ) { 291 ?> 292 <div class="masterstudy-buy-button-dropdown__section"> 293 <div class="masterstudy-buy-button-dropdown__head"> 294 <span class="masterstudy-buy-button-dropdown__head-title"> 295 <?php echo esc_html__( 'Group course', 'masterstudy-lms-learning-management-system' ); ?> 296 </span> 297 <span class="masterstudy-buy-button-dropdown__head-checkbox"></span> 298 </div> 299 <div class="masterstudy-buy-button-dropdown__body"> 300 <div class="masterstudy-buy-button-dropdown__body-wrapper"> 301 <?php do_action( 'masterstudy_group_course_button', $post_id ); ?> 302 <?php if ( ! empty( $price_info['enterprise_price_info'] ) || $cert_info['enterprise'] ) : ?> 303 <span class="masterstudy-buy-button__price-info-text"> 304 <?php echo esc_html( concat_info( array( $price_info['enterprise_price_info'] ?? '', $cert_info['enterprise'] ? $cert_included_text : null ) ) ); ?> 305 </span> 306 <?php endif; ?> 307 </div> 308 </div> 309 </div> 310 <?php 311 } 312 313 if ( ! empty( $points_enabled ) && $logged_in ) { 257 314 ?> 258 315 <div class="masterstudy-buy-button-dropdown__section"> … … 266 323 <div class="masterstudy-buy-button-dropdown__body-wrapper"> 267 324 <?php do_action( 'masterstudy_point_system', $post_id ); ?> 268 </div> 269 </div> 270 </div> 271 <?php 272 } 273 274 if ( $group_course_show ) { 275 ?> 276 <div class="masterstudy-buy-button-dropdown__section"> 277 <div class="masterstudy-buy-button-dropdown__head"> 278 <span class="masterstudy-buy-button-dropdown__head-title"> 279 <?php echo esc_html__( 'Group course', 'masterstudy-lms-learning-management-system' ); ?> 280 </span> 281 <span class="masterstudy-buy-button-dropdown__head-checkbox"></span> 282 </div> 283 <div class="masterstudy-buy-button-dropdown__body"> 284 <div class="masterstudy-buy-button-dropdown__body-wrapper"> 285 <?php do_action( 'masterstudy_group_course_button', $post_id ); ?> 325 <?php if ( ! empty( $price_info['points_price_info'] ) || $cert_info['points'] ) : ?> 326 <span class="masterstudy-buy-button__price-info-text"> 327 <?php echo esc_html( concat_info( array( $price_info['points_price_info'] ?? '', $cert_info['points'] ? $cert_included_text : null ) ) ); ?> 328 </span> 329 <?php endif; ?> 286 330 </div> 287 331 </div> … … 293 337 <?php } ?> 294 338 </div> 339 340 <?php if ( ! $dropdown_enabled ) : ?> 341 <span class="masterstudy-buy-button__single-price-info-text"> 342 <?php echo esc_html( concat_info( array( $price_info['single_sale_price_info'] ?? '', $cert_info['single_sale'] ? $cert_included_text : null ) ) ); ?> 343 </span> 344 <?php endif; ?> 345 295 346 <?php 296 347 if ( $group_course_show ) { -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/components/course/card/global/popup-price.php
r3392871 r3458914 4 4 */ 5 5 6 $course_free_status = masterstudy_lms_course_free_status( $course[' single_sale'], $course['price'] );6 $course_free_status = masterstudy_lms_course_free_status( $course['id'], $course['price'] ); 7 7 $is_sale = ! empty( $course['sale_price'] ) && $course['is_sale_active']; 8 8 -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/components/course/card/global/price.php
r3427267 r3458914 4 4 */ 5 5 6 $course_free_status = masterstudy_lms_course_free_status( $course[' single_sale'], $course['price'] );7 $members_only = ! $course['single_sale'] && ! $course['not_in_membership'];6 $course_free_status = masterstudy_lms_course_free_status( $course['id'], $course['price'] ); 7 $members_only = ! $course['single_sale'] && STM_LMS_Subscriptions::subscription_enabled() && ! $course['not_in_membership']; 8 8 $is_sale = ! empty( $course['sale_price'] ) && $course['is_sale_active']; 9 9 ?> -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/components/course/popular-courses.php
r3427267 r3458914 48 48 $course_status = STM_LMS_Course::get_post_status( $course_id ); 49 49 $sale_price = ! empty( $popular_course->sale_price ) && $is_sale_active ? true : false; 50 $course_free_status = masterstudy_lms_course_free_status( $popular_course-> single_sale, $popular_course->price );50 $course_free_status = masterstudy_lms_course_free_status( $popular_course->id, $popular_course->price ); 51 51 52 52 if ( $popular_course->is_udemy_course ) { -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/components/course/price-info.php
r3104164 r3458914 4 4 */ 5 5 6 if ( ! empty( $course->price_info ) ) { ?> 6 use MasterStudy\Lms\Enums\PricingMode; 7 ?> 8 <?php if ( PricingMode::FREE === $course->pricing_mode ) : ?> 7 9 <div class="masterstudy-single-course-price-info"> 8 <?php echo esc_html( $course-> price_info ); ?>10 <?php echo esc_html( $course->free_price_info ); ?> 9 11 </div> 10 <?php 11 } 12 <?php endif; ?> -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/components/course/related-courses.php
r3427267 r3458914 73 73 $is_sale_active = STM_LMS_Helpers::is_sale_price_active( $course_id ); 74 74 $sale_price = ! empty( $related_course->sale_price ) && $is_sale_active ? true : false; 75 $course_free_status = masterstudy_lms_course_free_status( $related_course-> single_sale, $related_course->price );75 $course_free_status = masterstudy_lms_course_free_status( $related_course->id, $related_course->price ); 76 76 77 77 if ( $related_course->is_udemy_course ) { -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/course.php
r3247826 r3458914 114 114 </div> 115 115 <?php 116 STM_LMS_Templates::show_lms_template( 'components/course/price-info', array( 'course' => $course_data['course'] ) );117 116 } 118 117 if ( $course_data['is_coming_soon'] && $course_data['course']->coming_soon_price && ! $course_data['course']->coming_soon_preorder ) { -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/elementor-widgets/courses/card/card-style-3/price.php
r3427267 r3458914 1 1 <?php 2 $course_free_status = masterstudy_lms_course_free_status( $course[' single_sale'], $course['price'] );2 $course_free_status = masterstudy_lms_course_free_status( $course['id'], $course['price'] ); 3 3 $is_sale = ! empty( $course['sale_price'] ) && $course['is_sale_active']; 4 4 ?> -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/elementor-widgets/courses/card/card-style-4/price.php
r3427267 r3458914 1 1 <?php 2 $course_free_status = masterstudy_lms_course_free_status( $course[' single_sale'], $course['price'] );2 $course_free_status = masterstudy_lms_course_free_status( $course['id'], $course['price'] ); 3 3 $is_sale = ! empty( $course['sale_price'] ) && $course['is_sale_active']; 4 4 ?> -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/elementor-widgets/courses/card/card-style-5/price.php
r3427267 r3458914 1 1 <?php 2 $course_free_status = masterstudy_lms_course_free_status( $course[' single_sale'], $course['price'] );2 $course_free_status = masterstudy_lms_course_free_status( $course['id'], $course['price'] ); 3 3 $has_price_info = $course['single_sale'] && ! $course_free_status['zero_price']; 4 4 $members_only = ! $course['single_sale'] && ! $course['not_in_membership']; -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/elementor-widgets/courses/card/global/popup-price.php
r3427267 r3458914 1 1 <?php 2 $course_free_status = masterstudy_lms_course_free_status( $course[' single_sale'], $course['price'] );2 $course_free_status = masterstudy_lms_course_free_status( $course['id'], $course['price'] ); 3 3 $is_sale = ! empty( $course['sale_price'] ) && $course['is_sale_active']; 4 4 -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/elementor-widgets/courses/card/global/price.php
r3427267 r3458914 1 1 <?php 2 $course_free_status = masterstudy_lms_course_free_status( $course[' single_sale'], $course['price'] );3 $members_only = ! $course['single_sale'] && ! $course['not_in_membership'];2 $course_free_status = masterstudy_lms_course_free_status( $course['id'], $course['price'] ); 3 $members_only = ! $course['single_sale'] && STM_LMS_Subscriptions::subscription_enabled() && ! $course['not_in_membership']; 4 4 $has_price_info = $course['single_sale'] && ! $course_free_status['zero_price']; 5 5 $is_sale = ! empty( $course['sale_price'] ) && $course['is_sale_active']; -
masterstudy-lms-learning-management-system/trunk/_core/stm-lms-templates/global/price.php
r3427267 r3458914 9 9 $is_udemy_course = get_post_meta( $course_id, 'udemy_course_id', true ); 10 10 $not_in_membership = get_post_meta( $course_id, 'not_in_membership', true ); 11 $members_only = ! $single_sale && ! $not_in_membership;12 $course_free_status = masterstudy_lms_course_free_status( $ single_sale, $price );11 $members_only = ! $single_sale && STM_LMS_Subscriptions::subscription_enabled() && ! $not_in_membership; 12 $course_free_status = masterstudy_lms_course_free_status( $course_id, $price ); 13 13 14 14 if ( $members_only ) { ?> -
masterstudy-lms-learning-management-system/trunk/assets/course-builder/js/i18n-translations.js
r3448656 r3458914 1 1 /* AUTO-GENERATED. DO NOT EDIT. */ 2 2 /* Generated for wp i18n scan tool. */ 3 (function(){__(" Create your first certificate");__(" Markers & Questions ");__(" and include a short text to highlight key moments. This helps learners quickly find important sections.");__("");__("0");__("10 per page");__("100 per page");__("20 per page");__("50 per page");__("A question type presents several options for the user to choose the correct answer from.");__("A question type requires a simple answer of either true or false to a given statement.");__("AI Generate");__("AI Text Generator");__("AI course creation");__("AI is generating your course. You can edit everything once it's ready and saved.");__("AI is generating your course. You can edit everything once it’s ready and saved.");__("ASSIGNMENTS");__("Access Type");__("Access device types");__("Access duration");__("Access successfully saved ");__("Access");__("Actions");__("Activate Elementor");__("Active");__("Add %s %s");__("Add Certificate");__("Add Enrolled Students as Attendees");__("Add Marker");__("Add New Order");__("Add New Plan");__("Add New");__("Add Question");__("Add a category");__("Add a co-instructor");__("Add a lesson first");__("Add a lesson");__("Add an assignment first");__("Add an quiz first");__("Add dependency");__("Add explanation");__("Add lesson to course");__("Add new Category");__("Add new answer");__("Add new question");__("Add new");__("Add note");__("Add questions");__("Add this Image");__("Add this Video");__("Add to course");__("Add");__("Additional information");__("Additional");__("Addon is disabled");__("Affiliate this course");__("All Course Layouts");__("All PRO addons");__("All Time");__("All bundles");__("All courses and bundles");__("All courses");__("All courses, bundles and memberships");__("All files");__("All information about your membership plans will be displayed here");__("All membership plans");__("All question types");__("All unsaved data will be lost. Do you really want to leave this page?");__("All your Coupon will be displayed here");__("All");__("Allow email notifications");__("Allow participants to join anytime");__("Allow preordering");__("Already in Quiz");__("An error occured while generating \"\"\n");__("An error occured");__("An error occurred");__("Answer explanation");__("Answer");__("Answers limit is required");__("Answers");__("Applies to");__("Apply Coupon to");__("Apply");__("Approval Pending");__("Are you sure that you want to delete this question?");__("Are you sure you want to close this modal?");__("Are you sure you want to delete the SCORM ?");__("Are you sure you want to delete these coupons?");__("Are you sure you want to delete these memberships?");__("Are you sure you want to delete these orders?");__("Are you sure you want to delete this FAQ item?");__("Are you sure you want to delete this drip content?");__("Are you sure you want to delete this drip item?");__("Are you sure you want to delete this file?");__("Are you sure you want to delete this marker? It will be removed from the video.");__("Are you sure you want to delete this material?");__("Are you sure you want to delete this question?");__("Are you sure you want to delete this section?");__("Are you sure you want to delete this template?");__("Assignment attempts");__("Assignment content");__("Assignment generated successfully!");__("Assignment materials");__("Assignment successfully created");__("Assignment successfully saved");__("Assignment successfully updated");__("Assignment");__("Assignments addon disabled");__("Assignments");__("At least 1 question type should be selected");__("At least one question");__("At least two answers per question");__("Attach Video");__("Attempts");__("Audio Lesson addon disabled");__("Audio file");__("Audio lesson");__("Audio");__("Available in Pro Version");__("Back to assignments");__("Back to courses");__("Back to google meets");__("Back to lessons");__("Back to questions");__("Back to quizzes");__("Back");__("Bank Transfer");__("Bank name");__("Basic info");__("Basic info, requirements, intended audience");__("Before adding markers or questions to timeline, please upload video");__("Billing Cycles Type");__("Billing Interval");__("Billing cycles");__("Blank Template");__("Briefly describe this membership plan");__("Browse PDF files");__("Browse audio files");__("Browse files");__("Browse subtitle files");__("Build Courses & Content with AI");__("Bulk actions");__("Bundle");__("Bundle-based");__("Bundles");__("Button Link");__("Button Text");__("Cancel Subscription");__("Cancel");__("Cancelled");__("Cash");__("Categories");__("Category has been successfully added");__("Category name");__("Category");__("Category-based");__("Certificate Builder addon is locked!");__("Certificate Builder addon is not enabled!");__("Certificate builder");__("Certificate included");__("Certificate info");__("Certificate successfully saved");__("Certificate");__("Change Prompt");__("Change Video Type");__("Change prompt");__("Change status to active");__("Change status to cancelled");__("Change status to completed");__("Change status to inactive");__("Change status to pending");__("Change video type");__("Choose SCORM package file .zip");__("Choose a style that will be applied only to this course");__("Choose instructor");__("Click on Create before adding questions to the quiz.");__("Click the button below and drag and drop the elements for the left bar for a new dependency");__("Close");__("Co instructor addon is not enabled!");__("Code");__("Collapse all");__("Coming soon end date");__("Coming soon end time");__("Comment added successfully");__("Comment was deleted successfully");__("Company Name");__("Complete!");__("Completed");__("Confirm");__("Content");__("Continue manually");__("Continue");__("Copied!");__("Copy & Edit");__("Copy template");__("Copy");__("Correct answer");__("Correct");__("Country");__("Coupon Applied");__("Coupon Code");__("Coupon Summary");__("Coupon created successfully");__("Coupon updated successfully");__("Coupon");__("Coupon:");__("Coupons");__("Course Description");__("Course FAQ Generator");__("Course Page");__("Course Views");__("Course cover");__("Course description");__("Course duration");__("Course expiration (days)");__("Course files");__("Course has been added successfully");__("Course has been published successfully");__("Course has been rejected");__("Course has been saved as draft");__("Course has been sent for review");__("Course info");__("Course information");__("Course materials successfully saved");__("Course materials");__("Course name");__("Course not found");__("Course page style successfully saved");__("Course preview description");__("Course requirements");__("Course sections");__("Course settings");__("Course short description");__("Course status has been changed");__("Course status");__("Course title");__("Course will have one lesson with SCORM package content.");__("Course");__("Course-based");__("Courses");__("Craft Your Assignment with AI");__("Craft Your Content with AI");__("Craft your Questions with AI");__("Create New Coupon");__("Create New Membership Plan");__("Create YouTube streams from your course to conduct lectures in real time.");__("Create a new dependency");__("Create assignments");__("Create course outline only");__("Create courses with AI");__("Create frequently asked questions and answers (FAQ) about your course in this section");__("Create new quiz");__("Create");__("Credit Card");__("Current students");__("Curriculum");__("Custom fields successfully saved");__("Custom fields");__("Daily");__("Date range");__("Date");__("Day(s)");__("Days");__("Deal ends");__("Deal starts");__("Default");__("Delete marker");__("Delete");__("Describe your course or what students might want to know. AI will generate relevant student FAQs");__("Describe your course...");__("Describe your image...");__("Description");__("Details");__("Discount Type");__("Discount Value (%)");__("Discount Value ()");__("Discount must be greater than 0");__("Discount");__("Do Not Provide Certificate");__("Do you really want to cancel this subscription?");__("Do you really want to delete this plan?");__("Do you really want to delete this subscription?");__("Documents");__("Draft");__("Drag & drop a PDF file here or browse it from your computer");__("Drag & drop a audio here or browse it from your computer");__("Drag & drop a video here or browse it from your computer");__("Drag & drop files here or browse files from your computer ");__("Drag & drop files here or browse files from your computer");__("Drag & drop subtitle files here or browse it from your computer");__("Drag and drop an image or upload it from your computer");__("Drag file here");__("Drag lessons here");__("Drag lessons, quizzes and assignments to the right to create drip content");__("Drip Content addon is locked!");__("Drip Content is disabled");__("Drip Content");__("Drip content ");__("Drip content & Prerequisites");__("Drip content");__("Drip successfully saved");__("Drip");__("EXAM STUDENTS");__("Edit Coupon");__("Edit explanation");__("Edit in Elementor");__("Edit");__("Email");__("Embed iframe content");__("Enable Pro Plus");__("Enable Pro");__("Enable addon");__("Enable this addon to create drip content");__("Enable this to add a \"Featured\" badge to the course ");__("Enable");__("End Date");__("End Time");__("End date");__("End time");__("Engage and evaluate learners with interesting tasks and projects.");__("Enter %");__("Enter 0 (or leave blank) to allow unlimited attempts");__("Enter Plan Title");__("Enter Title");__("Enter VdoCipher video ID");__("Enter Vimeo video URL");__("Enter YouTube video URL");__("Enter access device types");__("Enter access duration");__("Enter an answer");__("Enter assignment name");__("Enter audio progress");__("Enter bank name");__("Enter button link");__("Enter button text");__("Enter category name");__("Enter certificate info");__("Enter course excerpt");__("Enter course name");__("Enter days");__("Enter duration info");__("Enter email");__("Enter explanation");__("Enter external link URL");__("Enter feature");__("Enter featured badge label");__("Enter google meet name");__("Enter keywords to find relevant materials...");__("Enter lesson name");__("Enter message text about upcoming course");__("Enter password");__("Enter points");__("Enter price info");__("Enter price");__("Enter question name");__("Enter question");__("Enter quiz name");__("Enter sale price");__("Enter shortcode");__("Enter stream url");__("Enter template name");__("Enter the code or get a randomly generated");__("Enter url");__("Enter video duration");__("Enter video progress");__("Enter your answer");__("Enter your caption...");__("Enter your keyword");__("Enter your question");__("Enter your reply");__("Enterprise Price");__("Enterprise");__("Error 404");__("Event Visibility");__("Everyone can see this lesson");__("Example: 2h 45m");__("Example:");__("Excerpt");__("Expand all");__("Expand description");__("Expand");__("Expired");__("Explore");__("External Link");__("FAQ");__("FAQs have successfully been saved");__("Failed to add comment");__("Failed to add materials");__("Failed to add question");__("Failed to add questions");__("Failed to add section");__("Failed to add to course");__("Failed to change file title");__("Failed to create Google meet");__("Failed to create an Google meet");__("Failed to create an assignment");__("Failed to create course");__("Failed to create lesson");__("Failed to create quiz");__("Failed to delete SCORM");__("Failed to delete comment");__("Failed to edit comment");__("Failed to generate duration");__("Failed to load SCORM");__("Failed to remove file");__("Failed to remove section");__("Failed to save FAQs");__("Failed to save Google meet");__("Failed to save an access");__("Failed to save an assignment");__("Failed to save certificate");__("Failed to save course materials");__("Failed to save course page style");__("Failed to save custom fields");__("Failed to save drip");__("Failed to save lesson");__("Failed to save notice");__("Failed to save prerequisites");__("Failed to save pricing");__("Failed to save quiz");__("Failed to save settings");__("Failed to send reply");__("Failed to update Google meet");__("Failed to update assignment");__("Failed to update course status");__("Failed to update lesson");__("Failed to update markers");__("Failed to upload image");__("False");__("Featured course");__("File Manager");__("File title successfully changed");__("Files not found");__("Files");__("Fill out basic information about a course to make it attractive to potential students.");__("Fill out the question to the end to move/collapse");__("Fixed Amount");__("Frequently Asked Questions");__("General Details");__("General Info");__("Generate Assignment with AI");__("Generate Course FAQs with AI");__("Generate Entire Course");__("Generate Lesson Title, Description & Content with AI");__("Generate Questions");__("Generate with AI");__("Generate");__("Generating Course");__("Generating Lessons");__("Generating assignment content...");__("Generating images...");__("Generating lesson content...");__("Generating lesson images...");__("Get more options for creating a selling course:");__("Get order information from orders page");__("Give your template a title");__("Global");__("Go back");__("Go to curriculum");__("Go to orders");__("Google Meet addon disabled");__("Google meet addon disabled");__("Google meet lesson");__("Google meet successfully created");__("Google meet successfully saved");__("Google meet successfully updated");__("Google meet");__("Grade");__("Grades Table");__("Grades addon is locked!");__("Grades addon is not enabled!");__("Grid");__("Group Courses addon is not enabled!");__("Hint:");__("Host video");__("Hours");__("How many times the subscription will renew before ending");__("ID");__("Image Generation");__("Image Preview");__("Image Style");__("Image generation failed");__("Image style is required");__("Image");__("Images limit");__("Images");__("Import %d materials to Section %d");__("Import SCORM Package");__("Import SCORM");__("In Image Match type of questions, learners are asked to match pairs from different pictures.");__("In this question type, learners match items from two columns based on their corresponding attributes.");__("Inactive");__("Included");__("Install Elementor");__("Intended audience");__("Issue a certificate upon completion of the course");__("Keywords question type requires a brief answer in the form of a few words or a short phrase.");__("Keywords");__("LEARNING CONTENT");__("LESSONS");__("Language is required");__("Language");__("Last Month");__("Last Week");__("Last Year");__("Lesson content");__("Lesson duration");__("Lesson has been added successfully");__("Lesson is generating. Do you want to leave this page?");__("Lesson is unavailable");__("Lesson materials");__("Lesson preview");__("Lesson start date");__("Lesson start time");__("Lesson successfully created");__("Lesson successfully saved");__("Lesson successfully updated");__("Lesson video poster");__("Lesson video");__("Lesson");__("Lessons must be completed in order. Only admins can change the lesson sequence.");__("Let's build your course!");__("Level");__("Library");__("Limit how many times a single user can use this coupon");__("Limit how many times this coupon can be used in total.");__("Limit must be greater than or equal to 1");__("Limited attempts to retake quizzes");__("Limited");__("Link specific parts of the audio to text with timecodes. Just add the time in brackets, like");__("Link specific parts of the video to text with timecodes. Just add the time in brackets, like");__("List");__("Listen audio");__("Live Stream addon disabled");__("Load more");__("Loading markers... ");__("Loading");__("Lock lessons in order");__("Main");__("Make draft");__("Mark as Featured");__("Marker caption");__("Marker updated successfully");__("Markers & Questions");__("Markers is not supported in chosen video type");__("MasterStudy");__("Materials successfully added");__("Maximum file size: %s");__("Meeting password");__("Meeting summary");__("Membership Access Type");__("Membership Access");__("Membership Plans");__("Membership plan #");__("Membership");__("Memberships");__("Method");__("Minimal value is 1");__("Minimum Items Quantity");__("Minimum Order Amount ()");__("Minimum Purchase Requirements");__("Minutes");__("Month(s)");__("Monthly");__("Move to section");__("Move");__("Multi-instructors addon is locked!");__("Multiple choice");__("Mute Participants upon entry");__("My Templates");__("NEW");__("Name");__("Native Templates");__("New Subscription Plan");__("New question");__("New section");__("Next Payment Date");__("Next");__("No Coupon yet");__("No FAQ Yet");__("No FAQ items");__("No Membership Plans yet");__("No Minimum Requirement");__("No Subscription Plans Yet");__("No attached video yet");__("No certificate");__("No certificates yet");__("No course materials yet");__("No matching results");__("No materials yet");__("No options");__("No prompt provided");__("No sections in this course");__("No trial");__("Not found");__("Not included in membership");__("Notice successfully saved");__("Notice");__("Notification text about upcoming courses");__("Now you can share audio lessons. Upload audio files or add from Spotify or SoundCloud. Mix them with text, video and quizzes in your courses");__("Now you can share audio lessons. Upload audio files or add from Spotify or SoundCloud.");__("Number of Cycles");__("Number of FAQs");__("Number of images per lesson - for text lessons and assignments");__("Number of lessons per section");__("Number of questions per quiz");__("Number of sections");__("OFF");__("Offer Sale Price");__("On Hold");__("Once uploaded, subtitles will automatically appear in the course player during video playback.");__("Once you add a subscription plan, it will appear here with all related details.");__("One-time purchase");__("Only users who are signed in to a Zoom account will join the meeting.");__("Option");__("Order ID");__("Order details");__("Order info");__("Order key");__("Order note");__("Order");__("Ordering question type requires the learner to sort items in a specific order.");__("Orders");__("Owner");__("PDF Lessons available with Pro Plus");__("PDF Lessons available with Pro");__("PDF file");__("PDF lesson");__("PRO Styles is locked!");__("Page not found");__("Pagination");__("Parent category");__("Participants video");__("Passing grade % (0-100)");__("Passing grade (%)");__("Payment History");__("Payment Method");__("Payment info");__("Payment method");__("Pending for review");__("Pending");__("Percent");__("Period");__("Phone Number");__("Plan Features");__("Plan Summary:");__("Plan Title");__("Plan");__("Please Setup Grades");__("Please create lessons, quizzes, and assignments before setting up drip content.");__("Point system & Group courses");__("Point");__("Points cut after retake (%)");__("Points for a course");__("Post Code");__("Poster for question video");__("Poster for video preview");__("Prefered question types are required");__("Prefered question types");__("Preferred lesson types");__("Premium Addons");__("Premium Templates");__("Prerequisite Passing Percent (%)");__("Prerequisites successfully saved");__("Prerequisites");__("Prerequisities addon is locked!");__("Prevent complete the lesson until PDF is fully read");__("Preview video");__("Preview");__("Price info");__("Price");__("Pricing has successfully been saved");__("Pricing");__("Private");__("Pro tip: ");__("Products");__("Prompt is required");__("Public");__("Publish");__("Published");__("Q&A");__("QUIZZES");__("Question Bank");__("Question Media addon disabled");__("Question Media addon is available in the Pro Version of the plugin. Please, upgrade to Pro to add media to quiz questions.");__("Question Media addon is not enabled. Please, enable this addon to add media to quiz questions.");__("Question saved successfully");__("Question successfully saved");__("Question type");__("Question video");__("Question");__("Questions & Answers");__("Questions Bank");__("Questions Library");__("Questions are currently not supported for this video type.");__("Questions library");__("Questions limit is required");__("Questions not found");__("Questions successfully added");__("Questions");__("Quiz Attempt History");__("Quiz description");__("Quiz duration");__("Quiz style");__("Quiz successfully created");__("Quiz successfully saved");__("Quiz");__("Quizzes creation");__("RECENT MATERIALS");__("Randomize answers");__("Randomize questions");__("Range");__("Regenerate Curriculum");__("Regenerate missing lessons");__("Regenerate");__("Rejected");__("Remove");__("Renew");__("Renewal Period");__("Reply");__("Require answering all video questions to proceed to next lesson");__("Require authentication to join: Sign in to Zoom");__("Required Question");__("Required audio progress (%)");__("Required video progress (%)");__("Reset");__("Retake After Pass");__("Rewatch timecode");__("SCORM Course");__("SCORM Package contains some errors");__("SCORM successfully deleted");__("SCORM successfully loaded");__("SELECT QUESTION MEDIA TYPE");__("Sale Period");__("Sale available from");__("Sale end date");__("Sale price");__("Sale start date");__("Save & Continue");__("Save Question Bank");__("Save");__("Saving questions...");__("Search by id or user");__("Search by name");__("Search courses");__("Search materials");__("Search questions");__("Search");__("Section successfully added");__("Section successfully removed");__("Section");__("See table");__("Select All");__("Select Bundles");__("Select Categories");__("Select Category");__("Select Courses");__("Select Memberships");__("Select Products");__("Select at least 1 item");__("Select at least one lesson type");__("Select categories");__("Select coupon");__("Select end date");__("Select end time");__("Select file");__("Select language");__("Select lesson type");__("Select level");__("Select material type to continue");__("Select media type");__("Select number of questions");__("Select option");__("Select parent category (optional)");__("Select question type");__("Select section");__("Select source");__("Select start date");__("Select start time");__("Select status");__("Select timezone");__("Select type");__("Select video");__("Select");__("Select...");__("Sequential Lesson Lock is active.");__("Sequential lesson progression is enabled for all courses by the admin.");__("Set API key");__("Set End Date");__("Settings have been saved successfully");__("Settings");__("Setup");__("Short Description");__("Short description of the lesson");__("Short description of the quiz");__("Shortcode");__("Show correct answer");__("Show course author, category and rating");__("Show course price");__("Show less");__("Single Choice questions require the selection of one answer from a list of options provided.");__("Single choice");__("Sitewide");__("Some questions were not generated successfully. Are you sure you want to save the questions?");__("Something went wrong!");__("Sorry, no matching options.");__("Sort");__("Source type for video preview");__("Source type");__("Specific bundles");__("Specific categories");__("Specific courses");__("Specific membership plans");__("Speed up FAQ creation with AI for your course");__("Start Date");__("Start Time");__("Start Typing...");__("Start date");__("Start time");__("State");__("Status end date");__("Status start date");__("Status");__("Status:");__("Stream URL");__("Stream lesson");__("Student Details");__("Student details");__("Student email");__("Students will see the course category and instructor information for the upcoming course.");__("Style");__("Submit");__("Subscription Details");__("Subscription ID");__("Subscription Note for Admin");__("Subscription type");__("Subscription");__("Subscriptions & Memberships");__("Subscriptions addon is not enabled!");__("Subscriptions");__("Subtitles");__("Subtotal");__("Successfully Created");__("Successfully Updated");__("Successfully added to the course");__("Successfully created category");__("Supported file formats");__("Tax");__("Taxes");__("Teach with Zoom lessons, meetings and webinars directly on your website.");__("Template Library");__("Text lesson");__("Text");__("The Question Bank cannot be edited. You can delete it or create a new one.");__("The Show course price setting must be enabled for preordering to work");__("The comment was edited successfully");__("The file has been removed successfully ");__("The file has been removed successfully");__("The file has been renamed successfully");__("The file has been uploaded successfully");__("The order of lessons is locked. To customize it, disable the option in course settings.");__("The order of lessons is locked. To customize it, disable the option in settings.");__("The reply was successfully sent");__("The user will go to the link you put instead of buying on your website.");__("This Month");__("This Week");__("This Year");__("This course will be available soon");__("This field is required");__("This field must have at least 1 item");__("This file format is not supported");__("This section is available in the PRO version");__("Time limit");__("Time unit");__("Time");__("Timecode");__("Timezone");__("Title is required");__("Title");__("Today");__("Toggle all");__("Tone");__("Total Usage Limit");__("Total");__("Town/City");__("Trial Courses addon is locked!");__("Trial End Date");__("Trial Period (days)");__("Trial course");__("Trial");__("True");__("True/False");__("Try again");__("Try changing your filter settings");__("Try changing your search query");__("Type URL here");__("Type");__("Unable to create membership plan");__("Unable to create template");__("Unable to delete template");__("Unable to duplicate template");__("Unable to generate faq");__("Unable to generate text");__("Unable to update template");__("Unlock lesson after purchase (days)");__("Unlock the lesson after a certain time after the purchase");__("Unlock the power of online meetings with interactive virtual classrooms. Experience smooth communication and collaboration with learners.");__("Unlock");__("Unsaved data will be lost. Do you want to continue?");__("Until Cancelled");__("Untitled");__("Upcoming Course Status addon is locked!");__("Upcoming Course Status");__("Update");__("Upgrade to PRO PLUS");__("Upgrade to PRO");__("Upgrade to Pro Plus");__("Upgrade to Pro");__("Upload an image");__("Upload file");__("Upload from url");__("Upload");__("Url:");__("Usage Limit Per User");__("Usage Limits");__("Use selected image");__("Use selected text");__("User");__("Uses");__("Validation error");__("Validity Period");__("VdoCipher ID");__("Video Preview Feature");__("Video Preview");__("Video duration");__("Video lesson");__("Video preview");__("Video width (px)");__("Video");__("View");__("Vimeo video URL");__("Week(s)");__("Weekly");__("Will be shown in \"Show answer\" section");__("Wire Transfer");__("WooCommerce Checkout enabled");__("Words limit");__("Write the number of points needed to buy this course");__("Year(s)");__("Yearly");__("Yesterday");__("You can upload subtitle files in .vtt format to the field above.");__("You have reached your featured courses quota limit!");__("Your choosen video type is not supported");__("Your lesson has been generated successfully.");__("Youtube video URL");__("Zoom & Google webinars");__("Zoom lesson");__("Zoom webinar addon disabled");__("by date");__("by name");__("characters");__("coupon orders");__("courses in bundle");__("courses");__("day(s) free trial");__("day(s)");__("days free trial");__("for group");__("hide");__("instructor");__("off");__("question");__("questions");__("results");__("show");__("symbols left");__("symbols");__("time(s)");__("to");__("tokens left");__("with");__("words");_n("question", "questions", 1);sprintf("File is larger than %s","");sprintf("File is too large — max file size %s","");sprintf(__("Add %s %s"),"","");sprintf(__("Import %d materials to Section %d"),"","");sprintf(__("Maximum file size: %s"),"");});3 (function(){__(" Create your first certificate");__(" Markers & Questions ");__(" and include a short text to highlight key moments. This helps learners quickly find important sections.");__("");__("0");__("10 per page");__("100 per page");__("20 per page");__("50 per page");__("A question type presents several options for the user to choose the correct answer from.");__("A question type requires a simple answer of either true or false to a given statement.");__("AI Generate");__("AI Text Generator");__("AI course creation");__("AI is generating your course. You can edit everything once it's ready and saved.");__("AI is generating your course. You can edit everything once it’s ready and saved.");__("ASSIGNMENTS");__("Access Type");__("Access device types");__("Access duration");__("Access successfully saved ");__("Access");__("Actions");__("Activate Elementor");__("Active");__("Add %s %s");__("Add Certificate");__("Add Enrolled Students as Attendees");__("Add Marker");__("Add New Order");__("Add New Plan");__("Add New");__("Add Question");__("Add a category");__("Add a co-instructor");__("Add a lesson first");__("Add a lesson");__("Add an assignment first");__("Add an quiz first");__("Add dependency");__("Add explanation");__("Add lesson to course");__("Add new Category");__("Add new answer");__("Add new question");__("Add new");__("Add note");__("Add questions");__("Add this Image");__("Add this Video");__("Add to course");__("Add");__("Additional information");__("Additional");__("Addon is disabled");__("Affiliate");__("All Course Layouts");__("All PRO addons");__("All Time");__("All bundles");__("All courses and bundles");__("All courses");__("All courses, bundles and memberships");__("All files");__("All information about your membership plans will be displayed here");__("All membership plans");__("All question types");__("All unsaved data will be lost. Do you really want to leave this page?");__("All your Coupon will be displayed here");__("All");__("Allow email notifications");__("Allow participants to join anytime");__("Allow preordering");__("Already in Quiz");__("An error occured while generating \"\"\n");__("An error occured");__("An error occurred");__("Answer explanation");__("Answer");__("Answers limit is required");__("Answers");__("Applies to");__("Apply Coupon to");__("Apply");__("Approval Pending");__("Are you sure that you want to delete this question?");__("Are you sure you want to close this modal?");__("Are you sure you want to delete the SCORM ?");__("Are you sure you want to delete these coupons?");__("Are you sure you want to delete these memberships?");__("Are you sure you want to delete these orders?");__("Are you sure you want to delete this FAQ item?");__("Are you sure you want to delete this drip content?");__("Are you sure you want to delete this drip item?");__("Are you sure you want to delete this file?");__("Are you sure you want to delete this marker? It will be removed from the video.");__("Are you sure you want to delete this material?");__("Are you sure you want to delete this question?");__("Are you sure you want to delete this section?");__("Are you sure you want to delete this template?");__("Assignment attempts");__("Assignment content");__("Assignment generated successfully!");__("Assignment materials");__("Assignment successfully created");__("Assignment successfully saved");__("Assignment successfully updated");__("Assignment");__("Assignments addon disabled");__("Assignments");__("At least 1 question type should be selected");__("At least one question");__("At least two answers per question");__("Attach Video");__("Attempts");__("Audio Lesson addon disabled");__("Audio file");__("Audio lesson");__("Audio");__("Available in Pro Version");__("Back to assignments");__("Back to courses");__("Back to google meets");__("Back to lessons");__("Back to questions");__("Back to quizzes");__("Back");__("Bank Transfer");__("Bank name");__("Basic info");__("Basic info, requirements, intended audience");__("Before adding markers or questions to timeline, please upload video");__("Billing Cycles Type");__("Billing Interval");__("Billing cycles");__("Blank Template");__("Briefly describe this membership plan");__("Browse PDF files");__("Browse audio files");__("Browse files");__("Browse subtitle files");__("Build Courses & Content with AI");__("Bulk actions");__("Bundle");__("Bundle-based");__("Bundles");__("Button Link");__("Button Text");__("Buy with points");__("Cancel Subscription");__("Cancel");__("Cancelled");__("Cash");__("Categories");__("Category has been successfully added");__("Category name");__("Category");__("Category-based");__("Certificate Builder addon is locked!");__("Certificate Builder addon is not enabled!");__("Certificate builder");__("Certificate included");__("Certificate info");__("Certificate successfully saved");__("Certificate");__("Change Prompt");__("Change Video Type");__("Change prompt");__("Change status to active");__("Change status to cancelled");__("Change status to completed");__("Change status to inactive");__("Change status to pending");__("Change video type");__("Choose SCORM package file .zip");__("Choose a style that will be applied only to this course");__("Choose instructor");__("Click on Create before adding questions to the quiz.");__("Click the button below and drag and drop the elements for the left bar for a new dependency");__("Close");__("Co instructor addon is not enabled!");__("Code");__("Collapse all");__("Coming soon end date");__("Coming soon end time");__("Comment added successfully");__("Comment was deleted successfully");__("Company Name");__("Complete!");__("Completed");__("Confirm");__("Content");__("Continue manually");__("Continue");__("Copied!");__("Copy & Edit");__("Copy template");__("Copy");__("Correct answer");__("Correct");__("Country");__("Coupon Applied");__("Coupon Code");__("Coupon Summary");__("Coupon created successfully");__("Coupon updated successfully");__("Coupon");__("Coupon:");__("Coupons");__("Course Description");__("Course FAQ Generator");__("Course Page");__("Course Views");__("Course cover");__("Course description");__("Course duration");__("Course expiration (days)");__("Course files");__("Course has been added successfully");__("Course has been published successfully");__("Course has been rejected");__("Course has been saved as draft");__("Course has been sent for review");__("Course info");__("Course information");__("Course materials successfully saved");__("Course materials");__("Course name");__("Course not found");__("Course page style successfully saved");__("Course preview description");__("Course requirements");__("Course sections");__("Course settings");__("Course short description");__("Course status has been changed");__("Course status");__("Course title");__("Course will have one lesson with SCORM package content.");__("Course");__("Course-based");__("Courses");__("Craft Your Assignment with AI");__("Craft Your Content with AI");__("Craft your Questions with AI");__("Create New Coupon");__("Create New Membership Plan");__("Create YouTube streams from your course to conduct lectures in real time.");__("Create a new dependency");__("Create assignments");__("Create course outline only");__("Create courses with AI");__("Create frequently asked questions and answers (FAQ) about your course in this section");__("Create new quiz");__("Create");__("Credit Card");__("Current students");__("Curriculum");__("Custom fields successfully saved");__("Custom fields");__("Daily");__("Date range");__("Date");__("Day(s)");__("Days");__("Deal ends");__("Deal starts");__("Default");__("Delete marker");__("Delete");__("Describe your course or what students might want to know. AI will generate relevant student FAQs");__("Describe your course...");__("Describe your image...");__("Description");__("Details");__("Discount Type");__("Discount Value (%)");__("Discount Value ()");__("Discount must be greater than 0");__("Discount");__("Do Not Provide Certificate");__("Do not provide certificate");__("Do you really want to cancel this subscription?");__("Do you really want to delete this plan?");__("Do you really want to delete this subscription?");__("Documents");__("Draft");__("Drag & drop a PDF file here or browse it from your computer");__("Drag & drop a audio here or browse it from your computer");__("Drag & drop a video here or browse it from your computer");__("Drag & drop files here or browse files from your computer ");__("Drag & drop files here or browse files from your computer");__("Drag & drop subtitle files here or browse it from your computer");__("Drag and drop an image or upload it from your computer");__("Drag file here");__("Drag lessons here");__("Drag lessons, quizzes and assignments to the right to create drip content");__("Drip Content addon is locked!");__("Drip Content is disabled");__("Drip Content");__("Drip content ");__("Drip content & Prerequisites");__("Drip content");__("Drip successfully saved");__("Drip");__("EXAM STUDENTS");__("Edit Coupon");__("Edit explanation");__("Edit in Elementor");__("Edit");__("Email");__("Embed iframe content");__("Enable Pro Plus");__("Enable Pro");__("Enable addon");__("Enable this addon to create drip content");__("Enable this to add a \"Featured\" badge to the course ");__("Enable");__("End Date");__("End Time");__("End date");__("End time");__("Engage and evaluate learners with interesting tasks and projects.");__("Enter %");__("Enter 0 (or leave blank) to allow unlimited attempts");__("Enter Plan Title");__("Enter Title");__("Enter VdoCipher video ID");__("Enter Vimeo video URL");__("Enter YouTube video URL");__("Enter access device types");__("Enter access duration");__("Enter affiliate price");__("Enter an answer");__("Enter assignment name");__("Enter audio progress");__("Enter bank name");__("Enter button link");__("Enter button text");__("Enter category name");__("Enter certificate info");__("Enter course excerpt");__("Enter course name");__("Enter days");__("Enter duration info");__("Enter email");__("Enter explanation");__("Enter external link URL");__("Enter feature");__("Enter featured badge label");__("Enter google meet name");__("Enter keywords to find relevant materials...");__("Enter lesson name");__("Enter message text about upcoming course");__("Enter password");__("Enter points info");__("Enter points");__("Enter price info");__("Enter price");__("Enter question name");__("Enter question");__("Enter quiz name");__("Enter sale price");__("Enter shortcode");__("Enter stream url");__("Enter subscriptions info");__("Enter template name");__("Enter the code or get a randomly generated");__("Enter url");__("Enter video duration");__("Enter video progress");__("Enter your answer");__("Enter your caption...");__("Enter your keyword");__("Enter your question");__("Enter your reply");__("Enterprise");__("Error 404");__("Event Visibility");__("Everyone can see this lesson");__("Example: 2h 45m");__("Example:");__("Excerpt");__("Expand all");__("Expand description");__("Expand");__("Expired");__("Explore");__("External Link");__("FAQ");__("FAQs have successfully been saved");__("Failed to add comment");__("Failed to add materials");__("Failed to add question");__("Failed to add questions");__("Failed to add section");__("Failed to add to course");__("Failed to change file title");__("Failed to create Google meet");__("Failed to create an Google meet");__("Failed to create an assignment");__("Failed to create course");__("Failed to create lesson");__("Failed to create quiz");__("Failed to delete SCORM");__("Failed to delete comment");__("Failed to edit comment");__("Failed to generate duration");__("Failed to load SCORM");__("Failed to remove file");__("Failed to remove section");__("Failed to save FAQs");__("Failed to save Google meet");__("Failed to save an access");__("Failed to save an assignment");__("Failed to save certificate");__("Failed to save course materials");__("Failed to save course page style");__("Failed to save custom fields");__("Failed to save drip");__("Failed to save lesson");__("Failed to save notice");__("Failed to save prerequisites");__("Failed to save pricing");__("Failed to save quiz");__("Failed to save settings");__("Failed to send reply");__("Failed to update Google meet");__("Failed to update assignment");__("Failed to update course status");__("Failed to update lesson");__("Failed to update markers");__("Failed to upload image");__("False");__("Featured course");__("File Manager");__("File title successfully changed");__("Files not found");__("Files");__("Fill out basic information about a course to make it attractive to potential students.");__("Fill out the question to the end to move/collapse");__("Fixed Amount");__("Free");__("Frequently Asked Questions");__("General Details");__("General Info");__("Generate Assignment with AI");__("Generate Course FAQs with AI");__("Generate Entire Course");__("Generate Lesson Title, Description & Content with AI");__("Generate Questions");__("Generate with AI");__("Generate");__("Generating Course");__("Generating Lessons");__("Generating assignment content...");__("Generating images...");__("Generating lesson content...");__("Generating lesson images...");__("Get more options for creating a selling course:");__("Get order information from orders page");__("Give your template a title");__("Global");__("Go back");__("Go to curriculum");__("Go to orders");__("Google Meet addon disabled");__("Google meet addon disabled");__("Google meet lesson");__("Google meet successfully created");__("Google meet successfully saved");__("Google meet successfully updated");__("Google meet");__("Grade");__("Grades Table");__("Grades addon is locked!");__("Grades addon is not enabled!");__("Grid");__("Group Courses addon is not enabled!");__("Group course Price");__("Hint:");__("Host video");__("Hours");__("How many times the subscription will renew before ending");__("ID");__("Image Generation");__("Image Preview");__("Image Style");__("Image generation failed");__("Image style is required");__("Image");__("Images limit");__("Images");__("Import %d materials to Section %d");__("Import SCORM Package");__("Import SCORM");__("In Image Match type of questions, learners are asked to match pairs from different pictures.");__("In this question type, learners match items from two columns based on their corresponding attributes.");__("Inactive");__("Included");__("Install Elementor");__("Intended audience");__("Issue a certificate upon completion of the course");__("Keywords question type requires a brief answer in the form of a few words or a short phrase.");__("Keywords");__("LEARNING CONTENT");__("LESSONS");__("Language is required");__("Language");__("Last Month");__("Last Week");__("Last Year");__("Lesson content");__("Lesson duration");__("Lesson has been added successfully");__("Lesson is generating. Do you want to leave this page?");__("Lesson is unavailable");__("Lesson materials");__("Lesson preview");__("Lesson start date");__("Lesson start time");__("Lesson successfully created");__("Lesson successfully saved");__("Lesson successfully updated");__("Lesson video poster");__("Lesson video");__("Lesson");__("Lessons must be completed in order. Only admins can change the lesson sequence.");__("Let's build your course!");__("Level");__("Library");__("Limit how many times a single user can use this coupon");__("Limit how many times this coupon can be used in total.");__("Limit must be greater than or equal to 1");__("Limited attempts to retake quizzes");__("Limited");__("Link specific parts of the audio to text with timecodes. Just add the time in brackets, like");__("Link specific parts of the video to text with timecodes. Just add the time in brackets, like");__("List");__("Listen audio");__("Live Stream addon disabled");__("Load more");__("Loading markers... ");__("Loading");__("Lock lessons in order");__("Main");__("Make draft");__("Mark as Featured");__("Marker caption");__("Marker updated successfully");__("Markers & Questions");__("Markers is not supported in chosen video type");__("MasterStudy");__("Materials successfully added");__("Maximum file size: %s");__("Meeting password");__("Meeting summary");__("Membership Access Type");__("Membership Access");__("Membership Plans");__("Membership plan #");__("Membership");__("Memberships");__("Method");__("Minimal value is 1");__("Minimum Items Quantity");__("Minimum Order Amount ()");__("Minimum Purchase Requirements");__("Minutes");__("Month(s)");__("Monthly");__("Move to section");__("Move");__("Multi-instructors addon is locked!");__("Multiple choice");__("Mute Participants upon entry");__("My Templates");__("NEW");__("Name");__("Native Templates");__("New Subscription Plan");__("New question");__("New section");__("Next Payment Date");__("Next");__("No Coupon yet");__("No FAQ Yet");__("No FAQ items");__("No Membership Plans yet");__("No Minimum Requirement");__("No Subscription Plans Yet");__("No attached video yet");__("No certificate");__("No certificates yet");__("No course materials yet");__("No matching results");__("No materials yet");__("No options");__("No prompt provided");__("No sections in this course");__("No trial");__("Not found");__("Not included in membership");__("Notice successfully saved");__("Notice");__("Notification text about upcoming courses");__("Now you can share audio lessons. Upload audio files or add from Spotify or SoundCloud. Mix them with text, video and quizzes in your courses");__("Now you can share audio lessons. Upload audio files or add from Spotify or SoundCloud.");__("Number of Cycles");__("Number of FAQs");__("Number of images per lesson - for text lessons and assignments");__("Number of lessons per section");__("Number of questions per quiz");__("Number of sections");__("OFF");__("Offer Sale Price");__("On Hold");__("Once uploaded, subtitles will automatically appear in the course player during video playback.");__("Once you add a subscription plan, it will appear here with all related details.");__("One-time purchase");__("Only users who are signed in to a Zoom account will join the meeting.");__("Option");__("Order ID");__("Order details");__("Order info");__("Order key");__("Order note");__("Order");__("Ordering question type requires the learner to sort items in a specific order.");__("Orders");__("Owner");__("PDF Lessons available with Pro Plus");__("PDF Lessons available with Pro");__("PDF file");__("PDF lesson");__("PRO Styles is locked!");__("Page not found");__("Pagination");__("Paid");__("Parent category");__("Participants video");__("Passing grade % (0-100)");__("Passing grade (%)");__("Payment History");__("Payment Method");__("Payment info");__("Payment method");__("Pending for review");__("Pending");__("Percent");__("Period");__("Phone Number");__("Plan Features");__("Plan Summary:");__("Plan Title");__("Plan");__("Please Setup Grades");__("Please create lessons, quizzes, and assignments before setting up drip content.");__("Point system & Group courses");__("Point");__("Points cut after retake (%)");__("Points info");__("Points price");__("Post Code");__("Poster for question video");__("Poster for video preview");__("Prefered question types are required");__("Prefered question types");__("Preferred lesson types");__("Premium Addons");__("Premium Templates");__("Prerequisite Passing Percent (%)");__("Prerequisites successfully saved");__("Prerequisites");__("Prerequisities addon is locked!");__("Prevent complete the lesson until PDF is fully read");__("Preview video");__("Preview");__("Price for Affiliate");__("Price info");__("Price");__("Pricing has successfully been saved");__("Pricing");__("Private");__("Pro tip: ");__("Products");__("Prompt is required");__("Provide special link and button label that redirects users to the external affiliate course.");__("Public");__("Publish");__("Published");__("Q&A");__("QUIZZES");__("Question Bank");__("Question Media addon disabled");__("Question Media addon is available in the Pro Version of the plugin. Please, upgrade to Pro to add media to quiz questions.");__("Question Media addon is not enabled. Please, enable this addon to add media to quiz questions.");__("Question saved successfully");__("Question successfully saved");__("Question type");__("Question video");__("Question");__("Questions & Answers");__("Questions Bank");__("Questions Library");__("Questions are currently not supported for this video type.");__("Questions library");__("Questions limit is required");__("Questions not found");__("Questions successfully added");__("Questions");__("Quiz Attempt History");__("Quiz description");__("Quiz duration");__("Quiz style");__("Quiz successfully created");__("Quiz successfully saved");__("Quiz");__("Quizzes creation");__("RECENT MATERIALS");__("Randomize answers");__("Randomize questions");__("Range");__("Regenerate Curriculum");__("Regenerate missing lessons");__("Regenerate");__("Rejected");__("Remove");__("Renew");__("Renewal Period");__("Reply");__("Require answering all video questions to proceed to next lesson");__("Require authentication to join: Sign in to Zoom");__("Required Question");__("Required audio progress (%)");__("Required video progress (%)");__("Reset");__("Retake After Pass");__("Rewatch timecode");__("SCORM Course");__("SCORM Package contains some errors");__("SCORM successfully deleted");__("SCORM successfully loaded");__("SELECT QUESTION MEDIA TYPE");__("Sale Period");__("Sale available from");__("Sale end date");__("Sale price");__("Sale start date");__("Save & Continue");__("Save Question Bank");__("Save");__("Saving questions...");__("Search by id or user");__("Search by name");__("Search courses");__("Search materials");__("Search questions");__("Search");__("Section successfully added");__("Section successfully removed");__("Section");__("See table");__("Select All");__("Select Bundles");__("Select Categories");__("Select Category");__("Select Courses");__("Select Memberships");__("Select Products");__("Select at least 1 item");__("Select at least one lesson type");__("Select categories");__("Select coupon");__("Select end date");__("Select end time");__("Select file");__("Select language");__("Select lesson type");__("Select level");__("Select material type to continue");__("Select media type");__("Select number of questions");__("Select option");__("Select parent category (optional)");__("Select question type");__("Select section");__("Select source");__("Select start date");__("Select start time");__("Select status");__("Select timezone");__("Select type");__("Select video");__("Select");__("Select...");__("Sequential Lesson Lock is active.");__("Sequential lesson progression is enabled for all courses by the admin.");__("Set API key");__("Set End Date");__("Settings have been saved successfully");__("Settings");__("Setup");__("Short Description");__("Short description of the lesson");__("Short description of the quiz");__("Shortcode");__("Show correct answer");__("Show course author, category and rating");__("Show course price");__("Show less");__("Show price for affiliate visually on the button");__("Single Choice questions require the selection of one answer from a list of options provided.");__("Single choice");__("Sitewide");__("Some questions were not generated successfully. Are you sure you want to save the questions?");__("Something went wrong!");__("Sorry, no matching options.");__("Sort");__("Source type for video preview");__("Source type");__("Specific bundles");__("Specific categories");__("Specific courses");__("Specific membership plans");__("Speed up FAQ creation with AI for your course");__("Start Date");__("Start Time");__("Start Typing...");__("Start date");__("Start time");__("State");__("Status end date");__("Status start date");__("Status");__("Status:");__("Stream URL");__("Stream lesson");__("Student Details");__("Student details");__("Student email");__("Students will see the course category and instructor information for the upcoming course.");__("Style");__("Submit");__("Subscription Details");__("Subscription ID");__("Subscription Note for Admin");__("Subscription type");__("Subscription");__("Subscriptions & Memberships");__("Subscriptions addon is not enabled!");__("Subscriptions info");__("Subscriptions");__("Subtitles");__("Subtotal");__("Successfully Created");__("Successfully Updated");__("Successfully added to the course");__("Successfully created category");__("Supported file formats");__("Tax");__("Taxes");__("Teach with Zoom lessons, meetings and webinars directly on your website.");__("Template Library");__("Text lesson");__("Text");__("The Question Bank cannot be edited. You can delete it or create a new one.");__("The Show course price setting must be enabled for preordering to work");__("The comment was edited successfully");__("The file has been removed successfully ");__("The file has been removed successfully");__("The file has been renamed successfully");__("The file has been uploaded successfully");__("The order of lessons is locked. To customize it, disable the option in course settings.");__("The order of lessons is locked. To customize it, disable the option in settings.");__("The reply was successfully sent");__("This Month");__("This Week");__("This Year");__("This course will be available soon");__("This field is required");__("This field must have at least 1 item");__("This file format is not supported");__("This section is available in the PRO version");__("Time limit");__("Time unit");__("Time");__("Timecode");__("Timezone");__("Title is required");__("Title");__("Today");__("Toggle all");__("Tone");__("Total Usage Limit");__("Total");__("Town/City");__("Trial Courses addon is locked!");__("Trial End Date");__("Trial Period (days)");__("Trial course");__("Trial");__("True");__("True/False");__("Try again");__("Try changing your filter settings");__("Try changing your search query");__("Type URL here");__("Type");__("Unable to create membership plan");__("Unable to create template");__("Unable to delete template");__("Unable to duplicate template");__("Unable to generate faq");__("Unable to generate text");__("Unable to update template");__("Unlock lesson after purchase (days)");__("Unlock the lesson after a certain time after the purchase");__("Unlock the power of online meetings with interactive virtual classrooms. Experience smooth communication and collaboration with learners.");__("Unlock");__("Unsaved data will be lost. Do you want to continue?");__("Until Cancelled");__("Untitled");__("Upcoming Course Status addon is locked!");__("Upcoming Course Status");__("Update");__("Upgrade to PRO PLUS");__("Upgrade to PRO");__("Upgrade to Pro Plus");__("Upgrade to Pro");__("Upload an image");__("Upload file");__("Upload from url");__("Upload");__("Url:");__("Usage Limit Per User");__("Usage Limits");__("Use selected image");__("Use selected text");__("User");__("Uses");__("Validation error");__("Validity Period");__("VdoCipher ID");__("Video Preview Feature");__("Video Preview");__("Video duration");__("Video lesson");__("Video preview");__("Video width (px)");__("Video");__("View");__("Vimeo video URL");__("Week(s)");__("Weekly");__("Will be shown in \"Show answer\" section");__("Wire Transfer");__("WooCommerce Checkout enabled");__("Words limit");__("Write the number of points needed to buy this course");__("Year(s)");__("Yearly");__("Yesterday");__("You can upload subtitle files in .vtt format to the field above.");__("You have reached your featured courses quota limit!");__("Your choosen video type is not supported");__("Your lesson has been generated successfully.");__("Youtube video URL");__("Zoom & Google webinars");__("Zoom lesson");__("Zoom webinar addon disabled");__("by date");__("by name");__("characters");__("coupon orders");__("courses in bundle");__("courses");__("day(s) free trial");__("day(s)");__("days free trial");__("for group");__("hide");__("instructor");__("off");__("question");__("questions");__("results");__("show");__("symbols left");__("symbols");__("time(s)");__("to");__("tokens left");__("with");__("words");_n("question", "questions", 1);sprintf("File is larger than %s","");sprintf("File is too large — max file size %s","");sprintf(__("Add %s %s"),"","");sprintf(__("Import %d materials to Section %d"),"","");sprintf(__("Maximum file size: %s"),"");}); -
masterstudy-lms-learning-management-system/trunk/assets/course-builder/js/main.js
r3448656 r3458914 1 (()=>{var e={95391:(e,r,t)=>{"use strict";var o=t(65043),i=t(84391),s=t(94089),n=t(82907),a=(t(61667),t(79555)),d=t(6669),c=t(95338),p=t(83290),l=t(70579);const u=(e,r)=>{const t=document.getElementById(r);if(!t)return;t.shadowRoot&&(t.shadowRoot.innerHTML="");const u=t.shadowRoot||t.attachShadow({mode:"open"}),g=(0,c.T)(),h=(0,d.A)({key:"chakra",container:u,stylisPlugins:g}),m=i.createRoot(u),_=new n.QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:!1,staleTime:500}}}),v="\n #".concat(r,' {\n font-family: Albert Sans,sans-serif;\n color: var(--chakra-colors-gray-800);\n }\n [dir="ltr"] { --rtl-mult: 1; }\n [dir="rtl"] { --rtl-mult: -1; }\n ');m.render((0,l.jsxs)(n.QueryClientProvider,{client:_,children:[(0,l.jsx)(p.mL,{styles:v}),(0,l.jsx)(a.G,{cache:h,children:o.createElement(e())}),(0,l.jsx)(s.ReactQueryDevtools,{initialIsOpen:!1,position:"bottom-right"})]}))};u((()=>(0,o.lazy)((()=>Promise.all([t.e(96),t.e(225),t.e(321),t.e(926),t.e(786)]).then(t.bind(t,64926))))),"ms_wp_react_orders"),u((()=>(0,o.lazy)((()=>Promise.all([t.e(96),t.e(225),t.e(321),t.e(586),t.e(926),t.e(856)]).then(t.bind(t,56880))))),"ms_wp_react_memberships"),u((()=>(0,o.lazy)((()=>Promise.all([t.e(96),t.e(225),t.e(321),t.e(586),t.e(949)]).then(t.bind(t,76586))))),"ms_wp_react_membership_plans"),u((()=>(0,o.lazy)((()=>Promise.all([t.e(96),t.e(225),t.e(321),t.e(791)]).then(t.bind(t,91623))))),"ms_wp_react_coupons")},63711:(e,r,t)=>{"use strict";t.d(r,{o:()=>o});const o=e=>e?"".concat("asc"===e.direction?"":"-").concat(e.key):""},17622:(e,r,t)=>{"use strict";t.d(r,{HI:()=>a,PT:()=>n,Pr:()=>c,cy:()=>s,en:()=>l,f5:()=>i,g2:()=>u,gH:()=>d,qF:()=>o,v0:()=>p});const o=15,i=140,s=240,n=2500,a=60,d=4,c=5,p=4,l="Realistic",u="Professional"},78639:(e,r,t)=>{"use strict";t.d(r,{D:()=>n,e:()=>a});var o=t(65043),i=t(70579);const s=(0,o.createContext)(""),n=e=>{let{children:r}=e;const[t,n]=(0,o.useState)("");return(0,o.useLayoutEffect)((()=>{const e=window.location.pathname.split("/"),r=["edit-course","edit-lesson","edit-question","edit-quiz","edit-assignment","edit-google-meet"],t=e.findIndex((e=>r.includes(e)));if(-1!==t){const r=e.slice(0,t).join("/").substring(1);n(r)}}),[]),(0,i.jsx)(s.Provider,{value:t,children:r})},a=()=>(0,o.useContext)(s)},28064:(e,r,t)=>{"use strict";t.d(r,{L:()=>o});const o=e=>e?{columns:[{data:e.key}],order:[{columns:0,dir:e.direction}]}:{}},57522:(e,r,t)=>{"use strict";t.d(r,{K:()=>n,Z:()=>a});var o=t(65043),i=t(70579);const s=(0,o.createContext)({dir:"ltr",isRtl:!1});function n(e){let{children:r}=e;const t=document.dir||"ltr",o="rtl"===t;return(0,i.jsx)(s.Provider,{value:{dir:t,isRtl:o},children:r})}const a=()=>(0,o.useContext)(s)},79555:(e,r,t)=>{"use strict";t.d(r,{G:()=>$});var o=t(31590),i=t(60819),s=t(89568),n=t(51585),a=t(78639),d=t(89379),c=t(22273),p=t(36254);const l=(0,p.Dt)({variants:{msVariant:{root:{maxWidth:"365px"},container:{marginBottom:"10px",background:"white",borderRadius:"4px"},button:{padding:"0px",width:"25px",height:"25px",_hover:{background:"none"}},panel:{padding:"10px"}}}}),u=(0,p.Dt)({baseStyle:{fontWeight:"medium",textTransform:"none",borderRadius:"5px",border:0,margin:"10px",height:0,lineHeight:"18px",_disabled:{pointerEvents:"none",opacity:.3}},sizes:{tiny:{px:"10px",py:"6px"},smallx:{px:"10px",py:"7px",height:"30px",fontSize:"12px",borderRadius:"15px"},small:{px:"20px",py:"11px",height:"40px"},large:{px:"24px",py:"16px",height:"50px"}},variants:{default:{color:"primary",bg:"default",_hover:{color:"secondaryBg",bg:"primary"}},defaultLight:{color:"secondary",bg:"secondaryBg",_hover:{color:"primary",bg:"default"},_active:{color:"primary",bg:"default"}},primary:{color:"white",bg:"primary",_hover:{bg:"primaryHover"}},green:{color:"white",bg:"#19C895",_hover:{bg:"#14a178"}},secondary:{color:"secondary",bg:"secondaryBg",_hover:{color:"secondaryHover"}},"secondary-dark":{color:"white",bg:"secondary",_hover:{bg:"dark50",color:"white"}},outline:{color:"primary",bg:"outlineBg",border:"1px solid",borderColor:"primary",_hover:{color:"secondaryBg",bg:"primary"}},"outline-secondary":{color:"dark70",bg:"outlineBg",border:"1px solid",borderColor:"border",_hover:{color:"secondaryHover",bg:"rgba(0, 0, 0, 0.1)"}},"outline-primary":{color:"dark70",bg:"white",border:"1px solid",borderColor:"border",stroke:"dark70",_hover:{bg:"primary",color:"white",borderColor:"primary",stroke:"white"}},"outline-error":{color:"dark70",bg:"white",border:"1px solid",borderColor:"border",stroke:"dark70",_hover:{bg:"error",color:"white",borderColor:"error",stroke:"white"}},success:{color:"white",bg:"success",_hover:{bg:"successHover"}},error:{color:"white",bg:"error",_hover:{bg:"errorHover"}},"error-tonal":{color:"error",bg:"error10",_hover:{bg:"error",color:"white"}},warning:{color:"white",bg:"warning",_hover:{bg:"warningHover"}},materials:{color:"dark70",bg:"rgba(77, 94, 111, 0.1)",_hover:{color:"white",bg:"dark50"}},round:{borderRadius:21},aiSmall:{width:"28px",height:"28px",p:"0",m:"0",borderRadius:"5px",bg:"linear-gradient(0deg, #000 0%, #333 100%)",_hover:{bg:"linear-gradient(0deg, var(--chakra-colors-primary) 0%, var(--chakra-colors-primary) 100%)"},color:"white"},aiMedium:{size:"md",mx:"0",fontSize:"sm"}},defaultProps:{size:"small",variant:"default"}}),g=(0,p.Dt)({baseStyle:{control:{width:"20px",height:"20px",borderRadius:"4px",_disabled:{pointerEvents:"none"},_checked:{bg:"primary",color:"white",borderColor:"primary",_hover:{bg:"primaryHover",borderColor:"primary"}},_hover:{borderColor:"primary"},_invalid:{borderColor:"error"}},icon:{animation:"none"}}}),h=(0,p.H2)({borderWidth:"1px",borderStyle:"solid",opacity:1}),m=(0,p.Dt)({variants:{msVariant:h}}),_=(0,p.Dt)({variants:{default:{dialog:{maxWidth:"416px",bg:"secondaryBg"},header:{size:"xl",fontWeight:"light"},closeButton:{width:"24px",height:"24px",borderRadius:"50%",bg:"border",top:"24px",right:"30px",color:"dark50","&:hover":{color:"border",bg:"dark50"},"& svg":{width:"10px",height:"10px"}}}},defaultProps:{variant:"default"}});var v=t(73012);const{definePartsStyle:b,defineMultiStyleConfig:f}=(0,p.YU)(v.Gq.keys),x=b({field:{fontSize:"sm",border:"1px solid",borderColor:"border",borderRadius:"4px",padding:"10px 20px",minHeight:"40px",_focus:{borderColor:"primary"},_invalid:{borderColor:"error"},_placeholder:{color:"dark50"}},addon:{border:"1px solid",borderRadius:"4px",borderColor:"border",background:"white",color:"dark50",padding:"10px 10px 10px 20px",fontSize:"sm"}}),y=f({baseStyle:{field:{_disabled:{opacity:.8,background:"white"}}},variants:{msVariant:x,msQuiz:b((0,d.A)((0,d.A)({},x),{},{field:{height:"26px",border:"1px solid #DBE0E9",boxShadow:"none","&:focus-visible":{boxShadow:"none"}}})),msUrlField:b({field:{fontSize:"sm",border:"1px solid",borderColor:"border",borderRadius:"4px",minHeight:"40px",_focus:{borderColor:"primary"},_invalid:{borderColor:"error"},_placeholder:{color:"dark"},_disabled:{background:"mainBackground",opacity:1}}})}}),w=(0,p.Dt)({variants:{install:{fontWeight:"medium",textDecoration:"none",color:"white !important",bg:"primary",borderRadius:"5px",padding:"6px 20px",border:0,_hover:{bg:"primaryHover"}}}}),{definePartsStyle:C,defineMultiStyleConfig:k}=(0,p.YU)(v.Pe.keys),A=k({variants:{courseStatus:C({list:{display:"flex",flexDirection:"column",padding:"0",borderRadius:"4px",boxShadow:"0px 4px 10px rgba(0, 0, 0, 0.25)",background:"#DDDDDD",gap:"1px"},item:{padding:"11px 15px",_disabled:{color:"dark50",background:"white",opacity:1}},command:{}})}}),S=(0,p.Dt)({variants:{materials:{header:{padding:"20px",background:"mainBackground",borderRadius:"10px 10px 0 0"},dialog:{background:"mainBackground",padding:"0px",maxHeight:"600px",maxWidth:"600px"},body:{padding:"0px",minHeight:"259px",maxHeight:"500px",overflowY:"auto"},footer:{background:"mainBackground",padding:"20px",justifyContent:"space-between",borderRadius:"0 0 10px 10px"}},lessons:{header:{position:"relative",padding:"0px",marginBottom:"30px"},dialog:{padding:"30px",width:"590px"},body:{padding:"0px"}},grades:{header:{position:"relative",padding:"0px",marginBottom:"20px"},dialog:{padding:"20px",width:"590px",borderRadius:"20px"},body:{padding:"0px"}},category:{dialog:{padding:"40px"},header:{position:"relative",padding:"0 0 20px"},body:{padding:"0px"}},course:{header:{padding:"20px",background:"mainBackground",borderRadius:"10px 10px 0 0"},dialog:{padding:"0px",maxHeight:"600px"},body:{padding:"0px",minHeight:"250px",maxHeight:"500px",overflowY:"auto",borderTop:"1px solid",borderColor:"border"},footer:{background:"mainBackground",padding:"20px",justifyContent:"space-between",borderRadius:"0 0 10px 10px"}},prompt:{header:{padding:"0px",fontSize:"lg",fontWeight:"medium"},dialog:{padding:"20px",borderRadius:"10px",gap:"10px"},footer:{padding:"0px",gap:"10px"}},mediaGallery:{header:{display:"flex",justifyContent:"space-between",padding:0},dialog:{padding:"20px",borderRadius:"10px",gap:"20px",boxShadow:"0px 0px 30px 0px rgba(0, 0, 0, 0.20)",margin:"0px"},body:{display:"flex",flexDirection:"column",gap:"30px",padding:"0px"}},oldBuilder:{dialog:{padding:"30px",margin:"0px",borderRadius:"10px",boxShadow:"0px 0px 30px 0px rgba(0, 0, 0, 0.20)"},header:{display:"flex",flexDirection:"column",padding:"0px",alignItems:"center"},body:{margin:"40px 0px",padding:"0px",display:"flex",justifyContent:"center"},footer:{padding:"0px",justifyContent:"center",flexDirection:"column",gap:"40px"}},aiModal:{dialog:{width:"700px",minHeight:"521px",height:"auto"}},default:{header:{position:"relative",padding:"0px",marginBottom:"10px"},dialog:{padding:"30px",width:"590px"},body:{padding:"0px"}}}}),P=(0,p.Dt)({variants:{msVariant:{field:{fontSize:"sm",border:"1px solid",borderColor:"border",borderRadius:"4px",padding:"10px 20px 10px 20px",minHeight:"40px",_focus:{borderColor:"primary"},_invalid:{borderColor:"error"},_placeholder:{color:"dark50"}}},withStepper:{field:{fontSize:"sm",border:"1px solid",borderColor:"border",borderRadius:"4px",padding:"10px 40px 10px 20px",minHeight:"40px",_focus:{borderColor:"primary"},_invalid:{borderColor:"error"},_placeholder:{color:"dark50"}},stepperGroup:{padding:"3px",margin:"0px",width:"40px"},stepper:{color:"dark50",background:"secondaryBg",padding:"5px 3px 3px",border:"none","& > svg":{width:"100%",height:"0.8em"}}}}}),{definePartsStyle:E,defineMultiStyleConfig:T}=(0,p.YU)(v.vI.keys),q=T({baseStyle:E({body:{margin:"10px",color:"primary"},closeButton:{color:"primary"}})}),O=(0,p.Dt)({variants:{msVariant:{track:{borderRadius:"5px !important",margin:"6px 0 0 !important"},filledTrack:{bg:"primary"}}}}),{definePartsStyle:B,defineMultiStyleConfig:R}=(0,p.YU)(v.Vg.keys),D=R({variants:{msVariant:B({control:{width:"20px",height:"20px",_disabled:{pointerEvents:"none"},_checked:{bg:"white",color:"primary",borderColor:"primary",_hover:{color:"white",bg:"primary",borderColor:"primary"}},_hover:{borderColor:"primary"},_invalid:{borderColor:"error"}}})}}),{definePartsStyle:F,defineMultiStyleConfig:I}=(0,p.YU)(v.af.keys),H=I({baseStyle:F({container:{marginRight:"5px",paddingTop:"1px","--switch-thumb-x":"calc(var(--switch-track-diff) * var(--rtl-mult, 1))"},track:{_checked:{bg:"primary"}}})}),M=(0,p.Dt)({variants:{quiz:{root:{width:"100%"},tablist:{height:"40px",bg:"border",padding:"4px",borderRadius:"4px",width:"fit-content"},tab:{height:"32px",padding:0,margin:0,color:"dark70",borderRadius:"2px",_selected:{bg:"white",color:"dark"}},tabpanel:{padding:"20px 0 0"}}}}),z=(0,p.Dt)({baseStyle:{_disabled:{opacity:.8,background:"white"}},variants:{msVariant:{fontSize:"sm",border:"1px solid",borderColor:"border",borderRadius:"4px",padding:"10px 20px",_focus:{borderColor:"primary"},_invalid:{borderColor:"error"},_placeholder:{color:"dark50"}},unstyled:{color:"dark70",fontSize:"sm"}}}),j=(0,p.Vg)("popper-arrow-bg"),L=(0,p.H2)((()=>({[j.variable]:"#FF3945",borderRadius:"4px",background:"error",borderColor:"error",padding:"11px 20px",fontSize:"sm",fontWeight:"medium",color:"white",zIndex:20}))),U=(0,p.Dt)({variants:{error:L}}),N=(0,c.oY)((0,d.A)({config:{initialColorMode:"light",useSystemColorMode:!1},colors:{default:"rgba(34, 122, 255, 0.1)",white:"#FFFFFF",primary:"rgba(34, 122, 255, 1)",primary10:"rgba(34, 122, 255, 0.1)",primary20:"rgba(34, 122, 255, 0.2)",primary30:"rgba(34, 122, 255, 0.3)",primary40:"rgba(34, 122, 255, 0.4)",primary50:"rgba(34, 122, 255, 0.5)",primary60:"rgba(34, 122, 255, 0.6)",primary70:"rgba(34, 122, 255, 0.7)",primary80:"rgba(34, 122, 255, 0.8)",primary90:"rgba(34, 122, 255, 0.9)",primaryHover:"linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), #227AFF",secondary:"#4D5E6F",secondaryBg:"#EEF1F7",secondaryHover:"#001931",outlineBg:"transparent",unlockBannerBg:"linear-gradient(to bottom, #13283B, #161B21)",description:"rgba(255, 255, 255, 0.70)",success:"#61CC2F",successHover:"#57B82A",error:"rgba(255, 57, 69, 1)",error10:"rgba(255, 57, 69, 0.1)",error20:"rgba(255, 57, 69, 0.2)",error30:"rgba(255, 57, 69, 0.3)",error40:"rgba(255, 57, 69, 0.4)",error50:"rgba(255, 57, 69, 0.5)",error60:"rgba(255, 57, 69, 0.6)",error70:"rgba(255, 57, 69, 0.7)",error80:"rgba(255, 57, 69, 0.8)",error90:"rgba(255, 57, 69, 0.9)",errorHover:"#E6333E",warning:"#FFA800",warningHover:"#E69800",border:"#DBE0E9",dark:"#001931",dark20:"#C4C4C4",dark30:"#B3BAC2",dark50:"#808C98",dark70:"#4D5E6F",mainBackground:"#EEF1F7",headerBg:"#1C252E",selectedTab:"rgba(255, 255, 255, 0.1)",faqImageBg:"#BDD8FF",warningCardBg:"#FFFBF4",warningCardBorder:"#FFDB95",green:"#19C895",draftBg:"rgba(255, 168, 0, 0.1)",blue:{500:"#227AFF"},aiBlockBackground:"conic-gradient(from 180deg at 50% 52.85%, #CBFF93 4.894779995083809deg, #F0EBA0 44.99958157539368deg, #FF9004 130.5864679813385deg, #FF2E54 180.84588289260864deg, #C959DD 218.81051301956177deg, #5D68FF 284.53248739242554deg, #0894FF 324.67241048812866deg, #CBFF93 360deg)"},components:{Accordion:l,Button:u,Checkbox:g,Divider:m,Drawer:_,Input:y,Link:w,Menu:A,Modal:S,NumberInput:P,Popover:q,Progress:O,Radio:D,Switch:H,Tabs:M,Textarea:z,Tooltip:U},fonts:{heading:"Eudoxus Sans Medium, sans-serif",body:"Eudoxus Sans Medium, sans-serif"},fontSizes:{xxs:"10px",xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"24px"},breakpoints:{sm:"320px",md:"768px",lg:"1200px",xl:"1400px"},fontWeights:{hairline:100,thin:200,light:300,normal:400,medium:500,semiBold:600,bold:700,extraBold:800,black:900},lineHeights:{xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"24px",xxl:"30px"},styles:{global:{body:{fontSize:"sm",fontWeight:"normal",bg:"mainBackground"},svg:{fill:"currentColor"}}}},{radii:{none:"0",sm:"4px"}}));var W=t(57522),G=t(61667),Q=t(74472),V=t(6669),Y=t(95338),K=t(70579);const X=e=>{let{children:r,cache:t}=e;const o=(0,Y.T)(),i=null!==t&&void 0!==t?t:(0,V.A)({key:"chakra",stylisPlugins:o});return(0,K.jsx)(Q.C,{value:i,children:r})};var Z=t(65043);const $=e=>{let{children:r,cache:t}=e;const d=(0,Z.useRef)(null);return(0,K.jsx)(X,{cache:t,children:(0,K.jsx)(o.az,{ref:d,children:(0,K.jsx)(i.s,{theme:N,toastOptions:{portalProps:{containerRef:d}},children:(0,K.jsx)(s.t,{portalProps:{containerRef:d},children:(0,K.jsx)(n._P.Provider,{value:n.sW,children:(0,K.jsx)(G.CY,{children:(0,K.jsx)(W.K,{children:(0,K.jsx)(a.D,{children:r})})})})})})})})}},95338:(e,r,t)=>{"use strict";t.d(r,{T:()=>i});var o=t(62403);const i=()=>{const e=[];return"rtl"===(document.dir||"ltr")&&e.push(o.A),e}},44145:(e,r,t)=>{"use strict";t.d(r,{MB:()=>n,e2:()=>d,eA:()=>a});var o=t(89379),i=t(22908),s=t(28064);const n=e=>"string"===typeof e&&e.includes("ERR_CANCELED"),a=e=>(0,i.stringify)(e),d=e=>{let{dateRange:r,sort:t,search:i,page:n,perPage:a}=e;const d={date_from:"",date_to:""};if(r){const e=r.split(",");d.date_from=e[0],d.date_to=e[1]}const c=(0,s.L)(t);return(0,o.A)((0,o.A)({start:(n-1)*a,length:a,search:{value:i,regex:!1}},d),c)}},22974:(e,r,t)=>{"use strict";var o=t(65043),i=t(84391),s=t(94089),n=t(82907),a=(t(61667),t(51585),t(70579));const d=document.getElementById("ms_plugin_root");if(d){const e=o.lazy((()=>Promise.all([t.e(96),t.e(225),t.e(321),t.e(586),t.e(499)]).then(t.bind(t,54483)))),r=i.createRoot(d),c=new n.QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:!1,staleTime:500}}});r.render((0,a.jsxs)(n.QueryClientProvider,{client:c,children:[(0,a.jsx)(e,{}),(0,a.jsx)(s.ReactQueryDevtools,{initialIsOpen:!1,position:"bottom-right"})]}))}},7673:(e,r,t)=>{"use strict";t.d(r,{Eo:()=>a,W8:()=>n,gn:()=>i,ru:()=>d,vg:()=>s,xj:()=>o});let o=function(e){return e.STM_LESSONS="stm-lessons",e.STM_QUIZZES="stm-quizzes",e.STM_ASSIGNMENTS="stm-assignments",e.STM_GOOGLE_MEETS="stm-google-meets",e.STM_QUESTIONS="stm-questions",e}({}),i=function(e){return e.STREAM="stream",e.TEXT="text",e.AUDIO="audio",e.VIDEO="video",e.ZOOM="zoom_conference",e.PDF="pdf",e}({}),s=function(e){return e.ASSIGNMENT="assignment",e.GOOGLE_MEET="google-meet",e.QUIZ="quiz",e.QUESTION="question",e}({}),n=function(e){return e.VIDEO="question-media-video",e.AUDIO="question-media-audio",e}({}),a=function(e){return e.EMBED="embed",e.EXTERNAL_LINK="ext_link",e.HTML="html",e.PRESTO_PLAYER="presto_player",e.VDOCIPHER="vdocipher",e.SHORTCODE="shortcode",e.VIMEO="vimeo",e.YOUTUBE="youtube",e}({}),d=function(e){return e.EMBED="embed",e.EXTERNAL_LINK="ext_link",e.FILE="file",e.SHORTCODE="shortcode",e}({})},33964:(e,r,t)=>{"use strict";t.d(r,{u:()=>o});let o=function(e){return e.SINGLE_CHOICE="single_choice",e.MULTI_CHOICE="multi_choice",e.TRUE_FALSE="true_false",e.ITEM_MATCH="item_match",e.IMAGE_MATCH="image_match",e.KEYWORDS="keywords",e.FILL_THE_GAP="fill_the_gap",e.QUESTION_BANK="question_bank",e.SORTABLE="sortable",e}({})},51585:(e,r,t)=>{"use strict";t.d(r,{_P:()=>le,sW:()=>pe,gf:()=>ue});var o=t(65043),i=t(60097);class s extends i.h{constructor(){super(...arguments),this.get=e=>this._provider.get("/courses/".concat(e,"/announcement")),this.put=e=>{let{data:r,id:t}=e;return this._provider.put("/courses/".concat(t,"/announcement"),r)}}}class n extends i.h{constructor(){super(...arguments),this.create=e=>this._provider.post("/courses/category",e)}}class a extends i.h{constructor(){super(...arguments),this.getBy=e=>this._provider.get("/comments/".concat(e)),this.create=(e,r)=>this._provider.post("/comments/".concat(e),{content:r}),this.reply=e=>{let{commentId:r,content:t}=e;return this._provider.post("/comments/".concat(r,"/reply"),{content:t})},this.update=e=>{let{commentId:r,content:t}=e;return this._provider.post("/comments/".concat(r,"/update"),{content:t})},this.remove=e=>this._provider.post("/comments/".concat(e,"/trash"),{})}}var d=t(89379),c=t(80045),p=t(57273),l=t.n(p),u=t(44145);const g=["image"];class h extends i.h{constructor(){super(...arguments),this.new=()=>this._provider.get("/courses/new"),this.create=e=>{const{image:r}=e,t=(0,c.A)(e,g),o=l()((0,d.A)((0,d.A)({},t),{},{image_id:null===r||void 0===r?void 0:r.id}),Boolean);return this._provider.post("/courses/create",o)},this.getBy=e=>this._provider.get("/courses/".concat(e,"/edit")),this.updateStatus=e=>{let{id:r,status:t}=e;return this._provider.put("/courses/".concat(r,"/status"),{status:t})},this.getCourses=e=>{let{search:r,page:t,paid:o,perPage:i}=e;const s=(0,u.eA)({s:r,page:t,per_page:i,paid_only:o});return this._provider.get("/courses?".concat(s))},this.getCourseBundles=e=>{let{search:r,page:t,perPage:o}=e;const i=(0,u.eA)({s:r,page:t,per_page:o});return this._provider.get("/course-bundles?".concat(i))},this.getCourseCategories=e=>{let{search:r,page:t,perPage:o}=e;const i=(0,u.eA)({search:r,page:t,per_page:o});return this._provider.get("/courses/categories/list?".concat(i))}}}var m=t(141),_=t.n(m),v=t(79160),b=t.n(v);const f=e=>b()(e)?e:null;var x=t(7673);const y=["type","lock_from_start","lock_start_days","start_date","start_time","video_type","audio_type","audio_required_progress","file","video_poster","video","video_width","video_required_progress","youtube_url","vimeo_url","external_url","embed_ctx","shortcode","presto_player_idx","vdocipher_id","files"],w=e=>{var r,t,o,i,s,n,a;const{type:p,lock_from_start:u,lock_start_days:g,start_date:h,start_time:m,video_type:v,audio_type:b,audio_required_progress:w,file:C,video_poster:k,video:A,video_width:S,video_required_progress:P,youtube_url:E,vimeo_url:T,external_url:q,embed_ctx:O,shortcode:B,presto_player_idx:R,vdocipher_id:D,files:F}=e,I=(0,c.A)(e,y),H=(0,d.A)((0,d.A)({},I),{},{type:p,lock_from_start:u});if(p===x.gn.VIDEO)switch(H.video_type=v,v){case"html":H.video_poster=null!==(r=null===k||void 0===k?void 0:k.id)&&void 0!==r?r:null,H.video=null!==(t=null===A||void 0===A?void 0:A.id)&&void 0!==t?t:null,H.video_width=f(S),H.video_required_progress=f(P);break;case"youtube":H.video_poster=null!==(o=null===k||void 0===k?void 0:k.id)&&void 0!==o?o:null,H.youtube_url=E,H.video_required_progress=f(P);break;case"vimeo":H.video_poster=null!==(i=null===k||void 0===k?void 0:k.id)&&void 0!==i?i:null,H.vimeo_url=T,H.video_required_progress=f(P);break;case"ext_link":H.external_url=q,H.video_poster=null!==(s=null===k||void 0===k?void 0:k.id)&&void 0!==s?s:null,H.video_required_progress=f(P);break;case"embed":H.embed_ctx=O;break;case"shortcode":H.shortcode=B;break;case"presto_player":H.presto_player_idx=R,H.video_poster=null!==(n=null===k||void 0===k?void 0:k.id)&&void 0!==n?n:null,H.video_required_progress=f(P);break;case"vdocipher":H.vdocipher_id=D,H.video_required_progress=f(P)}if(p===x.gn.AUDIO)switch(H.audio_type=b,b){case"file":H.file=null!==(a=null===C||void 0===C?void 0:C.id)&&void 0!==a?a:null,H.audio_required_progress=f(w);break;case"ext_link":H.external_url=q,H.audio_required_progress=f(w);break;case"embed":H.embed_ctx=O;break;case"shortcode":H.shortcode=B}H.files=null===F||void 0===F?void 0:F.map((e=>({id:e.id,label:e.label}))),u?H.lock_start_days=g:(H.start_date=h,H.start_time=m||null);const{custom_fields:M}=H;for(const e in M)_()(M[e])&&(M[e]="");return l()(H,(e=>!_()(e)))},C=["attempts","passing_grade"],k=["attempts","passing_grade"];class A extends i.h{constructor(){var e;super(...arguments),e=this,this.getBy=e=>this._provider.get("/courses/".concat(e,"/curriculum")),this.sections={create:(e,r)=>this._provider.post("/courses/".concat(e,"/curriculum/section"),r),update:(e,r)=>this._provider.put("/courses/".concat(e,"/curriculum/section"),r),delete:(e,r)=>this._provider.remove("/courses/".concat(e,"/curriculum/section/").concat(r))},this.lessons={getBy:function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.get("/lessons/".concat(r),void 0,t)},create:e=>{const r=w(e);return this._provider.post("/lessons",r)},update:function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=w(r);return e._provider.put("/lessons/".concat(r.id),o,t)}},this.assignment={getBy:function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.get("/assignments/".concat(r),void 0,t)},create:e=>{const{attempts:r,passing_grade:t}=e,o=(0,c.A)(e,C),i=(0,d.A)((0,d.A)({},o),{},{attempts:f(r),passing_grade:f(t)});return this._provider.post("/assignments",i)},update:function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{attempts:o,passing_grade:i}=r,s=(0,c.A)(r,k),n=(0,d.A)((0,d.A)({},s),{},{attempts:f(o),passing_grade:f(i)});return e._provider.put("/assignments/".concat(r.id),n,t)}},this.googleMeet={getBy:e=>this._provider.get("/google-meets/".concat(e)),create:e=>this._provider.post("/google-meets",e),update:e=>this._provider.put("/google-meets/".concat(e.id),e)},this.materials={create:e=>{let{courseId:r,data:t}=e;return this._provider.post("/courses/".concat(r,"/curriculum/material"),t)},delete:e=>{let{courseId:r,id:t}=e;return this._provider.remove("/courses/".concat(r,"/curriculum/material/").concat(t))},update:(e,r)=>this._provider.put("/courses/".concat(e,"/curriculum/material"),r)},this.scorm={post:e=>{let{courseId:r,file:t}=e;return this._provider.postFile("/courses/".concat(r,"/scorm"),{file:t})},delete:e=>this._provider.remove("/courses/".concat(e,"/scorm"))}}}class S extends i.h{constructor(){super(...arguments),this.get=e=>this._provider.get("/courses/".concat(e,"/settings/drip-content")).then((e=>{return(r=e.drip_content).length?r.map((e=>{const{parent:r,childs:t}=e;return{materials:[r,...t]}})):[{materials:[]}];var r})),this.put=e=>{let{id:r,drip:t}=e;const o=(e=>e.map((e=>{const[r,...t]=e.materials;return{parent:r,childs:t}})))(t);return this._provider.put("/courses/".concat(r,"/settings/drip-content"),o)}}}class P extends i.h{constructor(){super(...arguments),this.get=e=>this._provider.get("/courses/".concat(e,"/settings/faq")),this.put=e=>this._provider.put("/courses/".concat(e.id,"/settings/faq"),e.faq)}}class E extends i.h{constructor(){super(...arguments),this.post=e=>this._provider.postFile("/media",e),this.uploadFromUrl=e=>this._provider.post("/media/from-url",{url:e})}}class T extends i.h{constructor(){super(...arguments),this.update=e=>{let{postId:r,fields:t}=e;const o=(e=>{for(const r in e)_()(e[r])&&(e[r]="");return e})(t);return this._provider.put("/course-builder/custom-fields/".concat(r),o)}}}class q extends i.h{constructor(){super(...arguments),this.getCourseBuilderSettings=()=>this._provider.get("/course-builder/settings"),this.markers={get:e=>this._provider.get("/lesson/markers/get/".concat(e)),create:e=>this._provider.post("/lesson/markers/create/".concat(e.lesson_id),e),delete:e=>this._provider.remove("/lesson/markers/delete/".concat(e.lesson_id,"/").concat(e.marker_id),e),put:e=>this._provider.put("/lesson/markers/update/".concat(e.marker_id,"/"),e),updateQuestionsLock:e=>this._provider.put("/lesson/markers/lock/".concat(e.lesson_id,"/"),e)}}}var O=t(19959);class B extends i.h{constructor(){super(...arguments),this.getBy=e=>{const{searchTerm:r,type:t,courseId:o}=e,i=O.A.stringify({search:r,type:t});return this._provider.get("/courses/".concat(o,"/curriculum/import?").concat(i))},this.get=e=>this._provider.get("/courses/".concat(e,"/curriculum/import")),this.post=e=>{let{material_ids:r,section_id:t,courseId:o}=e;return this._provider.post("/courses/".concat(o,"/curriculum/import"),{material_ids:r,section_id:t})}}}const R=["filter"];class D extends i.h{constructor(){super(...arguments),this.getBy=e=>{const{filter:r}=e,t=(0,c.A)(e,R),o=(e=>{let r="";for(const[t,o]of Object.entries(e))r+="filter[".concat(t,"]=").concat(o,"&");return r})(r),i=o+O.A.stringify(t);return this._provider.get("/media-file-manager?".concat(i))},this.upload=e=>{let{file:r,config:t}=e;return this._provider.postFile("/media-file-manager",{file:r},t)},this.remove=e=>this._provider.remove("/media-file-manager/".concat(e)),this.integration={getBy:e=>{const{integrationType:r,fileType:t,query:o,perPage:i,page:s,orientation:n}=e,a="image"===t?"photos":"videos";return this._provider.get("/media-file-manager/integration/".concat(r,"/").concat(a)+"?query=".concat(o,"&per_page=").concat(i,"&page=").concat(s,"&orientation=").concat(n))}}}}class F extends i.h{constructor(){super(...arguments),this.get=()=>this._provider.get("/questions")}}var I=t(33964);const H=e=>{var r;return(0,d.A)((0,d.A)({},e),{},{answers:e.answers.map((e=>{var r;return(0,d.A)((0,d.A)({},e),{},{text:null===(r=e.text)||void 0===r?void 0:r.trim()})})),image:e.image||{},explain:"",hint:"",view_type:e.view_type||"list"},e.type===I.u.QUESTION_BANK&&{question:(null===(r=e.answers[0])||void 0===r?void 0:r.text)||"bank"})},M=e=>{const{custom_fields:r}=e;for(const e in r)_()(r[e])&&(r[e]="");return(0,d.A)((0,d.A)({},e),{},{quiz_attempts:e.quiz_attempts?"limited":"unlimited",custom_fields:r,questions:e.questions.reduce(((e,r)=>{const t=r.id;return t?[...e,t]:e}),[])})},z=e=>{const r=Array.isArray(e.questions)?e.questions:Object.values(e.questions||{});return(0,d.A)((0,d.A)({},e),{},{questions:r.map(((e,r)=>(0,d.A)((0,d.A)({},e),{},{_id:r,categories:e.categories.map((e=>e.id))})))})};class j extends i.h{constructor(){var e;super(...arguments),e=this,this.create=e=>{const r=M(e);return this._provider.post("/quizzes",r)},this.get=async function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=await e._provider.get("/quizzes/".concat(r),void 0,t);return{quiz:z(o.quiz),custom_fields:o.custom_fields}},this.update=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=M(r);return e._provider.put("/quizzes/".concat(r.id),o,t)},this.updateQuestions=(e,r)=>this._provider.put("/quizzes/".concat(e,"/questions"),{questions:r}),this.questions={create:e=>{const r=H(e);return this._provider.post("/questions",r)},aiCreateBulk:async function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=r.map(H);return e._provider.post("/questions/bulk",{questions:o},t)},createBulk:function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=r.map(H);return e._provider.post("/questions/bulk",{questions:o},t)},get:e=>this._provider.get("/questions/".concat(e)),list:(e,r)=>{const t=O.A.stringify({category:e,search:r});return this._provider.get("/questions/?".concat(t))},remove:e=>this._provider.remove("/questions/".concat(e)),update:(e,r)=>{const t=H(r);return""!==t.video_type&&(t.video_poster=t.video_poster&&t.video_poster.id>0?t.video_poster.id:void 0,t.video=t.video?t.video.id:void 0),this._provider.put("/questions/".concat(e),t)},categories:()=>this._provider.get("/questions/categories"),createCategory:e=>this._provider.post("/questions/category",e)}}}class L extends i.h{constructor(){super(...arguments),this.get=e=>this._provider.get("/courses/".concat(e,"/settings/pricing")),this.put=e=>{let{pricing:r,id:t}=e;const o=(e=>{const{single_sale:r,price:t,sale_price:o,sale_price_dates_start:i,sale_price_dates_end:s,enterprise_price:n,not_membership:a,affiliate_course:d,affiliate_course_text:c,affiliate_course_link:p,points_price:l,price_info:u,subscriptions:g}=e,h={single_sale:r,affiliate_course:d,subscriptions:g,enterprise_price:f(n),not_membership:a,points_price:f(l),price_info:u};return r&&(h.price=f(t),h.sale_price=f(o),h.sale_price_dates_start=i,h.sale_price_dates_end=s),d&&(h.affiliate_course_text=c,h.affiliate_course_link=p),h})(r);return this._provider.put("/courses/".concat(t,"/settings/pricing"),o)}}}const U=["video","video_poster","image","co_instructor"];class N extends i.h{constructor(){super(...arguments),this.get=e=>this._provider.get("/courses/".concat(e,"/settings")),this.updateMain=e=>{var r;let{main:t,id:o}=e;const{video:i,video_poster:s,image:n,co_instructor:a}=t,p=(0,c.A)(t,U),l=(0,d.A)({video_poster:null!==(r=null===s||void 0===s?void 0:s.id)&&void 0!==r?r:null,video:null===i||void 0===i?void 0:i.id,image_id:null===n||void 0===n?void 0:n.id,co_instructor_id:null===a||void 0===a?void 0:a.id},p);return this._provider.put("/courses/".concat(o,"/settings"),l)},this.updateAccess=e=>{let{access:r,id:t}=e;return this._provider.put("/courses/".concat(t,"/settings/access"),r)},this.updatePrerequisites=e=>{let{prerequisites:r,id:t}=e;return this._provider.put("/courses/".concat(t,"/settings/prerequisites"),r)},this.updateCertificate=e=>{var r,t;let{certificate:o,id:i}=e;return o.certificate_id=null!==(r=null===(t=o.certificate_id)||void 0===t?void 0:t.toString())&&void 0!==r?r:null,this._provider.put("/courses/".concat(i,"/settings/certificate"),o)},this.updateCourseMaterials=e=>{let{files:r,id:t}=e;const o=r.map((e=>({id:e.id,label:e.label})));return this._provider.put("/courses/".concat(t,"/settings/files"),o)},this.updateCoursePageStyle=e=>{let{slug:r,id:t}=e;const o={id:t,slug:r};return this._provider.put("/courses/".concat(t,"/settings/course-page-style"),o)}}}var W=t(9441),G=t.n(W);class Q extends i.h{constructor(){super(...arguments),this.searchCourseByName=e=>{const r=O.A.stringify({search:e,type:"stm-courses"});return this._provider.get("/search?".concat(r))},this.getRecentCourses=()=>{const e=O.A.stringify({type:"stm-courses",per_page:5});return this._provider.get("/search?".concat(e))},this.searchCoInstructorByTerm=e=>{const r=O.A.stringify({search:e,roles:"stm_lms_instructor"});return this._provider.get("/users?".concat(r))},this.updateMediaTitle=e=>{let{id:r,data:t}=e;return this._provider.post("/media/".concat(r),t)},this.searchQuestions=(e,r,t,o,i)=>{const s=O.A.stringify(G()({type:e,search:t,category:r,page:o.toString(),per_page:i},(e=>!e)));return this._provider.getPaginated("/search?".concat(s))}}}var V=t(37543);const Y=["headers","method"];class K{constructor(e,r){var t=this;this._rootUrl=void 0,this._token=void 0,this.getBaseUrl=e=>"".concat(this._rootUrl).concat(e),this.getOverrideRequestOptions=e=>{const{headers:r,method:t}=e,o=(0,c.A)(e,Y);return(0,d.A)({headers:(0,d.A)((0,d.A)({},r),{},{"X-HTTP-Method-Override":t}),method:["DELETE","PATCH","PUT"].includes(t)?"POST":t},o)},this.request=async(e,r)=>{var t;let o=this.getBaseUrl(e);r.queryString&&(o="".concat(o,"/").concat(r.queryString)),"undefined"!==typeof(null===(t=window.lmsApiSettings)||void 0===t?void 0:t.lang)&&(o+=(o.includes("?")?"&":"?")+"lang=".concat(window.lmsApiSettings.lang));const i=this.getOverrideRequestOptions(r.options);return await V.A.request((0,d.A)((0,d.A)({url:o},i),{},{withCredentials:!0})).then((e=>r._isPaginated?{data:e.data,total:e.headers["x-wp-total"],totalPages:e.headers["x-wp-totalpages"]}:e.data)).catch((e=>{let r;if(e.response){const t=e.response.data;t.message&&(r=t.message),t.errors&&(r=t.errors)}else r=e.code;if(!r)throw new Error("An error occurred");throw r}))},this.getHeaders=function(){return{"Content-Type":arguments.length>0&&void 0!==arguments[0]&&arguments[0]?"multipart/forms-data":"application/json","X-WP-Nonce":t._token}},this.getData=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return JSON.stringify(e)},this.get=function(e,r){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i={options:(0,d.A)({method:"GET",headers:t.getHeaders()},o),queryString:r};return t.request(e,i)},this.getPaginated=function(e,r){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i={options:(0,d.A)({method:"GET",headers:t.getHeaders()},o),queryString:r,_isPaginated:!0};return t.request(e,i)},this.post=function(e,r){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i={options:(0,d.A)({method:"POST",headers:t.getHeaders(),data:t.getData(r)},o)};return t.request(e,i)},this.remove=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o={options:{method:"DELETE",headers:t.getHeaders(),data:t.getData(r)}};return t.request(e,o)},this.patch=(e,r)=>{const t={options:{method:"PATCH",headers:this.getHeaders(),data:this.getData(r)}};return this.request(e,t)},this.put=function(e,r){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i={options:(0,d.A)({method:"PUT",headers:t.getHeaders(),data:t.getData(r)},o)};return t.request(e,i)},this.postFile=(e,r,t)=>{const o=new FormData;for(const[e,t]of Object.entries(r))o.append(e,t);const i={options:(0,d.A)({method:"POST",headers:this.getHeaders(!0),data:o},t)};return this.request(e,i)},this._rootUrl=e,this._token=r}}class X extends i.h{constructor(){super(...arguments),this.create=e=>this._provider.post("/course-templates/create-template",e),this.delete=e=>this._provider.remove("/course-templates/delete-template/".concat(e)),this.update=e=>this._provider.post("/course-templates/modify-template",e),this.duplicate=e=>this._provider.post("/course-templates/duplicate-template",e)}}var Z=t(17622);class $ extends i.h{constructor(){var e;super(...arguments),e=this,this.generateText=e=>this._provider.post("/ai/generate/text",e),this.generateImage=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/image",r,t)},this.uploadSelectedImage=e=>this._provider.post("/ai/upload-image",e),this.generateFaq=e=>this._provider.post("/ai/generate/faq",e),this.generateLesson=async function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/lesson",r,t)},this.generateAssignment=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/assignment",r,t)},this.generateImages=async function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=r.image_prompts.map((o=>e.generateImage({prompt:o,style:r.style},t)));return(await Promise.all(o)).map(((e,t)=>({prompt:r.image_prompts[t],image:e})))},this.generateQuestions=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/questions",r,t)},this.generateCourseDescription=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/description",r,t)},this.generateCourseContent=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/content",r,t)},this.generateCourseInfo=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/info",r,t)},this.generateCourseCurriculum=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/curriculum",(0,d.A)((0,d.A)({},r),{},{quizzes_count:-1===r.quizzes_count?null:r.quizzes_count}),t)},this.generateCourseTitle=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/title",r,t)},this.generateCourseCategories=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/categories",r,t)},this.generateCourseFaq=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/faq",(0,d.A)((0,d.A)({},r),{},{words_limit:Z.HI,tone:Z.g2,count:Z.gH}),t)},this.createGeneratedCourse=e=>this._provider.post("/ai/course",e),this.generateDuration=e=>this._provider.post("/ai/generate/lesson-duration/".concat(e),{})}}var J=t(63711);class ee extends i.h{constructor(){super(...arguments),this.getOrders=(e,r,t,o,i,s,n)=>{const a=(0,J.o)(s),d=(0,u.eA)({page:e,per_page:r,search:t,status:o,date_range:i,sort:a,coupon_id:n});return this._provider.get("/all-orders?".concat(d))},this.getOrder=e=>this._provider.get("/orders/".concat(e)),this.bulkAction=e=>this._provider.post("/orders-bulk-update",e),this.updateOrder=(e,r)=>this._provider.put("/orders/".concat(e),r)}}class re extends i.h{constructor(){super(...arguments),this.getMembershipPlans=(e,r,t,o)=>{const i=(0,J.o)(t),s=(0,u.eA)({page:e,per_page:r,sort:i,search:o});return this._provider.get("/subscription-plan/list?".concat(s))},this.getCourseMembershipPlans=(e,r,t)=>{const o=(0,u.eA)({course_id:t,page:e,per_page:r});return this._provider.get("/subscription-plan/list?".concat(o))},this.getMembershipPlan=e=>this._provider.get("/subscription-plan/".concat(e)),this.createMembershipPlan=e=>this._provider.post("/subscription-plan/create",e),this.updateMembershipPlan=(e,r)=>this._provider.put("/subscription-plan/".concat(e),r),this.updateMembershipPlanStatus=(e,r)=>this._provider.put("/subscription-plan/".concat(e,"/toggle-enabled"),r),this.deleteMembershipPlan=e=>this._provider.remove("/subscription-plan/".concat(e)),this.reorderMembershipPlans=(e,r)=>this._provider.post("/subscription-plan/reorder",{plans:e},{signal:r})}}var te,oe,ie=t(22412);class se extends i.h{getCoupons(e,r,t,o,i,s){const n=(0,u.eA)((0,d.A)((0,d.A)({},(0,u.e2)({dateRange:i,sort:s,search:t,page:e,perPage:r})),{},{status:o}));return this._provider.get("/coupon/list?".concat(n))}getCoupon(e){return this._provider.get("/coupon/".concat(e))}createCoupon(e){return this._provider.post("/coupon/create",e)}updateCoupon(e,r){return this._provider.put("/coupon/".concat(e),r)}updateCouponStatus(e,r){return this._provider.put("/coupon/".concat(e,"/status"),{coupon_status:r})}deleteCoupon(e){return this._provider.remove("/coupon/".concat(e))}bulkAction(e){return this._provider.post("/coupon/bulk-update",e)}}const ne={NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_API_URL||window.lmsApiSettings.lmsUrl,ae={NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_WP_API_URL||window.lmsApiSettings.wpUrl,de=new K(ne,null===(te=window.lmsApiSettings)||void 0===te?void 0:te.nonce),ce=new K(ae,null===(oe=window.lmsApiSettings)||void 0===oe?void 0:oe.nonce),pe=new class{constructor(e,r){this._lmsProvider=void 0,this._wpProvider=void 0,this._resources=void 0,this.getResources=()=>this._resources,this._lmsProvider=e,this._wpProvider=r,this._resources={announcement:new s(this._lmsProvider),categories:new n(this._lmsProvider),comments:new a(this._lmsProvider),course:new h(this._lmsProvider),curriculum:new A(this._lmsProvider),drip:new S(this._lmsProvider),faq:new P(this._lmsProvider),files:new E(this._lmsProvider),grassblade:new T(this._lmsProvider),lessons:new q(this._lmsProvider),materials:new B(this._lmsProvider),mediaGallery:new D(this._lmsProvider),pricing:new L(this._lmsProvider),questions:new F(this._lmsProvider),quiz:new j(this._lmsProvider),settings:new N(this._lmsProvider),wordpress:new Q(this._wpProvider),template:new X(this._lmsProvider),ai:new $(this._lmsProvider),orders:new ee(this._lmsProvider),membershipPlans:new re(this._lmsProvider),memberships:new ie.qB(this._lmsProvider),coupons:new se(this._lmsProvider)}}}(de,ce),le=(0,o.createContext)({}),ue=()=>(0,o.useContext)(le).getResources()},61667:(e,r,t)=>{"use strict";t.d(r,{CY:()=>p,TO:()=>c,WD:()=>d,Y_:()=>n,defaultI18n:()=>s.y3});var o=t(65043),i=t(70579),s=t(97989);const n="masterstudy-lms-learning-management-system",a=(0,o.createContext)(window.wp.i18n),d=()=>{const{__:__,_n:e,_nx:r,_x:t,sprintf:i}=(0,o.useContext)(a);return{__:function(e){return __(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:n)},_n:function(r,t,o){return e(r,t,o,arguments.length>3&&void 0!==arguments[3]?arguments[3]:n)},_nx:function(e,t,o,i){return r(e,t,o,i,arguments.length>4&&void 0!==arguments[4]?arguments[4]:n)},_x:function(e,r){return t(e,r,arguments.length>2&&void 0!==arguments[2]?arguments[2]:n)},sprintf:i}},c=()=>{const{__:__,_n:e,_nx:r,_x:t,sprintf:o}=window.wp.i18n;return{__:function(e){return __(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:n)},_n:function(r,t,o){return e(r,t,o,arguments.length>3&&void 0!==arguments[3]?arguments[3]:n)},_nx:function(e,t,o,i){return r(e,t,o,i,arguments.length>4&&void 0!==arguments[4]?arguments[4]:n)},_x:function(e,r){return t(e,r,arguments.length>2&&void 0!==arguments[2]?arguments[2]:n)},sprintf:o}},p=e=>{let{children:r}=e;return(0,i.jsx)(a.Provider,{value:window.wp.i18n,children:r})}},60097:(e,r,t)=>{"use strict";t.d(r,{h:()=>o});class o{constructor(e){this._provider=void 0,this._provider=e}}},22412:(e,r,t)=>{"use strict";t.d(r,{c1:()=>c.c1,qB:()=>d});var o=t(89379),i=t(60097),s=t(63711),n=t(44145),a=t(28064);class d extends i.h{constructor(){var e;super(...arguments),e=this,this.getMemberships=function(r,t,i,s,d,c,p){let l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:void 0;const u={date_from:"",date_to:""};if(c){const e=c.split(",");u.date_from=e[0],u.date_to=e[1]}const g=(0,a.L)(p),h=(0,n.eA)((0,o.A)((0,o.A)({subscription_type:d,start:(r-1)*t,length:t,search:{value:i,regex:!1},is_admin:l},u),g));return e._provider.get("/subscription/list?".concat(h))},this.getMembership=async e=>this._provider.get("/subscription/".concat(e)),this.bulkAction=e=>this._provider.post("/subscription/bulk-update",e),this.updateMembership=(e,r)=>this._provider.post("/subscription/".concat(e),r),this.cancelMembership=e=>this._provider.put("/subscription/".concat(e,"/cancel"),{}),this.getPaymentHistory=async(e,r,t,o)=>{const i=(0,s.o)(o),a=(0,n.eA)({start:(r-1)*t,length:t,sort:i});return this._provider.post("/subscription/".concat(e,"/payment-history?").concat(a),{})}}}var c=t(81919)},81919:(e,r,t)=>{"use strict";t.d(r,{VM:()=>o,c1:()=>i});let o=function(e){return e.COURSE="course",e.BUNDLE="bundle",e.SITE="full_site",e.CATEGORY="category",e}({}),i=function(e){return e.SUBSCRIPTION="subscription",e.MEMBERSHIP="membership",e}({})},42634:()=>{}},r={};function t(o){var i=r[o];if(void 0!==i)return i.exports;var s=r[o]={id:o,loaded:!1,exports:{}};return e[o].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}t.m=e,(()=>{var e=[];t.O=(r,o,i,s)=>{if(!o){var n=1/0;for(p=0;p<e.length;p++){o=e[p][0],i=e[p][1],s=e[p][2];for(var a=!0,d=0;d<o.length;d++)(!1&s||n>=s)&&Object.keys(t.O).every((e=>t.O[e](o[d])))?o.splice(d--,1):(a=!1,s<n&&(n=s));if(a){e.splice(p--,1);var c=i();void 0!==c&&(r=c)}}return r}s=s||0;for(var p=e.length;p>0&&e[p-1][2]>s;p--)e[p]=e[p-1];e[p]=[o,i,s]}})(),t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},(()=>{var e,r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;t.t=function(o,i){if(1&i&&(o=this(o)),8&i)return o;if("object"===typeof o&&o){if(4&i&&o.__esModule)return o;if(16&i&&"function"===typeof o.then)return o}var s=Object.create(null);t.r(s);var n={};e=e||[null,r({}),r([]),r(r)];for(var a=2&i&&o;"object"==typeof a&&!~e.indexOf(a);a=r(a))Object.getOwnPropertyNames(a).forEach((e=>n[e]=()=>o[e]));return n.default=()=>o,t.d(s,n),s}})(),t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((r,o)=>(t.f[o](e,r),r)),[])),t.u=e=>"./course-builder/js/"+e+"."+{225:"cc991dbf",321:"af3883b7",499:"0b0e3a52",586:"13fb79ec",786:"47f16a92",791:"46d5e526",856:"b941dd7f",903:"5a9c42ff",926:"760e4d87",949:"eb1b2fb6"}[e]+".chunk.js",t.miniCssF=e=>"./course-builder/css/"+e+"."+{225:"c7a7bbfc",499:"cbb86c7e",786:"0903b3c9",791:"0903b3c9",856:"0903b3c9",949:"0903b3c9"}[e]+".chunk.css",t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={},r="client:";t.l=(o,i,s,n)=>{if(e[o])e[o].push(i);else{var a,d;if(void 0!==s)for(var c=document.getElementsByTagName("script"),p=0;p<c.length;p++){var l=c[p];if(l.getAttribute("src")==o||l.getAttribute("data-webpack")==r+s){a=l;break}}a||(d=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,t.nc&&a.setAttribute("nonce",t.nc),a.setAttribute("data-webpack",r+s),a.src=o),e[o]=[i];var u=(r,t)=>{a.onerror=a.onload=null,clearTimeout(g);var i=e[o];if(delete e[o],a.parentNode&&a.parentNode.removeChild(a),i&&i.forEach((e=>e(t))),r)return r(t)},g=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),d&&document.head.appendChild(a)}}})(),t.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.j=792,(()=>{var e;t.g.importScripts&&(e=t.g.location+"");var r=t.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var o=r.getElementsByTagName("script");if(o.length)for(var i=o.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=o[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),t.p=e+"../../"})(),(()=>{if("undefined"!==typeof document){var e=e=>new Promise(((r,o)=>{var i=t.miniCssF(e),s=t.p+i;if(((e,r)=>{for(var t=document.getElementsByTagName("link"),o=0;o<t.length;o++){var i=(n=t[o]).getAttribute("data-href")||n.getAttribute("href");if("stylesheet"===n.rel&&(i===e||i===r))return n}var s=document.getElementsByTagName("style");for(o=0;o<s.length;o++){var n;if((i=(n=s[o]).getAttribute("data-href"))===e||i===r)return n}})(i,s))return r();((e,r,o,i,s)=>{var n=document.createElement("link");n.rel="stylesheet",n.type="text/css",t.nc&&(n.nonce=t.nc),n.onerror=n.onload=t=>{if(n.onerror=n.onload=null,"load"===t.type)i();else{var o=t&&t.type,a=t&&t.target&&t.target.href||r,d=new Error("Loading CSS chunk "+e+" failed.\n("+o+": "+a+")");d.name="ChunkLoadError",d.code="CSS_CHUNK_LOAD_FAILED",d.type=o,d.request=a,n.parentNode&&n.parentNode.removeChild(n),s(d)}},n.href=r,o?o.parentNode.insertBefore(n,o.nextSibling):document.head.appendChild(n)})(e,s,null,r,o)})),r={792:0};t.f.miniCss=(t,o)=>{r[t]?o.push(r[t]):0!==r[t]&&{225:1,499:1,786:1,791:1,856:1,949:1}[t]&&o.push(r[t]=e(t).then((()=>{r[t]=0}),(e=>{throw delete r[t],e})))}}})(),(()=>{t.b=document.baseURI||self.location.href;var e={792:0};t.f.j=(r,o)=>{var i=t.o(e,r)?e[r]:void 0;if(0!==i)if(i)o.push(i[2]);else if(/^(225|949)$/.test(r))e[r]=0;else{var s=new Promise(((t,o)=>i=e[r]=[t,o]));o.push(i[2]=s);var n=t.p+t.u(r),a=new Error;t.l(n,(o=>{if(t.o(e,r)&&(0!==(i=e[r])&&(e[r]=void 0),i)){var s=o&&("load"===o.type?"missing":o.type),n=o&&o.target&&o.target.src;a.message="Loading chunk "+r+" failed.\n("+s+": "+n+")",a.name="ChunkLoadError",a.type=s,a.request=n,i[1](a)}}),"chunk-"+r,r)}},t.O.j=r=>0===e[r];var r=(r,o)=>{var i,s,n=o[0],a=o[1],d=o[2],c=0;if(n.some((r=>0!==e[r]))){for(i in a)t.o(a,i)&&(t.m[i]=a[i]);if(d)var p=d(t)}for(r&&r(o);c<n.length;c++)s=n[c],t.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return t.O(p)},o=self.webpackChunkclient=self.webpackChunkclient||[];o.forEach(r.bind(null,0)),o.push=r.bind(null,o.push.bind(o))})(),t.nc=void 0,t.O(void 0,[96],(()=>t(22974)));var o=t.O(void 0,[96],(()=>t(95391)));o=t.O(o)})();1 (()=>{var e={95391:(e,r,t)=>{"use strict";var i=t(65043),o=t(84391),s=t(94089),n=t(82907),a=(t(61667),t(79555)),d=t(6669),c=t(95338),p=t(83290),l=t(70579);const u=(e,r)=>{const t=document.getElementById(r);if(!t)return;t.shadowRoot&&(t.shadowRoot.innerHTML="");const u=t.shadowRoot||t.attachShadow({mode:"open"}),g=(0,c.T)(),h=(0,d.A)({key:"chakra",container:u,stylisPlugins:g}),_=o.createRoot(u),m=new n.QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:!1,staleTime:500}}}),v="\n #".concat(r,' {\n font-family: Albert Sans,sans-serif;\n color: var(--chakra-colors-gray-800);\n }\n [dir="ltr"] { --rtl-mult: 1; }\n [dir="rtl"] { --rtl-mult: -1; }\n ');_.render((0,l.jsxs)(n.QueryClientProvider,{client:m,children:[(0,l.jsx)(p.mL,{styles:v}),(0,l.jsx)(a.G,{cache:h,children:i.createElement(e())}),(0,l.jsx)(s.ReactQueryDevtools,{initialIsOpen:!1,position:"bottom-right"})]}))};u((()=>(0,i.lazy)((()=>Promise.all([t.e(96),t.e(225),t.e(321),t.e(926),t.e(786)]).then(t.bind(t,64926))))),"ms_wp_react_orders"),u((()=>(0,i.lazy)((()=>Promise.all([t.e(96),t.e(225),t.e(321),t.e(586),t.e(926),t.e(856)]).then(t.bind(t,56880))))),"ms_wp_react_memberships"),u((()=>(0,i.lazy)((()=>Promise.all([t.e(96),t.e(225),t.e(321),t.e(586),t.e(949)]).then(t.bind(t,76586))))),"ms_wp_react_membership_plans"),u((()=>(0,i.lazy)((()=>Promise.all([t.e(96),t.e(225),t.e(321),t.e(791)]).then(t.bind(t,91623))))),"ms_wp_react_coupons")},63711:(e,r,t)=>{"use strict";t.d(r,{o:()=>i});const i=e=>e?"".concat("asc"===e.direction?"":"-").concat(e.key):""},17622:(e,r,t)=>{"use strict";t.d(r,{HI:()=>a,PT:()=>n,Pr:()=>c,cy:()=>s,en:()=>l,f5:()=>o,g2:()=>u,gH:()=>d,qF:()=>i,v0:()=>p});const i=15,o=140,s=240,n=2500,a=60,d=4,c=5,p=4,l="Realistic",u="Professional"},78639:(e,r,t)=>{"use strict";t.d(r,{D:()=>n,e:()=>a});var i=t(65043),o=t(70579);const s=(0,i.createContext)(""),n=e=>{let{children:r}=e;const[t,n]=(0,i.useState)("");return(0,i.useLayoutEffect)((()=>{const e=window.location.pathname.split("/"),r=["edit-course","edit-lesson","edit-question","edit-quiz","edit-assignment","edit-google-meet"],t=e.findIndex((e=>r.includes(e)));if(-1!==t){const r=e.slice(0,t).join("/").substring(1);n(r)}}),[]),(0,o.jsx)(s.Provider,{value:t,children:r})},a=()=>(0,i.useContext)(s)},28064:(e,r,t)=>{"use strict";t.d(r,{L:()=>i});const i=e=>e?{columns:[{data:e.key}],order:[{columns:0,dir:e.direction}]}:{}},57522:(e,r,t)=>{"use strict";t.d(r,{K:()=>n,Z:()=>a});var i=t(65043),o=t(70579);const s=(0,i.createContext)({dir:"ltr",isRtl:!1});function n(e){let{children:r}=e;const t=document.dir||"ltr",i="rtl"===t;return(0,o.jsx)(s.Provider,{value:{dir:t,isRtl:i},children:r})}const a=()=>(0,i.useContext)(s)},79555:(e,r,t)=>{"use strict";t.d(r,{G:()=>$});var i=t(31590),o=t(60819),s=t(89568),n=t(51585),a=t(78639),d=t(89379),c=t(22273),p=t(36254);const l=(0,p.Dt)({variants:{msVariant:{root:{maxWidth:"365px"},container:{marginBottom:"10px",background:"white",borderRadius:"4px"},button:{padding:"0px",width:"25px",height:"25px",_hover:{background:"none"}},panel:{padding:"10px"}}}}),u=(0,p.Dt)({baseStyle:{fontWeight:"medium",textTransform:"none",borderRadius:"5px",border:0,margin:"10px",height:0,lineHeight:"18px",_disabled:{pointerEvents:"none",opacity:.3}},sizes:{tiny:{px:"10px",py:"6px"},smallx:{px:"10px",py:"7px",height:"30px",fontSize:"12px",borderRadius:"15px"},small:{px:"20px",py:"11px",height:"40px"},large:{px:"24px",py:"16px",height:"50px"}},variants:{default:{color:"primary",bg:"default",_hover:{color:"secondaryBg",bg:"primary"}},defaultLight:{color:"secondary",bg:"secondaryBg",_hover:{color:"primary",bg:"default"},_active:{color:"primary",bg:"default"}},primary:{color:"white",bg:"primary",_hover:{bg:"primaryHover"}},green:{color:"white",bg:"#19C895",_hover:{bg:"#14a178"}},secondary:{color:"secondary",bg:"secondaryBg",_hover:{color:"secondaryHover"}},"secondary-dark":{color:"white",bg:"secondary",_hover:{bg:"dark50",color:"white"}},outline:{color:"primary",bg:"outlineBg",border:"1px solid",borderColor:"primary",_hover:{color:"secondaryBg",bg:"primary"}},"outline-secondary":{color:"dark70",bg:"outlineBg",border:"1px solid",borderColor:"border",_hover:{color:"secondaryHover",bg:"rgba(0, 0, 0, 0.1)"}},"outline-primary":{color:"dark70",bg:"white",border:"1px solid",borderColor:"border",stroke:"dark70",_hover:{bg:"primary",color:"white",borderColor:"primary",stroke:"white"}},"outline-error":{color:"dark70",bg:"white",border:"1px solid",borderColor:"border",stroke:"dark70",_hover:{bg:"error",color:"white",borderColor:"error",stroke:"white"}},success:{color:"white",bg:"success",_hover:{bg:"successHover"}},error:{color:"white",bg:"error",_hover:{bg:"errorHover"}},"error-tonal":{color:"error",bg:"error10",_hover:{bg:"error",color:"white"}},warning:{color:"white",bg:"warning",_hover:{bg:"warningHover"}},materials:{color:"dark70",bg:"rgba(77, 94, 111, 0.1)",_hover:{color:"white",bg:"dark50"}},round:{borderRadius:21},aiSmall:{width:"28px",height:"28px",p:"0",m:"0",borderRadius:"5px",bg:"linear-gradient(0deg, #000 0%, #333 100%)",_hover:{bg:"linear-gradient(0deg, var(--chakra-colors-primary) 0%, var(--chakra-colors-primary) 100%)"},color:"white"},aiMedium:{size:"md",mx:"0",fontSize:"sm"}},defaultProps:{size:"small",variant:"default"}}),g=(0,p.Dt)({baseStyle:{control:{width:"20px",height:"20px",borderRadius:"4px",_disabled:{pointerEvents:"none"},_checked:{bg:"primary",color:"white",borderColor:"primary",_hover:{bg:"primaryHover",borderColor:"primary"}},_hover:{borderColor:"primary"},_invalid:{borderColor:"error"}},icon:{animation:"none"}}}),h=(0,p.H2)({borderWidth:"1px",borderStyle:"solid",opacity:1}),_=(0,p.Dt)({variants:{msVariant:h}}),m=(0,p.Dt)({variants:{default:{dialog:{maxWidth:"416px",bg:"secondaryBg"},header:{size:"xl",fontWeight:"light"},closeButton:{width:"24px",height:"24px",borderRadius:"50%",bg:"border",top:"24px",right:"30px",color:"dark50","&:hover":{color:"border",bg:"dark50"},"& svg":{width:"10px",height:"10px"}}}},defaultProps:{variant:"default"}});var v=t(73012);const{definePartsStyle:f,defineMultiStyleConfig:b}=(0,p.YU)(v.Gq.keys),x=f({field:{fontSize:"sm",border:"1px solid",borderColor:"border",borderRadius:"4px",padding:"10px 20px",minHeight:"40px",_focus:{borderColor:"primary"},_invalid:{borderColor:"error"},_placeholder:{color:"dark50"}},addon:{border:"1px solid",borderRadius:"4px",borderColor:"border",background:"white",color:"dark50",padding:"10px 10px 10px 20px",fontSize:"sm"}}),y=b({baseStyle:{field:{_disabled:{opacity:.8,background:"white"}}},variants:{msVariant:x,msQuiz:f((0,d.A)((0,d.A)({},x),{},{field:{height:"26px",border:"1px solid #DBE0E9",boxShadow:"none","&:focus-visible":{boxShadow:"none"}}})),msUrlField:f({field:{fontSize:"sm",border:"1px solid",borderColor:"border",borderRadius:"4px",minHeight:"40px",_focus:{borderColor:"primary"},_invalid:{borderColor:"error"},_placeholder:{color:"dark"},_disabled:{background:"mainBackground",opacity:1}}})}}),w=(0,p.Dt)({variants:{install:{fontWeight:"medium",textDecoration:"none",color:"white !important",bg:"primary",borderRadius:"5px",padding:"6px 20px",border:0,_hover:{bg:"primaryHover"}}}}),{definePartsStyle:k,defineMultiStyleConfig:C}=(0,p.YU)(v.Pe.keys),A=C({variants:{courseStatus:k({list:{display:"flex",flexDirection:"column",padding:"0",borderRadius:"4px",boxShadow:"0px 4px 10px rgba(0, 0, 0, 0.25)",background:"#DDDDDD",gap:"1px"},item:{padding:"11px 15px",_disabled:{color:"dark50",background:"white",opacity:1}},command:{}})}}),S=(0,p.Dt)({variants:{materials:{header:{padding:"20px",background:"mainBackground",borderRadius:"10px 10px 0 0"},dialog:{background:"mainBackground",padding:"0px",maxHeight:"600px",maxWidth:"600px"},body:{padding:"0px",minHeight:"259px",maxHeight:"500px",overflowY:"auto"},footer:{background:"mainBackground",padding:"20px",justifyContent:"space-between",borderRadius:"0 0 10px 10px"}},lessons:{header:{position:"relative",padding:"0px",marginBottom:"30px"},dialog:{padding:"30px",width:"590px"},body:{padding:"0px"}},grades:{header:{position:"relative",padding:"0px",marginBottom:"20px"},dialog:{padding:"20px",width:"590px",borderRadius:"20px"},body:{padding:"0px"}},category:{dialog:{padding:"40px"},header:{position:"relative",padding:"0 0 20px"},body:{padding:"0px"}},course:{header:{padding:"20px",background:"mainBackground",borderRadius:"10px 10px 0 0"},dialog:{padding:"0px",maxHeight:"600px"},body:{padding:"0px",minHeight:"250px",maxHeight:"500px",overflowY:"auto",borderTop:"1px solid",borderColor:"border"},footer:{background:"mainBackground",padding:"20px",justifyContent:"space-between",borderRadius:"0 0 10px 10px"}},prompt:{header:{padding:"0px",fontSize:"lg",fontWeight:"medium"},dialog:{padding:"20px",borderRadius:"10px",gap:"10px"},footer:{padding:"0px",gap:"10px"}},mediaGallery:{header:{display:"flex",justifyContent:"space-between",padding:0},dialog:{padding:"20px",borderRadius:"10px",gap:"20px",boxShadow:"0px 0px 30px 0px rgba(0, 0, 0, 0.20)",margin:"0px"},body:{display:"flex",flexDirection:"column",gap:"30px",padding:"0px"}},oldBuilder:{dialog:{padding:"30px",margin:"0px",borderRadius:"10px",boxShadow:"0px 0px 30px 0px rgba(0, 0, 0, 0.20)"},header:{display:"flex",flexDirection:"column",padding:"0px",alignItems:"center"},body:{margin:"40px 0px",padding:"0px",display:"flex",justifyContent:"center"},footer:{padding:"0px",justifyContent:"center",flexDirection:"column",gap:"40px"}},aiModal:{dialog:{width:"700px",minHeight:"521px",height:"auto"}},default:{header:{position:"relative",padding:"0px",marginBottom:"10px"},dialog:{padding:"30px",width:"590px"},body:{padding:"0px"}}}}),P=(0,p.Dt)({variants:{msVariant:{field:{fontSize:"sm",border:"1px solid",borderColor:"border",borderRadius:"4px",padding:"10px 20px 10px 20px",minHeight:"40px",_focus:{borderColor:"primary"},_invalid:{borderColor:"error"},_placeholder:{color:"dark50"}}},withStepper:{field:{fontSize:"sm",border:"1px solid",borderColor:"border",borderRadius:"4px",padding:"10px 40px 10px 20px",minHeight:"40px",_focus:{borderColor:"primary"},_invalid:{borderColor:"error"},_placeholder:{color:"dark50"}},stepperGroup:{padding:"3px",margin:"0px",width:"40px"},stepper:{color:"dark50",background:"secondaryBg",padding:"5px 3px 3px",border:"none","& > svg":{width:"100%",height:"0.8em"}}}}}),{definePartsStyle:E,defineMultiStyleConfig:T}=(0,p.YU)(v.vI.keys),q=T({baseStyle:E({body:{margin:"10px",color:"primary"},closeButton:{color:"primary"}})}),O=(0,p.Dt)({variants:{msVariant:{track:{borderRadius:"5px !important",margin:"6px 0 0 !important"},filledTrack:{bg:"primary"}}}}),{definePartsStyle:B,defineMultiStyleConfig:R}=(0,p.YU)(v.Vg.keys),D=R({variants:{msVariant:B({control:{width:"20px",height:"20px",_disabled:{pointerEvents:"none"},_checked:{bg:"white",color:"primary",borderColor:"primary",_hover:{color:"white",bg:"primary",borderColor:"primary"}},_hover:{borderColor:"primary"},_invalid:{borderColor:"error"}}})}}),{definePartsStyle:F,defineMultiStyleConfig:I}=(0,p.YU)(v.af.keys),H=I({baseStyle:F({container:{marginRight:"5px",paddingTop:"1px","--switch-thumb-x":"calc(var(--switch-track-diff) * var(--rtl-mult, 1))"},track:{_checked:{bg:"primary"}}})}),M=(0,p.Dt)({variants:{quiz:{root:{width:"100%"},tablist:{height:"40px",bg:"border",padding:"4px",borderRadius:"4px",width:"fit-content"},tab:{height:"32px",padding:0,margin:0,color:"dark70",borderRadius:"2px",_selected:{bg:"white",color:"dark"}},tabpanel:{padding:"20px 0 0"}}}}),z=(0,p.Dt)({baseStyle:{_disabled:{opacity:.8,background:"white"}},variants:{msVariant:{fontSize:"sm",border:"1px solid",borderColor:"border",borderRadius:"4px",padding:"10px 20px",_focus:{borderColor:"primary"},_invalid:{borderColor:"error"},_placeholder:{color:"dark50"}},unstyled:{color:"dark70",fontSize:"sm"}}}),j=(0,p.Vg)("popper-arrow-bg"),L=(0,p.H2)((()=>({[j.variable]:"#FF3945",borderRadius:"4px",background:"error",borderColor:"error",padding:"11px 20px",fontSize:"sm",fontWeight:"medium",color:"white",zIndex:20}))),U=(0,p.Dt)({variants:{error:L}}),N=(0,c.oY)((0,d.A)({config:{initialColorMode:"light",useSystemColorMode:!1},colors:{default:"rgba(34, 122, 255, 0.1)",white:"#FFFFFF",primary:"rgba(34, 122, 255, 1)",primary10:"rgba(34, 122, 255, 0.1)",primary20:"rgba(34, 122, 255, 0.2)",primary30:"rgba(34, 122, 255, 0.3)",primary40:"rgba(34, 122, 255, 0.4)",primary50:"rgba(34, 122, 255, 0.5)",primary60:"rgba(34, 122, 255, 0.6)",primary70:"rgba(34, 122, 255, 0.7)",primary80:"rgba(34, 122, 255, 0.8)",primary90:"rgba(34, 122, 255, 0.9)",primaryHover:"linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), #227AFF",secondary:"#4D5E6F",secondaryBg:"#EEF1F7",secondaryHover:"#001931",outlineBg:"transparent",unlockBannerBg:"linear-gradient(to bottom, #13283B, #161B21)",description:"rgba(255, 255, 255, 0.70)",success:"#61CC2F",successHover:"#57B82A",error:"rgba(255, 57, 69, 1)",error10:"rgba(255, 57, 69, 0.1)",error20:"rgba(255, 57, 69, 0.2)",error30:"rgba(255, 57, 69, 0.3)",error40:"rgba(255, 57, 69, 0.4)",error50:"rgba(255, 57, 69, 0.5)",error60:"rgba(255, 57, 69, 0.6)",error70:"rgba(255, 57, 69, 0.7)",error80:"rgba(255, 57, 69, 0.8)",error90:"rgba(255, 57, 69, 0.9)",errorHover:"#E6333E",warning:"#FFA800",warningHover:"#E69800",border:"#DBE0E9",dark:"#001931",dark20:"#C4C4C4",dark30:"#B3BAC2",dark50:"#808C98",dark70:"#4D5E6F",mainBackground:"#EEF1F7",headerBg:"#1C252E",selectedTab:"rgba(255, 255, 255, 0.1)",faqImageBg:"#BDD8FF",warningCardBg:"#FFFBF4",warningCardBorder:"#FFDB95",green:"#19C895",draftBg:"rgba(255, 168, 0, 0.1)",blue:{500:"#227AFF"},aiBlockBackground:"conic-gradient(from 180deg at 50% 52.85%, #CBFF93 4.894779995083809deg, #F0EBA0 44.99958157539368deg, #FF9004 130.5864679813385deg, #FF2E54 180.84588289260864deg, #C959DD 218.81051301956177deg, #5D68FF 284.53248739242554deg, #0894FF 324.67241048812866deg, #CBFF93 360deg)"},components:{Accordion:l,Button:u,Checkbox:g,Divider:_,Drawer:m,Input:y,Link:w,Menu:A,Modal:S,NumberInput:P,Popover:q,Progress:O,Radio:D,Switch:H,Tabs:M,Textarea:z,Tooltip:U},fonts:{heading:"Eudoxus Sans Medium, sans-serif",body:"Eudoxus Sans Medium, sans-serif"},fontSizes:{xxs:"10px",xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"24px"},breakpoints:{sm:"320px",md:"768px",lg:"1200px",xl:"1400px"},fontWeights:{hairline:100,thin:200,light:300,normal:400,medium:500,semiBold:600,bold:700,extraBold:800,black:900},lineHeights:{xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"24px",xxl:"30px"},styles:{global:{body:{fontSize:"sm",fontWeight:"normal",bg:"mainBackground"},svg:{fill:"currentColor"}}}},{radii:{none:"0",sm:"4px"}}));var W=t(57522),G=t(61667),Q=t(74472),V=t(6669),Y=t(95338),K=t(70579);const X=e=>{let{children:r,cache:t}=e;const i=(0,Y.T)(),o=null!==t&&void 0!==t?t:(0,V.A)({key:"chakra",stylisPlugins:i});return(0,K.jsx)(Q.C,{value:o,children:r})};var Z=t(65043);const $=e=>{let{children:r,cache:t}=e;const d=(0,Z.useRef)(null);return(0,K.jsx)(X,{cache:t,children:(0,K.jsx)(i.az,{ref:d,children:(0,K.jsx)(o.s,{theme:N,toastOptions:{portalProps:{containerRef:d}},children:(0,K.jsx)(s.t,{portalProps:{containerRef:d},children:(0,K.jsx)(n._P.Provider,{value:n.sW,children:(0,K.jsx)(G.CY,{children:(0,K.jsx)(W.K,{children:(0,K.jsx)(a.D,{children:r})})})})})})})})}},95338:(e,r,t)=>{"use strict";t.d(r,{T:()=>o});var i=t(62403);const o=()=>{const e=[];return"rtl"===(document.dir||"ltr")&&e.push(i.A),e}},44145:(e,r,t)=>{"use strict";t.d(r,{MB:()=>n,e2:()=>d,eA:()=>a});var i=t(89379),o=t(22908),s=t(28064);const n=e=>"string"===typeof e&&e.includes("ERR_CANCELED"),a=e=>(0,o.stringify)(e),d=e=>{let{dateRange:r,sort:t,search:o,page:n,perPage:a}=e;const d={date_from:"",date_to:""};if(r){const e=r.split(",");d.date_from=e[0],d.date_to=e[1]}const c=(0,s.L)(t);return(0,i.A)((0,i.A)({start:(n-1)*a,length:a,search:{value:o,regex:!1}},d),c)}},22974:(e,r,t)=>{"use strict";var i=t(65043),o=t(84391),s=t(94089),n=t(82907),a=(t(61667),t(51585),t(70579));const d=document.getElementById("ms_plugin_root");if(d){const e=i.lazy((()=>Promise.all([t.e(96),t.e(225),t.e(321),t.e(586),t.e(203)]).then(t.bind(t,36851)))),r=o.createRoot(d),c=new n.QueryClient({defaultOptions:{queries:{refetchOnWindowFocus:!1,staleTime:500}}});r.render((0,a.jsxs)(n.QueryClientProvider,{client:c,children:[(0,a.jsx)(e,{}),(0,a.jsx)(s.ReactQueryDevtools,{initialIsOpen:!1,position:"bottom-right"})]}))}},7673:(e,r,t)=>{"use strict";t.d(r,{Eo:()=>a,W8:()=>n,gn:()=>o,ru:()=>d,vg:()=>s,xj:()=>i});let i=function(e){return e.STM_LESSONS="stm-lessons",e.STM_QUIZZES="stm-quizzes",e.STM_ASSIGNMENTS="stm-assignments",e.STM_GOOGLE_MEETS="stm-google-meets",e.STM_QUESTIONS="stm-questions",e}({}),o=function(e){return e.STREAM="stream",e.TEXT="text",e.AUDIO="audio",e.VIDEO="video",e.ZOOM="zoom_conference",e.PDF="pdf",e}({}),s=function(e){return e.ASSIGNMENT="assignment",e.GOOGLE_MEET="google-meet",e.QUIZ="quiz",e.QUESTION="question",e}({}),n=function(e){return e.VIDEO="question-media-video",e.AUDIO="question-media-audio",e}({}),a=function(e){return e.EMBED="embed",e.EXTERNAL_LINK="ext_link",e.HTML="html",e.PRESTO_PLAYER="presto_player",e.VDOCIPHER="vdocipher",e.SHORTCODE="shortcode",e.VIMEO="vimeo",e.YOUTUBE="youtube",e}({}),d=function(e){return e.EMBED="embed",e.EXTERNAL_LINK="ext_link",e.FILE="file",e.SHORTCODE="shortcode",e}({})},33964:(e,r,t)=>{"use strict";t.d(r,{u:()=>i});let i=function(e){return e.SINGLE_CHOICE="single_choice",e.MULTI_CHOICE="multi_choice",e.TRUE_FALSE="true_false",e.ITEM_MATCH="item_match",e.IMAGE_MATCH="image_match",e.KEYWORDS="keywords",e.FILL_THE_GAP="fill_the_gap",e.QUESTION_BANK="question_bank",e.SORTABLE="sortable",e}({})},51585:(e,r,t)=>{"use strict";t.d(r,{_P:()=>ue,sW:()=>le,gf:()=>ge});var i=t(65043),o=t(60097);class s extends o.h{constructor(){super(...arguments),this.get=e=>this._provider.get("/courses/".concat(e,"/announcement")),this.put=e=>{let{data:r,id:t}=e;return this._provider.put("/courses/".concat(t,"/announcement"),r)}}}class n extends o.h{constructor(){super(...arguments),this.create=e=>this._provider.post("/courses/category",e)}}class a extends o.h{constructor(){super(...arguments),this.getBy=e=>this._provider.get("/comments/".concat(e)),this.create=(e,r)=>this._provider.post("/comments/".concat(e),{content:r}),this.reply=e=>{let{commentId:r,content:t}=e;return this._provider.post("/comments/".concat(r,"/reply"),{content:t})},this.update=e=>{let{commentId:r,content:t}=e;return this._provider.post("/comments/".concat(r,"/update"),{content:t})},this.remove=e=>this._provider.post("/comments/".concat(e,"/trash"),{})}}var d=t(89379),c=t(80045),p=t(57273),l=t.n(p),u=t(44145);const g=["image"];class h extends o.h{constructor(){super(...arguments),this.new=()=>this._provider.get("/courses/new"),this.create=e=>{const{image:r}=e,t=(0,c.A)(e,g),i=l()((0,d.A)((0,d.A)({},t),{},{image_id:null===r||void 0===r?void 0:r.id}),Boolean);return this._provider.post("/courses/create",i)},this.getBy=e=>this._provider.get("/courses/".concat(e,"/edit")),this.updateStatus=e=>{let{id:r,status:t}=e;return this._provider.put("/courses/".concat(r,"/status"),{status:t})},this.getCourses=e=>{let{search:r,page:t,paid:i,perPage:o}=e;const s=(0,u.eA)({s:r,page:t,per_page:o,paid_only:i});return this._provider.get("/courses?".concat(s))},this.getCourseBundles=e=>{let{search:r,page:t,perPage:i}=e;const o=(0,u.eA)({s:r,page:t,per_page:i});return this._provider.get("/course-bundles?".concat(o))},this.getCourseCategories=e=>{let{search:r,page:t,perPage:i}=e;const o=(0,u.eA)({search:r,page:t,per_page:i});return this._provider.get("/courses/categories/list?".concat(o))}}}var _=t(141),m=t.n(_),v=t(79160),f=t.n(v);const b=e=>f()(e)?e:null,x=e=>{const{pricing_mode:r}=e;let t={pricing_mode:r};switch(e.pricing_mode){case"free":t=(0,d.A)((0,d.A)({},t),(e=>{const{free_paid_certificate:r,free_certificate_price:t,free_do_not_provide_certificate:i,free_price_info:o}=e;return{free_paid_certificate:r,free_certificate_price:b(t),free_do_not_provide_certificate:i,free_price_info:o}})(e));break;case"paid":t=(0,d.A)((0,d.A)({},t),(e=>{const{single_sale:r,single_sale_paid_certificate:t,single_sale_certificate_price:i,single_sale_do_not_provide_certificate:o,single_sale_price_info:s,price:n,sale_price:a,sale_price_dates_start:d,sale_price_dates_end:c,enterprise:p,enterprise_price:l,enterprise_paid_certificate:u,enterprise_certificate_price:g,enterprise_do_not_provide_certificate:h,enterprise_price_info:_,points:m,points_price:v,points_paid_certificate:f,points_certificate_price:x,points_do_not_provide_certificate:y,points_price_info:w,subscriptions:k,subscriptions_price_info:C,not_membership:A,membership_price_info:S,membership_do_not_provide_certificate:P,membership_paid_certificate:E,membership_certificate_price:T}=e;return{single_sale:r,single_sale_paid_certificate:t,single_sale_certificate_price:b(i),single_sale_do_not_provide_certificate:o,single_sale_price_info:s,price:b(n),sale_price:b(a),sale_price_dates_start:d,sale_price_dates_end:c,enterprise:p,enterprise_price:b(l),enterprise_paid_certificate:u,enterprise_certificate_price:b(g),enterprise_do_not_provide_certificate:h,enterprise_price_info:_,points:m,points_price:b(v),points_paid_certificate:f,points_certificate_price:b(x),points_do_not_provide_certificate:y,points_price_info:w,subscriptions:k,subscriptions_price_info:C,not_membership:A,membership_price_info:S,membership_do_not_provide_certificate:P,membership_paid_certificate:E,membership_certificate_price:b(T)}})(e));break;case"affiliate":t=(0,d.A)((0,d.A)({},t),(e=>{const{affiliate_course_text:r,affiliate_course_link:t,affiliate_course_price:i}=e;return{affiliate_course:!0,affiliate_course_text:r,affiliate_course_link:t,affiliate_course_price:b(i)}})(e))}return t};var y=t(7673);const w=["type","lock_from_start","lock_start_days","start_date","start_time","video_type","audio_type","audio_required_progress","file","video_poster","video","video_width","video_required_progress","youtube_url","vimeo_url","external_url","embed_ctx","shortcode","presto_player_idx","vdocipher_id","files"],k=e=>{var r,t,i,o,s,n,a;const{type:p,lock_from_start:u,lock_start_days:g,start_date:h,start_time:_,video_type:v,audio_type:f,audio_required_progress:x,file:k,video_poster:C,video:A,video_width:S,video_required_progress:P,youtube_url:E,vimeo_url:T,external_url:q,embed_ctx:O,shortcode:B,presto_player_idx:R,vdocipher_id:D,files:F}=e,I=(0,c.A)(e,w),H=(0,d.A)((0,d.A)({},I),{},{type:p,lock_from_start:u});if(p===y.gn.VIDEO)switch(H.video_type=v,v){case"html":H.video_poster=null!==(r=null===C||void 0===C?void 0:C.id)&&void 0!==r?r:null,H.video=null!==(t=null===A||void 0===A?void 0:A.id)&&void 0!==t?t:null,H.video_width=b(S),H.video_required_progress=b(P);break;case"youtube":H.video_poster=null!==(i=null===C||void 0===C?void 0:C.id)&&void 0!==i?i:null,H.youtube_url=E,H.video_required_progress=b(P);break;case"vimeo":H.video_poster=null!==(o=null===C||void 0===C?void 0:C.id)&&void 0!==o?o:null,H.vimeo_url=T,H.video_required_progress=b(P);break;case"ext_link":H.external_url=q,H.video_poster=null!==(s=null===C||void 0===C?void 0:C.id)&&void 0!==s?s:null,H.video_required_progress=b(P);break;case"embed":H.embed_ctx=O;break;case"shortcode":H.shortcode=B;break;case"presto_player":H.presto_player_idx=R,H.video_poster=null!==(n=null===C||void 0===C?void 0:C.id)&&void 0!==n?n:null,H.video_required_progress=b(P);break;case"vdocipher":H.vdocipher_id=D,H.video_required_progress=b(P)}if(p===y.gn.AUDIO)switch(H.audio_type=f,f){case"file":H.file=null!==(a=null===k||void 0===k?void 0:k.id)&&void 0!==a?a:null,H.audio_required_progress=b(x);break;case"ext_link":H.external_url=q,H.audio_required_progress=b(x);break;case"embed":H.embed_ctx=O;break;case"shortcode":H.shortcode=B}H.files=null===F||void 0===F?void 0:F.map((e=>({id:e.id,label:e.label}))),u?H.lock_start_days=g:(H.start_date=h,H.start_time=_||null);const{custom_fields:M}=H;for(const e in M)m()(M[e])&&(M[e]="");return l()(H,(e=>!m()(e)))},C=["attempts","passing_grade"],A=["attempts","passing_grade"];class S extends o.h{constructor(){var e;super(...arguments),e=this,this.getBy=e=>this._provider.get("/courses/".concat(e,"/curriculum")),this.sections={create:(e,r)=>this._provider.post("/courses/".concat(e,"/curriculum/section"),r),update:(e,r)=>this._provider.put("/courses/".concat(e,"/curriculum/section"),r),delete:(e,r)=>this._provider.remove("/courses/".concat(e,"/curriculum/section/").concat(r))},this.lessons={getBy:function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.get("/lessons/".concat(r),void 0,t)},create:e=>{const r=k(e);return this._provider.post("/lessons",r)},update:function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=k(r);return e._provider.put("/lessons/".concat(r.id),i,t)}},this.assignment={getBy:function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.get("/assignments/".concat(r),void 0,t)},create:e=>{const{attempts:r,passing_grade:t}=e,i=(0,c.A)(e,C),o=(0,d.A)((0,d.A)({},i),{},{attempts:b(r),passing_grade:b(t)});return this._provider.post("/assignments",o)},update:function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{attempts:i,passing_grade:o}=r,s=(0,c.A)(r,A),n=(0,d.A)((0,d.A)({},s),{},{attempts:b(i),passing_grade:b(o)});return e._provider.put("/assignments/".concat(r.id),n,t)}},this.googleMeet={getBy:e=>this._provider.get("/google-meets/".concat(e)),create:e=>this._provider.post("/google-meets",e),update:e=>this._provider.put("/google-meets/".concat(e.id),e)},this.materials={create:e=>{let{courseId:r,data:t}=e;return this._provider.post("/courses/".concat(r,"/curriculum/material"),t)},delete:e=>{let{courseId:r,id:t}=e;return this._provider.remove("/courses/".concat(r,"/curriculum/material/").concat(t))},update:(e,r)=>this._provider.put("/courses/".concat(e,"/curriculum/material"),r)},this.scorm={post:e=>{let{courseId:r,file:t}=e;return this._provider.postFile("/courses/".concat(r,"/scorm"),{file:t})},delete:e=>this._provider.remove("/courses/".concat(e,"/scorm"))}}}class P extends o.h{constructor(){super(...arguments),this.get=e=>this._provider.get("/courses/".concat(e,"/settings/drip-content")).then((e=>{return(r=e.drip_content).length?r.map((e=>{const{parent:r,childs:t}=e;return{materials:[r,...t]}})):[{materials:[]}];var r})),this.put=e=>{let{id:r,drip:t}=e;const i=(e=>e.map((e=>{const[r,...t]=e.materials;return{parent:r,childs:t}})))(t);return this._provider.put("/courses/".concat(r,"/settings/drip-content"),i)}}}class E extends o.h{constructor(){super(...arguments),this.get=e=>this._provider.get("/courses/".concat(e,"/settings/faq")),this.put=e=>this._provider.put("/courses/".concat(e.id,"/settings/faq"),e.faq)}}class T extends o.h{constructor(){super(...arguments),this.post=e=>this._provider.postFile("/media",e),this.uploadFromUrl=e=>this._provider.post("/media/from-url",{url:e})}}class q extends o.h{constructor(){super(...arguments),this.update=e=>{let{postId:r,fields:t}=e;const i=(e=>{for(const r in e)m()(e[r])&&(e[r]="");return e})(t);return this._provider.put("/course-builder/custom-fields/".concat(r),i)}}}class O extends o.h{constructor(){super(...arguments),this.getCourseBuilderSettings=()=>this._provider.get("/course-builder/settings"),this.markers={get:e=>this._provider.get("/lesson/markers/get/".concat(e)),create:e=>this._provider.post("/lesson/markers/create/".concat(e.lesson_id),e),delete:e=>this._provider.remove("/lesson/markers/delete/".concat(e.lesson_id,"/").concat(e.marker_id),e),put:e=>this._provider.put("/lesson/markers/update/".concat(e.marker_id,"/"),e),updateQuestionsLock:e=>this._provider.put("/lesson/markers/lock/".concat(e.lesson_id,"/"),e)}}}var B=t(19959);class R extends o.h{constructor(){super(...arguments),this.getBy=e=>{const{searchTerm:r,type:t,courseId:i}=e,o=B.A.stringify({search:r,type:t});return this._provider.get("/courses/".concat(i,"/curriculum/import?").concat(o))},this.get=e=>this._provider.get("/courses/".concat(e,"/curriculum/import")),this.post=e=>{let{material_ids:r,section_id:t,courseId:i}=e;return this._provider.post("/courses/".concat(i,"/curriculum/import"),{material_ids:r,section_id:t})}}}const D=["filter"];class F extends o.h{constructor(){super(...arguments),this.getBy=e=>{const{filter:r}=e,t=(0,c.A)(e,D),i=(e=>{let r="";for(const[t,i]of Object.entries(e))r+="filter[".concat(t,"]=").concat(i,"&");return r})(r),o=i+B.A.stringify(t);return this._provider.get("/media-file-manager?".concat(o))},this.upload=e=>{let{file:r,config:t}=e;return this._provider.postFile("/media-file-manager",{file:r},t)},this.remove=e=>this._provider.remove("/media-file-manager/".concat(e)),this.integration={getBy:e=>{const{integrationType:r,fileType:t,query:i,perPage:o,page:s,orientation:n}=e,a="image"===t?"photos":"videos";return this._provider.get("/media-file-manager/integration/".concat(r,"/").concat(a)+"?query=".concat(i,"&per_page=").concat(o,"&page=").concat(s,"&orientation=").concat(n))}}}}class I extends o.h{constructor(){super(...arguments),this.get=()=>this._provider.get("/questions")}}var H=t(33964);const M=e=>{var r;return(0,d.A)((0,d.A)({},e),{},{answers:e.answers.map((e=>{var r;return(0,d.A)((0,d.A)({},e),{},{text:null===(r=e.text)||void 0===r?void 0:r.trim()})})),image:e.image||{},explain:"",hint:"",view_type:e.view_type||"list"},e.type===H.u.QUESTION_BANK&&{question:(null===(r=e.answers[0])||void 0===r?void 0:r.text)||"bank"})},z=e=>{const{custom_fields:r}=e;for(const e in r)m()(r[e])&&(r[e]="");return(0,d.A)((0,d.A)({},e),{},{quiz_attempts:e.quiz_attempts?"limited":"unlimited",custom_fields:r,questions:e.questions.reduce(((e,r)=>{const t=r.id;return t?[...e,t]:e}),[])})},j=e=>{const r=Array.isArray(e.questions)?e.questions:Object.values(e.questions||{});return(0,d.A)((0,d.A)({},e),{},{questions:r.map(((e,r)=>(0,d.A)((0,d.A)({},e),{},{_id:r,categories:e.categories.map((e=>e.id))})))})};class L extends o.h{constructor(){var e;super(...arguments),e=this,this.create=e=>{const r=z(e);return this._provider.post("/quizzes",r)},this.get=async function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=await e._provider.get("/quizzes/".concat(r),void 0,t);return{quiz:j(i.quiz),custom_fields:i.custom_fields}},this.update=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=z(r);return e._provider.put("/quizzes/".concat(r.id),i,t)},this.updateQuestions=(e,r)=>this._provider.put("/quizzes/".concat(e,"/questions"),{questions:r}),this.questions={create:e=>{const r=M(e);return this._provider.post("/questions",r)},aiCreateBulk:async function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=r.map(M);return e._provider.post("/questions/bulk",{questions:i},t)},createBulk:function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=r.map(M);return e._provider.post("/questions/bulk",{questions:i},t)},get:e=>this._provider.get("/questions/".concat(e)),list:(e,r)=>{const t=B.A.stringify({category:e,search:r});return this._provider.get("/questions/?".concat(t))},remove:e=>this._provider.remove("/questions/".concat(e)),update:(e,r)=>{const t=M(r);return""!==t.video_type&&(t.video_poster=t.video_poster&&t.video_poster.id>0?t.video_poster.id:void 0,t.video=t.video?t.video.id:void 0),this._provider.put("/questions/".concat(e),t)},categories:()=>this._provider.get("/questions/categories"),createCategory:e=>this._provider.post("/questions/category",e)}}}class U extends o.h{constructor(){super(...arguments),this.get=async e=>await this._provider.get("/courses/".concat(e,"/settings/pricing")),this.put=e=>{let{pricing:r,id:t}=e;const i=x(r);return this._provider.put("/courses/".concat(t,"/settings/pricing"),i)}}}const N=["video","video_poster","image","co_instructor"];class W extends o.h{constructor(){super(...arguments),this.get=e=>this._provider.get("/courses/".concat(e,"/settings")),this.updateMain=e=>{var r;let{main:t,id:i}=e;const{video:o,video_poster:s,image:n,co_instructor:a}=t,p=(0,c.A)(t,N),l=(0,d.A)({video_poster:null!==(r=null===s||void 0===s?void 0:s.id)&&void 0!==r?r:null,video:null===o||void 0===o?void 0:o.id,image_id:null===n||void 0===n?void 0:n.id,co_instructor_id:null===a||void 0===a?void 0:a.id},p);return this._provider.put("/courses/".concat(i,"/settings"),l)},this.updateAccess=e=>{let{access:r,id:t}=e;return this._provider.put("/courses/".concat(t,"/settings/access"),r)},this.updatePrerequisites=e=>{let{prerequisites:r,id:t}=e;return this._provider.put("/courses/".concat(t,"/settings/prerequisites"),r)},this.updateCertificate=e=>{var r,t;let{certificate:i,id:o}=e;return i.certificate_id=null!==(r=null===(t=i.certificate_id)||void 0===t?void 0:t.toString())&&void 0!==r?r:null,this._provider.put("/courses/".concat(o,"/settings/certificate"),i)},this.updateCourseMaterials=e=>{let{files:r,id:t}=e;const i=r.map((e=>({id:e.id,label:e.label})));return this._provider.put("/courses/".concat(t,"/settings/files"),i)},this.updateCoursePageStyle=e=>{let{slug:r,id:t}=e;const i={id:t,slug:r};return this._provider.put("/courses/".concat(t,"/settings/course-page-style"),i)}}}var G=t(9441),Q=t.n(G);class V extends o.h{constructor(){super(...arguments),this.searchCourseByName=e=>{const r=B.A.stringify({search:e,type:"stm-courses"});return this._provider.get("/search?".concat(r))},this.getRecentCourses=()=>{const e=B.A.stringify({type:"stm-courses",per_page:5});return this._provider.get("/search?".concat(e))},this.searchCoInstructorByTerm=e=>{const r=B.A.stringify({search:e,roles:"stm_lms_instructor"});return this._provider.get("/users?".concat(r))},this.updateMediaTitle=e=>{let{id:r,data:t}=e;return this._provider.post("/media/".concat(r),t)},this.searchQuestions=(e,r,t,i,o)=>{const s=B.A.stringify(Q()({type:e,search:t,category:r,page:i.toString(),per_page:o},(e=>!e)));return this._provider.getPaginated("/search?".concat(s))}}}var Y=t(37543);const K=["headers","method"];class X{constructor(e,r){var t=this;this._rootUrl=void 0,this._token=void 0,this.getBaseUrl=e=>"".concat(this._rootUrl).concat(e),this.getOverrideRequestOptions=e=>{const{headers:r,method:t}=e,i=(0,c.A)(e,K);return(0,d.A)({headers:(0,d.A)((0,d.A)({},r),{},{"X-HTTP-Method-Override":t}),method:["DELETE","PATCH","PUT"].includes(t)?"POST":t},i)},this.request=async(e,r)=>{var t;let i=this.getBaseUrl(e);r.queryString&&(i="".concat(i,"/").concat(r.queryString)),"undefined"!==typeof(null===(t=window.lmsApiSettings)||void 0===t?void 0:t.lang)&&(i+=(i.includes("?")?"&":"?")+"lang=".concat(window.lmsApiSettings.lang));const o=this.getOverrideRequestOptions(r.options);return await Y.A.request((0,d.A)((0,d.A)({url:i},o),{},{withCredentials:!0})).then((e=>r._isPaginated?{data:e.data,total:e.headers["x-wp-total"],totalPages:e.headers["x-wp-totalpages"]}:e.data)).catch((e=>{let r;if(e.response){const t=e.response.data;t.message&&(r=t.message),t.errors&&(r=t.errors)}else r=e.code;if(!r)throw new Error("An error occurred");throw r}))},this.getHeaders=function(){return{"Content-Type":arguments.length>0&&void 0!==arguments[0]&&arguments[0]?"multipart/forms-data":"application/json","X-WP-Nonce":t._token}},this.getData=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return JSON.stringify(e)},this.get=function(e,r){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o={options:(0,d.A)({method:"GET",headers:t.getHeaders()},i),queryString:r};return t.request(e,o)},this.getPaginated=function(e,r){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o={options:(0,d.A)({method:"GET",headers:t.getHeaders()},i),queryString:r,_isPaginated:!0};return t.request(e,o)},this.post=function(e,r){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o={options:(0,d.A)({method:"POST",headers:t.getHeaders(),data:t.getData(r)},i)};return t.request(e,o)},this.remove=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i={options:{method:"DELETE",headers:t.getHeaders(),data:t.getData(r)}};return t.request(e,i)},this.patch=(e,r)=>{const t={options:{method:"PATCH",headers:this.getHeaders(),data:this.getData(r)}};return this.request(e,t)},this.put=function(e,r){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o={options:(0,d.A)({method:"PUT",headers:t.getHeaders(),data:t.getData(r)},i)};return t.request(e,o)},this.postFile=(e,r,t)=>{const i=new FormData;for(const[e,t]of Object.entries(r))i.append(e,t);const o={options:(0,d.A)({method:"POST",headers:this.getHeaders(!0),data:i},t)};return this.request(e,o)},this._rootUrl=e,this._token=r}}class Z extends o.h{constructor(){super(...arguments),this.create=e=>this._provider.post("/course-templates/create-template",e),this.delete=e=>this._provider.remove("/course-templates/delete-template/".concat(e)),this.update=e=>this._provider.post("/course-templates/modify-template",e),this.duplicate=e=>this._provider.post("/course-templates/duplicate-template",e)}}var $=t(17622);class J extends o.h{constructor(){var e;super(...arguments),e=this,this.generateText=e=>this._provider.post("/ai/generate/text",e),this.generateImage=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/image",r,t)},this.uploadSelectedImage=e=>this._provider.post("/ai/upload-image",e),this.generateFaq=e=>this._provider.post("/ai/generate/faq",e),this.generateLesson=async function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/lesson",r,t)},this.generateAssignment=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/assignment",r,t)},this.generateImages=async function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=r.image_prompts.map((i=>e.generateImage({prompt:i,style:r.style},t)));return(await Promise.all(i)).map(((e,t)=>({prompt:r.image_prompts[t],image:e})))},this.generateQuestions=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/questions",r,t)},this.generateCourseDescription=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/description",r,t)},this.generateCourseContent=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/content",r,t)},this.generateCourseInfo=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/info",r,t)},this.generateCourseCurriculum=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/curriculum",(0,d.A)((0,d.A)({},r),{},{quizzes_count:-1===r.quizzes_count?null:r.quizzes_count}),t)},this.generateCourseTitle=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/title",r,t)},this.generateCourseCategories=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/course/categories",r,t)},this.generateCourseFaq=function(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e._provider.post("/ai/generate/faq",(0,d.A)((0,d.A)({},r),{},{words_limit:$.HI,tone:$.g2,count:$.gH}),t)},this.createGeneratedCourse=e=>this._provider.post("/ai/course",e),this.generateDuration=e=>this._provider.post("/ai/generate/lesson-duration/".concat(e),{})}}var ee=t(63711);class re extends o.h{constructor(){super(...arguments),this.getOrders=(e,r,t,i,o,s,n)=>{const a=(0,ee.o)(s),d=(0,u.eA)({page:e,per_page:r,search:t,status:i,date_range:o,sort:a,coupon_id:n});return this._provider.get("/all-orders?".concat(d))},this.getOrder=e=>this._provider.get("/orders/".concat(e)),this.bulkAction=e=>this._provider.post("/orders-bulk-update",e),this.updateOrder=(e,r)=>this._provider.put("/orders/".concat(e),r)}}class te extends o.h{constructor(){super(...arguments),this.getMembershipPlans=(e,r,t,i)=>{const o=(0,ee.o)(t),s=(0,u.eA)({page:e,per_page:r,sort:o,search:i});return this._provider.get("/subscription-plan/list?".concat(s))},this.getCourseMembershipPlans=(e,r,t)=>{const i=(0,u.eA)({course_id:t,page:e,per_page:r});return this._provider.get("/subscription-plan/list?".concat(i))},this.getMembershipPlan=e=>this._provider.get("/subscription-plan/".concat(e)),this.createMembershipPlan=e=>this._provider.post("/subscription-plan/create",e),this.updateMembershipPlan=(e,r)=>this._provider.put("/subscription-plan/".concat(e),r),this.updateMembershipPlanStatus=(e,r)=>this._provider.put("/subscription-plan/".concat(e,"/toggle-enabled"),r),this.deleteMembershipPlan=e=>this._provider.remove("/subscription-plan/".concat(e)),this.reorderMembershipPlans=(e,r)=>this._provider.post("/subscription-plan/reorder",{plans:e},{signal:r})}}var ie,oe,se=t(22412);class ne extends o.h{getCoupons(e,r,t,i,o,s){const n=(0,u.eA)((0,d.A)((0,d.A)({},(0,u.e2)({dateRange:o,sort:s,search:t,page:e,perPage:r})),{},{status:i}));return this._provider.get("/coupon/list?".concat(n))}getCoupon(e){return this._provider.get("/coupon/".concat(e))}createCoupon(e){return this._provider.post("/coupon/create",e)}updateCoupon(e,r){return this._provider.put("/coupon/".concat(e),r)}updateCouponStatus(e,r){return this._provider.put("/coupon/".concat(e,"/status"),{coupon_status:r})}deleteCoupon(e){return this._provider.remove("/coupon/".concat(e))}bulkAction(e){return this._provider.post("/coupon/bulk-update",e)}}const ae={NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_API_URL||window.lmsApiSettings.lmsUrl,de={NODE_ENV:"production",PUBLIC_URL:".",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0}.REACT_APP_WP_API_URL||window.lmsApiSettings.wpUrl,ce=new X(ae,null===(ie=window.lmsApiSettings)||void 0===ie?void 0:ie.nonce),pe=new X(de,null===(oe=window.lmsApiSettings)||void 0===oe?void 0:oe.nonce),le=new class{constructor(e,r){this._lmsProvider=void 0,this._wpProvider=void 0,this._resources=void 0,this.getResources=()=>this._resources,this._lmsProvider=e,this._wpProvider=r,this._resources={announcement:new s(this._lmsProvider),categories:new n(this._lmsProvider),comments:new a(this._lmsProvider),course:new h(this._lmsProvider),curriculum:new S(this._lmsProvider),drip:new P(this._lmsProvider),faq:new E(this._lmsProvider),files:new T(this._lmsProvider),grassblade:new q(this._lmsProvider),lessons:new O(this._lmsProvider),materials:new R(this._lmsProvider),mediaGallery:new F(this._lmsProvider),pricing:new U(this._lmsProvider),questions:new I(this._lmsProvider),quiz:new L(this._lmsProvider),settings:new W(this._lmsProvider),wordpress:new V(this._wpProvider),template:new Z(this._lmsProvider),ai:new J(this._lmsProvider),orders:new re(this._lmsProvider),membershipPlans:new te(this._lmsProvider),memberships:new se.qB(this._lmsProvider),coupons:new ne(this._lmsProvider)}}}(ce,pe),ue=(0,i.createContext)({}),ge=()=>(0,i.useContext)(ue).getResources()},61667:(e,r,t)=>{"use strict";t.d(r,{CY:()=>p,TO:()=>c,WD:()=>d,Y_:()=>n,defaultI18n:()=>s.y3});var i=t(65043),o=t(70579),s=t(97989);const n="masterstudy-lms-learning-management-system",a=(0,i.createContext)(window.wp.i18n),d=()=>{const{__:__,_n:e,_nx:r,_x:t,sprintf:o}=(0,i.useContext)(a);return{__:function(e){return __(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:n)},_n:function(r,t,i){return e(r,t,i,arguments.length>3&&void 0!==arguments[3]?arguments[3]:n)},_nx:function(e,t,i,o){return r(e,t,i,o,arguments.length>4&&void 0!==arguments[4]?arguments[4]:n)},_x:function(e,r){return t(e,r,arguments.length>2&&void 0!==arguments[2]?arguments[2]:n)},sprintf:o}},c=()=>{const{__:__,_n:e,_nx:r,_x:t,sprintf:i}=window.wp.i18n;return{__:function(e){return __(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:n)},_n:function(r,t,i){return e(r,t,i,arguments.length>3&&void 0!==arguments[3]?arguments[3]:n)},_nx:function(e,t,i,o){return r(e,t,i,o,arguments.length>4&&void 0!==arguments[4]?arguments[4]:n)},_x:function(e,r){return t(e,r,arguments.length>2&&void 0!==arguments[2]?arguments[2]:n)},sprintf:i}},p=e=>{let{children:r}=e;return(0,o.jsx)(a.Provider,{value:window.wp.i18n,children:r})}},60097:(e,r,t)=>{"use strict";t.d(r,{h:()=>i});class i{constructor(e){this._provider=void 0,this._provider=e}}},22412:(e,r,t)=>{"use strict";t.d(r,{c1:()=>c.c1,qB:()=>d});var i=t(89379),o=t(60097),s=t(63711),n=t(44145),a=t(28064);class d extends o.h{constructor(){var e;super(...arguments),e=this,this.getMemberships=function(r,t,o,s,d,c,p){let l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:void 0;const u={date_from:"",date_to:""};if(c){const e=c.split(",");u.date_from=e[0],u.date_to=e[1]}const g=(0,a.L)(p),h=(0,n.eA)((0,i.A)((0,i.A)({subscription_type:d,start:(r-1)*t,length:t,search:{value:o,regex:!1},is_admin:l},u),g));return e._provider.get("/subscription/list?".concat(h))},this.getMembership=async e=>this._provider.get("/subscription/".concat(e)),this.bulkAction=e=>this._provider.post("/subscription/bulk-update",e),this.updateMembership=(e,r)=>this._provider.post("/subscription/".concat(e),r),this.cancelMembership=e=>this._provider.put("/subscription/".concat(e,"/cancel"),{}),this.getPaymentHistory=async(e,r,t,i)=>{const o=(0,s.o)(i),a=(0,n.eA)({start:(r-1)*t,length:t,sort:o});return this._provider.post("/subscription/".concat(e,"/payment-history?").concat(a),{})}}}var c=t(81919)},81919:(e,r,t)=>{"use strict";t.d(r,{VM:()=>i,c1:()=>o});let i=function(e){return e.COURSE="course",e.BUNDLE="bundle",e.SITE="full_site",e.CATEGORY="category",e}({}),o=function(e){return e.SUBSCRIPTION="subscription",e.MEMBERSHIP="membership",e}({})},42634:()=>{}},r={};function t(i){var o=r[i];if(void 0!==o)return o.exports;var s=r[i]={id:i,loaded:!1,exports:{}};return e[i].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}t.m=e,(()=>{var e=[];t.O=(r,i,o,s)=>{if(!i){var n=1/0;for(p=0;p<e.length;p++){i=e[p][0],o=e[p][1],s=e[p][2];for(var a=!0,d=0;d<i.length;d++)(!1&s||n>=s)&&Object.keys(t.O).every((e=>t.O[e](i[d])))?i.splice(d--,1):(a=!1,s<n&&(n=s));if(a){e.splice(p--,1);var c=o();void 0!==c&&(r=c)}}return r}s=s||0;for(var p=e.length;p>0&&e[p-1][2]>s;p--)e[p]=e[p-1];e[p]=[i,o,s]}})(),t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},(()=>{var e,r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;t.t=function(i,o){if(1&o&&(i=this(i)),8&o)return i;if("object"===typeof i&&i){if(4&o&&i.__esModule)return i;if(16&o&&"function"===typeof i.then)return i}var s=Object.create(null);t.r(s);var n={};e=e||[null,r({}),r([]),r(r)];for(var a=2&o&&i;"object"==typeof a&&!~e.indexOf(a);a=r(a))Object.getOwnPropertyNames(a).forEach((e=>n[e]=()=>i[e]));return n.default=()=>i,t.d(s,n),s}})(),t.d=(e,r)=>{for(var i in r)t.o(r,i)&&!t.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:r[i]})},t.f={},t.e=e=>Promise.all(Object.keys(t.f).reduce(((r,i)=>(t.f[i](e,r),r)),[])),t.u=e=>"./course-builder/js/"+e+"."+{203:"138d5e1f",225:"cc991dbf",321:"e79fbf4d",586:"ce07b339",786:"47f16a92",791:"e2e7013f",856:"8964540d",903:"5a9c42ff",926:"02d5412f",949:"eb1b2fb6"}[e]+".chunk.js",t.miniCssF=e=>"./course-builder/css/"+e+"."+{203:"cbb86c7e",225:"c7a7bbfc",786:"0903b3c9",791:"0903b3c9",856:"0903b3c9",949:"0903b3c9"}[e]+".chunk.css",t.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={},r="client:";t.l=(i,o,s,n)=>{if(e[i])e[i].push(o);else{var a,d;if(void 0!==s)for(var c=document.getElementsByTagName("script"),p=0;p<c.length;p++){var l=c[p];if(l.getAttribute("src")==i||l.getAttribute("data-webpack")==r+s){a=l;break}}a||(d=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,t.nc&&a.setAttribute("nonce",t.nc),a.setAttribute("data-webpack",r+s),a.src=i),e[i]=[o];var u=(r,t)=>{a.onerror=a.onload=null,clearTimeout(g);var o=e[i];if(delete e[i],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((e=>e(t))),r)return r(t)},g=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),d&&document.head.appendChild(a)}}})(),t.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),t.j=792,(()=>{var e;t.g.importScripts&&(e=t.g.location+"");var r=t.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var i=r.getElementsByTagName("script");if(i.length)for(var o=i.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=i[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),t.p=e+"../../"})(),(()=>{if("undefined"!==typeof document){var e=e=>new Promise(((r,i)=>{var o=t.miniCssF(e),s=t.p+o;if(((e,r)=>{for(var t=document.getElementsByTagName("link"),i=0;i<t.length;i++){var o=(n=t[i]).getAttribute("data-href")||n.getAttribute("href");if("stylesheet"===n.rel&&(o===e||o===r))return n}var s=document.getElementsByTagName("style");for(i=0;i<s.length;i++){var n;if((o=(n=s[i]).getAttribute("data-href"))===e||o===r)return n}})(o,s))return r();((e,r,i,o,s)=>{var n=document.createElement("link");n.rel="stylesheet",n.type="text/css",t.nc&&(n.nonce=t.nc),n.onerror=n.onload=t=>{if(n.onerror=n.onload=null,"load"===t.type)o();else{var i=t&&t.type,a=t&&t.target&&t.target.href||r,d=new Error("Loading CSS chunk "+e+" failed.\n("+i+": "+a+")");d.name="ChunkLoadError",d.code="CSS_CHUNK_LOAD_FAILED",d.type=i,d.request=a,n.parentNode&&n.parentNode.removeChild(n),s(d)}},n.href=r,i?i.parentNode.insertBefore(n,i.nextSibling):document.head.appendChild(n)})(e,s,null,r,i)})),r={792:0};t.f.miniCss=(t,i)=>{r[t]?i.push(r[t]):0!==r[t]&&{203:1,225:1,786:1,791:1,856:1,949:1}[t]&&i.push(r[t]=e(t).then((()=>{r[t]=0}),(e=>{throw delete r[t],e})))}}})(),(()=>{t.b=document.baseURI||self.location.href;var e={792:0};t.f.j=(r,i)=>{var o=t.o(e,r)?e[r]:void 0;if(0!==o)if(o)i.push(o[2]);else if(/^(225|949)$/.test(r))e[r]=0;else{var s=new Promise(((t,i)=>o=e[r]=[t,i]));i.push(o[2]=s);var n=t.p+t.u(r),a=new Error;t.l(n,(i=>{if(t.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var s=i&&("load"===i.type?"missing":i.type),n=i&&i.target&&i.target.src;a.message="Loading chunk "+r+" failed.\n("+s+": "+n+")",a.name="ChunkLoadError",a.type=s,a.request=n,o[1](a)}}),"chunk-"+r,r)}},t.O.j=r=>0===e[r];var r=(r,i)=>{var o,s,n=i[0],a=i[1],d=i[2],c=0;if(n.some((r=>0!==e[r]))){for(o in a)t.o(a,o)&&(t.m[o]=a[o]);if(d)var p=d(t)}for(r&&r(i);c<n.length;c++)s=n[c],t.o(e,s)&&e[s]&&e[s][0](),e[s]=0;return t.O(p)},i=self.webpackChunkclient=self.webpackChunkclient||[];i.forEach(r.bind(null,0)),i.push=r.bind(null,i.push.bind(i))})(),t.nc=void 0,t.O(void 0,[96],(()=>t(22974)));var i=t.O(void 0,[96],(()=>t(95391)));i=t.O(i)})(); -
masterstudy-lms-learning-management-system/trunk/includes/Http/Controllers/Course/UpdatePricingSettingsController.php
r3392871 r3458914 3 3 namespace MasterStudy\Lms\Http\Controllers\Course; 4 4 5 use MasterStudy\Lms\Enums\PricingMode; 5 6 use MasterStudy\Lms\Http\WpResponseFactory; 6 7 use MasterStudy\Lms\Repositories\CourseRepository; … … 27 28 $request->get_json_params(), 28 29 array( 29 'single_sale' => 'required|boolean', 30 'price' => 'required_if_accepted,single_sale|nullable|float', 31 'sale_price' => 'nullable|float', 32 'sale_price_dates_start' => 'required_with,sale_price_dates_end|nullable|integer', 33 'sale_price_dates_end' => 'required_with,sale_price_dates_start|nullable|integer', 34 'points_price' => 'nullable|float', 35 'enterprise_price' => 'nullable|float', 36 'not_membership' => 'required|boolean', 37 'affiliate_course' => 'required|boolean', 38 'subscriptions' => 'nullable|boolean', 39 'affiliate_course_text' => 'required_if_accepted,affiliate_course|string', 40 'affiliate_course_link' => 'required_if_accepted,affiliate_course|string', 41 'price_info' => 'nullable|string', 30 // Free 31 'free_do_not_provide_certificate' => 'nullable|boolean', 32 'free_paid_certificate' => 'nullable|boolean', 33 'free_certificate_price' => 'required_if_accepted,free_paid_certificate|nullable|float', 34 'free_price_info' => 'nullable|string', 35 36 // Paid 37 'single_sale' => 'nullable|boolean', 38 'single_sale_price_info' => 'nullable|string', 39 'single_sale_do_not_provide_certificate' => 'nullable|boolean', 40 'single_sale_paid_certificate' => 'required_if_accepted,single_sale|boolean', 41 'single_sale_certificate_price' => 'required_if_accepted,single_sale_paid_certificate|nullable|float', 42 'price' => 'required_if_accepted,single_sale|nullable|float', 43 'sale_price' => 'nullable|float', 44 'sale_price_dates_start' => 'required_with,sale_price_dates_end|nullable|integer', 45 'sale_price_dates_end' => 'required_with,sale_price_dates_start|nullable|integer', 46 47 'enterprise' => 'nullable|boolean', 48 'enterprise_price' => 'required_if_accepted,enterprise|nullable|float', 49 'enterprise_price_info' => 'nullable|string', 50 'enterprise_do_not_provide_certificate' => 'nullable|boolean', 51 'enterprise_paid_certificate' => 'required_if_accepted,enterprise|boolean', 52 'enterprise_certificate_price' => 'required_if_accepted,enterprise_paid_certificate|nullable|float', 53 54 'not_membership' => 'nullable|boolean', 55 'membership_price_info' => 'nullable|string', 56 'membership_do_not_provide_certificate' => 'nullable|boolean', 57 'membership_paid_certificate' => 'nullable|boolean', 58 'membership_certificate_price' => 'nullable|float', 59 60 'points' => 'nullable|boolean', 61 'points_price' => 'nullable|float', 62 'points_price_info' => 'nullable|string', 63 'points_do_not_provide_certificate' => 'nullable|boolean', 64 'points_paid_certificate' => 'nullable|boolean', 65 'points_certificate_price' => 'required_if_accepted,points_paid_certificate|nullable|float', 66 67 'subscriptions' => 'nullable|boolean', 68 'subscriptions_price_info' => 'nullable|string', 69 70 // Affiliate 71 'affiliate_course' => 'nullable|boolean', 72 'affiliate_course_text' => 'required_if_accepted,affiliate_course|string', 73 'affiliate_course_link' => 'required_if_accepted,affiliate_course|string', 74 'affiliate_course_price' => 'required_if_accepted,affiliate_course|float', 75 76 'pricing_mode' => 'required|string|contains_list,' . implode( ';', PricingMode::cases() ), 42 77 ) 43 78 ); -
masterstudy-lms-learning-management-system/trunk/includes/Models/Course.php
r3329051 r3458914 86 86 public ?string $udemy_articles; 87 87 public ?string $udemy_certificate; 88 public ?string $single_sale_price_info; 89 public ?string $free_price_info; 88 90 public ?string $price_info; 91 public ?string $enterprise_price_info; 92 public ?string $points_price_info; 93 public ?string $subscription_price_info; 94 public ?string $pricing_mode; 89 95 public ?float $price; 90 96 public ?float $sale_price; -
masterstudy-lms-learning-management-system/trunk/includes/Repositories/CoursePlayerRepository.php
r3392871 r3458914 18 18 'stm-assignments' => 'assignments', 19 19 'stm-google-meets' => 'google_meet', 20 ); 21 22 private const NOT_RANDOMIZING_ANSWERS_TYPES = array( 23 QuestionType::FILL_THE_GAP, 24 QuestionType::KEYWORDS, 25 QuestionType::SORTABLE, 20 26 ); 21 27 … … 406 412 407 413 if ( ! empty( $quiz_data['random_answers'] ) && 'completed' !== $this->data['lesson_completed'] && 408 ! in_array( $question['type'], array( QuestionType::FILL_THE_GAP, QuestionType::KEYWORDS ), true)414 $this->can_answers_be_randomized( $question['type'] ) 409 415 ) { 410 416 shuffle( $question['answers'] ); … … 504 510 ); 505 511 } 512 513 private function can_answers_be_randomized( string $type ): bool { 514 return ! in_array( $type, self::NOT_RANDOMIZING_ANSWERS_TYPES, true ); 515 } 506 516 } -
masterstudy-lms-learning-management-system/trunk/includes/Repositories/CourseRepository.php
r3410526 r3458914 664 664 $meta = get_post_meta( $post->ID ); 665 665 666 $course = new Course();667 $course->access_status = $post->post_status;668 $course->owner = $this->find_user( $post->post_author );669 $course->category = wp_get_post_terms( $post->ID, Taxonomy::COURSE_CATEGORY, array( 'fields' => 'ids' ) );670 $course->certificate_id = ( $meta['course_certificate'][0] ?? null ) === 'none' ? $meta['course_certificate'][0] : intval( $meta['course_certificate'][0] ?? null );671 $course->course_page_style = $meta['page_style'][0] ?? null;672 $course->co_instructor = isset( $meta['co_instructor'][0] )666 $course = new Course(); 667 $course->access_status = $post->post_status; 668 $course->owner = $this->find_user( $post->post_author ); 669 $course->category = wp_get_post_terms( $post->ID, Taxonomy::COURSE_CATEGORY, array( 'fields' => 'ids' ) ); 670 $course->certificate_id = ( $meta['course_certificate'][0] ?? null ) === 'none' ? $meta['course_certificate'][0] : intval( $meta['course_certificate'][0] ?? null ); 671 $course->course_page_style = $meta['page_style'][0] ?? null; 672 $course->co_instructor = isset( $meta['co_instructor'][0] ) 673 673 ? $this->find_user( $meta['co_instructor'][0] ) 674 674 : null; 675 $course->current_students = intval( $meta['current_students'][0] ?? 0 ); 676 $course->content = $post->post_content; 677 $course->duration_info = $meta['duration_info'][0] ?? ''; 678 $course->end_time = intval( $meta['end_time'][0] ?? 0 ); 679 $course->excerpt = $post->post_excerpt; 680 $course->expiration = (bool) ( $meta['expiration_course'][0] ?? false ); 681 $course->coming_soon_date = $meta['coming_soon_date'][0] ?? ''; 682 $course->files = ( new FileMaterialRepository() )->get_files( $meta['course_files'][0] ?? null, true ); 683 $course->id = $post->ID; 684 $course->image = $this->get_course_image( $post ); 685 $course->is_featured = ( $meta['featured'][0] ?? null ) === 'on'; 686 $course->is_lock_lesson = ( $meta['lock_lesson'][0] ?? null ) === 'on'; 687 $course->level = $meta['level'][0] ?? null; 688 $course->owner = $this->find_user( $post->post_author ); 689 $course->slug = $post->post_name; 690 $course->status = $meta['status'][0] ?? null; 691 $course->status_date_end = isset( $meta['status_dates_end'][0] ) ? (int) $meta['status_dates_end'][0] : null; 692 $course->status_date_start = isset( $meta['status_dates_start'][0] ) ? (int) $meta['status_dates_start'][0] : null; 693 $course->title = $post->post_title; 694 $course->video_duration = $meta['video_duration'][0] ?? ''; 695 $course->requirements = $meta['requirements'][0] ?? ''; 696 $course->basic_info = $meta['basic_info'][0] ?? ''; 697 $course->intended_audience = $meta['intended_audience'][0] ?? ''; 698 $course->views = $meta['views'][0] ?? 0; 699 $course->access_duration = $meta['access_duration'][0] ?? ''; 700 $course->access_devices = $meta['access_devices'][0] ?? ''; 701 $course->certificate_info = $meta['certificate_info'][0] ?? ''; 702 $course->coming_soon_details = (bool) ( $meta['coming_soon_show_course_details'][0] ?? false ); 703 $course->coming_soon_price = (bool) ( $meta['coming_soon_show_course_price'][0] ?? false ); 704 $course->coming_soon_preorder = (bool) ( $meta['coming_soon_preordering'][0] ?? false ); 705 $course->announcement = $meta['announcement'][0] ?? ''; 706 $course->reviews = $meta['reviews'][0] ?? array(); 707 $course->marks = $this->get_course_marks( $post->ID ); 708 $course->rate = $this->get_course_rate( $course->marks ); 709 $course->thumbnail = $this->get_course_image( $post, 'img-870-440' ); 710 $course->full_image = $this->get_course_image( $post, 'full' ); 711 $course->attachments = ( new FileMaterialRepository() )->get_files( $meta['course_files'][0] ?? null ); 712 $course->is_udemy_course = $meta['udemy_course_id'][0] ?? false; 713 $course->price_info = $meta['price_info'][0] ?? ''; 714 $course->url = get_post_permalink( $post->ID ); 675 $course->current_students = intval( $meta['current_students'][0] ?? 0 ); 676 $course->content = $post->post_content; 677 $course->duration_info = $meta['duration_info'][0] ?? ''; 678 $course->end_time = intval( $meta['end_time'][0] ?? 0 ); 679 $course->excerpt = $post->post_excerpt; 680 $course->expiration = (bool) ( $meta['expiration_course'][0] ?? false ); 681 $course->coming_soon_date = $meta['coming_soon_date'][0] ?? ''; 682 $course->files = ( new FileMaterialRepository() )->get_files( $meta['course_files'][0] ?? null, true ); 683 $course->id = $post->ID; 684 $course->image = $this->get_course_image( $post ); 685 $course->is_featured = ( $meta['featured'][0] ?? null ) === 'on'; 686 $course->is_lock_lesson = ( $meta['lock_lesson'][0] ?? null ) === 'on'; 687 $course->level = $meta['level'][0] ?? null; 688 $course->owner = $this->find_user( $post->post_author ); 689 $course->slug = $post->post_name; 690 $course->status = $meta['status'][0] ?? null; 691 $course->status_date_end = isset( $meta['status_dates_end'][0] ) ? (int) $meta['status_dates_end'][0] : null; 692 $course->status_date_start = isset( $meta['status_dates_start'][0] ) ? (int) $meta['status_dates_start'][0] : null; 693 $course->title = $post->post_title; 694 $course->video_duration = $meta['video_duration'][0] ?? ''; 695 $course->requirements = $meta['requirements'][0] ?? ''; 696 $course->basic_info = $meta['basic_info'][0] ?? ''; 697 $course->intended_audience = $meta['intended_audience'][0] ?? ''; 698 $course->views = $meta['views'][0] ?? 0; 699 $course->access_duration = $meta['access_duration'][0] ?? ''; 700 $course->access_devices = $meta['access_devices'][0] ?? ''; 701 $course->certificate_info = $meta['certificate_info'][0] ?? ''; 702 $course->coming_soon_details = (bool) ( $meta['coming_soon_show_course_details'][0] ?? false ); 703 $course->coming_soon_price = (bool) ( $meta['coming_soon_show_course_price'][0] ?? false ); 704 $course->coming_soon_preorder = (bool) ( $meta['coming_soon_preordering'][0] ?? false ); 705 $course->announcement = $meta['announcement'][0] ?? ''; 706 $course->reviews = $meta['reviews'][0] ?? array(); 707 $course->marks = $this->get_course_marks( $post->ID ); 708 $course->rate = $this->get_course_rate( $course->marks ); 709 $course->thumbnail = $this->get_course_image( $post, 'img-870-440' ); 710 $course->full_image = $this->get_course_image( $post, 'full' ); 711 $course->attachments = ( new FileMaterialRepository() )->get_files( $meta['course_files'][0] ?? null ); 712 $course->is_udemy_course = $meta['udemy_course_id'][0] ?? false; 713 $course->price_info = $meta['price_info'][0] ?? ''; 714 $course->single_sale_price_info = $meta['single_sale_price_info'][0] ?? ''; 715 $course->free_price_info = $meta['free_price_info'][0] ?? ''; 716 $course->enterprise_price_info = $meta['enterprise_price_info'][0] ?? ''; 717 $course->points_price_info = $meta['points_price_info'][0] ?? ''; 718 $course->subscription_price_info = $meta['subscription_price_info'][0] ?? ''; 719 $course->pricing_mode = $meta['pricing_mode'][0] ?? ''; 720 $course->url = get_post_permalink( $post->ID ); 715 721 716 722 if ( $course->is_udemy_course ) { -
masterstudy-lms-learning-management-system/trunk/includes/Repositories/PricingRepository.php
r3392871 r3458914 3 3 namespace MasterStudy\Lms\Repositories; 4 4 5 use MasterStudy\Lms\Enums\PricingMode; 6 5 7 final class PricingRepository { 6 8 private const CASTS = array( 7 'single_sale' => 'bool', 8 'price' => 'numeric', 9 'sale_price' => 'numeric', 10 'points_price' => 'numeric', 11 'enterprise_price' => 'numeric', 12 'not_membership' => 'bool', 13 'affiliate_course' => 'bool', 14 'subscriptions' => 'bool', 15 'sale_price_dates_start' => 'numeric', 16 'sale_price_dates_end' => 'numeric', 17 'price_info' => 'string', 9 'free_do_not_provide_certificate' => 'bool', 10 'free_paid_certificate' => 'bool', 11 'free_price_info' => 'string', 12 'free_certificate_price' => 'numeric', 13 14 'single_sale' => 'bool', 15 'price' => 'numeric', 16 'sale_price' => 'numeric', 17 'sale_price_dates_start' => 'numeric', 18 'sale_price_dates_end' => 'numeric', 19 'single_sale_price_info' => 'string', 20 'single_sale_do_not_provide_certificate' => 'bool', 21 'single_sale_paid_certificate' => 'bool', 22 'single_sale_certificate_price' => 'numeric', 23 24 'enterprise' => 'bool', 25 'enterprise_price' => 'numeric', 26 'enterprise_price_info' => 'string', 27 'enterprise_do_not_provide_certificate' => 'bool', 28 'enterprise_paid_certificate' => 'bool', 29 'enterprise_certificate_price' => 'numeric', 30 31 'not_membership' => 'bool', 32 'membership_price_info' => 'string', 33 'membership_do_not_provide_certificate' => 'bool', 34 'membership_paid_certificate' => 'bool', 35 'membership_certificate_price' => 'numeric', 36 37 'points' => 'bool', 38 'points_price' => 'numeric', 39 'points_price_info' => 'string', 40 'points_do_not_provide_certificate' => 'bool', 41 'points_paid_certificate' => 'bool', 42 'points_certificate_price' => 'numeric', 43 44 'subscriptions' => 'bool', 45 'subscriptions_price_info' => 'string', 46 47 'affiliate_course' => 'bool', 48 'affiliate_course_link' => 'string', 49 'affiliate_course_text' => 'string', 50 'affiliate_course_rice' => 'numeric', 51 52 'pricing_mode' => 'string', 18 53 ); 19 54 20 55 private const DEFAULTS = array( 21 'single_sale' => false, 22 'price' => null, 23 'sale_price' => null, 24 'sale_price_dates_start' => null, 25 'sale_price_dates_end' => null, 26 'points_price' => null, 27 'enterprise_price' => null, 28 'not_membership' => true, 29 'affiliate_course' => false, 30 'subscriptions' => false, 31 'affiliate_course_text' => null, 32 'affiliate_course_link' => null, 33 'price_info' => '', 56 'free_do_not_provide_certificate' => false, 57 'free_paid_certificate' => false, 58 'free_certificate_price' => null, 59 'free_price_info' => '', 60 61 'single_sale' => true, 62 'price' => null, 63 'sale_price' => null, 64 'sale_price_dates_start' => null, 65 'sale_price_dates_end' => null, 66 'single_sale_price_info' => '', 67 'single_sale_do_not_provide_certificate' => false, 68 'single_sale_paid_certificate' => false, 69 'single_sale_certificate_price' => null, 70 71 'enterprise' => false, 72 'enterprise_price' => null, 73 'enterprise_price_info' => '', 74 'enterprise_do_not_provide_certificate' => false, 75 'enterprise_paid_certificate' => false, 76 'enterprise_certificate_price' => null, 77 78 'not_membership' => true, 79 'membership_price_info' => '', 80 'membership_do_not_provide_certificate' => false, 81 'membership_paid_certificate' => false, 82 'membership_certificate_price' => null, 83 84 'points' => false, 85 'points_price' => null, 86 'points_price_info' => '', 87 'points_do_not_provide_certificate' => false, 88 'points_paid_certificate' => false, 89 'points_certificate_price' => null, 90 91 'subscriptions' => false, 92 'subscriptions_price_info' => '', 93 94 'affiliate_course' => false, 95 'affiliate_course_link' => '', 96 'affiliate_course_text' => '', 97 'affiliate_course_price' => null, 98 99 'pricing_mode' => PricingMode::FREE, 34 100 ); 35 101 … … 46 112 } 47 113 114 private function update_pricing_mode( int $course_id, array $pricing ): array { 115 $old_pricing_mode = get_post_meta( $course_id, 'pricing_mode', true ); 116 $current_pricing_mode = $pricing['pricing_mode']; 117 118 if ( $old_pricing_mode === $current_pricing_mode ) { 119 return $pricing; 120 } 121 122 $default_pricing = self::DEFAULTS; 123 124 foreach ( $default_pricing as $key => $default ) { 125 if ( ! isset( $pricing[ $key ] ) ) { 126 $pricing[ $key ] = $default; 127 } 128 } 129 130 return $pricing; 131 } 132 48 133 public function save( int $course_id, array $pricing ): void { 134 $pricing = $this->update_pricing_mode( $course_id, $pricing ); 135 49 136 foreach ( $pricing as $key => $value ) { 50 137 if ( isset( self::CASTS[ $key ] ) && 'bool' === self::CASTS[ $key ] ) { … … 58 145 59 146 do_action( 'masterstudy_lms_course_price_updated', $course_id ); 147 } 148 149 public static function get_price_info( int $post_id ): array { 150 return array( 151 'free_price_info' => get_post_meta( $post_id, 'free_price_info', true ) ?? '', 152 'single_sale_price_info' => get_post_meta( $post_id, 'single_sale_price_info', true ) ?? '', 153 'enterprise_price_info' => get_post_meta( $post_id, 'enterprise_price_info', true ) ?? '', 154 'points_price_info' => get_post_meta( $post_id, 'points_price_info', true ) ?? '', 155 'subscriptions_price_info' => get_post_meta( $post_id, 'subscriptions_price_info', true ) ?? '', 156 'membership_price_info' => get_post_meta( $post_id, 'not_membership_price_info', true ) ?? '', 157 ); 158 } 159 160 public static function is_certificate_enabled( int $post_id ): bool { 161 $certificate_id = get_post_meta( $post_id, 'course_certificate', true ); 162 return is_ms_lms_addon_enabled( 'certificate_builder' ) && 'none' !== $certificate_id; 163 } 164 165 public static function get_certificates_info( int $post_id ): array { 166 $is_certificate_enabled = self::is_certificate_enabled( $post_id ); 167 return array( 168 'free' => empty( get_post_meta( $post_id, 'free_do_not_provide_certificate', true ) ) && $is_certificate_enabled, 169 'single_sale' => empty( get_post_meta( $post_id, 'single_sale_do_not_provide_certificate', true ) ) && $is_certificate_enabled, 170 'enterprise' => empty( get_post_meta( $post_id, 'enterprise_do_not_provide_certificate', true ) ) && $is_certificate_enabled, 171 'pmpro' => empty( get_post_meta( $post_id, 'membership_do_not_provide_certificate', true ) ) && $is_certificate_enabled, 172 'points' => empty( get_post_meta( $post_id, 'points_do_not_provide_certificate', true ) ) && $is_certificate_enabled, 173 ); 60 174 } 61 175 -
masterstudy-lms-learning-management-system/trunk/includes/Routing/Swagger/Routes/Course/UpdatePricingSettings.php
r2953285 r3458914 3 3 namespace MasterStudy\Lms\Routing\Swagger\Routes\Course; 4 4 5 use MasterStudy\Lms\Enums\PricingMode; 5 6 use MasterStudy\Lms\Routing\Swagger\RequestInterface; 6 7 use MasterStudy\Lms\Routing\Swagger\ResponseInterface; … … 11 12 public function request(): array { 12 13 return array( 13 'single_sale' => array( 14 'free_do_not_provide_certificate' => array( 15 'type' => 'boolean', 16 'description' => 'Flag to indicate if free course does not provide certificate', 17 'required' => false, 18 ), 19 'free_paid_certificate' => array( 20 'type' => 'boolean', 21 'description' => 'Flag to indicate if free course provides paid certificate', 22 'required' => false, 23 ), 24 'free_certificate_price' => array( 25 'type' => 'number', 26 'format' => 'float', 27 'description' => 'Price for free certificate', 28 'required' => false, 29 ), 30 'free_price_info' => array( 31 'type' => 'string', 32 'description' => 'Price info for free course', 33 'required' => false, 34 ), 35 'single_sale' => array( 14 36 'type' => 'boolean', 15 37 'description' => 'One-time purchase flag', 16 38 'required' => true, 17 39 ), 18 'price' => array( 40 'single_sale_price_info' => array( 41 'type' => 'string', 42 'description' => 'Price info for one-time purchase', 43 'required' => false, 44 ), 45 'single_sale_do_not_provide_certificate' => array( 46 'type' => 'boolean', 47 'description' => 'Flag to indicate if one-time purchase does not provide certificate', 48 'required' => false, 49 ), 50 'single_sale_paid_certificate' => array( 51 'type' => 'boolean', 52 'description' => 'Flag to indicate if one-time purchase provides paid certificate', 53 'required' => false, 54 ), 55 'single_sale_certificate_price' => array( 56 'type' => 'number', 57 'format' => 'float', 58 'description' => 'Price for one-time purchase certificate', 59 'required' => false, 60 ), 61 'price' => array( 19 62 'type' => 'number', 20 63 'format' => 'float', 21 64 'description' => 'Required for one-time purchase', 22 65 ), 23 'sale_price' => array(66 'sale_price' => array( 24 67 'type' => 'number', 25 68 'format' => 'float', … … 27 70 'nullable' => true, 28 71 ), 29 'sale_price_dates_start' => array(72 'sale_price_dates_start' => array( 30 73 'type' => 'integer', 31 74 'description' => 'Timestamp for sale start date. Required with sale_price_dates_end', 32 75 'nullable' => true, 33 76 ), 34 'sale_price_dates_end' => array(77 'sale_price_dates_end' => array( 35 78 'type' => 'integer', 36 79 'description' => 'Timestamp for sale end date. Required with sale_price_dates_start', 37 80 'nullable' => true, 38 81 ), 39 'points_price' => array( 40 'type' => 'integer', 41 'required' => false, 42 ), 43 'enterprise_price' => array( 44 'type' => 'number', 45 'format' => 'float', 46 'nullable' => true, 47 'description' => 'Required if enterprise price enabled', 48 ), 49 'not_membership' => array( 82 'points' => array( 83 'type' => 'boolean', 84 'description' => 'Flag to indicate if points is enabled', 85 'required' => false, 86 ), 87 'points_price' => array( 88 'type' => 'number', 89 'format' => 'float', 90 'description' => 'Price for points', 91 'required' => false, 92 ), 93 'points_price_info' => array( 94 'type' => 'string', 95 'description' => 'Price info for points', 96 'required' => false, 97 ), 98 'points_do_not_provide_certificate' => array( 99 'type' => 'boolean', 100 'description' => 'Flag to indicate if points does not provide certificate', 101 'required' => false, 102 ), 103 'points_paid_certificate' => array( 104 'type' => 'boolean', 105 'description' => 'Flag to indicate if points provides paid certificate', 106 'required' => false, 107 ), 108 'points_certificate_price' => array( 109 'type' => 'number', 110 'format' => 'float', 111 'description' => 'Price for points certificate', 112 'required' => false, 113 ), 114 'subscriptions' => array( 115 'type' => 'boolean', 116 'description' => 'Flag to indicate if subscriptions is enabled', 117 'required' => false, 118 ), 119 'subscriptions_price_info' => array( 120 'type' => 'string', 121 'description' => 'Price info for subscriptions', 122 'required' => false, 123 ), 124 'enterprise' => array( 125 'type' => 'boolean', 126 'description' => 'Flag to indicate if enterprise is enabled', 127 'required' => false, 128 ), 129 'enterprise_price' => array( 130 'type' => 'number', 131 'format' => 'float', 132 'description' => 'Price for enterprise', 133 'required' => false, 134 ), 135 'enterprise_price_info' => array( 136 'type' => 'string', 137 'description' => 'Price info for enterprise', 138 'required' => false, 139 ), 140 'enterprise_do_not_provide_certificate' => array( 141 'type' => 'boolean', 142 'description' => 'Flag to indicate if enterprise does not provide certificate', 143 'required' => false, 144 ), 145 'enterprise_paid_certificate' => array( 146 'type' => 'boolean', 147 'description' => 'Flag to indicate if enterprise provides paid certificate', 148 'required' => false, 149 ), 150 'enterprise_certificate_price' => array( 151 'type' => 'number', 152 'format' => 'float', 153 'description' => 'Price for enterprise certificate', 154 'required' => false, 155 ), 156 'not_membership' => array( 50 157 'type' => 'boolean', 51 158 'required' => true, 52 159 ), 53 'affiliate_course' => array( 54 'type' => 'boolean', 55 'required' => true, 56 ), 57 'affiliate_course_text' => array( 58 'type' => 'string', 59 'nullable' => true, 60 'description' => 'Required for affiliate course', 61 ), 62 'affiliate_course_link' => array( 63 'type' => 'string', 64 'nullable' => true, 65 'description' => 'Required for affiliate course', 66 ), 67 'price_info' => array( 68 'type' => 'string', 69 'required' => false, 160 'membership_price_info' => array( 161 'type' => 'string', 162 'description' => 'Price info for not membership', 163 'required' => false, 164 ), 165 'membership_do_not_provide_certificate' => array( 166 'type' => 'boolean', 167 'description' => 'Flag to indicate if not membership does not provide certificate', 168 'required' => false, 169 ), 170 'membership_paid_certificate' => array( 171 'type' => 'boolean', 172 'description' => 'Flag to indicate if not membership provides paid certificate', 173 'required' => false, 174 ), 175 'membership_certificate_price' => array( 176 'type' => 'number', 177 'format' => 'float', 178 'description' => 'Price for not membership certificate', 179 'required' => false, 180 ), 181 'affiliate_course' => array( 182 'type' => 'boolean', 183 'description' => 'Flag to indicate if affiliate course is enabled', 184 'required' => false, 185 ), 186 'affiliate_course_text' => array( 187 'type' => 'string', 188 'description' => 'Text for affiliate course', 189 'required' => false, 190 ), 191 'affiliate_course_link' => array( 192 'type' => 'string', 193 'description' => 'Link for affiliate course', 194 'required' => false, 195 ), 196 'pricing_mode' => array( 197 'type' => 'string', 198 'description' => 'Pricing mode', 199 'required' => true, 200 'enum' => array( PricingMode::FREE, PricingMode::PAID, PricingMode::AFFILIATE ), 70 201 ), 71 202 ); -
masterstudy-lms-learning-management-system/trunk/masterstudy-lms-learning-management-system.php
r3449418 r3458914 8 8 * Author URI: https://stylemixthemes.com/ 9 9 * Text Domain: masterstudy-lms-learning-management-system 10 * Version: 3.7.1 410 * Version: 3.7.15 11 11 * Masterstudy LMS Pro tested up to: 4.8 12 12 */ … … 16 16 } 17 17 18 define( 'MS_LMS_VERSION', '3.7.1 4' );18 define( 'MS_LMS_VERSION', '3.7.15' ); 19 19 define( 'MS_LMS_FILE', __FILE__ ); 20 20 define( 'MS_LMS_PATH', dirname( MS_LMS_FILE ) ); -
masterstudy-lms-learning-management-system/trunk/readme.txt
r3449418 r3458914 6 6 Tested up to: 6.9 7 7 Requires PHP: 7.4 8 Stable tag: 3.7.1 48 Stable tag: 3.7.15 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 309 309 310 310 == Changelog == 311 = 3.7.15 - 2026-02-10 = 312 - **Update:** The UI of the "Pricing" tab in Course Builder has been improved. Course access types are now organized into separate tabs. 313 - **Update:** The "Pricing Info" field has been added to all course purchase methods. 314 - **New:** Added ability to issue certificates based on the course purchase method, such as issuing certificates only for One-Time purchases [PRO]. 315 - **Fixed:** When adding a student via "Manage Students" with the Subscriptions add-on enabled, the "Start Course" button was not displayed on the Single Course page for the student [PRO]. 316 311 317 = 3.7.14 - 2026-01-29 = 312 318 - **Fixed:** Minor bugfix … … 328 334 - **Fixed:** Minor bugfix 329 335 330 = 3.7.11 - 2026-01-06 =331 - **Fixed:** Answer options disappeared after retaking a quiz.332 333 = 3.7.10 - 2025-12-26 =334 - **Fixed:** Minor bug fixes.335 336 = 3.7.9 - 2025-12-25 =337 - **New:** Built-in discount coupon system for courses, subscriptions, and bundles (Pro)338 - **Fixed:** Warning messages were displayed on the Course Category creation page339 - **Fixed:** Admin Commission and Instructor Earnings values were not saved in plugin settings (Pro)340 - **Fixed:** The "Subscription Only" filter did not display courses with an active subscription setting (Pro)341 - **Fixed:** An error occurred when students uploaded files in Assignments (Pro)342 343 336 You can see all updates history in our [changelog documentation](https://docs.stylemixthemes.com/masterstudy-lms/changelog-free-version). -
masterstudy-lms-learning-management-system/trunk/vendor/composer/autoload_classmap.php
r3448656 r3458914 23 23 'MasterStudy\\Lms\\Enums\\LessonVideoType' => $baseDir . '/includes/Enums/LessonVideoType.php', 24 24 'MasterStudy\\Lms\\Enums\\OrderStatus' => $baseDir . '/includes/Enums/OrderStatus.php', 25 'MasterStudy\\Lms\\Enums\\PricingMode' => $baseDir . '/includes/Enums/PricingMode.php', 25 26 'MasterStudy\\Lms\\Enums\\QuestionType' => $baseDir . '/includes/Enums/QuestionType.php', 26 27 'MasterStudy\\Lms\\Enums\\QuestionView' => $baseDir . '/includes/Enums/QuestionView.php', -
masterstudy-lms-learning-management-system/trunk/vendor/composer/autoload_static.php
r3448656 r3458914 38 38 'MasterStudy\\Lms\\Enums\\LessonVideoType' => __DIR__ . '/../..' . '/includes/Enums/LessonVideoType.php', 39 39 'MasterStudy\\Lms\\Enums\\OrderStatus' => __DIR__ . '/../..' . '/includes/Enums/OrderStatus.php', 40 'MasterStudy\\Lms\\Enums\\PricingMode' => __DIR__ . '/../..' . '/includes/Enums/PricingMode.php', 40 41 'MasterStudy\\Lms\\Enums\\QuestionType' => __DIR__ . '/../..' . '/includes/Enums/QuestionType.php', 41 42 'MasterStudy\\Lms\\Enums\\QuestionView' => __DIR__ . '/../..' . '/includes/Enums/QuestionView.php',
Note: See TracChangeset
for help on using the changeset viewer.